tx · DXU1Wep861RcHzPLEFFrxaLi2q8fmXH4sEZCByogS1cg

3Muw1aRbeKgLqAS264AakECyQAvDsnweHLu:  -0.01300000 Waves

2022.06.08 17:21 [2087507] smart account 3Muw1aRbeKgLqAS264AakECyQAvDsnweHLu > SELF 0.00000000 Waves

{ "type": 13, "id": "DXU1Wep861RcHzPLEFFrxaLi2q8fmXH4sEZCByogS1cg", "fee": 1300000, "feeAssetId": null, "timestamp": 1654698106868, "version": 1, "sender": "3Muw1aRbeKgLqAS264AakECyQAvDsnweHLu", "senderPublicKey": "668WwQVaWxezbvLEK3FccCSTbjst4zYAJDPrfLFRj9b9", "proofs": [ "4m2txKqPH2mcsn1QDKNBpUYrTdY9VVLWN6R4eji7RfG2TTApgvJkzMExAaYAWuqaauiZQkjknNntzQWagRANnLuQ" ], "script": "base64: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ZXlDcmVhdGVkAAAAAQUAAAAHYXNzZXRJZAcGCQEAAAAIdGhyb3dFcnIAAAABAgAAADlhdHRhY2hlZCBwYXltZW50IGFzc2V0IG11c3QgYmUgcmVnaXN0ZXJlZCBpbiB0aGUgY29udHJhY3QJAARMAAAAAgMJAQAAAAIhPQAAAAIFAAAAEnBlbmRpbmdXaXRoZHJhd2FscwAAAAAAAAAAAAYJAQAAAAh0aHJvd0VycgAAAAECAAAAKnplcm8gcGVuZGluZ1dpdGhkcmF3YWxzLCBub3RoaW5nIHRvIHRvcCB1cAkABEwAAAACAwkAAGcAAAACBQAAABJwZW5kaW5nV2l0aGRyYXdhbHMFAAAABmFtb3VudAYCAAAAPmFtb3VudCB0byB0b3AgdXAgbXVzdCBiZSBsZXNzIG9yIGVxdWFsIHRoYW4gcGVuZGluZ1dpdGhkcmF3YWxzBQAAAANuaWwDCQAAAAAAAAIFAAAABmNoZWNrcwUAAAAGY2hlY2tzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAVa2V5UGVuZGluZ1dpdGhkcmF3YWxzAAAAAQUAAAAHYXNzZXRJZAkAAGUAAAACBQAAABJwZW5kaW5nV2l0aGRyYXdhbHMFAAAABmFtb3VudAUAAAADbmlsCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAFpAQAAAAZzZXRUVkwAAAACAAAAB2Fzc2V0SWQAAAAGbmV3VFZMBAAAAAtjaGVja0NhbGxlcgkBAAAAEG11c3RQcm94eUFkZHJlc3MAAAACBQAAAAFpBQAAAAdhc3NldElkAwkAAAAAAAACBQAAAAtjaGVja0NhbGxlcgUAAAALY2hlY2tDYWxsZXIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAZrZXlUVkwAAAABBQAAAAdhc3NldElkBQAAAAZuZXdUVkwJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAA1rZXlUVkxIaXN0b3J5AAAAAgUAAAAHYXNzZXRJZAUAAAAGaGVpZ2h0BQAAAAZuZXdUVkwFAAAAA25pbAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAABaQEAAAAKc2V0TWFuYWdlcgAAAAEAAAAXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkEAAAAC2NoZWNrQ2FsbGVyCQEAAAALbXVzdE1hbmFnZXIAAAABBQAAAAFpAwkAAAAAAAACBQAAAAtjaGVja0NhbGxlcgUAAAALY2hlY2tDYWxsZXIEAAAAFWNoZWNrTWFuYWdlclB1YmxpY0tleQkAAlkAAAABBQAAABdwZW5kaW5nTWFuYWdlclB1YmxpY0tleQMJAAAAAAAAAgUAAAAVY2hlY2tNYW5hZ2VyUHVibGljS2V5BQAAABVjaGVja01hbmFnZXJQdWJsaWNLZXkJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5AAAAAAUAAAAXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkFAAAAA25pbAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAWkBAAAADmNvbmZpcm1NYW5hZ2VyAAAAAAQAAAACcG0JAQAAAB1wZW5kaW5nTWFuYWdlclB1YmxpY0tleU9yVW5pdAAAAAAEAAAABWhhc1BNAwkBAAAACWlzRGVmaW5lZAAAAAEFAAAAAnBtBgkBAAAACHRocm93RXJyAAAAAQIAAAASbm8gcGVuZGluZyBtYW5hZ2VyAwkAAAAAAAACBQAAAAVoYXNQTQUAAAAFaGFzUE0EAAAAB2NoZWNrUE0DCQAAAAAAAAIIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQkBAAAABXZhbHVlAAAAAQUAAAACcG0GCQEAAAAIdGhyb3dFcnIAAAABAgAAABt5b3UgYXJlIG5vdCBwZW5kaW5nIG1hbmFnZXIDCQAAAAAAAAIFAAAAB2NoZWNrUE0FAAAAB2NoZWNrUE0JAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAE2tleU1hbmFnZXJQdWJsaWNLZXkAAAAACQACWAAAAAEJAQAAAAV2YWx1ZQAAAAEFAAAAAnBtCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAABprZXlQZW5kaW5nTWFuYWdlclB1YmxpY0tleQAAAAAFAAAAA25pbAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAQAAAAPdGFyZ2V0UHVibGljS2V5BAAAAAckbWF0Y2gwCQEAAAAWbWFuYWdlclB1YmxpY0tleU9yVW5pdAAAAAADCQAAAQAAAAIFAAAAByRtYXRjaDACAAAACkJ5dGVWZWN0b3IEAAAAAnBrBQAAAAckbWF0Y2gwBQAAAAJwawMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAEVW5pdAgFAAAAAnR4AAAAD3NlbmRlclB1YmxpY0tleQkAAAIAAAABAgAAAAtNYXRjaCBlcnJvcgkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAFAAAAD3RhcmdldFB1YmxpY0tlebVEQMU=", "chainId": 84, "height": 2087507, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: CReS8PrayB5DJtBTePWPVWXVgwZxtVK8CZ6fL64YbBt1 Next: 9LA7qr8ZwkVPtVgErL9XCej1ZuCqeWCi6btZbdQZHBVY Diff:
OldNewDifferences
6060 }
6161
6262
63+func throwErr (msg) = throw((contract + msg))
64+
65+
6366 func mustManager (i) = {
64- let pd = throw("Permission denied")
67+ let pd = throwErr("permission denied")
6568 match managerPublicKeyOrUnit() {
6669 case pk: ByteVector =>
6770 if ((i.callerPublicKey == pk))
7578 throw("Match error")
7679 }
7780 }
78-
79-
80-func throwErr (msg) = throw((contract + msg))
8181
8282
8383 func assetsStoreContract () = addressFromStringValue(value(getString(keyAssetsStoreContract())))
103103 then [StringEntry(keyAssetsStoreContract(), assetsStoreContract)]
104104 else throw("Strict value is not equal to itself.")
105105 }
106+
107+
108+
109+@Callable(i)
110+func put () = nil
106111
107112
108113
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let SEP = "__"
55
66 let EMPTY = ""
77
88 let contract = "lp_staking_v2: "
99
1010 func keyManagerPublicKey () = makeString(["%s", "managerPublicKey"], SEP)
1111
1212
1313 func keyPendingManagerPublicKey () = makeString(["%s", "pendingManagerPublicKey"], SEP)
1414
1515
1616 func keyTVL (assetId) = makeString(["%s%s", "tvl", assetId], SEP)
1717
1818
1919 func keyTVLHistory (assetId,height) = makeString(["%s%s%d", "tvlHistory", assetId, toString(height)], SEP)
2020
2121
2222 func keyPendingWithdrawals (assetId) = makeString(["%s%s", "pendingWithdrawals", assetId], SEP)
2323
2424
2525 func keyDelayInBlocks (assetId) = makeString(["%s%s", "delayInBlocks", assetId], SEP)
2626
2727
2828 func keyCreated (assetId) = makeString(["%s%s", "created", assetId], SEP)
2929
3030
3131 func keyAssetIdToLPId (assetId) = makeString(["%s%s", "assetIdToLPId", assetId], SEP)
3232
3333
3434 func keyLPIdToAssetId (lpId) = makeString(["%s%s", "lpIdToAssetId", lpId], SEP)
3535
3636
3737 func keyProxyAddress (assetId) = makeString(["%s%s", "proxyAddress", assetId], SEP)
3838
3939
4040 func keyAssetsStoreContract () = makeString(["%s", "assetsStoreContract"], SEP)
4141
4242
4343 func managerPublicKeyOrUnit () = match getString(keyManagerPublicKey()) {
4444 case s: String =>
4545 fromBase58String(s)
4646 case _: Unit =>
4747 unit
4848 case _ =>
4949 throw("Match error")
5050 }
5151
5252
5353 func pendingManagerPublicKeyOrUnit () = match getString(keyPendingManagerPublicKey()) {
5454 case s: String =>
5555 fromBase58String(s)
5656 case _: Unit =>
5757 unit
5858 case _ =>
5959 throw("Match error")
6060 }
6161
6262
63+func throwErr (msg) = throw((contract + msg))
64+
65+
6366 func mustManager (i) = {
64- let pd = throw("Permission denied")
67+ let pd = throwErr("permission denied")
6568 match managerPublicKeyOrUnit() {
6669 case pk: ByteVector =>
6770 if ((i.callerPublicKey == pk))
6871 then true
6972 else pd
7073 case _: Unit =>
7174 if ((i.caller == this))
7275 then true
7376 else pd
7477 case _ =>
7578 throw("Match error")
7679 }
7780 }
78-
79-
80-func throwErr (msg) = throw((contract + msg))
8181
8282
8383 func assetsStoreContract () = addressFromStringValue(value(getString(keyAssetsStoreContract())))
8484
8585
8686 func mustProxyAddress (i,assetId) = {
8787 let isProxy = (toString(i.caller) == valueOrElse(getString(keyProxyAddress(assetId)), EMPTY))
8888 if (isProxy)
8989 then true
9090 else {
9191 let checkCaller = mustManager(i)
9292 if ((checkCaller == checkCaller))
9393 then true
9494 else throw("Strict value is not equal to itself.")
9595 }
9696 }
9797
9898
9999 @Callable(i)
100100 func constructor (assetsStoreContract) = {
101101 let checkCaller = mustManager(i)
102102 if ((checkCaller == checkCaller))
103103 then [StringEntry(keyAssetsStoreContract(), assetsStoreContract)]
104104 else throw("Strict value is not equal to itself.")
105105 }
106+
107+
108+
109+@Callable(i)
110+func put () = nil
106111
107112
108113
109114 @Callable(i)
110115 func submitGetRequest () = nil
111116
112117
113118
114119 @Callable(i)
115120 func executeGetRequest (assetId,userAddress,submitTxId) = nil
116121
117122
118123
119124 @Callable(i)
120125 func registerAsset (assetId,lpName,lpDescription,lpLogo,delayInBlocks,proxyAddress) = {
121126 let checks = [mustManager(i), if ((delayInBlocks >= 0))
122127 then true
123128 else throwErr("invalid delayInBlocks"), if ((addressFromString(proxyAddress) != unit))
124129 then true
125130 else throwErr("invalid proxyAddress"), if ((valueOrElse(getBoolean(keyCreated(assetId)), false) == false))
126131 then true
127132 else throwErr("asset already registered")]
128133 if ((checks == checks))
129134 then {
130135 let decimals = value(assetInfo(fromBase58String(assetId))).decimals
131136 let lpIssue = Issue(lpName, lpDescription, 1, decimals, true)
132137 let lp = calculateAssetId(lpIssue)
133138 let lpId = toBase58String(lp)
134139 let createOrUpdate = invoke(assetsStoreContract(), "createOrUpdate", [lpId, lpLogo, false], nil)
135140 if ((createOrUpdate == createOrUpdate))
136141 then {
137142 let addLabel = invoke(assetsStoreContract(), "addLabel", [lpId, "DEFI"], nil)
138143 if ((addLabel == addLabel))
139144 then [BooleanEntry(keyCreated(assetId), true), IntegerEntry(keyTVL(assetId), 0), IntegerEntry(keyTVLHistory(assetId, height), 0), IntegerEntry(keyDelayInBlocks(assetId), delayInBlocks), StringEntry(keyLPIdToAssetId(lpId), assetId), StringEntry(keyAssetIdToLPId(assetId), lpId), StringEntry(keyProxyAddress(assetId), proxyAddress), lpIssue, Burn(lp, 1)]
140145 else throw("Strict value is not equal to itself.")
141146 }
142147 else throw("Strict value is not equal to itself.")
143148 }
144149 else throw("Strict value is not equal to itself.")
145150 }
146151
147152
148153
149154 @Callable(i)
150155 func topUpBalance () = {
151156 let pmt = valueOrErrorMessage(i.payments[0], (contract + "payment must be attached"))
152157 let assetId = toBase58String(value(pmt.assetId))
153158 let amount = pmt.amount
154159 let pendingWithdrawals = valueOrElse(getInteger(keyPendingWithdrawals(assetId)), 0)
155160 let checks = [mustProxyAddress(i, assetId), if ((size(i.payments) == 1))
156161 then true
157162 else throwErr("only one payment must be attached"), if (valueOrElse(getBoolean(keyCreated(assetId)), false))
158163 then true
159164 else throwErr("attached payment asset must be registered in the contract"), if ((pendingWithdrawals != 0))
160165 then true
161166 else throwErr("zero pendingWithdrawals, nothing to top up"), if ((pendingWithdrawals >= amount))
162167 then true
163168 else "amount to top up must be less or equal than pendingWithdrawals"]
164169 if ((checks == checks))
165170 then [IntegerEntry(keyPendingWithdrawals(assetId), (pendingWithdrawals - amount))]
166171 else throw("Strict value is not equal to itself.")
167172 }
168173
169174
170175
171176 @Callable(i)
172177 func setTVL (assetId,newTVL) = {
173178 let checkCaller = mustProxyAddress(i, assetId)
174179 if ((checkCaller == checkCaller))
175180 then [IntegerEntry(keyTVL(assetId), newTVL), IntegerEntry(keyTVLHistory(assetId, height), newTVL)]
176181 else throw("Strict value is not equal to itself.")
177182 }
178183
179184
180185
181186 @Callable(i)
182187 func setManager (pendingManagerPublicKey) = {
183188 let checkCaller = mustManager(i)
184189 if ((checkCaller == checkCaller))
185190 then {
186191 let checkManagerPublicKey = fromBase58String(pendingManagerPublicKey)
187192 if ((checkManagerPublicKey == checkManagerPublicKey))
188193 then [StringEntry(keyPendingManagerPublicKey(), pendingManagerPublicKey)]
189194 else throw("Strict value is not equal to itself.")
190195 }
191196 else throw("Strict value is not equal to itself.")
192197 }
193198
194199
195200
196201 @Callable(i)
197202 func confirmManager () = {
198203 let pm = pendingManagerPublicKeyOrUnit()
199204 let hasPM = if (isDefined(pm))
200205 then true
201206 else throwErr("no pending manager")
202207 if ((hasPM == hasPM))
203208 then {
204209 let checkPM = if ((i.callerPublicKey == value(pm)))
205210 then true
206211 else throwErr("you are not pending manager")
207212 if ((checkPM == checkPM))
208213 then [StringEntry(keyManagerPublicKey(), toBase58String(value(pm))), DeleteEntry(keyPendingManagerPublicKey())]
209214 else throw("Strict value is not equal to itself.")
210215 }
211216 else throw("Strict value is not equal to itself.")
212217 }
213218
214219
215220 @Verifier(tx)
216221 func verify () = {
217222 let targetPublicKey = match managerPublicKeyOrUnit() {
218223 case pk: ByteVector =>
219224 pk
220225 case _: Unit =>
221226 tx.senderPublicKey
222227 case _ =>
223228 throw("Match error")
224229 }
225230 sigVerify(tx.bodyBytes, tx.proofs[0], targetPublicKey)
226231 }
227232

github/deemru/w8io/c3f4982 
39.67 ms