tx · 8ntMWPr84s9hnvJSjZPWBt7EZnpFXJKDGN1oz7EJYywh

3N6oQmUanp4TWuHnv5rma4WveVub63JRFB2:  -0.01200000 Waves

2023.06.28 20:30 [2642805] smart account 3N6oQmUanp4TWuHnv5rma4WveVub63JRFB2 > SELF 0.00000000 Waves

{ "type": 13, "id": "8ntMWPr84s9hnvJSjZPWBt7EZnpFXJKDGN1oz7EJYywh", "fee": 1200000, "feeAssetId": null, "timestamp": 1687973482981, "version": 2, "chainId": 84, "sender": "3N6oQmUanp4TWuHnv5rma4WveVub63JRFB2", "senderPublicKey": "EM2pooK6eEzhzFXZFGd2phMRus6f1M5GxBsawNk9oi37", "proofs": [ "63i2xFybEtc5DYnAngxAACY5FPAHSSkaPbPZLrKEF9FBFLQDPdCyDJcxjjTthQcjAfg7eg8EpumCs89vkaNJZsoi" ], "script": "base64:BgIbCAISBAoCCAESBAoCAQESBgoECAEBGBIDCgEBNQEVa2V5VXNlckd3bFJlbGVhc2VUaW1lAQh1c2VyQWRkcgkArAICAholcyVzX191c2VyR3dsUmVsZWFzZVRpbWVfXwUIdXNlckFkZHIAC0lkeEVmZlRvdGFsAAAACklkeEVmZlVzZXIAAQAFY2hhaW4JAMkBAgkAygECCAUEdGhpcwVieXRlcwABAAEAFWRlZmF1bHRSZXN0QWRkcmVzc1N0cgQHJG1hdGNoMAUFY2hhaW4DCQAAAgEBVwUHJG1hdGNoMAIjM1BRQ3V2RmJ2aDRMa1BVbnJuVTF6M2puYkExcDltM1dOaHYDCQAAAgEBVAUHJG1hdGNoMAIjM011bWtHR3p0Q0tBWHBXRHF4a2Rkb2ZxWFNVYnFRa3ZTSnkJAAIBAg1Vbmtub3duIGNoYWluAANTRVACAl9fAAVNVUxUNgDAhD0ABVNTSVpFABkABU1TSVpFAGQABUxTSVpFAOEBAAZYTFNJWkUAkAMAB1hYTFNJWkUA8QQBD2dldFN0cmluZ09yRmFpbAIHYWRkcmVzcwNrZXkJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQdhZGRyZXNzBQNrZXkJALkJAgkAzAgCAgptYW5kYXRvcnkgCQDMCAIJAKUIAQUHYWRkcmVzcwkAzAgCAgEuCQDMCAIFA2tleQkAzAgCAg8gaXMgbm90IGRlZmluZWQFA25pbAIAAQxnZXRJbnRPckVsc2UCA2tleQpkZWZhdWx0VmFsCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFA2tleQUKZGVmYXVsdFZhbAARSWR4Q2ZnU3Rha2luZ0RhcHAAAQEKa2V5UmVzdENmZwACDiVzX19yZXN0Q29uZmlnAQ5rZXlSZXN0QWRkcmVzcwACDCVzX19yZXN0QWRkcgERcmVhZFJlc3RDZmdPckZhaWwBBHJlc3QJALwJAgkBD2dldFN0cmluZ09yRmFpbAIFBHJlc3QJAQprZXlSZXN0Q2ZnAAUDU0VQARhnZXRDb250cmFjdEFkZHJlc3NPckZhaWwCB3Jlc3RDZmcDaWR4CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkAkQMCBQdyZXN0Q2ZnBQNpZHgJAKwCAgIqUmVzdCBjZmcgZG9lc24ndCBjb250YWluIGFkZHJlc3MgYXQgaW5kZXggCQCkAwEFA2lkeAAMcmVzdENvbnRyYWN0CQERQGV4dHJOYXRpdmUoMTA2MikBCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJAQ5rZXlSZXN0QWRkcmVzcwAFFWRlZmF1bHRSZXN0QWRkcmVzc1N0cgAHcmVzdENmZwkBEXJlYWRSZXN0Q2ZnT3JGYWlsAQUMcmVzdENvbnRyYWN0AA9zdGFraW5nQ29udHJhY3QJARhnZXRDb250cmFjdEFkZHJlc3NPckZhaWwCBQdyZXN0Q2ZnBRFJZHhDZmdTdGFraW5nRGFwcAALcmVjTGFuZFNpemUAAQERa2V5UmVzUHJvcG9ydGlvbnMAAhNyZXNUeXBlc1Byb3BvcnRpb25zARVrZXlTdGFrZWRMYW5kc0J5T3duZXIBCW93bmVyQWRkcgkArAICAhNzdGFrZWRMYW5kc0J5T3duZXJfBQlvd25lckFkZHIBD251bVBpZWNlc0J5U2l6ZQEIbGFuZFNpemUEByRtYXRjaDAFCGxhbmRTaXplAwkAAAICAVMFByRtYXRjaDAFBVNTSVpFAwkAAAICAU0FByRtYXRjaDAFBU1TSVpFAwkAAAICAUwFByRtYXRjaDAFBUxTSVpFAwkAAAICAlhMBQckbWF0Y2gwBQZYTFNJWkUDCQAAAgIDWFhMBQckbWF0Y2gwBQdYWExTSVpFCQACAQIRVW5rbm93biBsYW5kIHNpemUBDmdldFZvdGluZ1Bvd2VyARJ1c2VyQWRkclN0ck9yRW1wdHkEBXByb3BzCQC1CQIJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUPc3Rha2luZ0NvbnRyYWN0CQERa2V5UmVzUHJvcG9ydGlvbnMAAgswXzBfMF8wXzBfMAIBXwoBBWFkZGVyAgNhY2MEaXRlbQkAZAIFA2FjYwkBDXBhcnNlSW50VmFsdWUBBQRpdGVtBAp0b3RhbFBvd2VyCgACJGwFBXByb3BzCgACJHMJAJADAQUCJGwKAAUkYWNjMAAACgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQVhZGRlcgIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQITTGlzdCBzaXplIGV4Y2VlZHMgNgkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgQKdXNlcnNQb3dlcgMJAAACBRJ1c2VyQWRkclN0ck9yRW1wdHkCAAAABAhsYW5kc1N0cgkAnQgCBQ9zdGFraW5nQ29udHJhY3QJARVrZXlTdGFrZWRMYW5kc0J5T3duZXIBBRJ1c2VyQWRkclN0ck9yRW1wdHkEBWxhbmRzAwkBCWlzRGVmaW5lZAEFCGxhbmRzU3RyCQC9CQIJAQV2YWx1ZQEFCGxhbmRzU3RyAgFfBQNuaWwKAQdvbmVMYW5kAgNhY2MLbGFuZEFzc2V0SWQEBWFzc2V0CQEFdmFsdWUBCQDsBwEJANkEAQULbGFuZEFzc2V0SWQECGxhbmRTaXplCQCRAwIJALUJAggFBWFzc2V0C2Rlc2NyaXB0aW9uAgFfBQtyZWNMYW5kU2l6ZQkAZAIFA2FjYwkBD251bVBpZWNlc0J5U2l6ZQEFCGxhbmRTaXplCgACJGwFBWxhbmRzCgACJHMJAJADAQUCJGwKAAUkYWNjMAAACgEFJGYxXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQdvbmVMYW5kAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYxXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhVMaXN0IHNpemUgZXhjZWVkcyAxMDAJAQUkZjFfMgIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAjACQAJQAmACcAKAApACoAKwAsAC0ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQA+AD8AQABBAEIAQwBEAEUARgBHAEgASQBKAEsATABNAE4ATwBQAFEAUgBTAFQAVQBWAFcAWABZAFoAWwBcAF0AXgBfAGAAYQBiAGMAZAkAzAgCBQp0b3RhbFBvd2VyCQDMCAIFCnVzZXJzUG93ZXIFA25pbAAHTElTVFNFUAIBOgANREVGQVVMVFFVT1JVTQCgwh4ACE1BWFRJVExFAPoBAA1NQVhWT1RJTkdUSU1FAICQ5MAEABRERUZBVUxURklSU1RQUk9QT1NBTAABAAtnb3ZJZHhTdGFydAAEAAlnb3ZJZHhFbmQABQAMZ292SWR4UXVvcnVtAAYADWdvdklkeE9wdGlvbnMABwAWZ292U3RhdHVzSWR4VG90YWxWb3RlcwAEABZnb3ZTdGF0dXNJZHhJc0NhbmNlbGVkAAUBGGtleVF1b3J1bVJlcXVpcmVkUGVyY2VudAACEiVzX19xdW9ydW1SZXF1aXJlZAERa2V5TGFzdFByb3Bvc2FsSWQAAg4lc19fcHJvcG9zYWxJZAESa2V5Rmlyc3RQcm9wb3NhbElkAAITJXNfX2ZpcnN0UHJvcG9zYWxJZAEZa2V5UHJvcG9zYWxTdGF0dXNEYXRhQnlJZAEKcHJvcG9zYWxJZAkArAICAholcyVkX19wcm9wb3NhbFN0YXR1c0RhdGFfXwkApAMBBQpwcm9wb3NhbElkARNrZXlQcm9wb3NhbERhdGFCeUlkAQpwcm9wb3NhbElkCQCsAgICFCVzJWRfX3Byb3Bvc2FsRGF0YV9fCQCkAwEFCnByb3Bvc2FsSWQBHWtleVByb3Bvc2FsVm90ZXNCeUlkQW5kT3B0aW9uAgpwcm9wb3NhbElkA29wdAkAuQkCCQDMCAICBiVzJWQlZAkAzAgCAgp2b3Rlc0J5T3B0CQDMCAIJAKQDAQUKcHJvcG9zYWxJZAkAzAgCCQCkAwEFA29wdAUDbmlsBQNTRVABG2tleVByb3Bvc2FsVm90ZXNCeUlkQW5kVXNlcgIKcHJvcG9zYWxJZAh1c2VyQWRkcgkAuQkCCQDMCAICBiVzJWQlcwkAzAgCAgt2b3Rlc0J5VXNlcgkAzAgCCQCkAwEFCnByb3Bvc2FsSWQJAMwIAgUIdXNlckFkZHIFA25pbAUDU0VQARxrZXlQcm9wb3NhbENob2ljZUJ5SWRBbmRVc2VyAgpwcm9wb3NhbElkCHVzZXJBZGRyCQC5CQIJAMwIAgIGJXMlZCVzCQDMCAICDG9wdGlvbkJ5VXNlcgkAzAgCCQCkAwEFCnByb3Bvc2FsSWQJAMwIAgUIdXNlckFkZHIFA25pbAUDU0VQAR5rZXlOdW1VbmlxdWVWb3RlcnNCeVByb3Bvc2FsSWQBCnByb3Bvc2FsSWQJAKwCAgIRJXMlZF9fbnVtVm90ZXJzX18JAKQDAQUKcHJvcG9zYWxJZAEYa2V5U3RhdHNBdmVyVW5pcXVlVm90ZXJzAAIgJXMlcyVzX19zdGF0c19fYXZnX191bmlxdWVWb3RlcnMBFGtleVN0YXRzQXZlckd3bFZvdGVkAAIcJXMlcyVzX19zdGF0c19fYXZnX19nd2xWb3RlZAEKc3RhdHVzRGF0YQUNaXNWb3RpbmdWYWxpZAl3aW5PcHRpb24Od2luT3B0aW9uVm90ZXMKdG90YWxWb3Rlcw5jYW5jZWxlZEJ5VGVhbQkAuQkCCQDMCAICCiViJWQlZCVkJWIJAMwIAgkApQMBBQ1pc1ZvdGluZ1ZhbGlkCQDMCAIJAKQDAQUJd2luT3B0aW9uCQDMCAIJAKQDAQUOd2luT3B0aW9uVm90ZXMJAMwIAgkApAMBBQp0b3RhbFZvdGVzCQDMCAIJAKUDAQUOY2FuY2VsZWRCeVRlYW0FA25pbAUDU0VQAQxwcm9wb3NhbERhdGEHDHByb3Bvc2FsVHhJZAV0aXRsZQxwcm9wb3NhbFRpbWUPdm90aW5nU3RhcnRUaW1lDXZvdGluZ0VuZFRpbWULcXVvcnVtSW5Hd2wHb3B0aW9ucwkAugkCCQDMCAICDiVzJXMlZCVkJWQlZCVzCQDMCAIFDHByb3Bvc2FsVHhJZAkAzAgCBQV0aXRsZQkAzAgCCQCkAwEFDHByb3Bvc2FsVGltZQkAzAgCCQCkAwEFD3ZvdGluZ1N0YXJ0VGltZQkAzAgCCQCkAwEFDXZvdGluZ0VuZFRpbWUJAMwIAgkApAMBBQtxdW9ydW1Jbkd3bAkAzAgCBQdvcHRpb25zBQNuaWwFA1NFUAENY2FsY1dpbk9wdGlvbgcKcHJvcG9zYWxJZAtvcHRpb25zTGlzdA5pc1ByZXZPcHRpb25hbAlvbGRDaG9pY2UQb3B0aW9uYWxUb3RhbE9sZAluZXdDaG9pY2UTbmV3VG90YWxCeU5ld0Nob2ljZQoBCGZpbmRCZXN0AgNhY2MEZWxlbQQDaWR4CQEFdmFsdWUBCQDPCAIFC29wdGlvbnNMaXN0BQRlbGVtBAN2YWwDBQ5pc1ByZXZPcHRpb25hbAMJAAACBQNpZHgFCW5ld0Nob2ljZQUTbmV3VG90YWxCeU5ld0Nob2ljZQkBDGdldEludE9yRWxzZQIJAR1rZXlQcm9wb3NhbFZvdGVzQnlJZEFuZE9wdGlvbgIFCnByb3Bvc2FsSWQFA2lkeAAAAwkAAAIFA2lkeAkBBXZhbHVlAQUJb2xkQ2hvaWNlBRBvcHRpb25hbFRvdGFsT2xkAwkAAAIFA2lkeAUJbmV3Q2hvaWNlBRNuZXdUb3RhbEJ5TmV3Q2hvaWNlCQEMZ2V0SW50T3JFbHNlAgkBHWtleVByb3Bvc2FsVm90ZXNCeUlkQW5kT3B0aW9uAgUKcHJvcG9zYWxJZAUDaWR4AAADCQBmAggFA2FjYwJfMgUDdmFsBQNhY2MJAJQKAgUDaWR4BQN2YWwKAAIkbAULb3B0aW9uc0xpc3QKAAIkcwkAkAMBBQIkbAoABSRhY2MwCQCUCgIAAAAACgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQhmaW5kQmVzdAIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTAJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgEQdXBkYXRlU3RhdHVzRGF0YQQNaXNDYW5jZWxlZFN0cgdpc1ZhbGlkCW5ld1dpbk9wdA1uZXdUb3RhbFZvdGVzCQC5CQIJAMwIAgIKJWIlZCVkJWQlYgkAzAgCCQClAwEFB2lzVmFsaWQJAMwIAgkApAMBCAUJbmV3V2luT3B0Al8xCQDMCAIJAKQDAQgFCW5ld1dpbk9wdAJfMgkAzAgCCQCkAwEFDW5ld1RvdGFsVm90ZXMJAMwIAgUNaXNDYW5jZWxlZFN0cgUDbmlsBQNTRVAEAWkBDWNvbnN0cnVjdG9yVjECCHJlc3RBZGRyDXF1b3J1bVJlcVBlcmMDCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAhFQZXJtaXNzaW9uIGRlbmllZAkAzAgCCQELU3RyaW5nRW50cnkCCQEOa2V5UmVzdEFkZHJlc3MABQhyZXN0QWRkcgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBGGtleVF1b3J1bVJlcXVpcmVkUGVyY2VudAAFDXF1b3J1bVJlcVBlcmMFA25pbAFpAQhjYXN0Vm90ZQIKcHJvcG9zYWxJZAZjaG9pY2UEDnVzZXJBZGRyZXNzU3RyCQClCAEIBQFpBmNhbGxlcgQLZHluYW1pY0RhdGEJALUJAgkBD2dldFN0cmluZ09yRmFpbAIFBHRoaXMJARlrZXlQcm9wb3NhbFN0YXR1c0RhdGFCeUlkAQUKcHJvcG9zYWxJZAUDU0VQAwkAAAIJAJEDAgULZHluYW1pY0RhdGEFFmdvdlN0YXR1c0lkeElzQ2FuY2VsZWQCBHRydWUJAAIBAhpWb3RpbmcgaXMgY2FuY2VsZWQgYnkgdGVhbQQIcHJvcERhdGEJALwJAgkBD2dldFN0cmluZ09yRmFpbAIFBHRoaXMJARNrZXlQcm9wb3NhbERhdGFCeUlkAQUKcHJvcG9zYWxJZAUDU0VQBAVzdGFydAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFCHByb3BEYXRhBQtnb3ZJZHhTdGFydAQDZW5kCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUIcHJvcERhdGEFCWdvdklkeEVuZAQDbm93CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAMJAGYCBQVzdGFydAUDbm93CQACAQIWVm90aW5nIG5vdCBzdGFydGVkIHlldAMJAGcCBQNub3cFA2VuZAkAAgECF1ZvdGluZyBhbHJlYWR5IGZpbmlzaGVkBBBhdmFpbGFibGVPcHRpb25zCQC1CQIJAJEDAgUIcHJvcERhdGEFDWdvdklkeE9wdGlvbnMFB0xJU1RTRVAECm51bU9wdGlvbnMJAJADAQUQYXZhaWxhYmxlT3B0aW9ucwMJAGcCAAEFCm51bU9wdGlvbnMJAAIBAhdUb28gZmV3IGNob2ljZXMgdG8gdm90ZQMJAGcCBQZjaG9pY2UFCm51bU9wdGlvbnMJAAIBCQCsAgICG1Vua25vd24gY2hvaWNlISBNdXN0IGJlIDAuLgkApAMBCQBlAgUKbnVtT3B0aW9ucwABBANlZmYJAQ5nZXRWb3RpbmdQb3dlcgEFDnVzZXJBZGRyZXNzU3RyBAZnd2xBbXQJAJEDAgUDZWZmBQpJZHhFZmZVc2VyAwkAZwIAAAUGZ3dsQW10CQACAQIdWW91IG5lZWQgc3Rha2VkIGxhbmRzIHRvIHZvdGUECGd3bFRvdGFsCQCRAwIFA2VmZgULSWR4RWZmVG90YWwECW9sZENob2ljZQkAnwgBCQEca2V5UHJvcG9zYWxDaG9pY2VCeUlkQW5kVXNlcgIFCnByb3Bvc2FsSWQFDnVzZXJBZGRyZXNzU3RyBAxvbGRVc2VyVm90ZXMDCQEBIQEJAQlpc0RlZmluZWQBBQlvbGRDaG9pY2UAAAkBDGdldEludE9yRWxzZQIJARtrZXlQcm9wb3NhbFZvdGVzQnlJZEFuZFVzZXICBQpwcm9wb3NhbElkBQ51c2VyQWRkcmVzc1N0cgAABBNvbGRUb3RhbEJ5T2xkQ2hvaWNlAwkBCWlzRGVmaW5lZAEFCW9sZENob2ljZQkBDGdldEludE9yRWxzZQIJAR1rZXlQcm9wb3NhbFZvdGVzQnlJZEFuZE9wdGlvbgIFCnByb3Bvc2FsSWQJAQV2YWx1ZQEFCW9sZENob2ljZQAAAAAEE29sZFRvdGFsQnlOZXdDaG9pY2UJAQxnZXRJbnRPckVsc2UCCQEda2V5UHJvcG9zYWxWb3Rlc0J5SWRBbmRPcHRpb24CBQpwcm9wb3NhbElkBQZjaG9pY2UAAAQIb2xkVG90YWwJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQtkeW5hbWljRGF0YQUWZ292U3RhdHVzSWR4VG90YWxWb3RlcwQTbmV3VG90YWxCeU9sZENob2ljZQMJAQEhAQkBCWlzRGVmaW5lZAEFCW9sZENob2ljZQAACQBkAgkAZQIFE29sZFRvdGFsQnlPbGRDaG9pY2UFDG9sZFVzZXJWb3RlcwMJAAACCQEFdmFsdWUBBQlvbGRDaG9pY2UFBmNob2ljZQUGZ3dsQW10AAAEE25ld1RvdGFsQnlOZXdDaG9pY2UDAwkBCWlzRGVmaW5lZAEFCW9sZENob2ljZQkAAAIJAQV2YWx1ZQEFCW9sZENob2ljZQUGY2hvaWNlBwUTbmV3VG90YWxCeU9sZENob2ljZQkAZAIFE29sZFRvdGFsQnlOZXdDaG9pY2UFBmd3bEFtdAQIbmV3VG90YWwJAGQCCQBlAgUIb2xkVG90YWwFDG9sZFVzZXJWb3RlcwUGZ3dsQW10BA9pc1F1b3J1bVJlYWNoZWQJAGcCBQhuZXdUb3RhbAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFCHByb3BEYXRhBQxnb3ZJZHhRdW9ydW0EFW51bVZvdGVyc0J5UHJvcG9zYWxJZAkBDGdldEludE9yRWxzZQIJAR5rZXlOdW1VbmlxdWVWb3RlcnNCeVByb3Bvc2FsSWQBBQpwcm9wb3NhbElkAAAEFG9sZEF2ZXJVbmlxdWVWb3RlcnM2CQEMZ2V0SW50T3JFbHNlAgkBGGtleVN0YXRzQXZlclVuaXF1ZVZvdGVycwAAAAQMbnVtUHJvcG9zYWxzCQBkAgkAZQIJARFAZXh0ck5hdGl2ZSgxMDU1KQEJARFrZXlMYXN0UHJvcG9zYWxJZAAJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBEmtleUZpcnN0UHJvcG9zYWxJZAAFFERFRkFVTFRGSVJTVFBST1BPU0FMAAEECnVuaXF1ZURpZmYDCQAAAgUMb2xkVXNlclZvdGVzAAAAAQAABBRuZXdBdmVyVW5pcXVlVm90ZXJzNgkAZAIFFG9sZEF2ZXJVbmlxdWVWb3RlcnM2CQBrAwUKdW5pcXVlRGlmZgUFTVVMVDYFDG51bVByb3Bvc2FscwQKb2xkQXZlckd3bAkBDGdldEludE9yRWxzZQIJARRrZXlTdGF0c0F2ZXJHd2xWb3RlZAAAAAQKbmV3QXZlckd3bAkAZAIFCm9sZEF2ZXJHd2wJAGkCCQBlAgUGZ3dsQW10BQxvbGRVc2VyVm90ZXMFDG51bVByb3Bvc2FscwQOaXNQcmV2T3B0aW9uYWwDCQEBIQEJAQlpc0RlZmluZWQBBQlvbGRDaG9pY2UGCQAAAgkBBXZhbHVlAQUJb2xkQ2hvaWNlBQZjaG9pY2UEEG9wdGlvbmFsVG90YWxPbGQDBQ5pc1ByZXZPcHRpb25hbAUDbmlsCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEda2V5UHJvcG9zYWxWb3Rlc0J5SWRBbmRPcHRpb24CBQpwcm9wb3NhbElkCQEFdmFsdWUBBQlvbGRDaG9pY2UFE25ld1RvdGFsQnlPbGRDaG9pY2UFA25pbAQGd2luT3B0CQENY2FsY1dpbk9wdGlvbgcFCnByb3Bvc2FsSWQFEGF2YWlsYWJsZU9wdGlvbnMFDmlzUHJldk9wdGlvbmFsBQlvbGRDaG9pY2UFE25ld1RvdGFsQnlPbGRDaG9pY2UFBmNob2ljZQUTbmV3VG90YWxCeU5ld0Nob2ljZQQLcmVsZWFzZVRpbWUJAJYDAQkAzAgCBQNlbmQJAMwIAgkBDGdldEludE9yRWxzZQIJARVrZXlVc2VyR3dsUmVsZWFzZVRpbWUBBQ51c2VyQWRkcmVzc1N0cgAABQNuaWwJAJQKAgkAzggCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEca2V5UHJvcG9zYWxDaG9pY2VCeUlkQW5kVXNlcgIFCnByb3Bvc2FsSWQFDnVzZXJBZGRyZXNzU3RyBQZjaG9pY2UJAMwIAgkBDEludGVnZXJFbnRyeQIJARtrZXlQcm9wb3NhbFZvdGVzQnlJZEFuZFVzZXICBQpwcm9wb3NhbElkBQ51c2VyQWRkcmVzc1N0cgUGZ3dsQW10CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEda2V5UHJvcG9zYWxWb3Rlc0J5SWRBbmRPcHRpb24CBQpwcm9wb3NhbElkBQZjaG9pY2UFE25ld1RvdGFsQnlOZXdDaG9pY2UJAMwIAgkBDEludGVnZXJFbnRyeQIJAR5rZXlOdW1VbmlxdWVWb3RlcnNCeVByb3Bvc2FsSWQBBQpwcm9wb3NhbElkCQBkAgUVbnVtVm90ZXJzQnlQcm9wb3NhbElkBQp1bmlxdWVEaWZmCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEVa2V5VXNlckd3bFJlbGVhc2VUaW1lAQUOdXNlckFkZHJlc3NTdHIFC3JlbGVhc2VUaW1lCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEYa2V5U3RhdHNBdmVyVW5pcXVlVm90ZXJzAAUUbmV3QXZlclVuaXF1ZVZvdGVyczYJAMwIAgkBDEludGVnZXJFbnRyeQIJARRrZXlTdGF0c0F2ZXJHd2xWb3RlZAAFCm5ld0F2ZXJHd2wJAMwIAgkBC1N0cmluZ0VudHJ5AgkBGWtleVByb3Bvc2FsU3RhdHVzRGF0YUJ5SWQBBQpwcm9wb3NhbElkCQEQdXBkYXRlU3RhdHVzRGF0YQQJAJEDAgULZHluYW1pY0RhdGEFFmdvdlN0YXR1c0lkeElzQ2FuY2VsZWQFD2lzUXVvcnVtUmVhY2hlZAUGd2luT3B0BQhuZXdUb3RhbAUDbmlsBRBvcHRpb25hbFRvdGFsT2xkBQR1bml0AWkBDmluaXRpYXRlVm90aW5nBAV0aXRsZQ92b3RpbmdTdGFydFRpbWUNdm90aW5nRW5kVGltZQtvcHRpb25zTGlzdAMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECEVBlcm1pc3Npb24gZGVuaWVkAwkBAiE9AgkAkAMBCAUBaQhwYXltZW50cwAACQACAQInZ292ZXJuYW5jZSBkb2Vzbid0IHJlcXVpcmUgYW55IHBheW1lbnRzBAxwcm9wb3NhbFR4SWQJANgEAQgFAWkNdHJhbnNhY3Rpb25JZAMJAAACBQV0aXRsZQIACQACAQIOVGl0bGUgaXMgZW1wdHkDCQBmAgkAsQIBBQV0aXRsZQUITUFYVElUTEUJAAIBAg5Ub28gbG9uZyB0aXRsZQQMcHJvcG9zYWxUaW1lCAUJbGFzdEJsb2NrCXRpbWVzdGFtcAMJAGYCBQxwcm9wb3NhbFRpbWUFD3ZvdGluZ1N0YXJ0VGltZQkAAgEJAKwCAgkArAICCQCsAgICEHZvdGluZ1N0YXJ0VGltZT0JAKQDAQUPdm90aW5nU3RhcnRUaW1lAhAgPCBwcm9wb3NhbFRpbWU9CQCkAwEFDHByb3Bvc2FsVGltZQMJAGYCBQ92b3RpbmdTdGFydFRpbWUFDXZvdGluZ0VuZFRpbWUJAAIBCQCsAgIJAKwCAgkArAICAg52b3RpbmdFbmRUaW1lPQkApAMBBQ12b3RpbmdFbmRUaW1lAhMgPCB2b3RpbmdTdGFydFRpbWU9CQCkAwEFD3ZvdGluZ1N0YXJ0VGltZQMJAGYCCQBlAgUNdm90aW5nRW5kVGltZQUPdm90aW5nU3RhcnRUaW1lBQ1NQVhWT1RJTkdUSU1FCQACAQkArAICCQCsAgIJAKwCAgIbVm90aW5nIHBlcmlvZCBleGNlZWRzIG1heDogCQCkAwEJAGUCBQ12b3RpbmdFbmRUaW1lBQ92b3RpbmdTdGFydFRpbWUCAyA+IAkApAMBBQ1NQVhWT1RJTkdUSU1FAwkAZwIAAQkAkAMBBQtvcHRpb25zTGlzdAkAAgECF1RvbyBmZXcgY2hvaWNlcyB0byB2b3RlBANlZmYJAQ5nZXRWb3RpbmdQb3dlcgECAAQMZ1BpZWNlc1RvdGFsCQCRAwIFA2VmZgULSWR4RWZmVG90YWwEBnF1b3J1bQkBDGdldEludE9yRWxzZQIJARhrZXlRdW9ydW1SZXF1aXJlZFBlcmNlbnQABQ1ERUZBVUxUUVVPUlVNBA9xdW9ydW1JbkdwaWVjZXMJAGsDBQZxdW9ydW0FDGdQaWVjZXNUb3RhbAUFTVVMVDYECnByb3Bvc2FsSWQJAGQCCQEMZ2V0SW50T3JFbHNlAgkBEWtleUxhc3RQcm9wb3NhbElkAAAAAAEECm9wdGlvbnNTdHIJALkJAgULb3B0aW9uc0xpc3QFB0xJU1RTRVAJAJQKAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBEWtleUxhc3RQcm9wb3NhbElkAAUKcHJvcG9zYWxJZAkAzAgCCQELU3RyaW5nRW50cnkCCQEZa2V5UHJvcG9zYWxTdGF0dXNEYXRhQnlJZAEFCnByb3Bvc2FsSWQJAQpzdGF0dXNEYXRhBQcAAAAAAAAHCQDMCAIJAQtTdHJpbmdFbnRyeQIJARNrZXlQcm9wb3NhbERhdGFCeUlkAQUKcHJvcG9zYWxJZAkBDHByb3Bvc2FsRGF0YQcFDHByb3Bvc2FsVHhJZAkA3AQBCQCbAwEFBXRpdGxlBQxwcm9wb3NhbFRpbWUFD3ZvdGluZ1N0YXJ0VGltZQUNdm90aW5nRW5kVGltZQUPcXVvcnVtSW5HcGllY2VzBQpvcHRpb25zU3RyBQNuaWwFDHByb3Bvc2FsVHhJZAFpAQxjYW5jZWxWb3RpbmcBCnByb3Bvc2FsSWQDCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAg5ub3QgYXV0aG9yaXplZAQLY3VycmVudERhdGEJAQ9nZXRTdHJpbmdPckZhaWwCBQR0aGlzCQEZa2V5UHJvcG9zYWxTdGF0dXNEYXRhQnlJZAEFCnByb3Bvc2FsSWQEC3VwZGF0ZWREYXRhCQCsAgIJAKwCAgkArwICBQtjdXJyZW50RGF0YQkBBXZhbHVlAQkAtwkCBQtjdXJyZW50RGF0YQUDU0VQBQNTRVACBHRydWUJAJQKAgkAzAgCCQELU3RyaW5nRW50cnkCCQEZa2V5UHJvcG9zYWxTdGF0dXNEYXRhQnlJZAEFCnByb3Bvc2FsSWQFC3VwZGF0ZWREYXRhBQNuaWwFBHVuaXQAOLL5Sg==", "height": 2642805, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 7D25JRQWLTTnH8LN1AcJn6HcDP8YGHw74ukhB5qSnzQP Next: 53M6FQUSbp5Y1Zxr2eRXfquntmLipG9eGNbnmF4fxjug Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let a = take(drop(this.bytes, 1), 1)
4+func a (b) = ("%s%s__userGwlReleaseTime__" + b)
55
6-let b = {
7- let c = a
8- if ((base58'2W' == c))
6+
7+let c = 0
8+
9+let d = 1
10+
11+let e = take(drop(this.bytes, 1), 1)
12+
13+let f = {
14+ let g = e
15+ if ((base58'2W' == g))
916 then "3PQCuvFbvh4LkPUnrnU1z3jnbA1p9m3WNhv"
10- else if ((base58'2T' == c))
17+ else if ((base58'2T' == g))
1118 then "3MumkGGztCKAXpWDqxkddofqXSUbqQkvSJy"
1219 else throw("Unknown chain")
1320 }
1421
15-let d = "__"
22+let h = "__"
1623
17-let e = 1000000
24+let i = 1000000
1825
19-let f = 25
26+let j = 25
2027
21-let g = 100
28+let k = 100
2229
23-let h = 225
30+let l = 225
2431
25-let i = 400
32+let m = 400
2633
27-let j = 625
34+let n = 625
2835
29-let k = 1
30-
31-func l (m,n) = valueOrErrorMessage(getString(m, n), makeString(["mandatory ", toString(m), ".", n, " is not defined"], ""))
36+func o (p,q) = valueOrErrorMessage(getString(p, q), makeString(["mandatory ", toString(p), ".", q, " is not defined"], ""))
3237
3338
34-func o (n,p) = valueOrElse(getInteger(this, n), p)
39+func r (q,s) = valueOrElse(getInteger(this, q), s)
3540
3641
37-let q = 1
42+let t = 1
3843
39-func r () = "%s__restConfig"
44+func u () = "%s__restConfig"
4045
4146
42-func s () = "%s__restAddr"
47+func v () = "%s__restAddr"
4348
4449
45-func t (u) = split_4C(l(u, r()), d)
50+func w (x) = split_4C(o(x, u()), h)
4651
4752
48-func v (w,x) = valueOrErrorMessage(addressFromString(w[x]), ("Rest cfg doesn't contain address at index " + toString(x)))
53+func y (z,A) = valueOrErrorMessage(addressFromString(z[A]), ("Rest cfg doesn't contain address at index " + toString(A)))
4954
5055
51-let y = addressFromStringValue(valueOrElse(getString(this, s()), b))
56+let B = addressFromStringValue(valueOrElse(getString(this, v()), f))
5257
53-let w = t(y)
58+let z = w(B)
5459
55-let z = v(w, q)
60+let C = y(z, t)
5661
57-func A (B) = ("stakedLandsByOwner_" + B)
62+let D = 1
63+
64+func E () = "resTypesProportions"
5865
5966
60-func C () = "resTypesProportions"
67+func F (G) = ("stakedLandsByOwner_" + G)
6168
6269
63-func D (E) = ("%s%s__userGwlReleaseTime__" + E)
64-
65-
66-func F (G) = {
67- let c = G
68- if (("S" == c))
69- then f
70- else if (("M" == c))
71- then g
72- else if (("L" == c))
73- then h
74- else if (("XL" == c))
75- then i
76- else if (("XXL" == c))
77- then j
70+func H (I) = {
71+ let g = I
72+ if (("S" == g))
73+ then j
74+ else if (("M" == g))
75+ then k
76+ else if (("L" == g))
77+ then l
78+ else if (("XL" == g))
79+ then m
80+ else if (("XXL" == g))
81+ then n
7882 else throw("Unknown land size")
7983 }
8084
8185
82-let H = 0
83-
84-let I = 1
85-
8686 func J (K) = {
87- let L = split(valueOrElse(getString(z, C()), "0_0_0_0_0_0"), "_")
87+ let L = split(valueOrElse(getString(C, E()), "0_0_0_0_0_0"), "_")
8888 func M (N,O) = (N + parseIntValue(O))
8989
9090 let P = {
104104 let X = if ((K == ""))
105105 then 0
106106 else {
107- let Y = getString(z, A(K))
107+ let Y = getString(C, F(K))
108108 let Z = if (isDefined(Y))
109109 then split_51C(value(Y), "_")
110110 else nil
111111 func aa (N,ab) = {
112112 let ac = value(assetInfo(fromBase58String(ab)))
113- let G = split(ac.description, "_")[k]
114- (N + F(G))
113+ let I = split(ac.description, "_")[D]
114+ (N + H(I))
115115 }
116116
117117 let Q = Z
168168 func av (au) = ("%s%d__proposalData__" + toString(au))
169169
170170
171-func aw (au,ax) = makeString(["%s%d%d", "votesByOpt", toString(au), toString(ax)], d)
171+func aw (au,ax) = makeString(["%s%d%d", "votesByOpt", toString(au), toString(ax)], h)
172172
173173
174-func ay (au,E) = makeString(["%s%d%s", "votesByUser", toString(au), E], d)
174+func ay (au,b) = makeString(["%s%d%s", "votesByUser", toString(au), b], h)
175175
176176
177-func az (au,E) = makeString(["%s%d%s", "optionByUser", toString(au), E], d)
177+func az (au,b) = makeString(["%s%d%s", "optionByUser", toString(au), b], h)
178178
179179
180180 func aA (au) = ("%s%d__numVoters__" + toString(au))
186186 func aC () = "%s%s%s__stats__avg__gwlVoted"
187187
188188
189-func aD (aE,aF,aG,aH,aI) = makeString(["%b%d%d%d%b", toString(aE), toString(aF), toString(aG), toString(aH), toString(aI)], d)
189+func aD (aE,aF,aG,aH,aI) = makeString(["%b%d%d%d%b", toString(aE), toString(aF), toString(aG), toString(aH), toString(aI)], h)
190190
191191
192-func aJ (aK,aL,aM,aN,aO,aP,aQ) = makeString_2C(["%s%s%d%d%d%d%s", aK, aL, toString(aM), toString(aN), toString(aO), toString(aP), aQ], d)
192+func aJ (aK,aL,aM,aN,aO,aP,aQ) = makeString_2C(["%s%s%d%d%d%d%s", aK, aL, toString(aM), toString(aN), toString(aO), toString(aP), aQ], h)
193193
194194
195195 func aR (au,aS,aT,aU,aV,aW,aX) = {
196196 func aY (N,aZ) = {
197- let x = value(indexOf(aS, aZ))
197+ let A = value(indexOf(aS, aZ))
198198 let ba = if (aT)
199- then if ((x == aW))
199+ then if ((A == aW))
200200 then aX
201- else o(aw(au, x), 0)
202- else if ((x == value(aU)))
201+ else r(aw(au, A), 0)
202+ else if ((A == value(aU)))
203203 then aV
204- else if ((x == aW))
204+ else if ((A == aW))
205205 then aX
206- else o(aw(au, x), 0)
206+ else r(aw(au, A), 0)
207207 if ((N._2 > ba))
208208 then N
209- else $Tuple2(x, ba)
209+ else $Tuple2(A, ba)
210210 }
211211
212212 let Q = aS
224224 }
225225
226226
227-func bb (bc,bd,be,bf) = makeString(["%b%d%d%d%b", toString(bd), toString(be._1), toString(be._2), toString(bf), bc], d)
227+func bb (bc,bd,be,bf) = makeString(["%b%d%d%d%b", toString(bd), toString(be._1), toString(be._2), toString(bf), bc], h)
228228
229229
230230 @Callable(bg)
231231 func constructorV1 (bh,bi) = if ((bg.caller != this))
232232 then throw("Permission denied")
233- else [StringEntry(s(), bh), IntegerEntry(aq(), bi)]
233+ else [StringEntry(v(), bh), IntegerEntry(aq(), bi)]
234234
235235
236236
237237 @Callable(bg)
238238 func castVote (au,bj) = {
239239 let bk = toString(bg.caller)
240- let bl = split(l(this, at(au)), d)
240+ let bl = split(o(this, at(au)), h)
241241 if ((bl[ap] == "true"))
242242 then throw("Voting is canceled by team")
243243 else {
244- let bm = split_4C(l(this, av(au)), d)
244+ let bm = split_4C(o(this, av(au)), h)
245245 let bn = parseIntValue(bm[ak])
246246 let bo = parseIntValue(bm[al])
247247 let bp = lastBlock.timestamp
258258 then throw(("Unknown choice! Must be 0.." + toString((br - 1))))
259259 else {
260260 let bs = J(bk)
261- let bt = bs[I]
261+ let bt = bs[d]
262262 if ((0 >= bt))
263263 then throw("You need staked lands to vote")
264264 else {
265- let bu = bs[H]
265+ let bu = bs[c]
266266 let aU = getInteger(az(au, bk))
267267 let bv = if (!(isDefined(aU)))
268268 then 0
269- else o(ay(au, bk), 0)
269+ else r(ay(au, bk), 0)
270270 let bw = if (isDefined(aU))
271- then o(aw(au, value(aU)), 0)
271+ then r(aw(au, value(aU)), 0)
272272 else 0
273- let bx = o(aw(au, bj), 0)
273+ let bx = r(aw(au, bj), 0)
274274 let by = parseIntValue(bl[ao])
275275 let bz = if (!(isDefined(aU)))
276276 then 0
284284 else (bx + bt)
285285 let bA = ((by - bv) + bt)
286286 let bB = (bA >= parseIntValue(bm[am]))
287- let bC = o(aA(au), 0)
288- let bD = o(aB(), 0)
287+ let bC = r(aA(au), 0)
288+ let bD = r(aB(), 0)
289289 let bE = ((getIntegerValue(ar()) - valueOrElse(getInteger(as()), aj)) + 1)
290290 let bF = if ((bv == 0))
291291 then 1
292292 else 0
293- let bG = (bD + fraction(bF, e, bE))
294- let bH = o(aC(), 0)
293+ let bG = (bD + fraction(bF, i, bE))
294+ let bH = r(aC(), 0)
295295 let bI = (bH + ((bt - bv) / bE))
296296 let aT = if (!(isDefined(aU)))
297297 then true
300300 then nil
301301 else [IntegerEntry(aw(au, value(aU)), bz)]
302302 let bJ = aR(au, bq, aT, aU, bz, bj, aX)
303- let bK = max([bo, o(D(bk), 0)])
304- $Tuple2(([IntegerEntry(az(au, bk), bj), IntegerEntry(ay(au, bk), bt), IntegerEntry(aw(au, bj), aX), IntegerEntry(aA(au), (bC + bF)), IntegerEntry(D(bk), bK), IntegerEntry(aB(), bG), IntegerEntry(aC(), bI), StringEntry(at(au), bb(bl[ap], bB, bJ, bA))] ++ aV), unit)
303+ let bK = max([bo, r(a(bk), 0)])
304+ $Tuple2(([IntegerEntry(az(au, bk), bj), IntegerEntry(ay(au, bk), bt), IntegerEntry(aw(au, bj), aX), IntegerEntry(aA(au), (bC + bF)), IntegerEntry(a(bk), bK), IntegerEntry(aB(), bG), IntegerEntry(aC(), bI), StringEntry(at(au), bb(bl[ap], bB, bJ, bA))] ++ aV), unit)
305305 }
306306 }
307307 }
333333 then throw("Too few choices to vote")
334334 else {
335335 let bs = J("")
336- let bL = bs[H]
337- let bM = o(aq(), ag)
338- let bN = fraction(bM, bL, e)
339- let au = (o(ar(), 0) + 1)
336+ let bL = bs[c]
337+ let bM = r(aq(), ag)
338+ let bN = fraction(bM, bL, i)
339+ let au = (r(ar(), 0) + 1)
340340 let bO = makeString(aS, af)
341341 $Tuple2([IntegerEntry(ar(), au), StringEntry(at(au), aD(false, 0, 0, 0, false)), StringEntry(av(au), aJ(aK, toBase16String(toBytes(aL)), aM, aN, aO, bN, bO))], aK)
342342 }
349349 func cancelVoting (au) = if ((bg.caller != this))
350350 then throw("not authorized")
351351 else {
352- let bP = l(this, at(au))
353- let bQ = ((take(bP, value(lastIndexOf(bP, d))) + d) + "true")
352+ let bP = o(this, at(au))
353+ let bQ = ((take(bP, value(lastIndexOf(bP, h))) + h) + "true")
354354 $Tuple2([StringEntry(at(au), bQ)], unit)
355355 }
356356
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let a = take(drop(this.bytes, 1), 1)
4+func a (b) = ("%s%s__userGwlReleaseTime__" + b)
55
6-let b = {
7- let c = a
8- if ((base58'2W' == c))
6+
7+let c = 0
8+
9+let d = 1
10+
11+let e = take(drop(this.bytes, 1), 1)
12+
13+let f = {
14+ let g = e
15+ if ((base58'2W' == g))
916 then "3PQCuvFbvh4LkPUnrnU1z3jnbA1p9m3WNhv"
10- else if ((base58'2T' == c))
17+ else if ((base58'2T' == g))
1118 then "3MumkGGztCKAXpWDqxkddofqXSUbqQkvSJy"
1219 else throw("Unknown chain")
1320 }
1421
15-let d = "__"
22+let h = "__"
1623
17-let e = 1000000
24+let i = 1000000
1825
19-let f = 25
26+let j = 25
2027
21-let g = 100
28+let k = 100
2229
23-let h = 225
30+let l = 225
2431
25-let i = 400
32+let m = 400
2633
27-let j = 625
34+let n = 625
2835
29-let k = 1
30-
31-func l (m,n) = valueOrErrorMessage(getString(m, n), makeString(["mandatory ", toString(m), ".", n, " is not defined"], ""))
36+func o (p,q) = valueOrErrorMessage(getString(p, q), makeString(["mandatory ", toString(p), ".", q, " is not defined"], ""))
3237
3338
34-func o (n,p) = valueOrElse(getInteger(this, n), p)
39+func r (q,s) = valueOrElse(getInteger(this, q), s)
3540
3641
37-let q = 1
42+let t = 1
3843
39-func r () = "%s__restConfig"
44+func u () = "%s__restConfig"
4045
4146
42-func s () = "%s__restAddr"
47+func v () = "%s__restAddr"
4348
4449
45-func t (u) = split_4C(l(u, r()), d)
50+func w (x) = split_4C(o(x, u()), h)
4651
4752
48-func v (w,x) = valueOrErrorMessage(addressFromString(w[x]), ("Rest cfg doesn't contain address at index " + toString(x)))
53+func y (z,A) = valueOrErrorMessage(addressFromString(z[A]), ("Rest cfg doesn't contain address at index " + toString(A)))
4954
5055
51-let y = addressFromStringValue(valueOrElse(getString(this, s()), b))
56+let B = addressFromStringValue(valueOrElse(getString(this, v()), f))
5257
53-let w = t(y)
58+let z = w(B)
5459
55-let z = v(w, q)
60+let C = y(z, t)
5661
57-func A (B) = ("stakedLandsByOwner_" + B)
62+let D = 1
63+
64+func E () = "resTypesProportions"
5865
5966
60-func C () = "resTypesProportions"
67+func F (G) = ("stakedLandsByOwner_" + G)
6168
6269
63-func D (E) = ("%s%s__userGwlReleaseTime__" + E)
64-
65-
66-func F (G) = {
67- let c = G
68- if (("S" == c))
69- then f
70- else if (("M" == c))
71- then g
72- else if (("L" == c))
73- then h
74- else if (("XL" == c))
75- then i
76- else if (("XXL" == c))
77- then j
70+func H (I) = {
71+ let g = I
72+ if (("S" == g))
73+ then j
74+ else if (("M" == g))
75+ then k
76+ else if (("L" == g))
77+ then l
78+ else if (("XL" == g))
79+ then m
80+ else if (("XXL" == g))
81+ then n
7882 else throw("Unknown land size")
7983 }
8084
8185
82-let H = 0
83-
84-let I = 1
85-
8686 func J (K) = {
87- let L = split(valueOrElse(getString(z, C()), "0_0_0_0_0_0"), "_")
87+ let L = split(valueOrElse(getString(C, E()), "0_0_0_0_0_0"), "_")
8888 func M (N,O) = (N + parseIntValue(O))
8989
9090 let P = {
9191 let Q = L
9292 let R = size(Q)
9393 let S = 0
9494 func T (U,V) = if ((V >= R))
9595 then U
9696 else M(U, Q[V])
9797
9898 func W (U,V) = if ((V >= R))
9999 then U
100100 else throw("List size exceeds 6")
101101
102102 W(T(T(T(T(T(T(S, 0), 1), 2), 3), 4), 5), 6)
103103 }
104104 let X = if ((K == ""))
105105 then 0
106106 else {
107- let Y = getString(z, A(K))
107+ let Y = getString(C, F(K))
108108 let Z = if (isDefined(Y))
109109 then split_51C(value(Y), "_")
110110 else nil
111111 func aa (N,ab) = {
112112 let ac = value(assetInfo(fromBase58String(ab)))
113- let G = split(ac.description, "_")[k]
114- (N + F(G))
113+ let I = split(ac.description, "_")[D]
114+ (N + H(I))
115115 }
116116
117117 let Q = Z
118118 let R = size(Q)
119119 let S = 0
120120 func ad (U,V) = if ((V >= R))
121121 then U
122122 else aa(U, Q[V])
123123
124124 func ae (U,V) = if ((V >= R))
125125 then U
126126 else throw("List size exceeds 100")
127127
128128 ae(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(ad(S, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
129129 }
130130 [P, X]
131131 }
132132
133133
134134 let af = ":"
135135
136136 let ag = 500000
137137
138138 let ah = 250
139139
140140 let ai = 1209600000
141141
142142 let aj = 1
143143
144144 let ak = 4
145145
146146 let al = 5
147147
148148 let am = 6
149149
150150 let an = 7
151151
152152 let ao = 4
153153
154154 let ap = 5
155155
156156 func aq () = "%s__quorumRequired"
157157
158158
159159 func ar () = "%s__proposalId"
160160
161161
162162 func as () = "%s__firstProposalId"
163163
164164
165165 func at (au) = ("%s%d__proposalStatusData__" + toString(au))
166166
167167
168168 func av (au) = ("%s%d__proposalData__" + toString(au))
169169
170170
171-func aw (au,ax) = makeString(["%s%d%d", "votesByOpt", toString(au), toString(ax)], d)
171+func aw (au,ax) = makeString(["%s%d%d", "votesByOpt", toString(au), toString(ax)], h)
172172
173173
174-func ay (au,E) = makeString(["%s%d%s", "votesByUser", toString(au), E], d)
174+func ay (au,b) = makeString(["%s%d%s", "votesByUser", toString(au), b], h)
175175
176176
177-func az (au,E) = makeString(["%s%d%s", "optionByUser", toString(au), E], d)
177+func az (au,b) = makeString(["%s%d%s", "optionByUser", toString(au), b], h)
178178
179179
180180 func aA (au) = ("%s%d__numVoters__" + toString(au))
181181
182182
183183 func aB () = "%s%s%s__stats__avg__uniqueVoters"
184184
185185
186186 func aC () = "%s%s%s__stats__avg__gwlVoted"
187187
188188
189-func aD (aE,aF,aG,aH,aI) = makeString(["%b%d%d%d%b", toString(aE), toString(aF), toString(aG), toString(aH), toString(aI)], d)
189+func aD (aE,aF,aG,aH,aI) = makeString(["%b%d%d%d%b", toString(aE), toString(aF), toString(aG), toString(aH), toString(aI)], h)
190190
191191
192-func aJ (aK,aL,aM,aN,aO,aP,aQ) = makeString_2C(["%s%s%d%d%d%d%s", aK, aL, toString(aM), toString(aN), toString(aO), toString(aP), aQ], d)
192+func aJ (aK,aL,aM,aN,aO,aP,aQ) = makeString_2C(["%s%s%d%d%d%d%s", aK, aL, toString(aM), toString(aN), toString(aO), toString(aP), aQ], h)
193193
194194
195195 func aR (au,aS,aT,aU,aV,aW,aX) = {
196196 func aY (N,aZ) = {
197- let x = value(indexOf(aS, aZ))
197+ let A = value(indexOf(aS, aZ))
198198 let ba = if (aT)
199- then if ((x == aW))
199+ then if ((A == aW))
200200 then aX
201- else o(aw(au, x), 0)
202- else if ((x == value(aU)))
201+ else r(aw(au, A), 0)
202+ else if ((A == value(aU)))
203203 then aV
204- else if ((x == aW))
204+ else if ((A == aW))
205205 then aX
206- else o(aw(au, x), 0)
206+ else r(aw(au, A), 0)
207207 if ((N._2 > ba))
208208 then N
209- else $Tuple2(x, ba)
209+ else $Tuple2(A, ba)
210210 }
211211
212212 let Q = aS
213213 let R = size(Q)
214214 let S = $Tuple2(0, 0)
215215 func T (U,V) = if ((V >= R))
216216 then U
217217 else aY(U, Q[V])
218218
219219 func W (U,V) = if ((V >= R))
220220 then U
221221 else throw("List size exceeds 10")
222222
223223 W(T(T(T(T(T(T(T(T(T(T(S, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
224224 }
225225
226226
227-func bb (bc,bd,be,bf) = makeString(["%b%d%d%d%b", toString(bd), toString(be._1), toString(be._2), toString(bf), bc], d)
227+func bb (bc,bd,be,bf) = makeString(["%b%d%d%d%b", toString(bd), toString(be._1), toString(be._2), toString(bf), bc], h)
228228
229229
230230 @Callable(bg)
231231 func constructorV1 (bh,bi) = if ((bg.caller != this))
232232 then throw("Permission denied")
233- else [StringEntry(s(), bh), IntegerEntry(aq(), bi)]
233+ else [StringEntry(v(), bh), IntegerEntry(aq(), bi)]
234234
235235
236236
237237 @Callable(bg)
238238 func castVote (au,bj) = {
239239 let bk = toString(bg.caller)
240- let bl = split(l(this, at(au)), d)
240+ let bl = split(o(this, at(au)), h)
241241 if ((bl[ap] == "true"))
242242 then throw("Voting is canceled by team")
243243 else {
244- let bm = split_4C(l(this, av(au)), d)
244+ let bm = split_4C(o(this, av(au)), h)
245245 let bn = parseIntValue(bm[ak])
246246 let bo = parseIntValue(bm[al])
247247 let bp = lastBlock.timestamp
248248 if ((bn > bp))
249249 then throw("Voting not started yet")
250250 else if ((bp >= bo))
251251 then throw("Voting already finished")
252252 else {
253253 let bq = split(bm[an], af)
254254 let br = size(bq)
255255 if ((1 >= br))
256256 then throw("Too few choices to vote")
257257 else if ((bj >= br))
258258 then throw(("Unknown choice! Must be 0.." + toString((br - 1))))
259259 else {
260260 let bs = J(bk)
261- let bt = bs[I]
261+ let bt = bs[d]
262262 if ((0 >= bt))
263263 then throw("You need staked lands to vote")
264264 else {
265- let bu = bs[H]
265+ let bu = bs[c]
266266 let aU = getInteger(az(au, bk))
267267 let bv = if (!(isDefined(aU)))
268268 then 0
269- else o(ay(au, bk), 0)
269+ else r(ay(au, bk), 0)
270270 let bw = if (isDefined(aU))
271- then o(aw(au, value(aU)), 0)
271+ then r(aw(au, value(aU)), 0)
272272 else 0
273- let bx = o(aw(au, bj), 0)
273+ let bx = r(aw(au, bj), 0)
274274 let by = parseIntValue(bl[ao])
275275 let bz = if (!(isDefined(aU)))
276276 then 0
277277 else ((bw - bv) + (if ((value(aU) == bj))
278278 then bt
279279 else 0))
280280 let aX = if (if (isDefined(aU))
281281 then (value(aU) == bj)
282282 else false)
283283 then bz
284284 else (bx + bt)
285285 let bA = ((by - bv) + bt)
286286 let bB = (bA >= parseIntValue(bm[am]))
287- let bC = o(aA(au), 0)
288- let bD = o(aB(), 0)
287+ let bC = r(aA(au), 0)
288+ let bD = r(aB(), 0)
289289 let bE = ((getIntegerValue(ar()) - valueOrElse(getInteger(as()), aj)) + 1)
290290 let bF = if ((bv == 0))
291291 then 1
292292 else 0
293- let bG = (bD + fraction(bF, e, bE))
294- let bH = o(aC(), 0)
293+ let bG = (bD + fraction(bF, i, bE))
294+ let bH = r(aC(), 0)
295295 let bI = (bH + ((bt - bv) / bE))
296296 let aT = if (!(isDefined(aU)))
297297 then true
298298 else (value(aU) == bj)
299299 let aV = if (aT)
300300 then nil
301301 else [IntegerEntry(aw(au, value(aU)), bz)]
302302 let bJ = aR(au, bq, aT, aU, bz, bj, aX)
303- let bK = max([bo, o(D(bk), 0)])
304- $Tuple2(([IntegerEntry(az(au, bk), bj), IntegerEntry(ay(au, bk), bt), IntegerEntry(aw(au, bj), aX), IntegerEntry(aA(au), (bC + bF)), IntegerEntry(D(bk), bK), IntegerEntry(aB(), bG), IntegerEntry(aC(), bI), StringEntry(at(au), bb(bl[ap], bB, bJ, bA))] ++ aV), unit)
303+ let bK = max([bo, r(a(bk), 0)])
304+ $Tuple2(([IntegerEntry(az(au, bk), bj), IntegerEntry(ay(au, bk), bt), IntegerEntry(aw(au, bj), aX), IntegerEntry(aA(au), (bC + bF)), IntegerEntry(a(bk), bK), IntegerEntry(aB(), bG), IntegerEntry(aC(), bI), StringEntry(at(au), bb(bl[ap], bB, bJ, bA))] ++ aV), unit)
305305 }
306306 }
307307 }
308308 }
309309 }
310310
311311
312312
313313 @Callable(bg)
314314 func initiateVoting (aL,aN,aO,aS) = if ((bg.caller != this))
315315 then throw("Permission denied")
316316 else if ((size(bg.payments) != 0))
317317 then throw("governance doesn't require any payments")
318318 else {
319319 let aK = toBase58String(bg.transactionId)
320320 if ((aL == ""))
321321 then throw("Title is empty")
322322 else if ((size(aL) > ah))
323323 then throw("Too long title")
324324 else {
325325 let aM = lastBlock.timestamp
326326 if ((aM > aN))
327327 then throw(((("votingStartTime=" + toString(aN)) + " < proposalTime=") + toString(aM)))
328328 else if ((aN > aO))
329329 then throw(((("votingEndTime=" + toString(aO)) + " < votingStartTime=") + toString(aN)))
330330 else if (((aO - aN) > ai))
331331 then throw(((("Voting period exceeds max: " + toString((aO - aN))) + " > ") + toString(ai)))
332332 else if ((1 >= size(aS)))
333333 then throw("Too few choices to vote")
334334 else {
335335 let bs = J("")
336- let bL = bs[H]
337- let bM = o(aq(), ag)
338- let bN = fraction(bM, bL, e)
339- let au = (o(ar(), 0) + 1)
336+ let bL = bs[c]
337+ let bM = r(aq(), ag)
338+ let bN = fraction(bM, bL, i)
339+ let au = (r(ar(), 0) + 1)
340340 let bO = makeString(aS, af)
341341 $Tuple2([IntegerEntry(ar(), au), StringEntry(at(au), aD(false, 0, 0, 0, false)), StringEntry(av(au), aJ(aK, toBase16String(toBytes(aL)), aM, aN, aO, bN, bO))], aK)
342342 }
343343 }
344344 }
345345
346346
347347
348348 @Callable(bg)
349349 func cancelVoting (au) = if ((bg.caller != this))
350350 then throw("not authorized")
351351 else {
352- let bP = l(this, at(au))
353- let bQ = ((take(bP, value(lastIndexOf(bP, d))) + d) + "true")
352+ let bP = o(this, at(au))
353+ let bQ = ((take(bP, value(lastIndexOf(bP, h))) + h) + "true")
354354 $Tuple2([StringEntry(at(au), bQ)], unit)
355355 }
356356
357357

github/deemru/w8io/c3f4982 
78.82 ms