2022.07.18 15:43 [3210750] smart account 3P27h7vAWPyP3Stzpeff1feg1YHqRjUShkj > SELF 0.00000000 Waves
{
"type": 13,
"id": "5QVhkmA3tx9u7DU969bdLbQQCfrBE2Dxif7cuiPbBu27",
"fee": 200000,
"feeAssetId": null,
"timestamp": 1658148203904,
"version": 2,
"chainId": 87,
"sender": "3P27h7vAWPyP3Stzpeff1feg1YHqRjUShkj",
"senderPublicKey": "6cYBat99ZdycuduLmHWzDy6s3qkKLiRsVypxjM33HW2e",
"proofs": [
"3JWWszTG75onNhJu35n5CtsoymMsP5a3KVq2Cy3CoedPycxvxG3RDAjxY8wp2Hs7a5ZNQrcNQYnSa6dHf4C3Yj5d"
],
"script": "base64:AAIFAAAAAAAAAIYIAhIAIgZvcmFjbGUiBEVOTk8iBnNlbmRlciIHc2Vzc2lvbiIBaSIKY3VycmVudEtleSIHdm90ZUtleSIJdG90YWxWb3RlIgZhbW91bnQiC3RvdGFsQW1vdW50IghjaGVja0tleSIFY2hlY2siBXNoYXJlIghkZXNlcnZlZCIHYmFsYW5jZQAAAAQAAAAAAWEJAQAAAAdBZGRyZXNzAAAAAQEAAAAaAVd0oqwNAYVozJV8pH3Genh/us1ERvaZokUAAAAAAWIBAAAAIF4bUVzBKfKAGAULbWG+vfYHaU4ivOdwf0xRTRMwdlKzAAAAAAFjCQEAAAAHQWRkcmVzcwAAAAEBAAAAGgFXAgrigKg7bClHASzoXiLDurHBkf/zBx5gAAAAAAFkAAAAAAAAAAAAAAAAAQAAAAFlAQAAAAVjbGFpbQAAAAAEAAAAAWYJAAJYAAAAAQgIBQAAAAFlAAAABmNhbGxlcgAAAAVieXRlcwQAAAABZwkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAABuJXMlcyVzJXMlZF9fdm90ZV9fN0xNVjNzMUo0ZEtwTVFacWdlNXNLWW9Ga1pSTG9qbm5VNDlhZXJxb3M0eWdfX0RHMnhGa1BkRHdLVW9Ca3pHQWhRdExwU0d6ZlhMaUNZUEV6ZUtIMkFkMjRwX18FAAAAAWYCAAAAAl9fCQABpAAAAAEFAAAAAWQEAAAAAWgJAAEsAAAAAgIAAAB0JXMlcyVzJWRfX3ZvdGluZ1Jlc3VsdF9fN0xNVjNzMUo0ZEtwTVFacWdlNXNLWW9Ga1pSTG9qbm5VNDlhZXJxb3M0eWdfX0RHMnhGa1BkRHdLVW9Ca3pHQWhRdExwU0d6ZlhMaUNZUEV6ZUtIMkFkMjRwX18JAAGkAAAAAQUAAAABZAQAAAABaQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAFhBQAAAAFnAAAAAAAAAAAABAAAAAFqCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAAAWEFAAAAAWgAAAAAAAAAAAAEAAAAAWsJAAEsAAAAAgkAASwAAAACBQAAAAFmAgAAAAlfY2xhaW1lZF8JAAGkAAAAAQUAAAABZAQAAAABbAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBsAAAACBQAAAAR0aGlzBQAAAAFrBwQAAAABbQkAAGsAAAADBQAAAAFpAAAAAAJUC+QABQAAAAFqBAAAAAFuCQAAaAAAAAIAAAAAAAAAABQFAAAAAW0EAAAAAW8JAAPwAAAAAgUAAAABYwUAAAABYgMDAwMJAABmAAAAAgUAAAABaQAAAAAAAAAAAAkAAGYAAAACBQAAAAFqAAAAAAAAAAAABwkBAAAAASEAAAABBQAAAAFsBwkAAGYAAAACBQAAAAFvAAAAAAAAAAAABwkABEwAAAACCQEAAAAMQm9vbGVhbkVudHJ5AAAAAgUAAAABawYJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWUAAAAGY2FsbGVyBQAAAAFuBQAAAAFiBQAAAANuaWwJAAACAAAAAQIAAAA2eW91IGFyZSBub3QgYWJsZSB0byBjbGFpbSBhbnl0aGluZyBvciBub3QgZW5vdWdoIGZ1bmRzAAAAADpSwSE=",
"height": 3210750,
"applicationStatus": "succeeded",
"spentComplexity": 0
}
View: original | compacted
Prev: GoeYE64gB4kDnBtL4me7JNpmooLnjUsGJvN9skPHrz8v
Next: 88HfZrWbbZXCGUswsjeqGUpPkfPpXjYYsZD2UtS4CWpf
Diff:
Old | New | | Differences |
---|
7 | 7 | | |
---|
8 | 8 | | let sender = Address(base58'3P27h7vAWPyP3Stzpeff1feg1YHqRjUShkj') |
---|
9 | 9 | | |
---|
| 10 | + | let session = 0 |
---|
| 11 | + | |
---|
10 | 12 | | @Callable(i) |
---|
11 | 13 | | func claim () = { |
---|
12 | 14 | | let currentKey = toBase58String(i.caller.bytes) |
---|
13 | | - | let voteKey = (("%s%s%s%s%d__vote__7LMV3s1J4dKpMQZqge5sKYoFkZRLojnnU49aerqos4yg__DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p__" + currentKey) + "__0") |
---|
14 | | - | let totalVote = "%s%s%s%d__votingResult__7LMV3s1J4dKpMQZqge5sKYoFkZRLojnnU49aerqos4yg__DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p__0" |
---|
| 15 | + | let voteKey = ((("%s%s%s%s%d__vote__7LMV3s1J4dKpMQZqge5sKYoFkZRLojnnU49aerqos4yg__DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p__" + currentKey) + "__") + toString(session)) |
---|
| 16 | + | let totalVote = ("%s%s%s%d__votingResult__7LMV3s1J4dKpMQZqge5sKYoFkZRLojnnU49aerqos4yg__DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p__" + toString(session)) |
---|
15 | 17 | | let amount = valueOrElse(getInteger(oracle, voteKey), 0) |
---|
16 | 18 | | let totalAmount = valueOrElse(getInteger(oracle, totalVote), 0) |
---|
17 | | - | let checkKey = (currentKey + "_claimed") |
---|
| 19 | + | let checkKey = ((currentKey + "_claimed_") + toString(session)) |
---|
18 | 20 | | let check = valueOrElse(getBoolean(this, checkKey), false) |
---|
19 | 21 | | let share = fraction(amount, 10000000000, totalAmount) |
---|
20 | 22 | | let deserved = (20 * share) |
---|
Full:
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 | 8 | | let sender = Address(base58'3P27h7vAWPyP3Stzpeff1feg1YHqRjUShkj') |
---|
9 | 9 | | |
---|
| 10 | + | let session = 0 |
---|
| 11 | + | |
---|
10 | 12 | | @Callable(i) |
---|
11 | 13 | | func claim () = { |
---|
12 | 14 | | let currentKey = toBase58String(i.caller.bytes) |
---|
13 | | - | let voteKey = (("%s%s%s%s%d__vote__7LMV3s1J4dKpMQZqge5sKYoFkZRLojnnU49aerqos4yg__DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p__" + currentKey) + "__0") |
---|
14 | | - | let totalVote = "%s%s%s%d__votingResult__7LMV3s1J4dKpMQZqge5sKYoFkZRLojnnU49aerqos4yg__DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p__0" |
---|
| 15 | + | let voteKey = ((("%s%s%s%s%d__vote__7LMV3s1J4dKpMQZqge5sKYoFkZRLojnnU49aerqos4yg__DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p__" + currentKey) + "__") + toString(session)) |
---|
| 16 | + | let totalVote = ("%s%s%s%d__votingResult__7LMV3s1J4dKpMQZqge5sKYoFkZRLojnnU49aerqos4yg__DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p__" + toString(session)) |
---|
15 | 17 | | let amount = valueOrElse(getInteger(oracle, voteKey), 0) |
---|
16 | 18 | | let totalAmount = valueOrElse(getInteger(oracle, totalVote), 0) |
---|
17 | | - | let checkKey = (currentKey + "_claimed") |
---|
| 19 | + | let checkKey = ((currentKey + "_claimed_") + toString(session)) |
---|
18 | 20 | | let check = valueOrElse(getBoolean(this, checkKey), false) |
---|
19 | 21 | | let share = fraction(amount, 10000000000, totalAmount) |
---|
20 | 22 | | let deserved = (20 * share) |
---|
21 | 23 | | let balance = assetBalance(sender, ENNO) |
---|
22 | 24 | | if (if (if (if ((amount > 0)) |
---|
23 | 25 | | then (totalAmount > 0) |
---|
24 | 26 | | else false) |
---|
25 | 27 | | then !(check) |
---|
26 | 28 | | else false) |
---|
27 | 29 | | then (balance > 0) |
---|
28 | 30 | | else false) |
---|
29 | 31 | | then [BooleanEntry(checkKey, true), ScriptTransfer(i.caller, deserved, ENNO)] |
---|
30 | 32 | | else throw("you are not able to claim anything or not enough funds") |
---|
31 | 33 | | } |
---|
32 | 34 | | |
---|
33 | 35 | | |
---|