tx · 2HNTzCbMmBfoSiWQfwFCkXqjKv7sR1rnmvE4dt6WbtMZ

3MpMuGN8rW9EpPwzETAQz88Pe9TQhSwiriq:  -0.01600000 Waves

2023.07.31 18:08 [2690211] smart account 3MpMuGN8rW9EpPwzETAQz88Pe9TQhSwiriq > SELF 0.00000000 Waves

{ "type": 13, "id": "2HNTzCbMmBfoSiWQfwFCkXqjKv7sR1rnmvE4dt6WbtMZ", "fee": 1600000, "feeAssetId": null, "timestamp": 1690816088224, "version": 2, "chainId": 84, "sender": "3MpMuGN8rW9EpPwzETAQz88Pe9TQhSwiriq", "senderPublicKey": "57SkjQUEwC1ayCqLbXLuzBqifK6B6SR6rfxtGsbAo3zW", "proofs": [ "4RGPLbu8u9T3JvkgkgoZtdQvZwRjnReZ3Pbko87CiqbeJuNYFYoZCToS5xQQgQyBh3wcLDnStnLVi1wtvcFKosax" ], "script": "base64:BgIkCAISAwoBARIDCgEBEgASAwoBCBIDCgEBEgMKAQgSABIDCgEIMgAMY29udHJhY3RGaWxlAhFsMm1wX3N0YWtpbmcucmlkZQADU0VQAgJfXwAGc2NhbGU4AIDC1y8AB3NjYWxlMTgAgICQu7rWrfANAA1zY2FsZTE4QmlnSW50CQC2AgEFB3NjYWxlMTgAEkFERFJFU1NfQllURVNfU0laRQAaAA1CTE9DS1NfSU5fREFZAKALAQh0aHJvd0VycgEDbXNnCQACAQkArAICCQCsAgIFDGNvbnRyYWN0RmlsZQICOiAFA21zZwAKa2V5QXNzZXRJZAkAuQkCCQDMCAICAiVzCQDMCAICB2Fzc2V0SWQFA25pbAUDU0VQABNrZXlFbWlzc2lvblBlckJsb2NrCQC5CQIJAMwIAgICJXMJAMwIAgIQZW1pc3Npb25QZXJCbG9jawUDbmlsBQNTRVAAGWtleUVtaXNzaW9uUGVyaW9kSW5CbG9ja3MJALkJAgkAzAgCAgIlcwkAzAgCAhZlbWlzc2lvblBlcmlvZEluQmxvY2tzBQNuaWwFA1NFUAANa2V5U3RhcnRCbG9jawkAuQkCCQDMCAICAiVzCQDMCAICCnN0YXJ0QmxvY2sFA25pbAUDU0VQABBrZXlUb3RhbExwQW1vdW50CQC5CQIJAMwIAgICJXMJAMwIAgINdG90YWxMcEFtb3VudAUDbmlsBQNTRVAAE2tleVRvdGFsQXNzZXRBbW91bnQJALkJAgkAzAgCAgIlcwkAzAgCAhB0b3RhbEFzc2V0QW1vdW50BQNuaWwFA1NFUAEPa2V5VXNlckxwQW1vdW50AQt1c2VyQWRkcmVzcwkAuQkCCQDMCAICBCVzJXMJAMwIAgIMdXNlckxwQW1vdW50CQDMCAIFC3VzZXJBZGRyZXNzBQNuaWwFA1NFUAEaa2V5VXNlclRvdGFsQXNzZXRXaXRoZHJhd24BC3VzZXJBZGRyZXNzCQC5CQIJAMwIAgIEJXMlcwkAzAgCAhN0b3RhbEFzc2V0V2l0aGRyYXduCQDMCAIFC3VzZXJBZGRyZXNzBQNuaWwFA1NFUAEXa2V5VXNlclRvdGFsQXNzZXRTdGFrZWQBC3VzZXJBZGRyZXNzCQC5CQIJAMwIAgIEJXMlcwkAzAgCAhB0b3RhbEFzc2V0U3Rha2VkCQDMCAIFC3VzZXJBZGRyZXNzBQNuaWwFA1NFUAEKa2V5SGlzdG9yeQMEdHlwZQt1c2VyQWRkcmVzcwR0eElkCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAIFBHR5cGUJAMwIAgULdXNlckFkZHJlc3MJAMwIAgkA2AQBBQR0eElkBQNuaWwFA1NFUAENZm9ybWF0SGlzdG9yeQQLdG90YWxQcm9maXQFcHJpY2UQdG90YWxBc3NldEFtb3VudA10b3RhbExwQW1vdW50CQC5CQIJAMwIAgIIJWQlZCVkJWQJAMwIAgkApAMBBQt0b3RhbFByb2ZpdAkAzAgCCQCmAwEFBXByaWNlCQDMCAIJAKQDAQUQdG90YWxBc3NldEFtb3VudAkAzAgCCQCkAwEFDXRvdGFsTHBBbW91bnQFA25pbAUDU0VQAA10b3RhbExwQW1vdW50CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFEGtleVRvdGFsTHBBbW91bnQAAAAQdG90YWxBc3NldEFtb3VudAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBRNrZXlUb3RhbEFzc2V0QW1vdW50AAAADWFzc2V0SWRTdHJpbmcJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUKa2V5QXNzZXRJZAIFV0FWRVMADGFzc2V0SWRCeXRlcwMJAAACBQ1hc3NldElkU3RyaW5nAgVXQVZFUwUEdW5pdAkA2QQBBQ1hc3NldElkU3RyaW5nABZlbWlzc2lvblBlcmlvZEluQmxvY2tzCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFGWtleUVtaXNzaW9uUGVyaW9kSW5CbG9ja3MFDUJMT0NLU19JTl9EQVkAEWVtaXNzaW9uUGVyUGVyaW9kCQBoAgkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBRNrZXlFbWlzc2lvblBlckJsb2NrAAAFFmVtaXNzaW9uUGVyaW9kSW5CbG9ja3MAD0FETUlOX0xJU1RfU0laRQAFAAZRVU9SVU0AAwARVFhJRF9CWVRFU19MRU5HVEgAIAEYa2V5QWxsb3dlZFR4SWRWb3RlUHJlZml4AQR0eElkCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAICCWFsbG93VHhJZAkAzAgCBQR0eElkBQNuaWwFA1NFUAEQa2V5RnVsbEFkbWluVm90ZQIGcHJlZml4DGFkbWluQWRkcmVzcwkAuQkCCQDMCAIFBnByZWZpeAkAzAgCBQxhZG1pbkFkZHJlc3MFA25pbAUDU0VQARNrZXlBZG1pbkFkZHJlc3NMaXN0AAkAuQkCCQDMCAICAiVzCQDMCAICEGFkbWluQWRkcmVzc0xpc3QFA25pbAUDU0VQAQ5rZXlBbGxvd2VkVHhJZAAJALkJAgkAzAgCAgIlcwkAzAgCAgR0eElkBQNuaWwFA1NFUAEMZ2V0QWRtaW5Wb3RlAgZwcmVmaXgFYWRtaW4EB3ZvdGVLZXkJARBrZXlGdWxsQWRtaW5Wb3RlAgUGcHJlZml4BQVhZG1pbgkBC3ZhbHVlT3JFbHNlAgkAnwgBBQd2b3RlS2V5AAABDWdldEFkbWluc0xpc3QABAckbWF0Y2gwCQCdCAIFBHRoaXMJARNrZXlBZG1pbkFkZHJlc3NMaXN0AAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAJALUJAgUBcwUDU0VQBQNuaWwBDWlzSW5BZG1pbkxpc3QBB2FkZHJlc3MJAQ9jb250YWluc0VsZW1lbnQCCQENZ2V0QWRtaW5zTGlzdAAFB2FkZHJlc3MBEmdlblZvdGVzS2V5c0hlbHBlcgIBYQxhZG1pbkFkZHJlc3MECyR0MDMwNDkzMDczBQFhBAZyZXN1bHQIBQskdDAzMDQ5MzA3MwJfMQQGcHJlZml4CAULJHQwMzA0OTMwNzMCXzIJAJQKAgkAzQgCBQZyZXN1bHQJARBrZXlGdWxsQWRtaW5Wb3RlAgUGcHJlZml4BQxhZG1pbkFkZHJlc3MFBnByZWZpeAEMZ2VuVm90ZXNLZXlzAQlrZXlQcmVmaXgECWFkbWluTGlzdAkBE2tleUFkbWluQWRkcmVzc0xpc3QABAskdDAzMjIwMzMwNAoAAiRsCQENZ2V0QWRtaW5zTGlzdAAKAAIkcwkAkAMBBQIkbAoABSRhY2MwCQCUCgIFA25pbAUJa2V5UHJlZml4CgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJARJnZW5Wb3Rlc0tleXNIZWxwZXICBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECE0xpc3Qgc2l6ZSBleGNlZWRzIDUJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFBAZyZXN1bHQIBQskdDAzMjIwMzMwNAJfMQQGcHJlZml4CAULJHQwMzIyMDMzMDQCXzIFBnJlc3VsdAEQY291bnRWb3Rlc0hlbHBlcgIGcmVzdWx0B3ZvdGVLZXkJAGQCBQZyZXN1bHQJAQt2YWx1ZU9yRWxzZQIJAJ8IAQUHdm90ZUtleQAAAQpjb3VudFZvdGVzAQZwcmVmaXgEBXZvdGVzCQEMZ2VuVm90ZXNLZXlzAQUGcHJlZml4CgACJGwFBXZvdGVzCgACJHMJAJADAQUCJGwKAAUkYWNjMAAACgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJARBjb3VudFZvdGVzSGVscGVyAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhNMaXN0IHNpemUgZXhjZWVkcyA1CQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQEQY2xlYXJWb3Rlc0hlbHBlcgIGcmVzdWx0A2tleQkAzQgCBQZyZXN1bHQJAQtEZWxldGVFbnRyeQEFA2tleQETZ2V0Q2xlYXJWb3RlRW50cmllcwEGcHJlZml4BAV2b3RlcwkBDGdlblZvdGVzS2V5cwEFBnByZWZpeAoAAiRsBQV2b3RlcwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAFA25pbAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEQY2xlYXJWb3Rlc0hlbHBlcgIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQITTGlzdCBzaXplIGV4Y2VlZHMgNQkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUBDHZvdGVJTlRFUk5BTAQTY2FsbGVyQWRkcmVzc1N0cmluZwlrZXlQcmVmaXgIbWluVm90ZXMKdm90ZVJlc3VsdAQHdm90ZUtleQkBEGtleUZ1bGxBZG1pblZvdGUCBQlrZXlQcmVmaXgFE2NhbGxlckFkZHJlc3NTdHJpbmcEEGFkbWluQ3VycmVudFZvdGUJAQxnZXRBZG1pblZvdGUCBQlrZXlQcmVmaXgFE2NhbGxlckFkZHJlc3NTdHJpbmcEA2VycgMJAQEhAQkBDWlzSW5BZG1pbkxpc3QBBRNjYWxsZXJBZGRyZXNzU3RyaW5nCQEIdGhyb3dFcnIBCQCsAgIJAKwCAgIJQWRkcmVzczogBRNjYWxsZXJBZGRyZXNzU3RyaW5nAhIgbm90IGluIEFkbWluIGxpc3QDCQAAAgUQYWRtaW5DdXJyZW50Vm90ZQABCQEIdGhyb3dFcnIBCQCsAgIFB3ZvdGVLZXkCEiB5b3UgYWxyZWFkeSB2b3RlZAUEdW5pdAMJAAACBQNlcnIFA2VycgQFdm90ZXMJAQpjb3VudFZvdGVzAQUJa2V5UHJlZml4AwkAZwIJAGQCBQV2b3RlcwABBQhtaW5Wb3RlcwQQY2xlYXJWb3RlRW50cmllcwkBE2dldENsZWFyVm90ZUVudHJpZXMBBQlrZXlQcmVmaXgJAM4IAgUQY2xlYXJWb3RlRW50cmllcwUKdm90ZVJlc3VsdAkAzAgCCQEMSW50ZWdlckVudHJ5AgUHdm90ZUtleQABBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BGGNhbGNUb3RhbFByb2ZpdEZvckhlaWdodAEBaAQKc3RhcnRCbG9jawkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQ1rZXlTdGFydEJsb2NrAAAEC3N0YXJ0UGVyaW9kCQBrAwUKc3RhcnRCbG9jawABBRZlbWlzc2lvblBlcmlvZEluQmxvY2tzBA5lbGFwc2VkUGVyaW9kcwkAZQIJAGkCBQFoBRZlbWlzc2lvblBlcmlvZEluQmxvY2tzBQtzdGFydFBlcmlvZAkAlgMBCQDMCAIAAAkAzAgCCQBoAgURZW1pc3Npb25QZXJQZXJpb2QFDmVsYXBzZWRQZXJpb2RzBQNuaWwBD2NhbGNUb3RhbFByb2ZpdAAJARhjYWxjVG90YWxQcm9maXRGb3JIZWlnaHQBBQZoZWlnaHQBK2dldFRvdGFsQXNzZXRBbW91bnRXaXRoUHJvZml0T3JNYXhBdmFpbGFibGUABBp0b3RhbEFzc2V0QW1vdW50V2l0aFByb2ZpdAkAZAIFEHRvdGFsQXNzZXRBbW91bnQJAQ9jYWxjVG90YWxQcm9maXQABAt0b3RhbEFtb3VudAQHJG1hdGNoMAUMYXNzZXRJZEJ5dGVzAwkAAQIFByRtYXRjaDACBFVuaXQEAXUFByRtYXRjaDAJAJcDAQkAzAgCBRp0b3RhbEFzc2V0QW1vdW50V2l0aFByb2ZpdAkAzAgCCAkA7wcBBQR0aGlzCWF2YWlsYWJsZQUDbmlsAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAWIFByRtYXRjaDAJAJcDAQkAzAgCBRp0b3RhbEFzc2V0QW1vdW50V2l0aFByb2ZpdAkAzAgCCQDwBwIFBHRoaXMFAWIFA25pbAkAAgECC01hdGNoIGVycm9yAwkAAAIFDXRvdGFsTHBBbW91bnQAAAAABQt0b3RhbEFtb3VudAEPZ2V0Q3VycmVudFByaWNlAAMJAQIhPQIFDXRvdGFsTHBBbW91bnQAAAkAvAIDCQC2AgEJAStnZXRUb3RhbEFzc2V0QW1vdW50V2l0aFByb2ZpdE9yTWF4QXZhaWxhYmxlAAUNc2NhbGUxOEJpZ0ludAkAtgIBBQ10b3RhbExwQW1vdW50BQ1zY2FsZTE4QmlnSW50AQ9nZXRVc2VyTHBBbW91bnQBC3VzZXJBZGRyZXNzCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQ9rZXlVc2VyTHBBbW91bnQBBQt1c2VyQWRkcmVzcwAAASBnZXRVc2VyQXZhaWxhYmxlQXNzZXRzVG9XaXRoZHJhdwELdXNlckFkZHJlc3MEDHVzZXJMcEFtb3VudAkBD2dldFVzZXJMcEFtb3VudAEFC3VzZXJBZGRyZXNzBBx1c2VyQXZhaWxhYmxlQXNzZXRUb1dpdGhkcmF3CQCgAwEJALwCAwkAtgIBBQx1c2VyTHBBbW91bnQJAQ9nZXRDdXJyZW50UHJpY2UABQ1zY2FsZTE4QmlnSW50AwkAZgIAAAUcdXNlckF2YWlsYWJsZUFzc2V0VG9XaXRoZHJhdwAABRx1c2VyQXZhaWxhYmxlQXNzZXRUb1dpdGhkcmF3AQ9nZXRTdGFrZUFjdGlvbnMCAWkLdXNlckFkZHJlc3MEBmNoZWNrcwkAzAgCAwkAAAIJAJADAQgFAWkIcGF5bWVudHMAAQYJAQh0aHJvd0VycgECGHNob3VsZCBpbmNsdWRlIDEgcGF5bWVudAkAzAgCAwkAAAIICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAUMYXNzZXRJZEJ5dGVzBgkBCHRocm93RXJyAQkArAICAhVwYXltZW50IHNob3VsZCBiZSBpbiAFDWFzc2V0SWRTdHJpbmcJAMwIAgMJAGYCCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAAABgIncGF5bWVudCBhbW91bnQgc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiAwBQNuaWwDCQAAAgUGY2hlY2tzBQZjaGVja3MEDXBheW1lbnRBbW91bnQICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50BA9wYXltZW50THBBbW91bnQJAKADAQkAvAIDCQC2AgEFDXBheW1lbnRBbW91bnQFDXNjYWxlMThCaWdJbnQJAQ9nZXRDdXJyZW50UHJpY2UABAx1c2VyTHBBbW91bnQJAQ9nZXRVc2VyTHBBbW91bnQBBQt1c2VyQWRkcmVzcwQVdXNlclRvdGFsU3Rha2VkQW1vdW50CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJARdrZXlVc2VyVG90YWxBc3NldFN0YWtlZAEFC3VzZXJBZGRyZXNzAAAEEG5ld1RvdGFsTHBBbW91bnQJAGQCBQ10b3RhbExwQW1vdW50BQ9wYXltZW50THBBbW91bnQEE25ld1RvdGFsQXNzZXRBbW91bnQJAGQCBRB0b3RhbEFzc2V0QW1vdW50BQ1wYXltZW50QW1vdW50BA9uZXdVc2VyTHBBbW91bnQJAGQCBQx1c2VyTHBBbW91bnQFD3BheW1lbnRMcEFtb3VudAQYbmV3VXNlclRvdGFsU3Rha2VkQW1vdW50CQBkAgUVdXNlclRvdGFsU3Rha2VkQW1vdW50BQ1wYXltZW50QW1vdW50BBd1cGRhdGVTdGFydEhlaWdodEFjdGlvbgMJAAACBQ10b3RhbExwQW1vdW50AAAJAMwIAgkBDEludGVnZXJFbnRyeQIFDWtleVN0YXJ0QmxvY2sFBmhlaWdodAUDbmlsBQNuaWwJAM4IAgkAzAgCCQELU3RyaW5nRW50cnkCCQEKa2V5SGlzdG9yeQMCBXN0YWtlBQt1c2VyQWRkcmVzcwgFAWkNdHJhbnNhY3Rpb25JZAkBDWZvcm1hdEhpc3RvcnkECQEPY2FsY1RvdGFsUHJvZml0AAkBD2dldEN1cnJlbnRQcmljZQAFDXRvdGFsTHBBbW91bnQFEHRvdGFsQXNzZXRBbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIFEGtleVRvdGFsTHBBbW91bnQFEG5ld1RvdGFsTHBBbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIFE2tleVRvdGFsQXNzZXRBbW91bnQFE25ld1RvdGFsQXNzZXRBbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIJAQ9rZXlVc2VyTHBBbW91bnQBBQt1c2VyQWRkcmVzcwUPbmV3VXNlckxwQW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEXa2V5VXNlclRvdGFsQXNzZXRTdGFrZWQBBQt1c2VyQWRkcmVzcwUYbmV3VXNlclRvdGFsU3Rha2VkQW1vdW50BQNuaWwFF3VwZGF0ZVN0YXJ0SGVpZ2h0QWN0aW9uCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuARJnZXRXaXRoZHJhd0FjdGlvbnMCAWkVbHBBc3NldFdpdGhkcmF3QW1vdW50BAt1c2VyQWRkcmVzcwkApQgBCAUBaQZjYWxsZXIEDHVzZXJMcEFtb3VudAkBD2dldFVzZXJMcEFtb3VudAEFC3VzZXJBZGRyZXNzBAVjaGVjawkAzAgCAwkAZgIFFWxwQXNzZXRXaXRoZHJhd0Ftb3VudAAABgkBCHRocm93RXJyAQIfTFAgYW1vdW50IHNob3VsZCBiZSBtb3JlIHRoYW4gMAkAzAgCAwkAZwIFDHVzZXJMcEFtb3VudAUVbHBBc3NldFdpdGhkcmF3QW1vdW50BgkBCHRocm93RXJyAQkArAICCQCsAgICKGNhbm5vdCB3aXRoZHJhdyBtb3JlIHRoYW4gYXZhaWxhYmxlIExQICgJAKQDAQUMdXNlckxwQW1vdW50AgEpBQNuaWwDCQAAAgUFY2hlY2sFBWNoZWNrBA9uZXdVc2VyTHBBbW91bnQJAGUCBQx1c2VyTHBBbW91bnQFFWxwQXNzZXRXaXRoZHJhd0Ftb3VudAQTd2l0aGRyYXdBc3NldEFtb3VudAkAoAMBCQC8AgMJALYCAQUVbHBBc3NldFdpdGhkcmF3QW1vdW50CQEPZ2V0Q3VycmVudFByaWNlAAUNc2NhbGUxOEJpZ0ludAQQbmV3VG90YWxMcEFtb3VudAkAZQIFDXRvdGFsTHBBbW91bnQFFWxwQXNzZXRXaXRoZHJhd0Ftb3VudAQTbmV3VG90YWxBc3NldEFtb3VudAkAoAMBCQC8AgMJALYCAQUQbmV3VG90YWxMcEFtb3VudAkBD2dldEN1cnJlbnRQcmljZQAFDXNjYWxlMThCaWdJbnQEF3VzZXJUb3RhbEFzc2V0V2l0aGRyYXduCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJARprZXlVc2VyVG90YWxBc3NldFdpdGhkcmF3bgEFC3VzZXJBZGRyZXNzAAAEGm5ld1VzZXJUb3RhbEFzc2V0V2l0aGRyYXduCQBkAgUXdXNlclRvdGFsQXNzZXRXaXRoZHJhd24FE3dpdGhkcmF3QXNzZXRBbW91bnQJAMwIAgkBC1N0cmluZ0VudHJ5AgkBCmtleUhpc3RvcnkDAgh3aXRoZHJhdwULdXNlckFkZHJlc3MIBQFpDXRyYW5zYWN0aW9uSWQJAQ1mb3JtYXRIaXN0b3J5BAkBD2NhbGNUb3RhbFByb2ZpdAAJAQ9nZXRDdXJyZW50UHJpY2UABQ10b3RhbExwQW1vdW50BRB0b3RhbEFzc2V0QW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCBRBrZXlUb3RhbExwQW1vdW50BRBuZXdUb3RhbExwQW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCBRNrZXlUb3RhbEFzc2V0QW1vdW50BRNuZXdUb3RhbEFzc2V0QW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEPa2V5VXNlckxwQW1vdW50AQULdXNlckFkZHJlc3MFD25ld1VzZXJMcEFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBGmtleVVzZXJUb3RhbEFzc2V0V2l0aGRyYXduAQULdXNlckFkZHJlc3MFGm5ld1VzZXJUb3RhbEFzc2V0V2l0aGRyYXduCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ1rZXlTdGFydEJsb2NrBQZoZWlnaHQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyBRN3aXRoZHJhd0Fzc2V0QW1vdW50BQxhc3NldElkQnl0ZXMFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLggBaQETc2V0RW1pc3Npb25QZXJCbG9jawEQZW1pc3Npb25QZXJCbG9jawQFY2hlY2sJAMwIAgMJAAACCAUBaQZjYWxsZXIFBHRoaXMGCQEIdGhyb3dFcnIBAhFwZXJtaXNzaW9uIGRlbmllZAUDbmlsAwkAAAIFBWNoZWNrBQVjaGVjawkAzAgCCQEMSW50ZWdlckVudHJ5AgUTa2V5VG90YWxBc3NldEFtb3VudAkBK2dldFRvdGFsQXNzZXRBbW91bnRXaXRoUHJvZml0T3JNYXhBdmFpbGFibGUACQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ1rZXlTdGFydEJsb2NrBQZoZWlnaHQJAMwIAgkBDEludGVnZXJFbnRyeQIFE2tleUVtaXNzaW9uUGVyQmxvY2sJAJYDAQkAzAgCAAAJAMwIAgUQZW1pc3Npb25QZXJCbG9jawUDbmlsBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEZc2V0RW1pc3Npb25QZXJpb2RJbkJsb2NrcwEBcAQFY2hlY2sJAMwIAgMJAGYCBQFwAAAGCQEIdGhyb3dFcnIBAihlbWlzc2lvbiBwZXJpb2Qgc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiAwCQDMCAIDCQAAAggFAWkGY2FsbGVyBQR0aGlzBgkBCHRocm93RXJyAQIRcGVybWlzc2lvbiBkZW5pZWQFA25pbAMJAAACBQVjaGVjawUFY2hlY2sJAMwIAgkBDEludGVnZXJFbnRyeQIFE2tleVRvdGFsQXNzZXRBbW91bnQJAStnZXRUb3RhbEFzc2V0QW1vdW50V2l0aFByb2ZpdE9yTWF4QXZhaWxhYmxlAAkAzAgCCQEMSW50ZWdlckVudHJ5AgUNa2V5U3RhcnRCbG9jawUGaGVpZ2h0CQDMCAIJAQxJbnRlZ2VyRW50cnkCBRlrZXlFbWlzc2lvblBlcmlvZEluQmxvY2tzBQFwBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEFc3Rha2UACQEPZ2V0U3Rha2VBY3Rpb25zAgUBaQkApQgBCAUBaQZjYWxsZXIBaQEIc3Rha2VGb3IBC3VzZXJBZGRyZXNzBAVjaGVjawkAzAgCAwkAAAIJAMgBAQkA2QQBBQt1c2VyQWRkcmVzcwUSQUREUkVTU19CWVRFU19TSVpFBgkBCHRocm93RXJyAQIUYWRkcmVzcyBpcyBub3QgdmFsaWQFA25pbAMJAAACBQVjaGVjawUFY2hlY2sJAQ9nZXRTdGFrZUFjdGlvbnMCBQFpBQt1c2VyQWRkcmVzcwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQh3aXRoZHJhdwETd2l0aGRyYXdBc3NldEFtb3VudAQLdXNlckFkZHJlc3MJAKUIAQgFAWkGY2FsbGVyBAx1c2VyTHBBbW91bnQJAQ9nZXRVc2VyTHBBbW91bnQBBQt1c2VyQWRkcmVzcwQSbHBBbW91bnRUb1dpdGhkcmF3CQCgAwEJALwCAwkAtgIBBRN3aXRoZHJhd0Fzc2V0QW1vdW50BQ1zY2FsZTE4QmlnSW50CQEPZ2V0Q3VycmVudFByaWNlAAQcdXNlckF2YWlsYWJsZUFzc2V0VG9XaXRoZHJhdwkBIGdldFVzZXJBdmFpbGFibGVBc3NldHNUb1dpdGhkcmF3AQULdXNlckFkZHJlc3MEFm1pbldpdGhkcmF3QXNzZXRBbW91bnQJAKADAQkAvQIECQEPZ2V0Q3VycmVudFByaWNlAAkAtgIBAAEFDXNjYWxlMThCaWdJbnQFB0NFSUxJTkcEBWNoZWNrCQDMCAIDCQBmAgUTd2l0aGRyYXdBc3NldEFtb3VudAAABgkBCHRocm93RXJyAQIld2l0aGRyYXcgYW1vdW50IHNob3VsZCBiZSBtb3JlIHRoYW4gMAkAzAgCAwkAZwIFHHVzZXJBdmFpbGFibGVBc3NldFRvV2l0aGRyYXcFE3dpdGhkcmF3QXNzZXRBbW91bnQGCQEIdGhyb3dFcnIBCQCsAgIJAKwCAgIlY2Fubm90IHdpdGhkcmF3IG1vcmUgdGhhbiBhdmFpbGFibGUgKAkApAMBBRx1c2VyQXZhaWxhYmxlQXNzZXRUb1dpdGhkcmF3AgEpCQDMCAIDCQBnAgUTd2l0aGRyYXdBc3NldEFtb3VudAUWbWluV2l0aGRyYXdBc3NldEFtb3VudAYJAQh0aHJvd0VycgEJAKwCAgkArAICAiR3aXRoZHJhdyBhbW91bnQgaXMgdG9vIHNtYWxsLiBNaW46ICgJAKQDAQUWbWluV2l0aGRyYXdBc3NldEFtb3VudAIBKQUDbmlsAwkAAAIFBWNoZWNrBQVjaGVjawkBEmdldFdpdGhkcmF3QWN0aW9ucwIFAWkJAJcDAQkAzAgCBQx1c2VyTHBBbW91bnQJAMwIAgkAZAIFEmxwQW1vdW50VG9XaXRoZHJhdwABBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEVZ2V0VXNlckFzc2V0c1JFQURPTkxZAQt1c2VyQWRkcmVzcwQMdXNlckxwQW1vdW50CQEPZ2V0VXNlckxwQW1vdW50AQULdXNlckFkZHJlc3MEHHVzZXJBdmFpbGFibGVBc3NldFRvV2l0aGRyYXcJASBnZXRVc2VyQXZhaWxhYmxlQXNzZXRzVG9XaXRoZHJhdwEFC3VzZXJBZGRyZXNzBBV1c2VyVG90YWxTdGFrZWRBbW91bnQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBF2tleVVzZXJUb3RhbEFzc2V0U3Rha2VkAQULdXNlckFkZHJlc3MAAAQXdXNlclRvdGFsQXNzZXRXaXRoZHJhd24JAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBGmtleVVzZXJUb3RhbEFzc2V0V2l0aGRyYXduAQULdXNlckFkZHJlc3MAAAkAlAoCBQNuaWwJAJcKBQUMdXNlckxwQW1vdW50BRx1c2VyQXZhaWxhYmxlQXNzZXRUb1dpdGhkcmF3CQEPZ2V0Q3VycmVudFByaWNlAAUVdXNlclRvdGFsU3Rha2VkQW1vdW50BRd1c2VyVG90YWxBc3NldFdpdGhkcmF3bgFpARZnZXRUb3RhbEFzc2V0c1JFQURPTkxZAAkAlAoCBQNuaWwJAJUKAwUNdG90YWxMcEFtb3VudAkBK2dldFRvdGFsQXNzZXRBbW91bnRXaXRoUHJvZml0T3JNYXhBdmFpbGFibGUACQEPZ2V0Q3VycmVudFByaWNlAAFpAQt2b3RlRm9yVHhJZAEEdHhJZAQTY2FsbGVyQWRkcmVzc1N0cmluZwkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzBAlrZXlQcmVmaXgJARhrZXlBbGxvd2VkVHhJZFZvdGVQcmVmaXgBBQR0eElkBAZyZXN1bHQJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDmtleUFsbG93ZWRUeElkAAUEdHhJZAUDbmlsBBFhbGxvd2VkVHhJZE9wdGlvbgkAnQgCBQR0aGlzCQEOa2V5QWxsb3dlZFR4SWQABANlcnIJAMwIAgMJAAACCQDIAQEJANkEAQUEdHhJZAURVFhJRF9CWVRFU19MRU5HVEgGCQEIdGhyb3dFcnIBCQCsAgIFBHR4SWQCEiBpcyBub3QgdmFsaWQgdHhJZAkAzAgCAwMJAAACBRFhbGxvd2VkVHhJZE9wdGlvbgUEdW5pdAYJAQIhPQIJAQV2YWx1ZQEFEWFsbG93ZWRUeElkT3B0aW9uBQR0eElkBgkBCHRocm93RXJyAQkArAICBQR0eElkAhMgaXMgYWxyZWFkeSBhbGxvd2VkBQNuaWwDCQAAAgUDZXJyBQNlcnIJAQx2b3RlSU5URVJOQUwEBRNjYWxsZXJBZGRyZXNzU3RyaW5nBQlrZXlQcmVmaXgFBlFVT1JVTQUGcmVzdWx0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJ0eAEGdmVyaWZ5AAQIYnlBZG1pbnMJAAACCAUCdHgCaWQJANkEAQkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQEOa2V5QWxsb3dlZFR4SWQAAgAEB2J5T3duZXIDCQBnAgkAkAMBCQENZ2V0QWRtaW5zTGlzdAAFBlFVT1JVTQcJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAIBQJ0eA9zZW5kZXJQdWJsaWNLZXkDBQhieUFkbWlucwYFB2J5T3duZXL43dw2", "height": 2690211, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: BD2pjjSvvBKXnBRmASh3Fm8Z3w8SYor5yjN4cshkV7gB Next: none Diff:
OldNewDifferences
4242 func t (u,q,v) = makeString(["%s%s%s", u, q, toBase58String(v)], b)
4343
4444
45-func w (x,y,z,A) = makeString(["%d%d", toString(x), toString(y), toString(z), toString(A)], b)
45+func w (x,y,z,A) = makeString(["%d%d%d%d", toString(x), toString(y), toString(z), toString(A)], b)
4646
4747
4848 let A = valueOrElse(getInteger(this, n), 0)
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "l2mp_staking.ride"
55
66 let b = "__"
77
88 let c = 100000000
99
1010 let d = 1000000000000000000
1111
1212 let e = toBigInt(d)
1313
1414 let f = 26
1515
1616 let g = 1440
1717
1818 func h (i) = throw(((a + ": ") + i))
1919
2020
2121 let j = makeString(["%s", "assetId"], b)
2222
2323 let k = makeString(["%s", "emissionPerBlock"], b)
2424
2525 let l = makeString(["%s", "emissionPeriodInBlocks"], b)
2626
2727 let m = makeString(["%s", "startBlock"], b)
2828
2929 let n = makeString(["%s", "totalLpAmount"], b)
3030
3131 let o = makeString(["%s", "totalAssetAmount"], b)
3232
3333 func p (q) = makeString(["%s%s", "userLpAmount", q], b)
3434
3535
3636 func r (q) = makeString(["%s%s", "totalAssetWithdrawn", q], b)
3737
3838
3939 func s (q) = makeString(["%s%s", "totalAssetStaked", q], b)
4040
4141
4242 func t (u,q,v) = makeString(["%s%s%s", u, q, toBase58String(v)], b)
4343
4444
45-func w (x,y,z,A) = makeString(["%d%d", toString(x), toString(y), toString(z), toString(A)], b)
45+func w (x,y,z,A) = makeString(["%d%d%d%d", toString(x), toString(y), toString(z), toString(A)], b)
4646
4747
4848 let A = valueOrElse(getInteger(this, n), 0)
4949
5050 let z = valueOrElse(getInteger(this, o), 0)
5151
5252 let B = valueOrElse(getString(this, j), "WAVES")
5353
5454 let C = if ((B == "WAVES"))
5555 then unit
5656 else fromBase58String(B)
5757
5858 let D = valueOrElse(getInteger(this, l), g)
5959
6060 let E = (valueOrElse(getInteger(this, k), 0) * D)
6161
6262 let F = 5
6363
6464 let G = 3
6565
6666 let H = 32
6767
6868 func I (v) = makeString(["%s%s%s", "allowTxId", v], b)
6969
7070
7171 func J (K,L) = makeString([K, L], b)
7272
7373
7474 func M () = makeString(["%s", "adminAddressList"], b)
7575
7676
7777 func N () = makeString(["%s", "txId"], b)
7878
7979
8080 func O (K,P) = {
8181 let Q = J(K, P)
8282 valueOrElse(getInteger(Q), 0)
8383 }
8484
8585
8686 func R () = {
8787 let S = getString(this, M())
8888 if ($isInstanceOf(S, "String"))
8989 then {
9090 let T = S
9191 split(T, b)
9292 }
9393 else nil
9494 }
9595
9696
9797 func U (V) = containsElement(R(), V)
9898
9999
100100 func W (X,L) = {
101101 let Y = X
102102 let Z = Y._1
103103 let K = Y._2
104104 $Tuple2((Z :+ J(K, L)), K)
105105 }
106106
107107
108108 func aa (ab) = {
109109 let ac = M()
110110 let ad = {
111111 let ae = R()
112112 let af = size(ae)
113113 let ag = $Tuple2(nil, ab)
114114 func ah (ai,aj) = if ((aj >= af))
115115 then ai
116116 else W(ai, ae[aj])
117117
118118 func ak (ai,aj) = if ((aj >= af))
119119 then ai
120120 else throw("List size exceeds 5")
121121
122122 ak(ah(ah(ah(ah(ah(ag, 0), 1), 2), 3), 4), 5)
123123 }
124124 let Z = ad._1
125125 let K = ad._2
126126 Z
127127 }
128128
129129
130130 func al (Z,Q) = (Z + valueOrElse(getInteger(Q), 0))
131131
132132
133133 func am (K) = {
134134 let an = aa(K)
135135 let ae = an
136136 let af = size(ae)
137137 let ag = 0
138138 func ah (ai,aj) = if ((aj >= af))
139139 then ai
140140 else al(ai, ae[aj])
141141
142142 func ak (ai,aj) = if ((aj >= af))
143143 then ai
144144 else throw("List size exceeds 5")
145145
146146 ak(ah(ah(ah(ah(ah(ag, 0), 1), 2), 3), 4), 5)
147147 }
148148
149149
150150 func ao (Z,ap) = (Z :+ DeleteEntry(ap))
151151
152152
153153 func aq (K) = {
154154 let an = aa(K)
155155 let ae = an
156156 let af = size(ae)
157157 let ag = nil
158158 func ah (ai,aj) = if ((aj >= af))
159159 then ai
160160 else ao(ai, ae[aj])
161161
162162 func ak (ai,aj) = if ((aj >= af))
163163 then ai
164164 else throw("List size exceeds 5")
165165
166166 ak(ah(ah(ah(ah(ah(ag, 0), 1), 2), 3), 4), 5)
167167 }
168168
169169
170170 func ar (as,ab,at,au) = {
171171 let Q = J(ab, as)
172172 let av = O(ab, as)
173173 let aw = if (!(U(as)))
174174 then h((("Address: " + as) + " not in Admin list"))
175175 else if ((av == 1))
176176 then h((Q + " you already voted"))
177177 else unit
178178 if ((aw == aw))
179179 then {
180180 let an = am(ab)
181181 if (((an + 1) >= at))
182182 then {
183183 let ax = aq(ab)
184184 (ax ++ au)
185185 }
186186 else [IntegerEntry(Q, 1)]
187187 }
188188 else throw("Strict value is not equal to itself.")
189189 }
190190
191191
192192 func ay (az) = {
193193 let aA = valueOrElse(getInteger(this, m), 0)
194194 let aB = fraction(aA, 1, D)
195195 let aC = ((az / D) - aB)
196196 max([0, (E * aC)])
197197 }
198198
199199
200200 func aD () = ay(height)
201201
202202
203203 func aE () = {
204204 let aF = (z + aD())
205205 let aG = {
206206 let S = C
207207 if ($isInstanceOf(S, "Unit"))
208208 then {
209209 let aH = S
210210 min([aF, wavesBalance(this).available])
211211 }
212212 else if ($isInstanceOf(S, "ByteVector"))
213213 then {
214214 let aI = S
215215 min([aF, assetBalance(this, aI)])
216216 }
217217 else throw("Match error")
218218 }
219219 if ((A == 0))
220220 then 0
221221 else aG
222222 }
223223
224224
225225 func aJ () = if ((A != 0))
226226 then fraction(toBigInt(aE()), e, toBigInt(A))
227227 else e
228228
229229
230230 func aK (q) = valueOrElse(getInteger(this, p(q)), 0)
231231
232232
233233 func aL (q) = {
234234 let aM = aK(q)
235235 let aN = toInt(fraction(toBigInt(aM), aJ(), e))
236236 if ((0 > aN))
237237 then 0
238238 else aN
239239 }
240240
241241
242242 func aO (aP,q) = {
243243 let aQ = [if ((size(aP.payments) == 1))
244244 then true
245245 else h("should include 1 payment"), if ((aP.payments[0].assetId == C))
246246 then true
247247 else h(("payment should be in " + B)), if ((aP.payments[0].amount > 0))
248248 then true
249249 else "payment amount should be greater than 0"]
250250 if ((aQ == aQ))
251251 then {
252252 let aR = aP.payments[0].amount
253253 let aS = toInt(fraction(toBigInt(aR), e, aJ()))
254254 let aM = aK(q)
255255 let aT = valueOrElse(getInteger(this, s(q)), 0)
256256 let aU = (A + aS)
257257 let aV = (z + aR)
258258 let aW = (aM + aS)
259259 let aX = (aT + aR)
260260 let aY = if ((A == 0))
261261 then [IntegerEntry(m, height)]
262262 else nil
263263 ([StringEntry(t("stake", q, aP.transactionId), w(aD(), aJ(), A, z)), IntegerEntry(n, aU), IntegerEntry(o, aV), IntegerEntry(p(q), aW), IntegerEntry(s(q), aX)] ++ aY)
264264 }
265265 else throw("Strict value is not equal to itself.")
266266 }
267267
268268
269269 func aZ (aP,ba) = {
270270 let q = toString(aP.caller)
271271 let aM = aK(q)
272272 let bb = [if ((ba > 0))
273273 then true
274274 else h("LP amount should be more than 0"), if ((aM >= ba))
275275 then true
276276 else h((("cannot withdraw more than available LP (" + toString(aM)) + ")"))]
277277 if ((bb == bb))
278278 then {
279279 let aW = (aM - ba)
280280 let bc = toInt(fraction(toBigInt(ba), aJ(), e))
281281 let aU = (A - ba)
282282 let aV = toInt(fraction(toBigInt(aU), aJ(), e))
283283 let bd = valueOrElse(getInteger(this, r(q)), 0)
284284 let be = (bd + bc)
285285 [StringEntry(t("withdraw", q, aP.transactionId), w(aD(), aJ(), A, z)), IntegerEntry(n, aU), IntegerEntry(o, aV), IntegerEntry(p(q), aW), IntegerEntry(r(q), be), IntegerEntry(m, height), ScriptTransfer(aP.caller, bc, C)]
286286 }
287287 else throw("Strict value is not equal to itself.")
288288 }
289289
290290
291291 @Callable(aP)
292292 func setEmissionPerBlock (bf) = {
293293 let bb = [if ((aP.caller == this))
294294 then true
295295 else h("permission denied")]
296296 if ((bb == bb))
297297 then [IntegerEntry(o, aE()), IntegerEntry(m, height), IntegerEntry(k, max([0, bf]))]
298298 else throw("Strict value is not equal to itself.")
299299 }
300300
301301
302302
303303 @Callable(aP)
304304 func setEmissionPeriodInBlocks (bg) = {
305305 let bb = [if ((bg > 0))
306306 then true
307307 else h("emission period should be greater than 0"), if ((aP.caller == this))
308308 then true
309309 else h("permission denied")]
310310 if ((bb == bb))
311311 then [IntegerEntry(o, aE()), IntegerEntry(m, height), IntegerEntry(l, bg)]
312312 else throw("Strict value is not equal to itself.")
313313 }
314314
315315
316316
317317 @Callable(aP)
318318 func stake () = aO(aP, toString(aP.caller))
319319
320320
321321
322322 @Callable(aP)
323323 func stakeFor (q) = {
324324 let bb = [if ((size(fromBase58String(q)) == f))
325325 then true
326326 else h("address is not valid")]
327327 if ((bb == bb))
328328 then aO(aP, q)
329329 else throw("Strict value is not equal to itself.")
330330 }
331331
332332
333333
334334 @Callable(aP)
335335 func withdraw (bc) = {
336336 let q = toString(aP.caller)
337337 let aM = aK(q)
338338 let bh = toInt(fraction(toBigInt(bc), e, aJ()))
339339 let aN = aL(q)
340340 let bi = toInt(fraction(aJ(), toBigInt(1), e, CEILING))
341341 let bb = [if ((bc > 0))
342342 then true
343343 else h("withdraw amount should be more than 0"), if ((aN >= bc))
344344 then true
345345 else h((("cannot withdraw more than available (" + toString(aN)) + ")")), if ((bc >= bi))
346346 then true
347347 else h((("withdraw amount is too small. Min: (" + toString(bi)) + ")"))]
348348 if ((bb == bb))
349349 then aZ(aP, min([aM, (bh + 1)]))
350350 else throw("Strict value is not equal to itself.")
351351 }
352352
353353
354354
355355 @Callable(aP)
356356 func getUserAssetsREADONLY (q) = {
357357 let aM = aK(q)
358358 let aN = aL(q)
359359 let aT = valueOrElse(getInteger(this, s(q)), 0)
360360 let bd = valueOrElse(getInteger(this, r(q)), 0)
361361 $Tuple2(nil, $Tuple5(aM, aN, aJ(), aT, bd))
362362 }
363363
364364
365365
366366 @Callable(aP)
367367 func getTotalAssetsREADONLY () = $Tuple2(nil, $Tuple3(A, aE(), aJ()))
368368
369369
370370
371371 @Callable(aP)
372372 func voteForTxId (v) = {
373373 let as = toBase58String(aP.caller.bytes)
374374 let ab = I(v)
375375 let Z = [StringEntry(N(), v)]
376376 let bj = getString(this, N())
377377 let aw = [if ((size(fromBase58String(v)) == H))
378378 then true
379379 else h((v + " is not valid txId")), if (if ((bj == unit))
380380 then true
381381 else (value(bj) != v))
382382 then true
383383 else h((v + " is already allowed"))]
384384 if ((aw == aw))
385385 then ar(as, ab, G, Z)
386386 else throw("Strict value is not equal to itself.")
387387 }
388388
389389
390390 @Verifier(bk)
391391 func bl () = {
392392 let bm = (bk.id == fromBase58String(valueOrElse(getString(this, N()), "")))
393393 let bn = if ((size(R()) >= G))
394394 then false
395395 else sigVerify(bk.bodyBytes, bk.proofs[0], bk.senderPublicKey)
396396 if (bm)
397397 then true
398398 else bn
399399 }
400400

github/deemru/w8io/026f985 
48.54 ms