tx · qpa6Z1fZL6AfRGDrVtccBhFGKXEFqAeqbe9YxAg5j1g

3N8xXaYjE27Aa79d5hHrhHu9HaFoTBmhDEj:  -0.01300000 Waves

2023.02.01 05:45 [2429960] smart account 3N8xXaYjE27Aa79d5hHrhHu9HaFoTBmhDEj > SELF 0.00000000 Waves

{ "type": 13, "id": "qpa6Z1fZL6AfRGDrVtccBhFGKXEFqAeqbe9YxAg5j1g", "fee": 1300000, "feeAssetId": null, "timestamp": 1675219585565, "version": 2, "chainId": 84, "sender": "3N8xXaYjE27Aa79d5hHrhHu9HaFoTBmhDEj", "senderPublicKey": "A2m227AHcq7gWfSU59Q3UJaqkEa7SccFYmJuWHbFrrKE", "proofs": [ "4mJUKFkZFnysbxDsKnzmGay4C9xbEht7EP6Xm7zyxWn2c789wajEvVyc5mByu1VLS18SFAKE6Ut9ixmdqgdRAGfp" ], "script": "base64:BgJRCAISBAoCCAgSBAoCBAgSAwoBBBIICgYICAgIAQgSCAoGCAgICAEIEgQKAggIEgoKCAgICAgBAQEBEgMKAQgSBgoECAgBARIECgIICBIDCgEIKwAHVkVSU0lPTgIDMS41AQ5nZXRTdHJpbmdCeUtleQEDa2V5CQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFA2tleQIAAQ9nZXRCb29sZWFuQnlLZXkBA2tleQkBC3ZhbHVlT3JFbHNlAgkAmwgCBQR0aGlzBQNrZXkHAQ9nZXRJbnRlZ2VyQnlLZXkBA2tleQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQNrZXkAAAAFY2hyaXMJAQ5nZXRTdHJpbmdCeUtleQECDGNvbmZfYWRtaW5fMQAOZGFwcFJ1bm5pbmdLZXkCFGNvbmZfZGFwcF9pc19ydW5uaW5nABFtYWludGVuYW5jZU1TR0tleQIUY29uZl9tYWludGVuYW5jZV9tc2cAEndoaXRlbGlzdGVkb25seUtleQIVY29uZl93aGl0ZWxpc3RlZF9vbmx5AAtkYXBwUnVubmluZwkBC3ZhbHVlT3JFbHNlAgkAmwgCBQR0aGlzBQ5kYXBwUnVubmluZ0tleQYADm1haW50ZW5hbmNlTVNHCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFEW1haW50ZW5hbmNlTVNHS2V5AgAAD3doaXRlbGlzdGVkb25seQkBC3ZhbHVlT3JFbHNlAgkAmwgCBQR0aGlzBRJ3aGl0ZWxpc3RlZG9ubHlLZXkGAA13aGl0ZWxpc3REYXBwCQEFdmFsdWUBCQCmCAEJAQ5nZXRTdHJpbmdCeUtleQECE2NvbmZfd2hpdGVsaXN0X2RhcHAACHNpZ25EYXBwCQEFdmFsdWUBCQCmCAEJAQ5nZXRTdHJpbmdCeUtleQECEWNvbmZfc2lnbndlYl9kYXBwAAt1c2VyQWxsb3dlZAIHQUxMT1dFRAAOdXNlclJlZ2lzdGVyZWQCClJFR0lTVEVSRUQADHVzZXJWZXJpZmllZAIIVkVSSUZJRUQADXVzZXJTdXNwZW5kZWQCCVNVU1BFTkRFRAALdXNlclJlbW92ZWQCB1JFTU9WRUQAEnVzZXJDaGFuZ2VSZXF1aXJlZAIPQ0hBTkdFX1JFUVVJUkVEABB1c2VyVW5yZWdpc3RlcmVkAgxVTlJFR0lTVEVSRUQACXVzZXJSZXNldAIFUkVTRVQBC2tleVVzZXJBZGRyAQZjYWxsZXIJAKwCAgIFdXNlcl8FBmNhbGxlcgELa2V5VXNlck5hbWUBBmNhbGxlcgkArAICAgp1c2VyX25hbWVfBQZjYWxsZXIBC2tleVVzZXJEZXNjAQZjYWxsZXIJAKwCAgIKdXNlcl9kZXNjXwUGY2FsbGVyAQ1rZXlVc2VyU29jaWFsAQZjYWxsZXIJAKwCAgIMdXNlcl9zb2NpYWxfBQZjYWxsZXIBDGtleVVzZXJUaHVtYgEGY2FsbGVyCQCsAgICC3VzZXJfdGh1bWJfBQZjYWxsZXIBDWtleVVzZXJTdGF0dXMBBmNhbGxlcgkArAICAgx1c2VyX3N0YXR1c18FBmNhbGxlcgEQa2V5VXNlclJveWFsdGllcwEGY2FsbGVyCQCsAgICD3VzZXJfcm95YWx0aWVzXwUGY2FsbGVyAQtrZXlVc2VyRGF0ZQEGY2FsbGVyCQCsAgICCnVzZXJfZGF0ZV8FBmNhbGxlcgEMa2V5VXNlckVSQzIwAQZjYWxsZXIJAKwCAgILdXNlcl9FUkMyMF8FBmNhbGxlcgELa2V5VXNlck5vdGUBBmNhbGxlcgkArAICAgp1c2VyX25vdGVfBQZjYWxsZXIBDGtleVVzZXJMYWJlbAEGY2FsbGVyCQCsAgICC3VzZXJfbGFiZWxfBQZjYWxsZXIBEmtleUFydGlzdEFnZW50QWRkcgEKYXJ0aXN0QWRkcgkArAICAg1hcnRpc3RfYWdlbnRfBQphcnRpc3RBZGRyARJrZXlBZ2VudEFydGlzdEFkZHICCWFnZW50QWRkcgphcnRpc3RBZGRyCQCsAgIJAKwCAgkArAICAgZhZ2VudF8FCWFnZW50QWRkcgIBXwUKYXJ0aXN0QWRkcgEPa2V5UHJpbWFyeVNoYXJlAQphcnRpc3RBZGRyCQCsAgICFWFydGlzdF9hZ2VudF9wcmltYXJ5XwUKYXJ0aXN0QWRkcgERa2V5U2Vjb25kYXJ5U2hhcmUBCmFydGlzdEFkZHIJAKwCAgIXYXJ0aXN0X2FnZW50X3NlY29uZGFyeV8FCmFydGlzdEFkZHIBDmNoZWNrV2hpdGVsaXN0AQNrZXkJAQt2YWx1ZU9yRWxzZQIJAJoIAgUNd2hpdGVsaXN0RGFwcAUDa2V5AAABC3ZhbGlkYXRlQ0lEAQNjaWQDCQEIY29udGFpbnMCBQNjaWQCAS8DAwkAZgIATAkAsQIBBQNjaWQJAAACCQCxAgEJAJEDAgkAtQkCBQNjaWQCAS8AAAA7BwkAZgIAEAkAsQIBCQCRAwIJALUJAgUDY2lkAgEvAAEHBwENdmFsaWRVc2VyRGF0YQUGY2FsbGVyBG5hbWULZGVzY3JpcHRpb24FdGh1bWIKaXNBblVwZGF0ZQQIdmFsaWRDSUQDCQECIT0CCQCxAgEFBXRodW1iAAAJAQt2YWxpZGF0ZUNJRAEFBXRodW1iBgMJAQEhAQUIdmFsaWRDSUQJAAIBAhxDSUQgZG9uJ3QgbWF0Y2ggcmVxdWlyZW1lbnQhAwMJAAACBQRuYW1lAgAGCQAAAgULZGVzY3JpcHRpb24CAAkAAgECJE5hbWUgYW5kIGRlc2NyaXB0aW9uIGNhbm5vdCBiZSBlbXB0eQMJAGYCCQCxAgEFC2Rlc2NyaXB0aW9uANgECQACAQIZNjAwIENoYXIuIG1heCBkZXNjcmlwdGlvbgMJAGYCCQCxAgEFBG5hbWUALQkAAgECETQ1IENoYXIuIG1heCBuYW1lBAZzdGF0dXMJAQ5nZXRTdHJpbmdCeUtleQEJAQ1rZXlVc2VyU3RhdHVzAQUGY2FsbGVyAwMJAAACBQZzdGF0dXMFDXVzZXJTdXNwZW5kZWQGCQAAAgUGc3RhdHVzBQt1c2VyUmVtb3ZlZAkAAgECG0FjY291bnQgc3VzcGVuZGVkLyByZW1vdmVkLgMDCQEBIQEFCmlzQW5VcGRhdGUJAAACBQZzdGF0dXMFDnVzZXJSZWdpc3RlcmVkBwkAAgECEkFscmVhZHkgcmVnaXN0ZXJlZAMDAwkBASEBBQppc0FuVXBkYXRlCQAAAgUGc3RhdHVzAgAHBQ93aGl0ZWxpc3RlZG9ubHkHCQACAQIjQ2FuJ3QgcmVnaXN0ZXIsIGdldCBhcHByb3ZlZCBmaXJzdC4DAwMFCmlzQW5VcGRhdGUJAAACBQZzdGF0dXMCAAcGAwUKaXNBblVwZGF0ZQkAAAIFBnN0YXR1cwULdXNlckFsbG93ZWQHCQACAQIOUmVnaXN0ZXIgZmlyc3QGARF2YWxpZGF0ZU5ld1N0YXR1cwMGc3RhdHVzB2FkZHJlc3MNY3VycmVudFN0YXR1cwQJYWxsU3RhdHVzCQDMCAIFDHVzZXJWZXJpZmllZAkAzAgCBQ51c2VyUmVnaXN0ZXJlZAkAzAgCBQ11c2VyU3VzcGVuZGVkCQDMCAIFC3VzZXJSZW1vdmVkCQDMCAIFC3VzZXJBbGxvd2VkCQDMCAIFEnVzZXJDaGFuZ2VSZXF1aXJlZAUDbmlsBAtzdGF0dXNUb1NldAMJAQ9jb250YWluc0VsZW1lbnQCBQlhbGxTdGF0dXMFBnN0YXR1cwUGc3RhdHVzAwMJAAACBQZzdGF0dXMFCXVzZXJSZXNldAkAAAIFDWN1cnJlbnRTdGF0dXMFC3VzZXJBbGxvd2VkBwIACQACAQIOVW5rbm93biBzdGF0dXMEEHVzZXJJc1JlZ2lzdGVyZWQJAQ9nZXRJbnRlZ2VyQnlLZXkBCQELa2V5VXNlckRhdGUBBQdhZGRyZXNzAwMJAAACBRB1c2VySXNSZWdpc3RlcmVkAAAJAQIhPQIFC3N0YXR1c1RvU2V0BQt1c2VyQWxsb3dlZAcJAAIBAjFZb3UgY2FudCBzZXQgdGhpcyBzdGF0dXMsIHVzZXIgaXMgbm90IHJlZ2lzdGVyZWQuAwMJAAACBQ1jdXJyZW50U3RhdHVzBQt1c2VyQWxsb3dlZAkAAAIFC3N0YXR1c1RvU2V0BQt1c2VyQWxsb3dlZAcJAAIBAhRVc2VyIGFscmVhZHkgYWxsb3dlZAMDCQAAAgUNY3VycmVudFN0YXR1cwUOdXNlclJlZ2lzdGVyZWQJAAACBQtzdGF0dXNUb1NldAULdXNlckFsbG93ZWQHCQACAQIhVXNlciBhbHJlYWR5IGFsbG93ZWQgJiByZWdpc3RlcmVkAwMJAAACBQ1jdXJyZW50U3RhdHVzBQx1c2VyVmVyaWZpZWQJAAACBQtzdGF0dXNUb1NldAULdXNlckFsbG93ZWQHCQACAQIfVXNlciBhbHJlYWR5IGFsbG93ZWQgJiB2ZXJpZmllZAULc3RhdHVzVG9TZXQBCG1ha2VKU09OAwRuYW1lBXRodW1iBGRhdGUJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICD3sidXNlcl9uYW1lIjogIgUEbmFtZQIRIiwgInVzZXJfdGh1bWIiOiIFBXRodW1iAg8iLCJ1c2VyX2RhdGUiOiIFBGRhdGUCAiJ9AQhhc1N0cmluZwECYnYEByRtYXRjaDAFAmJ2AwkAAQIFByRtYXRjaDACBlN0cmluZwQDYnYwBQckbWF0Y2gwBQNidjAJAAIBAiRTcG9uc29yZWQgUHVibGljIEtleSBTdHJpbmcgZXhwZWN0ZWQBCWdldENhbGxlcgIBaQZwdWJLZXkEC2lzU3BvbnNvcmVkAwkBAiE9AgUGcHViS2V5AgAJAQt2YWx1ZU9yRWxzZQIJAQ5jaGVja1doaXRlbGlzdAEJAKwCAgkApQgBCQCnCAEJANkEAQUGcHViS2V5AglfZnJlZV90eHMAAAAABAZjYWxsZXIDAwkAAAIJANgEAQgIBQFpBmNhbGxlcgVieXRlcwkApQgBBQR0aGlzCQBmAgULaXNTcG9uc29yZWQAAAcJAKUIAQkApwgBCQDZBAEFBnB1YktleQkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzBBNnZXRfc3BvbnNvcmVkX3dhdmVzAwMJAQIhPQIFBnB1YktleQIACQBmAgULaXNTcG9uc29yZWQAAAcJAPwHBAUNd2hpdGVsaXN0RGFwcAIJdXNlRnJlZVR4CQDMCAIJAKUIAQkApwgBCQDZBAEFBnB1YktleQUDbmlsBQNuaWwFBHVuaXQDCQAAAgUTZ2V0X3Nwb25zb3JlZF93YXZlcwUTZ2V0X3Nwb25zb3JlZF93YXZlcwkAlAoCBQZjYWxsZXIJAGYCBQtpc1Nwb25zb3JlZAAACQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCwZpbnZva2UBB3NldENvbmYCA2tleQN2YWwEBmNhbGxlcgkApQgBCAUGaW52b2tlBmNhbGxlcgMJAQ9jb250YWluc0VsZW1lbnQCCQDMCAIFBWNocmlzCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQZjYWxsZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgUDa2V5BQN2YWwFA25pbAkAAgECIllvdSBhcmUgbm90IGFsbG93ZWQgdG8gY2hhbmdlIHRoaXMGaW52b2tlAQphcHBSdW5uaW5nAgZpc0xpdmUHbWVzc2FnZQQGY2FsbGVyCQClCAEIBQZpbnZva2UGY2FsbGVyAwkBD2NvbnRhaW5zRWxlbWVudAIJAMwIAgUFY2hyaXMJAMwIAgkApQgBBQR0aGlzBQNuaWwFBmNhbGxlcgkAzAgCCQEMQm9vbGVhbkVudHJ5AgUOZGFwcFJ1bm5pbmdLZXkFBmlzTGl2ZQkAzAgCCQELU3RyaW5nRW50cnkCBRFtYWludGVuYW5jZU1TR0tleQUHbWVzc2FnZQUDbmlsCQACAQIiWW91IGFyZSBub3QgYWxsb3dlZCB0byBjaGFuZ2UgdGhpcwZpbnZva2UBEHJlZ2lzdHJhdGlvbk1vZGUBBldMb25seQQGY2FsbGVyCQClCAEIBQZpbnZva2UGY2FsbGVyAwkBD2NvbnRhaW5zRWxlbWVudAIJAMwIAgUFY2hyaXMJAMwIAgkApQgBBQR0aGlzBQNuaWwFBmNhbGxlcgkAzAgCCQEMQm9vbGVhbkVudHJ5AgUSd2hpdGVsaXN0ZWRvbmx5S2V5BQZXTG9ubHkFA25pbAkAAgECIllvdSBhcmUgbm90IGFsbG93ZWQgdG8gY2hhbmdlIHRoaXMGaW52b2tlAQxyZWdpc3RlclVzZXIGBG5hbWULZGVzY3JpcHRpb24FdGh1bWIGc29jaWFsCXJveWFsdGllcwZwdWJLZXkDCQEBIQEFC2RhcHBSdW5uaW5nCQACAQUObWFpbnRlbmFuY2VNU0cECyR0MDc0MjU3NDc3CQEJZ2V0Q2FsbGVyAgUGaW52b2tlBQZwdWJLZXkEBmNhbGxlcggFCyR0MDc0MjU3NDc3Al8xBAtpc1Nwb25zb3JlZAgFCyR0MDc0MjU3NDc3Al8yBAJpZAkA2AQBCAUGaW52b2tlDXRyYW5zYWN0aW9uSWQECXRpbWVzdGFtcAgFCWxhc3RCbG9jawl0aW1lc3RhbXAEBG5vdGUJAQ5nZXRTdHJpbmdCeUtleQEJAQtrZXlVc2VyTm90ZQEFBmNhbGxlcgQFbGFiZWwJAQ5nZXRTdHJpbmdCeUtleQEJAQxrZXlVc2VyTGFiZWwBBQZjYWxsZXIDCQEBIQEJAQ12YWxpZFVzZXJEYXRhBQUGY2FsbGVyBQRuYW1lBQtkZXNjcmlwdGlvbgUFdGh1bWIHCQACAQIUU29tZXRoaW5nIHdlbnQgd3JvbmcEBGpzb24JAQhtYWtlSlNPTgMJANoEAQkAmwMBBQRuYW1lCQDaBAEJAJsDAQUFdGh1bWIJAKQDAQUJdGltZXN0YW1wAwMJAGYCAAAFCXJveWFsdGllcwYJAGYCBQlyb3lhbHRpZXMA6AcJAAIBAjNSb3lhbHRpZXMgY2Fubm90IGJlIGxlc3MgdGhhbiAwJSBvciBoaWdoZXIgdGhhbiAxMCUECnR4VG9DYWxsZXIDBQtpc1Nwb25zb3JlZAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQUGY2FsbGVyAAAFBHVuaXQFA25pbAUDbmlsCQDOCAIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQtrZXlVc2VyRGF0ZQEFBmNhbGxlcgUJdGltZXN0YW1wCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQtrZXlVc2VyQWRkcgEFBmNhbGxlcgkArAICCQCsAgIFAmlkAgFfCQCkAwEFCXRpbWVzdGFtcAkAzAgCCQELU3RyaW5nRW50cnkCCQELa2V5VXNlck5hbWUBBQZjYWxsZXIFBG5hbWUJAMwIAgkBC1N0cmluZ0VudHJ5AgkBC2tleVVzZXJEZXNjAQUGY2FsbGVyBQtkZXNjcmlwdGlvbgkAzAgCCQELU3RyaW5nRW50cnkCCQENa2V5VXNlclNvY2lhbAEFBmNhbGxlcgUGc29jaWFsCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQxrZXlVc2VyVGh1bWIBBQZjYWxsZXIFBXRodW1iCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ1rZXlVc2VyU3RhdHVzAQUGY2FsbGVyBQ51c2VyUmVnaXN0ZXJlZAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBEGtleVVzZXJSb3lhbHRpZXMBBQZjYWxsZXIFCXJveWFsdGllcwkAzAgCCQELRGVsZXRlRW50cnkBCQCsAgICCEFMTE9XRURfBQZjYWxsZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIFDnVzZXJSZWdpc3RlcmVkAgFfBQZjYWxsZXIFBGpzb24JAMwIAgkBC1N0cmluZ0VudHJ5AgkBC2tleVVzZXJOb3RlAQUGY2FsbGVyBQRub3RlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQxrZXlVc2VyTGFiZWwBBQZjYWxsZXIFBWxhYmVsBQNuaWwFCnR4VG9DYWxsZXIGaW52b2tlAQp1cGRhdGVVc2VyBgRuYW1lC2Rlc2NyaXB0aW9uBXRodW1iBnNvY2lhbAlyb3lhbHRpZXMGcHViS2V5AwkBASEBBQtkYXBwUnVubmluZwkAAgEFDm1haW50ZW5hbmNlTVNHBAskdDA5MTYyOTI2NgkBCWdldENhbGxlcgIFBmludm9rZQUGcHViS2V5BAZjYWxsZXIIBQskdDA5MTYyOTI2NgJfMQQLaXNTcG9uc29yZWQIBQskdDA5MTYyOTI2NgJfMgQGc3RhdHVzCQEOZ2V0U3RyaW5nQnlLZXkBCQENa2V5VXNlclN0YXR1cwEFBmNhbGxlcgMJAQEhAQkBDXZhbGlkVXNlckRhdGEFBQZjYWxsZXIFBG5hbWUFC2Rlc2NyaXB0aW9uBQV0aHVtYgYJAAIBAhRTb21ldGhpbmcgd2VudCB3cm9uZwQEZGF0ZQkBD2dldEludGVnZXJCeUtleQEJAQtrZXlVc2VyRGF0ZQEFBmNhbGxlcgQEanNvbgkBCG1ha2VKU09OAwkA2gQBCQCbAwEFBG5hbWUJANoEAQkAmwMBBQV0aHVtYgkApAMBBQRkYXRlAwMJAGYCAAAFCXJveWFsdGllcwYJAGYCBQlyb3lhbHRpZXMA6AcJAAIBAjNSb3lhbHRpZXMgY2Fubm90IGJlIGxlc3MgdGhhbiAwJSBvciBoaWdoZXIgdGhhbiAxMCUECnR4VG9DYWxsZXIDBQtpc1Nwb25zb3JlZAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQUGY2FsbGVyAAAFBHVuaXQFA25pbAUDbmlsCQDOCAIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBC2tleVVzZXJOYW1lAQUGY2FsbGVyBQRuYW1lCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQtrZXlVc2VyRGVzYwEFBmNhbGxlcgULZGVzY3JpcHRpb24JAMwIAgkBC1N0cmluZ0VudHJ5AgkBDWtleVVzZXJTb2NpYWwBBQZjYWxsZXIFBnNvY2lhbAkAzAgCCQELU3RyaW5nRW50cnkCCQEMa2V5VXNlclRodW1iAQUGY2FsbGVyBQV0aHVtYgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBEGtleVVzZXJSb3lhbHRpZXMBBQZjYWxsZXIFCXJveWFsdGllcwkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgUGc3RhdHVzAgFfBQZjYWxsZXIFBGpzb24FA25pbAUKdHhUb0NhbGxlcgZpbnZva2UBDHNldEVSQzIwVXNlcgIFZXJjMjAGcHViS2V5AwkBASEBBQtkYXBwUnVubmluZwkAAgEFDm1haW50ZW5hbmNlTVNHBA0kdDAxMDQ1MzEwNTU2CQEJZ2V0Q2FsbGVyAgUGaW52b2tlBQZwdWJLZXkEBmNhbGxlcggFDSR0MDEwNDUzMTA1NTYCXzEEC2lzU3BvbnNvcmVkCAUNJHQwMTA0NTMxMDU1NgJfMgQGc3RhdHVzCQEOZ2V0U3RyaW5nQnlLZXkBCQENa2V5VXNlclN0YXR1cwEFBmNhbGxlcgMDCQECIT0CBQZzdGF0dXMFDnVzZXJSZWdpc3RlcmVkCQECIT0CBQZzdGF0dXMFDHVzZXJWZXJpZmllZAcJAAIBAiBOb3QgYWxsb3dlZCB0byBzZXQgRVJDMjAgYWRkcmVzcwQIZmlyc3RUd28JAK8CAgUFZXJjMjAAAgMDCQECIT0CBQhmaXJzdFR3bwICMHgGCQECIT0CCQCxAgEFBWVyYzIwACoJAAIBAhxUaGlzIGlzIG5vdCBhbiBlcmMyMCBhZGRyZXNzBAp0eFRvQ2FsbGVyAwULaXNTcG9uc29yZWQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFBmNhbGxlcgAABQR1bml0BQNuaWwFA25pbAkAzggCCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQxrZXlVc2VyRVJDMjABBQZjYWxsZXIFBWVyYzIwBQNuaWwFCnR4VG9DYWxsZXIGaW52b2tlARBjaGFuZ2VVc2VyU3RhdHVzCAdhZGRyZXNzBnN0YXR1cwRub3RlBWxhYmVsEXdsX2NlcnRpZmljYXRpb25zBndsX3R4cwh3bF9kcm9wcw53bF9jb21taXNzaW9ucwQGY2FsbGVyCQClCAEIBQZpbnZva2UGY2FsbGVyAwkAAAIJALECAQUHYWRkcmVzcwAACQACAQIXQWRkcmVzcyBjYW5ub3QgYmUgZW1wdHkEC2N1cnJlbnROb3RlCQEOZ2V0U3RyaW5nQnlLZXkBCQELa2V5VXNlck5vdGUBBQdhZGRyZXNzBAxjdXJyZW50TGFiZWwJAQ5nZXRTdHJpbmdCeUtleQEJAQxrZXlVc2VyTGFiZWwBBQdhZGRyZXNzBAlub3RlVG9Vc2UDCQECIT0CCQCxAgEFBG5vdGUAAAUEbm90ZQULY3VycmVudE5vdGUECmxhYmVsVG9Vc2UDCQECIT0CCQCxAgEFBWxhYmVsAAAFBWxhYmVsBQxjdXJyZW50TGFiZWwDCQEPY29udGFpbnNFbGVtZW50AgkAzAgCBQVjaHJpcwkAzAgCCQClCAEFBHRoaXMFA25pbAUGY2FsbGVyBBNmcmVlX2NlcnRpZmljYXRpb25zAwkBAiE9AgURd2xfY2VydGlmaWNhdGlvbnMAAAkA/AcEBQhzaWduRGFwcAIbd2hpdGVsaXN0RnJlZUNlcnRpZmljYXRpb25zCQDMCAIFB2FkZHJlc3MJAMwIAgURd2xfY2VydGlmaWNhdGlvbnMJAMwIAgYFA25pbAUDbmlsBQNuaWwDCQAAAgUTZnJlZV9jZXJ0aWZpY2F0aW9ucwUTZnJlZV9jZXJ0aWZpY2F0aW9ucwQIZnJlZV90eHMDCQECIT0CBQZ3bF90eHMAAAkA/AcEBQ13aGl0ZWxpc3REYXBwAhB3aGl0ZWxpc3RGcmVlVHhzCQDMCAIFB2FkZHJlc3MJAMwIAgUGd2xfdHhzCQDMCAIGBQNuaWwFA25pbAUDbmlsAwkAAAIFCGZyZWVfdHhzBQhmcmVlX3R4cwQKZnJlZV9kcm9wcwMJAQIhPQIFCHdsX2Ryb3BzAAAJAPwHBAUNd2hpdGVsaXN0RGFwcAIRd2hpdGVsaXN0RnJlZURyb3AJAMwIAgUHYWRkcmVzcwkAzAgCBQh3bF9kcm9wcwkAzAgCBgUDbmlsBQNuaWwFA25pbAMJAAACBQpmcmVlX2Ryb3BzBQpmcmVlX2Ryb3BzBBBmcmVlX2NvbW1pc3Npb25zAwkBAiE9AgUOd2xfY29tbWlzc2lvbnMAAAkA/AcEBQ13aGl0ZWxpc3REYXBwAgl3aGl0ZWxpc3QJAMwIAgUHYWRkcmVzcwkAzAgCBQ53bF9jb21taXNzaW9ucwUDbmlsBQNuaWwFA25pbAMJAAACBRBmcmVlX2NvbW1pc3Npb25zBRBmcmVlX2NvbW1pc3Npb25zBA1jdXJyZW50U3RhdHVzCQEOZ2V0U3RyaW5nQnlLZXkBCQENa2V5VXNlclN0YXR1cwEFB2FkZHJlc3MDCQAAAgkAsQIBBQZzdGF0dXMAAAMJAAACBQ1jdXJyZW50U3RhdHVzAgAJAAIBAhdVc2VyIGhhdmUgbm8gc3RhdHVzIHlldAkAzAgCCQELU3RyaW5nRW50cnkCCQELa2V5VXNlck5vdGUBBQdhZGRyZXNzBQlub3RlVG9Vc2UJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDGtleVVzZXJMYWJlbAEFB2FkZHJlc3MFCmxhYmVsVG9Vc2UFA25pbAQLc3RhdHVzVG9TZXQJARF2YWxpZGF0ZU5ld1N0YXR1cwMFBnN0YXR1cwUHYWRkcmVzcwUNY3VycmVudFN0YXR1cwQEbmFtZQkA2gQBCQCbAwEJAQ5nZXRTdHJpbmdCeUtleQEJAQtrZXlVc2VyTmFtZQEFB2FkZHJlc3MEBXRodW1iCQDaBAEJAJsDAQkBDmdldFN0cmluZ0J5S2V5AQkBDGtleVVzZXJUaHVtYgEFB2FkZHJlc3MEBGRhdGUJAQ9nZXRJbnRlZ2VyQnlLZXkBCQELa2V5VXNlckRhdGUBBQdhZGRyZXNzBARqc29uCQEIbWFrZUpTT04DBQRuYW1lBQV0aHVtYgkApAMBBQRkYXRlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ1rZXlVc2VyU3RhdHVzAQUHYWRkcmVzcwULc3RhdHVzVG9TZXQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICCQCsAgIFDWN1cnJlbnRTdGF0dXMCAV8FB2FkZHJlc3MJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIFC3N0YXR1c1RvU2V0AgFfBQdhZGRyZXNzBQRqc29uCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQtrZXlVc2VyTm90ZQEFB2FkZHJlc3MFCW5vdGVUb1VzZQkAzAgCCQELU3RyaW5nRW50cnkCCQEMa2V5VXNlckxhYmVsAQUHYWRkcmVzcwUKbGFiZWxUb1VzZQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIhTm90IGFsbG93ZWQgdG8gY2hhbmdlIHVzZXIgc3RhdHVzBmludm9rZQEKZGVsZXRlVXNlcgEHYWRkcmVzcwQGY2FsbGVyCQClCAEIBQZpbnZva2UGY2FsbGVyBA1jdXJyZW50U3RhdHVzCQEOZ2V0U3RyaW5nQnlLZXkBCQENa2V5VXNlclN0YXR1cwEFB2FkZHJlc3MDCQEPY29udGFpbnNFbGVtZW50AgkAzAgCBQVjaHJpcwkAzAgCCQClCAEFBHRoaXMFA25pbAUGY2FsbGVyCQDMCAIJAQtEZWxldGVFbnRyeQEJAQtrZXlVc2VyRGF0ZQEFB2FkZHJlc3MJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBC2tleVVzZXJBZGRyAQUHYWRkcmVzcwkAzAgCCQELRGVsZXRlRW50cnkBCQELa2V5VXNlck5hbWUBBQdhZGRyZXNzCQDMCAIJAQtEZWxldGVFbnRyeQEJAQtrZXlVc2VyRGVzYwEFB2FkZHJlc3MJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBDWtleVVzZXJTb2NpYWwBBQdhZGRyZXNzCQDMCAIJAQtEZWxldGVFbnRyeQEJAQxrZXlVc2VyVGh1bWIBBQdhZGRyZXNzCQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgIKdXNlcl9ub3RlXwUHYWRkcmVzcwkAzAgCCQELRGVsZXRlRW50cnkBCQCsAgIJAKwCAgUNY3VycmVudFN0YXR1cwIBXwUHYWRkcmVzcwkAzAgCCQELRGVsZXRlRW50cnkBCQEQa2V5VXNlclJveWFsdGllcwEFB2FkZHJlc3MJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDWtleVVzZXJTdGF0dXMBBQdhZGRyZXNzBQt1c2VyUmVtb3ZlZAUDbmlsCQACAQILTm90IGFsbG93ZWQBaQEIc2V0QWdlbnQECmFydGlzdEFkZHIJYWdlbnRBZGRyDHByaW1hcnlTaGFyZQ5zZWNvbmRhcnlTaGFyZQMJAQEhAQULZGFwcFJ1bm5pbmcJAAIBBQ5tYWludGVuYW5jZU1TRwQGY2FsbGVyCQClCAEIBQFpBmNhbGxlcgMJAQ9jb250YWluc0VsZW1lbnQCCQDMCAIFBWNocmlzCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQZjYWxsZXIDAwkBAiE9AgkAsQIBBQphcnRpc3RBZGRyACMGCQECIT0CCQCxAgEFCWFnZW50QWRkcgAjCQACAQINV3JvbmcgYWRkcmVzcwkAzAgCCQELU3RyaW5nRW50cnkCCQESa2V5QXJ0aXN0QWdlbnRBZGRyAQUKYXJ0aXN0QWRkcgUJYWdlbnRBZGRyCQDMCAIJAQtTdHJpbmdFbnRyeQIJARJrZXlBZ2VudEFydGlzdEFkZHICBQlhZ2VudEFkZHIFCmFydGlzdEFkZHIFCmFydGlzdEFkZHIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQ9rZXlQcmltYXJ5U2hhcmUBBQphcnRpc3RBZGRyBQxwcmltYXJ5U2hhcmUJAMwIAgkBDEludGVnZXJFbnRyeQIJARFrZXlTZWNvbmRhcnlTaGFyZQEFCmFydGlzdEFkZHIFDnNlY29uZGFyeVNoYXJlBQNuaWwJAAIBAhNZb3UgYXJlIG5vdCBhbGxvd2VkAWkBCnVuc2V0QWdlbnQCCmFydGlzdEFkZHIJYWdlbnRBZGRyAwkBASEBBQtkYXBwUnVubmluZwkAAgEFDm1haW50ZW5hbmNlTVNHBAZjYWxsZXIJAKUIAQgFAWkGY2FsbGVyAwkBD2NvbnRhaW5zRWxlbWVudAIJAMwIAgUFY2hyaXMJAMwIAgkApQgBBQR0aGlzBQNuaWwFBmNhbGxlcgMDCQECIT0CCQCxAgEFCmFydGlzdEFkZHIAIwYJAQIhPQIJALECAQUJYWdlbnRBZGRyACMJAAIBAg1Xcm9uZyBhZGRyZXNzCQDMCAIJAQtEZWxldGVFbnRyeQEJARJrZXlBcnRpc3RBZ2VudEFkZHIBBQphcnRpc3RBZGRyCQDMCAIJAQtEZWxldGVFbnRyeQEJARJrZXlBZ2VudEFydGlzdEFkZHICBQlhZ2VudEFkZHIFCmFydGlzdEFkZHIJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBD2tleVByaW1hcnlTaGFyZQEFCmFydGlzdEFkZHIJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBEWtleVNlY29uZGFyeVNoYXJlAQUKYXJ0aXN0QWRkcgUDbmlsCQACAQITWW91IGFyZSBub3QgYWxsb3dlZAFpAQtkZWxldGVFbnRyeQEFZW50cnkEBmNhbGxlcgkApQgBCAUBaQZjYWxsZXIDCQAAAgUGY2FsbGVyBQVjaHJpcwkAzAgCCQELRGVsZXRlRW50cnkBBQVlbnRyeQUDbmlsCQACAQICbm8BAnR4AQh2ZXJpZmllcgAEByRtYXRjaDAFAnR4AwkAAQIFByRtYXRjaDACF0ludm9rZVNjcmlwdFRyYW5zYWN0aW9uBANpbnYFByRtYXRjaDADAwMDCQAAAggFA2ludghmdW5jdGlvbgIMcmVnaXN0ZXJVc2VyCQAAAggFA2ludgRkQXBwBQR0aGlzBwkAAAIIBQNpbnYDZmVlAKDCHgcJAAACCAUDaW52CmZlZUFzc2V0SWQFBHVuaXQHCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACQDZBAEJAQhhc1N0cmluZwEJAJEDAggFA2ludgRhcmdzAAUDAwMDCQAAAggFA2ludghmdW5jdGlvbgIKdXBkYXRlVXNlcgkAAAIIBQNpbnYEZEFwcAUEdGhpcwcJAAACCAUDaW52A2ZlZQCgwh4HCQAAAggFA2ludgpmZWVBc3NldElkBQR1bml0BwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAkA2QQBCQEIYXNTdHJpbmcBCQCRAwIIBQNpbnYEYXJncwAFAwMDAwkAAAIIBQNpbnYIZnVuY3Rpb24CDHNldEVSQzIwVXNlcgkAAAIIBQNpbnYEZEFwcAUEdGhpcwcJAAACCAUDaW52A2ZlZQCgwh4HCQAAAggFA2ludgpmZWVBc3NldElkBQR1bml0BwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAkA2QQBCQEIYXNTdHJpbmcBCQCRAwIIBQNpbnYEYXJncwACCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACAUCdHgPc2VuZGVyUHVibGljS2V5CQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACAUCdHgPc2VuZGVyUHVibGljS2V50cKbgw==", "height": 2429960, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 95cZ9HS3MyCatKeULv9dGckYC29t9Q3b6kAdnqkScGCt Next: CubxapEMht9f4PyDms3kDsPdQP2bwXBHUJEWDkKJEAuw Diff:
OldNewDifferences
199199 else false)
200200 then toString(addressFromPublicKey(fromBase58String(am)))
201201 else toBase58String(al.caller.bytes)
202- let ao = if ((am != ""))
202+ let ao = if (if ((am != ""))
203+ then (an > 0)
204+ else false)
203205 then invoke(m, "useFreeTx", [toString(addressFromPublicKey(fromBase58String(am)))], nil)
204206 else unit
205207 if ((ao == ao))
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "1.5"
55
66 func b (c) = valueOrElse(getString(this, c), "")
77
88
99 func d (c) = valueOrElse(getBoolean(this, c), false)
1010
1111
1212 func e (c) = valueOrElse(getInteger(this, c), 0)
1313
1414
1515 let f = b("conf_admin_1")
1616
1717 let g = "conf_dapp_is_running"
1818
1919 let h = "conf_maintenance_msg"
2020
2121 let i = "conf_whitelisted_only"
2222
2323 let j = valueOrElse(getBoolean(this, g), true)
2424
2525 let k = valueOrElse(getString(this, h), "")
2626
2727 let l = valueOrElse(getBoolean(this, i), true)
2828
2929 let m = value(addressFromString(b("conf_whitelist_dapp")))
3030
3131 let n = value(addressFromString(b("conf_signweb_dapp")))
3232
3333 let o = "ALLOWED"
3434
3535 let p = "REGISTERED"
3636
3737 let q = "VERIFIED"
3838
3939 let r = "SUSPENDED"
4040
4141 let s = "REMOVED"
4242
4343 let t = "CHANGE_REQUIRED"
4444
4545 let u = "UNREGISTERED"
4646
4747 let v = "RESET"
4848
4949 func w (x) = ("user_" + x)
5050
5151
5252 func y (x) = ("user_name_" + x)
5353
5454
5555 func z (x) = ("user_desc_" + x)
5656
5757
5858 func A (x) = ("user_social_" + x)
5959
6060
6161 func B (x) = ("user_thumb_" + x)
6262
6363
6464 func C (x) = ("user_status_" + x)
6565
6666
6767 func D (x) = ("user_royalties_" + x)
6868
6969
7070 func E (x) = ("user_date_" + x)
7171
7272
7373 func F (x) = ("user_ERC20_" + x)
7474
7575
7676 func G (x) = ("user_note_" + x)
7777
7878
7979 func H (x) = ("user_label_" + x)
8080
8181
8282 func I (J) = ("artist_agent_" + J)
8383
8484
8585 func K (L,J) = ((("agent_" + L) + "_") + J)
8686
8787
8888 func M (J) = ("artist_agent_primary_" + J)
8989
9090
9191 func N (J) = ("artist_agent_secondary_" + J)
9292
9393
9494 func O (c) = valueOrElse(getInteger(m, c), 0)
9595
9696
9797 func P (Q) = if (contains(Q, "/"))
9898 then if (if ((76 > size(Q)))
9999 then (size(split(Q, "/")[0]) == 59)
100100 else false)
101101 then (16 > size(split(Q, "/")[1]))
102102 else false
103103 else false
104104
105105
106106 func R (x,S,T,U,V) = {
107107 let W = if ((size(U) != 0))
108108 then P(U)
109109 else true
110110 if (!(W))
111111 then throw("CID don't match requirement!")
112112 else if (if ((S == ""))
113113 then true
114114 else (T == ""))
115115 then throw("Name and description cannot be empty")
116116 else if ((size(T) > 600))
117117 then throw("600 Char. max description")
118118 else if ((size(S) > 45))
119119 then throw("45 Char. max name")
120120 else {
121121 let X = b(C(x))
122122 if (if ((X == r))
123123 then true
124124 else (X == s))
125125 then throw("Account suspended/ removed.")
126126 else if (if (!(V))
127127 then (X == p)
128128 else false)
129129 then throw("Already registered")
130130 else if (if (if (!(V))
131131 then (X == "")
132132 else false)
133133 then l
134134 else false)
135135 then throw("Can't register, get approved first.")
136136 else if (if (if (V)
137137 then (X == "")
138138 else false)
139139 then true
140140 else if (V)
141141 then (X == o)
142142 else false)
143143 then throw("Register first")
144144 else true
145145 }
146146 }
147147
148148
149149 func Y (X,Z,aa) = {
150150 let ab = [q, p, r, s, o, t]
151151 let ac = if (containsElement(ab, X))
152152 then X
153153 else if (if ((X == v))
154154 then (aa == o)
155155 else false)
156156 then ""
157157 else throw("Unknown status")
158158 let ad = e(E(Z))
159159 if (if ((ad == 0))
160160 then (ac != o)
161161 else false)
162162 then throw("You cant set this status, user is not registered.")
163163 else if (if ((aa == o))
164164 then (ac == o)
165165 else false)
166166 then throw("User already allowed")
167167 else if (if ((aa == p))
168168 then (ac == o)
169169 else false)
170170 then throw("User already allowed & registered")
171171 else if (if ((aa == q))
172172 then (ac == o)
173173 else false)
174174 then throw("User already allowed & verified")
175175 else ac
176176 }
177177
178178
179179 func ae (S,U,af) = (((((("{\"user_name\": \"" + S) + "\", \"user_thumb\":\"") + U) + "\",\"user_date\":\"") + af) + "\"}")
180180
181181
182182 func ag (ah) = {
183183 let ai = ah
184184 if ($isInstanceOf(ai, "String"))
185185 then {
186186 let aj = ai
187187 aj
188188 }
189189 else throw("Sponsored Public Key String expected")
190190 }
191191
192192
193193 func ak (al,am) = {
194194 let an = if ((am != ""))
195195 then valueOrElse(O((toString(addressFromPublicKey(fromBase58String(am))) + "_free_txs")), 0)
196196 else 0
197197 let x = if (if ((toBase58String(al.caller.bytes) == toString(this)))
198198 then (an > 0)
199199 else false)
200200 then toString(addressFromPublicKey(fromBase58String(am)))
201201 else toBase58String(al.caller.bytes)
202- let ao = if ((am != ""))
202+ let ao = if (if ((am != ""))
203+ then (an > 0)
204+ else false)
203205 then invoke(m, "useFreeTx", [toString(addressFromPublicKey(fromBase58String(am)))], nil)
204206 else unit
205207 if ((ao == ao))
206208 then $Tuple2(x, (an > 0))
207209 else throw("Strict value is not equal to itself.")
208210 }
209211
210212
211213 @Callable(ap)
212214 func setConf (c,aq) = {
213215 let x = toString(ap.caller)
214216 if (containsElement([f, toString(this)], x))
215217 then [StringEntry(c, aq)]
216218 else throw("You are not allowed to change this")
217219 }
218220
219221
220222
221223 @Callable(ap)
222224 func appRunning (ar,as) = {
223225 let x = toString(ap.caller)
224226 if (containsElement([f, toString(this)], x))
225227 then [BooleanEntry(g, ar), StringEntry(h, as)]
226228 else throw("You are not allowed to change this")
227229 }
228230
229231
230232
231233 @Callable(ap)
232234 func registrationMode (at) = {
233235 let x = toString(ap.caller)
234236 if (containsElement([f, toString(this)], x))
235237 then [BooleanEntry(i, at)]
236238 else throw("You are not allowed to change this")
237239 }
238240
239241
240242
241243 @Callable(ap)
242244 func registerUser (S,T,U,au,av,am) = if (!(j))
243245 then throw(k)
244246 else {
245247 let aw = ak(ap, am)
246248 let x = aw._1
247249 let an = aw._2
248250 let ax = toBase58String(ap.transactionId)
249251 let ay = lastBlock.timestamp
250252 let az = b(G(x))
251253 let aA = b(H(x))
252254 if (!(R(x, S, T, U, false)))
253255 then throw("Something went wrong")
254256 else {
255257 let aB = ae(toBase64String(toBytes(S)), toBase64String(toBytes(U)), toString(ay))
256258 if (if ((0 > av))
257259 then true
258260 else (av > 1000))
259261 then throw("Royalties cannot be less than 0% or higher than 10%")
260262 else {
261263 let aC = if (an)
262264 then [ScriptTransfer(Address(fromBase58String(x)), 0, unit)]
263265 else nil
264266 ([IntegerEntry(E(x), ay), StringEntry(w(x), ((ax + "_") + toString(ay))), StringEntry(y(x), S), StringEntry(z(x), T), StringEntry(A(x), au), StringEntry(B(x), U), StringEntry(C(x), p), IntegerEntry(D(x), av), DeleteEntry(("ALLOWED_" + x)), StringEntry(((p + "_") + x), aB), StringEntry(G(x), az), StringEntry(H(x), aA)] ++ aC)
265267 }
266268 }
267269 }
268270
269271
270272
271273 @Callable(ap)
272274 func updateUser (S,T,U,au,av,am) = if (!(j))
273275 then throw(k)
274276 else {
275277 let aD = ak(ap, am)
276278 let x = aD._1
277279 let an = aD._2
278280 let X = b(C(x))
279281 if (!(R(x, S, T, U, true)))
280282 then throw("Something went wrong")
281283 else {
282284 let af = e(E(x))
283285 let aB = ae(toBase64String(toBytes(S)), toBase64String(toBytes(U)), toString(af))
284286 if (if ((0 > av))
285287 then true
286288 else (av > 1000))
287289 then throw("Royalties cannot be less than 0% or higher than 10%")
288290 else {
289291 let aC = if (an)
290292 then [ScriptTransfer(Address(fromBase58String(x)), 0, unit)]
291293 else nil
292294 ([StringEntry(y(x), S), StringEntry(z(x), T), StringEntry(A(x), au), StringEntry(B(x), U), IntegerEntry(D(x), av), StringEntry(((X + "_") + x), aB)] ++ aC)
293295 }
294296 }
295297 }
296298
297299
298300
299301 @Callable(ap)
300302 func setERC20User (aE,am) = if (!(j))
301303 then throw(k)
302304 else {
303305 let aF = ak(ap, am)
304306 let x = aF._1
305307 let an = aF._2
306308 let X = b(C(x))
307309 if (if ((X != p))
308310 then (X != q)
309311 else false)
310312 then throw("Not allowed to set ERC20 address")
311313 else {
312314 let aG = take(aE, 2)
313315 if (if ((aG != "0x"))
314316 then true
315317 else (size(aE) != 42))
316318 then throw("This is not an erc20 address")
317319 else {
318320 let aC = if (an)
319321 then [ScriptTransfer(Address(fromBase58String(x)), 0, unit)]
320322 else nil
321323 ([StringEntry(F(x), aE)] ++ aC)
322324 }
323325 }
324326 }
325327
326328
327329
328330 @Callable(ap)
329331 func changeUserStatus (Z,X,az,aA,aH,aI,aJ,aK) = {
330332 let x = toString(ap.caller)
331333 if ((size(Z) == 0))
332334 then throw("Address cannot be empty")
333335 else {
334336 let aL = b(G(Z))
335337 let aM = b(H(Z))
336338 let aN = if ((size(az) != 0))
337339 then az
338340 else aL
339341 let aO = if ((size(aA) != 0))
340342 then aA
341343 else aM
342344 if (containsElement([f, toString(this)], x))
343345 then {
344346 let aP = if ((aH != 0))
345347 then invoke(n, "whitelistFreeCertifications", [Z, aH, true], nil)
346348 else nil
347349 if ((aP == aP))
348350 then {
349351 let aQ = if ((aI != 0))
350352 then invoke(m, "whitelistFreeTxs", [Z, aI, true], nil)
351353 else nil
352354 if ((aQ == aQ))
353355 then {
354356 let aR = if ((aJ != 0))
355357 then invoke(m, "whitelistFreeDrop", [Z, aJ, true], nil)
356358 else nil
357359 if ((aR == aR))
358360 then {
359361 let aS = if ((aK != 0))
360362 then invoke(m, "whitelist", [Z, aK], nil)
361363 else nil
362364 if ((aS == aS))
363365 then {
364366 let aa = b(C(Z))
365367 if ((size(X) == 0))
366368 then if ((aa == ""))
367369 then throw("User have no status yet")
368370 else [StringEntry(G(Z), aN), StringEntry(H(Z), aO)]
369371 else {
370372 let ac = Y(X, Z, aa)
371373 let S = toBase64String(toBytes(b(y(Z))))
372374 let U = toBase64String(toBytes(b(B(Z))))
373375 let af = e(E(Z))
374376 let aB = ae(S, U, toString(af))
375377 [StringEntry(C(Z), ac), DeleteEntry(((aa + "_") + Z)), StringEntry(((ac + "_") + Z), aB), StringEntry(G(Z), aN), StringEntry(H(Z), aO)]
376378 }
377379 }
378380 else throw("Strict value is not equal to itself.")
379381 }
380382 else throw("Strict value is not equal to itself.")
381383 }
382384 else throw("Strict value is not equal to itself.")
383385 }
384386 else throw("Strict value is not equal to itself.")
385387 }
386388 else throw("Not allowed to change user status")
387389 }
388390 }
389391
390392
391393
392394 @Callable(ap)
393395 func deleteUser (Z) = {
394396 let x = toString(ap.caller)
395397 let aa = b(C(Z))
396398 if (containsElement([f, toString(this)], x))
397399 then [DeleteEntry(E(Z)), DeleteEntry(w(Z)), DeleteEntry(y(Z)), DeleteEntry(z(Z)), DeleteEntry(A(Z)), DeleteEntry(B(Z)), DeleteEntry(("user_note_" + Z)), DeleteEntry(((aa + "_") + Z)), DeleteEntry(D(Z)), StringEntry(C(Z), s)]
398400 else throw("Not allowed")
399401 }
400402
401403
402404
403405 @Callable(al)
404406 func setAgent (J,L,aT,aU) = if (!(j))
405407 then throw(k)
406408 else {
407409 let x = toString(al.caller)
408410 if (containsElement([f, toString(this)], x))
409411 then if (if ((size(J) != 35))
410412 then true
411413 else (size(L) != 35))
412414 then throw("Wrong address")
413415 else [StringEntry(I(J), L), StringEntry(K(L, J), J), IntegerEntry(M(J), aT), IntegerEntry(N(J), aU)]
414416 else throw("You are not allowed")
415417 }
416418
417419
418420
419421 @Callable(al)
420422 func unsetAgent (J,L) = if (!(j))
421423 then throw(k)
422424 else {
423425 let x = toString(al.caller)
424426 if (containsElement([f, toString(this)], x))
425427 then if (if ((size(J) != 35))
426428 then true
427429 else (size(L) != 35))
428430 then throw("Wrong address")
429431 else [DeleteEntry(I(J)), DeleteEntry(K(L, J)), DeleteEntry(M(J)), DeleteEntry(N(J))]
430432 else throw("You are not allowed")
431433 }
432434
433435
434436
435437 @Callable(al)
436438 func deleteEntry (aV) = {
437439 let x = toString(al.caller)
438440 if ((x == f))
439441 then [DeleteEntry(aV)]
440442 else throw("no")
441443 }
442444
443445
444446 @Verifier(aW)
445447 func aX () = {
446448 let ai = aW
447449 if ($isInstanceOf(ai, "InvokeScriptTransaction"))
448450 then {
449451 let aY = ai
450452 if (if (if (if ((aY.function == "registerUser"))
451453 then (aY.dApp == this)
452454 else false)
453455 then (aY.fee == 500000)
454456 else false)
455457 then (aY.feeAssetId == unit)
456458 else false)
457459 then sigVerify(aW.bodyBytes, aW.proofs[0], fromBase58String(ag(aY.args[5])))
458460 else if (if (if (if ((aY.function == "updateUser"))
459461 then (aY.dApp == this)
460462 else false)
461463 then (aY.fee == 500000)
462464 else false)
463465 then (aY.feeAssetId == unit)
464466 else false)
465467 then sigVerify(aW.bodyBytes, aW.proofs[0], fromBase58String(ag(aY.args[5])))
466468 else if (if (if (if ((aY.function == "setERC20User"))
467469 then (aY.dApp == this)
468470 else false)
469471 then (aY.fee == 500000)
470472 else false)
471473 then (aY.feeAssetId == unit)
472474 else false)
473475 then sigVerify(aW.bodyBytes, aW.proofs[0], fromBase58String(ag(aY.args[2])))
474476 else sigVerify(aW.bodyBytes, aW.proofs[0], aW.senderPublicKey)
475477 }
476478 else sigVerify(aW.bodyBytes, aW.proofs[0], aW.senderPublicKey)
477479 }
478480

github/deemru/w8io/026f985 
59.61 ms