tx · JCvxN8em6PvXQqLks7hGFaVhG9vmvPMaN8D96mD8oG8v 3N9Va1p9rXQcerF47J5Euf3qekbnascvvV3: -0.01900000 Waves 2022.09.15 11:32 [2229973] smart account 3N9Va1p9rXQcerF47J5Euf3qekbnascvvV3 > SELF 0.00000000 Waves
{ "type": 13, "id": "JCvxN8em6PvXQqLks7hGFaVhG9vmvPMaN8D96mD8oG8v", "fee": 1900000, "feeAssetId": null, "timestamp": 1663230800896, "version": 2, "chainId": 84, "sender": "3N9Va1p9rXQcerF47J5Euf3qekbnascvvV3", "senderPublicKey": "DN6GkmVYEAGVKgHugczh1uWUcZJRCevjM4Lmxx1jkAiL", "proofs": [ "3Dk9nHamUSKJUkbbioQsRmJDaDkEYKFPDbqLJXbQberKx27rGEawWyGCEGoySgEKBDpcYvk3QYTwt3R84vubYkri" ], "script": "base64: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AgUAAAAIRGVjaW1hbHMFAAAACEluZGV4T3V0BQAAAAVGTE9PUgkAAZEAAAACBQAAAAZTY2FsZXMFAAAACEluZGV4T3V0BQAAAARET1dOAQAAAB1jYWxjdWxhdGVDdXJyZW50QXNzZXRJbnRlcmVzdAAAAAQAAAAHYXNzZXRJZAAAAAphc3NldElkU3RyAAAACGFCYWxhbmNlAAAAFnRva2VuRWFybmluZ3NMYXN0Q2hlY2sEAAAAC3RvdGFsU3Rha2VkCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAECAAAAEmdsb2JhbF9pbmRleFN0YWtlZAQAAAAVdG9rZW5CYWxhbmNlTGFzdENoZWNrBQAAABZ0b2tlbkVhcm5pbmdzTGFzdENoZWNrBAAAABNjdXJyZW50QmFsYW5jZURlbHRhCQAAZQAAAAIJAAPwAAAAAgUAAAAEdGhpcwUAAAAHYXNzZXRJZAUAAAAIYUJhbGFuY2UEAAAAFGN1cnJlbnRUb2tlbkVhcm5pbmdzAwkAAGYAAAACBQAAABNjdXJyZW50QmFsYW5jZURlbHRhBQAAABV0b2tlbkJhbGFuY2VMYXN0Q2hlY2sFAAAAE2N1cnJlbnRCYWxhbmNlRGVsdGEFAAAAFXRva2VuQmFsYW5jZUxhc3RDaGVjawQAAAALbmV3RWFybmluZ3MJAABlAAAAAgUAAAAUY3VycmVudFRva2VuRWFybmluZ3MFAAAAFXRva2VuQmFsYW5jZUxhc3RDaGVjawQAAAALbmV3SW50ZXJlc3QDCQAAAAAAAAIFAAAAC3RvdGFsU3Rha2VkAAAAAAAAAAAAAAAAAAAAAAAACQAAawAAAAMFAAAAC25ld0Vhcm5pbmdzBQAAAAZTY2FsZTgFAAAAC3RvdGFsU3Rha2VkBAAAABFsYXN0Q2hlY2tJbnRlcmVzdAkBAAAADXRyeUdldEludGVnZXIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAARZ2xvYmFsX2xhc3RDaGVja18FAAAACmFzc2V0SWRTdHICAAAACV9pbnRlcmVzdAkAAGQAAAACBQAAABFsYXN0Q2hlY2tJbnRlcmVzdAUAAAALbmV3SW50ZXJlc3QBAAAAC2NsYWltUmVzdWx0AAAAAgAAAAdhZGRyZXNzAAAACGFkZHJlc3MyBAAAAAphZGRyZXNzU3RyCQAEJQAAAAEFAAAAB2FkZHJlc3MEAAAADHB1enpsZUFtb3VudAkBAAAADXRyeUdldEludGVnZXIAAAABCQABLAAAAAIFAAAACmFkZHJlc3NTdHICAAAADF9pbmRleFN0YWtlZAoBAAAAB2hhbmRsZXIAAAACAAAABWFjY3VtAAAAB2Fzc2V0SWQEAAAACmFzc2V0SWRTdHIJAAJYAAAAAQUAAAAHYXNzZXRJZAQAAAAIYUJhbGFuY2UJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQkAASwAAAACCQABLAAAAAICAAAAB2dsb2JhbF8JAAJYAAAAAQUAAAAHYXNzZXRJZAIAAAAIX2JhbGFuY2UEAAAAFnRva2VuRWFybmluZ3NMYXN0Q2hlY2sJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQkAASwAAAACCQABLAAAAAICAAAAEWdsb2JhbF9sYXN0Q2hlY2tfBQAAAAphc3NldElkU3RyAgAAAAlfZWFybmluZ3MEAAAAFGN1cnJlbnRUb2tlbkludGVyZXN0CQEAAAAdY2FsY3VsYXRlQ3VycmVudEFzc2V0SW50ZXJlc3QAAAAEBQAAAAdhc3NldElkBQAAAAphc3NldElkU3RyBQAAAAhhQmFsYW5jZQUAAAAWdG9rZW5FYXJuaW5nc0xhc3RDaGVjawQAAAAUY3VycmVudFRva2VuRWFybmluZ3MJAAGWAAAAAQkABEwAAAACBQAAABZ0b2tlbkVhcm5pbmdzTGFzdENoZWNrCQAETAAAAAIJAABlAAAAAgkAA/AAAAACBQAAAAR0aGlzBQAAAAdhc3NldElkBQAAAAhhQmFsYW5jZQUAAAADbmlsBAAAAAxyZXdhcmRBbW91bnQJAABrAAAAAwUAAAAMcHV6emxlQW1vdW50CQAAZQAAAAIFAAAAFGN1cnJlbnRUb2tlbkludGVyZXN0CQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAACmFkZHJlc3NTdHICAAAAC19sYXN0Q2hlY2tfBQAAAAphc3NldElkU3RyAgAAAAlfaW50ZXJlc3QFAAAABlNjYWxlOAQAAAAIdHJhbnNmZXIDCQAAAAAAAAIFAAAADHJld2FyZEFtb3VudAAAAAAAAAAAAAUAAAAD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AAECAAAAE2dsb2JhbF9wb29sVG9rZW5faWQFAAAAB1BJc3N1ZWQGBAAAAAZyZXN1bHQJAQAAABNoYW5kbGVQb29sVG9rZW5zQWRkAAAAAwUAAAAHUElzc3VlZAgFAAAAAWkAAAAIcGF5bWVudHMIBQAAAAFpAAAADG9yaWdpbkNhbGxlcgkABRQAAAACCQAETgAAAAIFAAAABnJlc3VsdAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAAB1BJc3N1ZWQJAQAAAAx0cnlHZXRCaW5hcnkAAAABAgAAABNnbG9iYWxfcG9vbFRva2VuX2lkCQAETAAAAAIFAAAAB3JlaXNzdWUJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAF2dsb2JhbF9wb29sVG9rZW5fYW1vdW50CQAAZAAAAAIJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQIAAAAXZ2xvYmFsX3Bvb2xUb2tlbl9hbW91bnQFAAAAB1BJc3N1ZWQFAAAAA25pbAUAAAAHUElzc3VlZAAAAAFpAQAAAApzdGFrZUluZGV4AAAAAAQAAAAKYWRkcmVzc1N0cgkABCUAAAABCAUAAAABaQAAAAxvcmlnaW5DYWxsZXIEAAAAA3BtdAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAMJAQAAAAIhPQAAAAIJAQAAAAV2YWx1ZQAAAAEIBQAAAANwbXQAAAAHYXNzZXRJZAkBAAAADHRyeUdldEJpbmFyeQAAAAECAAAAE2dsb2JhbF9wb29sVG9rZW5faWQJAAACAAAAAQIAAAAUd3JvbmcgYXNzZXQgYXR0YWNoZWQJAQAAABBpbmRleFN0YWtlUmVzdWx0AAAAAgUAAAAKYWRkcmVzc1N0cggFAAAAA3BtdAAAAAZhbW91bnQAAAABaQEAAAAMdW5zdGFrZUluZGV4AAAAAQAAAAxwdXp6bGVBbW91bnQEAAAACmFkZHJlc3NTdHIJAAQlAAAAAQgFAAAAAWkAAAAMb3JpZ2luQ2FsbGVyBAAAAA9wdXp6bGVBdmFpbGFibGUJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQkAASwAAAACBQAAAAphZGRyZXNzU3RyAgAAAAxfaW5kZXhTdGFrZWQDCQAAZgAAAAIFAAAADHB1enpsZUFtb3VudAUAAAAPcHV6emxlQXZhaWxhYmxlCQAAAgAAAAECAAAAJXlvdSBkb24ndCBoYXZlIGluZGV4IHRva2VucyBhdmFpbGFibGUJAAROAAAAAgkBAAAAC2NsYWltUmVzdWx0AAAAAggFAAAAAWkAAAAMb3JpZ2luQ2FsbGVyCAUAAAABaQAAAAxvcmlnaW5DYWxsZXIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAAKYWRkcmVzc1N0cgIAAAAMX2luZGV4U3Rha2VkCQAAZQAAAAIFAAAAD3B1enpsZUF2YWlsYWJsZQUAAAAMcHV6emxlQW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABJnbG9iYWxfaW5kZXhTdGFrZWQJAABlAAAAAgkBAAAADXRyeUdldEludGVnZXIAAAABAgAAABJnbG9iYWxfaW5kZXhTdGFrZWQFAAAADHB1enpsZUFtb3VudAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAADHB1enpsZUFtb3VudAkBAAAAEUBleHRyTmF0aXZlKDEwNTcpAAAAAQIAAAATZ2xvYmFsX3Bvb2xUb2tlbl9pZAUAAAADbmlsAAAAAWkBAAAAEWNsYWltSW5kZXhSZXdhcmRzAAAAAAkBAAAAC2NsYWltUmVzdWx0AAAAAggFAAAAAWkAAAAGY2FsbGVyCAUAAAABaQAAAAZjYWxsZXIAAAABaQEAAAALcmVkZWVtSW5kZXgAAAABAAAADHNlbmRUb09yaWdpbgQAAAADcG10CQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAwkBAAAAAiE9AAAAAggFAAAAA3BtdAAAAAdhc3NldElkCQEAAAAMdHJ5R2V0QmluYXJ5AAAAAQIAAAATZ2xvYmFsX3Bvb2xUb2tlbl9pZAkAAAIAAAABAgAAAB5wbGVhc2UgYXR0YWNoIHBvb2wgc2hhcmUgdG9rZW4EAAAACVBSZWRlZW1lZAgFAAAAA3BtdAAAAAZhbW91bnQEAAAABnJlc3VsdAkBAAAAFmhhbmRsZVBvb2xUb2tlbnNSZWRlZW0AAAACBQAAAAlQUmVkZWVtZWQDBQAAAAxzZW5kVG9PcmlnaW4IBQAAAAFpAAAADG9yaWdpbkNhbGxlcggFAAAAAWkAAAAGY2FsbGVyCQAETgAAAAIFAAAABnJlc3VsdAkABEwAAAACCQEAAAAEQnVybgAAAAIJAQAAAAx0cnlHZXRCaW5hcnkAAAABAgAAABNnbG9iYWxfcG9vbFRva2VuX2lkBQAAAAlQUmVkZWVtZWQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAF2dsb2JhbF9wb29sVG9rZW5fYW1vdW50CQAAZQAAAAIJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQIAAAAXZ2xvYmFsX3Bvb2xUb2tlbl9hbW91bnQFAAAACVBSZWRlZW1lZAUAAAADbmlsAAAAAWkBAAAAFXVuc3Rha2VBbmRSZWRlZW1JbmRleAAAAAEAAAAMcHV6emxlQW1vdW50BAAAAAphZGRyZXNzU3RyCQAEJQAAAAEIBQAAAAFpAAAADG9yaWdpbkNhbGxlcgQAAAAPcHV6emxlQXZhaWxhYmxlCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEJAAEsAAAAAgUAAAAKYWRkcmVzc1N0cgIAAAAMX2luZGV4U3Rha2VkAwkAAGYAAAACBQAAAAxwdXp6bGVBbW91bnQFAAAAD3B1enpsZUF2YWlsYWJsZQkAAAIAAAABAgAAACV5b3UgZG9uJ3QgaGF2ZSBpbmRleCB0b2tlbnMgYXZhaWxhYmxlBAAAAAhjbGFpbVJlcwkABE4AAAACCQEAAAALY2xhaW1SZXN1bHQAAAACCAUAAAABaQAAAAxvcmlnaW5DYWxsZXIIBQAAAAFpAAAABmNhbGxlcgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACBQAAAAphZGRyZXNzU3RyAgAAAAxfaW5kZXhTdGFrZWQJAABlAAAAAgUAAAAPcHV6emxlQXZhaWxhYmxlBQAAAAxwdXp6bGVBbW91bnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAEmdsb2JhbF9pbmRleFN0YWtlZAkAAGUAAAACCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAECAAAAEmdsb2JhbF9pbmRleFN0YWtlZAUAAAAMcHV6emxlQW1vdW50BQAAAANuaWwEAAAABnJlc3VsdAkBAAAAFmhhbmRsZVBvb2xUb2tlbnNSZWRlZW0AAAACBQAAAAxwdXp6bGVBbW91bnQIBQAAAAFpAAAABmNhbGxlcgkABE4AAAACCQAETgAAAAIFAAAACGNsYWltUmVzBQAAAAZyZXN1bHQJAARMAAAAAgkBAAAABEJ1cm4AAAACCQEAAAAMdHJ5R2V0QmluYXJ5AAAAAQIAAAATZ2xvYmFsX3Bvb2xUb2tlbl9pZAUAAAAMcHV6emxlQW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABdnbG9iYWxfcG9vbFRva2VuX2Ftb3VudAkAAGUAAAACCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAECAAAAF2dsb2JhbF9wb29sVG9rZW5fYW1vdW50BQAAAAxwdXp6bGVBbW91bnQFAAAAA25pbAAAAAFpAQAAAARzd2FwAAAAAgAAAAhhc3NldE91dAAAAAdtaW5pbXVtBAAAAANwbXQJAQAAAAV2YWx1ZQAAAAEJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAEAAAACEFtb3VudEluCQEAAAAFdmFsdWUAAAABCAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAAAAAZhbW91bnQEAAAAB0Fzc2V0SW4JAQAAAAV2YWx1ZQAAAAEIBQAAAANwbXQAAAAHYXNzZXRJZAQAAAAIQXNzZXRPdXQJAAJZAAAAAQUAAAAIYXNzZXRPdXQEAAAADkFzc2V0SW5CYWxhbmNlCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEJAAEsAAAAAgkAASwAAAACAgAAAAdnbG9iYWxfCQACWAAAAAEFAAAAB0Fzc2V0SW4CAAAACF9iYWxhbmNlBAAAAA9Bc3NldE91dEJhbGFuY2UJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQkAASwAAAACCQABLAAAAAICAAAAB2dsb2JhbF8FAAAACGFzc2V0T3V0AgAAAAhfYmFsYW5jZQQAAAAJQW1vdW50T3V0CQEAAAASY2FsY3VsYXRlT3V0QW1vdW50AAAABQUAAAAIQW1vdW50SW4FAAAAB0Fzc2V0SW4FAAAACEFzc2V0T3V0BQAAAA5Bc3NldEluQmFsYW5jZQUAAAAPQXNzZXRPdXRCYWxhbmNlBAAAAAlmZWVBbW91bnQJAABrAAAAAwUAAAAJQW1vdW50T3V0BQAAAANGZWUFAAAACEZlZVNjYWxlBAAAABFwcm90b2NvbEZlZUFtb3VudAkAAGsAAAADBQAAAAlmZWVBbW91bnQAAAAAAAAAACgAAAAAAAAAAGQEAAAADmNsZWFuQW1vdW50T3V0CQAAZQAAAAIFAAAACUFtb3VudE91dAUAAAAJZmVlQW1vdW50AwkAAGYAAAACBQAAAAdtaW5pbXVtBQAAAA5jbGVhbkFtb3VudE91dAkAAAIAAAABCQABLAAAAAICAAAAK2Ftb3VudCB0byByZWNpZXZlIGlzIGxvd2VyIHRoYW4gZ2l2ZW4gb25lOiAJAAGkAAAAAQUAAAAOY2xlYW5BbW91bnRPdXQDCQAAZgAAAAIAAAAAAAAAJxAFAAAACEFtb3VudEluCQAAAgAAAAECAAAAHHN1bSB0byBleGNoYW5nZSBpcyB0b28gc21hbGwDCQAAZgAAAAIAAAAAAAAAAAAJAABlAAAAAgUAAAAPQXNzZXRPdXRCYWxhbmNlBQAAAAlBbW91bnRPdXQJAAACAAAAAQIAAAAbY29udHJhY3QgaXMgb3V0IG9mIHJlc2VydmVzBAAAAA9wbXRUb0FnZ3JlZ2F0b3IDCQEAAAACIT0AAAACCAUAAAABaQAAAAZjYWxsZXIFAAAADWxheWVyMkFkZHJlc3MJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAANZmVlQWdncmVnYXRvcgUAAAARcHJvdG9jb2xGZWVBbW91bnQFAAAACEFzc2V0T3V0BQAAAANuaWwFAAAAA25pbAkABRQAAAACCQAETgAAAAIFAAAAD3BtdFRvQWdncmVnYXRvcgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAICAAAAB2dsb2JhbF8FAAAACGFzc2V0T3V0AgAAAAhfYmFsYW5jZQkAAGUAAAACBQAAAA9Bc3NldE91dEJhbGFuY2UFAAAACUFtb3VudE91dAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAICAAAAB2dsb2JhbF8JAAJYAAAAAQUAAAAHQXNzZXRJbgIAAAAIX2JhbGFuY2UJAABkAAAAAgUAAAAOQXNzZXRJbkJhbGFuY2UFAAAACEFtb3VudEluCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAAOY2xlYW5BbW91bnRPdXQFAAAACEFzc2V0T3V0CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAA1nbG9iYWxfdm9sdW1lCQAAZAAAAAIJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQIAAAANZ2xvYmFsX3ZvbHVtZQkBAAAAEmNhbGN1bGF0ZVVzZG5WYWx1ZQAAAAMFAAAAB0Fzc2V0SW4FAAAACEFtb3VudEluBQAAAA5Bc3NldEluQmFsYW5jZQUAAAADbmlsBQAAAA5jbGVhbkFtb3VudE91dAAAAAAPdcph", "height": 2229973, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: JACMyrqpWwzWzpeSAh5Ui73RRnR4JiP9otetTkVE3qzu Next: none Diff:
Old | New | Differences | |
---|---|---|---|
290 | 290 | then D | |
291 | 291 | else (D ++ [IntegerEntry((("static_" + toBase58String(b[0])) + "_scale"), g[aU]), IntegerEntry((("static_" + toBase58String(b[0])) + "_weight"), c[aU])]) | |
292 | 292 | ||
293 | - | let H = [0, 1 | |
293 | + | let H = [0, 1] | |
294 | 294 | let I = size(H) | |
295 | 295 | let J = nil | |
296 | 296 | func K (L,M) = if ((M >= I)) |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let a = 10 | |
5 | 5 | ||
6 | 6 | let b = [base58'43W4FcqA1rEpSmUGHoGiXvpSLfhadws9LS5j3SJsKxxS', base58'CgidgEMbCKXXErgJXVyZCFRaK8SBNA73Jg8mNXALtVKh'] | |
7 | 7 | ||
8 | 8 | let c = [50, 50] | |
9 | 9 | ||
10 | 10 | let d = 2 | |
11 | 11 | ||
12 | 12 | let e = 0 | |
13 | 13 | ||
14 | 14 | let f = [8, 8, 8, 8, 8, 8, 8, 8, 8, 6] | |
15 | 15 | ||
16 | 16 | let g = [100000000, 1000000] | |
17 | 17 | ||
18 | 18 | let h = 200 | |
19 | 19 | ||
20 | 20 | let i = 10000 | |
21 | 21 | ||
22 | 22 | let j = 100000000 | |
23 | 23 | ||
24 | 24 | let k = 10000 | |
25 | 25 | ||
26 | 26 | let l = Address(base58'3PBmAwjkwsM83KQhjSMNZvgdFeYeLz9tdBD') | |
27 | 27 | ||
28 | 28 | let m = Address(base58'3PDVDYZiwJzK3pu8vcknuLiKCYBPx6XZntG') | |
29 | 29 | ||
30 | 30 | let n = b | |
31 | 31 | ||
32 | 32 | func o (p) = { | |
33 | 33 | let q = getInteger(this, p) | |
34 | 34 | if ($isInstanceOf(q, "Int")) | |
35 | 35 | then { | |
36 | 36 | let r = q | |
37 | 37 | r | |
38 | 38 | } | |
39 | 39 | else 0 | |
40 | 40 | } | |
41 | 41 | ||
42 | 42 | ||
43 | 43 | func s (p) = { | |
44 | 44 | let q = getBinary(this, p) | |
45 | 45 | if ($isInstanceOf(q, "ByteVector")) | |
46 | 46 | then { | |
47 | 47 | let r = q | |
48 | 48 | r | |
49 | 49 | } | |
50 | 50 | else base58'' | |
51 | 51 | } | |
52 | 52 | ||
53 | 53 | ||
54 | 54 | func t (u) = { | |
55 | 55 | let v = toBase58String(b[u]) | |
56 | 56 | o((("global_" + v) + "_balance")) | |
57 | 57 | } | |
58 | 58 | ||
59 | 59 | ||
60 | 60 | func w (x,v) = { | |
61 | 61 | let y = o("global_poolToken_amount") | |
62 | 62 | let z = o((("global_" + toBase58String(v)) + "_balance")) | |
63 | 63 | fraction(x, y, z, DOWN) | |
64 | 64 | } | |
65 | 65 | ||
66 | 66 | ||
67 | 67 | func A (B) = { | |
68 | 68 | func C (D,E) = { | |
69 | 69 | let F = w(E.amount, value(E.assetId)) | |
70 | 70 | if (if ((D == 0)) | |
71 | 71 | then true | |
72 | 72 | else (D > F)) | |
73 | 73 | then F | |
74 | 74 | else D | |
75 | 75 | } | |
76 | 76 | ||
77 | 77 | let G = { | |
78 | 78 | let H = B | |
79 | 79 | let I = size(H) | |
80 | 80 | let J = 0 | |
81 | 81 | func K (L,M) = if ((M >= I)) | |
82 | 82 | then L | |
83 | 83 | else C(L, H[M]) | |
84 | 84 | ||
85 | 85 | func N (L,M) = if ((M >= I)) | |
86 | 86 | then L | |
87 | 87 | else throw("List size exceeds 2") | |
88 | 88 | ||
89 | 89 | N(K(K(J, 0), 1), 2) | |
90 | 90 | } | |
91 | 91 | G | |
92 | 92 | } | |
93 | 93 | ||
94 | 94 | ||
95 | 95 | func O (P,x,Q) = { | |
96 | 96 | let R = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p' | |
97 | 97 | let S = value(indexOf(b, R)) | |
98 | 98 | let T = c[S] | |
99 | 99 | let U = c[S] | |
100 | 100 | let V = o((("global_" + toBase58String(R)) + "_balance")) | |
101 | 101 | (fraction(x, V, T) / (Q / U)) | |
102 | 102 | } | |
103 | 103 | ||
104 | 104 | ||
105 | 105 | func W (B) = { | |
106 | 106 | func X (D,Y) = (D ++ [value(Y.assetId)]) | |
107 | 107 | ||
108 | 108 | let Z = { | |
109 | 109 | let H = B | |
110 | 110 | let I = size(H) | |
111 | 111 | let J = nil | |
112 | 112 | func K (L,M) = if ((M >= I)) | |
113 | 113 | then L | |
114 | 114 | else X(L, H[M]) | |
115 | 115 | ||
116 | 116 | func N (L,M) = if ((M >= I)) | |
117 | 117 | then L | |
118 | 118 | else throw("List size exceeds 2") | |
119 | 119 | ||
120 | 120 | N(K(K(J, 0), 1), 2) | |
121 | 121 | } | |
122 | 122 | if ((Z == Z)) | |
123 | 123 | then { | |
124 | 124 | func aa (D,P) = if ((indexOf(Z, P) != unit)) | |
125 | 125 | then (D + 1) | |
126 | 126 | else throw(("asset not attached: " + toBase58String(P))) | |
127 | 127 | ||
128 | 128 | let ab = { | |
129 | 129 | let H = b | |
130 | 130 | let I = size(H) | |
131 | 131 | let J = 0 | |
132 | 132 | func ac (L,M) = if ((M >= I)) | |
133 | 133 | then L | |
134 | 134 | else aa(L, H[M]) | |
135 | 135 | ||
136 | 136 | func ad (L,M) = if ((M >= I)) | |
137 | 137 | then L | |
138 | 138 | else throw("List size exceeds 2") | |
139 | 139 | ||
140 | 140 | ad(ac(ac(J, 0), 1), 2) | |
141 | 141 | } | |
142 | 142 | if ((ab == ab)) | |
143 | 143 | then true | |
144 | 144 | else throw("Strict value is not equal to itself.") | |
145 | 145 | } | |
146 | 146 | else throw("Strict value is not equal to itself.") | |
147 | 147 | } | |
148 | 148 | ||
149 | 149 | ||
150 | 150 | func ae (F,B,af) = { | |
151 | 151 | func ag (v) = { | |
152 | 152 | func C (D,Y) = if ((Y.assetId == v)) | |
153 | 153 | then Y.amount | |
154 | 154 | else D | |
155 | 155 | ||
156 | 156 | let H = B | |
157 | 157 | let I = size(H) | |
158 | 158 | let J = 0 | |
159 | 159 | func K (L,M) = if ((M >= I)) | |
160 | 160 | then L | |
161 | 161 | else C(L, H[M]) | |
162 | 162 | ||
163 | 163 | func N (L,M) = if ((M >= I)) | |
164 | 164 | then L | |
165 | 165 | else throw("List size exceeds 2") | |
166 | 166 | ||
167 | 167 | N(K(K(J, 0), 1), 2) | |
168 | 168 | } | |
169 | 169 | ||
170 | 170 | func ah (D,v) = { | |
171 | 171 | let ai = o((("global_" + toBase58String(v)) + "_balance")) | |
172 | 172 | let aj = o("global_poolToken_amount") | |
173 | 173 | let ak = o((("static_" + toBase58String(v)) + "_scale")) | |
174 | 174 | let al = fraction((fraction((aj + F), ak, aj, DOWN) - ak), ai, ak, DOWN) | |
175 | 175 | let am = ag(v) | |
176 | 176 | let an = ((if ((am != 0)) | |
177 | 177 | then am | |
178 | 178 | else 0) - al) | |
179 | 179 | (D ++ [IntegerEntry((("global_" + toBase58String(v)) + "_balance"), (ai + al)), ScriptTransfer(af, an, v)]) | |
180 | 180 | } | |
181 | 181 | ||
182 | 182 | let H = b | |
183 | 183 | let I = size(H) | |
184 | 184 | let J = nil | |
185 | 185 | func K (L,M) = if ((M >= I)) | |
186 | 186 | then L | |
187 | 187 | else ah(L, H[M]) | |
188 | 188 | ||
189 | 189 | func N (L,M) = if ((M >= I)) | |
190 | 190 | then L | |
191 | 191 | else throw("List size exceeds 2") | |
192 | 192 | ||
193 | 193 | N(K(K(J, 0), 1), 2) | |
194 | 194 | } | |
195 | 195 | ||
196 | 196 | ||
197 | 197 | func ao (ap,af) = { | |
198 | 198 | func aq (D,v) = { | |
199 | 199 | let ai = o((("global_" + toBase58String(v)) + "_balance")) | |
200 | 200 | let aj = o("global_poolToken_amount") | |
201 | 201 | let ak = o((("static_" + toBase58String(v)) + "_scale")) | |
202 | 202 | let x = fraction((ak - fraction((aj - ap), ak, aj, DOWN)), ai, ak, DOWN) | |
203 | 203 | (D ++ [IntegerEntry((("global_" + toBase58String(v)) + "_balance"), (ai - x)), ScriptTransfer(af, x, v)]) | |
204 | 204 | } | |
205 | 205 | ||
206 | 206 | let H = b | |
207 | 207 | let I = size(H) | |
208 | 208 | let J = nil | |
209 | 209 | func K (L,M) = if ((M >= I)) | |
210 | 210 | then L | |
211 | 211 | else aq(L, H[M]) | |
212 | 212 | ||
213 | 213 | func N (L,M) = if ((M >= I)) | |
214 | 214 | then L | |
215 | 215 | else throw("List size exceeds 2") | |
216 | 216 | ||
217 | 217 | N(K(K(J, 0), 1), 2) | |
218 | 218 | } | |
219 | 219 | ||
220 | 220 | ||
221 | 221 | func ar (as,at,au,av,aw) = { | |
222 | 222 | let ax = value(indexOf(b, at)) | |
223 | 223 | let ay = value(indexOf(b, au)) | |
224 | 224 | if ((ax == ay)) | |
225 | 225 | then throw("invalid tokens pair") | |
226 | 226 | else fraction(aw, (g[ay] - pow(((av * g[ax]) / (av + as)), f[ax], fraction(c[ax], 10000, c[ay]), 4, f[ay], FLOOR)), g[ay], DOWN) | |
227 | 227 | } | |
228 | 228 | ||
229 | 229 | ||
230 | 230 | func az (P,aA,Q,aB) = { | |
231 | 231 | let aC = o("global_indexStaked") | |
232 | 232 | let aD = aB | |
233 | 233 | let aE = (assetBalance(this, P) - Q) | |
234 | 234 | let aF = if ((aE > aD)) | |
235 | 235 | then aE | |
236 | 236 | else aD | |
237 | 237 | let aG = (aF - aD) | |
238 | 238 | let aH = if ((aC == 0)) | |
239 | 239 | then 0 | |
240 | 240 | else fraction(aG, j, aC) | |
241 | 241 | let aI = o((("global_lastCheck_" + aA) + "_interest")) | |
242 | 242 | (aI + aH) | |
243 | 243 | } | |
244 | 244 | ||
245 | 245 | ||
246 | 246 | func aJ (aK,aL) = { | |
247 | 247 | let aM = toString(aK) | |
248 | 248 | let aN = o((aM + "_indexStaked")) | |
249 | 249 | func C (D,P) = { | |
250 | 250 | let aA = toBase58String(P) | |
251 | 251 | let Q = o((("global_" + toBase58String(P)) + "_balance")) | |
252 | 252 | let aB = o((("global_lastCheck_" + aA) + "_earnings")) | |
253 | 253 | let aO = az(P, aA, Q, aB) | |
254 | 254 | let aF = max([aB, (assetBalance(this, P) - Q)]) | |
255 | 255 | let aP = fraction(aN, (aO - o((((aM + "_lastCheck_") + aA) + "_interest"))), j) | |
256 | 256 | let aQ = if ((aP == 0)) | |
257 | 257 | then nil | |
258 | 258 | else [ScriptTransfer(aL, aP, P)] | |
259 | 259 | $Tuple2(((D._1 ++ aQ) ++ [IntegerEntry((("global_lastCheck_" + aA) + "_earnings"), (aF - aP)), IntegerEntry((("global_lastCheck_" + aA) + "_interest"), aO), IntegerEntry((((aM + "_lastCheck_") + aA) + "_interest"), aO)]), (D._2 + O(P, aP, Q))) | |
260 | 260 | } | |
261 | 261 | ||
262 | 262 | let D = { | |
263 | 263 | let H = n | |
264 | 264 | let I = size(H) | |
265 | 265 | let J = $Tuple2(nil, 0) | |
266 | 266 | func K (L,M) = if ((M >= I)) | |
267 | 267 | then L | |
268 | 268 | else C(L, H[M]) | |
269 | 269 | ||
270 | 270 | func N (L,M) = if ((M >= I)) | |
271 | 271 | then L | |
272 | 272 | else throw("List size exceeds 2") | |
273 | 273 | ||
274 | 274 | N(K(K(J, 0), 1), 2) | |
275 | 275 | } | |
276 | 276 | (D._1 ++ [IntegerEntry((aM + "_claimedRewardValue"), (o((aM + "_claimedRewardValue")) + D._2)), IntegerEntry((aM + "_lastClaim"), lastBlock.timestamp)]) | |
277 | 277 | } | |
278 | 278 | ||
279 | 279 | ||
280 | 280 | func aR (aM,x) = { | |
281 | 281 | let aK = addressFromStringValue(aM) | |
282 | 282 | let aS = aJ(aK, aK) | |
283 | 283 | (aS ++ [IntegerEntry((aM + "_indexStaked"), (o((aM + "_indexStaked")) + x)), IntegerEntry("global_indexStaked", (o("global_indexStaked") + x))]) | |
284 | 284 | } | |
285 | 285 | ||
286 | 286 | ||
287 | 287 | @Callable(aT) | |
288 | 288 | func preInit () = { | |
289 | 289 | func C (D,aU) = if ((aU >= a)) | |
290 | 290 | then D | |
291 | 291 | else (D ++ [IntegerEntry((("static_" + toBase58String(b[0])) + "_scale"), g[aU]), IntegerEntry((("static_" + toBase58String(b[0])) + "_weight"), c[aU])]) | |
292 | 292 | ||
293 | - | let H = [0, 1 | |
293 | + | let H = [0, 1] | |
294 | 294 | let I = size(H) | |
295 | 295 | let J = nil | |
296 | 296 | func K (L,M) = if ((M >= I)) | |
297 | 297 | then L | |
298 | 298 | else C(L, H[M]) | |
299 | 299 | ||
300 | 300 | func N (L,M) = if ((M >= I)) | |
301 | 301 | then L | |
302 | 302 | else throw("List size exceeds 2") | |
303 | 303 | ||
304 | 304 | N(K(K(J, 0), 1), 2) | |
305 | 305 | } | |
306 | 306 | ||
307 | 307 | ||
308 | 308 | ||
309 | 309 | @Callable(aT) | |
310 | 310 | func deInit () = if ((aT.caller != this)) | |
311 | 311 | then throw("admin only") | |
312 | 312 | else [IntegerEntry("global_wasInited", 0)] | |
313 | 313 | ||
314 | 314 | ||
315 | 315 | ||
316 | 316 | @Callable(aT) | |
317 | 317 | func init () = { | |
318 | 318 | func aV () = { | |
319 | 319 | func C (D,aW) = (D ++ [IntegerEntry((("global_" + toBase58String(value(aW.assetId))) + "_balance"), aW.amount)]) | |
320 | 320 | ||
321 | 321 | let H = aT.payments | |
322 | 322 | let I = size(H) | |
323 | 323 | let J = nil | |
324 | 324 | func K (L,M) = if ((M >= I)) | |
325 | 325 | then L | |
326 | 326 | else C(L, H[M]) | |
327 | 327 | ||
328 | 328 | func N (L,M) = if ((M >= I)) | |
329 | 329 | then L | |
330 | 330 | else throw("List size exceeds 2") | |
331 | 331 | ||
332 | 332 | N(K(K(J, 0), 1), 2) | |
333 | 333 | } | |
334 | 334 | ||
335 | 335 | func aX (B) = { | |
336 | 336 | func C (D,aY) = { | |
337 | 337 | let P = value(aY.assetId) | |
338 | 338 | func aa (D,aW) = if ((aW == P)) | |
339 | 339 | then value(indexOf(b, aW)) | |
340 | 340 | else D | |
341 | 341 | ||
342 | 342 | let aZ = { | |
343 | 343 | let H = b | |
344 | 344 | let I = size(H) | |
345 | 345 | let J = 1 | |
346 | 346 | func K (L,M) = if ((M >= I)) | |
347 | 347 | then L | |
348 | 348 | else aa(L, H[M]) | |
349 | 349 | ||
350 | 350 | func N (L,M) = if ((M >= I)) | |
351 | 351 | then L | |
352 | 352 | else throw("List size exceeds 2") | |
353 | 353 | ||
354 | 354 | N(K(K(J, 0), 1), 2) | |
355 | 355 | } | |
356 | 356 | (D * pow(aY.amount, f[aZ], c[aZ], d, 1, FLOOR)) | |
357 | 357 | } | |
358 | 358 | ||
359 | 359 | let H = B | |
360 | 360 | let I = size(H) | |
361 | 361 | let J = 1 | |
362 | 362 | func K (L,M) = if ((M >= I)) | |
363 | 363 | then L | |
364 | 364 | else C(L, H[M]) | |
365 | 365 | ||
366 | 366 | func N (L,M) = if ((M >= I)) | |
367 | 367 | then L | |
368 | 368 | else throw("List size exceeds 2") | |
369 | 369 | ||
370 | 370 | N(K(K(J, 0), 1), 2) | |
371 | 371 | } | |
372 | 372 | ||
373 | 373 | if ((o("global_wasInited") > 0)) | |
374 | 374 | then throw("pool already inited") | |
375 | 375 | else { | |
376 | 376 | let ba = aX(aT.payments) | |
377 | 377 | let bb = Issue("PT", "Pool Token", ba, e, true, unit, 0) | |
378 | 378 | let bc = calculateAssetId(bb) | |
379 | 379 | (aV() ++ [bb, IntegerEntry("global_poolToken_amount", ba), IntegerEntry("global_wasInited", 1), BinaryEntry("global_poolToken_id", bc), ScriptTransfer(aT.caller, ba, bc)]) | |
380 | 380 | } | |
381 | 381 | } | |
382 | 382 | ||
383 | 383 | ||
384 | 384 | ||
385 | 385 | @Callable(aT) | |
386 | 386 | func generateIndex () = if ((size(aT.payments) != a)) | |
387 | 387 | then throw(("you need to attach all pool tokens. amount of pool tokens: " + toString(a))) | |
388 | 388 | else if (!(W(aT.payments))) | |
389 | 389 | then throw("wrong assets attached") | |
390 | 390 | else { | |
391 | 391 | let F = A(aT.payments) | |
392 | 392 | let bd = Reissue(getBinaryValue("global_poolToken_id"), F, true) | |
393 | 393 | let be = ae(F, aT.payments, aT.originCaller) | |
394 | 394 | $Tuple2((be ++ [ScriptTransfer(aT.caller, F, s("global_poolToken_id")), bd, IntegerEntry("global_poolToken_amount", (o("global_poolToken_amount") + F))]), F) | |
395 | 395 | } | |
396 | 396 | ||
397 | 397 | ||
398 | 398 | ||
399 | 399 | @Callable(aT) | |
400 | 400 | func stakeIndex () = { | |
401 | 401 | let aM = toString(aT.originCaller) | |
402 | 402 | let aY = aT.payments[0] | |
403 | 403 | if ((value(aY.assetId) != s("global_poolToken_id"))) | |
404 | 404 | then throw("wrong asset attached") | |
405 | 405 | else aR(aM, aY.amount) | |
406 | 406 | } | |
407 | 407 | ||
408 | 408 | ||
409 | 409 | ||
410 | 410 | @Callable(aT) | |
411 | 411 | func unstakeIndex (aN) = { | |
412 | 412 | let aM = toString(aT.originCaller) | |
413 | 413 | let bf = o((aM + "_indexStaked")) | |
414 | 414 | if ((aN > bf)) | |
415 | 415 | then throw("you don't have index tokens available") | |
416 | 416 | else (aJ(aT.originCaller, aT.originCaller) ++ [IntegerEntry((aM + "_indexStaked"), (bf - aN)), IntegerEntry("global_indexStaked", (o("global_indexStaked") - aN)), ScriptTransfer(aT.caller, aN, getBinaryValue("global_poolToken_id"))]) | |
417 | 417 | } | |
418 | 418 | ||
419 | 419 | ||
420 | 420 | ||
421 | 421 | @Callable(aT) | |
422 | 422 | func claimIndexRewards () = aJ(aT.caller, aT.caller) | |
423 | 423 | ||
424 | 424 | ||
425 | 425 | ||
426 | 426 | @Callable(aT) | |
427 | 427 | func redeemIndex (bg) = { | |
428 | 428 | let aY = aT.payments[0] | |
429 | 429 | if ((aY.assetId != s("global_poolToken_id"))) | |
430 | 430 | then throw("please attach pool share token") | |
431 | 431 | else { | |
432 | 432 | let ap = aY.amount | |
433 | 433 | let be = ao(ap, if (bg) | |
434 | 434 | then aT.originCaller | |
435 | 435 | else aT.caller) | |
436 | 436 | (be ++ [Burn(s("global_poolToken_id"), ap), IntegerEntry("global_poolToken_amount", (o("global_poolToken_amount") - ap))]) | |
437 | 437 | } | |
438 | 438 | } | |
439 | 439 | ||
440 | 440 | ||
441 | 441 | ||
442 | 442 | @Callable(aT) | |
443 | 443 | func unstakeAndRedeemIndex (aN) = { | |
444 | 444 | let aM = toString(aT.originCaller) | |
445 | 445 | let bf = o((aM + "_indexStaked")) | |
446 | 446 | if ((aN > bf)) | |
447 | 447 | then throw("you don't have index tokens available") | |
448 | 448 | else { | |
449 | 449 | let bh = (aJ(aT.originCaller, aT.caller) ++ [IntegerEntry((aM + "_indexStaked"), (bf - aN)), IntegerEntry("global_indexStaked", (o("global_indexStaked") - aN))]) | |
450 | 450 | let be = ao(aN, aT.caller) | |
451 | 451 | ((bh ++ be) ++ [Burn(s("global_poolToken_id"), aN), IntegerEntry("global_poolToken_amount", (o("global_poolToken_amount") - aN))]) | |
452 | 452 | } | |
453 | 453 | } | |
454 | 454 | ||
455 | 455 | ||
456 | 456 | ||
457 | 457 | @Callable(aT) | |
458 | 458 | func swap (au,bi) = { | |
459 | 459 | let aY = value(aT.payments[0]) | |
460 | 460 | let as = value(aT.payments[0].amount) | |
461 | 461 | let bj = value(aY.assetId) | |
462 | 462 | let bk = fromBase58String(au) | |
463 | 463 | let bl = o((("global_" + toBase58String(bj)) + "_balance")) | |
464 | 464 | let bm = o((("global_" + au) + "_balance")) | |
465 | 465 | let bn = ar(as, bj, bk, bl, bm) | |
466 | 466 | let bo = fraction(bn, h, k) | |
467 | 467 | let bp = fraction(bo, 40, 100) | |
468 | 468 | let bq = (bn - bo) | |
469 | 469 | if ((bi > bq)) | |
470 | 470 | then throw(("amount to recieve is lower than given one: " + toString(bq))) | |
471 | 471 | else if ((10000 > as)) | |
472 | 472 | then throw("sum to exchange is too small") | |
473 | 473 | else if ((0 > (bm - bn))) | |
474 | 474 | then throw("contract is out of reserves") | |
475 | 475 | else { | |
476 | 476 | let br = if ((aT.caller != m)) | |
477 | 477 | then [ScriptTransfer(l, bp, bk)] | |
478 | 478 | else nil | |
479 | 479 | $Tuple2((br ++ [IntegerEntry((("global_" + au) + "_balance"), (bm - bn)), IntegerEntry((("global_" + toBase58String(bj)) + "_balance"), (bl + as)), ScriptTransfer(aT.caller, bq, bk), IntegerEntry("global_volume", (o("global_volume") + O(bj, as, bl)))]), bq) | |
480 | 480 | } | |
481 | 481 | } | |
482 | 482 | ||
483 | 483 |
github/deemru/w8io/169f3d6 55.85 ms ◑![]()