2019.01.29 10:41 [471255] smart account 3Mpfd3hihdPKUHqWqC9KYjcM18BKw91VkKe > SELF 0.00000000 Waves
{ "type": 13, "id": "GS7XuzdzJq7QrK6bBT32XnKXqSQLbkEDCJwfU9hV2bbT", "fee": 1400000, "feeAssetId": null, "timestamp": 1548747799072, "version": 1, "sender": "3Mpfd3hihdPKUHqWqC9KYjcM18BKw91VkKe", "senderPublicKey": "4f1JNnYPBjnrCyRNwNpfg2zg6V34QG4EBF8a2o2yz9rg", "proofs": [ "5VQXkpdvGFq5vv4tqc5d3riinW57ZdD5ey77HZd7ZyxWGSiA3FZ7GBQmKNmfH7DtWuWMby2ZjzDV6a9Xsbjv8atv" ], "script": "base64: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", "chainId": 84, "height": 471255, "spentComplexity": 0 } View: original | compacted Prev: 9SM9k1bUiBPLwieRAzfbkjALXXj7Cum12oGiWXs6aNDH Next: FgZWvvzt4eQrF8oCMsSTZPwPXUYnqekhWWytVK1SYf9H Diff:
Old | New | Differences | |
---|---|---|---|
6 | 6 | let fee = 10000000 | |
7 | 7 | let decimals = 2 | |
8 | 8 | let multiply = 100 | |
9 | - | let totalMoney = 0 | |
9 | + | let totalMoney = if (isDefined(getInteger(tx.sender, "totalMoney"))) | |
10 | + | then extract(getInteger(tx.sender, "totalMoney")) | |
11 | + | else 0 | |
10 | 12 | match tx { | |
11 | 13 | case dt: DataTransaction => | |
12 | 14 | if (if ((maxTimeToBet >= tx.timestamp)) | |
41 | 43 | else "")) + toString(dBet)) | |
42 | 44 | match paymentTx { | |
43 | 45 | case payment: TransferTransaction => | |
44 | - | if (if (if (if (!(isDefined(getString(tx.sender, paymentTxId)))) | |
46 | + | if (if (if (if (if (!(isDefined(getString(tx.sender, paymentTxId)))) | |
45 | 47 | then (payment.recipient == tx.sender) | |
46 | 48 | else false) | |
47 | 49 | then (payment.amount > fee) | |
48 | 50 | else false) | |
49 | 51 | then (extract(getInteger(dt.data, "totalMoney")) == (totalMoney + (payment.amount - fee))) | |
52 | + | else false) | |
53 | + | then (dtBetSummary == (betSummary + (payment.amount - fee))) | |
50 | 54 | else false) | |
51 | 55 | then (vBet == ((iBet * multiply) + dBet)) | |
52 | 56 | else false |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 1 #-} | |
2 | 2 | {-# CONTENT_TYPE EXPRESSION #-} | |
3 | 3 | let maxTimeToBet = 1549000217000 | |
4 | 4 | let minTimeToTrading = 1549086617000 | |
5 | 5 | let maxTimeToTrading = 1549086677000 | |
6 | 6 | let fee = 10000000 | |
7 | 7 | let decimals = 2 | |
8 | 8 | let multiply = 100 | |
9 | - | let totalMoney = 0 | |
9 | + | let totalMoney = if (isDefined(getInteger(tx.sender, "totalMoney"))) | |
10 | + | then extract(getInteger(tx.sender, "totalMoney")) | |
11 | + | else 0 | |
10 | 12 | match tx { | |
11 | 13 | case dt: DataTransaction => | |
12 | 14 | if (if ((maxTimeToBet >= tx.timestamp)) | |
13 | 15 | then isDefined(getString(dt.data, "bet_s")) | |
14 | 16 | else false) | |
15 | 17 | then { | |
16 | 18 | let paymentTxId = extract(getString(dt.data, "paymentTxId")) | |
17 | 19 | let paymentTx = transactionById(fromBase58String(paymentTxId)) | |
18 | 20 | let betGroup = extract(getString(dt.data, "bet_s")) | |
19 | 21 | let dtBetSummary = extract(getInteger(dt.data, betGroup)) | |
20 | 22 | let betSummary = if (isDefined(getInteger(tx.sender, betGroup))) | |
21 | 23 | then extract(getInteger(tx.sender, betGroup)) | |
22 | 24 | else 0 | |
23 | 25 | let vBet = extract(getInteger(dt.data, "bet_v")) | |
24 | 26 | let iBet = extract(getInteger(dt.data, "bet_i")) | |
25 | 27 | let dBet = extract(getInteger(dt.data, "bet_d")) | |
26 | 28 | let c = (decimals - size(toString(dBet))) | |
27 | 29 | let tBet = (((toString(iBet) + ".") + (if ((c == 1)) | |
28 | 30 | then "0" | |
29 | 31 | else if ((c == 2)) | |
30 | 32 | then "00" | |
31 | 33 | else if ((c == 3)) | |
32 | 34 | then "000" | |
33 | 35 | else if ((c == 4)) | |
34 | 36 | then "0000" | |
35 | 37 | else if ((c == 5)) | |
36 | 38 | then "00000" | |
37 | 39 | else if ((c == 6)) | |
38 | 40 | then "000000" | |
39 | 41 | else if ((c == 7)) | |
40 | 42 | then "0000000" | |
41 | 43 | else "")) + toString(dBet)) | |
42 | 44 | match paymentTx { | |
43 | 45 | case payment: TransferTransaction => | |
44 | - | if (if (if (if (!(isDefined(getString(tx.sender, paymentTxId)))) | |
46 | + | if (if (if (if (if (!(isDefined(getString(tx.sender, paymentTxId)))) | |
45 | 47 | then (payment.recipient == tx.sender) | |
46 | 48 | else false) | |
47 | 49 | then (payment.amount > fee) | |
48 | 50 | else false) | |
49 | 51 | then (extract(getInteger(dt.data, "totalMoney")) == (totalMoney + (payment.amount - fee))) | |
52 | + | else false) | |
53 | + | then (dtBetSummary == (betSummary + (payment.amount - fee))) | |
50 | 54 | else false) | |
51 | 55 | then (vBet == ((iBet * multiply) + dBet)) | |
52 | 56 | else false | |
53 | 57 | case _ => | |
54 | 58 | false | |
55 | 59 | } | |
56 | 60 | } | |
57 | 61 | else if (if ((tx.timestamp > maxTimeToTrading)) | |
58 | 62 | then !(isDefined(getString(tx.sender, "tradingTxId"))) | |
59 | 63 | else false) | |
60 | 64 | then { | |
61 | 65 | let tradingTxId = extract(getString(dt.data, "tradingTxId")) | |
62 | 66 | let tradingTx = transactionById(fromBase58String(tradingTxId)) | |
63 | 67 | let priceWin = extract(getInteger(dt.data, "priceWin")) | |
64 | 68 | match tradingTx { | |
65 | 69 | case exchange: ExchangeTransaction => | |
66 | 70 | if (if ((priceWin == exchange.price)) | |
67 | 71 | then (exchange.timestamp >= minTimeToTrading) | |
68 | 72 | else false) | |
69 | 73 | then (maxTimeToTrading >= exchange.timestamp) | |
70 | 74 | else false | |
71 | 75 | case _ => | |
72 | 76 | false | |
73 | 77 | } | |
74 | 78 | } | |
75 | 79 | else if (isDefined(getString(tx.sender, "tradingTxId"))) | |
76 | 80 | then true | |
77 | 81 | else false | |
78 | 82 | case _ => | |
79 | 83 | true | |
80 | 84 | } |
github/deemru/w8io/786bc32 23.39 ms ◑