tx · AyGhNRRjwJZeotFT4HmhjTvzj2ueVujUtM4XZXAjGA8E

3Mu7bwtYrymjrXt1ttcqaQbFc1PqGhZndhv:  -0.01400000 Waves

2019.09.13 01:39 [673552] smart account 3Mu7bwtYrymjrXt1ttcqaQbFc1PqGhZndhv > SELF 0.00000000 Waves

{ "type": 13, "id": "AyGhNRRjwJZeotFT4HmhjTvzj2ueVujUtM4XZXAjGA8E", "fee": 1400000, "feeAssetId": null, "timestamp": 1568327834383, "version": 1, "sender": "3Mu7bwtYrymjrXt1ttcqaQbFc1PqGhZndhv", "senderPublicKey": "BxHnTcjvN9ZtnKfdKYp6aKRdkMB4ZHxHnTDr5dWx5Vz2", "proofs": [ "3KhxTyr7gddWFmEEtqS3mhnKxAsih2NdSQP1Fx7wAauSwtmXyJLRTwqXs1CsQZ4NB84zm5F54CjASKs3XhMjbAHz" ], "script": "base64:AAIDAAAAAAAAAAAAAAAAAAAAAwAAAAFpAQAAAAhtYWtlU2VsbAAAAAIAAAAKcHJpY2VBc3NldAAAAAVwcmljZQMDCQEAAAACIT0AAAACBQAAAApwcmljZUFzc2V0AgAAAAVXQVZFUwkBAAAAASEAAAABCQEAAAAJaXNEZWZpbmVkAAAAAQkAA+wAAAABCQACWQAAAAEFAAAACnByaWNlQXNzZXQHCQAAAgAAAAECAAAAI1RoZXJlIGlzIG5vIGFzc2V0IHdpdGggc3BlY2lmaWVkIGlkAwkAAGcAAAACAAAAAAAAAAAABQAAAAVwcmljZQkAAAIAAAABAgAAABZwcmljZSBtdXN0IGJlIHBvc2l0aXZlBAAAAAdwYXltZW50CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIIBQAAAAFpAAAAB3BheW1lbnQCAAAAEXdoZXJlIGlzIHBheW1lbnQ/AwkAAGcAAAACAAAAAAAAAAAACAUAAAAHcGF5bWVudAAAAAZhbW91bnQJAAACAAAAAQIAAAAXYW1vdW50IG11c3QgYmUgcG9zaXRpdmUEAAAAB29yZGVySWQJAAEsAAAAAgIAAAAFc2VsbF8JAAJYAAAAAQgFAAAAAWkAAAANdHJhbnNhY3Rpb25JZAQAAAALYW1vdW50QXNzZXQEAAAAByRtYXRjaDAIBQAAAAdwYXltZW50AAAAB2Fzc2V0SWQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAACkJ5dGVWZWN0b3IEAAAAAXAFAAAAByRtYXRjaDAJAAJYAAAAAQUAAAABcAIAAAAFV0FWRVMJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAHb3JkZXJJZAIAAAAHX2Ftb3VudAgFAAAAB3BheW1lbnQAAAAGYW1vdW50CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAAB29yZGVySWQCAAAADV9hbW91bnRfYXNzZXQFAAAAC2Ftb3VudEFzc2V0CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAAB29yZGVySWQCAAAABl9wcmljZQUAAAAFcHJpY2UJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAHb3JkZXJJZAIAAAAMX3ByaWNlX2Fzc2V0BQAAAApwcmljZUFzc2V0CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAAB29yZGVySWQCAAAABl9vd25lcgkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAAB29yZGVySWQCAAAABl9zcGVudAAAAAAAAAAAAAUAAAADbmlsAAAAAWkBAAAAB21ha2VCdXkAAAACAAAAC2Ftb3VudEFzc2V0AAAABXByaWNlAwMJAQAAAAIhPQAAAAIFAAAAC2Ftb3VudEFzc2V0AgAAAAVXQVZFUwkBAAAAASEAAAABCQEAAAAJaXNEZWZpbmVkAAAAAQkAA+wAAAABCQACWQAAAAEFAAAAC2Ftb3VudEFzc2V0BwkAAAIAAAABAgAAACNUaGVyZSBpcyBubyBhc3NldCB3aXRoIHNwZWNpZmllZCBpZAMJAABnAAAAAgAAAAAAAAAAAAUAAAAFcHJpY2UJAAACAAAAAQIAAAAWcHJpY2UgbXVzdCBiZSBwb3NpdGl2ZQQAAAAHcGF5bWVudAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCAUAAAABaQAAAAdwYXltZW50AgAAABF3aGVyZSBpcyBwYXltZW50PwMJAABnAAAAAgAAAAAAAAAAAAgFAAAAB3BheW1lbnQAAAAGYW1vdW50CQAAAgAAAAECAAAAF2Ftb3VudCBtdXN0IGJlIHBvc2l0aXZlBAAAAAdvcmRlcklkCQABLAAAAAICAAAABGJ1eV8JAAJYAAAAAQgFAAAAAWkAAAANdHJhbnNhY3Rpb25JZAQAAAAKcHJpY2VBc3NldAQAAAAHJG1hdGNoMAgFAAAAB3BheW1lbnQAAAAHYXNzZXRJZAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAKQnl0ZVZlY3RvcgQAAAABcAUAAAAHJG1hdGNoMAkAAlgAAAABBQAAAAFwAgAAAAVXQVZFUwkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAdvcmRlcklkAgAAAAdfYW1vdW50CQAAaQAAAAIIBQAAAAdwYXltZW50AAAABmFtb3VudAUAAAAFcHJpY2UJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAHb3JkZXJJZAIAAAANX2Ftb3VudF9hc3NldAUAAAALYW1vdW50QXNzZXQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAHb3JkZXJJZAIAAAAGX3ByaWNlBQAAAAVwcmljZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAdvcmRlcklkAgAAAAxfcHJpY2VfYXNzZXQFAAAACnByaWNlQXNzZXQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAHb3JkZXJJZAIAAAAGX293bmVyCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAHb3JkZXJJZAIAAAAGX3NwZW50AAAAAAAAAAAABQAAAANuaWwAAAABaQEAAAAIdGFrZVNlbGwAAAABAAAAAmlkBAAAAAdwYXltZW50CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIIBQAAAAFpAAAAB3BheW1lbnQCAAAAEXdoZXJlIGlzIHBheW1lbnQ/AwkAAGcAAAACAAAAAAAAAAAACAUAAAAHcGF5bWVudAAAAAZhbW91bnQJAAACAAAAAQIAAAAXYW1vdW50IG11c3QgYmUgcG9zaXRpdmUEAAAAB29yZGVySWQJAAEsAAAAAgIAAAAFc2VsbF8FAAAAAmlkBAAAAAxwYXltZW50QXNzZXQEAAAAByRtYXRjaDAIBQAAAAdwYXltZW50AAAAB2Fzc2V0SWQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAACkJ5dGVWZWN0b3IEAAAAAXAFAAAAByRtYXRjaDAJAAJYAAAAAQUAAAABcAIAAAAFV0FWRVMEAAAACnByaWNlQXNzZXQJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABB0AAAACBQAAAAR0aGlzCQABLAAAAAIFAAAAB29yZGVySWQCAAAADF9wcmljZV9hc3NldAIAAAAjdGhlcmUgaXMgbm8gb3JkZXIgd2l0aCBzcGVjaWZpZWQgaWQDCQEAAAACIT0AAAACBQAAAApwcmljZUFzc2V0BQAAAAxwYXltZW50QXNzZXQJAAACAAAAAQkAASwAAAACAgAAABZwYXltZW50IGFzc2V0IG11c3QgYmUgBQAAAApwcmljZUFzc2V0BAAAAAVwcmljZQkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAAdvcmRlcklkAgAAAAZfcHJpY2UEAAAABmFtb3VudAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAAdvcmRlcklkAgAAAAdfYW1vdW50BAAAAAthbW91bnRBc3NldAkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAAdvcmRlcklkAgAAAA1fYW1vdW50X2Fzc2V0BAAAABRwYXltZW50QXNzZXREZWNpbWFscwMJAAAAAAAAAgUAAAAMcGF5bWVudEFzc2V0AgAAAAVXQVZFUwAAAAAAAAAACAgJAQAAAAV2YWx1ZQAAAAEJAAPsAAAAAQkAAlkAAAABBQAAAAxwYXltZW50QXNzZXQAAAAIZGVjaW1hbHMEAAAAE2Ftb3VudEFzc2V0RGVjaW1hbHMDCQAAAAAAAAIFAAAAC2Ftb3VudEFzc2V0AgAAAAVXQVZFUwAAAAAAAAAACAgJAQAAAAV2YWx1ZQAAAAEJAAPsAAAAAQkAAlkAAAABBQAAAAthbW91bnRBc3NldAAAAAhkZWNpbWFscwQAAAAJYnV5QW1vdW50CQAAaQAAAAIJAABoAAAAAggFAAAAB3BheW1lbnQAAAAGYW1vdW50CQAAbAAAAAYAAAAAAAAAAAoAAAAAAAAAAAAFAAAAE2Ftb3VudEFzc2V0RGVjaW1hbHMAAAAAAAAAAAAAAAAAAAAAAAAFAAAAB0NFSUxJTkcFAAAABXByaWNlAwkAAAAAAAACBQAAAAlidXlBbW91bnQAAAAAAAAAAAAJAAACAAAAAQIAAAAOaW52YWxpZCBhbW91bnQEAAAABW93bmVyCQEAAAAFdmFsdWUAAAABCQEAAAARYWRkcmVzc0Zyb21TdHJpbmcAAAABCQEAAAARQGV4dHJOYXRpdmUoMTA1MykAAAACBQAAAAR0aGlzCQABLAAAAAIFAAAAB29yZGVySWQCAAAABl9vd25lcgQAAAAFc3BlbnQJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAHb3JkZXJJZAIAAAAGX3NwZW50AwkAAGYAAAACBQAAAAlidXlBbW91bnQJAABlAAAAAgUAAAAGYW1vdW50BQAAAAVzcGVudAkAAAIAAAABAgAAABpub3QgZW5vdWd0aCBhc3NldCBpbiBvcmRlcgkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAHb3JkZXJJZAIAAAAGX3NwZW50CQAAZAAAAAIFAAAABXNwZW50BQAAAAlidXlBbW91bnQFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAACWJ1eUFtb3VudAMJAAAAAAAAAgUAAAALYW1vdW50QXNzZXQCAAAABVdBVkVTBQAAAAR1bml0CQACWQAAAAEFAAAAC2Ftb3VudEFzc2V0CQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAABW93bmVyCAUAAAAHcGF5bWVudAAAAAZhbW91bnQDCQAAAAAAAAIFAAAACnByaWNlQXNzZXQCAAAABVdBVkVTBQAAAAR1bml0CQACWQAAAAEFAAAACnByaWNlQXNzZXQFAAAAA25pbAAAAADzw2Hm", "chainId": 84, "height": 673552, "spentComplexity": 0 } View: original | compacted Prev: 2o3byrNsvjNQE8iZ2QJxWZ3ZYTwiAyezBtfjabg81wx8 Next: 6sqhkPor8Z35qph7Qgos3gpnv69H9UoiuSFZyMg4iXWA Diff:
OldNewDifferences
8888 let m = if ((f == "WAVES"))
8989 then 8
9090 else value(assetInfo(fromBase58String(f))).decimals
91- let n = (d.amount / c)
91+ let n = ((d.amount * pow(10, 0, m, 0, 0, CEILING)) / c)
9292 if ((n == 0))
9393 then throw("invalid amount")
9494 else {
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"))
8484 let f = getStringValue(this, (e + "_amount_asset"))
8585 let l = if ((j == "WAVES"))
8686 then 8
8787 else value(assetInfo(fromBase58String(j))).decimals
8888 let m = if ((f == "WAVES"))
8989 then 8
9090 else value(assetInfo(fromBase58String(f))).decimals
91- let n = (d.amount / c)
91+ let n = ((d.amount * pow(10, 0, m, 0, 0, CEILING)) / c)
9292 if ((n == 0))
9393 then throw("invalid amount")
9494 else {
9595 let o = value(addressFromString(getStringValue(this, (e + "_owner"))))
9696 let p = getIntegerValue(this, (e + "_spent"))
9797 if ((n > (k - p)))
9898 then throw("not enougth asset in order")
9999 else ScriptResult(WriteSet([DataEntry((e + "_spent"), (p + n))]), TransferSet([ScriptTransfer(a.caller, n, if ((f == "WAVES"))
100100 then unit
101101 else fromBase58String(f)), ScriptTransfer(o, d.amount, if ((b == "WAVES"))
102102 then unit
103103 else fromBase58String(b))]))
104104 }
105105 }
106106 }
107107 }
108108
109109

github/deemru/w8io/169f3d6 
29.65 ms