tx · 4XVYUFYmSYnUPUG1Px4DGCrMgzRJGzc9oR8ytT93MJAk 3P27h7vAWPyP3Stzpeff1feg1YHqRjUShkj: -0.00300000 Waves 2022.08.03 14:48 [3233781] smart account 3P27h7vAWPyP3Stzpeff1feg1YHqRjUShkj > SELF 0.00000000 Waves
{ "type": 13, "id": "4XVYUFYmSYnUPUG1Px4DGCrMgzRJGzc9oR8ytT93MJAk", "fee": 300000, "feeAssetId": null, "timestamp": 1659527377348, "version": 2, "chainId": 87, "sender": "3P27h7vAWPyP3Stzpeff1feg1YHqRjUShkj", "senderPublicKey": "6cYBat99ZdycuduLmHWzDy6s3qkKLiRsVypxjM33HW2e", "proofs": [ "4X8Rd9JiQa3WGFG4KmtYPJ7FDpmMBr6PF4UXd7yncnto5qR71sLXGecytidd3AdNtxsBYUAMXo8X3ECT1ei6Y4YF" ], "script": "base64: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", "height": 3233781, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 3juJawDWmbjKBKdTbU23sqYkyYh6CSPxz14MFajdEYRX Next: J2T8mFCjVEsUn6jnirwFENgM9sdSj5CreZ4ucvgAPyCG Diff:
Old | New | Differences | |
---|---|---|---|
5 | 5 | ||
6 | 6 | let ENNO = base58'7LMV3s1J4dKpMQZqge5sKYoFkZRLojnnU49aerqos4yg' | |
7 | 7 | ||
8 | + | let WX = base58'Atqv59EYzjFGuitKVnMRk6H8FukjoV3ktPorbEys25on' | |
9 | + | ||
8 | 10 | let sender = Address(base58'3P27h7vAWPyP3Stzpeff1feg1YHqRjUShkj') | |
9 | - | ||
10 | - | let enno_prize = 200000000000 | |
11 | - | ||
12 | - | let session = 0 | |
13 | 11 | ||
14 | 12 | @Callable(i) | |
15 | 13 | func claim () = { | |
14 | + | let enno_prize = 200000000000 | |
15 | + | let wx_prize = 200000000000 | |
16 | + | let session = 1 | |
16 | 17 | let currentKey = toBase58String(i.caller.bytes) | |
17 | 18 | let voteKey = ((("%s%s%s%s%d__vote__7LMV3s1J4dKpMQZqge5sKYoFkZRLojnnU49aerqos4yg__DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p__" + currentKey) + "__") + toString(session)) | |
18 | 19 | let totalVote = ("%s%s%s%d__votingResult__7LMV3s1J4dKpMQZqge5sKYoFkZRLojnnU49aerqos4yg__DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p__" + toString(session)) | |
22 | 23 | let check = valueOrElse(getBoolean(this, checkKey), false) | |
23 | 24 | let share = fraction(amount, 10000000000, totalAmount) | |
24 | 25 | let deserved = (20 * share) | |
25 | - | let balance = assetBalance(sender, ENNO) | |
26 | - | if (if (if (if ((amount > 0)) | |
26 | + | let ENNObalance = assetBalance(sender, ENNO) | |
27 | + | let WXbalance = assetBalance(sender, WX) | |
28 | + | if (if (if (if (if ((amount > 0)) | |
27 | 29 | then (totalAmount > 0) | |
28 | 30 | else false) | |
29 | 31 | then !(check) | |
30 | 32 | else false) | |
31 | - | then ( | |
33 | + | then (ENNObalance > 0) | |
32 | 34 | else false) | |
33 | - | then [BooleanEntry(checkKey, true), ScriptTransfer(i.caller, deserved, ENNO)] | |
35 | + | then (WXbalance > 0) | |
36 | + | else false) | |
37 | + | then [BooleanEntry(checkKey, true), ScriptTransfer(i.caller, deserved, ENNO), ScriptTransfer(i.caller, deserved, WX)] | |
34 | 38 | else throw("you are not able to claim") | |
39 | + | } | |
40 | + | ||
41 | + | ||
42 | + | ||
43 | + | @Callable(i) | |
44 | + | func claimPreviousCampaignRewards (session) = { | |
45 | + | let currentKey = toBase58String(i.caller.bytes) | |
46 | + | let voteKey = ((("%s%s%s%s%d__vote__7LMV3s1J4dKpMQZqge5sKYoFkZRLojnnU49aerqos4yg__DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p__" + currentKey) + "__") + toString(session)) | |
47 | + | let totalVote = ("%s%s%s%d__votingResult__7LMV3s1J4dKpMQZqge5sKYoFkZRLojnnU49aerqos4yg__DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p__" + toString(session)) | |
48 | + | let amount = valueOrElse(getInteger(oracle, voteKey), 0) | |
49 | + | let totalAmount = valueOrElse(getInteger(oracle, totalVote), 0) | |
50 | + | let checkKey = ((currentKey + "_claimed_") + toString(session)) | |
51 | + | let check = valueOrElse(getBoolean(this, checkKey), false) | |
52 | + | if ((session == 0)) | |
53 | + | then if (if (if ((amount > 0)) | |
54 | + | then (totalAmount > 0) | |
55 | + | else false) | |
56 | + | then !(check) | |
57 | + | else false) | |
58 | + | then { | |
59 | + | let share = fraction(amount, 10000000000, totalAmount) | |
60 | + | let deserved = (20 * share) | |
61 | + | [BooleanEntry(checkKey, true), ScriptTransfer(i.caller, deserved, ENNO)] | |
62 | + | } | |
63 | + | else throw("you are not able to claim") | |
64 | + | else throw("invalid session") | |
35 | 65 | } | |
36 | 66 | ||
37 | 67 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let oracle = Address(base58'3PCZbz9o5YfWtK36j3tFcM8E1DUa9d7MyXS') | |
5 | 5 | ||
6 | 6 | let ENNO = base58'7LMV3s1J4dKpMQZqge5sKYoFkZRLojnnU49aerqos4yg' | |
7 | 7 | ||
8 | + | let WX = base58'Atqv59EYzjFGuitKVnMRk6H8FukjoV3ktPorbEys25on' | |
9 | + | ||
8 | 10 | let sender = Address(base58'3P27h7vAWPyP3Stzpeff1feg1YHqRjUShkj') | |
9 | - | ||
10 | - | let enno_prize = 200000000000 | |
11 | - | ||
12 | - | let session = 0 | |
13 | 11 | ||
14 | 12 | @Callable(i) | |
15 | 13 | func claim () = { | |
14 | + | let enno_prize = 200000000000 | |
15 | + | let wx_prize = 200000000000 | |
16 | + | let session = 1 | |
16 | 17 | let currentKey = toBase58String(i.caller.bytes) | |
17 | 18 | let voteKey = ((("%s%s%s%s%d__vote__7LMV3s1J4dKpMQZqge5sKYoFkZRLojnnU49aerqos4yg__DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p__" + currentKey) + "__") + toString(session)) | |
18 | 19 | let totalVote = ("%s%s%s%d__votingResult__7LMV3s1J4dKpMQZqge5sKYoFkZRLojnnU49aerqos4yg__DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p__" + toString(session)) | |
19 | 20 | let amount = valueOrElse(getInteger(oracle, voteKey), 0) | |
20 | 21 | let totalAmount = valueOrElse(getInteger(oracle, totalVote), 0) | |
21 | 22 | let checkKey = ((currentKey + "_claimed_") + toString(session)) | |
22 | 23 | let check = valueOrElse(getBoolean(this, checkKey), false) | |
23 | 24 | let share = fraction(amount, 10000000000, totalAmount) | |
24 | 25 | let deserved = (20 * share) | |
25 | - | let balance = assetBalance(sender, ENNO) | |
26 | - | if (if (if (if ((amount > 0)) | |
26 | + | let ENNObalance = assetBalance(sender, ENNO) | |
27 | + | let WXbalance = assetBalance(sender, WX) | |
28 | + | if (if (if (if (if ((amount > 0)) | |
27 | 29 | then (totalAmount > 0) | |
28 | 30 | else false) | |
29 | 31 | then !(check) | |
30 | 32 | else false) | |
31 | - | then ( | |
33 | + | then (ENNObalance > 0) | |
32 | 34 | else false) | |
33 | - | then [BooleanEntry(checkKey, true), ScriptTransfer(i.caller, deserved, ENNO)] | |
35 | + | then (WXbalance > 0) | |
36 | + | else false) | |
37 | + | then [BooleanEntry(checkKey, true), ScriptTransfer(i.caller, deserved, ENNO), ScriptTransfer(i.caller, deserved, WX)] | |
34 | 38 | else throw("you are not able to claim") | |
39 | + | } | |
40 | + | ||
41 | + | ||
42 | + | ||
43 | + | @Callable(i) | |
44 | + | func claimPreviousCampaignRewards (session) = { | |
45 | + | let currentKey = toBase58String(i.caller.bytes) | |
46 | + | let voteKey = ((("%s%s%s%s%d__vote__7LMV3s1J4dKpMQZqge5sKYoFkZRLojnnU49aerqos4yg__DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p__" + currentKey) + "__") + toString(session)) | |
47 | + | let totalVote = ("%s%s%s%d__votingResult__7LMV3s1J4dKpMQZqge5sKYoFkZRLojnnU49aerqos4yg__DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p__" + toString(session)) | |
48 | + | let amount = valueOrElse(getInteger(oracle, voteKey), 0) | |
49 | + | let totalAmount = valueOrElse(getInteger(oracle, totalVote), 0) | |
50 | + | let checkKey = ((currentKey + "_claimed_") + toString(session)) | |
51 | + | let check = valueOrElse(getBoolean(this, checkKey), false) | |
52 | + | if ((session == 0)) | |
53 | + | then if (if (if ((amount > 0)) | |
54 | + | then (totalAmount > 0) | |
55 | + | else false) | |
56 | + | then !(check) | |
57 | + | else false) | |
58 | + | then { | |
59 | + | let share = fraction(amount, 10000000000, totalAmount) | |
60 | + | let deserved = (20 * share) | |
61 | + | [BooleanEntry(checkKey, true), ScriptTransfer(i.caller, deserved, ENNO)] | |
62 | + | } | |
63 | + | else throw("you are not able to claim") | |
64 | + | else throw("invalid session") | |
35 | 65 | } | |
36 | 66 | ||
37 | 67 |
github/deemru/w8io/6500d08 29.60 ms ◑