tx · Hy6haKnB43xDwac6dmTP8yGQDATQMna2g6LQWcmfZz65 3PNkQAzsSfguiMh2EHeithEbNzyAvZSNabf: -0.01400000 Waves 2021.09.16 23:32 [2771006] smart account 3PNkQAzsSfguiMh2EHeithEbNzyAvZSNabf > SELF 0.00000000 Waves
{ "type": 13, "id": "Hy6haKnB43xDwac6dmTP8yGQDATQMna2g6LQWcmfZz65", "fee": 1400000, "feeAssetId": null, "timestamp": 1631824433186, "version": 2, "chainId": 87, "sender": "3PNkQAzsSfguiMh2EHeithEbNzyAvZSNabf", "senderPublicKey": "CPof1RUBgXHe7ErgeBRDVVcZJ1WRWx2EvDePQWroqWon", "proofs": [ "78o9rLUW5C2Sa5RxJXpRA7yifpeoUnHk75k9davBr9mtDRiWBu62Y6aQeoSahiLSjGcuoNZ5d9FDHqwiuh1T24Z" ], "script": "base64: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", "height": 2771006, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 2kWM2gmTR78x4twKx3CKFwLvSRqCcyaPrQijeHJ9UwsA Next: none Diff:
Old | New | Differences | |
---|---|---|---|
7 | 7 | ||
8 | 8 | let c = "totalSwapped" | |
9 | 9 | ||
10 | - | let d = base58' | |
10 | + | let d = base58'JCGDtrVy64cCJ1wCKfCaiNQMnyYwii71TbE5QeAHfxgF' | |
11 | 11 | ||
12 | - | @Callable(e) | |
12 | + | let e = Address(base58'3P24mKjNg8zH4z8QctmwobE7Hm1kwa8R1gi') | |
13 | + | ||
14 | + | func f (g) = { | |
15 | + | let h = getInteger(e, g) | |
16 | + | if ($isInstanceOf(h, "Int")) | |
17 | + | then { | |
18 | + | let i = h | |
19 | + | i | |
20 | + | } | |
21 | + | else 0 | |
22 | + | } | |
23 | + | ||
24 | + | ||
25 | + | func j (g) = { | |
26 | + | let h = getInteger(this, g) | |
27 | + | if ($isInstanceOf(h, "Int")) | |
28 | + | then { | |
29 | + | let i = h | |
30 | + | i | |
31 | + | } | |
32 | + | else 0 | |
33 | + | } | |
34 | + | ||
35 | + | ||
36 | + | @Callable(k) | |
13 | 37 | func issueNewEgg () = if ((getBoolean(a) != unit)) | |
14 | 38 | then throw(("New EGG is already issued and its asset id is: " + getStringValue(b))) | |
15 | 39 | else { | |
16 | - | let | |
17 | - | let | |
18 | - | [ | |
40 | + | let l = Issue("Duck Egg", "Utility and Reward token @ WavesDucks.com game. The duckiest token in the world.", 1, 8, true, unit, 0) | |
41 | + | let m = calculateAssetId(l) | |
42 | + | [l, BooleanEntry(a, true), StringEntry(b, toBase58String(m))] | |
19 | 43 | } | |
20 | 44 | ||
21 | 45 | ||
22 | 46 | ||
23 | - | @Callable( | |
24 | - | func swapEgg () = if ((size( | |
47 | + | @Callable(k) | |
48 | + | func swapEgg () = if ((size(k.payments) != 1)) | |
25 | 49 | then throw("You can attach only EGG tokens") | |
26 | - | else if ((value( | |
50 | + | else if ((value(k.payments[0]).assetId != d)) | |
27 | 51 | then throw("You can attach only EGG tokens") | |
28 | 52 | else { | |
29 | - | let | |
30 | - | let | |
31 | - | if ($isInstanceOf( | |
53 | + | let n = { | |
54 | + | let h = getInteger(c) | |
55 | + | if ($isInstanceOf(h, "Int")) | |
32 | 56 | then { | |
33 | - | let | |
34 | - | | |
57 | + | let o = h | |
58 | + | o | |
35 | 59 | } | |
36 | 60 | else 0 | |
37 | 61 | } | |
38 | - | let k = fromBase58String(getStringValue(b)) | |
39 | - | let l = value(e.payments[0]).amount | |
40 | - | let m = (l * 1000000) | |
41 | - | let n = Reissue(k, m, true) | |
42 | - | [n, IntegerEntry((("swap_" + toBase58String(e.transactionId)) + "_amount"), l), IntegerEntry(c, (h + l)), ScriptTransfer(e.caller, m, k)] | |
62 | + | let p = fromBase58String(getStringValue(b)) | |
63 | + | let q = value(k.payments[0]).amount | |
64 | + | let r = (q + j((toString(k.caller) + "_swapped"))) | |
65 | + | if ((f((toString(k.caller) + "_canswap")) == 0)) | |
66 | + | then throw("This address is suspicious. Request needs to be moderated. Please contact support.") | |
67 | + | else if ((r > f((toString(k.caller) + "_canswap")))) | |
68 | + | then { | |
69 | + | let s = (f((toString(k.caller) + "_canswap")) - j((toString(k.caller) + "_swapped"))) | |
70 | + | throw((((("You can swap no more than " + toString((s / 100))) + ".") + takeRight(toString(s), 2)) + " EGG from this account")) | |
71 | + | } | |
72 | + | else { | |
73 | + | let t = (q * 1000000) | |
74 | + | let u = Reissue(p, t, true) | |
75 | + | [u, IntegerEntry((("swap_" + toBase58String(k.transactionId)) + "_amount"), q), IntegerEntry((toString(k.caller) + "_swapped"), r), IntegerEntry(c, (n + q)), ScriptTransfer(k.caller, t, p)] | |
76 | + | } | |
43 | 77 | } | |
44 | 78 | ||
45 | 79 | ||
46 | - | @Verifier( | |
47 | - | func | |
80 | + | @Verifier(v) | |
81 | + | func w () = sigVerify(v.bodyBytes, v.proofs[0], v.senderPublicKey) | |
48 | 82 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let a = "wasInited" | |
5 | 5 | ||
6 | 6 | let b = "newEgg_assetId" | |
7 | 7 | ||
8 | 8 | let c = "totalSwapped" | |
9 | 9 | ||
10 | - | let d = base58' | |
10 | + | let d = base58'JCGDtrVy64cCJ1wCKfCaiNQMnyYwii71TbE5QeAHfxgF' | |
11 | 11 | ||
12 | - | @Callable(e) | |
12 | + | let e = Address(base58'3P24mKjNg8zH4z8QctmwobE7Hm1kwa8R1gi') | |
13 | + | ||
14 | + | func f (g) = { | |
15 | + | let h = getInteger(e, g) | |
16 | + | if ($isInstanceOf(h, "Int")) | |
17 | + | then { | |
18 | + | let i = h | |
19 | + | i | |
20 | + | } | |
21 | + | else 0 | |
22 | + | } | |
23 | + | ||
24 | + | ||
25 | + | func j (g) = { | |
26 | + | let h = getInteger(this, g) | |
27 | + | if ($isInstanceOf(h, "Int")) | |
28 | + | then { | |
29 | + | let i = h | |
30 | + | i | |
31 | + | } | |
32 | + | else 0 | |
33 | + | } | |
34 | + | ||
35 | + | ||
36 | + | @Callable(k) | |
13 | 37 | func issueNewEgg () = if ((getBoolean(a) != unit)) | |
14 | 38 | then throw(("New EGG is already issued and its asset id is: " + getStringValue(b))) | |
15 | 39 | else { | |
16 | - | let | |
17 | - | let | |
18 | - | [ | |
40 | + | let l = Issue("Duck Egg", "Utility and Reward token @ WavesDucks.com game. The duckiest token in the world.", 1, 8, true, unit, 0) | |
41 | + | let m = calculateAssetId(l) | |
42 | + | [l, BooleanEntry(a, true), StringEntry(b, toBase58String(m))] | |
19 | 43 | } | |
20 | 44 | ||
21 | 45 | ||
22 | 46 | ||
23 | - | @Callable( | |
24 | - | func swapEgg () = if ((size( | |
47 | + | @Callable(k) | |
48 | + | func swapEgg () = if ((size(k.payments) != 1)) | |
25 | 49 | then throw("You can attach only EGG tokens") | |
26 | - | else if ((value( | |
50 | + | else if ((value(k.payments[0]).assetId != d)) | |
27 | 51 | then throw("You can attach only EGG tokens") | |
28 | 52 | else { | |
29 | - | let | |
30 | - | let | |
31 | - | if ($isInstanceOf( | |
53 | + | let n = { | |
54 | + | let h = getInteger(c) | |
55 | + | if ($isInstanceOf(h, "Int")) | |
32 | 56 | then { | |
33 | - | let | |
34 | - | | |
57 | + | let o = h | |
58 | + | o | |
35 | 59 | } | |
36 | 60 | else 0 | |
37 | 61 | } | |
38 | - | let k = fromBase58String(getStringValue(b)) | |
39 | - | let l = value(e.payments[0]).amount | |
40 | - | let m = (l * 1000000) | |
41 | - | let n = Reissue(k, m, true) | |
42 | - | [n, IntegerEntry((("swap_" + toBase58String(e.transactionId)) + "_amount"), l), IntegerEntry(c, (h + l)), ScriptTransfer(e.caller, m, k)] | |
62 | + | let p = fromBase58String(getStringValue(b)) | |
63 | + | let q = value(k.payments[0]).amount | |
64 | + | let r = (q + j((toString(k.caller) + "_swapped"))) | |
65 | + | if ((f((toString(k.caller) + "_canswap")) == 0)) | |
66 | + | then throw("This address is suspicious. Request needs to be moderated. Please contact support.") | |
67 | + | else if ((r > f((toString(k.caller) + "_canswap")))) | |
68 | + | then { | |
69 | + | let s = (f((toString(k.caller) + "_canswap")) - j((toString(k.caller) + "_swapped"))) | |
70 | + | throw((((("You can swap no more than " + toString((s / 100))) + ".") + takeRight(toString(s), 2)) + " EGG from this account")) | |
71 | + | } | |
72 | + | else { | |
73 | + | let t = (q * 1000000) | |
74 | + | let u = Reissue(p, t, true) | |
75 | + | [u, IntegerEntry((("swap_" + toBase58String(k.transactionId)) + "_amount"), q), IntegerEntry((toString(k.caller) + "_swapped"), r), IntegerEntry(c, (n + q)), ScriptTransfer(k.caller, t, p)] | |
76 | + | } | |
43 | 77 | } | |
44 | 78 | ||
45 | 79 | ||
46 | - | @Verifier( | |
47 | - | func | |
80 | + | @Verifier(v) | |
81 | + | func w () = sigVerify(v.bodyBytes, v.proofs[0], v.senderPublicKey) | |
48 | 82 |
github/deemru/w8io/873ac7e 41.36 ms ◑