tx · BnduyS8akrEtfpDUXj7Bt8N76E6qe3qDu4u3h5F8oow3

3N8xXaYjE27Aa79d5hHrhHu9HaFoTBmhDEj:  -0.01400000 Waves

2023.10.10 08:18 [2792101] smart account 3N8xXaYjE27Aa79d5hHrhHu9HaFoTBmhDEj > SELF 0.00000000 Waves

{ "type": 13, "id": "BnduyS8akrEtfpDUXj7Bt8N76E6qe3qDu4u3h5F8oow3", "fee": 1400000, "feeAssetId": null, "timestamp": 1696915121661, "version": 2, "chainId": 84, "sender": "3N8xXaYjE27Aa79d5hHrhHu9HaFoTBmhDEj", "senderPublicKey": "A2m227AHcq7gWfSU59Q3UJaqkEa7SccFYmJuWHbFrrKE", "proofs": [ "4b8ZBKTHKoxRGqXp7RZn22WwZUsV5T17PNdRxjRRjaczoAFWtE1Ge7uWyDLBwrwTEjLqRxW6hcLbADmv9HWGUMkv" ], "script": "base64:BgJTCAISBAoCCAgSBAoCBAgSAwoBBBIICgYICAgIAQgSCAoGCAgICAEIEgQKAggIEgoKCAgICAgBAQEBEgMKAQgSBwoFCAgBAQQSBQoDCAgEEgMKAQgvAAdWRVJTSU9OAgMxLjUBDmdldFN0cmluZ0J5S2V5AQNrZXkJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUDa2V5AgABD2dldEJvb2xlYW5CeUtleQEDa2V5CQELdmFsdWVPckVsc2UCCQCbCAIFBHRoaXMFA2tleQcBD2dldEludGVnZXJCeUtleQEDa2V5CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFA2tleQAAAAVjaHJpcwkBDmdldFN0cmluZ0J5S2V5AQIMY29uZl9hZG1pbl8xAA5kYXBwUnVubmluZ0tleQIUY29uZl9kYXBwX2lzX3J1bm5pbmcAEW1haW50ZW5hbmNlTVNHS2V5AhRjb25mX21haW50ZW5hbmNlX21zZwASd2hpdGVsaXN0ZWRvbmx5S2V5AhVjb25mX3doaXRlbGlzdGVkX29ubHkAC2RhcHBSdW5uaW5nCQELdmFsdWVPckVsc2UCCQCbCAIFBHRoaXMFDmRhcHBSdW5uaW5nS2V5BgAObWFpbnRlbmFuY2VNU0cJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwURbWFpbnRlbmFuY2VNU0dLZXkCAAAPd2hpdGVsaXN0ZWRvbmx5CQELdmFsdWVPckVsc2UCCQCbCAIFBHRoaXMFEndoaXRlbGlzdGVkb25seUtleQYADXdoaXRlbGlzdERhcHAJAQV2YWx1ZQEJAKYIAQkBDmdldFN0cmluZ0J5S2V5AQITY29uZl93aGl0ZWxpc3RfZGFwcAAIc2lnbkRhcHAJAQV2YWx1ZQEJAKYIAQkBDmdldFN0cmluZ0J5S2V5AQIRY29uZl9zaWdud2ViX2RhcHAAC3VzZXJBbGxvd2VkAgdBTExPV0VEAA51c2VyUmVnaXN0ZXJlZAIKUkVHSVNURVJFRAAMdXNlclZlcmlmaWVkAghWRVJJRklFRAANdXNlclN1c3BlbmRlZAIJU1VTUEVOREVEAAt1c2VyUmVtb3ZlZAIHUkVNT1ZFRAASdXNlckNoYW5nZVJlcXVpcmVkAg9DSEFOR0VfUkVRVUlSRUQAEHVzZXJVbnJlZ2lzdGVyZWQCDFVOUkVHSVNURVJFRAAJdXNlclJlc2V0AgVSRVNFVAELa2V5VXNlckFkZHIBBmNhbGxlcgkArAICAgV1c2VyXwUGY2FsbGVyAQtrZXlVc2VyTmFtZQEGY2FsbGVyCQCsAgICCnVzZXJfbmFtZV8FBmNhbGxlcgELa2V5VXNlckRlc2MBBmNhbGxlcgkArAICAgp1c2VyX2Rlc2NfBQZjYWxsZXIBDWtleVVzZXJTb2NpYWwBBmNhbGxlcgkArAICAgx1c2VyX3NvY2lhbF8FBmNhbGxlcgEMa2V5VXNlclRodW1iAQZjYWxsZXIJAKwCAgILdXNlcl90aHVtYl8FBmNhbGxlcgENa2V5VXNlclN0YXR1cwEGY2FsbGVyCQCsAgICDHVzZXJfc3RhdHVzXwUGY2FsbGVyARBrZXlVc2VyUm95YWx0aWVzAQZjYWxsZXIJAKwCAgIPdXNlcl9yb3lhbHRpZXNfBQZjYWxsZXIBC2tleVVzZXJEYXRlAQZjYWxsZXIJAKwCAgIKdXNlcl9kYXRlXwUGY2FsbGVyAQxrZXlVc2VyRVJDMjABBmNhbGxlcgkArAICAgt1c2VyX0VSQzIwXwUGY2FsbGVyAQtrZXlVc2VyTm90ZQEGY2FsbGVyCQCsAgICCnVzZXJfbm90ZV8FBmNhbGxlcgEMa2V5VXNlckxhYmVsAQZjYWxsZXIJAKwCAgILdXNlcl9sYWJlbF8FBmNhbGxlcgESa2V5QXJ0aXN0QWdlbnRBZGRyAQphcnRpc3RBZGRyCQCsAgICDWFydGlzdF9hZ2VudF8FCmFydGlzdEFkZHIBEmtleUFnZW50QXJ0aXN0QWRkcgIJYWdlbnRBZGRyCmFydGlzdEFkZHIJAKwCAgkArAICCQCsAgICBmFnZW50XwUJYWdlbnRBZGRyAgFfBQphcnRpc3RBZGRyARRrZXlQcmltYXJ5U2hhcmVBZ2VudAEKYXJ0aXN0QWRkcgkArAICAhVhcnRpc3RfYWdlbnRfcHJpbWFyeV8FCmFydGlzdEFkZHIBFmtleVNlY29uZGFyeVNoYXJlQWdlbnQBCmFydGlzdEFkZHIJAKwCAgIXYXJ0aXN0X2FnZW50X3NlY29uZGFyeV8FCmFydGlzdEFkZHIBGGtleUFydGlzdFB1YmxpY0FnZW50QWRkcgEKYXJ0aXN0QWRkcgkArAICAhRhcnRpc3RfcHVibGljX2FnZW50XwUKYXJ0aXN0QWRkcgEYa2V5UHVibGljQWdlbnRBcnRpc3RBZGRyAglhZ2VudEFkZHIKYXJ0aXN0QWRkcgkArAICCQCsAgIJAKwCAgINcHVibGljX2FnZW50XwUJYWdlbnRBZGRyAgFfBQphcnRpc3RBZGRyARprZXlQcmltYXJ5U2hhcmVQdWJsaWNBZ2VudAEKYXJ0aXN0QWRkcgkArAICAhxhcnRpc3RfcHVibGljX2FnZW50X3ByaW1hcnlfBQphcnRpc3RBZGRyARxrZXlTZWNvbmRhcnlTaGFyZVB1YmxpY0FnZW50AQphcnRpc3RBZGRyCQCsAgICHmFydGlzdF9wdWJsaWNfYWdlbnRfc2Vjb25kYXJ5XwUKYXJ0aXN0QWRkcgEOY2hlY2tXaGl0ZWxpc3QBA2tleQkBC3ZhbHVlT3JFbHNlAgkAmggCBQ13aGl0ZWxpc3REYXBwBQNrZXkAAAELdmFsaWRhdGVDSUQBA2NpZAMJAQhjb250YWlucwIFA2NpZAIBLwMDCQBmAgBMCQCxAgEFA2NpZAkAAAIJALECAQkAkQMCCQC1CQIFA2NpZAIBLwAAADsHCQBmAgAQCQCxAgEJAJEDAgkAtQkCBQNjaWQCAS8AAQcHAQ12YWxpZFVzZXJEYXRhBQZjYWxsZXIEbmFtZQtkZXNjcmlwdGlvbgV0aHVtYgppc0FuVXBkYXRlBAh2YWxpZENJRAMJAQIhPQIJALECAQUFdGh1bWIAAAkBC3ZhbGlkYXRlQ0lEAQUFdGh1bWIGAwkBASEBBQh2YWxpZENJRAkAAgECHENJRCBkb24ndCBtYXRjaCByZXF1aXJlbWVudCEDAwkAAAIFBG5hbWUCAAYJAAACBQtkZXNjcmlwdGlvbgIACQACAQIkTmFtZSBhbmQgZGVzY3JpcHRpb24gY2Fubm90IGJlIGVtcHR5AwkAZgIJALECAQULZGVzY3JpcHRpb24A2AQJAAIBAhk2MDAgQ2hhci4gbWF4IGRlc2NyaXB0aW9uAwkAZgIJALECAQUEbmFtZQAtCQACAQIRNDUgQ2hhci4gbWF4IG5hbWUEBnN0YXR1cwkBDmdldFN0cmluZ0J5S2V5AQkBDWtleVVzZXJTdGF0dXMBBQZjYWxsZXIDAwkAAAIFBnN0YXR1cwUNdXNlclN1c3BlbmRlZAYJAAACBQZzdGF0dXMFC3VzZXJSZW1vdmVkCQACAQIbQWNjb3VudCBzdXNwZW5kZWQvIHJlbW92ZWQuAwMJAQEhAQUKaXNBblVwZGF0ZQkAAAIFBnN0YXR1cwUOdXNlclJlZ2lzdGVyZWQHCQACAQISQWxyZWFkeSByZWdpc3RlcmVkAwMDCQEBIQEFCmlzQW5VcGRhdGUJAAACBQZzdGF0dXMCAAcFD3doaXRlbGlzdGVkb25seQcJAAIBAiNDYW4ndCByZWdpc3RlciwgZ2V0IGFwcHJvdmVkIGZpcnN0LgMDAwUKaXNBblVwZGF0ZQkAAAIFBnN0YXR1cwIABwYDBQppc0FuVXBkYXRlCQAAAgUGc3RhdHVzBQt1c2VyQWxsb3dlZAcJAAIBAg5SZWdpc3RlciBmaXJzdAYBEXZhbGlkYXRlTmV3U3RhdHVzAwZzdGF0dXMHYWRkcmVzcw1jdXJyZW50U3RhdHVzBAlhbGxTdGF0dXMJAMwIAgUMdXNlclZlcmlmaWVkCQDMCAIFDnVzZXJSZWdpc3RlcmVkCQDMCAIFDXVzZXJTdXNwZW5kZWQJAMwIAgULdXNlclJlbW92ZWQJAMwIAgULdXNlckFsbG93ZWQJAMwIAgUSdXNlckNoYW5nZVJlcXVpcmVkBQNuaWwEC3N0YXR1c1RvU2V0AwkBD2NvbnRhaW5zRWxlbWVudAIFCWFsbFN0YXR1cwUGc3RhdHVzBQZzdGF0dXMDAwkAAAIFBnN0YXR1cwUJdXNlclJlc2V0CQAAAgUNY3VycmVudFN0YXR1cwULdXNlckFsbG93ZWQHAgAJAAIBAg5Vbmtub3duIHN0YXR1cwQQdXNlcklzUmVnaXN0ZXJlZAkBD2dldEludGVnZXJCeUtleQEJAQtrZXlVc2VyRGF0ZQEFB2FkZHJlc3MDAwkAAAIFEHVzZXJJc1JlZ2lzdGVyZWQAAAkBAiE9AgULc3RhdHVzVG9TZXQFC3VzZXJBbGxvd2VkBwkAAgECMVlvdSBjYW50IHNldCB0aGlzIHN0YXR1cywgdXNlciBpcyBub3QgcmVnaXN0ZXJlZC4DAwkAAAIFDWN1cnJlbnRTdGF0dXMFC3VzZXJBbGxvd2VkCQAAAgULc3RhdHVzVG9TZXQFC3VzZXJBbGxvd2VkBwkAAgECFFVzZXIgYWxyZWFkeSBhbGxvd2VkAwMJAAACBQ1jdXJyZW50U3RhdHVzBQ51c2VyUmVnaXN0ZXJlZAkAAAIFC3N0YXR1c1RvU2V0BQt1c2VyQWxsb3dlZAcJAAIBAiFVc2VyIGFscmVhZHkgYWxsb3dlZCAmIHJlZ2lzdGVyZWQDAwkAAAIFDWN1cnJlbnRTdGF0dXMFDHVzZXJWZXJpZmllZAkAAAIFC3N0YXR1c1RvU2V0BQt1c2VyQWxsb3dlZAcJAAIBAh9Vc2VyIGFscmVhZHkgYWxsb3dlZCAmIHZlcmlmaWVkBQtzdGF0dXNUb1NldAEIbWFrZUpTT04DBG5hbWUFdGh1bWIEZGF0ZQkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIPeyJ1c2VyX25hbWUiOiAiBQRuYW1lAhEiLCAidXNlcl90aHVtYiI6IgUFdGh1bWICDyIsInVzZXJfZGF0ZSI6IgUEZGF0ZQICIn0BCGFzU3RyaW5nAQJidgQHJG1hdGNoMAUCYnYDCQABAgUHJG1hdGNoMAIGU3RyaW5nBANidjAFByRtYXRjaDAFA2J2MAkAAgECJFNwb25zb3JlZCBQdWJsaWMgS2V5IFN0cmluZyBleHBlY3RlZAEJZ2V0Q2FsbGVyAgFpBnB1YktleQQLaXNTcG9uc29yZWQDCQECIT0CBQZwdWJLZXkCAAkBC3ZhbHVlT3JFbHNlAgkBDmNoZWNrV2hpdGVsaXN0AQkArAICCQClCAEJAKcIAQkA2QQBBQZwdWJLZXkCCV9mcmVlX3R4cwAAAAAEBmNhbGxlcgMDCQAAAgkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzCQClCAEFBHRoaXMJAGYCBQtpc1Nwb25zb3JlZAAABwkApQgBCQCnCAEJANkEAQUGcHViS2V5CQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMEE2dldF9zcG9uc29yZWRfd2F2ZXMDAwkBAiE9AgUGcHViS2V5AgAJAGYCBQtpc1Nwb25zb3JlZAAABwkA/AcEBQ13aGl0ZWxpc3REYXBwAgl1c2VGcmVlVHgJAMwIAgkApQgBCQCnCAEJANkEAQUGcHViS2V5BQNuaWwFA25pbAUEdW5pdAMJAAACBRNnZXRfc3BvbnNvcmVkX3dhdmVzBRNnZXRfc3BvbnNvcmVkX3dhdmVzCQCUCgIFBmNhbGxlcgkAZgIFC2lzU3BvbnNvcmVkAAAJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4LBmludm9rZQEHc2V0Q29uZgIDa2V5A3ZhbAQGY2FsbGVyCQClCAEIBQZpbnZva2UGY2FsbGVyAwkBD2NvbnRhaW5zRWxlbWVudAIJAMwIAgUFY2hyaXMJAMwIAgkApQgBBQR0aGlzBQNuaWwFBmNhbGxlcgkAzAgCCQELU3RyaW5nRW50cnkCBQNrZXkFA3ZhbAUDbmlsCQACAQIiWW91IGFyZSBub3QgYWxsb3dlZCB0byBjaGFuZ2UgdGhpcwZpbnZva2UBCmFwcFJ1bm5pbmcCBmlzTGl2ZQdtZXNzYWdlBAZjYWxsZXIJAKUIAQgFBmludm9rZQZjYWxsZXIDCQEPY29udGFpbnNFbGVtZW50AgkAzAgCBQVjaHJpcwkAzAgCCQClCAEFBHRoaXMFA25pbAUGY2FsbGVyCQDMCAIJAQxCb29sZWFuRW50cnkCBQ5kYXBwUnVubmluZ0tleQUGaXNMaXZlCQDMCAIJAQtTdHJpbmdFbnRyeQIFEW1haW50ZW5hbmNlTVNHS2V5BQdtZXNzYWdlBQNuaWwJAAIBAiJZb3UgYXJlIG5vdCBhbGxvd2VkIHRvIGNoYW5nZSB0aGlzBmludm9rZQEQcmVnaXN0cmF0aW9uTW9kZQEGV0xvbmx5BAZjYWxsZXIJAKUIAQgFBmludm9rZQZjYWxsZXIDCQEPY29udGFpbnNFbGVtZW50AgkAzAgCBQVjaHJpcwkAzAgCCQClCAEFBHRoaXMFA25pbAUGY2FsbGVyCQDMCAIJAQxCb29sZWFuRW50cnkCBRJ3aGl0ZWxpc3RlZG9ubHlLZXkFBldMb25seQUDbmlsCQACAQIiWW91IGFyZSBub3QgYWxsb3dlZCB0byBjaGFuZ2UgdGhpcwZpbnZva2UBDHJlZ2lzdGVyVXNlcgYEbmFtZQtkZXNjcmlwdGlvbgV0aHVtYgZzb2NpYWwJcm95YWx0aWVzBnB1YktleQMJAQEhAQULZGFwcFJ1bm5pbmcJAAIBBQ5tYWludGVuYW5jZU1TRwQLJHQwNzkxODc5NzAJAQlnZXRDYWxsZXICBQZpbnZva2UFBnB1YktleQQGY2FsbGVyCAULJHQwNzkxODc5NzACXzEEC2lzU3BvbnNvcmVkCAULJHQwNzkxODc5NzACXzIEAmlkCQDYBAEIBQZpbnZva2UNdHJhbnNhY3Rpb25JZAQJdGltZXN0YW1wCAUJbGFzdEJsb2NrCXRpbWVzdGFtcAQEbm90ZQkBDmdldFN0cmluZ0J5S2V5AQkBC2tleVVzZXJOb3RlAQUGY2FsbGVyBAVsYWJlbAkBDmdldFN0cmluZ0J5S2V5AQkBDGtleVVzZXJMYWJlbAEFBmNhbGxlcgMJAQEhAQkBDXZhbGlkVXNlckRhdGEFBQZjYWxsZXIFBG5hbWUFC2Rlc2NyaXB0aW9uBQV0aHVtYgcJAAIBAhRTb21ldGhpbmcgd2VudCB3cm9uZwQEanNvbgkBCG1ha2VKU09OAwkA2gQBCQCbAwEFBG5hbWUJANoEAQkAmwMBBQV0aHVtYgkApAMBBQl0aW1lc3RhbXADAwkAZgIAAAUJcm95YWx0aWVzBgkAZgIFCXJveWFsdGllcwDoBwkAAgECM1JveWFsdGllcyBjYW5ub3QgYmUgbGVzcyB0aGFuIDAlIG9yIGhpZ2hlciB0aGFuIDEwJQQKdHhUb0NhbGxlcgMFC2lzU3BvbnNvcmVkCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBBQZjYWxsZXIAAAUEdW5pdAUDbmlsBQNuaWwJAM4IAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBC2tleVVzZXJEYXRlAQUGY2FsbGVyBQl0aW1lc3RhbXAJAMwIAgkBC1N0cmluZ0VudHJ5AgkBC2tleVVzZXJBZGRyAQUGY2FsbGVyCQCsAgIJAKwCAgUCaWQCAV8JAKQDAQUJdGltZXN0YW1wCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQtrZXlVc2VyTmFtZQEFBmNhbGxlcgUEbmFtZQkAzAgCCQELU3RyaW5nRW50cnkCCQELa2V5VXNlckRlc2MBBQZjYWxsZXIFC2Rlc2NyaXB0aW9uCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ1rZXlVc2VyU29jaWFsAQUGY2FsbGVyBQZzb2NpYWwJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDGtleVVzZXJUaHVtYgEFBmNhbGxlcgUFdGh1bWIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDWtleVVzZXJTdGF0dXMBBQZjYWxsZXIFDnVzZXJSZWdpc3RlcmVkCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEQa2V5VXNlclJveWFsdGllcwEFBmNhbGxlcgUJcm95YWx0aWVzCQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgIIQUxMT1dFRF8FBmNhbGxlcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgUOdXNlclJlZ2lzdGVyZWQCAV8FBmNhbGxlcgUEanNvbgkAzAgCCQELU3RyaW5nRW50cnkCCQELa2V5VXNlck5vdGUBBQZjYWxsZXIFBG5vdGUJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDGtleVVzZXJMYWJlbAEFBmNhbGxlcgUFbGFiZWwFA25pbAUKdHhUb0NhbGxlcgZpbnZva2UBCnVwZGF0ZVVzZXIGBG5hbWULZGVzY3JpcHRpb24FdGh1bWIGc29jaWFsCXJveWFsdGllcwZwdWJLZXkDCQEBIQEFC2RhcHBSdW5uaW5nCQACAQUObWFpbnRlbmFuY2VNU0cECyR0MDk2NTU5NzU5CQEJZ2V0Q2FsbGVyAgUGaW52b2tlBQZwdWJLZXkEBmNhbGxlcggFCyR0MDk2NTU5NzU5Al8xBAtpc1Nwb25zb3JlZAgFCyR0MDk2NTU5NzU5Al8yBAZzdGF0dXMJAQ5nZXRTdHJpbmdCeUtleQEJAQ1rZXlVc2VyU3RhdHVzAQUGY2FsbGVyAwkBASEBCQENdmFsaWRVc2VyRGF0YQUFBmNhbGxlcgUEbmFtZQULZGVzY3JpcHRpb24FBXRodW1iBgkAAgECFFNvbWV0aGluZyB3ZW50IHdyb25nBARkYXRlCQEPZ2V0SW50ZWdlckJ5S2V5AQkBC2tleVVzZXJEYXRlAQUGY2FsbGVyBARqc29uCQEIbWFrZUpTT04DCQDaBAEJAJsDAQUEbmFtZQkA2gQBCQCbAwEFBXRodW1iCQCkAwEFBGRhdGUDAwkAZgIAAAUJcm95YWx0aWVzBgkAZgIFCXJveWFsdGllcwDoBwkAAgECM1JveWFsdGllcyBjYW5ub3QgYmUgbGVzcyB0aGFuIDAlIG9yIGhpZ2hlciB0aGFuIDEwJQQKdHhUb0NhbGxlcgMFC2lzU3BvbnNvcmVkCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBBQZjYWxsZXIAAAUEdW5pdAUDbmlsBQNuaWwJAM4IAgkAzAgCCQELU3RyaW5nRW50cnkCCQELa2V5VXNlck5hbWUBBQZjYWxsZXIFBG5hbWUJAMwIAgkBC1N0cmluZ0VudHJ5AgkBC2tleVVzZXJEZXNjAQUGY2FsbGVyBQtkZXNjcmlwdGlvbgkAzAgCCQELU3RyaW5nRW50cnkCCQENa2V5VXNlclNvY2lhbAEFBmNhbGxlcgUGc29jaWFsCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQxrZXlVc2VyVGh1bWIBBQZjYWxsZXIFBXRodW1iCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEQa2V5VXNlclJveWFsdGllcwEFBmNhbGxlcgUJcm95YWx0aWVzCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICBQZzdGF0dXMCAV8FBmNhbGxlcgUEanNvbgUDbmlsBQp0eFRvQ2FsbGVyBmludm9rZQEMc2V0RVJDMjBVc2VyAgVlcmMyMAZwdWJLZXkDCQEBIQEFC2RhcHBSdW5uaW5nCQACAQUObWFpbnRlbmFuY2VNU0cEDSR0MDEwOTQ2MTEwNDkJAQlnZXRDYWxsZXICBQZpbnZva2UFBnB1YktleQQGY2FsbGVyCAUNJHQwMTA5NDYxMTA0OQJfMQQLaXNTcG9uc29yZWQIBQ0kdDAxMDk0NjExMDQ5Al8yBAZzdGF0dXMJAQ5nZXRTdHJpbmdCeUtleQEJAQ1rZXlVc2VyU3RhdHVzAQUGY2FsbGVyAwMJAQIhPQIFBnN0YXR1cwUOdXNlclJlZ2lzdGVyZWQJAQIhPQIFBnN0YXR1cwUMdXNlclZlcmlmaWVkBwkAAgECIE5vdCBhbGxvd2VkIHRvIHNldCBFUkMyMCBhZGRyZXNzBAhmaXJzdFR3bwkArwICBQVlcmMyMAACAwMJAQIhPQIFCGZpcnN0VHdvAgIweAYJAQIhPQIJALECAQUFZXJjMjAAKgkAAgECHFRoaXMgaXMgbm90IGFuIGVyYzIwIGFkZHJlc3MECnR4VG9DYWxsZXIDBQtpc1Nwb25zb3JlZAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQUGY2FsbGVyAAAFBHVuaXQFA25pbAUDbmlsCQDOCAIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDGtleVVzZXJFUkMyMAEFBmNhbGxlcgUFZXJjMjAFA25pbAUKdHhUb0NhbGxlcgZpbnZva2UBEGNoYW5nZVVzZXJTdGF0dXMIB2FkZHJlc3MGc3RhdHVzBG5vdGUFbGFiZWwRd2xfY2VydGlmaWNhdGlvbnMGd2xfdHhzCHdsX2Ryb3BzDndsX2NvbW1pc3Npb25zBAZjYWxsZXIJAKUIAQgFBmludm9rZQZjYWxsZXIDCQAAAgkAsQIBBQdhZGRyZXNzAAAJAAIBAhdBZGRyZXNzIGNhbm5vdCBiZSBlbXB0eQQLY3VycmVudE5vdGUJAQ5nZXRTdHJpbmdCeUtleQEJAQtrZXlVc2VyTm90ZQEFB2FkZHJlc3MEDGN1cnJlbnRMYWJlbAkBDmdldFN0cmluZ0J5S2V5AQkBDGtleVVzZXJMYWJlbAEFB2FkZHJlc3MECW5vdGVUb1VzZQMDCQECIT0CCQCxAgEFBG5vdGUAAAkBAiE9AgUEbm90ZQIBLgcFBG5vdGUDCQAAAgUEbm90ZQIBLgIABQtjdXJyZW50Tm90ZQQKbGFiZWxUb1VzZQMDCQECIT0CCQCxAgEFBWxhYmVsAAAJAQIhPQIFBWxhYmVsAgEuBwUFbGFiZWwDCQAAAgUFbGFiZWwCAS4CAAUMY3VycmVudExhYmVsAwkBD2NvbnRhaW5zRWxlbWVudAIJAMwIAgUFY2hyaXMJAMwIAgkApQgBBQR0aGlzBQNuaWwFBmNhbGxlcgQTZnJlZV9jZXJ0aWZpY2F0aW9ucwMJAQIhPQIFEXdsX2NlcnRpZmljYXRpb25zAAAJAPwHBAUIc2lnbkRhcHACG3doaXRlbGlzdEZyZWVDZXJ0aWZpY2F0aW9ucwkAzAgCBQdhZGRyZXNzCQDMCAIFEXdsX2NlcnRpZmljYXRpb25zCQDMCAIGBQNuaWwFA25pbAUDbmlsAwkAAAIFE2ZyZWVfY2VydGlmaWNhdGlvbnMFE2ZyZWVfY2VydGlmaWNhdGlvbnMECGZyZWVfdHhzAwkBAiE9AgUGd2xfdHhzAAAJAPwHBAUNd2hpdGVsaXN0RGFwcAIQd2hpdGVsaXN0RnJlZVR4cwkAzAgCBQdhZGRyZXNzCQDMCAIFBndsX3R4cwkAzAgCBgUDbmlsBQNuaWwFA25pbAMJAAACBQhmcmVlX3R4cwUIZnJlZV90eHMECmZyZWVfZHJvcHMDCQECIT0CBQh3bF9kcm9wcwAACQD8BwQFDXdoaXRlbGlzdERhcHACEXdoaXRlbGlzdEZyZWVEcm9wCQDMCAIFB2FkZHJlc3MJAMwIAgUId2xfZHJvcHMJAMwIAgYFA25pbAUDbmlsBQNuaWwDCQAAAgUKZnJlZV9kcm9wcwUKZnJlZV9kcm9wcwQQZnJlZV9jb21taXNzaW9ucwMJAQIhPQIFDndsX2NvbW1pc3Npb25zAAAJAPwHBAUNd2hpdGVsaXN0RGFwcAIJd2hpdGVsaXN0CQDMCAIFB2FkZHJlc3MJAMwIAgUOd2xfY29tbWlzc2lvbnMFA25pbAUDbmlsBQNuaWwDCQAAAgUQZnJlZV9jb21taXNzaW9ucwUQZnJlZV9jb21taXNzaW9ucwQNY3VycmVudFN0YXR1cwkBDmdldFN0cmluZ0J5S2V5AQkBDWtleVVzZXJTdGF0dXMBBQdhZGRyZXNzAwkAAAIJALECAQUGc3RhdHVzAAADCQAAAgUNY3VycmVudFN0YXR1cwIACQACAQIXVXNlciBoYXZlIG5vIHN0YXR1cyB5ZXQJAMwIAgkBC1N0cmluZ0VudHJ5AgkBC2tleVVzZXJOb3RlAQUHYWRkcmVzcwUJbm90ZVRvVXNlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQxrZXlVc2VyTGFiZWwBBQdhZGRyZXNzBQpsYWJlbFRvVXNlBQNuaWwEC3N0YXR1c1RvU2V0CQERdmFsaWRhdGVOZXdTdGF0dXMDBQZzdGF0dXMFB2FkZHJlc3MFDWN1cnJlbnRTdGF0dXMEBG5hbWUJANoEAQkAmwMBCQEOZ2V0U3RyaW5nQnlLZXkBCQELa2V5VXNlck5hbWUBBQdhZGRyZXNzBAV0aHVtYgkA2gQBCQCbAwEJAQ5nZXRTdHJpbmdCeUtleQEJAQxrZXlVc2VyVGh1bWIBBQdhZGRyZXNzBARkYXRlCQEPZ2V0SW50ZWdlckJ5S2V5AQkBC2tleVVzZXJEYXRlAQUHYWRkcmVzcwQEanNvbgkBCG1ha2VKU09OAwUEbmFtZQUFdGh1bWIJAKQDAQUEZGF0ZQkAzAgCCQELU3RyaW5nRW50cnkCCQENa2V5VXNlclN0YXR1cwEFB2FkZHJlc3MFC3N0YXR1c1RvU2V0CQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgkArAICBQ1jdXJyZW50U3RhdHVzAgFfBQdhZGRyZXNzCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICBQtzdGF0dXNUb1NldAIBXwUHYWRkcmVzcwUEanNvbgkAzAgCCQELU3RyaW5nRW50cnkCCQELa2V5VXNlck5vdGUBBQdhZGRyZXNzBQlub3RlVG9Vc2UJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDGtleVVzZXJMYWJlbAEFB2FkZHJlc3MFCmxhYmVsVG9Vc2UFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECIU5vdCBhbGxvd2VkIHRvIGNoYW5nZSB1c2VyIHN0YXR1cwZpbnZva2UBCmRlbGV0ZVVzZXIBB2FkZHJlc3MEBmNhbGxlcgkApQgBCAUGaW52b2tlBmNhbGxlcgQNY3VycmVudFN0YXR1cwkBDmdldFN0cmluZ0J5S2V5AQkBDWtleVVzZXJTdGF0dXMBBQdhZGRyZXNzAwkBD2NvbnRhaW5zRWxlbWVudAIJAMwIAgUFY2hyaXMJAMwIAgkApQgBBQR0aGlzBQNuaWwFBmNhbGxlcgkAzAgCCQELRGVsZXRlRW50cnkBCQELa2V5VXNlckRhdGUBBQdhZGRyZXNzCQDMCAIJAQtEZWxldGVFbnRyeQEJAQtrZXlVc2VyQWRkcgEFB2FkZHJlc3MJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBC2tleVVzZXJOYW1lAQUHYWRkcmVzcwkAzAgCCQELRGVsZXRlRW50cnkBCQELa2V5VXNlckRlc2MBBQdhZGRyZXNzCQDMCAIJAQtEZWxldGVFbnRyeQEJAQ1rZXlVc2VyU29jaWFsAQUHYWRkcmVzcwkAzAgCCQELRGVsZXRlRW50cnkBCQEMa2V5VXNlclRodW1iAQUHYWRkcmVzcwkAzAgCCQELRGVsZXRlRW50cnkBCQCsAgICCnVzZXJfbm90ZV8FB2FkZHJlc3MJAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICCQCsAgIFDWN1cnJlbnRTdGF0dXMCAV8FB2FkZHJlc3MJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBEGtleVVzZXJSb3lhbHRpZXMBBQdhZGRyZXNzCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ1rZXlVc2VyU3RhdHVzAQUHYWRkcmVzcwULdXNlclJlbW92ZWQFA25pbAkAAgECC05vdCBhbGxvd2VkAWkBCHNldEFnZW50BQphcnRpc3RBZGRyCWFnZW50QWRkcgxwcmltYXJ5U2hhcmUOc2Vjb25kYXJ5U2hhcmUJYXNQYXJ0bmVyAwkBASEBBQtkYXBwUnVubmluZwkAAgEFDm1haW50ZW5hbmNlTVNHBAZjYWxsZXIJAKUIAQgFAWkGY2FsbGVyAwMJAGYCAAAFDHByaW1hcnlTaGFyZQYJAGYCBQxwcmltYXJ5U2hhcmUAiCcJAAIBAjxQcmltYXJ5IGNvbW1pc3Npb24gY2Fubm90IGJlIGxlc3MgdGhhbiAwJSBvciBoaWdoZXIgdGhhbiA1MCUDAwkAZgIAAAUOc2Vjb25kYXJ5U2hhcmUGCQBmAgUOc2Vjb25kYXJ5U2hhcmUAiCcJAAIBAj5TZWNvbmRhcnkgY29tbWlzc2lvbiBjYW5ub3QgYmUgbGVzcyB0aGFuIDAlIG9yIGhpZ2hlciB0aGFuIDUwJQMJAQ9jb250YWluc0VsZW1lbnQCCQDMCAIFBWNocmlzCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQZjYWxsZXIDAwkBAiE9AgkAsQIBBQphcnRpc3RBZGRyACMGCQECIT0CCQCxAgEFCWFnZW50QWRkcgAjCQACAQINV3JvbmcgYWRkcmVzcwMDCQECIT0CCQEOZ2V0U3RyaW5nQnlLZXkBCQESa2V5QXJ0aXN0QWdlbnRBZGRyAQUKYXJ0aXN0QWRkcgIABgkBAiE9AgkBDmdldFN0cmluZ0J5S2V5AQkBGGtleUFydGlzdFB1YmxpY0FnZW50QWRkcgEFCmFydGlzdEFkZHICAAkAAgECHlVuc2V0IGFnZW50IGZpcnN0IHRvIGNoYW5nZSBpdAMFCWFzUGFydG5lcgkAzAgCCQELU3RyaW5nRW50cnkCCQESa2V5QXJ0aXN0QWdlbnRBZGRyAQUKYXJ0aXN0QWRkcgUJYWdlbnRBZGRyCQDMCAIJAQtTdHJpbmdFbnRyeQIJARJrZXlBZ2VudEFydGlzdEFkZHICBQlhZ2VudEFkZHIFCmFydGlzdEFkZHIFCmFydGlzdEFkZHIJAMwIAgkBDEludGVnZXJFbnRyeQIJARRrZXlQcmltYXJ5U2hhcmVBZ2VudAEFCmFydGlzdEFkZHIFDHByaW1hcnlTaGFyZQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBFmtleVNlY29uZGFyeVNoYXJlQWdlbnQBBQphcnRpc3RBZGRyBQ5zZWNvbmRhcnlTaGFyZQUDbmlsCQDMCAIJAQtTdHJpbmdFbnRyeQIJARhrZXlBcnRpc3RQdWJsaWNBZ2VudEFkZHIBBQphcnRpc3RBZGRyBQlhZ2VudEFkZHIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBGGtleVB1YmxpY0FnZW50QXJ0aXN0QWRkcgIFCWFnZW50QWRkcgUKYXJ0aXN0QWRkcgUKYXJ0aXN0QWRkcgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBGmtleVByaW1hcnlTaGFyZVB1YmxpY0FnZW50AQUKYXJ0aXN0QWRkcgUMcHJpbWFyeVNoYXJlCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEca2V5U2Vjb25kYXJ5U2hhcmVQdWJsaWNBZ2VudAEFCmFydGlzdEFkZHIFDnNlY29uZGFyeVNoYXJlBQNuaWwJAAIBAhNZb3UgYXJlIG5vdCBhbGxvd2VkAWkBCnVuc2V0QWdlbnQDCmFydGlzdEFkZHIJYWdlbnRBZGRyCWFzUGFydG5lcgMJAQEhAQULZGFwcFJ1bm5pbmcJAAIBBQ5tYWludGVuYW5jZU1TRwQGY2FsbGVyCQClCAEIBQFpBmNhbGxlcgMJAQ9jb250YWluc0VsZW1lbnQCCQDMCAIFBWNocmlzCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQZjYWxsZXIDAwkBAiE9AgkAsQIBBQphcnRpc3RBZGRyACMGCQECIT0CCQCxAgEFCWFnZW50QWRkcgAjCQACAQINV3JvbmcgYWRkcmVzcwMFCWFzUGFydG5lcgkAzAgCCQELRGVsZXRlRW50cnkBCQESa2V5QXJ0aXN0QWdlbnRBZGRyAQUKYXJ0aXN0QWRkcgkAzAgCCQELRGVsZXRlRW50cnkBCQESa2V5QWdlbnRBcnRpc3RBZGRyAgUJYWdlbnRBZGRyBQphcnRpc3RBZGRyCQDMCAIJAQtEZWxldGVFbnRyeQEJARRrZXlQcmltYXJ5U2hhcmVBZ2VudAEFCmFydGlzdEFkZHIJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBFmtleVNlY29uZGFyeVNoYXJlQWdlbnQBBQphcnRpc3RBZGRyBQNuaWwJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBGGtleUFydGlzdFB1YmxpY0FnZW50QWRkcgEFCmFydGlzdEFkZHIJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBGGtleVB1YmxpY0FnZW50QXJ0aXN0QWRkcgIFCWFnZW50QWRkcgUKYXJ0aXN0QWRkcgkAzAgCCQELRGVsZXRlRW50cnkBCQEaa2V5UHJpbWFyeVNoYXJlUHVibGljQWdlbnQBBQphcnRpc3RBZGRyCQDMCAIJAQtEZWxldGVFbnRyeQEJARxrZXlTZWNvbmRhcnlTaGFyZVB1YmxpY0FnZW50AQUKYXJ0aXN0QWRkcgUDbmlsCQACAQITWW91IGFyZSBub3QgYWxsb3dlZAFpAQtkZWxldGVFbnRyeQEFZW50cnkEBmNhbGxlcgkApQgBCAUBaQZjYWxsZXIDCQAAAgUGY2FsbGVyBQVjaHJpcwkAzAgCCQELRGVsZXRlRW50cnkBBQVlbnRyeQUDbmlsCQACAQICbm8BAnR4AQh2ZXJpZmllcgAEByRtYXRjaDAFAnR4AwkAAQIFByRtYXRjaDACF0ludm9rZVNjcmlwdFRyYW5zYWN0aW9uBANpbnYFByRtYXRjaDADAwMDCQAAAggFA2ludghmdW5jdGlvbgIMcmVnaXN0ZXJVc2VyCQAAAggFA2ludgRkQXBwBQR0aGlzBwkAAAIIBQNpbnYDZmVlAKDCHgcJAAACCAUDaW52CmZlZUFzc2V0SWQFBHVuaXQHCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACQDZBAEJAQhhc1N0cmluZwEJAJEDAggFA2ludgRhcmdzAAUDAwMDCQAAAggFA2ludghmdW5jdGlvbgIKdXBkYXRlVXNlcgkAAAIIBQNpbnYEZEFwcAUEdGhpcwcJAAACCAUDaW52A2ZlZQCgwh4HCQAAAggFA2ludgpmZWVBc3NldElkBQR1bml0BwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAkA2QQBCQEIYXNTdHJpbmcBCQCRAwIIBQNpbnYEYXJncwAFAwMDAwkAAAIIBQNpbnYIZnVuY3Rpb24CDHNldEVSQzIwVXNlcgkAAAIIBQNpbnYEZEFwcAUEdGhpcwcJAAACCAUDaW52A2ZlZQCgwh4HCQAAAggFA2ludgpmZWVBc3NldElkBQR1bml0BwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAkA2QQBCQEIYXNTdHJpbmcBCQCRAwIIBQNpbnYEYXJncwABCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACAUCdHgPc2VuZGVyUHVibGljS2V5CQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACAUCdHgPc2VuZGVyUHVibGljS2V5pF7OiA==", "height": 2792101, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 9wVK3nV4LVK1TVRfuhUndGB4S5MFdpECCT6Yi98wFuPm Next: none Diff:
OldNewDifferences
347347 else {
348348 let aP = b(G(ad))
349349 let aQ = b(H(ad))
350- let aR = if ((size(aD) != 0))
350+ let aR = if (if ((size(aD) != 0))
351+ then (aD != ".")
352+ else false)
351353 then aD
352- else aP
353- let aS = if ((size(aE) != 0))
354+ else if ((aD == "."))
355+ then ""
356+ else aP
357+ let aS = if (if ((size(aE) != 0))
358+ then (aE != ".")
359+ else false)
354360 then aE
355- else aQ
361+ else if ((aE == "."))
362+ then ""
363+ else aQ
356364 if (containsElement([f, toString(this)], x))
357365 then {
358366 let aT = if ((aL != 0))
432440 then true
433441 else (size(L) != 35))
434442 then throw("Wrong address")
435- else if (aZ)
436- then [StringEntry(I(J), L), StringEntry(K(L, J), J), IntegerEntry(M(J), aX), IntegerEntry(N(J), aY)]
437- else [StringEntry(O(J), L), StringEntry(P(L, J), J), IntegerEntry(Q(J), aX), IntegerEntry(R(J), aY)]
443+ else if (if ((b(I(J)) != ""))
444+ then true
445+ else (b(O(J)) != ""))
446+ then throw("Unset agent first to change it")
447+ else if (aZ)
448+ then [StringEntry(I(J), L), StringEntry(K(L, J), J), IntegerEntry(M(J), aX), IntegerEntry(N(J), aY)]
449+ else [StringEntry(O(J), L), StringEntry(P(L, J), J), IntegerEntry(Q(J), aX), IntegerEntry(R(J), aY)]
438450 else throw("You are not allowed")
439451 }
440452
496508 else false)
497509 then (bd.feeAssetId == unit)
498510 else false)
499- then sigVerify(bb.bodyBytes, bb.proofs[0], fromBase58String(ak(bd.args[2])))
511+ then sigVerify(bb.bodyBytes, bb.proofs[0], fromBase58String(ak(bd.args[1])))
500512 else sigVerify(bb.bodyBytes, bb.proofs[0], bb.senderPublicKey)
501513 }
502514 else sigVerify(bb.bodyBytes, bb.proofs[0], bb.senderPublicKey)
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 (J) = ("artist_public_agent_" + J)
9595
9696
9797 func P (L,J) = ((("public_agent_" + L) + "_") + J)
9898
9999
100100 func Q (J) = ("artist_public_agent_primary_" + J)
101101
102102
103103 func R (J) = ("artist_public_agent_secondary_" + J)
104104
105105
106106 func S (c) = valueOrElse(getInteger(m, c), 0)
107107
108108
109109 func T (U) = if (contains(U, "/"))
110110 then if (if ((76 > size(U)))
111111 then (size(split(U, "/")[0]) == 59)
112112 else false)
113113 then (16 > size(split(U, "/")[1]))
114114 else false
115115 else false
116116
117117
118118 func V (x,W,X,Y,Z) = {
119119 let aa = if ((size(Y) != 0))
120120 then T(Y)
121121 else true
122122 if (!(aa))
123123 then throw("CID don't match requirement!")
124124 else if (if ((W == ""))
125125 then true
126126 else (X == ""))
127127 then throw("Name and description cannot be empty")
128128 else if ((size(X) > 600))
129129 then throw("600 Char. max description")
130130 else if ((size(W) > 45))
131131 then throw("45 Char. max name")
132132 else {
133133 let ab = b(C(x))
134134 if (if ((ab == r))
135135 then true
136136 else (ab == s))
137137 then throw("Account suspended/ removed.")
138138 else if (if (!(Z))
139139 then (ab == p)
140140 else false)
141141 then throw("Already registered")
142142 else if (if (if (!(Z))
143143 then (ab == "")
144144 else false)
145145 then l
146146 else false)
147147 then throw("Can't register, get approved first.")
148148 else if (if (if (Z)
149149 then (ab == "")
150150 else false)
151151 then true
152152 else if (Z)
153153 then (ab == o)
154154 else false)
155155 then throw("Register first")
156156 else true
157157 }
158158 }
159159
160160
161161 func ac (ab,ad,ae) = {
162162 let af = [q, p, r, s, o, t]
163163 let ag = if (containsElement(af, ab))
164164 then ab
165165 else if (if ((ab == v))
166166 then (ae == o)
167167 else false)
168168 then ""
169169 else throw("Unknown status")
170170 let ah = e(E(ad))
171171 if (if ((ah == 0))
172172 then (ag != o)
173173 else false)
174174 then throw("You cant set this status, user is not registered.")
175175 else if (if ((ae == o))
176176 then (ag == o)
177177 else false)
178178 then throw("User already allowed")
179179 else if (if ((ae == p))
180180 then (ag == o)
181181 else false)
182182 then throw("User already allowed & registered")
183183 else if (if ((ae == q))
184184 then (ag == o)
185185 else false)
186186 then throw("User already allowed & verified")
187187 else ag
188188 }
189189
190190
191191 func ai (W,Y,aj) = (((((("{\"user_name\": \"" + W) + "\", \"user_thumb\":\"") + Y) + "\",\"user_date\":\"") + aj) + "\"}")
192192
193193
194194 func ak (al) = {
195195 let am = al
196196 if ($isInstanceOf(am, "String"))
197197 then {
198198 let an = am
199199 an
200200 }
201201 else throw("Sponsored Public Key String expected")
202202 }
203203
204204
205205 func ao (ap,aq) = {
206206 let ar = if ((aq != ""))
207207 then valueOrElse(S((toString(addressFromPublicKey(fromBase58String(aq))) + "_free_txs")), 0)
208208 else 0
209209 let x = if (if ((toBase58String(ap.caller.bytes) == toString(this)))
210210 then (ar > 0)
211211 else false)
212212 then toString(addressFromPublicKey(fromBase58String(aq)))
213213 else toBase58String(ap.caller.bytes)
214214 let as = if (if ((aq != ""))
215215 then (ar > 0)
216216 else false)
217217 then invoke(m, "useFreeTx", [toString(addressFromPublicKey(fromBase58String(aq)))], nil)
218218 else unit
219219 if ((as == as))
220220 then $Tuple2(x, (ar > 0))
221221 else throw("Strict value is not equal to itself.")
222222 }
223223
224224
225225 @Callable(at)
226226 func setConf (c,au) = {
227227 let x = toString(at.caller)
228228 if (containsElement([f, toString(this)], x))
229229 then [StringEntry(c, au)]
230230 else throw("You are not allowed to change this")
231231 }
232232
233233
234234
235235 @Callable(at)
236236 func appRunning (av,aw) = {
237237 let x = toString(at.caller)
238238 if (containsElement([f, toString(this)], x))
239239 then [BooleanEntry(g, av), StringEntry(h, aw)]
240240 else throw("You are not allowed to change this")
241241 }
242242
243243
244244
245245 @Callable(at)
246246 func registrationMode (ax) = {
247247 let x = toString(at.caller)
248248 if (containsElement([f, toString(this)], x))
249249 then [BooleanEntry(i, ax)]
250250 else throw("You are not allowed to change this")
251251 }
252252
253253
254254
255255 @Callable(at)
256256 func registerUser (W,X,Y,ay,az,aq) = if (!(j))
257257 then throw(k)
258258 else {
259259 let aA = ao(at, aq)
260260 let x = aA._1
261261 let ar = aA._2
262262 let aB = toBase58String(at.transactionId)
263263 let aC = lastBlock.timestamp
264264 let aD = b(G(x))
265265 let aE = b(H(x))
266266 if (!(V(x, W, X, Y, false)))
267267 then throw("Something went wrong")
268268 else {
269269 let aF = ai(toBase64String(toBytes(W)), toBase64String(toBytes(Y)), toString(aC))
270270 if (if ((0 > az))
271271 then true
272272 else (az > 1000))
273273 then throw("Royalties cannot be less than 0% or higher than 10%")
274274 else {
275275 let aG = if (ar)
276276 then [ScriptTransfer(Address(fromBase58String(x)), 0, unit)]
277277 else nil
278278 ([IntegerEntry(E(x), aC), StringEntry(w(x), ((aB + "_") + toString(aC))), StringEntry(y(x), W), StringEntry(z(x), X), StringEntry(A(x), ay), StringEntry(B(x), Y), StringEntry(C(x), p), IntegerEntry(D(x), az), DeleteEntry(("ALLOWED_" + x)), StringEntry(((p + "_") + x), aF), StringEntry(G(x), aD), StringEntry(H(x), aE)] ++ aG)
279279 }
280280 }
281281 }
282282
283283
284284
285285 @Callable(at)
286286 func updateUser (W,X,Y,ay,az,aq) = if (!(j))
287287 then throw(k)
288288 else {
289289 let aH = ao(at, aq)
290290 let x = aH._1
291291 let ar = aH._2
292292 let ab = b(C(x))
293293 if (!(V(x, W, X, Y, true)))
294294 then throw("Something went wrong")
295295 else {
296296 let aj = e(E(x))
297297 let aF = ai(toBase64String(toBytes(W)), toBase64String(toBytes(Y)), toString(aj))
298298 if (if ((0 > az))
299299 then true
300300 else (az > 1000))
301301 then throw("Royalties cannot be less than 0% or higher than 10%")
302302 else {
303303 let aG = if (ar)
304304 then [ScriptTransfer(Address(fromBase58String(x)), 0, unit)]
305305 else nil
306306 ([StringEntry(y(x), W), StringEntry(z(x), X), StringEntry(A(x), ay), StringEntry(B(x), Y), IntegerEntry(D(x), az), StringEntry(((ab + "_") + x), aF)] ++ aG)
307307 }
308308 }
309309 }
310310
311311
312312
313313 @Callable(at)
314314 func setERC20User (aI,aq) = if (!(j))
315315 then throw(k)
316316 else {
317317 let aJ = ao(at, aq)
318318 let x = aJ._1
319319 let ar = aJ._2
320320 let ab = b(C(x))
321321 if (if ((ab != p))
322322 then (ab != q)
323323 else false)
324324 then throw("Not allowed to set ERC20 address")
325325 else {
326326 let aK = take(aI, 2)
327327 if (if ((aK != "0x"))
328328 then true
329329 else (size(aI) != 42))
330330 then throw("This is not an erc20 address")
331331 else {
332332 let aG = if (ar)
333333 then [ScriptTransfer(Address(fromBase58String(x)), 0, unit)]
334334 else nil
335335 ([StringEntry(F(x), aI)] ++ aG)
336336 }
337337 }
338338 }
339339
340340
341341
342342 @Callable(at)
343343 func changeUserStatus (ad,ab,aD,aE,aL,aM,aN,aO) = {
344344 let x = toString(at.caller)
345345 if ((size(ad) == 0))
346346 then throw("Address cannot be empty")
347347 else {
348348 let aP = b(G(ad))
349349 let aQ = b(H(ad))
350- let aR = if ((size(aD) != 0))
350+ let aR = if (if ((size(aD) != 0))
351+ then (aD != ".")
352+ else false)
351353 then aD
352- else aP
353- let aS = if ((size(aE) != 0))
354+ else if ((aD == "."))
355+ then ""
356+ else aP
357+ let aS = if (if ((size(aE) != 0))
358+ then (aE != ".")
359+ else false)
354360 then aE
355- else aQ
361+ else if ((aE == "."))
362+ then ""
363+ else aQ
356364 if (containsElement([f, toString(this)], x))
357365 then {
358366 let aT = if ((aL != 0))
359367 then invoke(n, "whitelistFreeCertifications", [ad, aL, true], nil)
360368 else nil
361369 if ((aT == aT))
362370 then {
363371 let aU = if ((aM != 0))
364372 then invoke(m, "whitelistFreeTxs", [ad, aM, true], nil)
365373 else nil
366374 if ((aU == aU))
367375 then {
368376 let aV = if ((aN != 0))
369377 then invoke(m, "whitelistFreeDrop", [ad, aN, true], nil)
370378 else nil
371379 if ((aV == aV))
372380 then {
373381 let aW = if ((aO != 0))
374382 then invoke(m, "whitelist", [ad, aO], nil)
375383 else nil
376384 if ((aW == aW))
377385 then {
378386 let ae = b(C(ad))
379387 if ((size(ab) == 0))
380388 then if ((ae == ""))
381389 then throw("User have no status yet")
382390 else [StringEntry(G(ad), aR), StringEntry(H(ad), aS)]
383391 else {
384392 let ag = ac(ab, ad, ae)
385393 let W = toBase64String(toBytes(b(y(ad))))
386394 let Y = toBase64String(toBytes(b(B(ad))))
387395 let aj = e(E(ad))
388396 let aF = ai(W, Y, toString(aj))
389397 [StringEntry(C(ad), ag), DeleteEntry(((ae + "_") + ad)), StringEntry(((ag + "_") + ad), aF), StringEntry(G(ad), aR), StringEntry(H(ad), aS)]
390398 }
391399 }
392400 else throw("Strict value is not equal to itself.")
393401 }
394402 else throw("Strict value is not equal to itself.")
395403 }
396404 else throw("Strict value is not equal to itself.")
397405 }
398406 else throw("Strict value is not equal to itself.")
399407 }
400408 else throw("Not allowed to change user status")
401409 }
402410 }
403411
404412
405413
406414 @Callable(at)
407415 func deleteUser (ad) = {
408416 let x = toString(at.caller)
409417 let ae = b(C(ad))
410418 if (containsElement([f, toString(this)], x))
411419 then [DeleteEntry(E(ad)), DeleteEntry(w(ad)), DeleteEntry(y(ad)), DeleteEntry(z(ad)), DeleteEntry(A(ad)), DeleteEntry(B(ad)), DeleteEntry(("user_note_" + ad)), DeleteEntry(((ae + "_") + ad)), DeleteEntry(D(ad)), StringEntry(C(ad), s)]
412420 else throw("Not allowed")
413421 }
414422
415423
416424
417425 @Callable(ap)
418426 func setAgent (J,L,aX,aY,aZ) = if (!(j))
419427 then throw(k)
420428 else {
421429 let x = toString(ap.caller)
422430 if (if ((0 > aX))
423431 then true
424432 else (aX > 5000))
425433 then throw("Primary commission cannot be less than 0% or higher than 50%")
426434 else if (if ((0 > aY))
427435 then true
428436 else (aY > 5000))
429437 then throw("Secondary commission cannot be less than 0% or higher than 50%")
430438 else if (containsElement([f, toString(this)], x))
431439 then if (if ((size(J) != 35))
432440 then true
433441 else (size(L) != 35))
434442 then throw("Wrong address")
435- else if (aZ)
436- then [StringEntry(I(J), L), StringEntry(K(L, J), J), IntegerEntry(M(J), aX), IntegerEntry(N(J), aY)]
437- else [StringEntry(O(J), L), StringEntry(P(L, J), J), IntegerEntry(Q(J), aX), IntegerEntry(R(J), aY)]
443+ else if (if ((b(I(J)) != ""))
444+ then true
445+ else (b(O(J)) != ""))
446+ then throw("Unset agent first to change it")
447+ else if (aZ)
448+ then [StringEntry(I(J), L), StringEntry(K(L, J), J), IntegerEntry(M(J), aX), IntegerEntry(N(J), aY)]
449+ else [StringEntry(O(J), L), StringEntry(P(L, J), J), IntegerEntry(Q(J), aX), IntegerEntry(R(J), aY)]
438450 else throw("You are not allowed")
439451 }
440452
441453
442454
443455 @Callable(ap)
444456 func unsetAgent (J,L,aZ) = if (!(j))
445457 then throw(k)
446458 else {
447459 let x = toString(ap.caller)
448460 if (containsElement([f, toString(this)], x))
449461 then if (if ((size(J) != 35))
450462 then true
451463 else (size(L) != 35))
452464 then throw("Wrong address")
453465 else if (aZ)
454466 then [DeleteEntry(I(J)), DeleteEntry(K(L, J)), DeleteEntry(M(J)), DeleteEntry(N(J))]
455467 else [DeleteEntry(O(J)), DeleteEntry(P(L, J)), DeleteEntry(Q(J)), DeleteEntry(R(J))]
456468 else throw("You are not allowed")
457469 }
458470
459471
460472
461473 @Callable(ap)
462474 func deleteEntry (ba) = {
463475 let x = toString(ap.caller)
464476 if ((x == f))
465477 then [DeleteEntry(ba)]
466478 else throw("no")
467479 }
468480
469481
470482 @Verifier(bb)
471483 func bc () = {
472484 let am = bb
473485 if ($isInstanceOf(am, "InvokeScriptTransaction"))
474486 then {
475487 let bd = am
476488 if (if (if (if ((bd.function == "registerUser"))
477489 then (bd.dApp == this)
478490 else false)
479491 then (bd.fee == 500000)
480492 else false)
481493 then (bd.feeAssetId == unit)
482494 else false)
483495 then sigVerify(bb.bodyBytes, bb.proofs[0], fromBase58String(ak(bd.args[5])))
484496 else if (if (if (if ((bd.function == "updateUser"))
485497 then (bd.dApp == this)
486498 else false)
487499 then (bd.fee == 500000)
488500 else false)
489501 then (bd.feeAssetId == unit)
490502 else false)
491503 then sigVerify(bb.bodyBytes, bb.proofs[0], fromBase58String(ak(bd.args[5])))
492504 else if (if (if (if ((bd.function == "setERC20User"))
493505 then (bd.dApp == this)
494506 else false)
495507 then (bd.fee == 500000)
496508 else false)
497509 then (bd.feeAssetId == unit)
498510 else false)
499- then sigVerify(bb.bodyBytes, bb.proofs[0], fromBase58String(ak(bd.args[2])))
511+ then sigVerify(bb.bodyBytes, bb.proofs[0], fromBase58String(ak(bd.args[1])))
500512 else sigVerify(bb.bodyBytes, bb.proofs[0], bb.senderPublicKey)
501513 }
502514 else sigVerify(bb.bodyBytes, bb.proofs[0], bb.senderPublicKey)
503515 }
504516

github/deemru/w8io/3ef1775 
95.53 ms