tx · 57pvCi5zgHJG1SJ7XAYxpCYrW5cS7PaqCyAkme7sNd2Q

3N4mapsqVLDdiatjTF2rYB5KiLn2e6Y4eJb:  -0.01400000 Waves

2019.01.30 09:29 [472638] smart account 3N4mapsqVLDdiatjTF2rYB5KiLn2e6Y4eJb > SELF 0.00000000 Waves

{ "type": 13, "id": "57pvCi5zgHJG1SJ7XAYxpCYrW5cS7PaqCyAkme7sNd2Q", "fee": 1400000, "feeAssetId": null, "timestamp": 1548829788137, "version": 1, "sender": "3N4mapsqVLDdiatjTF2rYB5KiLn2e6Y4eJb", "senderPublicKey": "BTdTmTBfL5TMXno6wjKmpDfg3m4L5A71Kaujb4kJtuYe", "proofs": [ "5XXLMd3WWs1swEyKNuYX79cMPEi1dM9y8oVR3uDaJ5e1YJrAUJkB24rPDNnBEwuK71dvvZo69VSNLuZ2YarLKpj7" ], "script": "base64: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", "chainId": 84, "height": 472638, "spentComplexity": 0 } View: original | compacted Prev: 2NQAuZhNx89zVYTZtbQFazUTBptMxsjn1mo4aLnsaicd Next: 3WrAuzFPyBzau4AUZaEapyzvrSeSFArFh1ddAHEtTqRu Diff:
OldNewDifferences
44 let minimalVotingHeight = 10
55 match tx {
66 case d: DataTransaction =>
7- if ((size(d.data) == 3))
7+ if (if ((size(d.data) == 3))
8+ then (size(d.proofs) == 3)
9+ else false)
810 then {
911 let assetTranserId = transactionById(d.proofs[1])
1012 let feeTransferId = transactionById(d.proofs[0])
2527 else false)
2628 then (fT.amount == (aT.amount * 500000))
2729 else false)
28- then (d.data[0].key == toBase58String(aT.attachment))
30+ then (d.data[0].key == toBase58String(sha256(aT.attachment)))
2931 else false)
30- then (d.data[0].key == toBase58String(fT.attachment))
32+ then (d.data[0].key == toBase58String(sha256(fT.attachment)))
3133 else false)
32- then (d.data[1].key == (toBase58String(fT.attachment) + "_height"))
34+ then (d.data[1].key == (toBase58String(sha256(fT.attachment)) + "_height"))
3335 else false)
34- then (d.data[2].key == (toBase58String(fT.attachment) + "_asset"))
36+ then (d.data[2].key == (toBase58String(sha256(fT.attachment)) + "_asset"))
3537 else false)
3638 then (extract(getInteger(aT.sender, d.data[1].key)) > height)
3739 else false)
3840 then (extract(getBinary(aT.sender, d.data[2].key)) == aT.assetId)
3941 else false)
40- then sigVerify(d.bodyBytes, d.proofs[2], d.senderPublicKey)
42+ then sigVerify(d.bodyBytes, d.proofs[2], d.proofs[3])
4143 else false
4244 case _ =>
4345 false
5052 case t: TransferTransaction =>
5153 if (isDefined(getString(voteBank, toBase58String(t.attachment))))
5254 then {
53- let voteStarter = extract(addressFromString(extract(getString(voteBank, toBase58String(t.attachment)))))
54- if (if (if (if (if (if ((extract(getInteger(voteBank, (toBase58String(t.attachment) + "_height"))) > height))
55+ let voteStarter = extract(addressFromString(extract(getString(voteBank, toBase58String(sha256(t.attachment))))))
56+ if (if (if (if (if (if ((extract(getInteger(voteBank, (toBase58String(sha256(t.attachment)) + "_height"))) > height))
5557 then if ((addressFromRecipient(t.recipient) == addressFromString(extract(getString(voteStarter, "YES")))))
5658 then true
5759 else (addressFromRecipient(t.recipient) == addressFromString(extract(getString(voteStarter, "NO"))))
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 1 #-}
22 {-# CONTENT_TYPE EXPRESSION #-}
33 let voteBank = addressFromPublicKey(fromBase58String("BTdTmTBfL5TMXno6wjKmpDfg3m4L5A71Kaujb4kJtuYe"))
44 let minimalVotingHeight = 10
55 match tx {
66 case d: DataTransaction =>
7- if ((size(d.data) == 3))
7+ if (if ((size(d.data) == 3))
8+ then (size(d.proofs) == 3)
9+ else false)
810 then {
911 let assetTranserId = transactionById(d.proofs[1])
1012 let feeTransferId = transactionById(d.proofs[0])
1113 match assetTranserId {
1214 case aT: TransferTransaction =>
1315 match feeTransferId {
1416 case fT: TransferTransaction =>
1517 if (if (if (if (if (if (if (if (if (if (if (if (if (!(isDefined(getString(voteBank, d.data[0].key))))
1618 then isDefined(getString(aT.sender, "YES"))
1719 else false)
1820 then isDefined(getString(aT.sender, "NO"))
1921 else false)
2022 then isDefined(getInteger(aT.sender, "height"))
2123 else false)
2224 then (aT.recipient == voteBank)
2325 else false)
2426 then (fT.recipient == voteBank)
2527 else false)
2628 then (fT.amount == (aT.amount * 500000))
2729 else false)
28- then (d.data[0].key == toBase58String(aT.attachment))
30+ then (d.data[0].key == toBase58String(sha256(aT.attachment)))
2931 else false)
30- then (d.data[0].key == toBase58String(fT.attachment))
32+ then (d.data[0].key == toBase58String(sha256(fT.attachment)))
3133 else false)
32- then (d.data[1].key == (toBase58String(fT.attachment) + "_height"))
34+ then (d.data[1].key == (toBase58String(sha256(fT.attachment)) + "_height"))
3335 else false)
34- then (d.data[2].key == (toBase58String(fT.attachment) + "_asset"))
36+ then (d.data[2].key == (toBase58String(sha256(fT.attachment)) + "_asset"))
3537 else false)
3638 then (extract(getInteger(aT.sender, d.data[1].key)) > height)
3739 else false)
3840 then (extract(getBinary(aT.sender, d.data[2].key)) == aT.assetId)
3941 else false)
40- then sigVerify(d.bodyBytes, d.proofs[2], d.senderPublicKey)
42+ then sigVerify(d.bodyBytes, d.proofs[2], d.proofs[3])
4143 else false
4244 case _ =>
4345 false
4446 }
4547 case _ =>
4648 false
4749 }
4850 }
4951 else false
5052 case t: TransferTransaction =>
5153 if (isDefined(getString(voteBank, toBase58String(t.attachment))))
5254 then {
53- let voteStarter = extract(addressFromString(extract(getString(voteBank, toBase58String(t.attachment)))))
54- if (if (if (if (if (if ((extract(getInteger(voteBank, (toBase58String(t.attachment) + "_height"))) > height))
55+ let voteStarter = extract(addressFromString(extract(getString(voteBank, toBase58String(sha256(t.attachment))))))
56+ if (if (if (if (if (if ((extract(getInteger(voteBank, (toBase58String(sha256(t.attachment)) + "_height"))) > height))
5557 then if ((addressFromRecipient(t.recipient) == addressFromString(extract(getString(voteStarter, "YES")))))
5658 then true
5759 else (addressFromRecipient(t.recipient) == addressFromString(extract(getString(voteStarter, "NO"))))
5860 else false)
5961 then (t.assetId == extract(getBinary(voteStarter, (toBase58String(t.attachment) + "_asset"))))
6062 else false)
6163 then (t.amount == 1)
6264 else false)
6365 then (t.fee == 500000)
6466 else false)
6567 then (wavesBalance(t.sender) > 100000000)
6668 else false)
6769 then sigVerify(t.bodyBytes, t.proofs[0], tx.senderPublicKey)
6870 else false
6971 }
7072 else false
7173 case s: SetScriptTransaction =>
7274 sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
7375 case _ =>
7476 false
7577 }

github/deemru/w8io/169f3d6 
31.49 ms