tx · 5mRRCsVUaXPVqKpSm48sU9papkYbHZCTNBTwV17kemxR

3NA6gug1TT67nGzrAGa36rG5nzTzUGtFQG9:  -0.01300000 Waves

2025.01.28 19:07 [3479152] smart account 3NA6gug1TT67nGzrAGa36rG5nzTzUGtFQG9 > SELF 0.00000000 Waves

{ "type": 13, "id": "5mRRCsVUaXPVqKpSm48sU9papkYbHZCTNBTwV17kemxR", "fee": 1300000, "feeAssetId": null, "timestamp": 1738080521413, "version": 2, "chainId": 84, "sender": "3NA6gug1TT67nGzrAGa36rG5nzTzUGtFQG9", "senderPublicKey": "3gX6tHzxt5SFVKDcuDS9r5RxJ9erHrBxGwv3dZoi4SAW", "proofs": [ "3Q6xsVWprrq814KQweTogGUh3wfGeC31fJ18KZeGS7NVHmcHSmZojo5mp99mJGFeY7KLnrTWz8F62LnySsrP2dpd" ], "script": "base64:AAIFAAAAAAAAABYIAhIDCgEIEgASAwoBCBIAEgQKAgEIAAAAGAEAAAAHZ2V0Qm9vbAAAAAEAAAADa2V5BAAAAAckbWF0Y2gwCQAEGwAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAHQm9vbGVhbgQAAAABYgUAAAAHJG1hdGNoMAUAAAABYgcBAAAACWlzVGVzdEVudgAAAAAJAQAAAAdnZXRCb29sAAAAAQIAAAAHVEVTVEVOVgEAAAAXc3RhdGljS2V5X29yYWNsZUFkZHJlc3MAAAAAAgAAABRzdGF0aWNfb3JhY2xlQWRkcmVzcwEAAAAWc3RhdGljS2V5X2l0ZW1zQWRkcmVzcwAAAAACAAAAE3N0YXRpY19pdGVtc0FkZHJlc3MBAAAAHnN0YXRpY0tleV9tdXRhbnRGYXJtaW5nQWRkcmVzcwAAAAACAAAAG3N0YXRpY19tdXRhbnRGYXJtaW5nQWRkcmVzcwEAAAASc3RhdGljS2V5X2V4dHJhRmVlAAAAAAIAAAAPc3RhdGljX2V4dHJhRmVlAQAAABdzdGF0aWNLZXlfZmVlQWdncmVnYXRvcgAAAAACAAAAFHN0YXRpY19mZWVBZ2dyZWdhdG9yAQAAAB1zdGF0aWNLZXlfc2NyaXB0TWFzdGVyQWRkcmVzcwAAAAACAAAAGnN0YXRpY19zY3JpcHRNYXN0ZXJBZGRyZXNzAQAAABBrZXlVbnN0YWtlSGVpZ2h0AAAAAgAAAAxhcnRlZmFjdE5hbWUAAAAKYXJ0ZWZhY3RJZAkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAMYXJ0ZWZhY3ROYW1lAgAAAAFfBQAAAAphcnRlZmFjdElkAgAAAA9fdW5zdGFrZV9oZWlnaHQBAAAAEGtleUFydGVmYWN0T3duZXIAAAACAAAADGFydGVmYWN0TmFtZQAAAAVvd25lcgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAMYXJ0ZWZhY3ROYW1lAgAAAAFfBQAAAAVvd25lcgIAAAAGX293bmVyAQAAAAxrZXlGZWVkTGltaXQAAAABAAAABW93bmVyCQABLAAAAAICAAAABmxpbWl0XwUAAAAFb3duZXIAAAAACXN0YWtlYWJsZQkABEwAAAACAgAAAAhBUlQtTEFLRQkABEwAAAACAgAAAAlBUlQtWFRSRUUJAARMAAAAAgIAAAAJQVJULVhTT0NLCQAETAAAAAICAAAACkFSVC1YTUlTVEwFAAAAA25pbAEAAAAMdHJ5R2V0U3RyaW5nAAAAAQAAAANrZXkEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWECAAAAAAEAAAANdHJ5R2V0SW50ZWdlcgAAAAEAAAADa2V5BAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAAAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIAAAAHYWRkcmVzcwAAAANrZXkEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAHYWRkcmVzcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWECAAAAAAEAAAAJZ2V0T3JhY2xlAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAAAx0cnlHZXRTdHJpbmcAAAABCQEAAAAXc3RhdGljS2V5X29yYWNsZUFkZHJlc3MAAAAAAQAAAA9nZXRJdGVtc0FkZHJlc3MAAAAACQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgkBAAAACWdldE9yYWNsZQAAAAAJAQAAABZzdGF0aWNLZXlfaXRlbXNBZGRyZXNzAAAAAAEAAAAQZ2V0RmVlQWdncmVnYXRvcgAAAAAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAkBAAAAF3N0YXRpY0tleV9mZWVBZ2dyZWdhdG9yAAAAAAEAAAAXZ2V0TXV0YW50RmFybWluZ0FkZHJlc3MAAAAACQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgkBAAAACWdldE9yYWNsZQAAAAAJAQAAAB5zdGF0aWNLZXlfbXV0YW50RmFybWluZ0FkZHJlc3MAAAAAAQAAABZnZXRTY3JpcHRNYXN0ZXJBZGRyZXNzAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAACQEAAAAdc3RhdGljS2V5X3NjcmlwdE1hc3RlckFkZHJlc3MAAAAAAQAAAAhhc1N0cmluZwAAAAEAAAAFdmFsdWUEAAAAByRtYXRjaDAFAAAABXZhbHVlAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAABnN0cmluZwUAAAAHJG1hdGNoMAUAAAAGc3RyaW5nCQAAAgAAAAECAAAAHHdyb25nIHR5cGUsIGV4cGVjdGVkOiBTdHJpbmcBAAAABWFzSW50AAAAAQAAAAV2YWx1ZQQAAAAHJG1hdGNoMAUAAAAFdmFsdWUDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAADaW50BQAAAAckbWF0Y2gwBQAAAANpbnQJAAACAAAAAQIAAAAZd3JvbmcgdHlwZSwgZXhwZWN0ZWQ6IEludAEAAAAWY2hlY2tBZGRpdGlvbmFsUGF5bWVudAAAAAEAAAAHcGF5bWVudAMJAQAAAAlpc0RlZmluZWQAAAABCAUAAAAHcGF5bWVudAAAAAdhc3NldElkCQAAAgAAAAECAAAAGVdDQVA6IFBsZWFzZSBhdHRhY2ggd2F2ZXMEAAAACWZlZUFtb3VudAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgkBAAAACWdldE9yYWNsZQAAAAAJAQAAABJzdGF0aWNLZXlfZXh0cmFGZWUAAAAAAwkBAAAAAiE9AAAAAggFAAAAB3BheW1lbnQAAAAGYW1vdW50BQAAAAlmZWVBbW91bnQJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAHFdDQVA6IFBsZWFzZSBhdHRhY2ggZXhhY3RseSAJAAGkAAAAAQUAAAAJZmVlQW1vdW50AgAAABMgYW1vdW50IG9mIHdhdmVsZXRzCQAETAAA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+hhZUZ0tU0k2w9Cj96hgGTtOBAAAAA9maXJzdFVzZXJTaWduZWQDCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAUAAAAJZmlyc3RVc2VyAAAAAAAAAAABAwkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAEFAAAACWZpcnN0VXNlcgAAAAAAAAAAAQMJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAACBQAAAAlmaXJzdFVzZXIAAAAAAAAAAAEAAAAAAAAAAAAEAAAAEHNlY29uZFVzZXJTaWduZWQDCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAUAAAAKc2Vjb25kVXNlcgAAAAAAAAAAAQMJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAABBQAAAApzZWNvbmRVc2VyAAAAAAAAAAABAwkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAIFAAAACnNlY29uZFVzZXIAAAAAAAAAAAEAAAAAAAAAAAAEAAAAD3RoaXJkVXNlclNpZ25lZAMJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAABQAAAAl0aGlyZFVzZXIAAAAAAAAAAAEDCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAQUAAAAJdGhpcmRVc2VyAAAAAAAAAAABAwkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAIFAAAACXRoaXJkVXNlcgAAAAAAAAAAAQAAAAAAAAAAAAQAAAAPc2lnbmF0dXJlc0NvdW50CQAAZAAAAAIJAABkAAAAAgUAAAAPZmlyc3RVc2VyU2lnbmVkBQAAABBzZWNvbmRVc2VyU2lnbmVkBQAAAA90aGlyZFVzZXJTaWduZWQEAAAAByRtYXRjaDAFAAAAAnR4CQAAZwAAAAIFAAAAD3NpZ25hdHVyZXNDb3VudAAAAAAAAAAAAVilqsw=", "height": 3479152, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: BNzNLAeEzKNMkQYn1XieKbmf4VimvZCyd8ykuVTBwDpn Next: AFzcMHErY6eSy6JUHHnJ13vfMtdSBy2Vfcuu4JKwfitb Diff:
OldNewDifferences
210210 then {
211211 let bonus = if ((artefactId == ""))
212212 then 0
213- else (intValue / 10)
213+ else (intValue / 20)
214214 ([IntegerEntry(keyFeedLimit(invoker), ((tryGetInteger(keyFeedLimit(invoker)) + intValue) + bonus)), Burn(assetId, 1)] ++ validPayment)
215215 }
216216 else throw("Strict value is not equal to itself.")
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func getBool (key) = match getBoolean(this, key) {
55 case b: Boolean =>
66 b
77 case _ =>
88 false
99 }
1010
1111
1212 func isTestEnv () = getBool("TESTENV")
1313
1414
1515 func staticKey_oracleAddress () = "static_oracleAddress"
1616
1717
1818 func staticKey_itemsAddress () = "static_itemsAddress"
1919
2020
2121 func staticKey_mutantFarmingAddress () = "static_mutantFarmingAddress"
2222
2323
2424 func staticKey_extraFee () = "static_extraFee"
2525
2626
2727 func staticKey_feeAggregator () = "static_feeAggregator"
2828
2929
3030 func staticKey_scriptMasterAddress () = "static_scriptMasterAddress"
3131
3232
3333 func keyUnstakeHeight (artefactName,artefactId) = (((artefactName + "_") + artefactId) + "_unstake_height")
3434
3535
3636 func keyArtefactOwner (artefactName,owner) = (((artefactName + "_") + owner) + "_owner")
3737
3838
3939 func keyFeedLimit (owner) = ("limit_" + owner)
4040
4141
4242 let stakeable = ["ART-LAKE", "ART-XTREE", "ART-XSOCK", "ART-XMISTL"]
4343
4444 func tryGetString (key) = match getString(this, key) {
4545 case a: String =>
4646 a
4747 case _ =>
4848 ""
4949 }
5050
5151
5252 func tryGetInteger (key) = match getInteger(this, key) {
5353 case a: Int =>
5454 a
5555 case _ =>
5656 0
5757 }
5858
5959
6060 func tryGetStringExternal (address,key) = match getString(address, key) {
6161 case a: String =>
6262 a
6363 case _ =>
6464 ""
6565 }
6666
6767
6868 func getOracle () = Address(fromBase58String(tryGetString(staticKey_oracleAddress())))
6969
7070
7171 func getItemsAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_itemsAddress())))
7272
7373
7474 func getFeeAggregator () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_feeAggregator())))
7575
7676
7777 func getMutantFarmingAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_mutantFarmingAddress())))
7878
7979
8080 func getScriptMasterAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_scriptMasterAddress())))
8181
8282
8383 func asString (value) = match value {
8484 case string: String =>
8585 string
8686 case _ =>
8787 throw("wrong type, expected: String")
8888 }
8989
9090
9191 func asInt (value) = match value {
9292 case int: Int =>
9393 int
9494 case _ =>
9595 throw("wrong type, expected: Int")
9696 }
9797
9898
9999 func checkAdditionalPayment (payment) = if (isDefined(payment.assetId))
100100 then throw("WCAP: Please attach waves")
101101 else {
102102 let feeAmount = getIntegerValue(getOracle(), staticKey_extraFee())
103103 if ((payment.amount != feeAmount))
104104 then throw((("WCAP: Please attach exactly " + toString(feeAmount)) + " amount of wavelets"))
105105 else [ScriptTransfer(getFeeAggregator(), feeAmount, unit)]
106106 }
107107
108108
109109 func itemIsInCoolDown (artefactName,artefactId) = {
110110 let unstakeHeightLast = tryGetInteger(keyUnstakeHeight(artefactName, artefactId))
111111 let cooldownPeriod = 240
112112 if ((height > (unstakeHeightLast + cooldownPeriod)))
113113 then false
114114 else true
115115 }
116116
117117
118118 @Callable(i)
119119 func configureOracle (oracle) = if ((i.caller != this))
120120 then throw("admin only")
121121 else [StringEntry(staticKey_oracleAddress(), oracle)]
122122
123123
124124
125125 @Callable(i)
126126 func stakeItem () = {
127127 let validPayment = checkAdditionalPayment(i.payments[1])
128128 if (!(if ((size(i.payments) == 2))
129129 then (i.payments[0].amount == 1)
130130 else false))
131131 then throw("Invalid payment")
132132 else {
133133 let assetId = value(i.payments[0].assetId)
134134 let artefactName = asString(invoke(getItemsAddress(), "checkArtefactDetails", [toBase58String(assetId)], nil))
135135 if ((artefactName == artefactName))
136136 then if (!(containsElement(stakeable, artefactName)))
137137 then throw("You can't stake this artafect")
138138 else if (itemIsInCoolDown(artefactName, toBase58String(assetId)))
139139 then throw("Item can't be staked yet, it's in cooldown")
140140 else {
141141 let invoker = toString(i.caller)
142142 let artefactId = tryGetString(keyArtefactOwner(artefactName, invoker))
143143 if ((artefactId != ""))
144144 then throw(("You are already staking " + artefactName))
145145 else {
146146 let boostDuck = if ((artefactName == "ART-LAKE"))
147147 then invoke(getItemsAddress(), "manipulateBoostAccount", [2, invoker], nil)
148148 else if ((artefactName == "ART-XTREE"))
149149 then invoke(getItemsAddress(), "manipulateBoostAccount", [3, invoker], nil)
150150 else nil
151151 if ((boostDuck == boostDuck))
152152 then ([StringEntry(keyArtefactOwner(artefactName, invoker), toBase58String(assetId))] ++ validPayment)
153153 else throw("Strict value is not equal to itself.")
154154 }
155155 }
156156 else throw("Strict value is not equal to itself.")
157157 }
158158 }
159159
160160
161161
162162 @Callable(i)
163163 func unstakeItem (artefactName) = {
164164 let validPayment = checkAdditionalPayment(i.payments[0])
165165 if (!(containsElement(stakeable, artefactName)))
166166 then throw("This artefact doesn't exist")
167167 else {
168168 let invoker = toString(i.caller)
169169 let artefactId = tryGetString(keyArtefactOwner(artefactName, invoker))
170170 if ((artefactName == "ART-XSOCK"))
171171 then throw("You can not unstake ART-XSOCK anymore")
172172 else if ((artefactId == ""))
173173 then throw(("You didnt stake " + artefactName))
174174 else {
175175 let boostDuck = if ((artefactName == "ART-LAKE"))
176176 then invoke(getItemsAddress(), "manipulateBoostAccount", [-2, invoker], nil)
177177 else if ((artefactName == "ART-XTREE"))
178178 then invoke(getItemsAddress(), "manipulateBoostAccount", [-3, invoker], nil)
179179 else nil
180180 if ((boostDuck == boostDuck))
181181 then ([IntegerEntry(keyUnstakeHeight(artefactName, artefactId), height), ScriptTransfer(i.caller, 1, fromBase58String(artefactId)), DeleteEntry(keyArtefactOwner(artefactName, invoker))] ++ validPayment)
182182 else throw("Strict value is not equal to itself.")
183183 }
184184 }
185185 }
186186
187187
188188
189189 @Callable(i)
190190 func oneTimeUseFeed () = {
191191 let validPayment = checkAdditionalPayment(i.payments[1])
192192 if (!(if ((size(i.payments) == 2))
193193 then (i.payments[0].amount == 1)
194194 else false))
195195 then throw("Invalid payment")
196196 else {
197197 let assetId = value(i.payments[0].assetId)
198198 let artefactName = asString(invoke(getItemsAddress(), "checkArtefactDetails", [toBase58String(assetId)], nil))
199199 if ((artefactName == artefactName))
200200 then {
201201 let artefactId = tryGetString(keyArtefactOwner("ART-XSOCK", toString(i.caller)))
202202 if (!(contains(artefactName, "ART-FEED")))
203203 then throw("You can't use this artafect to earn feedlimit!")
204204 else {
205205 let invoker = toString(i.caller)
206206 let amount = drop(artefactName, 8)
207207 let intValue = parseIntValue(amount)
208208 let topup = invoke(getMutantFarmingAddress(), "topUpReward", ["FEED", (intValue / 2)], nil)
209209 if ((topup == topup))
210210 then {
211211 let bonus = if ((artefactId == ""))
212212 then 0
213- else (intValue / 10)
213+ else (intValue / 20)
214214 ([IntegerEntry(keyFeedLimit(invoker), ((tryGetInteger(keyFeedLimit(invoker)) + intValue) + bonus)), Burn(assetId, 1)] ++ validPayment)
215215 }
216216 else throw("Strict value is not equal to itself.")
217217 }
218218 }
219219 else throw("Strict value is not equal to itself.")
220220 }
221221 }
222222
223223
224224
225225 @Callable(i)
226226 func addFeedLimit (amount,address) = if (if ((i.caller != getMutantFarmingAddress()))
227227 then (i.caller != getScriptMasterAddress())
228228 else false)
229229 then throw("admin only")
230230 else [IntegerEntry(keyFeedLimit(address), (tryGetInteger(keyFeedLimit(address)) + amount))]
231231
232232
233233 @Verifier(tx)
234234 func verify () = if (isTestEnv())
235235 then sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
236236 else {
237237 let firstUser = base58'6TdaXEfhnjYquvPf3yV7MFxt2CbgFmaqsvGwkKfXtKi4'
238238 let secondUser = base58'7DsP2WaMLocbHuUxux7pbXRjTrrZ1TFQPsi5QumS3gr8'
239239 let thirdUser = base58'BpFWP3p3JgYrrP45xfrKzeMcWMEXoinj4FVPPkUiA8D3'
240240 let firstUserSigned = if (sigVerify(tx.bodyBytes, tx.proofs[0], firstUser))
241241 then 1
242242 else if (sigVerify(tx.bodyBytes, tx.proofs[1], firstUser))
243243 then 1
244244 else if (sigVerify(tx.bodyBytes, tx.proofs[2], firstUser))
245245 then 1
246246 else 0
247247 let secondUserSigned = if (sigVerify(tx.bodyBytes, tx.proofs[0], secondUser))
248248 then 1
249249 else if (sigVerify(tx.bodyBytes, tx.proofs[1], secondUser))
250250 then 1
251251 else if (sigVerify(tx.bodyBytes, tx.proofs[2], secondUser))
252252 then 1
253253 else 0
254254 let thirdUserSigned = if (sigVerify(tx.bodyBytes, tx.proofs[0], thirdUser))
255255 then 1
256256 else if (sigVerify(tx.bodyBytes, tx.proofs[1], thirdUser))
257257 then 1
258258 else if (sigVerify(tx.bodyBytes, tx.proofs[2], thirdUser))
259259 then 1
260260 else 0
261261 let signaturesCount = ((firstUserSigned + secondUserSigned) + thirdUserSigned)
262262 match tx {
263263 case _ =>
264264 (signaturesCount >= 1)
265265 }
266266 }
267267

github/deemru/w8io/169f3d6 
29.16 ms