tx · GHTqyZDB7vr1p51ek4xUSCPGquc7XPE6pLgqxR63EKa

3My6kED2uUWAEFmNmUsKXAEwNE3pCeMmjRt:  -0.01400000 Waves

2019.02.05 07:40 [481259] smart account 3My6kED2uUWAEFmNmUsKXAEwNE3pCeMmjRt > SELF 0.00000000 Waves

{ "type": 13, "id": "GHTqyZDB7vr1p51ek4xUSCPGquc7XPE6pLgqxR63EKa", "fee": 1400000, "feeAssetId": null, "timestamp": 1549341621308, "version": 1, "sender": "3My6kED2uUWAEFmNmUsKXAEwNE3pCeMmjRt", "senderPublicKey": "3qrTmx4jsup6WcnWLUdfzZayosrNHVNwSV99S6KvZwPy", "proofs": [ "5zGqSpL4XnbQPRHRpcq2XoaifwCdwmTLGRchjdQxBpXwsSeyQJT7PUnBXLyB1xEqugkFnh99riXuZPU2GVgupkLs" ], "script": "base64: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", "chainId": 84, "height": 481259, "spentComplexity": 0 } View: original | compacted Prev: Dsoy6UWjpfzN6xaPATCs6RxToPzr1FjsbCkY2XC3LehU Next: FPythsu7o6huMznkwgV2tTspxG54SjRaNXqopAHuUxuu Full:
OldNewDifferences
11 {-# STDLIB_VERSION 1 #-}
22 {-# CONTENT_TYPE EXPRESSION #-}
3-let startHeight = 140000
4-let answer = base58'Bjj4AWTNrjQVHqgWbP2XaxXz4DYH1WZMyERHxsad7b2w'
3+let deposit = 100000000
4+let dataFee = 10000000
5+let payoutFee = 500000
56 let me = tx.sender
7+let adminPublicKey = base58'22GEgQRoT3xuSPQTTBNofWLnYQsn2ZTwAzd5f51CMFeb'
8+let answer = extract(getBinary(me, "answer"))
9+let startHeight = extract(getInteger(me, "height"))
610 match tx {
711 case a: DataTransaction =>
8- if ((size(a.data) == 0))
9- then throw("data is empty")
10- else {
11- let paymentTxId = extract(getString(a.data, 0))
12- let paymentTx = transactionById(fromBase58String(paymentTxId))
13- match paymentTx {
14- case b: TransferTransaction =>
15- let sender = getString(a.data, toBase58String(b.sender.bytes))
16- if (if (isDefined(sender))
17- then (extract(sender) == paymentTxId)
18- else false)
19- then sigVerify(a.bodyBytes, a.proofs[0], b.senderPublicKey)
20- else false
21- case _ =>
22- false
23- }
24- }
25- case c: TransferTransaction =>
26- let participated = isDefined(getString(me, toBase58String(addressFromRecipient(c.recipient).bytes)))
27- (sha256(toBytes(extract(getString(c.recipient, "answer")))) == answer)
12+ if ((size(a.data) != 2))
13+ then throw("data incorrect")
14+ else if (!(sigVerify(a.bodyBytes, a.proofs[0], adminPublicKey)))
15+ then {
16+ let paymentTxId = extract(getString(a.data, 0))
17+ let paymentTx = transactionById(fromBase58String(paymentTxId))
18+ match paymentTx {
19+ case b: TransferTransaction =>
20+ let sender = getString(a.data, toBase58String(b.sender.bytes))
21+ if (if (if (if (if (if (if (if (if (isDefined(sender))
22+ then (b.recipient == me)
23+ else false)
24+ then (extract(sender) == paymentTxId)
25+ else false)
26+ then sigVerify(a.bodyBytes, a.proofs[0], b.senderPublicKey)
27+ else false)
28+ then (a.fee == dataFee)
29+ else false)
30+ then (b.amount >= (deposit + dataFee))
31+ else false)
32+ then !(isDefined(b.assetId))
33+ else false)
34+ then !(isDefined(getString(me, paymentTxId)))
35+ else false)
36+ then isDefined(getString(a.data, paymentTxId))
37+ else false)
38+ then (extract(transactionHeightById(b.id)) >= startHeight)
39+ else false
40+ case _ =>
41+ false
42+ }
43+ }
44+ else if (if (isDefined(getString(a.data, "answer")))
45+ then isDefined(getString(a.data, "height"))
46+ else false)
47+ then (a.fee == dataFee)
48+ else false
49+ case c: MassTransferTransaction =>
50+ let partTxId = getString(me, toBase58String(addressFromRecipient(c.transfers[1].recipient).bytes))
51+ let participated = if (isDefined(partTxId))
52+ then (extract(transactionHeightById(fromBase58String(extract(partTxId)))) >= startHeight)
53+ else false
54+ let correct = (sha256(toBytes(extract(getString(c.transfers[1].recipient, "answer")))) == answer)
55+ if (if (if (if (if (if (participated)
56+ then correct
57+ else false)
58+ then (c.transfers[0].recipient == addressFromPublicKey(adminPublicKey))
59+ else false)
60+ then (c.transfers[0].amount >= (c.transfers[1].amount / 10))
61+ else false)
62+ then (size(c.transfers) == 2)
63+ else false)
64+ then (c.fee == payoutFee)
65+ else false)
66+ then !(isDefined(c.feeAssetId))
67+ else false
2868 case _ =>
2969 true
3070 }

github/deemru/w8io/3ef1775 
38.97 ms