tx · 94BHNoggkB8EKYJomAUxmY39it9Pr4VVy6BA2JEiE3s4

3MtSsyaPzp8Mv3tNP88LwPX3ciXYMNJtuX3:  -0.00900000 Waves

2022.09.07 08:33 [2218272] smart account 3MtSsyaPzp8Mv3tNP88LwPX3ciXYMNJtuX3 > SELF 0.00000000 Waves

{ "type": 13, "id": "94BHNoggkB8EKYJomAUxmY39it9Pr4VVy6BA2JEiE3s4", "fee": 900000, "feeAssetId": null, "timestamp": 1662528782095, "version": 2, "chainId": 84, "sender": "3MtSsyaPzp8Mv3tNP88LwPX3ciXYMNJtuX3", "senderPublicKey": "8DWR7HqfHUzkPLtuAyK2Rqh9N8CPHhpuD6vQFfocimPk", "proofs": [ "h5sdPtUNziSyP71XaetYtB83dVE6o17PwMpQt6S1ssvFpyQAke9ujkDuQAdHoxqdue37DHB8ZURpYJmAUPB2FFY" ], "script": "base64:BgJHCAISBAoCCAgSBAoCBAgSAwoBBBIGCgQICAgIEgYKBAgICAgSAwoBCBIFCgMICAgSAwoBCBIGCgQICAEBEgQKAggIEgMKAQgkAAdWRVJTSU9OAgMxLjMBDmdldFN0cmluZ0J5S2V5AQNrZXkJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUDa2V5AgABD2dldEJvb2xlYW5CeUtleQEDa2V5CQELdmFsdWVPckVsc2UCCQCbCAIFBHRoaXMFA2tleQcBD2dldEludGVnZXJCeUtleQEDa2V5CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFA2tleQAAAAVjaHJpcwkBDmdldFN0cmluZ0J5S2V5AQIMY29uZl9hZG1pbl8xAARqb2VwCQEOZ2V0U3RyaW5nQnlLZXkBAgxjb25mX2FkbWluXzIADmRhcHBSdW5uaW5nS2V5AhRjb25mX2RhcHBfaXNfcnVubmluZwARbWFpbnRlbmFuY2VNU0dLZXkCFGNvbmZfbWFpbnRlbmFuY2VfbXNnABJ3aGl0ZWxpc3RlZG9ubHlLZXkCFWNvbmZfd2hpdGVsaXN0ZWRfb25seQALZGFwcFJ1bm5pbmcJAQt2YWx1ZU9yRWxzZQIJAJsIAgUEdGhpcwUOZGFwcFJ1bm5pbmdLZXkGAA5tYWludGVuYW5jZU1TRwkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzBRFtYWludGVuYW5jZU1TR0tleQIAAA93aGl0ZWxpc3RlZG9ubHkJAQt2YWx1ZU9yRWxzZQIJAJsIAgUEdGhpcwUSd2hpdGVsaXN0ZWRvbmx5S2V5BgALdXNlckFsbG93ZWQCB0FMTE9XRUQADnVzZXJSZWdpc3RlcmVkAgpSRUdJU1RFUkVEAAx1c2VyVmVyaWZpZWQCCFZFUklGSUVEAA11c2VyU3VzcGVuZGVkAglTVVNQRU5ERUQAC3VzZXJSZW1vdmVkAgdSRU1PVkVEABJ1c2VyQ2hhbmdlUmVxdWlyZWQCD0NIQU5HRV9SRVFVSVJFRAAQdXNlclVucmVnaXN0ZXJlZAIMVU5SRUdJU1RFUkVEAAl1c2VyUmVzZXQCBVJFU0VUAQtrZXlVc2VyQWRkcgEGY2FsbGVyCQCsAgICBXVzZXJfBQZjYWxsZXIBC2tleVVzZXJOYW1lAQZjYWxsZXIJAKwCAgIKdXNlcl9uYW1lXwUGY2FsbGVyAQtrZXlVc2VyRGVzYwEGY2FsbGVyCQCsAgICCnVzZXJfZGVzY18FBmNhbGxlcgENa2V5VXNlclNvY2lhbAEGY2FsbGVyCQCsAgICDHVzZXJfc29jaWFsXwUGY2FsbGVyAQxrZXlVc2VyVGh1bWIBBmNhbGxlcgkArAICAgt1c2VyX3RodW1iXwUGY2FsbGVyAQ1rZXlVc2VyU3RhdHVzAQZjYWxsZXIJAKwCAgIMdXNlcl9zdGF0dXNfBQZjYWxsZXIBC2tleVVzZXJEYXRlAQZjYWxsZXIJAKwCAgIKdXNlcl9kYXRlXwUGY2FsbGVyAQxrZXlVc2VyRVJDMjABBmNhbGxlcgkArAICAgt1c2VyX0VSQzIwXwUGY2FsbGVyARJrZXlBcnRpc3RBZ2VudEFkZHIBCmFydGlzdEFkZHIJAKwCAgINYXJ0aXN0X2FnZW50XwUKYXJ0aXN0QWRkcgESa2V5QWdlbnRBcnRpc3RBZGRyAglhZ2VudEFkZHIKYXJ0aXN0QWRkcgkArAICCQCsAgIJAKwCAgIGYWdlbnRfBQlhZ2VudEFkZHICAV8FCmFydGlzdEFkZHIBD2tleVByaW1hcnlTaGFyZQEKYXJ0aXN0QWRkcgkArAICAhVhcnRpc3RfYWdlbnRfcHJpbWFyeV8FCmFydGlzdEFkZHIBEWtleVNlY29uZGFyeVNoYXJlAQphcnRpc3RBZGRyCQCsAgICF2FydGlzdF9hZ2VudF9zZWNvbmRhcnlfBQphcnRpc3RBZGRyAQt2YWxpZGF0ZUNJRAEDY2lkAwkBCGNvbnRhaW5zAgUDY2lkAgEvAwMJAGYCAEwJALECAQUDY2lkCQAAAgkAsQIBCQCRAwIJALUJAgUDY2lkAgEvAAAAOwcJAGYCABAJALECAQkAkQMCCQC1CQIFA2NpZAIBLwABBwcBDXZhbGlkVXNlckRhdGEFBmNhbGxlcgRuYW1lC2Rlc2NyaXB0aW9uBXRodW1iCmlzQW5VcGRhdGUECHZhbGlkQ0lEAwkBAiE9AgkAsQIBBQV0aHVtYgAACQELdmFsaWRhdGVDSUQBBQV0aHVtYgYDCQEBIQEFCHZhbGlkQ0lECQACAQIcQ0lEIGRvbid0IG1hdGNoIHJlcXVpcmVtZW50IQMDCQAAAgUEbmFtZQIABgkAAAIFC2Rlc2NyaXB0aW9uAgAJAAIBAiROYW1lIGFuZCBkZXNjcmlwdGlvbiBjYW5ub3QgYmUgZW1wdHkDCQBmAgkAsQIBBQtkZXNjcmlwdGlvbgDYBAkAAgECGTYwMCBDaGFyLiBtYXggZGVzY3JpcHRpb24DCQBmAgkAsQIBBQRuYW1lAC0JAAIBAhE0NSBDaGFyLiBtYXggbmFtZQQGc3RhdHVzCQEOZ2V0U3RyaW5nQnlLZXkBCQENa2V5VXNlclN0YXR1cwEFBmNhbGxlcgMDCQAAAgUGc3RhdHVzBQ11c2VyU3VzcGVuZGVkBgkAAAIFBnN0YXR1cwULdXNlclJlbW92ZWQJAAIBAhtBY2NvdW50IHN1c3BlbmRlZC8gcmVtb3ZlZC4DAwkBASEBBQppc0FuVXBkYXRlCQAAAgUGc3RhdHVzBQ51c2VyUmVnaXN0ZXJlZAcJAAIBAhJBbHJlYWR5IHJlZ2lzdGVyZWQDAwMJAQEhAQUKaXNBblVwZGF0ZQkAAAIFBnN0YXR1cwIABwUPd2hpdGVsaXN0ZWRvbmx5BwkAAgECI0Nhbid0IHJlZ2lzdGVyLCBnZXQgYXBwcm92ZWQgZmlyc3QuAwMDBQppc0FuVXBkYXRlCQAAAgUGc3RhdHVzAgAHBgMFCmlzQW5VcGRhdGUJAAACBQZzdGF0dXMFC3VzZXJBbGxvd2VkBwkAAgECDlJlZ2lzdGVyIGZpcnN0BgERdmFsaWRhdGVOZXdTdGF0dXMDBnN0YXR1cwdhZGRyZXNzDWN1cnJlbnRTdGF0dXMECWFsbFN0YXR1cwkAzAgCBQx1c2VyVmVyaWZpZWQJAMwIAgUOdXNlclJlZ2lzdGVyZWQJAMwIAgUNdXNlclN1c3BlbmRlZAkAzAgCBQt1c2VyUmVtb3ZlZAkAzAgCBQt1c2VyQWxsb3dlZAkAzAgCBRJ1c2VyQ2hhbmdlUmVxdWlyZWQFA25pbAQLc3RhdHVzVG9TZXQDCQEPY29udGFpbnNFbGVtZW50AgUJYWxsU3RhdHVzBQZzdGF0dXMFBnN0YXR1cwMDCQAAAgUGc3RhdHVzBQl1c2VyUmVzZXQJAAACBQ1jdXJyZW50U3RhdHVzBQt1c2VyQWxsb3dlZAcCAAkAAgECDlVua25vd24gc3RhdHVzBBB1c2VySXNSZWdpc3RlcmVkCQEPZ2V0SW50ZWdlckJ5S2V5AQkBC2tleVVzZXJEYXRlAQUHYWRkcmVzcwMDCQAAAgUQdXNlcklzUmVnaXN0ZXJlZAAACQECIT0CBQtzdGF0dXNUb1NldAULdXNlckFsbG93ZWQHCQACAQIxWW91IGNhbnQgc2V0IHRoaXMgc3RhdHVzLCB1c2VyIGlzIG5vdCByZWdpc3RlcmVkLgMDCQAAAgUNY3VycmVudFN0YXR1cwULdXNlckFsbG93ZWQJAAACBQtzdGF0dXNUb1NldAULdXNlckFsbG93ZWQHCQACAQIUVXNlciBhbHJlYWR5IGFsbG93ZWQDAwkAAAIFDWN1cnJlbnRTdGF0dXMFDnVzZXJSZWdpc3RlcmVkCQAAAgULc3RhdHVzVG9TZXQFC3VzZXJBbGxvd2VkBwkAAgECIVVzZXIgYWxyZWFkeSBhbGxvd2VkICYgcmVnaXN0ZXJlZAMDCQAAAgUNY3VycmVudFN0YXR1cwUMdXNlclZlcmlmaWVkCQAAAgULc3RhdHVzVG9TZXQFC3VzZXJBbGxvd2VkBwkAAgECH1VzZXIgYWxyZWFkeSBhbGxvd2VkICYgdmVyaWZpZWQFC3N0YXR1c1RvU2V0AQhtYWtlSlNPTgMEbmFtZQV0aHVtYgRkYXRlCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAg97InVzZXJfbmFtZSI6ICIFBG5hbWUCESIsICJ1c2VyX3RodW1iIjoiBQV0aHVtYgIPIiwidXNlcl9kYXRlIjoiBQRkYXRlAgIifQsGaW52b2tlAQdzZXRDb25mAgNrZXkDdmFsBAZjYWxsZXIJAKUIAQgFBmludm9rZQZjYWxsZXIDCQEPY29udGFpbnNFbGVtZW50AgkAzAgCBQVjaHJpcwkAzAgCCQClCAEFBHRoaXMFA25pbAUGY2FsbGVyCQDMCAIJAQtTdHJpbmdFbnRyeQIFA2tleQUDdmFsBQNuaWwJAAIBAiJZb3UgYXJlIG5vdCBhbGxvd2VkIHRvIGNoYW5nZSB0aGlzBmludm9rZQEKYXBwUnVubmluZwIGaXNMaXZlB21lc3NhZ2UEBmNhbGxlcgkApQgBCAUGaW52b2tlBmNhbGxlcgMJAQ9jb250YWluc0VsZW1lbnQCCQDMCAIFBWNocmlzCQDMCAIFBGpvZXAJAMwIAgkApQgBBQR0aGlzBQNuaWwFBmNhbGxlcgkAzAgCCQEMQm9vbGVhbkVudHJ5AgUOZGFwcFJ1bm5pbmdLZXkFBmlzTGl2ZQkAzAgCCQELU3RyaW5nRW50cnkCBRFtYWludGVuYW5jZU1TR0tleQUHbWVzc2FnZQUDbmlsCQACAQIiWW91IGFyZSBub3QgYWxsb3dlZCB0byBjaGFuZ2UgdGhpcwZpbnZva2UBEHJlZ2lzdHJhdGlvbk1vZGUBBldMb25seQQGY2FsbGVyCQClCAEIBQZpbnZva2UGY2FsbGVyAwkBD2NvbnRhaW5zRWxlbWVudAIJAMwIAgUFY2hyaXMJAMwIAgkApQgBBQR0aGlzBQNuaWwFBmNhbGxlcgkAzAgCCQEMQm9vbGVhbkVudHJ5AgUSd2hpdGVsaXN0ZWRvbmx5S2V5BQZXTG9ubHkFA25pbAkAAgECIllvdSBhcmUgbm90IGFsbG93ZWQgdG8gY2hhbmdlIHRoaXMGaW52b2tlAQxyZWdpc3RlclVzZXIEBG5hbWULZGVzY3JpcHRpb24FdGh1bWIGc29jaWFsAwkBASEBBQtkYXBwUnVubmluZwkAAgEFDm1haW50ZW5hbmNlTVNHBAZjYWxsZXIJAKUIAQgFBmludm9rZQZjYWxsZXIEAmlkCQDYBAEIBQZpbnZva2UNdHJhbnNhY3Rpb25JZAQJdGltZXN0YW1wCAUJbGFzdEJsb2NrCXRpbWVzdGFtcAMJAQEhAQkBDXZhbGlkVXNlckRhdGEFBQZjYWxsZXIFBG5hbWUFC2Rlc2NyaXB0aW9uBQV0aHVtYgcJAAIBAhRTb21ldGhpbmcgd2VudCB3cm9uZwQEanNvbgkBCG1ha2VKU09OAwkA2gQBCQCbAwEFBG5hbWUJANoEAQkAmwMBBQV0aHVtYgkApAMBBQl0aW1lc3RhbXAJAMwIAgkBDEludGVnZXJFbnRyeQIJAQtrZXlVc2VyRGF0ZQEFBmNhbGxlcgUJdGltZXN0YW1wCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQtrZXlVc2VyQWRkcgEFBmNhbGxlcgkArAICCQCsAgIFAmlkAgFfCQCkAwEFCXRpbWVzdGFtcAkAzAgCCQELU3RyaW5nRW50cnkCCQELa2V5VXNlck5hbWUBBQZjYWxsZXIFBG5hbWUJAMwIAgkBC1N0cmluZ0VudHJ5AgkBC2tleVVzZXJEZXNjAQUGY2FsbGVyBQtkZXNjcmlwdGlvbgkAzAgCCQELU3RyaW5nRW50cnkCCQENa2V5VXNlclNvY2lhbAEFBmNhbGxlcgUGc29jaWFsCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQxrZXlVc2VyVGh1bWIBBQZjYWxsZXIFBXRodW1iCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ1rZXlVc2VyU3RhdHVzAQUGY2FsbGVyBQ51c2VyUmVnaXN0ZXJlZAkAzAgCCQELRGVsZXRlRW50cnkBCQCsAgICCEFMTE9XRURfBQZjYWxsZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIFDnVzZXJSZWdpc3RlcmVkAgFfBQZjYWxsZXIFBGpzb24FA25pbAZpbnZva2UBCnVwZGF0ZVVzZXIEBG5hbWULZGVzY3JpcHRpb24FdGh1bWIGc29jaWFsAwkBASEBBQtkYXBwUnVubmluZwkAAgEFDm1haW50ZW5hbmNlTVNHBAZjYWxsZXIJAKUIAQgFBmludm9rZQZjYWxsZXIEBnN0YXR1cwkBDmdldFN0cmluZ0J5S2V5AQkBDWtleVVzZXJTdGF0dXMBBQZjYWxsZXIDCQEBIQEJAQ12YWxpZFVzZXJEYXRhBQUGY2FsbGVyBQRuYW1lBQtkZXNjcmlwdGlvbgUFdGh1bWIGCQACAQIUU29tZXRoaW5nIHdlbnQgd3JvbmcEBGRhdGUJAQ9nZXRJbnRlZ2VyQnlLZXkBCQELa2V5VXNlckRhdGUBBQZjYWxsZXIEBGpzb24JAQhtYWtlSlNPTgMJANoEAQkAmwMBBQRuYW1lCQDaBAEJAJsDAQUFdGh1bWIJAKQDAQUEZGF0ZQkAzAgCCQELU3RyaW5nRW50cnkCCQELa2V5VXNlck5hbWUBBQZjYWxsZXIFBG5hbWUJAMwIAgkBC1N0cmluZ0VudHJ5AgkBC2tleVVzZXJEZXNjAQUGY2FsbGVyBQtkZXNjcmlwdGlvbgkAzAgCCQELU3RyaW5nRW50cnkCCQENa2V5VXNlclNvY2lhbAEFBmNhbGxlcgUGc29jaWFsCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQxrZXlVc2VyVGh1bWIBBQZjYWxsZXIFBXRodW1iCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICBQZzdGF0dXMCAV8FBmNhbGxlcgUEanNvbgUDbmlsBmludm9rZQEMc2V0RVJDMjBVc2VyAQVlcmMyMAMJAQEhAQULZGFwcFJ1bm5pbmcJAAIBBQ5tYWludGVuYW5jZU1TRwQGY2FsbGVyCQClCAEIBQZpbnZva2UGY2FsbGVyBAZzdGF0dXMJAQ5nZXRTdHJpbmdCeUtleQEJAQ1rZXlVc2VyU3RhdHVzAQUGY2FsbGVyAwMJAQIhPQIFBnN0YXR1cwUOdXNlclJlZ2lzdGVyZWQJAQIhPQIFBnN0YXR1cwUMdXNlclZlcmlmaWVkBwkAAgECIE5vdCBhbGxvd2VkIHRvIHNldCBFUkMyMCBhZGRyZXNzBAhmaXJzdFR3bwkArwICBQVlcmMyMAACAwMJAQIhPQIFCGZpcnN0VHdvAgIweAYJAQIhPQIJALECAQUFZXJjMjAAKgkAAgECHFRoaXMgaXMgbm90IGFuIGVyYzIwIGFkZHJlc3MJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDGtleVVzZXJFUkMyMAEFBmNhbGxlcgUFZXJjMjAFA25pbAZpbnZva2UBEGNoYW5nZVVzZXJTdGF0dXMDB2FkZHJlc3MGc3RhdHVzBG5vdGUEBmNhbGxlcgkApQgBCAUGaW52b2tlBmNhbGxlcgQNY3VycmVudFN0YXR1cwkBDmdldFN0cmluZ0J5S2V5AQkBDWtleVVzZXJTdGF0dXMBBQdhZGRyZXNzBAtzdGF0dXNUb1NldAkBEXZhbGlkYXRlTmV3U3RhdHVzAwUGc3RhdHVzBQdhZGRyZXNzBQ1jdXJyZW50U3RhdHVzBARuYW1lCQDaBAEJAJsDAQkBDmdldFN0cmluZ0J5S2V5AQkBC2tleVVzZXJOYW1lAQUHYWRkcmVzcwQFdGh1bWIJANoEAQkAmwMBCQEOZ2V0U3RyaW5nQnlLZXkBCQEMa2V5VXNlclRodW1iAQUHYWRkcmVzcwQEZGF0ZQkBD2dldEludGVnZXJCeUtleQEJAQtrZXlVc2VyRGF0ZQEFB2FkZHJlc3MEBGpzb24JAQhtYWtlSlNPTgMFBG5hbWUFBXRodW1iCQCkAwEFBGRhdGUDCQEPY29udGFpbnNFbGVtZW50AgkAzAgCBQVjaHJpcwkAzAgCBQRqb2VwCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQZjYWxsZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDWtleVVzZXJTdGF0dXMBBQdhZGRyZXNzBQtzdGF0dXNUb1NldAkAzAgCCQELRGVsZXRlRW50cnkBCQCsAgIJAKwCAgUNY3VycmVudFN0YXR1cwIBXwUHYWRkcmVzcwkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgULc3RhdHVzVG9TZXQCAV8FB2FkZHJlc3MFBGpzb24JAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICAgp1c2VyX25vdGVfBQdhZGRyZXNzBQRub3RlBQNuaWwJAAIBAiFOb3QgYWxsb3dlZCB0byBjaGFuZ2UgdXNlciBzdGF0dXMGaW52b2tlAQpkZWxldGVVc2VyAQdhZGRyZXNzBAZjYWxsZXIJAKUIAQgFBmludm9rZQZjYWxsZXIEDWN1cnJlbnRTdGF0dXMJAQ5nZXRTdHJpbmdCeUtleQEJAQ1rZXlVc2VyU3RhdHVzAQUHYWRkcmVzcwMJAQ9jb250YWluc0VsZW1lbnQCCQDMCAIFBWNocmlzCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQZjYWxsZXIJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBC2tleVVzZXJEYXRlAQUHYWRkcmVzcwkAzAgCCQELRGVsZXRlRW50cnkBCQELa2V5VXNlckFkZHIBBQdhZGRyZXNzCQDMCAIJAQtEZWxldGVFbnRyeQEJAQtrZXlVc2VyTmFtZQEFB2FkZHJlc3MJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBC2tleVVzZXJEZXNjAQUHYWRkcmVzcwkAzAgCCQELRGVsZXRlRW50cnkBCQENa2V5VXNlclNvY2lhbAEFB2FkZHJlc3MJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBDGtleVVzZXJUaHVtYgEFB2FkZHJlc3MJAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICAgp1c2VyX25vdGVfBQdhZGRyZXNzCQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgkArAICBQ1jdXJyZW50U3RhdHVzAgFfBQdhZGRyZXNzCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ1rZXlVc2VyU3RhdHVzAQUHYWRkcmVzcwULdXNlclJlbW92ZWQFA25pbAkAAgECC05vdCBhbGxvd2VkAWkBCHNldEFnZW50BAphcnRpc3RBZGRyCWFnZW50QWRkcgxwcmltYXJ5U2hhcmUOc2Vjb25kYXJ5U2hhcmUDCQEBIQEFC2RhcHBSdW5uaW5nCQACAQUObWFpbnRlbmFuY2VNU0cEBmNhbGxlcgkApQgBCAUBaQZjYWxsZXIDCQEPY29udGFpbnNFbGVtZW50AgkAzAgCBQVjaHJpcwkAzAgCCQClCAEFBHRoaXMFA25pbAUGY2FsbGVyAwMJAQIhPQIJALECAQUKYXJ0aXN0QWRkcgAjBgkBAiE9AgkAsQIBBQlhZ2VudEFkZHIAIwkAAgECDVdyb25nIGFkZHJlc3MJAMwIAgkBC1N0cmluZ0VudHJ5AgkBEmtleUFydGlzdEFnZW50QWRkcgEFCmFydGlzdEFkZHIFCWFnZW50QWRkcgkAzAgCCQELU3RyaW5nRW50cnkCCQESa2V5QWdlbnRBcnRpc3RBZGRyAgUJYWdlbnRBZGRyBQphcnRpc3RBZGRyBQphcnRpc3RBZGRyCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEPa2V5UHJpbWFyeVNoYXJlAQUKYXJ0aXN0QWRkcgUMcHJpbWFyeVNoYXJlCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQERa2V5U2Vjb25kYXJ5U2hhcmUBBQphcnRpc3RBZGRyBQ5zZWNvbmRhcnlTaGFyZQUDbmlsCQACAQITWW91IGFyZSBub3QgYWxsb3dlZAFpAQp1bnNldEFnZW50AgphcnRpc3RBZGRyCWFnZW50QWRkcgMJAQEhAQULZGFwcFJ1bm5pbmcJAAIBBQ5tYWludGVuYW5jZU1TRwQGY2FsbGVyCQClCAEIBQFpBmNhbGxlcgMJAQ9jb250YWluc0VsZW1lbnQCCQDMCAIFBWNocmlzCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQZjYWxsZXIDAwkBAiE9AgkAsQIBBQphcnRpc3RBZGRyACMGCQECIT0CCQCxAgEFCWFnZW50QWRkcgAjCQACAQINV3JvbmcgYWRkcmVzcwkAzAgCCQELRGVsZXRlRW50cnkBCQESa2V5QXJ0aXN0QWdlbnRBZGRyAQUKYXJ0aXN0QWRkcgkAzAgCCQELRGVsZXRlRW50cnkBCQESa2V5QWdlbnRBcnRpc3RBZGRyAgUJYWdlbnRBZGRyBQphcnRpc3RBZGRyCQDMCAIJAQtEZWxldGVFbnRyeQEJAQ9rZXlQcmltYXJ5U2hhcmUBBQphcnRpc3RBZGRyCQDMCAIJAQtEZWxldGVFbnRyeQEJARFrZXlTZWNvbmRhcnlTaGFyZQEFCmFydGlzdEFkZHIFA25pbAkAAgECE1lvdSBhcmUgbm90IGFsbG93ZWQBaQELZGVsZXRlRW50cnkBBWVudHJ5BAZjYWxsZXIJAKUIAQgFAWkGY2FsbGVyAwkAAAIFBmNhbGxlcgUFY2hyaXMJAMwIAgkBC0RlbGV0ZUVudHJ5AQUFZW50cnkFA25pbAkAAgECAm5vAIppNrA=", "height": 2218272, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 6 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let a = "1.3"
5+
6+func b (c) = valueOrElse(getString(this, c), "")
7+
8+
9+func d (c) = valueOrElse(getBoolean(this, c), false)
10+
11+
12+func e (c) = valueOrElse(getInteger(this, c), 0)
13+
14+
15+let f = b("conf_admin_1")
16+
17+let g = b("conf_admin_2")
18+
19+let h = "conf_dapp_is_running"
20+
21+let i = "conf_maintenance_msg"
22+
23+let j = "conf_whitelisted_only"
24+
25+let k = valueOrElse(getBoolean(this, h), true)
26+
27+let l = valueOrElse(getString(this, i), "")
28+
29+let m = valueOrElse(getBoolean(this, j), true)
30+
31+let n = "ALLOWED"
32+
33+let o = "REGISTERED"
34+
35+let p = "VERIFIED"
36+
37+let q = "SUSPENDED"
38+
39+let r = "REMOVED"
40+
41+let s = "CHANGE_REQUIRED"
42+
43+let t = "UNREGISTERED"
44+
45+let u = "RESET"
46+
47+func v (w) = ("user_" + w)
48+
49+
50+func x (w) = ("user_name_" + w)
51+
52+
53+func y (w) = ("user_desc_" + w)
54+
55+
56+func z (w) = ("user_social_" + w)
57+
58+
59+func A (w) = ("user_thumb_" + w)
60+
61+
62+func B (w) = ("user_status_" + w)
63+
64+
65+func C (w) = ("user_date_" + w)
66+
67+
68+func D (w) = ("user_ERC20_" + w)
69+
70+
71+func E (F) = ("artist_agent_" + F)
72+
73+
74+func G (H,F) = ((("agent_" + H) + "_") + F)
75+
76+
77+func I (F) = ("artist_agent_primary_" + F)
78+
79+
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)
86+ else false)
87+ then (16 > size(split(L, "/")[1]))
88+ else false
89+ else false
90+
91+
92+func M (w,N,O,P,Q) = {
93+ let R = if ((size(P) != 0))
94+ then K(P)
95+ else true
96+ if (!(R))
97+ then throw("CID don't match requirement!")
98+ else if (if ((N == ""))
99+ then true
100+ else (O == ""))
101+ then throw("Name and description cannot be empty")
102+ else if ((size(O) > 600))
103+ then throw("600 Char. max description")
104+ else if ((size(N) > 45))
105+ then throw("45 Char. max name")
106+ else {
107+ let S = b(B(w))
108+ if (if ((S == q))
109+ then true
110+ else (S == r))
111+ then throw("Account suspended/ removed.")
112+ else if (if (!(Q))
113+ then (S == o)
114+ else false)
115+ then throw("Already registered")
116+ else if (if (if (!(Q))
117+ then (S == "")
118+ else false)
119+ then m
120+ else false)
121+ then throw("Can't register, get approved first.")
122+ else if (if (if (Q)
123+ then (S == "")
124+ else false)
125+ then true
126+ else if (Q)
127+ then (S == n)
128+ else false)
129+ then throw("Register first")
130+ else true
131+ }
132+ }
133+
134+
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)
141+ else false)
142+ then ""
143+ else throw("Unknown status")
144+ let Y = e(C(U))
145+ if (if ((Y == 0))
146+ then (X != n)
147+ else false)
148+ then throw("You cant set this status, user is not registered.")
149+ else if (if ((V == n))
150+ then (X == n)
151+ else false)
152+ then throw("User already allowed")
153+ else if (if ((V == o))
154+ then (X == n)
155+ else false)
156+ then throw("User already allowed & registered")
157+ else if (if ((V == p))
158+ then (X == n)
159+ else false)
160+ then throw("User already allowed & verified")
161+ else X
162+ }
163+
164+
165+func Z (N,P,aa) = (((((("{\"user_name\": \"" + N) + "\", \"user_thumb\":\"") + P) + "\",\"user_date\":\"") + aa) + "\"}")
166+
167+
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)]
173+ else throw("You are not allowed to change this")
174+ }
175+
176+
177+
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)]
183+ else throw("You are not allowed to change this")
184+ }
185+
186+
187+
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)]
193+ else throw("You are not allowed to change this")
194+ }
195+
196+
197+
198+@Callable(ab)
199+func registerUser (N,O,P,ag) = if (!(k))
200+ then throw(l)
201+ else {
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)))
206+ then throw("Something went wrong")
207+ else {
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)]
210+ }
211+ }
212+
213+
214+
215+@Callable(ab)
216+func updateUser (N,O,P,ag) = if (!(k))
217+ then throw(l)
218+ else {
219+ let w = toString(ab.caller)
220+ let S = b(B(w))
221+ if (!(M(w, N, O, P, true)))
222+ then throw("Something went wrong")
223+ else {
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)]
227+ }
228+ }
229+
230+
231+
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 {
243+ let al = take(ak, 2)
244+ if (if ((al != "0x"))
245+ then true
246+ else (size(ak) != 42))
247+ then throw("This is not an erc20 address")
248+ else [StringEntry(D(w), ak)]
249+ }
250+ }
251+
252+
253+
254+@Callable(ab)
255+func changeUserStatus (U,S,am) = {
256+ let w = toString(ab.caller)
257+ let V = b(B(U))
258+ let X = T(S, U, V)
259+ let N = toBase64String(toBytes(b(x(U))))
260+ let P = toBase64String(toBytes(b(A(U))))
261+ let aa = e(C(U))
262+ let aj = Z(N, P, toString(aa))
263+ if (containsElement([f, g, toString(this)], w))
264+ then [StringEntry(B(U), X), DeleteEntry(((V + "_") + U)), StringEntry(((X + "_") + U), aj), StringEntry(("user_note_" + U), am)]
265+ else throw("Not allowed to change user status")
266+ }
267+
268+
269+
270+@Callable(ab)
271+func deleteUser (U) = {
272+ let w = toString(ab.caller)
273+ let V = b(B(U))
274+ if (containsElement([f, toString(this)], w))
275+ 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)]
276+ else throw("Not allowed")
277+ }
278+
279+
280+
281+@Callable(an)
282+func setAgent (F,H,ao,ap) = if (!(k))
283+ then throw(l)
284+ else {
285+ let w = toString(an.caller)
286+ if (containsElement([f, toString(this)], w))
287+ then if (if ((size(F) != 35))
288+ then true
289+ else (size(H) != 35))
290+ then throw("Wrong address")
291+ else [StringEntry(E(F), H), StringEntry(G(H, F), F), IntegerEntry(I(F), ao), IntegerEntry(J(F), ap)]
292+ else throw("You are not allowed")
293+ }
294+
295+
296+
297+@Callable(an)
298+func unsetAgent (F,H) = if (!(k))
299+ then throw(l)
300+ else {
301+ let w = toString(an.caller)
302+ if (containsElement([f, toString(this)], w))
303+ then if (if ((size(F) != 35))
304+ then true
305+ else (size(H) != 35))
306+ then throw("Wrong address")
307+ else [DeleteEntry(E(F)), DeleteEntry(G(H, F)), DeleteEntry(I(F)), DeleteEntry(J(F))]
308+ else throw("You are not allowed")
309+ }
310+
311+
312+
313+@Callable(an)
314+func deleteEntry (aq) = {
315+ let w = toString(an.caller)
316+ if ((w == f))
317+ then [DeleteEntry(aq)]
318+ else throw("no")
319+ }
320+
321+

github/deemru/w8io/169f3d6 
35.17 ms