tx · EcF57sumkuQBLscnFm9TYVWS1QQatgx71Z1wRfrvErRG

3P9NhiDDNXuVbHqjMeASn4m1tLEoDiXmAQW:  -0.01000000 Waves

2020.07.16 22:09 [2153631] smart account 3P9NhiDDNXuVbHqjMeASn4m1tLEoDiXmAQW > SELF 0.00000000 Waves

{ "type": 13, "id": "EcF57sumkuQBLscnFm9TYVWS1QQatgx71Z1wRfrvErRG", "fee": 1000000, "feeAssetId": null, "timestamp": 1594926582395, "version": 1, "sender": "3P9NhiDDNXuVbHqjMeASn4m1tLEoDiXmAQW", "senderPublicKey": "1QmmHZ2qDnwojy5ZG2xQSjAxNwHBRpUtFF6j95EK7Zo", "proofs": [ "4yVS7xoqURSDyAqXjSGzaPgGmunWVA9M226RHf4FMXfVkUjDz8WNH4G7Xxh2QJxrnhihQr9ywh65LRJSu4sVeBhE" ], "script": "base64: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", "chainId": 87, "height": 2153631, "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 2 #-}
2+{-# CONTENT_TYPE EXPRESSION #-}
3+let me = tx.sender
4+let oracle = extract(addressFromString("3NCzaYTNDGtR8zf9yfcqePFjCqFx9S5zhs4"))
5+let minWithdrawFee = 500000
6+let registerBetTxFee = 500000
7+match tx {
8+ case withdrawTx: TransferTransaction =>
9+ let txId = extract(getString(me, (toBase58String(tx.proofs[1]) + "_withdraw")))
10+ match transactionById(tx.proofs[1]) {
11+ case paymentTx: TransferTransaction =>
12+ let isPaymentTookPlace = if ((txId == toBase58String(tx.id)))
13+ then sigVerify(tx.bodyBytes, tx.proofs[0], paymentTx.senderPublicKey)
14+ else false
15+ let feesKey = (toBase58String(tx.proofs[1]) + "_withdraw_fees")
16+ let dataTxsFees = extract(getInteger(me, feesKey))
17+ let guessUnit = getBinary(me, toBase58String(tx.proofs[1]))
18+ let correctAmount = if (!(isDefined(guessUnit)))
19+ then ((paymentTx.amount - dataTxsFees) - withdrawTx.fee)
20+ else {
21+ let guess = extract(guessUnit)
22+ let type = take(guess, 1)
23+ let val = drop(guess, 1)
24+ let key = extract(getString(me, (toBase58String(tx.proofs[1]) + "_round")))
25+ let valComplex = extract(getBinary(oracle, key))
26+ let koeff = if ((type == drop(toBytes(0), 7)))
27+ then 36
28+ else if ((type == drop(toBytes(1), 7)))
29+ then 2
30+ else if ((type == drop(toBytes(2), 7)))
31+ then 2
32+ else if ((type == drop(toBytes(3), 7)))
33+ then 2
34+ else if ((type == drop(toBytes(4), 7)))
35+ then 3
36+ else if ((type == drop(toBytes(5), 7)))
37+ then 3
38+ else 0
39+ ((((paymentTx.amount - registerBetTxFee) * koeff) - dataTxsFees) - withdrawTx.fee)
40+ }
41+ if (if (if (isPaymentTookPlace)
42+ then true
43+ else throw("There was no bet"))
44+ then if ((withdrawTx.amount == correctAmount))
45+ then true
46+ else throw(("Amount is incorrect. Correct amount is " + toString(correctAmount)))
47+ else false)
48+ then if (if (!(isDefined(withdrawTx.feeAssetId)))
49+ then !(isDefined(withdrawTx.assetId))
50+ else false)
51+ then true
52+ else throw("Withdraw and fee must be in WAVES")
53+ else false
54+ case _ =>
55+ false
56+ }
57+ case dtx: DataTransaction =>
58+ if ((size(dtx.data) == 3))
59+ then {
60+ let minBet = 50000000
61+ let maxSumBet = 1000000000
62+ let paymentTxIdStr = extract(dtx.data[0].key)
63+ let guessStr = extract(getString(dtx.data, paymentTxIdStr))
64+ let paymentRoundKey = (paymentTxIdStr + "_round")
65+ let paymentRound = extract(getString(dtx.data, paymentRoundKey))
66+ let sumBetsOld = if (isDefined(getInteger(me, (paymentRound + "_betsSum"))))
67+ then extract(getInteger(me, (paymentRound + "_betsSum")))
68+ else 0
69+ let sumBetsNew = extract(getInteger(dtx.data, (paymentRound + "_betsSum")))
70+ let itsTooLate = isDefined(getString(me, (paymentRound + "_stop")))
71+ let isPaymentAlreadyMentioned = isDefined(getString(me, paymentTxIdStr))
72+ let paymentTx = transactionById(fromBase58String(paymentTxIdStr))
73+ match paymentTx {
74+ case paymentTx: TransferTransaction =>
75+ let isDtxSignedByPayer = sigVerify(dtx.bodyBytes, dtx.proofs[0], paymentTx.senderPublicKey)
76+ let correctSumBets = ((sumBetsOld + paymentTx.amount) - dtx.fee)
77+ if (if (if (if (if (if (if (if ((addressFromRecipient(paymentTx.recipient) == me))
78+ then true
79+ else throw("Incorrect recipient of the payment"))
80+ then if (!(isPaymentAlreadyMentioned))
81+ then true
82+ else throw("This transfer is already used as a bet")
83+ else false)
84+ then if ((sumBetsNew == correctSumBets))
85+ then true
86+ else throw(("Wrong value for Sum of Bets. Must be " + toString(correctSumBets)))
87+ else false)
88+ then if ((maxSumBet > sumBetsNew))
89+ then true
90+ else throw(((("Maximum amount of bets for round " + toString(maxSumBet)) + ". With your bet it's ") + toString(sumBetsNew)))
91+ else false)
92+ then if ((dtx.fee == registerBetTxFee))
93+ then true
94+ else throw(("Fee of bet registration data transaction must be " + toString(registerBetTxFee)))
95+ else false)
96+ then if (((paymentTx.amount - registerBetTxFee) >= minBet))
97+ then true
98+ else throw(((("Your Bet amount is less then minimal bet " + toString(minBet)) + ". Payment amount for such bet must be ") + toString((minBet + registerBetTxFee))))
99+ else false)
100+ then if (!(isDefined(paymentTx.feeAssetId)))
101+ then true
102+ else throw("Paymnet must be in WAVES")
103+ else false)
104+ then if (!(itsTooLate))
105+ then true
106+ else throw("It's too late to play this round. Try next one")
107+ else false
108+ case _ =>
109+ false
110+ }
111+ }
112+ else if ((size(dtx.data) == 2))
113+ then {
114+ let isDataCountOk = (size(dtx.data) == 2)
115+ let paymentTxIdStr = dropRight(extract(dtx.data[0].key), 9)
116+ let feesKey = (paymentTxIdStr + "_withdraw_fees")
117+ let paymentTx = transactionById(fromBase58String(paymentTxIdStr))
118+ let newFees = extract(getInteger(dtx.data, feesKey))
119+ let oldFeesUnit = getInteger(me, feesKey)
120+ let oldFees = if (isDefined(oldFeesUnit))
121+ then extract(oldFeesUnit)
122+ else 0
123+ let isFeeCorrect = (newFees == (oldFees + dtx.fee))
124+ let withdrawTxIdUnit = getString(me, paymentTxIdStr)
125+ let isPaymentAlreadyMentioned = isDefined(withdrawTxIdUnit)
126+ let withdrawTransactionId = fromBase58String(extract(withdrawTxIdUnit))
127+ match paymentTx {
128+ case paymentTx: TransferTransaction =>
129+ let isDtxSignedByPayer = sigVerify(dtx.bodyBytes, dtx.proofs[0], paymentTx.senderPublicKey)
130+ if (if (if (if (if ((addressFromRecipient(paymentTx.recipient) == me))
131+ then if (!(isPaymentAlreadyMentioned))
132+ then true
133+ else !(isDefined(transactionById(withdrawTransactionId)))
134+ else false)
135+ then isDtxSignedByPayer
136+ else false)
137+ then isFeeCorrect
138+ else false)
139+ then isDataCountOk
140+ else false)
141+ then {
142+ let guess = extract(getBinary(me, paymentTxIdStr))
143+ let type = take(guess, 1)
144+ let key = extract(getString(me, (paymentTxIdStr + "_round")))
145+ let valComplex = extract(getBinary(oracle, key))
146+ let koeff = if ((type == drop(toBytes(0), 7)))
147+ then 36
148+ else if ((type == drop(toBytes(1), 7)))
149+ then 2
150+ else if ((type == drop(toBytes(2), 7)))
151+ then 2
152+ else if ((type == drop(toBytes(3), 7)))
153+ then 2
154+ else if ((type == drop(toBytes(4), 7)))
155+ then 3
156+ else if ((type == drop(toBytes(5), 7)))
157+ then 3
158+ else 0
159+ let valReal = if ((type == drop(toBytes(0), 7)))
160+ then drop(take(valComplex, 2), 1)
161+ else if ((type == drop(toBytes(1), 7)))
162+ then drop(take(valComplex, 3), 2)
163+ else if ((type == drop(toBytes(2), 7)))
164+ then drop(take(valComplex, 4), 3)
165+ else if ((type == drop(toBytes(3), 7)))
166+ then drop(take(valComplex, 5), 4)
167+ else if ((type == drop(toBytes(4), 7)))
168+ then drop(take(valComplex, 6), 5)
169+ else if ((type == drop(toBytes(5), 7)))
170+ then drop(take(valComplex, 7), 6)
171+ else throw("Incorrect type of guess provided")
172+ let isWin = (drop(guess, 1) == valReal)
173+ let isMoneyStillEnough = ((((paymentTx.amount - registerBetTxFee) * koeff) + minWithdrawFee) > newFees)
174+ if (if (isWin)
175+ then true
176+ else throw("You didn't guess"))
177+ then if (isMoneyStillEnough)
178+ then true
179+ else throw("Not enough money for withdraw")
180+ else false
181+ }
182+ else false
183+ case _ =>
184+ false
185+ }
186+ }
187+ else false
188+ case _ =>
189+ sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
190+}

github/deemru/w8io/6500d08 
26.70 ms