2022.07.02 00:22 [3186727] smart account 3P2CinDgUX5fuck5fyRw1vfPTj8u1N67V7H > SELF 0.00000000 Waves
{ "type": 13, "id": "6sEDEe7kHvFR6QgkfrdCHZXbAWdagDHt5HyLHsba5hY3", "fee": 1100000, "feeAssetId": null, "timestamp": 1656710583033, "version": 1, "sender": "3P2CinDgUX5fuck5fyRw1vfPTj8u1N67V7H", "senderPublicKey": "J7HoLLExGYaDAzvcuELhjosVcLXBTfCwrYgpPB9VwSDM", "proofs": [ "3SR6wdPrVYKJAvBWt8BbviNX9WZgQdgbEMWKTrBRrqa5xcbDHGfw8n48tYubxhVBNuDn9syrTiY3ojg3hzEnAgij" ], "script": "base64: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", "chainId": 87, "height": 3186727, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: Bcn49JKsAdf9xsZdEEDDTnc3uNmJ45ai5Uk2NTSR79xE Next: AogNhj7nS46snGXhPyApqxte6vX9owVTuWNyHBVsnEXY Diff:
Old | New | Differences | |
---|---|---|---|
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let farms = ["insiders", "mundo", "kolkhoz", "fomo", "marvin", "ido", "dux", "cgu", "fork", "street", "endo", "latam", "point", "seggs", "math", "turtle"] | |
5 | + | ||
6 | + | let eggAssetId = base58'C1iWsKGqLwjHUndiQ7iXpdmPum9PeCDFfyXBdJJosDRS' | |
7 | + | ||
8 | + | let ref = addressFromPublicKey(base58'CV3C1sL57cpVTpFMLdLCUqfd79YaoZJ9NJP7QeTJjnU8') | |
5 | 9 | ||
6 | 10 | func getStr (key) = match getString(this, key) { | |
7 | 11 | case b: String => | |
87 | 91 | ||
88 | 92 | @Callable(i) | |
89 | 93 | func StakeAndClaimAll () = if (check(i.callerPublicKey)) | |
90 | - | then ({ | |
91 | - | let $l = farms | |
92 | - | let $s = size($l) | |
93 | - | let $acc0 = nil | |
94 | - | func $f0_1 ($a,$i) = if (($i >= $s)) | |
95 | - | then $a | |
96 | - | else iterStake($a, $l[$i]) | |
94 | + | then { | |
95 | + | let balance = getBalance(eggAssetId) | |
96 | + | ({ | |
97 | + | let $l = farms | |
98 | + | let $s = size($l) | |
99 | + | let $acc0 = nil | |
100 | + | func $f0_1 ($a,$i) = if (($i >= $s)) | |
101 | + | then $a | |
102 | + | else iterStake($a, $l[$i]) | |
97 | 103 | ||
98 | - | func $f0_2 ($a,$i) = if (($i >= $s)) | |
99 | - | then $a | |
100 | - | else throw("List size exceeds 16") | |
104 | + | func $f0_2 ($a,$i) = if (($i >= $s)) | |
105 | + | then $a | |
106 | + | else throw("List size exceeds 16") | |
101 | 107 | ||
102 | - | $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) | |
103 | - | } ++ [BooleanEntry("cf_staked", true)]) | |
108 | + | $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) | |
109 | + | } ++ [BooleanEntry("cf_staked", true), ScriptTransfer(ref, balance, eggAssetId)]) | |
110 | + | } | |
104 | 111 | else throw("Private Farm. Access prohibited!") | |
105 | 112 | ||
106 | 113 | ||
107 | 114 | ||
108 | 115 | @Callable(i) | |
109 | 116 | func UnstakeAll () = if (check(i.callerPublicKey)) | |
110 | - | then ({ | |
111 | - | let $l = farms | |
112 | - | let $s = size($l) | |
113 | - | let $acc0 = nil | |
114 | - | func $f0_1 ($a,$i) = if (($i >= $s)) | |
115 | - | then $a | |
116 | - | else iterUnstake($a, $l[$i]) | |
117 | + | then { | |
118 | + | let balance = getBalance(eggAssetId) | |
119 | + | ({ | |
120 | + | let $l = farms | |
121 | + | let $s = size($l) | |
122 | + | let $acc0 = nil | |
123 | + | func $f0_1 ($a,$i) = if (($i >= $s)) | |
124 | + | then $a | |
125 | + | else iterUnstake($a, $l[$i]) | |
117 | 126 | ||
118 | - | func $f0_2 ($a,$i) = if (($i >= $s)) | |
119 | - | then $a | |
120 | - | else throw("List size exceeds 16") | |
127 | + | func $f0_2 ($a,$i) = if (($i >= $s)) | |
128 | + | then $a | |
129 | + | else throw("List size exceeds 16") | |
121 | 130 | ||
122 | - | $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) | |
123 | - | } ++ [BooleanEntry("cf_staked", false)]) | |
131 | + | $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) | |
132 | + | } ++ [BooleanEntry("cf_staked", false), ScriptTransfer(ref, balance, eggAssetId)]) | |
133 | + | } | |
124 | 134 | else throw("Private Farm. Access prohibited!") | |
125 | 135 | ||
126 | 136 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let farms = ["insiders", "mundo", "kolkhoz", "fomo", "marvin", "ido", "dux", "cgu", "fork", "street", "endo", "latam", "point", "seggs", "math", "turtle"] | |
5 | + | ||
6 | + | let eggAssetId = base58'C1iWsKGqLwjHUndiQ7iXpdmPum9PeCDFfyXBdJJosDRS' | |
7 | + | ||
8 | + | let ref = addressFromPublicKey(base58'CV3C1sL57cpVTpFMLdLCUqfd79YaoZJ9NJP7QeTJjnU8') | |
5 | 9 | ||
6 | 10 | func getStr (key) = match getString(this, key) { | |
7 | 11 | case b: String => | |
8 | 12 | b | |
9 | 13 | case _ => | |
10 | 14 | "" | |
11 | 15 | } | |
12 | 16 | ||
13 | 17 | ||
14 | 18 | func getInt (key) = match getInteger(this, key) { | |
15 | 19 | case b: Int => | |
16 | 20 | b | |
17 | 21 | case _ => | |
18 | 22 | 0 | |
19 | 23 | } | |
20 | 24 | ||
21 | 25 | ||
22 | 26 | func stake (farm,amount) = { | |
23 | 27 | let assetId = fromBase58String(getStr((farm + "_id"))) | |
24 | 28 | let dApp = getStr((farm + "_st")) | |
25 | 29 | let balance = assetBalance(this, assetId) | |
26 | 30 | if ((amount == -1)) | |
27 | 31 | then invoke(Address(fromBase58String(dApp)), "stakeFarmTokens", [false], [AttachedPayment(assetId, balance)]) | |
28 | 32 | else if ((balance >= amount)) | |
29 | 33 | then invoke(Address(fromBase58String(dApp)), "stakeFarmTokens", [false], [AttachedPayment(assetId, amount)]) | |
30 | 34 | else throw(((("Low balance: " + toString(balance)) + " and need: ") + toString(amount))) | |
31 | 35 | } | |
32 | 36 | ||
33 | 37 | ||
34 | 38 | func unstake (farm,amount) = { | |
35 | 39 | let assetId = fromBase58String(getStr((farm + "_id"))) | |
36 | 40 | let dApp = getStr((farm + "_st")) | |
37 | 41 | let balance = assetBalance(this, assetId) | |
38 | 42 | if ((amount == -1)) | |
39 | 43 | then invoke(Address(fromBase58String(dApp)), "withdrawFarmTokens", [-1, false], nil) | |
40 | 44 | else if ((balance >= amount)) | |
41 | 45 | then invoke(Address(fromBase58String(dApp)), "withdrawFarmTokens", [amount, false], nil) | |
42 | 46 | else throw(((("Low balance: " + toString(balance)) + " and need: ") + toString(amount))) | |
43 | 47 | } | |
44 | 48 | ||
45 | 49 | ||
46 | 50 | func check (pbk) = { | |
47 | 51 | let pbk_st = toBase58String(pbk) | |
48 | 52 | let points = getStringValue("points") | |
49 | 53 | contains(points, pbk_st) | |
50 | 54 | } | |
51 | 55 | ||
52 | 56 | ||
53 | 57 | func iterStake (acc,farm) = { | |
54 | 58 | let rez = stake(farm, -1) | |
55 | 59 | match rez { | |
56 | 60 | case t: ScriptTransfer => | |
57 | 61 | (acc ++ [rez]) | |
58 | 62 | case _ => | |
59 | 63 | acc | |
60 | 64 | } | |
61 | 65 | } | |
62 | 66 | ||
63 | 67 | ||
64 | 68 | func iterUnstake (acc,farm) = { | |
65 | 69 | let rez = unstake(farm, -1) | |
66 | 70 | match rez { | |
67 | 71 | case t: ScriptTransfer => | |
68 | 72 | (acc ++ [rez]) | |
69 | 73 | case _ => | |
70 | 74 | acc | |
71 | 75 | } | |
72 | 76 | } | |
73 | 77 | ||
74 | 78 | ||
75 | 79 | func getAssetBytes (asid) = if ((asid == "WAVES")) | |
76 | 80 | then unit | |
77 | 81 | else fromBase58String(asid) | |
78 | 82 | ||
79 | 83 | ||
80 | 84 | func getBalance (assetId) = match assetId { | |
81 | 85 | case x: Unit => | |
82 | 86 | wavesBalance(this).available | |
83 | 87 | case _ => | |
84 | 88 | assetBalance(this, value(assetId)) | |
85 | 89 | } | |
86 | 90 | ||
87 | 91 | ||
88 | 92 | @Callable(i) | |
89 | 93 | func StakeAndClaimAll () = if (check(i.callerPublicKey)) | |
90 | - | then ({ | |
91 | - | let $l = farms | |
92 | - | let $s = size($l) | |
93 | - | let $acc0 = nil | |
94 | - | func $f0_1 ($a,$i) = if (($i >= $s)) | |
95 | - | then $a | |
96 | - | else iterStake($a, $l[$i]) | |
94 | + | then { | |
95 | + | let balance = getBalance(eggAssetId) | |
96 | + | ({ | |
97 | + | let $l = farms | |
98 | + | let $s = size($l) | |
99 | + | let $acc0 = nil | |
100 | + | func $f0_1 ($a,$i) = if (($i >= $s)) | |
101 | + | then $a | |
102 | + | else iterStake($a, $l[$i]) | |
97 | 103 | ||
98 | - | func $f0_2 ($a,$i) = if (($i >= $s)) | |
99 | - | then $a | |
100 | - | else throw("List size exceeds 16") | |
104 | + | func $f0_2 ($a,$i) = if (($i >= $s)) | |
105 | + | then $a | |
106 | + | else throw("List size exceeds 16") | |
101 | 107 | ||
102 | - | $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) | |
103 | - | } ++ [BooleanEntry("cf_staked", true)]) | |
108 | + | $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) | |
109 | + | } ++ [BooleanEntry("cf_staked", true), ScriptTransfer(ref, balance, eggAssetId)]) | |
110 | + | } | |
104 | 111 | else throw("Private Farm. Access prohibited!") | |
105 | 112 | ||
106 | 113 | ||
107 | 114 | ||
108 | 115 | @Callable(i) | |
109 | 116 | func UnstakeAll () = if (check(i.callerPublicKey)) | |
110 | - | then ({ | |
111 | - | let $l = farms | |
112 | - | let $s = size($l) | |
113 | - | let $acc0 = nil | |
114 | - | func $f0_1 ($a,$i) = if (($i >= $s)) | |
115 | - | then $a | |
116 | - | else iterUnstake($a, $l[$i]) | |
117 | + | then { | |
118 | + | let balance = getBalance(eggAssetId) | |
119 | + | ({ | |
120 | + | let $l = farms | |
121 | + | let $s = size($l) | |
122 | + | let $acc0 = nil | |
123 | + | func $f0_1 ($a,$i) = if (($i >= $s)) | |
124 | + | then $a | |
125 | + | else iterUnstake($a, $l[$i]) | |
117 | 126 | ||
118 | - | func $f0_2 ($a,$i) = if (($i >= $s)) | |
119 | - | then $a | |
120 | - | else throw("List size exceeds 16") | |
127 | + | func $f0_2 ($a,$i) = if (($i >= $s)) | |
128 | + | then $a | |
129 | + | else throw("List size exceeds 16") | |
121 | 130 | ||
122 | - | $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) | |
123 | - | } ++ [BooleanEntry("cf_staked", false)]) | |
131 | + | $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) | |
132 | + | } ++ [BooleanEntry("cf_staked", false), ScriptTransfer(ref, balance, eggAssetId)]) | |
133 | + | } | |
124 | 134 | else throw("Private Farm. Access prohibited!") | |
125 | 135 | ||
126 | 136 | ||
127 | 137 | ||
128 | 138 | @Callable(i) | |
129 | 139 | func InterPools (asi,m1,aso,asb,a1,a2) = if (check(i.callerPublicKey)) | |
130 | 140 | then { | |
131 | 141 | let t0 = getAssetBytes(asi) | |
132 | 142 | let t1 = getAssetBytes(asb) | |
133 | 143 | let balanceBefore = getBalance(t1) | |
134 | 144 | if ((balanceBefore == balanceBefore)) | |
135 | 145 | then { | |
136 | 146 | let b = invoke(Address(fromBase58String(a1)), "swap", [asb, 0], [AttachedPayment(t0, m1)]) | |
137 | 147 | if ((b == b)) | |
138 | 148 | then { | |
139 | 149 | let amount = (getBalance(t1) - balanceBefore) | |
140 | 150 | if ((amount == amount)) | |
141 | 151 | then { | |
142 | 152 | let c = invoke(Address(fromBase58String(a2)), "swap", [aso, m1], [AttachedPayment(t1, amount)]) | |
143 | 153 | if ((c == c)) | |
144 | 154 | then $Tuple2([BooleanEntry("pass", true)], 0) | |
145 | 155 | else throw("Strict value is not equal to itself.") | |
146 | 156 | } | |
147 | 157 | else throw("Strict value is not equal to itself.") | |
148 | 158 | } | |
149 | 159 | else throw("Strict value is not equal to itself.") | |
150 | 160 | } | |
151 | 161 | else throw("Strict value is not equal to itself.") | |
152 | 162 | } | |
153 | 163 | else throw("Private Farm. Access prohibited!") | |
154 | 164 | ||
155 | 165 | ||
156 | 166 | ||
157 | 167 | @Callable(i) | |
158 | 168 | func PoolSwap (asi,m1,aso,a1) = if (check(i.callerPublicKey)) | |
159 | 169 | then { | |
160 | 170 | let t0 = getAssetBytes(asi) | |
161 | 171 | let rez = invoke(Address(fromBase58String(a1)), "swap", [aso, 0], [AttachedPayment(t0, m1)]) | |
162 | 172 | if ((rez == rez)) | |
163 | 173 | then $Tuple2([BooleanEntry("pass", true)], 0) | |
164 | 174 | else throw("Strict value is not equal to itself.") | |
165 | 175 | } | |
166 | 176 | else throw("Private Farm. Access prohibited!") | |
167 | 177 | ||
168 | 178 | ||
169 | 179 | @Verifier(tx) | |
170 | 180 | func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
171 | 181 |
github/deemru/w8io/786bc32 56.86 ms ◑