tx · 6wnmZdtHVXvMi1vDCProkfDRohx3G73XxvJVWBSeKNu4 3P4AdC9J6MzTEi2LL9xgQN8EimMnbk4d6Nt: -0.00600000 Waves 2024.05.11 21:25 [4167774] smart account 3P4AdC9J6MzTEi2LL9xgQN8EimMnbk4d6Nt > SELF 0.00000000 Waves
{ "type": 13, "id": "6wnmZdtHVXvMi1vDCProkfDRohx3G73XxvJVWBSeKNu4", "fee": 600000, "feeAssetId": null, "timestamp": 1715451962207, "version": 2, "chainId": 87, "sender": "3P4AdC9J6MzTEi2LL9xgQN8EimMnbk4d6Nt", "senderPublicKey": "33BMe2b9KpjJyCQXAKa3DKHqSBjB7q2mEJoiP17cRLAN", "proofs": [ "65cGch72GEapGNGYVsHSs5ZfkYtBkk4Ja36VvdvCYbvFG6GAxkQeAkGoqmGoewq5qwyzeMnnrt7TZAtCfdkETrgC" ], "script": "base64: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A25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQdCQkIyYW55AAMJAGYCCQBkAgkAZAIJARFAZXh0ck5hdGl2ZSgxMDUwKQIFA2JiYgUNa2V5QWN0aXZhdGVkMgkAaAIABwCgCwACBQZoZWlnaHQJAAIBCQCsAgICFVdhaXQgdGlsbCBibG9ja2hlaWdodAkApAMBCQBkAgkAZAIJARFAZXh0ck5hdGl2ZSgxMDUwKQIFA2JiYgUNa2V5QWN0aXZhdGVkMgkAaAIABwCgCwACAwkAAAIJAQ10cnlHZXRJbnRlZ2VyAgUDYmJiBQ1rZXlJbnZva2VOZXh0AAEJAAIBAhRpbnZva2UgQkJCMWFueSBmaXJzdAQDaW52CQD8BwQFA2JiYgIKZGlzdHJpYnV0ZQUDbmlsBQNuaWwDCQAAAgUDaW52BQNpbnYJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUDYm90BQJkNgUEdW5pdAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBCmJvdEFkZHJlc3MBB2FkZHJlc3MDCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAgJubwkAzAgCCQELU3RyaW5nRW50cnkCBQ1rZXlCb3RBZGRyZXNzBQdhZGRyZXNzBQNuaWwBaQESY2hhbmdlSW50ZWdlckVudHJ5AglrZXlTdHJpbmcHaW50ZWdlcgMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECHGFjY2VzcyBvbmx5IGJ5IHByb2plY3Qgb3duZXIJAMwIAgkBDEludGVnZXJFbnRyeQIFCWtleVN0cmluZwUHaW50ZWdlcgUDbmlsAWkBB2J1cm5YVE4AAwMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkBAiE9AggFAWkGY2FsbGVyBQRidXJuBwkAAgECHGFjY2VzcyBvbmx5IGJ5IHByb2plY3Qgb3duZXIEDXh0bkJ1cm5BbW91bnQDCQBnAgkA8AcCBQR0aGlzBQV4dG5JZAkBDXRyeUdldEludGVnZXICBQRidXJuBQ1rZXlCdXJuQW1vdW50CQENdHJ5R2V0SW50ZWdlcgIFBGJ1cm4FDWtleUJ1cm5BbW91bnQAAAQHeHRuQnVybgkBBEJ1cm4CBQV4dG5JZAUNeHRuQnVybkFtb3VudAQOc3VyZkJ1cm5BbW91bnQDCQBnAgkA8AcCBQR0aGlzBQZzdXJmSWQJAQ10cnlHZXRJbnRlZ2VyAgUEYnVybgUNa2V5QnVybkFtb3VudAkBDXRyeUdldEludGVnZXICBQRidXJuBQ1rZXlCdXJuQW1vdW50AAAECHN1cmZCdXJuCQEEQnVybgIFBnN1cmZJZAUOc3VyZkJ1cm5BbW91bnQEEWJ1cm54dG5CdXJuQW1vdW50AwkAZwIJAPAHAgUEdGhpcwUJYnVybnh0bklkCQENdHJ5R2V0SW50ZWdlcgIFBGJ1cm4FEGtleUJ1cm54dG5BbW91bnQJAQ10cnlHZXRJbnRlZ2VyAgUEYnVybgUQa2V5QnVybnh0bkFtb3VudAAABAtidXJueHRuQnVybgkBBEJ1cm4CBQlidXJueHRuSWQFEWJ1cm54dG5CdXJuQW1vdW50CQDMCAIFB3h0bkJ1cm4JAMwIAgUIc3VyZkJ1cm4JAMwIAgULYnVybnh0bkJ1cm4JAMwIAgkBDEludGVnZXJFbnRyeQICEFhUTiB0b3RhbCBidXJuZWQJAGQCCQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzAhBYVE4gdG90YWwgYnVybmVkBQ14dG5CdXJuQW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCAhFTVVJGIHRvdGFsIGJ1cm5lZAkAZAIJAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwIRU1VSRiB0b3RhbCBidXJuZWQFDnN1cmZCdXJuQW1vdW50BQNuaWwBaQEMaW52b2tlckJ1cm4xAAMJAQIhPQIIBQFpBmNhbGxlcgUBcwkAAgECAm5vAwkAAAIJAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwUNa2V5SW52b2tlTmV4dAACCQACAQIZaW52b2tlIGludm9rZXJCdXJuMiBmaXJzdAQEaW52MQkA/QcEBQRidXJuAgdpbnZva2UxBQNuaWwFA25pbAMJAAACBQRpbnYxBQRpbnYxBANpbnYJAPwHBAUDc3dlAgVhbGxpbgUDbmlsBQNuaWwDCQAAAgUDaW52BQNpbnYEBGludjIJAPwHBAUDd2hpAgVhbGxpbgUDbmlsBQNuaWwDCQAAAgUEaW52MgUEaW52MgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQNib3QDCQAAAggFAWkGY2FsbGVyBQNib3QFAmQ2AAAFBHVuaXQJAMwIAgkBDEludGVnZXJFbnRyeQIFDWtleUludm9rZU5leHQAAgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBDGludm9rZXJCdXJuMgADCQECIT0CCAUBaQZjYWxsZXIFAXMJAAIBAgJubwMJAAACCQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMFDWtleUludm9rZU5leHQAAQkAAgECGWludm9rZSBpbnZva2VyQnVybjEgZmlyc3QEBGludjEJAP0HBAUEYnVybgIHaW52b2tlMgUDbmlsBQNuaWwDCQAAAgUEaW52MQUEaW52MQQDaW52CQD8BwQFA3N3ZQIGYWxsb3V0BQNuaWwFA25pbAMJAAACBQNpbnYFA2ludgQEaW52MgkA/AcEBQN3aGkCBmFsbG91dAUDbmlsBQNuaWwDCQAAAgUEaW52MgUEaW52MgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQNib3QDCQAAAggFAWkGY2FsbGVyBQNib3QFAmQ2AAAFBHVuaXQJAMwIAgkBDEludGVnZXJFbnRyeQIFDWtleUludm9rZU5leHQAAQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuALxMhKU=", "height": 4167774, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: a3rpD3nxMaZGmPtk5GKmbj9NU98TxsXBggd6SXuuqJs Next: AUkYpBmZPq5tj2WbrQ1TUxaPBZSCZxyxRaHahFWju7yU Diff:
Old | New | Differences | |
---|---|---|---|
180 | 180 | @Callable(i) | |
181 | 181 | func invokerBurn1 () = if ((i.caller != s)) | |
182 | 182 | then throw("no") | |
183 | - | else { | |
184 | - | let inv1 = reentrantInvoke(burn, "invoke1", nil, nil) | |
185 | - | if ((inv1 == inv1)) | |
186 | - | then { | |
187 | - | let inv = invoke(swe, "allin", nil, nil) | |
188 | - | if ((inv == inv)) | |
189 | - | then { | |
190 | - | let inv2 = invoke(whi, "allin", nil, nil) | |
191 | - | if ((inv2 == inv2)) | |
192 | - | then [ScriptTransfer(bot, if ((getIntegerValue(this, keyInvokeNext) == 2)) | |
193 | - | then 0 | |
194 | - | else d6, unit), IntegerEntry(keyInvokeNext, 2)] | |
195 | - | else throw("Strict value is not equal to itself.") | |
196 | - | } | |
197 | - | else throw("Strict value is not equal to itself.") | |
198 | - | } | |
199 | - | else throw("Strict value is not equal to itself.") | |
200 | - | } | |
183 | + | else if ((tryGetInteger(this, keyInvokeNext) == 2)) | |
184 | + | then throw("invoke invokerBurn2 first") | |
185 | + | else { | |
186 | + | let inv1 = reentrantInvoke(burn, "invoke1", nil, nil) | |
187 | + | if ((inv1 == inv1)) | |
188 | + | then { | |
189 | + | let inv = invoke(swe, "allin", nil, nil) | |
190 | + | if ((inv == inv)) | |
191 | + | then { | |
192 | + | let inv2 = invoke(whi, "allin", nil, nil) | |
193 | + | if ((inv2 == inv2)) | |
194 | + | then [ScriptTransfer(bot, if ((i.caller == bot)) | |
195 | + | then d6 | |
196 | + | else 0, unit), IntegerEntry(keyInvokeNext, 2)] | |
197 | + | else throw("Strict value is not equal to itself.") | |
198 | + | } | |
199 | + | else throw("Strict value is not equal to itself.") | |
200 | + | } | |
201 | + | else throw("Strict value is not equal to itself.") | |
202 | + | } | |
201 | 203 | ||
202 | 204 | ||
203 | 205 | ||
204 | 206 | @Callable(i) | |
205 | 207 | func invokerBurn2 () = if ((i.caller != s)) | |
206 | 208 | then throw("no") | |
207 | - | else { | |
208 | - | let inv1 = reentrantInvoke(burn, "invoke2", nil, nil) | |
209 | - | if ((inv1 == inv1)) | |
210 | - | then [ScriptTransfer(bot, if ((getIntegerValue(this, keyInvokeNext) == 1)) | |
211 | - | then 0 | |
212 | - | else d6, unit), IntegerEntry(keyInvokeNext, 1)] | |
213 | - | else throw("Strict value is not equal to itself.") | |
214 | - | } | |
209 | + | else if ((tryGetInteger(this, keyInvokeNext) == 1)) | |
210 | + | then throw("invoke invokerBurn1 first") | |
211 | + | else { | |
212 | + | let inv1 = reentrantInvoke(burn, "invoke2", nil, nil) | |
213 | + | if ((inv1 == inv1)) | |
214 | + | then { | |
215 | + | let inv = invoke(swe, "allout", nil, nil) | |
216 | + | if ((inv == inv)) | |
217 | + | then { | |
218 | + | let inv2 = invoke(whi, "allout", nil, nil) | |
219 | + | if ((inv2 == inv2)) | |
220 | + | then [ScriptTransfer(bot, if ((i.caller == bot)) | |
221 | + | then d6 | |
222 | + | else 0, unit), IntegerEntry(keyInvokeNext, 1)] | |
223 | + | else throw("Strict value is not equal to itself.") | |
224 | + | } | |
225 | + | else throw("Strict value is not equal to itself.") | |
226 | + | } | |
227 | + | else throw("Strict value is not equal to itself.") | |
228 | + | } | |
215 | 229 | ||
216 | 230 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 6 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | func tryGetInteger (address,key) = match getInteger(address, key) { | |
5 | 5 | case b: Int => | |
6 | 6 | b | |
7 | 7 | case _ => | |
8 | 8 | 0 | |
9 | 9 | } | |
10 | 10 | ||
11 | 11 | ||
12 | 12 | let keyInvokeNext = "invoke next" | |
13 | 13 | ||
14 | 14 | let keyActivated = "Activated blockheight" | |
15 | 15 | ||
16 | 16 | let keyActivated2 = "Activated 2 blockheight" | |
17 | 17 | ||
18 | 18 | let keyBotAddress = "bot address string" | |
19 | 19 | ||
20 | 20 | let keyBurnAmount = "burn amount" | |
21 | 21 | ||
22 | 22 | let keyBurnxtnAmount = "burn BURN-XTN amount" | |
23 | 23 | ||
24 | 24 | let d6 = 1000000 | |
25 | 25 | ||
26 | 26 | let vvxtnlp = base58'8KEtor9aSsSj38MknyAE7k1uRThHY9prAXgiE4D7WpyL' | |
27 | 27 | ||
28 | 28 | let xtnId = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p' | |
29 | 29 | ||
30 | 30 | let burnxtnId = base58'3SjxA2YLdfF9fTRbzLm9xFn27C6MW34W1YsdJ6Axefns' | |
31 | 31 | ||
32 | 32 | let surfId = base58'At8D6NFFpheCbvKVnjVoeLL84Eo8NZn6ovManxfLaFWL' | |
33 | 33 | ||
34 | 34 | let burn = Address(base58'3PCBL2vbjAVFbiCwmGsPmT6QdATutQnM8ov') | |
35 | 35 | ||
36 | 36 | let bbb = Address(base58'3PEgVPqJ3NYWbRn1CLELUpuY9KCmragc7sY') | |
37 | 37 | ||
38 | 38 | let swe = Address(base58'3PCxF4JryswYYp9mpUtE725wjTgvpBmp3M9') | |
39 | 39 | ||
40 | 40 | let whi = Address(base58'3PAkmJniMgnnAej5pYf2jFYkCbZow5pt9tr') | |
41 | 41 | ||
42 | 42 | let s = Address(base58'3PKjY3hmP1BCWtmhpXw9Ly85sgiQvpgq4wC') | |
43 | 43 | ||
44 | 44 | let bot = addressFromStringValue(getStringValue(this, keyBotAddress)) | |
45 | 45 | ||
46 | 46 | @Callable(i) | |
47 | 47 | func invoker () = { | |
48 | 48 | let inv1 = invoke(Address(base58'3PAucbbumdUXmhzcR421zGiayphEdo2tRoz'), "withdraw", nil, nil) | |
49 | 49 | if ((inv1 == inv1)) | |
50 | 50 | then { | |
51 | 51 | let inv2 = if ((50 > assetBalance(Address(base58'3PAucbbumdUXmhzcR421zGiayphEdo2tRoz'), vvxtnlp))) | |
52 | 52 | then invoke(Address(base58'3PAkmJniMgnnAej5pYf2jFYkCbZow5pt9tr'), "withdraw", nil, nil) | |
53 | 53 | else invoke(Address(base58'3PAucbbumdUXmhzcR421zGiayphEdo2tRoz'), "importVVXTNLP", nil, nil) | |
54 | 54 | if ((inv2 == inv2)) | |
55 | 55 | then { | |
56 | 56 | let inv3 = invoke(Address(base58'3PPCzX2doZ7agBNuGSKqjrbdXgGEtE7CpQ3'), "withdraw", nil, nil) | |
57 | 57 | if ((inv3 == inv3)) | |
58 | 58 | then { | |
59 | 59 | let inv4 = invoke(Address(base58'3PHLhWPrs1mrpM1ZDUv1VmUnZRwchADJELc'), "withdraw", nil, nil) | |
60 | 60 | if ((inv4 == inv4)) | |
61 | 61 | then nil | |
62 | 62 | else throw("Strict value is not equal to itself.") | |
63 | 63 | } | |
64 | 64 | else throw("Strict value is not equal to itself.") | |
65 | 65 | } | |
66 | 66 | else throw("Strict value is not equal to itself.") | |
67 | 67 | } | |
68 | 68 | else throw("Strict value is not equal to itself.") | |
69 | 69 | } | |
70 | 70 | ||
71 | 71 | ||
72 | 72 | ||
73 | 73 | @Callable(i) | |
74 | 74 | func invokerBBB () = if ((i.caller != bot)) | |
75 | 75 | then throw("no") | |
76 | 76 | else { | |
77 | 77 | let inv = if ((tryGetInteger(bbb, keyInvokeNext) == 2)) | |
78 | 78 | then invoke(this, "BBB2", nil, nil) | |
79 | 79 | else invoke(this, "BBB1", nil, nil) | |
80 | 80 | if ((inv == inv)) | |
81 | 81 | then nil | |
82 | 82 | else throw("Strict value is not equal to itself.") | |
83 | 83 | } | |
84 | 84 | ||
85 | 85 | ||
86 | 86 | ||
87 | 87 | @Callable(i) | |
88 | 88 | func BBB1 () = if ((i.caller != this)) | |
89 | 89 | then throw("no") | |
90 | 90 | else if (((getIntegerValue(bbb, keyActivated) + (7 * 1440)) > height)) | |
91 | 91 | then throw(("Wait till blockheight" + toString((getIntegerValue(bbb, keyActivated) + (7 * 1440))))) | |
92 | 92 | else { | |
93 | 93 | let inv = invoke(bbb, "claimInvestPuzzle", nil, nil) | |
94 | 94 | if ((inv == inv)) | |
95 | 95 | then [ScriptTransfer(bot, d6, unit)] | |
96 | 96 | else throw("Strict value is not equal to itself.") | |
97 | 97 | } | |
98 | 98 | ||
99 | 99 | ||
100 | 100 | ||
101 | 101 | @Callable(i) | |
102 | 102 | func BBB2 () = if ((i.caller != this)) | |
103 | 103 | then throw("no") | |
104 | 104 | else if (((getIntegerValue(bbb, keyActivated2) + (7 * 1440)) > height)) | |
105 | 105 | then throw(("Wait till blockheight" + toString((getIntegerValue(bbb, keyActivated2) + (7 * 1440))))) | |
106 | 106 | else { | |
107 | 107 | let inv = invoke(bbb, "distribute", nil, nil) | |
108 | 108 | if ((inv == inv)) | |
109 | 109 | then [ScriptTransfer(bot, d6, unit)] | |
110 | 110 | else throw("Strict value is not equal to itself.") | |
111 | 111 | } | |
112 | 112 | ||
113 | 113 | ||
114 | 114 | ||
115 | 115 | @Callable(i) | |
116 | 116 | func BBB1any () = if ((((getIntegerValue(bbb, keyActivated) + (7 * 1440)) + 2) > height)) | |
117 | 117 | then throw(("Wait till blockheight" + toString(((getIntegerValue(bbb, keyActivated) + (7 * 1440)) + 2)))) | |
118 | 118 | else if ((tryGetInteger(bbb, keyInvokeNext) == 2)) | |
119 | 119 | then throw("invoke BBB2any first") | |
120 | 120 | else { | |
121 | 121 | let inv = invoke(bbb, "claimInvestPuzzle", nil, nil) | |
122 | 122 | if ((inv == inv)) | |
123 | 123 | then [ScriptTransfer(bot, d6, unit)] | |
124 | 124 | else throw("Strict value is not equal to itself.") | |
125 | 125 | } | |
126 | 126 | ||
127 | 127 | ||
128 | 128 | ||
129 | 129 | @Callable(i) | |
130 | 130 | func BBB2any () = if ((((getIntegerValue(bbb, keyActivated2) + (7 * 1440)) + 2) > height)) | |
131 | 131 | then throw(("Wait till blockheight" + toString(((getIntegerValue(bbb, keyActivated2) + (7 * 1440)) + 2)))) | |
132 | 132 | else if ((tryGetInteger(bbb, keyInvokeNext) == 1)) | |
133 | 133 | then throw("invoke BBB1any first") | |
134 | 134 | else { | |
135 | 135 | let inv = invoke(bbb, "distribute", nil, nil) | |
136 | 136 | if ((inv == inv)) | |
137 | 137 | then [ScriptTransfer(bot, d6, unit)] | |
138 | 138 | else throw("Strict value is not equal to itself.") | |
139 | 139 | } | |
140 | 140 | ||
141 | 141 | ||
142 | 142 | ||
143 | 143 | @Callable(i) | |
144 | 144 | func botAddress (address) = if ((i.caller != this)) | |
145 | 145 | then throw("no") | |
146 | 146 | else [StringEntry(keyBotAddress, address)] | |
147 | 147 | ||
148 | 148 | ||
149 | 149 | ||
150 | 150 | @Callable(i) | |
151 | 151 | func changeIntegerEntry (keyString,integer) = if ((i.caller != this)) | |
152 | 152 | then throw("access only by project owner") | |
153 | 153 | else [IntegerEntry(keyString, integer)] | |
154 | 154 | ||
155 | 155 | ||
156 | 156 | ||
157 | 157 | @Callable(i) | |
158 | 158 | func burnXTN () = if (if ((i.caller != this)) | |
159 | 159 | then (i.caller != burn) | |
160 | 160 | else false) | |
161 | 161 | then throw("access only by project owner") | |
162 | 162 | else { | |
163 | 163 | let xtnBurnAmount = if ((assetBalance(this, xtnId) >= tryGetInteger(burn, keyBurnAmount))) | |
164 | 164 | then tryGetInteger(burn, keyBurnAmount) | |
165 | 165 | else 0 | |
166 | 166 | let xtnBurn = Burn(xtnId, xtnBurnAmount) | |
167 | 167 | let surfBurnAmount = if ((assetBalance(this, surfId) >= tryGetInteger(burn, keyBurnAmount))) | |
168 | 168 | then tryGetInteger(burn, keyBurnAmount) | |
169 | 169 | else 0 | |
170 | 170 | let surfBurn = Burn(surfId, surfBurnAmount) | |
171 | 171 | let burnxtnBurnAmount = if ((assetBalance(this, burnxtnId) >= tryGetInteger(burn, keyBurnxtnAmount))) | |
172 | 172 | then tryGetInteger(burn, keyBurnxtnAmount) | |
173 | 173 | else 0 | |
174 | 174 | let burnxtnBurn = Burn(burnxtnId, burnxtnBurnAmount) | |
175 | 175 | [xtnBurn, surfBurn, burnxtnBurn, IntegerEntry("XTN total burned", (getIntegerValue(this, "XTN total burned") + xtnBurnAmount)), IntegerEntry("SURF total burned", (tryGetInteger(this, "SURF total burned") + surfBurnAmount))] | |
176 | 176 | } | |
177 | 177 | ||
178 | 178 | ||
179 | 179 | ||
180 | 180 | @Callable(i) | |
181 | 181 | func invokerBurn1 () = if ((i.caller != s)) | |
182 | 182 | then throw("no") | |
183 | - | else { | |
184 | - | let inv1 = reentrantInvoke(burn, "invoke1", nil, nil) | |
185 | - | if ((inv1 == inv1)) | |
186 | - | then { | |
187 | - | let inv = invoke(swe, "allin", nil, nil) | |
188 | - | if ((inv == inv)) | |
189 | - | then { | |
190 | - | let inv2 = invoke(whi, "allin", nil, nil) | |
191 | - | if ((inv2 == inv2)) | |
192 | - | then [ScriptTransfer(bot, if ((getIntegerValue(this, keyInvokeNext) == 2)) | |
193 | - | then 0 | |
194 | - | else d6, unit), IntegerEntry(keyInvokeNext, 2)] | |
195 | - | else throw("Strict value is not equal to itself.") | |
196 | - | } | |
197 | - | else throw("Strict value is not equal to itself.") | |
198 | - | } | |
199 | - | else throw("Strict value is not equal to itself.") | |
200 | - | } | |
183 | + | else if ((tryGetInteger(this, keyInvokeNext) == 2)) | |
184 | + | then throw("invoke invokerBurn2 first") | |
185 | + | else { | |
186 | + | let inv1 = reentrantInvoke(burn, "invoke1", nil, nil) | |
187 | + | if ((inv1 == inv1)) | |
188 | + | then { | |
189 | + | let inv = invoke(swe, "allin", nil, nil) | |
190 | + | if ((inv == inv)) | |
191 | + | then { | |
192 | + | let inv2 = invoke(whi, "allin", nil, nil) | |
193 | + | if ((inv2 == inv2)) | |
194 | + | then [ScriptTransfer(bot, if ((i.caller == bot)) | |
195 | + | then d6 | |
196 | + | else 0, unit), IntegerEntry(keyInvokeNext, 2)] | |
197 | + | else throw("Strict value is not equal to itself.") | |
198 | + | } | |
199 | + | else throw("Strict value is not equal to itself.") | |
200 | + | } | |
201 | + | else throw("Strict value is not equal to itself.") | |
202 | + | } | |
201 | 203 | ||
202 | 204 | ||
203 | 205 | ||
204 | 206 | @Callable(i) | |
205 | 207 | func invokerBurn2 () = if ((i.caller != s)) | |
206 | 208 | then throw("no") | |
207 | - | else { | |
208 | - | let inv1 = reentrantInvoke(burn, "invoke2", nil, nil) | |
209 | - | if ((inv1 == inv1)) | |
210 | - | then [ScriptTransfer(bot, if ((getIntegerValue(this, keyInvokeNext) == 1)) | |
211 | - | then 0 | |
212 | - | else d6, unit), IntegerEntry(keyInvokeNext, 1)] | |
213 | - | else throw("Strict value is not equal to itself.") | |
214 | - | } | |
209 | + | else if ((tryGetInteger(this, keyInvokeNext) == 1)) | |
210 | + | then throw("invoke invokerBurn1 first") | |
211 | + | else { | |
212 | + | let inv1 = reentrantInvoke(burn, "invoke2", nil, nil) | |
213 | + | if ((inv1 == inv1)) | |
214 | + | then { | |
215 | + | let inv = invoke(swe, "allout", nil, nil) | |
216 | + | if ((inv == inv)) | |
217 | + | then { | |
218 | + | let inv2 = invoke(whi, "allout", nil, nil) | |
219 | + | if ((inv2 == inv2)) | |
220 | + | then [ScriptTransfer(bot, if ((i.caller == bot)) | |
221 | + | then d6 | |
222 | + | else 0, unit), IntegerEntry(keyInvokeNext, 1)] | |
223 | + | else throw("Strict value is not equal to itself.") | |
224 | + | } | |
225 | + | else throw("Strict value is not equal to itself.") | |
226 | + | } | |
227 | + | else throw("Strict value is not equal to itself.") | |
228 | + | } | |
215 | 229 | ||
216 | 230 |
github/deemru/w8io/873ac7e 30.78 ms ◑![]()