tx · 4wRYV1nWNXdQKoaakko3YvfhTT7tyrDRoiMhrsYatDVz 3N5YzdqDE6FDdsLNGXU4G4yrmirb2oiifEc: -0.01000000 Waves 2022.10.19 11:52 [2279050] smart account 3N5YzdqDE6FDdsLNGXU4G4yrmirb2oiifEc > SELF 0.00000000 Waves
{ "type": 13, "id": "4wRYV1nWNXdQKoaakko3YvfhTT7tyrDRoiMhrsYatDVz", "fee": 1000000, "feeAssetId": null, "timestamp": 1666169550365, "version": 2, "chainId": 84, "sender": "3N5YzdqDE6FDdsLNGXU4G4yrmirb2oiifEc", "senderPublicKey": "E3rsNDJ7CyVzRYUkm1k4GYLuZYYxzQioRgWedzPYXTSL", "proofs": [ "3rdJZgnJFDu6ZnoERjbCXyN7fCB25qHEomnaV7YDVnaf66NnP2D9yJEfVMWTJTA7cuw2kktSYkrQNGJF8sEbUpzC" ], "script": "base64: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", "height": 2279050, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 2H62WQsMcwSECDUJx4pgxTBTrsX1V1F2eGHHKEB3gZfr Next: GBBG5kTn6DUbM9AATKee1wDLuU3FpLXrmmY9jt5MqqJP Diff:
Old | New | Differences | |
---|---|---|---|
53 | 53 | ||
54 | 54 | ||
55 | 55 | @Callable(g) | |
56 | - | func vote4EnnoDAO (o,t | |
57 | - | let | |
58 | - | let | |
59 | - | let p = valueOrElse(parseInt( | |
60 | - | let q = valueOrElse(parseInt( | |
56 | + | func vote4EnnoDAO (o,t) = { | |
57 | + | let u = valueOrErrorMessage(getString(this, (((d + "_") + toString(o)) + "_duration")), "purpose not found") | |
58 | + | let v = split(u, "_") | |
59 | + | let p = valueOrElse(parseInt(v[0]), 0) | |
60 | + | let q = valueOrElse(parseInt(v[1]), 0) | |
61 | 61 | if (if ((p > height)) | |
62 | 62 | then true | |
63 | 63 | else (height > q)) | |
67 | 67 | else (t > 2)) | |
68 | 68 | then throw("vote must be yes or no") | |
69 | 69 | else { | |
70 | - | let | |
71 | - | let | |
72 | - | if (if ((0 >= | |
70 | + | let w = g.payments[0].amount | |
71 | + | let x = (height + c) | |
72 | + | if (if ((0 >= w)) | |
73 | 73 | then true | |
74 | 74 | else (g.payments[0].assetId != a)) | |
75 | 75 | then throw("invalid token attached") | |
76 | 76 | else if ((t == 1)) | |
77 | 77 | then { | |
78 | - | let | |
79 | - | let | |
80 | - | [IntegerEntry((((d + "_") + toString(o)) + "_yes"), | |
78 | + | let y = valueOrElse(getInteger(this, (((d + "_") + toString(o)) + "_yes")), 0) | |
79 | + | let z = (y + w) | |
80 | + | [IntegerEntry((((d + "_") + toString(o)) + "_yes"), z)] | |
81 | 81 | } | |
82 | 82 | else if ((t == 2)) | |
83 | 83 | then { | |
84 | - | let | |
85 | - | let | |
86 | - | [IntegerEntry((((d + "_") + toString(o)) + "_no"), | |
84 | + | let A = valueOrElse(getInteger(this, (((d + "_") + toString(o)) + "_no")), 0) | |
85 | + | let z = (A + w) | |
86 | + | [IntegerEntry((((d + "_") + toString(o)) + "_no"), z)] | |
87 | 87 | } | |
88 | 88 | else throw("nothing to do my friend") | |
89 | 89 | } |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let a = base58'43W4FcqA1rEpSmUGHoGiXvpSLfhadws9LS5j3SJsKxxS' | |
5 | 5 | ||
6 | 6 | let b = 10000000000 | |
7 | 7 | ||
8 | 8 | let c = (7 * 1440) | |
9 | 9 | ||
10 | 10 | let d = "purpose" | |
11 | 11 | ||
12 | 12 | let e = "purposeId" | |
13 | 13 | ||
14 | 14 | func f (g) = { | |
15 | 15 | let h = a | |
16 | 16 | if ((size(g.payments) == 0)) | |
17 | 17 | then throw("Payment not attached") | |
18 | 18 | else { | |
19 | 19 | let i = g.payments[0] | |
20 | 20 | let j = i.assetId | |
21 | 21 | if ($isInstanceOf(j, "ByteVector")) | |
22 | 22 | then { | |
23 | 23 | let k = j | |
24 | 24 | if ((k == h)) | |
25 | 25 | then (i.amount == b) | |
26 | 26 | else false | |
27 | 27 | } | |
28 | 28 | else throw("Wrong payment asset") | |
29 | 29 | } | |
30 | 30 | } | |
31 | 31 | ||
32 | 32 | ||
33 | 33 | @Callable(g) | |
34 | 34 | func newPurpose (l) = { | |
35 | 35 | let m = size(toBytes(l)) | |
36 | 36 | let n = toBase58String(g.caller.bytes) | |
37 | 37 | let o = valueOrElse(getInteger(this, e), 1) | |
38 | 38 | if (if ((m > 200)) | |
39 | 39 | then true | |
40 | 40 | else (10 > m)) | |
41 | 41 | then throw("Purpose text cannot be more than 200") | |
42 | 42 | else if (!(f(g))) | |
43 | 43 | then throw(("you have to pay " + toString(b))) | |
44 | 44 | else { | |
45 | 45 | let p = height | |
46 | 46 | let q = (height + c) | |
47 | 47 | let r = toBase64String(toBytes(l)) | |
48 | 48 | let s = (o + 1) | |
49 | 49 | [StringEntry(((d + "_") + toString(s)), r), IntegerEntry(e, s), StringEntry((((d + "_") + toString(s)) + "_duration"), ((toString(p) + "_") + toString(q))), StringEntry((((d + "_") + toString(s)) + "_owner"), n)] | |
50 | 50 | } | |
51 | 51 | } | |
52 | 52 | ||
53 | 53 | ||
54 | 54 | ||
55 | 55 | @Callable(g) | |
56 | - | func vote4EnnoDAO (o,t | |
57 | - | let | |
58 | - | let | |
59 | - | let p = valueOrElse(parseInt( | |
60 | - | let q = valueOrElse(parseInt( | |
56 | + | func vote4EnnoDAO (o,t) = { | |
57 | + | let u = valueOrErrorMessage(getString(this, (((d + "_") + toString(o)) + "_duration")), "purpose not found") | |
58 | + | let v = split(u, "_") | |
59 | + | let p = valueOrElse(parseInt(v[0]), 0) | |
60 | + | let q = valueOrElse(parseInt(v[1]), 0) | |
61 | 61 | if (if ((p > height)) | |
62 | 62 | then true | |
63 | 63 | else (height > q)) | |
64 | 64 | then throw(("voting period is over for purpose: " + toString(o))) | |
65 | 65 | else if (if ((0 >= t)) | |
66 | 66 | then true | |
67 | 67 | else (t > 2)) | |
68 | 68 | then throw("vote must be yes or no") | |
69 | 69 | else { | |
70 | - | let | |
71 | - | let | |
72 | - | if (if ((0 >= | |
70 | + | let w = g.payments[0].amount | |
71 | + | let x = (height + c) | |
72 | + | if (if ((0 >= w)) | |
73 | 73 | then true | |
74 | 74 | else (g.payments[0].assetId != a)) | |
75 | 75 | then throw("invalid token attached") | |
76 | 76 | else if ((t == 1)) | |
77 | 77 | then { | |
78 | - | let | |
79 | - | let | |
80 | - | [IntegerEntry((((d + "_") + toString(o)) + "_yes"), | |
78 | + | let y = valueOrElse(getInteger(this, (((d + "_") + toString(o)) + "_yes")), 0) | |
79 | + | let z = (y + w) | |
80 | + | [IntegerEntry((((d + "_") + toString(o)) + "_yes"), z)] | |
81 | 81 | } | |
82 | 82 | else if ((t == 2)) | |
83 | 83 | then { | |
84 | - | let | |
85 | - | let | |
86 | - | [IntegerEntry((((d + "_") + toString(o)) + "_no"), | |
84 | + | let A = valueOrElse(getInteger(this, (((d + "_") + toString(o)) + "_no")), 0) | |
85 | + | let z = (A + w) | |
86 | + | [IntegerEntry((((d + "_") + toString(o)) + "_no"), z)] | |
87 | 87 | } | |
88 | 88 | else throw("nothing to do my friend") | |
89 | 89 | } | |
90 | 90 | } | |
91 | 91 | ||
92 | 92 |
github/deemru/w8io/169f3d6 35.62 ms ◑![]()