tx · 9nRW1gbRLEhAyztEGAEh3EA3EFvarUzAiV5NSqxZa4tE 3NBPnEADc6KRTGyLYu277UVBVpATKuLStoo: -0.03800000 Waves 2022.11.07 02:38 [2305940] smart account 3NBPnEADc6KRTGyLYu277UVBVpATKuLStoo > SELF 0.00000000 Waves
{ "type": 13, "id": "9nRW1gbRLEhAyztEGAEh3EA3EFvarUzAiV5NSqxZa4tE", "fee": 3800000, "feeAssetId": null, "timestamp": 1667777938915, "version": 2, "chainId": 84, "sender": "3NBPnEADc6KRTGyLYu277UVBVpATKuLStoo", "senderPublicKey": "aYCXwWE5HwK514PYuUxDBtXjyL3M32iEF6ria6Uh1iV", "proofs": [ "zeipwu4suJD7XnZo1p2RdNKyX28UEEMtJDZmUnS9n2iNPAMbX9hfxtp1mAn21xoaAWkgkbEXKN6XRZwVg9amEqb" ], "script": "base64:BgJWCAISAwoBCBIDCgEIEgMKAQgSBQoDCAEBEgUKAwEIERIFCgMBCBESBgoEAQgBERIDCgEIEgASFwoVCAgIAQEBARgICAgICAgIGBgYGBgYEgQKAggIEgANABRuZnRfY3JlYXRpb25fYWRkcmVzcwkBB0FkZHJlc3MBARoBVNfUIRkzMMsUuy4VRRry35ft/Ha30v/0nQAVcHJpY2VfaW5jcmVhc2VfcGVyaW9kAAoAD21pbnRfY29sbGVjdGlvbgISQ2xlZiBnZW5lc2lzIHNvbmdzABBtaW50X2Rlc2NyaXB0aW9uAmRHZW5lc2lzIENsZWYgc29uZy4gVGhpcyBtZWxvZHkgaXMgY3JhZnRlZCB0byBiZWNvbWUgeW91ciBlbGVjdHJvbmljIGphbS4gVXNlIGl0IG9uIGNsZWYub25lIPCfkprwn6SNABFoeWJyaWRfY29sbGVjdGlvbgIKQ2xlZiBtaXhlcwASaHlicmlkX2Rlc2NyaXB0aW9uAldDbGVmIG1peC4gVGhpcyBtZWxvZHkgd2FzIGNyZWF0ZWQgYnkgYW4gYWxnb3JpdGhtLiBFbmpveSB0aGlzIGphbSBvciB1c2UgaXQgb24gY2xlZi5vbmUBBnRvX2tleQEBbgkA2AQBCQCaAwEFAW4BDHVuaXF1ZV9ieXRlcwEBaQkAywECCQDLAQIJAMsBAgkAywECCAUBaQ10cmFuc2FjdGlvbklkCAUBaQ9jYWxsZXJQdWJsaWNLZXkIBQlsYXN0QmxvY2sTZ2VuZXJhdGlvblNpZ25hdHVyZQkAmgMBCAUJbGFzdEJsb2NrCXRpbWVzdGFtcAkAmgMBCAUJbGFzdEJsb2NrBmhlaWdodAELcmFuZG9tX3VpbnQCBWJ5dGVzBW5vbmNlBAFuCQCxCQEJANQWAQkAywECBQVieXRlcwkAmgMBBQVub25jZQMJAGYCAAAFAW4JAQEtAQUBbgUBbgEIcGlja19vbmUEBWtleV8wBWtleV8xCHJhbmRfaW50CWJpdF9wb3dlcgMJAAACCQBqAgkAaQIFCHJhbmRfaW50BQliaXRfcG93ZXIAAgAABQVrZXlfMAUFa2V5XzEBF2h5YnJpZF9jYWxjdWxhdGVfY2hhbmdlAwFpBXRva2VuBmFtb3VudAMJAQIhPQIJAJADAQgFAWkIcGF5bWVudHMAAQD///////////8BBAFwCQCRAwIIBQFpCHBheW1lbnRzAAAEB3BfdG9rZW4EByRtYXRjaDAIBQFwB2Fzc2V0SWQDCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQCaWQFByRtYXRjaDAJANgEAQUCaWQCAAMJAQIhPQIFB3BfdG9rZW4FBXRva2VuAP///////////wEJAGUCCAUBcAZhbW91bnQFBmFtb3VudAEObWFrZV9oeWJyaWRfdHgDAWkGc29uZ18wBnNvbmdfMQQBbgQHJG1hdGNoMAkAnwgBAgVjb3VudAMJAAECBQckbWF0Y2gwAgNJbnQEAWoFByRtYXRjaDAFAWoAAAQKbmFtZV9zaG9ydAkArwICCQCsAgICBUNsZWYgCQCkAwEFAW4AEAQLZGVzY3JpcHRpb24FEmh5YnJpZF9kZXNjcmlwdGlvbgQKY29sbGVjdGlvbgURaHlicmlkX2NvbGxlY3Rpb24EAmlkBAckbWF0Y2gwCQD8BwQFFG5mdF9jcmVhdGlvbl9hZGRyZXNzAgljcmVhdGVORlQJAMwIAgUKbmFtZV9zaG9ydAkAzAgCBQtkZXNjcmlwdGlvbgkAzAgCCQERQGV4dHJOYXRpdmUoMTA1OCkBAhFtYXJrZXRfaW1hZ2VfbGluawkAzAgCBQpjb2xsZWN0aW9uBQNuaWwFA25pbAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXgFByRtYXRjaDAFAXgJAAIBAhNORlQgY3JlYXRpb24gZmFpbGVkAwkAAAIFAmlkBQJpZAQEaWRfYgkA2QQBBQJpZAQDa2V5CQEGdG9fa2V5AQUBbgQFYnl0ZXMJAQx1bmlxdWVfYnl0ZXMBBQFpBAZyYW5kXzAJAQtyYW5kb21fdWludAIFBWJ5dGVzAAAEBnJhbmRfMQkBC3JhbmRvbV91aW50AgUFYnl0ZXMAAQkAzAgCCQEMSW50ZWdlckVudHJ5AgIFY291bnQJAGQCBQFuAAEJAMwIAgkBC1N0cmluZ0VudHJ5AgUCaWQFA2tleQkAzAgCCQELU3RyaW5nRW50cnkCBQNrZXkFAmlkCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFA2tleQICX0cJAGQCCQCWAwEJAMwIAgkBEUBleHRyTmF0aXZlKDEwNTUpAQkArAICBQZzb25nXzACAl9HCQDMCAIJARFAZXh0ck5hdGl2ZSgxMDU1KQEJAKwCAgUGc29uZ18xAgJfRwUDbmlsAAEJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQNrZXkCA19TTAIACQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFA2tleQIDX1NOBQZyYW5kXzAJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQNrZXkCBF9TUDAFBnNvbmdfMAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFA2tleQIEX1NQMQUGc29uZ18xCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFA2tleQIEX1NCMAkBEUBleHRyTmF0aXZlKDEwNTUpAQkArAICCQEIcGlja19vbmUEBQZzb25nXzAFBnNvbmdfMQUGcmFuZF8wAAECBF9TQjAJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUDa2V5AgRfU0IxCQERQGV4dHJOYXRpdmUoMTA1NSkBCQCsAgIJAQhwaWNrX29uZQQFBnNvbmdfMAUGc29uZ18xBQZyYW5kXzAAAgIEX1NCMQkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQNrZXkCBF9TQjIJARFAZXh0ck5hdGl2ZSgxMDU1KQEJAKwCAgkBCHBpY2tfb25lBAUGc29uZ18wBQZzb25nXzEFBnJhbmRfMAAEAgRfU0IyCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFA2tleQIDX1NUCQERQGV4dHJOYXRpdmUoMTA1NSkBCQCsAgIJAQhwaWNrX29uZQQFBnNvbmdfMAUGc29uZ18xBQZyYW5kXzAACAIDX1NUCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUDa2V5AgRfU0MwCQERQGV4dHJOYXRpdmUoMTA1OCkBCQCsAgIJAQhwaWNrX29uZQQFBnNvbmdfMAUGc29uZ18xBQZyYW5kXzAAEAIEX1NDMAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFA2tleQIEX1NDMQkBEUBleHRyTmF0aXZlKDEwNTgpAQkArAICCQEIcGlja19vbmUEBQZzb25nXzAFBnNvbmdfMQUGcmFuZF8wACACBF9TQzEJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQNrZXkCBF9TQzIJARFAZXh0ck5hdGl2ZSgxMDU4KQEJAKwCAgkBCHBpY2tfb25lBAUGc29uZ18wBQZzb25nXzEFBnJhbmRfMABAAgRfU0MyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUDa2V5AgRfU0MzCQERQGV4dHJOYXRpdmUoMTA1OCkBCQCsAgIJAQhwaWNrX29uZQQFBnNvbmdfMAUGc29uZ18xBQZyYW5kXzAAgAECBF9TQzMJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQNrZXkCBF9TQzQJARFAZXh0ck5hdGl2ZSgxMDU4KQEJAKwCAgkBCHBpY2tfb25lBAUGc29uZ18wBQZzb25nXzEFBnJhbmRfMACABAIEX1NDNAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFA2tleQIEX1NDNQkBEUBleHRyTmF0aXZlKDEwNTgpAQkArAICCQEIcGlja19vbmUEBQZzb25nXzAFBnNvbmdfMQUGcmFuZF8wAIAIAgRfU0M1CQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUDa2V5AgRfU0M2CQERQGV4dHJOYXRpdmUoMTA1OCkBCQCsAgIJAQhwaWNrX29uZQQFBnNvbmdfMAUGc29uZ18xBQZyYW5kXzAAgBACBF9TQzYJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQNrZXkCBF9TQzcJARFAZXh0ck5hdGl2ZSgxMDU4KQEJAKwCAgkBCHBpY2tfb25lBAUGc29uZ18wBQZzb25nXzEFBnJhbmRfMACAIAIEX1NDNwkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFA2tleQIDX1NBCQERQGV4dHJOYXRpdmUoMTA1OCkBCQCsAgIJAQhwaWNrX29uZQQFBnNvbmdfMAUGc29uZ18xBQZyYW5kXzAAgEACA19TQQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFA2tleQIEX1NJMAkBEUBleHRyTmF0aXZlKDEwNTgpAQkArAICCQEIcGlja19vbmUEBQZzb25nXzAFBnNvbmdfMQUGcmFuZF8wAICAAQIEX1NJMAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFA2tleQIEX1NJMQkBEUBleHRyTmF0aXZlKDEwNTgpAQkArAICCQEIcGlja19vbmUEBQZzb25nXzAFBnNvbmdfMQUGcmFuZF8wAICAAgIEX1NJMQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFA2tleQIEX1NJMgkBEUBleHRyTmF0aXZlKDEwNTgpAQkArAICCQEIcGlja19vbmUEBQZzb25nXzAFBnNvbmdfMQUGcmFuZF8wAICABAIEX1NJMgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFA2tleQIEX1NJMwkBEUBleHRyTmF0aXZlKDEwNTgpAQkArAICCQEIcGlja19vbmUEBQZzb25nXzAFBnNvbmdfMQUGcmFuZF8wAICACAIEX1NJMwkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFA2tleQIEX1NJNAkBEUBleHRyTmF0aXZlKDEwNTgpAQkArAICCQEIcGlja19vbmUEBQZzb25nXzAFBnNvbmdfMQUGcmFuZF8wAICAEAIEX1NJNAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFA2tleQIEX1NJNQkBEUBleHRyTmF0aXZlKDEwNTgpAQkArAICCQEIcGlja19vbmUEBQZzb25nXzAFBnNvbmdfMQUGcmFuZF8wAICAIAIEX1NJNQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFA2tleQIFX1NJNTAJARFAZXh0ck5hdGl2ZSgxMDU4KQEJAKwCAgkBCHBpY2tfb25lBAUGc29uZ18wBQZzb25nXzEFBnJhbmRfMACAgEACBV9TSTUwCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUDa2V5AgVfU0k1MQkBEUBleHRyTmF0aXZlKDEwNTgpAQkArAICCQEIcGlja19vbmUEBQZzb25nXzAFBnNvbmdfMQUGcmFuZF8wAICAgAECBV9TSTUxCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUDa2V5AgVfU0k1MgkBEUBleHRyTmF0aXZlKDEwNTgpAQkArAICCQEIcGlja19vbmUEBQZzb25nXzAFBnNvbmdfMQUGcmFuZF8wAICAgAICBV9TSTUyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUDa2V5AgVfU0k1MwkBEUBleHRyTmF0aXZlKDEwNTgpAQkArAICCQEIcGlja19vbmUEBQZzb25nXzAFBnNvbmdfMQUGcmFuZF8wAICAgAQCBV9TSTUzCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUDa2V5AgVfU0k1NAkBEUBleHRyTmF0aXZlKDEwNTgpAQkArAICCQEIcGlja19vbmUEBQZzb25nXzAFBnNvbmdfMQUGcmFuZF8wAICAgAgCBV9TSTU0CQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUDa2V5AgVfU0k1NQkBEUBleHRyTmF0aXZlKDEwNTgpAQkArAICCQEIcGlja19vbmUEBQZzb25nXzAFBnNvbmdfMQUGcmFuZF8wAICAgBACBV9TSTU1CQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUDa2V5AgVfU0k1NgkBEUBleHRyTmF0aXZlKDEwNTgpAQkArAICCQEIcGlja19vbmUEBQZzb25nXzAFBnNvbmdfMQUGcmFuZF8wAICAgCACBV9TSTU2CQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUDa2V5AgVfU0k1NwkBEUBleHRyTmF0aXZlKDEwNTgpAQkArAICCQEIcGlja19vbmUEBQZzb25nXzAFBnNvbmdfMQUGcmFuZF8wAICAgEACBV9TSTU3CQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUDa2V5AgVfU0kwMAkBEUBleHRyTmF0aXZlKDEwNTgpAQkArAICCQEIcGlja19vbmUEBQZzb25nXzAFBnNvbmdfMQUGcmFuZF8wAICAgIABAgVfU0kwMAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFA2tleQIFX1NJMDEJARFAZXh0ck5hdGl2ZSgxMDU4KQEJAKwCAgkBCHBpY2tfb25lBAUGc29uZ18wBQZzb25nXzEFBnJhbmRfMACAgICAAgIFX1NJMDEJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQNrZXkCBV9TSTAyCQERQGV4dHJOYXRpdmUoMTA1OCkBCQCsAgIJAQhwaWNrX29uZQQFBnNvbmdfMAUGc29uZ18xBQZyYW5kXzAAgICAgAQCBV9TSTAyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUDa2V5AgVfU0kwMwkBEUBleHRyTmF0aXZlKDEwNTgpAQkArAICCQEIcGlja19vbmUEBQZzb25nXzAFBnNvbmdfMQUGcmFuZF8wAICAgIAIAgVfU0kwMwkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFA2tleQIFX1NJMDQJARFAZXh0ck5hdGl2ZSgxMDU4KQEJAKwCAgkBCHBpY2tfb25lBAUGc29uZ18wBQZzb25nXzEFBnJhbmRfMACAgICAEAIFX1NJMDQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQNrZXkCBV9TSTA1CQERQGV4dHJOYXRpdmUoMTA1OCkBCQCsAgIJAQhwaWNrX29uZQQFBnNvbmdfMAUGc29uZ18xBQZyYW5kXzAAgICAgCACBV9TSTA1CQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUDa2V5AgVfU0kwNgkBEUBleHRyTmF0aXZlKDEwNTgpAQkArAICCQEIcGlja19vbmUEBQZzb25nXzAFBnNvbmdfMQUGcmFuZF8xAAECBV9TSTA2CQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUDa2V5AgVfU0kwNwkBEUBleHRyTmF0aXZlKDEwNTgpAQkArAICCQEIcGlja19vbmUEBQZzb25nXzAFBnNvbmdfMQUGcmFuZF8xAAICBV9TSTA3CQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUDa2V5AgVfU0kxMAkBEUBleHRyTmF0aXZlKDEwNTgpAQkArAICCQEIcGlja19vbmUEBQZzb25nXzAFBnNvbmdfMQUGcmFuZF8xAAQCBV9TSTEwCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUDa2V5AgVfU0kxMQkBEUBleHRyTmF0aXZlKDEwNTgpAQkArAICCQEIcGlja19vbmUEBQZzb25nXzAFBnNvbmdfMQUGcmFuZF8xAAgCBV9TSTExCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUDa2V5AgVfU0kxMgkBEUBleHRyTmF0aXZlKDEwNTgpAQkArAICCQEIcGlja19vbmUEBQZzb25nXzAFBnNvbmdfMQUGcmFuZF8xABACBV9TSTEyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUDa2V5AgVfU0kxMwkBEUBleHRyTmF0aXZlKDEwNTgpAQkArAICCQEIcGlja19vbmUEBQZzb25nXzAFBnNvbmdfMQUGcmFuZF8xACACBV9TSTEzCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUDa2V5AgVfU0kxNAkBEUBleHRyTmF0aXZlKDEwNTgpAQkArAICCQEIcGlja19vbmUEBQZzb25nXzAFBnNvbmdfMQUGcmFuZF8xAEACBV9TSTE0CQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUDa2V5AgVfU0kxNQkBEUBleHRyTmF0aXZlKDEwNTgpAQkArAICCQEIcGlja19vbmUEBQZzb25nXzAFBnNvbmdfMQUGcmFuZF8xAIABAgVfU0kxNQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFA2tleQIFX1NJMTYJARFAZXh0ck5hdGl2ZSgxMDU4KQEJAKwCAgkBCHBpY2tfb25lBAUGc29uZ18wBQZzb25nXzEFBnJhbmRfMQCAAgIFX1NJMTYJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQNrZXkCBV9TSTE3CQERQGV4dHJOYXRpdmUoMTA1OCkBCQCsAgIJAQhwaWNrX29uZQQFBnNvbmdfMAUGc29uZ18xBQZyYW5kXzEAgAQCBV9TSTE3CQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUDa2V5AgVfU0kyMAkBEUBleHRyTmF0aXZlKDEwNTgpAQkArAICCQEIcGlja19vbmUEBQZzb25nXzAFBnNvbmdfMQUGcmFuZF8xAIAIAgVfU0kyMAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFA2tleQIFX1NJMjEJARFAZXh0ck5hdGl2ZSgxMDU4KQEJAKwCAgkBCHBpY2tfb25lBAUGc29uZ18wBQZzb25nXzEFBnJhbmRfMQCAEAIFX1NJMjEJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQNrZXkCBV9TSTIyCQERQGV4dHJOYXRpdmUoMTA1OCkBCQCsAgIJAQhwaWNrX29uZQQFBnNvbmdfMAUGc29uZ18xBQZyYW5kXzEAgCACBV9TSTIyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUDa2V5AgVfU0kyMwkBEUBleHRyTmF0aXZlKDEwNTgpAQkArAICCQEIcGlja19vbmUEBQZzb25nXzAFBnNvbmdfMQUGcmFuZF8xAIBAAgVfU0kyMwkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFA2tleQIFX1NJMjQJARFAZXh0ck5hdGl2ZSgxMDU4KQEJAKwCAgkBCHBpY2tfb25lBAUGc29uZ18wBQZzb25nXzEFBnJhbmRfMQCAgAECBV9TSTI0CQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUDa2V5AgVfU0kyNQkBEUBleHRyTmF0aXZlKDEwNTgpAQkArAICCQEIcGlja19vbmUEBQZzb25nXzAFBnNvbmdfMQUGcmFuZF8xAICAAgIFX1NJMjUJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQNrZXkCBV9TSTI2CQERQGV4dHJOYXRpdmUoMTA1OCkBCQCsAgIJAQhwaWNrX29uZQQFBnNvbmdfMAUGc29uZ18xBQZyYW5kXzEAgIAEAgVfU0kyNgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFA2tleQIFX1NJMjcJARFAZXh0ck5hdGl2ZSgxMDU4KQEJAKwCAgkBCHBpY2tfb25lBAUGc29uZ18wBQZzb25nXzEFBnJhbmRfMQCAgAgCBV9TSTI3CQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUDa2V5AgVfU0kzMAkBEUBleHRyTmF0aXZlKDEwNTgpAQkArAICCQEIcGlja19vbmUEBQZzb25nXzAFBnNvbmdfMQUGcmFuZF8xAICAEAIFX1NJMzAJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQNrZXkCBV9TSTMxCQERQGV4dHJOYXRpdmUoMTA1OCkBCQCsAgIJAQhwaWNrX29uZQQFBnNvbmdfMAUGc29uZ18xBQZyYW5kXzEAgIAgAgVfU0kzMQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFA2tleQIFX1NJMzIJARFAZXh0ck5hdGl2ZSgxMDU4KQEJAKwCAgkBCHBpY2tfb25lBAUGc29uZ18wBQZzb25nXzEFBnJhbmRfMQCAgEACBV9TSTMyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUDa2V5AgVfU0kzMwkBEUBleHRyTmF0aXZlKDEwNTgpAQkArAICCQEIcGlja19vbmUEBQZzb25nXzAFBnNvbmdfMQUGcmFuZF8xAICAgAECBV9TSTMzCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUDa2V5AgVfU0kzNAkBEUBleHRyTmF0aXZlKDEwNTgpAQkArAICCQEIcGlja19vbmUEBQZzb25nXzAFBnNvbmdfMQUGcmFuZF8xAICAgAICBV9TSTM0CQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUDa2V5AgVfU0kzNQkBEUBleHRyTmF0aXZlKDEwNTgpAQkArAICCQEIcGlja19vbmUEBQZzb25nXzAFBnNvbmdfMQUGcmFuZF8xAICAgAQCBV9TSTM1CQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUDa2V5AgVfU0kzNgkBEUBleHRyTmF0aXZlKDEwNTgpAQkArAICCQEIcGlja19vbmUEBQZzb25nXzAFBnNvbmdfMQUGcmFuZF8xAICAgAgCBV9TSTM2CQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUDa2V5AgVfU0kzNwkBEUBleHRyTmF0aXZlKDEwNTgpAQkArAICCQEIcGlja19vbmUEBQZzb25nXzAFBnNvbmdfMQUGcmFuZF8xAICAgBACBV9TSTM3CQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUDa2V5AgVfU0k0MAkBEUBleHRyTmF0aXZlKDEwNTgpAQkArAICCQEIcGlja19vbmUEBQZzb25nXzAFBnNvbmdfMQUGcmFuZF8xAICAgCACBV9TSTQwCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUDa2V5AgVfU0k0MQkBEUBleHRyTmF0aXZlKDEwNTgpAQkArAICCQEIcGlja19vbmUEBQZzb25nXzAFBnNvbmdfMQUGcmFuZF8xAICAgEACBV9TSTQxCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUDa2V5AgVfU0k0MgkBEUBleHRyTmF0aXZlKDEwNTgpAQkArAICCQEIcGlja19vbmUEBQZzb25nXzAFBnNvbmdfMQUGcmFuZF8xAICAgIABAgVfU0k0MgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFA2tleQIFX1NJNDMJARFAZXh0ck5hdGl2ZSgxMDU4KQEJAKwCAgkBCHBpY2tfb25lBAUGc29uZ18wBQZzb25nXzEFBnJhbmRfMQCAgICAAgIFX1NJNDMJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQNrZXkCBV9TSTQ0CQERQGV4dHJOYXRpdmUoMTA1OCkBCQCsAgIJAQhwaWNrX29uZQQFBnNvbmdfMAUGc29uZ18xBQZyYW5kXzEAgICAgAQCBV9TSTQ0CQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUDa2V5AgVfU0k0NQkBEUBleHRyTmF0aXZlKDEwNTgpAQkArAICCQEIcGlja19vbmUEBQZzb25nXzAFBnNvbmdfMQUGcmFuZF8xAICAgIAIAgVfU0k0NQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFA2tleQIFX1NJNDYJARFAZXh0ck5hdGl2ZSgxMDU4KQEJAKwCAgkBCHBpY2tfb25lBAUGc29uZ18wBQZzb25nXzEFBnJhbmRfMQCAgICAEAIFX1NJNDYJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQNrZXkCBV9TSTQ3CQERQGV4dHJOYXRpdmUoMTA1OCkBCQCsAgIJAQhwaWNrX29uZQQFBnNvbmdfMAUGc29uZ18xBQZyYW5kXzEAgICAgCACBV9TSTQ3CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQgIBQFpBmNhbGxlcgVieXRlcwABBQRpZF9iBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BD2NoZWNrX3doaXRlbGlzdAEGY2FsbGVyAwkAAAIFBHRoaXMFBmNhbGxlcgYEByRtYXRjaDAJAKAIAQkArAICAgJXXwkA2AQBCAUGY2FsbGVyBWJ5dGVzAwkAAQIFByRtYXRjaDACB0Jvb2xlYW4EAXgFByRtYXRjaDAFAXgHDAFpAQ13aGl0ZWxpc3RfYWRkAQR1c2VyAwkBAiE9AgUEdGhpcwgFAWkGY2FsbGVyCQACAQIYQ2FsbGVyIGlzIG5vdCBkQXBwIG93bmVyCQCUCgIJAMwIAgkBDEJvb2xlYW5FbnRyeQIJAKwCAgICV18FBHVzZXIGBQNuaWwFBHVuaXQBaQEQd2hpdGVsaXN0X3JlbW92ZQEEdXNlcgMJAQIhPQIFBHRoaXMIBQFpBmNhbGxlcgkAAgECGENhbGxlciBpcyBub3QgZEFwcCBvd25lcgkAlAoCCQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgICV18FBHVzZXIFA25pbAUEdW5pdAFpARBzZXRfbWFya2V0X2ltYWdlAQN1cmwDCQEBIQEJAQ9jaGVja193aGl0ZWxpc3QBCAUBaQZjYWxsZXIJAAIBAhdDYWxsZXIgbm90IGluIHdoaXRlbGlzdAkAlAoCCQDMCAIJAQtTdHJpbmdFbnRyeQICEW1hcmtldF9pbWFnZV9saW5rBQN1cmwFA25pbAUEdW5pdAFpARBzZXRfcHJpY2VfaHlicmlkAwV0b2tlbgZhbW91bnQJaW5jcmVtZW50AwkBASEBCQEPY2hlY2tfd2hpdGVsaXN0AQgFAWkGY2FsbGVyCQACAQIXQ2FsbGVyIG5vdCBpbiB3aGl0ZWxpc3QJAJQKAgkAzAgCCQELU3RyaW5nRW50cnkCAhJwcmljZV9oeWJyaWRfdG9rZW4FBXRva2VuCQDMCAIJAQxJbnRlZ2VyRW50cnkCAhNwcmljZV9oeWJyaWRfYW1vdW50BQZhbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQICFnByaWNlX2h5YnJpZF9pbmNyZW1lbnQFCWluY3JlbWVudAUDbmlsBQR1bml0AWkBCm1pbnRfY2hvcmQDBWluZGV4BG5hbWUFbm90ZXMDCQEBIQEJAQ9jaGVja193aGl0ZWxpc3QBCAUBaQZjYWxsZXIJAAIBAhdDYWxsZXIgbm90IGluIHdoaXRlbGlzdAMJAQIhPQIJAJADAQUFbm90ZXMABQkAAgECEFdyb25nIG5vdGVzIHNpemUEAW4EByRtYXRjaDAJAJ8IAQIFY291bnQDCQABAgUHJG1hdGNoMAIDSW50BAFqBQckbWF0Y2gwBQFqAAAEA2tleQkBBnRvX2tleQEFBWluZGV4CQCUCgIJAMwIAgkBDEludGVnZXJFbnRyeQICBWNvdW50CQCWAwEJAMwIAgkAZAIFBWluZGV4AAEJAMwIAgUBbgUDbmlsCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUDa2V5AgNfQ0wFBG5hbWUJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUDa2V5AgNfQzAJAJEDAgUFbm90ZXMAAAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQNrZXkCA19DMQkAkQMCBQVub3RlcwABCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFA2tleQIDX0MyCQCRAwIFBW5vdGVzAAIJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUDa2V5AgNfQzMJAJEDAgUFbm90ZXMAAwkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQNrZXkCA19DNAkAkQMCBQVub3RlcwAEBQNuaWwFBHVuaXQBaQENbWludF9hcnBlZ2dpbwMFaW5kZXgEbmFtZQVub3RlcwMJAQEhAQkBD2NoZWNrX3doaXRlbGlzdAEIBQFpBmNhbGxlcgkAAgECF0NhbGxlciBub3QgaW4gd2hpdGVsaXN0AwkBAiE9AgkAkAMBBQVub3RlcwAQCQACAQIQV3Jvbmcgbm90ZXMgc2l6ZQQBbgQHJG1hdGNoMAkAnwgBAgVjb3VudAMJAAECBQckbWF0Y2gwAgNJbnQEAWoFByRtYXRjaDAFAWoAAAQDa2V5CQEGdG9fa2V5AQUFaW5kZXgJAJQKAgkAzAgCCQEMSW50ZWdlckVudHJ5AgIFY291bnQJAJYDAQkAzAgCCQBkAgUFaW5kZXgAAQkAzAgCBQFuBQNuaWwJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQNrZXkCA19BTAUEbmFtZQkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQNrZXkCBF9BMDAJAJEDAgUFbm90ZXMAAAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQNrZXkCBF9BMDEJAJEDAgUFbm90ZXMAAQkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQNrZXkCBF9BMDIJAJEDAgUFbm90ZXMAAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQNrZXkCBF9BMDMJAJEDAgUFbm90ZXMAAwkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQNrZXkCBF9BMDQJAJEDAgUFbm90ZXMABAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQNrZXkCBF9BMDUJAJEDAgUFbm90ZXMABQkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQNrZXkCBF9BMDYJAJEDAgUFbm90ZXMABgkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQNrZXkCBF9BMDcJAJEDAgUFbm90ZXMABwkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQNrZXkCBF9BMDgJAJEDAgUFbm90ZXMACAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQNrZXkCBF9BMDkJAJEDAgUFbm90ZXMACQkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQNrZXkCBF9BMTAJAJEDAgUFbm90ZXMACgkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQNrZXkCBF9BMTEJAJEDAgUFbm90ZXMACwkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQNrZXkCBF9BMTIJAJEDAgUFbm90ZXMADAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQNrZXkCBF9BMTMJAJEDAgUFbm90ZXMADQkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQNrZXkCBF9BMTQJAJEDAgUFbm90ZXMADgkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQNrZXkCBF9BMTUJAJEDAgUFbm90ZXMADwUDbmlsBQR1bml0AWkBC21pbnRfcmh5dGhtBAVpbmRleARuYW1lBXNjYWxlBW5vdGVzAwkBASEBCQEPY2hlY2tfd2hpdGVsaXN0AQgFAWkGY2FsbGVyCQACAQIXQ2FsbGVyIG5vdCBpbiB3aGl0ZWxpc3QDCQECIT0CCQCQAwEFBW5vdGVzABAJAAIBAhBXcm9uZyBub3RlcyBzaXplBAFuBAckbWF0Y2gwCQCfCAECBWNvdW50AwkAAQIFByRtYXRjaDACA0ludAQBagUHJG1hdGNoMAUBagAABANrZXkJAQZ0b19rZXkBBQVpbmRleAkAlAoCCQDMCAIJAQxJbnRlZ2VyRW50cnkCAgVjb3VudAkAlgMBCQDMCAIJAGQCBQVpbmRleAABCQDMCAIFAW4FA25pbAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFA2tleQIDX1JMBQRuYW1lCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFA2tleQIDX1JTBQVzY2FsZQkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQNrZXkCBF9SMDAJAJEDAgUFbm90ZXMAAAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQNrZXkCBF9SMDEJAJEDAgUFbm90ZXMAAQkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQNrZXkCBF9SMDIJAJEDAgUFbm90ZXMAAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQNrZXkCBF9SMDMJAJEDAgUFbm90ZXMAAwkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQNrZXkCBF9SMDQJAJEDAgUFbm90ZXMABAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQNrZXkCBF9SMDUJAJEDAgUFbm90ZXMABQkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQNrZXkCBF9SMDYJAJEDAgUFbm90ZXMABgkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQNrZXkCBF9SMDcJAJEDAgUFbm90ZXMABwkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQNrZXkCBF9SMDgJAJEDAgUFbm90ZXMACAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQNrZXkCBF9SMDkJAJEDAgUFbm90ZXMACQkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQNrZXkCBF9SMTAJAJEDAgUFbm90ZXMACgkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQNrZXkCBF9SMTEJAJEDAgUFbm90ZXMACwkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQNrZXkCBF9SMTIJAJEDAgUFbm90ZXMADAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQNrZXkCBF9SMTMJAJEDAgUFbm90ZXMADQkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQNrZXkCBF9SMTQJAJEDAgUFbm90ZXMADgkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQNrZXkCBF9SMTUJAJEDAgUFbm90ZXMADwUDbmlsBQR1bml0AWkBDWJ1cm5faW50ZXJuYWwBCGFzc2V0X2lkAwkBASEBCQEPY2hlY2tfd2hpdGVsaXN0AQgFAWkGY2FsbGVyCQACAQIXQ2FsbGVyIG5vdCBpbiB3aGl0ZWxpc3QEBWJ1cm4wCQD8BwQFFG5mdF9jcmVhdGlvbl9hZGRyZXNzAgdidXJuTkZUBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIJANkEAQUIYXNzZXRfaWQAAQUDbmlsAwkAAAIFBWJ1cm4wBQVidXJuMAkAlAoCBQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEEYnVybgADCQEBIQEJAQ9jaGVja193aGl0ZWxpc3QBCAUBaQZjYWxsZXIJAAIBAhdDYWxsZXIgbm90IGluIHdoaXRlbGlzdAQFYnVybjAJAPwHBAUUbmZ0X2NyZWF0aW9uX2FkZHJlc3MCB2J1cm5ORlQFA25pbAkAzAgCCQCRAwIIBQFpCHBheW1lbnRzAAAFA25pbAMJAAACBQVidXJuMAUFYnVybjAJAJQKAgUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBCW1pbnRfc29uZxUEbmFtZQhwYXJlbnRfMAhwYXJlbnRfMQNicG0IYmFyX3NpemUJYmVhdF9zaXplCHRvbmFsaXR5BmNob3JkcwhhcnBlZ2dpbw9raWNrX2luc3RydW1lbnQQc25hcmVfaW5zdHJ1bWVudBBoaWhhdF9pbnN0cnVtZW50D2Jhc3NfaW5zdHJ1bWVudA9iYWNrX2luc3RydW1lbnQPbGVhZF9pbnN0cnVtZW50DGtpY2tfcmh5dGhtcw1zbmFyZV9yaHl0aG1zDWhpaGF0X3JoeXRobXMMYmFzc19yaHl0aG1zDGJhY2tfcmh5dGhtcwxsZWFkX3JoeXRobXMDCQEBIQEJAQ9jaGVja193aGl0ZWxpc3QBCAUBaQZjYWxsZXIJAAIBAhdDYWxsZXIgbm90IGluIHdoaXRlbGlzdAMJAQIhPQIJAJADAQUGY2hvcmRzAAgJAAIBAhFXcm9uZyBjaG9yZHMgc2l6ZQMJAQIhPQIJAJADAQUMa2lja19yaHl0aG1zAAgJAAIBAhdXcm9uZyBraWNrIHJoeXRobXMgc2l6ZQMJAQIhPQIJAJADAQUNc25hcmVfcmh5dGhtcwAICQACAQIYV3Jvbmcgc25hcmUgcmh5dGhtcyBzaXplAwkBAiE9AgkAkAMBBQ1oaWhhdF9yaHl0aG1zAAgJAAIBAhhXcm9uZyBoaWhhdCByaHl0aG1zIHNpemUDCQECIT0CCQCQAwEFDGJhc3Nfcmh5dGhtcwAICQACAQIXV3JvbmcgYmFzcyByaHl0aG1zIHNpemUDCQECIT0CCQCQAwEFDGJhY2tfcmh5dGhtcwAICQACAQIXV3JvbmcgYmFjayByaHl0aG1zIHNpemUDCQECIT0CCQCQAwEFDGxlYWRfcmh5dGhtcwAICQACAQIXV3JvbmcgbGVhZCByaHl0aG1zIHNpemUEAW4EByRtYXRjaDAJAJ8IAQIFY291bnQDCQABAgUHJG1hdGNoMAIDSW50BAFqBQckbWF0Y2gwBQFqAAAECm5hbWVfc2hvcnQJAK8CAgUEbmFtZQAQBAtkZXNjcmlwdGlvbgUQbWludF9kZXNjcmlwdGlvbgQKY29sbGVjdGlvbgUPbWludF9jb2xsZWN0aW9uBAJpZAQHJG1hdGNoMAkA/AcEBRRuZnRfY3JlYXRpb25fYWRkcmVzcwIJY3JlYXRlTkZUCQDMCAIFCm5hbWVfc2hvcnQJAMwIAgULZGVzY3JpcHRpb24JAMwIAgkBEUBleHRyTmF0aXZlKDEwNTgpAQIRbWFya2V0X2ltYWdlX2xpbmsJAMwIAgUKY29sbGVjdGlvbgUDbmlsBQNuaWwDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAF4BQckbWF0Y2gwBQF4CQACAQITTkZUIGNyZWF0aW9uIGZhaWxlZAMJAAACBQJpZAUCaWQEA2tleQkBBnRvX2tleQEFAW4EC3R4X3RyYW5zZmVyAwkBAiE9AgUEdGhpcwgFAWkGY2FsbGVyCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQgIBQFpBmNhbGxlcgVieXRlcwABCQDZBAEFAmlkBQNuaWwFA25pbAkAlAoCCQDOCAIJAMwIAgkBDEludGVnZXJFbnRyeQICBWNvdW50CQBkAgUBbgABCQDMCAIJAQtTdHJpbmdFbnRyeQIFAmlkBQNrZXkJAMwIAgkBC1N0cmluZ0VudHJ5AgUDa2V5BQJpZAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQNrZXkCAl9HAAEJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQNrZXkCA19TTAUEbmFtZQkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQNrZXkCA19TTgAACQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUDa2V5AgRfU1AwBQhwYXJlbnRfMAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFA2tleQIEX1NQMQUIcGFyZW50XzEJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUDa2V5AgRfU0IwBQNicG0JAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUDa2V5AgRfU0IxBQhiYXJfc2l6ZQkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQNrZXkCBF9TQjIFCWJlYXRfc2l6ZQkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQNrZXkCA19TVAUIdG9uYWxpdHkJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQNrZXkCBF9TQzAJAJEDAgUGY2hvcmRzAAAJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQNrZXkCBF9TQzEJAJEDAgUGY2hvcmRzAAEJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQNrZXkCBF9TQzIJAJEDAgUGY2hvcmRzAAIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQNrZXkCBF9TQzMJAJEDAgUGY2hvcmRzAAMJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQNrZXkCBF9TQzQJAJEDAgUGY2hvcmRzAAQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQNrZXkCBF9TQzUJAJEDAgUGY2hvcmRzAAUJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQNrZXkCBF9TQzYJAJEDAgUGY2hvcmRzAAYJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQNrZXkCBF9TQzcJAJEDAgUGY2hvcmRzAAcJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQNrZXkCA19TQQUIYXJwZWdnaW8JAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQNrZXkCBF9TSTAFD2tpY2tfaW5zdHJ1bWVudAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFA2tleQIEX1NJMQUQc25hcmVfaW5zdHJ1bWVudAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFA2tleQIEX1NJMgUQaGloYXRfaW5zdHJ1bWVudAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFA2tleQIEX1NJMwUPYmFzc19pbnN0cnVtZW50CQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUDa2V5AgRfU0k0BQ9iYWNrX2luc3RydW1lbnQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQNrZXkCBF9TSTUFD2xlYWRfaW5zdHJ1bWVudAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFA2tleQIFX1NJMDAJAJEDAgUMa2lja19yaHl0aG1zAAAJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQNrZXkCBV9TSTAxCQCRAwIFDGtpY2tfcmh5dGhtcwABCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUDa2V5AgVfU0kwMgkAkQMCBQxraWNrX3JoeXRobXMAAgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFA2tleQIFX1NJMDMJAJEDAgUMa2lja19yaHl0aG1zAAMJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQNrZXkCBV9TSTA0CQCRAwIFDGtpY2tfcmh5dGhtcwAECQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUDa2V5AgVfU0kwNQkAkQMCBQxraWNrX3JoeXRobXMABQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFA2tleQIFX1NJMDYJAJEDAgUMa2lja19yaHl0aG1zAAYJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQNrZXkCBV9TSTA3CQCRAwIFDGtpY2tfcmh5dGhtcwAHCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUDa2V5AgVfU0kxMAkAkQMCBQ1zbmFyZV9yaHl0aG1zAAAJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQNrZXkCBV9TSTExCQCRAwIFDXNuYXJlX3JoeXRobXMAAQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFA2tleQIFX1NJMTIJAJEDAgUNc25hcmVfcmh5dGhtcwACCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUDa2V5AgVfU0kxMwkAkQMCBQ1zbmFyZV9yaHl0aG1zAAMJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQNrZXkCBV9TSTE0CQCRAwIFDXNuYXJlX3JoeXRobXMABAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFA2tleQIFX1NJMTUJAJEDAgUNc25hcmVfcmh5dGhtcwAFCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUDa2V5AgVfU0kxNgkAkQMCBQ1zbmFyZV9yaHl0aG1zAAYJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQNrZXkCBV9TSTE3CQCRAwIFDXNuYXJlX3JoeXRobXMABwkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFA2tleQIFX1NJMjAJAJEDAgUNaGloYXRfcmh5dGhtcwAACQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUDa2V5AgVfU0kyMQkAkQMCBQ1oaWhhdF9yaHl0aG1zAAEJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQNrZXkCBV9TSTIyCQCRAwIFDWhpaGF0X3JoeXRobXMAAgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFA2tleQIFX1NJMjMJAJEDAgUNaGloYXRfcmh5dGhtcwADCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUDa2V5AgVfU0kyNAkAkQMCBQ1oaWhhdF9yaHl0aG1zAAQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQNrZXkCBV9TSTI1CQCRAwIFDWhpaGF0X3JoeXRobXMABQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFA2tleQIFX1NJMjYJAJEDAgUNaGloYXRfcmh5dGhtcwAGCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUDa2V5AgVfU0kyNwkAkQMCBQ1oaWhhdF9yaHl0aG1zAAcJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQNrZXkCBV9TSTMwCQCRAwIFDGJhc3Nfcmh5dGhtcwAACQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUDa2V5AgVfU0kzMQkAkQMCBQxiYXNzX3JoeXRobXMAAQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFA2tleQIFX1NJMzIJAJEDAgUMYmFzc19yaHl0aG1zAAIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQNrZXkCBV9TSTMzCQCRAwIFDGJhc3Nfcmh5dGhtcwADCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUDa2V5AgVfU0kzNAkAkQMCBQxiYXNzX3JoeXRobXMABAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFA2tleQIFX1NJMzUJAJEDAgUMYmFzc19yaHl0aG1zAAUJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQNrZXkCBV9TSTM2CQCRAwIFDGJhc3Nfcmh5dGhtcwAGCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUDa2V5AgVfU0kzNwkAkQMCBQxiYXNzX3JoeXRobXMABwkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFA2tleQIFX1NJNDAJAJEDAgUMYmFja19yaHl0aG1zAAAJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQNrZXkCBV9TSTQxCQCRAwIFDGJhY2tfcmh5dGhtcwABCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUDa2V5AgVfU0k0MgkAkQMCBQxiYWNrX3JoeXRobXMAAgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFA2tleQIFX1NJNDMJAJEDAgUMYmFja19yaHl0aG1zAAMJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQNrZXkCBV9TSTQ0CQCRAwIFDGJhY2tfcmh5dGhtcwAECQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUDa2V5AgVfU0k0NQkAkQMCBQxiYWNrX3JoeXRobXMABQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFA2tleQIFX1NJNDYJAJEDAgUMYmFja19yaHl0aG1zAAYJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQNrZXkCBV9TSTQ3CQCRAwIFDGJhY2tfcmh5dGhtcwAHCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUDa2V5AgVfU0k1MAkAkQMCBQxsZWFkX3JoeXRobXMAAAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFA2tleQIFX1NJNTEJAJEDAgUMbGVhZF9yaHl0aG1zAAEJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQNrZXkCBV9TSTUyCQCRAwIFDGxlYWRfcmh5dGhtcwACCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUDa2V5AgVfU0k1MwkAkQMCBQxsZWFkX3JoeXRobXMAAwkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFA2tleQIFX1NJNTQJAJEDAgUMbGVhZF9yaHl0aG1zAAQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQNrZXkCBV9TSTU1CQCRAwIFDGxlYWRfcmh5dGhtcwAFCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUDa2V5AgVfU0k1NgkAkQMCBQxsZWFkX3JoeXRobXMABgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFA2tleQIFX1NJNTcJAJEDAgUMbGVhZF9yaHl0aG1zAAcFA25pbAULdHhfdHJhbnNmZXIFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQELbWludF9oeWJyaWQCBnNvbmdfMAZzb25nXzEEC2NhbGxlcl9hZGRyCQEHQWRkcmVzcwEICAUBaQZjYWxsZXIFYnl0ZXMECXNvbmdfMF9pZAkA2QQBCQERQGV4dHJOYXRpdmUoMTA1OCkBBQZzb25nXzAECXNvbmdfMV9pZAkA2QQBCQERQGV4dHJOYXRpdmUoMTA1OCkBBQZzb25nXzEEDHByaWNlX2Ftb3VudAkBEUBleHRyTmF0aXZlKDEwNTUpAQITcHJpY2VfaHlicmlkX2Ftb3VudAQLcHJpY2VfdG9rZW4JARFAZXh0ck5hdGl2ZSgxMDU4KQECEnByaWNlX2h5YnJpZF90b2tlbgQMcHJpY2VfY2hhbmdlCQEXaHlicmlkX2NhbGN1bGF0ZV9jaGFuZ2UDBQFpBQtwcmljZV90b2tlbgUMcHJpY2VfYW1vdW50AwkAZgIAAAUMcHJpY2VfY2hhbmdlCQACAQINV3JvbmcgcGF5bWVudAMJAAACBQlzb25nXzBfaWQFCXNvbmdfMV9pZAkAAgECGVNvbmdzIHNob3VsZCBiZSBkaWZmZXJlbnQDCQBmAgABCQDwBwIFC2NhbGxlcl9hZGRyBQlzb25nXzBfaWQJAAIBAhxDYWxsZXIgZG8gbm90IG93biBmaXJzdCBzb25nAwkAZgIAAQkA8AcCBQtjYWxsZXJfYWRkcgUJc29uZ18xX2lkCQACAQIdQ2FsbGVyIGRvIG5vdCBvd24gc2Vjb25kIHNvbmcECm1pbnRfY291bnQEByRtYXRjaDAJAJ8IAQIKbWludF9jb3VudAMJAAECBQckbWF0Y2gwAgNJbnQEAWoFByRtYXRjaDAFAWoAAAQPcHJpY2VfY291bnRfaW5jCQEMSW50ZWdlckVudHJ5AgIKbWludF9jb3VudAkAZAIFCm1pbnRfY291bnQAAQQOcHJpY2VfaW5jcmVhc2UDCQAAAgkAagIFCm1pbnRfY291bnQFFXByaWNlX2luY3JlYXNlX3BlcmlvZAkAZQIFFXByaWNlX2luY3JlYXNlX3BlcmlvZAABCQDMCAIFD3ByaWNlX2NvdW50X2luYwkAzAgCCQEMSW50ZWdlckVudHJ5AgITcHJpY2VfaHlicmlkX2Ftb3VudAkAZAIFDHByaWNlX2Ftb3VudAkBEUBleHRyTmF0aXZlKDEwNTUpAQIWcHJpY2VfaHlicmlkX2luY3JlbWVudAUDbmlsCQDMCAIFD3ByaWNlX2NvdW50X2luYwUDbmlsAwkAZgIFDHByaWNlX2NoYW5nZQAACQCUCgIJAM4IAgkAzggCCQEObWFrZV9oeWJyaWRfdHgDBQFpBQZzb25nXzAFBnNvbmdfMQUOcHJpY2VfaW5jcmVhc2UJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCAgFAWkGY2FsbGVyBWJ5dGVzBQxwcmljZV9jaGFuZ2UDCQAAAgULcHJpY2VfdG9rZW4CAAUEdW5pdAkA2QQBBQtwcmljZV90b2tlbgUDbmlsBQR1bml0CQCUCgIJAM4IAgkBDm1ha2VfaHlicmlkX3R4AwUBaQUGc29uZ18wBQZzb25nXzEFDnByaWNlX2luY3JlYXNlBQR1bml0AWkBFG1pbnRfaHlicmlkX2FuZF9idXJuAAMDAwkBAiE9AgkAkAMBCAUBaQhwYXltZW50cwACBgkBAiE9AggJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQAAQYJAQIhPQIICQCRAwIIBQFpCHBheW1lbnRzAAEGYW1vdW50AAEJAAIBAg1Xcm9uZyBwYXltZW50BAlzb25nXzBfaWQEByRtYXRjaDAICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAFiBQckbWF0Y2gwBQFiCQACAQINV3JvbmcgcGF5bWVudAQJc29uZ18xX2lkBAckbWF0Y2gwCAkAkQMCCAUBaQhwYXltZW50cwABB2Fzc2V0SWQDCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQBYgUHJG1hdGNoMAUBYgkAAgECDVdyb25nIHBheW1lbnQDCQAAAgUJc29uZ18wX2lkBQlzb25nXzFfaWQJAAIBAhlTb25ncyBzaG91bGQgYmUgZGlmZmVyZW50BAZzb25nXzAJARFAZXh0ck5hdGl2ZSgxMDU4KQEJANgEAQUJc29uZ18wX2lkBAZzb25nXzEJARFAZXh0ck5hdGl2ZSgxMDU4KQEJANgEAQUJc29uZ18xX2lkBAVidXJuMAkA/AcEBRRuZnRfY3JlYXRpb25fYWRkcmVzcwIHYnVybk5GVAUDbmlsCQDMCAIJAJEDAggFAWkIcGF5bWVudHMAAAUDbmlsAwkAAAIFBWJ1cm4wBQVidXJuMAQFYnVybjEJAPwHBAUUbmZ0X2NyZWF0aW9uX2FkZHJlc3MCB2J1cm5ORlQFA25pbAkAzAgCCQCRAwIIBQFpCHBheW1lbnRzAAEFA25pbAMJAAACBQVidXJuMQUFYnVybjEJAJQKAgkBDm1ha2VfaHlicmlkX3R4AwUBaQUGc29uZ18wBQZzb25nXzEFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AEaJS2Q==", "height": 2305940, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: FTu3oLFd66Wc2PFPbvJXRRwGJY3c3qwXhJuNQJpGYy62 Next: FHCbrQ9aFy2exrNF76P2XbdFFCAniBt5XCACDP9sQyte Diff:
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 6 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | - | let a = Address(base58' | |
4 | + | let a = Address(base58'3N9bHBAZKai5SwrywMPLQpKmNePRQiHhW9S') | |
5 | 5 | ||
6 | 6 | let b = 10 | |
7 | 7 | ||
8 | - | func c (d) = toBase58String(toBytes(d)) | |
8 | + | let c = "Clef genesis songs" | |
9 | + | ||
10 | + | let d = "Genesis Clef song. This melody is crafted to become your electronic jam. Use it on clef.one 💚🤍" | |
11 | + | ||
12 | + | let e = "Clef mixes" | |
13 | + | ||
14 | + | let f = "Clef mix. This melody was created by an algorithm. Enjoy this jam or use it on clef.one" | |
15 | + | ||
16 | + | func g (h) = toBase58String(toBytes(h)) | |
9 | 17 | ||
10 | 18 | ||
11 | - | func | |
19 | + | func i (j) = ((((j.transactionId + j.callerPublicKey) + lastBlock.generationSignature) + toBytes(lastBlock.timestamp)) + toBytes(lastBlock.height)) | |
12 | 20 | ||
13 | 21 | ||
14 | - | func | |
15 | - | let | |
16 | - | if ((0 > | |
17 | - | then -( | |
18 | - | else | |
22 | + | func k (l,m) = { | |
23 | + | let h = toInt(sha256_16Kb((l + toBytes(m)))) | |
24 | + | if ((0 > h)) | |
25 | + | then -(h) | |
26 | + | else h | |
19 | 27 | } | |
20 | 28 | ||
21 | 29 | ||
22 | - | func | |
23 | - | then | |
24 | - | else | |
30 | + | func n (o,p,q,r) = if ((((q / r) % 2) == 0)) | |
31 | + | then o | |
32 | + | else p | |
25 | 33 | ||
26 | 34 | ||
27 | - | func | |
35 | + | func s (j,t,u) = if ((size(j.payments) != 1)) | |
28 | 36 | then -1 | |
29 | 37 | else { | |
30 | - | let | |
31 | - | let | |
32 | - | let | |
33 | - | if ($isInstanceOf( | |
38 | + | let v = j.payments[0] | |
39 | + | let w = { | |
40 | + | let x = v.assetId | |
41 | + | if ($isInstanceOf(x, "ByteVector")) | |
34 | 42 | then { | |
35 | - | let | |
36 | - | toBase58String( | |
43 | + | let y = x | |
44 | + | toBase58String(y) | |
37 | 45 | } | |
38 | 46 | else "" | |
39 | 47 | } | |
40 | - | if (( | |
48 | + | if ((w != t)) | |
41 | 49 | then -1 | |
42 | - | else ( | |
50 | + | else (v.amount - u) | |
43 | 51 | } | |
44 | 52 | ||
45 | 53 | ||
46 | - | func | |
47 | - | let | |
48 | - | let | |
49 | - | if ($isInstanceOf( | |
54 | + | func z (j,A,B) = { | |
55 | + | let h = { | |
56 | + | let x = getInteger("count") | |
57 | + | if ($isInstanceOf(x, "Int")) | |
50 | 58 | then { | |
51 | - | let | |
52 | - | | |
59 | + | let C = x | |
60 | + | C | |
53 | 61 | } | |
54 | 62 | else 0 | |
55 | 63 | } | |
56 | - | let | |
57 | - | let | |
58 | - | let | |
59 | - | let | |
60 | - | let | |
61 | - | if ($isInstanceOf( | |
64 | + | let D = take(("Clef " + toString(h)), 16) | |
65 | + | let E = f | |
66 | + | let F = e | |
67 | + | let y = { | |
68 | + | let x = invoke(a, "createNFT", [D, E, getStringValue("market_image_link"), F], nil) | |
69 | + | if ($isInstanceOf(x, "String")) | |
62 | 70 | then { | |
63 | - | let | |
64 | - | | |
71 | + | let G = x | |
72 | + | G | |
65 | 73 | } | |
66 | 74 | else throw("NFT creation failed") | |
67 | 75 | } | |
68 | - | if (( | |
76 | + | if ((y == y)) | |
69 | 77 | then { | |
70 | - | let | |
71 | - | let | |
72 | - | let | |
73 | - | let | |
74 | - | let | |
75 | - | [IntegerEntry("count", ( | |
78 | + | let H = fromBase58String(y) | |
79 | + | let I = g(h) | |
80 | + | let l = i(j) | |
81 | + | let J = k(l, 0) | |
82 | + | let K = k(l, 1) | |
83 | + | [IntegerEntry("count", (h + 1)), StringEntry(y, I), StringEntry(I, y), IntegerEntry((I + "_G"), (max([getIntegerValue((A + "_G")), getIntegerValue((B + "_G"))]) + 1)), StringEntry((I + "_SL"), ""), IntegerEntry((I + "_SN"), J), StringEntry((I + "_SP0"), A), StringEntry((I + "_SP1"), B), IntegerEntry((I + "_SB0"), getIntegerValue((n(A, B, J, 1) + "_SB0"))), IntegerEntry((I + "_SB1"), getIntegerValue((n(A, B, J, 2) + "_SB1"))), IntegerEntry((I + "_SB2"), getIntegerValue((n(A, B, J, 4) + "_SB2"))), IntegerEntry((I + "_ST"), getIntegerValue((n(A, B, J, 8) + "_ST"))), StringEntry((I + "_SC0"), getStringValue((n(A, B, J, 16) + "_SC0"))), StringEntry((I + "_SC1"), getStringValue((n(A, B, J, 32) + "_SC1"))), StringEntry((I + "_SC2"), getStringValue((n(A, B, J, 64) + "_SC2"))), StringEntry((I + "_SC3"), getStringValue((n(A, B, J, 128) + "_SC3"))), StringEntry((I + "_SC4"), getStringValue((n(A, B, J, 512) + "_SC4"))), StringEntry((I + "_SC5"), getStringValue((n(A, B, J, 1024) + "_SC5"))), StringEntry((I + "_SC6"), getStringValue((n(A, B, J, 2048) + "_SC6"))), StringEntry((I + "_SC7"), getStringValue((n(A, B, J, 4096) + "_SC7"))), StringEntry((I + "_SA"), getStringValue((n(A, B, J, 8192) + "_SA"))), StringEntry((I + "_SI0"), getStringValue((n(A, B, J, 16384) + "_SI0"))), StringEntry((I + "_SI1"), getStringValue((n(A, B, J, 32768) + "_SI1"))), StringEntry((I + "_SI2"), getStringValue((n(A, B, J, 65536) + "_SI2"))), StringEntry((I + "_SI3"), getStringValue((n(A, B, J, 131072) + "_SI3"))), StringEntry((I + "_SI4"), getStringValue((n(A, B, J, 262144) + "_SI4"))), StringEntry((I + "_SI5"), getStringValue((n(A, B, J, 524288) + "_SI5"))), StringEntry((I + "_SI50"), getStringValue((n(A, B, J, 1048576) + "_SI50"))), StringEntry((I + "_SI51"), getStringValue((n(A, B, J, 2097152) + "_SI51"))), StringEntry((I + "_SI52"), getStringValue((n(A, B, J, 4194304) + "_SI52"))), StringEntry((I + "_SI53"), getStringValue((n(A, B, J, 8388608) + "_SI53"))), StringEntry((I + "_SI54"), getStringValue((n(A, B, J, 16777216) + "_SI54"))), StringEntry((I + "_SI55"), getStringValue((n(A, B, J, 33554432) + "_SI55"))), StringEntry((I + "_SI56"), getStringValue((n(A, B, J, 67108864) + "_SI56"))), StringEntry((I + "_SI57"), getStringValue((n(A, B, J, 134217728) + "_SI57"))), StringEntry((I + "_SI00"), getStringValue((n(A, B, J, 268435456) + "_SI00"))), StringEntry((I + "_SI01"), getStringValue((n(A, B, J, 536870912) + "_SI01"))), StringEntry((I + "_SI02"), getStringValue((n(A, B, J, 1073741824) + "_SI02"))), StringEntry((I + "_SI03"), getStringValue((n(A, B, J, 2147483648) + "_SI03"))), StringEntry((I + "_SI04"), getStringValue((n(A, B, J, 4294967296) + "_SI04"))), StringEntry((I + "_SI05"), getStringValue((n(A, B, J, 8589934592) + "_SI05"))), StringEntry((I + "_SI06"), getStringValue((n(A, B, K, 1) + "_SI06"))), StringEntry((I + "_SI07"), getStringValue((n(A, B, K, 2) + "_SI07"))), StringEntry((I + "_SI10"), getStringValue((n(A, B, K, 4) + "_SI10"))), StringEntry((I + "_SI11"), getStringValue((n(A, B, K, 8) + "_SI11"))), StringEntry((I + "_SI12"), getStringValue((n(A, B, K, 16) + "_SI12"))), StringEntry((I + "_SI13"), getStringValue((n(A, B, K, 32) + "_SI13"))), StringEntry((I + "_SI14"), getStringValue((n(A, B, K, 64) + "_SI14"))), StringEntry((I + "_SI15"), getStringValue((n(A, B, K, 128) + "_SI15"))), StringEntry((I + "_SI16"), getStringValue((n(A, B, K, 256) + "_SI16"))), StringEntry((I + "_SI17"), getStringValue((n(A, B, K, 512) + "_SI17"))), StringEntry((I + "_SI20"), getStringValue((n(A, B, K, 1024) + "_SI20"))), StringEntry((I + "_SI21"), getStringValue((n(A, B, K, 2048) + "_SI21"))), StringEntry((I + "_SI22"), getStringValue((n(A, B, K, 4096) + "_SI22"))), StringEntry((I + "_SI23"), getStringValue((n(A, B, K, 8192) + "_SI23"))), StringEntry((I + "_SI24"), getStringValue((n(A, B, K, 16384) + "_SI24"))), StringEntry((I + "_SI25"), getStringValue((n(A, B, K, 32768) + "_SI25"))), StringEntry((I + "_SI26"), getStringValue((n(A, B, K, 65536) + "_SI26"))), StringEntry((I + "_SI27"), getStringValue((n(A, B, K, 131072) + "_SI27"))), StringEntry((I + "_SI30"), getStringValue((n(A, B, K, 262144) + "_SI30"))), StringEntry((I + "_SI31"), getStringValue((n(A, B, K, 524288) + "_SI31"))), StringEntry((I + "_SI32"), getStringValue((n(A, B, K, 1048576) + "_SI32"))), StringEntry((I + "_SI33"), getStringValue((n(A, B, K, 2097152) + "_SI33"))), StringEntry((I + "_SI34"), getStringValue((n(A, B, K, 4194304) + "_SI34"))), StringEntry((I + "_SI35"), getStringValue((n(A, B, K, 8388608) + "_SI35"))), StringEntry((I + "_SI36"), getStringValue((n(A, B, K, 16777216) + "_SI36"))), StringEntry((I + "_SI37"), getStringValue((n(A, B, K, 33554432) + "_SI37"))), StringEntry((I + "_SI40"), getStringValue((n(A, B, K, 67108864) + "_SI40"))), StringEntry((I + "_SI41"), getStringValue((n(A, B, K, 134217728) + "_SI41"))), StringEntry((I + "_SI42"), getStringValue((n(A, B, K, 268435456) + "_SI42"))), StringEntry((I + "_SI43"), getStringValue((n(A, B, K, 536870912) + "_SI43"))), StringEntry((I + "_SI44"), getStringValue((n(A, B, K, 1073741824) + "_SI44"))), StringEntry((I + "_SI45"), getStringValue((n(A, B, K, 2147483648) + "_SI45"))), StringEntry((I + "_SI46"), getStringValue((n(A, B, K, 4294967296) + "_SI46"))), StringEntry((I + "_SI47"), getStringValue((n(A, B, K, 8589934592) + "_SI47"))), ScriptTransfer(Address(j.caller.bytes), 1, H)] | |
76 | 84 | } | |
77 | 85 | else throw("Strict value is not equal to itself.") | |
78 | 86 | } | |
79 | 87 | ||
80 | 88 | ||
81 | - | func | |
89 | + | func L (M) = if ((this == M)) | |
82 | 90 | then true | |
83 | 91 | else { | |
84 | - | let | |
85 | - | if ($isInstanceOf( | |
92 | + | let x = getBoolean(("W_" + toBase58String(M.bytes))) | |
93 | + | if ($isInstanceOf(x, "Boolean")) | |
86 | 94 | then { | |
87 | - | let | |
88 | - | | |
95 | + | let G = x | |
96 | + | G | |
89 | 97 | } | |
90 | 98 | else false | |
91 | 99 | } | |
92 | 100 | ||
93 | 101 | ||
94 | - | @Callable( | |
95 | - | func whitelist_add ( | |
102 | + | @Callable(j) | |
103 | + | func whitelist_add (N) = if ((this != j.caller)) | |
96 | 104 | then throw("Caller is not dApp owner") | |
97 | - | else $Tuple2([BooleanEntry(("W_" + | |
105 | + | else $Tuple2([BooleanEntry(("W_" + N), true)], unit) | |
98 | 106 | ||
99 | 107 | ||
100 | 108 | ||
101 | - | @Callable( | |
102 | - | func whitelist_remove ( | |
109 | + | @Callable(j) | |
110 | + | func whitelist_remove (N) = if ((this != j.caller)) | |
103 | 111 | then throw("Caller is not dApp owner") | |
104 | - | else $Tuple2([DeleteEntry(("W_" + | |
112 | + | else $Tuple2([DeleteEntry(("W_" + N))], unit) | |
105 | 113 | ||
106 | 114 | ||
107 | 115 | ||
108 | - | @Callable( | |
109 | - | func set_market_image ( | |
116 | + | @Callable(j) | |
117 | + | func set_market_image (O) = if (!(L(j.caller))) | |
110 | 118 | then throw("Caller not in whitelist") | |
111 | - | else $Tuple2([StringEntry("market_image_link", | |
119 | + | else $Tuple2([StringEntry("market_image_link", O)], unit) | |
112 | 120 | ||
113 | 121 | ||
114 | 122 | ||
115 | - | @Callable( | |
116 | - | func set_price_hybrid ( | |
123 | + | @Callable(j) | |
124 | + | func set_price_hybrid (t,u,P) = if (!(L(j.caller))) | |
117 | 125 | then throw("Caller not in whitelist") | |
118 | - | else $Tuple2([StringEntry("price_hybrid_token", | |
126 | + | else $Tuple2([StringEntry("price_hybrid_token", t), IntegerEntry("price_hybrid_amount", u), IntegerEntry("price_hybrid_increment", P)], unit) | |
119 | 127 | ||
120 | 128 | ||
121 | 129 | ||
122 | - | @Callable( | |
123 | - | func mint_chord ( | |
130 | + | @Callable(j) | |
131 | + | func mint_chord (Q,R,S) = if (!(L(j.caller))) | |
124 | 132 | then throw("Caller not in whitelist") | |
125 | - | else if ((size( | |
133 | + | else if ((size(S) != 5)) | |
126 | 134 | then throw("Wrong notes size") | |
127 | 135 | else { | |
128 | - | let | |
129 | - | let | |
130 | - | if ($isInstanceOf( | |
136 | + | let h = { | |
137 | + | let x = getInteger("count") | |
138 | + | if ($isInstanceOf(x, "Int")) | |
131 | 139 | then { | |
132 | - | let | |
133 | - | | |
140 | + | let C = x | |
141 | + | C | |
134 | 142 | } | |
135 | 143 | else 0 | |
136 | 144 | } | |
137 | - | let | |
138 | - | $Tuple2([IntegerEntry("count", max([( | |
145 | + | let I = g(Q) | |
146 | + | $Tuple2([IntegerEntry("count", max([(Q + 1), h])), StringEntry((I + "_CL"), R), IntegerEntry((I + "_C0"), S[0]), IntegerEntry((I + "_C1"), S[1]), IntegerEntry((I + "_C2"), S[2]), IntegerEntry((I + "_C3"), S[3]), IntegerEntry((I + "_C4"), S[4])], unit) | |
139 | 147 | } | |
140 | 148 | ||
141 | 149 | ||
142 | 150 | ||
143 | - | @Callable( | |
144 | - | func mint_arpeggio ( | |
151 | + | @Callable(j) | |
152 | + | func mint_arpeggio (Q,R,S) = if (!(L(j.caller))) | |
145 | 153 | then throw("Caller not in whitelist") | |
146 | - | else if ((size( | |
154 | + | else if ((size(S) != 16)) | |
147 | 155 | then throw("Wrong notes size") | |
148 | 156 | else { | |
149 | - | let | |
150 | - | let | |
151 | - | if ($isInstanceOf( | |
157 | + | let h = { | |
158 | + | let x = getInteger("count") | |
159 | + | if ($isInstanceOf(x, "Int")) | |
152 | 160 | then { | |
153 | - | let | |
154 | - | | |
161 | + | let C = x | |
162 | + | C | |
155 | 163 | } | |
156 | 164 | else 0 | |
157 | 165 | } | |
158 | - | let | |
159 | - | $Tuple2([IntegerEntry("count", max([( | |
166 | + | let I = g(Q) | |
167 | + | $Tuple2([IntegerEntry("count", max([(Q + 1), h])), StringEntry((I + "_AL"), R), IntegerEntry((I + "_A00"), S[0]), IntegerEntry((I + "_A01"), S[1]), IntegerEntry((I + "_A02"), S[2]), IntegerEntry((I + "_A03"), S[3]), IntegerEntry((I + "_A04"), S[4]), IntegerEntry((I + "_A05"), S[5]), IntegerEntry((I + "_A06"), S[6]), IntegerEntry((I + "_A07"), S[7]), IntegerEntry((I + "_A08"), S[8]), IntegerEntry((I + "_A09"), S[9]), IntegerEntry((I + "_A10"), S[10]), IntegerEntry((I + "_A11"), S[11]), IntegerEntry((I + "_A12"), S[12]), IntegerEntry((I + "_A13"), S[13]), IntegerEntry((I + "_A14"), S[14]), IntegerEntry((I + "_A15"), S[15])], unit) | |
160 | 168 | } | |
161 | 169 | ||
162 | 170 | ||
163 | 171 | ||
164 | - | @Callable( | |
165 | - | func mint_rhythm ( | |
172 | + | @Callable(j) | |
173 | + | func mint_rhythm (Q,R,T,S) = if (!(L(j.caller))) | |
166 | 174 | then throw("Caller not in whitelist") | |
167 | - | else if ((size( | |
175 | + | else if ((size(S) != 16)) | |
168 | 176 | then throw("Wrong notes size") | |
169 | 177 | else { | |
170 | - | let | |
171 | - | let | |
172 | - | if ($isInstanceOf( | |
178 | + | let h = { | |
179 | + | let x = getInteger("count") | |
180 | + | if ($isInstanceOf(x, "Int")) | |
173 | 181 | then { | |
174 | - | let | |
175 | - | | |
182 | + | let C = x | |
183 | + | C | |
176 | 184 | } | |
177 | 185 | else 0 | |
178 | 186 | } | |
179 | - | let | |
180 | - | $Tuple2([IntegerEntry("count", max([( | |
187 | + | let I = g(Q) | |
188 | + | $Tuple2([IntegerEntry("count", max([(Q + 1), h])), StringEntry((I + "_RL"), R), IntegerEntry((I + "_RS"), T), IntegerEntry((I + "_R00"), S[0]), IntegerEntry((I + "_R01"), S[1]), IntegerEntry((I + "_R02"), S[2]), IntegerEntry((I + "_R03"), S[3]), IntegerEntry((I + "_R04"), S[4]), IntegerEntry((I + "_R05"), S[5]), IntegerEntry((I + "_R06"), S[6]), IntegerEntry((I + "_R07"), S[7]), IntegerEntry((I + "_R08"), S[8]), IntegerEntry((I + "_R09"), S[9]), IntegerEntry((I + "_R10"), S[10]), IntegerEntry((I + "_R11"), S[11]), IntegerEntry((I + "_R12"), S[12]), IntegerEntry((I + "_R13"), S[13]), IntegerEntry((I + "_R14"), S[14]), IntegerEntry((I + "_R15"), S[15])], unit) | |
181 | 189 | } | |
182 | 190 | ||
183 | 191 | ||
184 | 192 | ||
185 | - | @Callable( | |
186 | - | func | |
193 | + | @Callable(j) | |
194 | + | func burn_internal (U) = if (!(L(j.caller))) | |
187 | 195 | then throw("Caller not in whitelist") | |
188 | - | else if ((size(W) != 8)) | |
196 | + | else { | |
197 | + | let V = invoke(a, "burnNFT", nil, [AttachedPayment(fromBase58String(U), 1)]) | |
198 | + | if ((V == V)) | |
199 | + | then $Tuple2(nil, unit) | |
200 | + | else throw("Strict value is not equal to itself.") | |
201 | + | } | |
202 | + | ||
203 | + | ||
204 | + | ||
205 | + | @Callable(j) | |
206 | + | func burn () = if (!(L(j.caller))) | |
207 | + | then throw("Caller not in whitelist") | |
208 | + | else { | |
209 | + | let V = invoke(a, "burnNFT", nil, [j.payments[0]]) | |
210 | + | if ((V == V)) | |
211 | + | then $Tuple2(nil, unit) | |
212 | + | else throw("Strict value is not equal to itself.") | |
213 | + | } | |
214 | + | ||
215 | + | ||
216 | + | ||
217 | + | @Callable(j) | |
218 | + | func mint_song (R,W,X,Y,Z,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap) = if (!(L(j.caller))) | |
219 | + | then throw("Caller not in whitelist") | |
220 | + | else if ((size(ac) != 8)) | |
189 | 221 | then throw("Wrong chords size") | |
190 | - | else if ((size( | |
222 | + | else if ((size(ak) != 8)) | |
191 | 223 | then throw("Wrong kick rhythms size") | |
192 | - | else if ((size( | |
224 | + | else if ((size(al) != 8)) | |
193 | 225 | then throw("Wrong snare rhythms size") | |
194 | - | else if ((size( | |
226 | + | else if ((size(am) != 8)) | |
195 | 227 | then throw("Wrong hihat rhythms size") | |
196 | - | else if ((size( | |
228 | + | else if ((size(an) != 8)) | |
197 | 229 | then throw("Wrong bass rhythms size") | |
198 | - | else if ((size( | |
230 | + | else if ((size(ao) != 8)) | |
199 | 231 | then throw("Wrong back rhythms size") | |
200 | - | else if ((size( | |
232 | + | else if ((size(ap) != 8)) | |
201 | 233 | then throw("Wrong lead rhythms size") | |
202 | 234 | else { | |
203 | - | let | |
204 | - | let | |
205 | - | if ($isInstanceOf( | |
235 | + | let h = { | |
236 | + | let x = getInteger("count") | |
237 | + | if ($isInstanceOf(x, "Int")) | |
206 | 238 | then { | |
207 | - | let | |
208 | - | | |
239 | + | let C = x | |
240 | + | C | |
209 | 241 | } | |
210 | 242 | else 0 | |
211 | 243 | } | |
212 | - | let | |
213 | - | let | |
214 | - | let | |
215 | - | let | |
216 | - | let | |
217 | - | if ($isInstanceOf( | |
244 | + | let D = take(R, 16) | |
245 | + | let E = d | |
246 | + | let F = c | |
247 | + | let y = { | |
248 | + | let x = invoke(a, "createNFT", [D, E, getStringValue("market_image_link"), F], nil) | |
249 | + | if ($isInstanceOf(x, "String")) | |
218 | 250 | then { | |
219 | - | let | |
220 | - | | |
251 | + | let G = x | |
252 | + | G | |
221 | 253 | } | |
222 | 254 | else throw("NFT creation failed") | |
223 | 255 | } | |
224 | - | if (( | |
256 | + | if ((y == y)) | |
225 | 257 | then { | |
226 | - | let | |
227 | - | let | |
228 | - | then [ScriptTransfer(Address( | |
258 | + | let I = g(h) | |
259 | + | let aq = if ((this != j.caller)) | |
260 | + | then [ScriptTransfer(Address(j.caller.bytes), 1, fromBase58String(y))] | |
229 | 261 | else nil | |
230 | - | $Tuple2(([IntegerEntry("count", ( | |
262 | + | $Tuple2(([IntegerEntry("count", (h + 1)), StringEntry(y, I), StringEntry(I, y), IntegerEntry((I + "_G"), 1), StringEntry((I + "_SL"), R), IntegerEntry((I + "_SN"), 0), StringEntry((I + "_SP0"), W), StringEntry((I + "_SP1"), X), IntegerEntry((I + "_SB0"), Y), IntegerEntry((I + "_SB1"), Z), IntegerEntry((I + "_SB2"), aa), IntegerEntry((I + "_ST"), ab), StringEntry((I + "_SC0"), ac[0]), StringEntry((I + "_SC1"), ac[1]), StringEntry((I + "_SC2"), ac[2]), StringEntry((I + "_SC3"), ac[3]), StringEntry((I + "_SC4"), ac[4]), StringEntry((I + "_SC5"), ac[5]), StringEntry((I + "_SC6"), ac[6]), StringEntry((I + "_SC7"), ac[7]), StringEntry((I + "_SA"), ad), StringEntry((I + "_SI0"), ae), StringEntry((I + "_SI1"), af), StringEntry((I + "_SI2"), ag), StringEntry((I + "_SI3"), ah), StringEntry((I + "_SI4"), ai), StringEntry((I + "_SI5"), aj), StringEntry((I + "_SI00"), ak[0]), StringEntry((I + "_SI01"), ak[1]), StringEntry((I + "_SI02"), ak[2]), StringEntry((I + "_SI03"), ak[3]), StringEntry((I + "_SI04"), ak[4]), StringEntry((I + "_SI05"), ak[5]), StringEntry((I + "_SI06"), ak[6]), StringEntry((I + "_SI07"), ak[7]), StringEntry((I + "_SI10"), al[0]), StringEntry((I + "_SI11"), al[1]), StringEntry((I + "_SI12"), al[2]), StringEntry((I + "_SI13"), al[3]), StringEntry((I + "_SI14"), al[4]), StringEntry((I + "_SI15"), al[5]), StringEntry((I + "_SI16"), al[6]), StringEntry((I + "_SI17"), al[7]), StringEntry((I + "_SI20"), am[0]), StringEntry((I + "_SI21"), am[1]), StringEntry((I + "_SI22"), am[2]), StringEntry((I + "_SI23"), am[3]), StringEntry((I + "_SI24"), am[4]), StringEntry((I + "_SI25"), am[5]), StringEntry((I + "_SI26"), am[6]), StringEntry((I + "_SI27"), am[7]), StringEntry((I + "_SI30"), an[0]), StringEntry((I + "_SI31"), an[1]), StringEntry((I + "_SI32"), an[2]), StringEntry((I + "_SI33"), an[3]), StringEntry((I + "_SI34"), an[4]), StringEntry((I + "_SI35"), an[5]), StringEntry((I + "_SI36"), an[6]), StringEntry((I + "_SI37"), an[7]), StringEntry((I + "_SI40"), ao[0]), StringEntry((I + "_SI41"), ao[1]), StringEntry((I + "_SI42"), ao[2]), StringEntry((I + "_SI43"), ao[3]), StringEntry((I + "_SI44"), ao[4]), StringEntry((I + "_SI45"), ao[5]), StringEntry((I + "_SI46"), ao[6]), StringEntry((I + "_SI47"), ao[7]), StringEntry((I + "_SI50"), ap[0]), StringEntry((I + "_SI51"), ap[1]), StringEntry((I + "_SI52"), ap[2]), StringEntry((I + "_SI53"), ap[3]), StringEntry((I + "_SI54"), ap[4]), StringEntry((I + "_SI55"), ap[5]), StringEntry((I + "_SI56"), ap[6]), StringEntry((I + "_SI57"), ap[7])] ++ aq), unit) | |
231 | 263 | } | |
232 | 264 | else throw("Strict value is not equal to itself.") | |
233 | 265 | } | |
234 | 266 | ||
235 | 267 | ||
236 | 268 | ||
237 | - | @Callable( | |
238 | - | func mint_hybrid ( | |
239 | - | let | |
240 | - | let | |
241 | - | let | |
242 | - | let | |
243 | - | let | |
244 | - | let | |
245 | - | if ((0 > | |
269 | + | @Callable(j) | |
270 | + | func mint_hybrid (A,B) = { | |
271 | + | let ar = Address(j.caller.bytes) | |
272 | + | let as = fromBase58String(getStringValue(A)) | |
273 | + | let at = fromBase58String(getStringValue(B)) | |
274 | + | let au = getIntegerValue("price_hybrid_amount") | |
275 | + | let av = getStringValue("price_hybrid_token") | |
276 | + | let aw = s(j, av, au) | |
277 | + | if ((0 > aw)) | |
246 | 278 | then throw("Wrong payment") | |
247 | - | else if (( | |
279 | + | else if ((as == at)) | |
248 | 280 | then throw("Songs should be different") | |
249 | - | else if ((1 > assetBalance( | |
281 | + | else if ((1 > assetBalance(ar, as))) | |
250 | 282 | then throw("Caller do not own first song") | |
251 | - | else if ((1 > assetBalance( | |
283 | + | else if ((1 > assetBalance(ar, at))) | |
252 | 284 | then throw("Caller do not own second song") | |
253 | 285 | else { | |
254 | - | let | |
255 | - | let | |
256 | - | if ($isInstanceOf( | |
286 | + | let ax = { | |
287 | + | let x = getInteger("mint_count") | |
288 | + | if ($isInstanceOf(x, "Int")) | |
257 | 289 | then { | |
258 | - | let | |
259 | - | | |
290 | + | let C = x | |
291 | + | C | |
260 | 292 | } | |
261 | 293 | else 0 | |
262 | 294 | } | |
263 | - | let | |
264 | - | let | |
265 | - | then [ | |
266 | - | else [ | |
267 | - | if (( | |
268 | - | then $Tuple2((( | |
295 | + | let ay = IntegerEntry("mint_count", (ax + 1)) | |
296 | + | let az = if (((ax % b) == (b - 1))) | |
297 | + | then [ay, IntegerEntry("price_hybrid_amount", (au + getIntegerValue("price_hybrid_increment")))] | |
298 | + | else [ay] | |
299 | + | if ((aw > 0)) | |
300 | + | then $Tuple2(((z(j, A, B) ++ az) ++ [ScriptTransfer(Address(j.caller.bytes), aw, if ((av == "")) | |
269 | 301 | then unit | |
270 | - | else fromBase58String( | |
271 | - | else $Tuple2(( | |
302 | + | else fromBase58String(av))]), unit) | |
303 | + | else $Tuple2((z(j, A, B) ++ az), unit) | |
272 | 304 | } | |
273 | 305 | } | |
274 | 306 | ||
275 | 307 | ||
276 | 308 | ||
277 | - | @Callable( | |
278 | - | func mint_hybrid_and_burn () = if (if (if ((size( | |
309 | + | @Callable(j) | |
310 | + | func mint_hybrid_and_burn () = if (if (if ((size(j.payments) != 2)) | |
279 | 311 | then true | |
280 | - | else ( | |
312 | + | else (j.payments[0].amount != 1)) | |
281 | 313 | then true | |
282 | - | else ( | |
314 | + | else (j.payments[1].amount != 1)) | |
283 | 315 | then throw("Wrong payment") | |
284 | 316 | else { | |
285 | - | let | |
286 | - | let | |
287 | - | if ($isInstanceOf( | |
317 | + | let as = { | |
318 | + | let x = j.payments[0].assetId | |
319 | + | if ($isInstanceOf(x, "ByteVector")) | |
288 | 320 | then { | |
289 | - | let | |
290 | - | | |
321 | + | let aA = x | |
322 | + | aA | |
291 | 323 | } | |
292 | 324 | else throw("Wrong payment") | |
293 | 325 | } | |
294 | - | let | |
295 | - | let | |
296 | - | if ($isInstanceOf( | |
326 | + | let at = { | |
327 | + | let x = j.payments[1].assetId | |
328 | + | if ($isInstanceOf(x, "ByteVector")) | |
297 | 329 | then { | |
298 | - | let | |
299 | - | | |
330 | + | let aA = x | |
331 | + | aA | |
300 | 332 | } | |
301 | 333 | else throw("Wrong payment") | |
302 | 334 | } | |
303 | - | if (( | |
335 | + | if ((as == at)) | |
304 | 336 | then throw("Songs should be different") | |
305 | 337 | else { | |
306 | - | let | |
307 | - | let | |
308 | - | let | |
309 | - | if (( | |
338 | + | let A = getStringValue(toBase58String(as)) | |
339 | + | let B = getStringValue(toBase58String(at)) | |
340 | + | let V = invoke(a, "burnNFT", nil, [j.payments[0]]) | |
341 | + | if ((V == V)) | |
310 | 342 | then { | |
311 | - | let | |
312 | - | if (( | |
313 | - | then $Tuple2( | |
343 | + | let aB = invoke(a, "burnNFT", nil, [j.payments[1]]) | |
344 | + | if ((aB == aB)) | |
345 | + | then $Tuple2(z(j, A, B), unit) | |
314 | 346 | else throw("Strict value is not equal to itself.") | |
315 | 347 | } | |
316 | 348 | else throw("Strict value is not equal to itself.") |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 6 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | - | let a = Address(base58' | |
4 | + | let a = Address(base58'3N9bHBAZKai5SwrywMPLQpKmNePRQiHhW9S') | |
5 | 5 | ||
6 | 6 | let b = 10 | |
7 | 7 | ||
8 | - | func c (d) = toBase58String(toBytes(d)) | |
8 | + | let c = "Clef genesis songs" | |
9 | + | ||
10 | + | let d = "Genesis Clef song. This melody is crafted to become your electronic jam. Use it on clef.one 💚🤍" | |
11 | + | ||
12 | + | let e = "Clef mixes" | |
13 | + | ||
14 | + | let f = "Clef mix. This melody was created by an algorithm. Enjoy this jam or use it on clef.one" | |
15 | + | ||
16 | + | func g (h) = toBase58String(toBytes(h)) | |
9 | 17 | ||
10 | 18 | ||
11 | - | func | |
19 | + | func i (j) = ((((j.transactionId + j.callerPublicKey) + lastBlock.generationSignature) + toBytes(lastBlock.timestamp)) + toBytes(lastBlock.height)) | |
12 | 20 | ||
13 | 21 | ||
14 | - | func | |
15 | - | let | |
16 | - | if ((0 > | |
17 | - | then -( | |
18 | - | else | |
22 | + | func k (l,m) = { | |
23 | + | let h = toInt(sha256_16Kb((l + toBytes(m)))) | |
24 | + | if ((0 > h)) | |
25 | + | then -(h) | |
26 | + | else h | |
19 | 27 | } | |
20 | 28 | ||
21 | 29 | ||
22 | - | func | |
23 | - | then | |
24 | - | else | |
30 | + | func n (o,p,q,r) = if ((((q / r) % 2) == 0)) | |
31 | + | then o | |
32 | + | else p | |
25 | 33 | ||
26 | 34 | ||
27 | - | func | |
35 | + | func s (j,t,u) = if ((size(j.payments) != 1)) | |
28 | 36 | then -1 | |
29 | 37 | else { | |
30 | - | let | |
31 | - | let | |
32 | - | let | |
33 | - | if ($isInstanceOf( | |
38 | + | let v = j.payments[0] | |
39 | + | let w = { | |
40 | + | let x = v.assetId | |
41 | + | if ($isInstanceOf(x, "ByteVector")) | |
34 | 42 | then { | |
35 | - | let | |
36 | - | toBase58String( | |
43 | + | let y = x | |
44 | + | toBase58String(y) | |
37 | 45 | } | |
38 | 46 | else "" | |
39 | 47 | } | |
40 | - | if (( | |
48 | + | if ((w != t)) | |
41 | 49 | then -1 | |
42 | - | else ( | |
50 | + | else (v.amount - u) | |
43 | 51 | } | |
44 | 52 | ||
45 | 53 | ||
46 | - | func | |
47 | - | let | |
48 | - | let | |
49 | - | if ($isInstanceOf( | |
54 | + | func z (j,A,B) = { | |
55 | + | let h = { | |
56 | + | let x = getInteger("count") | |
57 | + | if ($isInstanceOf(x, "Int")) | |
50 | 58 | then { | |
51 | - | let | |
52 | - | | |
59 | + | let C = x | |
60 | + | C | |
53 | 61 | } | |
54 | 62 | else 0 | |
55 | 63 | } | |
56 | - | let | |
57 | - | let | |
58 | - | let | |
59 | - | let | |
60 | - | let | |
61 | - | if ($isInstanceOf( | |
64 | + | let D = take(("Clef " + toString(h)), 16) | |
65 | + | let E = f | |
66 | + | let F = e | |
67 | + | let y = { | |
68 | + | let x = invoke(a, "createNFT", [D, E, getStringValue("market_image_link"), F], nil) | |
69 | + | if ($isInstanceOf(x, "String")) | |
62 | 70 | then { | |
63 | - | let | |
64 | - | | |
71 | + | let G = x | |
72 | + | G | |
65 | 73 | } | |
66 | 74 | else throw("NFT creation failed") | |
67 | 75 | } | |
68 | - | if (( | |
76 | + | if ((y == y)) | |
69 | 77 | then { | |
70 | - | let | |
71 | - | let | |
72 | - | let | |
73 | - | let | |
74 | - | let | |
75 | - | [IntegerEntry("count", ( | |
78 | + | let H = fromBase58String(y) | |
79 | + | let I = g(h) | |
80 | + | let l = i(j) | |
81 | + | let J = k(l, 0) | |
82 | + | let K = k(l, 1) | |
83 | + | [IntegerEntry("count", (h + 1)), StringEntry(y, I), StringEntry(I, y), IntegerEntry((I + "_G"), (max([getIntegerValue((A + "_G")), getIntegerValue((B + "_G"))]) + 1)), StringEntry((I + "_SL"), ""), IntegerEntry((I + "_SN"), J), StringEntry((I + "_SP0"), A), StringEntry((I + "_SP1"), B), IntegerEntry((I + "_SB0"), getIntegerValue((n(A, B, J, 1) + "_SB0"))), IntegerEntry((I + "_SB1"), getIntegerValue((n(A, B, J, 2) + "_SB1"))), IntegerEntry((I + "_SB2"), getIntegerValue((n(A, B, J, 4) + "_SB2"))), IntegerEntry((I + "_ST"), getIntegerValue((n(A, B, J, 8) + "_ST"))), StringEntry((I + "_SC0"), getStringValue((n(A, B, J, 16) + "_SC0"))), StringEntry((I + "_SC1"), getStringValue((n(A, B, J, 32) + "_SC1"))), StringEntry((I + "_SC2"), getStringValue((n(A, B, J, 64) + "_SC2"))), StringEntry((I + "_SC3"), getStringValue((n(A, B, J, 128) + "_SC3"))), StringEntry((I + "_SC4"), getStringValue((n(A, B, J, 512) + "_SC4"))), StringEntry((I + "_SC5"), getStringValue((n(A, B, J, 1024) + "_SC5"))), StringEntry((I + "_SC6"), getStringValue((n(A, B, J, 2048) + "_SC6"))), StringEntry((I + "_SC7"), getStringValue((n(A, B, J, 4096) + "_SC7"))), StringEntry((I + "_SA"), getStringValue((n(A, B, J, 8192) + "_SA"))), StringEntry((I + "_SI0"), getStringValue((n(A, B, J, 16384) + "_SI0"))), StringEntry((I + "_SI1"), getStringValue((n(A, B, J, 32768) + "_SI1"))), StringEntry((I + "_SI2"), getStringValue((n(A, B, J, 65536) + "_SI2"))), StringEntry((I + "_SI3"), getStringValue((n(A, B, J, 131072) + "_SI3"))), StringEntry((I + "_SI4"), getStringValue((n(A, B, J, 262144) + "_SI4"))), StringEntry((I + "_SI5"), getStringValue((n(A, B, J, 524288) + "_SI5"))), StringEntry((I + "_SI50"), getStringValue((n(A, B, J, 1048576) + "_SI50"))), StringEntry((I + "_SI51"), getStringValue((n(A, B, J, 2097152) + "_SI51"))), StringEntry((I + "_SI52"), getStringValue((n(A, B, J, 4194304) + "_SI52"))), StringEntry((I + "_SI53"), getStringValue((n(A, B, J, 8388608) + "_SI53"))), StringEntry((I + "_SI54"), getStringValue((n(A, B, J, 16777216) + "_SI54"))), StringEntry((I + "_SI55"), getStringValue((n(A, B, J, 33554432) + "_SI55"))), StringEntry((I + "_SI56"), getStringValue((n(A, B, J, 67108864) + "_SI56"))), StringEntry((I + "_SI57"), getStringValue((n(A, B, J, 134217728) + "_SI57"))), StringEntry((I + "_SI00"), getStringValue((n(A, B, J, 268435456) + "_SI00"))), StringEntry((I + "_SI01"), getStringValue((n(A, B, J, 536870912) + "_SI01"))), StringEntry((I + "_SI02"), getStringValue((n(A, B, J, 1073741824) + "_SI02"))), StringEntry((I + "_SI03"), getStringValue((n(A, B, J, 2147483648) + "_SI03"))), StringEntry((I + "_SI04"), getStringValue((n(A, B, J, 4294967296) + "_SI04"))), StringEntry((I + "_SI05"), getStringValue((n(A, B, J, 8589934592) + "_SI05"))), StringEntry((I + "_SI06"), getStringValue((n(A, B, K, 1) + "_SI06"))), StringEntry((I + "_SI07"), getStringValue((n(A, B, K, 2) + "_SI07"))), StringEntry((I + "_SI10"), getStringValue((n(A, B, K, 4) + "_SI10"))), StringEntry((I + "_SI11"), getStringValue((n(A, B, K, 8) + "_SI11"))), StringEntry((I + "_SI12"), getStringValue((n(A, B, K, 16) + "_SI12"))), StringEntry((I + "_SI13"), getStringValue((n(A, B, K, 32) + "_SI13"))), StringEntry((I + "_SI14"), getStringValue((n(A, B, K, 64) + "_SI14"))), StringEntry((I + "_SI15"), getStringValue((n(A, B, K, 128) + "_SI15"))), StringEntry((I + "_SI16"), getStringValue((n(A, B, K, 256) + "_SI16"))), StringEntry((I + "_SI17"), getStringValue((n(A, B, K, 512) + "_SI17"))), StringEntry((I + "_SI20"), getStringValue((n(A, B, K, 1024) + "_SI20"))), StringEntry((I + "_SI21"), getStringValue((n(A, B, K, 2048) + "_SI21"))), StringEntry((I + "_SI22"), getStringValue((n(A, B, K, 4096) + "_SI22"))), StringEntry((I + "_SI23"), getStringValue((n(A, B, K, 8192) + "_SI23"))), StringEntry((I + "_SI24"), getStringValue((n(A, B, K, 16384) + "_SI24"))), StringEntry((I + "_SI25"), getStringValue((n(A, B, K, 32768) + "_SI25"))), StringEntry((I + "_SI26"), getStringValue((n(A, B, K, 65536) + "_SI26"))), StringEntry((I + "_SI27"), getStringValue((n(A, B, K, 131072) + "_SI27"))), StringEntry((I + "_SI30"), getStringValue((n(A, B, K, 262144) + "_SI30"))), StringEntry((I + "_SI31"), getStringValue((n(A, B, K, 524288) + "_SI31"))), StringEntry((I + "_SI32"), getStringValue((n(A, B, K, 1048576) + "_SI32"))), StringEntry((I + "_SI33"), getStringValue((n(A, B, K, 2097152) + "_SI33"))), StringEntry((I + "_SI34"), getStringValue((n(A, B, K, 4194304) + "_SI34"))), StringEntry((I + "_SI35"), getStringValue((n(A, B, K, 8388608) + "_SI35"))), StringEntry((I + "_SI36"), getStringValue((n(A, B, K, 16777216) + "_SI36"))), StringEntry((I + "_SI37"), getStringValue((n(A, B, K, 33554432) + "_SI37"))), StringEntry((I + "_SI40"), getStringValue((n(A, B, K, 67108864) + "_SI40"))), StringEntry((I + "_SI41"), getStringValue((n(A, B, K, 134217728) + "_SI41"))), StringEntry((I + "_SI42"), getStringValue((n(A, B, K, 268435456) + "_SI42"))), StringEntry((I + "_SI43"), getStringValue((n(A, B, K, 536870912) + "_SI43"))), StringEntry((I + "_SI44"), getStringValue((n(A, B, K, 1073741824) + "_SI44"))), StringEntry((I + "_SI45"), getStringValue((n(A, B, K, 2147483648) + "_SI45"))), StringEntry((I + "_SI46"), getStringValue((n(A, B, K, 4294967296) + "_SI46"))), StringEntry((I + "_SI47"), getStringValue((n(A, B, K, 8589934592) + "_SI47"))), ScriptTransfer(Address(j.caller.bytes), 1, H)] | |
76 | 84 | } | |
77 | 85 | else throw("Strict value is not equal to itself.") | |
78 | 86 | } | |
79 | 87 | ||
80 | 88 | ||
81 | - | func | |
89 | + | func L (M) = if ((this == M)) | |
82 | 90 | then true | |
83 | 91 | else { | |
84 | - | let | |
85 | - | if ($isInstanceOf( | |
92 | + | let x = getBoolean(("W_" + toBase58String(M.bytes))) | |
93 | + | if ($isInstanceOf(x, "Boolean")) | |
86 | 94 | then { | |
87 | - | let | |
88 | - | | |
95 | + | let G = x | |
96 | + | G | |
89 | 97 | } | |
90 | 98 | else false | |
91 | 99 | } | |
92 | 100 | ||
93 | 101 | ||
94 | - | @Callable( | |
95 | - | func whitelist_add ( | |
102 | + | @Callable(j) | |
103 | + | func whitelist_add (N) = if ((this != j.caller)) | |
96 | 104 | then throw("Caller is not dApp owner") | |
97 | - | else $Tuple2([BooleanEntry(("W_" + | |
105 | + | else $Tuple2([BooleanEntry(("W_" + N), true)], unit) | |
98 | 106 | ||
99 | 107 | ||
100 | 108 | ||
101 | - | @Callable( | |
102 | - | func whitelist_remove ( | |
109 | + | @Callable(j) | |
110 | + | func whitelist_remove (N) = if ((this != j.caller)) | |
103 | 111 | then throw("Caller is not dApp owner") | |
104 | - | else $Tuple2([DeleteEntry(("W_" + | |
112 | + | else $Tuple2([DeleteEntry(("W_" + N))], unit) | |
105 | 113 | ||
106 | 114 | ||
107 | 115 | ||
108 | - | @Callable( | |
109 | - | func set_market_image ( | |
116 | + | @Callable(j) | |
117 | + | func set_market_image (O) = if (!(L(j.caller))) | |
110 | 118 | then throw("Caller not in whitelist") | |
111 | - | else $Tuple2([StringEntry("market_image_link", | |
119 | + | else $Tuple2([StringEntry("market_image_link", O)], unit) | |
112 | 120 | ||
113 | 121 | ||
114 | 122 | ||
115 | - | @Callable( | |
116 | - | func set_price_hybrid ( | |
123 | + | @Callable(j) | |
124 | + | func set_price_hybrid (t,u,P) = if (!(L(j.caller))) | |
117 | 125 | then throw("Caller not in whitelist") | |
118 | - | else $Tuple2([StringEntry("price_hybrid_token", | |
126 | + | else $Tuple2([StringEntry("price_hybrid_token", t), IntegerEntry("price_hybrid_amount", u), IntegerEntry("price_hybrid_increment", P)], unit) | |
119 | 127 | ||
120 | 128 | ||
121 | 129 | ||
122 | - | @Callable( | |
123 | - | func mint_chord ( | |
130 | + | @Callable(j) | |
131 | + | func mint_chord (Q,R,S) = if (!(L(j.caller))) | |
124 | 132 | then throw("Caller not in whitelist") | |
125 | - | else if ((size( | |
133 | + | else if ((size(S) != 5)) | |
126 | 134 | then throw("Wrong notes size") | |
127 | 135 | else { | |
128 | - | let | |
129 | - | let | |
130 | - | if ($isInstanceOf( | |
136 | + | let h = { | |
137 | + | let x = getInteger("count") | |
138 | + | if ($isInstanceOf(x, "Int")) | |
131 | 139 | then { | |
132 | - | let | |
133 | - | | |
140 | + | let C = x | |
141 | + | C | |
134 | 142 | } | |
135 | 143 | else 0 | |
136 | 144 | } | |
137 | - | let | |
138 | - | $Tuple2([IntegerEntry("count", max([( | |
145 | + | let I = g(Q) | |
146 | + | $Tuple2([IntegerEntry("count", max([(Q + 1), h])), StringEntry((I + "_CL"), R), IntegerEntry((I + "_C0"), S[0]), IntegerEntry((I + "_C1"), S[1]), IntegerEntry((I + "_C2"), S[2]), IntegerEntry((I + "_C3"), S[3]), IntegerEntry((I + "_C4"), S[4])], unit) | |
139 | 147 | } | |
140 | 148 | ||
141 | 149 | ||
142 | 150 | ||
143 | - | @Callable( | |
144 | - | func mint_arpeggio ( | |
151 | + | @Callable(j) | |
152 | + | func mint_arpeggio (Q,R,S) = if (!(L(j.caller))) | |
145 | 153 | then throw("Caller not in whitelist") | |
146 | - | else if ((size( | |
154 | + | else if ((size(S) != 16)) | |
147 | 155 | then throw("Wrong notes size") | |
148 | 156 | else { | |
149 | - | let | |
150 | - | let | |
151 | - | if ($isInstanceOf( | |
157 | + | let h = { | |
158 | + | let x = getInteger("count") | |
159 | + | if ($isInstanceOf(x, "Int")) | |
152 | 160 | then { | |
153 | - | let | |
154 | - | | |
161 | + | let C = x | |
162 | + | C | |
155 | 163 | } | |
156 | 164 | else 0 | |
157 | 165 | } | |
158 | - | let | |
159 | - | $Tuple2([IntegerEntry("count", max([( | |
166 | + | let I = g(Q) | |
167 | + | $Tuple2([IntegerEntry("count", max([(Q + 1), h])), StringEntry((I + "_AL"), R), IntegerEntry((I + "_A00"), S[0]), IntegerEntry((I + "_A01"), S[1]), IntegerEntry((I + "_A02"), S[2]), IntegerEntry((I + "_A03"), S[3]), IntegerEntry((I + "_A04"), S[4]), IntegerEntry((I + "_A05"), S[5]), IntegerEntry((I + "_A06"), S[6]), IntegerEntry((I + "_A07"), S[7]), IntegerEntry((I + "_A08"), S[8]), IntegerEntry((I + "_A09"), S[9]), IntegerEntry((I + "_A10"), S[10]), IntegerEntry((I + "_A11"), S[11]), IntegerEntry((I + "_A12"), S[12]), IntegerEntry((I + "_A13"), S[13]), IntegerEntry((I + "_A14"), S[14]), IntegerEntry((I + "_A15"), S[15])], unit) | |
160 | 168 | } | |
161 | 169 | ||
162 | 170 | ||
163 | 171 | ||
164 | - | @Callable( | |
165 | - | func mint_rhythm ( | |
172 | + | @Callable(j) | |
173 | + | func mint_rhythm (Q,R,T,S) = if (!(L(j.caller))) | |
166 | 174 | then throw("Caller not in whitelist") | |
167 | - | else if ((size( | |
175 | + | else if ((size(S) != 16)) | |
168 | 176 | then throw("Wrong notes size") | |
169 | 177 | else { | |
170 | - | let | |
171 | - | let | |
172 | - | if ($isInstanceOf( | |
178 | + | let h = { | |
179 | + | let x = getInteger("count") | |
180 | + | if ($isInstanceOf(x, "Int")) | |
173 | 181 | then { | |
174 | - | let | |
175 | - | | |
182 | + | let C = x | |
183 | + | C | |
176 | 184 | } | |
177 | 185 | else 0 | |
178 | 186 | } | |
179 | - | let | |
180 | - | $Tuple2([IntegerEntry("count", max([( | |
187 | + | let I = g(Q) | |
188 | + | $Tuple2([IntegerEntry("count", max([(Q + 1), h])), StringEntry((I + "_RL"), R), IntegerEntry((I + "_RS"), T), IntegerEntry((I + "_R00"), S[0]), IntegerEntry((I + "_R01"), S[1]), IntegerEntry((I + "_R02"), S[2]), IntegerEntry((I + "_R03"), S[3]), IntegerEntry((I + "_R04"), S[4]), IntegerEntry((I + "_R05"), S[5]), IntegerEntry((I + "_R06"), S[6]), IntegerEntry((I + "_R07"), S[7]), IntegerEntry((I + "_R08"), S[8]), IntegerEntry((I + "_R09"), S[9]), IntegerEntry((I + "_R10"), S[10]), IntegerEntry((I + "_R11"), S[11]), IntegerEntry((I + "_R12"), S[12]), IntegerEntry((I + "_R13"), S[13]), IntegerEntry((I + "_R14"), S[14]), IntegerEntry((I + "_R15"), S[15])], unit) | |
181 | 189 | } | |
182 | 190 | ||
183 | 191 | ||
184 | 192 | ||
185 | - | @Callable( | |
186 | - | func | |
193 | + | @Callable(j) | |
194 | + | func burn_internal (U) = if (!(L(j.caller))) | |
187 | 195 | then throw("Caller not in whitelist") | |
188 | - | else if ((size(W) != 8)) | |
196 | + | else { | |
197 | + | let V = invoke(a, "burnNFT", nil, [AttachedPayment(fromBase58String(U), 1)]) | |
198 | + | if ((V == V)) | |
199 | + | then $Tuple2(nil, unit) | |
200 | + | else throw("Strict value is not equal to itself.") | |
201 | + | } | |
202 | + | ||
203 | + | ||
204 | + | ||
205 | + | @Callable(j) | |
206 | + | func burn () = if (!(L(j.caller))) | |
207 | + | then throw("Caller not in whitelist") | |
208 | + | else { | |
209 | + | let V = invoke(a, "burnNFT", nil, [j.payments[0]]) | |
210 | + | if ((V == V)) | |
211 | + | then $Tuple2(nil, unit) | |
212 | + | else throw("Strict value is not equal to itself.") | |
213 | + | } | |
214 | + | ||
215 | + | ||
216 | + | ||
217 | + | @Callable(j) | |
218 | + | func mint_song (R,W,X,Y,Z,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap) = if (!(L(j.caller))) | |
219 | + | then throw("Caller not in whitelist") | |
220 | + | else if ((size(ac) != 8)) | |
189 | 221 | then throw("Wrong chords size") | |
190 | - | else if ((size( | |
222 | + | else if ((size(ak) != 8)) | |
191 | 223 | then throw("Wrong kick rhythms size") | |
192 | - | else if ((size( | |
224 | + | else if ((size(al) != 8)) | |
193 | 225 | then throw("Wrong snare rhythms size") | |
194 | - | else if ((size( | |
226 | + | else if ((size(am) != 8)) | |
195 | 227 | then throw("Wrong hihat rhythms size") | |
196 | - | else if ((size( | |
228 | + | else if ((size(an) != 8)) | |
197 | 229 | then throw("Wrong bass rhythms size") | |
198 | - | else if ((size( | |
230 | + | else if ((size(ao) != 8)) | |
199 | 231 | then throw("Wrong back rhythms size") | |
200 | - | else if ((size( | |
232 | + | else if ((size(ap) != 8)) | |
201 | 233 | then throw("Wrong lead rhythms size") | |
202 | 234 | else { | |
203 | - | let | |
204 | - | let | |
205 | - | if ($isInstanceOf( | |
235 | + | let h = { | |
236 | + | let x = getInteger("count") | |
237 | + | if ($isInstanceOf(x, "Int")) | |
206 | 238 | then { | |
207 | - | let | |
208 | - | | |
239 | + | let C = x | |
240 | + | C | |
209 | 241 | } | |
210 | 242 | else 0 | |
211 | 243 | } | |
212 | - | let | |
213 | - | let | |
214 | - | let | |
215 | - | let | |
216 | - | let | |
217 | - | if ($isInstanceOf( | |
244 | + | let D = take(R, 16) | |
245 | + | let E = d | |
246 | + | let F = c | |
247 | + | let y = { | |
248 | + | let x = invoke(a, "createNFT", [D, E, getStringValue("market_image_link"), F], nil) | |
249 | + | if ($isInstanceOf(x, "String")) | |
218 | 250 | then { | |
219 | - | let | |
220 | - | | |
251 | + | let G = x | |
252 | + | G | |
221 | 253 | } | |
222 | 254 | else throw("NFT creation failed") | |
223 | 255 | } | |
224 | - | if (( | |
256 | + | if ((y == y)) | |
225 | 257 | then { | |
226 | - | let | |
227 | - | let | |
228 | - | then [ScriptTransfer(Address( | |
258 | + | let I = g(h) | |
259 | + | let aq = if ((this != j.caller)) | |
260 | + | then [ScriptTransfer(Address(j.caller.bytes), 1, fromBase58String(y))] | |
229 | 261 | else nil | |
230 | - | $Tuple2(([IntegerEntry("count", ( | |
262 | + | $Tuple2(([IntegerEntry("count", (h + 1)), StringEntry(y, I), StringEntry(I, y), IntegerEntry((I + "_G"), 1), StringEntry((I + "_SL"), R), IntegerEntry((I + "_SN"), 0), StringEntry((I + "_SP0"), W), StringEntry((I + "_SP1"), X), IntegerEntry((I + "_SB0"), Y), IntegerEntry((I + "_SB1"), Z), IntegerEntry((I + "_SB2"), aa), IntegerEntry((I + "_ST"), ab), StringEntry((I + "_SC0"), ac[0]), StringEntry((I + "_SC1"), ac[1]), StringEntry((I + "_SC2"), ac[2]), StringEntry((I + "_SC3"), ac[3]), StringEntry((I + "_SC4"), ac[4]), StringEntry((I + "_SC5"), ac[5]), StringEntry((I + "_SC6"), ac[6]), StringEntry((I + "_SC7"), ac[7]), StringEntry((I + "_SA"), ad), StringEntry((I + "_SI0"), ae), StringEntry((I + "_SI1"), af), StringEntry((I + "_SI2"), ag), StringEntry((I + "_SI3"), ah), StringEntry((I + "_SI4"), ai), StringEntry((I + "_SI5"), aj), StringEntry((I + "_SI00"), ak[0]), StringEntry((I + "_SI01"), ak[1]), StringEntry((I + "_SI02"), ak[2]), StringEntry((I + "_SI03"), ak[3]), StringEntry((I + "_SI04"), ak[4]), StringEntry((I + "_SI05"), ak[5]), StringEntry((I + "_SI06"), ak[6]), StringEntry((I + "_SI07"), ak[7]), StringEntry((I + "_SI10"), al[0]), StringEntry((I + "_SI11"), al[1]), StringEntry((I + "_SI12"), al[2]), StringEntry((I + "_SI13"), al[3]), StringEntry((I + "_SI14"), al[4]), StringEntry((I + "_SI15"), al[5]), StringEntry((I + "_SI16"), al[6]), StringEntry((I + "_SI17"), al[7]), StringEntry((I + "_SI20"), am[0]), StringEntry((I + "_SI21"), am[1]), StringEntry((I + "_SI22"), am[2]), StringEntry((I + "_SI23"), am[3]), StringEntry((I + "_SI24"), am[4]), StringEntry((I + "_SI25"), am[5]), StringEntry((I + "_SI26"), am[6]), StringEntry((I + "_SI27"), am[7]), StringEntry((I + "_SI30"), an[0]), StringEntry((I + "_SI31"), an[1]), StringEntry((I + "_SI32"), an[2]), StringEntry((I + "_SI33"), an[3]), StringEntry((I + "_SI34"), an[4]), StringEntry((I + "_SI35"), an[5]), StringEntry((I + "_SI36"), an[6]), StringEntry((I + "_SI37"), an[7]), StringEntry((I + "_SI40"), ao[0]), StringEntry((I + "_SI41"), ao[1]), StringEntry((I + "_SI42"), ao[2]), StringEntry((I + "_SI43"), ao[3]), StringEntry((I + "_SI44"), ao[4]), StringEntry((I + "_SI45"), ao[5]), StringEntry((I + "_SI46"), ao[6]), StringEntry((I + "_SI47"), ao[7]), StringEntry((I + "_SI50"), ap[0]), StringEntry((I + "_SI51"), ap[1]), StringEntry((I + "_SI52"), ap[2]), StringEntry((I + "_SI53"), ap[3]), StringEntry((I + "_SI54"), ap[4]), StringEntry((I + "_SI55"), ap[5]), StringEntry((I + "_SI56"), ap[6]), StringEntry((I + "_SI57"), ap[7])] ++ aq), unit) | |
231 | 263 | } | |
232 | 264 | else throw("Strict value is not equal to itself.") | |
233 | 265 | } | |
234 | 266 | ||
235 | 267 | ||
236 | 268 | ||
237 | - | @Callable( | |
238 | - | func mint_hybrid ( | |
239 | - | let | |
240 | - | let | |
241 | - | let | |
242 | - | let | |
243 | - | let | |
244 | - | let | |
245 | - | if ((0 > | |
269 | + | @Callable(j) | |
270 | + | func mint_hybrid (A,B) = { | |
271 | + | let ar = Address(j.caller.bytes) | |
272 | + | let as = fromBase58String(getStringValue(A)) | |
273 | + | let at = fromBase58String(getStringValue(B)) | |
274 | + | let au = getIntegerValue("price_hybrid_amount") | |
275 | + | let av = getStringValue("price_hybrid_token") | |
276 | + | let aw = s(j, av, au) | |
277 | + | if ((0 > aw)) | |
246 | 278 | then throw("Wrong payment") | |
247 | - | else if (( | |
279 | + | else if ((as == at)) | |
248 | 280 | then throw("Songs should be different") | |
249 | - | else if ((1 > assetBalance( | |
281 | + | else if ((1 > assetBalance(ar, as))) | |
250 | 282 | then throw("Caller do not own first song") | |
251 | - | else if ((1 > assetBalance( | |
283 | + | else if ((1 > assetBalance(ar, at))) | |
252 | 284 | then throw("Caller do not own second song") | |
253 | 285 | else { | |
254 | - | let | |
255 | - | let | |
256 | - | if ($isInstanceOf( | |
286 | + | let ax = { | |
287 | + | let x = getInteger("mint_count") | |
288 | + | if ($isInstanceOf(x, "Int")) | |
257 | 289 | then { | |
258 | - | let | |
259 | - | | |
290 | + | let C = x | |
291 | + | C | |
260 | 292 | } | |
261 | 293 | else 0 | |
262 | 294 | } | |
263 | - | let | |
264 | - | let | |
265 | - | then [ | |
266 | - | else [ | |
267 | - | if (( | |
268 | - | then $Tuple2((( | |
295 | + | let ay = IntegerEntry("mint_count", (ax + 1)) | |
296 | + | let az = if (((ax % b) == (b - 1))) | |
297 | + | then [ay, IntegerEntry("price_hybrid_amount", (au + getIntegerValue("price_hybrid_increment")))] | |
298 | + | else [ay] | |
299 | + | if ((aw > 0)) | |
300 | + | then $Tuple2(((z(j, A, B) ++ az) ++ [ScriptTransfer(Address(j.caller.bytes), aw, if ((av == "")) | |
269 | 301 | then unit | |
270 | - | else fromBase58String( | |
271 | - | else $Tuple2(( | |
302 | + | else fromBase58String(av))]), unit) | |
303 | + | else $Tuple2((z(j, A, B) ++ az), unit) | |
272 | 304 | } | |
273 | 305 | } | |
274 | 306 | ||
275 | 307 | ||
276 | 308 | ||
277 | - | @Callable( | |
278 | - | func mint_hybrid_and_burn () = if (if (if ((size( | |
309 | + | @Callable(j) | |
310 | + | func mint_hybrid_and_burn () = if (if (if ((size(j.payments) != 2)) | |
279 | 311 | then true | |
280 | - | else ( | |
312 | + | else (j.payments[0].amount != 1)) | |
281 | 313 | then true | |
282 | - | else ( | |
314 | + | else (j.payments[1].amount != 1)) | |
283 | 315 | then throw("Wrong payment") | |
284 | 316 | else { | |
285 | - | let | |
286 | - | let | |
287 | - | if ($isInstanceOf( | |
317 | + | let as = { | |
318 | + | let x = j.payments[0].assetId | |
319 | + | if ($isInstanceOf(x, "ByteVector")) | |
288 | 320 | then { | |
289 | - | let | |
290 | - | | |
321 | + | let aA = x | |
322 | + | aA | |
291 | 323 | } | |
292 | 324 | else throw("Wrong payment") | |
293 | 325 | } | |
294 | - | let | |
295 | - | let | |
296 | - | if ($isInstanceOf( | |
326 | + | let at = { | |
327 | + | let x = j.payments[1].assetId | |
328 | + | if ($isInstanceOf(x, "ByteVector")) | |
297 | 329 | then { | |
298 | - | let | |
299 | - | | |
330 | + | let aA = x | |
331 | + | aA | |
300 | 332 | } | |
301 | 333 | else throw("Wrong payment") | |
302 | 334 | } | |
303 | - | if (( | |
335 | + | if ((as == at)) | |
304 | 336 | then throw("Songs should be different") | |
305 | 337 | else { | |
306 | - | let | |
307 | - | let | |
308 | - | let | |
309 | - | if (( | |
338 | + | let A = getStringValue(toBase58String(as)) | |
339 | + | let B = getStringValue(toBase58String(at)) | |
340 | + | let V = invoke(a, "burnNFT", nil, [j.payments[0]]) | |
341 | + | if ((V == V)) | |
310 | 342 | then { | |
311 | - | let | |
312 | - | if (( | |
313 | - | then $Tuple2( | |
343 | + | let aB = invoke(a, "burnNFT", nil, [j.payments[1]]) | |
344 | + | if ((aB == aB)) | |
345 | + | then $Tuple2(z(j, A, B), unit) | |
314 | 346 | else throw("Strict value is not equal to itself.") | |
315 | 347 | } | |
316 | 348 | else throw("Strict value is not equal to itself.") | |
317 | 349 | } | |
318 | 350 | } | |
319 | 351 | ||
320 | 352 |
github/deemru/w8io/169f3d6 876.51 ms ◑