tx · FtrF5biV8cRBnhSjEA8VrMtypT2pJfUjXg1LzU5S28Sx

3N891YJA2NTVhksnPmD1XUpPRRoV6MEPPGy:  -0.01400000 Waves

2019.06.26 11:07 [558818] smart account 3N891YJA2NTVhksnPmD1XUpPRRoV6MEPPGy > SELF 0.00000000 Waves

{ "type": 13, "id": "FtrF5biV8cRBnhSjEA8VrMtypT2pJfUjXg1LzU5S28Sx", "fee": 1400000, "feeAssetId": null, "timestamp": 1561536447097, "version": 1, "sender": "3N891YJA2NTVhksnPmD1XUpPRRoV6MEPPGy", "senderPublicKey": "AjSQtikSZV3TwaCmnMFMDTn1JVkR7YQ1AMRcNMC2u3iD", "proofs": [ "3irketZJ3UyL1QNuvU7dvZMjH59jg1wsxRLuzMM1YwtgApf4iKH2XAePCKsRXfNGCQzk7SvtxwicyrpvP5KZckUe" ], "script": "base64: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", "chainId": 84, "height": 558818, "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 3 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let ownerPk = base58'AjSQtikSZV3TwaCmnMFMDTn1JVkR7YQ1AMRcNMC2u3iD'
5+
6+func isOwner (trans) = sigVerify(trans.bodyBytes, trans.proofs[0], ownerPk)
7+
8+
9+func callerAddr (i) = toBase58String(i.caller.bytes)
10+
11+
12+let iceAsset = base58'BST4kZGeCW2TevtwokquHtT8FzqbGbdZV8FY5tXDEmr5'
13+
14+func assetPayAmount (i) = if ((extract(i.payment).assetId != iceAsset))
15+ then throw("Token is not support!")
16+ else extract(i.payment).amount
17+
18+
19+func throwKeyNotFound (key) = throw((("Key [" + key) + "] not found!"))
20+
21+
22+func getIntByKey (key) = match getInteger(this, key) {
23+ case n: Int =>
24+ n
25+ case _ =>
26+ throwKeyNotFound(key)
27+}
28+
29+
30+func isKeyExist (key) = match getInteger(this, key) {
31+ case n: Int =>
32+ true
33+ case _ =>
34+ match getString(this, key) {
35+ case s: String =>
36+ true
37+ case _ =>
38+ match getBoolean(this, key) {
39+ case b: Boolean =>
40+ true
41+ case _ =>
42+ match getBinary(this, key) {
43+ case b: ByteVector =>
44+ true
45+ case _ =>
46+ false
47+ }
48+ }
49+ }
50+}
51+
52+
53+func getIntOrDefaultByKey (key) = if (isKeyExist(key))
54+ then getIntByKey(key)
55+ else 0
56+
57+
58+@Callable(meta)
59+func deposit () = {
60+ let addrCaller = callerAddr(meta)
61+ let payAmount = assetPayAmount(meta)
62+ let curAmount = getIntOrDefaultByKey(addrCaller)
63+ let newAmount = (curAmount + payAmount)
64+ WriteSet([DataEntry(addrCaller, newAmount)])
65+ }
66+
67+
68+
69+@Callable(meta)
70+func withdraw (amount) = if ((0 >= amount))
71+ then throw("invalid amount")
72+ else {
73+ let addrCaller = callerAddr(meta)
74+ let curAmount = getIntOrDefaultByKey(addrCaller)
75+ let newAmount = (curAmount - amount)
76+ if ((0 > newAmount))
77+ then throw("not enough balance")
78+ else ScriptResult(WriteSet([DataEntry(addrCaller, newAmount)]), TransferSet([ScriptTransfer(meta.caller, amount, iceAsset)]))
79+ }
80+
81+
82+@Verifier(tx)
83+func verify () = match tx {
84+ case d: SetScriptTransaction =>
85+ isOwner(d)
86+ case d: InvokeScriptTransaction =>
87+ true
88+ case d: DataTransaction =>
89+ isOwner(d)
90+ case d: TransferTransaction =>
91+ isOwner(d)
92+ case _ =>
93+ false
94+}
95+

github/deemru/w8io/c3f4982 
39.89 ms