tx · EprzdgqwojEiyWHBfK7PRkZz8pzkeurExq8jAmuN8NLm

3MyV9Fm9cwW9W68VCGfPvejLujx7xVpJiKW:  -0.01400000 Waves

2019.12.23 05:17 [821004] smart account 3MyV9Fm9cwW9W68VCGfPvejLujx7xVpJiKW > SELF 0.00000000 Waves

{ "type": 13, "id": "EprzdgqwojEiyWHBfK7PRkZz8pzkeurExq8jAmuN8NLm", "fee": 1400000, "feeAssetId": null, "timestamp": 1577067451829, "version": 1, "sender": "3MyV9Fm9cwW9W68VCGfPvejLujx7xVpJiKW", "senderPublicKey": "8zVjiVAuhkkAyQsSHHvjkNNoN8WDKJAEBV5nSpiyyYWr", "proofs": [ "36jqjCouQ1m2fs6oRqoFtH2vUNDvsLenx4PWv6rFpuLooYs4JGwQbqHVPApyXxhrRwXxpiF9vNke44GxJcaaK6Tw" ], "script": "base64:AAIDAAAAAAAAACUIARIAEgMKAQESABIDCgEBEgASAwoBARIAEgMKAQESABIDCgEBAAAABAAAAAAGcGFyN0lkAQAAACDOWED9mOK0xZN34xzFUmgrQZwssasR1XxpyjfnkulHjAAAAAAFYnRjSWQBAAAAILnnP6qPECbbo926KJMYdX6tAqIA2JrhOgnWxVE3CxuNAAAAAAV1c2RJZAEAAAAgs6vtjrjcYSSyYVbetNsiFAS7MHCRF2JJuH+9FCzTMzcAAAAABmV1cm9JZAEAAAAgksOaihajKoQqnq8MtxuSVjR9ECuhi4KGdaumzXMlMJsAAAAKAAAAAWkBAAAAC3BhcjdkZXBvc2l0AAAAAAQAAAADcG10CQEAAAAHZXh0cmFjdAAAAAEIBQAAAAFpAAAAB3BheW1lbnQDCQEAAAACIT0AAAACCAUAAAADcG10AAAAB2Fzc2V0SWQFAAAABnBhcjdJZAkAAAIAAAABAgAAABdQQVI3IG9ubHkgYXQgdGhlIG1vbWVudAQAAAAKY3VycmVudEtleQkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAA1jdXJyZW50QW1vdW50BAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMFAAAACmN1cnJlbnRLZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAJbmV3QW1vdW50CQAAZAAAAAIFAAAADWN1cnJlbnRBbW91bnQIBQAAAANwbXQAAAAGYW1vdW50CQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAApjdXJyZW50S2V5BQAAAAluZXdBbW91bnQFAAAAA25pbAAAAAFpAQAAAAxwYXI3d2l0aGRyYXcAAAABAAAABmFtb3VudAQAAAAKY3VycmVudEtleQkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAA1jdXJyZW50QW1vdW50BAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMFAAAACmN1cnJlbnRLZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAJbmV3QW1vdW50CQAAZQAAAAIFAAAADWN1cnJlbnRBbW91bnQFAAAABmFtb3VudAMJAABmAAAAAgAAAAAAAAAAAAUAAAAGYW1vdW50CQAAAgAAAAECAAAAHkNhbid0IHdpdGhkcmF3IG5lZ2F0aXZlIGFtb3VudAMJAABmAAAAAgAAAAAAAAAAAAUAAAAJbmV3QW1vdW50CQAAAgAAAAECAAAAEk5vdCBlbm91Z2ggYmFsYW5jZQkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAACmN1cnJlbnRLZXkFAAAACW5ld0Ftb3VudAUAAAADbmlsCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAAGYW1vdW50BQAAAAZwYXI3SWQFAAAAA25pbAAAAAFpAQAAAAx3YXZlc2RlcG9zaXQAAAAABAAAAANwbXQJAQAAAAdleHRyYWN0AAAAAQgFAAAAAWkAAAAHcGF5bWVudAMJAQAAAAlpc0RlZmluZWQAAAABCAUAAAADcG10AAAAB2Fzc2V0SWQJAAACAAAAAQIAAAAYV0FWRVMgb25seSBhdCB0aGUgbW9tZW50BAAAAApjdXJyZW50S2V5CQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAADWN1cnJlbnRBbW91bnQEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwUAAAAKY3VycmVudEtleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAAluZXdBbW91bnQJAABkAAAAAgUAAAANY3VycmVudEFtb3VudAgFAAAAA3BtdAAAAAZhbW91bnQJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAACmN1cnJlbnRLZXkFAAAACW5ld0Ftb3VudAUAAAADbmlsAAAAAWkBAAAADXdhdmVzd2l0aGRyYXcAAAABAAAABmFtb3VudAQAAAAKY3VycmVudEtleQkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAA1jdXJyZW50QW1vdW50BAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMFAAAACmN1cnJlbnRLZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAJbmV3QW1vdW50CQAAZQAAAAIFAAAADWN1cnJlbnRBbW91bnQFAAAABmFtb3VudAMJAABmAAAAAgAAAAAAAAAAAAUAAAAGYW1vdW50CQAAAgAAAAECAAAAHkNhbid0IHdpdGhkcmF3IG5lZ2F0aXZlIGFtb3VudAMJAABmAAAAAgAAAAAAAAAAAAUAAAAJbmV3QW1vdW50CQAAAgAAAAECAAAAEk5vdCBlbm91Z2ggYmFsYW5jZQkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAACmN1cnJlbnRLZXkFAAAACW5ld0Ftb3VudAUAAAADbmlsCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAAGYW1vdW50BQAAAAR1bml0BQAAAANuaWwAAAABaQEAAAAKYnRjZGVwb3NpdAAAAAAEAAAAA3BtdAkBAAAAB2V4dHJhY3QAAAABCAUAAAABaQAAAAdwYXltZW50AwkBAAAAAiE9AAAAAggFAAAAA3BtdAAAAAdhc3NldElkBQAAAAVidGNJZAkAAAIAAAABAgAAABZidGMgb25seSBhdCB0aGUgbW9tZW50BAAAAApjdXJyZW50S2V5CQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAADWN1cnJlbnRBbW91bnQEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwUAAAAKY3VycmVudEtleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAAluZXdBbW91bnQJAABkAAAAAgUAAAANY3VycmVudEFtb3VudAgFAAAAA3BtdAAAAAZhbW91bnQJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAACmN1cnJlbnRLZXkFAAAACW5ld0Ftb3VudAUAAAADbmlsAAAAAWkBAAAAC2J0Y3dpdGhkcmF3AAAAAQAAAAZhbW91bnQEAAAACmN1cnJlbnRLZXkJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAANY3VycmVudEFtb3VudAQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzBQAAAApjdXJyZW50S2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAACW5ld0Ftb3VudAkAAGUAAAACBQAAAA1jdXJyZW50QW1vdW50BQAAAAZhbW91bnQDCQAAZgAAAAIAAAAAAAAAAAAFAAAABmFtb3VudAkAAAIAAAABAgAAAB5DYW4ndCB3aXRoZHJhdyBuZWdhdGl2ZSBhbW91bnQDCQAAZgAAAAIAAAAAAAAAAAAFAAAACW5ld0Ftb3VudAkAAAIAAAABAgAAABJOb3QgZW5vdWdoIGJhbGFuY2UJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAApjdXJyZW50S2V5BQAAAAluZXdBbW91bnQFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAABmFtb3VudAUAAAAFYnRjSWQFAAAAA25pbAAAAAFpAQAAAAp1c2RkZXBvc2l0AAAAAAQAAAADcG10CQEAAAAHZXh0cmFjdAAAAAEIBQAAAAFpAAAAB3BheW1lbnQDCQEAAAACIT0AAAACCAUAAAADcG10AAAAB2Fzc2V0SWQFAAAABXVzZElkCQAAAgAAAAECAAAAHFVTIERvbGxlciBvbmx5IGF0IHRoZSBtb21lbnQEAAAACmN1cnJlbnRLZXkJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAANY3VycmVudEFtb3VudAQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzBQAAAApjdXJyZW50S2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAACW5ld0Ftb3VudAkAAGQAAAACBQAAAA1jdXJyZW50QW1vdW50CAUAAAADcG10AAAABmFtb3VudAkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAKY3VycmVudEtleQUAAAAJbmV3QW1vdW50BQAAAANuaWwAAAABaQEAAAALdXNkd2l0aGRyYXcAAAABAAAABmFtb3VudAQAAAAKY3VycmVudEtleQkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAA1jdXJyZW50QW1vdW50BAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMFAAAACmN1cnJlbnRLZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAJbmV3QW1vdW50CQAAZQAAAAIFAAAADWN1cnJlbnRBbW91bnQFAAAABmFtb3VudAMJAABmAAAAAgAAAAAAAAAAAAUAAAAGYW1vdW50CQAAAgAAAAECAAAAHkNhbid0IHdpdGhkcmF3IG5lZ2F0aXZlIGFtb3VudAMJAABmAAAAAgAAAAAAAAAAAAUAAAAJbmV3QW1vdW50CQAAAgAAAAECAAAAEk5vdCBlbm91Z2ggYmFsYW5jZQkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAACmN1cnJlbnRLZXkFAAAACW5ld0Ftb3VudAUAAAADbmlsCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAAGYW1vdW50BQAAAAV1c2RJZAUAAAADbmlsAAAAAWkBAAAAC2V1cm9kZXBvc2l0AAAAAAQAAAADcG10CQEAAAAHZXh0cmFjdAAAAAEIBQAAAAFpAAAAB3BheW1lbnQDCQEAAAACIT0AAAACCAUAAAADcG10AAAAB2Fzc2V0SWQFAAAABmV1cm9JZAkAAAIAAAABAgAAABxVUyBEb2xsZXIgb25seSBhdCB0aGUgbW9tZW50BAAAAApjdXJyZW50S2V5CQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAADWN1cnJlbnRBbW91bnQEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwUAAAAKY3VycmVudEtleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAAluZXdBbW91bnQJAABkAAAAAgUAAAANY3VycmVudEFtb3VudAgFAAAAA3BtdAAAAAZhbW91bnQJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAACmN1cnJlbnRLZXkFAAAACW5ld0Ftb3VudAUAAAADbmlsAAAAAWkBAAAADGV1cm93aXRoZHJhdwAAAAEAAAAGYW1vdW50BAAAAApjdXJyZW50S2V5CQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAADWN1cnJlbnRBbW91bnQEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwUAAAAKY3VycmVudEtleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAAluZXdBbW91bnQJAABlAAAAAgUAAAANY3VycmVudEFtb3VudAUAAAAGYW1vdW50AwkAAGYAAAACAAAAAAAAAAAABQAAAAZhbW91bnQJAAACAAAAAQIAAAAeQ2FuJ3Qgd2l0aGRyYXcgbmVnYXRpdmUgYW1vdW50AwkAAGYAAAACAAAAAAAAAAAABQAAAAluZXdBbW91bnQJAAACAAAAAQIAAAASTm90IGVub3VnaCBiYWxhbmNlCQEAAAAMU2NyaXB0UmVzdWx0AAAAAgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAKY3VycmVudEtleQUAAAAJbmV3QW1vdW50BQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAAAZhbW91bnQFAAAABmV1cm9JZAUAAAADbmlsAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAQAAAAHJG1hdGNoMAUAAAACdHgDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAF0ludm9rZVNjcmlwdFRyYW5zYWN0aW9uBAAAAAFkBQAAAAckbWF0Y2gwBgkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXkQNjrn", "chainId": 84, "height": 821004, "spentComplexity": 0 } View: original | compacted Prev: FZP72VRUQTDTFsMEcka1Gqjh57mTSnjxkADJpjSFGyvC Next: HykdfxjytxdV628ndwpVA5RgTrcpsQkjLkjeDXbBkQhA Diff:
OldNewDifferences
44 let par7Id = base58'EtV3CXQ4wqm28WPB1KaBv5B9ke2bpXRZMutYNEJUQcXm'
55
66 let btcId = base58'DWgwcZTMhSvnyYCoWLRUXXSH1RSkzThXLJhww9gwkqdn'
7+
8+let usdId = base58'D6N2rAqWN6ZCWnCeNFWLGqqjS6nJLeK4m19XiuhdDenr'
9+
10+let euroId = base58'AsuWyM9MUUsMmWkK7jS48L3ky6gA1pxx7QtEYPbfLjAJ'
711
812 @Callable(i)
913 func par7deposit () = {
121125 }
122126
123127
128+
129+@Callable(i)
130+func usddeposit () = {
131+ let pmt = extract(i.payment)
132+ if ((pmt.assetId != usdId))
133+ then throw("US Doller only at the moment")
134+ else {
135+ let currentKey = toBase58String(i.caller.bytes)
136+ let currentAmount = match getInteger(this, currentKey) {
137+ case a: Int =>
138+ a
139+ case _ =>
140+ 0
141+ }
142+ let newAmount = (currentAmount + pmt.amount)
143+ WriteSet([DataEntry(currentKey, newAmount)])
144+ }
145+ }
146+
147+
148+
149+@Callable(i)
150+func usdwithdraw (amount) = {
151+ let currentKey = toBase58String(i.caller.bytes)
152+ let currentAmount = match getInteger(this, currentKey) {
153+ case a: Int =>
154+ a
155+ case _ =>
156+ 0
157+ }
158+ let newAmount = (currentAmount - amount)
159+ if ((0 > amount))
160+ then throw("Can't withdraw negative amount")
161+ else if ((0 > newAmount))
162+ then throw("Not enough balance")
163+ else ScriptResult(WriteSet([DataEntry(currentKey, newAmount)]), TransferSet([ScriptTransfer(i.caller, amount, usdId)]))
164+ }
165+
166+
167+
168+@Callable(i)
169+func eurodeposit () = {
170+ let pmt = extract(i.payment)
171+ if ((pmt.assetId != euroId))
172+ then throw("US Doller only at the moment")
173+ else {
174+ let currentKey = toBase58String(i.caller.bytes)
175+ let currentAmount = match getInteger(this, currentKey) {
176+ case a: Int =>
177+ a
178+ case _ =>
179+ 0
180+ }
181+ let newAmount = (currentAmount + pmt.amount)
182+ WriteSet([DataEntry(currentKey, newAmount)])
183+ }
184+ }
185+
186+
187+
188+@Callable(i)
189+func eurowithdraw (amount) = {
190+ let currentKey = toBase58String(i.caller.bytes)
191+ let currentAmount = match getInteger(this, currentKey) {
192+ case a: Int =>
193+ a
194+ case _ =>
195+ 0
196+ }
197+ let newAmount = (currentAmount - amount)
198+ if ((0 > amount))
199+ then throw("Can't withdraw negative amount")
200+ else if ((0 > newAmount))
201+ then throw("Not enough balance")
202+ else ScriptResult(WriteSet([DataEntry(currentKey, newAmount)]), TransferSet([ScriptTransfer(i.caller, amount, euroId)]))
203+ }
204+
205+
124206 @Verifier(tx)
125207 func verify () = match tx {
126208 case d: InvokeScriptTransaction =>
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let par7Id = base58'EtV3CXQ4wqm28WPB1KaBv5B9ke2bpXRZMutYNEJUQcXm'
55
66 let btcId = base58'DWgwcZTMhSvnyYCoWLRUXXSH1RSkzThXLJhww9gwkqdn'
7+
8+let usdId = base58'D6N2rAqWN6ZCWnCeNFWLGqqjS6nJLeK4m19XiuhdDenr'
9+
10+let euroId = base58'AsuWyM9MUUsMmWkK7jS48L3ky6gA1pxx7QtEYPbfLjAJ'
711
812 @Callable(i)
913 func par7deposit () = {
1014 let pmt = extract(i.payment)
1115 if ((pmt.assetId != par7Id))
1216 then throw("PAR7 only at the moment")
1317 else {
1418 let currentKey = toBase58String(i.caller.bytes)
1519 let currentAmount = match getInteger(this, currentKey) {
1620 case a: Int =>
1721 a
1822 case _ =>
1923 0
2024 }
2125 let newAmount = (currentAmount + pmt.amount)
2226 WriteSet([DataEntry(currentKey, newAmount)])
2327 }
2428 }
2529
2630
2731
2832 @Callable(i)
2933 func par7withdraw (amount) = {
3034 let currentKey = toBase58String(i.caller.bytes)
3135 let currentAmount = match getInteger(this, currentKey) {
3236 case a: Int =>
3337 a
3438 case _ =>
3539 0
3640 }
3741 let newAmount = (currentAmount - amount)
3842 if ((0 > amount))
3943 then throw("Can't withdraw negative amount")
4044 else if ((0 > newAmount))
4145 then throw("Not enough balance")
4246 else ScriptResult(WriteSet([DataEntry(currentKey, newAmount)]), TransferSet([ScriptTransfer(i.caller, amount, par7Id)]))
4347 }
4448
4549
4650
4751 @Callable(i)
4852 func wavesdeposit () = {
4953 let pmt = extract(i.payment)
5054 if (isDefined(pmt.assetId))
5155 then throw("WAVES only at the moment")
5256 else {
5357 let currentKey = toBase58String(i.caller.bytes)
5458 let currentAmount = match getInteger(this, currentKey) {
5559 case a: Int =>
5660 a
5761 case _ =>
5862 0
5963 }
6064 let newAmount = (currentAmount + pmt.amount)
6165 WriteSet([DataEntry(currentKey, newAmount)])
6266 }
6367 }
6468
6569
6670
6771 @Callable(i)
6872 func waveswithdraw (amount) = {
6973 let currentKey = toBase58String(i.caller.bytes)
7074 let currentAmount = match getInteger(this, currentKey) {
7175 case a: Int =>
7276 a
7377 case _ =>
7478 0
7579 }
7680 let newAmount = (currentAmount - amount)
7781 if ((0 > amount))
7882 then throw("Can't withdraw negative amount")
7983 else if ((0 > newAmount))
8084 then throw("Not enough balance")
8185 else ScriptResult(WriteSet([DataEntry(currentKey, newAmount)]), TransferSet([ScriptTransfer(i.caller, amount, unit)]))
8286 }
8387
8488
8589
8690 @Callable(i)
8791 func btcdeposit () = {
8892 let pmt = extract(i.payment)
8993 if ((pmt.assetId != btcId))
9094 then throw("btc only at the moment")
9195 else {
9296 let currentKey = toBase58String(i.caller.bytes)
9397 let currentAmount = match getInteger(this, currentKey) {
9498 case a: Int =>
9599 a
96100 case _ =>
97101 0
98102 }
99103 let newAmount = (currentAmount + pmt.amount)
100104 WriteSet([DataEntry(currentKey, newAmount)])
101105 }
102106 }
103107
104108
105109
106110 @Callable(i)
107111 func btcwithdraw (amount) = {
108112 let currentKey = toBase58String(i.caller.bytes)
109113 let currentAmount = match getInteger(this, currentKey) {
110114 case a: Int =>
111115 a
112116 case _ =>
113117 0
114118 }
115119 let newAmount = (currentAmount - amount)
116120 if ((0 > amount))
117121 then throw("Can't withdraw negative amount")
118122 else if ((0 > newAmount))
119123 then throw("Not enough balance")
120124 else ScriptResult(WriteSet([DataEntry(currentKey, newAmount)]), TransferSet([ScriptTransfer(i.caller, amount, btcId)]))
121125 }
122126
123127
128+
129+@Callable(i)
130+func usddeposit () = {
131+ let pmt = extract(i.payment)
132+ if ((pmt.assetId != usdId))
133+ then throw("US Doller only at the moment")
134+ else {
135+ let currentKey = toBase58String(i.caller.bytes)
136+ let currentAmount = match getInteger(this, currentKey) {
137+ case a: Int =>
138+ a
139+ case _ =>
140+ 0
141+ }
142+ let newAmount = (currentAmount + pmt.amount)
143+ WriteSet([DataEntry(currentKey, newAmount)])
144+ }
145+ }
146+
147+
148+
149+@Callable(i)
150+func usdwithdraw (amount) = {
151+ let currentKey = toBase58String(i.caller.bytes)
152+ let currentAmount = match getInteger(this, currentKey) {
153+ case a: Int =>
154+ a
155+ case _ =>
156+ 0
157+ }
158+ let newAmount = (currentAmount - amount)
159+ if ((0 > amount))
160+ then throw("Can't withdraw negative amount")
161+ else if ((0 > newAmount))
162+ then throw("Not enough balance")
163+ else ScriptResult(WriteSet([DataEntry(currentKey, newAmount)]), TransferSet([ScriptTransfer(i.caller, amount, usdId)]))
164+ }
165+
166+
167+
168+@Callable(i)
169+func eurodeposit () = {
170+ let pmt = extract(i.payment)
171+ if ((pmt.assetId != euroId))
172+ then throw("US Doller only at the moment")
173+ else {
174+ let currentKey = toBase58String(i.caller.bytes)
175+ let currentAmount = match getInteger(this, currentKey) {
176+ case a: Int =>
177+ a
178+ case _ =>
179+ 0
180+ }
181+ let newAmount = (currentAmount + pmt.amount)
182+ WriteSet([DataEntry(currentKey, newAmount)])
183+ }
184+ }
185+
186+
187+
188+@Callable(i)
189+func eurowithdraw (amount) = {
190+ let currentKey = toBase58String(i.caller.bytes)
191+ let currentAmount = match getInteger(this, currentKey) {
192+ case a: Int =>
193+ a
194+ case _ =>
195+ 0
196+ }
197+ let newAmount = (currentAmount - amount)
198+ if ((0 > amount))
199+ then throw("Can't withdraw negative amount")
200+ else if ((0 > newAmount))
201+ then throw("Not enough balance")
202+ else ScriptResult(WriteSet([DataEntry(currentKey, newAmount)]), TransferSet([ScriptTransfer(i.caller, amount, euroId)]))
203+ }
204+
205+
124206 @Verifier(tx)
125207 func verify () = match tx {
126208 case d: InvokeScriptTransaction =>
127209 true
128210 case _ =>
129211 sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
130212 }
131213

github/deemru/w8io/c3f4982 
72.27 ms