tx · 85ban6GhYunzeRZyExUkUpuFMk8xAHimgW4bbsAimnRt

3N7UYW9TnmvBHnFst9imprHsoAMHQ3NR7Ub:  -0.01400000 Waves

2019.02.03 14:48 [478772] smart account 3N7UYW9TnmvBHnFst9imprHsoAMHQ3NR7Ub > SELF 0.00000000 Waves

{ "type": 13, "id": "85ban6GhYunzeRZyExUkUpuFMk8xAHimgW4bbsAimnRt", "fee": 1400000, "feeAssetId": null, "timestamp": 1549194507330, "version": 1, "sender": "3N7UYW9TnmvBHnFst9imprHsoAMHQ3NR7Ub", "senderPublicKey": "CXpiWubcdkB79QekRVaEXMVY8N12qP2f9zJp5sziGfge", "proofs": [ "4nw3jBwfSXTxjWv1aMnoC21nb9FTrTZUtMXRG5eof7sSJSU9LNuDK8euexM44zkrwK8BFKrQ8A3QYuZuuYTv8CK8" ], "script": "base64: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", "chainId": 84, "height": 478772, "spentComplexity": 0 } View: original | compacted Prev: 7MuXe8DkcAvFsngDzxfA18ft5MV5F2NmHSreU9AQumos Next: 2zK8sEfiUwAzCkf9PAZ26unRNUUnUxbeCj1a3uNJVZ6b Diff:
OldNewDifferences
1010 match feeTransferId {
1111 case fT: TransferTransaction =>
1212 let votingHeight = extract(getInteger(d.data, 0))
13- if (if (if (if (if (!(isDefined(getInteger(voteBank, d.data[0].key))))
14- then (fT.recipient == voteBank)
13+ if (if (if (if (if (if (!(isDefined(getInteger(voteBank, d.data[0].key))))
14+ then true
15+ else throw("asset already registred"))
16+ then if ((fT.recipient == voteBank))
17+ then true
18+ else throw("fee recipient not votebank")
1519 else false)
1620 then !(isDefined(fT.assetId))
1721 else false)
1822 then (votingHeight > height)
1923 else false)
20- then ((votingHeight - height) >= minimalVotingHeight)
24+ then if (((votingHeight - height) >= minimalVotingHeight))
25+ then true
26+ else throw("voting interval should be mre than 100 blocks")
2127 else false)
2228 then match transactionById(fromBase58String(d.data[0].key)) {
2329 case i: IssueTransaction =>
2733 if ((fT.amount >= (i.quantity * 900000)))
2834 then if (if (if (if ( match scriptTx {
2935 case s: SetScriptTransaction =>
30- (sha256(extract(s.script)) == accountScriptHash)
36+ if ((sha256(extract(s.script)) == accountScriptHash))
37+ then true
38+ else throw("script hash not fit requirements")
3139 case _ =>
3240 throw("voting initiator not scripted, or script is wrong")
3341 })
3543 else false)
3644 then (fT.senderPublicKey == i.senderPublicKey)
3745 else false)
38- then (d.data[1].key == toBase58String(i.sender.bytes))
46+ then if ((d.data[1].key == toBase58String(i.sender.bytes)))
47+ then true
48+ else throw("trying to reg asset of another issuer")
3949 else false)
40- then sigVerify(d.bodyBytes, d.proofs[1], fT.senderPublicKey)
50+ then if (sigVerify(d.bodyBytes, d.proofs[1], fT.senderPublicKey))
51+ then true
52+ else throw("wrong signature")
4153 else false
4254 else throw(("minimum trasfer transaction amount is" + toString((i.quantity * 900000))))
4355 case _ =>
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 1 #-}
22 {-# CONTENT_TYPE EXPRESSION #-}
33 let voteBank = tx.sender
44 let minimalVotingHeight = 100
55 match tx {
66 case d: DataTransaction =>
77 if ((size(d.data) == 2))
88 then {
99 let feeTransferId = transactionById(d.proofs[0])
1010 match feeTransferId {
1111 case fT: TransferTransaction =>
1212 let votingHeight = extract(getInteger(d.data, 0))
13- if (if (if (if (if (!(isDefined(getInteger(voteBank, d.data[0].key))))
14- then (fT.recipient == voteBank)
13+ if (if (if (if (if (if (!(isDefined(getInteger(voteBank, d.data[0].key))))
14+ then true
15+ else throw("asset already registred"))
16+ then if ((fT.recipient == voteBank))
17+ then true
18+ else throw("fee recipient not votebank")
1519 else false)
1620 then !(isDefined(fT.assetId))
1721 else false)
1822 then (votingHeight > height)
1923 else false)
20- then ((votingHeight - height) >= minimalVotingHeight)
24+ then if (((votingHeight - height) >= minimalVotingHeight))
25+ then true
26+ else throw("voting interval should be mre than 100 blocks")
2127 else false)
2228 then match transactionById(fromBase58String(d.data[0].key)) {
2329 case i: IssueTransaction =>
2430 let accountScriptedProof = extract(getBinary(d.data, 1))
2531 let accountScriptHash = extract(getBinary(voteBank, "IssuerAccountScriptHash"))
2632 let scriptTx = transactionById(accountScriptedProof)
2733 if ((fT.amount >= (i.quantity * 900000)))
2834 then if (if (if (if ( match scriptTx {
2935 case s: SetScriptTransaction =>
30- (sha256(extract(s.script)) == accountScriptHash)
36+ if ((sha256(extract(s.script)) == accountScriptHash))
37+ then true
38+ else throw("script hash not fit requirements")
3139 case _ =>
3240 throw("voting initiator not scripted, or script is wrong")
3341 })
3442 then (i.decimals == 0)
3543 else false)
3644 then (fT.senderPublicKey == i.senderPublicKey)
3745 else false)
38- then (d.data[1].key == toBase58String(i.sender.bytes))
46+ then if ((d.data[1].key == toBase58String(i.sender.bytes)))
47+ then true
48+ else throw("trying to reg asset of another issuer")
3949 else false)
40- then sigVerify(d.bodyBytes, d.proofs[1], fT.senderPublicKey)
50+ then if (sigVerify(d.bodyBytes, d.proofs[1], fT.senderPublicKey))
51+ then true
52+ else throw("wrong signature")
4153 else false
4254 else throw(("minimum trasfer transaction amount is" + toString((i.quantity * 900000))))
4355 case _ =>
4456 throw("data key at 0 index should contain voting asset id")
4557 }
4658 else false
4759 case _ =>
4860 throw("proof at index 0 doesn't contain fee transfer transaction")
4961 }
5062 }
5163 else throw("data tx should contain two key-value pairs: 0 - assetId-maxVotingHeight, 1 - ")
5264 case t: TransferTransaction =>
5365 if (isDefined(getInteger(voteBank, toBase58String(extract(t.assetId)))))
5466 then {
5567 let h = getInteger(voteBank, toBase58String(extract(t.assetId)))
5668 if (if (if ((extract(h) > height))
5769 then if ((addressFromRecipient(t.recipient) == addressFromString(extract(getString(voteBank, "pros")))))
5870 then true
5971 else (addressFromRecipient(t.recipient) == addressFromString(extract(getString(voteBank, "cons"))))
6072 else false)
6173 then isDefined(getString(voteBank, "pros"))
6274 else false)
6375 then isDefined(getString(voteBank, "cons"))
6476 else false
6577 }
6678 else throw("you cannot vote with this token. It's not registred")
6779 case s: SetScriptTransaction =>
6880 sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
6981 case _ =>
7082 false
7183 }

github/deemru/w8io/3ef1775 
45.43 ms