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:
OldNewDifferences
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