tx · Hq2jw7mQaM9AKWTJ8tdbXiGETFKmrbGH7GJNMr3cuhiX

3N3irEKCdj77h97aEbfj3fa3uMXCNCXVhKt:  -0.01200000 Waves

2023.12.11 09:59 [2881708] smart account 3N3irEKCdj77h97aEbfj3fa3uMXCNCXVhKt > SELF 0.00000000 Waves

{ "type": 13, "id": "Hq2jw7mQaM9AKWTJ8tdbXiGETFKmrbGH7GJNMr3cuhiX", "fee": 1200000, "feeAssetId": null, "timestamp": 1702278050495, "version": 1, "sender": "3N3irEKCdj77h97aEbfj3fa3uMXCNCXVhKt", "senderPublicKey": "FACNGaFYnR8yFbQFg9sRBpzGVCyzMyLeVw3JMhGQT1wn", "proofs": [ "rE9wKLG8kB4HyCeoRmZZxxWjiz9unyy1q3w83iDn5vCRXuoE1VSK953xDAtz9CwxYuXRix8d7j3bLvnJFgUVqfu" ], "script": "base64:BgIWCAISBAoCCAESBQoDGBEBEgMKAQgSADAADGNvbnRyYWN0RmlsZQIRbDJtcF9zdGFraW5nLnJpZGUAA1NFUAICX18ABnNjYWxlOACAwtcvAAdzY2FsZTE4AICAkLu61q3wDQANc2NhbGUxOEJpZ0ludAkAtgIBBQdzY2FsZTE4ABJBRERSRVNTX0JZVEVTX1NJWkUAGgANQkxPQ0tTX0lOX0RBWQCgCwAMYWRtaW5BZGRyZXNzCQERQGV4dHJOYXRpdmUoMTA2MikBAiMzTXBzN0NacUI5blViRWlyWXlDTU1vQTdWYnFyeEx2SkZTQgEIdGhyb3dFcnIBA21zZwkAAgEJAKwCAgkArAICBQxjb250cmFjdEZpbGUCAjogBQNtc2cACmtleUFzc2V0SWQJALkJAgkAzAgCAgIlcwkAzAgCAgdhc3NldElkBQNuaWwFA1NFUAATa2V5RW1pc3Npb25QZXJCbG9jawkAuQkCCQDMCAICAiVzCQDMCAICEGVtaXNzaW9uUGVyQmxvY2sFA25pbAUDU0VQABlrZXlFbWlzc2lvblBlcmlvZEluQmxvY2tzCQC5CQIJAMwIAgICJXMJAMwIAgIWZW1pc3Npb25QZXJpb2RJbkJsb2NrcwUDbmlsBQNTRVAADWtleVN0YXJ0QmxvY2sJALkJAgkAzAgCAgIlcwkAzAgCAgpzdGFydEJsb2NrBQNuaWwFA1NFUAAQa2V5VG90YWxMcEFtb3VudAkAuQkCCQDMCAICAiVzCQDMCAICDXRvdGFsTHBBbW91bnQFA25pbAUDU0VQABNrZXlUb3RhbEFzc2V0QW1vdW50CQC5CQIJAMwIAgICJXMJAMwIAgIQdG90YWxBc3NldEFtb3VudAUDbmlsBQNTRVAAFmtleVRvdGFsTG9ja2VkTHBBbW91bnQJALkJAgkAzAgCAgIlcwkAzAgCAhN0b3RhbExvY2tlZExwQW1vdW50BQNuaWwFA1NFUAEPa2V5VXNlckxwQW1vdW50AQt1c2VyQWRkcmVzcwkAuQkCCQDMCAICBCVzJXMJAMwIAgIMdXNlckxwQW1vdW50CQDMCAIFC3VzZXJBZGRyZXNzBQNuaWwFA1NFUAEVa2V5VXNlckxvY2tlZExwQW1vdW50AQt1c2VyQWRkcmVzcwkAuQkCCQDMCAICBCVzJXMJAMwIAgISdXNlckxvY2tlZExwQW1vdW50CQDMCAIFC3VzZXJBZGRyZXNzBQNuaWwFA1NFUAETa2V5VXNlclN0YWtpbmdOb2RlcwELdXNlckFkZHJlc3MJALkJAgkAzAgCAgQlcyVzCQDMCAICEHVzZXJTdGFraW5nTm9kZXMJAMwIAgULdXNlckFkZHJlc3MFA25pbAUDU0VQARlrZXlVc2VyU3Rha2luZ05vZGVzU2hhcmVzAQt1c2VyQWRkcmVzcwkAuQkCCQDMCAICBCVzJXMJAMwIAgIWdXNlclN0YWtpbmdOb2Rlc1NoYXJlcwkAzAgCBQt1c2VyQWRkcmVzcwUDbmlsBQNTRVABGmtleVVzZXJUb3RhbEFzc2V0V2l0aGRyYXduAQt1c2VyQWRkcmVzcwkAuQkCCQDMCAICBCVzJXMJAMwIAgITdG90YWxBc3NldFdpdGhkcmF3bgkAzAgCBQt1c2VyQWRkcmVzcwUDbmlsBQNTRVABF2tleVVzZXJUb3RhbEFzc2V0U3Rha2VkAQt1c2VyQWRkcmVzcwkAuQkCCQDMCAICBCVzJXMJAMwIAgIQdG90YWxBc3NldFN0YWtlZAkAzAgCBQt1c2VyQWRkcmVzcwUDbmlsBQNTRVABCmtleUhpc3RvcnkDBHR5cGULdXNlckFkZHJlc3MEdHhJZAkAuQkCCQDMCAICBiVzJXMlcwkAzAgCBQR0eXBlCQDMCAIFC3VzZXJBZGRyZXNzCQDMCAIJANgEAQUEdHhJZAUDbmlsBQNTRVABDWZvcm1hdEhpc3RvcnkEC3RvdGFsUHJvZml0BXByaWNlEHRvdGFsQXNzZXRBbW91bnQNdG90YWxMcEFtb3VudAkAuQkCCQDMCAICCCVkJWQlZCVkCQDMCAIJAKQDAQULdG90YWxQcm9maXQJAMwIAgkApgMBBQVwcmljZQkAzAgCCQCkAwEFEHRvdGFsQXNzZXRBbW91bnQJAMwIAgkApAMBBQ10b3RhbExwQW1vdW50BQNuaWwFA1NFUAANdG90YWxMcEFtb3VudAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBRBrZXlUb3RhbExwQW1vdW50AAAAEHRvdGFsQXNzZXRBbW91bnQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUTa2V5VG90YWxBc3NldEFtb3VudAAAABN0b3RhbExvY2tlZExwQW1vdW50CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFFmtleVRvdGFsTG9ja2VkTHBBbW91bnQAAAANYXNzZXRJZFN0cmluZwkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzBQprZXlBc3NldElkAgVXQVZFUwAMYXNzZXRJZEJ5dGVzAwkAAAIFDWFzc2V0SWRTdHJpbmcCBVdBVkVTBQR1bml0CQDZBAEFDWFzc2V0SWRTdHJpbmcAFmVtaXNzaW9uUGVyaW9kSW5CbG9ja3MJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUZa2V5RW1pc3Npb25QZXJpb2RJbkJsb2NrcwUNQkxPQ0tTX0lOX0RBWQAQZW1pc3Npb25QZXJCbG9jawkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBRNrZXlFbWlzc2lvblBlckJsb2NrAAAAEWVtaXNzaW9uUGVyUGVyaW9kCQBoAgUQZW1pc3Npb25QZXJCbG9jawUWZW1pc3Npb25QZXJpb2RJbkJsb2NrcwEZc3RyaW5nTGlzdFRvSW50TGlzdEhlbHBlcgIDYWNjBXZhbHVlCQDNCAIFA2FjYwkBDXBhcnNlSW50VmFsdWUBBQV2YWx1ZQEYY2FsY1RvdGFsUHJvZml0Rm9ySGVpZ2h0AQFoBApzdGFydEJsb2NrCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFDWtleVN0YXJ0QmxvY2sFBmhlaWdodAQLc3RhcnRQZXJpb2QJAGsDBQpzdGFydEJsb2NrAAEFFmVtaXNzaW9uUGVyaW9kSW5CbG9ja3MEDmVsYXBzZWRQZXJpb2RzCQBlAgkAaQIFAWgFFmVtaXNzaW9uUGVyaW9kSW5CbG9ja3MFC3N0YXJ0UGVyaW9kCQCWAwEJAMwIAgAACQDMCAIJAGgCBRFlbWlzc2lvblBlclBlcmlvZAUOZWxhcHNlZFBlcmlvZHMFA25pbAEPY2FsY1RvdGFsUHJvZml0AAkBGGNhbGNUb3RhbFByb2ZpdEZvckhlaWdodAEFBmhlaWdodAEUZ2V0TWF4QXNzZXRBdmFpbGFibGUABAckbWF0Y2gwBQxhc3NldElkQnl0ZXMDCQABAgUHJG1hdGNoMAIEVW5pdAQBdQUHJG1hdGNoMAgJAO8HAQUEdGhpcwlhdmFpbGFibGUDCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQBYgUHJG1hdGNoMAkA8AcCBQR0aGlzBQFiCQACAQILTWF0Y2ggZXJyb3IBK2dldFRvdGFsQXNzZXRBbW91bnRXaXRoUHJvZml0T3JNYXhBdmFpbGFibGUBCGF0SGVpZ2h0BBp0b3RhbEFzc2V0QW1vdW50V2l0aFByb2ZpdAkAZAIFEHRvdGFsQXNzZXRBbW91bnQJARhjYWxjVG90YWxQcm9maXRGb3JIZWlnaHQBBQhhdEhlaWdodAQLdG90YWxBbW91bnQJAJcDAQkAzAgCBRp0b3RhbEFzc2V0QW1vdW50V2l0aFByb2ZpdAkAzAgCCQEUZ2V0TWF4QXNzZXRBdmFpbGFibGUABQNuaWwDCQAAAgUNdG90YWxMcEFtb3VudAAAAAAFC3RvdGFsQW1vdW50ARBnZXRQcmljZUF0SGVpZ2h0AQFoAwkBAiE9AgUNdG90YWxMcEFtb3VudAAACQC8AgMJALYCAQkBK2dldFRvdGFsQXNzZXRBbW91bnRXaXRoUHJvZml0T3JNYXhBdmFpbGFibGUBBQFoBQ1zY2FsZTE4QmlnSW50CQC2AgEFDXRvdGFsTHBBbW91bnQFDXNjYWxlMThCaWdJbnQBD2dldEN1cnJlbnRQcmljZQAJARBnZXRQcmljZUF0SGVpZ2h0AQUGaGVpZ2h0ARJnZXRSZW1haW5pbmdCbG9ja3MAAwkAAAIFEGVtaXNzaW9uUGVyQmxvY2sAAAAACQBrAwkAZQIJARRnZXRNYXhBc3NldEF2YWlsYWJsZQAJAStnZXRUb3RhbEFzc2V0QW1vdW50V2l0aFByb2ZpdE9yTWF4QXZhaWxhYmxlAQUGaGVpZ2h0AAEFEGVtaXNzaW9uUGVyQmxvY2sBF2dldFVzZXJTdGFraW5nTm9kZXNEYXRhAQt1c2VyQWRkcmVzcwQIbm9kZXNSYXcJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwkBE2tleVVzZXJTdGFraW5nTm9kZXMBBQt1c2VyQWRkcmVzcwIABAlzaGFyZXNSYXcJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwkBGWtleVVzZXJTdGFraW5nTm9kZXNTaGFyZXMBBQt1c2VyQWRkcmVzcwIABAlub2Rlc0xpc3QDCQAAAgUIbm9kZXNSYXcCAAUDbmlsCQC1CQIFCG5vZGVzUmF3BQNTRVAEEHNoYXJlc1N0cmluZ0xpc3QDCQAAAgUJc2hhcmVzUmF3AgAFA25pbAkAtQkCBQlzaGFyZXNSYXcFA1NFUAQKc2hhcmVzTGlzdAoAAiRsBRBzaGFyZXNTdHJpbmdMaXN0CgACJHMJAJADAQUCJGwKAAUkYWNjMAUDbmlsCgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJARlzdHJpbmdMaXN0VG9JbnRMaXN0SGVscGVyAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAyMAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATABQJAJQKAgUJbm9kZXNMaXN0BQpzaGFyZXNMaXN0AQ9jYWxjQXNzZXRGcm9tTHACCGxwQW1vdW50CGF0SGVpZ2h0CQCWAwEJAMwIAgAACQDMCAIJAKADAQkAvAIDCQC2AgEFCGxwQW1vdW50CQEQZ2V0UHJpY2VBdEhlaWdodAEFCGF0SGVpZ2h0BQ1zY2FsZTE4QmlnSW50BQNuaWwBD2NhbGNMcEZyb21Bc3NldAILYXNzZXRBbW91bnQIYXRIZWlnaHQJAJYDAQkAzAgCAAAJAMwIAgkAoAMBCQC8AgMJALYCAQULYXNzZXRBbW91bnQFDXNjYWxlMThCaWdJbnQJARBnZXRQcmljZUF0SGVpZ2h0AQUIYXRIZWlnaHQFA25pbAEPZ2V0VXNlckxwQW1vdW50AQt1c2VyQWRkcmVzcwkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEPa2V5VXNlckxwQW1vdW50AQULdXNlckFkZHJlc3MAAAEVZ2V0VXNlckxvY2tlZExwQW1vdW50AQt1c2VyQWRkcmVzcwkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEVa2V5VXNlckxvY2tlZExwQW1vdW50AQULdXNlckFkZHJlc3MAAAEgZ2V0VXNlckF2YWlsYWJsZUFzc2V0c1RvV2l0aGRyYXcBC3VzZXJBZGRyZXNzBAx1c2VyTHBBbW91bnQJAQ9nZXRVc2VyTHBBbW91bnQBBQt1c2VyQWRkcmVzcwkBD2NhbGNBc3NldEZyb21McAIFDHVzZXJMcEFtb3VudAUGaGVpZ2h0ARtnZXRDbGVhclN0YWtpbmdOb2Rlc0FjdGlvbnMBC3VzZXJBZGRyZXNzCQDMCAIJAQtEZWxldGVFbnRyeQEJARNrZXlVc2VyU3Rha2luZ05vZGVzAQULdXNlckFkZHJlc3MJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBGWtleVVzZXJTdGFraW5nTm9kZXNTaGFyZXMBBQt1c2VyQWRkcmVzcwUDbmlsAQ9nZXRTdGFrZUFjdGlvbnMDAWkLdXNlckFkZHJlc3MLc3Rha2VIZWlnaHQEBmNoZWNrcwkAzAgCAwkAAAIJAJADAQgFAWkIcGF5bWVudHMAAQYJAQh0aHJvd0VycgECGHNob3VsZCBpbmNsdWRlIDEgcGF5bWVudAkAzAgCAwkAAAIICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAUMYXNzZXRJZEJ5dGVzBgkBCHRocm93RXJyAQkArAICAhVwYXltZW50IHNob3VsZCBiZSBpbiAFDWFzc2V0SWRTdHJpbmcJAMwIAgMJAGYCCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAAABgIncGF5bWVudCBhbW91bnQgc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiAwCQDMCAIDCQAAAgkAyAEBCQDZBAEFC3VzZXJBZGRyZXNzBRJBRERSRVNTX0JZVEVTX1NJWkUGCQEIdGhyb3dFcnIBAhl1c2VyIGFkZHJlc3MgaXMgbm90IHZhbGlkBQNuaWwDCQAAAgUGY2hlY2tzBQZjaGVja3MEDXBheW1lbnRBbW91bnQICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50BA9wYXltZW50THBBbW91bnQJAQ9jYWxjTHBGcm9tQXNzZXQCBQ1wYXltZW50QW1vdW50BQtzdGFrZUhlaWdodAQMdXNlckxwQW1vdW50CQEPZ2V0VXNlckxwQW1vdW50AQULdXNlckFkZHJlc3MEFXVzZXJUb3RhbFN0YWtlZEFtb3VudAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEXa2V5VXNlclRvdGFsQXNzZXRTdGFrZWQBBQt1c2VyQWRkcmVzcwAABBBuZXdUb3RhbExwQW1vdW50CQBkAgUNdG90YWxMcEFtb3VudAUPcGF5bWVudExwQW1vdW50BBNuZXdUb3RhbEFzc2V0QW1vdW50CQEPY2FsY0Fzc2V0RnJvbUxwAgUQbmV3VG90YWxMcEFtb3VudAULc3Rha2VIZWlnaHQED25ld1VzZXJMcEFtb3VudAkAZAIFDHVzZXJMcEFtb3VudAUPcGF5bWVudExwQW1vdW50BBhuZXdVc2VyVG90YWxTdGFrZWRBbW91bnQJAGQCBRV1c2VyVG90YWxTdGFrZWRBbW91bnQFDXBheW1lbnRBbW91bnQJAMwIAgkBC1N0cmluZ0VudHJ5AgkBCmtleUhpc3RvcnkDAgVzdGFrZQULdXNlckFkZHJlc3MIBQFpDXRyYW5zYWN0aW9uSWQJAQ1mb3JtYXRIaXN0b3J5BAkBD2NhbGNUb3RhbFByb2ZpdAAJAQ9nZXRDdXJyZW50UHJpY2UABQ10b3RhbExwQW1vdW50BRB0b3RhbEFzc2V0QW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCBRBrZXlUb3RhbExwQW1vdW50BRBuZXdUb3RhbExwQW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCBRNrZXlUb3RhbEFzc2V0QW1vdW50BRNuZXdUb3RhbEFzc2V0QW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEPa2V5VXNlckxwQW1vdW50AQULdXNlckFkZHJlc3MFD25ld1VzZXJMcEFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBF2tleVVzZXJUb3RhbEFzc2V0U3Rha2VkAQULdXNlckFkZHJlc3MFGG5ld1VzZXJUb3RhbFN0YWtlZEFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgUNa2V5U3RhcnRCbG9jawUGaGVpZ2h0BQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4EAWkBDXN0YWtlRm9yQWRtaW4CC3VzZXJBZGRyZXNzC3N0YWtlSGVpZ2h0BAVjaGVjawkAzAgCAwkAAAIIBQFpBmNhbGxlcgUMYWRtaW5BZGRyZXNzBgkBCHRocm93RXJyAQIRcGVybWlzc2lvbiBkZW5pZWQFA25pbAMJAAACBQVjaGVjawUFY2hlY2sJAQ9nZXRTdGFrZUFjdGlvbnMDBQFpBQt1c2VyQWRkcmVzcwULc3Rha2VIZWlnaHQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEHYWlyZHJvcAMLYWRkcmVzc0xpc3QKYW1vdW50TGlzdA1haXJkcm9wSGVpZ2h0CgEDc3VtAgVhY2N1bQRuZXh0AwkAZgIAAAUEbmV4dAkBCHRocm93RXJyAQIjbmVnYXRpdmUgYW1vdW50IHZhbHVlIGluIGFtb3VudExpc3QJAGQCBQVhY2N1bQUEbmV4dAQNYW1vdW50TGlzdFN1bQoAAiRsBQphbW91bnRMaXN0CgACJHMJAJADAQUCJGwKAAUkYWNjMAAACgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQNzdW0CBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDkwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPABAAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIAIwAkACUAJgAnACgAKQAqACsALAAtAC4ALwAwADEAMgAzADQANQA2ADcAOAA5ADoAOwA8AD0APgA/AEAAQQBCAEMARABFAEYARwBIAEkASgBLAEwATQBOAE8AUABRAFIAUwBUAFUAVgBXAFgAWQBaBAVjaGVjawkAzAgCAwkAAAIIBQFpBmNhbGxlcgUMYWRtaW5BZGRyZXNzBgkBCHRocm93RXJyAQIRcGVybWlzc2lvbiBkZW5pZWQJAMwIAgMJAAACCQCQAwEIBQFpCHBheW1lbnRzAAEGCQEIdGhyb3dFcnIBAhhzaG91bGQgaW5jbHVkZSAxIHBheW1lbnQJAMwIAgMJAAACCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQFDGFzc2V0SWRCeXRlcwYJAQh0aHJvd0VycgEJAKwCAgIVcGF5bWVudCBzaG91bGQgYmUgaW4gBQ1hc3NldElkU3RyaW5nCQDMCAIDCQBmAggJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQAAAYCJ3BheW1lbnQgYW1vdW50IHNob3VsZCBiZSBncmVhdGVyIHRoYW4gMAkAzAgCAwkAAAIJAJADAQULYWRkcmVzc0xpc3QJAJADAQUKYW1vdW50TGlzdAYJAQh0aHJvd0VycgECLWFkZHJlc3NMaXN0IHNob3VsZCBiZSBzYW1lIHNpemUgYXMgYW1vdW50TGlzdAkAzAgCAwkAZwIICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50BQ1hbW91bnRMaXN0U3VtBgkBCHRocm93RXJyAQItcGF5bWVudCBhbW91bnQgaXMgbGVzcyB0aGFuIHN1bSBvZiBhbW91bnRMaXN0BQNuaWwDCQAAAgUFY2hlY2sFBWNoZWNrCgEWZ2V0QWlyZHJvcFN0YXRlQ2hhbmdlcwIFYWNjdW0LYXNzZXRBbW91bnQECyR0MDgzNTI4NDAzBQVhY2N1bQQGcmVzdWx0CAULJHQwODM1Mjg0MDMCXzEEBWluZGV4CAULJHQwODM1Mjg0MDMCXzIEB3RvdGFsTHAIBQskdDA4MzUyODQwMwJfMwQNcHJvY2Vzc2VkTGlzdAgFCyR0MDgzNTI4NDAzAl80BA1hZGRyZXNzU3RyaW5nCQCRAwIFC2FkZHJlc3NMaXN0BQVpbmRleAQHYWRkcmVzcwQHJG1hdGNoMAkApggBBQ1hZGRyZXNzU3RyaW5nAwkAAQIFByRtYXRjaDACB0FkZHJlc3MEA2FkcgUHJG1hdGNoMAUDYWRyCQEIdGhyb3dFcnIBAh5pbnZhbGlkIGFkZHJlc3MgaW4gYWRkcmVzc0xpc3QEAmNoCQDMCAIDCQEBIQEJAQ9jb250YWluc0VsZW1lbnQCBQ1wcm9jZXNzZWRMaXN0BQdhZGRyZXNzBgkBCHRocm93RXJyAQIgZHVwbGljYXRlIGFkZHJlc3MgaXMgYWRkcmVzc0xpc3QFA25pbAMJAAACBQJjaAUCY2gEDWFkZGVkTHBBbW91bnQJAQ9jYWxjTHBGcm9tQXNzZXQCBQthc3NldEFtb3VudAUNYWlyZHJvcEhlaWdodAQPdXNlckxvY2tlZExwS2V5CQEVa2V5VXNlckxvY2tlZExwQW1vdW50AQUNYWRkcmVzc1N0cmluZwQLb2xkTHBBbW91bnQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUPdXNlckxvY2tlZExwS2V5AAAJAJYKBAkAzQgCBQZyZXN1bHQJAQxJbnRlZ2VyRW50cnkCBQ91c2VyTG9ja2VkTHBLZXkJAGQCBQtvbGRMcEFtb3VudAUNYWRkZWRMcEFtb3VudAkAZAIFBWluZGV4AAEJAGQCBQd0b3RhbExwBQ1hZGRlZExwQW1vdW50CQDNCAIFDXByb2Nlc3NlZExpc3QFB2FkZHJlc3MJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4ECyR0MDkxODI5Mjk5CgACJGwFCmFtb3VudExpc3QKAAIkcwkAkAMBBQIkbAoABSRhY2MwCQCWCgQFA25pbAAAAAAFA25pbAoBBSRmMV8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEWZ2V0QWlyZHJvcFN0YXRlQ2hhbmdlcwIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMV8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgOTAJAQUkZjFfMgIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAjACQAJQAmACcAKAApACoAKwAsAC0ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQA+AD8AQABBAEIAQwBEAEUARgBHAEgASQBKAEsATABNAE4ATwBQAFEAUgBTAFQAVQBWAFcAWABZAFoEDmFpcmRyb3BFbnRyaWVzCAULJHQwOTE4MjkyOTkCXzEEAl9hCAULJHQwOTE4MjkyOTkCXzIEGGFkZGVkVG90YWxMb2NrZWRMcEFtb3VudAgFCyR0MDkxODI5Mjk5Al8zBAJfYggFCyR0MDkxODI5Mjk5Al80BA1uZXdUb3RhbEFzc2V0CQEPY2FsY0Fzc2V0RnJvbUxwAgkAZAIFDXRvdGFsTHBBbW91bnQFGGFkZGVkVG90YWxMb2NrZWRMcEFtb3VudAUNYWlyZHJvcEhlaWdodAkAzggCCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRZrZXlUb3RhbExvY2tlZExwQW1vdW50CQBkAgUTdG90YWxMb2NrZWRMcEFtb3VudAUYYWRkZWRUb3RhbExvY2tlZExwQW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCBRBrZXlUb3RhbExwQW1vdW50CQBkAgUNdG90YWxMcEFtb3VudAUYYWRkZWRUb3RhbExvY2tlZExwQW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCBRNrZXlUb3RhbEFzc2V0QW1vdW50BQ1uZXdUb3RhbEFzc2V0CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ1rZXlTdGFydEJsb2NrBQZoZWlnaHQFA25pbAUOYWlyZHJvcEVudHJpZXMJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEVZ2V0VXNlckFzc2V0c1JFQURPTkxZAQt1c2VyQWRkcmVzcwQMdXNlckxwQW1vdW50CQEPZ2V0VXNlckxwQW1vdW50AQULdXNlckFkZHJlc3MEEnVzZXJMb2NrZWRMcEFtb3VudAkBFWdldFVzZXJMb2NrZWRMcEFtb3VudAEFC3VzZXJBZGRyZXNzBBV1c2VyTG9ja2VkQXNzZXRBbW91bnQJAQ9jYWxjQXNzZXRGcm9tTHACBRJ1c2VyTG9ja2VkTHBBbW91bnQFBmhlaWdodAQcdXNlckF2YWlsYWJsZUFzc2V0VG9XaXRoZHJhdwkBIGdldFVzZXJBdmFpbGFibGVBc3NldHNUb1dpdGhkcmF3AQULdXNlckFkZHJlc3MEFXVzZXJUb3RhbFN0YWtlZEFtb3VudAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEXa2V5VXNlclRvdGFsQXNzZXRTdGFrZWQBBQt1c2VyQWRkcmVzcwAABBd1c2VyVG90YWxBc3NldFdpdGhkcmF3bgkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEaa2V5VXNlclRvdGFsQXNzZXRXaXRoZHJhd24BBQt1c2VyQWRkcmVzcwAABA0kdDAxMDY3MjEwNzY0CQEXZ2V0VXNlclN0YWtpbmdOb2Rlc0RhdGEBBQt1c2VyQWRkcmVzcwQUdXNlclN0YWtpbmdOb2Rlc0xpc3QIBQ0kdDAxMDY3MjEwNzY0Al8xBBl1c2VyU3Rha2luZ05vZGVTaGFyZXNMaXN0CAUNJHQwMTA2NzIxMDc2NAJfMgkAlAoCBQNuaWwJAJwKCgUMdXNlckxwQW1vdW50BRx1c2VyQXZhaWxhYmxlQXNzZXRUb1dpdGhkcmF3CQEPZ2V0Q3VycmVudFByaWNlAAUVdXNlclRvdGFsU3Rha2VkQW1vdW50BRd1c2VyVG90YWxBc3NldFdpdGhkcmF3bgUSdXNlckxvY2tlZExwQW1vdW50BRV1c2VyTG9ja2VkQXNzZXRBbW91bnQFFHVzZXJTdGFraW5nTm9kZXNMaXN0BRl1c2VyU3Rha2luZ05vZGVTaGFyZXNMaXN0CQESZ2V0UmVtYWluaW5nQmxvY2tzAAFpARZnZXRUb3RhbEFzc2V0c1JFQURPTkxZAAkAlAoCBQNuaWwJAJgKBgUNdG90YWxMcEFtb3VudAkBK2dldFRvdGFsQXNzZXRBbW91bnRXaXRoUHJvZml0T3JNYXhBdmFpbGFibGUBBQZoZWlnaHQJAQ9nZXRDdXJyZW50UHJpY2UABRN0b3RhbExvY2tlZExwQW1vdW50CQEPY2FsY0Fzc2V0RnJvbUxwAgUTdG90YWxMb2NrZWRMcEFtb3VudAUGaGVpZ2h0CQESZ2V0UmVtYWluaW5nQmxvY2tzAABtidG5", "chainId": 84, "height": 2881708, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: D5dPMa5Sz2QcHQrn5piwiHR2YZkjh1MZbUJt5MG5gath Next: 86f1wMkBdKnMiHu4udATPPUkn5M37Bhy7qGtJPuoxPDc Diff:
OldNewDifferences
1515
1616 let g = 1440
1717
18-func h (i) = throw(((a + ": ") + i))
18+let h = addressFromStringValue("3Mps7CZqB9nUbEirYyCMMoA7VbqrxLvJFSB")
19+
20+func i (j) = throw(((a + ": ") + j))
1921
2022
21-let j = makeString(["%s", "assetId"], b)
23+let k = makeString(["%s", "assetId"], b)
2224
23-let k = makeString(["%s", "emissionPerBlock"], b)
25+let l = makeString(["%s", "emissionPerBlock"], b)
2426
25-let l = makeString(["%s", "emissionPeriodInBlocks"], b)
27+let m = makeString(["%s", "emissionPeriodInBlocks"], b)
2628
27-let m = makeString(["%s", "startBlock"], b)
29+let n = makeString(["%s", "startBlock"], b)
2830
29-let n = makeString(["%s", "totalLpAmount"], b)
31+let o = makeString(["%s", "totalLpAmount"], b)
3032
31-let o = makeString(["%s", "totalAssetAmount"], b)
33+let p = makeString(["%s", "totalAssetAmount"], b)
3234
33-let p = makeString(["%s", "totalLockedLpAmount"], b)
35+let q = makeString(["%s", "totalLockedLpAmount"], b)
3436
35-func q (r) = makeString(["%s%s", "userLpAmount", r], b)
37+func r (s) = makeString(["%s%s", "userLpAmount", s], b)
3638
3739
38-func s (r) = makeString(["%s%s", "userLockedLpAmount", r], b)
40+func t (s) = makeString(["%s%s", "userLockedLpAmount", s], b)
3941
4042
41-func t (r) = makeString(["%s%s", "userStakingNodes", r], b)
43+func u (s) = makeString(["%s%s", "userStakingNodes", s], b)
4244
4345
44-func u (r) = makeString(["%s%s", "userStakingNodesShares", r], b)
46+func v (s) = makeString(["%s%s", "userStakingNodesShares", s], b)
4547
4648
47-func v (r) = makeString(["%s%s", "totalAssetWithdrawn", r], b)
49+func w (s) = makeString(["%s%s", "totalAssetWithdrawn", s], b)
4850
4951
50-func w (r) = makeString(["%s%s", "totalAssetStaked", r], b)
52+func x (s) = makeString(["%s%s", "totalAssetStaked", s], b)
5153
5254
53-func x (y,r,z) = makeString(["%s%s%s", y, r, toBase58String(z)], b)
55+func y (z,s,A) = makeString(["%s%s%s", z, s, toBase58String(A)], b)
5456
5557
56-func A (B,C,D,E) = makeString(["%d%d%d%d", toString(B), toString(C), toString(D), toString(E)], b)
58+func B (C,D,E,F) = makeString(["%d%d%d%d", toString(C), toString(D), toString(E), toString(F)], b)
5759
5860
59-let E = valueOrElse(getInteger(this, n), 0)
61+let F = valueOrElse(getInteger(this, o), 0)
6062
61-let D = valueOrElse(getInteger(this, o), 0)
63+let E = valueOrElse(getInteger(this, p), 0)
6264
63-let F = valueOrElse(getInteger(this, p), 0)
65+let G = valueOrElse(getInteger(this, q), 0)
6466
65-let G = valueOrElse(getString(this, j), "WAVES")
67+let H = valueOrElse(getString(this, k), "WAVES")
6668
67-let H = if ((G == "WAVES"))
69+let I = if ((H == "WAVES"))
6870 then unit
69- else fromBase58String(G)
71+ else fromBase58String(H)
7072
71-let I = valueOrElse(getInteger(this, l), g)
73+let J = valueOrElse(getInteger(this, m), g)
7274
73-let J = valueOrElse(getInteger(this, k), 0)
75+let K = valueOrElse(getInteger(this, l), 0)
7476
75-let K = (J * I)
77+let L = (K * J)
7678
77-func L (M,N) = (M :+ parseIntValue(N))
79+func M (N,O) = (N :+ parseIntValue(O))
7880
7981
80-func O (P) = {
81- let Q = valueOrElse(getInteger(this, m), height)
82- let R = fraction(Q, 1, I)
83- let S = ((P / I) - R)
84- max([0, (K * S)])
82+func P (Q) = {
83+ let R = valueOrElse(getInteger(this, n), height)
84+ let S = fraction(R, 1, J)
85+ let T = ((Q / J) - S)
86+ max([0, (L * T)])
8587 }
8688
8789
88-func T () = O(height)
90+func U () = P(height)
8991
9092
91-func U () = {
92- let V = H
93- if ($isInstanceOf(V, "Unit"))
93+func V () = {
94+ let W = I
95+ if ($isInstanceOf(W, "Unit"))
9496 then {
95- let W = V
97+ let X = W
9698 wavesBalance(this).available
9799 }
98- else if ($isInstanceOf(V, "ByteVector"))
100+ else if ($isInstanceOf(W, "ByteVector"))
99101 then {
100- let X = V
101- assetBalance(this, X)
102+ let Y = W
103+ assetBalance(this, Y)
102104 }
103105 else throw("Match error")
104106 }
105107
106108
107-func Y (Z) = {
108- let aa = (D + O(Z))
109- let ab = min([aa, U()])
110- if ((E == 0))
109+func Z (aa) = {
110+ let ab = (E + P(aa))
111+ let ac = min([ab, V()])
112+ if ((F == 0))
111113 then 0
112- else ab
114+ else ac
113115 }
114116
115117
116-func ac (P) = if ((E != 0))
117- then fraction(toBigInt(Y(P)), e, toBigInt(E))
118+func ad (Q) = if ((F != 0))
119+ then fraction(toBigInt(Z(Q)), e, toBigInt(F))
118120 else e
119121
120122
121-func ad () = ac(height)
123+func ae () = ad(height)
122124
123125
124-func ae () = if ((J == 0))
126+func af () = if ((K == 0))
125127 then 0
126- else fraction((U() - Y(height)), 1, J)
128+ else fraction((V() - Z(height)), 1, K)
127129
128130
129-func af (r) = {
130- let ag = valueOrElse(getString(this, t(r)), "")
131- let ah = valueOrElse(getString(this, u(r)), "")
132- let ai = if ((ag == ""))
133- then nil
134- else split(ag, b)
131+func ag (s) = {
132+ let ah = valueOrElse(getString(this, u(s)), "")
133+ let ai = valueOrElse(getString(this, v(s)), "")
135134 let aj = if ((ah == ""))
136135 then nil
137136 else split(ah, b)
138- let ak = {
139- let al = aj
140- let am = size(al)
141- let an = nil
142- func ao (ap,aq) = if ((aq >= am))
143- then ap
144- else L(ap, al[aq])
137+ let ak = if ((ai == ""))
138+ then nil
139+ else split(ai, b)
140+ let al = {
141+ let am = ak
142+ let an = size(am)
143+ let ao = nil
144+ func ap (aq,ar) = if ((ar >= an))
145+ then aq
146+ else M(aq, am[ar])
145147
146- func ar (ap,aq) = if ((aq >= am))
147- then ap
148+ func as (aq,ar) = if ((ar >= an))
149+ then aq
148150 else throw("List size exceeds 20")
149151
150- ar(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(an, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
152+ as(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ao, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
151153 }
152- $Tuple2(ai, ak)
154+ $Tuple2(aj, al)
153155 }
154156
155157
156-func as (at,Z) = max([0, toInt(fraction(toBigInt(at), ac(Z), e))])
158+func at (au,aa) = max([0, toInt(fraction(toBigInt(au), ad(aa), e))])
157159
158160
159-func au (av,Z) = max([0, toInt(fraction(toBigInt(av), e, ac(Z)))])
161+func av (aw,aa) = max([0, toInt(fraction(toBigInt(aw), e, ad(aa)))])
160162
161163
162-func aw (r) = valueOrElse(getInteger(this, q(r)), 0)
164+func ax (s) = valueOrElse(getInteger(this, r(s)), 0)
163165
164166
165-func ax (r) = valueOrElse(getInteger(this, s(r)), 0)
167+func ay (s) = valueOrElse(getInteger(this, t(s)), 0)
166168
167169
168-func ay (r) = {
169- let az = aw(r)
170- as(az, height)
170+func az (s) = {
171+ let aA = ax(s)
172+ at(aA, height)
171173 }
172174
173175
174-func aA (r) = [DeleteEntry(t(r)), DeleteEntry(u(r))]
176+func aB (s) = [DeleteEntry(u(s)), DeleteEntry(v(s))]
175177
176178
177-func aB (aC,r,aD) = {
178- let aE = [if ((size(aC.payments) == 1))
179+func aC (aD,s,aE) = {
180+ let aF = [if ((size(aD.payments) == 1))
179181 then true
180- else h("should include 1 payment"), if ((aC.payments[0].assetId == H))
182+ else i("should include 1 payment"), if ((aD.payments[0].assetId == I))
181183 then true
182- else h(("payment should be in " + G)), if ((aC.payments[0].amount > 0))
184+ else i(("payment should be in " + H)), if ((aD.payments[0].amount > 0))
183185 then true
184- else "payment amount should be greater than 0", if ((size(fromBase58String(r)) == f))
186+ else "payment amount should be greater than 0", if ((size(fromBase58String(s)) == f))
185187 then true
186- else h("user address is not valid")]
187- if ((aE == aE))
188+ else i("user address is not valid")]
189+ if ((aF == aF))
188190 then {
189- let aF = aC.payments[0].amount
190- let aG = au(aF, aD)
191- let az = aw(r)
192- let aH = valueOrElse(getInteger(this, w(r)), 0)
193- let aI = (E + aG)
194- let aJ = as(aI, aD)
195- let aK = (az + aG)
196- let aL = (aH + aF)
197-[StringEntry(x("stake", r, aC.transactionId), A(T(), ad(), E, D)), IntegerEntry(n, aI), IntegerEntry(o, aJ), IntegerEntry(q(r), aK), IntegerEntry(w(r), aL), IntegerEntry(m, height)]
191+ let aG = aD.payments[0].amount
192+ let aH = av(aG, aE)
193+ let aA = ax(s)
194+ let aI = valueOrElse(getInteger(this, x(s)), 0)
195+ let aJ = (F + aH)
196+ let aK = at(aJ, aE)
197+ let aL = (aA + aH)
198+ let aM = (aI + aG)
199+[StringEntry(y("stake", s, aD.transactionId), B(U(), ae(), F, E)), IntegerEntry(o, aJ), IntegerEntry(p, aK), IntegerEntry(r(s), aL), IntegerEntry(x(s), aM), IntegerEntry(n, height)]
198200 }
199201 else throw("Strict value is not equal to itself.")
200202 }
201203
202204
203-@Callable(aC)
204-func stakeForAdmin (r,aD) = {
205- let aM = [if ((aC.caller == this))
205+@Callable(aD)
206+func stakeForAdmin (s,aE) = {
207+ let aN = [if ((aD.caller == h))
206208 then true
207- else h("permission denied")]
208- if ((aM == aM))
209- then aB(aC, r, aD)
209+ else i("permission denied")]
210+ if ((aN == aN))
211+ then aC(aD, s, aE)
210212 else throw("Strict value is not equal to itself.")
211213 }
212214
213215
214216
215-@Callable(aC)
216-func airdrop (aN,aO,aP) = {
217- func aQ (aR,aS) = if ((0 > aS))
218- then h("negative amount value in amountList")
219- else (aR + aS)
217+@Callable(aD)
218+func airdrop (aO,aP,aQ) = {
219+ func aR (aS,aT) = if ((0 > aT))
220+ then i("negative amount value in amountList")
221+ else (aS + aT)
220222
221- let aT = {
222- let al = aO
223- let am = size(al)
224- let an = 0
225- func ao (ap,aq) = if ((aq >= am))
226- then ap
227- else aQ(ap, al[aq])
223+ let aU = {
224+ let am = aP
225+ let an = size(am)
226+ let ao = 0
227+ func ap (aq,ar) = if ((ar >= an))
228+ then aq
229+ else aR(aq, am[ar])
228230
229- func ar (ap,aq) = if ((aq >= am))
230- then ap
231+ func as (aq,ar) = if ((ar >= an))
232+ then aq
231233 else throw("List size exceeds 90")
232234
233- ar(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(an, 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)
235+ as(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ao, 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)
234236 }
235- let aM = [if ((aC.caller == this))
237+ let aN = [if ((aD.caller == h))
236238 then true
237- else h("permission denied"), if ((size(aC.payments) == 1))
239+ else i("permission denied"), if ((size(aD.payments) == 1))
238240 then true
239- else h("should include 1 payment"), if ((aC.payments[0].assetId == H))
241+ else i("should include 1 payment"), if ((aD.payments[0].assetId == I))
240242 then true
241- else h(("payment should be in " + G)), if ((aC.payments[0].amount > 0))
243+ else i(("payment should be in " + H)), if ((aD.payments[0].amount > 0))
242244 then true
243- else "payment amount should be greater than 0", if ((size(aN) == size(aO)))
245+ else "payment amount should be greater than 0", if ((size(aO) == size(aP)))
244246 then true
245- else h("addressList should be same size as amountList"), if ((aC.payments[0].amount >= aT))
247+ else i("addressList should be same size as amountList"), if ((aD.payments[0].amount >= aU))
246248 then true
247- else h("payment amount is less than sum of amountList")]
248- if ((aM == aM))
249+ else i("payment amount is less than sum of amountList")]
250+ if ((aN == aN))
249251 then {
250- func aU (aR,av) = {
251- let aV = aR
252- let aW = aV._1
253- let aX = aV._2
254- let aY = aV._3
255- let aZ = aV._4
256- let ba = aN[aX]
257- let bb = {
258- let V = addressFromString(ba)
259- if ($isInstanceOf(V, "Address"))
252+ func aV (aS,aw) = {
253+ let aW = aS
254+ let aX = aW._1
255+ let aY = aW._2
256+ let aZ = aW._3
257+ let ba = aW._4
258+ let bb = aO[aY]
259+ let bc = {
260+ let W = addressFromString(bb)
261+ if ($isInstanceOf(W, "Address"))
260262 then {
261- let bc = V
262- bc
263+ let bd = W
264+ bd
263265 }
264- else h("invalid address in addressList")
266+ else i("invalid address in addressList")
265267 }
266- let bd = [if (!(containsElement(aZ, bb)))
268+ let be = [if (!(containsElement(ba, bc)))
267269 then true
268- else h("duplicate address is addressList")]
269- if ((bd == bd))
270+ else i("duplicate address is addressList")]
271+ if ((be == be))
270272 then {
271- let be = au(av, aP)
272- let bf = s(ba)
273- let bg = valueOrElse(getInteger(this, bf), 0)
274- $Tuple4((aW :+ IntegerEntry(bf, (bg + be))), (aX + 1), (aY + be), (aZ :+ bb))
273+ let bf = av(aw, aQ)
274+ let bg = t(bb)
275+ let bh = valueOrElse(getInteger(this, bg), 0)
276+ $Tuple4((aX :+ IntegerEntry(bg, (bh + bf))), (aY + 1), (aZ + bf), (ba :+ bc))
275277 }
276278 else throw("Strict value is not equal to itself.")
277279 }
278280
279- let bh = {
280- let al = aO
281- let am = size(al)
282- let an = $Tuple4(nil, 0, 0, nil)
283- func bi (ap,aq) = if ((aq >= am))
284- then ap
285- else aU(ap, al[aq])
281+ let bi = {
282+ let am = aP
283+ let an = size(am)
284+ let ao = $Tuple4(nil, 0, 0, nil)
285+ func bj (aq,ar) = if ((ar >= an))
286+ then aq
287+ else aV(aq, am[ar])
286288
287- func bj (ap,aq) = if ((aq >= am))
288- then ap
289+ func bk (aq,ar) = if ((ar >= an))
290+ then aq
289291 else throw("List size exceeds 90")
290292
291- bj(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(an, 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)
293+ bk(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(ao, 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)
292294 }
293- let bk = bh._1
294- let bl = bh._2
295- let bm = bh._3
296- let bn = bh._4
297- let bo = as((E + bm), aP)
298- ([IntegerEntry(p, (F + bm)), IntegerEntry(n, (E + bm)), IntegerEntry(o, bo), IntegerEntry(m, height)] ++ bk)
295+ let bl = bi._1
296+ let bm = bi._2
297+ let bn = bi._3
298+ let bo = bi._4
299+ let bp = at((F + bn), aQ)
300+ ([IntegerEntry(q, (G + bn)), IntegerEntry(o, (F + bn)), IntegerEntry(p, bp), IntegerEntry(n, height)] ++ bl)
299301 }
300302 else throw("Strict value is not equal to itself.")
301303 }
302304
303305
304306
305-@Callable(aC)
306-func getUserAssetsREADONLY (r) = {
307- let az = aw(r)
308- let bp = ax(r)
309- let bq = as(bp, height)
310- let br = ay(r)
311- let aH = valueOrElse(getInteger(this, w(r)), 0)
312- let bs = valueOrElse(getInteger(this, v(r)), 0)
313- let bt = af(r)
314- let bu = bt._1
315- let bv = bt._2
316- $Tuple2(nil, $Tuple10(az, br, ad(), aH, bs, bp, bq, bu, bv, ae()))
307+@Callable(aD)
308+func getUserAssetsREADONLY (s) = {
309+ let aA = ax(s)
310+ let bq = ay(s)
311+ let br = at(bq, height)
312+ let bs = az(s)
313+ let aI = valueOrElse(getInteger(this, x(s)), 0)
314+ let bt = valueOrElse(getInteger(this, w(s)), 0)
315+ let bu = ag(s)
316+ let bv = bu._1
317+ let bw = bu._2
318+ $Tuple2(nil, $Tuple10(aA, bs, ae(), aI, bt, bq, br, bv, bw, af()))
317319 }
318320
319321
320322
321-@Callable(aC)
322-func getTotalAssetsREADONLY () = $Tuple2(nil, $Tuple6(E, Y(height), ad(), F, as(F, height), ae()))
323+@Callable(aD)
324+func getTotalAssetsREADONLY () = $Tuple2(nil, $Tuple6(F, Z(height), ae(), G, at(G, height), af()))
323325
324326
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
18-func h (i) = throw(((a + ": ") + i))
18+let h = addressFromStringValue("3Mps7CZqB9nUbEirYyCMMoA7VbqrxLvJFSB")
19+
20+func i (j) = throw(((a + ": ") + j))
1921
2022
21-let j = makeString(["%s", "assetId"], b)
23+let k = makeString(["%s", "assetId"], b)
2224
23-let k = makeString(["%s", "emissionPerBlock"], b)
25+let l = makeString(["%s", "emissionPerBlock"], b)
2426
25-let l = makeString(["%s", "emissionPeriodInBlocks"], b)
27+let m = makeString(["%s", "emissionPeriodInBlocks"], b)
2628
27-let m = makeString(["%s", "startBlock"], b)
29+let n = makeString(["%s", "startBlock"], b)
2830
29-let n = makeString(["%s", "totalLpAmount"], b)
31+let o = makeString(["%s", "totalLpAmount"], b)
3032
31-let o = makeString(["%s", "totalAssetAmount"], b)
33+let p = makeString(["%s", "totalAssetAmount"], b)
3234
33-let p = makeString(["%s", "totalLockedLpAmount"], b)
35+let q = makeString(["%s", "totalLockedLpAmount"], b)
3436
35-func q (r) = makeString(["%s%s", "userLpAmount", r], b)
37+func r (s) = makeString(["%s%s", "userLpAmount", s], b)
3638
3739
38-func s (r) = makeString(["%s%s", "userLockedLpAmount", r], b)
40+func t (s) = makeString(["%s%s", "userLockedLpAmount", s], b)
3941
4042
41-func t (r) = makeString(["%s%s", "userStakingNodes", r], b)
43+func u (s) = makeString(["%s%s", "userStakingNodes", s], b)
4244
4345
44-func u (r) = makeString(["%s%s", "userStakingNodesShares", r], b)
46+func v (s) = makeString(["%s%s", "userStakingNodesShares", s], b)
4547
4648
47-func v (r) = makeString(["%s%s", "totalAssetWithdrawn", r], b)
49+func w (s) = makeString(["%s%s", "totalAssetWithdrawn", s], b)
4850
4951
50-func w (r) = makeString(["%s%s", "totalAssetStaked", r], b)
52+func x (s) = makeString(["%s%s", "totalAssetStaked", s], b)
5153
5254
53-func x (y,r,z) = makeString(["%s%s%s", y, r, toBase58String(z)], b)
55+func y (z,s,A) = makeString(["%s%s%s", z, s, toBase58String(A)], b)
5456
5557
56-func A (B,C,D,E) = makeString(["%d%d%d%d", toString(B), toString(C), toString(D), toString(E)], b)
58+func B (C,D,E,F) = makeString(["%d%d%d%d", toString(C), toString(D), toString(E), toString(F)], b)
5759
5860
59-let E = valueOrElse(getInteger(this, n), 0)
61+let F = valueOrElse(getInteger(this, o), 0)
6062
61-let D = valueOrElse(getInteger(this, o), 0)
63+let E = valueOrElse(getInteger(this, p), 0)
6264
63-let F = valueOrElse(getInteger(this, p), 0)
65+let G = valueOrElse(getInteger(this, q), 0)
6466
65-let G = valueOrElse(getString(this, j), "WAVES")
67+let H = valueOrElse(getString(this, k), "WAVES")
6668
67-let H = if ((G == "WAVES"))
69+let I = if ((H == "WAVES"))
6870 then unit
69- else fromBase58String(G)
71+ else fromBase58String(H)
7072
71-let I = valueOrElse(getInteger(this, l), g)
73+let J = valueOrElse(getInteger(this, m), g)
7274
73-let J = valueOrElse(getInteger(this, k), 0)
75+let K = valueOrElse(getInteger(this, l), 0)
7476
75-let K = (J * I)
77+let L = (K * J)
7678
77-func L (M,N) = (M :+ parseIntValue(N))
79+func M (N,O) = (N :+ parseIntValue(O))
7880
7981
80-func O (P) = {
81- let Q = valueOrElse(getInteger(this, m), height)
82- let R = fraction(Q, 1, I)
83- let S = ((P / I) - R)
84- max([0, (K * S)])
82+func P (Q) = {
83+ let R = valueOrElse(getInteger(this, n), height)
84+ let S = fraction(R, 1, J)
85+ let T = ((Q / J) - S)
86+ max([0, (L * T)])
8587 }
8688
8789
88-func T () = O(height)
90+func U () = P(height)
8991
9092
91-func U () = {
92- let V = H
93- if ($isInstanceOf(V, "Unit"))
93+func V () = {
94+ let W = I
95+ if ($isInstanceOf(W, "Unit"))
9496 then {
95- let W = V
97+ let X = W
9698 wavesBalance(this).available
9799 }
98- else if ($isInstanceOf(V, "ByteVector"))
100+ else if ($isInstanceOf(W, "ByteVector"))
99101 then {
100- let X = V
101- assetBalance(this, X)
102+ let Y = W
103+ assetBalance(this, Y)
102104 }
103105 else throw("Match error")
104106 }
105107
106108
107-func Y (Z) = {
108- let aa = (D + O(Z))
109- let ab = min([aa, U()])
110- if ((E == 0))
109+func Z (aa) = {
110+ let ab = (E + P(aa))
111+ let ac = min([ab, V()])
112+ if ((F == 0))
111113 then 0
112- else ab
114+ else ac
113115 }
114116
115117
116-func ac (P) = if ((E != 0))
117- then fraction(toBigInt(Y(P)), e, toBigInt(E))
118+func ad (Q) = if ((F != 0))
119+ then fraction(toBigInt(Z(Q)), e, toBigInt(F))
118120 else e
119121
120122
121-func ad () = ac(height)
123+func ae () = ad(height)
122124
123125
124-func ae () = if ((J == 0))
126+func af () = if ((K == 0))
125127 then 0
126- else fraction((U() - Y(height)), 1, J)
128+ else fraction((V() - Z(height)), 1, K)
127129
128130
129-func af (r) = {
130- let ag = valueOrElse(getString(this, t(r)), "")
131- let ah = valueOrElse(getString(this, u(r)), "")
132- let ai = if ((ag == ""))
133- then nil
134- else split(ag, b)
131+func ag (s) = {
132+ let ah = valueOrElse(getString(this, u(s)), "")
133+ let ai = valueOrElse(getString(this, v(s)), "")
135134 let aj = if ((ah == ""))
136135 then nil
137136 else split(ah, b)
138- let ak = {
139- let al = aj
140- let am = size(al)
141- let an = nil
142- func ao (ap,aq) = if ((aq >= am))
143- then ap
144- else L(ap, al[aq])
137+ let ak = if ((ai == ""))
138+ then nil
139+ else split(ai, b)
140+ let al = {
141+ let am = ak
142+ let an = size(am)
143+ let ao = nil
144+ func ap (aq,ar) = if ((ar >= an))
145+ then aq
146+ else M(aq, am[ar])
145147
146- func ar (ap,aq) = if ((aq >= am))
147- then ap
148+ func as (aq,ar) = if ((ar >= an))
149+ then aq
148150 else throw("List size exceeds 20")
149151
150- ar(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(an, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
152+ as(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ao, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
151153 }
152- $Tuple2(ai, ak)
154+ $Tuple2(aj, al)
153155 }
154156
155157
156-func as (at,Z) = max([0, toInt(fraction(toBigInt(at), ac(Z), e))])
158+func at (au,aa) = max([0, toInt(fraction(toBigInt(au), ad(aa), e))])
157159
158160
159-func au (av,Z) = max([0, toInt(fraction(toBigInt(av), e, ac(Z)))])
161+func av (aw,aa) = max([0, toInt(fraction(toBigInt(aw), e, ad(aa)))])
160162
161163
162-func aw (r) = valueOrElse(getInteger(this, q(r)), 0)
164+func ax (s) = valueOrElse(getInteger(this, r(s)), 0)
163165
164166
165-func ax (r) = valueOrElse(getInteger(this, s(r)), 0)
167+func ay (s) = valueOrElse(getInteger(this, t(s)), 0)
166168
167169
168-func ay (r) = {
169- let az = aw(r)
170- as(az, height)
170+func az (s) = {
171+ let aA = ax(s)
172+ at(aA, height)
171173 }
172174
173175
174-func aA (r) = [DeleteEntry(t(r)), DeleteEntry(u(r))]
176+func aB (s) = [DeleteEntry(u(s)), DeleteEntry(v(s))]
175177
176178
177-func aB (aC,r,aD) = {
178- let aE = [if ((size(aC.payments) == 1))
179+func aC (aD,s,aE) = {
180+ let aF = [if ((size(aD.payments) == 1))
179181 then true
180- else h("should include 1 payment"), if ((aC.payments[0].assetId == H))
182+ else i("should include 1 payment"), if ((aD.payments[0].assetId == I))
181183 then true
182- else h(("payment should be in " + G)), if ((aC.payments[0].amount > 0))
184+ else i(("payment should be in " + H)), if ((aD.payments[0].amount > 0))
183185 then true
184- else "payment amount should be greater than 0", if ((size(fromBase58String(r)) == f))
186+ else "payment amount should be greater than 0", if ((size(fromBase58String(s)) == f))
185187 then true
186- else h("user address is not valid")]
187- if ((aE == aE))
188+ else i("user address is not valid")]
189+ if ((aF == aF))
188190 then {
189- let aF = aC.payments[0].amount
190- let aG = au(aF, aD)
191- let az = aw(r)
192- let aH = valueOrElse(getInteger(this, w(r)), 0)
193- let aI = (E + aG)
194- let aJ = as(aI, aD)
195- let aK = (az + aG)
196- let aL = (aH + aF)
197-[StringEntry(x("stake", r, aC.transactionId), A(T(), ad(), E, D)), IntegerEntry(n, aI), IntegerEntry(o, aJ), IntegerEntry(q(r), aK), IntegerEntry(w(r), aL), IntegerEntry(m, height)]
191+ let aG = aD.payments[0].amount
192+ let aH = av(aG, aE)
193+ let aA = ax(s)
194+ let aI = valueOrElse(getInteger(this, x(s)), 0)
195+ let aJ = (F + aH)
196+ let aK = at(aJ, aE)
197+ let aL = (aA + aH)
198+ let aM = (aI + aG)
199+[StringEntry(y("stake", s, aD.transactionId), B(U(), ae(), F, E)), IntegerEntry(o, aJ), IntegerEntry(p, aK), IntegerEntry(r(s), aL), IntegerEntry(x(s), aM), IntegerEntry(n, height)]
198200 }
199201 else throw("Strict value is not equal to itself.")
200202 }
201203
202204
203-@Callable(aC)
204-func stakeForAdmin (r,aD) = {
205- let aM = [if ((aC.caller == this))
205+@Callable(aD)
206+func stakeForAdmin (s,aE) = {
207+ let aN = [if ((aD.caller == h))
206208 then true
207- else h("permission denied")]
208- if ((aM == aM))
209- then aB(aC, r, aD)
209+ else i("permission denied")]
210+ if ((aN == aN))
211+ then aC(aD, s, aE)
210212 else throw("Strict value is not equal to itself.")
211213 }
212214
213215
214216
215-@Callable(aC)
216-func airdrop (aN,aO,aP) = {
217- func aQ (aR,aS) = if ((0 > aS))
218- then h("negative amount value in amountList")
219- else (aR + aS)
217+@Callable(aD)
218+func airdrop (aO,aP,aQ) = {
219+ func aR (aS,aT) = if ((0 > aT))
220+ then i("negative amount value in amountList")
221+ else (aS + aT)
220222
221- let aT = {
222- let al = aO
223- let am = size(al)
224- let an = 0
225- func ao (ap,aq) = if ((aq >= am))
226- then ap
227- else aQ(ap, al[aq])
223+ let aU = {
224+ let am = aP
225+ let an = size(am)
226+ let ao = 0
227+ func ap (aq,ar) = if ((ar >= an))
228+ then aq
229+ else aR(aq, am[ar])
228230
229- func ar (ap,aq) = if ((aq >= am))
230- then ap
231+ func as (aq,ar) = if ((ar >= an))
232+ then aq
231233 else throw("List size exceeds 90")
232234
233- ar(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(an, 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)
235+ as(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ao, 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)
234236 }
235- let aM = [if ((aC.caller == this))
237+ let aN = [if ((aD.caller == h))
236238 then true
237- else h("permission denied"), if ((size(aC.payments) == 1))
239+ else i("permission denied"), if ((size(aD.payments) == 1))
238240 then true
239- else h("should include 1 payment"), if ((aC.payments[0].assetId == H))
241+ else i("should include 1 payment"), if ((aD.payments[0].assetId == I))
240242 then true
241- else h(("payment should be in " + G)), if ((aC.payments[0].amount > 0))
243+ else i(("payment should be in " + H)), if ((aD.payments[0].amount > 0))
242244 then true
243- else "payment amount should be greater than 0", if ((size(aN) == size(aO)))
245+ else "payment amount should be greater than 0", if ((size(aO) == size(aP)))
244246 then true
245- else h("addressList should be same size as amountList"), if ((aC.payments[0].amount >= aT))
247+ else i("addressList should be same size as amountList"), if ((aD.payments[0].amount >= aU))
246248 then true
247- else h("payment amount is less than sum of amountList")]
248- if ((aM == aM))
249+ else i("payment amount is less than sum of amountList")]
250+ if ((aN == aN))
249251 then {
250- func aU (aR,av) = {
251- let aV = aR
252- let aW = aV._1
253- let aX = aV._2
254- let aY = aV._3
255- let aZ = aV._4
256- let ba = aN[aX]
257- let bb = {
258- let V = addressFromString(ba)
259- if ($isInstanceOf(V, "Address"))
252+ func aV (aS,aw) = {
253+ let aW = aS
254+ let aX = aW._1
255+ let aY = aW._2
256+ let aZ = aW._3
257+ let ba = aW._4
258+ let bb = aO[aY]
259+ let bc = {
260+ let W = addressFromString(bb)
261+ if ($isInstanceOf(W, "Address"))
260262 then {
261- let bc = V
262- bc
263+ let bd = W
264+ bd
263265 }
264- else h("invalid address in addressList")
266+ else i("invalid address in addressList")
265267 }
266- let bd = [if (!(containsElement(aZ, bb)))
268+ let be = [if (!(containsElement(ba, bc)))
267269 then true
268- else h("duplicate address is addressList")]
269- if ((bd == bd))
270+ else i("duplicate address is addressList")]
271+ if ((be == be))
270272 then {
271- let be = au(av, aP)
272- let bf = s(ba)
273- let bg = valueOrElse(getInteger(this, bf), 0)
274- $Tuple4((aW :+ IntegerEntry(bf, (bg + be))), (aX + 1), (aY + be), (aZ :+ bb))
273+ let bf = av(aw, aQ)
274+ let bg = t(bb)
275+ let bh = valueOrElse(getInteger(this, bg), 0)
276+ $Tuple4((aX :+ IntegerEntry(bg, (bh + bf))), (aY + 1), (aZ + bf), (ba :+ bc))
275277 }
276278 else throw("Strict value is not equal to itself.")
277279 }
278280
279- let bh = {
280- let al = aO
281- let am = size(al)
282- let an = $Tuple4(nil, 0, 0, nil)
283- func bi (ap,aq) = if ((aq >= am))
284- then ap
285- else aU(ap, al[aq])
281+ let bi = {
282+ let am = aP
283+ let an = size(am)
284+ let ao = $Tuple4(nil, 0, 0, nil)
285+ func bj (aq,ar) = if ((ar >= an))
286+ then aq
287+ else aV(aq, am[ar])
286288
287- func bj (ap,aq) = if ((aq >= am))
288- then ap
289+ func bk (aq,ar) = if ((ar >= an))
290+ then aq
289291 else throw("List size exceeds 90")
290292
291- bj(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(bi(an, 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)
293+ bk(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(bj(ao, 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)
292294 }
293- let bk = bh._1
294- let bl = bh._2
295- let bm = bh._3
296- let bn = bh._4
297- let bo = as((E + bm), aP)
298- ([IntegerEntry(p, (F + bm)), IntegerEntry(n, (E + bm)), IntegerEntry(o, bo), IntegerEntry(m, height)] ++ bk)
295+ let bl = bi._1
296+ let bm = bi._2
297+ let bn = bi._3
298+ let bo = bi._4
299+ let bp = at((F + bn), aQ)
300+ ([IntegerEntry(q, (G + bn)), IntegerEntry(o, (F + bn)), IntegerEntry(p, bp), IntegerEntry(n, height)] ++ bl)
299301 }
300302 else throw("Strict value is not equal to itself.")
301303 }
302304
303305
304306
305-@Callable(aC)
306-func getUserAssetsREADONLY (r) = {
307- let az = aw(r)
308- let bp = ax(r)
309- let bq = as(bp, height)
310- let br = ay(r)
311- let aH = valueOrElse(getInteger(this, w(r)), 0)
312- let bs = valueOrElse(getInteger(this, v(r)), 0)
313- let bt = af(r)
314- let bu = bt._1
315- let bv = bt._2
316- $Tuple2(nil, $Tuple10(az, br, ad(), aH, bs, bp, bq, bu, bv, ae()))
307+@Callable(aD)
308+func getUserAssetsREADONLY (s) = {
309+ let aA = ax(s)
310+ let bq = ay(s)
311+ let br = at(bq, height)
312+ let bs = az(s)
313+ let aI = valueOrElse(getInteger(this, x(s)), 0)
314+ let bt = valueOrElse(getInteger(this, w(s)), 0)
315+ let bu = ag(s)
316+ let bv = bu._1
317+ let bw = bu._2
318+ $Tuple2(nil, $Tuple10(aA, bs, ae(), aI, bt, bq, br, bv, bw, af()))
317319 }
318320
319321
320322
321-@Callable(aC)
322-func getTotalAssetsREADONLY () = $Tuple2(nil, $Tuple6(E, Y(height), ad(), F, as(F, height), ae()))
323+@Callable(aD)
324+func getTotalAssetsREADONLY () = $Tuple2(nil, $Tuple6(F, Z(height), ae(), G, at(G, height), af()))
323325
324326

github/deemru/w8io/026f985 
189.90 ms