tx · 738Tdmgurm6whfqdVz7BoQuw5eEm7MA4K82Ln6nYLGwP 3N778wrQUp2Fm75ZTwtZ2WM7L9R2hT1Pavb: -0.01400000 Waves 2020.04.04 20:26 [939763] smart account 3N778wrQUp2Fm75ZTwtZ2WM7L9R2hT1Pavb > SELF 0.00000000 Waves
{ "type": 13, "id": "738Tdmgurm6whfqdVz7BoQuw5eEm7MA4K82Ln6nYLGwP", "fee": 1400000, "feeAssetId": null, "timestamp": 1586021192988, "version": 1, "sender": "3N778wrQUp2Fm75ZTwtZ2WM7L9R2hT1Pavb", "senderPublicKey": "GDLTHJjR9hamQRzEMe3M685bqZSbdGzjtEXWbQupogZQ", "proofs": [ "4KmrQnjk9B1XDJfKZaGJ48sEAZoZUjVGXtBa2Por3yNcZtkcmSS75Rv3a4eteJnX3yJcZ88nDyeVJKbiBBLd5cba" ], "script": "base64:AAIDAAAAAAAAAA4IARIDCgEIEgUKAwgIAgAAAA0AAAAACVJTQVBVQkxJQwkAAlsAAAABAgAAAY9iYXNlNjQ6TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUFnNGRBUjZYYkJEQVM5aHIvRWozZEp2NkZmYzQ2NngvbU9HTVdVM2xyQUJzM3FhOEJIbXVKR25rZmJwRWYydkF3WVRPV1B2dnpmTTEwT0JiZmxvU3lxM2M5TUt2eVRlMWx1QkxHcVc0dlpVWEl5dlNnejFsaXlVVmVmSVF5M2R5RjlqYmVUWmJDMGJiY1QvN08zREVMKzAxejZBK3JEQ2FjU1owbEdvbFNRNkFuaEx4eklrVnBPUUpickJtQyt4K1p1WlBDTVd6SnluZDVhZU9uN2phai9ta1JWeXhlNmcvME9oV3o0TmlpWlhldU1SQis4bUt5MGZXRC9VbElsWldIc0FTMlptcmtYS3FqTHEwLzB3cjhJTEprem5qU3Fkbkk1SWJqZzN1UXJqLzRBTitpOXIyOGFRNzMvWmtQdFk1U2J3MEFPaUFCQnU3Z0htcTlheVZ4WlFJREFRQUIAAAAABVdBVkVTCQAD7AAAAAEBAAAABBOr2TMAAAAABFdCRVQBAAAAIIa0Nqh40w7M2PAXrUsuLAQfB5+6yrkWqUrXbyWtm9B2AAAAAAZST1lBTFMBAAAAIJs2MaXqyMVBqLgCl65CoIgXQph5hDZgHfu6+skSUku7AAAAAA9XQUxMRVRDT01NVU5JVFkJAQAAAAdBZGRyZXNzAAAAAQEAAAAaAVQvEfB4Tq/Wk5+pbiIrZrUfslPXeM87aPsAAAAADldBTExFVFdBVkVTQkVUCQEAAAAHQWRkcmVzcwAAAAEBAAAAGgFUXBadfCBHKBvD6PStfmyT/v5CSYu0ZaHsAAAAAAxXQUxMRVRNQ0FGRUUJAQAAAAdBZGRyZXNzAAAAAQEAAAAaAVRcFp18IEcoG8Po9K1+bJP+/kJJi7RloewAAAAADEZFRUNPTU1VTklUWQAAAAAAAAAAAQAAAAALRkVFV0FWRVNCRVQAAAAAAAAAAAMAAAAACUZFRU1DQUZFRQAAAAAAAAAAAgEAAAANRXh0cmFjdFN0cmluZwAAAAEAAAACaWQEAAAACnJhd0RhdGFTdHIEAAAAByRt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", "chainId": 84, "height": 939763, "spentComplexity": 0 } View: original | compacted Prev: BEvNjZjdjVpSovCWuaaSHUAvphTmNqRxhy97oi3nWRq4 Next: HgXmS98moHnSCTah5zGDWPhjBLCPfdsrFno9AK6oTiAD Diff:
Old | New | Differences | |
---|---|---|---|
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let a = fromBase64String("base64:MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAg4dAR6XbBDAS9hr/Ej3dJv6Ffc466x/mOGMWU3lrABs3qa8BHmuJGnkfbpEf2vAwYTOWPvvzfM10OBbfloSyq3c9MKvyTe1luBLGqW4vZUXIyvSgz1liyUVefIQy3dyF9jbeTZbC0bbcT/7O3DEL+01z6A+rDCacSZ0lGolSQ6AnhLxzIkVpOQJbrBmC+x+ZuZPCMWzJynd5aeOn7jaj/mkRVyxe6g/0OhWz4NiiZXeuMRB+8mKy0fWD/UlIlZWHsAS2ZmrkXKqjLq0/0wr8ILJkznjSqdnI5Ibjg3uQrj/4AN+i9r28aQ73/ZkPtY5Sbw0AOiABBu7gHmq9ayVxZQIDAQAB") | |
5 | 5 | ||
6 | - | let b = base58'WAVES' | |
6 | + | let b = assetInfo(base58'WAVES') | |
7 | 7 | ||
8 | 8 | let c = base58'A4q1mYKo11yuH9gmvDodeJoksagcyQzeFE9JtphMWddw' | |
9 | 9 | ||
47 | 47 | func r (s) = if ((s == "WBET")) | |
48 | 48 | then c | |
49 | 49 | else if ((s == "WAVES")) | |
50 | - | then | |
50 | + | then unit | |
51 | 51 | else if ((s == "ROYALS")) | |
52 | 52 | then d | |
53 | 53 | else throw("Invalid asset") |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 3 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let a = fromBase64String("base64:MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAg4dAR6XbBDAS9hr/Ej3dJv6Ffc466x/mOGMWU3lrABs3qa8BHmuJGnkfbpEf2vAwYTOWPvvzfM10OBbfloSyq3c9MKvyTe1luBLGqW4vZUXIyvSgz1liyUVefIQy3dyF9jbeTZbC0bbcT/7O3DEL+01z6A+rDCacSZ0lGolSQ6AnhLxzIkVpOQJbrBmC+x+ZuZPCMWzJynd5aeOn7jaj/mkRVyxe6g/0OhWz4NiiZXeuMRB+8mKy0fWD/UlIlZWHsAS2ZmrkXKqjLq0/0wr8ILJkznjSqdnI5Ibjg3uQrj/4AN+i9r28aQ73/ZkPtY5Sbw0AOiABBu7gHmq9ayVxZQIDAQAB") | |
5 | 5 | ||
6 | - | let b = base58'WAVES' | |
6 | + | let b = assetInfo(base58'WAVES') | |
7 | 7 | ||
8 | 8 | let c = base58'A4q1mYKo11yuH9gmvDodeJoksagcyQzeFE9JtphMWddw' | |
9 | 9 | ||
10 | 10 | let d = base58'BSt87FHK4td7NvDuzKYeb2ETVersiZDr4QW6WMX1BaFU' | |
11 | 11 | ||
12 | 12 | let e = Address(base58'3MtCy2PCFPyu8A9SRNL4qUo1V17SGLHftD8') | |
13 | 13 | ||
14 | 14 | let f = Address(base58'3MxK12u62zsu9xh3hU7p5iJncCLANd3zhTZ') | |
15 | 15 | ||
16 | 16 | let g = Address(base58'3MxK12u62zsu9xh3hU7p5iJncCLANd3zhTZ') | |
17 | 17 | ||
18 | 18 | let h = 1 | |
19 | 19 | ||
20 | 20 | let i = 3 | |
21 | 21 | ||
22 | 22 | let j = 2 | |
23 | 23 | ||
24 | 24 | func k (l) = { | |
25 | 25 | let m = { | |
26 | 26 | let n = getString(this, l) | |
27 | 27 | if ($isInstanceOf(n, "String")) | |
28 | 28 | then { | |
29 | 29 | let o = n | |
30 | 30 | o | |
31 | 31 | } | |
32 | 32 | else throw(("Couldn't find string by " + l)) | |
33 | 33 | } | |
34 | 34 | m | |
35 | 35 | } | |
36 | 36 | ||
37 | 37 | ||
38 | 38 | func p (q) = if ((q.assetId == c)) | |
39 | 39 | then "WBET" | |
40 | 40 | else if ((q.assetId == b)) | |
41 | 41 | then "WAVES" | |
42 | 42 | else if ((q.assetId == d)) | |
43 | 43 | then "ROYALS" | |
44 | 44 | else throw("Payment should be in Wavesbet, Waves or Royals") | |
45 | 45 | ||
46 | 46 | ||
47 | 47 | func r (s) = if ((s == "WBET")) | |
48 | 48 | then c | |
49 | 49 | else if ((s == "WAVES")) | |
50 | - | then | |
50 | + | then unit | |
51 | 51 | else if ((s == "ROYALS")) | |
52 | 52 | then d | |
53 | 53 | else throw("Invalid asset") | |
54 | 54 | ||
55 | 55 | ||
56 | 56 | @Callable(t) | |
57 | 57 | func play (u) = { | |
58 | 58 | let q = extract(t.payment) | |
59 | 59 | let v = isDefined(t.feeAssetId) | |
60 | 60 | let w = toBase58String(t.transactionId) | |
61 | 61 | let x = isDefined(getString(this, w)) | |
62 | 62 | if (if (if ((q.assetId != c)) | |
63 | 63 | then (q.assetId != b) | |
64 | 64 | else false) | |
65 | 65 | then (q.assetId != d) | |
66 | 66 | else false) | |
67 | 67 | then throw("Payment should be in Wavesbet, Waves or Royals") | |
68 | 68 | else if (v) | |
69 | 69 | then throw("Transaction's fee must be in Waves. Game aborted.") | |
70 | 70 | else if (x) | |
71 | 71 | then throw("Passed GameId had been used before. Game aborted.") | |
72 | 72 | else { | |
73 | 73 | let y = toBase58String(t.callerPublicKey) | |
74 | 74 | let z = (((((((("SUBMITTED" + "_") + u) + "_") + y) + "_") + toString(q.amount)) + "_") + p(q)) | |
75 | 75 | ScriptResult(WriteSet([DataEntry(w, z)]), TransferSet(nil)) | |
76 | 76 | } | |
77 | 77 | } | |
78 | 78 | ||
79 | 79 | ||
80 | 80 | ||
81 | 81 | @Callable(t) | |
82 | 82 | func withdraw (w,q,A) = { | |
83 | 83 | let B = split(k(w), "_") | |
84 | 84 | let C = B[0] | |
85 | 85 | let u = B[1] | |
86 | 86 | let y = B[2] | |
87 | 87 | let D = B[4] | |
88 | 88 | let E = addressFromPublicKey(fromBase58String(y)) | |
89 | 89 | let F = rsaVerify(SHA256, toBytes(w), A, a) | |
90 | 90 | if ((C != "SUBMITTED")) | |
91 | 91 | then throw("Invalid game state for passed gameId. Game aborted.") | |
92 | 92 | else if (!(F)) | |
93 | 93 | then throw("Invalid RSA Verification") | |
94 | 94 | else { | |
95 | 95 | let G = ((((((("WON_" + u) + "_") + y) + "_") + q) + "_") + D) | |
96 | 96 | let H = parseIntValue(q) | |
97 | 97 | let I = r(D) | |
98 | 98 | ScriptResult(WriteSet([DataEntry(w, G)]), TransferSet([ScriptTransfer(E, fraction(H, 94, 100), I), ScriptTransfer(e, fraction(H, h, 100), I), ScriptTransfer(f, fraction(H, i, 100), I), ScriptTransfer(g, fraction(H, j, 100), I)])) | |
99 | 99 | } | |
100 | 100 | } | |
101 | 101 | ||
102 | 102 |
github/deemru/w8io/169f3d6 29.95 ms ◑![]()