tx · AJwraVHbGZETX4LA2k7ejNkSYinksMEwywySndVxnocB 3Mu46QfBkouwvPnhYc6QZa45NAFTpiD64YG: -0.01000000 Waves 2019.02.12 21:10 [492264] smart account 3Mu46QfBkouwvPnhYc6QZa45NAFTpiD64YG > SELF 0.00000000 Waves
{ "type": 13, "id": "AJwraVHbGZETX4LA2k7ejNkSYinksMEwywySndVxnocB", "fee": 1000000, "feeAssetId": null, "timestamp": 1549995150780, "version": 1, "sender": "3Mu46QfBkouwvPnhYc6QZa45NAFTpiD64YG", "senderPublicKey": "6pNwnxPaq9gFLzCbWjiseC5UTT3Gtt3RFwaQ6bMshN6p", "proofs": [ "23b1sMssJxxzSmJZhYY6zRJusEH7UcmFU8CqZjFtV9NAUtbkzEpf38aqgoXD9wQ6AtE4Yb6rDU1e24RiCdA4qdov" ], "script": "base64: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", "chainId": 84, "height": 492264, "spentComplexity": 0 } View: original | compacted Prev: none Next: 5rgEVY2Jv4Du8fJdbMatAZ2qcYakztvEds3n4XDfPopD Full:
Old | New | Differences | |
---|---|---|---|
1 | - | # no script | |
1 | + | {-# STDLIB_VERSION 1 #-} | |
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 paymentTxIdStr = toBase58String(tx.proofs[1]) | |
10 | + | let withdrawId = extract(getString(me, (paymentTxIdStr + "_withdraw"))) | |
11 | + | match transactionById(tx.proofs[1]) { | |
12 | + | case paymentTx: TransferTransaction => | |
13 | + | let withdrawAllowed = if ((withdrawId == toBase58String(tx.id))) | |
14 | + | then sigVerify(tx.bodyBytes, tx.proofs[0], paymentTx.senderPublicKey) | |
15 | + | else false | |
16 | + | let feesKey = (toBase58String(tx.proofs[1]) + "_withdraw_fees") | |
17 | + | let dataTxsFees = extract(getInteger(me, feesKey)) | |
18 | + | let winAmount = extract(getInteger(me, (paymentTxIdStr + "_win"))) | |
19 | + | let correctAmount = ((winAmount - dataTxsFees) - withdrawTx.fee) | |
20 | + | let isInWaves = if (!(isDefined(withdrawTx.feeAssetId))) | |
21 | + | then !(isDefined(withdrawTx.assetId)) | |
22 | + | else false | |
23 | + | if (if (if (withdrawAllowed) | |
24 | + | then true | |
25 | + | else throw("Withdraw isn't registered or isn't signed by orignal payment sender")) | |
26 | + | then if ((withdrawTx.amount == correctAmount)) | |
27 | + | then true | |
28 | + | else throw(("Amount of withdraw is incorrect. Correct amount is " + toString(correctAmount))) | |
29 | + | else false) | |
30 | + | then if (isInWaves) | |
31 | + | then true | |
32 | + | else throw("Withdraw and fee must be in WAVES") | |
33 | + | else false | |
34 | + | case _ => | |
35 | + | false | |
36 | + | } | |
37 | + | case dtx: DataTransaction => | |
38 | + | if ((size(dtx.data) == 1)) | |
39 | + | then { | |
40 | + | let winStr = extract(dtx.data[0].key) | |
41 | + | let paymentTxIdStr = dropRight(winStr, 4) | |
42 | + | let guess = extract(getString(me, paymentTxIdStr)) | |
43 | + | let linkToGame = extract(getString(me, (paymentTxIdStr + "_round"))) | |
44 | + | let resultOfGame = extract(getString(oracle, linkToGame)) | |
45 | + | let paymentTx = transactionById(fromBase58String(paymentTxIdStr)) | |
46 | + | match paymentTx { | |
47 | + | case paymentTx: TransferTransaction => | |
48 | + | if ((guess == resultOfGame)) | |
49 | + | then { | |
50 | + | let sum0 = if (isDefined(getInteger(me, (linkToGame + "_0")))) | |
51 | + | then extract(getInteger(me, (linkToGame + "_0"))) | |
52 | + | else 0 | |
53 | + | let sum1 = if (isDefined(getInteger(me, (linkToGame + "_1")))) | |
54 | + | then extract(getInteger(me, (linkToGame + "_1"))) | |
55 | + | else 0 | |
56 | + | let sum2 = if (isDefined(getInteger(me, (linkToGame + "_2")))) | |
57 | + | then extract(getInteger(me, (linkToGame + "_2"))) | |
58 | + | else 0 | |
59 | + | let total = ((sum0 + sum1) + sum2) | |
60 | + | let koeff = if ((resultOfGame == "0")) | |
61 | + | then (total / sum0) | |
62 | + | else if ((resultOfGame == "1")) | |
63 | + | then (total / sum1) | |
64 | + | else if ((resultOfGame == "2")) | |
65 | + | then (total / sum2) | |
66 | + | else throw("Internal error. Wrong value for result of game") | |
67 | + | ((((paymentTx.amount - registerBetTxFee) * koeff) - dtx.fee) == extract(getInteger(dtx.data, dtx.data[0].key))) | |
68 | + | } | |
69 | + | else throw("You didn't guess right.") | |
70 | + | case _ => | |
71 | + | false | |
72 | + | } | |
73 | + | } | |
74 | + | else if ((size(dtx.data) == 2)) | |
75 | + | then { | |
76 | + | let withdrawStr = extract(dtx.data[0].key) | |
77 | + | let paymentTxIdStr = dropRight(withdrawStr, 9) | |
78 | + | let winAmount = extract(getInteger(me, (paymentTxIdStr + "_win"))) | |
79 | + | let feesKey = (extract(dtx.data[0].key) + "_fees") | |
80 | + | let newFees = extract(getInteger(dtx.data, feesKey)) | |
81 | + | let oldFees = if (isDefined(getInteger(me, feesKey))) | |
82 | + | then extract(getInteger(me, feesKey)) | |
83 | + | else 0 | |
84 | + | let isFeeCorrect = (newFees == (oldFees + dtx.fee)) | |
85 | + | let isPaymentAlreadyMentioned = isDefined(getString(me, withdrawStr)) | |
86 | + | let withdrawTransactionId = fromBase58String(extract(getString(me, withdrawStr))) | |
87 | + | let isWithdrawExist = isDefined(transactionById(withdrawTransactionId)) | |
88 | + | if (if (if (if (if (!(isPaymentAlreadyMentioned)) | |
89 | + | then true | |
90 | + | else !(isWithdrawExist)) | |
91 | + | then true | |
92 | + | else throw("Withdraw for this bet already exist")) | |
93 | + | then isFeeCorrect | |
94 | + | else false) | |
95 | + | then true | |
96 | + | else throw("Value for withdraw fees is incorrect")) | |
97 | + | then if ((winAmount > (newFees - minWithdrawFee))) | |
98 | + | then true | |
99 | + | else throw("Win amount is not enough for all fees") | |
100 | + | else false | |
101 | + | } | |
102 | + | else if ((size(dtx.data) == 3)) | |
103 | + | then { | |
104 | + | let paymentTxIdStr = extract(dtx.data[0].key) | |
105 | + | let guessStr = extract(getString(dtx.data, paymentTxIdStr)) | |
106 | + | let paymentRoundKey = (paymentTxIdStr + "_round") | |
107 | + | let paymentRound = extract(getString(dtx.data, paymentRoundKey)) | |
108 | + | let sumBetsOld = if (isDefined(getInteger(me, ((paymentRound + "_") + guessStr)))) | |
109 | + | then extract(getInteger(me, ((paymentRound + "_") + guessStr))) | |
110 | + | else 0 | |
111 | + | let sumBetsNew = extract(getInteger(dtx.data, ((paymentRound + "_") + guessStr))) | |
112 | + | let isPaymentAlreadyMentioned = isDefined(getString(me, paymentTxIdStr)) | |
113 | + | let paymentTx = transactionById(fromBase58String(paymentTxIdStr)) | |
114 | + | match paymentTx { | |
115 | + | case paymentTx: TransferTransaction => | |
116 | + | let isDtxSignedByPayer = sigVerify(dtx.bodyBytes, dtx.proofs[0], paymentTx.senderPublicKey) | |
117 | + | if (!(isPaymentAlreadyMentioned)) | |
118 | + | then (sumBetsNew == ((sumBetsOld + paymentTx.amount) - dtx.fee)) | |
119 | + | else false | |
120 | + | case _ => | |
121 | + | false | |
122 | + | } | |
123 | + | } | |
124 | + | else false | |
125 | + | case _ => | |
126 | + | sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
127 | + | } |
github/deemru/w8io/026f985 17.45 ms ◑