tx · 73FyeHyUszJq4372tCxgp11b3PEcuetSgzKPZDeqZAjV 3NAAQMEFj8Cy37pzLC4gtTeHbuaEiGEX1M3: -0.00500000 Waves 2025.02.08 14:33 [3494708] smart account 3NAAQMEFj8Cy37pzLC4gtTeHbuaEiGEX1M3 > SELF 0.00000000 Waves
{ "type": 13, "id": "73FyeHyUszJq4372tCxgp11b3PEcuetSgzKPZDeqZAjV", "fee": 500000, "feeAssetId": null, "timestamp": 1739014436398, "version": 2, "chainId": 84, "sender": "3NAAQMEFj8Cy37pzLC4gtTeHbuaEiGEX1M3", "senderPublicKey": "4uGJR82rhHgF5XxnT6AqckK4odfCisfsUoBv7MQqXZj8", "proofs": [ "tTsbctHh512WHuj9gkGq6AcQKbLg1g7nhQrZXHi8WhCVGoS6hfNnmthT5ZGjgbwLv6CHPcUJygeH36stfiV1Epm" ], "script": "base64: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MF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACYAJwAoACkAKgArACwALQAuAC8AMAAxADIAMwA0ADUANgA3ADgAOQA6ADsAPAA9AD4APwBAAEEAQgBDAEQARQBGAEcASABJAEoASwBMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWgBbAFwAXQBeAF8AYABhAGIAYwBkBAVhZ2dycwgFBnJlc3VsdAJfMwoBCHZhbGlkYXRlAgFhAXADCQECIT0CCQCRAwIFBWFnZ3JzBQFhCAUBcAZhbW91bnQJAAIBAidBZ2dyZWdhdGVkIGFtb3VudHMgZG9uJ3QgbWF0Y2ggcGF5bWVudHMJAGQCBQFhAAEECXZhbGlkYXRlZAoAAiRsCAUBaQhwYXltZW50cwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAAAAoBBSRmMV8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEIdmFsaWRhdGUCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjFfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDEwCQEFJGYxXzICCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoJAJQKAggFBnJlc3VsdAJfMQUJdmFsaWRhdGVkACg1wzg=", "height": 3494708, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: EaZ5TR1uTMkMctN1nFzar7rL2PYs4mNFETbp3xHwJwVo Next: none Diff:
Old | New | Differences | |
---|---|---|---|
4 | 4 | ||
5 | 5 | ||
6 | 6 | @Callable(a) | |
7 | - | func massXfer (b,c,d,e) = if (!(if ((size(b) == size(c))) | |
8 | - | then (size(b) == size(d)) | |
7 | + | func massXferMono (b,c,d) = if ((size(b) != size(c))) | |
8 | + | then throw("Array sizes mismatch") | |
9 | + | else if ((size(a.payments) != 1)) | |
10 | + | then throw("Exactly 1 payment expected") | |
11 | + | else { | |
12 | + | let e = a.payments[0] | |
13 | + | func f (g,h) = { | |
14 | + | let i = g | |
15 | + | let j = i._1 | |
16 | + | let k = i._2 | |
17 | + | let l = i._3 | |
18 | + | let m = c[k] | |
19 | + | $Tuple3((j :+ ScriptTransfer(addressFromStringValue(h), m, e.assetId)), (k + 1), (l + m)) | |
20 | + | } | |
21 | + | ||
22 | + | let n = { | |
23 | + | let o = b | |
24 | + | let p = size(o) | |
25 | + | let q = $Tuple3(nil, 0, 0) | |
26 | + | func r (s,t) = if ((t >= p)) | |
27 | + | then s | |
28 | + | else f(s, o[t]) | |
29 | + | ||
30 | + | func u (s,t) = if ((t >= p)) | |
31 | + | then s | |
32 | + | else throw("List size exceeds 100") | |
33 | + | ||
34 | + | u(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(q, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100) | |
35 | + | } | |
36 | + | if ((n._3 != e.amount)) | |
37 | + | then throw("Aggregated amount doesn't match payment") | |
38 | + | else $Tuple2(n._1, 0) | |
39 | + | } | |
40 | + | ||
41 | + | ||
42 | + | ||
43 | + | @Callable(a) | |
44 | + | func massXfer (b,c,v,d) = if (!(if ((size(b) == size(c))) | |
45 | + | then (size(b) == size(v)) | |
9 | 46 | else false)) | |
10 | 47 | then throw("Array sizes mismatch") | |
11 | 48 | else { | |
12 | - | let | |
13 | - | func | |
14 | - | let | |
15 | - | let | |
16 | - | let | |
17 | - | let | |
18 | - | let | |
19 | - | if (( | |
49 | + | let w = size(b) | |
50 | + | func x (g,h) = { | |
51 | + | let y = g | |
52 | + | let j = y._1 | |
53 | + | let k = y._2 | |
54 | + | let z = y._3 | |
55 | + | let A = v[k] | |
56 | + | if ((A >= size(a.payments))) | |
20 | 57 | then throw("paymentIdx out of bounds") | |
21 | 58 | else { | |
22 | - | let | |
23 | - | let | |
24 | - | $Tuple3(( | |
59 | + | let B = a.payments[A] | |
60 | + | let m = c[k] | |
61 | + | $Tuple3((j :+ ScriptTransfer(addressFromStringValue(h), m, B.assetId)), (k + 1), replaceByIndex(z, A, (z[A] + m))) | |
25 | 62 | } | |
26 | 63 | } | |
27 | 64 | ||
28 | - | let | |
29 | - | let | |
30 | - | let | |
31 | - | let | |
32 | - | func | |
33 | - | then | |
34 | - | else | |
65 | + | let n = { | |
66 | + | let o = b | |
67 | + | let p = size(o) | |
68 | + | let q = $Tuple3(nil, 0, [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]) | |
69 | + | func r (s,t) = if ((t >= p)) | |
70 | + | then s | |
71 | + | else x(s, o[t]) | |
35 | 72 | ||
36 | - | func | |
37 | - | then | |
73 | + | func u (s,t) = if ((t >= p)) | |
74 | + | then s | |
38 | 75 | else throw("List size exceeds 100") | |
39 | 76 | ||
40 | - | | |
77 | + | u(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(q, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100) | |
41 | 78 | } | |
42 | - | let | |
43 | - | func | |
79 | + | let z = n._3 | |
80 | + | func C (D,E) = if ((z[D] != E.amount)) | |
44 | 81 | then throw("Aggregated amounts don't match payments") | |
45 | - | else ( | |
82 | + | else (D + 1) | |
46 | 83 | ||
47 | - | let | |
48 | - | let | |
49 | - | let | |
50 | - | let | |
51 | - | func | |
52 | - | then | |
53 | - | else | |
84 | + | let F = { | |
85 | + | let o = a.payments | |
86 | + | let p = size(o) | |
87 | + | let q = 0 | |
88 | + | func G (s,t) = if ((t >= p)) | |
89 | + | then s | |
90 | + | else C(s, o[t]) | |
54 | 91 | ||
55 | - | func | |
56 | - | then | |
92 | + | func H (s,t) = if ((t >= p)) | |
93 | + | then s | |
57 | 94 | else throw("List size exceeds 10") | |
58 | 95 | ||
59 | - | | |
96 | + | H(G(G(G(G(G(G(G(G(G(G(q, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10) | |
60 | 97 | } | |
61 | - | $Tuple2( | |
98 | + | $Tuple2(n._1, F) | |
62 | 99 | } | |
63 | 100 | ||
64 | 101 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 8 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | ||
5 | 5 | ||
6 | 6 | @Callable(a) | |
7 | - | func massXfer (b,c,d,e) = if (!(if ((size(b) == size(c))) | |
8 | - | then (size(b) == size(d)) | |
7 | + | func massXferMono (b,c,d) = if ((size(b) != size(c))) | |
8 | + | then throw("Array sizes mismatch") | |
9 | + | else if ((size(a.payments) != 1)) | |
10 | + | then throw("Exactly 1 payment expected") | |
11 | + | else { | |
12 | + | let e = a.payments[0] | |
13 | + | func f (g,h) = { | |
14 | + | let i = g | |
15 | + | let j = i._1 | |
16 | + | let k = i._2 | |
17 | + | let l = i._3 | |
18 | + | let m = c[k] | |
19 | + | $Tuple3((j :+ ScriptTransfer(addressFromStringValue(h), m, e.assetId)), (k + 1), (l + m)) | |
20 | + | } | |
21 | + | ||
22 | + | let n = { | |
23 | + | let o = b | |
24 | + | let p = size(o) | |
25 | + | let q = $Tuple3(nil, 0, 0) | |
26 | + | func r (s,t) = if ((t >= p)) | |
27 | + | then s | |
28 | + | else f(s, o[t]) | |
29 | + | ||
30 | + | func u (s,t) = if ((t >= p)) | |
31 | + | then s | |
32 | + | else throw("List size exceeds 100") | |
33 | + | ||
34 | + | u(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(q, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100) | |
35 | + | } | |
36 | + | if ((n._3 != e.amount)) | |
37 | + | then throw("Aggregated amount doesn't match payment") | |
38 | + | else $Tuple2(n._1, 0) | |
39 | + | } | |
40 | + | ||
41 | + | ||
42 | + | ||
43 | + | @Callable(a) | |
44 | + | func massXfer (b,c,v,d) = if (!(if ((size(b) == size(c))) | |
45 | + | then (size(b) == size(v)) | |
9 | 46 | else false)) | |
10 | 47 | then throw("Array sizes mismatch") | |
11 | 48 | else { | |
12 | - | let | |
13 | - | func | |
14 | - | let | |
15 | - | let | |
16 | - | let | |
17 | - | let | |
18 | - | let | |
19 | - | if (( | |
49 | + | let w = size(b) | |
50 | + | func x (g,h) = { | |
51 | + | let y = g | |
52 | + | let j = y._1 | |
53 | + | let k = y._2 | |
54 | + | let z = y._3 | |
55 | + | let A = v[k] | |
56 | + | if ((A >= size(a.payments))) | |
20 | 57 | then throw("paymentIdx out of bounds") | |
21 | 58 | else { | |
22 | - | let | |
23 | - | let | |
24 | - | $Tuple3(( | |
59 | + | let B = a.payments[A] | |
60 | + | let m = c[k] | |
61 | + | $Tuple3((j :+ ScriptTransfer(addressFromStringValue(h), m, B.assetId)), (k + 1), replaceByIndex(z, A, (z[A] + m))) | |
25 | 62 | } | |
26 | 63 | } | |
27 | 64 | ||
28 | - | let | |
29 | - | let | |
30 | - | let | |
31 | - | let | |
32 | - | func | |
33 | - | then | |
34 | - | else | |
65 | + | let n = { | |
66 | + | let o = b | |
67 | + | let p = size(o) | |
68 | + | let q = $Tuple3(nil, 0, [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]) | |
69 | + | func r (s,t) = if ((t >= p)) | |
70 | + | then s | |
71 | + | else x(s, o[t]) | |
35 | 72 | ||
36 | - | func | |
37 | - | then | |
73 | + | func u (s,t) = if ((t >= p)) | |
74 | + | then s | |
38 | 75 | else throw("List size exceeds 100") | |
39 | 76 | ||
40 | - | | |
77 | + | u(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(q, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100) | |
41 | 78 | } | |
42 | - | let | |
43 | - | func | |
79 | + | let z = n._3 | |
80 | + | func C (D,E) = if ((z[D] != E.amount)) | |
44 | 81 | then throw("Aggregated amounts don't match payments") | |
45 | - | else ( | |
82 | + | else (D + 1) | |
46 | 83 | ||
47 | - | let | |
48 | - | let | |
49 | - | let | |
50 | - | let | |
51 | - | func | |
52 | - | then | |
53 | - | else | |
84 | + | let F = { | |
85 | + | let o = a.payments | |
86 | + | let p = size(o) | |
87 | + | let q = 0 | |
88 | + | func G (s,t) = if ((t >= p)) | |
89 | + | then s | |
90 | + | else C(s, o[t]) | |
54 | 91 | ||
55 | - | func | |
56 | - | then | |
92 | + | func H (s,t) = if ((t >= p)) | |
93 | + | then s | |
57 | 94 | else throw("List size exceeds 10") | |
58 | 95 | ||
59 | - | | |
96 | + | H(G(G(G(G(G(G(G(G(G(G(q, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10) | |
60 | 97 | } | |
61 | - | $Tuple2( | |
98 | + | $Tuple2(n._1, F) | |
62 | 99 | } | |
63 | 100 | ||
64 | 101 |
github/deemru/w8io/169f3d6 123.11 ms ◑![]()