tx · 6Yc8haJb6FhejVevVQmE9NuDfEEFRgb51UbKFGGXVLxj

3MwR2FzFtbHeds3NzvkbiaYMVNhbtqcfRPU:  -0.01400000 Waves

2019.02.10 19:41 [489294] smart account 3MwR2FzFtbHeds3NzvkbiaYMVNhbtqcfRPU > SELF 0.00000000 Waves

{ "type": 13, "id": "6Yc8haJb6FhejVevVQmE9NuDfEEFRgb51UbKFGGXVLxj", "fee": 1400000, "feeAssetId": null, "timestamp": 1549816877058, "version": 1, "sender": "3MwR2FzFtbHeds3NzvkbiaYMVNhbtqcfRPU", "senderPublicKey": "H5rtwGVnkSHDfz6msD7itGURoKMXvvDwPoup1VESxfjJ", "proofs": [ "2ayoGN75tQ1BvC11xxG7y54FjPZmTB4QpPak5RFcbsHvFTsZTyMTZTC2eAHckXzwxhaYPqaJa9c1dxUCfjGPiDhb" ], "script": "base64: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", "chainId": 84, "height": 489294, "spentComplexity": 0 } View: original | compacted Prev: GTmjYGR3d9kpu8q4cdmZTu3Z2SQHpC9omAXdiQVi9LiA Next: AyzbPdNzuosVM2boFK5fWc6zmXgmZMwKeDtJWUNR73W1 Diff:
OldNewDifferences
7575 let guess = extract(getBinary(me, paymentTxIdStr))
7676 let type = take(guess, 1)
7777 let val = drop(guess, 1)
78- let key = extract(getString(me, (toBase58String(tx.proofs[1]) + "_round")))
78+ let key = extract(getString(me, (paymentTxIdStr + "_round")))
7979 let valComplex = extract(getBinary(oracle, key))
8080 let koeff = if ((type == drop(toBytes(0), 7)))
8181 then 35
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 1 #-}
22 {-# CONTENT_TYPE EXPRESSION #-}
33 let me = tx.sender
44 let oracle = extract(addressFromString("3NCzaYTNDGtR8zf9yfcqePFjCqFx9S5zhs4"))
55 let minWithdrawFee = 400000
66 match tx {
77 case withdrawTx: TransferTransaction =>
88 let txId = extract(getString(me, toBase58String(tx.proofs[1])))
99 match transactionById(tx.proofs[1]) {
1010 case paymentTx: TransferTransaction =>
1111 let isPaymentTookPlace = if ((txId == toBase58String(tx.id)))
1212 then sigVerify(tx.bodyBytes, tx.proofs[0], paymentTx.senderPublicKey)
1313 else false
1414 let feesKey = (toBase58String(tx.proofs[1]) + "_fees")
1515 let dataTxsFees = extract(getInteger(me, feesKey))
1616 let guess = extract(getBinary(me, toBase58String(tx.proofs[1])))
1717 let type = take(guess, 1)
1818 let val = drop(guess, 1)
1919 let key = extract(getString(me, (toBase58String(tx.proofs[1]) + "_round")))
2020 let valComplex = extract(getBinary(oracle, key))
2121 let koeff = if ((type == drop(toBytes(0), 7)))
2222 then 35
2323 else if ((type == drop(toBytes(1), 7)))
2424 then 2
2525 else if ((type == drop(toBytes(2), 7)))
2626 then 2
2727 else if ((type == drop(toBytes(3), 7)))
2828 then 2
2929 else if ((type == drop(toBytes(4), 7)))
3030 then 3
3131 else if ((type == drop(toBytes(5), 7)))
3232 then 3
3333 else 0
3434 let correctAmount = (((paymentTx.amount * koeff) - dataTxsFees) - withdrawTx.fee)
3535 let isAmountOk = (withdrawTx.amount == correctAmount)
3636 let isInWaves = if (!(isDefined(withdrawTx.feeAssetId)))
3737 then !(isDefined(withdrawTx.assetId))
3838 else false
3939 if (if (isPaymentTookPlace)
4040 then isAmountOk
4141 else false)
4242 then isInWaves
4343 else false
4444 case _ =>
4545 false
4646 }
4747 case dtx: DataTransaction =>
4848 if ((size(dtx.data) == 2))
4949 then {
5050 let isDataCountOk = (size(dtx.data) == 2)
5151 let paymentTxIdStr = dropRight(extract(dtx.data[0].key), 9)
5252 let feesKey = (paymentTxIdStr + "_withdraw_fees")
5353 let paymentTx = transactionById(fromBase58String(paymentTxIdStr))
5454 let newFees = extract(getInteger(dtx.data, feesKey))
5555 let oldFees = if (isDefined(getInteger(me, feesKey)))
5656 then extract(getInteger(me, feesKey))
5757 else 0
5858 let isFeeCorrect = (newFees == (oldFees + dtx.fee))
5959 let isPaymentAlreadyMentioned = isDefined(getString(me, paymentTxIdStr))
6060 let withdrawTransactionId = fromBase58String(extract(getString(me, paymentTxIdStr)))
6161 let isWithdrawExist = isDefined(transactionById(withdrawTransactionId))
6262 match paymentTx {
6363 case paymentTx: TransferTransaction =>
6464 let isDtxSignedByPayer = sigVerify(dtx.bodyBytes, dtx.proofs[0], paymentTx.senderPublicKey)
6565 if (if (if (if (if (!(isPaymentAlreadyMentioned))
6666 then true
6767 else !(isWithdrawExist))
6868 then isDtxSignedByPayer
6969 else false)
7070 then isFeeCorrect
7171 else false)
7272 then isDataCountOk
7373 else false)
7474 then {
7575 let guess = extract(getBinary(me, paymentTxIdStr))
7676 let type = take(guess, 1)
7777 let val = drop(guess, 1)
78- let key = extract(getString(me, (toBase58String(tx.proofs[1]) + "_round")))
78+ let key = extract(getString(me, (paymentTxIdStr + "_round")))
7979 let valComplex = extract(getBinary(oracle, key))
8080 let koeff = if ((type == drop(toBytes(0), 7)))
8181 then 35
8282 else if ((type == drop(toBytes(1), 7)))
8383 then 2
8484 else if ((type == drop(toBytes(2), 7)))
8585 then 2
8686 else if ((type == drop(toBytes(3), 7)))
8787 then 2
8888 else if ((type == drop(toBytes(4), 7)))
8989 then 3
9090 else if ((type == drop(toBytes(5), 7)))
9191 then 3
9292 else 0
9393 let ver = take(valComplex, 1)
9494 let valReal = if ((type == drop(toBytes(0), 7)))
9595 then drop(take(valComplex, 2), 1)
9696 else if ((type == drop(toBytes(1), 7)))
9797 then drop(take(valComplex, 3), 2)
9898 else if ((type == drop(toBytes(2), 7)))
9999 then drop(take(valComplex, 4), 3)
100100 else if ((type == drop(toBytes(3), 7)))
101101 then drop(take(valComplex, 5), 4)
102102 else if ((type == drop(toBytes(4), 7)))
103103 then drop(take(valComplex, 6), 5)
104104 else if ((type == drop(toBytes(5), 7)))
105105 then drop(take(valComplex, 7), 6)
106106 else toBytes(38)
107107 let isWin = if ((val == valReal))
108108 then (val != toBytes(38))
109109 else false
110110 let isMoneyStillEnough = (((paymentTx.amount * koeff) + minWithdrawFee) > newFees)
111111 if (isWin)
112112 then isMoneyStillEnough
113113 else false
114114 }
115115 else false
116116 case _ =>
117117 false
118118 }
119119 }
120120 else if ((size(dtx.data) == 3))
121121 then {
122122 let paymentTxIdStr = extract(dtx.data[0].key)
123123 let guessStr = extract(getString(dtx.data, paymentTxIdStr))
124124 let paymentRoundKey = (paymentTxIdStr + "_round")
125125 let paymentRound = extract(getString(dtx.data, paymentRoundKey))
126126 let sumBetsOld = if (isDefined(getInteger(me, (paymentRound + "_betsSum"))))
127127 then extract(getInteger(me, (paymentRound + "_betsSum")))
128128 else 0
129129 let sumBetsNew = extract(getInteger(dtx.data, (paymentRound + "_betsSum")))
130130 let isPaymentAlreadyMentioned = isDefined(getString(me, paymentTxIdStr))
131131 let paymentTx = transactionById(fromBase58String(paymentTxIdStr))
132132 match paymentTx {
133133 case paymentTx: TransferTransaction =>
134134 let isDtxSignedByPayer = sigVerify(dtx.bodyBytes, dtx.proofs[0], paymentTx.senderPublicKey)
135135 if (!(isPaymentAlreadyMentioned))
136136 then (sumBetsNew == ((sumBetsOld + paymentTx.amount) - dtx.fee))
137137 else false
138138 case _ =>
139139 false
140140 }
141141 }
142142 else false
143143 case _ =>
144144 sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
145145 }

github/deemru/w8io/169f3d6 
32.01 ms