tx · 8oNhYXVoHCW257sF3FavVcLbTVipu7JgHMGp8fh5SX1F 3N7UuYar6264P58FBhVWKPQAh4Yua2hgngv: -0.00600000 Waves 2024.09.12 20:21 [3280713] smart account 3N7UuYar6264P58FBhVWKPQAh4Yua2hgngv > SELF 0.00000000 Waves
{ "type": 13, "id": "8oNhYXVoHCW257sF3FavVcLbTVipu7JgHMGp8fh5SX1F", "fee": 600000, "feeAssetId": null, "timestamp": 1726161795043, "version": 2, "chainId": 84, "sender": "3N7UuYar6264P58FBhVWKPQAh4Yua2hgngv", "senderPublicKey": "2fNSk5gmWbXBDTkSYSKd66xSgVvAYzrJnP9YSAFNvTwC", "proofs": [ "27hwHQaR2F4r4dTe2hYTSihDXtNi6dY7fbYgyhrH1NfWCZNhmZrHhcbGCcgVGrxwjWRtqp1iL5TxxYW9TW7Lq8LE" ], "script": "base64:BgIRCAISAwoBGBIDCgEIEgMKAQghAANTRVACAl9fAAVjaGFpbgkAyQECCQDKAQIIBQR0aGlzBWJ5dGVzAAEAAQAWZGVmYXVsdFJlc3QyQWRkcmVzc1N0cgQHJG1hdGNoMAUFY2hhaW4DCQAAAgEBVwUHJG1hdGNoMAIjM1BGd1l0YThiaUV6MzF6cGVGZTVESks4d0U1dHJTcFFWRjgDCQAAAgEBVAUHJG1hdGNoMAIjM043VXVZYXI2MjY0UDU4RkJoVldLUFFBaDRZdWEyaGduZ3YJAAIBAg1Vbmtub3duIGNoYWluABVvbGRTdGFraW5nQ29udHJhY3RTdHIEByRtYXRjaDAFBWNoYWluAwkAAAIBAVcFByRtYXRjaDACIzNQTG5jWHRTMVU4M0Q2Y1FiRkQzSDhyQkhQTGd6eFNGS1oxAwkAAAIBAVQFByRtYXRjaDACIzNOREN5Qkc1cTg1SnVhUmlpZ1VlRXRhaW55akNRVDNYcFptCQACAQINVW5rbm93biBjaGFpbgEPZ2V0U3RyaW5nT3JGYWlsAgdhZGRyZXNzA2tleQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFB2FkZHJlc3MFA2tleQkAuQkCCQDMCAICCm1hbmRhdG9yeSAJAMwIAgkApQgBBQdhZGRyZXNzCQDMCAICAS4JAMwIAgUDa2V5CQDMCAICDyBpcyBub3QgZGVmaW5lZAUDbmlsAgAAEElkeENmZ0FjcmVzMkRhcHAAAQANSWR4Q2ZnV2xnRGFwcAACAQprZXlSZXN0Q2ZnAAIOJXNfX3Jlc3RDb25maWcBD2tleVJlc3QyQWRkcmVzcwACDSVzX19yZXN0MkFkZHIBEXJlYWRSZXN0Q2ZnT3JGYWlsAQRyZXN0CQC8CQIJAQ9nZXRTdHJpbmdPckZhaWwCBQRyZXN0CQEKa2V5UmVzdENmZwAFA1NFUAEYZ2V0Q29udHJhY3RBZGRyZXNzT3JGYWlsAghyZXN0MkNmZwNpZHgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIFCHJlc3QyQ2ZnBQNpZHgJAKwCAgIqUmVzdCBjZmcgZG9lc24ndCBjb250YWluIGFkZHJlc3MgYXQgaW5kZXggCQCkAwEFA2lkeAANcmVzdDJDb250cmFjdAkBEUBleHRyTmF0aXZlKDEwNjIpAQkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQEPa2V5UmVzdDJBZGRyZXNzAAUWZGVmYXVsdFJlc3QyQWRkcmVzc1N0cgAIcmVzdDJDZmcJARFyZWFkUmVzdENmZ09yRmFpbAEFDXJlc3QyQ29udHJhY3QADmFjcmVzMkNvbnRyYWN0CQEYZ2V0Q29udHJhY3RBZGRyZXNzT3JGYWlsAgUIcmVzdDJDZmcFEElkeENmZ0FjcmVzMkRhcHAAC3dsZ0NvbnRyYWN0CQEYZ2V0Q29udHJhY3RBZGRyZXNzT3JGYWlsAgUIcmVzdDJDZmcFDUlkeENmZ1dsZ0RhcHAAE29sZEFjcmVzQ29udHJhY3RLZXkCEG9sZEFjcmVzQ29udHJhY3QBEWtleUxhc3RUeElkQnlVc2VyAQRhZGRyCQCsAgICD2xhc3RUeElkQnlVc2VyXwUEYWRkcgANd2xnQXNzZXRJZEtleQILd2xnX2Fzc2V0SWQACndsZ0Fzc2V0SWQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnAgCBQt3bGdDb250cmFjdAUNd2xnQXNzZXRJZEtleQIYV0xHT0xEIGlzIG5vdCBpc3N1ZWQgeWV0AA9hY3Jlc0Fzc2V0SWRLZXkCDGFjcmVzQXNzZXRJZAAMYWNyZXNBc3NldElkCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJwIAgUOYWNyZXMyQ29udHJhY3QFD2FjcmVzQXNzZXRJZEtleQIXQUNSRVMgaXMgbm90IGlzc3VlZCB5ZXQBFGtleVN0YWtlZER1Y2tCeU93bmVyAQlvd25lckFkZHIJAKwCAgISc3Rha2VkRHVja0J5T3duZXJfBQlvd25lckFkZHIBFmtleUFkZHJlc3NUb0N1c3RvbU5hbWUBBGFkZHIJAKwCAgIYYWNjb3VudEN1c3RvbU5hbWVCeUFkZHJfBQRhZGRyAQ9rZXlBZGRyZXNzUmVmQnkBBGFkZHIJAKwCAgIJYWNjUmVmQnlfBQRhZGRyARNrZXlBZGRyZXNzUmVmZXJyYWxzAQRhZGRyCQCsAgICDWFjY1JlZmVycmFsc18FBGFkZHIBDGFzVHVwbGU0SW50cwEDdmFsBAckbWF0Y2gwBQN2YWwDCQABAgUHJG1hdGNoMAIUKEludCwgSW50LCBJbnQsIEludCkEAXQFByRtYXRjaDAFAXQJAAIBAiZmYWlsIHRvIGNhc3QgaW50byAoSW50LCBJbnQsIEludCwgSW50KQEMYXNUdXBsZTNJbnRzAQN2YWwEByRtYXRjaDAFA3ZhbAMJAAECBQckbWF0Y2gwAg8oSW50LCBJbnQsIEludCkEAXQFByRtYXRjaDAFAXQJAAIBAiFmYWlsIHRvIGNhc3QgaW50byAoSW50LCBJbnQsIEludCkBDGFzVHVwbGUySW50cwEDdmFsBAckbWF0Y2gwBQN2YWwDCQABAgUHJG1hdGNoMAIKKEludCwgSW50KQQBdAUHJG1hdGNoMAUBdAkAAgECHGZhaWwgdG8gY2FzdCBpbnRvIChJbnQsIEludCkAA004XwCAwtcvARdrZXlBY3Jlc1N0YWtlZEFtdEJ5VXNlcgEEYWRkcgkArAICAhhhY3Jlc1N0YWtlZEFtb3VudEJ5VXNlcl8FBGFkZHIABmxldmVscwkAzAgCAAoJAMwIAgAUCQDMCAIAKAkAzAgCAFAJAMwIAgCWAQkAzAgCAPoBCQDMCAIAkAMJAMwIAgC8BQkAzAgCAOgHBQNuaWwBD2dldExldmVsQnlBY3JlcwEFYWNyZXMEA2FjcgkAaQIFBWFjcmVzBQNNOF8KAQdjaGVja2VyAgNhY2MEaXRlbQMJAGYCBQRpdGVtBQNhY3IFA2FjYwkAZAIFA2FjYwABBANpZHgKAAIkbAUGbGV2ZWxzCgACJHMJAJADAQUCJGwKAAUkYWNjMAAACgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQdjaGVja2VyAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKCQBkAgUDaWR4AAEBDndhbGxldEludGVybmFsAQ51c2VyQWRkcmVzc09wdAQEYWRkcgkApggBBQ51c2VyQWRkcmVzc09wdAQHYmFsYW5jZQMJAQlpc0RlZmluZWQBBQRhZGRyCQDvBwEJAQV2YWx1ZQEFBGFkZHIJAQ5CYWxhbmNlRGV0YWlscwQAAAAAAAAAAAQNd2xnb2xkQmFsYW5jZQMJAQlpc0RlZmluZWQBBQRhZGRyCQDwBwIJAQV2YWx1ZQEFBGFkZHIFCndsZ0Fzc2V0SWQAAAQKY3VzdG9tTmFtZQkBC3ZhbHVlT3JFbHNlAgkAnQgCBQ5hY3JlczJDb250cmFjdAkBFmtleUFkZHJlc3NUb0N1c3RvbU5hbWUBBQ51c2VyQWRkcmVzc09wdAUOdXNlckFkZHJlc3NPcHQECHJlZkJ5S2V5CQEPa2V5QWRkcmVzc1JlZkJ5AQUOdXNlckFkZHJlc3NPcHQEBXJlZkJ5CQCdCAIFDmFjcmVzMkNvbnRyYWN0BQhyZWZCeUtleQQEcmVmcwkBC3ZhbHVlT3JFbHNlAgkAnQgCBQ5hY3JlczJDb250cmFjdAkBE2tleUFkZHJlc3NSZWZlcnJhbHMBBQ51c2VyQWRkcmVzc09wdAIABAhsYXN0VHhJZAkBC3ZhbHVlT3JFbHNlAgkAnQgCBQ5hY3JlczJDb250cmFjdAkBEWtleUxhc3RUeElkQnlVc2VyAQUOdXNlckFkZHJlc3NPcHQCAAQMYWNyZXNCYWxhbmNlAwkBCWlzRGVmaW5lZAEFBGFkZHIJAPAHAgkBBXZhbHVlAQUEYWRkcgUMYWNyZXNBc3NldElkAAAEC3N0YWtlZEFjcmVzCQELdmFsdWVPckVsc2UCCQCaCAIFDmFjcmVzMkNvbnRyYWN0CQEXa2V5QWNyZXNTdGFrZWRBbXRCeVVzZXIBBQ51c2VyQWRkcmVzc09wdAAABANsdmwJAQ9nZXRMZXZlbEJ5QWNyZXMBBQxhY3Jlc0JhbGFuY2UJAMwIAgkArAICAhIlcyVzX19jdXN0b21OYW1lX18FCmN1c3RvbU5hbWUJAMwIAgkArAICAhIlcyVzX19yZWZlcnJlZEJ5X18JAQt2YWx1ZU9yRWxzZQIFBXJlZkJ5AgAJAMwIAgkArAICAhElcyVzX19yZWZlcnJhbHNfXwUEcmVmcwkAzAgCCQCsAgICECVzJXNfX2xhc3RUeElkX18FCGxhc3RUeElkCQDMCAIJAKwCAgIUJXMlZF9fd2F2ZXNCYWxhbmNlX18JAKQDAQgFB2JhbGFuY2UJYXZhaWxhYmxlCQDMCAIJAKwCAgIVJXMlZF9fd2xnb2xkQmFsYW5jZV9fCQCkAwEFDXdsZ29sZEJhbGFuY2UJAMwIAgkArAICAhQlcyVkX19hY3Jlc0JhbGFuY2VfXwkApAMBBQxhY3Jlc0JhbGFuY2UJAMwIAgkArAICAhMlcyVkX19zdGFrZWRBY3Jlc19fCQCkAwEFC3N0YWtlZEFjcmVzCQDMCAIJAKwCAgISJXMlZF9fY3VycmVudEx2bF9fCQCkAwEFA2x2bAUDbmlsAwFpAQ1jb25zdHJ1Y3RvclYxAQljb250cmFjdHMDCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAhJwZXJtaXNzaW9ucyBkZW5pZWQKAQpkZXNjcmlwdG9yAgNhY2MLaWdub3JlZEl0ZW0JAKwCAgUDYWNjAgIlcwQFZGVzY3IKAAIkbAUJY29udHJhY3RzCgACJHMJAJADAQUCJGwKAAUkYWNjMAIACgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQpkZXNjcmlwdG9yAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQprZXlSZXN0Q2ZnAAkAuQkCCQDMCAIFBWRlc2NyBQljb250cmFjdHMFA1NFUAkAzAgCCQELU3RyaW5nRW50cnkCCQEPa2V5UmVzdDJBZGRyZXNzAAkApQgBBQR0aGlzBQNuaWwBaQESd2FsbGV0SW5mb1JFQURPTkxZAQ51c2VyQWRkcmVzc09wdAkAlAoCBQNuaWwJAQ53YWxsZXRJbnRlcm5hbAEFDnVzZXJBZGRyZXNzT3B0AWkBFmNvbnZlcnNpb25JbmZvUkVBRE9OTFkBDnVzZXJBZGRyZXNzT3B0BA9vbGRBY3Jlc0FkZHJlc3MJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARFAZXh0ck5hdGl2ZSgxMDU4KQEFE29sZEFjcmVzQ29udHJhY3RLZXkECyR0MDQwMzU0MTU3CQEMYXNUdXBsZTJJbnRzAQkA/AcEBQ9vbGRBY3Jlc0FkZHJlc3MCF3Vuc3Rha2VBbGxBY3Jlc1JFQURPTkxZCQDMCAIFDnVzZXJBZGRyZXNzT3B0BQNuaWwFA25pbAQNdW5zdGFrZWRBY3JlcwgFCyR0MDQwMzU0MTU3Al8xBAxjbGFpbWVkQWNyZXMIBQskdDA0MDM1NDE1NwJfMgQLJHQwNDE2MDQzMDkJAQxhc1R1cGxlNEludHMBCQD8BwQFDmFjcmVzMkNvbnRyYWN0AhR1bnN0YWtlTGFuZHNSRUFET05MWQkAzAgCBQ51c2VyQWRkcmVzc09wdAUDbmlsBQNuaWwED2FjcmVzRnJvbVBpZWNlcwgFCyR0MDQxNjA0MzA5Al8xBAxhY3Jlc0Zyb21SZXMIBQskdDA0MTYwNDMwOQJfMgQMYWNyZXNGcm9tTWF0CAULJHQwNDE2MDQzMDkCXzMEDWFjcmVzRnJvbVByb2QIBQskdDA0MTYwNDMwOQJfNAQRb2xkU3Rha2luZ0FkZHJlc3MJARFAZXh0ck5hdGl2ZSgxMDYyKQEFFW9sZFN0YWtpbmdDb250cmFjdFN0cgQLZHVja0Fzc2V0SWQJAQt2YWx1ZU9yRWxzZQIJAJ0IAgURb2xkU3Rha2luZ0FkZHJlc3MJARRrZXlTdGFrZWREdWNrQnlPd25lcgEFDnVzZXJBZGRyZXNzT3B0AgAECyR0MDQ0ODc0NzA5AwkBAiE9AgULZHVja0Fzc2V0SWQCAAkBDGFzVHVwbGUzSW50cwEJAPwHBAURb2xkU3Rha2luZ0FkZHJlc3MCE3Vuc3Rha2VEdWNrUkVBRE9OTFkJAMwIAgULZHVja0Fzc2V0SWQJAMwIAgUOdXNlckFkZHJlc3NPcHQFA25pbAUDbmlsCQCVCgMAAAAAAAAEEGFjcmVzRnJvbUR1Y2tSZXMIBQskdDA0NDg3NDcwOQJfMQQQYWNyZXNGcm9tRHVja01hdAgFCyR0MDQ0ODc0NzA5Al8yBBFhY3Jlc0Zyb21EdWNrUHJvZAgFCyR0MDQ0ODc0NzA5Al8zCQCUCgIFA25pbAkAzAgCCQCsAgICFSVzJWRfX3Vuc3Rha2VkQWNyZXNfXwkApAMBBQ11bnN0YWtlZEFjcmVzCQDMCAIJAKwCAgIUJXMlZF9fY2xhaW1lZEFjcmVzX18JAKQDAQUMY2xhaW1lZEFjcmVzCQDMCAIJAKwCAgIXJXMlZF9fYWNyZXNGcm9tUGllY2VzX18JAKQDAQUPYWNyZXNGcm9tUGllY2VzCQDMCAIJAKwCAgIUJXMlZF9fYWNyZXNGcm9tUmVzX18JAKQDAQUMYWNyZXNGcm9tUmVzCQDMCAIJAKwCAgIUJXMlZF9fYWNyZXNGcm9tTWF0X18JAKQDAQUMYWNyZXNGcm9tTWF0CQDMCAIJAKwCAgIVJXMlZF9fYWNyZXNGcm9tUHJvZF9fCQCkAwEFDWFjcmVzRnJvbVByb2QJAMwIAgkArAICAhglcyVkX19hY3Jlc0Zyb21EdWNrUmVzX18JAKQDAQUQYWNyZXNGcm9tRHVja1JlcwkAzAgCCQCsAgICGCVzJWRfX2FjcmVzRnJvbUR1Y2tNYXRfXwkApAMBBRBhY3Jlc0Zyb21EdWNrTWF0CQDMCAIJAKwCAgIZJXMlZF9fYWNyZXNGcm9tRHVja1Byb2RfXwkApAMBBRFhY3Jlc0Zyb21EdWNrUHJvZAUDbmlsAMDW6yw=", "height": 3280713, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: Cn4jbpdfoMf4rZ8MCxmeN4ym3gbS74XA2CTzkuFiuRWK Next: 6QoWLHuwmreHtGSqvVqffhK3ycJ1mAynKFhPt2eA5Yt Diff:
Old | New | Differences | |
---|---|---|---|
14 | 14 | else throw("Unknown chain") | |
15 | 15 | } | |
16 | 16 | ||
17 | - | func e (f,g) = valueOrErrorMessage(getString(f, g), makeString(["mandatory ", toString(f), ".", g, " is not defined"], "")) | |
17 | + | let e = { | |
18 | + | let d = b | |
19 | + | if ((base58'2W' == d)) | |
20 | + | then "3PLncXtS1U83D6cQbFD3H8rBHPLgzxSFKZ1" | |
21 | + | else if ((base58'2T' == d)) | |
22 | + | then "3NDCyBG5q85JuaRiigUeEtainyjCQT3XpZm" | |
23 | + | else throw("Unknown chain") | |
24 | + | } | |
25 | + | ||
26 | + | func f (g,h) = valueOrErrorMessage(getString(g, h), makeString(["mandatory ", toString(g), ".", h, " is not defined"], "")) | |
18 | 27 | ||
19 | 28 | ||
20 | - | let | |
29 | + | let i = 1 | |
21 | 30 | ||
22 | - | let | |
31 | + | let j = 2 | |
23 | 32 | ||
24 | - | func | |
33 | + | func k () = "%s__restConfig" | |
25 | 34 | ||
26 | 35 | ||
27 | - | func | |
36 | + | func l () = "%s__rest2Addr" | |
28 | 37 | ||
29 | 38 | ||
30 | - | func | |
39 | + | func m (n) = split_4C(f(n, k()), a) | |
31 | 40 | ||
32 | 41 | ||
33 | - | func | |
42 | + | func o (p,q) = valueOrErrorMessage(addressFromString(p[q]), ("Rest cfg doesn't contain address at index " + toString(q))) | |
34 | 43 | ||
35 | 44 | ||
36 | - | let | |
45 | + | let r = addressFromStringValue(valueOrElse(getString(this, l()), c)) | |
37 | 46 | ||
38 | - | let | |
47 | + | let p = m(r) | |
39 | 48 | ||
40 | - | let | |
49 | + | let s = o(p, i) | |
41 | 50 | ||
42 | - | let | |
51 | + | let t = o(p, j) | |
43 | 52 | ||
44 | - | func t (u) = ("lastTxIdByUser_" + u) | |
53 | + | let u = "oldAcresContract" | |
54 | + | ||
55 | + | func v (w) = ("lastTxIdByUser_" + w) | |
45 | 56 | ||
46 | 57 | ||
47 | - | let | |
58 | + | let x = "wlg_assetId" | |
48 | 59 | ||
49 | - | let | |
60 | + | let y = valueOrErrorMessage(getBinary(t, x), "WLGOLD is not issued yet") | |
50 | 61 | ||
51 | - | let | |
62 | + | let z = "acresAssetId" | |
52 | 63 | ||
53 | - | let | |
64 | + | let A = valueOrErrorMessage(getBinary(s, z), "ACRES is not issued yet") | |
54 | 65 | ||
55 | - | func | |
66 | + | func B (C) = ("stakedDuckByOwner_" + C) | |
56 | 67 | ||
57 | 68 | ||
58 | - | func | |
69 | + | func D (w) = ("accountCustomNameByAddr_" + w) | |
59 | 70 | ||
60 | 71 | ||
61 | - | func | |
72 | + | func E (w) = ("accRefBy_" + w) | |
62 | 73 | ||
63 | 74 | ||
64 | - | let C = 100000000 | |
65 | - | ||
66 | - | func D (u) = ("acresStakedAmountByUser_" + u) | |
75 | + | func F (w) = ("accReferrals_" + w) | |
67 | 76 | ||
68 | 77 | ||
69 | - | let E = [10, 20, 40, 80, 150, 250, 400, 700, 1000] | |
70 | - | ||
71 | - | func F (G) = { | |
72 | - | let H = (G / C) | |
73 | - | func I (J,K) = if ((K > H)) | |
74 | - | then J | |
75 | - | else (J + 1) | |
76 | - | ||
77 | - | let p = { | |
78 | - | let L = E | |
79 | - | let M = size(L) | |
80 | - | let N = 0 | |
81 | - | func O (P,Q) = if ((Q >= M)) | |
82 | - | then P | |
83 | - | else I(P, L[Q]) | |
84 | - | ||
85 | - | func R (P,Q) = if ((Q >= M)) | |
86 | - | then P | |
87 | - | else throw("List size exceeds 10") | |
88 | - | ||
89 | - | R(O(O(O(O(O(O(O(O(O(O(N, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10) | |
90 | - | } | |
91 | - | (p + 1) | |
78 | + | func G (H) = { | |
79 | + | let d = H | |
80 | + | if ($isInstanceOf(d, "(Int, Int, Int, Int)")) | |
81 | + | then { | |
82 | + | let I = d | |
83 | + | I | |
84 | + | } | |
85 | + | else throw("fail to cast into (Int, Int, Int, Int)") | |
92 | 86 | } | |
93 | 87 | ||
94 | 88 | ||
95 | - | func S (T) = { | |
96 | - | let u = addressFromString(T) | |
97 | - | let U = if (isDefined(u)) | |
98 | - | then wavesBalance(value(u)) | |
99 | - | else BalanceDetails(0, 0, 0, 0) | |
100 | - | let V = if (isDefined(u)) | |
101 | - | then assetBalance(value(u), w) | |
102 | - | else 0 | |
103 | - | let W = valueOrElse(getString(r, z(T)), T) | |
104 | - | let X = A(T) | |
105 | - | let Y = getString(r, X) | |
106 | - | let Z = valueOrElse(getString(r, B(T)), "") | |
107 | - | let aa = valueOrElse(getString(r, t(T)), "") | |
108 | - | let ab = if (isDefined(u)) | |
109 | - | then assetBalance(value(u), y) | |
110 | - | else 0 | |
111 | - | let ac = valueOrElse(getInteger(r, D(T)), 0) | |
112 | - | let ad = F(ab) | |
113 | - | [("%s%s__customName__" + W), ("%s%s__referredBy__" + valueOrElse(Y, "")), ("%s%s__referrals__" + Z), ("%s%s__lastTxId__" + aa), ("%s%d__wavesBalance__" + toString(U.available)), ("%s%d__wlgoldBalance__" + toString(V)), ("%s%d__acresBalance__" + toString(ab)), ("%s%d__stakedAcres__" + toString(ac)), ("%s%d__currentLvl__" + toString(ad))] | |
89 | + | func J (H) = { | |
90 | + | let d = H | |
91 | + | if ($isInstanceOf(d, "(Int, Int, Int)")) | |
92 | + | then { | |
93 | + | let I = d | |
94 | + | I | |
95 | + | } | |
96 | + | else throw("fail to cast into (Int, Int, Int)") | |
114 | 97 | } | |
115 | 98 | ||
116 | 99 | ||
117 | - | @Callable(ae) | |
118 | - | func constructorV1 (af) = if ((ae.caller != this)) | |
100 | + | func K (H) = { | |
101 | + | let d = H | |
102 | + | if ($isInstanceOf(d, "(Int, Int)")) | |
103 | + | then { | |
104 | + | let I = d | |
105 | + | I | |
106 | + | } | |
107 | + | else throw("fail to cast into (Int, Int)") | |
108 | + | } | |
109 | + | ||
110 | + | ||
111 | + | let L = 100000000 | |
112 | + | ||
113 | + | func M (w) = ("acresStakedAmountByUser_" + w) | |
114 | + | ||
115 | + | ||
116 | + | let N = [10, 20, 40, 80, 150, 250, 400, 700, 1000] | |
117 | + | ||
118 | + | func O (P) = { | |
119 | + | let Q = (P / L) | |
120 | + | func R (S,T) = if ((T > Q)) | |
121 | + | then S | |
122 | + | else (S + 1) | |
123 | + | ||
124 | + | let q = { | |
125 | + | let U = N | |
126 | + | let V = size(U) | |
127 | + | let W = 0 | |
128 | + | func X (Y,Z) = if ((Z >= V)) | |
129 | + | then Y | |
130 | + | else R(Y, U[Z]) | |
131 | + | ||
132 | + | func aa (Y,Z) = if ((Z >= V)) | |
133 | + | then Y | |
134 | + | else throw("List size exceeds 10") | |
135 | + | ||
136 | + | aa(X(X(X(X(X(X(X(X(X(X(W, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10) | |
137 | + | } | |
138 | + | (q + 1) | |
139 | + | } | |
140 | + | ||
141 | + | ||
142 | + | func ab (ac) = { | |
143 | + | let w = addressFromString(ac) | |
144 | + | let ad = if (isDefined(w)) | |
145 | + | then wavesBalance(value(w)) | |
146 | + | else BalanceDetails(0, 0, 0, 0) | |
147 | + | let ae = if (isDefined(w)) | |
148 | + | then assetBalance(value(w), y) | |
149 | + | else 0 | |
150 | + | let af = valueOrElse(getString(s, D(ac)), ac) | |
151 | + | let ag = E(ac) | |
152 | + | let ah = getString(s, ag) | |
153 | + | let ai = valueOrElse(getString(s, F(ac)), "") | |
154 | + | let aj = valueOrElse(getString(s, v(ac)), "") | |
155 | + | let ak = if (isDefined(w)) | |
156 | + | then assetBalance(value(w), A) | |
157 | + | else 0 | |
158 | + | let al = valueOrElse(getInteger(s, M(ac)), 0) | |
159 | + | let am = O(ak) | |
160 | + | [("%s%s__customName__" + af), ("%s%s__referredBy__" + valueOrElse(ah, "")), ("%s%s__referrals__" + ai), ("%s%s__lastTxId__" + aj), ("%s%d__wavesBalance__" + toString(ad.available)), ("%s%d__wlgoldBalance__" + toString(ae)), ("%s%d__acresBalance__" + toString(ak)), ("%s%d__stakedAcres__" + toString(al)), ("%s%d__currentLvl__" + toString(am))] | |
161 | + | } | |
162 | + | ||
163 | + | ||
164 | + | @Callable(an) | |
165 | + | func constructorV1 (ao) = if ((an.caller != this)) | |
119 | 166 | then throw("permissions denied") | |
120 | 167 | else { | |
121 | - | func | |
168 | + | func ap (S,aq) = (S + "%s") | |
122 | 169 | ||
123 | - | let | |
124 | - | let | |
125 | - | let | |
126 | - | let | |
127 | - | func | |
128 | - | then | |
129 | - | else | |
170 | + | let ar = { | |
171 | + | let U = ao | |
172 | + | let V = size(U) | |
173 | + | let W = "" | |
174 | + | func X (Y,Z) = if ((Z >= V)) | |
175 | + | then Y | |
176 | + | else ap(Y, U[Z]) | |
130 | 177 | ||
131 | - | func | |
132 | - | then | |
178 | + | func aa (Y,Z) = if ((Z >= V)) | |
179 | + | then Y | |
133 | 180 | else throw("List size exceeds 10") | |
134 | 181 | ||
135 | - | | |
182 | + | aa(X(X(X(X(X(X(X(X(X(X(W, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10) | |
136 | 183 | } | |
137 | - | [StringEntry( | |
184 | + | [StringEntry(k(), makeString(ar :: ao, a)), StringEntry(l(), toString(this))] | |
138 | 185 | } | |
139 | 186 | ||
140 | 187 | ||
141 | 188 | ||
142 | - | @Callable(ae) | |
143 | - | func walletInfoREADONLY (T) = $Tuple2(nil, S(T)) | |
189 | + | @Callable(an) | |
190 | + | func walletInfoREADONLY (ac) = $Tuple2(nil, ab(ac)) | |
191 | + | ||
192 | + | ||
193 | + | ||
194 | + | @Callable(an) | |
195 | + | func conversionInfoREADONLY (ac) = { | |
196 | + | let as = addressFromStringValue(getStringValue(u)) | |
197 | + | let at = K(invoke(as, "unstakeAllAcresREADONLY", [ac], nil)) | |
198 | + | let au = at._1 | |
199 | + | let av = at._2 | |
200 | + | let aw = G(invoke(s, "unstakeLandsREADONLY", [ac], nil)) | |
201 | + | let ax = aw._1 | |
202 | + | let ay = aw._2 | |
203 | + | let az = aw._3 | |
204 | + | let aA = aw._4 | |
205 | + | let aB = addressFromStringValue(e) | |
206 | + | let aC = valueOrElse(getString(aB, B(ac)), "") | |
207 | + | let aD = if ((aC != "")) | |
208 | + | then J(invoke(aB, "unstakeDuckREADONLY", [aC, ac], nil)) | |
209 | + | else $Tuple3(0, 0, 0) | |
210 | + | let aE = aD._1 | |
211 | + | let aF = aD._2 | |
212 | + | let aG = aD._3 | |
213 | + | $Tuple2(nil, [("%s%d__unstakedAcres__" + toString(au)), ("%s%d__claimedAcres__" + toString(av)), ("%s%d__acresFromPieces__" + toString(ax)), ("%s%d__acresFromRes__" + toString(ay)), ("%s%d__acresFromMat__" + toString(az)), ("%s%d__acresFromProd__" + toString(aA)), ("%s%d__acresFromDuckRes__" + toString(aE)), ("%s%d__acresFromDuckMat__" + toString(aF)), ("%s%d__acresFromDuckProd__" + toString(aG))]) | |
214 | + | } | |
144 | 215 | ||
145 | 216 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 6 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let a = "__" | |
5 | 5 | ||
6 | 6 | let b = take(drop(this.bytes, 1), 1) | |
7 | 7 | ||
8 | 8 | let c = { | |
9 | 9 | let d = b | |
10 | 10 | if ((base58'2W' == d)) | |
11 | 11 | then "3PFwYta8biEz31zpeFe5DJK8wE5trSpQVF8" | |
12 | 12 | else if ((base58'2T' == d)) | |
13 | 13 | then "3N7UuYar6264P58FBhVWKPQAh4Yua2hgngv" | |
14 | 14 | else throw("Unknown chain") | |
15 | 15 | } | |
16 | 16 | ||
17 | - | func e (f,g) = valueOrErrorMessage(getString(f, g), makeString(["mandatory ", toString(f), ".", g, " is not defined"], "")) | |
17 | + | let e = { | |
18 | + | let d = b | |
19 | + | if ((base58'2W' == d)) | |
20 | + | then "3PLncXtS1U83D6cQbFD3H8rBHPLgzxSFKZ1" | |
21 | + | else if ((base58'2T' == d)) | |
22 | + | then "3NDCyBG5q85JuaRiigUeEtainyjCQT3XpZm" | |
23 | + | else throw("Unknown chain") | |
24 | + | } | |
25 | + | ||
26 | + | func f (g,h) = valueOrErrorMessage(getString(g, h), makeString(["mandatory ", toString(g), ".", h, " is not defined"], "")) | |
18 | 27 | ||
19 | 28 | ||
20 | - | let | |
29 | + | let i = 1 | |
21 | 30 | ||
22 | - | let | |
31 | + | let j = 2 | |
23 | 32 | ||
24 | - | func | |
33 | + | func k () = "%s__restConfig" | |
25 | 34 | ||
26 | 35 | ||
27 | - | func | |
36 | + | func l () = "%s__rest2Addr" | |
28 | 37 | ||
29 | 38 | ||
30 | - | func | |
39 | + | func m (n) = split_4C(f(n, k()), a) | |
31 | 40 | ||
32 | 41 | ||
33 | - | func | |
42 | + | func o (p,q) = valueOrErrorMessage(addressFromString(p[q]), ("Rest cfg doesn't contain address at index " + toString(q))) | |
34 | 43 | ||
35 | 44 | ||
36 | - | let | |
45 | + | let r = addressFromStringValue(valueOrElse(getString(this, l()), c)) | |
37 | 46 | ||
38 | - | let | |
47 | + | let p = m(r) | |
39 | 48 | ||
40 | - | let | |
49 | + | let s = o(p, i) | |
41 | 50 | ||
42 | - | let | |
51 | + | let t = o(p, j) | |
43 | 52 | ||
44 | - | func t (u) = ("lastTxIdByUser_" + u) | |
53 | + | let u = "oldAcresContract" | |
54 | + | ||
55 | + | func v (w) = ("lastTxIdByUser_" + w) | |
45 | 56 | ||
46 | 57 | ||
47 | - | let | |
58 | + | let x = "wlg_assetId" | |
48 | 59 | ||
49 | - | let | |
60 | + | let y = valueOrErrorMessage(getBinary(t, x), "WLGOLD is not issued yet") | |
50 | 61 | ||
51 | - | let | |
62 | + | let z = "acresAssetId" | |
52 | 63 | ||
53 | - | let | |
64 | + | let A = valueOrErrorMessage(getBinary(s, z), "ACRES is not issued yet") | |
54 | 65 | ||
55 | - | func | |
66 | + | func B (C) = ("stakedDuckByOwner_" + C) | |
56 | 67 | ||
57 | 68 | ||
58 | - | func | |
69 | + | func D (w) = ("accountCustomNameByAddr_" + w) | |
59 | 70 | ||
60 | 71 | ||
61 | - | func | |
72 | + | func E (w) = ("accRefBy_" + w) | |
62 | 73 | ||
63 | 74 | ||
64 | - | let C = 100000000 | |
65 | - | ||
66 | - | func D (u) = ("acresStakedAmountByUser_" + u) | |
75 | + | func F (w) = ("accReferrals_" + w) | |
67 | 76 | ||
68 | 77 | ||
69 | - | let E = [10, 20, 40, 80, 150, 250, 400, 700, 1000] | |
70 | - | ||
71 | - | func F (G) = { | |
72 | - | let H = (G / C) | |
73 | - | func I (J,K) = if ((K > H)) | |
74 | - | then J | |
75 | - | else (J + 1) | |
76 | - | ||
77 | - | let p = { | |
78 | - | let L = E | |
79 | - | let M = size(L) | |
80 | - | let N = 0 | |
81 | - | func O (P,Q) = if ((Q >= M)) | |
82 | - | then P | |
83 | - | else I(P, L[Q]) | |
84 | - | ||
85 | - | func R (P,Q) = if ((Q >= M)) | |
86 | - | then P | |
87 | - | else throw("List size exceeds 10") | |
88 | - | ||
89 | - | R(O(O(O(O(O(O(O(O(O(O(N, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10) | |
90 | - | } | |
91 | - | (p + 1) | |
78 | + | func G (H) = { | |
79 | + | let d = H | |
80 | + | if ($isInstanceOf(d, "(Int, Int, Int, Int)")) | |
81 | + | then { | |
82 | + | let I = d | |
83 | + | I | |
84 | + | } | |
85 | + | else throw("fail to cast into (Int, Int, Int, Int)") | |
92 | 86 | } | |
93 | 87 | ||
94 | 88 | ||
95 | - | func S (T) = { | |
96 | - | let u = addressFromString(T) | |
97 | - | let U = if (isDefined(u)) | |
98 | - | then wavesBalance(value(u)) | |
99 | - | else BalanceDetails(0, 0, 0, 0) | |
100 | - | let V = if (isDefined(u)) | |
101 | - | then assetBalance(value(u), w) | |
102 | - | else 0 | |
103 | - | let W = valueOrElse(getString(r, z(T)), T) | |
104 | - | let X = A(T) | |
105 | - | let Y = getString(r, X) | |
106 | - | let Z = valueOrElse(getString(r, B(T)), "") | |
107 | - | let aa = valueOrElse(getString(r, t(T)), "") | |
108 | - | let ab = if (isDefined(u)) | |
109 | - | then assetBalance(value(u), y) | |
110 | - | else 0 | |
111 | - | let ac = valueOrElse(getInteger(r, D(T)), 0) | |
112 | - | let ad = F(ab) | |
113 | - | [("%s%s__customName__" + W), ("%s%s__referredBy__" + valueOrElse(Y, "")), ("%s%s__referrals__" + Z), ("%s%s__lastTxId__" + aa), ("%s%d__wavesBalance__" + toString(U.available)), ("%s%d__wlgoldBalance__" + toString(V)), ("%s%d__acresBalance__" + toString(ab)), ("%s%d__stakedAcres__" + toString(ac)), ("%s%d__currentLvl__" + toString(ad))] | |
89 | + | func J (H) = { | |
90 | + | let d = H | |
91 | + | if ($isInstanceOf(d, "(Int, Int, Int)")) | |
92 | + | then { | |
93 | + | let I = d | |
94 | + | I | |
95 | + | } | |
96 | + | else throw("fail to cast into (Int, Int, Int)") | |
114 | 97 | } | |
115 | 98 | ||
116 | 99 | ||
117 | - | @Callable(ae) | |
118 | - | func constructorV1 (af) = if ((ae.caller != this)) | |
100 | + | func K (H) = { | |
101 | + | let d = H | |
102 | + | if ($isInstanceOf(d, "(Int, Int)")) | |
103 | + | then { | |
104 | + | let I = d | |
105 | + | I | |
106 | + | } | |
107 | + | else throw("fail to cast into (Int, Int)") | |
108 | + | } | |
109 | + | ||
110 | + | ||
111 | + | let L = 100000000 | |
112 | + | ||
113 | + | func M (w) = ("acresStakedAmountByUser_" + w) | |
114 | + | ||
115 | + | ||
116 | + | let N = [10, 20, 40, 80, 150, 250, 400, 700, 1000] | |
117 | + | ||
118 | + | func O (P) = { | |
119 | + | let Q = (P / L) | |
120 | + | func R (S,T) = if ((T > Q)) | |
121 | + | then S | |
122 | + | else (S + 1) | |
123 | + | ||
124 | + | let q = { | |
125 | + | let U = N | |
126 | + | let V = size(U) | |
127 | + | let W = 0 | |
128 | + | func X (Y,Z) = if ((Z >= V)) | |
129 | + | then Y | |
130 | + | else R(Y, U[Z]) | |
131 | + | ||
132 | + | func aa (Y,Z) = if ((Z >= V)) | |
133 | + | then Y | |
134 | + | else throw("List size exceeds 10") | |
135 | + | ||
136 | + | aa(X(X(X(X(X(X(X(X(X(X(W, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10) | |
137 | + | } | |
138 | + | (q + 1) | |
139 | + | } | |
140 | + | ||
141 | + | ||
142 | + | func ab (ac) = { | |
143 | + | let w = addressFromString(ac) | |
144 | + | let ad = if (isDefined(w)) | |
145 | + | then wavesBalance(value(w)) | |
146 | + | else BalanceDetails(0, 0, 0, 0) | |
147 | + | let ae = if (isDefined(w)) | |
148 | + | then assetBalance(value(w), y) | |
149 | + | else 0 | |
150 | + | let af = valueOrElse(getString(s, D(ac)), ac) | |
151 | + | let ag = E(ac) | |
152 | + | let ah = getString(s, ag) | |
153 | + | let ai = valueOrElse(getString(s, F(ac)), "") | |
154 | + | let aj = valueOrElse(getString(s, v(ac)), "") | |
155 | + | let ak = if (isDefined(w)) | |
156 | + | then assetBalance(value(w), A) | |
157 | + | else 0 | |
158 | + | let al = valueOrElse(getInteger(s, M(ac)), 0) | |
159 | + | let am = O(ak) | |
160 | + | [("%s%s__customName__" + af), ("%s%s__referredBy__" + valueOrElse(ah, "")), ("%s%s__referrals__" + ai), ("%s%s__lastTxId__" + aj), ("%s%d__wavesBalance__" + toString(ad.available)), ("%s%d__wlgoldBalance__" + toString(ae)), ("%s%d__acresBalance__" + toString(ak)), ("%s%d__stakedAcres__" + toString(al)), ("%s%d__currentLvl__" + toString(am))] | |
161 | + | } | |
162 | + | ||
163 | + | ||
164 | + | @Callable(an) | |
165 | + | func constructorV1 (ao) = if ((an.caller != this)) | |
119 | 166 | then throw("permissions denied") | |
120 | 167 | else { | |
121 | - | func | |
168 | + | func ap (S,aq) = (S + "%s") | |
122 | 169 | ||
123 | - | let | |
124 | - | let | |
125 | - | let | |
126 | - | let | |
127 | - | func | |
128 | - | then | |
129 | - | else | |
170 | + | let ar = { | |
171 | + | let U = ao | |
172 | + | let V = size(U) | |
173 | + | let W = "" | |
174 | + | func X (Y,Z) = if ((Z >= V)) | |
175 | + | then Y | |
176 | + | else ap(Y, U[Z]) | |
130 | 177 | ||
131 | - | func | |
132 | - | then | |
178 | + | func aa (Y,Z) = if ((Z >= V)) | |
179 | + | then Y | |
133 | 180 | else throw("List size exceeds 10") | |
134 | 181 | ||
135 | - | | |
182 | + | aa(X(X(X(X(X(X(X(X(X(X(W, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10) | |
136 | 183 | } | |
137 | - | [StringEntry( | |
184 | + | [StringEntry(k(), makeString(ar :: ao, a)), StringEntry(l(), toString(this))] | |
138 | 185 | } | |
139 | 186 | ||
140 | 187 | ||
141 | 188 | ||
142 | - | @Callable(ae) | |
143 | - | func walletInfoREADONLY (T) = $Tuple2(nil, S(T)) | |
189 | + | @Callable(an) | |
190 | + | func walletInfoREADONLY (ac) = $Tuple2(nil, ab(ac)) | |
191 | + | ||
192 | + | ||
193 | + | ||
194 | + | @Callable(an) | |
195 | + | func conversionInfoREADONLY (ac) = { | |
196 | + | let as = addressFromStringValue(getStringValue(u)) | |
197 | + | let at = K(invoke(as, "unstakeAllAcresREADONLY", [ac], nil)) | |
198 | + | let au = at._1 | |
199 | + | let av = at._2 | |
200 | + | let aw = G(invoke(s, "unstakeLandsREADONLY", [ac], nil)) | |
201 | + | let ax = aw._1 | |
202 | + | let ay = aw._2 | |
203 | + | let az = aw._3 | |
204 | + | let aA = aw._4 | |
205 | + | let aB = addressFromStringValue(e) | |
206 | + | let aC = valueOrElse(getString(aB, B(ac)), "") | |
207 | + | let aD = if ((aC != "")) | |
208 | + | then J(invoke(aB, "unstakeDuckREADONLY", [aC, ac], nil)) | |
209 | + | else $Tuple3(0, 0, 0) | |
210 | + | let aE = aD._1 | |
211 | + | let aF = aD._2 | |
212 | + | let aG = aD._3 | |
213 | + | $Tuple2(nil, [("%s%d__unstakedAcres__" + toString(au)), ("%s%d__claimedAcres__" + toString(av)), ("%s%d__acresFromPieces__" + toString(ax)), ("%s%d__acresFromRes__" + toString(ay)), ("%s%d__acresFromMat__" + toString(az)), ("%s%d__acresFromProd__" + toString(aA)), ("%s%d__acresFromDuckRes__" + toString(aE)), ("%s%d__acresFromDuckMat__" + toString(aF)), ("%s%d__acresFromDuckProd__" + toString(aG))]) | |
214 | + | } | |
144 | 215 | ||
145 | 216 |
github/deemru/w8io/169f3d6 41.50 ms ◑![]()