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:
OldNewDifferences
1818 match paymentTx {
1919 case b: TransferTransaction =>
2020 let sender = getString(a.data, toBase58String(b.sender.bytes))
21- if (if (if (if (if (if (if (if (if (isDefined(sender))
21+ if (if (if (if (if (if (if (if (isDefined(sender))
2222 then (b.recipient == me)
2323 else false)
2424 then (extract(sender) == paymentTxId)
2828 then (a.fee == dataFee)
2929 else false)
3030 then (b.amount >= (deposit + dataFee))
31- else false)
32- then !(isDefined(b.assetId))
3331 else false)
3432 then !(isDefined(getString(me, paymentTxId)))
3533 else false)
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 1 #-}
22 {-# CONTENT_TYPE EXPRESSION #-}
33 let deposit = 100000000
44 let dataFee = 10000000
55 let payoutFee = 500000
66 let me = tx.sender
77 let adminPublicKey = base58'22GEgQRoT3xuSPQTTBNofWLnYQsn2ZTwAzd5f51CMFeb'
88 let answer = extract(getBinary(me, "answer"))
99 let startHeight = extract(getInteger(me, "height"))
1010 match tx {
1111 case a: DataTransaction =>
1212 if ((size(a.data) != 2))
1313 then throw("data incorrect")
1414 else if (!(sigVerify(a.bodyBytes, a.proofs[0], adminPublicKey)))
1515 then {
1616 let paymentTxId = extract(getString(a.data, 0))
1717 let paymentTx = transactionById(fromBase58String(paymentTxId))
1818 match paymentTx {
1919 case b: TransferTransaction =>
2020 let sender = getString(a.data, toBase58String(b.sender.bytes))
21- if (if (if (if (if (if (if (if (if (isDefined(sender))
21+ if (if (if (if (if (if (if (if (isDefined(sender))
2222 then (b.recipient == me)
2323 else false)
2424 then (extract(sender) == paymentTxId)
2525 else false)
2626 then sigVerify(a.bodyBytes, a.proofs[0], b.senderPublicKey)
2727 else false)
2828 then (a.fee == dataFee)
2929 else false)
3030 then (b.amount >= (deposit + dataFee))
31- else false)
32- then !(isDefined(b.assetId))
3331 else false)
3432 then !(isDefined(getString(me, paymentTxId)))
3533 else false)
3634 then isDefined(getString(a.data, paymentTxId))
3735 else false)
3836 then (extract(transactionHeightById(b.id)) >= startHeight)
3937 else false
4038 case _ =>
4139 false
4240 }
4341 }
4442 else if (if (isDefined(getBinary(a.data, "answer")))
4543 then isDefined(getInteger(a.data, "height"))
4644 else false)
4745 then (a.fee == dataFee)
4846 else false
4947 case c: MassTransferTransaction =>
5048 let partTxId = getString(me, toBase58String(addressFromRecipient(c.transfers[1].recipient).bytes))
5149 let participated = if (isDefined(partTxId))
5250 then (extract(transactionHeightById(fromBase58String(extract(partTxId)))) >= startHeight)
5351 else false
5452 let correct = (sha256(toBytes(extract(getString(c.transfers[1].recipient, "answer")))) == answer)
5553 if (if (if (if (if (if (participated)
5654 then correct
5755 else false)
5856 then (c.transfers[0].recipient == addressFromPublicKey(adminPublicKey))
5957 else false)
6058 then (c.transfers[0].amount >= (c.transfers[1].amount / 10))
6159 else false)
6260 then (size(c.transfers) == 2)
6361 else false)
6462 then (c.fee == payoutFee)
6563 else false)
6664 then !(isDefined(c.feeAssetId))
6765 else false
6866 case _ =>
6967 true
7068 }

github/deemru/w8io/3ef1775 
42.79 ms