tx · AfNsctNwArHFvjwHPEs8h6hDQbQarCgoGgEeTc2rbHUy 3Mt7wmkWeioUsmfaBu6PsNq9j9SUs7f9qrs: -0.04000000 Waves 2022.08.23 14:58 [2197101] smart account 3Mt7wmkWeioUsmfaBu6PsNq9j9SUs7f9qrs > SELF 0.00000000 Waves
{ "type": 13, "id": "AfNsctNwArHFvjwHPEs8h6hDQbQarCgoGgEeTc2rbHUy", "fee": 4000000, "feeAssetId": null, "timestamp": 1661256051913, "version": 1, "sender": "3Mt7wmkWeioUsmfaBu6PsNq9j9SUs7f9qrs", "senderPublicKey": "BLEvt3fBtK9gbCuj3VA7nHviqe3TPkRrF9KL6ZaHGgr4", "proofs": [ "2bYJkn4FrVZ8rnrxRmQuAW2E8pN1174RvmCrfJHAHv14UtwaaWvshsYL918UgK8ei41EcBCzZ5R4ksWz246Kw2eN" ], "script": "base64:BgIQCAISBQoDCAEBEgASAwoBCC8AC3JldmlzaW9uTnVtAgAABkVVTEVSOADWic+BAQAFTVVMVDYAwIQ9AAZNVUxUWDYJALYCAQDAhD0ABU1VTFQ4AIDC1y8ABk1VTFRYOAkAtgIBAIDC1y8ABk1VTFQxMgCAoJSljR0ABk1VTFQxOAkAtgIBAICAkLu61q3wDQADU0VQAgJfXwAHV0FWRVNJRAkA2QQBAgVXQVZFUwEPZ2V0U3RyaW5nT3JGYWlsAgdhZGRyZXNzA2tleQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFB2FkZHJlc3MFA2tleQkAuQkCCQDMCAICCm1hbmRhdG9yeSAJAMwIAgkApQgBBQdhZGRyZXNzCQDMCAICAS4JAMwIAgUDa2V5CQDMCAICDyBpcyBub3QgZGVmaW5lZAUDbmlsAgABDGdldEludE9yRmFpbAIHYWRkcmVzcwNrZXkJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBQdhZGRyZXNzBQNrZXkJALkJAgkAzAgCAgptYW5kYXRvcnkgCQDMCAIJAKUIAQUHYWRkcmVzcwkAzAgCAgEuCQDMCAIFA2tleQkAzAgCAg8gaXMgbm90IGRlZmluZWQFA25pbAIAAQ1nZXRCb29sT3JGYWlsAgdhZGRyZXNzA2tleQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCbCAIFB2FkZHJlc3MFA2tleQkAuQkCCQDMCAICCm1hbmRhdG9yeSAJAMwIAgkApQgBBQdhZGRyZXNzCQDMCAICAS4JAMwIAgUDa2V5CQDMCAICDyBpcyBub3QgZGVmaW5lZAUDbmlsAgABFmNvbnZlcnROZXV0cmlub1RvV2F2ZXMCBmFtb3VudAVwcmljZQkAawMFBmFtb3VudAUFTVVMVDgFBXByaWNlARZjb252ZXJ0V2F2ZXNUb05ldXRyaW5vAgZhbW91bnQFcHJpY2UJAGsDBQZhbW91bnQFBXByaWNlBQVNVUxUOAEJYXNBbnlMaXN0AQN2YWwEByRtYXRjaDAFA3ZhbAMJAAECBQckbWF0Y2gwAglMaXN0W0FueV0ECnZhbEFueUxpc3QFByRtYXRjaDAFCnZhbEFueUxpc3QJAAIBAhtmYWlsIHRvIGNhc3QgaW50byBMaXN0W0FueV0BBWFzSW50AQN2YWwEByRtYXRjaDAFA3ZhbAMJAAECBQckbWF0Y2gwAgNJbnQEBnZhbEludAUHJG1hdGNoMAUGdmFsSW50CQACAQIVZmFpbCB0byBjYXN0IGludG8gSW50AQhhc1N0cmluZwEDdmFsBAckbWF0Y2gwBQN2YWwDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAZ2YWxTdHIFByRtYXRjaDAFBnZhbFN0cgkAAgECGGZhaWwgdG8gY2FzdCBpbnRvIFN0cmluZwEMYXNUdXBsZTJJbnRzAQN2YWwEByRtYXRjaDAFA3ZhbAMJAAECBQckbWF0Y2gwAgooSW50LCBJbnQpBAF2BQckbWF0Y2gwBQF2CQACAQIdZmFpbCB0byBjYXN0IGludG8gVHVwbGUyIGludHMBEmFzU3dhcFBhcmFtc1NUUlVDVAEDdmFsBAckbWF0Y2gwBQN2YWwDCQABAgUHJG1hdGNoMAIjKEludCwgSW50LCBJbnQsIEludCwgSW50LCBJbnQsIEludCkEBnN0cnVjdAUHJG1hdGNoMAUGc3RydWN0CQACAQIiZmFpbCB0byBjYXN0IGludG8gU3dhcFBhcmFtc1NUUlVDVAELdG9UaW1lc3RhbXABBXN0YXJ0AwkAZgIAAAUFc3RhcnQA////////////AQQHJG1hdGNoMAkA7QcBBQVzdGFydAMJAAECBQckbWF0Y2gwAglCbG9ja0luZm8EBWJsb2NrBQckbWF0Y2gwCAUFYmxvY2sJdGltZXN0YW1wAP///////////wEBBXRvWDE4AgdvcmlnVmFsDW9yaWdTY2FsZU11bHQJALwCAwkAtgIBBQdvcmlnVmFsBQZNVUxUMTgJALYCAQUNb3JpZ1NjYWxlTXVsdAEHZnJvbVgxOAIDdmFsD3Jlc3VsdFNjYWxlTXVsdAkAoAMBCQC8AgMFA3ZhbAkAtgIBBQ9yZXN1bHRTY2FsZU11bHQFBk1VTFQxOAAZSWR4Q29udHJvbENmZ05ldXRyaW5vRGFwcAABABhJZHhDb250cm9sQ2ZnQXVjdGlvbkRhcHAAAgAUSWR4Q29udHJvbENmZ1JwZERhcHAAAwAVSWR4Q29udHJvbENmZ01hdGhEYXBwAAQAHElkeENvbnRyb2xDZmdMaXF1aWRhdGlvbkRhcHAABQAVSWR4Q29udHJvbENmZ1Jlc3REYXBwAAYAHUlkeENvbnRyb2xDZmdOb2RlUmVnaXN0cnlEYXBwAAcAHElkeENvbnRyb2xDZmdOc2J0U3Rha2luZ0RhcHAACAAZSWR4Q29udHJvbENmZ01lZGlhdG9yRGFwcAAJABxJZHhDb250cm9sQ2ZnU3VyZlN0YWtpbmdEYXBwAAoAIElkeENvbnRyb2xDZmdHbnNidENvbnRyb2xsZXJEYXBwAAsBEWtleUNvbnRyb2xBZGRyZXNzAAIcJXMlc19fY29uZmlnX19jb250cm9sQWRkcmVzcwENa2V5Q29udHJvbENmZwACESVzX19jb250cm9sQ29uZmlnARRyZWFkQ29udHJvbENmZ09yRmFpbAEHY29udHJvbAkAtQkCCQEPZ2V0U3RyaW5nT3JGYWlsAgUHY29udHJvbAkBDWtleUNvbnRyb2xDZmcABQNTRVABGGdldENvbnRyYWN0QWRkcmVzc09yRmFpbAIKY29udHJvbENmZwNpZHgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIFCmNvbnRyb2xDZmcFA2lkeAkArAICAi1Db250cm9sIGNmZyBkb2Vzbid0IGNvbnRhaW4gYWRkcmVzcyBhdCBpbmRleCAJAKQDAQUDaWR4AA9jb250cm9sQ29udHJhY3QJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwkBEWtleUNvbnRyb2xBZGRyZXNzAAIjM040TlM3ZDRKbzlhNkYxNExpRlVLS1lWZFVra2YyZVA0WngACmNvbnRyb2xDZmcJARRyZWFkQ29udHJvbENmZ09yRmFpbAEFD2NvbnRyb2xDb250cmFjdAAMbWF0aENvbnRyYWN0CQEYZ2V0Q29udHJhY3RBZGRyZXNzT3JGYWlsAgUKY29udHJvbENmZwUVSWR4Q29udHJvbENmZ01hdGhEYXBwABBuZXV0cmlub0NvbnRyYWN0CQEYZ2V0Q29udHJhY3RBZGRyZXNzT3JGYWlsAgUKY29udHJvbENmZwUZSWR4Q29udHJvbENmZ05ldXRyaW5vRGFwcAAPYXVjdGlvbkNvbnRyYWN0CQEYZ2V0Q29udHJhY3RBZGRyZXNzT3JGYWlsAgUKY29udHJvbENmZwUYSWR4Q29udHJvbENmZ0F1Y3Rpb25EYXBwABNsaXF1aWRhdGlvbkNvbnRyYWN0CQEYZ2V0Q29udHJhY3RBZGRyZXNzT3JGYWlsAgUKY29udHJvbENmZwUcSWR4Q29udHJvbENmZ0xpcXVpZGF0aW9uRGFwcAALcnBkQ29udHJhY3QJARhnZXRDb250cmFjdEFkZHJlc3NPckZhaWwCBQpjb250cm9sQ2ZnBRRJZHhDb250cm9sQ2ZnUnBkRGFwcAATbnNidFN0YWtpbmdDb250cmFjdAkBGGdldENvbnRyYWN0QWRkcmVzc09yRmFpbAIFCmNvbnRyb2xDZmcFHElkeENvbnRyb2xDZmdOc2J0U3Rha2luZ0RhcHAAE3N1cmZTdGFraW5nQ29udHJhY3QJARhnZXRDb250cmFjdEFkZHJlc3NPckZhaWwCBQpjb250cm9sQ2ZnBRxJZHhDb250cm9sQ2ZnU3VyZlN0YWtpbmdEYXBwAwFpARRnbnNidEluZm9TWVNSRUFET05MWQMVdXNlckFkZHJlc3NTdHJPckVtcHR5CG5zYnREaWZmCHN1cmZEaWZmBAhuc2J0RGF0YQkBCWFzQW55TGlzdAEJAPwHBAUTbnNidFN0YWtpbmdDb250cmFjdAIWbnNidFN0YWtpbmdTWVNSRUFET05MWQkAzAgCBRV1c2VyQWRkcmVzc1N0ck9yRW1wdHkJAMwIAgUIbnNidERpZmYFA25pbAUDbmlsBAhuc2J0VXNlcgkBBWFzSW50AQkAkQMCBQhuc2J0RGF0YQAABAluc2J0VG90YWwJAQVhc0ludAEJAJEDAgUIbnNidERhdGEAAQQRZ05zYnRGcm9tTnNidFVzZXIFCG5zYnRVc2VyBBJnTnNidEZyb21Oc2J0VG90YWwFCW5zYnRUb3RhbAQIc3VyZkRhdGEJAQlhc0FueUxpc3QBCQD8BwQFE3N1cmZTdGFraW5nQ29udHJhY3QCFnN1cmZTdGFraW5nU1lTUkVBRE9OTFkJAMwIAgUVdXNlckFkZHJlc3NTdHJPckVtcHR5CQDMCAIFCHN1cmZEaWZmBQNuaWwFA25pbAQIc3VyZlVzZXIJAQVhc0ludAEJAJEDAgUIc3VyZkRhdGEAAAQJc3VyZlRvdGFsCQEFYXNJbnQBCQCRAwIFCHN1cmZEYXRhAAEEEWdOc2J0RnJvbVN1cmZVc2VyCQEFYXNJbnQBCQCRAwIFCHN1cmZEYXRhAAIEEmdOc2J0RnJvbVN1cmZUb3RhbAkBBWFzSW50AQkAkQMCBQhzdXJmRGF0YQADBBF2cEVmZmVjdGl2ZUhlaWdodAkBBWFzSW50AQkAkQMCBQhzdXJmRGF0YQAEBBR2cEVmZmVjdGl2ZUhlaWdodE5FVwkBBWFzSW50AQkAkQMCBQhzdXJmRGF0YQAFBAlnTnNidFVzZXIJAGQCBRFnTnNidEZyb21Oc2J0VXNlcgURZ05zYnRGcm9tU3VyZlVzZXIECmdOc2J0VG90YWwJAGQCBRJnTnNidEZyb21Oc2J0VG90YWwFEmdOc2J0RnJvbVN1cmZUb3RhbAkAlAoCBQNuaWwJAMwIAgUJZ05zYnRVc2VyCQDMCAIFCmdOc2J0VG90YWwJAMwIAgkAzAgCBQhuc2J0VXNlcgkAzAgCBQluc2J0VG90YWwJAMwIAgURZ05zYnRGcm9tTnNidFVzZXIJAMwIAgUSZ05zYnRGcm9tTnNidFRvdGFsBQNuaWwJAMwIAgkAzAgCBQhzdXJmVXNlcgkAzAgCBQlzdXJmVG90YWwJAMwIAgURZ05zYnRGcm9tU3VyZlVzZXIJAMwIAgUSZ05zYnRGcm9tU3VyZlRvdGFsBQNuaWwJAMwIAgURdnBFZmZlY3RpdmVIZWlnaHQJAMwIAgUUdnBFZmZlY3RpdmVIZWlnaHRORVcFA25pbAFpAQxjbGFpbVJld2FyZHMABAduc2J0SW52CQD8BwQFE25zYnRTdGFraW5nQ29udHJhY3QCGmNsYWltUmV3YXJkc0J5T3JpZ2luQ2FsbGVyBQNuaWwFA25pbAMJAAACBQduc2J0SW52BQduc2J0SW52BAdzdXJmSW52CQD8BwQFE3N1cmZTdGFraW5nQ29udHJhY3QCGmNsYWltUmV3YXJkc0J5T3JpZ2luQ2FsbGVyBQNuaWwFA25pbAMJAAACBQdzdXJmSW52BQdzdXJmSW52BQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEXZ25zYnRSZXdhcmRzU1lTUkVBRE9OTFkBFXVzZXJBZGRyZXNzU3RyT3JFbXB0eQQNbnNidFJld2FyZFN0cgkBCGFzU3RyaW5nAQkA/AcEBRNuc2J0U3Rha2luZ0NvbnRyYWN0Ahh1bmNsYWltZWRSZXdhcmRzUkVBRE9OTFkJAMwIAgUVdXNlckFkZHJlc3NTdHJPckVtcHR5BQNuaWwFA25pbAQNc3VyZlJld2FyZFN0cgkBCGFzU3RyaW5nAQkA/AcEBRNzdXJmU3Rha2luZ0NvbnRyYWN0Ahh1bmNsYWltZWRSZXdhcmRzUkVBRE9OTFkJAMwIAgUVdXNlckFkZHJlc3NTdHJPckVtcHR5BQNuaWwFA25pbAkAlAoCBQNuaWwJAMwIAgUNbnNidFJld2FyZFN0cgkAzAgCBQ1zdXJmUmV3YXJkU3RyBQNuaWwAnW86tQ==", "chainId": 84, "height": 2197101, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: GLWmDACcD6XHBL4R2ZSWNp2XYH2Fi1BoYn9KbYAFwPHq Next: DfzCmYxhQwbE8Zv7XvaL5ooU4YszUcfFdeiM5XuqJbrK Diff:
Old | New | Differences | |
---|---|---|---|
21 | 21 | ||
22 | 22 | let j = fromBase58String("WAVES") | |
23 | 23 | ||
24 | - | func k () = " | |
24 | + | func k (l,m) = valueOrErrorMessage(getString(l, m), makeString(["mandatory ", toString(l), ".", m, " is not defined"], "")) | |
25 | 25 | ||
26 | 26 | ||
27 | - | func | |
27 | + | func n (l,m) = valueOrErrorMessage(getInteger(l, m), makeString(["mandatory ", toString(l), ".", m, " is not defined"], "")) | |
28 | 28 | ||
29 | 29 | ||
30 | - | func o (m | |
30 | + | func o (l,m) = valueOrErrorMessage(getBoolean(l, m), makeString(["mandatory ", toString(l), ".", m, " is not defined"], "")) | |
31 | 31 | ||
32 | 32 | ||
33 | - | func p ( | |
33 | + | func p (q,r) = fraction(q, e, r) | |
34 | 34 | ||
35 | 35 | ||
36 | - | func | |
36 | + | func s (q,r) = fraction(q, r, e) | |
37 | 37 | ||
38 | 38 | ||
39 | - | func t (r,s) = fraction(r, s, e) | |
40 | - | ||
41 | - | ||
42 | - | func u (v) = { | |
43 | - | let w = v | |
44 | - | if ($isInstanceOf(w, "List[Any]")) | |
39 | + | func t (u) = { | |
40 | + | let v = u | |
41 | + | if ($isInstanceOf(v, "List[Any]")) | |
45 | 42 | then { | |
46 | - | let | |
47 | - | | |
43 | + | let w = v | |
44 | + | w | |
48 | 45 | } | |
49 | 46 | else throw("fail to cast into List[Any]") | |
50 | 47 | } | |
51 | 48 | ||
52 | 49 | ||
53 | - | func | |
54 | - | let | |
55 | - | if ($isInstanceOf( | |
50 | + | func x (u) = { | |
51 | + | let v = u | |
52 | + | if ($isInstanceOf(v, "Int")) | |
56 | 53 | then { | |
57 | - | let | |
58 | - | | |
54 | + | let y = v | |
55 | + | y | |
59 | 56 | } | |
60 | 57 | else throw("fail to cast into Int") | |
61 | 58 | } | |
62 | 59 | ||
63 | 60 | ||
64 | - | func | |
65 | - | let | |
66 | - | if ($isInstanceOf( | |
61 | + | func z (u) = { | |
62 | + | let v = u | |
63 | + | if ($isInstanceOf(v, "String")) | |
67 | 64 | then { | |
68 | - | let | |
69 | - | | |
65 | + | let A = v | |
66 | + | A | |
70 | 67 | } | |
71 | 68 | else throw("fail to cast into String") | |
72 | 69 | } | |
73 | 70 | ||
74 | 71 | ||
75 | - | func | |
76 | - | let | |
77 | - | if ($isInstanceOf( | |
72 | + | func B (u) = { | |
73 | + | let v = u | |
74 | + | if ($isInstanceOf(v, "(Int, Int)")) | |
78 | 75 | then { | |
79 | - | let | |
80 | - | | |
76 | + | let C = v | |
77 | + | C | |
81 | 78 | } | |
82 | 79 | else throw("fail to cast into Tuple2 ints") | |
83 | 80 | } | |
84 | 81 | ||
85 | 82 | ||
86 | - | func | |
87 | - | let | |
88 | - | if ($isInstanceOf( | |
83 | + | func D (u) = { | |
84 | + | let v = u | |
85 | + | if ($isInstanceOf(v, "(Int, Int, Int, Int, Int, Int, Int)")) | |
89 | 86 | then { | |
90 | - | let | |
91 | - | | |
87 | + | let E = v | |
88 | + | E | |
92 | 89 | } | |
93 | - | else throw("fail to cast into | |
90 | + | else throw("fail to cast into SwapParamsSTRUCT") | |
94 | 91 | } | |
95 | 92 | ||
96 | 93 | ||
97 | - | func | |
94 | + | func F (G) = if ((0 > G)) | |
98 | 95 | then -1 | |
99 | 96 | else { | |
100 | - | let | |
101 | - | if ($isInstanceOf( | |
97 | + | let v = blockInfoByHeight(G) | |
98 | + | if ($isInstanceOf(v, "BlockInfo")) | |
102 | 99 | then { | |
103 | - | let | |
104 | - | | |
100 | + | let H = v | |
101 | + | H.timestamp | |
105 | 102 | } | |
106 | 103 | else -1 | |
107 | 104 | } | |
108 | 105 | ||
109 | 106 | ||
110 | - | func | |
107 | + | func I (J,K) = fraction(toBigInt(J), h, toBigInt(K)) | |
111 | 108 | ||
112 | 109 | ||
113 | - | func | |
110 | + | func L (u,M) = toInt(fraction(u, toBigInt(M), h)) | |
114 | 111 | ||
115 | 112 | ||
116 | - | let | |
113 | + | let N = 1 | |
117 | 114 | ||
118 | - | let | |
115 | + | let O = 2 | |
119 | 116 | ||
120 | - | let | |
117 | + | let P = 3 | |
121 | 118 | ||
122 | - | let | |
119 | + | let Q = 4 | |
123 | 120 | ||
124 | - | let | |
121 | + | let R = 5 | |
125 | 122 | ||
126 | - | let | |
123 | + | let S = 6 | |
127 | 124 | ||
128 | - | let | |
125 | + | let T = 7 | |
129 | 126 | ||
130 | - | let | |
127 | + | let U = 8 | |
131 | 128 | ||
132 | - | let | |
129 | + | let V = 9 | |
133 | 130 | ||
134 | - | let | |
131 | + | let W = 10 | |
135 | 132 | ||
136 | - | let | |
133 | + | let X = 11 | |
137 | 134 | ||
138 | - | func | |
135 | + | func Y () = "%s%s__config__controlAddress" | |
139 | 136 | ||
140 | 137 | ||
141 | - | func | |
138 | + | func Z () = "%s__controlConfig" | |
142 | 139 | ||
143 | 140 | ||
144 | - | func | |
141 | + | func aa (ab) = split(k(ab, Z()), i) | |
145 | 142 | ||
146 | 143 | ||
147 | - | func | |
144 | + | func ac (ad,ae) = valueOrErrorMessage(addressFromString(ad[ae]), ("Control cfg doesn't contain address at index " + toString(ae))) | |
148 | 145 | ||
149 | 146 | ||
150 | - | let | |
147 | + | let af = addressFromStringValue(valueOrElse(getString(this, Y()), "3N4NS7d4Jo9a6F14LiFUKKYVdUkkf2eP4Zx")) | |
151 | 148 | ||
152 | - | let | |
149 | + | let ad = aa(af) | |
153 | 150 | ||
154 | - | let | |
151 | + | let ag = ac(ad, Q) | |
155 | 152 | ||
156 | - | let | |
153 | + | let ah = ac(ad, N) | |
157 | 154 | ||
158 | - | let | |
155 | + | let ai = ac(ad, O) | |
159 | 156 | ||
160 | - | let | |
157 | + | let aj = ac(ad, R) | |
161 | 158 | ||
162 | - | let | |
159 | + | let ak = ac(ad, P) | |
163 | 160 | ||
164 | - | let | |
161 | + | let al = ac(ad, U) | |
165 | 162 | ||
166 | - | let | |
163 | + | let am = ac(ad, W) | |
167 | 164 | ||
168 | - | let ao = valueOrElse(getInteger(this, k()), 300) | |
169 | - | ||
170 | - | @Callable(ap) | |
171 | - | func gnsbtFromSurfSYSREADONLY (aq) = $Tuple2(nil, (aq / ao)) | |
172 | - | ||
173 | - | ||
174 | - | ||
175 | - | @Callable(ap) | |
176 | - | func gnsbtInfoSYSREADONLY (ar,as,at) = { | |
177 | - | let au = u(invoke(am, "nsbtStakingSYSREADONLY", [ar, as], nil)) | |
178 | - | let av = y(au[0]) | |
179 | - | let aw = y(au[1]) | |
180 | - | let ax = av | |
181 | - | let ay = aw | |
182 | - | let az = u(invoke(an, "surfStakingSYSREADONLY", [ar, at], nil)) | |
183 | - | let aA = y(az[0]) | |
184 | - | let aB = y(az[1]) | |
185 | - | let aC = y(az[2]) | |
186 | - | let aD = y(az[3]) | |
187 | - | let aE = y(az[4]) | |
188 | - | let aF = y(az[5]) | |
189 | - | let aG = (ax + aC) | |
190 | - | let aH = (ay + aD) | |
191 | - | $Tuple2(nil, [aG, aH, [av, aw, ax, ay], [aA, aB, aC, aD], aE, aF]) | |
165 | + | @Callable(an) | |
166 | + | func gnsbtInfoSYSREADONLY (ao,ap,aq) = { | |
167 | + | let ar = t(invoke(al, "nsbtStakingSYSREADONLY", [ao, ap], nil)) | |
168 | + | let as = x(ar[0]) | |
169 | + | let at = x(ar[1]) | |
170 | + | let au = as | |
171 | + | let av = at | |
172 | + | let aw = t(invoke(am, "surfStakingSYSREADONLY", [ao, aq], nil)) | |
173 | + | let ax = x(aw[0]) | |
174 | + | let ay = x(aw[1]) | |
175 | + | let az = x(aw[2]) | |
176 | + | let aA = x(aw[3]) | |
177 | + | let aB = x(aw[4]) | |
178 | + | let aC = x(aw[5]) | |
179 | + | let aD = (au + az) | |
180 | + | let aE = (av + aA) | |
181 | + | $Tuple2(nil, [aD, aE, [as, at, au, av], [ax, ay, az, aA], aB, aC]) | |
192 | 182 | } | |
193 | 183 | ||
194 | 184 | ||
195 | 185 | ||
196 | - | @Callable( | |
186 | + | @Callable(an) | |
197 | 187 | func claimRewards () = { | |
198 | - | let | |
199 | - | if (( | |
188 | + | let aF = invoke(al, "claimRewardsByOriginCaller", nil, nil) | |
189 | + | if ((aF == aF)) | |
200 | 190 | then { | |
201 | - | let | |
202 | - | if (( | |
191 | + | let aG = invoke(am, "claimRewardsByOriginCaller", nil, nil) | |
192 | + | if ((aG == aG)) | |
203 | 193 | then nil | |
204 | 194 | else throw("Strict value is not equal to itself.") | |
205 | 195 | } | |
208 | 198 | ||
209 | 199 | ||
210 | 200 | ||
211 | - | @Callable( | |
212 | - | func gnsbtRewardsSYSREADONLY ( | |
213 | - | let | |
214 | - | let | |
215 | - | $Tuple2(nil, [ | |
201 | + | @Callable(an) | |
202 | + | func gnsbtRewardsSYSREADONLY (ao) = { | |
203 | + | let aH = z(invoke(al, "unclaimedRewardsREADONLY", [ao], nil)) | |
204 | + | let aI = z(invoke(am, "unclaimedRewardsREADONLY", [ao], nil)) | |
205 | + | $Tuple2(nil, [aH, aI]) | |
216 | 206 | } | |
217 | 207 | ||
218 | 208 |
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 = 271828182 | |
7 | 7 | ||
8 | 8 | let c = 1000000 | |
9 | 9 | ||
10 | 10 | let d = toBigInt(1000000) | |
11 | 11 | ||
12 | 12 | let e = 100000000 | |
13 | 13 | ||
14 | 14 | let f = toBigInt(100000000) | |
15 | 15 | ||
16 | 16 | let g = 1000000000000 | |
17 | 17 | ||
18 | 18 | let h = toBigInt(1000000000000000000) | |
19 | 19 | ||
20 | 20 | let i = "__" | |
21 | 21 | ||
22 | 22 | let j = fromBase58String("WAVES") | |
23 | 23 | ||
24 | - | func k () = " | |
24 | + | func k (l,m) = valueOrErrorMessage(getString(l, m), makeString(["mandatory ", toString(l), ".", m, " is not defined"], "")) | |
25 | 25 | ||
26 | 26 | ||
27 | - | func | |
27 | + | func n (l,m) = valueOrErrorMessage(getInteger(l, m), makeString(["mandatory ", toString(l), ".", m, " is not defined"], "")) | |
28 | 28 | ||
29 | 29 | ||
30 | - | func o (m | |
30 | + | func o (l,m) = valueOrErrorMessage(getBoolean(l, m), makeString(["mandatory ", toString(l), ".", m, " is not defined"], "")) | |
31 | 31 | ||
32 | 32 | ||
33 | - | func p ( | |
33 | + | func p (q,r) = fraction(q, e, r) | |
34 | 34 | ||
35 | 35 | ||
36 | - | func | |
36 | + | func s (q,r) = fraction(q, r, e) | |
37 | 37 | ||
38 | 38 | ||
39 | - | func t (r,s) = fraction(r, s, e) | |
40 | - | ||
41 | - | ||
42 | - | func u (v) = { | |
43 | - | let w = v | |
44 | - | if ($isInstanceOf(w, "List[Any]")) | |
39 | + | func t (u) = { | |
40 | + | let v = u | |
41 | + | if ($isInstanceOf(v, "List[Any]")) | |
45 | 42 | then { | |
46 | - | let | |
47 | - | | |
43 | + | let w = v | |
44 | + | w | |
48 | 45 | } | |
49 | 46 | else throw("fail to cast into List[Any]") | |
50 | 47 | } | |
51 | 48 | ||
52 | 49 | ||
53 | - | func | |
54 | - | let | |
55 | - | if ($isInstanceOf( | |
50 | + | func x (u) = { | |
51 | + | let v = u | |
52 | + | if ($isInstanceOf(v, "Int")) | |
56 | 53 | then { | |
57 | - | let | |
58 | - | | |
54 | + | let y = v | |
55 | + | y | |
59 | 56 | } | |
60 | 57 | else throw("fail to cast into Int") | |
61 | 58 | } | |
62 | 59 | ||
63 | 60 | ||
64 | - | func | |
65 | - | let | |
66 | - | if ($isInstanceOf( | |
61 | + | func z (u) = { | |
62 | + | let v = u | |
63 | + | if ($isInstanceOf(v, "String")) | |
67 | 64 | then { | |
68 | - | let | |
69 | - | | |
65 | + | let A = v | |
66 | + | A | |
70 | 67 | } | |
71 | 68 | else throw("fail to cast into String") | |
72 | 69 | } | |
73 | 70 | ||
74 | 71 | ||
75 | - | func | |
76 | - | let | |
77 | - | if ($isInstanceOf( | |
72 | + | func B (u) = { | |
73 | + | let v = u | |
74 | + | if ($isInstanceOf(v, "(Int, Int)")) | |
78 | 75 | then { | |
79 | - | let | |
80 | - | | |
76 | + | let C = v | |
77 | + | C | |
81 | 78 | } | |
82 | 79 | else throw("fail to cast into Tuple2 ints") | |
83 | 80 | } | |
84 | 81 | ||
85 | 82 | ||
86 | - | func | |
87 | - | let | |
88 | - | if ($isInstanceOf( | |
83 | + | func D (u) = { | |
84 | + | let v = u | |
85 | + | if ($isInstanceOf(v, "(Int, Int, Int, Int, Int, Int, Int)")) | |
89 | 86 | then { | |
90 | - | let | |
91 | - | | |
87 | + | let E = v | |
88 | + | E | |
92 | 89 | } | |
93 | - | else throw("fail to cast into | |
90 | + | else throw("fail to cast into SwapParamsSTRUCT") | |
94 | 91 | } | |
95 | 92 | ||
96 | 93 | ||
97 | - | func | |
94 | + | func F (G) = if ((0 > G)) | |
98 | 95 | then -1 | |
99 | 96 | else { | |
100 | - | let | |
101 | - | if ($isInstanceOf( | |
97 | + | let v = blockInfoByHeight(G) | |
98 | + | if ($isInstanceOf(v, "BlockInfo")) | |
102 | 99 | then { | |
103 | - | let | |
104 | - | | |
100 | + | let H = v | |
101 | + | H.timestamp | |
105 | 102 | } | |
106 | 103 | else -1 | |
107 | 104 | } | |
108 | 105 | ||
109 | 106 | ||
110 | - | func | |
107 | + | func I (J,K) = fraction(toBigInt(J), h, toBigInt(K)) | |
111 | 108 | ||
112 | 109 | ||
113 | - | func | |
110 | + | func L (u,M) = toInt(fraction(u, toBigInt(M), h)) | |
114 | 111 | ||
115 | 112 | ||
116 | - | let | |
113 | + | let N = 1 | |
117 | 114 | ||
118 | - | let | |
115 | + | let O = 2 | |
119 | 116 | ||
120 | - | let | |
117 | + | let P = 3 | |
121 | 118 | ||
122 | - | let | |
119 | + | let Q = 4 | |
123 | 120 | ||
124 | - | let | |
121 | + | let R = 5 | |
125 | 122 | ||
126 | - | let | |
123 | + | let S = 6 | |
127 | 124 | ||
128 | - | let | |
125 | + | let T = 7 | |
129 | 126 | ||
130 | - | let | |
127 | + | let U = 8 | |
131 | 128 | ||
132 | - | let | |
129 | + | let V = 9 | |
133 | 130 | ||
134 | - | let | |
131 | + | let W = 10 | |
135 | 132 | ||
136 | - | let | |
133 | + | let X = 11 | |
137 | 134 | ||
138 | - | func | |
135 | + | func Y () = "%s%s__config__controlAddress" | |
139 | 136 | ||
140 | 137 | ||
141 | - | func | |
138 | + | func Z () = "%s__controlConfig" | |
142 | 139 | ||
143 | 140 | ||
144 | - | func | |
141 | + | func aa (ab) = split(k(ab, Z()), i) | |
145 | 142 | ||
146 | 143 | ||
147 | - | func | |
144 | + | func ac (ad,ae) = valueOrErrorMessage(addressFromString(ad[ae]), ("Control cfg doesn't contain address at index " + toString(ae))) | |
148 | 145 | ||
149 | 146 | ||
150 | - | let | |
147 | + | let af = addressFromStringValue(valueOrElse(getString(this, Y()), "3N4NS7d4Jo9a6F14LiFUKKYVdUkkf2eP4Zx")) | |
151 | 148 | ||
152 | - | let | |
149 | + | let ad = aa(af) | |
153 | 150 | ||
154 | - | let | |
151 | + | let ag = ac(ad, Q) | |
155 | 152 | ||
156 | - | let | |
153 | + | let ah = ac(ad, N) | |
157 | 154 | ||
158 | - | let | |
155 | + | let ai = ac(ad, O) | |
159 | 156 | ||
160 | - | let | |
157 | + | let aj = ac(ad, R) | |
161 | 158 | ||
162 | - | let | |
159 | + | let ak = ac(ad, P) | |
163 | 160 | ||
164 | - | let | |
161 | + | let al = ac(ad, U) | |
165 | 162 | ||
166 | - | let | |
163 | + | let am = ac(ad, W) | |
167 | 164 | ||
168 | - | let ao = valueOrElse(getInteger(this, k()), 300) | |
169 | - | ||
170 | - | @Callable(ap) | |
171 | - | func gnsbtFromSurfSYSREADONLY (aq) = $Tuple2(nil, (aq / ao)) | |
172 | - | ||
173 | - | ||
174 | - | ||
175 | - | @Callable(ap) | |
176 | - | func gnsbtInfoSYSREADONLY (ar,as,at) = { | |
177 | - | let au = u(invoke(am, "nsbtStakingSYSREADONLY", [ar, as], nil)) | |
178 | - | let av = y(au[0]) | |
179 | - | let aw = y(au[1]) | |
180 | - | let ax = av | |
181 | - | let ay = aw | |
182 | - | let az = u(invoke(an, "surfStakingSYSREADONLY", [ar, at], nil)) | |
183 | - | let aA = y(az[0]) | |
184 | - | let aB = y(az[1]) | |
185 | - | let aC = y(az[2]) | |
186 | - | let aD = y(az[3]) | |
187 | - | let aE = y(az[4]) | |
188 | - | let aF = y(az[5]) | |
189 | - | let aG = (ax + aC) | |
190 | - | let aH = (ay + aD) | |
191 | - | $Tuple2(nil, [aG, aH, [av, aw, ax, ay], [aA, aB, aC, aD], aE, aF]) | |
165 | + | @Callable(an) | |
166 | + | func gnsbtInfoSYSREADONLY (ao,ap,aq) = { | |
167 | + | let ar = t(invoke(al, "nsbtStakingSYSREADONLY", [ao, ap], nil)) | |
168 | + | let as = x(ar[0]) | |
169 | + | let at = x(ar[1]) | |
170 | + | let au = as | |
171 | + | let av = at | |
172 | + | let aw = t(invoke(am, "surfStakingSYSREADONLY", [ao, aq], nil)) | |
173 | + | let ax = x(aw[0]) | |
174 | + | let ay = x(aw[1]) | |
175 | + | let az = x(aw[2]) | |
176 | + | let aA = x(aw[3]) | |
177 | + | let aB = x(aw[4]) | |
178 | + | let aC = x(aw[5]) | |
179 | + | let aD = (au + az) | |
180 | + | let aE = (av + aA) | |
181 | + | $Tuple2(nil, [aD, aE, [as, at, au, av], [ax, ay, az, aA], aB, aC]) | |
192 | 182 | } | |
193 | 183 | ||
194 | 184 | ||
195 | 185 | ||
196 | - | @Callable( | |
186 | + | @Callable(an) | |
197 | 187 | func claimRewards () = { | |
198 | - | let | |
199 | - | if (( | |
188 | + | let aF = invoke(al, "claimRewardsByOriginCaller", nil, nil) | |
189 | + | if ((aF == aF)) | |
200 | 190 | then { | |
201 | - | let | |
202 | - | if (( | |
191 | + | let aG = invoke(am, "claimRewardsByOriginCaller", nil, nil) | |
192 | + | if ((aG == aG)) | |
203 | 193 | then nil | |
204 | 194 | else throw("Strict value is not equal to itself.") | |
205 | 195 | } | |
206 | 196 | else throw("Strict value is not equal to itself.") | |
207 | 197 | } | |
208 | 198 | ||
209 | 199 | ||
210 | 200 | ||
211 | - | @Callable( | |
212 | - | func gnsbtRewardsSYSREADONLY ( | |
213 | - | let | |
214 | - | let | |
215 | - | $Tuple2(nil, [ | |
201 | + | @Callable(an) | |
202 | + | func gnsbtRewardsSYSREADONLY (ao) = { | |
203 | + | let aH = z(invoke(al, "unclaimedRewardsREADONLY", [ao], nil)) | |
204 | + | let aI = z(invoke(am, "unclaimedRewardsREADONLY", [ao], nil)) | |
205 | + | $Tuple2(nil, [aH, aI]) | |
216 | 206 | } | |
217 | 207 | ||
218 | 208 |
github/deemru/w8io/873ac7e 323.40 ms ◑![]()