tx · 9nc8RcwkRr3F3mF3wjZGnesHockzqJyU4KTUYgpVWuq6

3PCkuJ5G49upHEvQyU88ds9sVisQfzswBwC:  -0.01000000 Waves

2021.12.14 16:54 [2899001] smart account 3PCkuJ5G49upHEvQyU88ds9sVisQfzswBwC > SELF 0.00000000 Waves

{ "type": 13, "id": "9nc8RcwkRr3F3mF3wjZGnesHockzqJyU4KTUYgpVWuq6", "fee": 1000000, "feeAssetId": null, "timestamp": 1639490092642, "version": 2, "chainId": 87, "sender": "3PCkuJ5G49upHEvQyU88ds9sVisQfzswBwC", "senderPublicKey": "A7wpnKQEeJLurq7EgNydStM2phc99grivbJFznxyszyg", "proofs": [ "4th6uf1NBDFWgTs3GpUeZH52L4wfqHvomm1Xi2So2dyS8xCgpcqd2xv4Wkquapyf99tT26kPGbBBHeYu9V9g8UAk" ], "script": "base64:AAIFAAAAAAAABacIAhIAEgASABIAEgASABIAGhQKAUESD3dhbGxldE5ld0Ftb3VudBoYCgFCEhN3YWxsZXRQcmV2aW91c1NoYXJlGhMKAUMSDndhbGxldE5ld1NoYXJlGhsKAUQSFnByZXZpb3VzTnNidExvY2tBbW91bnQaFgoBRRIRbmV3TnNidExvY2tBbW91bnQaFwoBRhIScHJldmlvdXNUb3RhbFNoYXJlGhIKAUcSDW5ld1RvdGFsU2hhcmUaEQoBSBIMbG5zYnRBc3NldElkGhEKAUkSDG5zYnRMb2NrQ2FsbBoQCgFKEgt1c2RuQmFsYW5jZRoQCgFLEgtldXJuQmFsYW5jZRoSCgFMEg11c2RuU3Rha2VDYWxsGhIKAU0SDWV1cm5TdGFrZUNhbGwaFAoBThIPdG90YWxVc2RuU3Rha2VkGhQKAU8SD3RvdGFsRXVyblN0YWtlZBoMCgFQEgdpc0VuZGVkGg8KAVESCnN0YWtlZE5zYnQaDwoBUhIKc3Rha2VkVXNkbhoPCgFTEgpzdGFrZWRFdXJuGhQKAVQSD25zYnRVbnN0YWtlQ2FsbBoUCgFVEg91c2RuVW5zdGFrZUNhbGwaFAoBVhIPZXVyblVuc3Rha2VDYWxsGgwKAVcSB2FkZHJlc3MaIQoBWBIcd2FsbGV0UHJldmlvdXNSZWRlZW1lZEFtb3VudBocCgFZEhd3YWxsZXROZXdSZWRlZW1lZEFtb3VudBobCgFaEhZwcmV2aW91c1JlZGVlbWVkQW1vdW50Gg8KAWESCnN0YXJ0QmxvY2saFwoCYWESEW5ld1JlZGVlbWVkQW1vdW50GhMKAmFiEg1pc0NsYWltQWN0aXZlGg4KAmFjEghlbmRCbG9jaxoaCgJhZBIUY29udHJhY3RXYXZlc0JhbGFuY2UaEQoCYWUSC2NhbGxlclNoYXJlGhMKAmFmEg1jYWxsZXJDbGFpbWVkGhAKAmFnEgp0b3RhbFNoYXJlGhsKAmFoEhVjbGFpbWFibGVXYXZlc0JhbGFuY2UaGgoCYWkSFGNsYWltYWJsZVVzZG5CYWxhbmNlGhoKAmFqEhRjbGFpbWFibGVFdXJuQmFsYW5jZRoXCgJhaxIRY2FsbGVyV2F2ZXNBbW91bnQaFgoCYWwSEGNhbGxlclVzZG5BbW91bnQaFgoCYW0SEGNh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", "height": 2899001, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: DYWeefLPe4SPeGejW88676mGAs1E2m1D5gSy5ZnFmM3C Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 5 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let startBlock = 2899020
5+
6+let targetBlock = 2906220
7+
8+let maximumAmount = 100000000
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 neutrinoAddress2 = Address(base58'3PFhcMmEZoQTQ6ohA844c7C9M8ZJ18P8dDj')
33+
34+@Callable(i)
35+func init () = {
36+ let isInitialized = valueOrElse(getBoolean(this, "initialized"), false)
37+ if (if (if ((height >= startBlock))
38+ then (targetBlock > height)
39+ else false)
40+ then !(isInitialized)
41+ else false)
42+ then {
43+ let assetIssue = Issue(("LNSBT_" + toString(targetBlock)), ("Liquid NSBT, target block height: " + toString(targetBlock)), 1, 6, true)
44+ let assetId = calculateAssetId(assetIssue)
45+ let assetIdString = toBase58String(assetId)
46+ $Tuple2([assetIssue, Burn(assetId, 1), StringEntry((("LNSBT_" + toString(targetBlock)) + "_asset_id"), assetIdString), IntegerEntry("initialized_block", height), BooleanEntry("initialized", true)], unit)
47+ }
48+ else throw("")
49+ }
50+
51+
52+
53+@Callable(i)
54+func lockNsbt () = {
55+ let isInitialized = valueOrElse(getBoolean(this, "initialized"), false)
56+ let validBlock = if ((height >= startBlock))
57+ then (targetBlock > height)
58+ else false
59+ if (if (if (isInitialized)
60+ then validBlock
61+ else false)
62+ then (size(i.payments) == 1)
63+ else false)
64+ then {
65+ let payment = i.payments[0]
66+ let availableAmount = (maximumAmount - valueOrElse(getInteger(this, "total_nsbt_lock"), 0))
67+ if (if (if ((payment.assetId == nsbtAssetId))
68+ then (availableAmount >= payment.amount)
69+ else false)
70+ then (payment.amount > 0)
71+ else false)
72+ then {
73+ let amount = payment.amount
74+ let share = ((targetBlock - height) * amount)
75+ let walletPreviousAmount = valueOrElse(getInteger(this, (toString(i.caller) + "_nsbt_lock")), 0)
76+ let walletNewAmount = (walletPreviousAmount + amount)
77+ let walletPreviousShare = valueOrElse(getInteger(this, (toString(i.caller) + "_share")), 0)
78+ let walletNewShare = (walletPreviousShare + share)
79+ let previousNsbtLockAmount = valueOrElse(getInteger("total_nsbt_lock"), 0)
80+ let newNsbtLockAmount = (previousNsbtLockAmount + amount)
81+ let previousTotalShare = valueOrElse(getInteger("total_share"), 0)
82+ let newTotalShare = (previousTotalShare + share)
83+ let lnsbtAssetId = fromBase58String(getStringValue(this, (("LNSBT_" + toString(targetBlock)) + "_asset_id")))
84+ let nsbtLockCall = invoke(neutrinoAddress, "lockNsbt", nil, [AttachedPayment(nsbtAssetId, amount)])
85+ if ((nsbtLockCall == nsbtLockCall))
86+ 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)
87+ else throw("Strict value is not equal to itself.")
88+ }
89+ else throw("")
90+ }
91+ else throw("")
92+ }
93+
94+
95+
96+@Callable(i)
97+func stakeRewards () = {
98+ let isInitialized = valueOrElse(getBoolean(this, "initialized"), false)
99+ let validBlock = if ((height >= startBlock))
100+ then (targetBlock > height)
101+ else false
102+ let usdnBalance = assetBalance(this, usdnAssetId)
103+ let eurnBalance = assetBalance(this, eurnAssetId)
104+ if (if (if (if (isInitialized)
105+ then validBlock
106+ else false)
107+ then (usdnBalance > 0)
108+ else false)
109+ then (eurnBalance > 0)
110+ else false)
111+ then {
112+ let usdnStakeCall = invoke(neutrinoAddress, "lockNeutrino", nil, [AttachedPayment(usdnAssetId, usdnBalance)])
113+ if ((usdnStakeCall == usdnStakeCall))
114+ then {
115+ let eurnStakeCall = invoke(neutrinoAddress2, "startStaking", nil, [AttachedPayment(eurnAssetId, eurnBalance)])
116+ if ((eurnStakeCall == eurnStakeCall))
117+ then {
118+ let totalUsdnStaked = (valueOrElse(getInteger(this, "total_staked_usdn"), 0) + usdnBalance)
119+ let totalEurnStaked = (valueOrElse(getInteger(this, "total_staked_eurn"), 0) + eurnBalance)
120+ $Tuple2([IntegerEntry("total_staked_usdn", totalUsdnStaked), IntegerEntry("total_staked_eurn", totalEurnStaked), 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)
121+ }
122+ else throw("Strict value is not equal to itself.")
123+ }
124+ else throw("Strict value is not equal to itself.")
125+ }
126+ else throw("")
127+ }
128+
129+
130+
131+@Callable(i)
132+func end () = {
133+ let isInitialized = valueOrElse(getBoolean(this, "initialized"), false)
134+ let isEnded = valueOrElse(getBoolean(this, "ended"), false)
135+ let validBlock = (height >= targetBlock)
136+ if (if (if (isInitialized)
137+ then validBlock
138+ else false)
139+ then !(isEnded)
140+ else false)
141+ then {
142+ let stakedNsbt = valueOrElse(getInteger(this, "total_nsbt_lock"), 0)
143+ let stakedUsdn = valueOrElse(getInteger(this, "total_staked_usdn"), 0)
144+ let stakedEurn = valueOrElse(getInteger(this, "total_staked_eurn"), 0)
145+ let nsbtUnstakeCall = invoke(neutrinoAddress, "unlockNsbt", [stakedNsbt, toBase58String(nsbtAssetId)], nil)
146+ if ((nsbtUnstakeCall == nsbtUnstakeCall))
147+ then {
148+ let usdnUnstakeCall = invoke(neutrinoAddress, "unlockNeutrino", [stakedUsdn, toBase58String(usdnAssetId)], nil)
149+ if ((usdnUnstakeCall == usdnUnstakeCall))
150+ then {
151+ let eurnUnstakeCall = invoke(neutrinoAddress2, "stopStaking", [stakedEurn, toBase58String(eurnAssetId)], nil)
152+ if ((eurnUnstakeCall == eurnUnstakeCall))
153+ then $Tuple2([BooleanEntry("ended", true), IntegerEntry("end_block", height), BooleanEntry("nsbt_unstaked", true), BooleanEntry("usdn_unstaked", true), BooleanEntry("eurn_unstaked", true)], unit)
154+ else throw("Strict value is not equal to itself.")
155+ }
156+ else throw("Strict value is not equal to itself.")
157+ }
158+ else throw("Strict value is not equal to itself.")
159+ }
160+ else throw("")
161+ }
162+
163+
164+
165+@Callable(i)
166+func redeemNsbt () = {
167+ let isEnded = valueOrElse(getBoolean(this, "ended"), false)
168+ let lnsbtAssetId = fromBase58String(getStringValue(this, (("LNSBT_" + toString(targetBlock)) + "_asset_id")))
169+ if (if (if (if (isEnded)
170+ then (size(i.payments) == 1)
171+ else false)
172+ then (i.payments[0].amount > 0)
173+ else false)
174+ then (i.payments[0].assetId == lnsbtAssetId)
175+ else false)
176+ then {
177+ let payment = i.payments[0]
178+ let address = toString(i.caller)
179+ let walletPreviousRedeemedAmount = valueOrElse(getInteger(this, (address + "_redeemed_nsbt_amount")), 0)
180+ let walletNewRedeemedAmount = (walletPreviousRedeemedAmount + payment.amount)
181+ let previousRedeemedAmount = valueOrElse(getInteger(this, "total_redeemed_nsbt_amount"), 0)
182+ let newRedeemedAmount = (previousRedeemedAmount + payment.amount)
183+ $Tuple2([Burn(lnsbtAssetId, payment.amount), ScriptTransfer(i.caller, payment.amount, nsbtAssetId), IntegerEntry("total_redeemed_nsbt_amount", newRedeemedAmount), IntegerEntry((address + "_redeemed_nsbt_amount"), walletNewRedeemedAmount)], unit)
184+ }
185+ else throw("")
186+ }
187+
188+
189+
190+@Callable(i)
191+func activateClaim () = {
192+ let isEnded = valueOrElse(getBoolean(this, "ended"), false)
193+ let isClaimActive = valueOrElse(getBoolean(this, "claim_active"), false)
194+ if (if (isEnded)
195+ then !(isClaimActive)
196+ else false)
197+ then {
198+ let endBlock = getIntegerValue(this, "end_block")
199+ if ((height >= (endBlock + 2880)))
200+ then {
201+ let contractWavesBalance = (wavesBalance(this).regular - 200000000)
202+ let usdnBalance = assetBalance(this, usdnAssetId)
203+ let eurnBalance = assetBalance(this, eurnAssetId)
204+ $Tuple2([BooleanEntry("claim_active", true), IntegerEntry("claimable_waves_balance", contractWavesBalance), IntegerEntry("claimable_usdn_balance", usdnBalance), IntegerEntry("claimable_eurn_balance", eurnBalance)], unit)
205+ }
206+ else throw("")
207+ }
208+ else throw("")
209+ }
210+
211+
212+
213+@Callable(i)
214+func claim () = {
215+ let isClaimActive = valueOrElse(getBoolean(this, "claim_active"), false)
216+ if (isClaimActive)
217+ then {
218+ let callerShare = valueOrElse(getInteger(this, (toString(i.caller) + "_share")), 0)
219+ let callerClaimed = valueOrElse(getBoolean(this, (toString(i.caller) + "_claimed")), false)
220+ if (if ((callerShare > 0))
221+ then !(callerClaimed)
222+ else false)
223+ then {
224+ let totalShare = getIntegerValue(this, "total_share")
225+ let claimableWavesBalance = getIntegerValue(this, "claimable_waves_balance")
226+ let claimableUsdnBalance = getIntegerValue(this, "claimable_usdn_balance")
227+ let claimableEurnBalance = getIntegerValue(this, "claimable_eurn_balance")
228+ let callerWavesAmount = fraction(callerShare, claimableWavesBalance, totalShare, CEILING)
229+ let callerUsdnAmount = fraction(callerShare, claimableUsdnBalance, totalShare, CEILING)
230+ let callerEurnAmount = fraction(callerShare, claimableEurnBalance, totalShare, CEILING)
231+ let totalClaimedWaves = (valueOrElse(getInteger(this, "total_claimed_waves"), 0) + callerWavesAmount)
232+ let totalClaimedUsdn = (valueOrElse(getInteger(this, "total_claimed_usdn"), 0) + callerUsdnAmount)
233+ let totalClaimedEurn = (valueOrElse(getInteger(this, "total_claimed_eurn"), 0) + callerEurnAmount)
234+ $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), IntegerEntry("total_claimed_waves", totalClaimedWaves), IntegerEntry("total_claimed_usdn", totalClaimedUsdn), IntegerEntry("total_claimed_eurn", totalClaimedEurn), BooleanEntry((toString(i.caller) + "_claimed"), true)], unit)
235+ }
236+ else throw("")
237+ }
238+ else throw("")
239+ }
240+
241+
242+@Verifier(tx)
243+func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
244+

github/deemru/w8io/3ef1775 
30.47 ms