tx · Cyb8hCxo8i4m7RVwPD9uzviw4WkWkshEPUimvLtD2Fmv

3N7HtrKeFFLz5oy6PfGv1Lg3GwPk4gCPdGy:  -0.01100000 Waves

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

{ "type": 13, "id": "Cyb8hCxo8i4m7RVwPD9uzviw4WkWkshEPUimvLtD2Fmv", "fee": 1100000, "feeAssetId": null, "timestamp": 1687973494058, "version": 2, "chainId": 84, "sender": "3N7HtrKeFFLz5oy6PfGv1Lg3GwPk4gCPdGy", "senderPublicKey": "FsR18761ZAsUqsTd7TK3XmR6bhihs1UXVmpHYxz5JzQ1", "proofs": [ "64MLcuH2utNwq2af5HLZuv53G5KNqzQkWoeTDVQPrr2vagh7TbKA77D1Xd6Kzf6HgdzhFsJuMAwGk48AYXKwLWwb" ], "script": "base64:BgIZCAISBQoDCAgIEgASABIAEgMKAQgSAwoBCEIBCmtleUJsb2NrZWQAAhBjb250cmFjdHNCbG9ja2VkAAtJZHhFZmZUb3RhbAAAAApJZHhFZmZVc2VyAAEABWNoYWluCQDJAQIJAMoBAggFBHRoaXMFYnl0ZXMAAQABAAt1c2R0QXNzZXRJZAQHJG1hdGNoMAUFY2hhaW4DCQAAAgEBVwUHJG1hdGNoMAEghNp6sggDP07Ru8qO7ouTvMmC3Qtd+geWqNQj+agP/7kDCQAAAgEBVAUHJG1hdGNoMAEgVbHYn3KHgu/l41uNrAWrZd6aQ6EvFrsF8xq3h6XxxRgJAAIBAg1Vbmtub3duIGNoYWluABVkZWZhdWx0UmVzdEFkZHJlc3NTdHIEByRtYXRjaDAFBWNoYWluAwkAAAIBAVcFByRtYXRjaDACIzNQUUN1dkZidmg0TGtQVW5yblUxejNqbmJBMXA5bTNXTmh2AwkAAAIBAVQFByRtYXRjaDACIzNNdW1rR0d6dENLQVhwV0RxeGtkZG9mcVhTVWJxUWt2U0p5CQACAQINVW5rbm93biBjaGFpbgADU0VQAgJfXwAFTVVMVDYAwIQ9AAVNVUxUOACAwtcvAAVTU0laRQAZAAVNU0laRQBkAAVMU0laRQDhAQAGWExTSVpFAJADAAdYWExTSVpFAPEEAQ9nZXRTdHJpbmdPckZhaWwCB2FkZHJlc3MDa2V5CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUHYWRkcmVzcwUDa2V5CQC5CQIJAMwIAgIKbWFuZGF0b3J5IAkAzAgCCQClCAEFB2FkZHJlc3MJAMwIAgIBLgkAzAgCBQNrZXkJAMwIAgIPIGlzIG5vdCBkZWZpbmVkBQNuaWwCAAARSWR4Q2ZnU3Rha2luZ0RhcHAAAQARSWR4Q2ZnRWNvbm9teURhcHAAAgANSWR4Q2ZnV2xnRGFwcAAEABRJZHhDZmdQdXp6bGVQb29sRGFwcAAFAQprZXlSZXN0Q2ZnAAIOJXNfX3Jlc3RDb25maWcBDmtleVJlc3RBZGRyZXNzAAIMJXNfX3Jlc3RBZGRyARFyZWFkUmVzdENmZ09yRmFpbAEEcmVzdAkAvAkCCQEPZ2V0U3RyaW5nT3JGYWlsAgUEcmVzdAkBCmtleVJlc3RDZmcABQNTRVABGGdldENvbnRyYWN0QWRkcmVzc09yRmFpbAIHcmVzdENmZwNpZHgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIFB3Jlc3RDZmcFA2lkeAkArAICAipSZXN0IGNmZyBkb2Vzbid0IGNvbnRhaW4gYWRkcmVzcyBhdCBpbmRleCAJAKQDAQUDaWR4AAxyZXN0Q29udHJhY3QJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwkBDmtleVJlc3RBZGRyZXNzAAUVZGVmYXVsdFJlc3RBZGRyZXNzU3RyAAdyZXN0Q2ZnCQERcmVhZFJlc3RDZmdPckZhaWwBBQxyZXN0Q29udHJhY3QAD3N0YWtpbmdDb250cmFjdAkBGGdldENvbnRyYWN0QWRkcmVzc09yRmFpbAIFB3Jlc3RDZmcFEUlkeENmZ1N0YWtpbmdEYXBwAA9lY29ub215Q29udHJhY3QJARhnZXRDb250cmFjdEFkZHJlc3NPckZhaWwCBQdyZXN0Q2ZnBRFJZHhDZmdFY29ub215RGFwcAALd2xnQ29udHJhY3QJARhnZXRDb250cmFjdEFkZHJlc3NPckZhaWwCBQdyZXN0Q2ZnBQ1JZHhDZmdXbGdEYXBwABJwdXp6bGVQb29sQ29udHJhY3QJARhnZXRDb250cmFjdEFkZHJlc3NPckZhaWwCBQdyZXN0Q2ZnBRRJZHhDZmdQdXp6bGVQb29sRGFwcAALcmVjTGFuZFNpemUAAQERa2V5UmVzUHJvcG9ydGlvbnMAAhNyZXNUeXBlc1Byb3BvcnRpb25zARVrZXlTdGFrZWRMYW5kc0J5T3duZXIBCW93bmVyQWRkcgkArAICAhNzdGFrZWRMYW5kc0J5T3duZXJfBQlvd25lckFkZHIAEndsZ0lzc3VlZEFtb3VudEtleQIQd2xnX2lzc3VlZEFtb3VudAAMaWR4V2xnQW1vdW50AAAAC2lkeFdsZ1ByaWNlAAEAC2lkeFdsZ0Z1bmRzAAIBBWFzSW50AQF2BAckbWF0Y2gwBQF2AwkAAQIFByRtYXRjaDACA0ludAQBbgUHJG1hdGNoMAUBbgkAAgECFWZhaWwgdG8gY2FzdCBpbnRvIEludAEPbnVtUGllY2VzQnlTaXplAQhsYW5kU2l6ZQQHJG1hdGNoMAUIbGFuZFNpemUDCQAAAgIBUwUHJG1hdGNoMAUFU1NJWkUDCQAAAgIBTQUHJG1hdGNoMAUFTVNJWkUDCQAAAgIBTAUHJG1hdGNoMAUFTFNJWkUDCQAAAgICWEwFByRtYXRjaDAFBlhMU0laRQMJAAACAgNYWEwFByRtYXRjaDAFB1hYTFNJWkUJAAIBAhFVbmtub3duIGxhbmQgc2l6ZQEOZ2V0Vm90aW5nUG93ZXIBEnVzZXJBZGRyU3RyT3JFbXB0eQQFcHJvcHMJALUJAgkBC3ZhbHVlT3JFbHNlAgkAnQgCBQ9zdGFraW5nQ29udHJhY3QJARFrZXlSZXNQcm9wb3J0aW9ucwACCzBfMF8wXzBfMF8wAgFfCgEFYWRkZXICA2FjYwRpdGVtCQBkAgUDYWNjCQENcGFyc2VJbnRWYWx1ZQEFBGl0ZW0ECnRvdGFsUG93ZXIKAAIkbAUFcHJvcHMKAAIkcwkAkAMBBQIkbAoABSRhY2MwAAAKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBBWFkZGVyAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhNMaXN0IHNpemUgZXhjZWVkcyA2CQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGBAp1c2Vyc1Bvd2VyAwkAAAIFEnVzZXJBZGRyU3RyT3JFbXB0eQIAAAAECGxhbmRzU3RyCQCdCAIFD3N0YWtpbmdDb250cmFjdAkBFWtleVN0YWtlZExhbmRzQnlPd25lcgEFEnVzZXJBZGRyU3RyT3JFbXB0eQQFbGFuZHMDCQEJaXNEZWZpbmVkAQUIbGFuZHNTdHIJAL0JAgkBBXZhbHVlAQUIbGFuZHNTdHICAV8FA25pbAoBB29uZUxhbmQCA2FjYwtsYW5kQXNzZXRJZAQFYXNzZXQJAQV2YWx1ZQEJAOwHAQkA2QQBBQtsYW5kQXNzZXRJZAQIbGFuZFNpemUJAJEDAgkAtQkCCAUFYXNzZXQLZGVzY3JpcHRpb24CAV8FC3JlY0xhbmRTaXplCQBkAgUDYWNjCQEPbnVtUGllY2VzQnlTaXplAQUIbGFuZFNpemUKAAIkbAUFbGFuZHMKAAIkcwkAkAMBBQIkbAoABSRhY2MwAAAKAQUkZjFfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBB29uZUxhbmQCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjFfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFUxpc3Qgc2l6ZSBleGNlZWRzIDEwMAkBBSRmMV8yAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACYAJwAoACkAKgArACwALQAuAC8AMAAxADIAMwA0ADUANgA3ADgAOQA6ADsAPAA9AD4APwBAAEEAQgBDAEQARQBGAEcASABJAEoASwBMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWgBbAFwAXQBeAF8AYABhAGIAYwBkCQDMCAIFCnRvdGFsUG93ZXIJAMwIAgUKdXNlcnNQb3dlcgUDbmlsAQtnZXRXbGdTdGF0cwAEDGlzc3VlZEFtb3VudAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFC3dsZ0NvbnRyYWN0BRJ3bGdJc3N1ZWRBbW91bnRLZXkCGFdMR09MRCBpcyBub3QgaXNzdWVkIHlldAQKZWNvbm9teVVzZAkA8AcCBQ9lY29ub215Q29udHJhY3QFC3VzZHRBc3NldElkBAdyZXN0VXNkCQDwBwIFDHJlc3RDb250cmFjdAULdXNkdEFzc2V0SWQEBndsZ1VzZAkA8AcCBQt3bGdDb250cmFjdAULdXNkdEFzc2V0SWQECXB1enpsZVVzZAkA8AcCBRJwdXp6bGVQb29sQ29udHJhY3QFC3VzZHRBc3NldElkBAh0b3RhbFVzZAkAZAIJAGQCCQBkAgUKZWNvbm9teVVzZAUHcmVzdFVzZAUGd2xnVXNkBQlwdXp6bGVVc2QJAMwIAgUMaXNzdWVkQW1vdW50CQDMCAIJAGsDBQh0b3RhbFVzZAUFTVVMVDgFDGlzc3VlZEFtb3VudAkAzAgCBQh0b3RhbFVzZAkAzAgCBQplY29ub215VXNkCQDMCAIFB3Jlc3RVc2QJAMwIAgUGd2xnVXNkCQDMCAIFCXB1enpsZVVzZAUDbmlsAAZNVUxUMTQAgIDpg7HeFgAOTUFSS0VUSU5HU0hBUkUAoI0GAAlURUFNU0hBUkUAwJoMAA1BQ1RJVklUWVNIQVJFAKCNBgALUExBWUVSU0hBUkUAgLUYAApZRUFSTUlMTElTAICG68d1AApXRUVLTUlMTElTAICIsqACAAlNQVhQRVJJT0QAnAEAEFRFTk1JTlVURVNNSUxMSVMAwM8kAAJBNgCAwtcvAAJCOACA4esXAA13bGdBc3NldElkS2V5Agt3bGdfYXNzZXRJZAAPd2xnSXNzdWVUaW1lS2V5Ag13bGdfaXNzdWVUaW1lABBtYXJrZXRpbmdBZGRyS2V5Ag1tYXJrZXRpbmdBZGRyAAt0ZWFtQWRkcktleQIIdGVhbUFkZHIAFGxhc3RNYXJrZXRpbmdUaW1lS2V5AhlsYXN0Q2xhaW1lZFRpbWVfbWFya2V0aW5nAA9sYXN0VGVhbVRpbWVLZXkCFGxhc3RDbGFpbWVkVGltZV90ZWFtABVsYXN0QWN0aXZpdGllc1RpbWVLZXkCGmxhc3RDbGFpbWVkVGltZV9hY3Rpdml0aWVzARhrZXlMYXN0Q2xhaW1lZFRpbWVCeVVzZXIBBGFkZHIJAKwCAgIUbGFzdENsYWltZWRUaW1lVXNlcl8FBGFkZHIBFGtleUxhc3RBcmJUaW1lQnlVc2VyAQRhZGRyCQCsAgICEGxhc3RBcmJUaW1lVXNlcl8FBGFkZHIAFHN0YWtlcnNBbW91bnRMZWZ0S2V5AhFzdGFrZXJzQW1vdW50TGVmdAAZc3Rha2Vyc0Ftb3VudFBhaWRUb3RhbEtleQIWc3Rha2Vyc0Ftb3VudFBhaWRUb3RhbAEYa2V5U3Rha2Vyc0Ftb3VudFBhaWRVc2VyAQRhZGRyCQCsAgICFnN0YWtlcnNBbW91bnRQYWlkVXNlcl8FBGFkZHIACndsZ0Fzc2V0SWQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAoQgBBQ13bGdBc3NldElkS2V5AhNOb3QgaW5pdGlhbGl6ZWQgeWV0AQZwcm9sb2cAAwkBC3ZhbHVlT3JFbHNlAgkAmwgCBQ9zdGFraW5nQ29udHJhY3QJAQprZXlCbG9ja2VkAAcJAAIBAh9Db250cmFjdHMgYXJlIHVuZGVyIG1haW50ZW5hbmNlCQEFYXNJbnQBCQD8BwQFD3N0YWtpbmdDb250cmFjdAIKc2F2ZUxhc3RUeAUDbmlsBQNuaWwBDGdldFN3YXBMaW1pdAEEYWRkcgQIbGFzdFRpbWUJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBFGtleUxhc3RBcmJUaW1lQnlVc2VyAQUEYWRkcgAABANub3cIBQlsYXN0QmxvY2sJdGltZXN0YW1wAwkAZgIFEFRFTk1JTlVURVNNSUxMSVMJAGUCBQNub3cFCGxhc3RUaW1lCQACAQIpQXJiaXRyYWdlcyBhcmUgcG9zc2libGUgb25jZSBhIDEwIG1pbnV0ZXMEBnBpZWNlcwkAkQMCCQEOZ2V0Vm90aW5nUG93ZXIBBQRhZGRyBQpJZHhFZmZVc2VyBARwb3c4CQBsBgUGcGllY2VzAAAFAkI4AAgACAUHQ0VJTElORwkAawMFAkE2BQRwb3c4BQVNVUxUOAYBaQENY29uc3RydWN0b3JWMQMIcmVzdEFkZHINbWFya2V0aW5nQWRkcgh0ZWFtQWRkcgMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECEVBlcm1pc3Npb24gZGVuaWVkAwkBCWlzRGVmaW5lZAEJAKEIAQUNd2xnQXNzZXRJZEtleQkAAgECE0FscmVhZHkgaW5pdGlhbGl6ZWQEDGlzc3VlZEFtb3VudAUGTVVMVDE0BAVpc3N1ZQkAwwgHAgZXTEdPTEQCIFdhdmVzTGFuZHMgR29sZCBpbnZlc3RtZW50IHRva2VuBQxpc3N1ZWRBbW91bnQACAYFBHVuaXQAAAQHYXNzZXRJZAkAuAgBBQVpc3N1ZQkAzAgCBQVpc3N1ZQkAzAgCCQEMSW50ZWdlckVudHJ5AgUPd2xnSXNzdWVUaW1lS2V5CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAkAzAgCCQEMSW50ZWdlckVudHJ5AgUSd2xnSXNzdWVkQW1vdW50S2V5BQxpc3N1ZWRBbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIFGXN0YWtlcnNBbW91bnRQYWlkVG90YWxLZXkAAAkAzAgCCQEMSW50ZWdlckVudHJ5AgUUc3Rha2Vyc0Ftb3VudExlZnRLZXkJAGsDBQZNVUxUMTQFC1BMQVlFUlNIQVJFBQVNVUxUNgkAzAgCCQELQmluYXJ5RW50cnkCBQ13bGdBc3NldElkS2V5BQdhc3NldElkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ5rZXlSZXN0QWRkcmVzcwAFCHJlc3RBZGRyCQDMCAIJAQtTdHJpbmdFbnRyeQIFEG1hcmtldGluZ0FkZHJLZXkFDW1hcmtldGluZ0FkZHIJAMwIAgkBC1N0cmluZ0VudHJ5AgULdGVhbUFkZHJLZXkFCHRlYW1BZGRyBQNuaWwBaQEGYnV5V2xnAAQMcHJvbG9nUmVzdWx0CQEGcHJvbG9nAAMJAQIhPQIJAJADAQgFAWkIcGF5bWVudHMAAQkAAgECImV4YWN0bHkgMSBwYXltZW50IG11c3QgYmUgYXR0YWNoZWQEA3BtdAkAkQMCCAUBaQhwYXltZW50cwAABAd1c2R0QW10CAUDcG10BmFtb3VudAQKcG10QXNzZXRJZAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCAUDcG10B2Fzc2V0SWQCHldBVkVTIGNhbid0IGJlIHVzZWQgYXMgcGF5bWVudAMJAQIhPQIFCnBtdEFzc2V0SWQFC3VzZHRBc3NldElkCQACAQITVVNEVCBwYXltZW50cyBvbmx5IQQGY2FsbGVyCAUBaQZjYWxsZXIEBGFkZHIJAKUIAQUGY2FsbGVyBAdtYXhVc2R0CQEMZ2V0U3dhcExpbWl0AQUEYWRkcgMJAGYCBQd1c2R0QW10BQdtYXhVc2R0CQACAQkArAICCQCsAgICEllvdSBjYW4gc3BlbmQgbWF4IAkApAMBBQdtYXhVc2R0AgUgVVNEVAQIY3VyU3RhdHMJAQtnZXRXbGdTdGF0cwAECWN1ckFtb3VudAkAkQMCBQhjdXJTdGF0cwUMaWR4V2xnQW1vdW50BAhidXlQcmljZQkAawMJAJEDAgUIY3VyU3RhdHMFC2lkeFdsZ1ByaWNlAAYABQQJd2xnQW1vdW50CQBrAwUHdXNkdEFtdAUFTVVMVDgFCGJ1eVByaWNlBAhyZWlzc3VlZAkAawMFB3VzZHRBbXQFCWN1ckFtb3VudAkAZQIJAJEDAgUIY3VyU3RhdHMFC2lkeFdsZ0Z1bmRzBQd1c2R0QW10CQCUCgIJAMwIAgkBB1JlaXNzdWUDBQp3bGdBc3NldElkBQhyZWlzc3VlZAYJAMwIAgkBDEludGVnZXJFbnRyeQIFEndsZ0lzc3VlZEFtb3VudEtleQkAZAIFCWN1ckFtb3VudAUIcmVpc3N1ZWQJAMwIAgkBDEludGVnZXJFbnRyeQIJARRrZXlMYXN0QXJiVGltZUJ5VXNlcgEFBGFkZHIIBQlsYXN0QmxvY2sJdGltZXN0YW1wCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFBmNhbGxlcgUJd2xnQW1vdW50BQp3bGdBc3NldElkBQNuaWwFDHByb2xvZ1Jlc3VsdAFpAQdzZWxsV2xnAAQMcHJvbG9nUmVzdWx0CQEGcHJvbG9nAAMJAQIhPQIJAJADAQgFAWkIcGF5bWVudHMAAQkAAgECImV4YWN0bHkgMSBwYXltZW50IG11c3QgYmUgYXR0YWNoZWQEA3BtdAkAkQMCCAUBaQhwYXltZW50cwAABAZ3bGdBbXQIBQNwbXQGYW1vdW50BApwbXRBc3NldElkCQETdmFsdWVPckVycm9yTWVzc2FnZQIIBQNwbXQHYXNzZXRJZAIeV0FWRVMgY2FuJ3QgYmUgdXNlZCBhcyBwYXltZW50AwkBAiE9AgUKcG10QXNzZXRJZAUKd2xnQXNzZXRJZAkAAgECFVdMR09MRCBwYXltZW50cyBvbmx5IQQGY2FsbGVyCAUBaQZjYWxsZXIEBGFkZHIJAKUIAQUGY2FsbGVyBAdtYXhVc2R0CQEMZ2V0U3dhcExpbWl0AQUEYWRkcgQIY3VyU3RhdHMJAQtnZXRXbGdTdGF0cwAECWN1ckFtb3VudAkAZQIJAJEDAgUIY3VyU3RhdHMFDGlkeFdsZ0Ftb3VudAUGd2xnQW10BAlzZWxsUHJpY2UJAGsDCQCRAwIFCGN1clN0YXRzBQtpZHhXbGdQcmljZQAEAAUECnVzZHRBbW91bnQJAGsDBQZ3bGdBbXQFCXNlbGxQcmljZQUFTVVMVDgDCQBmAgUKdXNkdEFtb3VudAUHbWF4VXNkdAkAAgEJAKwCAgkArAICAhBZb3UgY2FuIGdldCBtYXggCQCkAwEFB21heFVzZHQCBSBVU0RUBAZidXJuZWQJAGsDBQp1c2R0QW1vdW50BQljdXJBbW91bnQJAJEDAgUIY3VyU3RhdHMFC2lkeFdsZ0Z1bmRzCQCUCgIJAMwIAgkBBEJ1cm4CBQp3bGdBc3NldElkBQZidXJuZWQJAMwIAgkBDEludGVnZXJFbnRyeQIFEndsZ0lzc3VlZEFtb3VudEtleQkAZQIFCWN1ckFtb3VudAUGYnVybmVkCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEUa2V5TGFzdEFyYlRpbWVCeVVzZXIBBQRhZGRyCAUJbGFzdEJsb2NrCXRpbWVzdGFtcAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQZjYWxsZXIFCnVzZHRBbW91bnQFC3VzZHRBc3NldElkBQNuaWwFDHByb2xvZ1Jlc3VsdAFpAQVjbGFpbQAEDHByb2xvZ1Jlc3VsdAkBBnByb2xvZwAEBmNhbGxlcggFAWkGY2FsbGVyBApjYWxsZXJBZGRyCQClCAEFBmNhbGxlcgQDbm93CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAQJaXNzdWVUaW1lCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ8IAQUPd2xnSXNzdWVUaW1lS2V5Ag9Ob3QgaW5pdGlhbGl6ZWQEEWxhc3RNYXJrZXRpbmdUaW1lCQELdmFsdWVPckVsc2UCCQCfCAEFFGxhc3RNYXJrZXRpbmdUaW1lS2V5BQlpc3N1ZVRpbWUEDW1hcmtldGluZ0FkZHIJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQV2YWx1ZQEJAKIIAQUQbWFya2V0aW5nQWRkcktleQQPbWFya2V0aW5nQW1vdW50CQBrAwkAawMFBk1VTFQxNAUOTUFSS0VUSU5HU0hBUkUFBU1VTFQ2CQBlAgUDbm93BRFsYXN0TWFya2V0aW5nVGltZQUKWUVBUk1JTExJUwQMbGFzdFRlYW1UaW1lCQELdmFsdWVPckVsc2UCCQCfCAEFD2xhc3RUZWFtVGltZUtleQUJaXNzdWVUaW1lBAh0ZWFtQWRkcgkBEUBleHRyTmF0aXZlKDEwNjIpAQkBBXZhbHVlAQkAoggBBQt0ZWFtQWRkcktleQQKdGVhbUFtb3VudAkAawMJAGsDBQZNVUxUMTQFCVRFQU1TSEFSRQUFTVVMVDYJAGUCBQNub3cFDGxhc3RUZWFtVGltZQkAaAIAAwUKWUVBUk1JTExJUwQSbGFzdEFjdGl2aXRpZXNUaW1lCQELdmFsdWVPckVsc2UCCQCfCAEFFWxhc3RBY3Rpdml0aWVzVGltZUtleQUJaXNzdWVUaW1lBAlhY3RBbW91bnQJAGsDCQBrAwUGTVVMVDE0BQ1BQ1RJVklUWVNIQVJFBQVNVUxUNgkAZQIFA25vdwUSbGFzdEFjdGl2aXRpZXNUaW1lCQBoAgADBQpZRUFSTUlMTElTBAljdXJQZXJpb2QJAGkCCQBlAgUDbm93BQlpc3N1ZVRpbWUFCldFRUtNSUxMSVMDCQBmAgUJY3VyUGVyaW9kCQBpAgUJTUFYUEVSSU9EAAIJAAIBAj1QbGVhc2UgbW9kaWZ5IGNvbnRyYWN0IGZvciBuZXh0IDEuNSB5ZWFycywgYWNjb3JkaW5nIHRvIHN0YXRzBANlZmYJAQ5nZXRWb3RpbmdQb3dlcgEFCmNhbGxlckFkZHIEC3RvdGFsUGllY2VzCQCRAwIFA2VmZgULSWR4RWZmVG90YWwED2Ftb3VudExlZnRUb3RhbAkBC3ZhbHVlT3JFbHNlAgkAnwgBBRRzdGFrZXJzQW1vdW50TGVmdEtleQAABBVjdXJQZXJpb2REaXN0cmlidXRpb24JAGsDBQ9hbW91bnRMZWZ0VG90YWwJAGgCAAIFC3RvdGFsUGllY2VzCQBkAgULdG90YWxQaWVjZXMJAGgCCQCWAwEJAMwIAgCgjQYJAMwIAgULdG90YWxQaWVjZXMFA25pbAkAZQIFCU1BWFBFUklPRAUJY3VyUGVyaW9kBAt1c2VyVGltZUtleQkBGGtleUxhc3RDbGFpbWVkVGltZUJ5VXNlcgEFCmNhbGxlckFkZHIEDGxhc3RVc2VyVGltZQkBC3ZhbHVlT3JFbHNlAgkAnwgBBQt1c2VyVGltZUtleQUJaXNzdWVUaW1lBAp1c2VyQW1vdW50CQBrAwkAawMFFWN1clBlcmlvZERpc3RyaWJ1dGlvbgkAkQMCBQNlZmYFCklkeEVmZlVzZXIFC3RvdGFsUGllY2VzCQBlAgUDbm93BQxsYXN0VXNlclRpbWUJAGgCAAMFCllFQVJNSUxMSVMEB3VzZXJLZXkJARhrZXlTdGFrZXJzQW1vdW50UGFpZFVzZXIBBQpjYWxsZXJBZGRyCQCUCgIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUNbWFya2V0aW5nQWRkcgUPbWFya2V0aW5nQW1vdW50BQp3bGdBc3NldElkCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFCHRlYW1BZGRyBQp0ZWFtQW1vdW50BQp3bGdBc3NldElkCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFDHJlc3RDb250cmFjdAUJYWN0QW1vdW50BQp3bGdBc3NldElkCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFBmNhbGxlcgUKdXNlckFtb3VudAUKd2xnQXNzZXRJZAkAzAgCCQEMSW50ZWdlckVudHJ5AgUHdXNlcktleQkAZAIJAQt2YWx1ZU9yRWxzZQIJAJ8IAQUHdXNlcktleQAABQp1c2VyQW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCBRlzdGFrZXJzQW1vdW50UGFpZFRvdGFsS2V5CQBkAgkBC3ZhbHVlT3JFbHNlAgkAnwgBBRlzdGFrZXJzQW1vdW50UGFpZFRvdGFsS2V5AAAFCnVzZXJBbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIFFHN0YWtlcnNBbW91bnRMZWZ0S2V5CQBlAgUPYW1vdW50TGVmdFRvdGFsBQp1c2VyQW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCBRRsYXN0TWFya2V0aW5nVGltZUtleQUDbm93CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ9sYXN0VGVhbVRpbWVLZXkFA25vdwkAzAgCCQEMSW50ZWdlckVudHJ5AgUVbGFzdEFjdGl2aXRpZXNUaW1lS2V5BQNub3cJAMwIAgkBDEludGVnZXJFbnRyeQIFC3VzZXJUaW1lS2V5BQNub3cFA25pbAUMcHJvbG9nUmVzdWx0AWkBC29uU3Rha2VMYW5kAQRhZGRyAwkBAiE9AggFAWkGY2FsbGVyBQ9zdGFraW5nQ29udHJhY3QJAAIBAhFQZXJtaXNzaW9uIGRlbmllZAkAlAoCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEYa2V5TGFzdENsYWltZWRUaW1lQnlVc2VyAQUEYWRkcggFCWxhc3RCbG9jawl0aW1lc3RhbXAFA25pbAgFCWxhc3RCbG9jawl0aW1lc3RhbXABaQENb25VbnN0YWtlTGFuZAEEYWRkcgMJAQIhPQIIBQFpBmNhbGxlcgUPc3Rha2luZ0NvbnRyYWN0CQACAQIRUGVybWlzc2lvbiBkZW5pZWQJAJQKAgkAzAgCCQELRGVsZXRlRW50cnkBCQEYa2V5TGFzdENsYWltZWRUaW1lQnlVc2VyAQUEYWRkcgUDbmlsAAAAfXyqMw==", "height": 2642805, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 466abnDDzXoaujQ9XYrdQ9f4BnXDSkkWyCUSpdmVPBGp Next: 3RGwQj4cUoEMVvJbuDmiiqREfYbdCAdSFUape7GHDtVY Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let a = take(drop(this.bytes, 1), 1)
4+func a () = "contractsBlocked"
55
6-let b = {
7- let c = a
8- if ((base58'2W' == c))
6+
7+let b = 0
8+
9+let c = 1
10+
11+let d = take(drop(this.bytes, 1), 1)
12+
13+let e = {
14+ let f = d
15+ if ((base58'2W' == f))
916 then base58'9wc3LXNA4TEBsXyKtoLE9mrbDD7WMHXvXrCjZvabLAsi'
10- else if ((base58'2T' == c))
17+ else if ((base58'2T' == f))
1118 then base58'6mWwf9mZBjVgkC54idpyaZLQfAosD914wT8fGf2iiY63'
1219 else throw("Unknown chain")
1320 }
1421
15-let d = {
16- let c = a
17- if ((base58'2W' == c))
22+let g = {
23+ let f = d
24+ if ((base58'2W' == f))
1825 then "3PQCuvFbvh4LkPUnrnU1z3jnbA1p9m3WNhv"
19- else if ((base58'2T' == c))
26+ else if ((base58'2T' == f))
2027 then "3MumkGGztCKAXpWDqxkddofqXSUbqQkvSJy"
2128 else throw("Unknown chain")
2229 }
2330
24-let e = {
25- let c = a
26- if ((base58'2W' == c))
27- then 10000000000
28- else if ((base58'2T' == c))
29- then 100000000
30- else throw("Unknown chain")
31- }
31+let h = "__"
3232
33-let f = "__"
33+let i = 1000000
3434
35-let g = 1000000
35+let j = 100000000
3636
37-let h = 10000000
37+let k = 25
3838
39-let i = 100000000
39+let l = 100
4040
41-let j = 10000000000
41+let m = 225
4242
43-let k = "LAND"
43+let n = 400
4444
45-let l = "DUCK"
45+let o = 625
4646
47-let m = "PRESALE"
47+func p (q,r) = valueOrErrorMessage(getString(q, r), makeString(["mandatory ", toString(q), ".", r, " is not defined"], ""))
4848
49-let n = 6
5049
51-let o = 25
50+let s = 1
5251
53-let p = 100
52+let t = 2
5453
55-let q = 225
54+let u = 4
5655
57-let r = 400
56+let v = 5
5857
59-let s = 625
58+func w () = "%s__restConfig"
6059
61-let t = 3456000
6260
63-let u = 86400000
61+func x () = "%s__restAddr"
6462
65-let v = 10000000000
6663
67-let w = "Africa_F_Africa"
64+func y (z) = split_4C(p(z, w()), h)
6865
69-let x = 39637
7066
71-let y = 3
67+func A (B,C) = valueOrErrorMessage(addressFromString(B[C]), ("Rest cfg doesn't contain address at index " + toString(C)))
7268
73-let z = 4
7469
75-let A = 10
70+let D = addressFromStringValue(valueOrElse(getString(this, x()), g))
7671
77-let B = 100
72+let B = y(D)
7873
79-let C = ["Oil", "Ore", "Wood", "Sand", "Clay", "Organic"]
74+let E = A(B, s)
8075
81-let D = ["Fuel", "Metal", "Plank", "Glass", "Plastic", "Protein"]
76+let F = A(B, t)
8277
83-let E = ["First Aid Kit L1", "First Aid Kit L2", "First Aid Kit L3", "Backpack L1", "Backpack L2", "Backpack L3", "Food Ration L1", "Food Ration L2", "Food Ration L3", "Jet Pack L1", "Jet Pack L2", "Jet Pack L3", "Shield L1", "Shield L2", "Shield L3"]
78+let G = A(B, u)
8479
85-let F = ["Americas", "Europe", "Asia", "Africa", "Oceania"]
86-
87-let G = ["1_1_1_2_2_5_1_10_0", "2_2_2_4_4_10_1_10_0", "3_3_3_6_6_15_1_10_0", "2_5_5_2_7_5_2_100_1", "4_10_10_4_14_10_2_100_1", "6_15_15_6_21_15_2_100_1", "1_1_1_1_1_8_1_10_2", "2_2_2_2_2_16_1_10_2", "3_3_3_3_3_24_1_10_2", "9_9_1_5_5_1_5_100_3", "18_18_2_10_10_2_5_100_3", "27_27_3_15_15_3_5_100_3", "2_2_1_2_2_2_1_10_4", "4_4_2_4_4_4_1_10_4", "6_6_3_6_6_6_1_10_4"]
88-
89-let H = 0
80+let H = A(B, v)
9081
9182 let I = 1
9283
93-let J = 2
94-
95-let K = 3
96-
97-let L = 4
98-
99-let M = 0
100-
101-let N = 1
102-
103-let O = 2
104-
105-let P = 3
106-
107-let Q = 4
108-
109-let R = 5
110-
111-let S = 6
112-
113-let T = 7
114-
115-let U = 8
116-
117-let V = 0
118-
119-let W = 1
120-
121-let X = 2
122-
123-let Y = 3
124-
125-let Z = 0
126-
127-let aa = 1
128-
129-let ab = 2
130-
131-let ac = 3
132-
133-let ad = 4
134-
135-let ae = 0
136-
137-let af = 1
138-
139-let ag = 2
140-
141-let ah = 3
142-
143-let ai = 0
144-
145-let aj = 1
146-
147-let ak = 2
148-
149-let al = 3
150-
151-func am (an) = parseIntValue(split(G[an], "_")[T])
84+func J () = "resTypesProportions"
15285
15386
154-func ao (ap,aq) = valueOrErrorMessage(getString(ap, aq), makeString(["mandatory ", toString(ap), ".", aq, " is not defined"], ""))
87+func K (L) = ("stakedLandsByOwner_" + L)
15588
15689
157-func ar (aq,as) = valueOrElse(getInteger(this, aq), as)
90+let M = "wlg_issuedAmount"
15891
92+let N = 0
15993
160-let at = 1
94+let O = 1
16195
162-let au = 2
96+let P = 2
16397
164-let av = 3
165-
166-let aw = 4
167-
168-func ax () = "%s__restConfig"
169-
170-
171-func ay () = "%s__restAddr"
172-
173-
174-func az (aA) = split_4C(ao(aA, ax()), f)
175-
176-
177-func aB (aC,aD) = valueOrErrorMessage(addressFromString(aC[aD]), ("Rest cfg doesn't contain address at index " + toString(aD)))
178-
179-
180-let aE = addressFromStringValue(valueOrElse(getString(this, ay()), d))
181-
182-let aC = az(aE)
183-
184-let aF = aB(aC, at)
185-
186-let aG = aB(aC, au)
187-
188-let aH = aB(aC, av)
189-
190-let aI = aB(aC, aw)
191-
192-func aJ (aK) = ("lastTxIdByUser_" + aK)
193-
194-
195-func aL (aM) = ("nftOwner_" + aM)
196-
197-
198-func aN (aM) = ("landCustomNameByAssetId_" + aM)
199-
200-
201-func aO (aM) = ("stakedTime_" + aM)
202-
203-
204-func aP (aM) = ("infraLevel_" + aM)
205-
206-
207-func aQ (aR,aM) = makeString(["landArtStatus", aR, aM], "_")
208-
209-
210-func aS (aT,aM,aU) = ((((("stakedTimeByTypeAssetIdAndOwner_" + aT) + "_") + aM) + "_") + aU)
211-
212-
213-func aV (aW) = ("wareHouse_" + aW)
214-
215-
216-func aX (aU) = ("stakedLandsByOwner_" + aU)
217-
218-
219-func aY (aU) = ("stakedPiecesByOwner_" + aU)
220-
221-
222-func aZ (aM) = ("duckCustomNameByAssetId_" + aM)
223-
224-
225-func ba (aK) = ("accountCustomNameByAddr_" + aK)
226-
227-
228-func bb (aK) = ("accRefBy_" + aK)
229-
230-
231-func bc (aK) = ("accReferrals_" + aK)
232-
233-
234-func bd (aM) = ("duckOwner_" + aM)
235-
236-
237-func be (aU) = ("stakedDuckByOwner_" + aU)
238-
239-
240-func bf (bg) = ("backPack_" + bg)
241-
242-
243-func bh (bg) = ("duckLocation_" + bg)
244-
245-
246-func bi (bg) = ("duckHealth_" + bg)
247-
248-
249-func bj () = "resTypesProportions"
250-
251-
252-func bk () = "contractsBlocked"
253-
254-
255-func bl (bm) = ("%s%s__userGwlReleaseTime__" + bm)
256-
257-
258-func bn (aW) = ("landOrder_" + aW)
259-
260-
261-func bo () = "emergencyWarehouseProducts"
262-
263-
264-let bp = 0
265-
266-let bq = 1
267-
268-let br = 2
269-
270-func bs (bt) = {
271- let c = bt
272- if ($isInstanceOf(c, "String"))
98+func Q (R) = {
99+ let f = R
100+ if ($isInstanceOf(f, "Int"))
273101 then {
274- let bu = c
275- bu
276- }
277- else throw("fail to cast into String")
278- }
279-
280-
281-func bv (bt) = {
282- let c = bt
283- if ($isInstanceOf(c, "Int"))
284- then {
285- let bw = c
286- bw
102+ let S = f
103+ S
287104 }
288105 else throw("fail to cast into Int")
289106 }
290107
291108
292-func bx (bt) = {
293- let c = bt
294- if ($isInstanceOf(c, "List[Any]"))
295- then {
296- let by = c
297- by
298- }
299- else throw("fail to cast into List[Any]")
300- }
301-
302-
303-func bz (bt) = {
304- let c = bt
305- if ($isInstanceOf(c, "Boolean"))
306- then {
307- let bu = c
308- bu
309- }
310- else throw("fail to cast into Boolean")
311- }
312-
313-
314-func bA (bB) = {
315- let c = bB
316- if (("S" == c))
317- then o
318- else if (("M" == c))
319- then p
320- else if (("L" == c))
321- then q
322- else if (("XL" == c))
323- then r
324- else if (("XXL" == c))
325- then s
109+func T (U) = {
110+ let f = U
111+ if (("S" == f))
112+ then k
113+ else if (("M" == f))
114+ then l
115+ else if (("L" == f))
116+ then m
117+ else if (("XL" == f))
118+ then n
119+ else if (("XXL" == f))
120+ then o
326121 else throw("Unknown land size")
327122 }
328123
329124
330-let bC = 0
125+func V (W) = {
126+ let X = split(valueOrElse(getString(E, J()), "0_0_0_0_0_0"), "_")
127+ func Y (Z,aa) = (Z + parseIntValue(aa))
331128
332-let bD = 1
129+ let ab = {
130+ let ac = X
131+ let ad = size(ac)
132+ let ae = 0
133+ func af (ag,ah) = if ((ah >= ad))
134+ then ag
135+ else Y(ag, ac[ah])
333136
334-func bE (bF) = {
335- let bG = split(valueOrElse(getString(aF, bj()), "0_0_0_0_0_0"), "_")
336- func bH (bI,bJ) = (bI + parseIntValue(bJ))
337-
338- let bK = {
339- let bL = bG
340- let bM = size(bL)
341- let bN = 0
342- func bO (bP,bQ) = if ((bQ >= bM))
343- then bP
344- else bH(bP, bL[bQ])
345-
346- func bR (bP,bQ) = if ((bQ >= bM))
347- then bP
137+ func ai (ag,ah) = if ((ah >= ad))
138+ then ag
348139 else throw("List size exceeds 6")
349140
350- bR(bO(bO(bO(bO(bO(bO(bN, 0), 1), 2), 3), 4), 5), 6)
141+ ai(af(af(af(af(af(af(ae, 0), 1), 2), 3), 4), 5), 6)
351142 }
352- let bS = if ((bF == ""))
143+ let aj = if ((W == ""))
353144 then 0
354145 else {
355- let bT = getString(aF, aX(bF))
356- let bU = if (isDefined(bT))
357- then split_51C(value(bT), "_")
146+ let ak = getString(E, K(W))
147+ let al = if (isDefined(ak))
148+ then split_51C(value(ak), "_")
358149 else nil
359- func bV (bI,aW) = {
360- let bW = value(assetInfo(fromBase58String(aW)))
361- let bB = split(bW.description, "_")[W]
362- (bI + bA(bB))
150+ func am (Z,an) = {
151+ let ao = value(assetInfo(fromBase58String(an)))
152+ let U = split(ao.description, "_")[I]
153+ (Z + T(U))
363154 }
364155
365- let bL = bU
366- let bM = size(bL)
367- let bN = 0
368- func bX (bP,bQ) = if ((bQ >= bM))
369- then bP
370- else bV(bP, bL[bQ])
156+ let ac = al
157+ let ad = size(ac)
158+ let ae = 0
159+ func ap (ag,ah) = if ((ah >= ad))
160+ then ag
161+ else am(ag, ac[ah])
371162
372- func bY (bP,bQ) = if ((bQ >= bM))
373- then bP
163+ func aq (ag,ah) = if ((ah >= ad))
164+ then ag
374165 else throw("List size exceeds 100")
375166
376- 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(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(bN, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
167+ aq(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(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ae, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
377168 }
378-[bK, bS]
169+[ab, aj]
379170 }
380171
381172
382-func bZ (ca) = {
383- func cb (cc,cd) = (cc + parseIntValue(ca[cd]))
384-
385- let bL = [0, 1, 2, 3, 4, 5]
386- let bM = size(bL)
387- let bN = 0
388- func bO (bP,bQ) = if ((bQ >= bM))
389- then bP
390- else cb(bP, bL[bQ])
391-
392- func bR (bP,bQ) = if ((bQ >= bM))
393- then bP
394- else throw("List size exceeds 6")
395-
396- bR(bO(bO(bO(bO(bO(bO(bN, 0), 1), 2), 3), 4), 5), 6)
173+func ar () = {
174+ let as = valueOrErrorMessage(getInteger(G, M), "WLGOLD is not issued yet")
175+ let at = assetBalance(F, e)
176+ let au = assetBalance(D, e)
177+ let av = assetBalance(G, e)
178+ let aw = assetBalance(H, e)
179+ let ax = (((at + au) + av) + aw)
180+[as, fraction(ax, j, as), ax, at, au, av, aw]
397181 }
398182
399183
400-let ce = 100000000000000
184+let ay = 100000000000000
401185
402-let cf = 100000
186+let az = 100000
403187
404-let cg = 200000
188+let aA = 200000
405189
406-let ch = 100000
190+let aB = 100000
407191
408-let ci = 400000
192+let aC = 400000
409193
410-let cj = 31557600000
194+let aD = 31557600000
411195
412-let ck = 604800000
196+let aE = 604800000
413197
414-let cl = 156
198+let aF = 156
415199
416-let cm = 600000
200+let aG = 600000
417201
418-let cn = 100000000
202+let aH = 100000000
419203
420-let co = 50000000
204+let aI = 50000000
421205
422-let cp = "wlg_assetId"
206+let aJ = "wlg_assetId"
423207
424-let cq = "wlg_issueTime"
208+let aK = "wlg_issueTime"
425209
426-let cr = "wlg_issuedAmount"
210+let aL = "marketingAddr"
427211
428-let cs = "marketingAddr"
212+let aM = "teamAddr"
429213
430-let ct = "teamAddr"
214+let aN = "lastClaimedTime_marketing"
431215
432-let cu = "lastClaimedTime_marketing"
216+let aO = "lastClaimedTime_team"
433217
434-let cv = "lastClaimedTime_team"
218+let aP = "lastClaimedTime_activities"
435219
436-let cw = "lastClaimedTime_activities"
437-
438-func cx (aK) = ("lastClaimedTimeUser_" + aK)
220+func aQ (aR) = ("lastClaimedTimeUser_" + aR)
439221
440222
441-func cy (aK) = ("lastArbTimeUser_" + aK)
223+func aS (aR) = ("lastArbTimeUser_" + aR)
442224
443225
444-let cz = "stakersAmountLeft"
226+let aT = "stakersAmountLeft"
445227
446-let cA = "stakersAmountPaidTotal"
228+let aU = "stakersAmountPaidTotal"
447229
448-func cB (aK) = ("stakersAmountPaidUser_" + aK)
230+func aV (aR) = ("stakersAmountPaidUser_" + aR)
449231
450232
451-let cC = 0
233+let aW = valueOrErrorMessage(getBinary(aJ), "Not initialized yet")
452234
453-let cD = 1
454-
455-let cE = 2
456-
457-let cF = valueOrErrorMessage(getBinary(cp), "Not initialized yet")
458-
459-func cG () = if (valueOrElse(getBoolean(aF, bk()), false))
235+func aX () = if (valueOrElse(getBoolean(E, a()), false))
460236 then throw("Contracts are under maintenance")
461- else bv(invoke(aF, "saveLastTx", nil, nil))
237+ else Q(invoke(E, "saveLastTx", nil, nil))
462238
463239
464-func cH () = {
465- let cI = valueOrErrorMessage(getInteger(cr), "WLGOLD is not issued yet")
466- let cJ = ((assetBalance(aG, b) + assetBalance(aE, b)) + assetBalance(aI, b))
467-[cI, fraction(cJ, i, cI), cJ]
468- }
469-
470-
471-func cK (aK) = {
472- let cL = valueOrElse(getInteger(cy(aK)), 0)
473- let cM = lastBlock.timestamp
474- if ((cm > (cM - cL)))
240+func aY (aR) = {
241+ let aZ = valueOrElse(getInteger(aS(aR)), 0)
242+ let ba = lastBlock.timestamp
243+ if ((aG > (ba - aZ)))
475244 then throw("Arbitrages are possible once a 10 minutes")
476245 else {
477- let cN = bE(aK)[bD]
478- let cO = pow(cN, 0, co, 8, 8, CEILING)
479- fraction(cn, cO, i)
246+ let bb = V(aR)[c]
247+ let bc = pow(bb, 0, aI, 8, 8, CEILING)
248+ fraction(aH, bc, j)
480249 }
481250 }
482251
483252
484-@Callable(cP)
485-func constructorV1 (cQ,cR,cS) = if ((cP.caller != this))
253+@Callable(bd)
254+func constructorV1 (be,bf,bg) = if ((bd.caller != this))
486255 then throw("Permission denied")
487- else if (isDefined(getBinary(cp)))
256+ else if (isDefined(getBinary(aJ)))
488257 then throw("Already initialized")
489258 else {
490- let cI = ce
491- let cT = Issue("WLGOLD", "WavesLands Gold investment token", cI, 8, true, unit, 0)
492- let aM = calculateAssetId(cT)
493-[cT, IntegerEntry(cq, lastBlock.timestamp), IntegerEntry(cr, cI), IntegerEntry(cA, 0), IntegerEntry(cz, fraction(ce, ci, g)), BinaryEntry(cp, aM), StringEntry(ay(), cQ), StringEntry(cs, cR), StringEntry(ct, cS)]
259+ let as = ay
260+ let bh = Issue("WLGOLD", "WavesLands Gold investment token", as, 8, true, unit, 0)
261+ let bi = calculateAssetId(bh)
262+[bh, IntegerEntry(aK, lastBlock.timestamp), IntegerEntry(M, as), IntegerEntry(aU, 0), IntegerEntry(aT, fraction(ay, aC, i)), BinaryEntry(aJ, bi), StringEntry(x(), be), StringEntry(aL, bf), StringEntry(aM, bg)]
494263 }
495264
496265
497266
498-@Callable(cP)
267+@Callable(bd)
499268 func buyWlg () = {
500- let cU = cG()
501- if ((size(cP.payments) != 1))
269+ let bj = aX()
270+ if ((size(bd.payments) != 1))
502271 then throw("exactly 1 payment must be attached")
503272 else {
504- let cV = cP.payments[0]
505- let cW = cV.amount
506- let cX = valueOrErrorMessage(cV.assetId, "WAVES can't be used as payment")
507- if ((cX != b))
273+ let bk = bd.payments[0]
274+ let bl = bk.amount
275+ let bm = valueOrErrorMessage(bk.assetId, "WAVES can't be used as payment")
276+ if ((bm != e))
508277 then throw("USDT payments only!")
509278 else {
510- let cY = cP.caller
511- let aK = toString(cY)
512- let cZ = cK(aK)
513- if ((cW > cZ))
514- then throw((("You can spend max " + toString(cZ)) + " USDT"))
279+ let bn = bd.caller
280+ let aR = toString(bn)
281+ let bo = aY(aR)
282+ if ((bl > bo))
283+ then throw((("You can spend max " + toString(bo)) + " USDT"))
515284 else {
516- let da = cH()
517- let db = da[cC]
518- let dc = fraction(da[cD], 6, 5)
519- let dd = fraction(cW, i, dc)
520- let de = fraction(cW, db, (da[cE] - cW))
521- $Tuple2([Reissue(cF, de, true), IntegerEntry(cr, (db + de)), IntegerEntry(cy(aK), lastBlock.timestamp), ScriptTransfer(cY, dd, cF)], cU)
285+ let bp = ar()
286+ let bq = bp[N]
287+ let br = fraction(bp[O], 6, 5)
288+ let bs = fraction(bl, j, br)
289+ let bt = fraction(bl, bq, (bp[P] - bl))
290+ $Tuple2([Reissue(aW, bt, true), IntegerEntry(M, (bq + bt)), IntegerEntry(aS(aR), lastBlock.timestamp), ScriptTransfer(bn, bs, aW)], bj)
522291 }
523292 }
524293 }
526295
527296
528297
529-@Callable(cP)
298+@Callable(bd)
530299 func sellWlg () = {
531- let cU = cG()
532- if ((size(cP.payments) != 1))
300+ let bj = aX()
301+ if ((size(bd.payments) != 1))
533302 then throw("exactly 1 payment must be attached")
534303 else {
535- let cV = cP.payments[0]
536- let df = cV.amount
537- let cX = valueOrErrorMessage(cV.assetId, "WAVES can't be used as payment")
538- if ((cX != cF))
304+ let bk = bd.payments[0]
305+ let bu = bk.amount
306+ let bm = valueOrErrorMessage(bk.assetId, "WAVES can't be used as payment")
307+ if ((bm != aW))
539308 then throw("WLGOLD payments only!")
540309 else {
541- let cY = cP.caller
542- let aK = toString(cY)
543- let cZ = cK(aK)
544- let da = cH()
545- let db = (da[cC] - df)
546- let dg = fraction(da[cD], 4, 5)
547- let dh = fraction(df, dg, i)
548- if ((dh > cZ))
549- then throw((("You can get max " + toString(cZ)) + " USDT"))
310+ let bn = bd.caller
311+ let aR = toString(bn)
312+ let bo = aY(aR)
313+ let bp = ar()
314+ let bq = (bp[N] - bu)
315+ let bv = fraction(bp[O], 4, 5)
316+ let bw = fraction(bu, bv, j)
317+ if ((bw > bo))
318+ then throw((("You can get max " + toString(bo)) + " USDT"))
550319 else {
551- let di = fraction(dh, db, da[cE])
552- $Tuple2([Burn(cF, di), IntegerEntry(cr, (db - di)), IntegerEntry(cy(aK), lastBlock.timestamp), ScriptTransfer(cY, dh, b)], cU)
320+ let bx = fraction(bw, bq, bp[P])
321+ $Tuple2([Burn(aW, bx), IntegerEntry(M, (bq - bx)), IntegerEntry(aS(aR), lastBlock.timestamp), ScriptTransfer(bn, bw, e)], bj)
553322 }
554323 }
555324 }
557326
558327
559328
560-@Callable(cP)
329+@Callable(bd)
561330 func claim () = {
562- let cU = cG()
563- let cY = cP.caller
564- let dj = toString(cY)
565- let cM = lastBlock.timestamp
566- let dk = valueOrErrorMessage(getInteger(cq), "Not initialized")
567- let dl = valueOrElse(getInteger(cu), dk)
568- let cR = addressFromStringValue(value(getString(cs)))
569- let dm = fraction(fraction(ce, cf, g), (cM - dl), cj)
570- let dn = valueOrElse(getInteger(cv), dk)
571- let cS = addressFromStringValue(value(getString(ct)))
572- let do = fraction(fraction(ce, cg, g), (cM - dn), (3 * cj))
573- let dp = valueOrElse(getInteger(cw), dk)
574- let dq = fraction(fraction(ce, ch, g), (cM - dp), (3 * cj))
575- let dr = ((cM - dk) / ck)
576- if ((dr > (cl / 2)))
331+ let bj = aX()
332+ let bn = bd.caller
333+ let by = toString(bn)
334+ let ba = lastBlock.timestamp
335+ let bz = valueOrErrorMessage(getInteger(aK), "Not initialized")
336+ let bA = valueOrElse(getInteger(aN), bz)
337+ let bf = addressFromStringValue(value(getString(aL)))
338+ let bB = fraction(fraction(ay, az, i), (ba - bA), aD)
339+ let bC = valueOrElse(getInteger(aO), bz)
340+ let bg = addressFromStringValue(value(getString(aM)))
341+ let bD = fraction(fraction(ay, aA, i), (ba - bC), (3 * aD))
342+ let bE = valueOrElse(getInteger(aP), bz)
343+ let bF = fraction(fraction(ay, aB, i), (ba - bE), (3 * aD))
344+ let bG = ((ba - bz) / aE)
345+ if ((bG > (aF / 2)))
577346 then throw("Please modify contract for next 1.5 years, according to stats")
578347 else {
579- let ds = bE(dj)
580- let dt = ds[bC]
581- let du = valueOrElse(getInteger(cz), 0)
582- let dv = fraction(du, (2 * dt), (dt + (max([100000, dt]) * (cl - dr))))
583- let dw = cx(dj)
584- let dx = valueOrElse(getInteger(dw), dk)
585- let dy = fraction(fraction(dv, ds[bD], dt), (cM - dx), (3 * cj))
586- let dz = cB(dj)
587- $Tuple2([ScriptTransfer(cR, dm, cF), ScriptTransfer(cS, do, cF), ScriptTransfer(aE, dq, cF), ScriptTransfer(cY, dy, cF), IntegerEntry(dz, (valueOrElse(getInteger(dz), 0) + dy)), IntegerEntry(cA, (valueOrElse(getInteger(cA), 0) + dy)), IntegerEntry(cz, (du - dy)), IntegerEntry(cu, cM), IntegerEntry(cv, cM), IntegerEntry(cw, cM), IntegerEntry(dw, cM)], cU)
348+ let bH = V(by)
349+ let bI = bH[b]
350+ let bJ = valueOrElse(getInteger(aT), 0)
351+ let bK = fraction(bJ, (2 * bI), (bI + (max([100000, bI]) * (aF - bG))))
352+ let bL = aQ(by)
353+ let bM = valueOrElse(getInteger(bL), bz)
354+ let bN = fraction(fraction(bK, bH[c], bI), (ba - bM), (3 * aD))
355+ let bO = aV(by)
356+ $Tuple2([ScriptTransfer(bf, bB, aW), ScriptTransfer(bg, bD, aW), ScriptTransfer(D, bF, aW), ScriptTransfer(bn, bN, aW), IntegerEntry(bO, (valueOrElse(getInteger(bO), 0) + bN)), IntegerEntry(aU, (valueOrElse(getInteger(aU), 0) + bN)), IntegerEntry(aT, (bJ - bN)), IntegerEntry(aN, ba), IntegerEntry(aO, ba), IntegerEntry(aP, ba), IntegerEntry(bL, ba)], bj)
588357 }
589358 }
590359
591360
592361
593-@Callable(cP)
594-func onStakeLand (aK) = if ((cP.caller != aF))
362+@Callable(bd)
363+func onStakeLand (aR) = if ((bd.caller != E))
595364 then throw("Permission denied")
596- else $Tuple2([IntegerEntry(cx(aK), lastBlock.timestamp)], lastBlock.timestamp)
365+ else $Tuple2([IntegerEntry(aQ(aR), lastBlock.timestamp)], lastBlock.timestamp)
597366
598367
599368
600-@Callable(cP)
601-func onUnstakeLand (aK) = if ((cP.caller != aF))
369+@Callable(bd)
370+func onUnstakeLand (aR) = if ((bd.caller != E))
602371 then throw("Permission denied")
603- else $Tuple2([DeleteEntry(cx(aK))], 0)
372+ else $Tuple2([DeleteEntry(aQ(aR))], 0)
604373
605374
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let a = take(drop(this.bytes, 1), 1)
4+func a () = "contractsBlocked"
55
6-let b = {
7- let c = a
8- if ((base58'2W' == c))
6+
7+let b = 0
8+
9+let c = 1
10+
11+let d = take(drop(this.bytes, 1), 1)
12+
13+let e = {
14+ let f = d
15+ if ((base58'2W' == f))
916 then base58'9wc3LXNA4TEBsXyKtoLE9mrbDD7WMHXvXrCjZvabLAsi'
10- else if ((base58'2T' == c))
17+ else if ((base58'2T' == f))
1118 then base58'6mWwf9mZBjVgkC54idpyaZLQfAosD914wT8fGf2iiY63'
1219 else throw("Unknown chain")
1320 }
1421
15-let d = {
16- let c = a
17- if ((base58'2W' == c))
22+let g = {
23+ let f = d
24+ if ((base58'2W' == f))
1825 then "3PQCuvFbvh4LkPUnrnU1z3jnbA1p9m3WNhv"
19- else if ((base58'2T' == c))
26+ else if ((base58'2T' == f))
2027 then "3MumkGGztCKAXpWDqxkddofqXSUbqQkvSJy"
2128 else throw("Unknown chain")
2229 }
2330
24-let e = {
25- let c = a
26- if ((base58'2W' == c))
27- then 10000000000
28- else if ((base58'2T' == c))
29- then 100000000
30- else throw("Unknown chain")
31- }
31+let h = "__"
3232
33-let f = "__"
33+let i = 1000000
3434
35-let g = 1000000
35+let j = 100000000
3636
37-let h = 10000000
37+let k = 25
3838
39-let i = 100000000
39+let l = 100
4040
41-let j = 10000000000
41+let m = 225
4242
43-let k = "LAND"
43+let n = 400
4444
45-let l = "DUCK"
45+let o = 625
4646
47-let m = "PRESALE"
47+func p (q,r) = valueOrErrorMessage(getString(q, r), makeString(["mandatory ", toString(q), ".", r, " is not defined"], ""))
4848
49-let n = 6
5049
51-let o = 25
50+let s = 1
5251
53-let p = 100
52+let t = 2
5453
55-let q = 225
54+let u = 4
5655
57-let r = 400
56+let v = 5
5857
59-let s = 625
58+func w () = "%s__restConfig"
6059
61-let t = 3456000
6260
63-let u = 86400000
61+func x () = "%s__restAddr"
6462
65-let v = 10000000000
6663
67-let w = "Africa_F_Africa"
64+func y (z) = split_4C(p(z, w()), h)
6865
69-let x = 39637
7066
71-let y = 3
67+func A (B,C) = valueOrErrorMessage(addressFromString(B[C]), ("Rest cfg doesn't contain address at index " + toString(C)))
7268
73-let z = 4
7469
75-let A = 10
70+let D = addressFromStringValue(valueOrElse(getString(this, x()), g))
7671
77-let B = 100
72+let B = y(D)
7873
79-let C = ["Oil", "Ore", "Wood", "Sand", "Clay", "Organic"]
74+let E = A(B, s)
8075
81-let D = ["Fuel", "Metal", "Plank", "Glass", "Plastic", "Protein"]
76+let F = A(B, t)
8277
83-let E = ["First Aid Kit L1", "First Aid Kit L2", "First Aid Kit L3", "Backpack L1", "Backpack L2", "Backpack L3", "Food Ration L1", "Food Ration L2", "Food Ration L3", "Jet Pack L1", "Jet Pack L2", "Jet Pack L3", "Shield L1", "Shield L2", "Shield L3"]
78+let G = A(B, u)
8479
85-let F = ["Americas", "Europe", "Asia", "Africa", "Oceania"]
86-
87-let G = ["1_1_1_2_2_5_1_10_0", "2_2_2_4_4_10_1_10_0", "3_3_3_6_6_15_1_10_0", "2_5_5_2_7_5_2_100_1", "4_10_10_4_14_10_2_100_1", "6_15_15_6_21_15_2_100_1", "1_1_1_1_1_8_1_10_2", "2_2_2_2_2_16_1_10_2", "3_3_3_3_3_24_1_10_2", "9_9_1_5_5_1_5_100_3", "18_18_2_10_10_2_5_100_3", "27_27_3_15_15_3_5_100_3", "2_2_1_2_2_2_1_10_4", "4_4_2_4_4_4_1_10_4", "6_6_3_6_6_6_1_10_4"]
88-
89-let H = 0
80+let H = A(B, v)
9081
9182 let I = 1
9283
93-let J = 2
94-
95-let K = 3
96-
97-let L = 4
98-
99-let M = 0
100-
101-let N = 1
102-
103-let O = 2
104-
105-let P = 3
106-
107-let Q = 4
108-
109-let R = 5
110-
111-let S = 6
112-
113-let T = 7
114-
115-let U = 8
116-
117-let V = 0
118-
119-let W = 1
120-
121-let X = 2
122-
123-let Y = 3
124-
125-let Z = 0
126-
127-let aa = 1
128-
129-let ab = 2
130-
131-let ac = 3
132-
133-let ad = 4
134-
135-let ae = 0
136-
137-let af = 1
138-
139-let ag = 2
140-
141-let ah = 3
142-
143-let ai = 0
144-
145-let aj = 1
146-
147-let ak = 2
148-
149-let al = 3
150-
151-func am (an) = parseIntValue(split(G[an], "_")[T])
84+func J () = "resTypesProportions"
15285
15386
154-func ao (ap,aq) = valueOrErrorMessage(getString(ap, aq), makeString(["mandatory ", toString(ap), ".", aq, " is not defined"], ""))
87+func K (L) = ("stakedLandsByOwner_" + L)
15588
15689
157-func ar (aq,as) = valueOrElse(getInteger(this, aq), as)
90+let M = "wlg_issuedAmount"
15891
92+let N = 0
15993
160-let at = 1
94+let O = 1
16195
162-let au = 2
96+let P = 2
16397
164-let av = 3
165-
166-let aw = 4
167-
168-func ax () = "%s__restConfig"
169-
170-
171-func ay () = "%s__restAddr"
172-
173-
174-func az (aA) = split_4C(ao(aA, ax()), f)
175-
176-
177-func aB (aC,aD) = valueOrErrorMessage(addressFromString(aC[aD]), ("Rest cfg doesn't contain address at index " + toString(aD)))
178-
179-
180-let aE = addressFromStringValue(valueOrElse(getString(this, ay()), d))
181-
182-let aC = az(aE)
183-
184-let aF = aB(aC, at)
185-
186-let aG = aB(aC, au)
187-
188-let aH = aB(aC, av)
189-
190-let aI = aB(aC, aw)
191-
192-func aJ (aK) = ("lastTxIdByUser_" + aK)
193-
194-
195-func aL (aM) = ("nftOwner_" + aM)
196-
197-
198-func aN (aM) = ("landCustomNameByAssetId_" + aM)
199-
200-
201-func aO (aM) = ("stakedTime_" + aM)
202-
203-
204-func aP (aM) = ("infraLevel_" + aM)
205-
206-
207-func aQ (aR,aM) = makeString(["landArtStatus", aR, aM], "_")
208-
209-
210-func aS (aT,aM,aU) = ((((("stakedTimeByTypeAssetIdAndOwner_" + aT) + "_") + aM) + "_") + aU)
211-
212-
213-func aV (aW) = ("wareHouse_" + aW)
214-
215-
216-func aX (aU) = ("stakedLandsByOwner_" + aU)
217-
218-
219-func aY (aU) = ("stakedPiecesByOwner_" + aU)
220-
221-
222-func aZ (aM) = ("duckCustomNameByAssetId_" + aM)
223-
224-
225-func ba (aK) = ("accountCustomNameByAddr_" + aK)
226-
227-
228-func bb (aK) = ("accRefBy_" + aK)
229-
230-
231-func bc (aK) = ("accReferrals_" + aK)
232-
233-
234-func bd (aM) = ("duckOwner_" + aM)
235-
236-
237-func be (aU) = ("stakedDuckByOwner_" + aU)
238-
239-
240-func bf (bg) = ("backPack_" + bg)
241-
242-
243-func bh (bg) = ("duckLocation_" + bg)
244-
245-
246-func bi (bg) = ("duckHealth_" + bg)
247-
248-
249-func bj () = "resTypesProportions"
250-
251-
252-func bk () = "contractsBlocked"
253-
254-
255-func bl (bm) = ("%s%s__userGwlReleaseTime__" + bm)
256-
257-
258-func bn (aW) = ("landOrder_" + aW)
259-
260-
261-func bo () = "emergencyWarehouseProducts"
262-
263-
264-let bp = 0
265-
266-let bq = 1
267-
268-let br = 2
269-
270-func bs (bt) = {
271- let c = bt
272- if ($isInstanceOf(c, "String"))
98+func Q (R) = {
99+ let f = R
100+ if ($isInstanceOf(f, "Int"))
273101 then {
274- let bu = c
275- bu
276- }
277- else throw("fail to cast into String")
278- }
279-
280-
281-func bv (bt) = {
282- let c = bt
283- if ($isInstanceOf(c, "Int"))
284- then {
285- let bw = c
286- bw
102+ let S = f
103+ S
287104 }
288105 else throw("fail to cast into Int")
289106 }
290107
291108
292-func bx (bt) = {
293- let c = bt
294- if ($isInstanceOf(c, "List[Any]"))
295- then {
296- let by = c
297- by
298- }
299- else throw("fail to cast into List[Any]")
300- }
301-
302-
303-func bz (bt) = {
304- let c = bt
305- if ($isInstanceOf(c, "Boolean"))
306- then {
307- let bu = c
308- bu
309- }
310- else throw("fail to cast into Boolean")
311- }
312-
313-
314-func bA (bB) = {
315- let c = bB
316- if (("S" == c))
317- then o
318- else if (("M" == c))
319- then p
320- else if (("L" == c))
321- then q
322- else if (("XL" == c))
323- then r
324- else if (("XXL" == c))
325- then s
109+func T (U) = {
110+ let f = U
111+ if (("S" == f))
112+ then k
113+ else if (("M" == f))
114+ then l
115+ else if (("L" == f))
116+ then m
117+ else if (("XL" == f))
118+ then n
119+ else if (("XXL" == f))
120+ then o
326121 else throw("Unknown land size")
327122 }
328123
329124
330-let bC = 0
125+func V (W) = {
126+ let X = split(valueOrElse(getString(E, J()), "0_0_0_0_0_0"), "_")
127+ func Y (Z,aa) = (Z + parseIntValue(aa))
331128
332-let bD = 1
129+ let ab = {
130+ let ac = X
131+ let ad = size(ac)
132+ let ae = 0
133+ func af (ag,ah) = if ((ah >= ad))
134+ then ag
135+ else Y(ag, ac[ah])
333136
334-func bE (bF) = {
335- let bG = split(valueOrElse(getString(aF, bj()), "0_0_0_0_0_0"), "_")
336- func bH (bI,bJ) = (bI + parseIntValue(bJ))
337-
338- let bK = {
339- let bL = bG
340- let bM = size(bL)
341- let bN = 0
342- func bO (bP,bQ) = if ((bQ >= bM))
343- then bP
344- else bH(bP, bL[bQ])
345-
346- func bR (bP,bQ) = if ((bQ >= bM))
347- then bP
137+ func ai (ag,ah) = if ((ah >= ad))
138+ then ag
348139 else throw("List size exceeds 6")
349140
350- bR(bO(bO(bO(bO(bO(bO(bN, 0), 1), 2), 3), 4), 5), 6)
141+ ai(af(af(af(af(af(af(ae, 0), 1), 2), 3), 4), 5), 6)
351142 }
352- let bS = if ((bF == ""))
143+ let aj = if ((W == ""))
353144 then 0
354145 else {
355- let bT = getString(aF, aX(bF))
356- let bU = if (isDefined(bT))
357- then split_51C(value(bT), "_")
146+ let ak = getString(E, K(W))
147+ let al = if (isDefined(ak))
148+ then split_51C(value(ak), "_")
358149 else nil
359- func bV (bI,aW) = {
360- let bW = value(assetInfo(fromBase58String(aW)))
361- let bB = split(bW.description, "_")[W]
362- (bI + bA(bB))
150+ func am (Z,an) = {
151+ let ao = value(assetInfo(fromBase58String(an)))
152+ let U = split(ao.description, "_")[I]
153+ (Z + T(U))
363154 }
364155
365- let bL = bU
366- let bM = size(bL)
367- let bN = 0
368- func bX (bP,bQ) = if ((bQ >= bM))
369- then bP
370- else bV(bP, bL[bQ])
156+ let ac = al
157+ let ad = size(ac)
158+ let ae = 0
159+ func ap (ag,ah) = if ((ah >= ad))
160+ then ag
161+ else am(ag, ac[ah])
371162
372- func bY (bP,bQ) = if ((bQ >= bM))
373- then bP
163+ func aq (ag,ah) = if ((ah >= ad))
164+ then ag
374165 else throw("List size exceeds 100")
375166
376- 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(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(bN, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
167+ aq(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(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ae, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
377168 }
378-[bK, bS]
169+[ab, aj]
379170 }
380171
381172
382-func bZ (ca) = {
383- func cb (cc,cd) = (cc + parseIntValue(ca[cd]))
384-
385- let bL = [0, 1, 2, 3, 4, 5]
386- let bM = size(bL)
387- let bN = 0
388- func bO (bP,bQ) = if ((bQ >= bM))
389- then bP
390- else cb(bP, bL[bQ])
391-
392- func bR (bP,bQ) = if ((bQ >= bM))
393- then bP
394- else throw("List size exceeds 6")
395-
396- bR(bO(bO(bO(bO(bO(bO(bN, 0), 1), 2), 3), 4), 5), 6)
173+func ar () = {
174+ let as = valueOrErrorMessage(getInteger(G, M), "WLGOLD is not issued yet")
175+ let at = assetBalance(F, e)
176+ let au = assetBalance(D, e)
177+ let av = assetBalance(G, e)
178+ let aw = assetBalance(H, e)
179+ let ax = (((at + au) + av) + aw)
180+[as, fraction(ax, j, as), ax, at, au, av, aw]
397181 }
398182
399183
400-let ce = 100000000000000
184+let ay = 100000000000000
401185
402-let cf = 100000
186+let az = 100000
403187
404-let cg = 200000
188+let aA = 200000
405189
406-let ch = 100000
190+let aB = 100000
407191
408-let ci = 400000
192+let aC = 400000
409193
410-let cj = 31557600000
194+let aD = 31557600000
411195
412-let ck = 604800000
196+let aE = 604800000
413197
414-let cl = 156
198+let aF = 156
415199
416-let cm = 600000
200+let aG = 600000
417201
418-let cn = 100000000
202+let aH = 100000000
419203
420-let co = 50000000
204+let aI = 50000000
421205
422-let cp = "wlg_assetId"
206+let aJ = "wlg_assetId"
423207
424-let cq = "wlg_issueTime"
208+let aK = "wlg_issueTime"
425209
426-let cr = "wlg_issuedAmount"
210+let aL = "marketingAddr"
427211
428-let cs = "marketingAddr"
212+let aM = "teamAddr"
429213
430-let ct = "teamAddr"
214+let aN = "lastClaimedTime_marketing"
431215
432-let cu = "lastClaimedTime_marketing"
216+let aO = "lastClaimedTime_team"
433217
434-let cv = "lastClaimedTime_team"
218+let aP = "lastClaimedTime_activities"
435219
436-let cw = "lastClaimedTime_activities"
437-
438-func cx (aK) = ("lastClaimedTimeUser_" + aK)
220+func aQ (aR) = ("lastClaimedTimeUser_" + aR)
439221
440222
441-func cy (aK) = ("lastArbTimeUser_" + aK)
223+func aS (aR) = ("lastArbTimeUser_" + aR)
442224
443225
444-let cz = "stakersAmountLeft"
226+let aT = "stakersAmountLeft"
445227
446-let cA = "stakersAmountPaidTotal"
228+let aU = "stakersAmountPaidTotal"
447229
448-func cB (aK) = ("stakersAmountPaidUser_" + aK)
230+func aV (aR) = ("stakersAmountPaidUser_" + aR)
449231
450232
451-let cC = 0
233+let aW = valueOrErrorMessage(getBinary(aJ), "Not initialized yet")
452234
453-let cD = 1
454-
455-let cE = 2
456-
457-let cF = valueOrErrorMessage(getBinary(cp), "Not initialized yet")
458-
459-func cG () = if (valueOrElse(getBoolean(aF, bk()), false))
235+func aX () = if (valueOrElse(getBoolean(E, a()), false))
460236 then throw("Contracts are under maintenance")
461- else bv(invoke(aF, "saveLastTx", nil, nil))
237+ else Q(invoke(E, "saveLastTx", nil, nil))
462238
463239
464-func cH () = {
465- let cI = valueOrErrorMessage(getInteger(cr), "WLGOLD is not issued yet")
466- let cJ = ((assetBalance(aG, b) + assetBalance(aE, b)) + assetBalance(aI, b))
467-[cI, fraction(cJ, i, cI), cJ]
468- }
469-
470-
471-func cK (aK) = {
472- let cL = valueOrElse(getInteger(cy(aK)), 0)
473- let cM = lastBlock.timestamp
474- if ((cm > (cM - cL)))
240+func aY (aR) = {
241+ let aZ = valueOrElse(getInteger(aS(aR)), 0)
242+ let ba = lastBlock.timestamp
243+ if ((aG > (ba - aZ)))
475244 then throw("Arbitrages are possible once a 10 minutes")
476245 else {
477- let cN = bE(aK)[bD]
478- let cO = pow(cN, 0, co, 8, 8, CEILING)
479- fraction(cn, cO, i)
246+ let bb = V(aR)[c]
247+ let bc = pow(bb, 0, aI, 8, 8, CEILING)
248+ fraction(aH, bc, j)
480249 }
481250 }
482251
483252
484-@Callable(cP)
485-func constructorV1 (cQ,cR,cS) = if ((cP.caller != this))
253+@Callable(bd)
254+func constructorV1 (be,bf,bg) = if ((bd.caller != this))
486255 then throw("Permission denied")
487- else if (isDefined(getBinary(cp)))
256+ else if (isDefined(getBinary(aJ)))
488257 then throw("Already initialized")
489258 else {
490- let cI = ce
491- let cT = Issue("WLGOLD", "WavesLands Gold investment token", cI, 8, true, unit, 0)
492- let aM = calculateAssetId(cT)
493-[cT, IntegerEntry(cq, lastBlock.timestamp), IntegerEntry(cr, cI), IntegerEntry(cA, 0), IntegerEntry(cz, fraction(ce, ci, g)), BinaryEntry(cp, aM), StringEntry(ay(), cQ), StringEntry(cs, cR), StringEntry(ct, cS)]
259+ let as = ay
260+ let bh = Issue("WLGOLD", "WavesLands Gold investment token", as, 8, true, unit, 0)
261+ let bi = calculateAssetId(bh)
262+[bh, IntegerEntry(aK, lastBlock.timestamp), IntegerEntry(M, as), IntegerEntry(aU, 0), IntegerEntry(aT, fraction(ay, aC, i)), BinaryEntry(aJ, bi), StringEntry(x(), be), StringEntry(aL, bf), StringEntry(aM, bg)]
494263 }
495264
496265
497266
498-@Callable(cP)
267+@Callable(bd)
499268 func buyWlg () = {
500- let cU = cG()
501- if ((size(cP.payments) != 1))
269+ let bj = aX()
270+ if ((size(bd.payments) != 1))
502271 then throw("exactly 1 payment must be attached")
503272 else {
504- let cV = cP.payments[0]
505- let cW = cV.amount
506- let cX = valueOrErrorMessage(cV.assetId, "WAVES can't be used as payment")
507- if ((cX != b))
273+ let bk = bd.payments[0]
274+ let bl = bk.amount
275+ let bm = valueOrErrorMessage(bk.assetId, "WAVES can't be used as payment")
276+ if ((bm != e))
508277 then throw("USDT payments only!")
509278 else {
510- let cY = cP.caller
511- let aK = toString(cY)
512- let cZ = cK(aK)
513- if ((cW > cZ))
514- then throw((("You can spend max " + toString(cZ)) + " USDT"))
279+ let bn = bd.caller
280+ let aR = toString(bn)
281+ let bo = aY(aR)
282+ if ((bl > bo))
283+ then throw((("You can spend max " + toString(bo)) + " USDT"))
515284 else {
516- let da = cH()
517- let db = da[cC]
518- let dc = fraction(da[cD], 6, 5)
519- let dd = fraction(cW, i, dc)
520- let de = fraction(cW, db, (da[cE] - cW))
521- $Tuple2([Reissue(cF, de, true), IntegerEntry(cr, (db + de)), IntegerEntry(cy(aK), lastBlock.timestamp), ScriptTransfer(cY, dd, cF)], cU)
285+ let bp = ar()
286+ let bq = bp[N]
287+ let br = fraction(bp[O], 6, 5)
288+ let bs = fraction(bl, j, br)
289+ let bt = fraction(bl, bq, (bp[P] - bl))
290+ $Tuple2([Reissue(aW, bt, true), IntegerEntry(M, (bq + bt)), IntegerEntry(aS(aR), lastBlock.timestamp), ScriptTransfer(bn, bs, aW)], bj)
522291 }
523292 }
524293 }
525294 }
526295
527296
528297
529-@Callable(cP)
298+@Callable(bd)
530299 func sellWlg () = {
531- let cU = cG()
532- if ((size(cP.payments) != 1))
300+ let bj = aX()
301+ if ((size(bd.payments) != 1))
533302 then throw("exactly 1 payment must be attached")
534303 else {
535- let cV = cP.payments[0]
536- let df = cV.amount
537- let cX = valueOrErrorMessage(cV.assetId, "WAVES can't be used as payment")
538- if ((cX != cF))
304+ let bk = bd.payments[0]
305+ let bu = bk.amount
306+ let bm = valueOrErrorMessage(bk.assetId, "WAVES can't be used as payment")
307+ if ((bm != aW))
539308 then throw("WLGOLD payments only!")
540309 else {
541- let cY = cP.caller
542- let aK = toString(cY)
543- let cZ = cK(aK)
544- let da = cH()
545- let db = (da[cC] - df)
546- let dg = fraction(da[cD], 4, 5)
547- let dh = fraction(df, dg, i)
548- if ((dh > cZ))
549- then throw((("You can get max " + toString(cZ)) + " USDT"))
310+ let bn = bd.caller
311+ let aR = toString(bn)
312+ let bo = aY(aR)
313+ let bp = ar()
314+ let bq = (bp[N] - bu)
315+ let bv = fraction(bp[O], 4, 5)
316+ let bw = fraction(bu, bv, j)
317+ if ((bw > bo))
318+ then throw((("You can get max " + toString(bo)) + " USDT"))
550319 else {
551- let di = fraction(dh, db, da[cE])
552- $Tuple2([Burn(cF, di), IntegerEntry(cr, (db - di)), IntegerEntry(cy(aK), lastBlock.timestamp), ScriptTransfer(cY, dh, b)], cU)
320+ let bx = fraction(bw, bq, bp[P])
321+ $Tuple2([Burn(aW, bx), IntegerEntry(M, (bq - bx)), IntegerEntry(aS(aR), lastBlock.timestamp), ScriptTransfer(bn, bw, e)], bj)
553322 }
554323 }
555324 }
556325 }
557326
558327
559328
560-@Callable(cP)
329+@Callable(bd)
561330 func claim () = {
562- let cU = cG()
563- let cY = cP.caller
564- let dj = toString(cY)
565- let cM = lastBlock.timestamp
566- let dk = valueOrErrorMessage(getInteger(cq), "Not initialized")
567- let dl = valueOrElse(getInteger(cu), dk)
568- let cR = addressFromStringValue(value(getString(cs)))
569- let dm = fraction(fraction(ce, cf, g), (cM - dl), cj)
570- let dn = valueOrElse(getInteger(cv), dk)
571- let cS = addressFromStringValue(value(getString(ct)))
572- let do = fraction(fraction(ce, cg, g), (cM - dn), (3 * cj))
573- let dp = valueOrElse(getInteger(cw), dk)
574- let dq = fraction(fraction(ce, ch, g), (cM - dp), (3 * cj))
575- let dr = ((cM - dk) / ck)
576- if ((dr > (cl / 2)))
331+ let bj = aX()
332+ let bn = bd.caller
333+ let by = toString(bn)
334+ let ba = lastBlock.timestamp
335+ let bz = valueOrErrorMessage(getInteger(aK), "Not initialized")
336+ let bA = valueOrElse(getInteger(aN), bz)
337+ let bf = addressFromStringValue(value(getString(aL)))
338+ let bB = fraction(fraction(ay, az, i), (ba - bA), aD)
339+ let bC = valueOrElse(getInteger(aO), bz)
340+ let bg = addressFromStringValue(value(getString(aM)))
341+ let bD = fraction(fraction(ay, aA, i), (ba - bC), (3 * aD))
342+ let bE = valueOrElse(getInteger(aP), bz)
343+ let bF = fraction(fraction(ay, aB, i), (ba - bE), (3 * aD))
344+ let bG = ((ba - bz) / aE)
345+ if ((bG > (aF / 2)))
577346 then throw("Please modify contract for next 1.5 years, according to stats")
578347 else {
579- let ds = bE(dj)
580- let dt = ds[bC]
581- let du = valueOrElse(getInteger(cz), 0)
582- let dv = fraction(du, (2 * dt), (dt + (max([100000, dt]) * (cl - dr))))
583- let dw = cx(dj)
584- let dx = valueOrElse(getInteger(dw), dk)
585- let dy = fraction(fraction(dv, ds[bD], dt), (cM - dx), (3 * cj))
586- let dz = cB(dj)
587- $Tuple2([ScriptTransfer(cR, dm, cF), ScriptTransfer(cS, do, cF), ScriptTransfer(aE, dq, cF), ScriptTransfer(cY, dy, cF), IntegerEntry(dz, (valueOrElse(getInteger(dz), 0) + dy)), IntegerEntry(cA, (valueOrElse(getInteger(cA), 0) + dy)), IntegerEntry(cz, (du - dy)), IntegerEntry(cu, cM), IntegerEntry(cv, cM), IntegerEntry(cw, cM), IntegerEntry(dw, cM)], cU)
348+ let bH = V(by)
349+ let bI = bH[b]
350+ let bJ = valueOrElse(getInteger(aT), 0)
351+ let bK = fraction(bJ, (2 * bI), (bI + (max([100000, bI]) * (aF - bG))))
352+ let bL = aQ(by)
353+ let bM = valueOrElse(getInteger(bL), bz)
354+ let bN = fraction(fraction(bK, bH[c], bI), (ba - bM), (3 * aD))
355+ let bO = aV(by)
356+ $Tuple2([ScriptTransfer(bf, bB, aW), ScriptTransfer(bg, bD, aW), ScriptTransfer(D, bF, aW), ScriptTransfer(bn, bN, aW), IntegerEntry(bO, (valueOrElse(getInteger(bO), 0) + bN)), IntegerEntry(aU, (valueOrElse(getInteger(aU), 0) + bN)), IntegerEntry(aT, (bJ - bN)), IntegerEntry(aN, ba), IntegerEntry(aO, ba), IntegerEntry(aP, ba), IntegerEntry(bL, ba)], bj)
588357 }
589358 }
590359
591360
592361
593-@Callable(cP)
594-func onStakeLand (aK) = if ((cP.caller != aF))
362+@Callable(bd)
363+func onStakeLand (aR) = if ((bd.caller != E))
595364 then throw("Permission denied")
596- else $Tuple2([IntegerEntry(cx(aK), lastBlock.timestamp)], lastBlock.timestamp)
365+ else $Tuple2([IntegerEntry(aQ(aR), lastBlock.timestamp)], lastBlock.timestamp)
597366
598367
599368
600-@Callable(cP)
601-func onUnstakeLand (aK) = if ((cP.caller != aF))
369+@Callable(bd)
370+func onUnstakeLand (aR) = if ((bd.caller != E))
602371 then throw("Permission denied")
603- else $Tuple2([DeleteEntry(cx(aK))], 0)
372+ else $Tuple2([DeleteEntry(aQ(aR))], 0)
604373
605374

github/deemru/w8io/169f3d6 
232.27 ms