tx · 2o3byrNsvjNQE8iZ2QJxWZ3ZYTwiAyezBtfjabg81wx8

3Mu7bwtYrymjrXt1ttcqaQbFc1PqGhZndhv:  -0.01400000 Waves

2019.09.13 01:15 [673524] smart account 3Mu7bwtYrymjrXt1ttcqaQbFc1PqGhZndhv > SELF 0.00000000 Waves

{ "type": 13, "id": "2o3byrNsvjNQE8iZ2QJxWZ3ZYTwiAyezBtfjabg81wx8", "fee": 1400000, "feeAssetId": null, "timestamp": 1568326530874, "version": 1, "sender": "3Mu7bwtYrymjrXt1ttcqaQbFc1PqGhZndhv", "senderPublicKey": "BxHnTcjvN9ZtnKfdKYp6aKRdkMB4ZHxHnTDr5dWx5Vz2", "proofs": [ "4qDwQ428x5u9RR5XduGAsoRrRHdJx1fL3tceiDCgfmaACWUgKLcQqvjdTagqBkjVJk9Sh1TA2xjk1fmrTjctLffJ" ], "script": "base64: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", "chainId": 84, "height": 673524, "spentComplexity": 0 } View: original | compacted Prev: FfyAK5oJ4T7L8KFXMAK4MrU3gJ6NykijhpygHAE7dmiW Next: AyGhNRRjwJZeotFT4HmhjTvzj2ueVujUtM4XZXAjGA8E Diff:
OldNewDifferences
8181 else {
8282 let c = getIntegerValue(this, (e + "_price"))
8383 let k = getIntegerValue(this, (e + "_amount"))
84+ let f = getStringValue(this, (e + "_amount_asset"))
8485 let l = if ((j == "WAVES"))
8586 then 8
8687 else value(assetInfo(fromBase58String(j))).decimals
87- let m = ((d.amount * pow(10, 0, l, 0, 0, CEILING)) / c)
88- let n = value(addressFromString(getStringValue(this, (e + "_owner"))))
89- let f = getStringValue(this, (e + "_amount_asset"))
90- let o = getIntegerValue(this, (e + "_spent"))
91- if ((m > (k - o)))
92- then throw("not enougth asset in order")
93- else ScriptResult(WriteSet([DataEntry((e + "_spent"), (o + m))]), TransferSet([ScriptTransfer(a.caller, m, if ((f == "WAVES"))
94- then unit
95- else fromBase58String(f)), ScriptTransfer(n, d.amount, if ((b == "WAVES"))
96- then unit
97- else fromBase58String(b))]))
88+ let m = if ((f == "WAVES"))
89+ then 8
90+ else value(assetInfo(fromBase58String(f))).decimals
91+ let n = (d.amount / c)
92+ if ((n == 0))
93+ then throw("invalid amount")
94+ else {
95+ let o = value(addressFromString(getStringValue(this, (e + "_owner"))))
96+ let p = getIntegerValue(this, (e + "_spent"))
97+ if ((n > (k - p)))
98+ then throw("not enougth asset in order")
99+ else ScriptResult(WriteSet([DataEntry((e + "_spent"), (p + n))]), TransferSet([ScriptTransfer(a.caller, n, if ((f == "WAVES"))
100+ then unit
101+ else fromBase58String(f)), ScriptTransfer(o, d.amount, if ((b == "WAVES"))
102+ then unit
103+ else fromBase58String(b))]))
104+ }
98105 }
99106 }
100107 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44
55
66 @Callable(a)
77 func makeSell (b,c) = if (if ((b != "WAVES"))
88 then !(isDefined(assetInfo(fromBase58String(b))))
99 else false)
1010 then throw("There is no asset with specified id")
1111 else if ((0 >= c))
1212 then throw("price must be positive")
1313 else {
1414 let d = valueOrErrorMessage(a.payment, "where is payment?")
1515 if ((0 >= d.amount))
1616 then throw("amount must be positive")
1717 else {
1818 let e = ("sell_" + toBase58String(a.transactionId))
1919 let f = {
2020 let g = d.assetId
2121 if ($isInstanceOf(g, "ByteVector"))
2222 then {
2323 let h = g
2424 toBase58String(h)
2525 }
2626 else "WAVES"
2727 }
2828 WriteSet([DataEntry((e + "_amount"), d.amount), DataEntry((e + "_amount_asset"), f), DataEntry((e + "_price"), c), DataEntry((e + "_price_asset"), b), DataEntry((e + "_owner"), toBase58String(a.caller.bytes)), DataEntry((e + "_spent"), 0)])
2929 }
3030 }
3131
3232
3333
3434 @Callable(a)
3535 func makeBuy (f,c) = if (if ((f != "WAVES"))
3636 then !(isDefined(assetInfo(fromBase58String(f))))
3737 else false)
3838 then throw("There is no asset with specified id")
3939 else if ((0 >= c))
4040 then throw("price must be positive")
4141 else {
4242 let d = valueOrErrorMessage(a.payment, "where is payment?")
4343 if ((0 >= d.amount))
4444 then throw("amount must be positive")
4545 else {
4646 let e = ("buy_" + toBase58String(a.transactionId))
4747 let b = {
4848 let g = d.assetId
4949 if ($isInstanceOf(g, "ByteVector"))
5050 then {
5151 let h = g
5252 toBase58String(h)
5353 }
5454 else "WAVES"
5555 }
5656 WriteSet([DataEntry((e + "_amount"), (d.amount / c)), DataEntry((e + "_amount_asset"), f), DataEntry((e + "_price"), c), DataEntry((e + "_price_asset"), b), DataEntry((e + "_owner"), toBase58String(a.caller.bytes)), DataEntry((e + "_spent"), 0)])
5757 }
5858 }
5959
6060
6161
6262 @Callable(a)
6363 func takeSell (i) = {
6464 let d = valueOrErrorMessage(a.payment, "where is payment?")
6565 if ((0 >= d.amount))
6666 then throw("amount must be positive")
6767 else {
6868 let e = ("sell_" + i)
6969 let j = {
7070 let g = d.assetId
7171 if ($isInstanceOf(g, "ByteVector"))
7272 then {
7373 let h = g
7474 toBase58String(h)
7575 }
7676 else "WAVES"
7777 }
7878 let b = valueOrErrorMessage(getString(this, (e + "_price_asset")), "there is no order with specified id")
7979 if ((b != j))
8080 then throw(("payment asset must be " + b))
8181 else {
8282 let c = getIntegerValue(this, (e + "_price"))
8383 let k = getIntegerValue(this, (e + "_amount"))
84+ let f = getStringValue(this, (e + "_amount_asset"))
8485 let l = if ((j == "WAVES"))
8586 then 8
8687 else value(assetInfo(fromBase58String(j))).decimals
87- let m = ((d.amount * pow(10, 0, l, 0, 0, CEILING)) / c)
88- let n = value(addressFromString(getStringValue(this, (e + "_owner"))))
89- let f = getStringValue(this, (e + "_amount_asset"))
90- let o = getIntegerValue(this, (e + "_spent"))
91- if ((m > (k - o)))
92- then throw("not enougth asset in order")
93- else ScriptResult(WriteSet([DataEntry((e + "_spent"), (o + m))]), TransferSet([ScriptTransfer(a.caller, m, if ((f == "WAVES"))
94- then unit
95- else fromBase58String(f)), ScriptTransfer(n, d.amount, if ((b == "WAVES"))
96- then unit
97- else fromBase58String(b))]))
88+ let m = if ((f == "WAVES"))
89+ then 8
90+ else value(assetInfo(fromBase58String(f))).decimals
91+ let n = (d.amount / c)
92+ if ((n == 0))
93+ then throw("invalid amount")
94+ else {
95+ let o = value(addressFromString(getStringValue(this, (e + "_owner"))))
96+ let p = getIntegerValue(this, (e + "_spent"))
97+ if ((n > (k - p)))
98+ then throw("not enougth asset in order")
99+ else ScriptResult(WriteSet([DataEntry((e + "_spent"), (p + n))]), TransferSet([ScriptTransfer(a.caller, n, if ((f == "WAVES"))
100+ then unit
101+ else fromBase58String(f)), ScriptTransfer(o, d.amount, if ((b == "WAVES"))
102+ then unit
103+ else fromBase58String(b))]))
104+ }
98105 }
99106 }
100107 }
101108
102109

github/deemru/w8io/03bedc9 
26.46 ms