tx · F78fV2znNc3CqRVMumkUZaivBwYTCTktsG1hW3ZS4Rvm

3PPhk52YuwKTFT2U865di1Pepj4bFHxubFY:  -0.03800000 Waves

2022.11.09 20:11 [3375253] smart account 3PPhk52YuwKTFT2U865di1Pepj4bFHxubFY > SELF 0.00000000 Waves

{ "type": 13, "id": "F78fV2znNc3CqRVMumkUZaivBwYTCTktsG1hW3ZS4Rvm", "fee": 3800000, "feeAssetId": null, "timestamp": 1668013917863, "version": 2, "chainId": 87, "sender": "3PPhk52YuwKTFT2U865di1Pepj4bFHxubFY", "senderPublicKey": "5EhD7NvoyShNGdN6g6ps2X6FieUun2o7TTggY1CL9wH9", "proofs": [ "564tyWPDZ1u4VGo4aoaaGtEtHVPqfLw3Dyb3VsuENxBRXGdGwFS4EJcCwhJFyVcfUsDFvAbxmnkif3PGpvRRj23U" ], "script": "base64:BgIeCAISAwoBCBIDCgEIEgMKAQgSBQoDCAEYEgQKAggBBQAKaW5kaWNlc18yMAkAzAgCAAAJAMwIAgABCQDMCAIAAgkAzAgCAAMJAMwIAgAECQDMCAIABQkAzAgCAAYJAMwIAgAHCQDMCAIACAkAzAgCAAkJAMwIAgAKCQDMCAIACwkAzAgCAAwJAMwIAgANCQDMCAIADgkAzAgCAA8JAMwIAgAQCQDMCAIAEQkAzAgCABIJAMwIAgATBQNuaWwBD2NoZWNrX3doaXRlbGlzdAEGY2FsbGVyAwkAAAIFBHRoaXMFBmNhbGxlcgYEByRtYXRjaDAJAKAIAQkArAICAgJXXwkA2AQBCAUGY2FsbGVyBWJ5dGVzAwkAAQIFByRtYXRjaDACB0Jvb2xlYW4EAXgFByRtYXRjaDAFAXgHAQ9mb2xkX3B1dF9hc3NldHMCBWFjY3VtBWluZGV4BAkkdDA0NTU0OTcFBWFjY3VtBARsaXN0CAUJJHQwNDU1NDk3Al8xBAdhaXJkcm9wCAUJJHQwNDU1NDk3Al8yBANlbmQIBQkkdDA0NTU0OTcCXzMECHBheW1lbnRzCAUJJHQwNDU1NDk3Al80AwkAZwIFBWluZGV4CQCQAwEFCHBheW1lbnRzBQVhY2N1bQMJAQIhPQIICQCRAwIFCHBheW1lbnRzBQVpbmRleAZhbW91bnQAAQkAAgEJAKwCAgkArAICAg5Xcm9uZyBwYXltZW50IAkApAMBCQBkAgUFaW5kZXgAAQIHIGFtb3VudAQCaWQJANgEAQkBBXZhbHVlAQgJAJEDAgUIcGF5bWVudHMFBWluZGV4B2Fzc2V0SWQJAJYKBAkAzggCBQRsaXN0CQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICBQdhaXJkcm9wAgNfWF8JANgEAQkAmgMBCQBkAgUDZW5kBQVpbmRleAUCaWQFA25pbAUHYWlyZHJvcAUDZW5kBQhwYXltZW50cwEKZm9sZF9hbGxvdwIFYWNjdW0FaW5kZXgECiR0MDk3MjEwMTcFBWFjY3VtBARsaXN0CAUKJHQwOTcyMTAxNwJfMQQHYWlyZHJvcAgFCiR0MDk3MjEwMTcCXzIEBmFtb3VudAgFCiR0MDk3MjEwMTcCXzMECGFjY291bnRzCAUKJHQwOTcyMTAxNwJfNAMJAGcCBQVpbmRleAkAkAMBBQhhY2NvdW50cwUFYWNjdW0EA2tleQkArAICCQCsAgIFB2FpcmRyb3ACA19BXwkAkQMCBQhhY2NvdW50cwUFaW5kZXgEB2FsbG93ZWQEByRtYXRjaDAJAJ8IAQUDa2V5AwkAAQIFByRtYXRjaDACA0ludAQBagUHJG1hdGNoMAUBagAACQCWCgQJAM0IAgUEbGlzdAkBDEludGVnZXJFbnRyeQIFA2tleQkAZAIFB2FsbG93ZWQFBmFtb3VudAUHYWlyZHJvcAUGYW1vdW50BQhhY2NvdW50cwEKZm9sZF9jbGFpbQIFYWNjdW0FaW5kZXgECyR0MDE0MTMxNDU3BQVhY2N1bQQEbGlzdAgFCyR0MDE0MTMxNDU3Al8xBAZhbW91bnQIBQskdDAxNDEzMTQ1NwJfMgQHYWlyZHJvcAgFCyR0MDE0MTMxNDU3Al8zBAdjbGFpbWVyCAULJHQwMTQxMzE0NTcCXzQDCQBnAgAABQZhbW91bnQFBWFjY3VtBAlhc3NldF9rZXkJAKwCAgkArAICBQdhaXJkcm9wAgNfWF8JANgEAQkAmgMBBQVpbmRleAQIYXNzZXRfaWQJANkEAQkBEUBleHRyTmF0aXZlKDEwNTgpAQUJYXNzZXRfa2V5CQCWCgQJAM4IAgUEbGlzdAkAzAgCCQELRGVsZXRlRW50cnkBBQlhc3NldF9rZXkJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUHY2xhaW1lcgABBQhhc3NldF9pZAUDbmlsCQBlAgUGYW1vdW50AAEFB2FpcmRyb3AFB2NsYWltZXIFAWkBDXdoaXRlbGlzdF9hZGQBBHVzZXIDCQECIT0CBQR0aGlzCAUBaQZjYWxsZXIJAAIBAhhDYWxsZXIgaXMgbm90IGRBcHAgb3duZXIJAJQKAgkAzAgCCQEMQm9vbGVhbkVudHJ5AgkArAICAgJXXwUEdXNlcgYFA25pbAUEdW5pdAFpARB3aGl0ZWxpc3RfcmVtb3ZlAQR1c2VyAwkBAiE9AgUEdGhpcwgFAWkGY2FsbGVyCQACAQIYQ2FsbGVyIGlzIG5vdCBkQXBwIG93bmVyCQCUCgIJAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICAgJXXwUEdXNlcgUDbmlsBQR1bml0AWkBCnB1dF9hc3NldHMB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YW1vdW50BQdhbGxvd2VkCQACAQIbQ2FsbGVyIG5vdCBhbGxvd2VkIHRvIGNsYWltBAdrX2JlZ2luCQCsAgIFB2FpcmRyb3ACBl9iZWdpbgQFa19lbmQJAKwCAgUHYWlyZHJvcAIEX2VuZAQFYmVnaW4EByRtYXRjaDAJAJ8IAQUHa19iZWdpbgMJAAECBQckbWF0Y2gwAgNJbnQEAWoFByRtYXRjaDAFAWoAAAQDZW5kBAckbWF0Y2gwCQCfCAEFBWtfZW5kAwkAAQIFByRtYXRjaDACA0ludAQBagUHJG1hdGNoMAUBagAAAwMJAGcCAAAFBmFtb3VudAYJAGYCBQZhbW91bnQAFAkAAgECKVdyb25nIGFtb3VudCAoc2hvdWxkIGJlIGluIHJhbmdlIDEgLS0gMjApAwkAZgIFBmFtb3VudAkAZQIFA2VuZAUFYmVnaW4JAAIBAhJObyBhc3NldHMgaW4gc3RvY2sEB2luZGljZXMJAMwIAgUFYmVnaW4JAMwIAgkAZAIFBWJlZ2luAAEJAMwIAgkAZAIFBWJlZ2luAAIJAMwIAgkAZAIFBWJlZ2luAAMJAMwIAgkAZAIFBWJlZ2luAAQJAMwIAgkAZAIFBWJlZ2luAAUJAMwIAgkAZAIFBWJlZ2luAAYJAMwIAgkAZAIFBWJlZ2luAAcJAMwIAgkAZAIFBWJlZ2luAAgJAMwIAgkAZAIFBWJlZ2luAAkJAMwIAgkAZAIFBWJlZ2luAAoJAMwIAgkAZAIFBWJlZ2luAAsJAMwIAgkAZAIFBWJlZ2luAAwJAMwIAgkAZAIFBWJlZ2luAA0JAMwIAgkAZAIFBWJlZ2luAA4JAMwIAgkAZAIFBWJlZ2luAA8JAMwIAgkAZAIFBWJlZ2luABAJAMwIAgkAZAIFBWJlZ2luABEJAMwIAgkAZAIFBWJlZ2luABIJAMwIAgkAZAIFBWJlZ2luABMFA25pbAQLJHQwNDM1MzQ1MDYKAAIkbAUHaW5kaWNlcwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAJAJYKBAUDbmlsBQZhbW91bnQFB2FpcmRyb3AJAQdBZGRyZXNzAQgIBQFpBmNhbGxlcgVieXRlcwoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEKZm9sZF9jbGFpbQIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMjAJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUBARsaXN0CAULJHQwNDM1MzQ1MDYCXzEEB2Ftb3VudF8IBQskdDA0MzUzNDUwNgJfMgQIYWlyZHJvcF8IBQskdDA0MzUzNDUwNgJfMwQIY2xhaW1lcl8IBQskdDA0MzUzNDUwNgJfNAkAlAoCCQDOCAIJAMwIAgkBDEludGVnZXJFbnRyeQIFCWtfYWxsb3dlZAkAZQIFB2FsbG93ZWQFBmFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgUHa19iZWdpbgkAZAIFBWJlZ2luBQZhbW91bnQFA25pbAUEbGlzdAUEdW5pdADkz3cj", "height": 3375253, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 7Gbr33NgbcxXav4ztNamYKZ5zxAUk5G6j33NyDri6G1K Next: 2GfPwtNpxuGA6zz7soxtsTAoLj9oF9ZQsc2Rdg9VokAF Diff:
OldNewDifferences
1414
1515
1616 func fold_put_assets (accum,index) = {
17- let $t0462499 = accum
18- let list = $t0462499._1
19- let airdrop = $t0462499._2
20- let payments = $t0462499._3
17+ let $t0455497 = accum
18+ let list = $t0455497._1
19+ let airdrop = $t0455497._2
20+ let end = $t0455497._3
21+ let payments = $t0455497._4
2122 if ((index >= size(payments)))
2223 then accum
2324 else if ((payments[index].amount != 1))
2425 then throw((("Wrong payment " + toString((index + 1))) + " amount"))
2526 else {
26- let key = (airdrop + "_end")
27- let end = match getInteger(key) {
28- case j: Int =>
29- j
30- case _ =>
31- 0
32- }
3327 let id = toBase58String(value(payments[index].assetId))
34- $Tuple3((list ++ [IntegerEntry(key, (end + 1)), StringEntry(((airdrop + "_X_") + toBase58String(toBytes(end))), id)]), airdrop, payments)
28+ $Tuple4((list ++ [StringEntry(((airdrop + "_X_") + toBase58String(toBytes((end + index)))), id)]), airdrop, end, payments)
3529 }
3630 }
3731
3832
3933 func fold_allow (accum,index) = {
40- let $t011121157 = accum
41- let list = $t011121157._1
42- let airdrop = $t011121157._2
43- let amount = $t011121157._3
44- let accounts = $t011121157._4
34+ let $t09721017 = accum
35+ let list = $t09721017._1
36+ let airdrop = $t09721017._2
37+ let amount = $t09721017._3
38+ let accounts = $t09721017._4
4539 if ((index >= size(accounts)))
4640 then accum
4741 else {
5852
5953
6054 func fold_claim (accum,index) = {
61- let $t015531597 = accum
62- let list = $t015531597._1
63- let amount = $t015531597._2
64- let airdrop = $t015531597._3
65- let claimer = $t015531597._4
55+ let $t014131457 = accum
56+ let list = $t014131457._1
57+ let amount = $t014131457._2
58+ let airdrop = $t014131457._3
59+ let claimer = $t014131457._4
6660 if ((0 >= amount))
6761 then accum
6862 else {
9589 else if ((size(i.payments) > 20))
9690 then throw("To many assets")
9791 else {
98- let $t025622660 = {
92+ let k_end = (airdrop + "_end")
93+ let end = match getInteger(k_end) {
94+ case j: Int =>
95+ j
96+ case _ =>
97+ 0
98+ }
99+ let $t025492658 = {
99100 let $l = indices_20
100101 let $s = size($l)
101- let $acc0 = $Tuple3(nil, airdrop, i.payments)
102+ let $acc0 = $Tuple4(nil, airdrop, end, i.payments)
102103 func $f0_1 ($a,$i) = if (($i >= $s))
103104 then $a
104105 else fold_put_assets($a, $l[$i])
109110
110111 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
111112 }
112- let list = $t025622660._1
113- let airdrop_ = $t025622660._2
114- let payments_ = $t025622660._3
115- $Tuple2(list, unit)
113+ let list = $t025492658._1
114+ let airdrop_ = $t025492658._2
115+ let end_ = $t025492658._3
116+ let payments_ = $t025492658._4
117+ $Tuple2(([IntegerEntry(k_end, (end + size(i.payments)))] ++ list), unit)
116118 }
117119
118120
127129 else if ((size(accounts) > 20))
128130 then throw("Too many accounts")
129131 else {
130- let $t030423150 = {
132+ let $t030983206 = {
131133 let $l = indices_20
132134 let $s = size($l)
133135 let $acc0 = $Tuple4(nil, airdrop, amount, accounts)
141143
142144 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
143145 }
144- let list = $t030423150._1
145- let airdrop_ = $t030423150._2
146- let amount_ = $t030423150._3
147- let accounts_ = $t030423150._4
146+ let list = $t030983206._1
147+ let airdrop_ = $t030983206._2
148+ let amount_ = $t030983206._3
149+ let accounts_ = $t030983206._4
148150 $Tuple2(list, unit)
149151 }
150152
179181 then throw("No assets in stock")
180182 else {
181183 let indices = [begin, (begin + 1), (begin + 2), (begin + 3), (begin + 4), (begin + 5), (begin + 6), (begin + 7), (begin + 8), (begin + 9), (begin + 10), (begin + 11), (begin + 12), (begin + 13), (begin + 14), (begin + 15), (begin + 16), (begin + 17), (begin + 18), (begin + 19)]
182- let $t042974450 = {
184+ let $t043534506 = {
183185 let $l = indices
184186 let $s = size($l)
185187 let $acc0 = $Tuple4(nil, amount, airdrop, Address(i.caller.bytes))
193195
194196 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
195197 }
196- let list = $t042974450._1
197- let amount_ = $t042974450._2
198- let airdrop_ = $t042974450._3
199- let claimer_ = $t042974450._4
198+ let list = $t043534506._1
199+ let amount_ = $t043534506._2
200+ let airdrop_ = $t043534506._3
201+ let claimer_ = $t043534506._4
200202 $Tuple2(([IntegerEntry(k_allowed, (allowed - amount)), IntegerEntry(k_begin, (begin + amount))] ++ list), unit)
201203 }
202204 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let indices_20 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
55
66 func check_whitelist (caller) = if ((this == caller))
77 then true
88 else match getBoolean(("W_" + toBase58String(caller.bytes))) {
99 case x: Boolean =>
1010 x
1111 case _ =>
1212 false
1313 }
1414
1515
1616 func fold_put_assets (accum,index) = {
17- let $t0462499 = accum
18- let list = $t0462499._1
19- let airdrop = $t0462499._2
20- let payments = $t0462499._3
17+ let $t0455497 = accum
18+ let list = $t0455497._1
19+ let airdrop = $t0455497._2
20+ let end = $t0455497._3
21+ let payments = $t0455497._4
2122 if ((index >= size(payments)))
2223 then accum
2324 else if ((payments[index].amount != 1))
2425 then throw((("Wrong payment " + toString((index + 1))) + " amount"))
2526 else {
26- let key = (airdrop + "_end")
27- let end = match getInteger(key) {
28- case j: Int =>
29- j
30- case _ =>
31- 0
32- }
3327 let id = toBase58String(value(payments[index].assetId))
34- $Tuple3((list ++ [IntegerEntry(key, (end + 1)), StringEntry(((airdrop + "_X_") + toBase58String(toBytes(end))), id)]), airdrop, payments)
28+ $Tuple4((list ++ [StringEntry(((airdrop + "_X_") + toBase58String(toBytes((end + index)))), id)]), airdrop, end, payments)
3529 }
3630 }
3731
3832
3933 func fold_allow (accum,index) = {
40- let $t011121157 = accum
41- let list = $t011121157._1
42- let airdrop = $t011121157._2
43- let amount = $t011121157._3
44- let accounts = $t011121157._4
34+ let $t09721017 = accum
35+ let list = $t09721017._1
36+ let airdrop = $t09721017._2
37+ let amount = $t09721017._3
38+ let accounts = $t09721017._4
4539 if ((index >= size(accounts)))
4640 then accum
4741 else {
4842 let key = ((airdrop + "_A_") + accounts[index])
4943 let allowed = match getInteger(key) {
5044 case j: Int =>
5145 j
5246 case _ =>
5347 0
5448 }
5549 $Tuple4((list :+ IntegerEntry(key, (allowed + amount))), airdrop, amount, accounts)
5650 }
5751 }
5852
5953
6054 func fold_claim (accum,index) = {
61- let $t015531597 = accum
62- let list = $t015531597._1
63- let amount = $t015531597._2
64- let airdrop = $t015531597._3
65- let claimer = $t015531597._4
55+ let $t014131457 = accum
56+ let list = $t014131457._1
57+ let amount = $t014131457._2
58+ let airdrop = $t014131457._3
59+ let claimer = $t014131457._4
6660 if ((0 >= amount))
6761 then accum
6862 else {
6963 let asset_key = ((airdrop + "_X_") + toBase58String(toBytes(index)))
7064 let asset_id = fromBase58String(getStringValue(asset_key))
7165 $Tuple4((list ++ [DeleteEntry(asset_key), ScriptTransfer(claimer, 1, asset_id)]), (amount - 1), airdrop, claimer)
7266 }
7367 }
7468
7569
7670 @Callable(i)
7771 func whitelist_add (user) = if ((this != i.caller))
7872 then throw("Caller is not dApp owner")
7973 else $Tuple2([BooleanEntry(("W_" + user), true)], unit)
8074
8175
8276
8377 @Callable(i)
8478 func whitelist_remove (user) = if ((this != i.caller))
8579 then throw("Caller is not dApp owner")
8680 else $Tuple2([DeleteEntry(("W_" + user))], unit)
8781
8882
8983
9084 @Callable(i)
9185 func put_assets (airdrop) = if (!(check_whitelist(i.caller)))
9286 then throw("Caller not in whitelist")
9387 else if ((size(i.payments) == 0))
9488 then throw("No payment")
9589 else if ((size(i.payments) > 20))
9690 then throw("To many assets")
9791 else {
98- let $t025622660 = {
92+ let k_end = (airdrop + "_end")
93+ let end = match getInteger(k_end) {
94+ case j: Int =>
95+ j
96+ case _ =>
97+ 0
98+ }
99+ let $t025492658 = {
99100 let $l = indices_20
100101 let $s = size($l)
101- let $acc0 = $Tuple3(nil, airdrop, i.payments)
102+ let $acc0 = $Tuple4(nil, airdrop, end, i.payments)
102103 func $f0_1 ($a,$i) = if (($i >= $s))
103104 then $a
104105 else fold_put_assets($a, $l[$i])
105106
106107 func $f0_2 ($a,$i) = if (($i >= $s))
107108 then $a
108109 else throw("List size exceeds 20")
109110
110111 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
111112 }
112- let list = $t025622660._1
113- let airdrop_ = $t025622660._2
114- let payments_ = $t025622660._3
115- $Tuple2(list, unit)
113+ let list = $t025492658._1
114+ let airdrop_ = $t025492658._2
115+ let end_ = $t025492658._3
116+ let payments_ = $t025492658._4
117+ $Tuple2(([IntegerEntry(k_end, (end + size(i.payments)))] ++ list), unit)
116118 }
117119
118120
119121
120122 @Callable(i)
121123 func allow (airdrop,amount,accounts) = if (!(check_whitelist(i.caller)))
122124 then throw("Caller not in whitelist")
123125 else if ((amount == 0))
124126 then throw("Wrong amount")
125127 else if ((size(accounts) == 0))
126128 then throw("No accounts")
127129 else if ((size(accounts) > 20))
128130 then throw("Too many accounts")
129131 else {
130- let $t030423150 = {
132+ let $t030983206 = {
131133 let $l = indices_20
132134 let $s = size($l)
133135 let $acc0 = $Tuple4(nil, airdrop, amount, accounts)
134136 func $f0_1 ($a,$i) = if (($i >= $s))
135137 then $a
136138 else fold_allow($a, $l[$i])
137139
138140 func $f0_2 ($a,$i) = if (($i >= $s))
139141 then $a
140142 else throw("List size exceeds 20")
141143
142144 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
143145 }
144- let list = $t030423150._1
145- let airdrop_ = $t030423150._2
146- let amount_ = $t030423150._3
147- let accounts_ = $t030423150._4
146+ let list = $t030983206._1
147+ let airdrop_ = $t030983206._2
148+ let amount_ = $t030983206._3
149+ let accounts_ = $t030983206._4
148150 $Tuple2(list, unit)
149151 }
150152
151153
152154
153155 @Callable(i)
154156 func claim (airdrop,amount) = {
155157 let k_allowed = ((airdrop + "_A_") + toBase58String(i.caller.bytes))
156158 let allowed = getIntegerValue(k_allowed)
157159 if ((amount > allowed))
158160 then throw("Caller not allowed to claim")
159161 else {
160162 let k_begin = (airdrop + "_begin")
161163 let k_end = (airdrop + "_end")
162164 let begin = match getInteger(k_begin) {
163165 case j: Int =>
164166 j
165167 case _ =>
166168 0
167169 }
168170 let end = match getInteger(k_end) {
169171 case j: Int =>
170172 j
171173 case _ =>
172174 0
173175 }
174176 if (if ((0 >= amount))
175177 then true
176178 else (amount > 20))
177179 then throw("Wrong amount (should be in range 1 -- 20)")
178180 else if ((amount > (end - begin)))
179181 then throw("No assets in stock")
180182 else {
181183 let indices = [begin, (begin + 1), (begin + 2), (begin + 3), (begin + 4), (begin + 5), (begin + 6), (begin + 7), (begin + 8), (begin + 9), (begin + 10), (begin + 11), (begin + 12), (begin + 13), (begin + 14), (begin + 15), (begin + 16), (begin + 17), (begin + 18), (begin + 19)]
182- let $t042974450 = {
184+ let $t043534506 = {
183185 let $l = indices
184186 let $s = size($l)
185187 let $acc0 = $Tuple4(nil, amount, airdrop, Address(i.caller.bytes))
186188 func $f0_1 ($a,$i) = if (($i >= $s))
187189 then $a
188190 else fold_claim($a, $l[$i])
189191
190192 func $f0_2 ($a,$i) = if (($i >= $s))
191193 then $a
192194 else throw("List size exceeds 20")
193195
194196 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
195197 }
196- let list = $t042974450._1
197- let amount_ = $t042974450._2
198- let airdrop_ = $t042974450._3
199- let claimer_ = $t042974450._4
198+ let list = $t043534506._1
199+ let amount_ = $t043534506._2
200+ let airdrop_ = $t043534506._3
201+ let claimer_ = $t043534506._4
200202 $Tuple2(([IntegerEntry(k_allowed, (allowed - amount)), IntegerEntry(k_begin, (begin + amount))] ++ list), unit)
201203 }
202204 }
203205 }
204206
205207

github/deemru/w8io/3ef1775 
49.82 ms