tx · 3DDhoRpj5SPYa3m3WLZ2hKB4QUi6HVFpKXpivrCskYNp

3N4mapsqVLDdiatjTF2rYB5KiLn2e6Y4eJb:  -0.01400000 Waves

2019.01.30 11:23 [472743] smart account 3N4mapsqVLDdiatjTF2rYB5KiLn2e6Y4eJb > SELF 0.00000000 Waves

{ "type": 13, "id": "3DDhoRpj5SPYa3m3WLZ2hKB4QUi6HVFpKXpivrCskYNp", "fee": 1400000, "feeAssetId": null, "timestamp": 1548836610585, "version": 1, "sender": "3N4mapsqVLDdiatjTF2rYB5KiLn2e6Y4eJb", "senderPublicKey": "BTdTmTBfL5TMXno6wjKmpDfg3m4L5A71Kaujb4kJtuYe", "proofs": [ "4qxkJN1ZwjQHwx4bPRWrAr3spbYyj4iGAXQmaiCR1HbRHRHy6si921z9UPpRfCJTPewR8a62HRHwiXZC64k5qhv4" ], "script": "base64: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", "chainId": 84, "height": 472743, "spentComplexity": 0 } View: original | compacted Prev: D1BqMXUTQdGjze6iUBaSpuoaRbgRUgFHoANSoBTeRvCb Next: QYJMxSLYuAufrYMBvDnxxnSr49gaUsSYSE3VDCHz9Hs Diff:
OldNewDifferences
1313 let attach = toBase58String(sha256(aT.attachment))
1414 match feeTransferId {
1515 case fT: TransferTransaction =>
16- if (if (if (!(isDefined(getString(voteBank, d.data[0].key))))
16+ if (if (if (if (if (if (if (if (if (if (if (if (!(isDefined(getString(voteBank, d.data[0].key))))
1717 then isDefined(getString(aT.sender, "YES"))
1818 else false)
1919 then isDefined(getString(aT.sender, "NO"))
2020 else false)
21+ then (aT.recipient == voteBank)
22+ else false)
23+ then (fT.recipient == voteBank)
24+ else false)
25+ then (fT.amount >= (aT.amount * 500000))
26+ else false)
2127 then (d.data[0].key == toBase58String(sha256(aT.attachment)))
28+ else false)
29+ then (d.data[0].key == toBase58String(sha256(fT.attachment)))
30+ else false)
31+ then (d.data[1].key == (toBase58String(sha256(fT.attachment)) + "_height"))
32+ else false)
33+ then (d.data[2].key == (toBase58String(sha256(fT.attachment)) + "_asset"))
34+ else false)
35+ then (extract(getInteger(aT.sender, d.data[1].key)) > height)
36+ else false)
37+ then (extract(getBinary(aT.sender, d.data[2].key)) == aT.assetId)
38+ else false)
39+ then sigVerify(d.bodyBytes, d.proofs[3], d.proofs[2])
2240 else false
2341 case _ =>
2442 false
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 =>
77 if ((size(d.data) == 3))
88 then {
99 let assetTranserId = transactionById(d.proofs[1])
1010 let feeTransferId = transactionById(d.proofs[0])
1111 match assetTranserId {
1212 case aT: TransferTransaction =>
1313 let attach = toBase58String(sha256(aT.attachment))
1414 match feeTransferId {
1515 case fT: TransferTransaction =>
16- if (if (if (!(isDefined(getString(voteBank, d.data[0].key))))
16+ if (if (if (if (if (if (if (if (if (if (if (if (!(isDefined(getString(voteBank, d.data[0].key))))
1717 then isDefined(getString(aT.sender, "YES"))
1818 else false)
1919 then isDefined(getString(aT.sender, "NO"))
2020 else false)
21+ then (aT.recipient == voteBank)
22+ else false)
23+ then (fT.recipient == voteBank)
24+ else false)
25+ then (fT.amount >= (aT.amount * 500000))
26+ else false)
2127 then (d.data[0].key == toBase58String(sha256(aT.attachment)))
28+ else false)
29+ then (d.data[0].key == toBase58String(sha256(fT.attachment)))
30+ else false)
31+ then (d.data[1].key == (toBase58String(sha256(fT.attachment)) + "_height"))
32+ else false)
33+ then (d.data[2].key == (toBase58String(sha256(fT.attachment)) + "_asset"))
34+ else false)
35+ then (extract(getInteger(aT.sender, d.data[1].key)) > height)
36+ else false)
37+ then (extract(getBinary(aT.sender, d.data[2].key)) == aT.assetId)
38+ else false)
39+ then sigVerify(d.bodyBytes, d.proofs[3], d.proofs[2])
2240 else false
2341 case _ =>
2442 false
2543 }
2644 case _ =>
2745 false
2846 }
2947 }
3048 else false
3149 case t: TransferTransaction =>
3250 if (isDefined(getString(voteBank, toBase58String(t.attachment))))
3351 then {
3452 let voteStarter = extract(addressFromString(extract(getString(voteBank, toBase58String(sha256(t.attachment))))))
3553 if (if (if (if (if (if ((extract(getInteger(voteBank, (toBase58String(sha256(t.attachment)) + "_height"))) > height))
3654 then if ((addressFromRecipient(t.recipient) == addressFromString(extract(getString(voteStarter, "YES")))))
3755 then true
3856 else (addressFromRecipient(t.recipient) == addressFromString(extract(getString(voteStarter, "NO"))))
3957 else false)
4058 then (t.assetId == extract(getBinary(voteStarter, (toBase58String(t.attachment) + "_asset"))))
4159 else false)
4260 then (t.amount == 1)
4361 else false)
4462 then (t.fee == 500000)
4563 else false)
4664 then (wavesBalance(t.sender) > 100000000)
4765 else false)
4866 then sigVerify(t.bodyBytes, t.proofs[0], tx.senderPublicKey)
4967 else false
5068 }
5169 else false
5270 case s: SetScriptTransaction =>
5371 sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
5472 case _ =>
5573 false
5674 }

github/deemru/w8io/026f985 
23.04 ms