tx · Nd8Uof2JkmGtcqYcmaYeQU8xi4DbWYQSTfa1sbhLnuL

3MyV9Fm9cwW9W68VCGfPvejLujx7xVpJiKW:  -0.01400000 Waves

2019.12.21 10:33 [818429] smart account 3MyV9Fm9cwW9W68VCGfPvejLujx7xVpJiKW > SELF 0.00000000 Waves

{ "type": 13, "id": "Nd8Uof2JkmGtcqYcmaYeQU8xi4DbWYQSTfa1sbhLnuL", "fee": 1400000, "feeAssetId": null, "timestamp": 1576913604377, "version": 1, "sender": "3MyV9Fm9cwW9W68VCGfPvejLujx7xVpJiKW", "senderPublicKey": "8zVjiVAuhkkAyQsSHHvjkNNoN8WDKJAEBV5nSpiyyYWr", "proofs": [ "GZnrNzjSjWSTqAa5kAbKHHKjnXEdpsb7co2dK725wFPkatJx58gpumZuTQSfC3wXnBDjzzp3nANmM2jPsifABrc" ], "script": "base64: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", "chainId": 84, "height": 818429, "spentComplexity": 0 } View: original | compacted Prev: Ffc5ux1kh3Ms4cZUEirNEeUyCybKJaJhzcZADaoaghLA Next: FZP72VRUQTDTFsMEcka1Gqjh57mTSnjxkADJpjSFGyvC Diff:
OldNewDifferences
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let par7Id = base58'EtV3CXQ4wqm28WPB1KaBv5B9ke2bpXRZMutYNEJUQcXm'
5+
6+let wavesId = base58'WAVES'
7+
8+let btcId = base58'DWgwcZTMhSvnyYCoWLRUXXSH1RSkzThXLJhww9gwkqdn'
59
610 @Callable(i)
711 func par7deposit () = {
4145 }
4246
4347
48+
49+@Callable(i)
50+func wavesdeposit () = {
51+ let pmt = extract(i.payment)
52+ if ((pmt.assetId != wavesId))
53+ then throw("Waves only at the moment")
54+ else {
55+ let currentKey = toBase58String(i.caller.bytes)
56+ let currentAmount = match getInteger(this, currentKey) {
57+ case a: Int =>
58+ a
59+ case _ =>
60+ 0
61+ }
62+ let newAmount = (currentAmount + pmt.amount)
63+ WriteSet([DataEntry(currentKey, newAmount)])
64+ }
65+ }
66+
67+
68+
69+@Callable(i)
70+func waveswithdraw (amount) = {
71+ let currentKey = toBase58String(i.caller.bytes)
72+ let currentAmount = match getInteger(this, currentKey) {
73+ case a: Int =>
74+ a
75+ case _ =>
76+ 0
77+ }
78+ let newAmount = (currentAmount - amount)
79+ if ((0 > amount))
80+ then throw("Can't withdraw negative amount")
81+ else if ((0 > newAmount))
82+ then throw("Not enough balance")
83+ else ScriptResult(WriteSet([DataEntry(currentKey, newAmount)]), TransferSet([ScriptTransfer(i.caller, amount, wavesId)]))
84+ }
85+
86+
87+
88+@Callable(i)
89+func btcdeposit () = {
90+ let pmt = extract(i.payment)
91+ if ((pmt.assetId != btcId))
92+ then throw("btc only at the moment")
93+ else {
94+ let currentKey = toBase58String(i.caller.bytes)
95+ let currentAmount = match getInteger(this, currentKey) {
96+ case a: Int =>
97+ a
98+ case _ =>
99+ 0
100+ }
101+ let newAmount = (currentAmount + pmt.amount)
102+ WriteSet([DataEntry(currentKey, newAmount)])
103+ }
104+ }
105+
106+
107+
108+@Callable(i)
109+func btcwithdraw (amount) = {
110+ let currentKey = toBase58String(i.caller.bytes)
111+ let currentAmount = match getInteger(this, currentKey) {
112+ case a: Int =>
113+ a
114+ case _ =>
115+ 0
116+ }
117+ let newAmount = (currentAmount - amount)
118+ if ((0 > amount))
119+ then throw("Can't withdraw negative amount")
120+ else if ((0 > newAmount))
121+ then throw("Not enough balance")
122+ else ScriptResult(WriteSet([DataEntry(currentKey, newAmount)]), TransferSet([ScriptTransfer(i.caller, amount, btcId)]))
123+ }
124+
125+
44126 @Verifier(tx)
45127 func verify () = match tx {
46128 case d: InvokeScriptTransaction =>
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let par7Id = base58'EtV3CXQ4wqm28WPB1KaBv5B9ke2bpXRZMutYNEJUQcXm'
5+
6+let wavesId = base58'WAVES'
7+
8+let btcId = base58'DWgwcZTMhSvnyYCoWLRUXXSH1RSkzThXLJhww9gwkqdn'
59
610 @Callable(i)
711 func par7deposit () = {
812 let pmt = extract(i.payment)
913 if ((pmt.assetId != par7Id))
1014 then throw("PAR7 only at the moment")
1115 else {
1216 let currentKey = toBase58String(i.caller.bytes)
1317 let currentAmount = match getInteger(this, currentKey) {
1418 case a: Int =>
1519 a
1620 case _ =>
1721 0
1822 }
1923 let newAmount = (currentAmount + pmt.amount)
2024 WriteSet([DataEntry(currentKey, newAmount)])
2125 }
2226 }
2327
2428
2529
2630 @Callable(i)
2731 func par7withdraw (amount) = {
2832 let currentKey = toBase58String(i.caller.bytes)
2933 let currentAmount = match getInteger(this, currentKey) {
3034 case a: Int =>
3135 a
3236 case _ =>
3337 0
3438 }
3539 let newAmount = (currentAmount - amount)
3640 if ((0 > amount))
3741 then throw("Can't withdraw negative amount")
3842 else if ((0 > newAmount))
3943 then throw("Not enough balance")
4044 else ScriptResult(WriteSet([DataEntry(currentKey, newAmount)]), TransferSet([ScriptTransfer(i.caller, amount, par7Id)]))
4145 }
4246
4347
48+
49+@Callable(i)
50+func wavesdeposit () = {
51+ let pmt = extract(i.payment)
52+ if ((pmt.assetId != wavesId))
53+ then throw("Waves only at the moment")
54+ else {
55+ let currentKey = toBase58String(i.caller.bytes)
56+ let currentAmount = match getInteger(this, currentKey) {
57+ case a: Int =>
58+ a
59+ case _ =>
60+ 0
61+ }
62+ let newAmount = (currentAmount + pmt.amount)
63+ WriteSet([DataEntry(currentKey, newAmount)])
64+ }
65+ }
66+
67+
68+
69+@Callable(i)
70+func waveswithdraw (amount) = {
71+ let currentKey = toBase58String(i.caller.bytes)
72+ let currentAmount = match getInteger(this, currentKey) {
73+ case a: Int =>
74+ a
75+ case _ =>
76+ 0
77+ }
78+ let newAmount = (currentAmount - amount)
79+ if ((0 > amount))
80+ then throw("Can't withdraw negative amount")
81+ else if ((0 > newAmount))
82+ then throw("Not enough balance")
83+ else ScriptResult(WriteSet([DataEntry(currentKey, newAmount)]), TransferSet([ScriptTransfer(i.caller, amount, wavesId)]))
84+ }
85+
86+
87+
88+@Callable(i)
89+func btcdeposit () = {
90+ let pmt = extract(i.payment)
91+ if ((pmt.assetId != btcId))
92+ then throw("btc only at the moment")
93+ else {
94+ let currentKey = toBase58String(i.caller.bytes)
95+ let currentAmount = match getInteger(this, currentKey) {
96+ case a: Int =>
97+ a
98+ case _ =>
99+ 0
100+ }
101+ let newAmount = (currentAmount + pmt.amount)
102+ WriteSet([DataEntry(currentKey, newAmount)])
103+ }
104+ }
105+
106+
107+
108+@Callable(i)
109+func btcwithdraw (amount) = {
110+ let currentKey = toBase58String(i.caller.bytes)
111+ let currentAmount = match getInteger(this, currentKey) {
112+ case a: Int =>
113+ a
114+ case _ =>
115+ 0
116+ }
117+ let newAmount = (currentAmount - amount)
118+ if ((0 > amount))
119+ then throw("Can't withdraw negative amount")
120+ else if ((0 > newAmount))
121+ then throw("Not enough balance")
122+ else ScriptResult(WriteSet([DataEntry(currentKey, newAmount)]), TransferSet([ScriptTransfer(i.caller, amount, btcId)]))
123+ }
124+
125+
44126 @Verifier(tx)
45127 func verify () = match tx {
46128 case d: InvokeScriptTransaction =>
47129 true
48130 case _ =>
49131 sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
50132 }
51133

github/deemru/w8io/873ac7e 
48.18 ms