tx · H2nyFGhHU7VZdbirXUBBAA4VSmawp9Kbb7tjUNXesY1g 3N5EryX3TucbwUpnjryZB3WLg3YDTcC9BbF: -1.00000000 Waves 2020.04.18 14:19 [959862] smart asset 3N5EryX3TucbwUpnjryZB3WLg3YDTcC9BbF > SELF 0 Testing
{ "type": 15, "id": "H2nyFGhHU7VZdbirXUBBAA4VSmawp9Kbb7tjUNXesY1g", "fee": 100000000, "feeAssetId": null, "timestamp": 1587208787618, "version": 1, "sender": "3N5EryX3TucbwUpnjryZB3WLg3YDTcC9BbF", "senderPublicKey": "B9XyW4GriR4NKr6yyp8ZS5BmRzTXAhBn9jybWtpDhQKk", "proofs": [ "45h6G4g8kE9pXH1SyUZ4tjAivyFsiiGoCRXTpqKYojhmdrVNkqMKUvekpRqu3cyFzN9VzHRC8yg7ozs7EHWF2JVV" ], "assetId": "AeTncgVqteQKehNcqfThTBjDA6BybconhBrxgL3W19Yt", "script": "base64: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", "chainId": 84, "height": 959862, "spentComplexity": 0 } View: original | compacted Prev: 3Ga8Du82aTG6nnR91sbVTgG2oUuy6iFZYcacsCGh8dcV Next: none Full:
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 2 #-} | |
2 | 2 | {-# CONTENT_TYPE EXPRESSION #-} | |
3 | + | let adminPK = base58'3N5EryX3TucbwUpnjryZB3WLg3YDTcC9BbF' | |
4 | + | let sellAmount = 1 | |
5 | + | let sellPrice = 1000 | |
6 | + | let buyPrice = 999 | |
7 | + | let burnFee = 100000000 | |
8 | + | let adminSigned = sigVerify(tx.bodyBytes, tx.proofs[0], adminPK) | |
3 | 9 | match tx { | |
4 | - | case _: BurnTransaction|TransferTransaction => | |
10 | + | case e: ExchangeTransaction => | |
11 | + | let sender = e.sellOrder.sender | |
12 | + | let sell = sigVerify(e.sellOrder.bodyBytes, e.sellOrder.proofs[0], e.sellOrder.senderPublicKey) | |
13 | + | let buy = sigVerify(e.buyOrder.bodyBytes, e.buyOrder.proofs[0], e.buyOrder.senderPublicKey) | |
14 | + | let admin = (e.sellOrder.sender == addressFromPublicKey(adminPK)) | |
15 | + | if (admin) | |
16 | + | then true | |
17 | + | else if (isDefined(e.sellOrder.assetPair.priceAsset)) | |
18 | + | then throw("Only waves accepted") | |
19 | + | else if (sell) | |
20 | + | then if ((sellAmount > e.sellOrder.amount)) | |
21 | + | then throw(("Sell amount must be greater or equal to " + toString((sellAmount / 100000000)))) | |
22 | + | else if ((sellPrice >= e.sellOrder.price)) | |
23 | + | then throw((("Sell price must be greater than " + toString(sellPrice)) + " wavelets")) | |
24 | + | else true | |
25 | + | else if (buy) | |
26 | + | then if ((buyPrice >= e.sellOrder.price)) | |
27 | + | then throw((("Buy price must be greater then " + toString(buyPrice)) + " wavelets")) | |
28 | + | else true | |
29 | + | else throw("something bad happened") | |
30 | + | case b: BurnTransaction => | |
31 | + | if ((burnFee > b.fee)) | |
32 | + | then throw((("Burn fee must be greater or equal to " + toString(burnFee)) + " wavelets")) | |
33 | + | else true | |
34 | + | case t: TransferTransaction|MassTransferTransaction => | |
35 | + | true | |
36 | + | case s: SetScriptTransaction|ReissueTransaction => | |
37 | + | adminSigned | |
38 | + | case _ => | |
5 | 39 | false | |
6 | - | case _ => | |
7 | - | true | |
8 | 40 | } |
github/deemru/w8io/873ac7e 20.73 ms ◑