tx · J2ydsUi2rk7htWVU8pC6o3ZQxvkg2PBFs5wtEEudtFA4

3N5EryX3TucbwUpnjryZB3WLg3YDTcC9BbF:  -1.00000000 Waves

2020.04.20 21:45 [963178] smart asset 3N5EryX3TucbwUpnjryZB3WLg3YDTcC9BbF > SELF 0.00000000 Test0003

{ "type": 15, "id": "J2ydsUi2rk7htWVU8pC6o3ZQxvkg2PBFs5wtEEudtFA4", "fee": 100000000, "feeAssetId": null, "timestamp": 1587408390752, "version": 1, "sender": "3N5EryX3TucbwUpnjryZB3WLg3YDTcC9BbF", "senderPublicKey": "B9XyW4GriR4NKr6yyp8ZS5BmRzTXAhBn9jybWtpDhQKk", "proofs": [ "4X44zuack22BcoshGGH7tCUHr5NLikGDKvasHvj2a18mfUqs7Y3xneDqZuZxcSSCKozndSxAkE1rnBFg7UPmiihA" ], "assetId": "G1sibUnEzT74RZLcP4Y6gEc8QCNhZLHaS5KKGksraacv", "script": "base64:AgQAAAAHYWRtaW5QSwEAAAAglsSJz6KFUcFtfApcMGPSTcbUtji15ZrrZdwT1HPy9xsEAAAACnNlbGxBbW91bnQAAAAAADuaygAEAAAACXNlbGxQcmljZQAAAAAABfXhAAQAAAAIYnV5UHJpY2UAAAAAAAX14P8EAAAAB2J1cm5GZWUAAAAAAB3NZQAEAAAAC2FkbWluU2lnbmVkCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAUAAAAHYWRtaW5QSwQAAAAHJG1hdGNoMAUAAAACdHgDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAE0V4Y2hhbmdlVHJhbnNhY3Rpb24EAAAAAWUFAAAAByRtYXRjaDAEAAAABnNlbmRlcggIBQAAAAFlAAAACXNlbGxPcmRlcgAAAAZzZW5kZXIEAAAABHNlbGwJAAH0AAAAAwgIBQAAAAFlAAAACXNlbGxPcmRlcgAAAAlib2R5Qnl0ZXMJAAGRAAAAAggIBQAAAAFlAAAACXNlbGxPcmRlcgAAAAZwcm9vZnMAAAAAAAAAAAAICAUAAAABZQAAAAlzZWxsT3JkZXIAAAAPc2VuZGVyUHVibGljS2V5BAAAAANidXkJAAH0AAAAAwgIBQAAAAFlAAAACGJ1eU9yZGVyAAAACWJvZHlCeXRlcwkAAZEAAAACCAgFAAAAAWUAAAAIYnV5T3JkZXIAAAAGcHJvb2ZzAAAAAAAAAAAACAgFAAAAAWUAAAAIYnV5T3JkZXIAAAAPc2VuZGVyUHVibGljS2V5BAAAAAVhZG1pbgkAAAAAAAACCAgFAAAAAWUAAAAJc2VsbE9yZGVyAAAABnNlbmRlcgkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQUAAAAHYWRtaW5QSwMFAAAABWFkbWluBgMJAQAAAAlpc0RlZmluZWQAAAABCAgIBQAAAAFlAAAACXNlbGxPcmRlcgAAAAlhc3NldFBhaXIAAAAKcHJpY2VBc3NldAkAAAIAAAABAgAAABNPbmx5IHdhdmVzIGFjY2VwdGVkAwUAAAAEc2VsbAMJAABmAAAAAgUAAAAKc2VsbEFtb3VudAgIBQAAAAFlAAAACXNlbGxPcmRlcgAAAAZhbW91bnQJAAACAAAAAQkAASwAAAACAgAAAChTZWxsIGFtb3VudCBtdXN0IGJlIGdyZWF0ZXIgb3IgZXF1YWwgdG8gCQABpAAAAAEJAABpAAAAAgUAAAAKc2VsbEFtb3VudAAAAAAABfXhAAMJAABnAAAAAgUAAAAJc2VsbFByaWNlCAgFAAAAAWUAAAAJc2VsbE9yZGVyAAAABXByaWNlCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAACBTZWxsIHByaWNlIG11c3QgYmUgZ3JlYXRlciB0aGFuIAkAAaQAAAABBQAAAAlzZWxsUHJpY2UCAAAACSB3YXZlbGV0cwYDBQAAAANidXkDCQAAZwAAAAIFAAAACGJ1eVByaWNlCAgFAAAAAWUAAAAJc2VsbE9yZGVyAAAABXByaWNlCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAAB9CdXkgcHJpY2UgbXVzdCBiZSBncmVhdGVyIHRoZW4gCQABpAAAAAEFAAAACGJ1eVByaWNlAgAAAAkgd2F2ZWxldHMGCQAAAgAAAAECAAAAFnNvbWV0aGluZyBiYWQgaGFwcGVuZWQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAD0J1cm5UcmFuc2FjdGlvbgQAAAABYgUAAAAHJG1hdGNoMAMJAABmAAAAAgUAAAAHYnVybkZlZQgFAAAAAWIAAAADZmVlCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAACVCdXJuIGZlZSBtdXN0IGJlIGdyZWF0ZXIgb3IgZXF1YWwgdG8gCQABpAAAAAEFAAAAB2J1cm5GZWUCAAAACSB3YXZlbGV0cwYDAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABNUcmFuc2ZlclRyYW5zYWN0aW9uBgkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABdNYXNzVHJhbnNmZXJUcmFuc2FjdGlvbgQAAAABdAUAAAAHJG1hdGNoMAYDAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABRTZXRTY3JpcHRUcmFuc2FjdGlvbgYJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAASUmVpc3N1ZVRyYW5zYWN0aW9uBAAAAAFzBQAAAAckbWF0Y2gwBQAAAAthZG1pblNpZ25lZAcoYBFQ", "chainId": 84, "height": 963178, "spentComplexity": 0 } View: original | compacted Prev: us2R7V7pPMayDiTTGKVMJNoK14W3V43QhWFjUQrek6B Next: none Full:
OldNewDifferences
11 {-# STDLIB_VERSION 2 #-}
22 {-# CONTENT_TYPE EXPRESSION #-}
3+let adminPK = base58'B9XyW4GriR4NKr6yyp8ZS5BmRzTXAhBn9jybWtpDhQKk'
4+let sellAmount = 1000000000
5+let sellPrice = 100000000
6+let buyPrice = 99999999
7+let burnFee = 500000000
8+let adminSigned = sigVerify(tx.bodyBytes, tx.proofs[0], adminPK)
39 match tx {
4- case t: TransferTransaction =>
5- (t.feeAssetId == base58'2vhhEwXpTpHKq8rnyLy3WGkQ4CLpFN5GZPyBiVKWKnG2')
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
638 case _ =>
7- true
39+ false
840 }

github/deemru/w8io/026f985 
21.79 ms