tx · EjGEfiJSFLRoR4fPdmxnYm1XN3dDLnpPt4NG4VbmMYCo

3NBTGfiEtHiKvpV84qrVpaqycizY8hGAxpu:  -0.01000000 Waves

2020.01.03 10:45 [837388] smart account 3NBTGfiEtHiKvpV84qrVpaqycizY8hGAxpu > SELF 0.00000000 Waves

{ "type": 13, "id": "EjGEfiJSFLRoR4fPdmxnYm1XN3dDLnpPt4NG4VbmMYCo", "fee": 1000000, "feeAssetId": null, "timestamp": 1578037584439, "version": 1, "sender": "3NBTGfiEtHiKvpV84qrVpaqycizY8hGAxpu", "senderPublicKey": "7DERSZYEoBTSwaTrN1ktwnx1Y5D46mSpMSayUNs8CmcK", "proofs": [ "2AxVisYQHuNULXsRqHvCPvvdBrF9eJVhvtEpBTCq9vVWC9NCDdQxt3UcpqxtT44tucxofnXQHYaNVk7wjGHCGYny" ], "script": "base64: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", "chainId": 84, "height": 837388, "spentComplexity": 0 } View: original | compacted Prev: none Next: HWPeNV9aLLxNv4F3a6RSpWJwr1uvXCjnwBez5Bu7EtPA Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 3 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let dappAcountPubKey = base58'7DERSZYEoBTSwaTrN1ktwnx1Y5D46mSpMSayUNs8CmcK'
5+
6+let par7Id = base58'EtV3CXQ4wqm28WPB1KaBv5B9ke2bpXRZMutYNEJUQcXm'
7+
8+let usdnId = base58'3KFXBGGLCjA5Z2DuW4Dq9fDDrHjJJP1ZEkaoajSzuKsC'
9+
10+let btcId = base58'DWgwcZTMhSvnyYCoWLRUXXSH1RSkzThXLJhww9gwkqdn'
11+
12+let euroId = base58'AsuWyM9MUUsMmWkK7jS48L3ky6gA1pxx7QtEYPbfLjAJ'
13+
14+let wavesId = base58'WAVES'
15+
16+@Callable(i)
17+func deposit (compeStart,id) = {
18+ let pmt = extract(i.payment)
19+ let paymentId = pmt.assetId
20+ let currentKey = toBase58String(i.caller.bytes)
21+ let currentAmount = match getInteger(this, currentKey) {
22+ case a: Int =>
23+ a
24+ case _ =>
25+ 0
26+ }
27+ let newAmount = (currentAmount + pmt.amount)
28+ WriteSet([DataEntry((id + currentKey), newAmount), DataEntry((id + currentKey), compeStart)])
29+ }
30+
31+
32+
33+@Callable(i)
34+func withdraw (amount,id) = {
35+ let currentKey = toBase58String(i.caller.bytes)
36+ let compeStart = match getInteger(this, ("compeStart_" + currentKey)) {
37+ case a: Int =>
38+ a
39+ case _ =>
40+ 0
41+ }
42+ let currentAmount = match getInteger(this, currentKey) {
43+ case a: Int =>
44+ a
45+ case _ =>
46+ 0
47+ }
48+ let newAmount = (currentAmount - amount)
49+ if ((lastBlock.timestamp > compeStart))
50+ then throw("Can't withdraw")
51+ else if ((0 > amount))
52+ then throw("Can't withdraw negative amount")
53+ else if ((0 > newAmount))
54+ then throw("Not enough balance")
55+ else if ((id == "EtV3CXQ4wqm28WPB1KaBv5B9ke2bpXRZMutYNEJUQcXm"))
56+ then ScriptResult(WriteSet([DataEntry((id + currentKey), newAmount)]), TransferSet([ScriptTransfer(i.caller, amount, par7Id)]))
57+ else if ((id == "3KFXBGGLCjA5Z2DuW4Dq9fDDrHjJJP1ZEkaoajSzuKsC"))
58+ then ScriptResult(WriteSet([DataEntry(("USD-N_" + currentKey), newAmount)]), TransferSet([ScriptTransfer(i.caller, amount, usdnId)]))
59+ else if ((id == "DWgwcZTMhSvnyYCoWLRUXXSH1RSkzThXLJhww9gwkqdn"))
60+ then ScriptResult(WriteSet([DataEntry(("BTC_" + currentKey), newAmount)]), TransferSet([ScriptTransfer(i.caller, amount, btcId)]))
61+ else if ((id == "AsuWyM9MUUsMmWkK7jS48L3ky6gA1pxx7QtEYPbfLjAJ"))
62+ then ScriptResult(WriteSet([DataEntry(("EURO_" + currentKey), newAmount)]), TransferSet([ScriptTransfer(i.caller, amount, euroId)]))
63+ else if ((id == "WAVES"))
64+ then ScriptResult(WriteSet([DataEntry(("WAVES_" + currentKey), newAmount)]), TransferSet([ScriptTransfer(i.caller, amount, wavesId)]))
65+ else throw("Can't withdraw")
66+ }
67+
68+
69+@Verifier(tx)
70+func verify () = match tx {
71+ case d: InvokeScriptTransaction =>
72+ true
73+ case t: TransferTransaction =>
74+ sigVerify(t.bodyBytes, t.proofs[0], t.senderPublicKey)
75+ case s: SetScriptTransaction =>
76+ sigVerify(s.bodyBytes, s.proofs[0], s.senderPublicKey)
77+ case _ =>
78+ false
79+}
80+

github/deemru/w8io/169f3d6 
19.92 ms