tx · GaiULeiCDAS8SWmUtza53bX4UZvoF2Pd7gyjUzj1FyJG

3N8xXaYjE27Aa79d5hHrhHu9HaFoTBmhDEj:  -0.01400000 Waves

2022.08.01 12:53 [2165285] smart account 3N8xXaYjE27Aa79d5hHrhHu9HaFoTBmhDEj > SELF 0.00000000 Waves

{ "type": 13, "id": "GaiULeiCDAS8SWmUtza53bX4UZvoF2Pd7gyjUzj1FyJG", "fee": 1400000, "feeAssetId": null, "timestamp": 1659347627842, "version": 2, "chainId": 84, "sender": "3N8xXaYjE27Aa79d5hHrhHu9HaFoTBmhDEj", "senderPublicKey": "A2m227AHcq7gWfSU59Q3UJaqkEa7SccFYmJuWHbFrrKE", "proofs": [ "4qvuuwP5nwFd1T9sFbH6SUMCDDikU9FXFSMPAcEtV4NfVuh96WnmVxKS3ovPhgD9RZtAKQfdJVCh8odduCkN5MfL" ], "script": "base64:BgJHCAISBAoCCAgSBAoCBAgSAwoBBBIGCgQICAgIEgYKBAgICAgSAwoBCBIFCgMICAgSAwoBCBIGCgQICAEBEgQKAggIEgMKAQgkAAdWRVJTSU9OAgMxLjMBDmdldFN0cmluZ0J5S2V5AQNrZXkJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUDa2V5AgABD2dldEJvb2xlYW5CeUtleQEDa2V5CQELdmFsdWVPckVsc2UCCQCbCAIFBHRoaXMFA2tleQcBD2dldEludGVnZXJCeUtleQEDa2V5CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFA2tleQAAAAVjaHJpcwkBDmdldFN0cmluZ0J5S2V5AQIMY29uZl9hZG1pbl8xAARqb2VwCQEOZ2V0U3RyaW5nQnlLZXkBAgxjb25mX2FkbWluXzIADmRhcHBSdW5uaW5nS2V5AhRjb25mX2RhcHBfaXNfcnVubmluZwARbWFpbnRlbmFuY2VNU0dLZXkCFGNvbmZfbWFpbnRlbmFuY2VfbXNnABJ3aGl0ZWxpc3RlZG9ubHlLZXkCFWNvbmZfd2hpdGVsaXN0ZWRfb25seQALZGFwcFJ1bm5pbmcJAQt2YWx1ZU9yRWxzZQIJAJsIAgUEdGhpcwUOZGFwcFJ1bm5pbmdLZXkGAA5tYWludGVuYW5jZU1TRwkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzBRFtYWludGVuYW5jZU1TR0tleQIAAA93aGl0ZWxpc3RlZG9ubHkJAQt2YWx1ZU9yRWxzZQIJAJsIAgUEdGhpcwUSd2hpdGVsaXN0ZWRvbmx5S2V5BgALdXNlckFsbG93ZWQCB0FMTE9XRUQADnVzZXJSZWdpc3RlcmVkAgpSRUdJU1RFUkVEAAx1c2VyVmVyaWZpZWQCCFZFUklGSUVEAA11c2VyU3VzcGVuZGVkAglTVVNQRU5ERUQAC3VzZXJSZW1vdmVkAgdSRU1PVkVEABJ1c2VyQ2hhbmdlUmVxdWlyZWQCD0NIQU5HRV9SRVFVSVJFRAAQdXNlclVucmVnaXN0ZXJlZAIMVU5SRUdJU1RFUkVEAAl1c2VyUmVzZXQCBVJFU0VUAQtrZXlVc2VyQWRkcgEGY2FsbGVyCQCsAgICBXVzZXJfBQZjYWxsZXIBC2tleVVzZXJOYW1lAQZjYWxsZXIJAKwCAgIKdXNlcl9uYW1lXwUGY2FsbGVyAQtrZXlVc2VyRGVzYwEGY2FsbGVyCQCsAgICCnVzZXJfZGVzY18FBmNhbGxlcgENa2V5VXNlclNvY2lhbAEGY2FsbGVyCQCsAgICDHVzZXJfc29jaWFsXwUGY2FsbGVyAQxrZXlVc2VyVGh1bWIBBmNhbGxlcgkArAICAgt1c2VyX3RodW1iXwUGY2FsbGVyAQ1rZXlVc2VyU3RhdHVzAQZjYWxsZXIJAKwCAgIMdXNlcl9zdGF0dXNfBQZjYWxsZXIBC2tleVVzZXJEYXRlAQZjYWxsZXIJAKwCAgIKdXNlcl9kYXRlXwUGY2FsbGVyAQxrZXlVc2VyRVJDMjABBmNhbGxlcgkArAICAgt1c2VyX0VSQzIwXwUGY2FsbGVyARJrZXlBcnRpc3RBZ2VudEFkZHIBCmFydGlzdEFkZHIJAKwCAgINYXJ0aXN0X2FnZW50XwUKYXJ0aXN0QWRkcgESa2V5QWdlbnRBcnRpc3RBZGRyAglhZ2VudEFkZHIKYXJ0aXN0QWRkcgkArAICCQCsAgIJAKwCAgIGYWdlbnRfBQlhZ2VudEFkZHICAV8FCmFydGlzdEFkZHIBD2tleVByaW1hcnlTaGFyZQEKYXJ0aXN0QWRkcgkArAICAhVhcnRpc3RfYWdlbnRfcHJpbWFyeV8FCmFydGlzdEFkZHIBEWtleVNlY29uZGFyeVNoYXJlAQphcnRpc3RBZGRyCQCsAgICF2FydGlzdF9hZ2VudF9zZWNvbmRhcnlfBQphcnRpc3RBZGRyAQt2YWxpZGF0ZUNJRAEDY2lkAwkBCGNvbnRhaW5zAgUDY2lkAgEvAwMJAGYCAEwJALECAQUDY2lkCQAAAgkAsQIBCQCRAwIJALUJAgUDY2lkAgEvAAAAOwcJAGYCABAJALECAQkAkQMCCQC1CQIFA2NpZAIBLwABBwcBDXZhbGlkVXNlckRhdGEFBmNhbGxlcgRuYW1lC2Rlc2NyaXB0aW9uBXRodW1iCmlzQW5VcGRhdGUECHZhbGlkQ0lEAwkBAiE9AgkAsQIBBQV0aHVtYgAACQELdmFsaWRhdGVDSUQBBQV0aHVtYgYDCQEBIQEFCHZhbGlkQ0lECQACAQIcQ0lEIGRvbid0IG1hdGNoIHJlcXVpcmVtZW50IQMDCQAAAgUEbmFtZQIABgkAAAIFC2Rlc2NyaXB0aW9uAgAJAAIBAiROYW1lIGFuZCBkZXNjcmlwdGlvbiBjYW5ub3QgYmUgZW1wdHkDCQBmAgkAsQIBBQtkZXNjcmlwdGlvbgDYBAkAAgECGTYwMCBDaGFyLiBtYXggZGVzY3JpcHRpb24DCQBmAgkAsQIBBQRuYW1lAC0JAAIBAhE0NSBDaGFyLiBtYXggbmFtZQQGc3RhdHVzCQEOZ2V0U3RyaW5nQnlLZXkBCQENa2V5VXNlclN0YXR1cwEFBmNhbGxlcgMDCQAAAgUGc3RhdHVzBQ11c2VyU3VzcGVuZGVkBgkAAAIFBnN0YXR1cwULdXNlclJlbW92ZWQJAAIBAhtBY2NvdW50IHN1c3BlbmRlZC8gcmVtb3ZlZC4DAwkBASEBBQppc0FuVXBkYXRlCQAAAgUGc3RhdHVzBQ51c2VyUmVnaXN0ZXJlZAcJAAIBAhJBbHJlYWR5IHJlZ2lzdGVyZWQDAwMJAQEhAQUKaXNBblVwZGF0ZQkAAAIFBnN0YXR1cwIABwUPd2hpdGVsaXN0ZWRvbmx5BwkAAgECI0Nhbid0IHJlZ2lzdGVyLCBnZXQgYXBwcm92ZWQgZmlyc3QuAwMDBQppc0FuVXBkYXRlCQAAAgUGc3RhdHVzAgAHBgMFCmlzQW5VcGRhdGUJAAACBQZzdGF0dXMFC3VzZXJBbGxvd2VkBwkAAgECDlJlZ2lzdGVyIGZpcnN0BgERdmFsaWRhdGVOZXdTdGF0dXMDBnN0YXR1cwdhZGRyZXNzDWN1cnJlbnRTdGF0dXMECWFsbFN0YXR1cwkAzAgCBQx1c2VyVmVyaWZpZWQJAMwIAgUOdXNlclJlZ2lzdGVyZWQJAMwIAgUNdXNlclN1c3BlbmRlZAkAzAgCBQt1c2VyUmVtb3ZlZAkAzAgCBQt1c2VyQWxsb3dlZAkAzAgCBRJ1c2VyQ2hhbmdlUmVxdWlyZWQFA25pbAQLc3RhdHVzVG9TZXQDCQEPY29udGFpbnNFbGVtZW50AgUJYWxsU3RhdHVzBQZzdGF0dXMFBnN0YXR1cwMDCQAAAgUGc3RhdHVzBQl1c2VyUmVzZXQJAAACBQ1jdXJyZW50U3RhdHVzBQt1c2VyQWxsb3dlZAcCAAkAAgECDlVua25vd24gc3RhdHVzBBB1c2VySXNSZWdpc3RlcmVkCQEPZ2V0SW50ZWdlckJ5S2V5AQkBC2tleVVzZXJEYXRlAQUHYWRkcmVzcwMDCQAAAgUQdXNlcklzUmVnaXN0ZXJlZAAACQECIT0CBQtzdGF0dXNUb1NldAULdXNlckFsbG93ZWQHCQACAQIxWW91IGNhbnQgc2V0IHRoaXMgc3RhdHVzLCB1c2VyIGlzIG5vdCByZWdpc3RlcmVkLgMDCQAAAgUNY3VycmVudFN0YXR1cwULdXNlckFsbG93ZWQJAAACBQtzdGF0dXNUb1NldAULdXNlckFsbG93ZWQHCQACAQIUVXNlciBhbHJlYWR5IGFsbG93ZWQDAwkAAAIFDWN1cnJlbnRTdGF0dXMFDnVzZXJSZWdpc3RlcmVkCQAAAgULc3RhdHVzVG9TZXQFC3VzZXJBbGxvd2VkBwkAAgECIVVzZXIgYWxyZWFkeSBhbGxvd2VkICYgcmVnaXN0ZXJlZAMDCQAAAgUNY3VycmVudFN0YXR1cwUMdXNlclZlcmlmaWVkCQAAAgULc3RhdHVzVG9TZXQFC3VzZXJBbGxvd2VkBwkAAgECH1VzZXIgYWxyZWFkeSBhbGxvd2VkICYgdmVyaWZpZWQFC3N0YXR1c1RvU2V0AQhtYWtlSlNPTgMEbmFtZQV0aHVtYgRkYXRlCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAg97InVzZXJfbmFtZSI6ICIFBG5hbWUCESIsICJ1c2VyX3RodW1iIjoiBQV0aHVtYgIPIiwidXNlcl9kYXRlIjoiBQRkYXRlAgIifQsGaW52b2tlAQdzZXRDb25mAgNrZXkDdmFsBAZjYWxsZXIJAKUIAQgFBmludm9rZQZjYWxsZXIDCQEPY29udGFpbnNFbGVtZW50AgkAzAgCBQVjaHJpcwkAzAgCCQClCAEFBHRoaXMFA25pbAUGY2FsbGVyCQDMCAIJAQtTdHJpbmdFbnRyeQIFA2tleQUDdmFsBQNuaWwJAAIBAiJZb3UgYXJlIG5vdCBhbGxvd2VkIHRvIGNoYW5nZSB0aGlzBmludm9rZQEKYXBwUnVubmluZwIGaXNMaXZlB21lc3NhZ2UEBmNhbGxlcgkApQgBCAUGaW52b2tlBmNhbGxlcgMJAQ9jb250YWluc0VsZW1lbnQCCQDMCAIFBWNocmlzCQDMCAIFBGpvZXAJAMwIAgkApQgBBQR0aGlzBQNuaWwFBmNhbGxlcgkAzAgCCQEMQm9vbGVhbkVudHJ5AgUOZGFwcFJ1bm5pbmdLZXkFBmlzTGl2ZQkAzAgCCQELU3RyaW5nRW50cnkCBRFtYWludGVuYW5jZU1TR0tleQUHbWVzc2FnZQUDbmlsCQACAQIiWW91IGFyZSBub3QgYWxsb3dlZCB0byBjaGFuZ2UgdGhpcwZpbnZva2UBEHJlZ2lzdHJhdGlvbk1vZGUBBldMb25seQQGY2FsbGVyCQClCAEIBQZpbnZva2UGY2FsbGVyAwkBD2NvbnRhaW5zRWxlbWVudAIJAMwIAgUFY2hyaXMJAMwIAgkApQgBBQR0aGlzBQNuaWwFBmNhbGxlcgkAzAgCCQEMQm9vbGVhbkVudHJ5AgUSd2hpdGVsaXN0ZWRvbmx5S2V5BQZXTG9ubHkFA25pbAkAAgECIllvdSBhcmUgbm90IGFsbG93ZWQgdG8gY2hhbmdlIHRoaXMGaW52b2tlAQxyZWdpc3RlclVzZXIEBG5hbWULZGVzY3JpcHRpb24FdGh1bWIGc29jaWFsAwkBASEBBQtkYXBwUnVubmluZwkAAgEFDm1haW50ZW5hbmNlTVNHBAZjYWxsZXIJAKUIAQgFBmludm9rZQZjYWxsZXIEAmlkCQDYBAEIBQZpbnZva2UNdHJhbnNhY3Rpb25JZAQJdGltZXN0YW1wCAUJbGFzdEJsb2NrCXRpbWVzdGFtcAMJAQEhAQkBDXZhbGlkVXNlckRhdGEFBQZjYWxsZXIFBG5hbWUFC2Rlc2NyaXB0aW9uBQV0aHVtYgcJAAIBAhRTb21ldGhpbmcgd2VudCB3cm9uZwQEanNvbgkBCG1ha2VKU09OAwkA2gQBCQCbAwEFBG5hbWUJANoEAQkAmwMBBQV0aHVtYgkApAMBBQl0aW1lc3RhbXAJAMwIAgkBDEludGVnZXJFbnRyeQIJAQtrZXlVc2VyRGF0ZQEFBmNhbGxlcgUJdGltZXN0YW1wCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQtrZXlVc2VyQWRkcgEFBmNhbGxlcgkArAICCQCsAgIFAmlkAgFfCQCkAwEFCXRpbWVzdGFtcAkAzAgCCQELU3RyaW5nRW50cnkCCQELa2V5VXNlck5hbWUBBQZjYWxsZXIFBG5hbWUJAMwIAgkBC1N0cmluZ0VudHJ5AgkBC2tleVVzZXJEZXNjAQUGY2FsbGVyBQtkZXNjcmlwdGlvbgkAzAgCCQELU3RyaW5nRW50cnkCCQENa2V5VXNlclNvY2lhbAEFBmNhbGxlcgUGc29jaWFsCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQxrZXlVc2VyVGh1bWIBBQZjYWxsZXIFBXRodW1iCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ1rZXlVc2VyU3RhdHVzAQUGY2FsbGVyBQ51c2VyUmVnaXN0ZXJlZAkAzAgCCQELRGVsZXRlRW50cnkBCQCsAgICCEFMTE9XRURfBQZjYWxsZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIFDnVzZXJSZWdpc3RlcmVkAgFfBQZjYWxsZXIFBGpzb24FA25pbAZpbnZva2UBCnVwZGF0ZVVzZXIEBG5hbWULZGVzY3JpcHRpb24FdGh1bWIGc29jaWFsAwkBASEBBQtkYXBwUnVubmluZwkAAgEFDm1haW50ZW5hbmNlTVNHBAZjYWxsZXIJAKUIAQgFBmludm9rZQZjYWxsZXIEBnN0YXR1cwkBDmdldFN0cmluZ0J5S2V5AQkBDWtleVVzZXJTdGF0dXMBBQZjYWxsZXIDCQEBIQEJAQ12YWxpZFVzZXJEYXRhBQUGY2FsbGVyBQRuYW1lBQtkZXNjcmlwdGlvbgUFdGh1bWIGCQACAQIUU29tZXRoaW5nIHdlbnQgd3JvbmcEBGRhdGUJAQ9nZXRJbnRlZ2VyQnlLZXkBCQELa2V5VXNlckRhdGUBBQZjYWxsZXIEBGpzb24JAQhtYWtlSlNPTgMJANoEAQkAmwMBBQRuYW1lCQDaBAEJAJsDAQUFdGh1bWIJAKQDAQUEZGF0ZQkAzAgCCQELU3RyaW5nRW50cnkCCQELa2V5VXNlck5hbWUBBQZjYWxsZXIFBG5hbWUJAMwIAgkBC1N0cmluZ0VudHJ5AgkBC2tleVVzZXJEZXNjAQUGY2FsbGVyBQtkZXNjcmlwdGlvbgkAzAgCCQELU3RyaW5nRW50cnkCCQENa2V5VXNlclNvY2lhbAEFBmNhbGxlcgUGc29jaWFsCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQxrZXlVc2VyVGh1bWIBBQZjYWxsZXIFBXRodW1iCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICBQZzdGF0dXMCAV8FBmNhbGxlcgUEanNvbgUDbmlsBmludm9rZQEMc2V0RVJDMjBVc2VyAQVlcmMyMAMJAQEhAQULZGFwcFJ1bm5pbmcJAAIBBQ5tYWludGVuYW5jZU1TRwQGY2FsbGVyCQClCAEIBQZpbnZva2UGY2FsbGVyBAZzdGF0dXMJAQ5nZXRTdHJpbmdCeUtleQEJAQ1rZXlVc2VyU3RhdHVzAQUGY2FsbGVyAwMJAQIhPQIFBnN0YXR1cwUOdXNlclJlZ2lzdGVyZWQJAQIhPQIFBnN0YXR1cwUMdXNlclZlcmlmaWVkBwkAAgECIE5vdCBhbGxvd2VkIHRvIHNldCBFUkMyMCBhZGRyZXNzCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQxrZXlVc2VyRVJDMjABBQZjYWxsZXIFBWVyYzIwBQNuaWwGaW52b2tlARBjaGFuZ2VVc2VyU3RhdHVzAwdhZGRyZXNzBnN0YXR1cwRub3RlBAZjYWxsZXIJAKUIAQgFBmludm9rZQZjYWxsZXIEDWN1cnJlbnRTdGF0dXMJAQ5nZXRTdHJpbmdCeUtleQEJAQ1rZXlVc2VyU3RhdHVzAQUHYWRkcmVzcwQLc3RhdHVzVG9TZXQJARF2YWxpZGF0ZU5ld1N0YXR1cwMFBnN0YXR1cwUHYWRkcmVzcwUNY3VycmVudFN0YXR1cwQEbmFtZQkA2gQBCQCbAwEJAQ5nZXRTdHJpbmdCeUtleQEJAQtrZXlVc2VyTmFtZQEFB2FkZHJlc3MEBXRodW1iCQDaBAEJAJsDAQkBDmdldFN0cmluZ0J5S2V5AQkBDGtleVVzZXJUaHVtYgEFB2FkZHJlc3MEBGRhdGUJAQ9nZXRJbnRlZ2VyQnlLZXkBCQELa2V5VXNlckRhdGUBBQdhZGRyZXNzBARqc29uCQEIbWFrZUpTT04DBQRuYW1lBQV0aHVtYgkApAMBBQRkYXRlAwkBD2NvbnRhaW5zRWxlbWVudAIJAMwIAgUFY2hyaXMJAMwIAgUEam9lcAkAzAgCCQClCAEFBHRoaXMFA25pbAUGY2FsbGVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ1rZXlVc2VyU3RhdHVzAQUHYWRkcmVzcwULc3RhdHVzVG9TZXQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICCQCsAgIFDWN1cnJlbnRTdGF0dXMCAV8FB2FkZHJlc3MJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIFC3N0YXR1c1RvU2V0AgFfBQdhZGRyZXNzBQRqc29uCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgIKdXNlcl9ub3RlXwUHYWRkcmVzcwUEbm90ZQUDbmlsCQACAQIhTm90IGFsbG93ZWQgdG8gY2hhbmdlIHVzZXIgc3RhdHVzBmludm9rZQEKZGVsZXRlVXNlcgEHYWRkcmVzcwQGY2FsbGVyCQClCAEIBQZpbnZva2UGY2FsbGVyBA1jdXJyZW50U3RhdHVzCQEOZ2V0U3RyaW5nQnlLZXkBCQENa2V5VXNlclN0YXR1cwEFB2FkZHJlc3MDCQEPY29udGFpbnNFbGVtZW50AgkAzAgCBQVjaHJpcwkAzAgCCQClCAEFBHRoaXMFA25pbAUGY2FsbGVyCQDMCAIJAQtEZWxldGVFbnRyeQEJAQtrZXlVc2VyRGF0ZQEFB2FkZHJlc3MJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBC2tleVVzZXJBZGRyAQUHYWRkcmVzcwkAzAgCCQELRGVsZXRlRW50cnkBCQELa2V5VXNlck5hbWUBBQdhZGRyZXNzCQDMCAIJAQtEZWxldGVFbnRyeQEJAQtrZXlVc2VyRGVzYwEFB2FkZHJlc3MJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBDWtleVVzZXJTb2NpYWwBBQdhZGRyZXNzCQDMCAIJAQtEZWxldGVFbnRyeQEJAQxrZXlVc2VyVGh1bWIBBQdhZGRyZXNzCQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgIKdXNlcl9ub3RlXwUHYWRkcmVzcwkAzAgCCQELRGVsZXRlRW50cnkBCQCsAgIJAKwCAgUNY3VycmVudFN0YXR1cwIBXwUHYWRkcmVzcwkAzAgCCQELU3RyaW5nRW50cnkCCQENa2V5VXNlclN0YXR1cwEFB2FkZHJlc3MFC3VzZXJSZW1vdmVkBQNuaWwJAAIBAgtOb3QgYWxsb3dlZAFpAQhzZXRBZ2VudAQKYXJ0aXN0QWRkcglhZ2VudEFkZHIMcHJpbWFyeVNoYXJlDnNlY29uZGFyeVNoYXJlAwkBASEBBQtkYXBwUnVubmluZwkAAgEFDm1haW50ZW5hbmNlTVNHBAZjYWxsZXIJAKUIAQgFAWkGY2FsbGVyAwkBD2NvbnRhaW5zRWxlbWVudAIJAMwIAgUFY2hyaXMJAMwIAgkApQgBBQR0aGlzBQNuaWwFBmNhbGxlcgMDCQECIT0CCQCxAgEFCmFydGlzdEFkZHIAIwYJAQIhPQIJALECAQUJYWdlbnRBZGRyACMJAAIBAg1Xcm9uZyBhZGRyZXNzCQDMCAIJAQtTdHJpbmdFbnRyeQIJARJrZXlBcnRpc3RBZ2VudEFkZHIBBQphcnRpc3RBZGRyBQlhZ2VudEFkZHIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBEmtleUFnZW50QXJ0aXN0QWRkcgIFCWFnZW50QWRkcgUKYXJ0aXN0QWRkcgUKYXJ0aXN0QWRkcgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBD2tleVByaW1hcnlTaGFyZQEFCmFydGlzdEFkZHIFDHByaW1hcnlTaGFyZQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBEWtleVNlY29uZGFyeVNoYXJlAQUKYXJ0aXN0QWRkcgUOc2Vjb25kYXJ5U2hhcmUFA25pbAkAAgECE1lvdSBhcmUgbm90IGFsbG93ZWQBaQEKdW5zZXRBZ2VudAIKYXJ0aXN0QWRkcglhZ2VudEFkZHIDCQEBIQEFC2RhcHBSdW5uaW5nCQACAQUObWFpbnRlbmFuY2VNU0cEBmNhbGxlcgkApQgBCAUBaQZjYWxsZXIDCQEPY29udGFpbnNFbGVtZW50AgkAzAgCBQVjaHJpcwkAzAgCCQClCAEFBHRoaXMFA25pbAUGY2FsbGVyAwMJAQIhPQIJALECAQUKYXJ0aXN0QWRkcgAjBgkBAiE9AgkAsQIBBQlhZ2VudEFkZHIAIwkAAgECDVdyb25nIGFkZHJlc3MJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBEmtleUFydGlzdEFnZW50QWRkcgEFCmFydGlzdEFkZHIJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBEmtleUFnZW50QXJ0aXN0QWRkcgIFCWFnZW50QWRkcgUKYXJ0aXN0QWRkcgkAzAgCCQELRGVsZXRlRW50cnkBCQEPa2V5UHJpbWFyeVNoYXJlAQUKYXJ0aXN0QWRkcgkAzAgCCQELRGVsZXRlRW50cnkBCQERa2V5U2Vjb25kYXJ5U2hhcmUBBQphcnRpc3RBZGRyBQNuaWwJAAIBAhNZb3UgYXJlIG5vdCBhbGxvd2VkAWkBC2RlbGV0ZUVudHJ5AQVlbnRyeQQGY2FsbGVyCQClCAEIBQFpBmNhbGxlcgMJAAACBQZjYWxsZXIFBWNocmlzCQDMCAIJAQtEZWxldGVFbnRyeQEFBWVudHJ5BQNuaWwJAAIBAgJubwDkBmiB", "height": 2165285, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 7VvjKR43iNJ2oR7qfK1QWW6UYkXdgw2npTms9yFGTVqE Next: BnUdtgFgP6iv4RKfv87Vc5gyPn2xYbeja2GpEVdMjcGm Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-func a (b) = valueOrElse(getString(this, b), "")
4+let a = "1.3"
5+
6+func b (c) = valueOrElse(getString(this, c), "")
57
68
7-func c (b) = valueOrElse(getBoolean(this, b), false)
9+func d (c) = valueOrElse(getBoolean(this, c), false)
810
911
10-func d (b) = valueOrElse(getInteger(this, b), 0)
12+func e (c) = valueOrElse(getInteger(this, c), 0)
1113
1214
13-let e = a("conf_admin_1")
15+let f = b("conf_admin_1")
1416
15-let f = a("conf_admin_2")
17+let g = b("conf_admin_2")
1618
17-let g = "conf_dapp_is_running"
19+let h = "conf_dapp_is_running"
1820
19-let h = "conf_maintenance_msg"
21+let i = "conf_maintenance_msg"
2022
21-let i = "conf_whitelisted_only"
23+let j = "conf_whitelisted_only"
2224
23-let j = valueOrElse(getBoolean(this, g), true)
25+let k = valueOrElse(getBoolean(this, h), true)
2426
25-let k = valueOrElse(getString(this, h), "")
27+let l = valueOrElse(getString(this, i), "")
2628
27-let l = valueOrElse(getBoolean(this, i), true)
29+let m = valueOrElse(getBoolean(this, j), true)
2830
29-let m = "ALLOWED"
31+let n = "ALLOWED"
3032
31-let n = "REGISTERED"
33+let o = "REGISTERED"
3234
33-let o = "VERIFIED"
35+let p = "VERIFIED"
3436
35-let p = "SUSPENDED"
37+let q = "SUSPENDED"
3638
37-let q = "REMOVED"
39+let r = "REMOVED"
3840
39-let r = "CHANGE_REQUIRED"
41+let s = "CHANGE_REQUIRED"
4042
41-let s = "UNREGISTERED"
43+let t = "UNREGISTERED"
4244
43-let t = "RESET"
45+let u = "RESET"
4446
45-func u (v) = ("user_" + v)
47+func v (w) = ("user_" + w)
4648
4749
48-func w (v) = ("user_name_" + v)
50+func x (w) = ("user_name_" + w)
4951
5052
51-func x (v) = ("user_desc_" + v)
53+func y (w) = ("user_desc_" + w)
5254
5355
54-func y (v) = ("user_social_" + v)
56+func z (w) = ("user_social_" + w)
5557
5658
57-func z (v) = ("user_thumb_" + v)
59+func A (w) = ("user_thumb_" + w)
5860
5961
60-func A (v) = ("user_status_" + v)
62+func B (w) = ("user_status_" + w)
6163
6264
63-func B (v) = ("user_date_" + v)
65+func C (w) = ("user_date_" + w)
6466
6567
66-func C (D) = ("artist_agent_" + D)
68+func D (w) = ("user_ERC20_" + w)
6769
6870
69-func E (F,D) = ((("agent_" + F) + "_") + D)
71+func E (F) = ("artist_agent_" + F)
7072
7173
72-func G (D) = ("artist_agent_primary_" + D)
74+func G (H,F) = ((("agent_" + H) + "_") + F)
7375
7476
75-func H (D) = ("artist_agent_secondary_" + D)
77+func I (F) = ("artist_agent_primary_" + F)
7678
7779
78-func I (J) = if (contains(J, "/"))
79- then if (if ((76 > size(J)))
80- then (size(split(J, "/")[0]) == 59)
80+func J (F) = ("artist_agent_secondary_" + F)
81+
82+
83+func K (L) = if (contains(L, "/"))
84+ then if (if ((76 > size(L)))
85+ then (size(split(L, "/")[0]) == 59)
8186 else false)
82- then (16 > size(split(J, "/")[1]))
87+ then (16 > size(split(L, "/")[1]))
8388 else false
8489 else false
8590
8691
87-func K (v,L,M,N,O) = {
88- let P = if ((size(N) != 0))
89- then I(N)
92+func M (w,N,O,P,Q) = {
93+ let R = if ((size(P) != 0))
94+ then K(P)
9095 else true
91- if (!(P))
96+ if (!(R))
9297 then throw("CID don't match requirement!")
93- else if (if ((L == ""))
98+ else if (if ((N == ""))
9499 then true
95- else (M == ""))
100+ else (O == ""))
96101 then throw("Name and description cannot be empty")
97- else if ((size(M) > 600))
102+ else if ((size(O) > 600))
98103 then throw("600 Char. max description")
99- else if ((size(L) > 45))
104+ else if ((size(N) > 45))
100105 then throw("45 Char. max name")
101106 else {
102- let Q = a(A(v))
103- if (if ((Q == p))
107+ let S = b(B(w))
108+ if (if ((S == q))
104109 then true
105- else (Q == q))
110+ else (S == r))
106111 then throw("Account suspended/ removed.")
107- else if (if (!(O))
108- then (Q == n)
112+ else if (if (!(Q))
113+ then (S == o)
109114 else false)
110115 then throw("Already registered")
111- else if (if (if (!(O))
112- then (Q == "")
116+ else if (if (if (!(Q))
117+ then (S == "")
113118 else false)
114- then l
119+ then m
115120 else false)
116121 then throw("Can't register, get approved first.")
117- else if (if (if (O)
118- then (Q == "")
122+ else if (if (if (Q)
123+ then (S == "")
119124 else false)
120125 then true
121- else if (O)
122- then (Q == m)
126+ else if (Q)
127+ then (S == n)
123128 else false)
124129 then throw("Register first")
125130 else true
127132 }
128133
129134
130-func R (Q,S,T) = {
131- let U = [o, n, p, q, m, r]
132- let V = if (containsElement(U, Q))
133- then Q
134- else if (if ((Q == t))
135- then (T == m)
135+func T (S,U,V) = {
136+ let W = [p, o, q, r, n, s]
137+ let X = if (containsElement(W, S))
138+ then S
139+ else if (if ((S == u))
140+ then (V == n)
136141 else false)
137142 then ""
138143 else throw("Unknown status")
139- let W = d(B(S))
140- if (if ((W == 0))
141- then (V != m)
144+ let Y = e(C(U))
145+ if (if ((Y == 0))
146+ then (X != n)
142147 else false)
143148 then throw("You cant set this status, user is not registered.")
144- else if (if ((T == m))
145- then (V == m)
149+ else if (if ((V == n))
150+ then (X == n)
146151 else false)
147152 then throw("User already allowed")
148- else if (if ((T == n))
149- then (V == m)
153+ else if (if ((V == o))
154+ then (X == n)
150155 else false)
151156 then throw("User already allowed & registered")
152- else if (if ((T == o))
153- then (V == m)
157+ else if (if ((V == p))
158+ then (X == n)
154159 else false)
155160 then throw("User already allowed & verified")
156- else V
161+ else X
157162 }
158163
159164
160-func X (L,N,Y) = (((((("{\"user_name\": \"" + L) + "\", \"user_thumb\":\"") + N) + "\",\"user_date\":\"") + Y) + "\"}")
165+func Z (N,P,aa) = (((((("{\"user_name\": \"" + N) + "\", \"user_thumb\":\"") + P) + "\",\"user_date\":\"") + aa) + "\"}")
161166
162167
163-@Callable(Z)
164-func setConf (b,aa) = {
165- let v = toString(Z.caller)
166- if (containsElement([e, toString(this)], v))
167- then [StringEntry(b, aa)]
168+@Callable(ab)
169+func setConf (c,ac) = {
170+ let w = toString(ab.caller)
171+ if (containsElement([f, toString(this)], w))
172+ then [StringEntry(c, ac)]
168173 else throw("You are not allowed to change this")
169174 }
170175
171176
172177
173-@Callable(Z)
174-func appRunning (ab,ac) = {
175- let v = toString(Z.caller)
176- if (containsElement([e, f, toString(this)], v))
177- then [BooleanEntry(g, ab), StringEntry(h, ac)]
178+@Callable(ab)
179+func appRunning (ad,ae) = {
180+ let w = toString(ab.caller)
181+ if (containsElement([f, g, toString(this)], w))
182+ then [BooleanEntry(h, ad), StringEntry(i, ae)]
178183 else throw("You are not allowed to change this")
179184 }
180185
181186
182187
183-@Callable(Z)
184-func registrationMode (ad) = {
185- let v = toString(Z.caller)
186- if (containsElement([e, toString(this)], v))
187- then [BooleanEntry(i, ad)]
188+@Callable(ab)
189+func registrationMode (af) = {
190+ let w = toString(ab.caller)
191+ if (containsElement([f, toString(this)], w))
192+ then [BooleanEntry(j, af)]
188193 else throw("You are not allowed to change this")
189194 }
190195
191196
192197
193-@Callable(Z)
194-func registerUser (L,M,N,ae) = if (!(j))
195- then throw(k)
198+@Callable(ab)
199+func registerUser (N,O,P,ag) = if (!(k))
200+ then throw(l)
196201 else {
197- let v = toString(Z.caller)
198- let af = toBase58String(Z.transactionId)
199- let ag = lastBlock.timestamp
200- if (!(K(v, L, M, N, false)))
202+ let w = toString(ab.caller)
203+ let ah = toBase58String(ab.transactionId)
204+ let ai = lastBlock.timestamp
205+ if (!(M(w, N, O, P, false)))
201206 then throw("Something went wrong")
202207 else {
203- let ah = X(toBase64String(toBytes(L)), toBase64String(toBytes(N)), toString(ag))
204-[IntegerEntry(B(v), ag), StringEntry(u(v), ((af + "_") + toString(ag))), StringEntry(w(v), L), StringEntry(x(v), M), StringEntry(y(v), ae), StringEntry(z(v), N), StringEntry(A(v), n), DeleteEntry(("ALLOWED_" + v)), StringEntry(((n + "_") + v), ah)]
208+ let aj = Z(toBase64String(toBytes(N)), toBase64String(toBytes(P)), toString(ai))
209+[IntegerEntry(C(w), ai), StringEntry(v(w), ((ah + "_") + toString(ai))), StringEntry(x(w), N), StringEntry(y(w), O), StringEntry(z(w), ag), StringEntry(A(w), P), StringEntry(B(w), o), DeleteEntry(("ALLOWED_" + w)), StringEntry(((o + "_") + w), aj)]
205210 }
206211 }
207212
208213
209214
210-@Callable(Z)
211-func updateUser (L,M,N,ae) = if (!(j))
212- then throw(k)
215+@Callable(ab)
216+func updateUser (N,O,P,ag) = if (!(k))
217+ then throw(l)
213218 else {
214- let v = toString(Z.caller)
215- let Q = a(A(v))
216- if (!(K(v, L, M, N, true)))
219+ let w = toString(ab.caller)
220+ let S = b(B(w))
221+ if (!(M(w, N, O, P, true)))
217222 then throw("Something went wrong")
218223 else {
219- let Y = d(B(v))
220- let ah = X(toBase64String(toBytes(L)), toBase64String(toBytes(N)), toString(Y))
221-[StringEntry(w(v), L), StringEntry(x(v), M), StringEntry(y(v), ae), StringEntry(z(v), N), StringEntry(((Q + "_") + v), ah)]
224+ let aa = e(C(w))
225+ let aj = Z(toBase64String(toBytes(N)), toBase64String(toBytes(P)), toString(aa))
226+[StringEntry(x(w), N), StringEntry(y(w), O), StringEntry(z(w), ag), StringEntry(A(w), P), StringEntry(((S + "_") + w), aj)]
222227 }
223228 }
224229
225230
226231
227-@Callable(Z)
228-func changeUserStatus (S,Q,ai) = {
229- let v = toString(Z.caller)
230- let T = a(A(S))
231- let V = R(Q, S, T)
232- let L = toBase64String(toBytes(a(w(S))))
233- let N = toBase64String(toBytes(a(z(S))))
234- let Y = d(B(S))
235- let ah = X(L, N, toString(Y))
236- if (containsElement([e, f, toString(this)], v))
237- then [StringEntry(A(S), V), DeleteEntry(((T + "_") + S)), StringEntry(((V + "_") + S), ah), StringEntry(("user_note_" + S), ai)]
232+@Callable(ab)
233+func setERC20User (ak) = if (!(k))
234+ then throw(l)
235+ else {
236+ let w = toString(ab.caller)
237+ let S = b(B(w))
238+ if (if ((S != o))
239+ then (S != p)
240+ else false)
241+ then throw("Not allowed to set ERC20 address")
242+ else [StringEntry(D(w), ak)]
243+ }
244+
245+
246+
247+@Callable(ab)
248+func changeUserStatus (U,S,al) = {
249+ let w = toString(ab.caller)
250+ let V = b(B(U))
251+ let X = T(S, U, V)
252+ let N = toBase64String(toBytes(b(x(U))))
253+ let P = toBase64String(toBytes(b(A(U))))
254+ let aa = e(C(U))
255+ let aj = Z(N, P, toString(aa))
256+ if (containsElement([f, g, toString(this)], w))
257+ then [StringEntry(B(U), X), DeleteEntry(((V + "_") + U)), StringEntry(((X + "_") + U), aj), StringEntry(("user_note_" + U), al)]
238258 else throw("Not allowed to change user status")
239259 }
240260
241261
242262
243-@Callable(Z)
244-func deleteUser (S) = {
245- let v = toString(Z.caller)
246- let T = a(A(S))
247- if (containsElement([e, toString(this)], v))
248- then [DeleteEntry(B(S)), DeleteEntry(u(S)), DeleteEntry(w(S)), DeleteEntry(x(S)), DeleteEntry(y(S)), DeleteEntry(z(S)), DeleteEntry(("user_note_" + S)), DeleteEntry(((T + "_") + S)), StringEntry(A(S), q)]
263+@Callable(ab)
264+func deleteUser (U) = {
265+ let w = toString(ab.caller)
266+ let V = b(B(U))
267+ if (containsElement([f, toString(this)], w))
268+ then [DeleteEntry(C(U)), DeleteEntry(v(U)), DeleteEntry(x(U)), DeleteEntry(y(U)), DeleteEntry(z(U)), DeleteEntry(A(U)), DeleteEntry(("user_note_" + U)), DeleteEntry(((V + "_") + U)), StringEntry(B(U), r)]
249269 else throw("Not allowed")
250270 }
251271
252272
253273
254-@Callable(aj)
255-func setAgent (D,F,ak,al) = if (!(j))
256- then throw(k)
274+@Callable(am)
275+func setAgent (F,H,an,ao) = if (!(k))
276+ then throw(l)
257277 else {
258- let v = toString(aj.caller)
259- if (containsElement([e, toString(this)], v))
260- then if (if ((size(D) != 35))
278+ let w = toString(am.caller)
279+ if (containsElement([f, toString(this)], w))
280+ then if (if ((size(F) != 35))
261281 then true
262- else (size(F) != 35))
282+ else (size(H) != 35))
263283 then throw("Wrong address")
264- else [StringEntry(C(D), F), StringEntry(E(F, D), D), IntegerEntry(G(D), ak), IntegerEntry(H(D), al)]
284+ else [StringEntry(E(F), H), StringEntry(G(H, F), F), IntegerEntry(I(F), an), IntegerEntry(J(F), ao)]
265285 else throw("You are not allowed")
266286 }
267287
268288
269289
270-@Callable(aj)
271-func unsetAgent (D,F) = if (!(j))
272- then throw(k)
290+@Callable(am)
291+func unsetAgent (F,H) = if (!(k))
292+ then throw(l)
273293 else {
274- let v = toString(aj.caller)
275- if (containsElement([e, toString(this)], v))
276- then if (if ((size(D) != 35))
294+ let w = toString(am.caller)
295+ if (containsElement([f, toString(this)], w))
296+ then if (if ((size(F) != 35))
277297 then true
278- else (size(F) != 35))
298+ else (size(H) != 35))
279299 then throw("Wrong address")
280- else [DeleteEntry(C(D)), DeleteEntry(E(F, D)), DeleteEntry(G(D)), DeleteEntry(H(D))]
300+ else [DeleteEntry(E(F)), DeleteEntry(G(H, F)), DeleteEntry(I(F)), DeleteEntry(J(F))]
281301 else throw("You are not allowed")
282302 }
283303
284304
285305
286-@Callable(aj)
287-func deleteEntry (am) = {
288- let v = toString(aj.caller)
289- if ((v == e))
290- then [DeleteEntry(am)]
306+@Callable(am)
307+func deleteEntry (ap) = {
308+ let w = toString(am.caller)
309+ if ((w == f))
310+ then [DeleteEntry(ap)]
291311 else throw("no")
292312 }
293313
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-func a (b) = valueOrElse(getString(this, b), "")
4+let a = "1.3"
5+
6+func b (c) = valueOrElse(getString(this, c), "")
57
68
7-func c (b) = valueOrElse(getBoolean(this, b), false)
9+func d (c) = valueOrElse(getBoolean(this, c), false)
810
911
10-func d (b) = valueOrElse(getInteger(this, b), 0)
12+func e (c) = valueOrElse(getInteger(this, c), 0)
1113
1214
13-let e = a("conf_admin_1")
15+let f = b("conf_admin_1")
1416
15-let f = a("conf_admin_2")
17+let g = b("conf_admin_2")
1618
17-let g = "conf_dapp_is_running"
19+let h = "conf_dapp_is_running"
1820
19-let h = "conf_maintenance_msg"
21+let i = "conf_maintenance_msg"
2022
21-let i = "conf_whitelisted_only"
23+let j = "conf_whitelisted_only"
2224
23-let j = valueOrElse(getBoolean(this, g), true)
25+let k = valueOrElse(getBoolean(this, h), true)
2426
25-let k = valueOrElse(getString(this, h), "")
27+let l = valueOrElse(getString(this, i), "")
2628
27-let l = valueOrElse(getBoolean(this, i), true)
29+let m = valueOrElse(getBoolean(this, j), true)
2830
29-let m = "ALLOWED"
31+let n = "ALLOWED"
3032
31-let n = "REGISTERED"
33+let o = "REGISTERED"
3234
33-let o = "VERIFIED"
35+let p = "VERIFIED"
3436
35-let p = "SUSPENDED"
37+let q = "SUSPENDED"
3638
37-let q = "REMOVED"
39+let r = "REMOVED"
3840
39-let r = "CHANGE_REQUIRED"
41+let s = "CHANGE_REQUIRED"
4042
41-let s = "UNREGISTERED"
43+let t = "UNREGISTERED"
4244
43-let t = "RESET"
45+let u = "RESET"
4446
45-func u (v) = ("user_" + v)
47+func v (w) = ("user_" + w)
4648
4749
48-func w (v) = ("user_name_" + v)
50+func x (w) = ("user_name_" + w)
4951
5052
51-func x (v) = ("user_desc_" + v)
53+func y (w) = ("user_desc_" + w)
5254
5355
54-func y (v) = ("user_social_" + v)
56+func z (w) = ("user_social_" + w)
5557
5658
57-func z (v) = ("user_thumb_" + v)
59+func A (w) = ("user_thumb_" + w)
5860
5961
60-func A (v) = ("user_status_" + v)
62+func B (w) = ("user_status_" + w)
6163
6264
63-func B (v) = ("user_date_" + v)
65+func C (w) = ("user_date_" + w)
6466
6567
66-func C (D) = ("artist_agent_" + D)
68+func D (w) = ("user_ERC20_" + w)
6769
6870
69-func E (F,D) = ((("agent_" + F) + "_") + D)
71+func E (F) = ("artist_agent_" + F)
7072
7173
72-func G (D) = ("artist_agent_primary_" + D)
74+func G (H,F) = ((("agent_" + H) + "_") + F)
7375
7476
75-func H (D) = ("artist_agent_secondary_" + D)
77+func I (F) = ("artist_agent_primary_" + F)
7678
7779
78-func I (J) = if (contains(J, "/"))
79- then if (if ((76 > size(J)))
80- then (size(split(J, "/")[0]) == 59)
80+func J (F) = ("artist_agent_secondary_" + F)
81+
82+
83+func K (L) = if (contains(L, "/"))
84+ then if (if ((76 > size(L)))
85+ then (size(split(L, "/")[0]) == 59)
8186 else false)
82- then (16 > size(split(J, "/")[1]))
87+ then (16 > size(split(L, "/")[1]))
8388 else false
8489 else false
8590
8691
87-func K (v,L,M,N,O) = {
88- let P = if ((size(N) != 0))
89- then I(N)
92+func M (w,N,O,P,Q) = {
93+ let R = if ((size(P) != 0))
94+ then K(P)
9095 else true
91- if (!(P))
96+ if (!(R))
9297 then throw("CID don't match requirement!")
93- else if (if ((L == ""))
98+ else if (if ((N == ""))
9499 then true
95- else (M == ""))
100+ else (O == ""))
96101 then throw("Name and description cannot be empty")
97- else if ((size(M) > 600))
102+ else if ((size(O) > 600))
98103 then throw("600 Char. max description")
99- else if ((size(L) > 45))
104+ else if ((size(N) > 45))
100105 then throw("45 Char. max name")
101106 else {
102- let Q = a(A(v))
103- if (if ((Q == p))
107+ let S = b(B(w))
108+ if (if ((S == q))
104109 then true
105- else (Q == q))
110+ else (S == r))
106111 then throw("Account suspended/ removed.")
107- else if (if (!(O))
108- then (Q == n)
112+ else if (if (!(Q))
113+ then (S == o)
109114 else false)
110115 then throw("Already registered")
111- else if (if (if (!(O))
112- then (Q == "")
116+ else if (if (if (!(Q))
117+ then (S == "")
113118 else false)
114- then l
119+ then m
115120 else false)
116121 then throw("Can't register, get approved first.")
117- else if (if (if (O)
118- then (Q == "")
122+ else if (if (if (Q)
123+ then (S == "")
119124 else false)
120125 then true
121- else if (O)
122- then (Q == m)
126+ else if (Q)
127+ then (S == n)
123128 else false)
124129 then throw("Register first")
125130 else true
126131 }
127132 }
128133
129134
130-func R (Q,S,T) = {
131- let U = [o, n, p, q, m, r]
132- let V = if (containsElement(U, Q))
133- then Q
134- else if (if ((Q == t))
135- then (T == m)
135+func T (S,U,V) = {
136+ let W = [p, o, q, r, n, s]
137+ let X = if (containsElement(W, S))
138+ then S
139+ else if (if ((S == u))
140+ then (V == n)
136141 else false)
137142 then ""
138143 else throw("Unknown status")
139- let W = d(B(S))
140- if (if ((W == 0))
141- then (V != m)
144+ let Y = e(C(U))
145+ if (if ((Y == 0))
146+ then (X != n)
142147 else false)
143148 then throw("You cant set this status, user is not registered.")
144- else if (if ((T == m))
145- then (V == m)
149+ else if (if ((V == n))
150+ then (X == n)
146151 else false)
147152 then throw("User already allowed")
148- else if (if ((T == n))
149- then (V == m)
153+ else if (if ((V == o))
154+ then (X == n)
150155 else false)
151156 then throw("User already allowed & registered")
152- else if (if ((T == o))
153- then (V == m)
157+ else if (if ((V == p))
158+ then (X == n)
154159 else false)
155160 then throw("User already allowed & verified")
156- else V
161+ else X
157162 }
158163
159164
160-func X (L,N,Y) = (((((("{\"user_name\": \"" + L) + "\", \"user_thumb\":\"") + N) + "\",\"user_date\":\"") + Y) + "\"}")
165+func Z (N,P,aa) = (((((("{\"user_name\": \"" + N) + "\", \"user_thumb\":\"") + P) + "\",\"user_date\":\"") + aa) + "\"}")
161166
162167
163-@Callable(Z)
164-func setConf (b,aa) = {
165- let v = toString(Z.caller)
166- if (containsElement([e, toString(this)], v))
167- then [StringEntry(b, aa)]
168+@Callable(ab)
169+func setConf (c,ac) = {
170+ let w = toString(ab.caller)
171+ if (containsElement([f, toString(this)], w))
172+ then [StringEntry(c, ac)]
168173 else throw("You are not allowed to change this")
169174 }
170175
171176
172177
173-@Callable(Z)
174-func appRunning (ab,ac) = {
175- let v = toString(Z.caller)
176- if (containsElement([e, f, toString(this)], v))
177- then [BooleanEntry(g, ab), StringEntry(h, ac)]
178+@Callable(ab)
179+func appRunning (ad,ae) = {
180+ let w = toString(ab.caller)
181+ if (containsElement([f, g, toString(this)], w))
182+ then [BooleanEntry(h, ad), StringEntry(i, ae)]
178183 else throw("You are not allowed to change this")
179184 }
180185
181186
182187
183-@Callable(Z)
184-func registrationMode (ad) = {
185- let v = toString(Z.caller)
186- if (containsElement([e, toString(this)], v))
187- then [BooleanEntry(i, ad)]
188+@Callable(ab)
189+func registrationMode (af) = {
190+ let w = toString(ab.caller)
191+ if (containsElement([f, toString(this)], w))
192+ then [BooleanEntry(j, af)]
188193 else throw("You are not allowed to change this")
189194 }
190195
191196
192197
193-@Callable(Z)
194-func registerUser (L,M,N,ae) = if (!(j))
195- then throw(k)
198+@Callable(ab)
199+func registerUser (N,O,P,ag) = if (!(k))
200+ then throw(l)
196201 else {
197- let v = toString(Z.caller)
198- let af = toBase58String(Z.transactionId)
199- let ag = lastBlock.timestamp
200- if (!(K(v, L, M, N, false)))
202+ let w = toString(ab.caller)
203+ let ah = toBase58String(ab.transactionId)
204+ let ai = lastBlock.timestamp
205+ if (!(M(w, N, O, P, false)))
201206 then throw("Something went wrong")
202207 else {
203- let ah = X(toBase64String(toBytes(L)), toBase64String(toBytes(N)), toString(ag))
204-[IntegerEntry(B(v), ag), StringEntry(u(v), ((af + "_") + toString(ag))), StringEntry(w(v), L), StringEntry(x(v), M), StringEntry(y(v), ae), StringEntry(z(v), N), StringEntry(A(v), n), DeleteEntry(("ALLOWED_" + v)), StringEntry(((n + "_") + v), ah)]
208+ let aj = Z(toBase64String(toBytes(N)), toBase64String(toBytes(P)), toString(ai))
209+[IntegerEntry(C(w), ai), StringEntry(v(w), ((ah + "_") + toString(ai))), StringEntry(x(w), N), StringEntry(y(w), O), StringEntry(z(w), ag), StringEntry(A(w), P), StringEntry(B(w), o), DeleteEntry(("ALLOWED_" + w)), StringEntry(((o + "_") + w), aj)]
205210 }
206211 }
207212
208213
209214
210-@Callable(Z)
211-func updateUser (L,M,N,ae) = if (!(j))
212- then throw(k)
215+@Callable(ab)
216+func updateUser (N,O,P,ag) = if (!(k))
217+ then throw(l)
213218 else {
214- let v = toString(Z.caller)
215- let Q = a(A(v))
216- if (!(K(v, L, M, N, true)))
219+ let w = toString(ab.caller)
220+ let S = b(B(w))
221+ if (!(M(w, N, O, P, true)))
217222 then throw("Something went wrong")
218223 else {
219- let Y = d(B(v))
220- let ah = X(toBase64String(toBytes(L)), toBase64String(toBytes(N)), toString(Y))
221-[StringEntry(w(v), L), StringEntry(x(v), M), StringEntry(y(v), ae), StringEntry(z(v), N), StringEntry(((Q + "_") + v), ah)]
224+ let aa = e(C(w))
225+ let aj = Z(toBase64String(toBytes(N)), toBase64String(toBytes(P)), toString(aa))
226+[StringEntry(x(w), N), StringEntry(y(w), O), StringEntry(z(w), ag), StringEntry(A(w), P), StringEntry(((S + "_") + w), aj)]
222227 }
223228 }
224229
225230
226231
227-@Callable(Z)
228-func changeUserStatus (S,Q,ai) = {
229- let v = toString(Z.caller)
230- let T = a(A(S))
231- let V = R(Q, S, T)
232- let L = toBase64String(toBytes(a(w(S))))
233- let N = toBase64String(toBytes(a(z(S))))
234- let Y = d(B(S))
235- let ah = X(L, N, toString(Y))
236- if (containsElement([e, f, toString(this)], v))
237- then [StringEntry(A(S), V), DeleteEntry(((T + "_") + S)), StringEntry(((V + "_") + S), ah), StringEntry(("user_note_" + S), ai)]
232+@Callable(ab)
233+func setERC20User (ak) = if (!(k))
234+ then throw(l)
235+ else {
236+ let w = toString(ab.caller)
237+ let S = b(B(w))
238+ if (if ((S != o))
239+ then (S != p)
240+ else false)
241+ then throw("Not allowed to set ERC20 address")
242+ else [StringEntry(D(w), ak)]
243+ }
244+
245+
246+
247+@Callable(ab)
248+func changeUserStatus (U,S,al) = {
249+ let w = toString(ab.caller)
250+ let V = b(B(U))
251+ let X = T(S, U, V)
252+ let N = toBase64String(toBytes(b(x(U))))
253+ let P = toBase64String(toBytes(b(A(U))))
254+ let aa = e(C(U))
255+ let aj = Z(N, P, toString(aa))
256+ if (containsElement([f, g, toString(this)], w))
257+ then [StringEntry(B(U), X), DeleteEntry(((V + "_") + U)), StringEntry(((X + "_") + U), aj), StringEntry(("user_note_" + U), al)]
238258 else throw("Not allowed to change user status")
239259 }
240260
241261
242262
243-@Callable(Z)
244-func deleteUser (S) = {
245- let v = toString(Z.caller)
246- let T = a(A(S))
247- if (containsElement([e, toString(this)], v))
248- then [DeleteEntry(B(S)), DeleteEntry(u(S)), DeleteEntry(w(S)), DeleteEntry(x(S)), DeleteEntry(y(S)), DeleteEntry(z(S)), DeleteEntry(("user_note_" + S)), DeleteEntry(((T + "_") + S)), StringEntry(A(S), q)]
263+@Callable(ab)
264+func deleteUser (U) = {
265+ let w = toString(ab.caller)
266+ let V = b(B(U))
267+ if (containsElement([f, toString(this)], w))
268+ then [DeleteEntry(C(U)), DeleteEntry(v(U)), DeleteEntry(x(U)), DeleteEntry(y(U)), DeleteEntry(z(U)), DeleteEntry(A(U)), DeleteEntry(("user_note_" + U)), DeleteEntry(((V + "_") + U)), StringEntry(B(U), r)]
249269 else throw("Not allowed")
250270 }
251271
252272
253273
254-@Callable(aj)
255-func setAgent (D,F,ak,al) = if (!(j))
256- then throw(k)
274+@Callable(am)
275+func setAgent (F,H,an,ao) = if (!(k))
276+ then throw(l)
257277 else {
258- let v = toString(aj.caller)
259- if (containsElement([e, toString(this)], v))
260- then if (if ((size(D) != 35))
278+ let w = toString(am.caller)
279+ if (containsElement([f, toString(this)], w))
280+ then if (if ((size(F) != 35))
261281 then true
262- else (size(F) != 35))
282+ else (size(H) != 35))
263283 then throw("Wrong address")
264- else [StringEntry(C(D), F), StringEntry(E(F, D), D), IntegerEntry(G(D), ak), IntegerEntry(H(D), al)]
284+ else [StringEntry(E(F), H), StringEntry(G(H, F), F), IntegerEntry(I(F), an), IntegerEntry(J(F), ao)]
265285 else throw("You are not allowed")
266286 }
267287
268288
269289
270-@Callable(aj)
271-func unsetAgent (D,F) = if (!(j))
272- then throw(k)
290+@Callable(am)
291+func unsetAgent (F,H) = if (!(k))
292+ then throw(l)
273293 else {
274- let v = toString(aj.caller)
275- if (containsElement([e, toString(this)], v))
276- then if (if ((size(D) != 35))
294+ let w = toString(am.caller)
295+ if (containsElement([f, toString(this)], w))
296+ then if (if ((size(F) != 35))
277297 then true
278- else (size(F) != 35))
298+ else (size(H) != 35))
279299 then throw("Wrong address")
280- else [DeleteEntry(C(D)), DeleteEntry(E(F, D)), DeleteEntry(G(D)), DeleteEntry(H(D))]
300+ else [DeleteEntry(E(F)), DeleteEntry(G(H, F)), DeleteEntry(I(F)), DeleteEntry(J(F))]
281301 else throw("You are not allowed")
282302 }
283303
284304
285305
286-@Callable(aj)
287-func deleteEntry (am) = {
288- let v = toString(aj.caller)
289- if ((v == e))
290- then [DeleteEntry(am)]
306+@Callable(am)
307+func deleteEntry (ap) = {
308+ let w = toString(am.caller)
309+ if ((w == f))
310+ then [DeleteEntry(ap)]
291311 else throw("no")
292312 }
293313
294314

github/deemru/w8io/026f985 
106.88 ms