tx · 2PKAXosSjgbdoqjyXnRP17cDs7zUtq2YQ18xUdvGXiRh 3P23drfMhqqouvzpt3xUyGwjVX8P8qAzrmi: -0.01000000 Waves 2021.07.30 18:20 [2701338] smart account 3P23drfMhqqouvzpt3xUyGwjVX8P8qAzrmi > SELF 0.00000000 Waves
{ "type": 13, "id": "2PKAXosSjgbdoqjyXnRP17cDs7zUtq2YQ18xUdvGXiRh", "fee": 1000000, "feeAssetId": null, "timestamp": 1627658414139, "version": 1, "sender": "3P23drfMhqqouvzpt3xUyGwjVX8P8qAzrmi", "senderPublicKey": "ArJm3xyePPbMkmm1v9AhbbCmmK2h41nD9VhVvcfXhFPS", "proofs": [ "51m6xUwGLcKVSUCpwciknQzBYkW7LcximDyoB92n12RSKLYc18LbjbJVF5Z6LCAsZyx2jC9kFNHAeWVky9WkMhkx" ], "script": "base64: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", "chainId": 87, "height": 2701338, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: 5JHfbY4pBckMSJiLuje4VX1vjr71a7jppp6nLJ4ofZZ4 Full:
Old | New | Differences | |
---|---|---|---|
1 | - | # no script | |
1 | + | {-# STDLIB_VERSION 5 #-} | |
2 | + | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | + | {-# CONTENT_TYPE DAPP #-} | |
4 | + | func a (b,c) = if (!(isDefined(getString(this, b)))) | |
5 | + | then StringEntry(b, c) | |
6 | + | else throw(("already initialized: " + b)) | |
7 | + | ||
8 | + | ||
9 | + | let d = valueOrErrorMessage(getString(this, "admin"), "no admin") | |
10 | + | ||
11 | + | let e = valueOrErrorMessage(getString(this, "reserve"), "no reserve") | |
12 | + | ||
13 | + | let f = valueOrErrorMessage(getString(this, "node"), "no node") | |
14 | + | ||
15 | + | let g = valueOrErrorMessage(addressFromString(f), "bad node address") | |
16 | + | ||
17 | + | let h = valueOrErrorMessage(getString(this, "neutrinoId"), "no neutrino id") | |
18 | + | ||
19 | + | let i = valueOrErrorMessage(getString(this, "sp"), "no sp") | |
20 | + | ||
21 | + | @Callable(j) | |
22 | + | func initialize (d,e,f,h,i) = [a("admin", d), a("reserve", e), a("node", f), a("neutrinoId", h), a("sp", i)] | |
23 | + | ||
24 | + | ||
25 | + | ||
26 | + | @Callable(j) | |
27 | + | func setAddress (k) = if ((toString(j.caller) != d)) | |
28 | + | then throw("only self can do") | |
29 | + | else [StringEntry("node", k)] | |
30 | + | ||
31 | + | ||
32 | + | ||
33 | + | @Callable(j) | |
34 | + | func put () = if ((toString(j.caller) != e)) | |
35 | + | then throw("reserve only") | |
36 | + | else { | |
37 | + | let l = toBase58String(value(j.payments[0].assetId)) | |
38 | + | if ((l != h)) | |
39 | + | then throw(((("usdn only: " + h) + ", but got ") + l)) | |
40 | + | else { | |
41 | + | let m = invoke(g, "lockNeutrinoSP", [i, 100], [AttachedPayment(fromBase58String(h), j.payments[0].amount)]) | |
42 | + | if ((m == m)) | |
43 | + | then nil | |
44 | + | else throw("Strict value is not equal to itself.") | |
45 | + | } | |
46 | + | } | |
47 | + | ||
48 | + | ||
49 | + | ||
50 | + | @Callable(j) | |
51 | + | func get (n) = if ((0 > n)) | |
52 | + | then throw("pulling negative amount") | |
53 | + | else if ((toString(j.caller) != e)) | |
54 | + | then throw("reserve only") | |
55 | + | else { | |
56 | + | let m = invoke(g, "unlockNeutrino", [n, h], nil) | |
57 | + | if ((m == m)) | |
58 | + | then [ScriptTransfer(j.caller, n, fromBase58String(h))] | |
59 | + | else throw("Strict value is not equal to itself.") | |
60 | + | } | |
61 | + | ||
62 | + |
github/deemru/w8io/873ac7e 33.11 ms ◑