tx · CubxapEMht9f4PyDms3kDsPdQP2bwXBHUJEWDkKJEAuw

3N8xXaYjE27Aa79d5hHrhHu9HaFoTBmhDEj:  -0.01400000 Waves

2023.02.03 05:55 [2432865] smart account 3N8xXaYjE27Aa79d5hHrhHu9HaFoTBmhDEj > SELF 0.00000000 Waves

{ "type": 13, "id": "CubxapEMht9f4PyDms3kDsPdQP2bwXBHUJEWDkKJEAuw", "fee": 1400000, "feeAssetId": null, "timestamp": 1675391724731, "version": 2, "chainId": 84, "sender": "3N8xXaYjE27Aa79d5hHrhHu9HaFoTBmhDEj", "senderPublicKey": "A2m227AHcq7gWfSU59Q3UJaqkEa7SccFYmJuWHbFrrKE", "proofs": [ "bskDqWijnxNnnfB8pk7cqZRBhSk3wVjUR6TZf3N5WaB7cpadp1vFumwqhay1XARuXex9y7NzKmUny56S2fpLW3Y" ], "script": "base64:BgJTCAISBAoCCAgSBAoCBAgSAwoBBBIICgYICAgIAQgSCAoGCAgICAEIEgQKAggIEgoKCAgICAgBAQEBEgMKAQgSBwoFCAgBAQQSBQoDCAgEEgMKAQgvAAdWRVJTSU9OAgMxLjUBDmdldFN0cmluZ0J5S2V5AQNrZXkJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUDa2V5AgABD2dldEJvb2xlYW5CeUtleQEDa2V5CQELdmFsdWVPckVsc2UCCQCbCAIFBHRoaXMFA2tleQcBD2dldEludGVnZXJCeUtleQEDa2V5CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFA2tleQAAAAVjaHJpcwkBDmdldFN0cmluZ0J5S2V5AQIMY29uZl9hZG1pbl8xAA5kYXBwUnVubmluZ0tleQIUY29uZl9kYXBwX2lzX3J1bm5pbmcAEW1haW50ZW5hbmNlTVNHS2V5AhRjb25mX21haW50ZW5hbmNlX21zZwASd2hpdGVsaXN0ZWRvbmx5S2V5AhVjb25mX3doaXRlbGlzdGVkX29ubHkAC2RhcHBSdW5uaW5nCQELdmFsdWVPckVsc2UCCQCbCAIFBHRoaXMFDmRhcHBSdW5uaW5nS2V5BgAObWFpbnRlbmFuY2VNU0cJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwURbWFpbnRlbmFuY2VNU0dLZXkCAAAPd2hpdGVsaXN0ZWRvbmx5CQELdmFsdWVPckVsc2UCCQCbCAIFBHRoaXMFEndoaXRlbGlzdGVkb25seUtleQYADXdoaXRlbGlzdERhcHAJAQV2YWx1ZQEJAKYIAQkBDmdldFN0cmluZ0J5S2V5AQITY29uZl93aGl0ZWxpc3RfZGFwcAAIc2lnbkRhcHAJAQV2YWx1ZQEJAKYIAQkBDmdldFN0cmluZ0J5S2V5AQIRY29uZl9zaWdud2ViX2RhcHAAC3VzZXJBbGxvd2VkAgdBTExPV0VEAA51c2VyUmVnaXN0ZXJlZAIKUkVHSVNURVJFRAAMdXNlclZlcmlmaWVkAghWRVJJRklFRAANdXNlclN1c3BlbmRlZAIJU1VTUEVOREVEAAt1c2VyUmVtb3ZlZAIHUkVNT1ZFRAASdXNlckNoYW5nZVJlcXVpcmVkAg9DSEFOR0VfUkVRVUlSRUQAEHVzZXJVbnJlZ2lzdGVyZWQCDFVOUkVHSVNURVJFRAAJdXNlclJlc2V0AgVSRVNFVAELa2V5VXNlckFkZHIBBmNhbGxlcgkArAICAgV1c2VyXwUGY2FsbGVyAQtrZXlVc2VyTmFtZQEGY2FsbGVyCQCsAgICCnVzZXJfbmFtZV8FBmNhbGxlcgELa2V5VXNlckRlc2MBBmNhbGxlcgkArAICAgp1c2VyX2Rlc2NfBQZjYWxsZXIBDWtleVVzZXJTb2NpYWwBBmNhbGxlcgkArAICAgx1c2VyX3NvY2lhbF8FBmNhbGxlcgEMa2V5VXNlclRodW1iAQZjYWxsZXIJAKwCAgILdXNlcl90aHVtYl8FBmNhbGxlcgENa2V5VXNlclN0YXR1cwEGY2FsbGVyCQCsAgICDHVzZXJfc3RhdHVzXwUGY2FsbGVyARBrZXlVc2VyUm95YWx0aWVzAQZjYWxsZXIJAKwCAgIPdXNlcl9yb3lhbHRpZXNfBQZjYWxsZXIBC2tleVVzZXJEYXRlAQZjYWxsZXIJAKwCAgIKdXNlcl9kYXRlXwUGY2FsbGVyAQxrZXlVc2VyRVJDMjABBmNhbGxlcgkArAICAgt1c2VyX0VSQzIwXwUGY2FsbGVyAQtrZXlVc2VyTm90ZQEGY2FsbGVyCQCsAgICCnVzZXJfbm90ZV8FBmNhbGxlcgEMa2V5VXNlckxhYmVsAQZjYWxsZXIJAKwCAgILdXNlcl9sYWJlbF8FBmNhbGxlcgESa2V5QXJ0aXN0QWdlbnRBZGRyAQphcnRpc3RBZGRyCQCsAgICDWFydGlzdF9hZ2VudF8FCmFydGlzdEFkZHIBEmtleUFnZW50QXJ0aXN0QWRkcgIJYWdlbnRBZGRyCmFydGlzdEFkZHIJAKwCAgkArAICCQCsAgICBmFnZW50XwUJYWdlbnRBZGRyAgFfBQphcnRpc3RBZGRyARRrZXlQcmltYXJ5U2hhcmVBZ2VudAEKYXJ0aXN0QWRkcgkArAICAhVhcnRpc3RfYWdlbnRfcHJpbWFyeV8FCmFydGlzdEFkZHIBFmtleVNlY29uZGFyeVNoYXJlQWdlbnQBCmFydGlzdEFkZHIJAKwCAgIXYXJ0aXN0X2FnZW50X3NlY29uZGFyeV8FCmFydGlzdEFkZHIBGGtleUFydGlzdFB1YmxpY0FnZW50QWRkcgEKYXJ0aXN0QWRkcgkArAICAhRhcnRpc3RfcHVibGljX2FnZW50XwUKYXJ0aXN0QWRkcgEYa2V5UHVibGljQWdlbnRBcnRpc3RBZGRyAglhZ2VudEFkZHIKYXJ0aXN0QWRkcgkArAICCQCsAgIJAKwCAgINcHVibGljX2FnZW50XwUJYWdlbnRBZGRyAgFfBQphcnRpc3RBZGRyARprZXlQcmltYXJ5U2hhcmVQdWJsaWNBZ2VudAEKYXJ0aXN0QWRkcgkArAICAhxhcnRpc3RfcHVibGljX2FnZW50X3ByaW1hcnlfBQphcnRpc3RBZGRyARxrZXlTZWNvbmRhcnlTaGFyZVB1YmxpY0FnZW50AQphcnRpc3RBZGRyCQCsAgICHmFydGlzdF9wdWJsaWNfYWdlbnRfc2Vjb25kYXJ5XwUKYXJ0aXN0QWRkcgEOY2hlY2tXaGl0ZWxpc3QBA2tleQkBC3ZhbHVlT3JFbHNlAgkAmggCBQ13aGl0ZWxpc3REYXBwBQNrZXkAAAELdmFsaWRhdGVDSUQBA2NpZAMJAQhjb250YWlucwIFA2NpZAIBLwMDCQBmAgBMCQCxAgEFA2NpZAkAAAIJALECAQkAkQMCCQC1CQIFA2NpZAIBLwAAADsHCQBmAgAQCQCxAgEJAJEDAgkAtQkCBQNjaWQCAS8AAQcHAQ12YWxpZFVzZXJEYXRhBQZjYWxsZXIEbmFtZQtkZXNjcmlwdGlvbgV0aHVtYgppc0FuVXBkYXRlBAh2YWxpZENJRAMJAQIhPQIJALECAQUFdGh1bWIAAAkBC3ZhbGlkYXRlQ0lEAQUFdGh1bWIGAwkBASEBBQh2YWxpZENJRAkAAgECHENJRCBkb24ndCBtYXRjaCByZXF1aXJlbWVudCEDAwkAAAIFBG5hbWUCAAYJAAACBQtkZXNjcmlwdGlvbgIACQACAQIkTmFtZSBhbmQgZGVzY3JpcHRpb24gY2Fubm90IGJlIGVtcHR5AwkAZgIJALECAQULZGVzY3JpcHRpb24A2AQJAAIBAhk2MDAgQ2hhci4gbWF4IGRlc2NyaXB0aW9uAwkAZgIJALECAQUEbmFtZQAtCQACAQIRNDUgQ2hhci4gbWF4IG5hbWUEBnN0YXR1cwkBDmdldFN0cmluZ0J5S2V5AQkBDWtleVVzZXJTdGF0dXMBBQZjYWxsZXIDAwkAAAIFBnN0YXR1cwUNdXNlclN1c3BlbmRlZAYJAAACBQZzdGF0dXMFC3VzZXJSZW1vdmVkCQACAQIbQWNjb3VudCBzdXNwZW5kZWQvIHJlbW92ZWQuAwMJAQEhAQUKaXNBblVwZGF0ZQkAAAIFBnN0YXR1cwUOdXNlclJlZ2lzdGVyZWQHCQACAQISQWxyZWFkeSByZWdpc3RlcmVkAwMDCQEBIQEFCmlzQW5VcGRhdGUJAAACBQZzdGF0dXMCAAcFD3doaXRlbGlzdGVkb25seQcJAAIBAiNDYW4ndCByZWdpc3RlciwgZ2V0IGFwcHJvdmVkIGZpcnN0LgMDAwUKaXNBblVwZGF0ZQkAAAIFBnN0YXR1cwIABwYDBQppc0FuVXBkYXRlCQAAAgUGc3RhdHVzBQt1c2VyQWxsb3dlZAcJAAIBAg5SZWdpc3RlciBmaXJzdAYBEXZhbGlkYXRlTmV3U3RhdHVzAwZzdGF0dXMHYWRkcmVzcw1jdXJyZW50U3RhdHVzBAlhbGxTdGF0dXMJAMwIAgUMdXNlclZlcmlmaWVkCQDMCAIFDnVzZXJSZWdpc3RlcmVkCQDMCAIFDXVzZXJTdXNwZW5kZWQJAMwIAgULdXNlclJlbW92ZWQJAMwIAgULdXNlckFsbG93ZWQJAMwIAgUSdXNlckNoYW5nZVJlcXVpcmVkBQNuaWwEC3N0YXR1c1RvU2V0AwkBD2NvbnRhaW5zRWxlbWVudAIFCWFsbFN0YXR1cwUGc3RhdHVzBQZzdGF0dXMDAwkAAAIFBnN0YXR1cwUJdXNlclJlc2V0CQAAAgUNY3VycmVudFN0YXR1cwULdXNlckFsbG93ZWQHAgAJAAIBAg5Vbmtub3duIHN0YXR1cwQQdXNlcklzUmVnaXN0ZXJlZAkBD2dldEludGVnZXJCeUtleQEJAQtrZXlVc2VyRGF0ZQEFB2FkZHJlc3MDAwkAAAIFEHVzZXJJc1JlZ2lzdGVyZWQAAAkBAiE9AgULc3RhdHVzVG9TZXQFC3VzZXJBbGxvd2VkBwkAAgECMVlvdSBjYW50IHNldCB0aGlzIHN0YXR1cywgdXNlciBpcyBub3QgcmVnaXN0ZXJlZC4DAwkAAAIFDWN1cnJlbnRTdGF0dXMFC3VzZXJBbGxvd2VkCQAAAgULc3RhdHVzVG9TZXQFC3VzZXJBbGxvd2VkBwkAAgECFFVzZXIgYWxyZWFkeSBhbGxvd2VkAwMJAAACBQ1jdXJyZW50U3RhdHVzBQ51c2VyUmVnaXN0ZXJlZAkAAAIFC3N0YXR1c1RvU2V0BQt1c2VyQWxsb3dlZAcJAAIBAiFVc2VyIGFscmVhZHkgYWxsb3dlZCAmIHJlZ2lzdGVyZWQDAwkAAAIFDWN1cnJlbnRTdGF0dXMFDHVzZXJWZXJpZmllZAkAAAIFC3N0YXR1c1RvU2V0BQt1c2VyQWxsb3dlZAcJAAIBAh9Vc2VyIGFscmVhZHkgYWxsb3dlZCAmIHZlcmlmaWVkBQtzdGF0dXNUb1NldAEIbWFrZUpTT04DBG5hbWUFdGh1bWIEZGF0ZQkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIPeyJ1c2VyX25hbWUiOiAiBQRuYW1lAhEiLCAidXNlcl90aHVtYiI6IgUFdGh1bWICDyIsInVzZXJfZGF0ZSI6IgUEZGF0ZQICIn0BCGFzU3RyaW5nAQJidgQHJG1hdGNoMAUCYnYDCQABAgUHJG1hdGNoMAIGU3RyaW5nBANidjAFByRtYXRjaDAFA2J2MAkAAgECJFNwb25zb3JlZCBQdWJsaWMgS2V5IFN0cmluZyBleHBlY3RlZAEJZ2V0Q2FsbGVyAgFpBnB1YktleQQLaXNTcG9uc29yZWQDCQECIT0CBQZwdWJLZXkCAAkBC3ZhbHVlT3JFbHNlAgkBDmNoZWNrV2hpdGVsaXN0AQkArAICCQClCAEJAKcIAQkA2QQBBQZwdWJLZXkCCV9mcmVlX3R4cwAAAAAEBmNhbGxlcgMDCQAAAgkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzCQClCAEFBHRoaXMJAGYCBQtpc1Nwb25zb3JlZAAABwkApQgBCQCnCAEJANkEAQUGcHViS2V5CQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMEE2dldF9zcG9uc29yZWRfd2F2ZXMDAwkBAiE9AgUGcHViS2V5AgAJAGYCBQtpc1Nwb25zb3JlZAAABwkA/AcEBQ13aGl0ZWxpc3REYXBwAgl1c2VGcmVlVHgJAMwIAgkApQgBCQCnCAEJANkEAQUGcHViS2V5BQNuaWwFA25pbAUEdW5pdAMJAAACBRNnZXRfc3BvbnNvcmVkX3dhdmVzBRNnZXRfc3BvbnNvcmVkX3dhdmVzCQCUCgIFBmNhbGxlcgkAZgIFC2lzU3BvbnNvcmVkAAAJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4LBmludm9rZQEHc2V0Q29uZgIDa2V5A3ZhbAQGY2FsbGVyCQClCAEIBQZpbnZva2UGY2FsbGVyAwkBD2NvbnRhaW5zRWxlbWVudAIJAMwIAgUFY2hyaXMJAMwIAgkApQgBBQR0aGlzBQNuaWwFBmNhbGxlcgkAzAgCCQELU3RyaW5nRW50cnkCBQNrZXkFA3ZhbAUDbmlsCQACAQIiWW91IGFyZSBub3QgYWxsb3dlZCB0byBjaGFuZ2UgdGhpcwZpbnZva2UBCmFwcFJ1bm5pbmcCBmlzTGl2ZQdtZXNzYWdlBAZjYWxsZXIJAKUIAQgFBmludm9rZQZjYWxsZXIDCQEPY29udGFpbnNFbGVtZW50AgkAzAgCBQVjaHJpcwkAzAgCCQClCAEFBHRoaXMFA25pbAUGY2FsbGVyCQDMCAIJAQxCb29sZWFuRW50cnkCBQ5kYXBwUnVubmluZ0tleQUGaXNMaXZlCQDMCAIJAQtTdHJpbmdFbnRyeQIFEW1haW50ZW5hbmNlTVNHS2V5BQdtZXNzYWdlBQNuaWwJAAIBAiJZb3UgYXJlIG5vdCBhbGxvd2VkIHRvIGNoYW5nZSB0aGlzBmludm9rZQEQcmVnaXN0cmF0aW9uTW9kZQEGV0xvbmx5BAZjYWxsZXIJAKUIAQgFBmludm9rZQZjYWxsZXIDCQEPY29udGFpbnNFbGVtZW50AgkAzAgCBQVjaHJpcwkAzAgCCQClCAEFBHRoaXMFA25pbAUGY2FsbGVyCQDMCAIJAQxCb29sZWFuRW50cnkCBRJ3aGl0ZWxpc3RlZG9ubHlLZXkFBldMb25seQUDbmlsCQACAQIiWW91IGFyZSBub3QgYWxsb3dlZCB0byBjaGFuZ2UgdGhpcwZpbnZva2UBDHJlZ2lzdGVyVXNlcgYEbmFtZQtkZXNjcmlwdGlvbgV0aHVtYgZzb2NpYWwJcm95YWx0aWVzBnB1YktleQMJAQEhAQULZGFwcFJ1bm5pbmcJAAIBBQ5tYWludGVuYW5jZU1TRwQLJHQwNzkxODc5NzAJAQlnZXRDYWxsZXICBQZpbnZva2UFBnB1YktleQQGY2FsbGVyCAULJHQwNzkxODc5NzACXzEEC2lzU3BvbnNvcmVkCAULJHQwNzkxODc5NzACXzIEAmlkCQDYBAEIBQZpbnZva2UNdHJhbnNhY3Rpb25JZAQJdGltZXN0YW1wCAUJbGFzdEJsb2NrCXRpbWVzdGFtcAQEbm90ZQkBDmdldFN0cmluZ0J5S2V5AQkBC2tleVVzZXJOb3RlAQUGY2FsbGVyBAVsYWJlbAkBDmdldFN0cmluZ0J5S2V5AQkBDGtleVVzZXJMYWJlbAEFBmNhbGxlcgMJAQEhAQkBDXZhbGlkVXNlckRhdGEFBQZjYWxsZXIFBG5hbWUFC2Rlc2NyaXB0aW9uBQV0aHVtYgcJAAIBAhRTb21ldGhpbmcgd2VudCB3cm9uZwQEanNvbgkBCG1ha2VKU09OAwkA2gQBCQCbAwEFBG5hbWUJANoEAQkAmwMBBQV0aHVtYgkApAMBBQl0aW1lc3RhbXADAwkAZgIAAAUJcm95YWx0aWVzBgkAZgIFCXJveWFsdGllcwDoBwkAAgECM1JveWFsdGllcyBjYW5ub3QgYmUgbGVzcyB0aGFuIDAlIG9yIGhpZ2hlciB0aGFuIDEwJQQKdHhUb0NhbGxlcgMFC2lzU3BvbnNvcmVkCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBBQZjYWxsZXIAAAUEdW5pdAUDbmlsBQNuaWwJAM4IAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBC2tleVVzZXJEYXRlAQUGY2FsbGVyBQl0aW1lc3RhbXAJAMwIAgkBC1N0cmluZ0VudHJ5AgkBC2tleVVzZXJBZGRyAQUGY2FsbGVyCQCsAgIJAKwCAgUCaWQCAV8JAKQDAQUJdGltZXN0YW1wCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQtrZXlVc2VyTmFtZQEFBmNhbGxlcgUEbmFtZQkAzAgCCQELU3RyaW5nRW50cnkCCQELa2V5VXNlckRlc2MBBQZjYWxsZXIFC2Rlc2NyaXB0aW9uCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ1rZXlVc2VyU29jaWFsAQUGY2FsbGVyBQZzb2NpYWwJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDGtleVVzZXJUaHVtYgEFBmNhbGxlcgUFdGh1bWIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDWtleVVzZXJTdGF0dXMBBQZjYWxsZXIFDnVzZXJSZWdpc3RlcmVkCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEQa2V5VXNlclJveWFsdGllcwEFBmNhbGxlcgUJcm95YWx0aWVzCQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgIIQUxMT1dFRF8FBmNhbGxlcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgUOdXNlclJlZ2lzdGVyZWQCAV8FBmNhbGxlcgUEanNvbgkAzAgCCQELU3RyaW5nRW50cnkCCQELa2V5VXNlck5vdGUBBQZjYWxsZXIFBG5vdGUJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDGtleVVzZXJMYWJlbAEFBmNhbGxlcgUFbGFiZWwFA25pbAUKdHhUb0NhbGxlcgZpbnZva2UBCnVwZGF0ZVVzZXIGBG5hbWULZGVzY3JpcHRpb24FdGh1bWIGc29jaWFsCXJveWFsdGllcwZwdWJLZXkDCQEBIQEFC2RhcHBSdW5uaW5nCQACAQUObWFpbnRlbmFuY2VNU0cECyR0MDk2NTU5NzU5CQEJZ2V0Q2FsbGVyAgUGaW52b2tlBQZwdWJLZXkEBmNhbGxlcggFCyR0MDk2NTU5NzU5Al8xBAtpc1Nwb25zb3JlZAgFCyR0MDk2NTU5NzU5Al8yBAZzdGF0dXMJAQ5nZXRTdHJpbmdCeUtleQEJAQ1rZXlVc2VyU3RhdHVzAQUGY2FsbGVyAwkBASEBCQENdmFsaWRVc2VyRGF0YQUFBmNhbGxlcgUEbmFtZQULZGVzY3JpcHRpb24FBXRodW1iBgkAAgECFFNvbWV0aGluZyB3ZW50IHdyb25nBARkYXRlCQEPZ2V0SW50ZWdlckJ5S2V5AQkBC2tleVVzZXJEYXRlAQUGY2FsbGVyBARqc29uCQEIbWFrZUpTT04DCQDaBAEJAJsDAQUEbmFtZQkA2gQBCQCbAwEFBXRodW1iCQCkAwEFBGRhdGUDAwkAZgIAAAUJcm95YWx0aWVzBgkAZgIFCXJveWFsdGllcwDoBwkAAgECM1JveWFsdGllcyBjYW5ub3QgYmUgbGVzcyB0aGFuIDAlIG9yIGhpZ2hlciB0aGFuIDEwJQQKdHhUb0NhbGxlcgMFC2lzU3BvbnNvcmVkCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBBQZjYWxsZXIAAAUEdW5pdAUDbmlsBQNuaWwJAM4IAgkAzAgCCQELU3RyaW5nRW50cnkCCQELa2V5VXNlck5hbWUBBQZjYWxsZXIFBG5hbWUJAMwIAgkBC1N0cmluZ0VudHJ5AgkBC2tleVVzZXJEZXNjAQUGY2FsbGVyBQtkZXNjcmlwdGlvbgkAzAgCCQELU3RyaW5nRW50cnkCCQENa2V5VXNlclNvY2lhbAEFBmNhbGxlcgUGc29jaWFsCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQxrZXlVc2VyVGh1bWIBBQZjYWxsZXIFBXRodW1iCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEQa2V5VXNlclJveWFsdGllcwEFBmNhbGxlcgUJcm95YWx0aWVzCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICBQZzdGF0dXMCAV8FBmNhbGxlcgUEanNvbgUDbmlsBQp0eFRvQ2FsbGVyBmludm9rZQEMc2V0RVJDMjBVc2VyAgVlcmMyMAZwdWJLZXkDCQEBIQEFC2RhcHBSdW5uaW5nCQACAQUObWFpbnRlbmFuY2VNU0cEDSR0MDEwOTQ2MTEwNDkJAQlnZXRDYWxsZXICBQZpbnZva2UFBnB1YktleQQGY2FsbGVyCAUNJHQwMTA5NDYxMTA0OQJfMQQLaXNTcG9uc29yZWQIBQ0kdDAxMDk0NjExMDQ5Al8yBAZzdGF0dXMJAQ5nZXRTdHJpbmdCeUtleQEJAQ1rZXlVc2VyU3RhdHVzAQUGY2FsbGVyAwMJAQIhPQIFBnN0YXR1cwUOdXNlclJlZ2lzdGVyZWQJAQIhPQIFBnN0YXR1cwUMdXNlclZlcmlmaWVkBwkAAgECIE5vdCBhbGxvd2VkIHRvIHNldCBFUkMyMCBhZGRyZXNzBAhmaXJzdFR3bwkArwICBQVlcmMyMAACAwMJAQIhPQIFCGZpcnN0VHdvAgIweAYJAQIhPQIJALECAQUFZXJjMjAAKgkAAgECHFRoaXMgaXMgbm90IGFuIGVyYzIwIGFkZHJlc3MECnR4VG9DYWxsZXIDBQtpc1Nwb25zb3JlZAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQUGY2FsbGVyAAAFBHVuaXQFA25pbAUDbmlsCQDOCAIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDGtleVVzZXJFUkMyMAEFBmNhbGxlcgUFZXJjMjAFA25pbAUKdHhUb0NhbGxlcgZpbnZva2UBEGNoYW5nZVVzZXJTdGF0dXMIB2FkZHJlc3MGc3RhdHVzBG5vdGUFbGFiZWwRd2xfY2VydGlmaWNhdGlvbnMGd2xfdHhzCHdsX2Ryb3BzDndsX2NvbW1pc3Npb25zBAZjYWxsZXIJAKUIAQgFBmludm9rZQZjYWxsZXIDCQAAAgkAsQIBBQdhZGRyZXNzAAAJAAIBAhdBZGRyZXNzIGNhbm5vdCBiZSBlbXB0eQQLY3VycmVudE5vdGUJAQ5nZXRTdHJpbmdCeUtleQEJAQtrZXlVc2VyTm90ZQEFB2FkZHJlc3MEDGN1cnJlbnRMYWJlbAkBDmdldFN0cmluZ0J5S2V5AQkBDGtleVVzZXJMYWJlbAEFB2FkZHJlc3MECW5vdGVUb1VzZQMJAQIhPQIJALECAQUEbm90ZQAABQRub3RlBQtjdXJyZW50Tm90ZQQKbGFiZWxUb1VzZQMJAQIhPQIJALECAQUFbGFiZWwAAAUFbGFiZWwFDGN1cnJlbnRMYWJlbAMJAQ9jb250YWluc0VsZW1lbnQCCQDMCAIFBWNocmlzCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQZjYWxsZXIEE2ZyZWVfY2VydGlmaWNhdGlvbnMDCQECIT0CBRF3bF9jZXJ0aWZpY2F0aW9ucwAACQD8BwQFCHNpZ25EYXBwAht3aGl0ZWxpc3RGcmVlQ2VydGlmaWNhdGlvbnMJAMwIAgUHYWRkcmVzcwkAzAgCBRF3bF9jZXJ0aWZpY2F0aW9ucwkAzAgCBgUDbmlsBQNuaWwFA25pbAMJAAACBRNmcmVlX2NlcnRpZmljYXRpb25zBRNmcmVlX2NlcnRpZmljYXRpb25zBAhmcmVlX3R4cwMJAQIhPQIFBndsX3R4cwAACQD8BwQFDXdoaXRlbGlzdERhcHACEHdoaXRlbGlzdEZyZWVUeHMJAMwIAgUHYWRkcmVzcwkAzAgCBQZ3bF90eHMJAMwIAgYFA25pbAUDbmlsBQNuaWwDCQAAAgUIZnJlZV90eHMFCGZyZWVfdHhzBApmcmVlX2Ryb3BzAwkBAiE9AgUId2xfZHJvcHMAAAkA/AcEBQ13aGl0ZWxpc3REYXBwAhF3aGl0ZWxpc3RGcmVlRHJvcAkAzAgCBQdhZGRyZXNzCQDMCAIFCHdsX2Ryb3BzCQDMCAIGBQNuaWwFA25pbAUDbmlsAwkAAAIFCmZyZWVfZHJvcHMFCmZyZWVfZHJvcHMEEGZyZWVfY29tbWlzc2lvbnMDCQECIT0CBQ53bF9jb21taXNzaW9ucwAACQD8BwQFDXdoaXRlbGlzdERhcHACCXdoaXRlbGlzdAkAzAgCBQdhZGRyZXNzCQDMCAIFDndsX2NvbW1pc3Npb25zBQNuaWwFA25pbAUDbmlsAwkAAAIFEGZyZWVfY29tbWlzc2lvbnMFEGZyZWVfY29tbWlzc2lvbnMEDWN1cnJlbnRTdGF0dXMJAQ5nZXRTdHJpbmdCeUtleQEJAQ1rZXlVc2VyU3RhdHVzAQUHYWRkcmVzcwMJAAACCQCxAgEFBnN0YXR1cwAAAwkAAAIFDWN1cnJlbnRTdGF0dXMCAAkAAgECF1VzZXIgaGF2ZSBubyBzdGF0dXMgeWV0CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQtrZXlVc2VyTm90ZQEFB2FkZHJlc3MFCW5vdGVUb1VzZQkAzAgCCQELU3RyaW5nRW50cnkCCQEMa2V5VXNlckxhYmVsAQUHYWRkcmVzcwUKbGFiZWxUb1VzZQUDbmlsBAtzdGF0dXNUb1NldAkBEXZhbGlkYXRlTmV3U3RhdHVzAwUGc3RhdHVzBQdhZGRyZXNzBQ1jdXJyZW50U3RhdHVzBARuYW1lCQDaBAEJAJsDAQkBDmdldFN0cmluZ0J5S2V5AQkBC2tleVVzZXJOYW1lAQUHYWRkcmVzcwQFdGh1bWIJANoEAQkAmwMBCQEOZ2V0U3RyaW5nQnlLZXkBCQEMa2V5VXNlclRodW1iAQUHYWRkcmVzcwQEZGF0ZQkBD2dldEludGVnZXJCeUtleQEJAQtrZXlVc2VyRGF0ZQEFB2FkZHJlc3MEBGpzb24JAQhtYWtlSlNPTgMFBG5hbWUFBXRodW1iCQCkAwEFBGRhdGUJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDWtleVVzZXJTdGF0dXMBBQdhZGRyZXNzBQtzdGF0dXNUb1NldAkAzAgCCQELRGVsZXRlRW50cnkBCQCsAgIJAKwCAgUNY3VycmVudFN0YXR1cwIBXwUHYWRkcmVzcwkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgULc3RhdHVzVG9TZXQCAV8FB2FkZHJlc3MFBGpzb24JAMwIAgkBC1N0cmluZ0VudHJ5AgkBC2tleVVzZXJOb3RlAQUHYWRkcmVzcwUJbm90ZVRvVXNlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQxrZXlVc2VyTGFiZWwBBQdhZGRyZXNzBQpsYWJlbFRvVXNlBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiFOb3QgYWxsb3dlZCB0byBjaGFuZ2UgdXNlciBzdGF0dXMGaW52b2tlAQpkZWxldGVVc2VyAQdhZGRyZXNzBAZjYWxsZXIJAKUIAQgFBmludm9rZQZjYWxsZXIEDWN1cnJlbnRTdGF0dXMJAQ5nZXRTdHJpbmdCeUtleQEJAQ1rZXlVc2VyU3RhdHVzAQUHYWRkcmVzcwMJAQ9jb250YWluc0VsZW1lbnQCCQDMCAIFBWNocmlzCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQZjYWxsZXIJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBC2tleVVzZXJEYXRlAQUHYWRkcmVzcwkAzAgCCQELRGVsZXRlRW50cnkBCQELa2V5VXNlckFkZHIBBQdhZGRyZXNzCQDMCAIJAQtEZWxldGVFbnRyeQEJAQtrZXlVc2VyTmFtZQEFB2FkZHJlc3MJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBC2tleVVzZXJEZXNjAQUHYWRkcmVzcwkAzAgCCQELRGVsZXRlRW50cnkBCQENa2V5VXNlclNvY2lhbAEFB2FkZHJlc3MJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBDGtleVVzZXJUaHVtYgEFB2FkZHJlc3MJAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICAgp1c2VyX25vdGVfBQdhZGRyZXNzCQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgkArAICBQ1jdXJyZW50U3RhdHVzAgFfBQdhZGRyZXNzCQDMCAIJAQtEZWxldGVFbnRyeQEJARBrZXlVc2VyUm95YWx0aWVzAQUHYWRkcmVzcwkAzAgCCQELU3RyaW5nRW50cnkCCQENa2V5VXNlclN0YXR1cwEFB2FkZHJlc3MFC3VzZXJSZW1vdmVkBQNuaWwJAAIBAgtOb3QgYWxsb3dlZAFpAQhzZXRBZ2VudAUKYXJ0aXN0QWRkcglhZ2VudEFkZHIMcHJpbWFyeVNoYXJlDnNlY29uZGFyeVNoYXJlCWlzUGFydG5lcgMJAQEhAQULZGFwcFJ1bm5pbmcJAAIBBQ5tYWludGVuYW5jZU1TRwQGY2FsbGVyCQClCAEIBQFpBmNhbGxlcgMJAQ9jb250YWluc0VsZW1lbnQCCQDMCAIFBWNocmlzCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQZjYWxsZXIDAwkBAiE9AgkAsQIBBQphcnRpc3RBZGRyACMGCQECIT0CCQCxAgEFCWFnZW50QWRkcgAjCQACAQINV3JvbmcgYWRkcmVzcwMFCWlzUGFydG5lcgkAzAgCCQELU3RyaW5nRW50cnkCCQESa2V5QXJ0aXN0QWdlbnRBZGRyAQUKYXJ0aXN0QWRkcgUJYWdlbnRBZGRyCQDMCAIJAQtTdHJpbmdFbnRyeQIJARJrZXlBZ2VudEFydGlzdEFkZHICBQlhZ2VudEFkZHIFCmFydGlzdEFkZHIFCmFydGlzdEFkZHIJAMwIAgkBDEludGVnZXJFbnRyeQIJARRrZXlQcmltYXJ5U2hhcmVBZ2VudAEFCmFydGlzdEFkZHIFDHByaW1hcnlTaGFyZQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBFmtleVNlY29uZGFyeVNoYXJlQWdlbnQBBQphcnRpc3RBZGRyBQ5zZWNvbmRhcnlTaGFyZQUDbmlsCQDMCAIJAQtTdHJpbmdFbnRyeQIJARhrZXlBcnRpc3RQdWJsaWNBZ2VudEFkZHIBBQphcnRpc3RBZGRyBQlhZ2VudEFkZHIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBGGtleVB1YmxpY0FnZW50QXJ0aXN0QWRkcgIFCWFnZW50QWRkcgUKYXJ0aXN0QWRkcgUKYXJ0aXN0QWRkcgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBGmtleVByaW1hcnlTaGFyZVB1YmxpY0FnZW50AQUKYXJ0aXN0QWRkcgUMcHJpbWFyeVNoYXJlCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEca2V5U2Vjb25kYXJ5U2hhcmVQdWJsaWNBZ2VudAEFCmFydGlzdEFkZHIFDnNlY29uZGFyeVNoYXJlBQNuaWwJAAIBAhNZb3UgYXJlIG5vdCBhbGxvd2VkAWkBCnVuc2V0QWdlbnQDCmFydGlzdEFkZHIJYWdlbnRBZGRyCWlzUGFydG5lcgMJAQEhAQULZGFwcFJ1bm5pbmcJAAIBBQ5tYWludGVuYW5jZU1TRwQGY2FsbGVyCQClCAEIBQFpBmNhbGxlcgMJAQ9jb250YWluc0VsZW1lbnQCCQDMCAIFBWNocmlzCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQZjYWxsZXIDAwkBAiE9AgkAsQIBBQphcnRpc3RBZGRyACMGCQECIT0CCQCxAgEFCWFnZW50QWRkcgAjCQACAQINV3JvbmcgYWRkcmVzcwMFCWlzUGFydG5lcgkAzAgCCQELRGVsZXRlRW50cnkBCQESa2V5QXJ0aXN0QWdlbnRBZGRyAQUKYXJ0aXN0QWRkcgkAzAgCCQELRGVsZXRlRW50cnkBCQESa2V5QWdlbnRBcnRpc3RBZGRyAgUJYWdlbnRBZGRyBQphcnRpc3RBZGRyCQDMCAIJAQtEZWxldGVFbnRyeQEJARRrZXlQcmltYXJ5U2hhcmVBZ2VudAEFCmFydGlzdEFkZHIJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBFmtleVNlY29uZGFyeVNoYXJlQWdlbnQBBQphcnRpc3RBZGRyBQNuaWwJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBGGtleUFydGlzdFB1YmxpY0FnZW50QWRkcgEFCmFydGlzdEFkZHIJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBGGtleVB1YmxpY0FnZW50QXJ0aXN0QWRkcgIFCWFnZW50QWRkcgUKYXJ0aXN0QWRkcgkAzAgCCQELRGVsZXRlRW50cnkBCQEaa2V5UHJpbWFyeVNoYXJlUHVibGljQWdlbnQBBQphcnRpc3RBZGRyCQDMCAIJAQtEZWxldGVFbnRyeQEJARxrZXlTZWNvbmRhcnlTaGFyZVB1YmxpY0FnZW50AQUKYXJ0aXN0QWRkcgUDbmlsCQACAQITWW91IGFyZSBub3QgYWxsb3dlZAFpAQtkZWxldGVFbnRyeQEFZW50cnkEBmNhbGxlcgkApQgBCAUBaQZjYWxsZXIDCQAAAgUGY2FsbGVyBQVjaHJpcwkAzAgCCQELRGVsZXRlRW50cnkBBQVlbnRyeQUDbmlsCQACAQICbm8BAnR4AQh2ZXJpZmllcgAEByRtYXRjaDAFAnR4AwkAAQIFByRtYXRjaDACF0ludm9rZVNjcmlwdFRyYW5zYWN0aW9uBANpbnYFByRtYXRjaDADAwMDCQAAAggFA2ludghmdW5jdGlvbgIMcmVnaXN0ZXJVc2VyCQAAAggFA2ludgRkQXBwBQR0aGlzBwkAAAIIBQNpbnYDZmVlAKDCHgcJAAACCAUDaW52CmZlZUFzc2V0SWQFBHVuaXQHCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACQDZBAEJAQhhc1N0cmluZwEJAJEDAggFA2ludgRhcmdzAAUDAwMDCQAAAggFA2ludghmdW5jdGlvbgIKdXBkYXRlVXNlcgkAAAIIBQNpbnYEZEFwcAUEdGhpcwcJAAACCAUDaW52A2ZlZQCgwh4HCQAAAggFA2ludgpmZWVBc3NldElkBQR1bml0BwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAkA2QQBCQEIYXNTdHJpbmcBCQCRAwIIBQNpbnYEYXJncwAFAwMDAwkAAAIIBQNpbnYIZnVuY3Rpb24CDHNldEVSQzIwVXNlcgkAAAIIBQNpbnYEZEFwcAUEdGhpcwcJAAACCAUDaW52A2ZlZQCgwh4HCQAAAggFA2ludgpmZWVBc3NldElkBQR1bml0BwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAkA2QQBCQEIYXNTdHJpbmcBCQCRAwIIBQNpbnYEYXJncwACCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACAUCdHgPc2VuZGVyUHVibGljS2V5CQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACAUCdHgPc2VuZGVyUHVibGljS2V5Iyuj3A==", "height": 2432865, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: qpa6Z1fZL6AfRGDrVtccBhFGKXEFqAeqbe9YxAg5j1g Next: Apvtbw5GPfTKxPqhdHdkc13vmJCKLF3KNEn9ZKKDqGZB Diff:
OldNewDifferences
9191 func N (J) = ("artist_agent_secondary_" + J)
9292
9393
94-func O (c) = valueOrElse(getInteger(m, c), 0)
94+func O (J) = ("artist_public_agent_" + J)
9595
9696
97-func P (Q) = if (contains(Q, "/"))
98- then if (if ((76 > size(Q)))
99- then (size(split(Q, "/")[0]) == 59)
97+func P (L,J) = ((("public_agent_" + L) + "_") + J)
98+
99+
100+func Q (J) = ("artist_public_agent_primary_" + J)
101+
102+
103+func R (J) = ("artist_public_agent_secondary_" + J)
104+
105+
106+func S (c) = valueOrElse(getInteger(m, c), 0)
107+
108+
109+func T (U) = if (contains(U, "/"))
110+ then if (if ((76 > size(U)))
111+ then (size(split(U, "/")[0]) == 59)
100112 else false)
101- then (16 > size(split(Q, "/")[1]))
113+ then (16 > size(split(U, "/")[1]))
102114 else false
103115 else false
104116
105117
106-func R (x,S,T,U,V) = {
107- let W = if ((size(U) != 0))
108- then P(U)
118+func V (x,W,X,Y,Z) = {
119+ let aa = if ((size(Y) != 0))
120+ then T(Y)
109121 else true
110- if (!(W))
122+ if (!(aa))
111123 then throw("CID don't match requirement!")
112- else if (if ((S == ""))
124+ else if (if ((W == ""))
113125 then true
114- else (T == ""))
126+ else (X == ""))
115127 then throw("Name and description cannot be empty")
116- else if ((size(T) > 600))
128+ else if ((size(X) > 600))
117129 then throw("600 Char. max description")
118- else if ((size(S) > 45))
130+ else if ((size(W) > 45))
119131 then throw("45 Char. max name")
120132 else {
121- let X = b(C(x))
122- if (if ((X == r))
133+ let ab = b(C(x))
134+ if (if ((ab == r))
123135 then true
124- else (X == s))
136+ else (ab == s))
125137 then throw("Account suspended/ removed.")
126- else if (if (!(V))
127- then (X == p)
138+ else if (if (!(Z))
139+ then (ab == p)
128140 else false)
129141 then throw("Already registered")
130- else if (if (if (!(V))
131- then (X == "")
142+ else if (if (if (!(Z))
143+ then (ab == "")
132144 else false)
133145 then l
134146 else false)
135147 then throw("Can't register, get approved first.")
136- else if (if (if (V)
137- then (X == "")
148+ else if (if (if (Z)
149+ then (ab == "")
138150 else false)
139151 then true
140- else if (V)
141- then (X == o)
152+ else if (Z)
153+ then (ab == o)
142154 else false)
143155 then throw("Register first")
144156 else true
146158 }
147159
148160
149-func Y (X,Z,aa) = {
150- let ab = [q, p, r, s, o, t]
151- let ac = if (containsElement(ab, X))
152- then X
153- else if (if ((X == v))
154- then (aa == o)
161+func ac (ab,ad,ae) = {
162+ let af = [q, p, r, s, o, t]
163+ let ag = if (containsElement(af, ab))
164+ then ab
165+ else if (if ((ab == v))
166+ then (ae == o)
155167 else false)
156168 then ""
157169 else throw("Unknown status")
158- let ad = e(E(Z))
159- if (if ((ad == 0))
160- then (ac != o)
170+ let ah = e(E(ad))
171+ if (if ((ah == 0))
172+ then (ag != o)
161173 else false)
162174 then throw("You cant set this status, user is not registered.")
163- else if (if ((aa == o))
164- then (ac == o)
175+ else if (if ((ae == o))
176+ then (ag == o)
165177 else false)
166178 then throw("User already allowed")
167- else if (if ((aa == p))
168- then (ac == o)
179+ else if (if ((ae == p))
180+ then (ag == o)
169181 else false)
170182 then throw("User already allowed & registered")
171- else if (if ((aa == q))
172- then (ac == o)
183+ else if (if ((ae == q))
184+ then (ag == o)
173185 else false)
174186 then throw("User already allowed & verified")
175- else ac
187+ else ag
176188 }
177189
178190
179-func ae (S,U,af) = (((((("{\"user_name\": \"" + S) + "\", \"user_thumb\":\"") + U) + "\",\"user_date\":\"") + af) + "\"}")
191+func ai (W,Y,aj) = (((((("{\"user_name\": \"" + W) + "\", \"user_thumb\":\"") + Y) + "\",\"user_date\":\"") + aj) + "\"}")
180192
181193
182-func ag (ah) = {
183- let ai = ah
184- if ($isInstanceOf(ai, "String"))
194+func ak (al) = {
195+ let am = al
196+ if ($isInstanceOf(am, "String"))
185197 then {
186- let aj = ai
187- aj
198+ let an = am
199+ an
188200 }
189201 else throw("Sponsored Public Key String expected")
190202 }
191203
192204
193-func ak (al,am) = {
194- let an = if ((am != ""))
195- then valueOrElse(O((toString(addressFromPublicKey(fromBase58String(am))) + "_free_txs")), 0)
205+func ao (ap,aq) = {
206+ let ar = if ((aq != ""))
207+ then valueOrElse(S((toString(addressFromPublicKey(fromBase58String(aq))) + "_free_txs")), 0)
196208 else 0
197- let x = if (if ((toBase58String(al.caller.bytes) == toString(this)))
198- then (an > 0)
209+ let x = if (if ((toBase58String(ap.caller.bytes) == toString(this)))
210+ then (ar > 0)
199211 else false)
200- then toString(addressFromPublicKey(fromBase58String(am)))
201- else toBase58String(al.caller.bytes)
202- let ao = if (if ((am != ""))
203- then (an > 0)
212+ then toString(addressFromPublicKey(fromBase58String(aq)))
213+ else toBase58String(ap.caller.bytes)
214+ let as = if (if ((aq != ""))
215+ then (ar > 0)
204216 else false)
205- then invoke(m, "useFreeTx", [toString(addressFromPublicKey(fromBase58String(am)))], nil)
217+ then invoke(m, "useFreeTx", [toString(addressFromPublicKey(fromBase58String(aq)))], nil)
206218 else unit
207- if ((ao == ao))
208- then $Tuple2(x, (an > 0))
219+ if ((as == as))
220+ then $Tuple2(x, (ar > 0))
209221 else throw("Strict value is not equal to itself.")
210222 }
211223
212224
213-@Callable(ap)
214-func setConf (c,aq) = {
215- let x = toString(ap.caller)
225+@Callable(at)
226+func setConf (c,au) = {
227+ let x = toString(at.caller)
216228 if (containsElement([f, toString(this)], x))
217- then [StringEntry(c, aq)]
229+ then [StringEntry(c, au)]
218230 else throw("You are not allowed to change this")
219231 }
220232
221233
222234
223-@Callable(ap)
224-func appRunning (ar,as) = {
225- let x = toString(ap.caller)
235+@Callable(at)
236+func appRunning (av,aw) = {
237+ let x = toString(at.caller)
226238 if (containsElement([f, toString(this)], x))
227- then [BooleanEntry(g, ar), StringEntry(h, as)]
239+ then [BooleanEntry(g, av), StringEntry(h, aw)]
228240 else throw("You are not allowed to change this")
229241 }
230242
231243
232244
233-@Callable(ap)
234-func registrationMode (at) = {
235- let x = toString(ap.caller)
245+@Callable(at)
246+func registrationMode (ax) = {
247+ let x = toString(at.caller)
236248 if (containsElement([f, toString(this)], x))
237- then [BooleanEntry(i, at)]
249+ then [BooleanEntry(i, ax)]
238250 else throw("You are not allowed to change this")
239251 }
240252
241253
242254
243-@Callable(ap)
244-func registerUser (S,T,U,au,av,am) = if (!(j))
255+@Callable(at)
256+func registerUser (W,X,Y,ay,az,aq) = if (!(j))
245257 then throw(k)
246258 else {
247- let aw = ak(ap, am)
248- let x = aw._1
249- let an = aw._2
250- let ax = toBase58String(ap.transactionId)
251- let ay = lastBlock.timestamp
252- let az = b(G(x))
253- let aA = b(H(x))
254- if (!(R(x, S, T, U, false)))
259+ let aA = ao(at, aq)
260+ let x = aA._1
261+ let ar = aA._2
262+ let aB = toBase58String(at.transactionId)
263+ let aC = lastBlock.timestamp
264+ let aD = b(G(x))
265+ let aE = b(H(x))
266+ if (!(V(x, W, X, Y, false)))
255267 then throw("Something went wrong")
256268 else {
257- let aB = ae(toBase64String(toBytes(S)), toBase64String(toBytes(U)), toString(ay))
258- if (if ((0 > av))
269+ let aF = ai(toBase64String(toBytes(W)), toBase64String(toBytes(Y)), toString(aC))
270+ if (if ((0 > az))
259271 then true
260- else (av > 1000))
272+ else (az > 1000))
261273 then throw("Royalties cannot be less than 0% or higher than 10%")
262274 else {
263- let aC = if (an)
275+ let aG = if (ar)
264276 then [ScriptTransfer(Address(fromBase58String(x)), 0, unit)]
265277 else nil
266- ([IntegerEntry(E(x), ay), StringEntry(w(x), ((ax + "_") + toString(ay))), StringEntry(y(x), S), StringEntry(z(x), T), StringEntry(A(x), au), StringEntry(B(x), U), StringEntry(C(x), p), IntegerEntry(D(x), av), DeleteEntry(("ALLOWED_" + x)), StringEntry(((p + "_") + x), aB), StringEntry(G(x), az), StringEntry(H(x), aA)] ++ aC)
278+ ([IntegerEntry(E(x), aC), StringEntry(w(x), ((aB + "_") + toString(aC))), StringEntry(y(x), W), StringEntry(z(x), X), StringEntry(A(x), ay), StringEntry(B(x), Y), StringEntry(C(x), p), IntegerEntry(D(x), az), DeleteEntry(("ALLOWED_" + x)), StringEntry(((p + "_") + x), aF), StringEntry(G(x), aD), StringEntry(H(x), aE)] ++ aG)
267279 }
268280 }
269281 }
270282
271283
272284
273-@Callable(ap)
274-func updateUser (S,T,U,au,av,am) = if (!(j))
285+@Callable(at)
286+func updateUser (W,X,Y,ay,az,aq) = if (!(j))
275287 then throw(k)
276288 else {
277- let aD = ak(ap, am)
278- let x = aD._1
279- let an = aD._2
280- let X = b(C(x))
281- if (!(R(x, S, T, U, true)))
289+ let aH = ao(at, aq)
290+ let x = aH._1
291+ let ar = aH._2
292+ let ab = b(C(x))
293+ if (!(V(x, W, X, Y, true)))
282294 then throw("Something went wrong")
283295 else {
284- let af = e(E(x))
285- let aB = ae(toBase64String(toBytes(S)), toBase64String(toBytes(U)), toString(af))
286- if (if ((0 > av))
296+ let aj = e(E(x))
297+ let aF = ai(toBase64String(toBytes(W)), toBase64String(toBytes(Y)), toString(aj))
298+ if (if ((0 > az))
287299 then true
288- else (av > 1000))
300+ else (az > 1000))
289301 then throw("Royalties cannot be less than 0% or higher than 10%")
290302 else {
291- let aC = if (an)
303+ let aG = if (ar)
292304 then [ScriptTransfer(Address(fromBase58String(x)), 0, unit)]
293305 else nil
294- ([StringEntry(y(x), S), StringEntry(z(x), T), StringEntry(A(x), au), StringEntry(B(x), U), IntegerEntry(D(x), av), StringEntry(((X + "_") + x), aB)] ++ aC)
306+ ([StringEntry(y(x), W), StringEntry(z(x), X), StringEntry(A(x), ay), StringEntry(B(x), Y), IntegerEntry(D(x), az), StringEntry(((ab + "_") + x), aF)] ++ aG)
295307 }
296308 }
297309 }
298310
299311
300312
301-@Callable(ap)
302-func setERC20User (aE,am) = if (!(j))
313+@Callable(at)
314+func setERC20User (aI,aq) = if (!(j))
303315 then throw(k)
304316 else {
305- let aF = ak(ap, am)
306- let x = aF._1
307- let an = aF._2
308- let X = b(C(x))
309- if (if ((X != p))
310- then (X != q)
317+ let aJ = ao(at, aq)
318+ let x = aJ._1
319+ let ar = aJ._2
320+ let ab = b(C(x))
321+ if (if ((ab != p))
322+ then (ab != q)
311323 else false)
312324 then throw("Not allowed to set ERC20 address")
313325 else {
314- let aG = take(aE, 2)
315- if (if ((aG != "0x"))
326+ let aK = take(aI, 2)
327+ if (if ((aK != "0x"))
316328 then true
317- else (size(aE) != 42))
329+ else (size(aI) != 42))
318330 then throw("This is not an erc20 address")
319331 else {
320- let aC = if (an)
332+ let aG = if (ar)
321333 then [ScriptTransfer(Address(fromBase58String(x)), 0, unit)]
322334 else nil
323- ([StringEntry(F(x), aE)] ++ aC)
335+ ([StringEntry(F(x), aI)] ++ aG)
324336 }
325337 }
326338 }
327339
328340
329341
330-@Callable(ap)
331-func changeUserStatus (Z,X,az,aA,aH,aI,aJ,aK) = {
332- let x = toString(ap.caller)
333- if ((size(Z) == 0))
342+@Callable(at)
343+func changeUserStatus (ad,ab,aD,aE,aL,aM,aN,aO) = {
344+ let x = toString(at.caller)
345+ if ((size(ad) == 0))
334346 then throw("Address cannot be empty")
335347 else {
336- let aL = b(G(Z))
337- let aM = b(H(Z))
338- let aN = if ((size(az) != 0))
339- then az
340- else aL
341- let aO = if ((size(aA) != 0))
342- then aA
343- else aM
348+ let aP = b(G(ad))
349+ let aQ = b(H(ad))
350+ let aR = if ((size(aD) != 0))
351+ then aD
352+ else aP
353+ let aS = if ((size(aE) != 0))
354+ then aE
355+ else aQ
344356 if (containsElement([f, toString(this)], x))
345357 then {
346- let aP = if ((aH != 0))
347- then invoke(n, "whitelistFreeCertifications", [Z, aH, true], nil)
358+ let aT = if ((aL != 0))
359+ then invoke(n, "whitelistFreeCertifications", [ad, aL, true], nil)
348360 else nil
349- if ((aP == aP))
361+ if ((aT == aT))
350362 then {
351- let aQ = if ((aI != 0))
352- then invoke(m, "whitelistFreeTxs", [Z, aI, true], nil)
363+ let aU = if ((aM != 0))
364+ then invoke(m, "whitelistFreeTxs", [ad, aM, true], nil)
353365 else nil
354- if ((aQ == aQ))
366+ if ((aU == aU))
355367 then {
356- let aR = if ((aJ != 0))
357- then invoke(m, "whitelistFreeDrop", [Z, aJ, true], nil)
368+ let aV = if ((aN != 0))
369+ then invoke(m, "whitelistFreeDrop", [ad, aN, true], nil)
358370 else nil
359- if ((aR == aR))
371+ if ((aV == aV))
360372 then {
361- let aS = if ((aK != 0))
362- then invoke(m, "whitelist", [Z, aK], nil)
373+ let aW = if ((aO != 0))
374+ then invoke(m, "whitelist", [ad, aO], nil)
363375 else nil
364- if ((aS == aS))
376+ if ((aW == aW))
365377 then {
366- let aa = b(C(Z))
367- if ((size(X) == 0))
368- then if ((aa == ""))
378+ let ae = b(C(ad))
379+ if ((size(ab) == 0))
380+ then if ((ae == ""))
369381 then throw("User have no status yet")
370- else [StringEntry(G(Z), aN), StringEntry(H(Z), aO)]
382+ else [StringEntry(G(ad), aR), StringEntry(H(ad), aS)]
371383 else {
372- let ac = Y(X, Z, aa)
373- let S = toBase64String(toBytes(b(y(Z))))
374- let U = toBase64String(toBytes(b(B(Z))))
375- let af = e(E(Z))
376- let aB = ae(S, U, toString(af))
377-[StringEntry(C(Z), ac), DeleteEntry(((aa + "_") + Z)), StringEntry(((ac + "_") + Z), aB), StringEntry(G(Z), aN), StringEntry(H(Z), aO)]
384+ let ag = ac(ab, ad, ae)
385+ let W = toBase64String(toBytes(b(y(ad))))
386+ let Y = toBase64String(toBytes(b(B(ad))))
387+ let aj = e(E(ad))
388+ let aF = ai(W, Y, toString(aj))
389+[StringEntry(C(ad), ag), DeleteEntry(((ae + "_") + ad)), StringEntry(((ag + "_") + ad), aF), StringEntry(G(ad), aR), StringEntry(H(ad), aS)]
378390 }
379391 }
380392 else throw("Strict value is not equal to itself.")
391403
392404
393405
394-@Callable(ap)
395-func deleteUser (Z) = {
396- let x = toString(ap.caller)
397- let aa = b(C(Z))
406+@Callable(at)
407+func deleteUser (ad) = {
408+ let x = toString(at.caller)
409+ let ae = b(C(ad))
398410 if (containsElement([f, toString(this)], x))
399- then [DeleteEntry(E(Z)), DeleteEntry(w(Z)), DeleteEntry(y(Z)), DeleteEntry(z(Z)), DeleteEntry(A(Z)), DeleteEntry(B(Z)), DeleteEntry(("user_note_" + Z)), DeleteEntry(((aa + "_") + Z)), DeleteEntry(D(Z)), StringEntry(C(Z), s)]
411+ then [DeleteEntry(E(ad)), DeleteEntry(w(ad)), DeleteEntry(y(ad)), DeleteEntry(z(ad)), DeleteEntry(A(ad)), DeleteEntry(B(ad)), DeleteEntry(("user_note_" + ad)), DeleteEntry(((ae + "_") + ad)), DeleteEntry(D(ad)), StringEntry(C(ad), s)]
400412 else throw("Not allowed")
401413 }
402414
403415
404416
405-@Callable(al)
406-func setAgent (J,L,aT,aU) = if (!(j))
417+@Callable(ap)
418+func setAgent (J,L,aX,aY,aZ) = if (!(j))
407419 then throw(k)
408420 else {
409- let x = toString(al.caller)
421+ let x = toString(ap.caller)
410422 if (containsElement([f, toString(this)], x))
411423 then if (if ((size(J) != 35))
412424 then true
413425 else (size(L) != 35))
414426 then throw("Wrong address")
415- else [StringEntry(I(J), L), StringEntry(K(L, J), J), IntegerEntry(M(J), aT), IntegerEntry(N(J), aU)]
427+ else if (aZ)
428+ then [StringEntry(I(J), L), StringEntry(K(L, J), J), IntegerEntry(M(J), aX), IntegerEntry(N(J), aY)]
429+ else [StringEntry(O(J), L), StringEntry(P(L, J), J), IntegerEntry(Q(J), aX), IntegerEntry(R(J), aY)]
416430 else throw("You are not allowed")
417431 }
418432
419433
420434
421-@Callable(al)
422-func unsetAgent (J,L) = if (!(j))
435+@Callable(ap)
436+func unsetAgent (J,L,aZ) = if (!(j))
423437 then throw(k)
424438 else {
425- let x = toString(al.caller)
439+ let x = toString(ap.caller)
426440 if (containsElement([f, toString(this)], x))
427441 then if (if ((size(J) != 35))
428442 then true
429443 else (size(L) != 35))
430444 then throw("Wrong address")
431- else [DeleteEntry(I(J)), DeleteEntry(K(L, J)), DeleteEntry(M(J)), DeleteEntry(N(J))]
445+ else if (aZ)
446+ then [DeleteEntry(I(J)), DeleteEntry(K(L, J)), DeleteEntry(M(J)), DeleteEntry(N(J))]
447+ else [DeleteEntry(O(J)), DeleteEntry(P(L, J)), DeleteEntry(Q(J)), DeleteEntry(R(J))]
432448 else throw("You are not allowed")
433449 }
434450
435451
436452
437-@Callable(al)
438-func deleteEntry (aV) = {
439- let x = toString(al.caller)
453+@Callable(ap)
454+func deleteEntry (ba) = {
455+ let x = toString(ap.caller)
440456 if ((x == f))
441- then [DeleteEntry(aV)]
457+ then [DeleteEntry(ba)]
442458 else throw("no")
443459 }
444460
445461
446-@Verifier(aW)
447-func aX () = {
448- let ai = aW
449- if ($isInstanceOf(ai, "InvokeScriptTransaction"))
462+@Verifier(bb)
463+func bc () = {
464+ let am = bb
465+ if ($isInstanceOf(am, "InvokeScriptTransaction"))
450466 then {
451- let aY = ai
452- if (if (if (if ((aY.function == "registerUser"))
453- then (aY.dApp == this)
467+ let bd = am
468+ if (if (if (if ((bd.function == "registerUser"))
469+ then (bd.dApp == this)
454470 else false)
455- then (aY.fee == 500000)
471+ then (bd.fee == 500000)
456472 else false)
457- then (aY.feeAssetId == unit)
473+ then (bd.feeAssetId == unit)
458474 else false)
459- then sigVerify(aW.bodyBytes, aW.proofs[0], fromBase58String(ag(aY.args[5])))
460- else if (if (if (if ((aY.function == "updateUser"))
461- then (aY.dApp == this)
475+ then sigVerify(bb.bodyBytes, bb.proofs[0], fromBase58String(ak(bd.args[5])))
476+ else if (if (if (if ((bd.function == "updateUser"))
477+ then (bd.dApp == this)
462478 else false)
463- then (aY.fee == 500000)
479+ then (bd.fee == 500000)
464480 else false)
465- then (aY.feeAssetId == unit)
481+ then (bd.feeAssetId == unit)
466482 else false)
467- then sigVerify(aW.bodyBytes, aW.proofs[0], fromBase58String(ag(aY.args[5])))
468- else if (if (if (if ((aY.function == "setERC20User"))
469- then (aY.dApp == this)
483+ then sigVerify(bb.bodyBytes, bb.proofs[0], fromBase58String(ak(bd.args[5])))
484+ else if (if (if (if ((bd.function == "setERC20User"))
485+ then (bd.dApp == this)
470486 else false)
471- then (aY.fee == 500000)
487+ then (bd.fee == 500000)
472488 else false)
473- then (aY.feeAssetId == unit)
489+ then (bd.feeAssetId == unit)
474490 else false)
475- then sigVerify(aW.bodyBytes, aW.proofs[0], fromBase58String(ag(aY.args[2])))
476- else sigVerify(aW.bodyBytes, aW.proofs[0], aW.senderPublicKey)
491+ then sigVerify(bb.bodyBytes, bb.proofs[0], fromBase58String(ak(bd.args[2])))
492+ else sigVerify(bb.bodyBytes, bb.proofs[0], bb.senderPublicKey)
477493 }
478- else sigVerify(aW.bodyBytes, aW.proofs[0], aW.senderPublicKey)
494+ else sigVerify(bb.bodyBytes, bb.proofs[0], bb.senderPublicKey)
479495 }
480496
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "1.5"
55
66 func b (c) = valueOrElse(getString(this, c), "")
77
88
99 func d (c) = valueOrElse(getBoolean(this, c), false)
1010
1111
1212 func e (c) = valueOrElse(getInteger(this, c), 0)
1313
1414
1515 let f = b("conf_admin_1")
1616
1717 let g = "conf_dapp_is_running"
1818
1919 let h = "conf_maintenance_msg"
2020
2121 let i = "conf_whitelisted_only"
2222
2323 let j = valueOrElse(getBoolean(this, g), true)
2424
2525 let k = valueOrElse(getString(this, h), "")
2626
2727 let l = valueOrElse(getBoolean(this, i), true)
2828
2929 let m = value(addressFromString(b("conf_whitelist_dapp")))
3030
3131 let n = value(addressFromString(b("conf_signweb_dapp")))
3232
3333 let o = "ALLOWED"
3434
3535 let p = "REGISTERED"
3636
3737 let q = "VERIFIED"
3838
3939 let r = "SUSPENDED"
4040
4141 let s = "REMOVED"
4242
4343 let t = "CHANGE_REQUIRED"
4444
4545 let u = "UNREGISTERED"
4646
4747 let v = "RESET"
4848
4949 func w (x) = ("user_" + x)
5050
5151
5252 func y (x) = ("user_name_" + x)
5353
5454
5555 func z (x) = ("user_desc_" + x)
5656
5757
5858 func A (x) = ("user_social_" + x)
5959
6060
6161 func B (x) = ("user_thumb_" + x)
6262
6363
6464 func C (x) = ("user_status_" + x)
6565
6666
6767 func D (x) = ("user_royalties_" + x)
6868
6969
7070 func E (x) = ("user_date_" + x)
7171
7272
7373 func F (x) = ("user_ERC20_" + x)
7474
7575
7676 func G (x) = ("user_note_" + x)
7777
7878
7979 func H (x) = ("user_label_" + x)
8080
8181
8282 func I (J) = ("artist_agent_" + J)
8383
8484
8585 func K (L,J) = ((("agent_" + L) + "_") + J)
8686
8787
8888 func M (J) = ("artist_agent_primary_" + J)
8989
9090
9191 func N (J) = ("artist_agent_secondary_" + J)
9292
9393
94-func O (c) = valueOrElse(getInteger(m, c), 0)
94+func O (J) = ("artist_public_agent_" + J)
9595
9696
97-func P (Q) = if (contains(Q, "/"))
98- then if (if ((76 > size(Q)))
99- then (size(split(Q, "/")[0]) == 59)
97+func P (L,J) = ((("public_agent_" + L) + "_") + J)
98+
99+
100+func Q (J) = ("artist_public_agent_primary_" + J)
101+
102+
103+func R (J) = ("artist_public_agent_secondary_" + J)
104+
105+
106+func S (c) = valueOrElse(getInteger(m, c), 0)
107+
108+
109+func T (U) = if (contains(U, "/"))
110+ then if (if ((76 > size(U)))
111+ then (size(split(U, "/")[0]) == 59)
100112 else false)
101- then (16 > size(split(Q, "/")[1]))
113+ then (16 > size(split(U, "/")[1]))
102114 else false
103115 else false
104116
105117
106-func R (x,S,T,U,V) = {
107- let W = if ((size(U) != 0))
108- then P(U)
118+func V (x,W,X,Y,Z) = {
119+ let aa = if ((size(Y) != 0))
120+ then T(Y)
109121 else true
110- if (!(W))
122+ if (!(aa))
111123 then throw("CID don't match requirement!")
112- else if (if ((S == ""))
124+ else if (if ((W == ""))
113125 then true
114- else (T == ""))
126+ else (X == ""))
115127 then throw("Name and description cannot be empty")
116- else if ((size(T) > 600))
128+ else if ((size(X) > 600))
117129 then throw("600 Char. max description")
118- else if ((size(S) > 45))
130+ else if ((size(W) > 45))
119131 then throw("45 Char. max name")
120132 else {
121- let X = b(C(x))
122- if (if ((X == r))
133+ let ab = b(C(x))
134+ if (if ((ab == r))
123135 then true
124- else (X == s))
136+ else (ab == s))
125137 then throw("Account suspended/ removed.")
126- else if (if (!(V))
127- then (X == p)
138+ else if (if (!(Z))
139+ then (ab == p)
128140 else false)
129141 then throw("Already registered")
130- else if (if (if (!(V))
131- then (X == "")
142+ else if (if (if (!(Z))
143+ then (ab == "")
132144 else false)
133145 then l
134146 else false)
135147 then throw("Can't register, get approved first.")
136- else if (if (if (V)
137- then (X == "")
148+ else if (if (if (Z)
149+ then (ab == "")
138150 else false)
139151 then true
140- else if (V)
141- then (X == o)
152+ else if (Z)
153+ then (ab == o)
142154 else false)
143155 then throw("Register first")
144156 else true
145157 }
146158 }
147159
148160
149-func Y (X,Z,aa) = {
150- let ab = [q, p, r, s, o, t]
151- let ac = if (containsElement(ab, X))
152- then X
153- else if (if ((X == v))
154- then (aa == o)
161+func ac (ab,ad,ae) = {
162+ let af = [q, p, r, s, o, t]
163+ let ag = if (containsElement(af, ab))
164+ then ab
165+ else if (if ((ab == v))
166+ then (ae == o)
155167 else false)
156168 then ""
157169 else throw("Unknown status")
158- let ad = e(E(Z))
159- if (if ((ad == 0))
160- then (ac != o)
170+ let ah = e(E(ad))
171+ if (if ((ah == 0))
172+ then (ag != o)
161173 else false)
162174 then throw("You cant set this status, user is not registered.")
163- else if (if ((aa == o))
164- then (ac == o)
175+ else if (if ((ae == o))
176+ then (ag == o)
165177 else false)
166178 then throw("User already allowed")
167- else if (if ((aa == p))
168- then (ac == o)
179+ else if (if ((ae == p))
180+ then (ag == o)
169181 else false)
170182 then throw("User already allowed & registered")
171- else if (if ((aa == q))
172- then (ac == o)
183+ else if (if ((ae == q))
184+ then (ag == o)
173185 else false)
174186 then throw("User already allowed & verified")
175- else ac
187+ else ag
176188 }
177189
178190
179-func ae (S,U,af) = (((((("{\"user_name\": \"" + S) + "\", \"user_thumb\":\"") + U) + "\",\"user_date\":\"") + af) + "\"}")
191+func ai (W,Y,aj) = (((((("{\"user_name\": \"" + W) + "\", \"user_thumb\":\"") + Y) + "\",\"user_date\":\"") + aj) + "\"}")
180192
181193
182-func ag (ah) = {
183- let ai = ah
184- if ($isInstanceOf(ai, "String"))
194+func ak (al) = {
195+ let am = al
196+ if ($isInstanceOf(am, "String"))
185197 then {
186- let aj = ai
187- aj
198+ let an = am
199+ an
188200 }
189201 else throw("Sponsored Public Key String expected")
190202 }
191203
192204
193-func ak (al,am) = {
194- let an = if ((am != ""))
195- then valueOrElse(O((toString(addressFromPublicKey(fromBase58String(am))) + "_free_txs")), 0)
205+func ao (ap,aq) = {
206+ let ar = if ((aq != ""))
207+ then valueOrElse(S((toString(addressFromPublicKey(fromBase58String(aq))) + "_free_txs")), 0)
196208 else 0
197- let x = if (if ((toBase58String(al.caller.bytes) == toString(this)))
198- then (an > 0)
209+ let x = if (if ((toBase58String(ap.caller.bytes) == toString(this)))
210+ then (ar > 0)
199211 else false)
200- then toString(addressFromPublicKey(fromBase58String(am)))
201- else toBase58String(al.caller.bytes)
202- let ao = if (if ((am != ""))
203- then (an > 0)
212+ then toString(addressFromPublicKey(fromBase58String(aq)))
213+ else toBase58String(ap.caller.bytes)
214+ let as = if (if ((aq != ""))
215+ then (ar > 0)
204216 else false)
205- then invoke(m, "useFreeTx", [toString(addressFromPublicKey(fromBase58String(am)))], nil)
217+ then invoke(m, "useFreeTx", [toString(addressFromPublicKey(fromBase58String(aq)))], nil)
206218 else unit
207- if ((ao == ao))
208- then $Tuple2(x, (an > 0))
219+ if ((as == as))
220+ then $Tuple2(x, (ar > 0))
209221 else throw("Strict value is not equal to itself.")
210222 }
211223
212224
213-@Callable(ap)
214-func setConf (c,aq) = {
215- let x = toString(ap.caller)
225+@Callable(at)
226+func setConf (c,au) = {
227+ let x = toString(at.caller)
216228 if (containsElement([f, toString(this)], x))
217- then [StringEntry(c, aq)]
229+ then [StringEntry(c, au)]
218230 else throw("You are not allowed to change this")
219231 }
220232
221233
222234
223-@Callable(ap)
224-func appRunning (ar,as) = {
225- let x = toString(ap.caller)
235+@Callable(at)
236+func appRunning (av,aw) = {
237+ let x = toString(at.caller)
226238 if (containsElement([f, toString(this)], x))
227- then [BooleanEntry(g, ar), StringEntry(h, as)]
239+ then [BooleanEntry(g, av), StringEntry(h, aw)]
228240 else throw("You are not allowed to change this")
229241 }
230242
231243
232244
233-@Callable(ap)
234-func registrationMode (at) = {
235- let x = toString(ap.caller)
245+@Callable(at)
246+func registrationMode (ax) = {
247+ let x = toString(at.caller)
236248 if (containsElement([f, toString(this)], x))
237- then [BooleanEntry(i, at)]
249+ then [BooleanEntry(i, ax)]
238250 else throw("You are not allowed to change this")
239251 }
240252
241253
242254
243-@Callable(ap)
244-func registerUser (S,T,U,au,av,am) = if (!(j))
255+@Callable(at)
256+func registerUser (W,X,Y,ay,az,aq) = if (!(j))
245257 then throw(k)
246258 else {
247- let aw = ak(ap, am)
248- let x = aw._1
249- let an = aw._2
250- let ax = toBase58String(ap.transactionId)
251- let ay = lastBlock.timestamp
252- let az = b(G(x))
253- let aA = b(H(x))
254- if (!(R(x, S, T, U, false)))
259+ let aA = ao(at, aq)
260+ let x = aA._1
261+ let ar = aA._2
262+ let aB = toBase58String(at.transactionId)
263+ let aC = lastBlock.timestamp
264+ let aD = b(G(x))
265+ let aE = b(H(x))
266+ if (!(V(x, W, X, Y, false)))
255267 then throw("Something went wrong")
256268 else {
257- let aB = ae(toBase64String(toBytes(S)), toBase64String(toBytes(U)), toString(ay))
258- if (if ((0 > av))
269+ let aF = ai(toBase64String(toBytes(W)), toBase64String(toBytes(Y)), toString(aC))
270+ if (if ((0 > az))
259271 then true
260- else (av > 1000))
272+ else (az > 1000))
261273 then throw("Royalties cannot be less than 0% or higher than 10%")
262274 else {
263- let aC = if (an)
275+ let aG = if (ar)
264276 then [ScriptTransfer(Address(fromBase58String(x)), 0, unit)]
265277 else nil
266- ([IntegerEntry(E(x), ay), StringEntry(w(x), ((ax + "_") + toString(ay))), StringEntry(y(x), S), StringEntry(z(x), T), StringEntry(A(x), au), StringEntry(B(x), U), StringEntry(C(x), p), IntegerEntry(D(x), av), DeleteEntry(("ALLOWED_" + x)), StringEntry(((p + "_") + x), aB), StringEntry(G(x), az), StringEntry(H(x), aA)] ++ aC)
278+ ([IntegerEntry(E(x), aC), StringEntry(w(x), ((aB + "_") + toString(aC))), StringEntry(y(x), W), StringEntry(z(x), X), StringEntry(A(x), ay), StringEntry(B(x), Y), StringEntry(C(x), p), IntegerEntry(D(x), az), DeleteEntry(("ALLOWED_" + x)), StringEntry(((p + "_") + x), aF), StringEntry(G(x), aD), StringEntry(H(x), aE)] ++ aG)
267279 }
268280 }
269281 }
270282
271283
272284
273-@Callable(ap)
274-func updateUser (S,T,U,au,av,am) = if (!(j))
285+@Callable(at)
286+func updateUser (W,X,Y,ay,az,aq) = if (!(j))
275287 then throw(k)
276288 else {
277- let aD = ak(ap, am)
278- let x = aD._1
279- let an = aD._2
280- let X = b(C(x))
281- if (!(R(x, S, T, U, true)))
289+ let aH = ao(at, aq)
290+ let x = aH._1
291+ let ar = aH._2
292+ let ab = b(C(x))
293+ if (!(V(x, W, X, Y, true)))
282294 then throw("Something went wrong")
283295 else {
284- let af = e(E(x))
285- let aB = ae(toBase64String(toBytes(S)), toBase64String(toBytes(U)), toString(af))
286- if (if ((0 > av))
296+ let aj = e(E(x))
297+ let aF = ai(toBase64String(toBytes(W)), toBase64String(toBytes(Y)), toString(aj))
298+ if (if ((0 > az))
287299 then true
288- else (av > 1000))
300+ else (az > 1000))
289301 then throw("Royalties cannot be less than 0% or higher than 10%")
290302 else {
291- let aC = if (an)
303+ let aG = if (ar)
292304 then [ScriptTransfer(Address(fromBase58String(x)), 0, unit)]
293305 else nil
294- ([StringEntry(y(x), S), StringEntry(z(x), T), StringEntry(A(x), au), StringEntry(B(x), U), IntegerEntry(D(x), av), StringEntry(((X + "_") + x), aB)] ++ aC)
306+ ([StringEntry(y(x), W), StringEntry(z(x), X), StringEntry(A(x), ay), StringEntry(B(x), Y), IntegerEntry(D(x), az), StringEntry(((ab + "_") + x), aF)] ++ aG)
295307 }
296308 }
297309 }
298310
299311
300312
301-@Callable(ap)
302-func setERC20User (aE,am) = if (!(j))
313+@Callable(at)
314+func setERC20User (aI,aq) = if (!(j))
303315 then throw(k)
304316 else {
305- let aF = ak(ap, am)
306- let x = aF._1
307- let an = aF._2
308- let X = b(C(x))
309- if (if ((X != p))
310- then (X != q)
317+ let aJ = ao(at, aq)
318+ let x = aJ._1
319+ let ar = aJ._2
320+ let ab = b(C(x))
321+ if (if ((ab != p))
322+ then (ab != q)
311323 else false)
312324 then throw("Not allowed to set ERC20 address")
313325 else {
314- let aG = take(aE, 2)
315- if (if ((aG != "0x"))
326+ let aK = take(aI, 2)
327+ if (if ((aK != "0x"))
316328 then true
317- else (size(aE) != 42))
329+ else (size(aI) != 42))
318330 then throw("This is not an erc20 address")
319331 else {
320- let aC = if (an)
332+ let aG = if (ar)
321333 then [ScriptTransfer(Address(fromBase58String(x)), 0, unit)]
322334 else nil
323- ([StringEntry(F(x), aE)] ++ aC)
335+ ([StringEntry(F(x), aI)] ++ aG)
324336 }
325337 }
326338 }
327339
328340
329341
330-@Callable(ap)
331-func changeUserStatus (Z,X,az,aA,aH,aI,aJ,aK) = {
332- let x = toString(ap.caller)
333- if ((size(Z) == 0))
342+@Callable(at)
343+func changeUserStatus (ad,ab,aD,aE,aL,aM,aN,aO) = {
344+ let x = toString(at.caller)
345+ if ((size(ad) == 0))
334346 then throw("Address cannot be empty")
335347 else {
336- let aL = b(G(Z))
337- let aM = b(H(Z))
338- let aN = if ((size(az) != 0))
339- then az
340- else aL
341- let aO = if ((size(aA) != 0))
342- then aA
343- else aM
348+ let aP = b(G(ad))
349+ let aQ = b(H(ad))
350+ let aR = if ((size(aD) != 0))
351+ then aD
352+ else aP
353+ let aS = if ((size(aE) != 0))
354+ then aE
355+ else aQ
344356 if (containsElement([f, toString(this)], x))
345357 then {
346- let aP = if ((aH != 0))
347- then invoke(n, "whitelistFreeCertifications", [Z, aH, true], nil)
358+ let aT = if ((aL != 0))
359+ then invoke(n, "whitelistFreeCertifications", [ad, aL, true], nil)
348360 else nil
349- if ((aP == aP))
361+ if ((aT == aT))
350362 then {
351- let aQ = if ((aI != 0))
352- then invoke(m, "whitelistFreeTxs", [Z, aI, true], nil)
363+ let aU = if ((aM != 0))
364+ then invoke(m, "whitelistFreeTxs", [ad, aM, true], nil)
353365 else nil
354- if ((aQ == aQ))
366+ if ((aU == aU))
355367 then {
356- let aR = if ((aJ != 0))
357- then invoke(m, "whitelistFreeDrop", [Z, aJ, true], nil)
368+ let aV = if ((aN != 0))
369+ then invoke(m, "whitelistFreeDrop", [ad, aN, true], nil)
358370 else nil
359- if ((aR == aR))
371+ if ((aV == aV))
360372 then {
361- let aS = if ((aK != 0))
362- then invoke(m, "whitelist", [Z, aK], nil)
373+ let aW = if ((aO != 0))
374+ then invoke(m, "whitelist", [ad, aO], nil)
363375 else nil
364- if ((aS == aS))
376+ if ((aW == aW))
365377 then {
366- let aa = b(C(Z))
367- if ((size(X) == 0))
368- then if ((aa == ""))
378+ let ae = b(C(ad))
379+ if ((size(ab) == 0))
380+ then if ((ae == ""))
369381 then throw("User have no status yet")
370- else [StringEntry(G(Z), aN), StringEntry(H(Z), aO)]
382+ else [StringEntry(G(ad), aR), StringEntry(H(ad), aS)]
371383 else {
372- let ac = Y(X, Z, aa)
373- let S = toBase64String(toBytes(b(y(Z))))
374- let U = toBase64String(toBytes(b(B(Z))))
375- let af = e(E(Z))
376- let aB = ae(S, U, toString(af))
377-[StringEntry(C(Z), ac), DeleteEntry(((aa + "_") + Z)), StringEntry(((ac + "_") + Z), aB), StringEntry(G(Z), aN), StringEntry(H(Z), aO)]
384+ let ag = ac(ab, ad, ae)
385+ let W = toBase64String(toBytes(b(y(ad))))
386+ let Y = toBase64String(toBytes(b(B(ad))))
387+ let aj = e(E(ad))
388+ let aF = ai(W, Y, toString(aj))
389+[StringEntry(C(ad), ag), DeleteEntry(((ae + "_") + ad)), StringEntry(((ag + "_") + ad), aF), StringEntry(G(ad), aR), StringEntry(H(ad), aS)]
378390 }
379391 }
380392 else throw("Strict value is not equal to itself.")
381393 }
382394 else throw("Strict value is not equal to itself.")
383395 }
384396 else throw("Strict value is not equal to itself.")
385397 }
386398 else throw("Strict value is not equal to itself.")
387399 }
388400 else throw("Not allowed to change user status")
389401 }
390402 }
391403
392404
393405
394-@Callable(ap)
395-func deleteUser (Z) = {
396- let x = toString(ap.caller)
397- let aa = b(C(Z))
406+@Callable(at)
407+func deleteUser (ad) = {
408+ let x = toString(at.caller)
409+ let ae = b(C(ad))
398410 if (containsElement([f, toString(this)], x))
399- then [DeleteEntry(E(Z)), DeleteEntry(w(Z)), DeleteEntry(y(Z)), DeleteEntry(z(Z)), DeleteEntry(A(Z)), DeleteEntry(B(Z)), DeleteEntry(("user_note_" + Z)), DeleteEntry(((aa + "_") + Z)), DeleteEntry(D(Z)), StringEntry(C(Z), s)]
411+ then [DeleteEntry(E(ad)), DeleteEntry(w(ad)), DeleteEntry(y(ad)), DeleteEntry(z(ad)), DeleteEntry(A(ad)), DeleteEntry(B(ad)), DeleteEntry(("user_note_" + ad)), DeleteEntry(((ae + "_") + ad)), DeleteEntry(D(ad)), StringEntry(C(ad), s)]
400412 else throw("Not allowed")
401413 }
402414
403415
404416
405-@Callable(al)
406-func setAgent (J,L,aT,aU) = if (!(j))
417+@Callable(ap)
418+func setAgent (J,L,aX,aY,aZ) = if (!(j))
407419 then throw(k)
408420 else {
409- let x = toString(al.caller)
421+ let x = toString(ap.caller)
410422 if (containsElement([f, toString(this)], x))
411423 then if (if ((size(J) != 35))
412424 then true
413425 else (size(L) != 35))
414426 then throw("Wrong address")
415- else [StringEntry(I(J), L), StringEntry(K(L, J), J), IntegerEntry(M(J), aT), IntegerEntry(N(J), aU)]
427+ else if (aZ)
428+ then [StringEntry(I(J), L), StringEntry(K(L, J), J), IntegerEntry(M(J), aX), IntegerEntry(N(J), aY)]
429+ else [StringEntry(O(J), L), StringEntry(P(L, J), J), IntegerEntry(Q(J), aX), IntegerEntry(R(J), aY)]
416430 else throw("You are not allowed")
417431 }
418432
419433
420434
421-@Callable(al)
422-func unsetAgent (J,L) = if (!(j))
435+@Callable(ap)
436+func unsetAgent (J,L,aZ) = if (!(j))
423437 then throw(k)
424438 else {
425- let x = toString(al.caller)
439+ let x = toString(ap.caller)
426440 if (containsElement([f, toString(this)], x))
427441 then if (if ((size(J) != 35))
428442 then true
429443 else (size(L) != 35))
430444 then throw("Wrong address")
431- else [DeleteEntry(I(J)), DeleteEntry(K(L, J)), DeleteEntry(M(J)), DeleteEntry(N(J))]
445+ else if (aZ)
446+ then [DeleteEntry(I(J)), DeleteEntry(K(L, J)), DeleteEntry(M(J)), DeleteEntry(N(J))]
447+ else [DeleteEntry(O(J)), DeleteEntry(P(L, J)), DeleteEntry(Q(J)), DeleteEntry(R(J))]
432448 else throw("You are not allowed")
433449 }
434450
435451
436452
437-@Callable(al)
438-func deleteEntry (aV) = {
439- let x = toString(al.caller)
453+@Callable(ap)
454+func deleteEntry (ba) = {
455+ let x = toString(ap.caller)
440456 if ((x == f))
441- then [DeleteEntry(aV)]
457+ then [DeleteEntry(ba)]
442458 else throw("no")
443459 }
444460
445461
446-@Verifier(aW)
447-func aX () = {
448- let ai = aW
449- if ($isInstanceOf(ai, "InvokeScriptTransaction"))
462+@Verifier(bb)
463+func bc () = {
464+ let am = bb
465+ if ($isInstanceOf(am, "InvokeScriptTransaction"))
450466 then {
451- let aY = ai
452- if (if (if (if ((aY.function == "registerUser"))
453- then (aY.dApp == this)
467+ let bd = am
468+ if (if (if (if ((bd.function == "registerUser"))
469+ then (bd.dApp == this)
454470 else false)
455- then (aY.fee == 500000)
471+ then (bd.fee == 500000)
456472 else false)
457- then (aY.feeAssetId == unit)
473+ then (bd.feeAssetId == unit)
458474 else false)
459- then sigVerify(aW.bodyBytes, aW.proofs[0], fromBase58String(ag(aY.args[5])))
460- else if (if (if (if ((aY.function == "updateUser"))
461- then (aY.dApp == this)
475+ then sigVerify(bb.bodyBytes, bb.proofs[0], fromBase58String(ak(bd.args[5])))
476+ else if (if (if (if ((bd.function == "updateUser"))
477+ then (bd.dApp == this)
462478 else false)
463- then (aY.fee == 500000)
479+ then (bd.fee == 500000)
464480 else false)
465- then (aY.feeAssetId == unit)
481+ then (bd.feeAssetId == unit)
466482 else false)
467- then sigVerify(aW.bodyBytes, aW.proofs[0], fromBase58String(ag(aY.args[5])))
468- else if (if (if (if ((aY.function == "setERC20User"))
469- then (aY.dApp == this)
483+ then sigVerify(bb.bodyBytes, bb.proofs[0], fromBase58String(ak(bd.args[5])))
484+ else if (if (if (if ((bd.function == "setERC20User"))
485+ then (bd.dApp == this)
470486 else false)
471- then (aY.fee == 500000)
487+ then (bd.fee == 500000)
472488 else false)
473- then (aY.feeAssetId == unit)
489+ then (bd.feeAssetId == unit)
474490 else false)
475- then sigVerify(aW.bodyBytes, aW.proofs[0], fromBase58String(ag(aY.args[2])))
476- else sigVerify(aW.bodyBytes, aW.proofs[0], aW.senderPublicKey)
491+ then sigVerify(bb.bodyBytes, bb.proofs[0], fromBase58String(ak(bd.args[2])))
492+ else sigVerify(bb.bodyBytes, bb.proofs[0], bb.senderPublicKey)
477493 }
478- else sigVerify(aW.bodyBytes, aW.proofs[0], aW.senderPublicKey)
494+ else sigVerify(bb.bodyBytes, bb.proofs[0], bb.senderPublicKey)
479495 }
480496

github/deemru/w8io/026f985 
168.27 ms