tx · ERez6Q6cANpEW59DejHKMXyjFddobRj7GRrpRBimVqNb

3Mv3BEQ8WS2wzrEXuSfxDm7U9UKb5qLSnUc:  -0.01400000 Waves

2019.08.10 12:09 [624724] smart account 3Mv3BEQ8WS2wzrEXuSfxDm7U9UKb5qLSnUc > SELF 0.00000000 Waves

{ "type": 13, "id": "ERez6Q6cANpEW59DejHKMXyjFddobRj7GRrpRBimVqNb", "fee": 1400000, "feeAssetId": null, "timestamp": 1565428079074, "version": 1, "sender": "3Mv3BEQ8WS2wzrEXuSfxDm7U9UKb5qLSnUc", "senderPublicKey": "BoKgJQhf9RWMmneqYEhyMKeUXMCYRJRhaBTDd2w1Rtx", "proofs": [ "2FmzkyZSmMB1SnkKv8kj9yFk2QmpukTyKdLEZz2wn1rnf2ZGQdq7cPATm7bQskLXrpwuS2TgBXNWuGFPJvpoBuWN" ], "script": "base64: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", "chainId": 84, "height": 624724, "spentComplexity": 0 } View: original | compacted Prev: 8eGtwAZZWhNatzaDpheoFW7WA2Jo6x9zeQvSmEzF5spn Next: ECMx6uzT9saTaxjDdHWmqWSdMQW8EPTvK3RCuD75K7mu Diff:
OldNewDifferences
2525 then throw("asset id must be WAVES")
2626 else {
2727 let orderId = ("buy_" + toBase58String(i.transactionId))
28- WriteSet([DataEntry((orderId + "_amount"), ((payment.amount * eightDecimals) / price)), DataEntry((orderId + "_price"), price), DataEntry((orderId + "_owner"), toBase58String(i.caller.bytes)), DataEntry((orderId + "_spent"), 0)])
28+ WriteSet([DataEntry((orderId + "_amount"), ((payment.amount * price) / eightDecimals)), DataEntry((orderId + "_price"), price), DataEntry((orderId + "_owner"), toBase58String(i.caller.bytes)), DataEntry((orderId + "_spent"), 0)])
2929 }
3030 }
3131
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let VSTAssetID = base58'CjxKp2kfytghpfforkYLSoXHzJyJ5QYKLYQYgN7pQV4E'
55
66 let eightDecimals = 100000000
77
88 @Callable(i)
99 func makeSellVST (price) = {
1010 let payment = extract(i.payment)
1111 if ((payment.assetId != VSTAssetID))
1212 then throw(("asset id must be " + toBase58String(VSTAssetID)))
1313 else {
1414 let orderId = ("sell_" + toBase58String(i.transactionId))
1515 WriteSet([DataEntry((orderId + "_amount"), payment.amount), DataEntry((orderId + "_price"), price), DataEntry((orderId + "_owner"), toBase58String(i.caller.bytes)), DataEntry((orderId + "_spent"), 0)])
1616 }
1717 }
1818
1919
2020
2121 @Callable(i)
2222 func makeBuyVST (price) = {
2323 let payment = extract(i.payment)
2424 if ((payment.assetId != unit))
2525 then throw("asset id must be WAVES")
2626 else {
2727 let orderId = ("buy_" + toBase58String(i.transactionId))
28- WriteSet([DataEntry((orderId + "_amount"), ((payment.amount * eightDecimals) / price)), DataEntry((orderId + "_price"), price), DataEntry((orderId + "_owner"), toBase58String(i.caller.bytes)), DataEntry((orderId + "_spent"), 0)])
28+ WriteSet([DataEntry((orderId + "_amount"), ((payment.amount * price) / eightDecimals)), DataEntry((orderId + "_price"), price), DataEntry((orderId + "_owner"), toBase58String(i.caller.bytes)), DataEntry((orderId + "_spent"), 0)])
2929 }
3030 }
3131
3232
3333
3434 @Callable(i)
3535 func takeSellVST (id) = {
3636 let orderId = ("sell_" + id)
3737 let payment = extract(i.payment)
3838 if ((payment.assetId != unit))
3939 then throw("asset must be WAVES")
4040 else {
4141 let price = getIntegerValue(this, (orderId + "_price"))
4242 let wavesAmount = payment.amount
4343 let vstAmount = ((wavesAmount * price) / eightDecimals)
4444 let amount = getIntegerValue(this, (orderId + "_amount"))
4545 let spent = getIntegerValue(this, (orderId + "_spent"))
4646 let newSpent = (spent + vstAmount)
4747 if ((newSpent > amount))
4848 then throw("not enougth asset in order")
4949 else ScriptResult(WriteSet([DataEntry((orderId + "_spent"), newSpent)]), TransferSet([ScriptTransfer(i.caller, vstAmount, VSTAssetID)]))
5050 }
5151 }
5252
5353
5454
5555 @Callable(i)
5656 func takeBuyVST (id) = {
5757 let orderId = ("buy_" + id)
5858 let payment = extract(i.payment)
5959 if ((payment.assetId != VSTAssetID))
6060 then throw(("asset must be " + toBase58String(VSTAssetID)))
6161 else {
6262 let price = getIntegerValue(this, (orderId + "_price"))
6363 let vstAmount = payment.amount
6464 let wavesAmount = ((vstAmount * eightDecimals) / price)
6565 let amount = getIntegerValue(this, (orderId + "_amount"))
6666 let spent = getIntegerValue(this, (orderId + "_spent"))
6767 let newSpent = (spent + vstAmount)
6868 if ((newSpent > amount))
6969 then throw("not enougth asset in order")
7070 else ScriptResult(WriteSet([DataEntry((orderId + "_spent"), newSpent)]), TransferSet([ScriptTransfer(i.caller, wavesAmount, unit)]))
7171 }
7272 }
7373
7474
7575
7676 @Callable(i)
7777 func returnBuyVST (id) = {
7878 let orderId = ("buy_" + id)
7979 let owner = getStringValue(this, (orderId + "_owner"))
8080 if ((owner != toBase58String(i.caller.bytes)))
8181 then throw("return should be called by order owner")
8282 else {
8383 let amount = getIntegerValue(this, (orderId + "_amount"))
8484 let spent = getIntegerValue(this, (orderId + "_spent"))
8585 let price = getIntegerValue(this, (orderId + "_price"))
8686 let returnAmount = (((amount - spent) * eightDecimals) / price)
8787 if ((0 >= returnAmount))
8888 then throw("nothing to return")
8989 else ScriptResult(WriteSet([DataEntry((orderId + "_spent"), amount)]), TransferSet([ScriptTransfer(i.caller, returnAmount, unit)]))
9090 }
9191 }
9292
9393
9494
9595 @Callable(i)
9696 func returnSellVST (id) = {
9797 let orderId = ("sell_" + id)
9898 let owner = getStringValue(this, (orderId + "_owner"))
9999 if ((owner != toBase58String(i.caller.bytes)))
100100 then throw("return should be called by order owner")
101101 else {
102102 let amount = getIntegerValue(this, (orderId + "_amount"))
103103 let spent = getIntegerValue(this, (orderId + "_spent"))
104104 let returnAmount = (amount - spent)
105105 if ((0 >= returnAmount))
106106 then throw("nothing to return")
107107 else ScriptResult(WriteSet([DataEntry((orderId + "_spent"), amount)]), TransferSet([ScriptTransfer(i.caller, returnAmount, VSTAssetID)]))
108108 }
109109 }
110110
111111

github/deemru/w8io/c3f4982 
36.55 ms