tx · CFAzwZbKnp1GhTq9hn1C98kKgYzw6PuD74xUrN5Pwpzm 3N4qspZBLrsSsSNrpNpEnfshpTk1zxVfw2u: -0.01000000 Waves 2022.03.09 23:21 [1956890] smart account 3N4qspZBLrsSsSNrpNpEnfshpTk1zxVfw2u > SELF 0.00000000 Waves
{ "type": 13, "id": "CFAzwZbKnp1GhTq9hn1C98kKgYzw6PuD74xUrN5Pwpzm", "fee": 1000000, "feeAssetId": null, "timestamp": 1646857292520, "version": 1, "sender": "3N4qspZBLrsSsSNrpNpEnfshpTk1zxVfw2u", "senderPublicKey": "EiQQAu4De4r8PUWy1Epi7LVqNzHB7Vv1U1S72WcS1GMw", "proofs": [ "74k7qcKjJziJvk1iRnnX3t43DAF9ujx1jE8XAR1831Uyt4N54XiyMZJm8rDrfhxJTwEvwdxyvmBFEr7ghksdr5Z" ], "script": "base64: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YWxJbnQJAAACAAAAAQIAAAAVZmFpbCB0byBjYXN0IGludG8gSW50AQAAABNmb3JtYXRIaXN0b3J5UmVjb3JkAAAABAAAAAlvbGRBbW91bnQAAAAIb2xkU3RhcnQAAAAJbmV3QW1vdW50AAAACG5ld1N0YXJ0CQAEuQAAAAIJAARMAAAAAgIAAAAMJWQlZCVkJWQlZCVkCQAETAAAAAIJAAGkAAAAAQgFAAAACWxhc3RCbG9jawAAAAZoZWlnaHQJAARMAAAAAgkAAaQAAAABCAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAkABEwAAAACCQABpAAAAAEFAAAACW9sZEFtb3VudAkABEwAAAACCQABpAAAAAEFAAAACG9sZFN0YXJ0CQAETAAAAAIJAAGkAAAAAQUAAAAJbmV3QW1vdW50CQAETAAAAAIJAAGkAAAAAQUAAAAIbmV3U3RhcnQFAAAAA25pbAUAAAAJc2VwYXJhdG9yAQAAABJIaXN0b3J5UmVjb3JkRW50cnkAAAAHAAAABHR5cGUAAAALdXNlckFkZHJlc3MAAAAEdHhJZAAAAAlvbGRBbW91bnQAAAAIb2xkU3RhcnQAAAAJbmV3QW1vdW50AAAACG5ld1N0YXJ0CQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAQa2V5SGlzdG9yeVJlY29yZAAAAAMFAAAABHR5cGUFAAAAC3VzZXJBZGRyZXNzBQAAAAR0eElkCQEAAAATZm9ybWF0SGlzdG9yeVJlY29yZAAAAAQFAAAACW9sZEFtb3VudAUAAAAIb2xkU3RhcnQFAAAACW5ld0Ftb3VudAUAAAAIbmV3U3RhcnQBAAAAClN0YXRzRW50cnkAAAADAAAADnRvdGFsTG9ja2VkSW5jAAAADGxvY2tDb3VudEluYwAAAA11c2Vyc0NvdW50SW5jBAAAAApsb2Nrc0NvdW50CQEAAAAMZ2V0SW50T3JaZXJvAAAAAQkBAAAAEmtleVN0YXRzTG9ja3NDb3VudAAAAAAEAAAACnVzZXJzQ291bnQJAQAAAAxnZXRJbnRPclplcm8AAAABCQEAAAASa2V5U3RhdHNVc2Vyc0NvdW50AAAAAAQAAAALdG90YWxBbW91bnQJAQAAAAxnZXRJbnRPclplcm8AAAABCQEAAAAXa2V5TG9ja1BhcmFtVG90YWxBbW91bnQAAAAACQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAASa2V5U3RhdHNMb2Nrc0NvdW50AAAAAAkAAGQAAAACBQAAAApsb2Nrc0NvdW50BQAAAAxsb2NrQ291bnRJbmMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABJrZXlTdGF0c1VzZXJzQ291bnQAAAAACQAAZAAAAAIFAAAACnVzZXJzQ291bnQFAAAADXVzZXJzQ291bnRJbmMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABdrZXlMb2NrUGFyYW1Ub3RhbEFtb3VudAAAAAAJAABkAAAAAgUAAAALdG90YWxBbW91bnQFAAAADnRvdGFsTG9ja2VkSW5jBQAAAANuaWwBAAAAD0xvY2tQYXJhbXNFbnRyeQAAAAMAAAALdXNlckFkZHJlc3MAAAAGYW1vdW50AAAABXN0YXJ0CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAWa2V5TG9ja1BhcmFtVXNlckFtb3VudAAAAAEFAAAAC3VzZXJBZGRyZXNzBQAAAAZhbW91bnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABZrZXlMb2NrUGFyYW1TdGFydEJsb2NrAAAAAQUAAAALdXNlckFkZHJlc3MFAAAABXN0YXJ0BQAAAANuaWwBAAAAD2dldFBhcmFtc09yRmFpbAAAAAAEAAAAEG5ldXRyaW5vQ29udHJhY3QJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEJAQAAAA9nZXRTdHJpbmdPckZhaWwAAAABCQEAAAAaa2V5TmV1dHJpbm9Db250cmFjdEFkZHJlc3MAAAAACQAFFgAAAAQJAAJZAAAAAQkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAQbmV1dHJpbm9Db250cmFjdAkBAAAAGWtleUF1Y3Rpb25Db250cmFjdEFkZHJlc3MAAAAACQACWQAAAAEJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAAEG5ldXRyaW5vQ29udHJhY3QJAQAAAAxrZXlCb25kQXNzZXQAAAAACQEAAAAMZ2V0SW50T3JGYWlsAAAAAQkBAAAAEGtleU1pbkxvY2tBbW91bnQAAAAACQEAAAAMZ2V0SW50T3JGYWlsAAAAAQkBAAAAC2tleUhhbGZMaWZlAAAAAAEAAAAMaXNVc2VyRXhpc3RzAAAAAQAAAAt1c2VyQWRkcmVzcwkBAAAACWlzRGVmaW5lZAAAAAEJAAQaAAAAAgUAAAAEdGhpcwkBAAAAFmtleUxvY2tQYXJhbVN0YXJ0QmxvY2sAAAABBQAAAAt1c2VyQWRkcmVzcwEAAAATZ2V0VXNlclBhcmFtc09yVW5pdAAAAAEAAAALdXNlckFkZHJlc3MDCQEAAAAMaXNVc2VyRXhpc3RzAAAAAQUAAAALdXNlckFkZHJlc3MJAAUUAAAAAgkBAAAADGdldEludE9yRmFpbAAAAAEJAQAAABZrZXlMb2NrUGFyYW1Vc2VyQW1vdW50AAAAAQUAAAALdXNlckFkZHJlc3MJAQAAAAxnZXRJbnRPckZhaWwAAAABCQEAAAAWa2V5TG9ja1BhcmFtU3RhcnRCbG9jawAAAAEFAAAAC3VzZXJBZGRyZXNzBQAAAAR1bml0AQAAABNnZXRVc2VyUGFyYW1zT3JGYWlsAAAAAQAAAAt1c2VyQWRkcmVzcwkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQEAAAATZ2V0VXNlclBhcmFtc09yVW5pdAAAAAEFAAAAC3VzZXJBZGRyZXNzCQABLAAAAAIJAAEsAAAAAgIAAAAFVXNlciAJAAQlAAAAAQUAAAALdXNlckFkZHJlc3MCAAAADyBpcyBub3QgZGVmaW5lZAAAAAUAAAABaQEAAAALY29uc3RydWN0b3IAAAAEAAAAF25ldXRyaW5vQ29udHJhY3RBZGRyZXNzAAAAE21hdGhDb250cmFjdEFkZHJlc3MAAAANbWluTG9ja0Ftb3VudAAAAAhoYWxmTGlmZQMJAQAAAAIhPQAAAAIIBQAAAAFpAAAABmNhbGxlcgUAAAAEdGhpcwkAAAIAAAABAgAAABFQZXJtaXNzaW9uIGRlbmllZAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAaa2V5TmV1dHJpbm9Db250cmFjdEFkZHJlc3MAAAAABQAAABduZXV0cmlub0NvbnRyYWN0QWRkcmVzcwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAWa2V5TWF0aENvbnRyYWN0QWRkcmVzcwAAAAAFAAAAE21hdGhDb250cmFjdEFkZHJlc3MJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABBrZXlNaW5Mb2NrQW1vdW50AAAAAAUAAAANbWluTG9ja0Ftb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAC2tleUhhbGZMaWZlAAAAAAUAAAAIaGFsZkxpZmUFAAAAA25pbAAAAAFpAQAAAAVzdGFrZQAAAAAEAAAACyR0MDQ0NDI0NTIxCQEAAAAPZ2V0UGFyYW1zT3JGYWlsAAAAAAQAAAAPYXVjdGlvbkNvbnRyYWN0CAUAAAALJHQwNDQ0MjQ1MjEAAAACXzEEAAAAC2JvbmRBc3NldElkCAUAAAALJHQwNDQ0MjQ1MjEAAAACXzIEAAAADW1pbkxvY2tBbW91bnQIBQAAAAskdDA0NDQyNDUyMQAAAAJfMwQAAAAIaGFsZkxpZmUIBQAAAAskdDA0NDQyNDUyMQAAAAJfNAMJAQAAAAIhPQAAAAIJAAGQAAAAAQgFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAEJAAACAAAAAQIAAAAVSW52YWxpZCBwYXltZW50cyBzaXplBAAAAAdwYXltZW50CQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAABAAAAAZhbW91bnQIBQAAAAdwYXltZW50AAAABmFtb3VudAQAAAATaW52YWxpZEFzc2V0TWVzc2FnZQkAASwAAAACCQABLAAAAAICAAAAD0ludmFsaWQgYXNzZXQuIAkAAlgAAAABBQAAAAtib25kQXNzZXRJZAIAAAAMIGlzIGV4cGVjdGVkBAAAAAdhc3NldElkCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIIBQAAAAdwYXltZW50AAAAB2Fzc2V0SWQFAAAAE2ludmFsaWRBc3NldE1lc3NhZ2UDCQEAAAACIT0AAAACBQAAAAdhc3NldElkBQAAAAtib25kQXNzZXRJZAkAAAIAAAABBQAAABNpbnZhbGlkQXNzZXRNZXNzYWdlBAAAAAt1c2VyQWRkcmVzcwgFAAAAAWkAAAAGY2FsbGVyBAAAAAskdDA1MDIwNTE5MgQAAAAHJG1hdGNoMAkBAAAAE2dldFVzZXJQYXJhbXNPclVuaXQAAAABBQAAAAt1c2VyQWRkcmVzcwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAKKEludCwgSW50KQQAAAABcAUAAAAHJG1hdGNoMAkABRUAAAADBwgFAAAAAXAAAAACXzEIBQAAAAFwAAAAAl8yAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAARVbml0CQAFFQAAAAMGAAAAAAAAAAAAAP//////////CQAAAgAAAAECAAAAC01hdGNoIGVycm9yBAAAAAlpc05ld1VzZXIIBQAAAAskdDA1MDIwNTE5MgAAAAJfMQQAAAAKbG9ja0Ftb3VudAgFAAAACyR0MDUwMjA1MTkyAAAAAl8yBAAAAA9sb2NrU3RhcnRIZWlnaHQIBQAAAAskdDA1MDIwNTE5MgAAAAJfMwQAAAAMbWVyZ2VkQW1vdW50AwUAAAAJaXNOZXdVc2VyBQAAAAZhbW91bnQJAABkAAAAAgUAAAAGYW1vdW50BQAAAApsb2NrQW1vdW50BAAAABFtZXJnZWRTdGFydEhlaWdodAMFAAAACWlzTmV3VXNlcgUAAAAGaGVpZ2h0BAAAAAxtYXRoQ29udHJhY3QJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEJAQAAAA9nZXRTdHJpbmdPckZhaWwAAAABCQEAAAAWa2V5TWF0aENvbnRyYWN0QWRkcmVzcwAAAAAJAQAAAAVhc0ludAAAAAEJAAP8AAAABAUAAAAMbWF0aENvbnRyYWN0AgAAAA9tZXJnZVN0YWtlc01BVEgJAARMAAAAAgUAAAAGYW1vdW50CQAETAAAAAIFAAAABmhlaWdodAkABEwAAAACBQAAAApsb2NrQW1vdW50CQAETAAAAAIFAAAAD2xvY2tTdGFydEhlaWdodAUAAAADbmlsBQAAAANuaWwDCQAAZgAAAAIFAAAADW1pbkxvY2tBbW91bnQFAAAADG1lcmdlZEFtb3VudAkAAAIAAAABCQABLAAAAAICAAAAE01pbiBsb2NrIGFtb3VudCBpcyAJAAGkAAAAAQUAAAANbWluTG9ja0Ftb3VudAkABE4AAAACCQAETgAAAAIJAARMAAAAAgkBAAAAEkhpc3RvcnlSZWNvcmRFbnRyeQAAAAcCAAAABXN0YWtlBQAAAAt1c2VyQWRkcmVzcwgFAAAAAWkAAAANdHJhbnNhY3Rpb25JZAUAAAAKbG9ja0Ftb3VudAUAAAAPbG9ja1N0YXJ0SGVpZ2h0BQAAAAxtZXJnZWRBbW91bnQFAAAAEW1lcmdlZFN0YXJ0SGVpZ2h0BQAAAANuaWwJAQAAAA9Mb2NrUGFyYW1zRW50cnkAAAADBQAAAAt1c2VyQWRkcmVzcwUAAAAMbWVyZ2VkQW1vdW50BQAAABFtZXJnZWRTdGFydEhlaWdodAkBAAAAClN0YXRzRW50cnkAAAADBQAAAAZhbW91bnQAAAAAAAAAAAEDBQAAAAlpc05ld1VzZXIAAAAAAAAAAAEAAAAAAAAAAAAAAAABaQEAAAAHdW5zdGFrZQAAAAEAAAAGYW1vdW50BAAAAAt1c2VyQWRkcmVzcwgFAAAAAWkAAAAGY2FsbGVyBAAAAAskdDA1OTYwNjAzOAkBAAAAD2dldFBhcmFtc09yRmFpbAAAAAAEAAAADmF1Y3Rpb25BZGRyZXNzCAUAAAALJHQwNTk2MDYwMzgAAAACXzEEAAAAC2JvbmRBc3NldElkCAUAAAALJHQwNTk2MDYwMzgAAAACXzIEAAAADW1pbkxvY2tBbW91bnQIBQAAAAskdDA1OTYwNjAzOAAAAAJfMwQAAAAIaGFsZkxpZmUIBQAAAAskdDA1OTYwNjAzOAAAAAJfNAQAAAALJHQwNjA0MTYxMDQJAQAAABNnZXRVc2VyUGFyYW1zT3JGYWlsAAAAAQUAAAALdXNlckFkZHJlc3MEAAAACmxvY2tBbW91bnQIBQAAAAskdDA2MDQxNjEwNAAAAAJfMQQAAAAJbG9ja1N0YXJ0CAUAAAALJHQwNjA0MTYxMDQAAAACXzIDCQAAZwAAAAIAAAAAAAAAAAAFAAAACmxvY2tBbW91bnQJAAACAAAAAQIAAAASTm90aGluZyB0byB1bnN0YWtlAwkAAGYAAAACBQAAAAZhbW91bnQFAAAACmxvY2tBbW91bnQJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAKUmVxdWVzdGVkIAkAAaQAAAABBQAAAAZhbW91bnQCAAAAEiwgYnV0IHN0YWtlZCBvbmx5IAkAAaQAAAABBQAAAApsb2NrQW1vdW50BAAAAAxtYXRoQ29udHJhY3QJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEJAQAAAA9nZXRTdHJpbmdPckZhaWwAAAABCQEAAAAWa2V5TWF0aENvbnRyYWN0QWRkcmVzcwAAAAAEAAAAD2NvbWlzc2lvbkFtb3VudAkBAAAABWFzSW50AAAAAQkAA/wAAAAEBQAAAAxtYXRoQ29udHJhY3QCAAAAHWdldFVuc3Rha2VDb21pc3Npb25BbW91bnRNQVRICQAETAAAAAIFAAAABmFtb3VudAkABEwAAAACBQAAAAlsb2NrU3RhcnQFAAAAA25pbAUAAAADbmlsCQAETgAAAAIJAAROAAAAAgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAAAt1c2VyQWRkcmVzcwkAAGUAAAACBQAAAAZhbW91bnQFAAAAD2NvbWlzc2lvbkFtb3VudAUAAAALYm9uZEFzc2V0SWQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAB0FkZHJlc3MAAAABBQAAAA5hdWN0aW9uQWRkcmVzcwUAAAAPY29taXNzaW9uQW1vdW50BQAAAAtib25kQXNzZXRJZAkABEwAAAACCQEAAAASSGlzdG9yeVJlY29yZEVudHJ5AAAABwIAAAAHdW5zdGFrZQUAAAALdXNlckFkZHJlc3MIBQAAAAFpAAAADXRyYW5zYWN0aW9uSWQFAAAACmxvY2tBbW91bnQFAAAACWxvY2tTdGFydAkAAGUAAAACBQAAAApsb2NrQW1vdW50BQAAAAZhbW91bnQFAAAACWxvY2tTdGFydAUAAAADbmlsCQEAAAAPTG9ja1BhcmFtc0VudHJ5AAAAAwUAAAALdXNlckFkZHJlc3MJAABlAAAAAgUAAAAKbG9ja0Ftb3VudAUAAAAGYW1vdW50BQAAAAlsb2NrU3RhcnQJAQAAAApTdGF0c0VudHJ5AAAAAwkBAAAAAS0AAAABBQAAAAZhbW91bnQDCQAAAAAAAAIFAAAABmFtb3VudAUAAAAKbG9ja0Ftb3VudAD//////////wAAAAAAAAAAAAMJAAAAAAAAAgUAAAAGYW1vdW50BQAAAApsb2NrQW1vdW50AP//////////AAAAAAAAAAAAAAAAAWkBAAAAE2dOc2J0QW1vdW50UkVBRE9OTFkAAAABAAAADnVzZXJBZGRyZXNzU3RyBAAAAAt1c2VyQWRkcmVzcwkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQUAAAAOdXNlckFkZHJlc3NTdHIJAAUUAAAAAgUAAAADbmlsAwkBAAAADGlzVXNlckV4aXN0cwAAAAEFAAAAC3VzZXJBZGRyZXNzCAkBAAAAE2dldFVzZXJQYXJhbXNPckZhaWwAAAABBQAAAAt1c2VyQWRkcmVzcwAAAAJfMQAAAAAAAAAAAAAAAAFpAQAAAB5uc2J0U3Rha2luZ0luZm9XcmFwcGVyUkVBRE9OTFkAAAABAAAADnVzZXJBZGRyZXNzU3RyBAAAAAskdDA3MzI2NzYyNgMJAAAAAAAAAgUAAAAOdXNlckFkZHJlc3NTdHICAAAAAAkABRQAAAACAAAAAAAAAAAAAAAAAAAAAAAABAAAAAt1c2VyQWRkcmVzcwkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQUAAAAOdXNlckFkZHJlc3NTdHIDCQEAAAAMaXNVc2VyRXhpc3RzAAAAAQUAAAALdXNlckFkZHJlc3MEAAAACyR0MDc1MTU3NTcwCQEAAAATZ2V0VXNlclBhcmFtc09yRmFpbAAAAAEFAAAAC3VzZXJBZGRyZXNzBAAAAAZhbW91bnQIBQAAAAskdDA3NTE1NzU3MAAAAAJfMQQAAAAFc3RhcnQIBQAAAAskdDA3NTE1NzU3MAAAAAJfMgkABRQAAAACBQAAAANuaWwJAAUUAAAAAgUAAAAGYW1vdW50BQAAAAVzdGFydAkABRQAAAACBQAAAANuaWwJAAUUAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAQAAAAHbnNidEFtdAgFAAAACyR0MDczMjY3NjI2AAAAAl8xBAAAAAxzdGFraW5nU3RhcnQIBQAAAAskdDA3MzI2NzYyNgAAAAJfMgkABRQAAAACBQAAAANuaWwJAAUUAAAAAgUAAAAHbnNidEFtdAUAAAAMc3Rha2luZ1N0YXJ0AAAAADxIJAQ=", "chainId": 84, "height": 1956890, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
Old | New | Differences | |
---|---|---|---|
1 | - | # no script | |
1 | + | {-# STDLIB_VERSION 5 #-} | |
2 | + | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | + | {-# CONTENT_TYPE DAPP #-} | |
4 | + | let a = "__" | |
5 | + | ||
6 | + | let b = 100000000 | |
7 | + | ||
8 | + | func c () = "bond_asset_id" | |
9 | + | ||
10 | + | ||
11 | + | func d () = "auction_contract" | |
12 | + | ||
13 | + | ||
14 | + | func e () = "%s__neutrinoContractAddress" | |
15 | + | ||
16 | + | ||
17 | + | func f () = "%s__mathContract" | |
18 | + | ||
19 | + | ||
20 | + | func g () = "%s__minLockAmount" | |
21 | + | ||
22 | + | ||
23 | + | func h () = "%s__halfLife" | |
24 | + | ||
25 | + | ||
26 | + | func i (j) = makeString(["%s%s%s", "paramByUser", toString(j), "amount"], a) | |
27 | + | ||
28 | + | ||
29 | + | func k (j) = makeString(["%s%s%s", "paramByUser", toString(j), "start"], a) | |
30 | + | ||
31 | + | ||
32 | + | func l (m,j,n) = makeString(["%s%s%s%s", "history", m, toString(j), toBase58String(n)], a) | |
33 | + | ||
34 | + | ||
35 | + | func o () = makeString(["%s%s", "stats", "activeTotalLocked"], a) | |
36 | + | ||
37 | + | ||
38 | + | func p () = makeString(["%s%s", "stats", "locksCount"], a) | |
39 | + | ||
40 | + | ||
41 | + | func q () = makeString(["%s%s", "stats", "activeUsersCount"], a) | |
42 | + | ||
43 | + | ||
44 | + | func r () = "%s__nextPeriod" | |
45 | + | ||
46 | + | ||
47 | + | func s (t) = valueOrElse(getInteger(this, t), 0) | |
48 | + | ||
49 | + | ||
50 | + | func u (t) = valueOrErrorMessage(getInteger(this, t), (("Mandatory this." + t) + " is not defined")) | |
51 | + | ||
52 | + | ||
53 | + | func v (t) = valueOrErrorMessage(getString(this, t), (("Mandatory this." + t) + " is not defined")) | |
54 | + | ||
55 | + | ||
56 | + | func w (x) = { | |
57 | + | let y = x | |
58 | + | if ($isInstanceOf(y, "Int")) | |
59 | + | then { | |
60 | + | let z = y | |
61 | + | z | |
62 | + | } | |
63 | + | else throw("fail to cast into Int") | |
64 | + | } | |
65 | + | ||
66 | + | ||
67 | + | func A (B,C,D,E) = makeString(["%d%d%d%d%d%d", toString(lastBlock.height), toString(lastBlock.timestamp), toString(B), toString(C), toString(D), toString(E)], a) | |
68 | + | ||
69 | + | ||
70 | + | func F (m,j,n,B,C,D,E) = StringEntry(l(m, j, n), A(B, C, D, E)) | |
71 | + | ||
72 | + | ||
73 | + | func G (H,I,J) = { | |
74 | + | let K = s(p()) | |
75 | + | let L = s(q()) | |
76 | + | let M = s(o()) | |
77 | + | [IntegerEntry(p(), (K + I)), IntegerEntry(q(), (L + J)), IntegerEntry(o(), (M + H))] | |
78 | + | } | |
79 | + | ||
80 | + | ||
81 | + | func N (j,O,P) = [IntegerEntry(i(j), O), IntegerEntry(k(j), P)] | |
82 | + | ||
83 | + | ||
84 | + | func Q () = { | |
85 | + | let R = addressFromStringValue(v(e())) | |
86 | + | $Tuple4(fromBase58String(getStringValue(R, d())), fromBase58String(getStringValue(R, c())), u(g()), u(h())) | |
87 | + | } | |
88 | + | ||
89 | + | ||
90 | + | func S (j) = isDefined(getInteger(this, k(j))) | |
91 | + | ||
92 | + | ||
93 | + | func T (j) = if (S(j)) | |
94 | + | then $Tuple2(u(i(j)), u(k(j))) | |
95 | + | else unit | |
96 | + | ||
97 | + | ||
98 | + | func U (j) = valueOrErrorMessage(T(j), (("User " + toString(j)) + " is not defined")) | |
99 | + | ||
100 | + | ||
101 | + | @Callable(V) | |
102 | + | func constructor (W,X,Y,Z) = if ((V.caller != this)) | |
103 | + | then throw("Permission denied") | |
104 | + | else [StringEntry(e(), W), StringEntry(f(), X), IntegerEntry(g(), Y), IntegerEntry(h(), Z)] | |
105 | + | ||
106 | + | ||
107 | + | ||
108 | + | @Callable(V) | |
109 | + | func stake () = { | |
110 | + | let aa = Q() | |
111 | + | let ab = aa._1 | |
112 | + | let ac = aa._2 | |
113 | + | let Y = aa._3 | |
114 | + | let Z = aa._4 | |
115 | + | if ((size(V.payments) != 1)) | |
116 | + | then throw("Invalid payments size") | |
117 | + | else { | |
118 | + | let ad = V.payments[0] | |
119 | + | let O = ad.amount | |
120 | + | let ae = (("Invalid asset. " + toBase58String(ac)) + " is expected") | |
121 | + | let af = valueOrErrorMessage(ad.assetId, ae) | |
122 | + | if ((af != ac)) | |
123 | + | then throw(ae) | |
124 | + | else { | |
125 | + | let j = V.caller | |
126 | + | let ag = { | |
127 | + | let y = T(j) | |
128 | + | if ($isInstanceOf(y, "(Int, Int)")) | |
129 | + | then { | |
130 | + | let ah = y | |
131 | + | $Tuple3(false, ah._1, ah._2) | |
132 | + | } | |
133 | + | else if ($isInstanceOf(y, "Unit")) | |
134 | + | then $Tuple3(true, 0, -1) | |
135 | + | else throw("Match error") | |
136 | + | } | |
137 | + | let ai = ag._1 | |
138 | + | let aj = ag._2 | |
139 | + | let ak = ag._3 | |
140 | + | let al = if (ai) | |
141 | + | then O | |
142 | + | else (O + aj) | |
143 | + | let am = if (ai) | |
144 | + | then height | |
145 | + | else { | |
146 | + | let an = addressFromStringValue(v(f())) | |
147 | + | w(invoke(an, "mergeStakesMATH", [O, height, aj, ak], nil)) | |
148 | + | } | |
149 | + | if ((Y > al)) | |
150 | + | then throw(("Min lock amount is " + toString(Y))) | |
151 | + | else (([F("stake", j, V.transactionId, aj, ak, al, am)] ++ N(j, al, am)) ++ G(O, 1, if (ai) | |
152 | + | then 1 | |
153 | + | else 0)) | |
154 | + | } | |
155 | + | } | |
156 | + | } | |
157 | + | ||
158 | + | ||
159 | + | ||
160 | + | @Callable(V) | |
161 | + | func unstake (O) = { | |
162 | + | let j = V.caller | |
163 | + | let ao = Q() | |
164 | + | let ap = ao._1 | |
165 | + | let ac = ao._2 | |
166 | + | let Y = ao._3 | |
167 | + | let Z = ao._4 | |
168 | + | let aq = U(j) | |
169 | + | let aj = aq._1 | |
170 | + | let ar = aq._2 | |
171 | + | if ((0 >= aj)) | |
172 | + | then throw("Nothing to unstake") | |
173 | + | else if ((O > aj)) | |
174 | + | then throw(((("Requested " + toString(O)) + ", but staked only ") + toString(aj))) | |
175 | + | else { | |
176 | + | let an = addressFromStringValue(v(f())) | |
177 | + | let as = w(invoke(an, "getUnstakeComissionAmountMATH", [O, ar], nil)) | |
178 | + | (([ScriptTransfer(j, (O - as), ac), ScriptTransfer(Address(ap), as, ac), F("unstake", j, V.transactionId, aj, ar, (aj - O), ar)] ++ N(j, (aj - O), ar)) ++ G(-(O), if ((O == aj)) | |
179 | + | then -1 | |
180 | + | else 0, if ((O == aj)) | |
181 | + | then -1 | |
182 | + | else 0)) | |
183 | + | } | |
184 | + | } | |
185 | + | ||
186 | + | ||
187 | + | ||
188 | + | @Callable(V) | |
189 | + | func gNsbtAmountREADONLY (at) = { | |
190 | + | let j = addressFromStringValue(at) | |
191 | + | $Tuple2(nil, if (S(j)) | |
192 | + | then U(j)._1 | |
193 | + | else 0) | |
194 | + | } | |
195 | + | ||
196 | + | ||
197 | + | ||
198 | + | @Callable(V) | |
199 | + | func nsbtStakingInfoWrapperREADONLY (at) = { | |
200 | + | let au = if ((at == "")) | |
201 | + | then $Tuple2(0, 0) | |
202 | + | else { | |
203 | + | let j = addressFromStringValue(at) | |
204 | + | if (S(j)) | |
205 | + | then { | |
206 | + | let av = U(j) | |
207 | + | let O = av._1 | |
208 | + | let P = av._2 | |
209 | + | $Tuple2(nil, $Tuple2(O, P)) | |
210 | + | } | |
211 | + | else $Tuple2(nil, $Tuple2(0, 0)) | |
212 | + | } | |
213 | + | let aw = au._1 | |
214 | + | let ax = au._2 | |
215 | + | $Tuple2(nil, $Tuple2(aw, ax)) | |
216 | + | } | |
217 | + | ||
218 | + |
github/deemru/w8io/03bedc9 25.78 ms ◑![]()