tx · FfedwRjmVHxXx17yGAEC9rhsz7nJWGy4ZXHf5gr8sVMW 3P24mKjNg8zH4z8QctmwobE7Hm1kwa8R1gi: -0.01000000 Waves 2021.09.16 23:32 [2771006] smart account 3P24mKjNg8zH4z8QctmwobE7Hm1kwa8R1gi > SELF 0.00000000 Waves
{ "type": 13, "id": "FfedwRjmVHxXx17yGAEC9rhsz7nJWGy4ZXHf5gr8sVMW", "fee": 1000000, "feeAssetId": null, "timestamp": 1631824405016, "version": 2, "chainId": 87, "sender": "3P24mKjNg8zH4z8QctmwobE7Hm1kwa8R1gi", "senderPublicKey": "GhFeo4gjmrwXss75vdQmkmLaLuzJzkDqcFgjcXCPAhgZ", "proofs": [ "5ySXEsTdq44YscPd4GLjnWgzCmTdK7SZmKwd7CyqmgiroGm3DzeKor4dYEYsci9LPF7YQiiGQur67xMMckbRHs12" ], "script": "base64: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", "height": 2771006, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
Old | New | Differences | |
---|---|---|---|
1 | - | # no script | |
1 | + | {-# STDLIB_VERSION 5 #-} | |
2 | + | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | + | {-# CONTENT_TYPE DAPP #-} | |
4 | + | let kEggIssued = "wasInited" | |
5 | + | ||
6 | + | let kAssetId = "newEgg_assetId" | |
7 | + | ||
8 | + | let kTotalSwapped = "totalSwapped" | |
9 | + | ||
10 | + | let oldEggAssetId = base58'JCGDtrVy64cCJ1wCKfCaiNQMnyYwii71TbE5QeAHfxgF' | |
11 | + | ||
12 | + | let whitelistAddress = Address(base58'3P24mKjNg8zH4z8QctmwobE7Hm1kwa8R1gi') | |
13 | + | ||
14 | + | func getWhitelistInteger (k) = match getInteger(whitelistAddress, k) { | |
15 | + | case b: Int => | |
16 | + | b | |
17 | + | case _ => | |
18 | + | 0 | |
19 | + | } | |
20 | + | ||
21 | + | ||
22 | + | func tryGetInteger (k) = match getInteger(this, k) { | |
23 | + | case b: Int => | |
24 | + | b | |
25 | + | case _ => | |
26 | + | 0 | |
27 | + | } | |
28 | + | ||
29 | + | ||
30 | + | @Callable(i) | |
31 | + | func issueNewEgg () = if ((getBoolean(kEggIssued) != unit)) | |
32 | + | then throw(("New EGG is already issued and its asset id is: " + getStringValue(kAssetId))) | |
33 | + | else { | |
34 | + | let newEgg = Issue("Duck Egg", "Utility and Reward token @ WavesDucks.com game. The duckiest token in the world.", 1, 8, true, unit, 0) | |
35 | + | let newEggId = calculateAssetId(newEgg) | |
36 | + | [newEgg, BooleanEntry(kEggIssued, true), StringEntry(kAssetId, toBase58String(newEggId))] | |
37 | + | } | |
38 | + | ||
39 | + | ||
40 | + | ||
41 | + | @Callable(i) | |
42 | + | func swapEgg () = if ((size(i.payments) != 1)) | |
43 | + | then throw("You can attach only EGG tokens") | |
44 | + | else if ((value(i.payments[0]).assetId != oldEggAssetId)) | |
45 | + | then throw("You can attach only EGG tokens") | |
46 | + | else { | |
47 | + | let totalSwappedVal = match getInteger(kTotalSwapped) { | |
48 | + | case int: Int => | |
49 | + | int | |
50 | + | case _ => | |
51 | + | 0 | |
52 | + | } | |
53 | + | let newEggAssetId = fromBase58String(getStringValue(kAssetId)) | |
54 | + | let toSwapAmount = value(i.payments[0]).amount | |
55 | + | let userToSwapAmount = (toSwapAmount + tryGetInteger((toString(i.caller) + "_swapped"))) | |
56 | + | if ((getWhitelistInteger((toString(i.caller) + "_canswap")) == 0)) | |
57 | + | then throw("This address is suspicious. Request needs to be moderated. Please contact support.") | |
58 | + | else if ((userToSwapAmount > getWhitelistInteger((toString(i.caller) + "_canswap")))) | |
59 | + | then { | |
60 | + | let allowed = (getWhitelistInteger((toString(i.caller) + "_canswap")) - tryGetInteger((toString(i.caller) + "_swapped"))) | |
61 | + | throw((((("You can swap no more than " + toString((allowed / 100))) + ".") + takeRight(toString(allowed), 2)) + " EGG from this account")) | |
62 | + | } | |
63 | + | else { | |
64 | + | let swappedAmount = (toSwapAmount * 1000000) | |
65 | + | let reissue = Reissue(newEggAssetId, swappedAmount, true) | |
66 | + | [reissue, IntegerEntry((("swap_" + toBase58String(i.transactionId)) + "_amount"), toSwapAmount), IntegerEntry((toString(i.caller) + "_swapped"), userToSwapAmount), IntegerEntry(kTotalSwapped, (totalSwappedVal + toSwapAmount)), ScriptTransfer(i.caller, swappedAmount, newEggAssetId)] | |
67 | + | } | |
68 | + | } | |
69 | + | ||
70 | + | ||
71 | + | @Verifier(tx) | |
72 | + | func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
73 | + |
github/deemru/w8io/3ef1775 26.54 ms ◑