tx · 4FZbfPyvJxEotQAGYLMaCx5Z9sAT3KewTZKa2A3RMyzj 3My6kED2uUWAEFmNmUsKXAEwNE3pCeMmjRt: -0.01400000 Waves 2019.02.05 15:35 [481728] smart account 3My6kED2uUWAEFmNmUsKXAEwNE3pCeMmjRt > SELF 0.00000000 Waves
{ "type": 13, "id": "4FZbfPyvJxEotQAGYLMaCx5Z9sAT3KewTZKa2A3RMyzj", "fee": 1400000, "feeAssetId": null, "timestamp": 1549370164562, "version": 1, "sender": "3My6kED2uUWAEFmNmUsKXAEwNE3pCeMmjRt", "senderPublicKey": "3qrTmx4jsup6WcnWLUdfzZayosrNHVNwSV99S6KvZwPy", "proofs": [ "3LBKyxjYcjDcdg1unNmHhsqXx1fcKYmKMLwkfD2QfgwsZUSiyBnZvAvp34rB5n8YNwNFxGdtN3qfoQt15tAwGkq1" ], "script": "base64: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", "chainId": 84, "height": 481728, "spentComplexity": 0 } View: original | compacted Prev: FPythsu7o6huMznkwgV2tTspxG54SjRaNXqopAHuUxuu Next: 4PjQFoZisnGtkNiZVbaDw6EgxHwai9DeoyzgcYxM53MP Diff:
Old | New | Differences | |
---|---|---|---|
18 | 18 | match paymentTx { | |
19 | 19 | case b: TransferTransaction => | |
20 | 20 | let sender = getString(a.data, toBase58String(b.sender.bytes)) | |
21 | - | if (if (if (if (if (if (if (if ( | |
21 | + | if (if (if (if (if (if (if (if (isDefined(sender)) | |
22 | 22 | then (b.recipient == me) | |
23 | 23 | else false) | |
24 | 24 | then (extract(sender) == paymentTxId) | |
28 | 28 | then (a.fee == dataFee) | |
29 | 29 | else false) | |
30 | 30 | then (b.amount >= (deposit + dataFee)) | |
31 | - | else false) | |
32 | - | then !(isDefined(b.assetId)) | |
33 | 31 | else false) | |
34 | 32 | then !(isDefined(getString(me, paymentTxId))) | |
35 | 33 | else false) |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 1 #-} | |
2 | 2 | {-# CONTENT_TYPE EXPRESSION #-} | |
3 | 3 | let deposit = 100000000 | |
4 | 4 | let dataFee = 10000000 | |
5 | 5 | let payoutFee = 500000 | |
6 | 6 | let me = tx.sender | |
7 | 7 | let adminPublicKey = base58'22GEgQRoT3xuSPQTTBNofWLnYQsn2ZTwAzd5f51CMFeb' | |
8 | 8 | let answer = extract(getBinary(me, "answer")) | |
9 | 9 | let startHeight = extract(getInteger(me, "height")) | |
10 | 10 | match tx { | |
11 | 11 | case a: DataTransaction => | |
12 | 12 | if ((size(a.data) != 2)) | |
13 | 13 | then throw("data incorrect") | |
14 | 14 | else if (!(sigVerify(a.bodyBytes, a.proofs[0], adminPublicKey))) | |
15 | 15 | then { | |
16 | 16 | let paymentTxId = extract(getString(a.data, 0)) | |
17 | 17 | let paymentTx = transactionById(fromBase58String(paymentTxId)) | |
18 | 18 | match paymentTx { | |
19 | 19 | case b: TransferTransaction => | |
20 | 20 | let sender = getString(a.data, toBase58String(b.sender.bytes)) | |
21 | - | if (if (if (if (if (if (if (if ( | |
21 | + | if (if (if (if (if (if (if (if (isDefined(sender)) | |
22 | 22 | then (b.recipient == me) | |
23 | 23 | else false) | |
24 | 24 | then (extract(sender) == paymentTxId) | |
25 | 25 | else false) | |
26 | 26 | then sigVerify(a.bodyBytes, a.proofs[0], b.senderPublicKey) | |
27 | 27 | else false) | |
28 | 28 | then (a.fee == dataFee) | |
29 | 29 | else false) | |
30 | 30 | then (b.amount >= (deposit + dataFee)) | |
31 | - | else false) | |
32 | - | then !(isDefined(b.assetId)) | |
33 | 31 | else false) | |
34 | 32 | then !(isDefined(getString(me, paymentTxId))) | |
35 | 33 | else false) | |
36 | 34 | then isDefined(getString(a.data, paymentTxId)) | |
37 | 35 | else false) | |
38 | 36 | then (extract(transactionHeightById(b.id)) >= startHeight) | |
39 | 37 | else false | |
40 | 38 | case _ => | |
41 | 39 | false | |
42 | 40 | } | |
43 | 41 | } | |
44 | 42 | else if (if (isDefined(getBinary(a.data, "answer"))) | |
45 | 43 | then isDefined(getInteger(a.data, "height")) | |
46 | 44 | else false) | |
47 | 45 | then (a.fee == dataFee) | |
48 | 46 | else false | |
49 | 47 | case c: MassTransferTransaction => | |
50 | 48 | let partTxId = getString(me, toBase58String(addressFromRecipient(c.transfers[1].recipient).bytes)) | |
51 | 49 | let participated = if (isDefined(partTxId)) | |
52 | 50 | then (extract(transactionHeightById(fromBase58String(extract(partTxId)))) >= startHeight) | |
53 | 51 | else false | |
54 | 52 | let correct = (sha256(toBytes(extract(getString(c.transfers[1].recipient, "answer")))) == answer) | |
55 | 53 | if (if (if (if (if (if (participated) | |
56 | 54 | then correct | |
57 | 55 | else false) | |
58 | 56 | then (c.transfers[0].recipient == addressFromPublicKey(adminPublicKey)) | |
59 | 57 | else false) | |
60 | 58 | then (c.transfers[0].amount >= (c.transfers[1].amount / 10)) | |
61 | 59 | else false) | |
62 | 60 | then (size(c.transfers) == 2) | |
63 | 61 | else false) | |
64 | 62 | then (c.fee == payoutFee) | |
65 | 63 | else false) | |
66 | 64 | then !(isDefined(c.feeAssetId)) | |
67 | 65 | else false | |
68 | 66 | case _ => | |
69 | 67 | true | |
70 | 68 | } |
github/deemru/w8io/3ef1775 42.79 ms ◑