tx · 9k4EuFxvBSvXY4PAitq9h8L8TQAv67BRyCqttdd2SL4R

3N8xXaYjE27Aa79d5hHrhHu9HaFoTBmhDEj:  -0.01200000 Waves

2023.01.28 07:15 [2424324] smart account 3N8xXaYjE27Aa79d5hHrhHu9HaFoTBmhDEj > SELF 0.00000000 Waves

{ "type": 13, "id": "9k4EuFxvBSvXY4PAitq9h8L8TQAv67BRyCqttdd2SL4R", "fee": 1200000, "feeAssetId": null, "timestamp": 1674879318879, "version": 2, "chainId": 84, "sender": "3N8xXaYjE27Aa79d5hHrhHu9HaFoTBmhDEj", "senderPublicKey": "A2m227AHcq7gWfSU59Q3UJaqkEa7SccFYmJuWHbFrrKE", "proofs": [ "5HaSviWXmFVunqYo4vXhQEQ6PJtV7Wz2tgScbTGhWz4sdUxcNARkBVX7vULVnCByG8jVge5Ah3WmMqhb9J4jwnj7" ], "script": "base64:BgJNCAISBAoCCAgSBAoCBAgSAwoBBBIICgYICAgIAQgSCAoGCAgICAEIEgQKAggIEgYKBAgICAgSAwoBCBIGCgQICAEBEgQKAggIEgMKAQgqAAdWRVJTSU9OAgMxLjUBDmdldFN0cmluZ0J5S2V5AQNrZXkJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUDa2V5AgABD2dldEJvb2xlYW5CeUtleQEDa2V5CQELdmFsdWVPckVsc2UCCQCbCAIFBHRoaXMFA2tleQcBD2dldEludGVnZXJCeUtleQEDa2V5CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFA2tleQAAAAVjaHJpcwkBDmdldFN0cmluZ0J5S2V5AQIMY29uZl9hZG1pbl8xAA5kYXBwUnVubmluZ0tleQIUY29uZl9kYXBwX2lzX3J1bm5pbmcAEW1haW50ZW5hbmNlTVNHS2V5AhRjb25mX21haW50ZW5hbmNlX21zZwASd2hpdGVsaXN0ZWRvbmx5S2V5AhVjb25mX3doaXRlbGlzdGVkX29ubHkAC2RhcHBSdW5uaW5nCQELdmFsdWVPckVsc2UCCQCbCAIFBHRoaXMFDmRhcHBSdW5uaW5nS2V5BgAObWFpbnRlbmFuY2VNU0cJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwURbWFpbnRlbmFuY2VNU0dLZXkCAAAPd2hpdGVsaXN0ZWRvbmx5CQELdmFsdWVPckVsc2UCCQCbCAIFBHRoaXMFEndoaXRlbGlzdGVkb25seUtleQYADXdoaXRlbGlzdERhcHAJAQV2YWx1ZQEJAKYIAQkBDmdldFN0cmluZ0J5S2V5AQITY29uZl93aGl0ZWxpc3RfZGFwcAALdXNlckFsbG93ZWQCB0FMTE9XRUQADnVzZXJSZWdpc3RlcmVkAgpSRUdJU1RFUkVEAAx1c2VyVmVyaWZpZWQCCFZFUklGSUVEAA11c2VyU3VzcGVuZGVkAglTVVNQRU5ERUQAC3VzZXJSZW1vdmVkAgdSRU1PVkVEABJ1c2VyQ2hhbmdlUmVxdWlyZWQCD0NIQU5HRV9SRVFVSVJFRAAQdXNlclVucmVnaXN0ZXJlZAIMVU5SRUdJU1RFUkVEAAl1c2VyUmVzZXQCBVJFU0VUAQtrZXlVc2VyQWRkcgEGY2FsbGVyCQCsAgICBXVzZXJfBQZjYWxsZXIBC2tleVVzZXJOYW1lAQZjYWxsZXIJAKwCAgIKdXNlcl9uYW1lXwUGY2FsbGVyAQtrZXlVc2VyRGVzYwEGY2FsbGVyCQCsAgICCnVzZXJfZGVzY18FBmNhbGxlcgENa2V5VXNlclNvY2lhbAEGY2FsbGVyCQCsAgICDHVzZXJfc29jaWFsXwUGY2FsbGVyAQxrZXlVc2VyVGh1bWIBBmNhbGxlcgkArAICAgt1c2VyX3RodW1iXwUGY2FsbGVyAQ1rZXlVc2VyU3RhdHVzAQZjYWxsZXIJAKwCAgIMdXNlcl9zdGF0dXNfBQZjYWxsZXIBEGtleVVzZXJSb3lhbHRpZXMBBmNhbGxlcgkArAICAg91c2VyX3JveWFsdGllc18FBmNhbGxlcgELa2V5VXNlckRhdGUBBmNhbGxlcgkArAICAgp1c2VyX2RhdGVfBQZjYWxsZXIBDGtleVVzZXJFUkMyMAEGY2FsbGVyCQCsAgICC3VzZXJfRVJDMjBfBQZjYWxsZXIBC2tleVVzZXJOb3RlAQZjYWxsZXIJAKwCAgIKdXNlcl9ub3RlXwUGY2FsbGVyAQxrZXlVc2VyTGFiZWwBBmNhbGxlcgkArAICAgt1c2VyX2xhYmVsXwUGY2FsbGVyARJrZXlBcnRpc3RBZ2VudEFkZHIBCmFydGlzdEFkZHIJAKwCAgINYXJ0aXN0X2FnZW50XwUKYXJ0aXN0QWRkcgESa2V5QWdlbnRBcnRpc3RBZGRyAglhZ2VudEFkZHIKYXJ0aXN0QWRkcgkArAICCQCsAgIJAKwCAgIGYWdlbnRfBQlhZ2VudEFkZHICAV8FCmFydGlzdEFkZHIBD2tleVByaW1hcnlTaGFyZQEKYXJ0aXN0QWRkcgkArAICAhVhcnRpc3RfYWdlbnRfcHJpbWFyeV8FCmFydGlzdEFkZHIBEWtleVNlY29uZGFyeVNoYXJlAQphcnRpc3RBZGRyCQCsAgICF2FydGlzdF9hZ2VudF9zZWNvbmRhcnlfBQphcnRpc3RBZGRyAQ5jaGVja1doaXRlbGlzdAEDa2V5CQELdmFsdWVPckVsc2UCCQCaCAIFDXdoaXRlbGlzdERhcHAFA2tleQAAAQt2YWxpZGF0ZUNJRAEDY2lkAwkBCGNvbnRhaW5zAgUDY2lkAgEvAwMJAGYCAEwJALECAQUDY2lkCQAAAgkAsQIBCQCRAwIJALUJAgUDY2lkAgEvAAAAOwcJAGYCABAJALECAQkAkQMCCQC1CQIFA2NpZAIBLwABBwcBDXZhbGlkVXNlckRhdGEFBmNhbGxlcgRuYW1lC2Rlc2NyaXB0aW9uBXRodW1iCmlzQW5VcGRhdGUECHZhbGlkQ0lEAwkBAiE9AgkAsQIBBQV0aHVtYgAACQELdmFsaWRhdGVDSUQBBQV0aHVtYgYDCQEBIQEFCHZhbGlkQ0lECQACAQIcQ0lEIGRvbid0IG1hdGNoIHJlcXVpcmVtZW50IQMDCQAAAgUEbmFtZQIABgkAAAIFC2Rlc2NyaXB0aW9uAgAJAAIBAiROYW1lIGFuZCBkZXNjcmlwdGlvbiBjYW5ub3QgYmUgZW1wdHkDCQBmAgkAsQIBBQtkZXNjcmlwdGlvbgDYBAkAAgECGTYwMCBDaGFyLiBtYXggZGVzY3JpcHRpb24DCQBmAgkAsQIBBQRuYW1lAC0JAAIBAhE0NSBDaGFyLiBtYXggbmFtZQQGc3RhdHVzCQEOZ2V0U3RyaW5nQnlLZXkBCQENa2V5VXNlclN0YXR1cwEFBmNhbGxlcgMDCQAAAgUGc3RhdHVzBQ11c2VyU3VzcGVuZGVkBgkAAAIFBnN0YXR1cwULdXNlclJlbW92ZWQJAAIBAhtBY2NvdW50IHN1c3BlbmRlZC8gcmVtb3ZlZC4DAwkBASEBBQppc0FuVXBkYXRlCQAAAgUGc3RhdHVzBQ51c2VyUmVnaXN0ZXJlZAcJAAIBAhJBbHJlYWR5IHJlZ2lzdGVyZWQDAwMJAQEhAQUKaXNBblVwZGF0ZQkAAAIFBnN0YXR1cwIABwUPd2hpdGVsaXN0ZWRvbmx5BwkAAgECI0Nhbid0IHJlZ2lzdGVyLCBnZXQgYXBwcm92ZWQgZmlyc3QuAwMDBQppc0FuVXBkYXRlCQAAAgUGc3RhdHVzAgAHBgMFCmlzQW5VcGRhdGUJAAACBQZzdGF0dXMFC3VzZXJBbGxvd2VkBwkAAgECDlJlZ2lzdGVyIGZpcnN0BgERdmFsaWRhdGVOZXdTdGF0dXMDBnN0YXR1cwdhZGRyZXNzDWN1cnJlbnRTdGF0dXMECWFsbFN0YXR1cwkAzAgCBQx1c2VyVmVyaWZpZWQJAMwIAgUOdXNlclJlZ2lzdGVyZWQJAMwIAgUNdXNlclN1c3BlbmRlZAkAzAgCBQt1c2VyUmVtb3ZlZAkAzAgCBQt1c2VyQWxsb3dlZAkAzAgCBRJ1c2VyQ2hhbmdlUmVxdWlyZWQFA25pbAQLc3RhdHVzVG9TZXQDCQEPY29udGFpbnNFbGVtZW50AgUJYWxsU3RhdHVzBQZzdGF0dXMFBnN0YXR1cwMDCQAAAgUGc3RhdHVzBQl1c2VyUmVzZXQJAAACBQ1jdXJyZW50U3RhdHVzBQt1c2VyQWxsb3dlZAcCAAkAAgECDlVua25vd24gc3RhdHVzBBB1c2VySXNSZWdpc3RlcmVkCQEPZ2V0SW50ZWdlckJ5S2V5AQkBC2tleVVzZXJEYXRlAQUHYWRkcmVzcwMDCQAAAgUQdXNlcklzUmVnaXN0ZXJlZAAACQECIT0CBQtzdGF0dXNUb1NldAULdXNlckFsbG93ZWQHCQACAQIxWW91IGNhbnQgc2V0IHRoaXMgc3RhdHVzLCB1c2VyIGlzIG5vdCByZWdpc3RlcmVkLgMDCQAAAgUNY3VycmVudFN0YXR1cwULdXNlckFsbG93ZWQJAAACBQtzdGF0dXNUb1NldAULdXNlckFsbG93ZWQHCQACAQIUVXNlciBhbHJlYWR5IGFsbG93ZWQDAwkAAAIFDWN1cnJlbnRTdGF0dXMFDnVzZXJSZWdpc3RlcmVkCQAAAgULc3RhdHVzVG9TZXQFC3VzZXJBbGxvd2VkBwkAAgECIVVzZXIgYWxyZWFkeSBhbGxvd2VkICYgcmVnaXN0ZXJlZAMDCQAAAgUNY3VycmVudFN0YXR1cwUMdXNlclZlcmlmaWVkCQAAAgULc3RhdHVzVG9TZXQFC3VzZXJBbGxvd2VkBwkAAgECH1VzZXIgYWxyZWFkeSBhbGxvd2VkICYgdmVyaWZpZWQFC3N0YXR1c1RvU2V0AQhtYWtlSlNPTgMEbmFtZQV0aHVtYgRkYXRlCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAg97InVzZXJfbmFtZSI6ICIFBG5hbWUCESIsICJ1c2VyX3RodW1iIjoiBQV0aHVtYgIPIiwidXNlcl9kYXRlIjoiBQRkYXRlAgIifQEIYXNTdHJpbmcBAmJ2BAckbWF0Y2gwBQJidgMJAAECBQckbWF0Y2gwAgZTdHJpbmcEA2J2MAUHJG1hdGNoMAUDYnYwCQACAQIkU3BvbnNvcmVkIFB1YmxpYyBLZXkgU3RyaW5nIGV4cGVjdGVkAQlnZXRDYWxsZXICAWkGcHViS2V5BAtpc1Nwb25zb3JlZAMJAQIhPQIFBnB1YktleQIACQELdmFsdWVPckVsc2UCCQEOY2hlY2tXaGl0ZWxpc3QBCQCsAgIJAKUIAQkApwgBCQDZBAEFBnB1YktleQIJX2ZyZWVfdHhzAAAAAAQGY2FsbGVyAwMJAAACCQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMJAKUIAQUEdGhpcwkAZgIFC2lzU3BvbnNvcmVkAAAHCQClCAEJAKcIAQkA2QQBBQZwdWJLZXkJANgEAQgIBQFpBmNhbGxlcgVieXRlcwQTZ2V0X3Nwb25zb3JlZF93YXZlcwMJAQIhPQIFBnB1YktleQIACQD8BwQFDXdoaXRlbGlzdERhcHACCXVzZUZyZWVUeAkAzAgCCQClCAEJAKcIAQkA2QQBBQZwdWJLZXkFA25pbAUDbmlsBQR1bml0AwkAAAIFE2dldF9zcG9uc29yZWRfd2F2ZXMFE2dldF9zcG9uc29yZWRfd2F2ZXMJAJQKAgUGY2FsbGVyCQBmAgULaXNTcG9uc29yZWQAAAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgsGaW52b2tlAQdzZXRDb25mAgNrZXkDdmFsBAZjYWxsZXIJAKUIAQgFBmludm9rZQZjYWxsZXIDCQEPY29udGFpbnNFbGVtZW50AgkAzAgCBQVjaHJpcwkAzAgCCQClCAEFBHRoaXMFA25pbAUGY2FsbGVyCQDMCAIJAQtTdHJpbmdFbnRyeQIFA2tleQUDdmFsBQNuaWwJAAIBAiJZb3UgYXJlIG5vdCBhbGxvd2VkIHRvIGNoYW5nZSB0aGlzBmludm9rZQEKYXBwUnVubmluZwIGaXNMaXZlB21lc3NhZ2UEBmNhbGxlcgkApQgBCAUGaW52b2tlBmNhbGxlcgMJAQ9jb250YWluc0VsZW1lbnQCCQDMCAIFBWNocmlzCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQZjYWxsZXIJAMwIAgkBDEJvb2xlYW5FbnRyeQIFDmRhcHBSdW5uaW5nS2V5BQZpc0xpdmUJAMwIAgkBC1N0cmluZ0VudHJ5AgURbWFpbnRlbmFuY2VNU0dLZXkFB21lc3NhZ2UFA25pbAkAAgECIllvdSBhcmUgbm90IGFsbG93ZWQgdG8gY2hhbmdlIHRoaXMGaW52b2tlARByZWdpc3RyYXRpb25Nb2RlAQZXTG9ubHkEBmNhbGxlcgkApQgBCAUGaW52b2tlBmNhbGxlcgMJAQ9jb250YWluc0VsZW1lbnQCCQDMCAIFBWNocmlzCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQZjYWxsZXIJAMwIAgkBDEJvb2xlYW5FbnRyeQIFEndoaXRlbGlzdGVkb25seUtleQUGV0xvbmx5BQNuaWwJAAIBAiJZb3UgYXJlIG5vdCBhbGxvd2VkIHRvIGNoYW5nZSB0aGlzBmludm9rZQEMcmVnaXN0ZXJVc2VyBgRuYW1lC2Rlc2NyaXB0aW9uBXRodW1iBnNvY2lhbAlyb3lhbHRpZXMGcHViS2V5AwkBASEBBQtkYXBwUnVubmluZwkAAgEFDm1haW50ZW5hbmNlTVNHBAskdDA3MzE5NzM3MQkBCWdldENhbGxlcgIFBmludm9rZQUGcHViS2V5BAZjYWxsZXIIBQskdDA3MzE5NzM3MQJfMQQLaXNTcG9uc29yZWQIBQskdDA3MzE5NzM3MQJfMgQCaWQJANgEAQgFBmludm9rZQ10cmFuc2FjdGlvbklkBAl0aW1lc3RhbXAIBQlsYXN0QmxvY2sJdGltZXN0YW1wBARub3RlCQEOZ2V0U3RyaW5nQnlLZXkBCQELa2V5VXNlck5vdGUBBQZjYWxsZXIEBWxhYmVsCQEOZ2V0U3RyaW5nQnlLZXkBCQEMa2V5VXNlckxhYmVsAQUGY2FsbGVyAwkBASEBCQENdmFsaWRVc2VyRGF0YQUFBmNhbGxlcgUEbmFtZQULZGVzY3JpcHRpb24FBXRodW1iBwkAAgECFFNvbWV0aGluZyB3ZW50IHdyb25nBARqc29uCQEIbWFrZUpTT04DCQDaBAEJAJsDAQUEbmFtZQkA2gQBCQCbAwEFBXRodW1iCQCkAwEFCXRpbWVzdGFtcAMDCQBmAgAABQlyb3lhbHRpZXMGCQBmAgUJcm95YWx0aWVzAOgHCQACAQIzUm95YWx0aWVzIGNhbm5vdCBiZSBsZXNzIHRoYW4gMCUgb3IgaGlnaGVyIHRoYW4gMTAlBAp0eFRvQ2FsbGVyAwULaXNTcG9uc29yZWQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFBmNhbGxlcgAABQR1bml0BQNuaWwFA25pbAkAzggCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQELa2V5VXNlckRhdGUBBQZjYWxsZXIFCXRpbWVzdGFtcAkAzAgCCQELU3RyaW5nRW50cnkCCQELa2V5VXNlckFkZHIBBQZjYWxsZXIJAKwCAgkArAICBQJpZAIBXwkApAMBBQl0aW1lc3RhbXAJAMwIAgkBC1N0cmluZ0VudHJ5AgkBC2tleVVzZXJOYW1lAQUGY2FsbGVyBQRuYW1lCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQtrZXlVc2VyRGVzYwEFBmNhbGxlcgULZGVzY3JpcHRpb24JAMwIAgkBC1N0cmluZ0VudHJ5AgkBDWtleVVzZXJTb2NpYWwBBQZjYWxsZXIFBnNvY2lhbAkAzAgCCQELU3RyaW5nRW50cnkCCQEMa2V5VXNlclRodW1iAQUGY2FsbGVyBQV0aHVtYgkAzAgCCQELU3RyaW5nRW50cnkCCQENa2V5VXNlclN0YXR1cwEFBmNhbGxlcgUOdXNlclJlZ2lzdGVyZWQJAMwIAgkBDEludGVnZXJFbnRyeQIJARBrZXlVc2VyUm95YWx0aWVzAQUGY2FsbGVyBQlyb3lhbHRpZXMJAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICAghBTExPV0VEXwUGY2FsbGVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICBQ51c2VyUmVnaXN0ZXJlZAIBXwUGY2FsbGVyBQRqc29uCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQtrZXlVc2VyTm90ZQEFBmNhbGxlcgUEbm90ZQkAzAgCCQELU3RyaW5nRW50cnkCCQEMa2V5VXNlckxhYmVsAQUGY2FsbGVyBQVsYWJlbAUDbmlsBQp0eFRvQ2FsbGVyBmludm9rZQEKdXBkYXRlVXNlcgYEbmFtZQtkZXNjcmlwdGlvbgV0aHVtYgZzb2NpYWwJcm95YWx0aWVzBnB1YktleQMJAQEhAQULZGFwcFJ1bm5pbmcJAAIBBQ5tYWludGVuYW5jZU1TRwQLJHQwOTAxNzkxMjEJAQlnZXRDYWxsZXICBQZpbnZva2UFBnB1YktleQQGY2FsbGVyCAULJHQwOTAxNzkxMjECXzEEC2lzU3BvbnNvcmVkCAULJHQwOTAxNzkxMjECXzIEBnN0YXR1cwkBDmdldFN0cmluZ0J5S2V5AQkBDWtleVVzZXJTdGF0dXMBBQZjYWxsZXIDCQEBIQEJAQ12YWxpZFVzZXJEYXRhBQUGY2FsbGVyBQRuYW1lBQtkZXNjcmlwdGlvbgUFdGh1bWIGCQACAQIUU29tZXRoaW5nIHdlbnQgd3JvbmcEBGRhdGUJAQ9nZXRJbnRlZ2VyQnlLZXkBCQELa2V5VXNlckRhdGUBBQZjYWxsZXIEBGpzb24JAQhtYWtlSlNPTgMJANoEAQkAmwMBBQRuYW1lCQDaBAEJAJsDAQUFdGh1bWIJAKQDAQUEZGF0ZQMDCQBmAgAABQlyb3lhbHRpZXMGCQBmAgUJcm95YWx0aWVzAOgHCQACAQIzUm95YWx0aWVzIGNhbm5vdCBiZSBsZXNzIHRoYW4gMCUgb3IgaGlnaGVyIHRoYW4gMTAlBAp0eFRvQ2FsbGVyAwULaXNTcG9uc29yZWQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFBmNhbGxlcgAABQR1bml0BQNuaWwFA25pbAkAzggCCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQtrZXlVc2VyTmFtZQEFBmNhbGxlcgUEbmFtZQkAzAgCCQELU3RyaW5nRW50cnkCCQELa2V5VXNlckRlc2MBBQZjYWxsZXIFC2Rlc2NyaXB0aW9uCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ1rZXlVc2VyU29jaWFsAQUGY2FsbGVyBQZzb2NpYWwJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDGtleVVzZXJUaHVtYgEFBmNhbGxlcgUFdGh1bWIJAMwIAgkBDEludGVnZXJFbnRyeQIJARBrZXlVc2VyUm95YWx0aWVzAQUGY2FsbGVyBQlyb3lhbHRpZXMJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIFBnN0YXR1cwIBXwUGY2FsbGVyBQRqc29uBQNuaWwFCnR4VG9DYWxsZXIGaW52b2tlAQxzZXRFUkMyMFVzZXICBWVyYzIwBnB1YktleQMJAQEhAQULZGFwcFJ1bm5pbmcJAAIBBQ5tYWludGVuYW5jZU1TRwQNJHQwMTAzMDgxMDQxMQkBCWdldENhbGxlcgIFBmludm9rZQUGcHViS2V5BAZjYWxsZXIIBQ0kdDAxMDMwODEwNDExAl8xBAtpc1Nwb25zb3JlZAgFDSR0MDEwMzA4MTA0MTECXzIEBnN0YXR1cwkBDmdldFN0cmluZ0J5S2V5AQkBDWtleVVzZXJTdGF0dXMBBQZjYWxsZXIDAwkBAiE9AgUGc3RhdHVzBQ51c2VyUmVnaXN0ZXJlZAkBAiE9AgUGc3RhdHVzBQx1c2VyVmVyaWZpZWQHCQACAQIgTm90IGFsbG93ZWQgdG8gc2V0IEVSQzIwIGFkZHJlc3MECGZpcnN0VHdvCQCvAgIFBWVyYzIwAAIDAwkBAiE9AgUIZmlyc3RUd28CAjB4BgkBAiE9AgkAsQIBBQVlcmMyMAAqCQACAQIcVGhpcyBpcyBub3QgYW4gZXJjMjAgYWRkcmVzcwQKdHhUb0NhbGxlcgMFC2lzU3BvbnNvcmVkCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBBQZjYWxsZXIAAAUEdW5pdAUDbmlsBQNuaWwJAM4IAgkAzAgCCQELU3RyaW5nRW50cnkCCQEMa2V5VXNlckVSQzIwAQUGY2FsbGVyBQVlcmMyMAUDbmlsBQp0eFRvQ2FsbGVyBmludm9rZQEQY2hhbmdlVXNlclN0YXR1cwQHYWRkcmVzcwZzdGF0dXMEbm90ZQVsYWJlbAQGY2FsbGVyCQClCAEIBQZpbnZva2UGY2FsbGVyAwkAAAIJALECAQUHYWRkcmVzcwAACQACAQIXQWRkcmVzcyBjYW5ub3QgYmUgZW1wdHkEC2N1cnJlbnROb3RlCQEOZ2V0U3RyaW5nQnlLZXkBCQELa2V5VXNlck5vdGUBBQdhZGRyZXNzBAxjdXJyZW50TGFiZWwJAQ5nZXRTdHJpbmdCeUtleQEJAQxrZXlVc2VyTGFiZWwBBQdhZGRyZXNzBAlub3RlVG9Vc2UDCQECIT0CCQCxAgEFBG5vdGUAAAUEbm90ZQULY3VycmVudE5vdGUECmxhYmVsVG9Vc2UDCQECIT0CCQCxAgEFBWxhYmVsAAAFBWxhYmVsBQxjdXJyZW50TGFiZWwDCQEPY29udGFpbnNFbGVtZW50AgkAzAgCBQVjaHJpcwkAzAgCCQClCAEFBHRoaXMFA25pbAUGY2FsbGVyAwkAAAIJALECAQUGc3RhdHVzAAAEDWN1cnJlbnRTdGF0dXMJAQ5nZXRTdHJpbmdCeUtleQEJAQ1rZXlVc2VyU3RhdHVzAQUHYWRkcmVzcwMJAAACBQ1jdXJyZW50U3RhdHVzAgAJAAIBAhdVc2VyIGhhdmUgbm8gc3RhdHVzIHlldAkAzAgCCQELU3RyaW5nRW50cnkCCQELa2V5VXNlck5vdGUBBQdhZGRyZXNzBQlub3RlVG9Vc2UJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDGtleVVzZXJMYWJlbAEFB2FkZHJlc3MFCmxhYmVsVG9Vc2UFA25pbAQNY3VycmVudFN0YXR1cwkBDmdldFN0cmluZ0J5S2V5AQkBDWtleVVzZXJTdGF0dXMBBQdhZGRyZXNzBAtzdGF0dXNUb1NldAkBEXZhbGlkYXRlTmV3U3RhdHVzAwUGc3RhdHVzBQdhZGRyZXNzBQ1jdXJyZW50U3RhdHVzBARuYW1lCQDaBAEJAJsDAQkBDmdldFN0cmluZ0J5S2V5AQkBC2tleVVzZXJOYW1lAQUHYWRkcmVzcwQFdGh1bWIJANoEAQkAmwMBCQEOZ2V0U3RyaW5nQnlLZXkBCQEMa2V5VXNlclRodW1iAQUHYWRkcmVzcwQEZGF0ZQkBD2dldEludGVnZXJCeUtleQEJAQtrZXlVc2VyRGF0ZQEFB2FkZHJlc3MEBGpzb24JAQhtYWtlSlNPTgMFBG5hbWUFBXRodW1iCQCkAwEFBGRhdGUJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDWtleVVzZXJTdGF0dXMBBQdhZGRyZXNzBQtzdGF0dXNUb1NldAkAzAgCCQELRGVsZXRlRW50cnkBCQCsAgIJAKwCAgUNY3VycmVudFN0YXR1cwIBXwUHYWRkcmVzcwkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgULc3RhdHVzVG9TZXQCAV8FB2FkZHJlc3MFBGpzb24JAMwIAgkBC1N0cmluZ0VudHJ5AgkBC2tleVVzZXJOb3RlAQUHYWRkcmVzcwUJbm90ZVRvVXNlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQxrZXlVc2VyTGFiZWwBBQdhZGRyZXNzBQpsYWJlbFRvVXNlBQNuaWwJAAIBAiFOb3QgYWxsb3dlZCB0byBjaGFuZ2UgdXNlciBzdGF0dXMGaW52b2tlAQpkZWxldGVVc2VyAQdhZGRyZXNzBAZjYWxsZXIJAKUIAQgFBmludm9rZQZjYWxsZXIEDWN1cnJlbnRTdGF0dXMJAQ5nZXRTdHJpbmdCeUtleQEJAQ1rZXlVc2VyU3RhdHVzAQUHYWRkcmVzcwMJAQ9jb250YWluc0VsZW1lbnQCCQDMCAIFBWNocmlzCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQZjYWxsZXIJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBC2tleVVzZXJEYXRlAQUHYWRkcmVzcwkAzAgCCQELRGVsZXRlRW50cnkBCQELa2V5VXNlckFkZHIBBQdhZGRyZXNzCQDMCAIJAQtEZWxldGVFbnRyeQEJAQtrZXlVc2VyTmFtZQEFB2FkZHJlc3MJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBC2tleVVzZXJEZXNjAQUHYWRkcmVzcwkAzAgCCQELRGVsZXRlRW50cnkBCQENa2V5VXNlclNvY2lhbAEFB2FkZHJlc3MJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBDGtleVVzZXJUaHVtYgEFB2FkZHJlc3MJAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICAgp1c2VyX25vdGVfBQdhZGRyZXNzCQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgkArAICBQ1jdXJyZW50U3RhdHVzAgFfBQdhZGRyZXNzCQDMCAIJAQtEZWxldGVFbnRyeQEJARBrZXlVc2VyUm95YWx0aWVzAQUHYWRkcmVzcwkAzAgCCQELU3RyaW5nRW50cnkCCQENa2V5VXNlclN0YXR1cwEFB2FkZHJlc3MFC3VzZXJSZW1vdmVkBQNuaWwJAAIBAgtOb3QgYWxsb3dlZAFpAQhzZXRBZ2VudAQKYXJ0aXN0QWRkcglhZ2VudEFkZHIMcHJpbWFyeVNoYXJlDnNlY29uZGFyeVNoYXJlAwkBASEBBQtkYXBwUnVubmluZwkAAgEFDm1haW50ZW5hbmNlTVNHBAZjYWxsZXIJAKUIAQgFAWkGY2FsbGVyAwkBD2NvbnRhaW5zRWxlbWVudAIJAMwIAgUFY2hyaXMJAMwIAgkApQgBBQR0aGlzBQNuaWwFBmNhbGxlcgMDCQECIT0CCQCxAgEFCmFydGlzdEFkZHIAIwYJAQIhPQIJALECAQUJYWdlbnRBZGRyACMJAAIBAg1Xcm9uZyBhZGRyZXNzCQDMCAIJAQtTdHJpbmdFbnRyeQIJARJrZXlBcnRpc3RBZ2VudEFkZHIBBQphcnRpc3RBZGRyBQlhZ2VudEFkZHIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBEmtleUFnZW50QXJ0aXN0QWRkcgIFCWFnZW50QWRkcgUKYXJ0aXN0QWRkcgUKYXJ0aXN0QWRkcgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBD2tleVByaW1hcnlTaGFyZQEFCmFydGlzdEFkZHIFDHByaW1hcnlTaGFyZQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBEWtleVNlY29uZGFyeVNoYXJlAQUKYXJ0aXN0QWRkcgUOc2Vjb25kYXJ5U2hhcmUFA25pbAkAAgECE1lvdSBhcmUgbm90IGFsbG93ZWQBaQEKdW5zZXRBZ2VudAIKYXJ0aXN0QWRkcglhZ2VudEFkZHIDCQEBIQEFC2RhcHBSdW5uaW5nCQACAQUObWFpbnRlbmFuY2VNU0cEBmNhbGxlcgkApQgBCAUBaQZjYWxsZXIDCQEPY29udGFpbnNFbGVtZW50AgkAzAgCBQVjaHJpcwkAzAgCCQClCAEFBHRoaXMFA25pbAUGY2FsbGVyAwMJAQIhPQIJALECAQUKYXJ0aXN0QWRkcgAjBgkBAiE9AgkAsQIBBQlhZ2VudEFkZHIAIwkAAgECDVdyb25nIGFkZHJlc3MJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBEmtleUFydGlzdEFnZW50QWRkcgEFCmFydGlzdEFkZHIJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBEmtleUFnZW50QXJ0aXN0QWRkcgIFCWFnZW50QWRkcgUKYXJ0aXN0QWRkcgkAzAgCCQELRGVsZXRlRW50cnkBCQEPa2V5UHJpbWFyeVNoYXJlAQUKYXJ0aXN0QWRkcgkAzAgCCQELRGVsZXRlRW50cnkBCQERa2V5U2Vjb25kYXJ5U2hhcmUBBQphcnRpc3RBZGRyBQNuaWwJAAIBAhNZb3UgYXJlIG5vdCBhbGxvd2VkAWkBC2RlbGV0ZUVudHJ5AQVlbnRyeQQGY2FsbGVyCQClCAEIBQFpBmNhbGxlcgMJAAACBQZjYWxsZXIFBWNocmlzCQDMCAIJAQtEZWxldGVFbnRyeQEFBWVudHJ5BQNuaWwJAAIBAgJubwECdHgBCHZlcmlmaWVyAAQHJG1hdGNoMAUCdHgDCQABAgUHJG1hdGNoMAIXSW52b2tlU2NyaXB0VHJhbnNhY3Rpb24EA2ludgUHJG1hdGNoMAMDAwMJAAACCAUDaW52CGZ1bmN0aW9uAgxyZWdpc3RlclVzZXIJAAACCAUDaW52BGRBcHAFBHRoaXMHCQAAAggFA2ludgNmZWUAoMIeBwkAAAIIBQNpbnYKZmVlQXNzZXRJZAUEdW5pdAcJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAJANkEAQkBCGFzU3RyaW5nAQkAkQMCCAUDaW52BGFyZ3MABQMDAwMJAAACCAUDaW52CGZ1bmN0aW9uAgp1cGRhdGVVc2VyCQAAAggFA2ludgRkQXBwBQR0aGlzBwkAAAIIBQNpbnYDZmVlAKDCHgcJAAACCAUDaW52CmZlZUFzc2V0SWQFBHVuaXQHCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACQDZBAEJAQhhc1N0cmluZwEJAJEDAggFA2ludgRhcmdzAAUDAwMDCQAAAggFA2ludghmdW5jdGlvbgIMc2V0RVJDMjBVc2VyCQAAAggFA2ludgRkQXBwBQR0aGlzBwkAAAIIBQNpbnYDZmVlAKDCHgcJAAACCAUDaW52CmZlZUFzc2V0SWQFBHVuaXQHCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACQDZBAEJAQhhc1N0cmluZwEJAJEDAggFA2ludgRhcmdzAAIJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAIBQJ0eA9zZW5kZXJQdWJsaWNLZXkJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAIBQJ0eA9zZW5kZXJQdWJsaWNLZXmrQVVe", "height": 2424324, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 7MNNQHXVM5mXEWKoFQTJGZ2egQFhsWnE2yYTqUaFECxq Next: HUBnemqiBAEuFsRwe4GNxdgjSSXdW3LnFEjb1up741yK Diff:
OldNewDifferences
326326 @Callable(ao)
327327 func changeUserStatus (Y,W,ay,az) = {
328328 let w = toString(ao.caller)
329- if (containsElement([f, toString(this)], w))
330- then if ((size(W) == 0))
331- then {
332- let Z = b(B(Y))
333- if ((Z == ""))
334- then throw("User have no status yet")
335- else [StringEntry(F(Y), ay), StringEntry(G(Y), az)]
336- }
337- else {
338- let Z = b(B(Y))
339- let ab = X(W, Y, Z)
340- let R = toBase64String(toBytes(b(x(Y))))
341- let T = toBase64String(toBytes(b(A(Y))))
342- let ae = e(D(Y))
343- let aA = ad(R, T, toString(ae))
344-[StringEntry(B(Y), ab), DeleteEntry(((Z + "_") + Y)), StringEntry(((ab + "_") + Y), aA), StringEntry(F(Y), ay), StringEntry(G(Y), az)]
345- }
346- else throw("Not allowed to change user status")
329+ if ((size(Y) == 0))
330+ then throw("Address cannot be empty")
331+ 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))
338+ 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+ }
357+ else throw("Not allowed to change user status")
358+ }
347359 }
348360
349361
360372
361373
362374 @Callable(ak)
363-func setAgent (I,K,aG,aH) = if (!(j))
375+func setAgent (I,K,aK,aL) = if (!(j))
364376 then throw(k)
365377 else {
366378 let w = toString(ak.caller)
369381 then true
370382 else (size(K) != 35))
371383 then throw("Wrong address")
372- else [StringEntry(H(I), K), StringEntry(J(K, I), I), IntegerEntry(L(I), aG), IntegerEntry(M(I), aH)]
384+ else [StringEntry(H(I), K), StringEntry(J(K, I), I), IntegerEntry(L(I), aK), IntegerEntry(M(I), aL)]
373385 else throw("You are not allowed")
374386 }
375387
392404
393405
394406 @Callable(ak)
395-func deleteEntry (aI) = {
407+func deleteEntry (aM) = {
396408 let w = toString(ak.caller)
397409 if ((w == f))
398- then [DeleteEntry(aI)]
410+ then [DeleteEntry(aM)]
399411 else throw("no")
400412 }
401413
402414
403-@Verifier(aJ)
404-func aK () = {
405- let ah = aJ
415+@Verifier(aN)
416+func aO () = {
417+ let ah = aN
406418 if ($isInstanceOf(ah, "InvokeScriptTransaction"))
407419 then {
408- let aL = ah
409- if (if (if (if ((aL.function == "registerUser"))
410- then (aL.dApp == this)
420+ let aP = ah
421+ if (if (if (if ((aP.function == "registerUser"))
422+ then (aP.dApp == this)
411423 else false)
412- then (aL.fee == 500000)
424+ then (aP.fee == 500000)
413425 else false)
414- then (aL.feeAssetId == unit)
426+ then (aP.feeAssetId == unit)
415427 else false)
416- then sigVerify(aJ.bodyBytes, aJ.proofs[0], fromBase58String(af(aL.args[5])))
417- else if (if (if (if ((aL.function == "updateUser"))
418- then (aL.dApp == this)
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)
419431 else false)
420- then (aL.fee == 500000)
432+ then (aP.fee == 500000)
421433 else false)
422- then (aL.feeAssetId == unit)
434+ then (aP.feeAssetId == unit)
423435 else false)
424- then sigVerify(aJ.bodyBytes, aJ.proofs[0], fromBase58String(af(aL.args[5])))
425- else if (if (if (if ((aL.function == "setERC20User"))
426- then (aL.dApp == this)
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)
427439 else false)
428- then (aL.fee == 500000)
440+ then (aP.fee == 500000)
429441 else false)
430- then (aL.feeAssetId == unit)
442+ then (aP.feeAssetId == unit)
431443 else false)
432- then sigVerify(aJ.bodyBytes, aJ.proofs[0], fromBase58String(af(aL.args[2])))
433- else sigVerify(aJ.bodyBytes, aJ.proofs[0], aJ.senderPublicKey)
444+ then sigVerify(aN.bodyBytes, aN.proofs[0], fromBase58String(af(aP.args[2])))
445+ else sigVerify(aN.bodyBytes, aN.proofs[0], aN.senderPublicKey)
434446 }
435- else sigVerify(aJ.bodyBytes, aJ.proofs[0], aJ.senderPublicKey)
447+ else sigVerify(aN.bodyBytes, aN.proofs[0], aN.senderPublicKey)
436448 }
437449
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 = "ALLOWED"
3232
3333 let o = "REGISTERED"
3434
3535 let p = "VERIFIED"
3636
3737 let q = "SUSPENDED"
3838
3939 let r = "REMOVED"
4040
4141 let s = "CHANGE_REQUIRED"
4242
4343 let t = "UNREGISTERED"
4444
4545 let u = "RESET"
4646
4747 func v (w) = ("user_" + w)
4848
4949
5050 func x (w) = ("user_name_" + w)
5151
5252
5353 func y (w) = ("user_desc_" + w)
5454
5555
5656 func z (w) = ("user_social_" + w)
5757
5858
5959 func A (w) = ("user_thumb_" + w)
6060
6161
6262 func B (w) = ("user_status_" + w)
6363
6464
6565 func C (w) = ("user_royalties_" + w)
6666
6767
6868 func D (w) = ("user_date_" + w)
6969
7070
7171 func E (w) = ("user_ERC20_" + w)
7272
7373
7474 func F (w) = ("user_note_" + w)
7575
7676
7777 func G (w) = ("user_label_" + w)
7878
7979
8080 func H (I) = ("artist_agent_" + I)
8181
8282
8383 func J (K,I) = ((("agent_" + K) + "_") + I)
8484
8585
8686 func L (I) = ("artist_agent_primary_" + I)
8787
8888
8989 func M (I) = ("artist_agent_secondary_" + I)
9090
9191
9292 func N (c) = valueOrElse(getInteger(m, c), 0)
9393
9494
9595 func O (P) = if (contains(P, "/"))
9696 then if (if ((76 > size(P)))
9797 then (size(split(P, "/")[0]) == 59)
9898 else false)
9999 then (16 > size(split(P, "/")[1]))
100100 else false
101101 else false
102102
103103
104104 func Q (w,R,S,T,U) = {
105105 let V = if ((size(T) != 0))
106106 then O(T)
107107 else true
108108 if (!(V))
109109 then throw("CID don't match requirement!")
110110 else if (if ((R == ""))
111111 then true
112112 else (S == ""))
113113 then throw("Name and description cannot be empty")
114114 else if ((size(S) > 600))
115115 then throw("600 Char. max description")
116116 else if ((size(R) > 45))
117117 then throw("45 Char. max name")
118118 else {
119119 let W = b(B(w))
120120 if (if ((W == q))
121121 then true
122122 else (W == r))
123123 then throw("Account suspended/ removed.")
124124 else if (if (!(U))
125125 then (W == o)
126126 else false)
127127 then throw("Already registered")
128128 else if (if (if (!(U))
129129 then (W == "")
130130 else false)
131131 then l
132132 else false)
133133 then throw("Can't register, get approved first.")
134134 else if (if (if (U)
135135 then (W == "")
136136 else false)
137137 then true
138138 else if (U)
139139 then (W == n)
140140 else false)
141141 then throw("Register first")
142142 else true
143143 }
144144 }
145145
146146
147147 func X (W,Y,Z) = {
148148 let aa = [p, o, q, r, n, s]
149149 let ab = if (containsElement(aa, W))
150150 then W
151151 else if (if ((W == u))
152152 then (Z == n)
153153 else false)
154154 then ""
155155 else throw("Unknown status")
156156 let ac = e(D(Y))
157157 if (if ((ac == 0))
158158 then (ab != n)
159159 else false)
160160 then throw("You cant set this status, user is not registered.")
161161 else if (if ((Z == n))
162162 then (ab == n)
163163 else false)
164164 then throw("User already allowed")
165165 else if (if ((Z == o))
166166 then (ab == n)
167167 else false)
168168 then throw("User already allowed & registered")
169169 else if (if ((Z == p))
170170 then (ab == n)
171171 else false)
172172 then throw("User already allowed & verified")
173173 else ab
174174 }
175175
176176
177177 func ad (R,T,ae) = (((((("{\"user_name\": \"" + R) + "\", \"user_thumb\":\"") + T) + "\",\"user_date\":\"") + ae) + "\"}")
178178
179179
180180 func af (ag) = {
181181 let ah = ag
182182 if ($isInstanceOf(ah, "String"))
183183 then {
184184 let ai = ah
185185 ai
186186 }
187187 else throw("Sponsored Public Key String expected")
188188 }
189189
190190
191191 func aj (ak,al) = {
192192 let am = if ((al != ""))
193193 then valueOrElse(N((toString(addressFromPublicKey(fromBase58String(al))) + "_free_txs")), 0)
194194 else 0
195195 let w = if (if ((toBase58String(ak.caller.bytes) == toString(this)))
196196 then (am > 0)
197197 else false)
198198 then toString(addressFromPublicKey(fromBase58String(al)))
199199 else toBase58String(ak.caller.bytes)
200200 let an = if ((al != ""))
201201 then invoke(m, "useFreeTx", [toString(addressFromPublicKey(fromBase58String(al)))], nil)
202202 else unit
203203 if ((an == an))
204204 then $Tuple2(w, (am > 0))
205205 else throw("Strict value is not equal to itself.")
206206 }
207207
208208
209209 @Callable(ao)
210210 func setConf (c,ap) = {
211211 let w = toString(ao.caller)
212212 if (containsElement([f, toString(this)], w))
213213 then [StringEntry(c, ap)]
214214 else throw("You are not allowed to change this")
215215 }
216216
217217
218218
219219 @Callable(ao)
220220 func appRunning (aq,ar) = {
221221 let w = toString(ao.caller)
222222 if (containsElement([f, toString(this)], w))
223223 then [BooleanEntry(g, aq), StringEntry(h, ar)]
224224 else throw("You are not allowed to change this")
225225 }
226226
227227
228228
229229 @Callable(ao)
230230 func registrationMode (as) = {
231231 let w = toString(ao.caller)
232232 if (containsElement([f, toString(this)], w))
233233 then [BooleanEntry(i, as)]
234234 else throw("You are not allowed to change this")
235235 }
236236
237237
238238
239239 @Callable(ao)
240240 func registerUser (R,S,T,at,au,al) = if (!(j))
241241 then throw(k)
242242 else {
243243 let av = aj(ao, al)
244244 let w = av._1
245245 let am = av._2
246246 let aw = toBase58String(ao.transactionId)
247247 let ax = lastBlock.timestamp
248248 let ay = b(F(w))
249249 let az = b(G(w))
250250 if (!(Q(w, R, S, T, false)))
251251 then throw("Something went wrong")
252252 else {
253253 let aA = ad(toBase64String(toBytes(R)), toBase64String(toBytes(T)), toString(ax))
254254 if (if ((0 > au))
255255 then true
256256 else (au > 1000))
257257 then throw("Royalties cannot be less than 0% or higher than 10%")
258258 else {
259259 let aB = if (am)
260260 then [ScriptTransfer(Address(fromBase58String(w)), 0, unit)]
261261 else nil
262262 ([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)
263263 }
264264 }
265265 }
266266
267267
268268
269269 @Callable(ao)
270270 func updateUser (R,S,T,at,au,al) = if (!(j))
271271 then throw(k)
272272 else {
273273 let aC = aj(ao, al)
274274 let w = aC._1
275275 let am = aC._2
276276 let W = b(B(w))
277277 if (!(Q(w, R, S, T, true)))
278278 then throw("Something went wrong")
279279 else {
280280 let ae = e(D(w))
281281 let aA = ad(toBase64String(toBytes(R)), toBase64String(toBytes(T)), toString(ae))
282282 if (if ((0 > au))
283283 then true
284284 else (au > 1000))
285285 then throw("Royalties cannot be less than 0% or higher than 10%")
286286 else {
287287 let aB = if (am)
288288 then [ScriptTransfer(Address(fromBase58String(w)), 0, unit)]
289289 else nil
290290 ([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)
291291 }
292292 }
293293 }
294294
295295
296296
297297 @Callable(ao)
298298 func setERC20User (aD,al) = if (!(j))
299299 then throw(k)
300300 else {
301301 let aE = aj(ao, al)
302302 let w = aE._1
303303 let am = aE._2
304304 let W = b(B(w))
305305 if (if ((W != o))
306306 then (W != p)
307307 else false)
308308 then throw("Not allowed to set ERC20 address")
309309 else {
310310 let aF = take(aD, 2)
311311 if (if ((aF != "0x"))
312312 then true
313313 else (size(aD) != 42))
314314 then throw("This is not an erc20 address")
315315 else {
316316 let aB = if (am)
317317 then [ScriptTransfer(Address(fromBase58String(w)), 0, unit)]
318318 else nil
319319 ([StringEntry(E(w), aD)] ++ aB)
320320 }
321321 }
322322 }
323323
324324
325325
326326 @Callable(ao)
327327 func changeUserStatus (Y,W,ay,az) = {
328328 let w = toString(ao.caller)
329- if (containsElement([f, toString(this)], w))
330- then if ((size(W) == 0))
331- then {
332- let Z = b(B(Y))
333- if ((Z == ""))
334- then throw("User have no status yet")
335- else [StringEntry(F(Y), ay), StringEntry(G(Y), az)]
336- }
337- else {
338- let Z = b(B(Y))
339- let ab = X(W, Y, Z)
340- let R = toBase64String(toBytes(b(x(Y))))
341- let T = toBase64String(toBytes(b(A(Y))))
342- let ae = e(D(Y))
343- let aA = ad(R, T, toString(ae))
344-[StringEntry(B(Y), ab), DeleteEntry(((Z + "_") + Y)), StringEntry(((ab + "_") + Y), aA), StringEntry(F(Y), ay), StringEntry(G(Y), az)]
345- }
346- else throw("Not allowed to change user status")
329+ if ((size(Y) == 0))
330+ then throw("Address cannot be empty")
331+ 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))
338+ 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+ }
357+ else throw("Not allowed to change user status")
358+ }
347359 }
348360
349361
350362
351363 @Callable(ao)
352364 func deleteUser (Y) = {
353365 let w = toString(ao.caller)
354366 let Z = b(B(Y))
355367 if (containsElement([f, toString(this)], w))
356368 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)]
357369 else throw("Not allowed")
358370 }
359371
360372
361373
362374 @Callable(ak)
363-func setAgent (I,K,aG,aH) = if (!(j))
375+func setAgent (I,K,aK,aL) = if (!(j))
364376 then throw(k)
365377 else {
366378 let w = toString(ak.caller)
367379 if (containsElement([f, toString(this)], w))
368380 then if (if ((size(I) != 35))
369381 then true
370382 else (size(K) != 35))
371383 then throw("Wrong address")
372- else [StringEntry(H(I), K), StringEntry(J(K, I), I), IntegerEntry(L(I), aG), IntegerEntry(M(I), aH)]
384+ else [StringEntry(H(I), K), StringEntry(J(K, I), I), IntegerEntry(L(I), aK), IntegerEntry(M(I), aL)]
373385 else throw("You are not allowed")
374386 }
375387
376388
377389
378390 @Callable(ak)
379391 func unsetAgent (I,K) = if (!(j))
380392 then throw(k)
381393 else {
382394 let w = toString(ak.caller)
383395 if (containsElement([f, toString(this)], w))
384396 then if (if ((size(I) != 35))
385397 then true
386398 else (size(K) != 35))
387399 then throw("Wrong address")
388400 else [DeleteEntry(H(I)), DeleteEntry(J(K, I)), DeleteEntry(L(I)), DeleteEntry(M(I))]
389401 else throw("You are not allowed")
390402 }
391403
392404
393405
394406 @Callable(ak)
395-func deleteEntry (aI) = {
407+func deleteEntry (aM) = {
396408 let w = toString(ak.caller)
397409 if ((w == f))
398- then [DeleteEntry(aI)]
410+ then [DeleteEntry(aM)]
399411 else throw("no")
400412 }
401413
402414
403-@Verifier(aJ)
404-func aK () = {
405- let ah = aJ
415+@Verifier(aN)
416+func aO () = {
417+ let ah = aN
406418 if ($isInstanceOf(ah, "InvokeScriptTransaction"))
407419 then {
408- let aL = ah
409- if (if (if (if ((aL.function == "registerUser"))
410- then (aL.dApp == this)
420+ let aP = ah
421+ if (if (if (if ((aP.function == "registerUser"))
422+ then (aP.dApp == this)
411423 else false)
412- then (aL.fee == 500000)
424+ then (aP.fee == 500000)
413425 else false)
414- then (aL.feeAssetId == unit)
426+ then (aP.feeAssetId == unit)
415427 else false)
416- then sigVerify(aJ.bodyBytes, aJ.proofs[0], fromBase58String(af(aL.args[5])))
417- else if (if (if (if ((aL.function == "updateUser"))
418- then (aL.dApp == this)
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)
419431 else false)
420- then (aL.fee == 500000)
432+ then (aP.fee == 500000)
421433 else false)
422- then (aL.feeAssetId == unit)
434+ then (aP.feeAssetId == unit)
423435 else false)
424- then sigVerify(aJ.bodyBytes, aJ.proofs[0], fromBase58String(af(aL.args[5])))
425- else if (if (if (if ((aL.function == "setERC20User"))
426- then (aL.dApp == this)
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)
427439 else false)
428- then (aL.fee == 500000)
440+ then (aP.fee == 500000)
429441 else false)
430- then (aL.feeAssetId == unit)
442+ then (aP.feeAssetId == unit)
431443 else false)
432- then sigVerify(aJ.bodyBytes, aJ.proofs[0], fromBase58String(af(aL.args[2])))
433- else sigVerify(aJ.bodyBytes, aJ.proofs[0], aJ.senderPublicKey)
444+ then sigVerify(aN.bodyBytes, aN.proofs[0], fromBase58String(af(aP.args[2])))
445+ else sigVerify(aN.bodyBytes, aN.proofs[0], aN.senderPublicKey)
434446 }
435- else sigVerify(aJ.bodyBytes, aJ.proofs[0], aJ.senderPublicKey)
447+ else sigVerify(aN.bodyBytes, aN.proofs[0], aN.senderPublicKey)
436448 }
437449

github/deemru/w8io/026f985 
61.63 ms