tx · 8XjkMUYB2VhFvU93P5cinz8cfv9jDU6wiaPzq35HqzoU

3MumkGGztCKAXpWDqxkddofqXSUbqQkvSJy:  -0.01900000 Waves

2023.05.29 02:55 [2598506] smart account 3MumkGGztCKAXpWDqxkddofqXSUbqQkvSJy > SELF 0.00000000 Waves

{ "type": 13, "id": "8XjkMUYB2VhFvU93P5cinz8cfv9jDU6wiaPzq35HqzoU", "fee": 1900000, "feeAssetId": null, "timestamp": 1685318191694, "version": 2, "chainId": 84, "sender": "3MumkGGztCKAXpWDqxkddofqXSUbqQkvSJy", "senderPublicKey": "C3PaRKeL8AUKbwUqdniMQtThgcTh5DYHV1777Hkxy7rp", "proofs": [ "28QuSaHLRR7p4hqyikL6ebWbFzKrec9iYpc5pYp7qqzr1c6dsNrzLN3TNy63eWGiVWyStDBCCXR785S4Srj95xMV" ], "script": "base64:BgJACAISBQoDCAgIEgMKAQgSAwoBCBIDCgEIEgMKAQgSAwoBCBIDCgEYEgMKAQgSAwoBGBIDCgEYEgMKARgSAwoBCFAABWNoYWluCQDJAQIJAMoBAggFBHRoaXMFYnl0ZXMAAQABAAt1c2R0QXNzZXRJZAQHJG1hdGNoMAUFY2hhaW4DCQAAAgEBVwUHJG1hdGNoMAEghNp6sggDP07Ru8qO7ouTvMmC3Qtd+geWqNQj+agP/7kDCQAAAgEBVAUHJG1hdGNoMAEgVbHYn3KHgu/l41uNrAWrZd6aQ6EvFrsF8xq3h6XxxRgJAAIBAg1Vbmtub3duIGNoYWluABFJbmZyYVVwZ3JhZGVDb3N0UwQHJG1hdGNoMAUFY2hhaW4DCQAAAgEBVwUHJG1hdGNoMACAyK+gJQMJAAACAQFUBQckbWF0Y2gwAIDC1y8JAAIBAg1Vbmtub3duIGNoYWluAAVNVUxUNgDAhD0ABU1VTFQ4AIDC1y8ACkxBTkRQUkVGSVgCBExBTkQACkRVQ0tQUkVGSVgCBERVQ0sAA1NFUAICX18ACkFSVFBSRVNBTEUCB1BSRVNBTEUAD0RBSUxZUkVTQllQSUVDRQCA+NIBAAlEQVlNSUxMSVMAgLiZKQAGTlVNUkVTAAYABVNTSVpFABkABU1TSVpFAGQABUxTSVpFAOEBAAZYTFNJWkUAkAMAB1hYTFNJWkUA8QQADVVTRFRQUklaRVBBUlQAoMIeAAxXSE1VTFRJUExJRVIAgMivoCUACnJlY0xhbmROdW0AAAALcmVjTGFuZFNpemUAAQALcmVjVGVycmFpbnMAAgAMcmVjQ29udGluZW50AAMAC3doSWR4TGV2ZWxzAAAACHdoSWR4UmVzAAEACHdoSWR4TWF0AAIACXdoSWR4UHJvZAADAAl3aElkeExPRlQABAAJdm9sTG9ja2VkAAAAC3ZvbE9jY3VwaWVkAAEAB3ZvbEZyZWUAAgAIdm9sVG90YWwAAwEKa2V5UmVzdENmZwACDiVzX19yZXN0Q29uZmlnABFJZHhDZmdTdGFraW5nRGFwcAABABFJZHhDZmdFY29ub215RGFwcAACABRJZHhDZmdHb3Zlcm5hbmNlRGFwcAADAA9wcm9kdWN0UGFja2FnZXMJAMwIAgAKCQDMCAIACgkAzAgCAAoJAMwIAgBkCQDMCAIAZAkAzAgCAGQJAMwIAgAKCQDMCAIACgkAzAgCAAoJAMwIAgBkCQDMCAIAZAkAzAgCAGQJAMwIAgAKCQDMCAIACgkAzAgCAAoFA25pbAEPZ2V0U3RyaW5nT3JGYWlsAgdhZGRyZXNzA2tleQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFB2FkZHJlc3MFA2tleQkAuQkCCQDMCAICCm1hbmRhdG9yeSAJAMwIAgkApQgBBQdhZGRyZXNzCQDMCAICAS4JAMwIAgUDa2V5CQDMCAICDyBpcyBub3QgZGVmaW5lZAUDbmlsAgABEXJlYWRSZXN0Q2ZnT3JGYWlsAAkAvAkCCQEPZ2V0U3RyaW5nT3JGYWlsAgUEdGhpcwkBCmtleVJlc3RDZmcABQNTRVABGGdldENvbnRyYWN0QWRkcmVzc09yRmFpbAIHcmVzdENmZwNpZHgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIFB3Jlc3RDZmcFA2lkeAkArAICAipSZXN0IGNmZyBkb2Vzbid0IGNvbnRhaW4gYWRkcmVzcyBhdCBpbmRleCAJAKQDAQUDaWR4AAdyZXN0Q2ZnCQERcmVhZFJlc3RDZmdPckZhaWwAAA9zdGFraW5nQ29udHJhY3QJARhnZXRDb250cmFjdEFkZHJlc3NPckZhaWwCBQdyZXN0Q2ZnBRFJZHhDZmdTdGFraW5nRGFwcAAPZWNvbm9teUNvbnRyYWN0CQEYZ2V0Q29udHJhY3RBZGRyZXNzT3JGYWlsAgUHcmVzdENmZwURSWR4Q2ZnRWNvbm9teURhcHAAEmdvdmVybmFuY2VDb250cmFjdAkBGGdldENvbnRyYWN0QWRkcmVzc09yRmFpbAIFB3Jlc3RDZmcFEUlkeENmZ0Vjb25vbXlEYXBwAQprZXlCbG9ja2VkAAIQY29udHJhY3RzQmxvY2tlZAEQa2V5RHVja0lkVG9Pd25lcgEHYXNzZXRJZAkArAICAgpkdWNrT3duZXJfBQdhc3NldElkARZrZXlTdGFrZWRUaW1lQnlBc3NldElkAQdhc3NldElkCQCsAgICC3N0YWtlZFRpbWVfBQdhc3NldElkARRrZXlTdGFrZWREdWNrQnlPd25lcgEJb3duZXJBZGRyCQCsAgICEnN0YWtlZER1Y2tCeU93bmVyXwUJb3duZXJBZGRyASJrZXlTdGFrZWRUaW1lQnlUeXBlQXNzZXRJZEFuZE93bmVyAwduZnRUeXBlB2Fzc2V0SWQJb3duZXJBZGRyCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIgc3Rha2VkVGltZUJ5VHlwZUFzc2V0SWRBbmRPd25lcl8FB25mdFR5cGUCAV8FB2Fzc2V0SWQCAV8FCW93bmVyQWRkcgERa2V5QmFja3BhY2tCeUR1Y2sBC2R1Y2tBc3NldElkCQCsAgICCWJhY2tQYWNrXwULZHVja0Fzc2V0SWQBEmtleVdhcmVob3VzZUJ5TGFuZAELbGFuZEFzc2V0SWQJAKwCAgIKd2FyZUhvdXNlXwULbGFuZEFzc2V0SWQBD2tleUR1Y2tMb2NhdGlvbgELZHVja0Fzc2V0SWQJAKwCAgINZHVja0xvY2F0aW9uXwULZHVja0Fzc2V0SWQBDWtleUR1Y2tIZWFsdGgBC2R1Y2tBc3NldElkCQCsAgICC2R1Y2tIZWFsdGhfBQtkdWNrQXNzZXRJZAEVa2V5TGFuZEFzc2V0SWRUb093bmVyAQdhc3NldElkCQCsAgICCW5mdE93bmVyXwUHYXNzZXRJZAEaa2V5TGFuZEFzc2V0SWRUb0N1c3RvbU5hbWUBB2Fzc2V0SWQJAKwCAgIYbGFuZEN1c3RvbU5hbWVCeUFzc2V0SWRfBQdhc3NldElkARprZXlEdWNrQXNzZXRJZFRvQ3VzdG9tTmFtZQEHYXNzZXRJZAkArAICAhhkdWNrQ3VzdG9tTmFtZUJ5QXNzZXRJZF8FB2Fzc2V0SWQBFmtleUFkZHJlc3NUb0N1c3RvbU5hbWUBBGFkZHIJAKwCAgIYYWNjb3VudEN1c3RvbU5hbWVCeUFkZHJfBQRhZGRyAQ9rZXlBZGRyZXNzUmVmQnkBBGFkZHIJAKwCAgIJYWNjUmVmQnlfBQRhZGRyARNrZXlBZGRyZXNzUmVmZXJyYWxzAQRhZGRyCQCsAgICDWFjY1JlZmVycmFsc18FBGFkZHIBFmtleUluZnJhTGV2ZWxCeUFzc2V0SWQBB2Fzc2V0SWQJAKwCAgILaW5mcmFMZXZlbF8FB2Fzc2V0SWQBIGtleUxhbmRBcnRTdGF0dXNCeVR5cGVBbmRBc3NldElkAgR0eXBlB2Fzc2V0SWQJALkJAgkAzAgCAg1sYW5kQXJ0U3RhdHVzCQDMCAIFBHR5cGUJAMwIAgUHYXNzZXRJZAUDbmlsAgFfAR9rZXlQcmVzYWxlQXJ0QWN0aXZhdGVkQnlBc3NldElkAQdhc3NldElkCQCsAgICFHByZXNhbGVBcnRBY3RpdmF0ZWRfBQdhc3NldElkARVrZXlTdGFrZWRMYW5kc0J5T3duZXIBCW93bmVyQWRkcgkArAICAhNzdGFrZWRMYW5kc0J5T3duZXJfBQlvd25lckFkZHIBEWtleUxhc3RUeElkQnlVc2VyAQRhZGRyCQCsAgICD2xhc3RUeElkQnlVc2VyXwUEYWRkcgEOa2V5T3JkZXJCeUxhbmQBC2xhbmRBc3NldElkCQCsAgICCmxhbmRPcmRlcl8FC2xhbmRBc3NldElkAQhhc1N0cmluZwEBdgQHJG1hdGNoMAUBdgMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAFAXMJAAIBAhhmYWlsIHRvIGNhc3QgaW50byBTdHJpbmcBBWFzSW50AQF2BAckbWF0Y2gwBQF2AwkAAQIFByRtYXRjaDACA0ludAQBbgUHJG1hdGNoMAUBbgkAAgECFWZhaWwgdG8gY2FzdCBpbnRvIEludAEJYXNCb29sZWFuAQF2BAckbWF0Y2gwBQF2AwkAAQIFByRtYXRjaDACB0Jvb2xlYW4EAXMFByRtYXRjaDAFAXMJAAIBAhlmYWlsIHRvIGNhc3QgaW50byBCb29sZWFuARJhc0xpc3RJbnRDb21wYWN0ZWQBA3ZhbAQHJG1hdGNoMAUDdmFsAwkAAQIFByRtYXRjaDACCUxpc3RbQW55XQQKdmFsQW55TGlzdAUHJG1hdGNoMAMJAQIhPQIJAJADAQUKdmFsQW55TGlzdAUGTlVNUkVTCQACAQkArAICAg5BcnJheSBzaXplIGlzIAkApAMBCQCQAwEFCnZhbEFueUxpc3QKAQRjb252AgNhY2MEaXRlbQQHJG1hdGNoMQUEaXRlbQMJAAECBQckbWF0Y2gxAgNJbnQEAml0BQckbWF0Y2gxCQDNCAIFA2FjYwkApAMBBQJpdAkAAgECFExpc3QgdHlwZSBpcyBub3QgSW50BAFyCgACJGwFCnZhbEFueUxpc3QKAAIkcwkAkAMBBQIkbAoABSRhY2MwBQNuaWwKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBBGNvbnYCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECE0xpc3Qgc2l6ZSBleGNlZWRzIDYJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYJALkJAgUBcgIBXwkAAgECFmZhaWwgdG8gY2FzdCBpbnRvIExpc3QBDWFzU3BsaXRSZXN1bHQBA3ZhbAQHJG1hdGNoMAUDdmFsAwkAAQIFByRtYXRjaDACFihMaXN0W0FueV0sIExpc3RbQW55XSkEAnQyBQckbWF0Y2gwCQCUCgIJARJhc0xpc3RJbnRDb21wYWN0ZWQBCAUCdDICXzEJARJhc0xpc3RJbnRDb21wYWN0ZWQBCAUCdDICXzIJAAIBAh5mYWlsIHRvIGNhc3QgaW50byAoTGlzdCwgTGlzdCkBDndhbGxldEludGVybmFsAQ51c2VyQWRkcmVzc09wdAQEYWRkcgkApggBBQ51c2VyQWRkcmVzc09wdAQHYmFsYW5jZQMJAQlpc0RlZmluZWQBBQRhZGRyCQDvBwEJAQV2YWx1ZQEFBGFkZHIJAQ5CYWxhbmNlRGV0YWlscwQAAAAAAAAAAAQLdXNkdEJhbGFuY2UDCQEJaXNEZWZpbmVkAQUEYWRkcgkA8AcCCQEFdmFsdWUBBQRhZGRyBQt1c2R0QXNzZXRJZAAABApjdXN0b21OYW1lCQELdmFsdWVPckVsc2UCCQCdCAIFD3N0YWtpbmdDb250cmFjdAkBFmtleUFkZHJlc3NUb0N1c3RvbU5hbWUBBQ51c2VyQWRkcmVzc09wdAUOdXNlckFkZHJlc3NPcHQEBXJlZkJ5CQELdmFsdWVPckVsc2UCCQCdCAIFD3N0YWtpbmdDb250cmFjdAkBD2tleUFkZHJlc3NSZWZCeQEFDnVzZXJBZGRyZXNzT3B0AgAEBHJlZnMJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUPc3Rha2luZ0NvbnRyYWN0CQETa2V5QWRkcmVzc1JlZmVycmFscwEFDnVzZXJBZGRyZXNzT3B0AgAECGxhc3RUeElkCQELdmFsdWVPckVsc2UCCQCdCAIFD3N0YWtpbmdDb250cmFjdAkBEWtleUxhc3RUeElkQnlVc2VyAQUOdXNlckFkZHJlc3NPcHQCAAkAzAgCCQCsAgICEiVzJXNfX2N1c3RvbU5hbWVfXwUKY3VzdG9tTmFtZQkAzAgCCQCsAgICEiVzJXNfX3JlZmVycmVkQnlfXwUFcmVmQnkJAMwIAgkArAICAhElcyVzX19yZWZlcnJhbHNfXwUEcmVmcwkAzAgCCQCsAgICECVzJXNfX2xhc3RUeElkX18FCGxhc3RUeElkCQDMCAIJAKwCAgIWJXMlcyVkX193YXZlc0JhbGFuY2VfXwkApAMBCAUHYmFsYW5jZQlhdmFpbGFibGUJAMwIAgkArAICAhUlcyVzJWRfX3VzZHRCYWxhbmNlX18JAKQDAQULdXNkdEJhbGFuY2UFA25pbAEMYXBwbHlCb251c2VzAgtsYW5kQXNzZXRJZAZwaWVjZXMECmluZnJhTGV2ZWwJAQt2YWx1ZU9yRWxzZQIJAJoIAgUPc3Rha2luZ0NvbnRyYWN0CQEWa2V5SW5mcmFMZXZlbEJ5QXNzZXRJZAEFC2xhbmRBc3NldElkAAAECWFydFBpZWNlcwkBC3ZhbHVlT3JFbHNlAgkAmggCBQ9zdGFraW5nQ29udHJhY3QJASBrZXlMYW5kQXJ0U3RhdHVzQnlUeXBlQW5kQXNzZXRJZAIFCkFSVFBSRVNBTEUFC2xhbmRBc3NldElkAwkBC3ZhbHVlT3JFbHNlAgkAmwgCBQ9zdGFraW5nQ29udHJhY3QJAR9rZXlQcmVzYWxlQXJ0QWN0aXZhdGVkQnlBc3NldElkAQULbGFuZEFzc2V0SWQHBQZwaWVjZXMAAAQEYWRkNgkAaQIFCmluZnJhTGV2ZWwABgQEYWRkNwkAaQIFCmluZnJhTGV2ZWwABwkAlQoDBQppbmZyYUxldmVsBQlhcnRQaWVjZXMJAGQCCQBkAgUPREFJTFlSRVNCWVBJRUNFCQBrAwUPREFJTFlSRVNCWVBJRUNFCQBkAgkAZAIFCmluZnJhTGV2ZWwFBGFkZDYJAGgCAAIFBGFkZDcABQkAawMFD0RBSUxZUkVTQllQSUVDRQUJYXJ0UGllY2VzCQBoAgUGcGllY2VzAAUBD251bVBpZWNlc0J5U2l6ZQEIbGFuZFNpemUEByRtYXRjaDAFCGxhbmRTaXplAwkAAAICAVMFByRtYXRjaDAFBVNTSVpFAwkAAAICAU0FByRtYXRjaDAFBU1TSVpFAwkAAAICAUwFByRtYXRjaDAFBUxTSVpFAwkAAAICAlhMBQckbWF0Y2gwBQZYTFNJWkUDCQAAAgIDWFhMBQckbWF0Y2gwBQdYWExTSVpFCQACAQIRVW5rbm93biBsYW5kIHNpemUBF2dldFdhcmVob3VzZVRvdGFsVm9sdW1lAQl2b2xQcmVmaXgEBXBhcnRzCQC1CQIFCXZvbFByZWZpeAIBXwkAaAIJAGgCBQxXSE1VTFRJUExJRVIJAGQCCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUFcGFydHMAAQABCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUFcGFydHMAAAEXZ2V0V2FyZWhvdXNlT2NjdXBpZWRWb2wBCWN1cnJlbnRXaAQFZ29vZHMJAJEDAgUJY3VycmVudFdoBQl3aElkeFByb2QKAQlzdW1SZXNNYXQCA2FjYwRpdGVtCQBkAgUDYWNjCQENcGFyc2VJbnRWYWx1ZQEFBGl0ZW0KAQdzdW1Qcm9kAgNhY2MEaXRlbQQDaWR4CAUDYWNjAl8xBAdwa2dTaXplCQCRAwIFD3Byb2R1Y3RQYWNrYWdlcwUDaWR4BARwa2dzCQBpAgkAZQIJAGQCCQENcGFyc2VJbnRWYWx1ZQEFBGl0ZW0FB3BrZ1NpemUAAQUHcGtnU2l6ZQkAlAoCCQBkAgUDaWR4AAEJAGQCCAUDYWNjAl8yCQBoAgUEcGtncwUFTVVMVDgECHdoUmVzVm9sCgACJGwJALUJAgkAkQMCBQljdXJyZW50V2gFCHdoSWR4UmVzAgFfCgACJHMJAJADAQUCJGwKAAUkYWNjMAAACgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQlzdW1SZXNNYXQCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECE0xpc3Qgc2l6ZSBleGNlZWRzIDYJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYECHdoTWF0Vm9sCgACJGwJALUJAgkAkQMCBQljdXJyZW50V2gFCHdoSWR4TWF0AgFfCgACJHMJAJADAQUCJGwKAAUkYWNjMAAACgEFJGYxXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQlzdW1SZXNNYXQCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjFfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECE0xpc3Qgc2l6ZSBleGNlZWRzIDYJAQUkZjFfMgIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYECndoR29vZHNWb2wDCQAAAgUFZ29vZHMCAAAACAoAAiRsCQC8CQIFBWdvb2RzAgFfCgACJHMJAJADAQUCJGwKAAUkYWNjMAkAlAoCAAAAAAoBBSRmMl8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEHc3VtUHJvZAIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMl8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgNTAJAQUkZjJfMgIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAjACQAJQAmACcAKAApACoAKwAsAC0ALgAvADAAMQAyAl8yCQBkAgkAZAIFCHdoUmVzVm9sBQh3aE1hdFZvbAUKd2hHb29kc1ZvbAEMZ2V0V2FyZWhvdXNlAwV3aEtleQlsYW5kSW5kZXgKaW5mcmFMZXZlbAQJdm9sUHJlZml4CQCsAgIJAKwCAgkApAMBBQlsYW5kSW5kZXgCAV8JAKQDAQUKaW5mcmFMZXZlbAQHd2hUb3RhbAkBF2dldFdhcmVob3VzZVRvdGFsVm9sdW1lAQUJdm9sUHJlZml4BAV3aFN0cgkBC3ZhbHVlT3JFbHNlAgkAnQgCBQ9zdGFraW5nQ29udHJhY3QFBXdoS2V5CQCsAgIFCXZvbFByZWZpeAIbOjBfMF8wXzBfMF8wOjBfMF8wXzBfMF8wOjowBAJ3aAkAtQkCBQV3aFN0cgIBOgQKd2hPY2N1cGllZAkBF2dldFdhcmVob3VzZU9jY3VwaWVkVm9sAQUCd2gEBndoTG9mdAMJAGYCAAUJAJADAQUCd2gJALkJAgkAzAgCAgEwCQDMCAIJAKQDAQUKd2hPY2N1cGllZAkAzAgCCQCkAwEJAGUCBQd3aFRvdGFsBQp3aE9jY3VwaWVkCQDMCAIJAKQDAQUHd2hUb3RhbAUDbmlsAgFfBARsb2Z0CQC1CQIJAJEDAgUCd2gFCXdoSWR4TE9GVAIBXwQId2hMb2NrZWQJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQRsb2Z0BQl2b2xMb2NrZWQEA29jYwMJAGYCCQCQAwEFBGxvZnQAAQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFBGxvZnQFC3ZvbE9jY3VwaWVkBQp3aE9jY3VwaWVkCQC5CQIJAMwIAgkApAMBBQh3aExvY2tlZAkAzAgCCQCkAwEFA29jYwkAzAgCCQCkAwEJAGUCCQBlAgUHd2hUb3RhbAUId2hMb2NrZWQFA29jYwkAzAgCCQCkAwEFB3doVG90YWwFA25pbAIBXwkAzAgCCQCRAwIFAndoBQt3aElkeExldmVscwkAzAgCAwkAAAIJAJADAQkAtQkCCQCRAwIFAndoBQh3aElkeFJlcwIBXwUGTlVNUkVTCQCRAwIFAndoBQh3aElkeFJlcwILMF8wXzBfMF8wXzAJAMwIAgMJAAACCQCQAwEJALUJAgkAkQMCBQJ3aAUId2hJZHhNYXQCAV8FBk5VTVJFUwkAkQMCBQJ3aAUId2hJZHhNYXQCCzBfMF8wXzBfMF8wCQDMCAIJAJEDAgUCd2gFCXdoSWR4UHJvZAkAzAgCBQZ3aExvZnQFA25pbAENZHVja0luZm9UdXBsZQELZHVja0Fzc2V0SWQJAJcKBQkBC3ZhbHVlT3JFbHNlAgkAmggCBQ9zdGFraW5nQ29udHJhY3QJARZrZXlTdGFrZWRUaW1lQnlBc3NldElkAQULZHVja0Fzc2V0SWQA////////////AQgJAQV2YWx1ZQEJAOwHAQkA2QQBBQtkdWNrQXNzZXRJZARuYW1lCQELdmFsdWVPckVsc2UCCQCdCAIFD3N0YWtpbmdDb250cmFjdAkBD2tleUR1Y2tMb2NhdGlvbgEFC2R1Y2tBc3NldElkAgAJAQt2YWx1ZU9yRWxzZQIJAJoIAgUPc3Rha2luZ0NvbnRyYWN0CQENa2V5RHVja0hlYWx0aAEFC2R1Y2tBc3NldElkAP///////////wEJAQhhc1N0cmluZwEJAPwHBAUPc3Rha2luZ0NvbnRyYWN0AhNnZXRCYWNrcGFja1JFQURPTkxZCQDMCAIFC2R1Y2tBc3NldElkBQNuaWwFA25pbAENZHVja0luZm9BcnJheQMLZHVja0Fzc2V0SWQFb3duZXIHZHVja0luZgQKY3VzdG9tTmFtZQkBC3ZhbHVlT3JFbHNlAgkAnQgCBQ9zdGFraW5nQ29udHJhY3QJARprZXlEdWNrQXNzZXRJZFRvQ3VzdG9tTmFtZQEFC2R1Y2tBc3NldElkCAUHZHVja0luZgJfMgkAzAgCCQCsAgICDyVzJXNfX2Fzc2V0SWRfXwULZHVja0Fzc2V0SWQJAMwIAgkArAICAg0lcyVzX19vd25lcl9fBQVvd25lcgkAzAgCCQCsAgICEiVzJXNfX2N1c3RvbU5hbWVfXwUKY3VzdG9tTmFtZQkAzAgCCQCsAgICEiVzJWRfX3N0YWtlZFRpbWVfXwkApAMBCAUHZHVja0luZgJfMQkAzAgCCQCsAgICDCVzJXNfX25hbWVfXwgFB2R1Y2tJbmYCXzIJAMwIAgkArAICAhAlcyVzX19sb2NhdGlvbl9fCAUHZHVja0luZgJfMwkAzAgCCQCsAgICDiVzJWRfX2hlYWx0aF9fCQCkAwEIBQdkdWNrSW5mAl80CQDMCAIJAKwCAgIQJXMlc19fYmFja1BhY2tfXwgFB2R1Y2tJbmYCXzUFA25pbAENbGFuZEluZm9BcnJheQMLbGFuZEFzc2V0SWQFb3duZXIKc3Rha2VkVGltZQMJAAACBQtsYW5kQXNzZXRJZAIACQACAQIXbGFuZEFzc2V0SWQgaXMgcmVxdWlyZWQEAWEJAQV2YWx1ZQEJAOwHAQkA2QQBBQtsYW5kQXNzZXRJZAQBZAkAtQkCCAUBYQtkZXNjcmlwdGlvbgIBXwQHbGFuZE51bQMJAGYCCAUBYQhxdWFudGl0eQAACQCRAwIFAWQFCnJlY0xhbmROdW0JAKwCAgIBLQkAkQMCBQFkBQpyZWNMYW5kTnVtBAZwaWVjZXMJAQ9udW1QaWVjZXNCeVNpemUBCQCRAwIFAWQFC3JlY0xhbmRTaXplBAxwcm9kdWN0aXZpdHkJAQxhcHBseUJvbnVzZXMCBQtsYW5kQXNzZXRJZAUGcGllY2VzBAlkZWx0YVRpbWUJAGUCCAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUKc3Rha2VkVGltZQQIYXZhaWxSZXMDCQBmAgUKc3Rha2VkVGltZQAACQBrAwUJZGVsdGFUaW1lCQBoAggFDHByb2R1Y3Rpdml0eQJfMwUGcGllY2VzBQlEQVlNSUxMSVMAAAQHbmVlZE1hdAkAawMFEUluZnJhVXBncmFkZUNvc3RTCQBoAgUGcGllY2VzCQBkAggFDHByb2R1Y3Rpdml0eQJfMQABBQVTU0laRQQOZ2xvYmFsQW5kTG9jYWwDCQBmAgUKc3Rha2VkVGltZQAACQENYXNTcGxpdFJlc3VsdAEJAPwHBAUPc3Rha2luZ0NvbnRyYWN0AiRzcGxpdEJ5R2xvYmFsQW5kTG9jYWxXZWlnaHRzUkVBRE9OTFkJAMwIAgUHbmVlZE1hdAkAzAgCBQhhdmFpbFJlcwkAzAgCCQCRAwIFAWQFC3JlY1RlcnJhaW5zBQNuaWwFA25pbAkAlAoCCQESYXNMaXN0SW50Q29tcGFjdGVkAQkA/AcEBQ9zdGFraW5nQ29udHJhY3QCHHNwbGl0QnlHbG9iYWxXZWlnaHRzUkVBRE9OTFkJAMwIAgUHbmVlZE1hdAUDbmlsBQNuaWwCAAQKY3VzdG9tTmFtZQkBC3ZhbHVlT3JFbHNlAgkAnQgCBQ9zdGFraW5nQ29udHJhY3QJARprZXlMYW5kQXNzZXRJZFRvQ3VzdG9tTmFtZQEFC2xhbmRBc3NldElkCQCsAgIJAKwCAgkAkQMCBQFkBQxyZWNDb250aW5lbnQCAS0JAJEDAgUBZAUKcmVjTGFuZE51bQkAzAgCCQCsAgICDyVzJXNfX2Fzc2V0SWRfXwULbGFuZEFzc2V0SWQJAMwIAgkArAICAg0lcyVzX19vd25lcl9fBQVvd25lcgkAzAgCCQCsAgICEiVzJXNfX2N1c3RvbU5hbWVfXwUKY3VzdG9tTmFtZQkAzAgCCQCsAgICEiVzJWRfX3N0YWtlZFRpbWVfXwkApAMBBQpzdGFrZWRUaW1lCQDMCAIJAKwCAgITJXMlc19fZGVzY3JpcHRpb25fXwkAuQkCCQDMCAIFB2xhbmROdW0JAMwIAgkAkQMCBQFkBQtyZWNMYW5kU2l6ZQkAzAgCCQCRAwIFAWQFC3JlY1RlcnJhaW5zCQDMCAIJAJEDAgUBZAUMcmVjQ29udGluZW50BQNuaWwCAV8JAMwIAgkArAICAhIlcyVkX19pbmZyYUxldmVsX18JAKQDAQgFDHByb2R1Y3Rpdml0eQJfMQkAzAgCCQCsAgICFiVzJXNfX2F2YWlsUmVzQnlUeXBlX18IBQ5nbG9iYWxBbmRMb2NhbAJfMgkAzAgCCQCsAgICFSVzJWRfX2F2YWlsUmVzVG90YWxfXwkApAMBBQhhdmFpbFJlcwkAzAgCCQCsAgICFCVzJXNfX25lZWRNYXRlcmlhbF9fCAUOZ2xvYmFsQW5kTG9jYWwCXzEJAMwIAgkAuQkCCQDMCAICBCVzJXMJAMwIAgINbGFuZEFydGVmYWN0cwkAzAgCCQCsAgICCFBSRVNBTEU6CQCkAwEIBQxwcm9kdWN0aXZpdHkCXzIFA25pbAUDU0VQCQDMCAIJAKwCAgIRJXMlc19fd2FyZWhvdXNlX18JALkJAgkBDGdldFdhcmVob3VzZQMJARJrZXlXYXJlaG91c2VCeUxhbmQBBQtsYW5kQXNzZXRJZAkAaQIFBnBpZWNlcwUFU1NJWkUIBQxwcm9kdWN0aXZpdHkCXzECAToJAMwIAgkArAICAhElcyVzX19sYW5kT3JkZXJfXwkBC3ZhbHVlT3JFbHNlAgkAnQgCBQ9lY29ub215Q29udHJhY3QJAQ5rZXlPcmRlckJ5TGFuZAEFC2xhbmRBc3NldElkAjAwQDBfMEAwXzBAMF8wQDBfMEAwXzBAMDowQDBfMEAwXzBAMF8wQDBfMEAwXzBAMDoFA25pbAESbGFuZE9yZGVySW5mb0FycmF5AgtsYW5kQXNzZXRJZAVvd25lcgMJAAACBQtsYW5kQXNzZXRJZAIACQACAQIXbGFuZEFzc2V0SWQgaXMgcmVxdWlyZWQEAWEJAQV2YWx1ZQEJAOwHAQkA2QQBBQtsYW5kQXNzZXRJZAQBZAkAtQkCCAUBYQtkZXNjcmlwdGlvbgIBXwQGcGllY2VzCQEPbnVtUGllY2VzQnlTaXplAQkAkQMCBQFkBQtyZWNMYW5kU2l6ZQQMcHJvZHVjdGl2aXR5CQEMYXBwbHlCb251c2VzAgULbGFuZEFzc2V0SWQFBnBpZWNlcwkAzAgCCQCsAgICDyVzJXNfX2Fzc2V0SWRfXwULbGFuZEFzc2V0SWQJAMwIAgkArAICAg0lcyVzX19vd25lcl9fBQVvd25lcgkAzAgCCQCsAgICESVzJXNfX3dhcmVob3VzZV9fCQC5CQIJAQxnZXRXYXJlaG91c2UDCQESa2V5V2FyZWhvdXNlQnlMYW5kAQULbGFuZEFzc2V0SWQJAGkCBQZwaWVjZXMFBVNTSVpFCAUMcHJvZHVjdGl2aXR5Al8xAgE6CQDMCAIJAKwCAgIRJXMlc19fbGFuZE9yZGVyX18JAQt2YWx1ZU9yRWxzZQIJAJ0IAgUPZWNvbm9teUNvbnRyYWN0CQEOa2V5T3JkZXJCeUxhbmQBBQtsYW5kQXNzZXRJZAIwMEAwXzBAMF8wQDBfMEAwXzBAMF8wQDA6MEAwXzBAMF8wQDBfMEAwXzBAMF8wQDA6BQNuaWwMAWkBDWNvbnN0cnVjdG9yVjEDD3N0YWtpbmdDb250cmFjdA9lY29ub215Q29udHJhY3QSZ292ZXJuYW5jZUNvbnRyYWN0AwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIScGVybWlzc2lvbnMgZGVuaWVkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQprZXlSZXN0Q2ZnAAkAuQkCCQDMCAICBiVzJXMlcwkAzAgCBQ9zdGFraW5nQ29udHJhY3QJAMwIAgUPZWNvbm9teUNvbnRyYWN0CQDMCAIFEmdvdmVybmFuY2VDb250cmFjdAUDbmlsBQNTRVAFA25pbAFpARJ3YWxsZXRJbmZvUkVBRE9OTFkBDnVzZXJBZGRyZXNzT3B0CQCUCgIFA25pbAkBDndhbGxldEludGVybmFsAQUOdXNlckFkZHJlc3NPcHQBaQEXZHVja0J5T3duZXJJbmZvUkVBRE9OTFkBC3VzZXJBZGRyZXNzBApzdGFrZWREdWNrCQCdCAIFD3N0YWtpbmdDb250cmFjdAkBFGtleVN0YWtlZER1Y2tCeU93bmVyAQULdXNlckFkZHJlc3MJAJQKAgUDbmlsAwMJAQlpc0RlZmluZWQBCQCmCAEFC3VzZXJBZGRyZXNzCQEJaXNEZWZpbmVkAQUKc3Rha2VkRHVjawcEC2R1Y2tBc3NldElkCQEFdmFsdWUBBQpzdGFrZWREdWNrCQENZHVja0luZm9BcnJheQMFC2R1Y2tBc3NldElkBQt1c2VyQWRkcmVzcwkBDWR1Y2tJbmZvVHVwbGUBBQtkdWNrQXNzZXRJZAkBDWR1Y2tJbmZvQXJyYXkDAgAFC3VzZXJBZGRyZXNzCQCXCgUA////////////AQIAAgAA////////////AQIAAWkBGWR1Y2tCeUFzc2V0SWRJbmZvUkVBRE9OTFkBC2R1Y2tBc3NldElkBAVvd25lcgkAnQgCBQ9zdGFraW5nQ29udHJhY3QJARBrZXlEdWNrSWRUb093bmVyAQULZHVja0Fzc2V0SWQEB2R1Y2tJbmYJAQ1kdWNrSW5mb1R1cGxlAQULZHVja0Fzc2V0SWQJAJQKAgUDbmlsCQENZHVja0luZm9BcnJheQMFC2R1Y2tBc3NldElkAwkBCWlzRGVmaW5lZAEFBW93bmVyCQEFdmFsdWUBBQVvd25lcgIACQENZHVja0luZm9UdXBsZQEFC2R1Y2tBc3NldElkAWkBGWxhbmRCeUFzc2V0SWRJbmZvUkVBRE9OTFkBC2xhbmRBc3NldElkAwkAAAIFC2xhbmRBc3NldElkAgAJAAIBAhdsYW5kQXNzZXRJZCBpcyByZXF1aXJlZAQKc3Rha2VkVGltZQkBC3ZhbHVlT3JFbHNlAgkAmggCBQ9zdGFraW5nQ29udHJhY3QJARZrZXlTdGFrZWRUaW1lQnlBc3NldElkAQULbGFuZEFzc2V0SWQA////////////AQQFb3duZXIDCQBmAgUKc3Rha2VkVGltZQAACQEFdmFsdWUBCQCdCAIFD3N0YWtpbmdDb250cmFjdAkBFWtleUxhbmRBc3NldElkVG9Pd25lcgEFC2xhbmRBc3NldElkAgAJAJQKAgUDbmlsCQENbGFuZEluZm9BcnJheQMFC2xhbmRBc3NldElkBQVvd25lcgUKc3Rha2VkVGltZQFpAR5zdGFrZWRMYW5kc0J5T3duZXJJbmZvUkVBRE9OTFkBEGxhbmRPd25lckFkZHJlc3MDCQAAAgUQbGFuZE93bmVyQWRkcmVzcwIACQACAQIcbGFuZE93bmVyQWRkcmVzcyBpcyByZXF1aXJlZAQIbGFuZHNTdHIJAJ0IAgUPc3Rha2luZ0NvbnRyYWN0CQEVa2V5U3Rha2VkTGFuZHNCeU93bmVyAQUQbGFuZE93bmVyQWRkcmVzcwQFbGFuZHMDCQEJaXNEZWZpbmVkAQUIbGFuZHNTdHIJAL0JAgkBBXZhbHVlAQUIbGFuZHNTdHICAV8FA25pbAoBB29uZUxhbmQCA2FjYwtsYW5kQXNzZXRJZAMJAAACBQtsYW5kQXNzZXRJZAIACQACAQIXbGFuZEFzc2V0SWQgaXMgcmVxdWlyZWQECnN0YWtlZFRpbWUJAQt2YWx1ZU9yRWxzZQIJAJoIAgUPc3Rha2luZ0NvbnRyYWN0CQEWa2V5U3Rha2VkVGltZUJ5QXNzZXRJZAEFC2xhbmRBc3NldElkAP///////////wEJAM0IAgUDYWNjCQENbGFuZEluZm9BcnJheQMFC2xhbmRBc3NldElkBRBsYW5kT3duZXJBZGRyZXNzBQpzdGFrZWRUaW1lBAFyCgACJGwFBWxhbmRzCgACJHMJAJADAQUCJGwKAAUkYWNjMAUDbmlsCgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUC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dWUBCQCdCAIFD3N0YWtpbmdDb250cmFjdAkBFWtleUxhbmRBc3NldElkVG9Pd25lcgEFC2xhbmRBc3NldElkAgAJAJQKAgUDbmlsCQESbGFuZE9yZGVySW5mb0FycmF5AgULbGFuZEFzc2V0SWQFBW93bmVyAWkBG29yZGVyc0J5TGFuZElkc0luZm9SRUFET05MWQEMbGFuZEFzc2V0SWRzCgEHb25lTGFuZAIDYWNjC2xhbmRBc3NldElkAwkAAAIFC2xhbmRBc3NldElkAgAJAAIBAhdsYW5kQXNzZXRJZCBpcyByZXF1aXJlZAQKc3Rha2VkVGltZQkBC3ZhbHVlT3JFbHNlAgkAmggCBQ9zdGFraW5nQ29udHJhY3QJARZrZXlTdGFrZWRUaW1lQnlBc3NldElkAQULbGFuZEFzc2V0SWQA////////////AQQFb3duZXIDCQBmAgUKc3Rha2VkVGltZQAACQEFdmFsdWUBCQCdCAIFD3N0YWtpbmdDb250cmFjdAkBFWtleUxhbmRBc3NldElkVG9Pd25lcgEFC2xhbmRBc3NldElkAgAJAM0IAgUDYWNjCQESbGFuZE9yZGVySW5mb0FycmF5AgULbGFuZEFzc2V0SWQFBW93bmVyBAFyCgACJGwFDGxhbmRBc3NldElkcwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAFA25pbAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEHb25lTGFuZAIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgNDAJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUk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", "height": 2598506, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: XgZu6NETzQapkUN4K1aSBRNJqquh7mfBooixWEDVUC4 Next: 8J4kdK2gjWj7M5zA3UkZBpuzwB2GQxwbJJW9iEx7URa Diff:
OldNewDifferences
7171
7272 let C = 4
7373
74-func D () = "%s__restConfig"
75-
74+let D = 0
7675
7776 let E = 1
7877
8079
8180 let G = 3
8281
83-let H = [10, 10, 10, 100, 100, 100, 10, 10, 10, 100, 100, 100, 10, 10, 10]
84-
85-func I (J,K) = valueOrErrorMessage(getString(J, K), makeString(["mandatory ", toString(J), ".", K, " is not defined"], ""))
82+func H () = "%s__restConfig"
8683
8784
88-func L () = split_4C(I(this, D()), i)
85+let I = 1
86+
87+let J = 2
88+
89+let K = 3
90+
91+let L = [10, 10, 10, 100, 100, 100, 10, 10, 10, 100, 100, 100, 10, 10, 10]
92+
93+func M (N,O) = valueOrErrorMessage(getString(N, O), makeString(["mandatory ", toString(N), ".", O, " is not defined"], ""))
8994
9095
91-func M (N,O) = valueOrErrorMessage(addressFromString(N[O]), ("Rest cfg doesn't contain address at index " + toString(O)))
96+func P () = split_4C(M(this, H()), i)
9297
9398
94-let N = L()
95-
96-let P = M(N, E)
97-
98-let Q = M(N, F)
99-
100-let R = M(N, F)
101-
102-func S () = "contractsBlocked"
99+func Q (R,S) = valueOrErrorMessage(addressFromString(R[S]), ("Rest cfg doesn't contain address at index " + toString(S)))
103100
104101
105-func T (U) = ("duckOwner_" + U)
102+let R = P()
103+
104+let T = Q(R, I)
105+
106+let U = Q(R, J)
107+
108+let V = Q(R, J)
109+
110+func W () = "contractsBlocked"
106111
107112
108-func V (U) = ("stakedTime_" + U)
113+func X (Y) = ("duckOwner_" + Y)
109114
110115
111-func W (X) = ("stakedDuckByOwner_" + X)
116+func Z (Y) = ("stakedTime_" + Y)
112117
113118
114-func Y (Z,U,X) = ((((("stakedTimeByTypeAssetIdAndOwner_" + Z) + "_") + U) + "_") + X)
119+func aa (ab) = ("stakedDuckByOwner_" + ab)
115120
116121
117-func aa (ab) = ("backPack_" + ab)
122+func ac (ad,Y,ab) = ((((("stakedTimeByTypeAssetIdAndOwner_" + ad) + "_") + Y) + "_") + ab)
118123
119124
120-func ac (ad) = ("wareHouse_" + ad)
125+func ae (af) = ("backPack_" + af)
121126
122127
123-func ae (ab) = ("duckLocation_" + ab)
128+func ag (ah) = ("wareHouse_" + ah)
124129
125130
126-func af (ab) = ("duckHealth_" + ab)
131+func ai (af) = ("duckLocation_" + af)
127132
128133
129-func ag (U) = ("nftOwner_" + U)
134+func aj (af) = ("duckHealth_" + af)
130135
131136
132-func ah (U) = ("landCustomNameByAssetId_" + U)
137+func ak (Y) = ("nftOwner_" + Y)
133138
134139
135-func ai (U) = ("duckCustomNameByAssetId_" + U)
140+func al (Y) = ("landCustomNameByAssetId_" + Y)
136141
137142
138-func aj (ak) = ("accountCustomNameByAddr_" + ak)
143+func am (Y) = ("duckCustomNameByAssetId_" + Y)
139144
140145
141-func al (ak) = ("accRefBy_" + ak)
146+func an (ao) = ("accountCustomNameByAddr_" + ao)
142147
143148
144-func am (ak) = ("accReferrals_" + ak)
149+func ap (ao) = ("accRefBy_" + ao)
145150
146151
147-func an (U) = ("infraLevel_" + U)
152+func aq (ao) = ("accReferrals_" + ao)
148153
149154
150-func ao (ap,U) = makeString(["landArtStatus", ap, U], "_")
155+func ar (Y) = ("infraLevel_" + Y)
151156
152157
153-func aq (U) = ("presaleArtActivated_" + U)
158+func as (at,Y) = makeString(["landArtStatus", at, Y], "_")
154159
155160
156-func ar (X) = ("stakedLandsByOwner_" + X)
161+func au (Y) = ("presaleArtActivated_" + Y)
157162
158163
159-func as (ak) = ("lastTxIdByUser_" + ak)
164+func av (ab) = ("stakedLandsByOwner_" + ab)
160165
161166
162-func at (ad) = ("landOrder_" + ad)
167+func aw (ao) = ("lastTxIdByUser_" + ao)
163168
164169
165-func au (av) = {
166- let c = av
170+func ax (ah) = ("landOrder_" + ah)
171+
172+
173+func ay (az) = {
174+ let c = az
167175 if ($isInstanceOf(c, "String"))
168176 then {
169- let aw = c
170- aw
177+ let aA = c
178+ aA
171179 }
172180 else throw("fail to cast into String")
173181 }
174182
175183
176-func ax (av) = {
177- let c = av
184+func aB (az) = {
185+ let c = az
178186 if ($isInstanceOf(c, "Int"))
179187 then {
180- let ay = c
181- ay
188+ let aC = c
189+ aC
182190 }
183191 else throw("fail to cast into Int")
184192 }
185193
186194
187-func az (av) = {
188- let c = av
195+func aD (az) = {
196+ let c = az
189197 if ($isInstanceOf(c, "Boolean"))
190198 then {
191- let aw = c
192- aw
199+ let aA = c
200+ aA
193201 }
194202 else throw("fail to cast into Boolean")
195203 }
196204
197205
198-func aA (aB) = {
199- let c = aB
206+func aE (aF) = {
207+ let c = aF
200208 if ($isInstanceOf(c, "List[Any]"))
201209 then {
202- let aC = c
203- if ((size(aC) != m))
204- then throw(("Array size is " + toString(size(aC))))
210+ let aG = c
211+ if ((size(aG) != m))
212+ then throw(("Array size is " + toString(size(aG))))
205213 else {
206- func aD (aE,aF) = {
207- let aG = aF
208- if ($isInstanceOf(aG, "Int"))
214+ func aH (aI,aJ) = {
215+ let aK = aJ
216+ if ($isInstanceOf(aK, "Int"))
209217 then {
210- let aH = aG
211- (aE :+ toString(aH))
218+ let aL = aK
219+ (aI :+ toString(aL))
212220 }
213221 else throw("List type is not Int")
214222 }
215223
216- let aI = {
217- let aJ = aC
218- let aK = size(aJ)
219- let aL = nil
220- func aM (aN,aO) = if ((aO >= aK))
221- then aN
222- else aD(aN, aJ[aO])
224+ let aM = {
225+ let aN = aG
226+ let aO = size(aN)
227+ let aP = nil
228+ func aQ (aR,aS) = if ((aS >= aO))
229+ then aR
230+ else aH(aR, aN[aS])
223231
224- func aP (aN,aO) = if ((aO >= aK))
225- then aN
232+ func aT (aR,aS) = if ((aS >= aO))
233+ then aR
226234 else throw("List size exceeds 6")
227235
228- aP(aM(aM(aM(aM(aM(aM(aL, 0), 1), 2), 3), 4), 5), 6)
236+ aT(aQ(aQ(aQ(aQ(aQ(aQ(aP, 0), 1), 2), 3), 4), 5), 6)
229237 }
230- makeString(aI, "_")
238+ makeString(aM, "_")
231239 }
232240 }
233241 else throw("fail to cast into List")
234242 }
235243
236244
237-func aQ (aB) = {
238- let c = aB
245+func aU (aF) = {
246+ let c = aF
239247 if ($isInstanceOf(c, "(List[Any], List[Any])"))
240248 then {
241- let aR = c
242- $Tuple2(aA(aR._1), aA(aR._2))
249+ let aV = c
250+ $Tuple2(aE(aV._1), aE(aV._2))
243251 }
244252 else throw("fail to cast into (List, List)")
245253 }
246254
247255
248-func aS (aT) = {
249- let ak = addressFromString(aT)
250- let aU = if (isDefined(ak))
251- then wavesBalance(value(ak))
256+func aW (aX) = {
257+ let ao = addressFromString(aX)
258+ let aY = if (isDefined(ao))
259+ then wavesBalance(value(ao))
252260 else BalanceDetails(0, 0, 0, 0)
253- let aV = if (isDefined(ak))
254- then assetBalance(value(ak), b)
261+ let aZ = if (isDefined(ao))
262+ then assetBalance(value(ao), b)
255263 else 0
256- let aW = valueOrElse(getString(P, aj(aT)), aT)
257- let aX = valueOrElse(getString(P, al(aT)), "")
258- let aY = valueOrElse(getString(P, am(aT)), "")
259- let aZ = valueOrElse(getString(P, as(aT)), "")
260-[("%s%s__customName__" + aW), ("%s%s__referredBy__" + aX), ("%s%s__referrals__" + aY), ("%s%s__lastTxId__" + aZ), ("%s%s%d__wavesBalance__" + toString(aU.available)), ("%s%s%d__usdtBalance__" + toString(aV))]
264+ let ba = valueOrElse(getString(T, an(aX)), aX)
265+ let bb = valueOrElse(getString(T, ap(aX)), "")
266+ let bc = valueOrElse(getString(T, aq(aX)), "")
267+ let bd = valueOrElse(getString(T, aw(aX)), "")
268+[("%s%s__customName__" + ba), ("%s%s__referredBy__" + bb), ("%s%s__referrals__" + bc), ("%s%s__lastTxId__" + bd), ("%s%s%d__wavesBalance__" + toString(aY.available)), ("%s%s%d__usdtBalance__" + toString(aZ))]
261269 }
262270
263271
264-func ba (ad,bb) = {
265- let bc = valueOrElse(getInteger(P, an(ad)), 0)
266- let bd = valueOrElse(getInteger(P, ao(j, ad)), if (valueOrElse(getBoolean(P, aq(ad)), false))
267- then bb
272+func be (ah,bf) = {
273+ let bg = valueOrElse(getInteger(T, ar(ah)), 0)
274+ let bh = valueOrElse(getInteger(T, as(j, ah)), if (valueOrElse(getBoolean(T, au(ah)), false))
275+ then bf
268276 else 0)
269- let be = (bc / 6)
270- let bf = (bc / 7)
271- $Tuple3(bc, bd, ((k + fraction(k, ((bc + be) + (2 * bf)), 5)) + fraction(k, bd, (bb * 5))))
277+ let bi = (bg / 6)
278+ let bj = (bg / 7)
279+ $Tuple3(bg, bh, ((k + fraction(k, ((bg + bi) + (2 * bj)), 5)) + fraction(k, bh, (bf * 5))))
272280 }
273281
274282
275-func bg (bh) = {
276- let c = bh
283+func bk (bl) = {
284+ let c = bl
277285 if (("S" == c))
278286 then n
279287 else if (("M" == c))
288296 }
289297
290298
291-func bi (bj) = {
292- let bk = split(bj, "_")
293- ((t * (parseIntValue(bk[1]) + 1)) * parseIntValue(bk[0]))
299+func bm (bn) = {
300+ let bo = split(bn, "_")
301+ ((t * (parseIntValue(bo[1]) + 1)) * parseIntValue(bo[0]))
294302 }
295303
296304
297-func bl (bm) = {
298- let bn = bm[B]
299- func bo (aE,aF) = (aE + parseIntValue(aF))
305+func bp (bq) = {
306+ let br = bq[B]
307+ func bs (aI,aJ) = (aI + parseIntValue(aJ))
300308
301- func bp (aE,aF) = {
302- let O = aE._1
303- let bq = H[O]
304- let br = (((parseIntValue(aF) + bq) - 1) / bq)
305- $Tuple2((O + 1), (aE._2 + (br * f)))
309+ func bt (aI,aJ) = {
310+ let S = aI._1
311+ let bu = L[S]
312+ let bv = (((parseIntValue(aJ) + bu) - 1) / bu)
313+ $Tuple2((S + 1), (aI._2 + (bv * f)))
306314 }
307315
308- let bs = {
309- let aJ = split(bm[z], "_")
310- let aK = size(aJ)
311- let aL = 0
312- func aM (aN,aO) = if ((aO >= aK))
313- then aN
314- else bo(aN, aJ[aO])
316+ let bw = {
317+ let aN = split(bq[z], "_")
318+ let aO = size(aN)
319+ let aP = 0
320+ func aQ (aR,aS) = if ((aS >= aO))
321+ then aR
322+ else bs(aR, aN[aS])
315323
316- func aP (aN,aO) = if ((aO >= aK))
317- then aN
324+ func aT (aR,aS) = if ((aS >= aO))
325+ then aR
318326 else throw("List size exceeds 6")
319327
320- aP(aM(aM(aM(aM(aM(aM(aL, 0), 1), 2), 3), 4), 5), 6)
328+ aT(aQ(aQ(aQ(aQ(aQ(aQ(aP, 0), 1), 2), 3), 4), 5), 6)
321329 }
322- let bt = {
323- let aJ = split(bm[A], "_")
324- let aK = size(aJ)
325- let aL = 0
326- func bu (aN,aO) = if ((aO >= aK))
327- then aN
328- else bo(aN, aJ[aO])
330+ let bx = {
331+ let aN = split(bq[A], "_")
332+ let aO = size(aN)
333+ let aP = 0
334+ func by (aR,aS) = if ((aS >= aO))
335+ then aR
336+ else bs(aR, aN[aS])
329337
330- func bv (aN,aO) = if ((aO >= aK))
331- then aN
338+ func bz (aR,aS) = if ((aS >= aO))
339+ then aR
332340 else throw("List size exceeds 6")
333341
334- bv(bu(bu(bu(bu(bu(bu(aL, 0), 1), 2), 3), 4), 5), 6)
342+ bz(by(by(by(by(by(by(aP, 0), 1), 2), 3), 4), 5), 6)
335343 }
336- let bw = if ((bn == ""))
344+ let bA = if ((br == ""))
337345 then 0
338- else ( let aJ = split_4C(bn, "_")
339- let aK = size(aJ)
340- let aL = $Tuple2(0, 0)
341- func bx (aN,aO) = if ((aO >= aK))
342- then aN
343- else bp(aN, aJ[aO])
346+ else ( let aN = split_4C(br, "_")
347+ let aO = size(aN)
348+ let aP = $Tuple2(0, 0)
349+ func bB (aR,aS) = if ((aS >= aO))
350+ then aR
351+ else bt(aR, aN[aS])
344352
345- func by (aN,aO) = if ((aO >= aK))
346- then aN
353+ func bC (aR,aS) = if ((aS >= aO))
354+ then aR
347355 else throw("List size exceeds 50")
348356
349- by(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(aL, 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))._2
350- ((bs + bt) + bw)
357+ bC(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(aP, 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))._2
358+ ((bw + bx) + bA)
351359 }
352360
353361
354-func bz (bA,bB,bc) = {
355- let bj = ((toString(bB) + "_") + toString(bc))
356- let bC = bi(bj)
357- let bD = valueOrElse(getString(P, bA), (bj + ":0_0_0_0_0_0:0_0_0_0_0_0::0"))
358- let bE = split(bD, ":")
359- let bF = if ((5 > size(bE)))
360- then 0
361- else parseIntValue(bE[C])
362- let bG = bl(bE)
363-[bE[y], if ((size(split(bE[z], "_")) == m))
364- then bE[z]
365- else "0_0_0_0_0_0", if ((size(split(bE[A], "_")) == m))
366- then bE[A]
367- else "0_0_0_0_0_0", bE[B], makeString([toString(bF), toString(bG), toString(((bC - bF) - bG)), toString(bC)], "_")]
362+func bD (bE,bF,bg) = {
363+ let bn = ((toString(bF) + "_") + toString(bg))
364+ let bG = bm(bn)
365+ let bH = valueOrElse(getString(T, bE), (bn + ":0_0_0_0_0_0:0_0_0_0_0_0::0"))
366+ let bI = split(bH, ":")
367+ let bJ = bp(bI)
368+ let bK = if ((5 > size(bI)))
369+ then makeString(["0", toString(bJ), toString((bG - bJ)), toString(bG)], "_")
370+ else {
371+ let bL = split(bI[C], "_")
372+ let bM = parseIntValue(bL[D])
373+ let bN = if ((size(bL) > 1))
374+ then parseIntValue(bL[E])
375+ else bJ
376+ makeString([toString(bM), toString(bN), toString(((bG - bM) - bN)), toString(bG)], "_")
377+ }
378+[bI[y], if ((size(split(bI[z], "_")) == m))
379+ then bI[z]
380+ else "0_0_0_0_0_0", if ((size(split(bI[A], "_")) == m))
381+ then bI[A]
382+ else "0_0_0_0_0_0", bI[B], bK]
368383 }
369384
370385
371-func bH (ab) = $Tuple5(valueOrElse(getInteger(P, V(ab)), -1), value(assetInfo(fromBase58String(ab))).name, valueOrElse(getString(P, ae(ab)), ""), valueOrElse(getInteger(P, af(ab)), -1), au(invoke(P, "getBackpackREADONLY", [ab], nil)))
386+func bO (af) = $Tuple5(valueOrElse(getInteger(T, Z(af)), -1), value(assetInfo(fromBase58String(af))).name, valueOrElse(getString(T, ai(af)), ""), valueOrElse(getInteger(T, aj(af)), -1), ay(invoke(T, "getBackpackREADONLY", [af], nil)))
372387
373388
374-func bI (ab,bJ,bK) = {
375- let aW = valueOrElse(getString(P, ai(ab)), bK._2)
376-[("%s%s__assetId__" + ab), ("%s%s__owner__" + bJ), ("%s%s__customName__" + aW), ("%s%d__stakedTime__" + toString(bK._1)), ("%s%s__name__" + bK._2), ("%s%s__location__" + bK._3), ("%s%d__health__" + toString(bK._4)), ("%s%s__backPack__" + bK._5)]
389+func bP (af,bQ,bR) = {
390+ let ba = valueOrElse(getString(T, am(af)), bR._2)
391+[("%s%s__assetId__" + af), ("%s%s__owner__" + bQ), ("%s%s__customName__" + ba), ("%s%d__stakedTime__" + toString(bR._1)), ("%s%s__name__" + bR._2), ("%s%s__location__" + bR._3), ("%s%d__health__" + toString(bR._4)), ("%s%s__backPack__" + bR._5)]
377392 }
378393
379394
380-func bL (ad,bJ,bM) = if ((ad == ""))
395+func bS (ah,bQ,bT) = if ((ah == ""))
381396 then throw("landAssetId is required")
382397 else {
383- let bN = value(assetInfo(fromBase58String(ad)))
384- let bO = split(bN.description, "_")
385- let bP = if ((bN.quantity > 0))
386- then bO[u]
387- else ("-" + bO[u])
388- let bb = bg(bO[v])
389- let bQ = ba(ad, bb)
390- let bR = (lastBlock.timestamp - bM)
391- let bS = if ((bM > 0))
392- then fraction(bR, (bQ._3 * bb), l)
398+ let bU = value(assetInfo(fromBase58String(ah)))
399+ let bV = split(bU.description, "_")
400+ let bW = if ((bU.quantity > 0))
401+ then bV[u]
402+ else ("-" + bV[u])
403+ let bf = bk(bV[v])
404+ let bX = be(ah, bf)
405+ let bY = (lastBlock.timestamp - bT)
406+ let bZ = if ((bT > 0))
407+ then fraction(bY, (bX._3 * bf), l)
393408 else 0
394- let bT = fraction(d, (bb * (bQ._1 + 1)), n)
395- let bU = if ((bM > 0))
396- then aQ(invoke(P, "splitByGlobalAndLocalWeightsREADONLY", [bT, bS, bO[w]], nil))
397- else $Tuple2(aA(invoke(P, "splitByGlobalWeightsREADONLY", [bT], nil)), "")
398- let aW = valueOrElse(getString(P, ah(ad)), ((bO[x] + "-") + bO[u]))
399-[("%s%s__assetId__" + ad), ("%s%s__owner__" + bJ), ("%s%s__customName__" + aW), ("%s%d__stakedTime__" + toString(bM)), ("%s%s__description__" + makeString([bP, bO[v], bO[w], bO[x]], "_")), ("%s%d__infraLevel__" + toString(bQ._1)), ("%s%s__availResByType__" + bU._2), ("%s%d__availResTotal__" + toString(bS)), ("%s%s__needMaterial__" + bU._1), makeString(["%s%s", "landArtefacts", ("PRESALE:" + toString(bQ._2))], i), ("%s%s__warehouse__" + makeString(bz(ac(ad), (bb / n), bQ._1), ":")), ("%s%s__landOrder__" + valueOrElse(getString(Q, at(ad)), "0@0_0@0_0@0_0@0_0@0_0@0:0@0_0@0_0@0_0@0_0@0_0@0:"))]
409+ let ca = fraction(d, (bf * (bX._1 + 1)), n)
410+ let cb = if ((bT > 0))
411+ then aU(invoke(T, "splitByGlobalAndLocalWeightsREADONLY", [ca, bZ, bV[w]], nil))
412+ else $Tuple2(aE(invoke(T, "splitByGlobalWeightsREADONLY", [ca], nil)), "")
413+ let ba = valueOrElse(getString(T, al(ah)), ((bV[x] + "-") + bV[u]))
414+[("%s%s__assetId__" + ah), ("%s%s__owner__" + bQ), ("%s%s__customName__" + ba), ("%s%d__stakedTime__" + toString(bT)), ("%s%s__description__" + makeString([bW, bV[v], bV[w], bV[x]], "_")), ("%s%d__infraLevel__" + toString(bX._1)), ("%s%s__availResByType__" + cb._2), ("%s%d__availResTotal__" + toString(bZ)), ("%s%s__needMaterial__" + cb._1), makeString(["%s%s", "landArtefacts", ("PRESALE:" + toString(bX._2))], i), ("%s%s__warehouse__" + makeString(bD(ag(ah), (bf / n), bX._1), ":")), ("%s%s__landOrder__" + valueOrElse(getString(U, ax(ah)), "0@0_0@0_0@0_0@0_0@0_0@0:0@0_0@0_0@0_0@0_0@0_0@0:"))]
400415 }
401416
402417
403-func bV (ad,bJ) = if ((ad == ""))
418+func cc (ah,bQ) = if ((ah == ""))
404419 then throw("landAssetId is required")
405420 else {
406- let bN = value(assetInfo(fromBase58String(ad)))
407- let bO = split(bN.description, "_")
408- let bb = bg(bO[v])
409- let bQ = ba(ad, bb)
410-[("%s%s__assetId__" + ad), ("%s%s__owner__" + bJ), ("%s%s__warehouse__" + makeString(bz(ac(ad), (bb / n), bQ._1), ":")), ("%s%s__landOrder__" + valueOrElse(getString(Q, at(ad)), "0@0_0@0_0@0_0@0_0@0_0@0:0@0_0@0_0@0_0@0_0@0_0@0:"))]
421+ let bU = value(assetInfo(fromBase58String(ah)))
422+ let bV = split(bU.description, "_")
423+ let bf = bk(bV[v])
424+ let bX = be(ah, bf)
425+[("%s%s__assetId__" + ah), ("%s%s__owner__" + bQ), ("%s%s__warehouse__" + makeString(bD(ag(ah), (bf / n), bX._1), ":")), ("%s%s__landOrder__" + valueOrElse(getString(U, ax(ah)), "0@0_0@0_0@0_0@0_0@0_0@0:0@0_0@0_0@0_0@0_0@0_0@0:"))]
411426 }
412427
413428
414-@Callable(bW)
415-func constructorV1 (P,Q,R) = if ((bW.caller != this))
429+@Callable(cd)
430+func constructorV1 (T,U,V) = if ((cd.caller != this))
416431 then throw("permissions denied")
417- else [StringEntry(D(), makeString(["%s%s%s", P, Q, R], i))]
432+ else [StringEntry(H(), makeString(["%s%s%s", T, U, V], i))]
418433
419434
420435
421-@Callable(bW)
422-func walletInfoREADONLY (aT) = $Tuple2(nil, aS(aT))
436+@Callable(cd)
437+func walletInfoREADONLY (aX) = $Tuple2(nil, aW(aX))
423438
424439
425440
426-@Callable(bW)
427-func duckByOwnerInfoREADONLY (bX) = {
428- let bY = getString(P, W(bX))
429- $Tuple2(nil, if (if (isDefined(addressFromString(bX)))
430- then isDefined(bY)
441+@Callable(cd)
442+func duckByOwnerInfoREADONLY (ce) = {
443+ let cf = getString(T, aa(ce))
444+ $Tuple2(nil, if (if (isDefined(addressFromString(ce)))
445+ then isDefined(cf)
431446 else false)
432447 then {
433- let ab = value(bY)
434- bI(ab, bX, bH(ab))
448+ let af = value(cf)
449+ bP(af, ce, bO(af))
435450 }
436- else bI("", bX, $Tuple5(-1, "", "", -1, "")))
451+ else bP("", ce, $Tuple5(-1, "", "", -1, "")))
437452 }
438453
439454
440455
441-@Callable(bW)
442-func duckByAssetIdInfoREADONLY (ab) = {
443- let bJ = getString(P, T(ab))
444- let bK = bH(ab)
445- $Tuple2(nil, bI(ab, if (isDefined(bJ))
446- then value(bJ)
447- else "", bH(ab)))
456+@Callable(cd)
457+func duckByAssetIdInfoREADONLY (af) = {
458+ let bQ = getString(T, X(af))
459+ let bR = bO(af)
460+ $Tuple2(nil, bP(af, if (isDefined(bQ))
461+ then value(bQ)
462+ else "", bO(af)))
448463 }
449464
450465
451466
452-@Callable(bW)
453-func landByAssetIdInfoREADONLY (ad) = if ((ad == ""))
467+@Callable(cd)
468+func landByAssetIdInfoREADONLY (ah) = if ((ah == ""))
454469 then throw("landAssetId is required")
455470 else {
456- let bM = valueOrElse(getInteger(P, V(ad)), -1)
457- let bJ = if ((bM > 0))
458- then value(getString(P, ag(ad)))
471+ let bT = valueOrElse(getInteger(T, Z(ah)), -1)
472+ let bQ = if ((bT > 0))
473+ then value(getString(T, ak(ah)))
459474 else ""
460- $Tuple2(nil, bL(ad, bJ, bM))
475+ $Tuple2(nil, bS(ah, bQ, bT))
461476 }
462477
463478
464479
465-@Callable(bW)
466-func stakedLandsByOwnerInfoREADONLY (bZ) = if ((bZ == ""))
480+@Callable(cd)
481+func stakedLandsByOwnerInfoREADONLY (cg) = if ((cg == ""))
467482 then throw("landOwnerAddress is required")
468483 else {
469- let ca = getString(P, ar(bZ))
470- let cb = if (isDefined(ca))
471- then split_51C(value(ca), "_")
484+ let ch = getString(T, av(cg))
485+ let ci = if (isDefined(ch))
486+ then split_51C(value(ch), "_")
472487 else nil
473- func cc (aE,ad) = if ((ad == ""))
488+ func cj (aI,ah) = if ((ah == ""))
474489 then throw("landAssetId is required")
475490 else {
476- let bM = valueOrElse(getInteger(P, V(ad)), -1)
477- (aE :+ bL(ad, bZ, bM))
491+ let bT = valueOrElse(getInteger(T, Z(ah)), -1)
492+ (aI :+ bS(ah, cg, bT))
478493 }
479494
480- let aI = {
481- let aJ = cb
482- let aK = size(aJ)
483- let aL = nil
484- func aM (aN,aO) = if ((aO >= aK))
485- then aN
486- else cc(aN, aJ[aO])
495+ let aM = {
496+ let aN = ci
497+ let aO = size(aN)
498+ let aP = nil
499+ func aQ (aR,aS) = if ((aS >= aO))
500+ then aR
501+ else cj(aR, aN[aS])
487502
488- func aP (aN,aO) = if ((aO >= aK))
489- then aN
503+ func aT (aR,aS) = if ((aS >= aO))
504+ then aR
490505 else throw("List size exceeds 40")
491506
492- aP(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aL, 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)
507+ aT(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aP, 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)
493508 }
494- $Tuple2(nil, aI)
509+ $Tuple2(nil, aM)
495510 }
496511
497512
498513
499-@Callable(bW)
500-func landsByIdsInfoREADONLY (cd) = {
501- func cc (aE,ad) = if ((ad == ""))
514+@Callable(cd)
515+func landsByIdsInfoREADONLY (ck) = {
516+ func cj (aI,ah) = if ((ah == ""))
502517 then throw("landAssetId is required")
503518 else {
504- let bM = valueOrElse(getInteger(P, V(ad)), -1)
505- let bJ = if ((bM > 0))
506- then value(getString(P, ag(ad)))
519+ let bT = valueOrElse(getInteger(T, Z(ah)), -1)
520+ let bQ = if ((bT > 0))
521+ then value(getString(T, ak(ah)))
507522 else ""
508- (aE :+ bL(ad, bJ, bM))
523+ (aI :+ bS(ah, bQ, bT))
509524 }
510525
511- let aI = {
512- let aJ = cd
513- let aK = size(aJ)
514- let aL = nil
515- func aM (aN,aO) = if ((aO >= aK))
516- then aN
517- else cc(aN, aJ[aO])
526+ let aM = {
527+ let aN = ck
528+ let aO = size(aN)
529+ let aP = nil
530+ func aQ (aR,aS) = if ((aS >= aO))
531+ then aR
532+ else cj(aR, aN[aS])
518533
519- func aP (aN,aO) = if ((aO >= aK))
520- then aN
534+ func aT (aR,aS) = if ((aS >= aO))
535+ then aR
521536 else throw("List size exceeds 40")
522537
523- aP(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aL, 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)
538+ aT(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aP, 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)
524539 }
525- $Tuple2(nil, aI)
540+ $Tuple2(nil, aM)
526541 }
527542
528543
529544
530-@Callable(bW)
531-func warehouseOrderByAssetIdInfoREADONLY (ad) = if ((ad == ""))
545+@Callable(cd)
546+func warehouseOrderByAssetIdInfoREADONLY (ah) = if ((ah == ""))
532547 then throw("landAssetId is required")
533548 else {
534- let bM = valueOrElse(getInteger(P, V(ad)), -1)
535- let bJ = if ((bM > 0))
536- then value(getString(P, ag(ad)))
549+ let bT = valueOrElse(getInteger(T, Z(ah)), -1)
550+ let bQ = if ((bT > 0))
551+ then value(getString(T, ak(ah)))
537552 else ""
538- $Tuple2(nil, bV(ad, bJ))
553+ $Tuple2(nil, cc(ah, bQ))
539554 }
540555
541556
542557
543-@Callable(bW)
544-func ordersByLandIdsInfoREADONLY (cd) = {
545- func cc (aE,ad) = if ((ad == ""))
558+@Callable(cd)
559+func ordersByLandIdsInfoREADONLY (ck) = {
560+ func cj (aI,ah) = if ((ah == ""))
546561 then throw("landAssetId is required")
547562 else {
548- let bM = valueOrElse(getInteger(P, V(ad)), -1)
549- let bJ = if ((bM > 0))
550- then value(getString(P, ag(ad)))
563+ let bT = valueOrElse(getInteger(T, Z(ah)), -1)
564+ let bQ = if ((bT > 0))
565+ then value(getString(T, ak(ah)))
551566 else ""
552- (aE :+ bV(ad, bJ))
567+ (aI :+ cc(ah, bQ))
553568 }
554569
555- let aI = {
556- let aJ = cd
557- let aK = size(aJ)
558- let aL = nil
559- func aM (aN,aO) = if ((aO >= aK))
560- then aN
561- else cc(aN, aJ[aO])
570+ let aM = {
571+ let aN = ck
572+ let aO = size(aN)
573+ let aP = nil
574+ func aQ (aR,aS) = if ((aS >= aO))
575+ then aR
576+ else cj(aR, aN[aS])
562577
563- func aP (aN,aO) = if ((aO >= aK))
564- then aN
578+ func aT (aR,aS) = if ((aS >= aO))
579+ then aR
565580 else throw("List size exceeds 40")
566581
567- aP(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aL, 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)
582+ aT(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aP, 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)
568583 }
569- $Tuple2(nil, aI)
584+ $Tuple2(nil, aM)
570585 }
571586
572587
573588
574-@Callable(bW)
575-func cancelWarehouseOrders (cd) = if ((bW.caller != this))
589+@Callable(cd)
590+func cancelWarehouseOrders (ck) = if ((cd.caller != this))
576591 then throw("permission denied")
577592 else {
578- let ce = getBoolean(P, S())
579- if (if (!(isDefined(ce)))
593+ let cl = getBoolean(T, W())
594+ if (if (!(isDefined(cl)))
580595 then true
581- else (value(ce) == false))
596+ else (value(cl) == false))
582597 then throw("Contracts should be blocked before canceling orders")
583598 else {
584- func cc (bN,ad) = if ((ad == ""))
599+ func cj (bU,ah) = if ((ah == ""))
585600 then throw("landAssetId is required")
586601 else {
587- let cf = az(invoke(Q, "setWarehouseOrder", ["0@0_0@0_0@0_0@0_0@0_0@0:0@0_0@0_0@0_0@0_0@0_0@0:", ad], nil))
588- if (if (bN)
602+ let cm = aD(invoke(U, "setWarehouseOrder", ["0@0_0@0_0@0_0@0_0@0_0@0:0@0_0@0_0@0_0@0_0@0_0@0:", ah], nil))
603+ if (if (bU)
589604 then true
590- else cf)
591- then !(if (bN)
592- then cf
605+ else cm)
606+ then !(if (bU)
607+ then cm
593608 else false)
594609 else false
595610 }
596611
597- let aI = {
598- let aJ = cd
599- let aK = size(aJ)
600- let aL = false
601- func aM (aN,aO) = if ((aO >= aK))
602- then aN
603- else cc(aN, aJ[aO])
612+ let aM = {
613+ let aN = ck
614+ let aO = size(aN)
615+ let aP = false
616+ func aQ (aR,aS) = if ((aS >= aO))
617+ then aR
618+ else cj(aR, aN[aS])
604619
605- func aP (aN,aO) = if ((aO >= aK))
606- then aN
620+ func aT (aR,aS) = if ((aS >= aO))
621+ then aR
607622 else throw("List size exceeds 30")
608623
609- aP(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aL, 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)
624+ aT(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aP, 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)
610625 }
611- $Tuple2(nil, aI)
626+ $Tuple2(nil, aM)
612627 }
613628 }
614629
615630
616631
617-@Callable(bW)
618-func replaceBooleanArtifacts (cd) = if ((bW.caller != this))
632+@Callable(cd)
633+func replaceBooleanArtifacts (ck) = if ((cd.caller != this))
619634 then throw("permission denied")
620635 else {
621- func cc (aE,ad) = if ((ad == ""))
636+ func cj (aI,ah) = if ((ah == ""))
622637 then throw("landAssetId is required")
623- else if (isDefined(getBoolean(P, aq(ad))))
624- then (aE + ax(invoke(P, "replaceBooleanArtifact", [ad], nil)))
625- else aE
638+ else if (isDefined(getBoolean(T, au(ah))))
639+ then (aI + aB(invoke(T, "replaceBooleanArtifact", [ah], nil)))
640+ else aI
626641
627- let aI = {
628- let aJ = cd
629- let aK = size(aJ)
630- let aL = 0
631- func aM (aN,aO) = if ((aO >= aK))
632- then aN
633- else cc(aN, aJ[aO])
642+ let aM = {
643+ let aN = ck
644+ let aO = size(aN)
645+ let aP = 0
646+ func aQ (aR,aS) = if ((aS >= aO))
647+ then aR
648+ else cj(aR, aN[aS])
634649
635- func aP (aN,aO) = if ((aO >= aK))
636- then aN
650+ func aT (aR,aS) = if ((aS >= aO))
651+ then aR
637652 else throw("List size exceeds 25")
638653
639- aP(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aL, 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)
654+ aT(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aP, 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)
640655 }
641- $Tuple2(nil, aI)
656+ $Tuple2(nil, aM)
642657 }
643658
644659
645660
646-@Callable(bW)
647-func sendUsdtPrize (bX) = if ((bW.caller != P))
661+@Callable(cd)
662+func sendUsdtPrize (ce) = if ((cd.caller != T))
648663 then throw("permission denied")
649664 else {
650- let cg = fraction(assetBalance(this, b), s, e)
651- $Tuple2([ScriptTransfer(addressFromStringValue(bX), cg, b)], cg)
665+ let cn = fraction(assetBalance(this, b), s, e)
666+ $Tuple2([ScriptTransfer(addressFromStringValue(ce), cn, b)], cn)
652667 }
653668
654669
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = take(drop(this.bytes, 1), 1)
55
66 let b = {
77 let c = a
88 if ((base58'2W' == c))
99 then base58'9wc3LXNA4TEBsXyKtoLE9mrbDD7WMHXvXrCjZvabLAsi'
1010 else if ((base58'2T' == c))
1111 then base58'6mWwf9mZBjVgkC54idpyaZLQfAosD914wT8fGf2iiY63'
1212 else throw("Unknown chain")
1313 }
1414
1515 let d = {
1616 let c = a
1717 if ((base58'2W' == c))
1818 then 10000000000
1919 else if ((base58'2T' == c))
2020 then 100000000
2121 else throw("Unknown chain")
2222 }
2323
2424 let e = 1000000
2525
2626 let f = 100000000
2727
2828 let g = "LAND"
2929
3030 let h = "DUCK"
3131
3232 let i = "__"
3333
3434 let j = "PRESALE"
3535
3636 let k = 3456000
3737
3838 let l = 86400000
3939
4040 let m = 6
4141
4242 let n = 25
4343
4444 let o = 100
4545
4646 let p = 225
4747
4848 let q = 400
4949
5050 let r = 625
5151
5252 let s = 500000
5353
5454 let t = 10000000000
5555
5656 let u = 0
5757
5858 let v = 1
5959
6060 let w = 2
6161
6262 let x = 3
6363
6464 let y = 0
6565
6666 let z = 1
6767
6868 let A = 2
6969
7070 let B = 3
7171
7272 let C = 4
7373
74-func D () = "%s__restConfig"
75-
74+let D = 0
7675
7776 let E = 1
7877
7978 let F = 2
8079
8180 let G = 3
8281
83-let H = [10, 10, 10, 100, 100, 100, 10, 10, 10, 100, 100, 100, 10, 10, 10]
84-
85-func I (J,K) = valueOrErrorMessage(getString(J, K), makeString(["mandatory ", toString(J), ".", K, " is not defined"], ""))
82+func H () = "%s__restConfig"
8683
8784
88-func L () = split_4C(I(this, D()), i)
85+let I = 1
86+
87+let J = 2
88+
89+let K = 3
90+
91+let L = [10, 10, 10, 100, 100, 100, 10, 10, 10, 100, 100, 100, 10, 10, 10]
92+
93+func M (N,O) = valueOrErrorMessage(getString(N, O), makeString(["mandatory ", toString(N), ".", O, " is not defined"], ""))
8994
9095
91-func M (N,O) = valueOrErrorMessage(addressFromString(N[O]), ("Rest cfg doesn't contain address at index " + toString(O)))
96+func P () = split_4C(M(this, H()), i)
9297
9398
94-let N = L()
95-
96-let P = M(N, E)
97-
98-let Q = M(N, F)
99-
100-let R = M(N, F)
101-
102-func S () = "contractsBlocked"
99+func Q (R,S) = valueOrErrorMessage(addressFromString(R[S]), ("Rest cfg doesn't contain address at index " + toString(S)))
103100
104101
105-func T (U) = ("duckOwner_" + U)
102+let R = P()
103+
104+let T = Q(R, I)
105+
106+let U = Q(R, J)
107+
108+let V = Q(R, J)
109+
110+func W () = "contractsBlocked"
106111
107112
108-func V (U) = ("stakedTime_" + U)
113+func X (Y) = ("duckOwner_" + Y)
109114
110115
111-func W (X) = ("stakedDuckByOwner_" + X)
116+func Z (Y) = ("stakedTime_" + Y)
112117
113118
114-func Y (Z,U,X) = ((((("stakedTimeByTypeAssetIdAndOwner_" + Z) + "_") + U) + "_") + X)
119+func aa (ab) = ("stakedDuckByOwner_" + ab)
115120
116121
117-func aa (ab) = ("backPack_" + ab)
122+func ac (ad,Y,ab) = ((((("stakedTimeByTypeAssetIdAndOwner_" + ad) + "_") + Y) + "_") + ab)
118123
119124
120-func ac (ad) = ("wareHouse_" + ad)
125+func ae (af) = ("backPack_" + af)
121126
122127
123-func ae (ab) = ("duckLocation_" + ab)
128+func ag (ah) = ("wareHouse_" + ah)
124129
125130
126-func af (ab) = ("duckHealth_" + ab)
131+func ai (af) = ("duckLocation_" + af)
127132
128133
129-func ag (U) = ("nftOwner_" + U)
134+func aj (af) = ("duckHealth_" + af)
130135
131136
132-func ah (U) = ("landCustomNameByAssetId_" + U)
137+func ak (Y) = ("nftOwner_" + Y)
133138
134139
135-func ai (U) = ("duckCustomNameByAssetId_" + U)
140+func al (Y) = ("landCustomNameByAssetId_" + Y)
136141
137142
138-func aj (ak) = ("accountCustomNameByAddr_" + ak)
143+func am (Y) = ("duckCustomNameByAssetId_" + Y)
139144
140145
141-func al (ak) = ("accRefBy_" + ak)
146+func an (ao) = ("accountCustomNameByAddr_" + ao)
142147
143148
144-func am (ak) = ("accReferrals_" + ak)
149+func ap (ao) = ("accRefBy_" + ao)
145150
146151
147-func an (U) = ("infraLevel_" + U)
152+func aq (ao) = ("accReferrals_" + ao)
148153
149154
150-func ao (ap,U) = makeString(["landArtStatus", ap, U], "_")
155+func ar (Y) = ("infraLevel_" + Y)
151156
152157
153-func aq (U) = ("presaleArtActivated_" + U)
158+func as (at,Y) = makeString(["landArtStatus", at, Y], "_")
154159
155160
156-func ar (X) = ("stakedLandsByOwner_" + X)
161+func au (Y) = ("presaleArtActivated_" + Y)
157162
158163
159-func as (ak) = ("lastTxIdByUser_" + ak)
164+func av (ab) = ("stakedLandsByOwner_" + ab)
160165
161166
162-func at (ad) = ("landOrder_" + ad)
167+func aw (ao) = ("lastTxIdByUser_" + ao)
163168
164169
165-func au (av) = {
166- let c = av
170+func ax (ah) = ("landOrder_" + ah)
171+
172+
173+func ay (az) = {
174+ let c = az
167175 if ($isInstanceOf(c, "String"))
168176 then {
169- let aw = c
170- aw
177+ let aA = c
178+ aA
171179 }
172180 else throw("fail to cast into String")
173181 }
174182
175183
176-func ax (av) = {
177- let c = av
184+func aB (az) = {
185+ let c = az
178186 if ($isInstanceOf(c, "Int"))
179187 then {
180- let ay = c
181- ay
188+ let aC = c
189+ aC
182190 }
183191 else throw("fail to cast into Int")
184192 }
185193
186194
187-func az (av) = {
188- let c = av
195+func aD (az) = {
196+ let c = az
189197 if ($isInstanceOf(c, "Boolean"))
190198 then {
191- let aw = c
192- aw
199+ let aA = c
200+ aA
193201 }
194202 else throw("fail to cast into Boolean")
195203 }
196204
197205
198-func aA (aB) = {
199- let c = aB
206+func aE (aF) = {
207+ let c = aF
200208 if ($isInstanceOf(c, "List[Any]"))
201209 then {
202- let aC = c
203- if ((size(aC) != m))
204- then throw(("Array size is " + toString(size(aC))))
210+ let aG = c
211+ if ((size(aG) != m))
212+ then throw(("Array size is " + toString(size(aG))))
205213 else {
206- func aD (aE,aF) = {
207- let aG = aF
208- if ($isInstanceOf(aG, "Int"))
214+ func aH (aI,aJ) = {
215+ let aK = aJ
216+ if ($isInstanceOf(aK, "Int"))
209217 then {
210- let aH = aG
211- (aE :+ toString(aH))
218+ let aL = aK
219+ (aI :+ toString(aL))
212220 }
213221 else throw("List type is not Int")
214222 }
215223
216- let aI = {
217- let aJ = aC
218- let aK = size(aJ)
219- let aL = nil
220- func aM (aN,aO) = if ((aO >= aK))
221- then aN
222- else aD(aN, aJ[aO])
224+ let aM = {
225+ let aN = aG
226+ let aO = size(aN)
227+ let aP = nil
228+ func aQ (aR,aS) = if ((aS >= aO))
229+ then aR
230+ else aH(aR, aN[aS])
223231
224- func aP (aN,aO) = if ((aO >= aK))
225- then aN
232+ func aT (aR,aS) = if ((aS >= aO))
233+ then aR
226234 else throw("List size exceeds 6")
227235
228- aP(aM(aM(aM(aM(aM(aM(aL, 0), 1), 2), 3), 4), 5), 6)
236+ aT(aQ(aQ(aQ(aQ(aQ(aQ(aP, 0), 1), 2), 3), 4), 5), 6)
229237 }
230- makeString(aI, "_")
238+ makeString(aM, "_")
231239 }
232240 }
233241 else throw("fail to cast into List")
234242 }
235243
236244
237-func aQ (aB) = {
238- let c = aB
245+func aU (aF) = {
246+ let c = aF
239247 if ($isInstanceOf(c, "(List[Any], List[Any])"))
240248 then {
241- let aR = c
242- $Tuple2(aA(aR._1), aA(aR._2))
249+ let aV = c
250+ $Tuple2(aE(aV._1), aE(aV._2))
243251 }
244252 else throw("fail to cast into (List, List)")
245253 }
246254
247255
248-func aS (aT) = {
249- let ak = addressFromString(aT)
250- let aU = if (isDefined(ak))
251- then wavesBalance(value(ak))
256+func aW (aX) = {
257+ let ao = addressFromString(aX)
258+ let aY = if (isDefined(ao))
259+ then wavesBalance(value(ao))
252260 else BalanceDetails(0, 0, 0, 0)
253- let aV = if (isDefined(ak))
254- then assetBalance(value(ak), b)
261+ let aZ = if (isDefined(ao))
262+ then assetBalance(value(ao), b)
255263 else 0
256- let aW = valueOrElse(getString(P, aj(aT)), aT)
257- let aX = valueOrElse(getString(P, al(aT)), "")
258- let aY = valueOrElse(getString(P, am(aT)), "")
259- let aZ = valueOrElse(getString(P, as(aT)), "")
260-[("%s%s__customName__" + aW), ("%s%s__referredBy__" + aX), ("%s%s__referrals__" + aY), ("%s%s__lastTxId__" + aZ), ("%s%s%d__wavesBalance__" + toString(aU.available)), ("%s%s%d__usdtBalance__" + toString(aV))]
264+ let ba = valueOrElse(getString(T, an(aX)), aX)
265+ let bb = valueOrElse(getString(T, ap(aX)), "")
266+ let bc = valueOrElse(getString(T, aq(aX)), "")
267+ let bd = valueOrElse(getString(T, aw(aX)), "")
268+[("%s%s__customName__" + ba), ("%s%s__referredBy__" + bb), ("%s%s__referrals__" + bc), ("%s%s__lastTxId__" + bd), ("%s%s%d__wavesBalance__" + toString(aY.available)), ("%s%s%d__usdtBalance__" + toString(aZ))]
261269 }
262270
263271
264-func ba (ad,bb) = {
265- let bc = valueOrElse(getInteger(P, an(ad)), 0)
266- let bd = valueOrElse(getInteger(P, ao(j, ad)), if (valueOrElse(getBoolean(P, aq(ad)), false))
267- then bb
272+func be (ah,bf) = {
273+ let bg = valueOrElse(getInteger(T, ar(ah)), 0)
274+ let bh = valueOrElse(getInteger(T, as(j, ah)), if (valueOrElse(getBoolean(T, au(ah)), false))
275+ then bf
268276 else 0)
269- let be = (bc / 6)
270- let bf = (bc / 7)
271- $Tuple3(bc, bd, ((k + fraction(k, ((bc + be) + (2 * bf)), 5)) + fraction(k, bd, (bb * 5))))
277+ let bi = (bg / 6)
278+ let bj = (bg / 7)
279+ $Tuple3(bg, bh, ((k + fraction(k, ((bg + bi) + (2 * bj)), 5)) + fraction(k, bh, (bf * 5))))
272280 }
273281
274282
275-func bg (bh) = {
276- let c = bh
283+func bk (bl) = {
284+ let c = bl
277285 if (("S" == c))
278286 then n
279287 else if (("M" == c))
280288 then o
281289 else if (("L" == c))
282290 then p
283291 else if (("XL" == c))
284292 then q
285293 else if (("XXL" == c))
286294 then r
287295 else throw("Unknown land size")
288296 }
289297
290298
291-func bi (bj) = {
292- let bk = split(bj, "_")
293- ((t * (parseIntValue(bk[1]) + 1)) * parseIntValue(bk[0]))
299+func bm (bn) = {
300+ let bo = split(bn, "_")
301+ ((t * (parseIntValue(bo[1]) + 1)) * parseIntValue(bo[0]))
294302 }
295303
296304
297-func bl (bm) = {
298- let bn = bm[B]
299- func bo (aE,aF) = (aE + parseIntValue(aF))
305+func bp (bq) = {
306+ let br = bq[B]
307+ func bs (aI,aJ) = (aI + parseIntValue(aJ))
300308
301- func bp (aE,aF) = {
302- let O = aE._1
303- let bq = H[O]
304- let br = (((parseIntValue(aF) + bq) - 1) / bq)
305- $Tuple2((O + 1), (aE._2 + (br * f)))
309+ func bt (aI,aJ) = {
310+ let S = aI._1
311+ let bu = L[S]
312+ let bv = (((parseIntValue(aJ) + bu) - 1) / bu)
313+ $Tuple2((S + 1), (aI._2 + (bv * f)))
306314 }
307315
308- let bs = {
309- let aJ = split(bm[z], "_")
310- let aK = size(aJ)
311- let aL = 0
312- func aM (aN,aO) = if ((aO >= aK))
313- then aN
314- else bo(aN, aJ[aO])
316+ let bw = {
317+ let aN = split(bq[z], "_")
318+ let aO = size(aN)
319+ let aP = 0
320+ func aQ (aR,aS) = if ((aS >= aO))
321+ then aR
322+ else bs(aR, aN[aS])
315323
316- func aP (aN,aO) = if ((aO >= aK))
317- then aN
324+ func aT (aR,aS) = if ((aS >= aO))
325+ then aR
318326 else throw("List size exceeds 6")
319327
320- aP(aM(aM(aM(aM(aM(aM(aL, 0), 1), 2), 3), 4), 5), 6)
328+ aT(aQ(aQ(aQ(aQ(aQ(aQ(aP, 0), 1), 2), 3), 4), 5), 6)
321329 }
322- let bt = {
323- let aJ = split(bm[A], "_")
324- let aK = size(aJ)
325- let aL = 0
326- func bu (aN,aO) = if ((aO >= aK))
327- then aN
328- else bo(aN, aJ[aO])
330+ let bx = {
331+ let aN = split(bq[A], "_")
332+ let aO = size(aN)
333+ let aP = 0
334+ func by (aR,aS) = if ((aS >= aO))
335+ then aR
336+ else bs(aR, aN[aS])
329337
330- func bv (aN,aO) = if ((aO >= aK))
331- then aN
338+ func bz (aR,aS) = if ((aS >= aO))
339+ then aR
332340 else throw("List size exceeds 6")
333341
334- bv(bu(bu(bu(bu(bu(bu(aL, 0), 1), 2), 3), 4), 5), 6)
342+ bz(by(by(by(by(by(by(aP, 0), 1), 2), 3), 4), 5), 6)
335343 }
336- let bw = if ((bn == ""))
344+ let bA = if ((br == ""))
337345 then 0
338- else ( let aJ = split_4C(bn, "_")
339- let aK = size(aJ)
340- let aL = $Tuple2(0, 0)
341- func bx (aN,aO) = if ((aO >= aK))
342- then aN
343- else bp(aN, aJ[aO])
346+ else ( let aN = split_4C(br, "_")
347+ let aO = size(aN)
348+ let aP = $Tuple2(0, 0)
349+ func bB (aR,aS) = if ((aS >= aO))
350+ then aR
351+ else bt(aR, aN[aS])
344352
345- func by (aN,aO) = if ((aO >= aK))
346- then aN
353+ func bC (aR,aS) = if ((aS >= aO))
354+ then aR
347355 else throw("List size exceeds 50")
348356
349- by(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(aL, 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))._2
350- ((bs + bt) + bw)
357+ bC(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(bB(aP, 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))._2
358+ ((bw + bx) + bA)
351359 }
352360
353361
354-func bz (bA,bB,bc) = {
355- let bj = ((toString(bB) + "_") + toString(bc))
356- let bC = bi(bj)
357- let bD = valueOrElse(getString(P, bA), (bj + ":0_0_0_0_0_0:0_0_0_0_0_0::0"))
358- let bE = split(bD, ":")
359- let bF = if ((5 > size(bE)))
360- then 0
361- else parseIntValue(bE[C])
362- let bG = bl(bE)
363-[bE[y], if ((size(split(bE[z], "_")) == m))
364- then bE[z]
365- else "0_0_0_0_0_0", if ((size(split(bE[A], "_")) == m))
366- then bE[A]
367- else "0_0_0_0_0_0", bE[B], makeString([toString(bF), toString(bG), toString(((bC - bF) - bG)), toString(bC)], "_")]
362+func bD (bE,bF,bg) = {
363+ let bn = ((toString(bF) + "_") + toString(bg))
364+ let bG = bm(bn)
365+ let bH = valueOrElse(getString(T, bE), (bn + ":0_0_0_0_0_0:0_0_0_0_0_0::0"))
366+ let bI = split(bH, ":")
367+ let bJ = bp(bI)
368+ let bK = if ((5 > size(bI)))
369+ then makeString(["0", toString(bJ), toString((bG - bJ)), toString(bG)], "_")
370+ else {
371+ let bL = split(bI[C], "_")
372+ let bM = parseIntValue(bL[D])
373+ let bN = if ((size(bL) > 1))
374+ then parseIntValue(bL[E])
375+ else bJ
376+ makeString([toString(bM), toString(bN), toString(((bG - bM) - bN)), toString(bG)], "_")
377+ }
378+[bI[y], if ((size(split(bI[z], "_")) == m))
379+ then bI[z]
380+ else "0_0_0_0_0_0", if ((size(split(bI[A], "_")) == m))
381+ then bI[A]
382+ else "0_0_0_0_0_0", bI[B], bK]
368383 }
369384
370385
371-func bH (ab) = $Tuple5(valueOrElse(getInteger(P, V(ab)), -1), value(assetInfo(fromBase58String(ab))).name, valueOrElse(getString(P, ae(ab)), ""), valueOrElse(getInteger(P, af(ab)), -1), au(invoke(P, "getBackpackREADONLY", [ab], nil)))
386+func bO (af) = $Tuple5(valueOrElse(getInteger(T, Z(af)), -1), value(assetInfo(fromBase58String(af))).name, valueOrElse(getString(T, ai(af)), ""), valueOrElse(getInteger(T, aj(af)), -1), ay(invoke(T, "getBackpackREADONLY", [af], nil)))
372387
373388
374-func bI (ab,bJ,bK) = {
375- let aW = valueOrElse(getString(P, ai(ab)), bK._2)
376-[("%s%s__assetId__" + ab), ("%s%s__owner__" + bJ), ("%s%s__customName__" + aW), ("%s%d__stakedTime__" + toString(bK._1)), ("%s%s__name__" + bK._2), ("%s%s__location__" + bK._3), ("%s%d__health__" + toString(bK._4)), ("%s%s__backPack__" + bK._5)]
389+func bP (af,bQ,bR) = {
390+ let ba = valueOrElse(getString(T, am(af)), bR._2)
391+[("%s%s__assetId__" + af), ("%s%s__owner__" + bQ), ("%s%s__customName__" + ba), ("%s%d__stakedTime__" + toString(bR._1)), ("%s%s__name__" + bR._2), ("%s%s__location__" + bR._3), ("%s%d__health__" + toString(bR._4)), ("%s%s__backPack__" + bR._5)]
377392 }
378393
379394
380-func bL (ad,bJ,bM) = if ((ad == ""))
395+func bS (ah,bQ,bT) = if ((ah == ""))
381396 then throw("landAssetId is required")
382397 else {
383- let bN = value(assetInfo(fromBase58String(ad)))
384- let bO = split(bN.description, "_")
385- let bP = if ((bN.quantity > 0))
386- then bO[u]
387- else ("-" + bO[u])
388- let bb = bg(bO[v])
389- let bQ = ba(ad, bb)
390- let bR = (lastBlock.timestamp - bM)
391- let bS = if ((bM > 0))
392- then fraction(bR, (bQ._3 * bb), l)
398+ let bU = value(assetInfo(fromBase58String(ah)))
399+ let bV = split(bU.description, "_")
400+ let bW = if ((bU.quantity > 0))
401+ then bV[u]
402+ else ("-" + bV[u])
403+ let bf = bk(bV[v])
404+ let bX = be(ah, bf)
405+ let bY = (lastBlock.timestamp - bT)
406+ let bZ = if ((bT > 0))
407+ then fraction(bY, (bX._3 * bf), l)
393408 else 0
394- let bT = fraction(d, (bb * (bQ._1 + 1)), n)
395- let bU = if ((bM > 0))
396- then aQ(invoke(P, "splitByGlobalAndLocalWeightsREADONLY", [bT, bS, bO[w]], nil))
397- else $Tuple2(aA(invoke(P, "splitByGlobalWeightsREADONLY", [bT], nil)), "")
398- let aW = valueOrElse(getString(P, ah(ad)), ((bO[x] + "-") + bO[u]))
399-[("%s%s__assetId__" + ad), ("%s%s__owner__" + bJ), ("%s%s__customName__" + aW), ("%s%d__stakedTime__" + toString(bM)), ("%s%s__description__" + makeString([bP, bO[v], bO[w], bO[x]], "_")), ("%s%d__infraLevel__" + toString(bQ._1)), ("%s%s__availResByType__" + bU._2), ("%s%d__availResTotal__" + toString(bS)), ("%s%s__needMaterial__" + bU._1), makeString(["%s%s", "landArtefacts", ("PRESALE:" + toString(bQ._2))], i), ("%s%s__warehouse__" + makeString(bz(ac(ad), (bb / n), bQ._1), ":")), ("%s%s__landOrder__" + valueOrElse(getString(Q, at(ad)), "0@0_0@0_0@0_0@0_0@0_0@0:0@0_0@0_0@0_0@0_0@0_0@0:"))]
409+ let ca = fraction(d, (bf * (bX._1 + 1)), n)
410+ let cb = if ((bT > 0))
411+ then aU(invoke(T, "splitByGlobalAndLocalWeightsREADONLY", [ca, bZ, bV[w]], nil))
412+ else $Tuple2(aE(invoke(T, "splitByGlobalWeightsREADONLY", [ca], nil)), "")
413+ let ba = valueOrElse(getString(T, al(ah)), ((bV[x] + "-") + bV[u]))
414+[("%s%s__assetId__" + ah), ("%s%s__owner__" + bQ), ("%s%s__customName__" + ba), ("%s%d__stakedTime__" + toString(bT)), ("%s%s__description__" + makeString([bW, bV[v], bV[w], bV[x]], "_")), ("%s%d__infraLevel__" + toString(bX._1)), ("%s%s__availResByType__" + cb._2), ("%s%d__availResTotal__" + toString(bZ)), ("%s%s__needMaterial__" + cb._1), makeString(["%s%s", "landArtefacts", ("PRESALE:" + toString(bX._2))], i), ("%s%s__warehouse__" + makeString(bD(ag(ah), (bf / n), bX._1), ":")), ("%s%s__landOrder__" + valueOrElse(getString(U, ax(ah)), "0@0_0@0_0@0_0@0_0@0_0@0:0@0_0@0_0@0_0@0_0@0_0@0:"))]
400415 }
401416
402417
403-func bV (ad,bJ) = if ((ad == ""))
418+func cc (ah,bQ) = if ((ah == ""))
404419 then throw("landAssetId is required")
405420 else {
406- let bN = value(assetInfo(fromBase58String(ad)))
407- let bO = split(bN.description, "_")
408- let bb = bg(bO[v])
409- let bQ = ba(ad, bb)
410-[("%s%s__assetId__" + ad), ("%s%s__owner__" + bJ), ("%s%s__warehouse__" + makeString(bz(ac(ad), (bb / n), bQ._1), ":")), ("%s%s__landOrder__" + valueOrElse(getString(Q, at(ad)), "0@0_0@0_0@0_0@0_0@0_0@0:0@0_0@0_0@0_0@0_0@0_0@0:"))]
421+ let bU = value(assetInfo(fromBase58String(ah)))
422+ let bV = split(bU.description, "_")
423+ let bf = bk(bV[v])
424+ let bX = be(ah, bf)
425+[("%s%s__assetId__" + ah), ("%s%s__owner__" + bQ), ("%s%s__warehouse__" + makeString(bD(ag(ah), (bf / n), bX._1), ":")), ("%s%s__landOrder__" + valueOrElse(getString(U, ax(ah)), "0@0_0@0_0@0_0@0_0@0_0@0:0@0_0@0_0@0_0@0_0@0_0@0:"))]
411426 }
412427
413428
414-@Callable(bW)
415-func constructorV1 (P,Q,R) = if ((bW.caller != this))
429+@Callable(cd)
430+func constructorV1 (T,U,V) = if ((cd.caller != this))
416431 then throw("permissions denied")
417- else [StringEntry(D(), makeString(["%s%s%s", P, Q, R], i))]
432+ else [StringEntry(H(), makeString(["%s%s%s", T, U, V], i))]
418433
419434
420435
421-@Callable(bW)
422-func walletInfoREADONLY (aT) = $Tuple2(nil, aS(aT))
436+@Callable(cd)
437+func walletInfoREADONLY (aX) = $Tuple2(nil, aW(aX))
423438
424439
425440
426-@Callable(bW)
427-func duckByOwnerInfoREADONLY (bX) = {
428- let bY = getString(P, W(bX))
429- $Tuple2(nil, if (if (isDefined(addressFromString(bX)))
430- then isDefined(bY)
441+@Callable(cd)
442+func duckByOwnerInfoREADONLY (ce) = {
443+ let cf = getString(T, aa(ce))
444+ $Tuple2(nil, if (if (isDefined(addressFromString(ce)))
445+ then isDefined(cf)
431446 else false)
432447 then {
433- let ab = value(bY)
434- bI(ab, bX, bH(ab))
448+ let af = value(cf)
449+ bP(af, ce, bO(af))
435450 }
436- else bI("", bX, $Tuple5(-1, "", "", -1, "")))
451+ else bP("", ce, $Tuple5(-1, "", "", -1, "")))
437452 }
438453
439454
440455
441-@Callable(bW)
442-func duckByAssetIdInfoREADONLY (ab) = {
443- let bJ = getString(P, T(ab))
444- let bK = bH(ab)
445- $Tuple2(nil, bI(ab, if (isDefined(bJ))
446- then value(bJ)
447- else "", bH(ab)))
456+@Callable(cd)
457+func duckByAssetIdInfoREADONLY (af) = {
458+ let bQ = getString(T, X(af))
459+ let bR = bO(af)
460+ $Tuple2(nil, bP(af, if (isDefined(bQ))
461+ then value(bQ)
462+ else "", bO(af)))
448463 }
449464
450465
451466
452-@Callable(bW)
453-func landByAssetIdInfoREADONLY (ad) = if ((ad == ""))
467+@Callable(cd)
468+func landByAssetIdInfoREADONLY (ah) = if ((ah == ""))
454469 then throw("landAssetId is required")
455470 else {
456- let bM = valueOrElse(getInteger(P, V(ad)), -1)
457- let bJ = if ((bM > 0))
458- then value(getString(P, ag(ad)))
471+ let bT = valueOrElse(getInteger(T, Z(ah)), -1)
472+ let bQ = if ((bT > 0))
473+ then value(getString(T, ak(ah)))
459474 else ""
460- $Tuple2(nil, bL(ad, bJ, bM))
475+ $Tuple2(nil, bS(ah, bQ, bT))
461476 }
462477
463478
464479
465-@Callable(bW)
466-func stakedLandsByOwnerInfoREADONLY (bZ) = if ((bZ == ""))
480+@Callable(cd)
481+func stakedLandsByOwnerInfoREADONLY (cg) = if ((cg == ""))
467482 then throw("landOwnerAddress is required")
468483 else {
469- let ca = getString(P, ar(bZ))
470- let cb = if (isDefined(ca))
471- then split_51C(value(ca), "_")
484+ let ch = getString(T, av(cg))
485+ let ci = if (isDefined(ch))
486+ then split_51C(value(ch), "_")
472487 else nil
473- func cc (aE,ad) = if ((ad == ""))
488+ func cj (aI,ah) = if ((ah == ""))
474489 then throw("landAssetId is required")
475490 else {
476- let bM = valueOrElse(getInteger(P, V(ad)), -1)
477- (aE :+ bL(ad, bZ, bM))
491+ let bT = valueOrElse(getInteger(T, Z(ah)), -1)
492+ (aI :+ bS(ah, cg, bT))
478493 }
479494
480- let aI = {
481- let aJ = cb
482- let aK = size(aJ)
483- let aL = nil
484- func aM (aN,aO) = if ((aO >= aK))
485- then aN
486- else cc(aN, aJ[aO])
495+ let aM = {
496+ let aN = ci
497+ let aO = size(aN)
498+ let aP = nil
499+ func aQ (aR,aS) = if ((aS >= aO))
500+ then aR
501+ else cj(aR, aN[aS])
487502
488- func aP (aN,aO) = if ((aO >= aK))
489- then aN
503+ func aT (aR,aS) = if ((aS >= aO))
504+ then aR
490505 else throw("List size exceeds 40")
491506
492- aP(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aL, 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)
507+ aT(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aP, 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)
493508 }
494- $Tuple2(nil, aI)
509+ $Tuple2(nil, aM)
495510 }
496511
497512
498513
499-@Callable(bW)
500-func landsByIdsInfoREADONLY (cd) = {
501- func cc (aE,ad) = if ((ad == ""))
514+@Callable(cd)
515+func landsByIdsInfoREADONLY (ck) = {
516+ func cj (aI,ah) = if ((ah == ""))
502517 then throw("landAssetId is required")
503518 else {
504- let bM = valueOrElse(getInteger(P, V(ad)), -1)
505- let bJ = if ((bM > 0))
506- then value(getString(P, ag(ad)))
519+ let bT = valueOrElse(getInteger(T, Z(ah)), -1)
520+ let bQ = if ((bT > 0))
521+ then value(getString(T, ak(ah)))
507522 else ""
508- (aE :+ bL(ad, bJ, bM))
523+ (aI :+ bS(ah, bQ, bT))
509524 }
510525
511- let aI = {
512- let aJ = cd
513- let aK = size(aJ)
514- let aL = nil
515- func aM (aN,aO) = if ((aO >= aK))
516- then aN
517- else cc(aN, aJ[aO])
526+ let aM = {
527+ let aN = ck
528+ let aO = size(aN)
529+ let aP = nil
530+ func aQ (aR,aS) = if ((aS >= aO))
531+ then aR
532+ else cj(aR, aN[aS])
518533
519- func aP (aN,aO) = if ((aO >= aK))
520- then aN
534+ func aT (aR,aS) = if ((aS >= aO))
535+ then aR
521536 else throw("List size exceeds 40")
522537
523- aP(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aL, 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)
538+ aT(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aP, 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)
524539 }
525- $Tuple2(nil, aI)
540+ $Tuple2(nil, aM)
526541 }
527542
528543
529544
530-@Callable(bW)
531-func warehouseOrderByAssetIdInfoREADONLY (ad) = if ((ad == ""))
545+@Callable(cd)
546+func warehouseOrderByAssetIdInfoREADONLY (ah) = if ((ah == ""))
532547 then throw("landAssetId is required")
533548 else {
534- let bM = valueOrElse(getInteger(P, V(ad)), -1)
535- let bJ = if ((bM > 0))
536- then value(getString(P, ag(ad)))
549+ let bT = valueOrElse(getInteger(T, Z(ah)), -1)
550+ let bQ = if ((bT > 0))
551+ then value(getString(T, ak(ah)))
537552 else ""
538- $Tuple2(nil, bV(ad, bJ))
553+ $Tuple2(nil, cc(ah, bQ))
539554 }
540555
541556
542557
543-@Callable(bW)
544-func ordersByLandIdsInfoREADONLY (cd) = {
545- func cc (aE,ad) = if ((ad == ""))
558+@Callable(cd)
559+func ordersByLandIdsInfoREADONLY (ck) = {
560+ func cj (aI,ah) = if ((ah == ""))
546561 then throw("landAssetId is required")
547562 else {
548- let bM = valueOrElse(getInteger(P, V(ad)), -1)
549- let bJ = if ((bM > 0))
550- then value(getString(P, ag(ad)))
563+ let bT = valueOrElse(getInteger(T, Z(ah)), -1)
564+ let bQ = if ((bT > 0))
565+ then value(getString(T, ak(ah)))
551566 else ""
552- (aE :+ bV(ad, bJ))
567+ (aI :+ cc(ah, bQ))
553568 }
554569
555- let aI = {
556- let aJ = cd
557- let aK = size(aJ)
558- let aL = nil
559- func aM (aN,aO) = if ((aO >= aK))
560- then aN
561- else cc(aN, aJ[aO])
570+ let aM = {
571+ let aN = ck
572+ let aO = size(aN)
573+ let aP = nil
574+ func aQ (aR,aS) = if ((aS >= aO))
575+ then aR
576+ else cj(aR, aN[aS])
562577
563- func aP (aN,aO) = if ((aO >= aK))
564- then aN
578+ func aT (aR,aS) = if ((aS >= aO))
579+ then aR
565580 else throw("List size exceeds 40")
566581
567- aP(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aL, 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)
582+ aT(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aP, 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)
568583 }
569- $Tuple2(nil, aI)
584+ $Tuple2(nil, aM)
570585 }
571586
572587
573588
574-@Callable(bW)
575-func cancelWarehouseOrders (cd) = if ((bW.caller != this))
589+@Callable(cd)
590+func cancelWarehouseOrders (ck) = if ((cd.caller != this))
576591 then throw("permission denied")
577592 else {
578- let ce = getBoolean(P, S())
579- if (if (!(isDefined(ce)))
593+ let cl = getBoolean(T, W())
594+ if (if (!(isDefined(cl)))
580595 then true
581- else (value(ce) == false))
596+ else (value(cl) == false))
582597 then throw("Contracts should be blocked before canceling orders")
583598 else {
584- func cc (bN,ad) = if ((ad == ""))
599+ func cj (bU,ah) = if ((ah == ""))
585600 then throw("landAssetId is required")
586601 else {
587- let cf = az(invoke(Q, "setWarehouseOrder", ["0@0_0@0_0@0_0@0_0@0_0@0:0@0_0@0_0@0_0@0_0@0_0@0:", ad], nil))
588- if (if (bN)
602+ let cm = aD(invoke(U, "setWarehouseOrder", ["0@0_0@0_0@0_0@0_0@0_0@0:0@0_0@0_0@0_0@0_0@0_0@0:", ah], nil))
603+ if (if (bU)
589604 then true
590- else cf)
591- then !(if (bN)
592- then cf
605+ else cm)
606+ then !(if (bU)
607+ then cm
593608 else false)
594609 else false
595610 }
596611
597- let aI = {
598- let aJ = cd
599- let aK = size(aJ)
600- let aL = false
601- func aM (aN,aO) = if ((aO >= aK))
602- then aN
603- else cc(aN, aJ[aO])
612+ let aM = {
613+ let aN = ck
614+ let aO = size(aN)
615+ let aP = false
616+ func aQ (aR,aS) = if ((aS >= aO))
617+ then aR
618+ else cj(aR, aN[aS])
604619
605- func aP (aN,aO) = if ((aO >= aK))
606- then aN
620+ func aT (aR,aS) = if ((aS >= aO))
621+ then aR
607622 else throw("List size exceeds 30")
608623
609- aP(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aL, 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)
624+ aT(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aP, 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)
610625 }
611- $Tuple2(nil, aI)
626+ $Tuple2(nil, aM)
612627 }
613628 }
614629
615630
616631
617-@Callable(bW)
618-func replaceBooleanArtifacts (cd) = if ((bW.caller != this))
632+@Callable(cd)
633+func replaceBooleanArtifacts (ck) = if ((cd.caller != this))
619634 then throw("permission denied")
620635 else {
621- func cc (aE,ad) = if ((ad == ""))
636+ func cj (aI,ah) = if ((ah == ""))
622637 then throw("landAssetId is required")
623- else if (isDefined(getBoolean(P, aq(ad))))
624- then (aE + ax(invoke(P, "replaceBooleanArtifact", [ad], nil)))
625- else aE
638+ else if (isDefined(getBoolean(T, au(ah))))
639+ then (aI + aB(invoke(T, "replaceBooleanArtifact", [ah], nil)))
640+ else aI
626641
627- let aI = {
628- let aJ = cd
629- let aK = size(aJ)
630- let aL = 0
631- func aM (aN,aO) = if ((aO >= aK))
632- then aN
633- else cc(aN, aJ[aO])
642+ let aM = {
643+ let aN = ck
644+ let aO = size(aN)
645+ let aP = 0
646+ func aQ (aR,aS) = if ((aS >= aO))
647+ then aR
648+ else cj(aR, aN[aS])
634649
635- func aP (aN,aO) = if ((aO >= aK))
636- then aN
650+ func aT (aR,aS) = if ((aS >= aO))
651+ then aR
637652 else throw("List size exceeds 25")
638653
639- aP(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aM(aL, 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)
654+ aT(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aQ(aP, 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)
640655 }
641- $Tuple2(nil, aI)
656+ $Tuple2(nil, aM)
642657 }
643658
644659
645660
646-@Callable(bW)
647-func sendUsdtPrize (bX) = if ((bW.caller != P))
661+@Callable(cd)
662+func sendUsdtPrize (ce) = if ((cd.caller != T))
648663 then throw("permission denied")
649664 else {
650- let cg = fraction(assetBalance(this, b), s, e)
651- $Tuple2([ScriptTransfer(addressFromStringValue(bX), cg, b)], cg)
665+ let cn = fraction(assetBalance(this, b), s, e)
666+ $Tuple2([ScriptTransfer(addressFromStringValue(ce), cn, b)], cn)
652667 }
653668
654669

github/deemru/w8io/169f3d6 
248.53 ms