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:
Old | New | Differences | |
---|---|---|---|
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 ◑