tx · GkptHaVtKfqU1NokwqwJWw5UrRs2hAHvbrsb5gPWCHKX 3PB8ih6yMHqvvGvnvxdqW2i4rNffoUtBoxa: -0.00400000 Waves 2022.06.28 02:02 [3181077] smart account 3PB8ih6yMHqvvGvnvxdqW2i4rNffoUtBoxa > SELF 0.00000000 Waves
{ "type": 13, "id": "GkptHaVtKfqU1NokwqwJWw5UrRs2hAHvbrsb5gPWCHKX", "fee": 400000, "feeAssetId": null, "timestamp": 1656370965605, "version": 1, "sender": "3PB8ih6yMHqvvGvnvxdqW2i4rNffoUtBoxa", "senderPublicKey": "CV3C1sL57cpVTpFMLdLCUqfd79YaoZJ9NJP7QeTJjnU8", "proofs": [ "3QjqfwsvKfZ9NU5NL8wxTd3kyrGzZDAz3qDZ1upw44G1baT8oJDRvCUKpSqDKjPJL2hZju79df9MpKJEnDc8zFZM" ], "script": "base64:AAIFAAAAAAAAAAYIAhIAEgAAAAAIAAAAAAVmYXJtcwkABEwAAAACAgAAAAhpbnNpZGVycwkABEwAAAACAgAAAAVtdW5kbwkABEwAAAACAgAAAAdrb2xraG96CQAETAAAAAICAAAABGZvbW8JAARMAAAAAgIAAAAGbWFydmluCQAETAAAAAICAAAAA2lkbwkABEwAAAACAgAAAANkdXgJAARMAAAAAgIAAAADY2d1CQAETAAAAAICAAAABGZvcmsJAARMAAAAAgIAAAAGc3RyZWV0CQAETAAAAAICAAAABGVuZG8JAARMAAAAAgIAAAAFbGF0YW0JAARMAAAAAgIAAAAFcG9pbnQJAARMAAAAAgIAAAAFc2VnZ3MJAARMAAAAAgIAAAAEbWF0aAkABEwAAAACAgAAAAZ0dXJ0bGUFAAAAA25pbAEAAAAGZ2V0U3RyAAAAAQAAAANrZXkEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWIFAAAAByRtYXRjaDAFAAAAAWICAAAAAAEAAAAGZ2V0SW50AAAAAQAAAANrZXkEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWIFAAAAByRtYXRjaDAFAAAAAWIAAAAAAAAAAAABAAAABXN0YWtlAAAAAgAAAARmYXJtAAAABmFtb3VudAQAAAAHYXNzZXRJZAkAAlkAAAABCQEAAAAGZ2V0U3RyAAAAAQkAASwAAAACBQAAAARmYXJtAgAAAANfaWQEAAAABGRBcHAJAQAAAAZnZXRTdHIAAAABCQABLAAAAAIFAAAABGZhcm0CAAAAA19zdAQAAAAHYmFsYW5jZQkAA/AAAAACBQAAAAR0aGlzBQAAAAdhc3NldElkAwkAAAAAAAACBQAAAAZhbW91bnQA//////////8JAAP8AAAABAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEFAAAABGRBcHACAAAAD3N0YWtlRmFybVRva2VucwkABEwAAAACBwUAAAADbmlsCQAETAAAAAIJAQAAAA9BdHRhY2hlZFBheW1lbnQAAAACBQAAAAdhc3NldElkBQAAAAdiYWxhbmNlBQAAAANuaWwDCQAAZwAAAAIFAAAAB2JhbGFuY2UFAAAABmFtb3VudAkAA/wAAAAECQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQUAAAAEZEFwcAIAAAAPc3Rha2VGYXJtVG9rZW5zCQAETAAAAAIHBQAAAANuaWwJAARMAAAAAgkBAAAAD0F0dGFjaGVkUGF5bWVudAAAAAIFAAAAB2Fzc2V0SWQFAAAABmFtb3VudAUAAAADbmlsCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAADUxvdyBiYWxhbmNlOiAJAAGkAAAAAQUAAAAHYmFsYW5jZQIAAAALIGFuZCBuZWVkOiAJAAGkAAAAAQUAAAAGYW1vdW50AQAAAAd1bnN0YWtlAAAAAgAAAARmYXJtAAAABmFtb3VudAQAAAAHYXNzZXRJZAkAAlkAAAABCQEAAAAGZ2V0U3RyAAAAAQkAASwAAAACBQAAAARmYXJtAgAAAANfaWQEAAAABGRBcHAJAQAAAAZnZXRTdHIAAAABCQABLAAAAAIFAAAABGZhcm0CAAAAA19zdAQAAAAHYmFsYW5jZQkAA/AAAAACBQAAAAR0aGlzBQAAAAdhc3NldElkAwkAAAAAAAACBQAAAAZhbW91bnQA//////////8JAAP8AAAABAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEFAAAABGRBcHACAAAAEndpdGhkcmF3RmFybVRva2VucwkABEwAAAACAP//////////CQAETAAAAAIHBQAAAANuaWwFAAAAA25pbAMJAABnAAAAAgUAAAAHYmFsYW5jZQUAAAAGYW1vdW50CQAD/AAAAAQJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABBQAAAARkQXBwAgAAABJ3aXRoZHJhd0Zhcm1Ub2tlbnMJAARMAAAAAgUAAAAGYW1vdW50CQAETAAAAAIHBQAAAANuaWwFAAAAA25pbAkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAA1Mb3cgYmFsYW5jZTogCQABpAAAAAEFAAAAB2JhbGFuY2UCAAAACyBhbmQgbmVlZDogCQABpAAAAAEFAAAABmFtb3VudAEAAAAFY2hlY2sAAAABAAAAA3BiawQAAAAGcGJrX3N0CQACWAAAAAEFAAAAA3BiawQAAAAGcG9pbnRzCQEAAAARQGV4dHJOYXRpdmUoMTA1OCkAAAABAgAAAAZwb2ludHMJAQAAAAhjb250YWlucwAAAAIFAAAABnBvaW50cwUAAAAGcGJrX3N0AQAAAAlpdGVyU3Rha2UAAAACAAAAA2FjYwAAAARmYXJtBAAAAANyZXoJAQAAAAVzdGFrZQAAAAIFAAAABGZhcm0A//////////8EAAAAByRtYXRjaDAFAAAAA3JlegMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAOU2NyaXB0VHJhbnNmZXIEAAAAAXQFAAAAByRtYXRjaDAJAAROAAAAAgUAAAADYWNjCQAETAAAAAIFAAAAA3JlegUAAAADbmlsBQAAAANhY2MBAAAAC2l0ZXJVbnN0YWtlAAAAAgAAAANhY2MAAAAEZmFybQQAAAADcmV6CQEAAAAHdW5zdGFrZQAAAAIFAAAABGZhcm0A//////////8EAAAAByRtYXRjaDAFAAAAA3JlegMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAOU2NyaXB0VHJhbnNmZXIEAAAAAXQFAAAAByRtYXRjaDAJAAROAAAAAgUAAAADYWNjCQAETAAAAAIFAAAAA3JlegUAAAADbmlsBQAAAANhY2MAAAACAAAAAWkBAAAAEFN0YWtlQW5kQ2xhaW1BbGwAAAAAAwkBAAAABWNoZWNrAAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5CgAAAAACJGwFAAAABWZhcm1zCgAAAAACJHMJAAGQAAAAAQUAAAACJGwKAAAAAAUkYWNjMAUAAAADbmlsCgEAAAAFJGYwXzEAAAACAAAAAiRhAAAAAiRpAwkAAGcAAAACBQAAAAIkaQUAAAACJHMFAAAAAiRhCQEAAAAJaXRlclN0YWtlAAAAAgUAAAACJGEJAAGRAAAAAgUAAAACJGwFAAAAAiRpCgEAAAAFJGYwXzIAAAACAAAAAiRhAAAAAiRpAwkAAGcAAAACBQAAAAIkaQUAAAACJHMFAAAAAiRhCQAAAgAAAAECAAAAFExpc3Qgc2l6ZSBleGNlZWRzIDE2CQEAAAAFJGYwXzIAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACBQAAAAUkYWNjMAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAgAAAAAAAAAAAwAAAAAAAAAABAAAAAAAAAAABQAAAAAAAAAABgAAAAAAAAAABwAAAAAAAAAACAAAAAAAAAAACQAAAAAAAAAACgAAAAAAAAAACwAAAAAAAAAADAAAAAAAAAAADQAAAAAAAAAADgAAAAAAAAAADwAAAAAAAAAAEAkAAAIAAAABAgAAACBQcml2YXRlIEZhcm0uIEFjY2VzcyBwcm9oaWJpdGVkIQAAAAFpAQAAAApVbnN0YWtlQWxsAAAAAAMJAQAAAAVjaGVjawAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQoAAAAAAiRsBQAAAAVmYXJtcwoAAAAAAiRzCQABkAAAAAEFAAAAAiRsCgAAAAAFJGFjYzAFAAAAA25pbAoBAAAABSRmMF8xAAAAAgAAAAIkYQAAAAIkaQMJAABnAAAAAgUAAAACJGkFAAAAAiRzBQAAAAIkYQkBAAAAC2l0ZXJVbnN0YWtlAAAAAgUAAAACJGEJAAGRAAAAAgUAAAACJGwFAAAAAiRpCgEAAAAFJGYwXzIAAAACAAAAAiRhAAAAAiRpAwkAAGcAAAACBQAAAAIkaQUAAAACJHMFAAAAAiRhCQAAAgAAAAECAAAAFExpc3Qgc2l6ZSBleGNlZWRzIDE2CQEAAAAFJGYwXzIAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACBQAAAAUkYWNjMAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAgAAAAAAAAAAAwAAAAAAAAAABAAAAAAAAAAABQAAAAAAAAAABgAAAAAAAAAABwAAAAAAAAAACAAAAAAAAAAACQAAAAAAAAAACgAAAAAAAAAACwAAAAAAAAAADAAAAAAAAAAADQAAAAAAAAAADgAAAAAAAAAADwAAAAAAAAAAEAkAAAIAAAABAgAAACBQcml2YXRlIEZhcm0uIEFjY2VzcyBwcm9oaWJpdGVkIQAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAAJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAACAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V5SFgUtQ==", "chainId": 87, "height": 3181077, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: 7ujNKZ4Cnm6Eb7wos5YUa7FB4nnn9PnTozd5GNtfX7bB Full:
Old | New | Differences | |
---|---|---|---|
1 | - | # no script | |
1 | + | {-# STDLIB_VERSION 5 #-} | |
2 | + | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | + | {-# CONTENT_TYPE DAPP #-} | |
4 | + | let farms = ["insiders", "mundo", "kolkhoz", "fomo", "marvin", "ido", "dux", "cgu", "fork", "street", "endo", "latam", "point", "seggs", "math", "turtle"] | |
5 | + | ||
6 | + | func getStr (key) = match getString(this, key) { | |
7 | + | case b: String => | |
8 | + | b | |
9 | + | case _ => | |
10 | + | "" | |
11 | + | } | |
12 | + | ||
13 | + | ||
14 | + | func getInt (key) = match getInteger(this, key) { | |
15 | + | case b: Int => | |
16 | + | b | |
17 | + | case _ => | |
18 | + | 0 | |
19 | + | } | |
20 | + | ||
21 | + | ||
22 | + | func stake (farm,amount) = { | |
23 | + | let assetId = fromBase58String(getStr((farm + "_id"))) | |
24 | + | let dApp = getStr((farm + "_st")) | |
25 | + | let balance = assetBalance(this, assetId) | |
26 | + | if ((amount == -1)) | |
27 | + | then invoke(Address(fromBase58String(dApp)), "stakeFarmTokens", [false], [AttachedPayment(assetId, balance)]) | |
28 | + | else if ((balance >= amount)) | |
29 | + | then invoke(Address(fromBase58String(dApp)), "stakeFarmTokens", [false], [AttachedPayment(assetId, amount)]) | |
30 | + | else throw(((("Low balance: " + toString(balance)) + " and need: ") + toString(amount))) | |
31 | + | } | |
32 | + | ||
33 | + | ||
34 | + | func unstake (farm,amount) = { | |
35 | + | let assetId = fromBase58String(getStr((farm + "_id"))) | |
36 | + | let dApp = getStr((farm + "_st")) | |
37 | + | let balance = assetBalance(this, assetId) | |
38 | + | if ((amount == -1)) | |
39 | + | then invoke(Address(fromBase58String(dApp)), "withdrawFarmTokens", [-1, false], nil) | |
40 | + | else if ((balance >= amount)) | |
41 | + | then invoke(Address(fromBase58String(dApp)), "withdrawFarmTokens", [amount, false], nil) | |
42 | + | else throw(((("Low balance: " + toString(balance)) + " and need: ") + toString(amount))) | |
43 | + | } | |
44 | + | ||
45 | + | ||
46 | + | func check (pbk) = { | |
47 | + | let pbk_st = toBase58String(pbk) | |
48 | + | let points = getStringValue("points") | |
49 | + | contains(points, pbk_st) | |
50 | + | } | |
51 | + | ||
52 | + | ||
53 | + | func iterStake (acc,farm) = { | |
54 | + | let rez = stake(farm, -1) | |
55 | + | match rez { | |
56 | + | case t: ScriptTransfer => | |
57 | + | (acc ++ [rez]) | |
58 | + | case _ => | |
59 | + | acc | |
60 | + | } | |
61 | + | } | |
62 | + | ||
63 | + | ||
64 | + | func iterUnstake (acc,farm) = { | |
65 | + | let rez = unstake(farm, -1) | |
66 | + | match rez { | |
67 | + | case t: ScriptTransfer => | |
68 | + | (acc ++ [rez]) | |
69 | + | case _ => | |
70 | + | acc | |
71 | + | } | |
72 | + | } | |
73 | + | ||
74 | + | ||
75 | + | @Callable(i) | |
76 | + | func StakeAndClaimAll () = if (check(i.callerPublicKey)) | |
77 | + | then { | |
78 | + | let $l = farms | |
79 | + | let $s = size($l) | |
80 | + | let $acc0 = nil | |
81 | + | func $f0_1 ($a,$i) = if (($i >= $s)) | |
82 | + | then $a | |
83 | + | else iterStake($a, $l[$i]) | |
84 | + | ||
85 | + | func $f0_2 ($a,$i) = if (($i >= $s)) | |
86 | + | then $a | |
87 | + | else throw("List size exceeds 16") | |
88 | + | ||
89 | + | $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16) | |
90 | + | } | |
91 | + | else throw("Private Farm. Access prohibited!") | |
92 | + | ||
93 | + | ||
94 | + | ||
95 | + | @Callable(i) | |
96 | + | func UnstakeAll () = if (check(i.callerPublicKey)) | |
97 | + | then { | |
98 | + | let $l = farms | |
99 | + | let $s = size($l) | |
100 | + | let $acc0 = nil | |
101 | + | func $f0_1 ($a,$i) = if (($i >= $s)) | |
102 | + | then $a | |
103 | + | else iterUnstake($a, $l[$i]) | |
104 | + | ||
105 | + | func $f0_2 ($a,$i) = if (($i >= $s)) | |
106 | + | then $a | |
107 | + | else throw("List size exceeds 16") | |
108 | + | ||
109 | + | $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16) | |
110 | + | } | |
111 | + | else throw("Private Farm. Access prohibited!") | |
112 | + | ||
113 | + | ||
114 | + | @Verifier(tx) | |
115 | + | func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
116 | + |
github/deemru/w8io/3ef1775 33.52 ms ◑