tx · 6Tqx34uUZCeZEDD6F5mXv7r4xnDurgBvg1Cz2L24hUDM

3Mszh8GCKZsFLR1VH9B2PPmE9y5bsU82smX:  -0.01000000 Waves

2019.08.30 13:42 [653876] smart account 3Mszh8GCKZsFLR1VH9B2PPmE9y5bsU82smX > SELF 0.00000000 Waves

{ "type": 13, "id": "6Tqx34uUZCeZEDD6F5mXv7r4xnDurgBvg1Cz2L24hUDM", "fee": 1000000, "feeAssetId": null, "timestamp": 1567161763254, "version": 1, "sender": "3Mszh8GCKZsFLR1VH9B2PPmE9y5bsU82smX", "senderPublicKey": "9Q3bAYNYE5CiucAkkMq3Q3u1P197GBDgdtoTMQokAXQN", "proofs": [ "NDcv1nfN54915pffy2kWANpv7KD5rY2tkjc7bHtnakWs1abw5idRthRmAudSbo2gva63WcUsdg2yvNiGHJG4psC" ], "script": "base64:AAIDAAAAAAAAAAQIARIAAAAABAAAAAAGbWF4RmVlAAAAAAAAD0JAAQAAAA1hc3NldE1uZW1vbmljAAAAAQAAAAdhc3NldElkBAAAAAckbWF0Y2gwBQAAAAdhc3NldElkAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAARVbml0BAAAAAF1BQAAAAckbWF0Y2gwAgAAAAVXQVZFUwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAKQnl0ZVZlY3RvcgQAAAABYgUAAAAHJG1hdGNoMAkAAlgAAAABBQAAAAFiCQEAAAAFdGhyb3cAAAAAAQAAAA9nZXRBc3NldEJhbGFuY2UAAAABAAAAB2Fzc2V0SWQDCQAAAAAAAAIFAAAAB2Fzc2V0SWQCAAAABVdBVkVTCQAAZQAAAAIJAQAAAAx3YXZlc0JhbGFuY2UAAAABBQAAAAR0aGlzBQAAAAZtYXhGZWUJAAPrAAAAAgUAAAAEdGhpcwkBAAAAB2V4dHJhY3QAAAABCQACWQAAAAEFAAAAB2Fzc2V0SWQBAAAAFmdldEFzc2V0SWRGcm9tTW5lbW9uaWMAAAABAAAAB2Fzc2V0SWQDCQAAAAAAAAIFAAAAB2Fzc2V0SWQCAAAABVdBVkVTBQAAAAR1bml0CQACWQAAAAEFAAAAB2Fzc2V0SWQAAAABAAAAAWkBAAAAC2ZpbmlzaFRyYWRlAAAAAAMJAABmAAAAAggFAAAAAWkAAAADZmVlBQAAAAZtYXhGZWUJAAACAAAAAQIAAAAWdW5yZWFzb25hYmxlIGxhcmdlIGZlZQMJAQAAAAIhPQAAAAIIBQAAAAFpAAAACmZlZUFzc2V0SWQFAAAABHVuaXQJAAACAAAAAQIAAAAUZmVlIG11c3QgYmUgaW4gV0FWRVMEAAAAEXRyYWRlc0ZpbmlzaGVkS2V5AgAAAA90cmFkZXNfZmluaXNoZWQDCQAAZgAAAAIAAAABbOIul4AIBQAAAAlsYXN0QmxvY2sAAAAJdGltZXN0YW1wCQAAAgAAAAECAAAAFXBsZWFzZSBsZXQgdHJhZGUgZW5kcwMJAAAAAAAAAgkABBsAAAACBQAAAAR0aGlzBQAAABF0cmFkZXNGaW5pc2hlZEtleQYJAAACAAAAAQIAAAAXdHJhZGVzIGFscmVhZHkgZmluaXNoZWQEAAAADWFzc2V0MUJhbGFuY2UJAQAAAA9nZXRBc3NldEJhbGFuY2UAAAABAgAAACxBY1R6VGdXMVFiSks0UXU2aENzVUNManB4VXlEM2RvZnY4eHEyQ0FQYnpLSgQAAAANYXNzZXQyQmFsYW5jZQkBAAAAD2dldEFzc2V0QmFsYW5jZQAAAAECAAAABVdBVkVTCQEAAAAMU2NyaXB0UmVzdWx0AAAAAgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAARdHJhZGVzRmluaXNoZWRLZXkGBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyCAUAAAABaQAAAANmZWUFAAAABHVuaXQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAAEdGhpcwUAAAANYXNzZXQxQmFsYW5jZQkBAAAAFmdldEFzc2V0SWRGcm9tTW5lbW9uaWMAAAABAgAAACxBY1R6VGdXMVFiSks0UXU2aENzVUNManB4VXlEM2RvZnY4eHEyQ0FQYnpLSgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAAAR0aGlzBQAAAA1hc3NldDJCYWxhbmNlCQEAAAAWZ2V0QXNzZXRJZEZyb21NbmVtb25pYwAAAAECAAAABVdBVkVTBQAAAANuaWwAAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAABAAAAAckbWF0Y2gwBQAAAAJ0eAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAFT3JkZXIEAAAAAW8FAAAAByRtYXRjaDADAwMJAAAAAAAAAgkBAAAADWFzc2V0TW5lbW9uaWMAAAABCAgFAAAAAW8AAAAJYXNzZXRQYWlyAAAAC2Ftb3VudEFzc2V0AgAAACxBY1R6VGdXMVFiSks0UXU2aENzVUNManB4VXlEM2RvZnY4eHEyQ0FQYnpLSgkAAAAAAAACCQEAAAANYXNzZXRNbmVtb25pYwAAAAEICAUAAAABbwAAAAlhc3NldFBhaXIAAAAKcHJpY2VBc3NldAIAAAAFV0FWRVMHAwMJAAAAAAAAAggFAAAAAW8AAAAJb3JkZXJUeXBlBQAAAANCdXkJAAAAAAAAAggFAAAAAW8AAAAFcHJpY2UAAAAAABTck4AHBgMJAAAAAAAAAggFAAAAAW8AAAAJb3JkZXJUeXBlBQAAAARTZWxsCQAAAAAAAAIIBQAAAAFvAAAABXByaWNlCQAAZAAAAAIAAAAAABTck4AAAAAAAAAAAAEHBwkAAAAAAAACCQACWAAAAAEIBQAAAAFvAAAAEG1hdGNoZXJQdWJsaWNLZXkCAAAALDhRVUFxdFRja001QjhndmN1UDdtTXN3YXQ5U2pLVXVhZkpNdXNFb1NuMUd5BwkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXmiDCmX", "chainId": 84, "height": 653876, "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 3 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let maxFee = 1000000
5+
6+func assetMnemonic (assetId) = match assetId {
7+ case u: Unit =>
8+ "WAVES"
9+ case b: ByteVector =>
10+ toBase58String(b)
11+ case _ =>
12+ throw()
13+}
14+
15+
16+func getAssetBalance (assetId) = if ((assetId == "WAVES"))
17+ then (wavesBalance(this) - maxFee)
18+ else assetBalance(this, extract(fromBase58String(assetId)))
19+
20+
21+func getAssetIdFromMnemonic (assetId) = if ((assetId == "WAVES"))
22+ then unit
23+ else fromBase58String(assetId)
24+
25+
26+@Callable(i)
27+func finishTrade () = if ((i.fee > maxFee))
28+ then throw("unreasonable large fee")
29+ else if ((i.feeAssetId != unit))
30+ then throw("fee must be in WAVES")
31+ else {
32+ let tradesFinishedKey = "trades_finished"
33+ if ((1567162800000 > lastBlock.timestamp))
34+ then throw("please let trade ends")
35+ else if ((getBoolean(this, tradesFinishedKey) == true))
36+ then throw("trades already finished")
37+ else {
38+ let asset1Balance = getAssetBalance("AcTzTgW1QbJK4Qu6hCsUCLjpxUyD3dofv8xq2CAPbzKJ")
39+ let asset2Balance = getAssetBalance("WAVES")
40+ ScriptResult(WriteSet([DataEntry(tradesFinishedKey, true)]), TransferSet([ScriptTransfer(i.caller, i.fee, unit), ScriptTransfer(this, asset1Balance, getAssetIdFromMnemonic("AcTzTgW1QbJK4Qu6hCsUCLjpxUyD3dofv8xq2CAPbzKJ")), ScriptTransfer(this, asset2Balance, getAssetIdFromMnemonic("WAVES"))]))
41+ }
42+ }
43+
44+
45+@Verifier(tx)
46+func verify () = match tx {
47+ case o: Order =>
48+ if (if (if ((assetMnemonic(o.assetPair.amountAsset) == "AcTzTgW1QbJK4Qu6hCsUCLjpxUyD3dofv8xq2CAPbzKJ"))
49+ then (assetMnemonic(o.assetPair.priceAsset) == "WAVES")
50+ else false)
51+ then if (if ((o.orderType == Buy))
52+ then (o.price == 350000000)
53+ else false)
54+ then true
55+ else if ((o.orderType == Sell))
56+ then (o.price == (350000000 + 1))
57+ else false
58+ else false)
59+ then (toBase58String(o.matcherPublicKey) == "8QUAqtTckM5B8gvcuP7mMswat9SjKUuafJMusEoSn1Gy")
60+ else false
61+ case _ =>
62+ sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
63+}
64+

github/deemru/w8io/873ac7e 
17.84 ms