tx · FPythsu7o6huMznkwgV2tTspxG54SjRaNXqopAHuUxuu

3My6kED2uUWAEFmNmUsKXAEwNE3pCeMmjRt:  -0.01400000 Waves

2019.02.05 07:54 [481277] smart account 3My6kED2uUWAEFmNmUsKXAEwNE3pCeMmjRt > SELF 0.00000000 Waves

{ "type": 13, "id": "FPythsu7o6huMznkwgV2tTspxG54SjRaNXqopAHuUxuu", "fee": 1400000, "feeAssetId": null, "timestamp": 1549342502995, "version": 1, "sender": "3My6kED2uUWAEFmNmUsKXAEwNE3pCeMmjRt", "senderPublicKey": "3qrTmx4jsup6WcnWLUdfzZayosrNHVNwSV99S6KvZwPy", "proofs": [ "3FHEjhyQjvP4oG1MH3cojvzzbUumuDZ14XhcSFKX7Z19fsrucnvWJhNiEd5unvLHPcUBnxcReKXGYFNdgqAFETUw" ], "script": "base64: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", "chainId": 84, "height": 481277, "spentComplexity": 0 } View: original | compacted Prev: GHTqyZDB7vr1p51ek4xUSCPGquc7XPE6pLgqxR63EKa Next: 4FZbfPyvJxEotQAGYLMaCx5Z9sAT3KewTZKa2A3RMyzj Diff:
OldNewDifferences
4141 false
4242 }
4343 }
44- else if (if (isDefined(getString(a.data, "answer")))
45- then isDefined(getString(a.data, "height"))
44+ else if (if (isDefined(getBinary(a.data, "answer")))
45+ then isDefined(getInteger(a.data, "height"))
4646 else false)
4747 then (a.fee == dataFee)
4848 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))
2121 if (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))
3131 else false)
3232 then !(isDefined(b.assetId))
3333 else false)
3434 then !(isDefined(getString(me, paymentTxId)))
3535 else false)
3636 then isDefined(getString(a.data, paymentTxId))
3737 else false)
3838 then (extract(transactionHeightById(b.id)) >= startHeight)
3939 else false
4040 case _ =>
4141 false
4242 }
4343 }
44- else if (if (isDefined(getString(a.data, "answer")))
45- then isDefined(getString(a.data, "height"))
44+ else if (if (isDefined(getBinary(a.data, "answer")))
45+ then isDefined(getInteger(a.data, "height"))
4646 else false)
4747 then (a.fee == dataFee)
4848 else false
4949 case c: MassTransferTransaction =>
5050 let partTxId = getString(me, toBase58String(addressFromRecipient(c.transfers[1].recipient).bytes))
5151 let participated = if (isDefined(partTxId))
5252 then (extract(transactionHeightById(fromBase58String(extract(partTxId)))) >= startHeight)
5353 else false
5454 let correct = (sha256(toBytes(extract(getString(c.transfers[1].recipient, "answer")))) == answer)
5555 if (if (if (if (if (if (participated)
5656 then correct
5757 else false)
5858 then (c.transfers[0].recipient == addressFromPublicKey(adminPublicKey))
5959 else false)
6060 then (c.transfers[0].amount >= (c.transfers[1].amount / 10))
6161 else false)
6262 then (size(c.transfers) == 2)
6363 else false)
6464 then (c.fee == payoutFee)
6565 else false)
6666 then !(isDefined(c.feeAssetId))
6767 else false
6868 case _ =>
6969 true
7070 }

github/deemru/w8io/3ef1775 
43.60 ms