tx · DmBTjjnrNu6F884E4ZXsMQCFLdtiQier2NTN8JW2Ge34

3PQGi9wWUQMfuyT8twbu1EvsJrqG2ZmadK3:  -0.01400000 Waves

2019.01.30 13:29 [1374067] smart account 3PQGi9wWUQMfuyT8twbu1EvsJrqG2ZmadK3 > SELF 0.00000000 Waves

{ "type": 13, "id": "DmBTjjnrNu6F884E4ZXsMQCFLdtiQier2NTN8JW2Ge34", "fee": 1400000, "feeAssetId": null, "timestamp": 1548844253114, "version": 1, "sender": "3PQGi9wWUQMfuyT8twbu1EvsJrqG2ZmadK3", "senderPublicKey": "azWhyNMQjEY9AQt2eySXXqR28NJwEbJTKy132zkVoTe", "proofs": [ "3Jrg4o7uCvECrXGFz12stB8FTcajnB76Z8qHa9nixZX1GxB86G55HUXUvvZpoT9No6gYn6S2SsddpPL4BQBtY1TY" ], "script": "base64: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", "chainId": 87, "height": 1374067, "spentComplexity": 0 } View: original | compacted Prev: GNVE1T578cyn8TUmp8tYDjHKqkAie8VMTinEoGTg8YbU Next: none Diff:
OldNewDifferences
1414 case fT: TransferTransaction =>
1515 let votingHeight = d.data[1].value
1616 if (if (if (if (if (if (if (if (if (if (if (if (!(isDefined(getString(voteBank, d.data[0].key))))
17- then isDefined(getString(aT.sender, "YES"))
17+ then isDefined(getString(aT.sender, "pros"))
1818 else false)
19- then isDefined(getString(aT.sender, "NO"))
19+ then isDefined(getString(aT.sender, "cons"))
2020 else false)
2121 then (aT.recipient == voteBank)
2222 else false)
6060 then {
6161 let voteStarter = extract(addressFromString(extract(getString(voteBank, voteSecret))))
6262 if (if (if (if (if (if ((extract(getInteger(voteBank, (voteSecret + "_height"))) > height))
63- then if ((addressFromRecipient(t.recipient) == addressFromString(extract(getString(voteStarter, "YES")))))
63+ then if ((addressFromRecipient(t.recipient) == addressFromString(extract(getString(voteStarter, "pros")))))
6464 then true
65- else (addressFromRecipient(t.recipient) == addressFromString(extract(getString(voteStarter, "NO"))))
65+ else (addressFromRecipient(t.recipient) == addressFromString(extract(getString(voteStarter, "cons"))))
6666 else false)
6767 then (t.assetId == extract(getBinary(voteBank, (voteSecret + "_asset"))))
6868 else false)
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 1 #-}
22 {-# CONTENT_TYPE EXPRESSION #-}
33 let voteBank = addressFromPublicKey(fromBase58String("azWhyNMQjEY9AQt2eySXXqR28NJwEbJTKy132zkVoTe"))
44 let minimalVotingHeight = 100
55 match tx {
66 case d: DataTransaction =>
77 if ((size(d.data) == 3))
88 then {
99 let feeTransferId = transactionById(d.proofs[0])
1010 let assetTranserId = transactionById(d.proofs[1])
1111 match assetTranserId {
1212 case aT: TransferTransaction =>
1313 match feeTransferId {
1414 case fT: TransferTransaction =>
1515 let votingHeight = d.data[1].value
1616 if (if (if (if (if (if (if (if (if (if (if (if (!(isDefined(getString(voteBank, d.data[0].key))))
17- then isDefined(getString(aT.sender, "YES"))
17+ then isDefined(getString(aT.sender, "pros"))
1818 else false)
19- then isDefined(getString(aT.sender, "NO"))
19+ then isDefined(getString(aT.sender, "cons"))
2020 else false)
2121 then (aT.recipient == voteBank)
2222 else false)
2323 then (fT.recipient == voteBank)
2424 else false)
2525 then (fT.amount >= (aT.amount * 500000))
2626 else false)
2727 then (d.data[0].key == toBase58String(sha256(aT.attachment)))
2828 else false)
2929 then (d.data[0].key == toBase58String(sha256(fT.attachment)))
3030 else false)
3131 then (d.data[1].key == (toBase58String(sha256(fT.attachment)) + "_height"))
3232 else false)
3333 then (d.data[2].key == (toBase58String(sha256(fT.attachment)) + "_asset"))
3434 else false)
3535 then match votingHeight {
3636 case h: Int =>
3737 if ((h > height))
3838 then ((height - h) > minimalVotingHeight)
3939 else false
4040 case _ =>
4141 false
4242 }
4343 else false)
4444 then (d.data[2].value == aT.assetId)
4545 else false)
4646 then sigVerify(d.bodyBytes, d.proofs[3], d.proofs[2])
4747 else false
4848 case _ =>
4949 false
5050 }
5151 case _ =>
5252 false
5353 }
5454 }
5555 else false
5656 case t: TransferTransaction =>
5757 let voteSecret = toBase58String(sha256(t.attachment))
5858 let voterAddress = addressFromPublicKey(t.proofs[0])
5959 if (isDefined(getString(voteBank, voteSecret)))
6060 then {
6161 let voteStarter = extract(addressFromString(extract(getString(voteBank, voteSecret))))
6262 if (if (if (if (if (if ((extract(getInteger(voteBank, (voteSecret + "_height"))) > height))
63- then if ((addressFromRecipient(t.recipient) == addressFromString(extract(getString(voteStarter, "YES")))))
63+ then if ((addressFromRecipient(t.recipient) == addressFromString(extract(getString(voteStarter, "pros")))))
6464 then true
65- else (addressFromRecipient(t.recipient) == addressFromString(extract(getString(voteStarter, "NO"))))
65+ else (addressFromRecipient(t.recipient) == addressFromString(extract(getString(voteStarter, "cons"))))
6666 else false)
6767 then (t.assetId == extract(getBinary(voteBank, (voteSecret + "_asset"))))
6868 else false)
6969 then (t.amount == 1)
7070 else false)
7171 then (t.fee == 500000)
7272 else false)
7373 then (wavesBalance(voterAddress) > 100000000)
7474 else false)
7575 then sigVerify(t.bodyBytes, t.proofs[1], t.proofs[0])
7676 else false
7777 }
7878 else false
7979 case s: SetScriptTransaction =>
8080 sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
8181 case _ =>
8282 false
8383 }

github/deemru/w8io/3ef1775 
89.39 ms