tx · HUBnemqiBAEuFsRwe4GNxdgjSSXdW3LnFEjb1up741yK

3N8xXaYjE27Aa79d5hHrhHu9HaFoTBmhDEj:  -0.01300000 Waves

2023.01.28 07:24 [2424334] smart account 3N8xXaYjE27Aa79d5hHrhHu9HaFoTBmhDEj > SELF 0.00000000 Waves

{ "type": 13, "id": "HUBnemqiBAEuFsRwe4GNxdgjSSXdW3LnFEjb1up741yK", "fee": 1300000, "feeAssetId": null, "timestamp": 1674879880502, "version": 2, "chainId": 84, "sender": "3N8xXaYjE27Aa79d5hHrhHu9HaFoTBmhDEj", "senderPublicKey": "A2m227AHcq7gWfSU59Q3UJaqkEa7SccFYmJuWHbFrrKE", "proofs": [ "xnNF2E7pzg2JvvZXKHz25TXRZbRHDSwPtHNitjqQVbP3aNiQNjqbMGAx9sh1zS8rJ33vreNax9ZZbad2Ldb5i8r" ], "script": "base64:BgJQCAISBAoCCAgSBAoCBAgSAwoBBBIICgYICAgIAQgSCAoGCAgICAEIEgQKAggIEgkKBwgICAgBAQESAwoBCBIGCgQICAEBEgQKAggIEgMKAQgrAAdWRVJTSU9OAgMxLjUBDmdldFN0cmluZ0J5S2V5AQNrZXkJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUDa2V5AgABD2dldEJvb2xlYW5CeUtleQEDa2V5CQELdmFsdWVPckVsc2UCCQCbCAIFBHRoaXMFA2tleQcBD2dldEludGVnZXJCeUtleQEDa2V5CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFA2tleQAAAAVjaHJpcwkBDmdldFN0cmluZ0J5S2V5AQIMY29uZl9hZG1pbl8xAA5kYXBwUnVubmluZ0tleQIUY29uZl9kYXBwX2lzX3J1bm5pbmcAEW1haW50ZW5hbmNlTVNHS2V5AhRjb25mX21haW50ZW5hbmNlX21zZwASd2hpdGVsaXN0ZWRvbmx5S2V5AhVjb25mX3doaXRlbGlzdGVkX29ubHkAC2RhcHBSdW5uaW5nCQELdmFsdWVPckVsc2UCCQCbCAIFBHRoaXMFDmRhcHBSdW5uaW5nS2V5BgAObWFpbnRlbmFuY2VNU0cJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwURbWFpbnRlbmFuY2VNU0dLZXkCAAAPd2hpdGVsaXN0ZWRvbmx5CQELdmFsdWVPckVsc2UCCQCbCAIFBHRoaXMFEndoaXRlbGlzdGVkb25seUtleQYADXdoaXRlbGlzdERhcHAJAQV2YWx1ZQEJAKYIAQkBDmdldFN0cmluZ0J5S2V5AQITY29uZl93aGl0ZWxpc3RfZGFwcAAIc2lnbkRhcHAJAQV2YWx1ZQEJAKYIAQkBDmdldFN0cmluZ0J5S2V5AQIRY29uZl9zaWdud2ViX2RhcHAAC3VzZXJBbGxvd2VkAgdBTExPV0VEAA51c2VyUmVnaXN0ZXJlZAIKUkVHSVNURVJFRAAMdXNlclZlcmlmaWVkAghWRVJJRklFRAANdXNlclN1c3BlbmRlZAIJU1VTUEVOREVEAAt1c2VyUmVtb3ZlZAIHUkVNT1ZFRAASdXNlckNoYW5nZVJlcXVpcmVkAg9DSEFOR0VfUkVRVUlSRUQAEHVzZXJVbnJlZ2lzdGVyZWQCDFVOUkVHSVNURVJFRAAJdXNlclJlc2V0AgVSRVNFVAELa2V5VXNlckFkZHIBBmNhbGxlcgkArAICAgV1c2VyXwUGY2FsbGVyAQtrZXlVc2VyTmFtZQEGY2FsbGVyCQCsAgICCnVzZXJfbmFtZV8FBmNhbGxlcgELa2V5VXNlckRlc2MBBmNhbGxlcgkArAICAgp1c2VyX2Rlc2NfBQZjYWxsZXIBDWtleVVzZXJTb2NpYWwBBmNhbGxlcgkArAICAgx1c2VyX3NvY2lhbF8FBmNhbGxlcgEMa2V5VXNlclRodW1iAQZjYWxsZXIJAKwCAgILdXNlcl90aHVtYl8FBmNhbGxlcgENa2V5VXNlclN0YXR1cwEGY2FsbGVyCQCsAgICDHVzZXJfc3RhdHVzXwUGY2FsbGVyARBrZXlVc2VyUm95YWx0aWVzAQZjYWxsZXIJAKwCAgIPdXNlcl9yb3lhbHRpZXNfBQZjYWxsZXIBC2tleVVzZXJEYXRlAQZjYWxsZXIJAKwCAgIKdXNlcl9kYXRlXwUGY2FsbGVyAQxrZXlVc2VyRVJDMjABBmNhbGxlcgkArAICAgt1c2VyX0VSQzIwXwUGY2FsbGVyAQtrZXlVc2VyTm90ZQEGY2FsbGVyCQCsAgICCnVzZXJfbm90ZV8FBmNhbGxlcgEMa2V5VXNlckxhYmVsAQZjYWxsZXIJAKwCAgILdXNlcl9sYWJlbF8FBmNhbGxlcgESa2V5QXJ0aXN0QWdlbnRBZGRyAQphcnRpc3RBZGRyCQCsAgICDWFydGlzdF9hZ2VudF8FCmFydGlzdEFkZHIBEmtleUFnZW50QXJ0aXN0QWRkcgIJYWdlbnRBZGRyCmFydGlzdEFkZHIJAKwCAgkArAICCQCsAgICBmFnZW50XwUJYWdlbnRBZGRyAgFfBQphcnRpc3RBZGRyAQ9rZXlQcmltYXJ5U2hhcmUBCmFydGlzdEFkZHIJAKwCAgIVYXJ0aXN0X2FnZW50X3ByaW1hcnlfBQphcnRpc3RBZGRyARFrZXlTZWNvbmRhcnlTaGFyZQEKYXJ0aXN0QWRkcgkArAICAhdhcnRpc3RfYWdlbnRfc2Vjb25kYXJ5XwUKYXJ0aXN0QWRkcgEOY2hlY2tXaGl0ZWxpc3QBA2tleQkBC3ZhbHVlT3JFbHNlAgkAmggCBQ13aGl0ZWxpc3REYXBwBQNrZXkAAAELdmFsaWRhdGVDSUQBA2NpZAMJAQhjb250YWlucwIFA2NpZAIBLwMDCQBmAgBMCQCxAgEFA2NpZAkAAAIJALECAQkAkQMCCQC1CQIFA2NpZAIBLwAAADsHCQBmAgAQCQCxAgEJAJEDAgkAtQkCBQNjaWQCAS8AAQcHAQ12YWxpZFVzZXJEYXRhBQZjYWxsZXIEbmFtZQtkZXNjcmlwdGlvbgV0aHVtYgppc0FuVXBkYXRlBAh2YWxpZENJRAMJAQIhPQIJALECAQUFdGh1bWIAAAkBC3ZhbGlkYXRlQ0lEAQUFdGh1bWIGAwkBASEBBQh2YWxpZENJRAkAAgECHENJRCBkb24ndCBtYXRjaCByZXF1aXJlbWVudCEDAwkAAAIFBG5hbWUCAAYJAAACBQtkZXNjcmlwdGlvbgIACQACAQIkTmFtZSBhbmQgZGVzY3JpcHRpb24gY2Fubm90IGJlIGVtcHR5AwkAZgIJALECAQULZGVzY3JpcHRpb24A2AQJAAIBAhk2MDAgQ2hhci4gbWF4IGRlc2NyaXB0aW9uAwkAZgIJALECAQUEbmFtZQAtCQACAQIRNDUgQ2hhci4gbWF4IG5hbWUEBnN0YXR1cwkBDmdldFN0cmluZ0J5S2V5AQkBDWtleVVzZXJTdGF0dXMBBQZjYWxsZXIDAwkAAAIFBnN0YXR1cwUNdXNlclN1c3BlbmRlZAYJAAACBQZzdGF0dXMFC3VzZXJSZW1vdmVkCQACAQIbQWNjb3VudCBzdXNwZW5kZWQvIHJlbW92ZWQuAwMJAQEhAQUKaXNBblVwZGF0ZQkAAAIFBnN0YXR1cwUOdXNlclJlZ2lzdGVyZWQHCQACAQISQWxyZWFkeSByZWdpc3RlcmVkAwMDCQEBIQEFCmlzQW5VcGRhdGUJAAACBQZzdGF0dXMCAAcFD3doaXRlbGlzdGVkb25seQcJAAIBAiNDYW4ndCByZWdpc3RlciwgZ2V0IGFwcHJvdmVkIGZpcnN0LgMDAwUKaXNBblVwZGF0ZQkAAAIFBnN0YXR1cwIABwYDBQppc0FuVXBkYXRlCQAAAgUGc3RhdHVzBQt1c2VyQWxsb3dlZAcJAAIBAg5SZWdpc3RlciBmaXJzdAYBEXZhbGlkYXRlTmV3U3RhdHVzAwZzdGF0dXMHYWRkcmVzcw1jdXJyZW50U3RhdHVzBAlhbGxTdGF0dXMJAMwIAgUMdXNlclZlcmlmaWVkCQDMCAIFDnVzZXJSZWdpc3RlcmVkCQDMCAIFDXVzZXJTdXNwZW5kZWQJAMwIAgULdXNlclJlbW92ZWQJAMwIAgULdXNlckFsbG93ZWQJAMwIAgUSdXNlckNoYW5nZVJlcXVpcmVkBQNuaWwEC3N0YXR1c1RvU2V0AwkBD2NvbnRhaW5zRWxlbWVudAIFCWFsbFN0YXR1cwUGc3RhdHVzBQZzdGF0dXMDAwkAAAIFBnN0YXR1cwUJdXNlclJlc2V0CQAAAgUNY3VycmVudFN0YXR1cwULdXNlckFsbG93ZWQHAgAJAAIBAg5Vbmtub3duIHN0YXR1cwQQdXNlcklzUmVnaXN0ZXJlZAkBD2dldEludGVnZXJCeUtleQEJAQtrZXlVc2VyRGF0ZQEFB2FkZHJlc3MDAwkAAAIFEHVzZXJJc1JlZ2lzdGVyZWQAAAkBAiE9AgULc3RhdHVzVG9TZXQFC3VzZXJBbGxvd2VkBwkAAgECMVlvdSBjYW50IHNldCB0aGlzIHN0YXR1cywgdXNlciBpcyBub3QgcmVnaXN0ZXJlZC4DAwkAAAIFDWN1cnJlbnRTdGF0dXMFC3VzZXJBbGxvd2VkCQAAAgULc3RhdHVzVG9TZXQFC3VzZXJBbGxvd2VkBwkAAgECFFVzZXIgYWxyZWFkeSBhbGxvd2VkAwMJAAACBQ1jdXJyZW50U3RhdHVzBQ51c2VyUmVnaXN0ZXJlZAkAAAIFC3N0YXR1c1RvU2V0BQt1c2VyQWxsb3dlZAcJAAIBAiFVc2VyIGFscmVhZHkgYWxsb3dlZCAmIHJlZ2lzdGVyZWQDAwkAAAIFDWN1cnJlbnRTdGF0dXMFDHVzZXJWZXJpZmllZAkAAAIFC3N0YXR1c1RvU2V0BQt1c2VyQWxsb3dlZAcJAAIBAh9Vc2VyIGFscmVhZHkgYWxsb3dlZCAmIHZlcmlmaWVkBQtzdGF0dXNUb1NldAEIbWFrZUpTT04DBG5hbWUFdGh1bWIEZGF0ZQkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIPeyJ1c2VyX25hbWUiOiAiBQRuYW1lAhEiLCAidXNlcl90aHVtYiI6IgUFdGh1bWICDyIsInVzZXJfZGF0ZSI6IgUEZGF0ZQICIn0BCGFzU3RyaW5nAQJidgQHJG1hdGNoMAUCYnYDCQABAgUHJG1hdGNoMAIGU3RyaW5nBANidjAFByRtYXRjaDAFA2J2MAkAAgECJFNwb25zb3JlZCBQdWJsaWMgS2V5IFN0cmluZyBleHBlY3RlZAEJZ2V0Q2FsbGVyAgFpBnB1YktleQQLaXNTcG9uc29yZWQDCQECIT0CBQZwdWJLZXkCAAkBC3ZhbHVlT3JFbHNlAgkBDmNoZWNrV2hpdGVsaXN0AQkArAICCQClCAEJAKcIAQkA2QQBBQZwdWJLZXkCCV9mcmVlX3R4cwAAAAAEBmNhbGxlcgMDCQAAAgkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzCQClCAEFBHRoaXMJAGYCBQtpc1Nwb25zb3JlZAAABwkApQgBCQCnCAEJANkEAQUGcHViS2V5CQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMEE2dldF9zcG9uc29yZWRfd2F2ZXMDCQECIT0CBQZwdWJLZXkCAAkA/AcEBQ13aGl0ZWxpc3REYXBwAgl1c2VGcmVlVHgJAMwIAgkApQgBCQCnCAEJANkEAQUGcHViS2V5BQNuaWwFA25pbAUEdW5pdAMJAAACBRNnZXRfc3BvbnNvcmVkX3dhdmVzBRNnZXRfc3BvbnNvcmVkX3dhdmVzCQCUCgIFBmNhbGxlcgkAZgIFC2lzU3BvbnNvcmVkAAAJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4LBmludm9rZQEHc2V0Q29uZgIDa2V5A3ZhbAQGY2FsbGVyCQClCAEIBQZpbnZva2UGY2FsbGVyAwkBD2NvbnRhaW5zRWxlbWVudAIJAMwIAgUFY2hyaXMJAMwIAgkApQgBBQR0aGlzBQNuaWwFBmNhbGxlcgkAzAgCCQELU3RyaW5nRW50cnkCBQNrZXkFA3ZhbAUDbmlsCQACAQIiWW91IGFyZSBub3QgYWxsb3dlZCB0byBjaGFuZ2UgdGhpcwZpbnZva2UBCmFwcFJ1bm5pbmcCBmlzTGl2ZQdtZXNzYWdlBAZjYWxsZXIJAKUIAQgFBmludm9rZQZjYWxsZXIDCQEPY29udGFpbnNFbGVtZW50AgkAzAgCBQVjaHJpcwkAzAgCCQClCAEFBHRoaXMFA25pbAUGY2FsbGVyCQDMCAIJAQxCb29sZWFuRW50cnkCBQ5kYXBwUnVubmluZ0tleQUGaXNMaXZlCQDMCAIJAQtTdHJpbmdFbnRyeQIFEW1haW50ZW5hbmNlTVNHS2V5BQdtZXNzYWdlBQNuaWwJAAIBAiJZb3UgYXJlIG5vdCBhbGxvd2VkIHRvIGNoYW5nZSB0aGlzBmludm9rZQEQcmVnaXN0cmF0aW9uTW9kZQEGV0xvbmx5BAZjYWxsZXIJAKUIAQgFBmludm9rZQZjYWxsZXIDCQEPY29udGFpbnNFbGVtZW50AgkAzAgCBQVjaHJpcwkAzAgCCQClCAEFBHRoaXMFA25pbAUGY2FsbGVyCQDMCAIJAQxCb29sZWFuRW50cnkCBRJ3aGl0ZWxpc3RlZG9ubHlLZXkFBldMb25seQUDbmlsCQACAQIiWW91IGFyZSBub3QgYWxsb3dlZCB0byBjaGFuZ2UgdGhpcwZpbnZva2UBDHJlZ2lzdGVyVXNlcgYEbmFtZQtkZXNjcmlwdGlvbgV0aHVtYgZzb2NpYWwJcm95YWx0aWVzBnB1YktleQMJAQEhAQULZGFwcFJ1bm5pbmcJAAIBBQ5tYWludGVuYW5jZU1TRwQLJHQwNzM5Njc0NDgJAQlnZXRDYWxsZXICBQZpbnZva2UFBnB1YktleQQGY2FsbGVyCAULJHQwNzM5Njc0NDgCXzEEC2lzU3BvbnNvcmVkCAULJHQwNzM5Njc0NDgCXzIEAmlkCQDYBAEIBQZpbnZva2UNdHJhbnNhY3Rpb25JZAQJdGltZXN0YW1wCAUJbGFzdEJsb2NrCXRpbWVzdGFtcAQEbm90ZQkBDmdldFN0cmluZ0J5S2V5AQkBC2tleVVzZXJOb3RlAQUGY2FsbGVyBAVsYWJlbAkBDmdldFN0cmluZ0J5S2V5AQkBDGtleVVzZXJMYWJlbAEFBmNhbGxlcgMJAQEhAQkBDXZhbGlkVXNlckRhdGEFBQZjYWxsZXIFBG5hbWUFC2Rlc2NyaXB0aW9uBQV0aHVtYgcJAAIBAhRTb21ldGhpbmcgd2VudCB3cm9uZwQEanNvbgkBCG1ha2VKU09OAwkA2gQBCQCbAwEFBG5hbWUJANoEAQkAmwMBBQV0aHVtYgkApAMBBQl0aW1lc3RhbXADAwkAZgIAAAUJcm95YWx0aWVzBgkAZgIFCXJveWFsdGllcwDoBwkAAgECM1JveWFsdGllcyBjYW5ub3QgYmUgbGVzcyB0aGFuIDAlIG9yIGhpZ2hlciB0aGFuIDEwJQQKdHhUb0NhbGxlcgMFC2lzU3BvbnNvcmVkCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBBQZjYWxsZXIAAAUEdW5pdAUDbmlsBQNuaWwJAM4IAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBC2tleVVzZXJEYXRlAQUGY2FsbGVyBQl0aW1lc3RhbXAJAMwIAgkBC1N0cmluZ0VudHJ5AgkBC2tleVVzZXJBZGRyAQUGY2FsbGVyCQCsAgIJAKwCAgUCaWQCAV8JAKQDAQUJdGltZXN0YW1wCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQtrZXlVc2VyTmFtZQEFBmNhbGxlcgUEbmFtZQkAzAgCCQELU3RyaW5nRW50cnkCCQELa2V5VXNlckRlc2MBBQZjYWxsZXIFC2Rlc2NyaXB0aW9uCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ1rZXlVc2VyU29jaWFsAQUGY2FsbGVyBQZzb2NpYWwJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDGtleVVzZXJUaHVtYgEFBmNhbGxlcgUFdGh1bWIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDWtleVVzZXJTdGF0dXMBBQZjYWxsZXIFDnVzZXJSZWdpc3RlcmVkCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEQa2V5VXNlclJveWFsdGllcwEFBmNhbGxlcgUJcm95YWx0aWVzCQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgIIQUxMT1dFRF8FBmNhbGxlcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgUOdXNlclJlZ2lzdGVyZWQCAV8FBmNhbGxlcgUEanNvbgkAzAgCCQELU3RyaW5nRW50cnkCCQELa2V5VXNlck5vdGUBBQZjYWxsZXIFBG5vdGUJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDGtleVVzZXJMYWJlbAEFBmNhbGxlcgUFbGFiZWwFA25pbAUKdHhUb0NhbGxlcgZpbnZva2UBCnVwZGF0ZVVzZXIGBG5hbWULZGVzY3JpcHRpb24FdGh1bWIGc29jaWFsCXJveWFsdGllcwZwdWJLZXkDCQEBIQEFC2RhcHBSdW5uaW5nCQACAQUObWFpbnRlbmFuY2VNU0cECyR0MDkwOTQ5MTk4CQEJZ2V0Q2FsbGVyAgUGaW52b2tlBQZwdWJLZXkEBmNhbGxlcggFCyR0MDkwOTQ5MTk4Al8xBAtpc1Nwb25zb3JlZAgFCyR0MDkwOTQ5MTk4Al8yBAZzdGF0dXMJAQ5nZXRTdHJpbmdCeUtleQEJAQ1rZXlVc2VyU3RhdHVzAQUGY2FsbGVyAwkBASEBCQENdmFsaWRVc2VyRGF0YQUFBmNhbGxlcgUEbmFtZQULZGVzY3JpcHRpb24FBXRodW1iBgkAAgECFFNvbWV0aGluZyB3ZW50IHdyb25nBARkYXRlCQEPZ2V0SW50ZWdlckJ5S2V5AQkBC2tleVVzZXJEYXRlAQUGY2FsbGVyBARqc29uCQEIbWFrZUpTT04DCQDaBAEJAJsDAQUEbmFtZQkA2gQBCQCbAwEFBXRodW1iCQCkAwEFBGRhdGUDAwkAZgIAAAUJcm95YWx0aWVzBgkAZgIFCXJveWFsdGllcwDoBwkAAgECM1JveWFsdGllcyBjYW5ub3QgYmUgbGVzcyB0aGFuIDAlIG9yIGhpZ2hlciB0aGFuIDEwJQQKdHhUb0NhbGxlcgMFC2lzU3BvbnNvcmVkCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBBQZjYWxsZXIAAAUEdW5pdAUDbmlsBQNuaWwJAM4IAgkAzAgCCQELU3RyaW5nRW50cnkCCQELa2V5VXNlck5hbWUBBQZjYWxsZXIFBG5hbWUJAMwIAgkBC1N0cmluZ0VudHJ5AgkBC2tleVVzZXJEZXNjAQUGY2FsbGVyBQtkZXNjcmlwdGlvbgkAzAgCCQELU3RyaW5nRW50cnkCCQENa2V5VXNlclNvY2lhbAEFBmNhbGxlcgUGc29jaWFsCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQxrZXlVc2VyVGh1bWIBBQZjYWxsZXIFBXRodW1iCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEQa2V5VXNlclJveWFsdGllcwEFBmNhbGxlcgUJcm95YWx0aWVzCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICBQZzdGF0dXMCAV8FBmNhbGxlcgUEanNvbgUDbmlsBQp0eFRvQ2FsbGVyBmludm9rZQEMc2V0RVJDMjBVc2VyAgVlcmMyMAZwdWJLZXkDCQEBIQEFC2RhcHBSdW5uaW5nCQACAQUObWFpbnRlbmFuY2VNU0cEDSR0MDEwMzg1MTA0ODgJAQlnZXRDYWxsZXICBQZpbnZva2UFBnB1YktleQQGY2FsbGVyCAUNJHQwMTAzODUxMDQ4OAJfMQQLaXNTcG9uc29yZWQIBQ0kdDAxMDM4NTEwNDg4Al8yBAZzdGF0dXMJAQ5nZXRTdHJpbmdCeUtleQEJAQ1rZXlVc2VyU3RhdHVzAQUGY2FsbGVyAwMJAQIhPQIFBnN0YXR1cwUOdXNlclJlZ2lzdGVyZWQJAQIhPQIFBnN0YXR1cwUMdXNlclZlcmlmaWVkBwkAAgECIE5vdCBhbGxvd2VkIHRvIHNldCBFUkMyMCBhZGRyZXNzBAhmaXJzdFR3bwkArwICBQVlcmMyMAACAwMJAQIhPQIFCGZpcnN0VHdvAgIweAYJAQIhPQIJALECAQUFZXJjMjAAKgkAAgECHFRoaXMgaXMgbm90IGFuIGVyYzIwIGFkZHJlc3MECnR4VG9DYWxsZXIDBQtpc1Nwb25zb3JlZAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQUGY2FsbGVyAAAFBHVuaXQFA25pbAUDbmlsCQDOCAIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDGtleVVzZXJFUkMyMAEFBmNhbGxlcgUFZXJjMjAFA25pbAUKdHhUb0NhbGxlcgZpbnZva2UBEGNoYW5nZVVzZXJTdGF0dXMHB2FkZHJlc3MGc3RhdHVzBG5vdGUFbGFiZWwRd2xfY2VydGlmaWNhdGlvbnMGd2xfdHhzCHdsX2Ryb3BzBAZjYWxsZXIJAKUIAQgFBmludm9rZQZjYWxsZXIDCQAAAgkAsQIBBQdhZGRyZXNzAAAJAAIBAhdBZGRyZXNzIGNhbm5vdCBiZSBlbXB0eQQLY3VycmVudE5vdGUJAQ5nZXRTdHJpbmdCeUtleQEJAQtrZXlVc2VyTm90ZQEFB2FkZHJlc3MEDGN1cnJlbnRMYWJlbAkBDmdldFN0cmluZ0J5S2V5AQkBDGtleVVzZXJMYWJlbAEFB2FkZHJlc3MECW5vdGVUb1VzZQMJAQIhPQIJALECAQUEbm90ZQAABQRub3RlBQtjdXJyZW50Tm90ZQQKbGFiZWxUb1VzZQMJAQIhPQIJALECAQUFbGFiZWwAAAUFbGFiZWwFDGN1cnJlbnRMYWJlbAMJAQ9jb250YWluc0VsZW1lbnQCCQDMCAIFBWNocmlzCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQZjYWxsZXIEE2ZyZWVfY2VydGlmaWNhdGlvbnMDCQECIT0CBRF3bF9jZXJ0aWZpY2F0aW9ucwAACQD8BwQFCHNpZ25EYXBwAht3aGl0ZWxpc3RGcmVlQ2VydGlmaWNhdGlvbnMJAMwIAgUHYWRkcmVzcwkAzAgCBRF3bF9jZXJ0aWZpY2F0aW9ucwkAzAgCBgUDbmlsBQNuaWwFA25pbAMJAAACBRNmcmVlX2NlcnRpZmljYXRpb25zBRNmcmVlX2NlcnRpZmljYXRpb25zBAhmcmVlX3R4cwMJAQIhPQIFBndsX3R4cwAACQD8BwQFDXdoaXRlbGlzdERhcHACEHdoaXRlbGlzdEZyZWVUeHMJAMwIAgUHYWRkcmVzcwkAzAgCBQZ3bF90eHMJAMwIAgYFA25pbAUDbmlsBQNuaWwDCQAAAgUIZnJlZV90eHMFCGZyZWVfdHhzBApmcmVlX2Ryb3BzAwkBAiE9AgUId2xfZHJvcHMAAAkA/AcEBQ13aGl0ZWxpc3REYXBwAhF3aGl0ZWxpc3RGcmVlRHJvcAkAzAgCBQdhZGRyZXNzCQDMCAIFCHdsX2Ryb3BzCQDMCAIGBQNuaWwFA25pbAUDbmlsAwkAAAIFCmZyZWVfZHJvcHMFCmZyZWVfZHJvcHMDCQAAAgkAsQIBBQZzdGF0dXMAAAQNY3VycmVudFN0YXR1cwkBDmdldFN0cmluZ0J5S2V5AQkBDWtleVVzZXJTdGF0dXMBBQdhZGRyZXNzAwkAAAIFDWN1cnJlbnRTdGF0dXMCAAkAAgECF1VzZXIgaGF2ZSBubyBzdGF0dXMgeWV0CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQtrZXlVc2VyTm90ZQEFB2FkZHJlc3MFCW5vdGVUb1VzZQkAzAgCCQELU3RyaW5nRW50cnkCCQEMa2V5VXNlckxhYmVsAQUHYWRkcmVzcwUKbGFiZWxUb1VzZQUDbmlsBA1jdXJyZW50U3RhdHVzCQEOZ2V0U3RyaW5nQnlLZXkBCQENa2V5VXNlclN0YXR1cwEFB2FkZHJlc3MEC3N0YXR1c1RvU2V0CQERdmFsaWRhdGVOZXdTdGF0dXMDBQZzdGF0dXMFB2FkZHJlc3MFDWN1cnJlbnRTdGF0dXMEBG5hbWUJANoEAQkAmwMBCQEOZ2V0U3RyaW5nQnlLZXkBCQELa2V5VXNlck5hbWUBBQdhZGRyZXNzBAV0aHVtYgkA2gQBCQCbAwEJAQ5nZXRTdHJpbmdCeUtleQEJAQxrZXlVc2VyVGh1bWIBBQdhZGRyZXNzBARkYXRlCQEPZ2V0SW50ZWdlckJ5S2V5AQkBC2tleVVzZXJEYXRlAQUHYWRkcmVzcwQEanNvbgkBCG1ha2VKU09OAwUEbmFtZQUFdGh1bWIJAKQDAQUEZGF0ZQkAzAgCCQELU3RyaW5nRW50cnkCCQENa2V5VXNlclN0YXR1cwEFB2FkZHJlc3MFC3N0YXR1c1RvU2V0CQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgkArAICBQ1jdXJyZW50U3RhdHVzAgFfBQdhZGRyZXNzCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICBQtzdGF0dXNUb1NldAIBXwUHYWRkcmVzcwUEanNvbgkAzAgCCQELU3RyaW5nRW50cnkCCQELa2V5VXNlck5vdGUBBQdhZGRyZXNzBQlub3RlVG9Vc2UJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDGtleVVzZXJMYWJlbAEFB2FkZHJlc3MFCmxhYmVsVG9Vc2UFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECIU5vdCBhbGxvd2VkIHRvIGNoYW5nZSB1c2VyIHN0YXR1cwZpbnZva2UBCmRlbGV0ZVVzZXIBB2FkZHJlc3MEBmNhbGxlcgkApQgBCAUGaW52b2tlBmNhbGxlcgQNY3VycmVudFN0YXR1cwkBDmdldFN0cmluZ0J5S2V5AQkBDWtleVVzZXJTdGF0dXMBBQdhZGRyZXNzAwkBD2NvbnRhaW5zRWxlbWVudAIJAMwIAgUFY2hyaXMJAMwIAgkApQgBBQR0aGlzBQNuaWwFBmNhbGxlcgkAzAgCCQELRGVsZXRlRW50cnkBCQELa2V5VXNlckRhdGUBBQdhZGRyZXNzCQDMCAIJAQtEZWxldGVFbnRyeQEJAQtrZXlVc2VyQWRkcgEFB2FkZHJlc3MJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBC2tleVVzZXJOYW1lAQUHYWRkcmVzcwkAzAgCCQELRGVsZXRlRW50cnkBCQELa2V5VXNlckRlc2MBBQdhZGRyZXNzCQDMCAIJAQtEZWxldGVFbnRyeQEJAQ1rZXlVc2VyU29jaWFsAQUHYWRkcmVzcwkAzAgCCQELRGVsZXRlRW50cnkBCQEMa2V5VXNlclRodW1iAQUHYWRkcmVzcwkAzAgCCQELRGVsZXRlRW50cnkBCQCsAgICCnVzZXJfbm90ZV8FB2FkZHJlc3MJAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICCQCsAgIFDWN1cnJlbnRTdGF0dXMCAV8FB2FkZHJlc3MJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBEGtleVVzZXJSb3lhbHRpZXMBBQdhZGRyZXNzCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ1rZXlVc2VyU3RhdHVzAQUHYWRkcmVzcwULdXNlclJlbW92ZWQFA25pbAkAAgECC05vdCBhbGxvd2VkAWkBCHNldEFnZW50BAphcnRpc3RBZGRyCWFnZW50QWRkcgxwcmltYXJ5U2hhcmUOc2Vjb25kYXJ5U2hhcmUDCQEBIQEFC2RhcHBSdW5uaW5nCQACAQUObWFpbnRlbmFuY2VNU0cEBmNhbGxlcgkApQgBCAUBaQZjYWxsZXIDCQEPY29udGFpbnNFbGVtZW50AgkAzAgCBQVjaHJpcwkAzAgCCQClCAEFBHRoaXMFA25pbAUGY2FsbGVyAwMJAQIhPQIJALECAQUKYXJ0aXN0QWRkcgAjBgkBAiE9AgkAsQIBBQlhZ2VudEFkZHIAIwkAAgECDVdyb25nIGFkZHJlc3MJAMwIAgkBC1N0cmluZ0VudHJ5AgkBEmtleUFydGlzdEFnZW50QWRkcgEFCmFydGlzdEFkZHIFCWFnZW50QWRkcgkAzAgCCQELU3RyaW5nRW50cnkCCQESa2V5QWdlbnRBcnRpc3RBZGRyAgUJYWdlbnRBZGRyBQphcnRpc3RBZGRyBQphcnRpc3RBZGRyCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEPa2V5UHJpbWFyeVNoYXJlAQUKYXJ0aXN0QWRkcgUMcHJpbWFyeVNoYXJlCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQERa2V5U2Vjb25kYXJ5U2hhcmUBBQphcnRpc3RBZGRyBQ5zZWNvbmRhcnlTaGFyZQUDbmlsCQACAQITWW91IGFyZSBub3QgYWxsb3dlZAFpAQp1bnNldEFnZW50AgphcnRpc3RBZGRyCWFnZW50QWRkcgMJAQEhAQULZGFwcFJ1bm5pbmcJAAIBBQ5tYWludGVuYW5jZU1TRwQGY2FsbGVyCQClCAEIBQFpBmNhbGxlcgMJAQ9jb250YWluc0VsZW1lbnQCCQDMCAIFBWNocmlzCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQZjYWxsZXIDAwkBAiE9AgkAsQIBBQphcnRpc3RBZGRyACMGCQECIT0CCQCxAgEFCWFnZW50QWRkcgAjCQACAQINV3JvbmcgYWRkcmVzcwkAzAgCCQELRGVsZXRlRW50cnkBCQESa2V5QXJ0aXN0QWdlbnRBZGRyAQUKYXJ0aXN0QWRkcgkAzAgCCQELRGVsZXRlRW50cnkBCQESa2V5QWdlbnRBcnRpc3RBZGRyAgUJYWdlbnRBZGRyBQphcnRpc3RBZGRyCQDMCAIJAQtEZWxldGVFbnRyeQEJAQ9rZXlQcmltYXJ5U2hhcmUBBQphcnRpc3RBZGRyCQDMCAIJAQtEZWxldGVFbnRyeQEJARFrZXlTZWNvbmRhcnlTaGFyZQEFCmFydGlzdEFkZHIFA25pbAkAAgECE1lvdSBhcmUgbm90IGFsbG93ZWQBaQELZGVsZXRlRW50cnkBBWVudHJ5BAZjYWxsZXIJAKUIAQgFAWkGY2FsbGVyAwkAAAIFBmNhbGxlcgUFY2hyaXMJAMwIAgkBC0RlbGV0ZUVudHJ5AQUFZW50cnkFA25pbAkAAgECAm5vAQJ0eAEIdmVyaWZpZXIABAckbWF0Y2gwBQJ0eAMJAAECBQckbWF0Y2gwAhdJbnZva2VTY3JpcHRUcmFuc2FjdGlvbgQDaW52BQckbWF0Y2gwAwMDAwkAAAIIBQNpbnYIZnVuY3Rpb24CDHJlZ2lzdGVyVXNlcgkAAAIIBQNpbnYEZEFwcAUEdGhpcwcJAAACCAUDaW52A2ZlZQCgwh4HCQAAAggFA2ludgpmZWVBc3NldElkBQR1bml0BwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAkA2QQBCQEIYXNTdHJpbmcBCQCRAwIIBQNpbnYEYXJncwAFAwMDAwkAAAIIBQNpbnYIZnVuY3Rpb24CCnVwZGF0ZVVzZXIJAAACCAUDaW52BGRBcHAFBHRoaXMHCQAAAggFA2ludgNmZWUAoMIeBwkAAAIIBQNpbnYKZmVlQXNzZXRJZAUEdW5pdAcJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAJANkEAQkBCGFzU3RyaW5nAQkAkQMCCAUDaW52BGFyZ3MABQMDAwMJAAACCAUDaW52CGZ1bmN0aW9uAgxzZXRFUkMyMFVzZXIJAAACCAUDaW52BGRBcHAFBHRoaXMHCQAAAggFA2ludgNmZWUAoMIeBwkAAAIIBQNpbnYKZmVlQXNzZXRJZAUEdW5pdAcJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAJANkEAQkBCGFzU3RyaW5nAQkAkQMCCAUDaW52BGFyZ3MAAgkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAgFAnR4D3NlbmRlclB1YmxpY0tleQkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAgFAnR4D3NlbmRlclB1YmxpY0tlecxOjA0=", "height": 2424334, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 9k4EuFxvBSvXY4PAitq9h8L8TQAv67BRyCqttdd2SL4R Next: 6Cmwdk9yHVTM44W42ZThcWCs9NWpGgHqPJ3WewfqK6AA Diff:
OldNewDifferences
2828
2929 let m = value(addressFromString(b("conf_whitelist_dapp")))
3030
31-let n = "ALLOWED"
31+let n = value(addressFromString(b("conf_signweb_dapp")))
3232
33-let o = "REGISTERED"
33+let o = "ALLOWED"
3434
35-let p = "VERIFIED"
35+let p = "REGISTERED"
3636
37-let q = "SUSPENDED"
37+let q = "VERIFIED"
3838
39-let r = "REMOVED"
39+let r = "SUSPENDED"
4040
41-let s = "CHANGE_REQUIRED"
41+let s = "REMOVED"
4242
43-let t = "UNREGISTERED"
43+let t = "CHANGE_REQUIRED"
4444
45-let u = "RESET"
45+let u = "UNREGISTERED"
4646
47-func v (w) = ("user_" + w)
47+let v = "RESET"
48+
49+func w (x) = ("user_" + x)
4850
4951
50-func x (w) = ("user_name_" + w)
52+func y (x) = ("user_name_" + x)
5153
5254
53-func y (w) = ("user_desc_" + w)
55+func z (x) = ("user_desc_" + x)
5456
5557
56-func z (w) = ("user_social_" + w)
58+func A (x) = ("user_social_" + x)
5759
5860
59-func A (w) = ("user_thumb_" + w)
61+func B (x) = ("user_thumb_" + x)
6062
6163
62-func B (w) = ("user_status_" + w)
64+func C (x) = ("user_status_" + x)
6365
6466
65-func C (w) = ("user_royalties_" + w)
67+func D (x) = ("user_royalties_" + x)
6668
6769
68-func D (w) = ("user_date_" + w)
70+func E (x) = ("user_date_" + x)
6971
7072
71-func E (w) = ("user_ERC20_" + w)
73+func F (x) = ("user_ERC20_" + x)
7274
7375
74-func F (w) = ("user_note_" + w)
76+func G (x) = ("user_note_" + x)
7577
7678
77-func G (w) = ("user_label_" + w)
79+func H (x) = ("user_label_" + x)
7880
7981
80-func H (I) = ("artist_agent_" + I)
82+func I (J) = ("artist_agent_" + J)
8183
8284
83-func J (K,I) = ((("agent_" + K) + "_") + I)
85+func K (L,J) = ((("agent_" + L) + "_") + J)
8486
8587
86-func L (I) = ("artist_agent_primary_" + I)
88+func M (J) = ("artist_agent_primary_" + J)
8789
8890
89-func M (I) = ("artist_agent_secondary_" + I)
91+func N (J) = ("artist_agent_secondary_" + J)
9092
9193
92-func N (c) = valueOrElse(getInteger(m, c), 0)
94+func O (c) = valueOrElse(getInteger(m, c), 0)
9395
9496
95-func O (P) = if (contains(P, "/"))
96- then if (if ((76 > size(P)))
97- then (size(split(P, "/")[0]) == 59)
97+func P (Q) = if (contains(Q, "/"))
98+ then if (if ((76 > size(Q)))
99+ then (size(split(Q, "/")[0]) == 59)
98100 else false)
99- then (16 > size(split(P, "/")[1]))
101+ then (16 > size(split(Q, "/")[1]))
100102 else false
101103 else false
102104
103105
104-func Q (w,R,S,T,U) = {
105- let V = if ((size(T) != 0))
106- then O(T)
106+func R (x,S,T,U,V) = {
107+ let W = if ((size(U) != 0))
108+ then P(U)
107109 else true
108- if (!(V))
110+ if (!(W))
109111 then throw("CID don't match requirement!")
110- else if (if ((R == ""))
112+ else if (if ((S == ""))
111113 then true
112- else (S == ""))
114+ else (T == ""))
113115 then throw("Name and description cannot be empty")
114- else if ((size(S) > 600))
116+ else if ((size(T) > 600))
115117 then throw("600 Char. max description")
116- else if ((size(R) > 45))
118+ else if ((size(S) > 45))
117119 then throw("45 Char. max name")
118120 else {
119- let W = b(B(w))
120- if (if ((W == q))
121+ let X = b(C(x))
122+ if (if ((X == r))
121123 then true
122- else (W == r))
124+ else (X == s))
123125 then throw("Account suspended/ removed.")
124- else if (if (!(U))
125- then (W == o)
126+ else if (if (!(V))
127+ then (X == p)
126128 else false)
127129 then throw("Already registered")
128- else if (if (if (!(U))
129- then (W == "")
130+ else if (if (if (!(V))
131+ then (X == "")
130132 else false)
131133 then l
132134 else false)
133135 then throw("Can't register, get approved first.")
134- else if (if (if (U)
135- then (W == "")
136+ else if (if (if (V)
137+ then (X == "")
136138 else false)
137139 then true
138- else if (U)
139- then (W == n)
140+ else if (V)
141+ then (X == o)
140142 else false)
141143 then throw("Register first")
142144 else true
144146 }
145147
146148
147-func X (W,Y,Z) = {
148- let aa = [p, o, q, r, n, s]
149- let ab = if (containsElement(aa, W))
150- then W
151- else if (if ((W == u))
152- then (Z == n)
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)
153155 else false)
154156 then ""
155157 else throw("Unknown status")
156- let ac = e(D(Y))
157- if (if ((ac == 0))
158- then (ab != n)
158+ let ad = e(E(Z))
159+ if (if ((ad == 0))
160+ then (ac != o)
159161 else false)
160162 then throw("You cant set this status, user is not registered.")
161- else if (if ((Z == n))
162- then (ab == n)
163+ else if (if ((aa == o))
164+ then (ac == o)
163165 else false)
164166 then throw("User already allowed")
165- else if (if ((Z == o))
166- then (ab == n)
167+ else if (if ((aa == p))
168+ then (ac == o)
167169 else false)
168170 then throw("User already allowed & registered")
169- else if (if ((Z == p))
170- then (ab == n)
171+ else if (if ((aa == q))
172+ then (ac == o)
171173 else false)
172174 then throw("User already allowed & verified")
173- else ab
175+ else ac
174176 }
175177
176178
177-func ad (R,T,ae) = (((((("{\"user_name\": \"" + R) + "\", \"user_thumb\":\"") + T) + "\",\"user_date\":\"") + ae) + "\"}")
179+func ae (S,U,af) = (((((("{\"user_name\": \"" + S) + "\", \"user_thumb\":\"") + U) + "\",\"user_date\":\"") + af) + "\"}")
178180
179181
180-func af (ag) = {
181- let ah = ag
182- if ($isInstanceOf(ah, "String"))
182+func ag (ah) = {
183+ let ai = ah
184+ if ($isInstanceOf(ai, "String"))
183185 then {
184- let ai = ah
185- ai
186+ let aj = ai
187+ aj
186188 }
187189 else throw("Sponsored Public Key String expected")
188190 }
189191
190192
191-func aj (ak,al) = {
192- let am = if ((al != ""))
193- then valueOrElse(N((toString(addressFromPublicKey(fromBase58String(al))) + "_free_txs")), 0)
193+func ak (al,am) = {
194+ let an = if ((am != ""))
195+ then valueOrElse(O((toString(addressFromPublicKey(fromBase58String(am))) + "_free_txs")), 0)
194196 else 0
195- let w = if (if ((toBase58String(ak.caller.bytes) == toString(this)))
196- then (am > 0)
197+ let x = if (if ((toBase58String(al.caller.bytes) == toString(this)))
198+ then (an > 0)
197199 else false)
198- then toString(addressFromPublicKey(fromBase58String(al)))
199- else toBase58String(ak.caller.bytes)
200- let an = if ((al != ""))
201- then invoke(m, "useFreeTx", [toString(addressFromPublicKey(fromBase58String(al)))], nil)
200+ then toString(addressFromPublicKey(fromBase58String(am)))
201+ else toBase58String(al.caller.bytes)
202+ let ao = if ((am != ""))
203+ then invoke(m, "useFreeTx", [toString(addressFromPublicKey(fromBase58String(am)))], nil)
202204 else unit
203- if ((an == an))
204- then $Tuple2(w, (am > 0))
205+ if ((ao == ao))
206+ then $Tuple2(x, (an > 0))
205207 else throw("Strict value is not equal to itself.")
206208 }
207209
208210
209-@Callable(ao)
210-func setConf (c,ap) = {
211- let w = toString(ao.caller)
212- if (containsElement([f, toString(this)], w))
213- then [StringEntry(c, ap)]
211+@Callable(ap)
212+func setConf (c,aq) = {
213+ let x = toString(ap.caller)
214+ if (containsElement([f, toString(this)], x))
215+ then [StringEntry(c, aq)]
214216 else throw("You are not allowed to change this")
215217 }
216218
217219
218220
219-@Callable(ao)
220-func appRunning (aq,ar) = {
221- let w = toString(ao.caller)
222- if (containsElement([f, toString(this)], w))
223- then [BooleanEntry(g, aq), StringEntry(h, ar)]
221+@Callable(ap)
222+func appRunning (ar,as) = {
223+ let x = toString(ap.caller)
224+ if (containsElement([f, toString(this)], x))
225+ then [BooleanEntry(g, ar), StringEntry(h, as)]
224226 else throw("You are not allowed to change this")
225227 }
226228
227229
228230
229-@Callable(ao)
230-func registrationMode (as) = {
231- let w = toString(ao.caller)
232- if (containsElement([f, toString(this)], w))
233- then [BooleanEntry(i, as)]
231+@Callable(ap)
232+func registrationMode (at) = {
233+ let x = toString(ap.caller)
234+ if (containsElement([f, toString(this)], x))
235+ then [BooleanEntry(i, at)]
234236 else throw("You are not allowed to change this")
235237 }
236238
237239
238240
239-@Callable(ao)
240-func registerUser (R,S,T,at,au,al) = if (!(j))
241+@Callable(ap)
242+func registerUser (S,T,U,au,av,am) = if (!(j))
241243 then throw(k)
242244 else {
243- let av = aj(ao, al)
244- let w = av._1
245- let am = av._2
246- let aw = toBase58String(ao.transactionId)
247- let ax = lastBlock.timestamp
248- let ay = b(F(w))
249- let az = b(G(w))
250- if (!(Q(w, R, S, T, false)))
245+ let aw = ak(ap, am)
246+ let x = aw._1
247+ let an = aw._2
248+ let ax = toBase58String(ap.transactionId)
249+ let ay = lastBlock.timestamp
250+ let az = b(G(x))
251+ let aA = b(H(x))
252+ if (!(R(x, S, T, U, false)))
251253 then throw("Something went wrong")
252254 else {
253- let aA = ad(toBase64String(toBytes(R)), toBase64String(toBytes(T)), toString(ax))
254- if (if ((0 > au))
255+ let aB = ae(toBase64String(toBytes(S)), toBase64String(toBytes(U)), toString(ay))
256+ if (if ((0 > av))
255257 then true
256- else (au > 1000))
258+ else (av > 1000))
257259 then throw("Royalties cannot be less than 0% or higher than 10%")
258260 else {
259- let aB = if (am)
260- then [ScriptTransfer(Address(fromBase58String(w)), 0, unit)]
261+ let aC = if (an)
262+ then [ScriptTransfer(Address(fromBase58String(x)), 0, unit)]
261263 else nil
262- ([IntegerEntry(D(w), ax), StringEntry(v(w), ((aw + "_") + toString(ax))), StringEntry(x(w), R), StringEntry(y(w), S), StringEntry(z(w), at), StringEntry(A(w), T), StringEntry(B(w), o), IntegerEntry(C(w), au), DeleteEntry(("ALLOWED_" + w)), StringEntry(((o + "_") + w), aA), StringEntry(F(w), ay), StringEntry(G(w), az)] ++ aB)
264+ ([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)
263265 }
264266 }
265267 }
266268
267269
268270
269-@Callable(ao)
270-func updateUser (R,S,T,at,au,al) = if (!(j))
271+@Callable(ap)
272+func updateUser (S,T,U,au,av,am) = if (!(j))
271273 then throw(k)
272274 else {
273- let aC = aj(ao, al)
274- let w = aC._1
275- let am = aC._2
276- let W = b(B(w))
277- if (!(Q(w, R, S, T, true)))
275+ let aD = ak(ap, am)
276+ let x = aD._1
277+ let an = aD._2
278+ let X = b(C(x))
279+ if (!(R(x, S, T, U, true)))
278280 then throw("Something went wrong")
279281 else {
280- let ae = e(D(w))
281- let aA = ad(toBase64String(toBytes(R)), toBase64String(toBytes(T)), toString(ae))
282- if (if ((0 > au))
282+ let af = e(E(x))
283+ let aB = ae(toBase64String(toBytes(S)), toBase64String(toBytes(U)), toString(af))
284+ if (if ((0 > av))
283285 then true
284- else (au > 1000))
286+ else (av > 1000))
285287 then throw("Royalties cannot be less than 0% or higher than 10%")
286288 else {
287- let aB = if (am)
288- then [ScriptTransfer(Address(fromBase58String(w)), 0, unit)]
289+ let aC = if (an)
290+ then [ScriptTransfer(Address(fromBase58String(x)), 0, unit)]
289291 else nil
290- ([StringEntry(x(w), R), StringEntry(y(w), S), StringEntry(z(w), at), StringEntry(A(w), T), IntegerEntry(C(w), au), StringEntry(((W + "_") + w), aA)] ++ aB)
292+ ([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)
291293 }
292294 }
293295 }
294296
295297
296298
297-@Callable(ao)
298-func setERC20User (aD,al) = if (!(j))
299+@Callable(ap)
300+func setERC20User (aE,am) = if (!(j))
299301 then throw(k)
300302 else {
301- let aE = aj(ao, al)
302- let w = aE._1
303- let am = aE._2
304- let W = b(B(w))
305- if (if ((W != o))
306- then (W != p)
303+ let aF = ak(ap, am)
304+ let x = aF._1
305+ let an = aF._2
306+ let X = b(C(x))
307+ if (if ((X != p))
308+ then (X != q)
307309 else false)
308310 then throw("Not allowed to set ERC20 address")
309311 else {
310- let aF = take(aD, 2)
311- if (if ((aF != "0x"))
312+ let aG = take(aE, 2)
313+ if (if ((aG != "0x"))
312314 then true
313- else (size(aD) != 42))
315+ else (size(aE) != 42))
314316 then throw("This is not an erc20 address")
315317 else {
316- let aB = if (am)
317- then [ScriptTransfer(Address(fromBase58String(w)), 0, unit)]
318+ let aC = if (an)
319+ then [ScriptTransfer(Address(fromBase58String(x)), 0, unit)]
318320 else nil
319- ([StringEntry(E(w), aD)] ++ aB)
321+ ([StringEntry(F(x), aE)] ++ aC)
320322 }
321323 }
322324 }
323325
324326
325327
326-@Callable(ao)
327-func changeUserStatus (Y,W,ay,az) = {
328- let w = toString(ao.caller)
329- if ((size(Y) == 0))
328+@Callable(ap)
329+func changeUserStatus (Z,X,az,aA,aH,aI,aJ) = {
330+ let x = toString(ap.caller)
331+ if ((size(Z) == 0))
330332 then throw("Address cannot be empty")
331333 else {
332- let aG = b(F(Y))
333- let aH = b(G(Y))
334- let aI = if ((size(ay) != 0))
335- then ay
336- else aG
337- let aJ = if ((size(az) != 0))
334+ let aK = b(G(Z))
335+ let aL = b(H(Z))
336+ let aM = if ((size(az) != 0))
338337 then az
339- else aH
340- if (containsElement([f, toString(this)], w))
341- then if ((size(W) == 0))
342- then {
343- let Z = b(B(Y))
344- if ((Z == ""))
345- then throw("User have no status yet")
346- else [StringEntry(F(Y), aI), StringEntry(G(Y), aJ)]
347- }
348- else {
349- let Z = b(B(Y))
350- let ab = X(W, Y, Z)
351- let R = toBase64String(toBytes(b(x(Y))))
352- let T = toBase64String(toBytes(b(A(Y))))
353- let ae = e(D(Y))
354- let aA = ad(R, T, toString(ae))
355-[StringEntry(B(Y), ab), DeleteEntry(((Z + "_") + Y)), StringEntry(((ab + "_") + Y), aA), StringEntry(F(Y), aI), StringEntry(G(Y), aJ)]
356- }
338+ else aK
339+ let aN = if ((size(aA) != 0))
340+ then aA
341+ else aL
342+ if (containsElement([f, toString(this)], x))
343+ then {
344+ let aO = if ((aH != 0))
345+ then invoke(n, "whitelistFreeCertifications", [Z, aH, true], nil)
346+ else nil
347+ if ((aO == aO))
348+ then {
349+ let aP = if ((aI != 0))
350+ then invoke(m, "whitelistFreeTxs", [Z, aI, true], nil)
351+ else nil
352+ if ((aP == aP))
353+ then {
354+ let aQ = if ((aJ != 0))
355+ then invoke(m, "whitelistFreeDrop", [Z, aJ, true], nil)
356+ else nil
357+ if ((aQ == aQ))
358+ then if ((size(X) == 0))
359+ then {
360+ let aa = b(C(Z))
361+ if ((aa == ""))
362+ then throw("User have no status yet")
363+ else [StringEntry(G(Z), aM), StringEntry(H(Z), aN)]
364+ }
365+ else {
366+ let aa = b(C(Z))
367+ let ac = Y(X, Z, aa)
368+ let S = toBase64String(toBytes(b(y(Z))))
369+ let U = toBase64String(toBytes(b(B(Z))))
370+ let af = e(E(Z))
371+ let aB = ae(S, U, toString(af))
372+[StringEntry(C(Z), ac), DeleteEntry(((aa + "_") + Z)), StringEntry(((ac + "_") + Z), aB), StringEntry(G(Z), aM), StringEntry(H(Z), aN)]
373+ }
374+ else throw("Strict value is not equal to itself.")
375+ }
376+ else throw("Strict value is not equal to itself.")
377+ }
378+ else throw("Strict value is not equal to itself.")
379+ }
357380 else throw("Not allowed to change user status")
358381 }
359382 }
360383
361384
362385
363-@Callable(ao)
364-func deleteUser (Y) = {
365- let w = toString(ao.caller)
366- let Z = b(B(Y))
367- if (containsElement([f, toString(this)], w))
368- then [DeleteEntry(D(Y)), DeleteEntry(v(Y)), DeleteEntry(x(Y)), DeleteEntry(y(Y)), DeleteEntry(z(Y)), DeleteEntry(A(Y)), DeleteEntry(("user_note_" + Y)), DeleteEntry(((Z + "_") + Y)), DeleteEntry(C(Y)), StringEntry(B(Y), r)]
386+@Callable(ap)
387+func deleteUser (Z) = {
388+ let x = toString(ap.caller)
389+ let aa = b(C(Z))
390+ if (containsElement([f, toString(this)], x))
391+ 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)]
369392 else throw("Not allowed")
370393 }
371394
372395
373396
374-@Callable(ak)
375-func setAgent (I,K,aK,aL) = if (!(j))
397+@Callable(al)
398+func setAgent (J,L,aR,aS) = if (!(j))
376399 then throw(k)
377400 else {
378- let w = toString(ak.caller)
379- if (containsElement([f, toString(this)], w))
380- then if (if ((size(I) != 35))
401+ let x = toString(al.caller)
402+ if (containsElement([f, toString(this)], x))
403+ then if (if ((size(J) != 35))
381404 then true
382- else (size(K) != 35))
405+ else (size(L) != 35))
383406 then throw("Wrong address")
384- else [StringEntry(H(I), K), StringEntry(J(K, I), I), IntegerEntry(L(I), aK), IntegerEntry(M(I), aL)]
407+ else [StringEntry(I(J), L), StringEntry(K(L, J), J), IntegerEntry(M(J), aR), IntegerEntry(N(J), aS)]
385408 else throw("You are not allowed")
386409 }
387410
388411
389412
390-@Callable(ak)
391-func unsetAgent (I,K) = if (!(j))
413+@Callable(al)
414+func unsetAgent (J,L) = if (!(j))
392415 then throw(k)
393416 else {
394- let w = toString(ak.caller)
395- if (containsElement([f, toString(this)], w))
396- then if (if ((size(I) != 35))
417+ let x = toString(al.caller)
418+ if (containsElement([f, toString(this)], x))
419+ then if (if ((size(J) != 35))
397420 then true
398- else (size(K) != 35))
421+ else (size(L) != 35))
399422 then throw("Wrong address")
400- else [DeleteEntry(H(I)), DeleteEntry(J(K, I)), DeleteEntry(L(I)), DeleteEntry(M(I))]
423+ else [DeleteEntry(I(J)), DeleteEntry(K(L, J)), DeleteEntry(M(J)), DeleteEntry(N(J))]
401424 else throw("You are not allowed")
402425 }
403426
404427
405428
406-@Callable(ak)
407-func deleteEntry (aM) = {
408- let w = toString(ak.caller)
409- if ((w == f))
410- then [DeleteEntry(aM)]
429+@Callable(al)
430+func deleteEntry (aT) = {
431+ let x = toString(al.caller)
432+ if ((x == f))
433+ then [DeleteEntry(aT)]
411434 else throw("no")
412435 }
413436
414437
415-@Verifier(aN)
416-func aO () = {
417- let ah = aN
418- if ($isInstanceOf(ah, "InvokeScriptTransaction"))
438+@Verifier(aU)
439+func aV () = {
440+ let ai = aU
441+ if ($isInstanceOf(ai, "InvokeScriptTransaction"))
419442 then {
420- let aP = ah
421- if (if (if (if ((aP.function == "registerUser"))
422- then (aP.dApp == this)
443+ let aW = ai
444+ if (if (if (if ((aW.function == "registerUser"))
445+ then (aW.dApp == this)
423446 else false)
424- then (aP.fee == 500000)
447+ then (aW.fee == 500000)
425448 else false)
426- then (aP.feeAssetId == unit)
449+ then (aW.feeAssetId == unit)
427450 else false)
428- then sigVerify(aN.bodyBytes, aN.proofs[0], fromBase58String(af(aP.args[5])))
429- else if (if (if (if ((aP.function == "updateUser"))
430- then (aP.dApp == this)
451+ then sigVerify(aU.bodyBytes, aU.proofs[0], fromBase58String(ag(aW.args[5])))
452+ else if (if (if (if ((aW.function == "updateUser"))
453+ then (aW.dApp == this)
431454 else false)
432- then (aP.fee == 500000)
455+ then (aW.fee == 500000)
433456 else false)
434- then (aP.feeAssetId == unit)
457+ then (aW.feeAssetId == unit)
435458 else false)
436- then sigVerify(aN.bodyBytes, aN.proofs[0], fromBase58String(af(aP.args[5])))
437- else if (if (if (if ((aP.function == "setERC20User"))
438- then (aP.dApp == this)
459+ then sigVerify(aU.bodyBytes, aU.proofs[0], fromBase58String(ag(aW.args[5])))
460+ else if (if (if (if ((aW.function == "setERC20User"))
461+ then (aW.dApp == this)
439462 else false)
440- then (aP.fee == 500000)
463+ then (aW.fee == 500000)
441464 else false)
442- then (aP.feeAssetId == unit)
465+ then (aW.feeAssetId == unit)
443466 else false)
444- then sigVerify(aN.bodyBytes, aN.proofs[0], fromBase58String(af(aP.args[2])))
445- else sigVerify(aN.bodyBytes, aN.proofs[0], aN.senderPublicKey)
467+ then sigVerify(aU.bodyBytes, aU.proofs[0], fromBase58String(ag(aW.args[2])))
468+ else sigVerify(aU.bodyBytes, aU.proofs[0], aU.senderPublicKey)
446469 }
447- else sigVerify(aN.bodyBytes, aN.proofs[0], aN.senderPublicKey)
470+ else sigVerify(aU.bodyBytes, aU.proofs[0], aU.senderPublicKey)
448471 }
449472
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
31-let n = "ALLOWED"
31+let n = value(addressFromString(b("conf_signweb_dapp")))
3232
33-let o = "REGISTERED"
33+let o = "ALLOWED"
3434
35-let p = "VERIFIED"
35+let p = "REGISTERED"
3636
37-let q = "SUSPENDED"
37+let q = "VERIFIED"
3838
39-let r = "REMOVED"
39+let r = "SUSPENDED"
4040
41-let s = "CHANGE_REQUIRED"
41+let s = "REMOVED"
4242
43-let t = "UNREGISTERED"
43+let t = "CHANGE_REQUIRED"
4444
45-let u = "RESET"
45+let u = "UNREGISTERED"
4646
47-func v (w) = ("user_" + w)
47+let v = "RESET"
48+
49+func w (x) = ("user_" + x)
4850
4951
50-func x (w) = ("user_name_" + w)
52+func y (x) = ("user_name_" + x)
5153
5254
53-func y (w) = ("user_desc_" + w)
55+func z (x) = ("user_desc_" + x)
5456
5557
56-func z (w) = ("user_social_" + w)
58+func A (x) = ("user_social_" + x)
5759
5860
59-func A (w) = ("user_thumb_" + w)
61+func B (x) = ("user_thumb_" + x)
6062
6163
62-func B (w) = ("user_status_" + w)
64+func C (x) = ("user_status_" + x)
6365
6466
65-func C (w) = ("user_royalties_" + w)
67+func D (x) = ("user_royalties_" + x)
6668
6769
68-func D (w) = ("user_date_" + w)
70+func E (x) = ("user_date_" + x)
6971
7072
71-func E (w) = ("user_ERC20_" + w)
73+func F (x) = ("user_ERC20_" + x)
7274
7375
74-func F (w) = ("user_note_" + w)
76+func G (x) = ("user_note_" + x)
7577
7678
77-func G (w) = ("user_label_" + w)
79+func H (x) = ("user_label_" + x)
7880
7981
80-func H (I) = ("artist_agent_" + I)
82+func I (J) = ("artist_agent_" + J)
8183
8284
83-func J (K,I) = ((("agent_" + K) + "_") + I)
85+func K (L,J) = ((("agent_" + L) + "_") + J)
8486
8587
86-func L (I) = ("artist_agent_primary_" + I)
88+func M (J) = ("artist_agent_primary_" + J)
8789
8890
89-func M (I) = ("artist_agent_secondary_" + I)
91+func N (J) = ("artist_agent_secondary_" + J)
9092
9193
92-func N (c) = valueOrElse(getInteger(m, c), 0)
94+func O (c) = valueOrElse(getInteger(m, c), 0)
9395
9496
95-func O (P) = if (contains(P, "/"))
96- then if (if ((76 > size(P)))
97- then (size(split(P, "/")[0]) == 59)
97+func P (Q) = if (contains(Q, "/"))
98+ then if (if ((76 > size(Q)))
99+ then (size(split(Q, "/")[0]) == 59)
98100 else false)
99- then (16 > size(split(P, "/")[1]))
101+ then (16 > size(split(Q, "/")[1]))
100102 else false
101103 else false
102104
103105
104-func Q (w,R,S,T,U) = {
105- let V = if ((size(T) != 0))
106- then O(T)
106+func R (x,S,T,U,V) = {
107+ let W = if ((size(U) != 0))
108+ then P(U)
107109 else true
108- if (!(V))
110+ if (!(W))
109111 then throw("CID don't match requirement!")
110- else if (if ((R == ""))
112+ else if (if ((S == ""))
111113 then true
112- else (S == ""))
114+ else (T == ""))
113115 then throw("Name and description cannot be empty")
114- else if ((size(S) > 600))
116+ else if ((size(T) > 600))
115117 then throw("600 Char. max description")
116- else if ((size(R) > 45))
118+ else if ((size(S) > 45))
117119 then throw("45 Char. max name")
118120 else {
119- let W = b(B(w))
120- if (if ((W == q))
121+ let X = b(C(x))
122+ if (if ((X == r))
121123 then true
122- else (W == r))
124+ else (X == s))
123125 then throw("Account suspended/ removed.")
124- else if (if (!(U))
125- then (W == o)
126+ else if (if (!(V))
127+ then (X == p)
126128 else false)
127129 then throw("Already registered")
128- else if (if (if (!(U))
129- then (W == "")
130+ else if (if (if (!(V))
131+ then (X == "")
130132 else false)
131133 then l
132134 else false)
133135 then throw("Can't register, get approved first.")
134- else if (if (if (U)
135- then (W == "")
136+ else if (if (if (V)
137+ then (X == "")
136138 else false)
137139 then true
138- else if (U)
139- then (W == n)
140+ else if (V)
141+ then (X == o)
140142 else false)
141143 then throw("Register first")
142144 else true
143145 }
144146 }
145147
146148
147-func X (W,Y,Z) = {
148- let aa = [p, o, q, r, n, s]
149- let ab = if (containsElement(aa, W))
150- then W
151- else if (if ((W == u))
152- then (Z == n)
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)
153155 else false)
154156 then ""
155157 else throw("Unknown status")
156- let ac = e(D(Y))
157- if (if ((ac == 0))
158- then (ab != n)
158+ let ad = e(E(Z))
159+ if (if ((ad == 0))
160+ then (ac != o)
159161 else false)
160162 then throw("You cant set this status, user is not registered.")
161- else if (if ((Z == n))
162- then (ab == n)
163+ else if (if ((aa == o))
164+ then (ac == o)
163165 else false)
164166 then throw("User already allowed")
165- else if (if ((Z == o))
166- then (ab == n)
167+ else if (if ((aa == p))
168+ then (ac == o)
167169 else false)
168170 then throw("User already allowed & registered")
169- else if (if ((Z == p))
170- then (ab == n)
171+ else if (if ((aa == q))
172+ then (ac == o)
171173 else false)
172174 then throw("User already allowed & verified")
173- else ab
175+ else ac
174176 }
175177
176178
177-func ad (R,T,ae) = (((((("{\"user_name\": \"" + R) + "\", \"user_thumb\":\"") + T) + "\",\"user_date\":\"") + ae) + "\"}")
179+func ae (S,U,af) = (((((("{\"user_name\": \"" + S) + "\", \"user_thumb\":\"") + U) + "\",\"user_date\":\"") + af) + "\"}")
178180
179181
180-func af (ag) = {
181- let ah = ag
182- if ($isInstanceOf(ah, "String"))
182+func ag (ah) = {
183+ let ai = ah
184+ if ($isInstanceOf(ai, "String"))
183185 then {
184- let ai = ah
185- ai
186+ let aj = ai
187+ aj
186188 }
187189 else throw("Sponsored Public Key String expected")
188190 }
189191
190192
191-func aj (ak,al) = {
192- let am = if ((al != ""))
193- then valueOrElse(N((toString(addressFromPublicKey(fromBase58String(al))) + "_free_txs")), 0)
193+func ak (al,am) = {
194+ let an = if ((am != ""))
195+ then valueOrElse(O((toString(addressFromPublicKey(fromBase58String(am))) + "_free_txs")), 0)
194196 else 0
195- let w = if (if ((toBase58String(ak.caller.bytes) == toString(this)))
196- then (am > 0)
197+ let x = if (if ((toBase58String(al.caller.bytes) == toString(this)))
198+ then (an > 0)
197199 else false)
198- then toString(addressFromPublicKey(fromBase58String(al)))
199- else toBase58String(ak.caller.bytes)
200- let an = if ((al != ""))
201- then invoke(m, "useFreeTx", [toString(addressFromPublicKey(fromBase58String(al)))], nil)
200+ then toString(addressFromPublicKey(fromBase58String(am)))
201+ else toBase58String(al.caller.bytes)
202+ let ao = if ((am != ""))
203+ then invoke(m, "useFreeTx", [toString(addressFromPublicKey(fromBase58String(am)))], nil)
202204 else unit
203- if ((an == an))
204- then $Tuple2(w, (am > 0))
205+ if ((ao == ao))
206+ then $Tuple2(x, (an > 0))
205207 else throw("Strict value is not equal to itself.")
206208 }
207209
208210
209-@Callable(ao)
210-func setConf (c,ap) = {
211- let w = toString(ao.caller)
212- if (containsElement([f, toString(this)], w))
213- then [StringEntry(c, ap)]
211+@Callable(ap)
212+func setConf (c,aq) = {
213+ let x = toString(ap.caller)
214+ if (containsElement([f, toString(this)], x))
215+ then [StringEntry(c, aq)]
214216 else throw("You are not allowed to change this")
215217 }
216218
217219
218220
219-@Callable(ao)
220-func appRunning (aq,ar) = {
221- let w = toString(ao.caller)
222- if (containsElement([f, toString(this)], w))
223- then [BooleanEntry(g, aq), StringEntry(h, ar)]
221+@Callable(ap)
222+func appRunning (ar,as) = {
223+ let x = toString(ap.caller)
224+ if (containsElement([f, toString(this)], x))
225+ then [BooleanEntry(g, ar), StringEntry(h, as)]
224226 else throw("You are not allowed to change this")
225227 }
226228
227229
228230
229-@Callable(ao)
230-func registrationMode (as) = {
231- let w = toString(ao.caller)
232- if (containsElement([f, toString(this)], w))
233- then [BooleanEntry(i, as)]
231+@Callable(ap)
232+func registrationMode (at) = {
233+ let x = toString(ap.caller)
234+ if (containsElement([f, toString(this)], x))
235+ then [BooleanEntry(i, at)]
234236 else throw("You are not allowed to change this")
235237 }
236238
237239
238240
239-@Callable(ao)
240-func registerUser (R,S,T,at,au,al) = if (!(j))
241+@Callable(ap)
242+func registerUser (S,T,U,au,av,am) = if (!(j))
241243 then throw(k)
242244 else {
243- let av = aj(ao, al)
244- let w = av._1
245- let am = av._2
246- let aw = toBase58String(ao.transactionId)
247- let ax = lastBlock.timestamp
248- let ay = b(F(w))
249- let az = b(G(w))
250- if (!(Q(w, R, S, T, false)))
245+ let aw = ak(ap, am)
246+ let x = aw._1
247+ let an = aw._2
248+ let ax = toBase58String(ap.transactionId)
249+ let ay = lastBlock.timestamp
250+ let az = b(G(x))
251+ let aA = b(H(x))
252+ if (!(R(x, S, T, U, false)))
251253 then throw("Something went wrong")
252254 else {
253- let aA = ad(toBase64String(toBytes(R)), toBase64String(toBytes(T)), toString(ax))
254- if (if ((0 > au))
255+ let aB = ae(toBase64String(toBytes(S)), toBase64String(toBytes(U)), toString(ay))
256+ if (if ((0 > av))
255257 then true
256- else (au > 1000))
258+ else (av > 1000))
257259 then throw("Royalties cannot be less than 0% or higher than 10%")
258260 else {
259- let aB = if (am)
260- then [ScriptTransfer(Address(fromBase58String(w)), 0, unit)]
261+ let aC = if (an)
262+ then [ScriptTransfer(Address(fromBase58String(x)), 0, unit)]
261263 else nil
262- ([IntegerEntry(D(w), ax), StringEntry(v(w), ((aw + "_") + toString(ax))), StringEntry(x(w), R), StringEntry(y(w), S), StringEntry(z(w), at), StringEntry(A(w), T), StringEntry(B(w), o), IntegerEntry(C(w), au), DeleteEntry(("ALLOWED_" + w)), StringEntry(((o + "_") + w), aA), StringEntry(F(w), ay), StringEntry(G(w), az)] ++ aB)
264+ ([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)
263265 }
264266 }
265267 }
266268
267269
268270
269-@Callable(ao)
270-func updateUser (R,S,T,at,au,al) = if (!(j))
271+@Callable(ap)
272+func updateUser (S,T,U,au,av,am) = if (!(j))
271273 then throw(k)
272274 else {
273- let aC = aj(ao, al)
274- let w = aC._1
275- let am = aC._2
276- let W = b(B(w))
277- if (!(Q(w, R, S, T, true)))
275+ let aD = ak(ap, am)
276+ let x = aD._1
277+ let an = aD._2
278+ let X = b(C(x))
279+ if (!(R(x, S, T, U, true)))
278280 then throw("Something went wrong")
279281 else {
280- let ae = e(D(w))
281- let aA = ad(toBase64String(toBytes(R)), toBase64String(toBytes(T)), toString(ae))
282- if (if ((0 > au))
282+ let af = e(E(x))
283+ let aB = ae(toBase64String(toBytes(S)), toBase64String(toBytes(U)), toString(af))
284+ if (if ((0 > av))
283285 then true
284- else (au > 1000))
286+ else (av > 1000))
285287 then throw("Royalties cannot be less than 0% or higher than 10%")
286288 else {
287- let aB = if (am)
288- then [ScriptTransfer(Address(fromBase58String(w)), 0, unit)]
289+ let aC = if (an)
290+ then [ScriptTransfer(Address(fromBase58String(x)), 0, unit)]
289291 else nil
290- ([StringEntry(x(w), R), StringEntry(y(w), S), StringEntry(z(w), at), StringEntry(A(w), T), IntegerEntry(C(w), au), StringEntry(((W + "_") + w), aA)] ++ aB)
292+ ([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)
291293 }
292294 }
293295 }
294296
295297
296298
297-@Callable(ao)
298-func setERC20User (aD,al) = if (!(j))
299+@Callable(ap)
300+func setERC20User (aE,am) = if (!(j))
299301 then throw(k)
300302 else {
301- let aE = aj(ao, al)
302- let w = aE._1
303- let am = aE._2
304- let W = b(B(w))
305- if (if ((W != o))
306- then (W != p)
303+ let aF = ak(ap, am)
304+ let x = aF._1
305+ let an = aF._2
306+ let X = b(C(x))
307+ if (if ((X != p))
308+ then (X != q)
307309 else false)
308310 then throw("Not allowed to set ERC20 address")
309311 else {
310- let aF = take(aD, 2)
311- if (if ((aF != "0x"))
312+ let aG = take(aE, 2)
313+ if (if ((aG != "0x"))
312314 then true
313- else (size(aD) != 42))
315+ else (size(aE) != 42))
314316 then throw("This is not an erc20 address")
315317 else {
316- let aB = if (am)
317- then [ScriptTransfer(Address(fromBase58String(w)), 0, unit)]
318+ let aC = if (an)
319+ then [ScriptTransfer(Address(fromBase58String(x)), 0, unit)]
318320 else nil
319- ([StringEntry(E(w), aD)] ++ aB)
321+ ([StringEntry(F(x), aE)] ++ aC)
320322 }
321323 }
322324 }
323325
324326
325327
326-@Callable(ao)
327-func changeUserStatus (Y,W,ay,az) = {
328- let w = toString(ao.caller)
329- if ((size(Y) == 0))
328+@Callable(ap)
329+func changeUserStatus (Z,X,az,aA,aH,aI,aJ) = {
330+ let x = toString(ap.caller)
331+ if ((size(Z) == 0))
330332 then throw("Address cannot be empty")
331333 else {
332- let aG = b(F(Y))
333- let aH = b(G(Y))
334- let aI = if ((size(ay) != 0))
335- then ay
336- else aG
337- let aJ = if ((size(az) != 0))
334+ let aK = b(G(Z))
335+ let aL = b(H(Z))
336+ let aM = if ((size(az) != 0))
338337 then az
339- else aH
340- if (containsElement([f, toString(this)], w))
341- then if ((size(W) == 0))
342- then {
343- let Z = b(B(Y))
344- if ((Z == ""))
345- then throw("User have no status yet")
346- else [StringEntry(F(Y), aI), StringEntry(G(Y), aJ)]
347- }
348- else {
349- let Z = b(B(Y))
350- let ab = X(W, Y, Z)
351- let R = toBase64String(toBytes(b(x(Y))))
352- let T = toBase64String(toBytes(b(A(Y))))
353- let ae = e(D(Y))
354- let aA = ad(R, T, toString(ae))
355-[StringEntry(B(Y), ab), DeleteEntry(((Z + "_") + Y)), StringEntry(((ab + "_") + Y), aA), StringEntry(F(Y), aI), StringEntry(G(Y), aJ)]
356- }
338+ else aK
339+ let aN = if ((size(aA) != 0))
340+ then aA
341+ else aL
342+ if (containsElement([f, toString(this)], x))
343+ then {
344+ let aO = if ((aH != 0))
345+ then invoke(n, "whitelistFreeCertifications", [Z, aH, true], nil)
346+ else nil
347+ if ((aO == aO))
348+ then {
349+ let aP = if ((aI != 0))
350+ then invoke(m, "whitelistFreeTxs", [Z, aI, true], nil)
351+ else nil
352+ if ((aP == aP))
353+ then {
354+ let aQ = if ((aJ != 0))
355+ then invoke(m, "whitelistFreeDrop", [Z, aJ, true], nil)
356+ else nil
357+ if ((aQ == aQ))
358+ then if ((size(X) == 0))
359+ then {
360+ let aa = b(C(Z))
361+ if ((aa == ""))
362+ then throw("User have no status yet")
363+ else [StringEntry(G(Z), aM), StringEntry(H(Z), aN)]
364+ }
365+ else {
366+ let aa = b(C(Z))
367+ let ac = Y(X, Z, aa)
368+ let S = toBase64String(toBytes(b(y(Z))))
369+ let U = toBase64String(toBytes(b(B(Z))))
370+ let af = e(E(Z))
371+ let aB = ae(S, U, toString(af))
372+[StringEntry(C(Z), ac), DeleteEntry(((aa + "_") + Z)), StringEntry(((ac + "_") + Z), aB), StringEntry(G(Z), aM), StringEntry(H(Z), aN)]
373+ }
374+ else throw("Strict value is not equal to itself.")
375+ }
376+ else throw("Strict value is not equal to itself.")
377+ }
378+ else throw("Strict value is not equal to itself.")
379+ }
357380 else throw("Not allowed to change user status")
358381 }
359382 }
360383
361384
362385
363-@Callable(ao)
364-func deleteUser (Y) = {
365- let w = toString(ao.caller)
366- let Z = b(B(Y))
367- if (containsElement([f, toString(this)], w))
368- then [DeleteEntry(D(Y)), DeleteEntry(v(Y)), DeleteEntry(x(Y)), DeleteEntry(y(Y)), DeleteEntry(z(Y)), DeleteEntry(A(Y)), DeleteEntry(("user_note_" + Y)), DeleteEntry(((Z + "_") + Y)), DeleteEntry(C(Y)), StringEntry(B(Y), r)]
386+@Callable(ap)
387+func deleteUser (Z) = {
388+ let x = toString(ap.caller)
389+ let aa = b(C(Z))
390+ if (containsElement([f, toString(this)], x))
391+ 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)]
369392 else throw("Not allowed")
370393 }
371394
372395
373396
374-@Callable(ak)
375-func setAgent (I,K,aK,aL) = if (!(j))
397+@Callable(al)
398+func setAgent (J,L,aR,aS) = if (!(j))
376399 then throw(k)
377400 else {
378- let w = toString(ak.caller)
379- if (containsElement([f, toString(this)], w))
380- then if (if ((size(I) != 35))
401+ let x = toString(al.caller)
402+ if (containsElement([f, toString(this)], x))
403+ then if (if ((size(J) != 35))
381404 then true
382- else (size(K) != 35))
405+ else (size(L) != 35))
383406 then throw("Wrong address")
384- else [StringEntry(H(I), K), StringEntry(J(K, I), I), IntegerEntry(L(I), aK), IntegerEntry(M(I), aL)]
407+ else [StringEntry(I(J), L), StringEntry(K(L, J), J), IntegerEntry(M(J), aR), IntegerEntry(N(J), aS)]
385408 else throw("You are not allowed")
386409 }
387410
388411
389412
390-@Callable(ak)
391-func unsetAgent (I,K) = if (!(j))
413+@Callable(al)
414+func unsetAgent (J,L) = if (!(j))
392415 then throw(k)
393416 else {
394- let w = toString(ak.caller)
395- if (containsElement([f, toString(this)], w))
396- then if (if ((size(I) != 35))
417+ let x = toString(al.caller)
418+ if (containsElement([f, toString(this)], x))
419+ then if (if ((size(J) != 35))
397420 then true
398- else (size(K) != 35))
421+ else (size(L) != 35))
399422 then throw("Wrong address")
400- else [DeleteEntry(H(I)), DeleteEntry(J(K, I)), DeleteEntry(L(I)), DeleteEntry(M(I))]
423+ else [DeleteEntry(I(J)), DeleteEntry(K(L, J)), DeleteEntry(M(J)), DeleteEntry(N(J))]
401424 else throw("You are not allowed")
402425 }
403426
404427
405428
406-@Callable(ak)
407-func deleteEntry (aM) = {
408- let w = toString(ak.caller)
409- if ((w == f))
410- then [DeleteEntry(aM)]
429+@Callable(al)
430+func deleteEntry (aT) = {
431+ let x = toString(al.caller)
432+ if ((x == f))
433+ then [DeleteEntry(aT)]
411434 else throw("no")
412435 }
413436
414437
415-@Verifier(aN)
416-func aO () = {
417- let ah = aN
418- if ($isInstanceOf(ah, "InvokeScriptTransaction"))
438+@Verifier(aU)
439+func aV () = {
440+ let ai = aU
441+ if ($isInstanceOf(ai, "InvokeScriptTransaction"))
419442 then {
420- let aP = ah
421- if (if (if (if ((aP.function == "registerUser"))
422- then (aP.dApp == this)
443+ let aW = ai
444+ if (if (if (if ((aW.function == "registerUser"))
445+ then (aW.dApp == this)
423446 else false)
424- then (aP.fee == 500000)
447+ then (aW.fee == 500000)
425448 else false)
426- then (aP.feeAssetId == unit)
449+ then (aW.feeAssetId == unit)
427450 else false)
428- then sigVerify(aN.bodyBytes, aN.proofs[0], fromBase58String(af(aP.args[5])))
429- else if (if (if (if ((aP.function == "updateUser"))
430- then (aP.dApp == this)
451+ then sigVerify(aU.bodyBytes, aU.proofs[0], fromBase58String(ag(aW.args[5])))
452+ else if (if (if (if ((aW.function == "updateUser"))
453+ then (aW.dApp == this)
431454 else false)
432- then (aP.fee == 500000)
455+ then (aW.fee == 500000)
433456 else false)
434- then (aP.feeAssetId == unit)
457+ then (aW.feeAssetId == unit)
435458 else false)
436- then sigVerify(aN.bodyBytes, aN.proofs[0], fromBase58String(af(aP.args[5])))
437- else if (if (if (if ((aP.function == "setERC20User"))
438- then (aP.dApp == this)
459+ then sigVerify(aU.bodyBytes, aU.proofs[0], fromBase58String(ag(aW.args[5])))
460+ else if (if (if (if ((aW.function == "setERC20User"))
461+ then (aW.dApp == this)
439462 else false)
440- then (aP.fee == 500000)
463+ then (aW.fee == 500000)
441464 else false)
442- then (aP.feeAssetId == unit)
465+ then (aW.feeAssetId == unit)
443466 else false)
444- then sigVerify(aN.bodyBytes, aN.proofs[0], fromBase58String(af(aP.args[2])))
445- else sigVerify(aN.bodyBytes, aN.proofs[0], aN.senderPublicKey)
467+ then sigVerify(aU.bodyBytes, aU.proofs[0], fromBase58String(ag(aW.args[2])))
468+ else sigVerify(aU.bodyBytes, aU.proofs[0], aU.senderPublicKey)
446469 }
447- else sigVerify(aN.bodyBytes, aN.proofs[0], aN.senderPublicKey)
470+ else sigVerify(aU.bodyBytes, aU.proofs[0], aU.senderPublicKey)
448471 }
449472

github/deemru/w8io/c3f4982 
124.90 ms