tx · F2gj39eNHREmp1ywYh4J8YUj4fAuHsUnuLnu1yeHvMHo

3Mztw7BQPWhCXDxHESrBoX2DKk12yNAGK5E:  -0.01400000 Waves

2019.06.28 15:29 [561971] smart account 3Mztw7BQPWhCXDxHESrBoX2DKk12yNAGK5E > SELF 0.00000000 Waves

{ "type": 13, "id": "F2gj39eNHREmp1ywYh4J8YUj4fAuHsUnuLnu1yeHvMHo", "fee": 1400000, "feeAssetId": null, "timestamp": 1561724999662, "version": 1, "sender": "3Mztw7BQPWhCXDxHESrBoX2DKk12yNAGK5E", "senderPublicKey": "BG7Fy2R6zh7x23ssfb44qii1ivXk7oLoc7s83p9tt3uB", "proofs": [ "6Qxds6WF9edi4WyPS5kA1qpq7xNEUfoCSkMFcZTdpsd4pJBwGho3JakP93D3RZ4oGxyU1P2S5fwZKbfGurX4X6x" ], "script": "base64:AgQAAAAGaXNzdWVyCQEAAAAHQWRkcmVzcwAAAAEBAAAACjBzQOgYK1aOY+IEAAAAB2Fzc2V0SWQBAAAACJ+kNIQu6TK4BAAAAAckbWF0Y2gwBQAAAAJ0eAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAATRXhjaGFuZ2VUcmFuc2FjdGlvbgQAAAACZXgFAAAAByRtYXRjaDAEAAAABHBhaXIJAQAAAAlBc3NldFBhaXIAAAACBQAAAAdhc3NldElkBQAAAAR1bml0BAAAAARyYXRlCQEAAAAHZXh0cmFjdAAAAAEJAAQaAAAAAgUAAAAGaXNzdWVyAgAAAAxleGNoYW5nZVJhdGUEAAAACHJhdGVEaWZmCQAAZQAAAAIFAAAABHJhdGUJAABrAAAAAwAAAAAABfXhAAgFAAAAAmV4AAAABXByaWNlCAUAAAACZXgAAAAGYW1vdW50AwMJAAAAAAAAAggIBQAAAAJleAAAAAhidXlPcmRlcgAAAAlhc3NldFBhaXIFAAAABHBhaXIJAABmAAAAAgUAAAAIcmF0ZURpZmYA/////////5wHCQAAZgAAAAIAAAAAAAAAAGQFAAAACHJhdGVEaWZmBwapx/KN", "chainId": 84, "height": 561971, "spentComplexity": 0 } View: original | compacted Prev: 2ybgCRPWBrhphAyvxSEqMetLiZd9p7JRgdHcQx8nmMfU Next: HR93NHXq8GggLLxkfjdmi1GNFcbfsxaSDvtdi2veDSoW Full:
OldNewDifferences
1-{-# STDLIB_VERSION 3 #-}
2-{-# SCRIPT_TYPE ACCOUNT #-}
3-{-# CONTENT_TYPE DAPP #-}
4-let wEUR = base58'8kKP8hCaoSa3vNN4e2e3bboKfnw3arz7kLhQeCBWauQH'
5-
6-@Callable(i)
7-func deposit () = {
8- let pmt = extract(i.payment)
9- if ((pmt.assetId != wEUR))
10- then throw("wEUR - 8kKP8hCaoSa3vNN4e2e3bboKfnw3arz7kLhQeCBWauQH only tokens")
11- else {
12- let currentKey = toBase58String(i.caller.bytes)
13- let currentAmount = match getInteger(this, currentKey) {
14- case a: Int =>
15- a
16- case _ =>
17- 0
18- }
19- let newAmount = (currentAmount + pmt.amount)
20- WriteSet([DataEntry(currentKey, newAmount)])
21- }
22- }
23-
24-
25-
26-@Callable(i)
27-func withdraw (amount) = {
28- let currentKey = toBase58String(i.caller.bytes)
29- let currentAmount = match getInteger(this, currentKey) {
30- case a: Int =>
31- a
32- case _ =>
33- 0
34- }
35- let newAmount = (currentAmount - amount)
36- if ((0 > amount))
37- then throw("Can't withdraw negative amount")
38- else if ((0 > newAmount))
39- then throw("Not enough balance")
40- else ScriptResult(WriteSet([DataEntry(currentKey, newAmount)]), TransferSet([ScriptTransfer(i.caller, amount, wEUR)]))
41- }
42-
43-
1+{-# STDLIB_VERSION 2 #-}
2+{-# CONTENT_TYPE EXPRESSION #-}
3+let issuer = Address(base58'3issuerAddress')
4+let assetId = base58'ThisAsset1d'
5+match tx {
6+ case ex: ExchangeTransaction =>
7+ let pair = AssetPair(assetId, unit)
8+ let rate = extract(getInteger(issuer, "exchangeRate"))
9+ let rateDiff = (rate - fraction(100000000, ex.price, ex.amount))
10+ if (if ((ex.buyOrder.assetPair == pair))
11+ then (rateDiff > -100)
12+ else false)
13+ then (100 > rateDiff)
14+ else false
15+ case _ =>
16+ true
17+}

github/deemru/w8io/873ac7e 
23.95 ms