tx · EV3oUq2K1hfaiAdjiYFUh83zu1q2Tr9UCTmEFcHFSayu

3N8xXaYjE27Aa79d5hHrhHu9HaFoTBmhDEj:  -0.00900000 Waves

2022.11.29 05:27 [2337789] smart account 3N8xXaYjE27Aa79d5hHrhHu9HaFoTBmhDEj > SELF 0.00000000 Waves

{ "type": 13, "id": "EV3oUq2K1hfaiAdjiYFUh83zu1q2Tr9UCTmEFcHFSayu", "fee": 900000, "feeAssetId": null, "timestamp": 1669688839606, "version": 2, "chainId": 84, "sender": "3N8xXaYjE27Aa79d5hHrhHu9HaFoTBmhDEj", "senderPublicKey": "A2m227AHcq7gWfSU59Q3UJaqkEa7SccFYmJuWHbFrrKE", "proofs": [ "t5mdnx5Be2Mf3N65KmhzZrczBXg97pMjMEh6ifd6hwWHRxzUwBLXNDGr9W2Bh1Jkgmq4DWeMf12bYEwbat2GHQ8" ], "script": "base64:BgJJCAISBAoCCAgSBAoCBAgSAwoBBBIHCgUICAgIARIHCgUICAgIARIDCgEIEgUKAwgICBIDCgEIEgYKBAgIAQESBAoCCAgSAwoBCCEBDmdldFN0cmluZ0J5S2V5AQNrZXkJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUDa2V5AgABD2dldEludGVnZXJCeUtleQEDa2V5CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFA2tleQAAAAVjaHJpcwkBDmdldFN0cmluZ0J5S2V5AQIMY29uZl9hZG1pbl8xAA5kYXBwUnVubmluZ0tleQIUY29uZl9kYXBwX2lzX3J1bm5pbmcAEW1haW50ZW5hbmNlTVNHS2V5AhRjb25mX21haW50ZW5hbmNlX21zZwASd2hpdGVsaXN0ZWRvbmx5S2V5AhVjb25mX3doaXRlbGlzdGVkX29ubHkAC2RhcHBSdW5uaW5nCQELdmFsdWVPckVsc2UCCQCbCAIFBHRoaXMFDmRhcHBSdW5uaW5nS2V5BgAObWFpbnRlbmFuY2VNU0cJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwURbWFpbnRlbmFuY2VNU0dLZXkCAAAPd2hpdGVsaXN0ZWRvbmx5CQELdmFsdWVPckVsc2UCCQCbCAIFBHRoaXMFEndoaXRlbGlzdGVkb25seUtleQYAC3VzZXJBbGxvd2VkAgdBTExPV0VEAA51c2VyUmVnaXN0ZXJlZAIKUkVHSVNURVJFRAAMdXNlclZlcmlmaWVkAghWRVJJRklFRAANdXNlclN1c3BlbmRlZAIJU1VTUEVOREVEAAt1c2VyUmVtb3ZlZAIHUkVNT1ZFRAASdXNlckNoYW5nZVJlcXVpcmVkAg9DSEFOR0VfUkVRVUlSRUQACXVzZXJSZXNldAIFUkVTRVQBC2tleVVzZXJBZGRyAQZjYWxsZXIJAKwCAgIFdXNlcl8FBmNhbGxlcgELa2V5VXNlck5hbWUBBmNhbGxlcgkArAICAgp1c2VyX25hbWVfBQZjYWxsZXIBC2tleVVzZXJEZXNjAQZjYWxsZXIJAKwCAgIKdXNlcl9kZXNjXwUGY2FsbGVyAQ1rZXlVc2VyU29jaWFsAQZjYWxsZXIJAKwCAgIMdXNlcl9zb2NpYWxfBQZjYWxsZXIBDGtleVVzZXJUaHVtYgEGY2FsbGVyCQCsAgICC3VzZXJfdGh1bWJfBQZjYWxsZXIBDWtleVVzZXJTdGF0dXMBBmNhbGxlcgkArAICAgx1c2VyX3N0YXR1c18FBmNhbGxlcgEQa2V5VXNlclJveWFsdGllcwEGY2FsbGVyCQCsAgICD3VzZXJfcm95YWx0aWVzXwUGY2FsbGVyAQtrZXlVc2VyRGF0ZQEGY2FsbGVyCQCsAgICCnVzZXJfZGF0ZV8FBmNhbGxlcgEMa2V5VXNlckVSQzIwAQZjYWxsZXIJAKwCAgILdXNlcl9FUkMyMF8FBmNhbGxlcgESa2V5QXJ0aXN0QWdlbnRBZGRyAQphcnRpc3RBZGRyCQCsAgICDWFydGlzdF9hZ2VudF8FCmFydGlzdEFkZHIBEmtleUFnZW50QXJ0aXN0QWRkcgIJYWdlbnRBZGRyCmFydGlzdEFkZHIJAKwCAgkArAICCQCsAgICBmFnZW50XwUJYWdlbnRBZGRyAgFfBQphcnRpc3RBZGRyAQ9rZXlQcmltYXJ5U2hhcmUBCmFydGlzdEFkZHIJAKwCAgIVYXJ0aXN0X2FnZW50X3ByaW1hcnlfBQphcnRpc3RBZGRyARFrZXlTZWNvbmRhcnlTaGFyZQEKYXJ0aXN0QWRkcgkArAICAhdhcnRpc3RfYWdlbnRfc2Vjb25kYXJ5XwUKYXJ0aXN0QWRkcgELdmFsaWRhdGVDSUQBA2NpZAMJAQhjb250YWlucwIFA2NpZAIBLwMDCQBmAgBMCQCxAgEFA2NpZAkAAAIJALECAQkAkQMCCQC1CQIFA2NpZAIBLwAAADsHCQBmAgAQCQCxAgEJAJEDAgkAtQkCBQNjaWQCAS8AAQcHAQ12YWxpZFVzZXJEYXRhBQZjYWxsZXIEbmFtZQtkZXNjcmlwdGlvbgV0aHVtYgppc0FuVXBkYXRlBAh2YWxpZENJRAMJAQIhPQIJALECAQUFdGh1bWIAAAkBC3ZhbGlkYXRlQ0lEAQUFdGh1bWIGAwkBASEBBQh2YWxpZENJRAkAAgECHENJRCBkb24ndCBtYXRjaCByZXF1aXJlbWVudCEDAwkAAAIFBG5hbWUCAAYJAAACBQtkZXNjcmlwdGlvbgIACQACAQIkTmFtZSBhbmQgZGVzY3JpcHRpb24gY2Fubm90IGJlIGVtcHR5AwkAZgIJALECAQULZGVzY3JpcHRpb24A2AQJAAIBAhk2MDAgQ2hhci4gbWF4IGRlc2NyaXB0aW9uAwkAZgIJALECAQUEbmFtZQAtCQACAQIRNDUgQ2hhci4gbWF4IG5hbWUEBnN0YXR1cwkBDmdldFN0cmluZ0J5S2V5AQkBDWtleVVzZXJTdGF0dXMBBQZjYWxsZXIDAwkAAAIFBnN0YXR1cwUNdXNlclN1c3BlbmRlZAYJAAACBQZzdGF0dXMFC3VzZXJSZW1vdmVkCQACAQIbQWNjb3VudCBzdXNwZW5kZWQvIHJlbW92ZWQuAwMJAQEhAQUKaXNBblVwZGF0ZQkAAAIFBnN0YXR1cwUOdXNlclJlZ2lzdGVyZWQHCQACAQISQWxyZWFkeSByZWdpc3RlcmVkAwMDCQEBIQEFCmlzQW5VcGRhdGUJAAACBQZzdGF0dXMCAAcFD3doaXRlbGlzdGVkb25seQcJAAIBAiNDYW4ndCByZWdpc3RlciwgZ2V0IGFwcHJvdmVkIGZpcnN0LgMDAwUKaXNBblVwZGF0ZQkAAAIFBnN0YXR1cwIABwYDBQppc0FuVXBkYXRlCQAAAgUGc3RhdHVzBQt1c2VyQWxsb3dlZAcJAAIBAg5SZWdpc3RlciBmaXJzdAYBEXZhbGlkYXRlTmV3U3RhdHVzAwZzdGF0dXMHYWRkcmVzcw1jdXJyZW50U3RhdHVzBAlhbGxTdGF0dXMJAMwIAgUMdXNlclZlcmlmaWVkCQDMCAIFDnVzZXJSZWdpc3RlcmVkCQDMCAIFDXVzZXJTdXNwZW5kZWQJAMwIAgULdXNlclJlbW92ZWQJAMwIAgULdXNlckFsbG93ZWQJAMwIAgUSdXNlckNoYW5nZVJlcXVpcmVkBQNuaWwEC3N0YXR1c1RvU2V0AwkBD2NvbnRhaW5zRWxlbWVudAIFCWFsbFN0YXR1cwUGc3RhdHVzBQZzdGF0dXMDAwkAAAIFBnN0YXR1cwUJdXNlclJlc2V0CQAAAgUNY3VycmVudFN0YXR1cwULdXNlckFsbG93ZWQHAgAJAAIBAg5Vbmtub3duIHN0YXR1cwQQdXNlcklzUmVnaXN0ZXJlZAkBD2dldEludGVnZXJCeUtleQEJAQtrZXlVc2VyRGF0ZQEFB2FkZHJlc3MDAwkAAAIFEHVzZXJJc1JlZ2lzdGVyZWQAAAkBAiE9AgULc3RhdHVzVG9TZXQFC3VzZXJBbGxvd2VkBwkAAgECMVlvdSBjYW50IHNldCB0aGlzIHN0YXR1cywgdXNlciBpcyBub3QgcmVnaXN0ZXJlZC4DAwkAAAIFDWN1cnJlbnRTdGF0dXMFC3VzZXJBbGxvd2VkCQAAAgULc3RhdHVzVG9TZXQFC3VzZXJBbGxvd2VkBwkAAgECFFVzZXIgYWxyZWFkeSBhbGxvd2VkAwMJAAACBQ1jdXJyZW50U3RhdHVzBQ51c2VyUmVnaXN0ZXJlZAkAAAIFC3N0YXR1c1RvU2V0BQt1c2VyQWxsb3dlZAcJAAIBAiFVc2VyIGFscmVhZHkgYWxsb3dlZCAmIHJlZ2lzdGVyZWQDAwkAAAIFDWN1cnJlbnRTdGF0dXMFDHVzZXJWZXJpZmllZAkAAAIFC3N0YXR1c1RvU2V0BQt1c2VyQWxsb3dlZAcJAAIBAh9Vc2VyIGFscmVhZHkgYWxsb3dlZCAmIHZlcmlmaWVkBQtzdGF0dXNUb1NldAEIbWFrZUpTT04DBG5hbWUFdGh1bWIEZGF0ZQkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIPeyJ1c2VyX25hbWUiOiAiBQRuYW1lAhEiLCAidXNlcl90aHVtYiI6IgUFdGh1bWICDyIsInVzZXJfZGF0ZSI6IgUEZGF0ZQICIn0LBmludm9rZQEHc2V0Q29uZgIDa2V5A3ZhbAQGY2FsbGVyCQClCAEIBQZpbnZva2UGY2FsbGVyAwkBD2NvbnRhaW5zRWxlbWVudAIJAMwIAgUFY2hyaXMJAMwIAgkApQgBBQR0aGlzBQNuaWwFBmNhbGxlcgkAzAgCCQELU3RyaW5nRW50cnkCBQNrZXkFA3ZhbAUDbmlsCQACAQIiWW91IGFyZSBub3QgYWxsb3dlZCB0byBjaGFuZ2UgdGhpcwZpbnZva2UBCmFwcFJ1bm5pbmcCBmlzTGl2ZQdtZXNzYWdlBAZjYWxsZXIJAKUIAQgFBmludm9rZQZjYWxsZXIDCQEPY29udGFpbnNFbGVtZW50AgkAzAgCBQVjaHJpcwkAzAgCCQClCAEFBHRoaXMFA25pbAUGY2FsbGVyCQDMCAIJAQxCb29sZWFuRW50cnkCBQ5kYXBwUnVubmluZ0tleQUGaXNMaXZlCQDMCAIJAQtTdHJpbmdFbnRyeQIFEW1haW50ZW5hbmNlTVNHS2V5BQdtZXNzYWdlBQNuaWwJAAIBAiJZb3UgYXJlIG5vdCBhbGxvd2VkIHRvIGNoYW5nZSB0aGlzBmludm9rZQEQcmVnaXN0cmF0aW9uTW9kZQEGV0xvbmx5BAZjYWxsZXIJAKUIAQgFBmludm9rZQZjYWxsZXIDCQEPY29udGFpbnNFbGVtZW50AgkAzAgCBQVjaHJpcwkAzAgCCQClCAEFBHRoaXMFA25pbAUGY2FsbGVyCQDMCAIJAQxCb29sZWFuRW50cnkCBRJ3aGl0ZWxpc3RlZG9ubHlLZXkFBldMb25seQUDbmlsCQACAQIiWW91IGFyZSBub3QgYWxsb3dlZCB0byBjaGFuZ2UgdGhpcwZpbnZva2UBDHJlZ2lzdGVyVXNlcgUEbmFtZQtkZXNjcmlwdGlvbgV0aHVtYgZzb2NpYWwJcm95YWx0aWVzAwkBASEBBQtkYXBwUnVubmluZwkAAgEFDm1haW50ZW5hbmNlTVNHBAZjYWxsZXIJAKUIAQgFBmludm9rZQZjYWxsZXIEAmlkCQDYBAEIBQZpbnZva2UNdHJhbnNhY3Rpb25JZAQJdGltZXN0YW1wCAUJbGFzdEJsb2NrCXRpbWVzdGFtcAMJAQEhAQkBDXZhbGlkVXNlckRhdGEFBQZjYWxsZXIFBG5hbWUFC2Rlc2NyaXB0aW9uBQV0aHVtYgcJAAIBAhRTb21ldGhpbmcgd2VudCB3cm9uZwQEanNvbgkBCG1ha2VKU09OAwkA2gQBCQCbAwEFBG5hbWUJANoEAQkAmwMBBQV0aHVtYgkApAMBBQl0aW1lc3RhbXADAwkAZgIAAAUJcm95YWx0aWVzBgkAZgIFCXJveWFsdGllcwAKCQACAQIiUm95YWx0aWVzIGNhbm5vdCBiZSBoaWdoZXIgdGhhbiAxMAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBC2tleVVzZXJEYXRlAQUGY2FsbGVyBQl0aW1lc3RhbXAJAMwIAgkBC1N0cmluZ0VudHJ5AgkBC2tleVVzZXJBZGRyAQUGY2FsbGVyCQCsAgIJAKwCAgUCaWQCAV8JAKQDAQUJdGltZXN0YW1wCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQtrZXlVc2VyTmFtZQEFBmNhbGxlcgUEbmFtZQkAzAgCCQELU3RyaW5nRW50cnkCCQELa2V5VXNlckRlc2MBBQZjYWxsZXIFC2Rlc2NyaXB0aW9uCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ1rZXlVc2VyU29jaWFsAQUGY2FsbGVyBQZzb2NpYWwJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDGtleVVzZXJUaHVtYgEFBmNhbGxlcgUFdGh1bWIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDWtleVVzZXJTdGF0dXMBBQZjYWxsZXIFDnVzZXJSZWdpc3RlcmVkCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEQa2V5VXNlclJveWFsdGllcwEFBmNhbGxlcgUJcm95YWx0aWVzCQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgIIQUxMT1dFRF8FBmNhbGxlcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgUOdXNlclJlZ2lzdGVyZWQCAV8FBmNhbGxlcgUEanNvbgUDbmlsBmludm9rZQEKdXBkYXRlVXNlcgUEbmFtZQtkZXNjcmlwdGlvbgV0aHVtYgZzb2NpYWwJcm95YWx0aWVzAwkBASEBBQtkYXBwUnVubmluZwkAAgEFDm1haW50ZW5hbmNlTVNHBAZjYWxsZXIJAKUIAQgFBmludm9rZQZjYWxsZXIEBnN0YXR1cwkBDmdldFN0cmluZ0J5S2V5AQkBDWtleVVzZXJTdGF0dXMBBQZjYWxsZXIDCQEBIQEJAQ12YWxpZFVzZXJEYXRhBQUGY2FsbGVyBQRuYW1lBQtkZXNjcmlwdGlvbgUFdGh1bWIGCQACAQIUU29tZXRoaW5nIHdlbnQgd3JvbmcEBGRhdGUJAQ9nZXRJbnRlZ2VyQnlLZXkBCQELa2V5VXNlckRhdGUBBQZjYWxsZXIEBGpzb24JAQhtYWtlSlNPTgMJANoEAQkAmwMBBQRuYW1lCQDaBAEJAJsDAQUFdGh1bWIJAKQDAQUEZGF0ZQMDCQBmAgAABQlyb3lhbHRpZXMGCQBmAgUJcm95YWx0aWVzAAoJAAIBAiJSb3lhbHRpZXMgY2Fubm90IGJlIGhpZ2hlciB0aGFuIDEwCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQtrZXlVc2VyTmFtZQEFBmNhbGxlcgUEbmFtZQkAzAgCCQELU3RyaW5nRW50cnkCCQELa2V5VXNlckRlc2MBBQZjYWxsZXIFC2Rlc2NyaXB0aW9uCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ1rZXlVc2VyU29jaWFsAQUGY2FsbGVyBQZzb2NpYWwJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDGtleVVzZXJUaHVtYgEFBmNhbGxlcgUFdGh1bWIJAMwIAgkBDEludGVnZXJFbnRyeQIJARBrZXlVc2VyUm95YWx0aWVzAQUGY2FsbGVyBQlyb3lhbHRpZXMJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIFBnN0YXR1cwIBXwUGY2FsbGVyBQRqc29uBQNuaWwGaW52b2tlAQxzZXRFUkMyMFVzZXIBBWVyYzIwAwkBASEBBQtkYXBwUnVubmluZwkAAgEFDm1haW50ZW5hbmNlTVNHBAZjYWxsZXIJAKUIAQgFBmludm9rZQZjYWxsZXIEBnN0YXR1cwkBDmdldFN0cmluZ0J5S2V5AQkBDWtleVVzZXJTdGF0dXMBBQZjYWxsZXIDAwkBAiE9AgUGc3RhdHVzBQ51c2VyUmVnaXN0ZXJlZAkBAiE9AgUGc3RhdHVzBQx1c2VyVmVyaWZpZWQHCQACAQIgTm90IGFsbG93ZWQgdG8gc2V0IEVSQzIwIGFkZHJlc3MECGZpcnN0VHdvCQCvAgIFBWVyYzIwAAIDAwkBAiE9AgUIZmlyc3RUd28CAjB4BgkBAiE9AgkAsQIBBQVlcmMyMAAqCQACAQIcVGhpcyBpcyBub3QgYW4gZXJjMjAgYWRkcmVzcwkAzAgCCQELU3RyaW5nRW50cnkCCQEMa2V5VXNlckVSQzIwAQUGY2FsbGVyBQVlcmMyMAUDbmlsBmludm9rZQEQY2hhbmdlVXNlclN0YXR1cwMHYWRkcmVzcwZzdGF0dXMEbm90ZQQGY2FsbGVyCQClCAEIBQZpbnZva2UGY2FsbGVyBA1jdXJyZW50U3RhdHVzCQEOZ2V0U3RyaW5nQnlLZXkBCQENa2V5VXNlclN0YXR1cwEFB2FkZHJlc3MEC3N0YXR1c1RvU2V0CQERdmFsaWRhdGVOZXdTdGF0dXMDBQZzdGF0dXMFB2FkZHJlc3MFDWN1cnJlbnRTdGF0dXMEBG5hbWUJANoEAQkAmwMBCQEOZ2V0U3RyaW5nQnlLZXkBCQELa2V5VXNlck5hbWUBBQdhZGRyZXNzBAV0aHVtYgkA2gQBCQCbAwEJAQ5nZXRTdHJpbmdCeUtleQEJAQxrZXlVc2VyVGh1bWIBBQdhZGRyZXNzBARkYXRlCQEPZ2V0SW50ZWdlckJ5S2V5AQkBC2tleVVzZXJEYXRlAQUHYWRkcmVzcwQEanNvbgkBCG1ha2VKU09OAwUEbmFtZQUFdGh1bWIJAKQDAQUEZGF0ZQMJAQ9jb250YWluc0VsZW1lbnQCCQDMCAIFBWNocmlzCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQZjYWxsZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDWtleVVzZXJTdGF0dXMBBQdhZGRyZXNzBQtzdGF0dXNUb1NldAkAzAgCCQELRGVsZXRlRW50cnkBCQCsAgIJAKwCAgUNY3VycmVudFN0YXR1cwIBXwUHYWRkcmVzcwkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgULc3RhdHVzVG9TZXQCAV8FB2FkZHJlc3MFBGpzb24JAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICAgp1c2VyX25vdGVfBQdhZGRyZXNzBQRub3RlBQNuaWwJAAIBAiFOb3QgYWxsb3dlZCB0byBjaGFuZ2UgdXNlciBzdGF0dXMGaW52b2tlAQpkZWxldGVVc2VyAQdhZGRyZXNzBAZjYWxsZXIJAKUIAQgFBmludm9rZQZjYWxsZXIEDWN1cnJlbnRTdGF0dXMJAQ5nZXRTdHJpbmdCeUtleQEJAQ1rZXlVc2VyU3RhdHVzAQUHYWRkcmVzcwMJAQ9jb250YWluc0VsZW1lbnQCCQDMCAIFBWNocmlzCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQZjYWxsZXIJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBC2tleVVzZXJEYXRlAQUHYWRkcmVzcwkAzAgCCQELRGVsZXRlRW50cnkBCQELa2V5VXNlckFkZHIBBQdhZGRyZXNzCQDMCAIJAQtEZWxldGVFbnRyeQEJAQtrZXlVc2VyTmFtZQEFB2FkZHJlc3MJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBC2tleVVzZXJEZXNjAQUHYWRkcmVzcwkAzAgCCQELRGVsZXRlRW50cnkBCQENa2V5VXNlclNvY2lhbAEFB2FkZHJlc3MJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBDGtleVVzZXJUaHVtYgEFB2FkZHJlc3MJAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICAgp1c2VyX25vdGVfBQdhZGRyZXNzCQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgkArAICBQ1jdXJyZW50U3RhdHVzAgFfBQdhZGRyZXNzCQDMCAIJAQtEZWxldGVFbnRyeQEJARBrZXlVc2VyUm95YWx0aWVzAQUHYWRkcmVzcwkAzAgCCQELU3RyaW5nRW50cnkCCQENa2V5VXNlclN0YXR1cwEFB2FkZHJlc3MFC3VzZXJSZW1vdmVkBQNuaWwJAAIBAgtOb3QgYWxsb3dlZAFpAQhzZXRBZ2VudAQKYXJ0aXN0QWRkcglhZ2VudEFkZHIMcHJpbWFyeVNoYXJlDnNlY29uZGFyeVNoYXJlAwkBASEBBQtkYXBwUnVubmluZwkAAgEFDm1haW50ZW5hbmNlTVNHBAZjYWxsZXIJAKUIAQgFAWkGY2FsbGVyAwkBD2NvbnRhaW5zRWxlbWVudAIJAMwIAgUFY2hyaXMJAMwIAgkApQgBBQR0aGlzBQNuaWwFBmNhbGxlcgMDCQECIT0CCQCxAgEFCmFydGlzdEFkZHIAIwYJAQIhPQIJALECAQUJYWdlbnRBZGRyACMJAAIBAg1Xcm9uZyBhZGRyZXNzCQDMCAIJAQtTdHJpbmdFbnRyeQIJARJrZXlBcnRpc3RBZ2VudEFkZHIBBQphcnRpc3RBZGRyBQlhZ2VudEFkZHIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBEmtleUFnZW50QXJ0aXN0QWRkcgIFCWFnZW50QWRkcgUKYXJ0aXN0QWRkcgUKYXJ0aXN0QWRkcgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBD2tleVByaW1hcnlTaGFyZQEFCmFydGlzdEFkZHIFDHByaW1hcnlTaGFyZQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBEWtleVNlY29uZGFyeVNoYXJlAQUKYXJ0aXN0QWRkcgUOc2Vjb25kYXJ5U2hhcmUFA25pbAkAAgECE1lvdSBhcmUgbm90IGFsbG93ZWQBaQEKdW5zZXRBZ2VudAIKYXJ0aXN0QWRkcglhZ2VudEFkZHIDCQEBIQEFC2RhcHBSdW5uaW5nCQACAQUObWFpbnRlbmFuY2VNU0cEBmNhbGxlcgkApQgBCAUBaQZjYWxsZXIDCQEPY29udGFpbnNFbGVtZW50AgkAzAgCBQVjaHJpcwkAzAgCCQClCAEFBHRoaXMFA25pbAUGY2FsbGVyAwMJAQIhPQIJALECAQUKYXJ0aXN0QWRkcgAjBgkBAiE9AgkAsQIBBQlhZ2VudEFkZHIAIwkAAgECDVdyb25nIGFkZHJlc3MJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBEmtleUFydGlzdEFnZW50QWRkcgEFCmFydGlzdEFkZHIJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBEmtleUFnZW50QXJ0aXN0QWRkcgIFCWFnZW50QWRkcgUKYXJ0aXN0QWRkcgkAzAgCCQELRGVsZXRlRW50cnkBCQEPa2V5UHJpbWFyeVNoYXJlAQUKYXJ0aXN0QWRkcgkAzAgCCQELRGVsZXRlRW50cnkBCQERa2V5U2Vjb25kYXJ5U2hhcmUBBQphcnRpc3RBZGRyBQNuaWwJAAIBAhNZb3UgYXJlIG5vdCBhbGxvd2VkAWkBC2RlbGV0ZUVudHJ5AQVlbnRyeQQGY2FsbGVyCQClCAEIBQFpBmNhbGxlcgMJAAACBQZjYWxsZXIFBWNocmlzCQDMCAIJAQtEZWxldGVFbnRyeQEFBWVudHJ5BQNuaWwJAAIBAgJubwAL3fPv", "height": 2337789, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: GV7getPrLuueS3efSPTKdhq3khZLpj9mB4SsP1aosNEj Next: 9CXTfCwftjtH3JVpAcgYxmiWuFD7rtXSnK1ePdyRhLUp Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let a = "1.3"
5-
6-func b (c) = valueOrElse(getString(this, c), "")
4+func a (b) = valueOrElse(getString(this, b), "")
75
86
9-func d (c) = valueOrElse(getBoolean(this, c), false)
7+func c (b) = valueOrElse(getInteger(this, b), 0)
108
119
12-func e (c) = valueOrElse(getInteger(this, c), 0)
10+let d = a("conf_admin_1")
11+
12+let e = "conf_dapp_is_running"
13+
14+let f = "conf_maintenance_msg"
15+
16+let g = "conf_whitelisted_only"
17+
18+let h = valueOrElse(getBoolean(this, e), true)
19+
20+let i = valueOrElse(getString(this, f), "")
21+
22+let j = valueOrElse(getBoolean(this, g), true)
23+
24+let k = "ALLOWED"
25+
26+let l = "REGISTERED"
27+
28+let m = "VERIFIED"
29+
30+let n = "SUSPENDED"
31+
32+let o = "REMOVED"
33+
34+let p = "CHANGE_REQUIRED"
35+
36+let q = "RESET"
37+
38+func r (s) = ("user_" + s)
1339
1440
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)
41+func t (s) = ("user_name_" + s)
4842
4943
50-func x (w) = ("user_name_" + w)
44+func u (s) = ("user_desc_" + s)
5145
5246
53-func y (w) = ("user_desc_" + w)
47+func v (s) = ("user_social_" + s)
5448
5549
56-func z (w) = ("user_social_" + w)
50+func w (s) = ("user_thumb_" + s)
5751
5852
59-func A (w) = ("user_thumb_" + w)
53+func x (s) = ("user_status_" + s)
6054
6155
62-func B (w) = ("user_status_" + w)
56+func y (s) = ("user_royalties_" + s)
6357
6458
65-func C (w) = ("user_date_" + w)
59+func z (s) = ("user_date_" + s)
6660
6761
68-func D (w) = ("user_ERC20_" + w)
62+func A (s) = ("user_ERC20_" + s)
6963
7064
71-func E (F) = ("artist_agent_" + F)
65+func B (C) = ("artist_agent_" + C)
7266
7367
74-func G (H,F) = ((("agent_" + H) + "_") + F)
68+func D (E,C) = ((("agent_" + E) + "_") + C)
7569
7670
77-func I (F) = ("artist_agent_primary_" + F)
71+func F (C) = ("artist_agent_primary_" + C)
7872
7973
80-func J (F) = ("artist_agent_secondary_" + F)
74+func G (C) = ("artist_agent_secondary_" + C)
8175
8276
83-func K (L) = if (contains(L, "/"))
84- then if (if ((76 > size(L)))
85- then (size(split(L, "/")[0]) == 59)
77+func H (I) = if (contains(I, "/"))
78+ then if (if ((76 > size(I)))
79+ then (size(split(I, "/")[0]) == 59)
8680 else false)
87- then (16 > size(split(L, "/")[1]))
81+ then (16 > size(split(I, "/")[1]))
8882 else false
8983 else false
9084
9185
92-func M (w,N,O,P,Q) = {
93- let R = if ((size(P) != 0))
94- then K(P)
86+func J (s,K,L,M,N) = {
87+ let O = if ((size(M) != 0))
88+ then H(M)
9589 else true
96- if (!(R))
90+ if (!(O))
9791 then throw("CID don't match requirement!")
98- else if (if ((N == ""))
92+ else if (if ((K == ""))
9993 then true
100- else (O == ""))
94+ else (L == ""))
10195 then throw("Name and description cannot be empty")
102- else if ((size(O) > 600))
96+ else if ((size(L) > 600))
10397 then throw("600 Char. max description")
104- else if ((size(N) > 45))
98+ else if ((size(K) > 45))
10599 then throw("45 Char. max name")
106100 else {
107- let S = b(B(w))
108- if (if ((S == q))
101+ let P = a(x(s))
102+ if (if ((P == n))
109103 then true
110- else (S == r))
104+ else (P == o))
111105 then throw("Account suspended/ removed.")
112- else if (if (!(Q))
113- then (S == o)
106+ else if (if (!(N))
107+ then (P == l)
114108 else false)
115109 then throw("Already registered")
116- else if (if (if (!(Q))
117- then (S == "")
110+ else if (if (if (!(N))
111+ then (P == "")
118112 else false)
119- then m
113+ then j
120114 else false)
121115 then throw("Can't register, get approved first.")
122- else if (if (if (Q)
123- then (S == "")
116+ else if (if (if (N)
117+ then (P == "")
124118 else false)
125119 then true
126- else if (Q)
127- then (S == n)
120+ else if (N)
121+ then (P == k)
128122 else false)
129123 then throw("Register first")
130124 else true
132126 }
133127
134128
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)
129+func Q (P,R,S) = {
130+ let T = [m, l, n, o, k, p]
131+ let U = if (containsElement(T, P))
132+ then P
133+ else if (if ((P == q))
134+ then (S == k)
141135 else false)
142136 then ""
143137 else throw("Unknown status")
144- let Y = e(C(U))
145- if (if ((Y == 0))
146- then (X != n)
138+ let V = c(z(R))
139+ if (if ((V == 0))
140+ then (U != k)
147141 else false)
148142 then throw("You cant set this status, user is not registered.")
149- else if (if ((V == n))
150- then (X == n)
143+ else if (if ((S == k))
144+ then (U == k)
151145 else false)
152146 then throw("User already allowed")
153- else if (if ((V == o))
154- then (X == n)
147+ else if (if ((S == l))
148+ then (U == k)
155149 else false)
156150 then throw("User already allowed & registered")
157- else if (if ((V == p))
158- then (X == n)
151+ else if (if ((S == m))
152+ then (U == k)
159153 else false)
160154 then throw("User already allowed & verified")
161- else X
155+ else U
162156 }
163157
164158
165-func Z (N,P,aa) = (((((("{\"user_name\": \"" + N) + "\", \"user_thumb\":\"") + P) + "\",\"user_date\":\"") + aa) + "\"}")
159+func W (K,M,X) = (((((("{\"user_name\": \"" + K) + "\", \"user_thumb\":\"") + M) + "\",\"user_date\":\"") + X) + "\"}")
166160
167161
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)]
162+@Callable(Y)
163+func setConf (b,Z) = {
164+ let s = toString(Y.caller)
165+ if (containsElement([d, toString(this)], s))
166+ then [StringEntry(b, Z)]
173167 else throw("You are not allowed to change this")
174168 }
175169
176170
177171
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)]
172+@Callable(Y)
173+func appRunning (aa,ab) = {
174+ let s = toString(Y.caller)
175+ if (containsElement([d, toString(this)], s))
176+ then [BooleanEntry(e, aa), StringEntry(f, ab)]
183177 else throw("You are not allowed to change this")
184178 }
185179
186180
187181
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)]
182+@Callable(Y)
183+func registrationMode (ac) = {
184+ let s = toString(Y.caller)
185+ if (containsElement([d, toString(this)], s))
186+ then [BooleanEntry(g, ac)]
193187 else throw("You are not allowed to change this")
194188 }
195189
196190
197191
198-@Callable(ab)
199-func registerUser (N,O,P,ag) = if (!(k))
200- then throw(l)
192+@Callable(Y)
193+func registerUser (K,L,M,ad,ae) = if (!(h))
194+ then throw(i)
201195 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)))
196+ let s = toString(Y.caller)
197+ let af = toBase58String(Y.transactionId)
198+ let ag = lastBlock.timestamp
199+ if (!(J(s, K, L, M, false)))
206200 then throw("Something went wrong")
207201 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)]
202+ let ah = W(toBase64String(toBytes(K)), toBase64String(toBytes(M)), toString(ag))
203+ if (if ((0 > ae))
204+ then true
205+ else (ae > 10))
206+ then throw("Royalties cannot be higher than 10")
207+ else [IntegerEntry(z(s), ag), StringEntry(r(s), ((af + "_") + toString(ag))), StringEntry(t(s), K), StringEntry(u(s), L), StringEntry(v(s), ad), StringEntry(w(s), M), StringEntry(x(s), l), IntegerEntry(y(s), ae), DeleteEntry(("ALLOWED_" + s)), StringEntry(((l + "_") + s), ah)]
210208 }
211209 }
212210
213211
214212
215-@Callable(ab)
216-func updateUser (N,O,P,ag) = if (!(k))
217- then throw(l)
213+@Callable(Y)
214+func updateUser (K,L,M,ad,ae) = if (!(h))
215+ then throw(i)
218216 else {
219- let w = toString(ab.caller)
220- let S = b(B(w))
221- if (!(M(w, N, O, P, true)))
217+ let s = toString(Y.caller)
218+ let P = a(x(s))
219+ if (!(J(s, K, L, M, true)))
222220 then throw("Something went wrong")
223221 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)]
222+ let X = c(z(s))
223+ let ah = W(toBase64String(toBytes(K)), toBase64String(toBytes(M)), toString(X))
224+ if (if ((0 > ae))
225+ then true
226+ else (ae > 10))
227+ then throw("Royalties cannot be higher than 10")
228+ else [StringEntry(t(s), K), StringEntry(u(s), L), StringEntry(v(s), ad), StringEntry(w(s), M), IntegerEntry(y(s), ae), StringEntry(((P + "_") + s), ah)]
227229 }
228230 }
229231
230232
231233
232-@Callable(ab)
233-func setERC20User (ak) = if (!(k))
234- then throw(l)
234+@Callable(Y)
235+func setERC20User (ai) = if (!(h))
236+ then throw(i)
235237 else {
236- let w = toString(ab.caller)
237- let S = b(B(w))
238- if (if ((S != o))
239- then (S != p)
238+ let s = toString(Y.caller)
239+ let P = a(x(s))
240+ if (if ((P != l))
241+ then (P != m)
240242 else false)
241243 then throw("Not allowed to set ERC20 address")
242244 else {
243- let al = take(ak, 2)
244- if (if ((al != "0x"))
245+ let aj = take(ai, 2)
246+ if (if ((aj != "0x"))
245247 then true
246- else (size(ak) != 42))
248+ else (size(ai) != 42))
247249 then throw("This is not an erc20 address")
248- else [StringEntry(D(w), ak)]
250+ else [StringEntry(A(s), ai)]
249251 }
250252 }
251253
252254
253255
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)]
256+@Callable(Y)
257+func changeUserStatus (R,P,ak) = {
258+ let s = toString(Y.caller)
259+ let S = a(x(R))
260+ let U = Q(P, R, S)
261+ let K = toBase64String(toBytes(a(t(R))))
262+ let M = toBase64String(toBytes(a(w(R))))
263+ let X = c(z(R))
264+ let ah = W(K, M, toString(X))
265+ if (containsElement([d, toString(this)], s))
266+ then [StringEntry(x(R), U), DeleteEntry(((S + "_") + R)), StringEntry(((U + "_") + R), ah), StringEntry(("user_note_" + R), ak)]
265267 else throw("Not allowed to change user status")
266268 }
267269
268270
269271
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)]
272+@Callable(Y)
273+func deleteUser (R) = {
274+ let s = toString(Y.caller)
275+ let S = a(x(R))
276+ if (containsElement([d, toString(this)], s))
277+ then [DeleteEntry(z(R)), DeleteEntry(r(R)), DeleteEntry(t(R)), DeleteEntry(u(R)), DeleteEntry(v(R)), DeleteEntry(w(R)), DeleteEntry(("user_note_" + R)), DeleteEntry(((S + "_") + R)), DeleteEntry(y(R)), StringEntry(x(R), o)]
276278 else throw("Not allowed")
277279 }
278280
279281
280282
281-@Callable(an)
282-func setAgent (F,H,ao,ap) = if (!(k))
283- then throw(l)
283+@Callable(al)
284+func setAgent (C,E,am,an) = if (!(h))
285+ then throw(i)
284286 else {
285- let w = toString(an.caller)
286- if (containsElement([f, toString(this)], w))
287- then if (if ((size(F) != 35))
287+ let s = toString(al.caller)
288+ if (containsElement([d, toString(this)], s))
289+ then if (if ((size(C) != 35))
288290 then true
289- else (size(H) != 35))
291+ else (size(E) != 35))
290292 then throw("Wrong address")
291- else [StringEntry(E(F), H), StringEntry(G(H, F), F), IntegerEntry(I(F), ao), IntegerEntry(J(F), ap)]
293+ else [StringEntry(B(C), E), StringEntry(D(E, C), C), IntegerEntry(F(C), am), IntegerEntry(G(C), an)]
292294 else throw("You are not allowed")
293295 }
294296
295297
296298
297-@Callable(an)
298-func unsetAgent (F,H) = if (!(k))
299- then throw(l)
299+@Callable(al)
300+func unsetAgent (C,E) = if (!(h))
301+ then throw(i)
300302 else {
301- let w = toString(an.caller)
302- if (containsElement([f, toString(this)], w))
303- then if (if ((size(F) != 35))
303+ let s = toString(al.caller)
304+ if (containsElement([d, toString(this)], s))
305+ then if (if ((size(C) != 35))
304306 then true
305- else (size(H) != 35))
307+ else (size(E) != 35))
306308 then throw("Wrong address")
307- else [DeleteEntry(E(F)), DeleteEntry(G(H, F)), DeleteEntry(I(F)), DeleteEntry(J(F))]
309+ else [DeleteEntry(B(C)), DeleteEntry(D(E, C)), DeleteEntry(F(C)), DeleteEntry(G(C))]
308310 else throw("You are not allowed")
309311 }
310312
311313
312314
313-@Callable(an)
314-func deleteEntry (aq) = {
315- let w = toString(an.caller)
316- if ((w == f))
317- then [DeleteEntry(aq)]
315+@Callable(al)
316+func deleteEntry (ao) = {
317+ let s = toString(al.caller)
318+ if ((s == d))
319+ then [DeleteEntry(ao)]
318320 else throw("no")
319321 }
320322
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let a = "1.3"
5-
6-func b (c) = valueOrElse(getString(this, c), "")
4+func a (b) = valueOrElse(getString(this, b), "")
75
86
9-func d (c) = valueOrElse(getBoolean(this, c), false)
7+func c (b) = valueOrElse(getInteger(this, b), 0)
108
119
12-func e (c) = valueOrElse(getInteger(this, c), 0)
10+let d = a("conf_admin_1")
11+
12+let e = "conf_dapp_is_running"
13+
14+let f = "conf_maintenance_msg"
15+
16+let g = "conf_whitelisted_only"
17+
18+let h = valueOrElse(getBoolean(this, e), true)
19+
20+let i = valueOrElse(getString(this, f), "")
21+
22+let j = valueOrElse(getBoolean(this, g), true)
23+
24+let k = "ALLOWED"
25+
26+let l = "REGISTERED"
27+
28+let m = "VERIFIED"
29+
30+let n = "SUSPENDED"
31+
32+let o = "REMOVED"
33+
34+let p = "CHANGE_REQUIRED"
35+
36+let q = "RESET"
37+
38+func r (s) = ("user_" + s)
1339
1440
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)
41+func t (s) = ("user_name_" + s)
4842
4943
50-func x (w) = ("user_name_" + w)
44+func u (s) = ("user_desc_" + s)
5145
5246
53-func y (w) = ("user_desc_" + w)
47+func v (s) = ("user_social_" + s)
5448
5549
56-func z (w) = ("user_social_" + w)
50+func w (s) = ("user_thumb_" + s)
5751
5852
59-func A (w) = ("user_thumb_" + w)
53+func x (s) = ("user_status_" + s)
6054
6155
62-func B (w) = ("user_status_" + w)
56+func y (s) = ("user_royalties_" + s)
6357
6458
65-func C (w) = ("user_date_" + w)
59+func z (s) = ("user_date_" + s)
6660
6761
68-func D (w) = ("user_ERC20_" + w)
62+func A (s) = ("user_ERC20_" + s)
6963
7064
71-func E (F) = ("artist_agent_" + F)
65+func B (C) = ("artist_agent_" + C)
7266
7367
74-func G (H,F) = ((("agent_" + H) + "_") + F)
68+func D (E,C) = ((("agent_" + E) + "_") + C)
7569
7670
77-func I (F) = ("artist_agent_primary_" + F)
71+func F (C) = ("artist_agent_primary_" + C)
7872
7973
80-func J (F) = ("artist_agent_secondary_" + F)
74+func G (C) = ("artist_agent_secondary_" + C)
8175
8276
83-func K (L) = if (contains(L, "/"))
84- then if (if ((76 > size(L)))
85- then (size(split(L, "/")[0]) == 59)
77+func H (I) = if (contains(I, "/"))
78+ then if (if ((76 > size(I)))
79+ then (size(split(I, "/")[0]) == 59)
8680 else false)
87- then (16 > size(split(L, "/")[1]))
81+ then (16 > size(split(I, "/")[1]))
8882 else false
8983 else false
9084
9185
92-func M (w,N,O,P,Q) = {
93- let R = if ((size(P) != 0))
94- then K(P)
86+func J (s,K,L,M,N) = {
87+ let O = if ((size(M) != 0))
88+ then H(M)
9589 else true
96- if (!(R))
90+ if (!(O))
9791 then throw("CID don't match requirement!")
98- else if (if ((N == ""))
92+ else if (if ((K == ""))
9993 then true
100- else (O == ""))
94+ else (L == ""))
10195 then throw("Name and description cannot be empty")
102- else if ((size(O) > 600))
96+ else if ((size(L) > 600))
10397 then throw("600 Char. max description")
104- else if ((size(N) > 45))
98+ else if ((size(K) > 45))
10599 then throw("45 Char. max name")
106100 else {
107- let S = b(B(w))
108- if (if ((S == q))
101+ let P = a(x(s))
102+ if (if ((P == n))
109103 then true
110- else (S == r))
104+ else (P == o))
111105 then throw("Account suspended/ removed.")
112- else if (if (!(Q))
113- then (S == o)
106+ else if (if (!(N))
107+ then (P == l)
114108 else false)
115109 then throw("Already registered")
116- else if (if (if (!(Q))
117- then (S == "")
110+ else if (if (if (!(N))
111+ then (P == "")
118112 else false)
119- then m
113+ then j
120114 else false)
121115 then throw("Can't register, get approved first.")
122- else if (if (if (Q)
123- then (S == "")
116+ else if (if (if (N)
117+ then (P == "")
124118 else false)
125119 then true
126- else if (Q)
127- then (S == n)
120+ else if (N)
121+ then (P == k)
128122 else false)
129123 then throw("Register first")
130124 else true
131125 }
132126 }
133127
134128
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)
129+func Q (P,R,S) = {
130+ let T = [m, l, n, o, k, p]
131+ let U = if (containsElement(T, P))
132+ then P
133+ else if (if ((P == q))
134+ then (S == k)
141135 else false)
142136 then ""
143137 else throw("Unknown status")
144- let Y = e(C(U))
145- if (if ((Y == 0))
146- then (X != n)
138+ let V = c(z(R))
139+ if (if ((V == 0))
140+ then (U != k)
147141 else false)
148142 then throw("You cant set this status, user is not registered.")
149- else if (if ((V == n))
150- then (X == n)
143+ else if (if ((S == k))
144+ then (U == k)
151145 else false)
152146 then throw("User already allowed")
153- else if (if ((V == o))
154- then (X == n)
147+ else if (if ((S == l))
148+ then (U == k)
155149 else false)
156150 then throw("User already allowed & registered")
157- else if (if ((V == p))
158- then (X == n)
151+ else if (if ((S == m))
152+ then (U == k)
159153 else false)
160154 then throw("User already allowed & verified")
161- else X
155+ else U
162156 }
163157
164158
165-func Z (N,P,aa) = (((((("{\"user_name\": \"" + N) + "\", \"user_thumb\":\"") + P) + "\",\"user_date\":\"") + aa) + "\"}")
159+func W (K,M,X) = (((((("{\"user_name\": \"" + K) + "\", \"user_thumb\":\"") + M) + "\",\"user_date\":\"") + X) + "\"}")
166160
167161
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)]
162+@Callable(Y)
163+func setConf (b,Z) = {
164+ let s = toString(Y.caller)
165+ if (containsElement([d, toString(this)], s))
166+ then [StringEntry(b, Z)]
173167 else throw("You are not allowed to change this")
174168 }
175169
176170
177171
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)]
172+@Callable(Y)
173+func appRunning (aa,ab) = {
174+ let s = toString(Y.caller)
175+ if (containsElement([d, toString(this)], s))
176+ then [BooleanEntry(e, aa), StringEntry(f, ab)]
183177 else throw("You are not allowed to change this")
184178 }
185179
186180
187181
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)]
182+@Callable(Y)
183+func registrationMode (ac) = {
184+ let s = toString(Y.caller)
185+ if (containsElement([d, toString(this)], s))
186+ then [BooleanEntry(g, ac)]
193187 else throw("You are not allowed to change this")
194188 }
195189
196190
197191
198-@Callable(ab)
199-func registerUser (N,O,P,ag) = if (!(k))
200- then throw(l)
192+@Callable(Y)
193+func registerUser (K,L,M,ad,ae) = if (!(h))
194+ then throw(i)
201195 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)))
196+ let s = toString(Y.caller)
197+ let af = toBase58String(Y.transactionId)
198+ let ag = lastBlock.timestamp
199+ if (!(J(s, K, L, M, false)))
206200 then throw("Something went wrong")
207201 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)]
202+ let ah = W(toBase64String(toBytes(K)), toBase64String(toBytes(M)), toString(ag))
203+ if (if ((0 > ae))
204+ then true
205+ else (ae > 10))
206+ then throw("Royalties cannot be higher than 10")
207+ else [IntegerEntry(z(s), ag), StringEntry(r(s), ((af + "_") + toString(ag))), StringEntry(t(s), K), StringEntry(u(s), L), StringEntry(v(s), ad), StringEntry(w(s), M), StringEntry(x(s), l), IntegerEntry(y(s), ae), DeleteEntry(("ALLOWED_" + s)), StringEntry(((l + "_") + s), ah)]
210208 }
211209 }
212210
213211
214212
215-@Callable(ab)
216-func updateUser (N,O,P,ag) = if (!(k))
217- then throw(l)
213+@Callable(Y)
214+func updateUser (K,L,M,ad,ae) = if (!(h))
215+ then throw(i)
218216 else {
219- let w = toString(ab.caller)
220- let S = b(B(w))
221- if (!(M(w, N, O, P, true)))
217+ let s = toString(Y.caller)
218+ let P = a(x(s))
219+ if (!(J(s, K, L, M, true)))
222220 then throw("Something went wrong")
223221 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)]
222+ let X = c(z(s))
223+ let ah = W(toBase64String(toBytes(K)), toBase64String(toBytes(M)), toString(X))
224+ if (if ((0 > ae))
225+ then true
226+ else (ae > 10))
227+ then throw("Royalties cannot be higher than 10")
228+ else [StringEntry(t(s), K), StringEntry(u(s), L), StringEntry(v(s), ad), StringEntry(w(s), M), IntegerEntry(y(s), ae), StringEntry(((P + "_") + s), ah)]
227229 }
228230 }
229231
230232
231233
232-@Callable(ab)
233-func setERC20User (ak) = if (!(k))
234- then throw(l)
234+@Callable(Y)
235+func setERC20User (ai) = if (!(h))
236+ then throw(i)
235237 else {
236- let w = toString(ab.caller)
237- let S = b(B(w))
238- if (if ((S != o))
239- then (S != p)
238+ let s = toString(Y.caller)
239+ let P = a(x(s))
240+ if (if ((P != l))
241+ then (P != m)
240242 else false)
241243 then throw("Not allowed to set ERC20 address")
242244 else {
243- let al = take(ak, 2)
244- if (if ((al != "0x"))
245+ let aj = take(ai, 2)
246+ if (if ((aj != "0x"))
245247 then true
246- else (size(ak) != 42))
248+ else (size(ai) != 42))
247249 then throw("This is not an erc20 address")
248- else [StringEntry(D(w), ak)]
250+ else [StringEntry(A(s), ai)]
249251 }
250252 }
251253
252254
253255
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)]
256+@Callable(Y)
257+func changeUserStatus (R,P,ak) = {
258+ let s = toString(Y.caller)
259+ let S = a(x(R))
260+ let U = Q(P, R, S)
261+ let K = toBase64String(toBytes(a(t(R))))
262+ let M = toBase64String(toBytes(a(w(R))))
263+ let X = c(z(R))
264+ let ah = W(K, M, toString(X))
265+ if (containsElement([d, toString(this)], s))
266+ then [StringEntry(x(R), U), DeleteEntry(((S + "_") + R)), StringEntry(((U + "_") + R), ah), StringEntry(("user_note_" + R), ak)]
265267 else throw("Not allowed to change user status")
266268 }
267269
268270
269271
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)]
272+@Callable(Y)
273+func deleteUser (R) = {
274+ let s = toString(Y.caller)
275+ let S = a(x(R))
276+ if (containsElement([d, toString(this)], s))
277+ then [DeleteEntry(z(R)), DeleteEntry(r(R)), DeleteEntry(t(R)), DeleteEntry(u(R)), DeleteEntry(v(R)), DeleteEntry(w(R)), DeleteEntry(("user_note_" + R)), DeleteEntry(((S + "_") + R)), DeleteEntry(y(R)), StringEntry(x(R), o)]
276278 else throw("Not allowed")
277279 }
278280
279281
280282
281-@Callable(an)
282-func setAgent (F,H,ao,ap) = if (!(k))
283- then throw(l)
283+@Callable(al)
284+func setAgent (C,E,am,an) = if (!(h))
285+ then throw(i)
284286 else {
285- let w = toString(an.caller)
286- if (containsElement([f, toString(this)], w))
287- then if (if ((size(F) != 35))
287+ let s = toString(al.caller)
288+ if (containsElement([d, toString(this)], s))
289+ then if (if ((size(C) != 35))
288290 then true
289- else (size(H) != 35))
291+ else (size(E) != 35))
290292 then throw("Wrong address")
291- else [StringEntry(E(F), H), StringEntry(G(H, F), F), IntegerEntry(I(F), ao), IntegerEntry(J(F), ap)]
293+ else [StringEntry(B(C), E), StringEntry(D(E, C), C), IntegerEntry(F(C), am), IntegerEntry(G(C), an)]
292294 else throw("You are not allowed")
293295 }
294296
295297
296298
297-@Callable(an)
298-func unsetAgent (F,H) = if (!(k))
299- then throw(l)
299+@Callable(al)
300+func unsetAgent (C,E) = if (!(h))
301+ then throw(i)
300302 else {
301- let w = toString(an.caller)
302- if (containsElement([f, toString(this)], w))
303- then if (if ((size(F) != 35))
303+ let s = toString(al.caller)
304+ if (containsElement([d, toString(this)], s))
305+ then if (if ((size(C) != 35))
304306 then true
305- else (size(H) != 35))
307+ else (size(E) != 35))
306308 then throw("Wrong address")
307- else [DeleteEntry(E(F)), DeleteEntry(G(H, F)), DeleteEntry(I(F)), DeleteEntry(J(F))]
309+ else [DeleteEntry(B(C)), DeleteEntry(D(E, C)), DeleteEntry(F(C)), DeleteEntry(G(C))]
308310 else throw("You are not allowed")
309311 }
310312
311313
312314
313-@Callable(an)
314-func deleteEntry (aq) = {
315- let w = toString(an.caller)
316- if ((w == f))
317- then [DeleteEntry(aq)]
315+@Callable(al)
316+func deleteEntry (ao) = {
317+ let s = toString(al.caller)
318+ if ((s == d))
319+ then [DeleteEntry(ao)]
318320 else throw("no")
319321 }
320322
321323

github/deemru/w8io/026f985 
103.42 ms