tx · BV6av8ire5HjiLhwxF9zY2XRA4Dk812H8yahFnrCaXh

3PCkHc6gumSN4CMKsjBdQVR1AmxZXYNjHrf:  -0.01000000 Waves

2021.12.25 16:12 [2914861] smart account 3PCkHc6gumSN4CMKsjBdQVR1AmxZXYNjHrf > SELF 0.00000000 Waves

{ "type": 13, "id": "BV6av8ire5HjiLhwxF9zY2XRA4Dk812H8yahFnrCaXh", "fee": 1000000, "feeAssetId": null, "timestamp": 1640437956648, "version": 2, "chainId": 87, "sender": "3PCkHc6gumSN4CMKsjBdQVR1AmxZXYNjHrf", "senderPublicKey": "ACKrafHkMbzFmKWpEisYJpYBsanVaHCiventLdguW5dS", "proofs": [ "3ztiCLBcx5UARLV5NbYwLzGv5gXxRSTj8ux3Fs4oF6LAJtpvHLYN3KVNFavAZDZypu5PiHZ5yeJMaCQaVxN1HB24" ], "script": "base64:AAIFAAAAAAAAByUIAhIAEgASABIAEgASABIAEgASABIAEgASABIAGhQKAUESD2F2YWlsYWJsZUFtb3VudBoLCgFCEgZhbW91bnQaCgoBQxIFc2hhcmUaGQoBRBIUd2FsbGV0UHJldmlvdXNBbW91bnQaFAoBRRIPd2FsbGV0TmV3QW1vdW50GhgKAUYSE3dhbGxldFByZXZpb3VzU2hhcmUaEwoBRxIOd2FsbGV0TmV3U2hhcmUaGwoBSBIWcHJldmlvdXNOc2J0TG9ja0Ftb3VudBoWCgFJEhFuZXdOc2J0TG9ja0Ftb3VudBoXCgFKEhJwcmV2aW91c1RvdGFsU2hhcmUaEgoBSxINbmV3VG90YWxTaGFyZRoRCgFMEgxsbnNidEFzc2V0SWQaEQoBTRIMbnNidExvY2tDYWxsGhgKAU4SE2FjY291bnRXYXZlc0JhbGFuY2UaEwoBTxIOd2F2ZXNTdGFrZUNhbGwaFQoBUBIQdG90YWxXYXZlc1N0YWtlZBoQCgFREgt1c2RuQmFsYW5jZRoSCgFSEg11c2RuU3Rha2VDYWxsGhQKAVMSD3RvdGFsU3Rha2VkVXNkbhoXCgFUEhJhY2NvdW50RXVybkJhbGFuY2UaEgoBVRINZXVyblN0YWtlQ2FsbBoUCgFWEg90b3RhbFN0YWtlZEV1cm4aDAoBVxIHaXNFbmRlZBoPCgFYEgpzdGFrZWROc2J0GhQKAVkSD25zYnRVbnN0YWtlQ2FsbBoMCgFaEgdhZGRyZXNzGg8KAWESCnN0YXJ0QmxvY2saFwoCYUESEWNhbGxlclZpcmVzQW1vdW50GhcKAmFCEhF0b3RhbENsYWltZWRXYXZlcxoWCgJhQxIQdG90YWxDbGFpbWVkVXNkbhoWCgJhRBIQdG90YWxDbGFpbWVkRXVybhoXCgJhRRIRdG90YWxDbGFpbWVkVmlyZXMaCAoCYUYSAnR4GgwKAmFHEgZ2ZXJpZnkaIgoCYWESHHdhbGxldFByZXZpb3VzUmVkZWVtZWRBbW91bnQaHQoCYWISF3dhbGxldE5ld1JlZGVlbWVkQW1vdW50GhwKAmFjEhZwcmV2aW91c1JlZGVlbWVkQW1vdW50GhcKAmFkEhFuZXdSZWRlZW1lZEFtb3VudBoVCgJhZRIPaXNXYXZlc1Vuc3Rha2VkGhYKAmFmEhB3YXZlc1Vuc3Rha2VDYWxsGhQKAmFnEg5pc1VzZG5VbnN0YWtlZBoVCgJhaBIPdXNkblVuc3Rha2VDYWxsGhQKAmFpEg5pc0V1cm5VbnN0YWtlZBoVCgJhahIPZXVyblVuc3Rha2VDYWxsGhQKAmFrEg5pc1ZpcmVzQ2xhaW1lZBoUCgJhbBIOdmlyZXNDbGFpbUNhbGwaEwoCYW0SDWlzQ2xhaW1BY3RpdmUaGgoCYW4SFGNvbnRyYWN0V2F2ZXNCYWxhbmNlGhEKAmFvEgtldXJuQmFsYW5jZRoSCgJhcBIMdmlyZXNCYWxhbmNlGhEKAmFxEgtjYWxsZXJTaGFyZRoTCgJhchINY2FsbGVyQ2xhaW1lZBoQCgJhcxIKdG90YWxTaGFyZRobCgJhdBIVY2xhaW1hYmxlV2F2ZXNCYWxhbmNlGhoKAmF1EhRjbGFpbWFibGVVc2RuQmFsYW5jZRoaCgJhdhIUY2xhaW1hYmxlRXVybkJhbGFuY2UaGwoCYXcSFWNsYWltYWJsZVZpcmVzQmFsYW5jZRoXCgJheBIRY2FsbGVyV2F2ZXNBbW91bnQaFgoCYXkSEGNhbGxlclVzZG5BbW91bnQaFgoCYXoSEGNhbGxlckV1cm5BbW91bnQaEAoBYhILdGFyZ2V0QmxvY2saEgoBYxINbWF4aW11bUFtb3VudBoQCgFkEgtuc2J0QXNzZXRJZBoQCgFlEgt1c2RuQXNzZXRJZBoQCgFmEgtldXJuQXNzZXRJZBoQCgFnEgtydWJuQXNzZXRJZBoQCgFoEgtjbnluQXNzZXRJZBoQCgFpEgtqcHluQXNzZXRJZBoQCgFqEgt1YWhuQXNzZXRJZBoQCgFrEgticmxuQXNzZXRJZBoQCgFsEgtnYnBuQXNzZXRJZBoQCgFtEgt0cnluQXNzZXRJZBoUCgFuEg9uZXV0cmlub0FkZHJlc3MaEQoBbxIMdmlyZXNBc3NldElkGhEKAXASDHZpcmVzQWRkcmVzcxoWCgFxEhF2aXJlc1dhdmVzRGVwb3NpdBoVCgFyEhB2aXJlc1VzZG5EZXBvc2l0GhUKAXMSEHZpcmVzRXVybkRlcG9zaXQaBgoBdBIBaRoSCgF1Eg1pc0luaXRpYWxpemVkGg8KAXYSCmFzc2V0SXNzdWUaDAoBdxIHYXNzZXRJZBoSCgF4Eg1hc3Nl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", "height": 2914861, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: 57ad17Ua1vmHgNEMT5sAZecN66jH9DpCeWNgxTWXDtH7 Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 5 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let startBlock = 2914870
5+
6+let targetBlock = 2920630
7+
8+let maximumAmount = 50000000
9+
10+let nsbtAssetId = base58'6nSpVyNH7yM69eg446wrQR94ipbbcmZMU1ENPwanC97g'
11+
12+let usdnAssetId = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p'
13+
14+let eurnAssetId = base58'DUk2YTxhRoAqMJLus4G2b3fR8hMHVh6eiyFx5r29VR6t'
15+
16+let rubnAssetId = base58'eWeMD5KNeuRaALCAb4uuJKtAvon2JcTyXQyoBMhuN2X'
17+
18+let cnynAssetId = base58'9LNqjybyCX1oexCub4yY7hdJf6aeP4HeV5LpsjcNHwRR'
19+
20+let jpynAssetId = base58'8inca5fv4xr6KZtRMRPYr7vADfk8fd6G2z1gMoRkbUYS'
21+
22+let uahnAssetId = base58'8zKqZF6asB6yiK8rv9nMUkJ7wAVBJndSmkC7SXJhRrM3'
23+
24+let brlnAssetId = base58'DxFwXxS1r3uZ2QEiSqhe6uoXMJBsz4ShLtHvr4HDzNri'
25+
26+let gbpnAssetId = base58'DhaaqiG8xz8njeBuMtTM2G6avg9Jdhfrxw5onm5GaXx1'
27+
28+let trynAssetId = base58'DGbqkzM6Ds5NAF2B3GHYfyZRmWKt7xLYRYcwpMm7D6V4'
29+
30+let neutrinoAddress = Address(base58'3PNikM6yp4NqcSU8guxQtmR5onr2D4e8yTJ')
31+
32+let viresAssetId = base58'DSbbhLsSTeDg5Lsiufk2Aneh3DjVqJuPr2M9uU1gwy5p'
33+
34+let viresAddress = Address(base58'3PAZv9tgK1PX7dKR7b4kchq5qdpUS3G5sYT')
35+
36+let viresWavesDeposit = "3P8G747fnB1DTQ4d5uD114vjAaeezCW4FaM"
37+
38+let viresUsdnDeposit = "3PCwFXSq8vj8iKitA5zrrLRbuqehfmimpce"
39+
40+let viresEurnDeposit = "3PBjqiMwwag72VWUtHNnVrxTBrNK8D7bVcN"
41+
42+@Callable(i)
43+func init () = {
44+ let isInitialized = valueOrElse(getBoolean(this, "initialized"), false)
45+ if (if (if ((height >= startBlock))
46+ then (targetBlock > height)
47+ else false)
48+ then !(isInitialized)
49+ else false)
50+ then {
51+ let assetIssue = Issue(("LNSBT_" + toString(targetBlock)), ("Liquid NSBT, target block height: " + toString(targetBlock)), 1, 6, true)
52+ let assetId = calculateAssetId(assetIssue)
53+ let assetIdString = toBase58String(assetId)
54+ $Tuple2([assetIssue, Burn(assetId, 1), StringEntry((("LNSBT_" + toString(targetBlock)) + "_asset_id"), assetIdString), IntegerEntry("initialized_block", height), BooleanEntry("initialized", true)], unit)
55+ }
56+ else throw("")
57+ }
58+
59+
60+
61+@Callable(i)
62+func lockNsbt () = {
63+ let isInitialized = valueOrElse(getBoolean(this, "initialized"), false)
64+ let validBlock = if ((height >= startBlock))
65+ then (targetBlock > height)
66+ else false
67+ if (if (if (isInitialized)
68+ then validBlock
69+ else false)
70+ then (size(i.payments) == 1)
71+ else false)
72+ then {
73+ let payment = i.payments[0]
74+ let availableAmount = (maximumAmount - valueOrElse(getInteger(this, "total_nsbt_lock"), 0))
75+ if (if (if ((payment.assetId == nsbtAssetId))
76+ then (availableAmount >= payment.amount)
77+ else false)
78+ then (payment.amount > 0)
79+ else false)
80+ then {
81+ let amount = payment.amount
82+ let share = ((targetBlock - height) * amount)
83+ let walletPreviousAmount = valueOrElse(getInteger(this, (toString(i.caller) + "_nsbt_lock")), 0)
84+ let walletNewAmount = (walletPreviousAmount + amount)
85+ let walletPreviousShare = valueOrElse(getInteger(this, (toString(i.caller) + "_share")), 0)
86+ let walletNewShare = (walletPreviousShare + share)
87+ let previousNsbtLockAmount = valueOrElse(getInteger("total_nsbt_lock"), 0)
88+ let newNsbtLockAmount = (previousNsbtLockAmount + amount)
89+ let previousTotalShare = valueOrElse(getInteger("total_share"), 0)
90+ let newTotalShare = (previousTotalShare + share)
91+ let lnsbtAssetId = fromBase58String(getStringValue(this, (("LNSBT_" + toString(targetBlock)) + "_asset_id")))
92+ let nsbtLockCall = invoke(neutrinoAddress, "lockNsbt", nil, [AttachedPayment(nsbtAssetId, amount)])
93+ if ((nsbtLockCall == nsbtLockCall))
94+ then $Tuple2([Reissue(lnsbtAssetId, amount, true), ScriptTransfer(i.caller, amount, lnsbtAssetId), IntegerEntry((toString(i.caller) + "_nsbt_lock"), walletNewAmount), IntegerEntry((toString(i.caller) + "_share"), walletNewShare), IntegerEntry("total_nsbt_lock", newNsbtLockAmount), IntegerEntry("total_share", newTotalShare)], unit)
95+ else throw("Strict value is not equal to itself.")
96+ }
97+ else throw("")
98+ }
99+ else throw("")
100+ }
101+
102+
103+
104+@Callable(i)
105+func stakeWaves () = {
106+ let isInitialized = valueOrElse(getBoolean(this, "initialized"), false)
107+ let validBlock = if ((height >= startBlock))
108+ then (targetBlock > height)
109+ else false
110+ let accountWavesBalance = wavesBalance(this).regular
111+ if (if (if (isInitialized)
112+ then validBlock
113+ else false)
114+ then (accountWavesBalance > 0)
115+ else false)
116+ then {
117+ let wavesStakeCall = invoke(viresAddress, "deposit", [viresWavesDeposit, false], [AttachedPayment(unit, accountWavesBalance)])
118+ if ((wavesStakeCall == wavesStakeCall))
119+ then {
120+ let totalWavesStaked = (valueOrElse(getInteger(this, "total_staked_waves"), 0) + accountWavesBalance)
121+ $Tuple2([IntegerEntry("total_staked_waves", totalWavesStaked), ScriptTransfer(i.caller, assetBalance(this, rubnAssetId), rubnAssetId), ScriptTransfer(i.caller, assetBalance(this, cnynAssetId), cnynAssetId), ScriptTransfer(i.caller, assetBalance(this, jpynAssetId), jpynAssetId)], unit)
122+ }
123+ else throw("Strict value is not equal to itself.")
124+ }
125+ else throw("")
126+ }
127+
128+
129+
130+@Callable(i)
131+func stakeUsdn () = {
132+ let isInitialized = valueOrElse(getBoolean(this, "initialized"), false)
133+ let validBlock = if ((height >= startBlock))
134+ then (targetBlock > height)
135+ else false
136+ let usdnBalance = assetBalance(this, usdnAssetId)
137+ if (if (if (isInitialized)
138+ then validBlock
139+ else false)
140+ then (usdnBalance > 0)
141+ else false)
142+ then {
143+ let usdnStakeCall = invoke(viresAddress, "deposit", [viresUsdnDeposit, false], [AttachedPayment(usdnAssetId, usdnBalance)])
144+ if ((usdnStakeCall == usdnStakeCall))
145+ then {
146+ let totalStakedUsdn = (valueOrElse(getInteger(this, "total_staked_usdn"), 0) + usdnBalance)
147+ $Tuple2([IntegerEntry("total_staked_usdn", totalStakedUsdn), ScriptTransfer(i.caller, assetBalance(this, uahnAssetId), uahnAssetId), ScriptTransfer(i.caller, assetBalance(this, brlnAssetId), brlnAssetId)], unit)
148+ }
149+ else throw("Strict value is not equal to itself.")
150+ }
151+ else throw("")
152+ }
153+
154+
155+
156+@Callable(i)
157+func stakeEurn () = {
158+ let isInitialized = valueOrElse(getBoolean(this, "initialized"), false)
159+ let validBlock = if ((height >= startBlock))
160+ then (targetBlock > height)
161+ else false
162+ let accountEurnBalance = assetBalance(this, eurnAssetId)
163+ if (if (if (isInitialized)
164+ then validBlock
165+ else false)
166+ then (accountEurnBalance > 0)
167+ else false)
168+ then {
169+ let eurnStakeCall = invoke(viresAddress, "deposit", [viresEurnDeposit, false], [AttachedPayment(eurnAssetId, accountEurnBalance)])
170+ if ((eurnStakeCall == eurnStakeCall))
171+ then {
172+ let totalStakedEurn = (valueOrElse(getInteger(this, "total_staked_eurn"), 0) + accountEurnBalance)
173+ $Tuple2([IntegerEntry("total_staked_eurn", totalStakedEurn), ScriptTransfer(i.caller, assetBalance(this, gbpnAssetId), gbpnAssetId), ScriptTransfer(i.caller, assetBalance(this, trynAssetId), trynAssetId)], unit)
174+ }
175+ else throw("Strict value is not equal to itself.")
176+ }
177+ else throw("")
178+ }
179+
180+
181+
182+@Callable(i)
183+func end () = {
184+ let isInitialized = valueOrElse(getBoolean(this, "initialized"), false)
185+ let isEnded = valueOrElse(getBoolean(this, "ended"), false)
186+ let validBlock = (height >= targetBlock)
187+ if (if (if (isInitialized)
188+ then validBlock
189+ else false)
190+ then !(isEnded)
191+ else false)
192+ then {
193+ let stakedNsbt = valueOrElse(getInteger(this, "total_nsbt_lock"), 0)
194+ let nsbtUnstakeCall = invoke(neutrinoAddress, "unlockNsbt", [stakedNsbt, toBase58String(nsbtAssetId)], nil)
195+ if ((nsbtUnstakeCall == nsbtUnstakeCall))
196+ then $Tuple2([BooleanEntry("ended", true), IntegerEntry("end_block", height), BooleanEntry("nsbt_unstaked", true)], unit)
197+ else throw("Strict value is not equal to itself.")
198+ }
199+ else throw("")
200+ }
201+
202+
203+
204+@Callable(i)
205+func redeemNsbt () = {
206+ let isEnded = valueOrElse(getBoolean(this, "ended"), false)
207+ let lnsbtAssetId = fromBase58String(getStringValue(this, (("LNSBT_" + toString(targetBlock)) + "_asset_id")))
208+ if (if (if (if (isEnded)
209+ then (size(i.payments) == 1)
210+ else false)
211+ then (i.payments[0].amount > 0)
212+ else false)
213+ then (i.payments[0].assetId == lnsbtAssetId)
214+ else false)
215+ then {
216+ let payment = i.payments[0]
217+ let address = toString(i.caller)
218+ let walletPreviousRedeemedAmount = valueOrElse(getInteger(this, (address + "_redeemed_nsbt_amount")), 0)
219+ let walletNewRedeemedAmount = (walletPreviousRedeemedAmount + payment.amount)
220+ let previousRedeemedAmount = valueOrElse(getInteger(this, "total_redeemed_nsbt_amount"), 0)
221+ let newRedeemedAmount = (previousRedeemedAmount + payment.amount)
222+ $Tuple2([Burn(lnsbtAssetId, payment.amount), ScriptTransfer(i.caller, payment.amount, nsbtAssetId), IntegerEntry("total_redeemed_nsbt_amount", newRedeemedAmount), IntegerEntry((address + "_redeemed_nsbt_amount"), walletNewRedeemedAmount)], unit)
223+ }
224+ else throw("")
225+ }
226+
227+
228+
229+@Callable(i)
230+func unstakeWaves () = {
231+ let isEnded = valueOrElse(getBoolean(this, "ended"), false)
232+ let isWavesUnstaked = valueOrElse(getBoolean(this, "waves_unstaked"), false)
233+ if (if (isEnded)
234+ then !(isWavesUnstaked)
235+ else false)
236+ then {
237+ let wavesUnstakeCall = invoke(viresAddress, "withdraw", ["WAVES", -1], nil)
238+ if ((wavesUnstakeCall == wavesUnstakeCall))
239+ then $Tuple2([BooleanEntry("waves_unstaked", true)], unit)
240+ else throw("Strict value is not equal to itself.")
241+ }
242+ else throw("")
243+ }
244+
245+
246+
247+@Callable(i)
248+func unstakeUsdn () = {
249+ let isEnded = valueOrElse(getBoolean(this, "ended"), false)
250+ let isUsdnUnstaked = valueOrElse(getBoolean(this, "usdn_unstaked"), false)
251+ if (if (isEnded)
252+ then !(isUsdnUnstaked)
253+ else false)
254+ then {
255+ let usdnUnstakeCall = invoke(viresAddress, "withdraw", [toBase58String(usdnAssetId), -1], nil)
256+ if ((usdnUnstakeCall == usdnUnstakeCall))
257+ then $Tuple2([BooleanEntry("usdn_unstaked", true)], unit)
258+ else throw("Strict value is not equal to itself.")
259+ }
260+ else throw("")
261+ }
262+
263+
264+
265+@Callable(i)
266+func unstakeEurn () = {
267+ let isEnded = valueOrElse(getBoolean(this, "ended"), false)
268+ let isEurnUnstaked = valueOrElse(getBoolean(this, "eurn_unstaked"), false)
269+ if (if (isEnded)
270+ then !(isEurnUnstaked)
271+ else false)
272+ then {
273+ let eurnUnstakeCall = invoke(viresAddress, "withdraw", [toBase58String(eurnAssetId), -1], nil)
274+ if ((eurnUnstakeCall == eurnUnstakeCall))
275+ then $Tuple2([BooleanEntry("eurn_unstaked", true)], unit)
276+ else throw("Strict value is not equal to itself.")
277+ }
278+ else throw("")
279+ }
280+
281+
282+
283+@Callable(i)
284+func claimVires () = {
285+ let isEnded = valueOrElse(getBoolean(this, "ended"), false)
286+ let isWavesUnstaked = valueOrElse(getBoolean(this, "waves_unstaked"), false)
287+ let isUsdnUnstaked = valueOrElse(getBoolean(this, "usdn_unstaked"), false)
288+ let isEurnUnstaked = valueOrElse(getBoolean(this, "eurn_unstaked"), false)
289+ let isViresClaimed = valueOrElse(getBoolean(this, "vires_claimed"), false)
290+ if (if (if (if (if (isEnded)
291+ then isWavesUnstaked
292+ else false)
293+ then isUsdnUnstaked
294+ else false)
295+ then isEurnUnstaked
296+ else false)
297+ then !(isViresClaimed)
298+ else false)
299+ then {
300+ let viresClaimCall = invoke(viresAddress, "claimAllRewardsAndAllEbAvailable", [false], nil)
301+ if ((viresClaimCall == viresClaimCall))
302+ then $Tuple2([BooleanEntry("vires_claimed", true)], unit)
303+ else throw("Strict value is not equal to itself.")
304+ }
305+ else throw("")
306+ }
307+
308+
309+
310+@Callable(i)
311+func activateClaim () = {
312+ let isEnded = valueOrElse(getBoolean(this, "ended"), false)
313+ let isWavesUnstaked = valueOrElse(getBoolean(this, "waves_unstaked"), false)
314+ let isUsdnUnstaked = valueOrElse(getBoolean(this, "usdn_unstaked"), false)
315+ let isEurnUnstaked = valueOrElse(getBoolean(this, "eurn_unstaked"), false)
316+ let isViresClaimed = valueOrElse(getBoolean(this, "vires_claimed"), false)
317+ let isClaimActive = valueOrElse(getBoolean(this, "claim_active"), false)
318+ if (if (if (if (if (if (isEnded)
319+ then isWavesUnstaked
320+ else false)
321+ then isUsdnUnstaked
322+ else false)
323+ then isEurnUnstaked
324+ else false)
325+ then isViresClaimed
326+ else false)
327+ then !(isClaimActive)
328+ else false)
329+ then {
330+ let contractWavesBalance = wavesBalance(this).regular
331+ let usdnBalance = assetBalance(this, usdnAssetId)
332+ let eurnBalance = assetBalance(this, eurnAssetId)
333+ let viresBalance = assetBalance(this, viresAssetId)
334+ $Tuple2([BooleanEntry("claim_active", true), IntegerEntry("claimable_waves_balance", contractWavesBalance), IntegerEntry("claimable_usdn_balance", usdnBalance), IntegerEntry("claimable_eurn_balance", eurnBalance), IntegerEntry("claimable_vires_balance", viresBalance), ScriptTransfer(i.caller, assetBalance(this, rubnAssetId), rubnAssetId), ScriptTransfer(i.caller, assetBalance(this, cnynAssetId), cnynAssetId), ScriptTransfer(i.caller, assetBalance(this, jpynAssetId), jpynAssetId), ScriptTransfer(i.caller, assetBalance(this, uahnAssetId), uahnAssetId), ScriptTransfer(i.caller, assetBalance(this, brlnAssetId), brlnAssetId), ScriptTransfer(i.caller, assetBalance(this, gbpnAssetId), gbpnAssetId), ScriptTransfer(i.caller, assetBalance(this, trynAssetId), trynAssetId)], unit)
335+ }
336+ else throw("")
337+ }
338+
339+
340+
341+@Callable(i)
342+func claim () = {
343+ let isClaimActive = valueOrElse(getBoolean(this, "claim_active"), false)
344+ if (isClaimActive)
345+ then {
346+ let callerShare = valueOrElse(getInteger(this, (toString(i.caller) + "_share")), 0)
347+ let callerClaimed = valueOrElse(getBoolean(this, (toString(i.caller) + "_claimed")), false)
348+ if (if ((callerShare > 0))
349+ then !(callerClaimed)
350+ else false)
351+ then {
352+ let totalShare = getIntegerValue(this, "total_share")
353+ let claimableWavesBalance = getIntegerValue(this, "claimable_waves_balance")
354+ let claimableUsdnBalance = getIntegerValue(this, "claimable_usdn_balance")
355+ let claimableEurnBalance = getIntegerValue(this, "claimable_eurn_balance")
356+ let claimableViresBalance = getIntegerValue(this, "claimable_vires_balance")
357+ let callerWavesAmount = fraction(callerShare, claimableWavesBalance, totalShare, CEILING)
358+ let callerUsdnAmount = fraction(callerShare, claimableUsdnBalance, totalShare, CEILING)
359+ let callerEurnAmount = fraction(callerShare, claimableEurnBalance, totalShare, CEILING)
360+ let callerViresAmount = fraction(callerShare, claimableViresBalance, totalShare, CEILING)
361+ let totalClaimedWaves = (valueOrElse(getInteger(this, "total_claimed_waves"), 0) + callerWavesAmount)
362+ let totalClaimedUsdn = (valueOrElse(getInteger(this, "total_claimed_usdn"), 0) + callerUsdnAmount)
363+ let totalClaimedEurn = (valueOrElse(getInteger(this, "total_claimed_eurn"), 0) + callerEurnAmount)
364+ let totalClaimedVires = (valueOrElse(getInteger(this, "total_claimed_vires"), 0) + callerViresAmount)
365+ $Tuple2([ScriptTransfer(i.caller, callerWavesAmount, unit), IntegerEntry((toString(i.caller) + "_claimed_waves"), callerWavesAmount), ScriptTransfer(i.caller, callerUsdnAmount, usdnAssetId), IntegerEntry((toString(i.caller) + "_claimed_usdn"), callerUsdnAmount), ScriptTransfer(i.caller, callerEurnAmount, eurnAssetId), IntegerEntry((toString(i.caller) + "_claimed_eurn"), callerEurnAmount), ScriptTransfer(i.caller, callerViresAmount, viresAssetId), IntegerEntry((toString(i.caller) + "_claimed_vires"), callerViresAmount), IntegerEntry("total_claimed_waves", totalClaimedWaves), IntegerEntry("total_claimed_usdn", totalClaimedUsdn), IntegerEntry("total_claimed_eurn", totalClaimedEurn), IntegerEntry("total_claimed_vires", totalClaimedVires), BooleanEntry((toString(i.caller) + "_claimed"), true)], unit)
366+ }
367+ else throw("")
368+ }
369+ else throw("")
370+ }
371+
372+
373+@Verifier(tx)
374+func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
375+

github/deemru/w8io/3ef1775 
32.90 ms