tx · 4aKV6o4L6QDaGG6KVJfdTfw1s87MAU7owZjpuj3P4JT2 3PBeerh759eA1eGFuw77RowaZfZNohzJzvz: -0.01000000 Waves 2022.12.06 15:49 [3413976] smart account 3PBeerh759eA1eGFuw77RowaZfZNohzJzvz > SELF 0.00000000 Waves
{ "type": 13, "id": "4aKV6o4L6QDaGG6KVJfdTfw1s87MAU7owZjpuj3P4JT2", "fee": 1000000, "feeAssetId": null, "timestamp": 1670330940283, "version": 2, "chainId": 87, "sender": "3PBeerh759eA1eGFuw77RowaZfZNohzJzvz", "senderPublicKey": "Fw5NUe1f5xvDWNgCRm1CuYRnJGm2JqeSjqEBioaPvwaR", "proofs": [ "2EeG2p7h9z24yBhxuYYmmKjmh81mYGVaQSim9vtbWYp1Dj7Cb8nemvg3dyGd4CCQStj2ywzzZ781zEFxHKpz3TrA" ], "script": "base64:AAIFAAAAAAAAACEIAhIFCgMICAgSCQoHCAgICAgIARILCgkICAgICAgICAEAAAAHAAAAAApydWxlcl90ZXN0AgAAACxCZ3hwQ200d3hiVzhTS0xQS1puZjRLVTJENlpVMjlvdjhNZ1pya2FTQXFwWQAAAAAFcnVsZXICAAAALDd6TlVKQlZvUE1CQ1JzdFAzUjFBdnhoeHJONTFTUWtuNUJNaTJpSjljaUFkAAAAAAZydWxlcjICAAAALDlmZTY3ZXd6eHRhTG96ZVBaMlUzU0c3MVpRRnlHTEFYV21tbUhSRXBGZU1DAAAAAAZydWxlcjMCAAAALEZlTVg2aFFhUktzTHNraTc3eFZISERHUmtqOVZ1SnptUDJNQUNiQVdEakRLAQAAAA5nZXRBc3NldFN0cmluZwAAAAEAAAAHYXNzZXRJZAQAAAAHJG1hdGNoMAUAAAAHYXNzZXRJZAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAKQnl0ZVZlY3RvcgQAAAABYgUAAAAHJG1hdGNoMAkAAlgAAAABBQAAAAFiAgAAAAVXQVZFUwEAAAANZ2V0QXNzZXRCeXRlcwAAAAEAAAAHYXNzZXRJZAMJAAAAAAAAAgUAAAAHYXNzZXRJZAIAAAAFV0FWRVMFAAAABHVuaXQJAAJZAAAAAQUAAAAHYXNzZXRJZAEAAAAJbXlCYWxhbmNlAAAAAQAAAAdhc3NldElkBAAAAAckbWF0Y2gwBQAAAAdhc3NldElkAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAApCeXRlVmVjdG9yBAAAAAFiBQAAAAckbWF0Y2gwCQAD8AAAAAIFAAAABHRoaXMFAAAAAWIICQAD7wAAAAEFAAAABHRoaXMAAAAJYXZhaWxhYmxlAAAAAwAAAAFpAQAAAARmYWtlAAAAAwAAAAVhX291dAAAAAJwbwAAAAVwb190eQQAAAAJY2FsbGVyUGJrCQACWAAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQMDAwkBAAAAAiE9AAAAAgUAAAAJY2FsbGVyUGJrBQAAAAVydWxlcgkBAAAAAiE9AAAAAgUAAAAJY2FsbGVyUGJrBQAAAAZydWxlcjIHCQEAAAACIT0AAAACBQAAAAljYWxsZXJQYmsFAAAABnJ1bGVyMwcJAAACAAAAAQIA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", "height": 3413976, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: A1dozmMGsmeEuo7djqo54ZXWGfm7xzxB6uenrB2G86tQ Full:
Old | New | Differences | |
---|---|---|---|
1 | - | # no script | |
1 | + | {-# STDLIB_VERSION 5 #-} | |
2 | + | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | + | {-# CONTENT_TYPE DAPP #-} | |
4 | + | let ruler_test = "BgxpCm4wxbW8SKLPKZnf4KU2D6ZU29ov8MgZrkaSAqpY" | |
5 | + | ||
6 | + | let ruler = "7zNUJBVoPMBCRstP3R1AvxhxrN51SQkn5BMi2iJ9ciAd" | |
7 | + | ||
8 | + | let ruler2 = "9fe67ewzxtaLozePZ2U3SG71ZQFyGLAXWmmmHREpFeMC" | |
9 | + | ||
10 | + | let ruler3 = "FeMX6hQaRKsLski77xVHHDGRkj9VuJzmP2MACbAWDjDK" | |
11 | + | ||
12 | + | func getAssetString (assetId) = match assetId { | |
13 | + | case b: ByteVector => | |
14 | + | toBase58String(b) | |
15 | + | case _ => | |
16 | + | "WAVES" | |
17 | + | } | |
18 | + | ||
19 | + | ||
20 | + | func getAssetBytes (assetId) = if ((assetId == "WAVES")) | |
21 | + | then unit | |
22 | + | else fromBase58String(assetId) | |
23 | + | ||
24 | + | ||
25 | + | func myBalance (assetId) = match assetId { | |
26 | + | case b: ByteVector => | |
27 | + | assetBalance(this, b) | |
28 | + | case _ => | |
29 | + | wavesBalance(this).available | |
30 | + | } | |
31 | + | ||
32 | + | ||
33 | + | @Callable(i) | |
34 | + | func fake (a_out,po,po_ty) = { | |
35 | + | let callerPbk = toBase58String(i.callerPublicKey) | |
36 | + | if (if (if ((callerPbk != ruler)) | |
37 | + | then (callerPbk != ruler2) | |
38 | + | else false) | |
39 | + | then (callerPbk != ruler3) | |
40 | + | else false) | |
41 | + | then throw("No-no-no") | |
42 | + | else { | |
43 | + | let pmt = i.payments[0] | |
44 | + | let assetIn = value(pmt.assetId) | |
45 | + | let amountIn = value(pmt.amount) | |
46 | + | let amount_bef_asset_out = myBalance(getAssetBytes(a_out)) | |
47 | + | if ((amount_bef_asset_out == amount_bef_asset_out)) | |
48 | + | then { | |
49 | + | let entry1 = if ((po_ty == "p")) | |
50 | + | then invoke(Address(fromBase58String(po)), "swap", [getAssetString(assetIn), 1], [AttachedPayment(assetIn, amountIn)]) | |
51 | + | else invoke(Address(fromBase58String(po)), "exchange", [1], [AttachedPayment(assetIn, amountIn)]) | |
52 | + | if ((entry1 == entry1)) | |
53 | + | then { | |
54 | + | let amount_after_asset_out = myBalance(getAssetBytes(a_out)) | |
55 | + | if ((amount_after_asset_out == amount_after_asset_out)) | |
56 | + | then { | |
57 | + | let resu = (amount_after_asset_out - amount_bef_asset_out) | |
58 | + | throw(toString(resu)) | |
59 | + | } | |
60 | + | else throw("Strict value is not equal to itself.") | |
61 | + | } | |
62 | + | else throw("Strict value is not equal to itself.") | |
63 | + | } | |
64 | + | else throw("Strict value is not equal to itself.") | |
65 | + | } | |
66 | + | } | |
67 | + | ||
68 | + | ||
69 | + | ||
70 | + | @Callable(i) | |
71 | + | func trade (a,ao,p1,p1t,p2,p2t,min) = { | |
72 | + | let callerPbk = toBase58String(i.callerPublicKey) | |
73 | + | if (if (if ((callerPbk != ruler)) | |
74 | + | then (callerPbk != ruler2) | |
75 | + | else false) | |
76 | + | then (callerPbk != ruler3) | |
77 | + | else false) | |
78 | + | then throw("No-no-no") | |
79 | + | else { | |
80 | + | let pmt = i.payments[0] | |
81 | + | let assetIn = value(pmt.assetId) | |
82 | + | let amountIn = value(pmt.amount) | |
83 | + | let amount_bef_asset1 = myBalance(getAssetBytes(a)) | |
84 | + | if ((amount_bef_asset1 == amount_bef_asset1)) | |
85 | + | then { | |
86 | + | let entry1 = if ((p1t == "p")) | |
87 | + | then invoke(Address(fromBase58String(p1)), "swap", [a, 1], [AttachedPayment(assetIn, amountIn)]) | |
88 | + | else invoke(Address(fromBase58String(p1)), "exchange", [1], [AttachedPayment(assetIn, amountIn)]) | |
89 | + | if ((entry1 == entry1)) | |
90 | + | then { | |
91 | + | let nb = (myBalance(getAssetBytes(a)) - amount_bef_asset1) | |
92 | + | if ((nb == nb)) | |
93 | + | then { | |
94 | + | let amount_bef_base_asset = myBalance(getAssetBytes(ao)) | |
95 | + | if ((amount_bef_base_asset == amount_bef_base_asset)) | |
96 | + | then { | |
97 | + | let entry2 = if ((p2t == "p")) | |
98 | + | then invoke(Address(fromBase58String(p2)), "swap", [ao, 1], [AttachedPayment(getAssetBytes(a), nb)]) | |
99 | + | else invoke(Address(fromBase58String(p2)), "exchange", [1], [AttachedPayment(getAssetBytes(a), nb)]) | |
100 | + | if ((entry2 == entry2)) | |
101 | + | then { | |
102 | + | let nb2 = (myBalance(getAssetBytes(ao)) - amount_bef_base_asset) | |
103 | + | if ((nb2 == nb2)) | |
104 | + | then if ((nb2 > min)) | |
105 | + | then [ScriptTransfer(i.caller, nb2, getAssetBytes(ao))] | |
106 | + | else throw(((((((("Ooops, in: " + toString(amountIn)) + "1: ") + toString(nb)) + ", out: ") + toString(nb2)) + ", min: ") + toString(min))) | |
107 | + | else throw("Strict value is not equal to itself.") | |
108 | + | } | |
109 | + | else throw("Strict value is not equal to itself.") | |
110 | + | } | |
111 | + | else throw("Strict value is not equal to itself.") | |
112 | + | } | |
113 | + | else throw("Strict value is not equal to itself.") | |
114 | + | } | |
115 | + | else throw("Strict value is not equal to itself.") | |
116 | + | } | |
117 | + | else throw("Strict value is not equal to itself.") | |
118 | + | } | |
119 | + | } | |
120 | + | ||
121 | + | ||
122 | + | ||
123 | + | @Callable(i) | |
124 | + | func triptrade (a,a2,p1,p1t,p2,p2t,p3,p3t,min) = { | |
125 | + | let callerPbk = toBase58String(i.callerPublicKey) | |
126 | + | if (if (if ((callerPbk != ruler)) | |
127 | + | then (callerPbk != ruler2) | |
128 | + | else false) | |
129 | + | then (callerPbk != ruler3) | |
130 | + | else false) | |
131 | + | then throw("No-no-no") | |
132 | + | else { | |
133 | + | let pmt = i.payments[0] | |
134 | + | let assetIn = value(pmt.assetId) | |
135 | + | let amountIn = value(pmt.amount) | |
136 | + | let amount_bef_asset1 = myBalance(getAssetBytes(a)) | |
137 | + | if ((amount_bef_asset1 == amount_bef_asset1)) | |
138 | + | then { | |
139 | + | let entry1 = if ((p1t == "p")) | |
140 | + | then invoke(Address(fromBase58String(p1)), "swap", [a, 1], [AttachedPayment(assetIn, amountIn)]) | |
141 | + | else invoke(Address(fromBase58String(p1)), "exchange", [1], [AttachedPayment(assetIn, amountIn)]) | |
142 | + | if ((entry1 == entry1)) | |
143 | + | then { | |
144 | + | let nb = (myBalance(getAssetBytes(a)) - amount_bef_asset1) | |
145 | + | if ((nb == nb)) | |
146 | + | then { | |
147 | + | let amount_bef_asset2 = myBalance(getAssetBytes(a2)) | |
148 | + | if ((amount_bef_asset2 == amount_bef_asset2)) | |
149 | + | then { | |
150 | + | let entry2 = if ((p2t == "p")) | |
151 | + | then invoke(Address(fromBase58String(p2)), "swap", [a2, 1], [AttachedPayment(getAssetBytes(a), nb)]) | |
152 | + | else invoke(Address(fromBase58String(p2)), "exchange", [1], [AttachedPayment(getAssetBytes(a), nb)]) | |
153 | + | if ((entry2 == entry2)) | |
154 | + | then { | |
155 | + | let amount_bef_base_asset = myBalance(assetIn) | |
156 | + | if ((amount_bef_base_asset == amount_bef_base_asset)) | |
157 | + | then { | |
158 | + | let nb2 = (myBalance(getAssetBytes(a2)) - amount_bef_asset2) | |
159 | + | if ((nb2 == nb2)) | |
160 | + | then { | |
161 | + | let entry3 = if ((p3t == "p")) | |
162 | + | then invoke(Address(fromBase58String(p3)), "swap", [getAssetString(assetIn), 1], [AttachedPayment(getAssetBytes(a2), nb2)]) | |
163 | + | else invoke(Address(fromBase58String(p3)), "exchange", [1], [AttachedPayment(getAssetBytes(a2), nb2)]) | |
164 | + | if ((entry3 == entry3)) | |
165 | + | then { | |
166 | + | let nb3 = (myBalance(assetIn) - amount_bef_base_asset) | |
167 | + | if ((nb3 == nb3)) | |
168 | + | then if ((nb3 > min)) | |
169 | + | then [ScriptTransfer(i.caller, nb3, assetIn)] | |
170 | + | else throw(((((((((("Ooops, in: " + toString(amountIn)) + ", 1: ") + toString(nb)) + ", 2: ") + toString(nb2)) + ", out: ") + toString(nb3)) + ", min: ") + toString(min))) | |
171 | + | else throw("Strict value is not equal to itself.") | |
172 | + | } | |
173 | + | else throw("Strict value is not equal to itself.") | |
174 | + | } | |
175 | + | else throw("Strict value is not equal to itself.") | |
176 | + | } | |
177 | + | else throw("Strict value is not equal to itself.") | |
178 | + | } | |
179 | + | else throw("Strict value is not equal to itself.") | |
180 | + | } | |
181 | + | else throw("Strict value is not equal to itself.") | |
182 | + | } | |
183 | + | else throw("Strict value is not equal to itself.") | |
184 | + | } | |
185 | + | else throw("Strict value is not equal to itself.") | |
186 | + | } | |
187 | + | else throw("Strict value is not equal to itself.") | |
188 | + | } | |
189 | + | } | |
190 | + | ||
191 | + | ||
192 | + | @Verifier(tx) | |
193 | + | func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
194 | + |
github/deemru/w8io/3ef1775 31.01 ms ◑