tx · 8NWqnMqxqwuYUBfiu5kUMQkCpvLrEHx3AtZehYq2Z4J5 3N6q7sCGSSLBUXDdjBdYGTJbZGZfhhh8cNg: -0.01400000 Waves 2021.04.02 16:51 [1464909] smart account 3N6q7sCGSSLBUXDdjBdYGTJbZGZfhhh8cNg > SELF 0.00000000 Waves
{ "type": 13, "id": "8NWqnMqxqwuYUBfiu5kUMQkCpvLrEHx3AtZehYq2Z4J5", "fee": 1400000, "feeAssetId": null, "timestamp": 1617371552328, "version": 2, "chainId": 84, "sender": "3N6q7sCGSSLBUXDdjBdYGTJbZGZfhhh8cNg", "senderPublicKey": "6RxCbWeRD4VWkRJtcAR8HBRkrBbEzZWucSBL6YrSFQrE", "proofs": [ "5Mi951SqS1ZeWHKPcpZ69McqK1ZU64e9yJjoMYdKUyBvH5Qxm2w8FupeLpFBjwQM93EZDK5ayeF3puq2TaLNVHx2" ], "script": "base64:AAIEAAAAAAAAAAYIAhIAEgAAAAATAAAAAA9uZXV0cmlub0Fzc2V0SWQBAAAAIG8ko8qrMNxSKZjoLGFa7lp/I03CLXW76Z2qVODS0AfBAAAAAAtuc2J0QXNzZXRJZAEAAAAgHzHKqJoXhJqJN2I09RXg46JIn0GFYur0HgDtWiIaqSQAAAAAE05ldXRyaW5vQ29udHJhY3RLZXkBAAAAGgFUuYnNz0dxupdy7LhFDzOwqkmF0Q14MgJtAAAAAAhVU0ROVFlQRQIAAAAEVVNETgAAAAAITlNCVFRZUEUCAAAABE5TQlQAAAAACkJhbGFuY2VLZXkCAAAAC3JwZF9iYWxhbmNlAQAAABFnZXRVc2VyQmFsYW5jZUtleQAAAAIAAAAFb3duZXIAAAAHYXNzZXRJZAkABLkAAAACCQAETAAAAAIFAAAACkJhbGFuY2VLZXkJAARMAAAAAgUAAAAHYXNzZXRJZAkABEwAAAACBQAAAAVvd25lcgUAAAADbmlsAgAAAAFfAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEAAAADa2V5CQEAAAALdmFsdWVPckVsc2UAAAACCQAEHQAAAAIFAAAABHRoaXMFAAAAA2tleQIAAAAAAQAAAA5nZXROdW1iZXJCeUtleQAAAAEAAAADa2V5CQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAAA2tleQAAAAAAAAAAAAEAAAAbZ2V0UmV3YXJkQ29uZmlnSW5pdGlhbFNoYXJlAAAAAQAAAAVvd25lcgkAASwAAAACBQAAAAVvd25lcgIAAAANX2luaXRpYWxTaGFyZQEAAAATZ2V0UmV3YXJkc0NvbmZpZ0tleQAAAAMAAAAFb3duZXIAAAAFc2hhcmUAAAAIcmVjZWl2ZXIJAAS5AAAAAgkABEwAAAACAgAAAA1zdGFraW5nY29uZmlnCQAETAAAAAIFAAAABW93bmVyCQAETAAAAAIJAAGkAAAAAQUAAAAFc2hhcmUJAARMAAAAAgUAAAAIcmVjZWl2ZXIFAAAAA25pbAIAAAABXwEAAAAOZ2V0VXNlckJhbGFuY2UAAAACAAAABW93bmVyAAAAB2Fzc2V0SWQJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABFnZXRVc2VyQmFsYW5jZUtleQAAAAIFAAAABW93bmVyBQAAAAdhc3NldElkAQAAABpnZXRWYWxpZFN0YWtpbmdBc3NldE9yRmFpbAAAAAIAAAALc3Rha2luZ1R5cGUAAAAHYXNzZXRJZAMDCQAAAAAAAAIFAAAAC3N0YWtpbmdUeXBlBQAAAAhVU0ROVFlQRQkBAAAAAiE9AAAAAgUAAAAHYXNzZXRJZAUAAAAPbmV1dHJpbm9Bc3NldElkBwkAAAIAAAABAgAAABFjYW4gdXNlIFVTRE4gb25seQMDCQAAAAAAAAIFAAAAC3N0YWtpbmdUeXBlBQAAAAhOU0JUVFlQRQkBAAAAAiE9AAAAAgUAAAAHYXNzZXRJZAUAAAALbnNidEFzc2V0SWQHCQAAAgAAAAECAAAAEWNhbiB1c2UgTlNCVCBvbmx5AwMJAQAAAAIhPQAAAAIFAAAAC3N0YWtpbmdUeXBlBQAAAAhVU0ROVFlQRQkBAAAAAiE9AAAAAgUAAAALc3Rha2luZ1R5cGUFAAAACE5TQlRUWVBFBwkAAAIAAAABCQABLAAAAAICAAAAGXVuc3VwcG9ydGVkIHN0YWtpbmcgdHlwZSAFAAAAC3N0YWtpbmdUeXBlBQAAAAdhc3NldElkAQAAABpnZXRDdXJyZW50UmV3YXJkc0NvbmZpZ0tleQAAAAEAAAAFb3duZXIJAAEsAAAAAgIAAAAWc3Rha2luZ2NvbmZpZ19jdXJyZW50XwUAAAAFb3duZXIBAAAAGGdldFJld2FyZHNDb25maWdTdGFydEtleQAAAAIAAAAJY29uZmlnS2V5AAAAB2lzU3RhcnQJAAEsAAAAAgUAAAAJY29uZmlnS2V5AwUAAAAHaXNTdGFydAIAAAAGX3N0YXJ0AgAAAARfZW5kAQAAABVnZXRDb250cmFjdEJhbGFuY2VLZXkAAAABAAAAB2Fzc2V0SWQJAAEsAAAAAgkAASwAAAACBQAAAApCYWxhbmNlS2V5AgAAAAFfBQAAAAdhc3NldElkAQAAABJnZXRDb250cmFjdEJhbGFuY2UAAAABAAAAB2Fzc2V0SWQJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABVnZXRDb250cmFjdEJhbGFuY2VLZXkAAAABBQAAAAdhc3NldElkAQAAAA5pbnRlcm5hbFVubG9jawAAAAQAAAALc3Rha2luZ1R5cGUAAAABaQAAAAx1bmxvY2tBbW91bnQAAAAMYXNzZXRJZFBhcmFtBAAAAAdhY2NvdW50CQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAAHYXNzZXRJZAkBAAAAGmdldFZhbGlkU3Rha2luZ0Fzc2V0T3JGYWlsAAAAAgUAAAALc3Rha2luZ1R5cGUJAAJZAAAAAQUAAAAMYXNzZXRJZFBhcmFtBAAAAA1hc3NldElkU3RyaW5nCQACWAAAAAEFAAAAB2Fzc2V0SWQEAAAAB2JhbGFuY2UJAABlAAAAAgkBAAAADmdldFVzZXJCYWxhbmNlAAAAAgUAAAAHYWNjb3VudAUAAAANYXNzZXRJZFN0cmluZwUAAAAMdW5sb2NrQW1vdW50AwkAAGYAAAACAAAAAAAAAAAABQAAAAdiYWxhbmNlCQAAAgAAAAECAAAADmludmFsaWQgYW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAVZ2V0Q29udHJhY3RCYWxhbmNlS2V5AAAAAQUAAAANYXNzZXRJZFN0cmluZwkAAGUAAAACCQEAAAASZ2V0Q29udHJhY3RCYWxhbmNlAAAAAQUAAAANYXNzZXRJZFN0cmluZwUAAAAMdW5sb2NrQW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAARZ2V0VXNlckJhbGFuY2VLZXkAAAACBQAAAAdhY2NvdW50BQAAAA1hc3NldElkU3RyaW5nBQAAAAdiYWxhbmNlCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEFAAAAB2FjY291bnQFAAAADHVubG9ja0Ftb3VudAUAAAAHYXNzZXRJZAUAAAADbmlsAQAAABRpbnRlcm5hbExvY2tOZXV0cmlubwAAAAQAAAALc3Rha2luZ1R5cGUAAAABaQAAAAhyZWNlaXZlcgAAAAVzaGFyZQQAAAADcG10CQEAAAAFdmFsdWUAAAABCQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAABAAAAAdhc3NldElkCQEAAAAaZ2V0VmFsaWRTdGFraW5nQXNzZXRPckZhaWwAAAACBQAAAAtzdGFraW5nVHlwZQkBAAAABXZhbHVlAAAAAQgFAAAAA3BtdAAAAAdhc3NldElkAwkBAAAAASEAAAABCQEAAAAJaXNEZWZpbmVkAAAAAQkABCYAAAABBQAAAAhyZWNlaXZlcgkAAAIAAAABCQABLAAAAAICAAAAF0ludmFsaWQgYWRkcmVzcyBmb3JtYXQgBQAAAAhyZWNlaXZlcgMJAABmAAAAAgUAAAAFc2hhcmUAAAAAAAAAAGQJAAACAAAAAQIAAAAwc3Rha2luZyByZXdhcmRzIHNoYXJlIGNhbm5vdCBiZSBoaWdoZXIgdGhhbiAxMDAlAwkAAGYAAAACAAAAAAAAAAABBQAAAAVzaGFyZQkAAAIAAAABAgAAAC1zdGFraW5nIHJld2FyZHMgc2hhcmUgY2Fubm90IGJlIGxvd2VyIHRoYW4gMSUEAAAAB2FjY291bnQJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBAAAAA1hc3NldElkU3RyaW5nCQACWAAAAAEFAAAAB2Fzc2V0SWQEAAAADWN1cnJlbnRDb25maWcJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAABpnZXRDdXJyZW50UmV3YXJkc0NvbmZpZ0tleQAAAAEFAAAAB2FjY291bnQEAAAAC2NvcnJlY3REYXRhAwkBAAAAAiE9AAAAAgUAAAANY3VycmVudENvbmZpZwIAAAAABAAAABFjdXJyZW50Q29uZmlnRGF0YQkABLUAAAACBQAAAA1jdXJyZW50Q29uZmlnAgAAAAFfBAAAAAljdXJyU2hhcmUJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAABFjdXJyZW50Q29uZmlnRGF0YQAAAAAAAAAAAgQAAAAMY3VyclJlY2VpdmVyCQABkQAAAAIFAAAAEWN1cnJlbnRDb25maWdEYXRhAAAAAAAAAAADBAAAABdub3RNaWdyYXRlZEluaXRpYWxTaGFyZQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAG2dldFJld2FyZENvbmZpZ0luaXRpYWxTaGFyZQAAAAEFAAAAB2FjY291bnQEAAAAEmFjdHVhbEluaXRpYWxTaGFyZQMJAAAAAAAAAgUAAAAXbm90TWlncmF0ZWRJbml0aWFsU2hhcmUAAAAAAAAAAAAFAAAACWN1cnJTaGFyZQUAAAAXbm90TWlncmF0ZWRJbml0aWFsU2hhcmUEAAAACG5ld1NoYXJlAwMJAABmAAAAAgUAAAASYWN0dWFsSW5pdGlhbFNoYXJlBQAAAAVzaGFyZQYJAQAAAAIhPQAAAAIFAAAADGN1cnJSZWNlaXZlcgUAAAAIcmVjZWl2ZXIFAAAAEmFjdHVhbEluaXRpYWxTaGFyZQUAAAAFc2hhcmUJAARMAAAAAgkAAaQAAAABBQAAABJhY3R1YWxJbml0aWFsU2hhcmUJAARMAAAAAgkAAaQAAAABBQAAAAhuZXdTaGFyZQkABEwAAAACBQAAAAxjdXJyUmVjZWl2ZXIFAAAAA25pbAkABEwAAAACCQABpAAAAAEFAAAABXNoYXJlCQAETAAAAAIJAAGkAAAAAQUAAAAFc2hhcmUJAARMAAAAAgUAAAAIcmVjZWl2ZXIFAAAAA25pbAQAAAATY29ycmVjdEluaXRpYWxTaGFyZQkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAC2NvcnJlY3REYXRhAAAAAAAAAAAABAAAAAxjb3JyZWN0U2hhcmUJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAAtjb3JyZWN0RGF0YQAAAAAAAAAAAQQAAAAPY29ycmVjdFJlY2VpdmVyCQABkQAAAAIFAAAAC2NvcnJlY3REYXRhAAAAAAAAAAACBAAAABBuZXdDdXJyZW50Q29uZmlnCQEAAAATZ2V0UmV3YXJkc0NvbmZpZ0tleQAAAAMFAAAAB2FjY291bnQFAAAADGNvcnJlY3RTaGFyZQUAAAAPY29ycmVjdFJlY2VpdmVyBAAAAAtpc05ld0NvbmZpZwkBAAAAASEAAAABCQAAAAAAAAIFAAAADWN1cnJlbnRDb25maWcFAAAAEG5ld0N1cnJlbnRDb25maWcEAAAAA2VuZAMFAAAAC2lzTmV3Q29uZmlnBQAAAAZoZWlnaHQAAAAAAAAAAAAEAAAABXN0YXJ0AwUAAAALaXNOZXdDb25maWcFAAAABmhlaWdodAkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAGGdldFJld2FyZHNDb25maWdTdGFydEtleQAAAAIFAAAAEG5ld0N1cnJlbnRDb25maWcGCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAVZ2V0Q29udHJhY3RCYWxhbmNlS2V5AAAAAQUAAAANYXNzZXRJZFN0cmluZwkAAGQAAAACCQEAAAASZ2V0Q29udHJhY3RCYWxhbmNlAAAAAQUAAAANYXNzZXRJZFN0cmluZwgFAAAAA3BtdAAAAAZhbW91bnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABFnZXRVc2VyQmFsYW5jZUtleQAAAAIFAAAAB2FjY291bnQFAAAADWFzc2V0SWRTdHJpbmcJAABkAAAAAgkBAAAADmdldFVzZXJCYWxhbmNlAAAAAgUAAAAHYWNjb3VudAUAAAANYXNzZXRJZFN0cmluZwgFAAAAA3BtdAAAAAZhbW91bnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABhnZXRSZXdhcmRzQ29uZmlnU3RhcnRLZXkAAAACBQAAAA1jdXJyZW50Q29uZmlnBwUAAAADZW5kCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAYZ2V0UmV3YXJkc0NvbmZpZ1N0YXJ0S2V5AAAAAgUAAAAQbmV3Q3VycmVudENvbmZpZwYFAAAABXN0YXJ0CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAbZ2V0UmV3YXJkQ29uZmlnSW5pdGlhbFNoYXJlAAAAAQUAAAAHYWNjb3VudAUAAAATY29ycmVjdEluaXRpYWxTaGFyZQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAaZ2V0Q3VycmVudFJld2FyZHNDb25maWdLZXkAAAABBQAAAAdhY2NvdW50BQAAABBuZXdDdXJyZW50Q29uZmlnBQAAAANuaWwAAAACAAAAAWkBAAAADGxvY2tOZXV0cmlubwAAAAAJAQAAABRpbnRlcm5hbExvY2tOZXV0cmlubwAAAAQFAAAACFVTRE5UWVBFBQAAAAFpCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgAAAAAAAAAAZAAAAAFpAQAAAAhsb2NrTnNidAAAAAAJAQAAABRpbnRlcm5hbExvY2tOZXV0cmlubwAAAAQFAAAACE5TQlRUWVBFBQAAAAFpCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgAAAAAAAAAAZAAAAADDy1Dd", "height": 1464909, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 58zjRREcNt9CTGG6p5JLrq8AniaXRtnFGsfWyVtAt6Gz Next: BtqRat7zqcEVN4TbxMheQkMMncrG3sdEy3LnM8vnanzL Diff:
Old | New | Differences | |
---|---|---|---|
117 | 117 | } | |
118 | 118 | ||
119 | 119 | ||
120 | + | @Callable(A) | |
121 | + | func lockNeutrino () = G(d, A, toString(A.caller), 100) | |
122 | + | ||
123 | + | ||
124 | + | ||
125 | + | @Callable(A) | |
126 | + | func lockNsbt () = G(e, A, toString(A.caller), 100) | |
127 | + | ||
120 | 128 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 4 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let a = base58'8UrfDVd5GreeUwm7uPk7eYz1eMv376kzR52C6sANPkwS' | |
5 | 5 | ||
6 | 6 | let b = base58'36mg8NZTaFRDygiVwb8uBnLR51hetJruUCZcxhaVcHj9' | |
7 | 7 | ||
8 | 8 | let c = base58'3N6q7sCGSSLBUXDdjBdYGTJbZGZfhhh8cNg' | |
9 | 9 | ||
10 | 10 | let d = "USDN" | |
11 | 11 | ||
12 | 12 | let e = "NSBT" | |
13 | 13 | ||
14 | 14 | let f = "rpd_balance" | |
15 | 15 | ||
16 | 16 | func g (h,i) = makeString([f, i, h], "_") | |
17 | 17 | ||
18 | 18 | ||
19 | 19 | func j (k) = valueOrElse(getString(this, k), "") | |
20 | 20 | ||
21 | 21 | ||
22 | 22 | func l (k) = valueOrElse(getInteger(this, k), 0) | |
23 | 23 | ||
24 | 24 | ||
25 | 25 | func m (h) = (h + "_initialShare") | |
26 | 26 | ||
27 | 27 | ||
28 | 28 | func n (h,o,p) = makeString(["stakingconfig", h, toString(o), p], "_") | |
29 | 29 | ||
30 | 30 | ||
31 | 31 | func q (h,i) = l(g(h, i)) | |
32 | 32 | ||
33 | 33 | ||
34 | 34 | func r (s,i) = if (if ((s == d)) | |
35 | 35 | then (i != a) | |
36 | 36 | else false) | |
37 | 37 | then throw("can use USDN only") | |
38 | 38 | else if (if ((s == e)) | |
39 | 39 | then (i != b) | |
40 | 40 | else false) | |
41 | 41 | then throw("can use NSBT only") | |
42 | 42 | else if (if ((s != d)) | |
43 | 43 | then (s != e) | |
44 | 44 | else false) | |
45 | 45 | then throw(("unsupported staking type " + s)) | |
46 | 46 | else i | |
47 | 47 | ||
48 | 48 | ||
49 | 49 | func t (h) = ("stakingconfig_current_" + h) | |
50 | 50 | ||
51 | 51 | ||
52 | 52 | func u (v,w) = (v + (if (w) | |
53 | 53 | then "_start" | |
54 | 54 | else "_end")) | |
55 | 55 | ||
56 | 56 | ||
57 | 57 | func x (i) = ((f + "_") + i) | |
58 | 58 | ||
59 | 59 | ||
60 | 60 | func y (i) = l(x(i)) | |
61 | 61 | ||
62 | 62 | ||
63 | 63 | func z (s,A,B,C) = { | |
64 | 64 | let D = toString(A.caller) | |
65 | 65 | let i = r(s, fromBase58String(C)) | |
66 | 66 | let E = toBase58String(i) | |
67 | 67 | let F = (q(D, E) - B) | |
68 | 68 | if ((0 > F)) | |
69 | 69 | then throw("invalid amount") | |
70 | 70 | else [IntegerEntry(x(E), (y(E) - B)), IntegerEntry(g(D, E), F), ScriptTransfer(addressFromStringValue(D), B, i)] | |
71 | 71 | } | |
72 | 72 | ||
73 | 73 | ||
74 | 74 | func G (s,A,p,o) = { | |
75 | 75 | let H = value(A.payments[0]) | |
76 | 76 | let i = r(s, value(H.assetId)) | |
77 | 77 | if (!(isDefined(addressFromString(p)))) | |
78 | 78 | then throw(("Invalid address format " + p)) | |
79 | 79 | else if ((o > 100)) | |
80 | 80 | then throw("staking rewards share cannot be higher than 100%") | |
81 | 81 | else if ((1 > o)) | |
82 | 82 | then throw("staking rewards share cannot be lower than 1%") | |
83 | 83 | else { | |
84 | 84 | let D = toString(A.caller) | |
85 | 85 | let E = toBase58String(i) | |
86 | 86 | let I = j(t(D)) | |
87 | 87 | let J = if ((I != "")) | |
88 | 88 | then { | |
89 | 89 | let K = split(I, "_") | |
90 | 90 | let L = parseIntValue(K[2]) | |
91 | 91 | let M = K[3] | |
92 | 92 | let N = l(m(D)) | |
93 | 93 | let O = if ((N == 0)) | |
94 | 94 | then L | |
95 | 95 | else N | |
96 | 96 | let P = if (if ((O > o)) | |
97 | 97 | then true | |
98 | 98 | else (M != p)) | |
99 | 99 | then O | |
100 | 100 | else o | |
101 | 101 | [toString(O), toString(P), M] | |
102 | 102 | } | |
103 | 103 | else [toString(o), toString(o), p] | |
104 | 104 | let Q = parseIntValue(J[0]) | |
105 | 105 | let R = parseIntValue(J[1]) | |
106 | 106 | let S = J[2] | |
107 | 107 | let T = n(D, R, S) | |
108 | 108 | let U = !((I == T)) | |
109 | 109 | let V = if (U) | |
110 | 110 | then height | |
111 | 111 | else 0 | |
112 | 112 | let W = if (U) | |
113 | 113 | then height | |
114 | 114 | else l(u(T, true)) | |
115 | 115 | [IntegerEntry(x(E), (y(E) + H.amount)), IntegerEntry(g(D, E), (q(D, E) + H.amount)), IntegerEntry(u(I, false), V), IntegerEntry(u(T, true), W), IntegerEntry(m(D), Q), StringEntry(t(D), T)] | |
116 | 116 | } | |
117 | 117 | } | |
118 | 118 | ||
119 | 119 | ||
120 | + | @Callable(A) | |
121 | + | func lockNeutrino () = G(d, A, toString(A.caller), 100) | |
122 | + | ||
123 | + | ||
124 | + | ||
125 | + | @Callable(A) | |
126 | + | func lockNsbt () = G(e, A, toString(A.caller), 100) | |
127 | + | ||
120 | 128 |
github/deemru/w8io/c3f4982 27.78 ms ◑