tx · B2wSoShVBvangjxAMKAofEvakJhki2TmzXEonVNTXk24

3PG7U7XXBt4yLq3toAtcxmXjYZNergS29uQ:  -0.01100000 Waves

2023.09.09 00:13 [3812662] smart account 3PG7U7XXBt4yLq3toAtcxmXjYZNergS29uQ > SELF 0.00000000 Waves

{ "type": 13, "id": "B2wSoShVBvangjxAMKAofEvakJhki2TmzXEonVNTXk24", "fee": 1100000, "feeAssetId": null, "timestamp": 1694207634363, "version": 2, "chainId": 87, "sender": "3PG7U7XXBt4yLq3toAtcxmXjYZNergS29uQ", "senderPublicKey": "2PCiuoWznRfQCGrW4a1ii67qPWuGvKFw5Nryapzfc5ch", "proofs": [ "3EXgqWrnka71jycr7Fphsyx2Ktrf3JXoehJEDqNYZbS9bbJQDq6jDA7ArQoejrA7cquxm5QrByS6VAp7P2XzzEWd" ], "script": "base64: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ZW50AAAAB2Fzc2V0SWQJAAACAAAAAQIAAAAZV0NBUDogUGxlYXNlIGF0dGFjaCB3YXZlcwQAAAAJZmVlQW1vdW50CQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAkBAAAAEnN0YXRpY0tleV9leHRyYUZlZQAAAAADCQEAAAACIT0AAAACCAUAAAAHcGF5bWVudAAAAAZhbW91bnQFAAAACWZlZUFtb3VudAkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAcV0NBUDogUGxlYXNlIGF0dGFjaCBleGFjdGx5IAkAAaQAAAABBQAAAAlmZWVBbW91bnQCAAAAEyBhbW91bnQgb2Ygd2F2ZWxldHMJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAEGdldEZlZUFnZ3JlZ2F0b3IAAAAABQAAAAlmZWVBbW91bnQFAAAABHVuaXQFAAAAA25pbAEAAAAQaXRlbUlzSW5Db29sRG93bgAAAAIAAAAMYXJ0ZWZhY3ROYW1lAAAACmFydGVmYWN0SWQEAAAAEXVuc3Rha2VIZWlnaHRMYXN0CQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEJAQAAABBrZXlVbnN0YWtlSGVpZ2h0AAAAAgUAAAAMYXJ0ZWZhY3ROYW1lBQAAAAphcnRlZmFjdElkBAAAAA5jb29sZG93blBlcmlvZAAAAAAAAAAA8AMJAABmAAAAAgUAAAAGaGVpZ2h0CQAAZAAAAAIFAAAAEXVuc3Rha2VIZWlnaHRMYXN0BQAAAA5jb29sZG93blBlcmlvZAcGAAAABAAAAAFpAQAAAA9jb25maWd1cmVPcmFjbGUAAAABAAAABm9yYWNsZQMJAQAAAAIhPQAAAAIIBQAAAAFpAAAABmNhbGxlcgUAAAAEdGhpcwkAAAIAAAABAgAAAAphZG1pbiBvbmx5CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABdzdGF0aWNLZXlfb3JhY2xlQWRkcmVzcwAAAAAFAAAABm9yYWNsZQUAAAADbmlsAAAAAWkBAAAACXN0YWtlSXRlbQAAAAAEAAAADHZhbGlkUGF5bWVudAkBAAAAFmNoZWNrQWRkaXRpb25hbFBheW1lbnQAAAABCQAB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", "height": 3812662, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 9FmXGxp7Y2UgqYL3i6fnJyEdNnU2nS2jmwBHwz4ihqB8 Next: 7dTTkHRujzNZXLDCkWBr15XWoyMcY2ffVM6WADEG9rVn Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func staticKey_oracleAddress () = "static_oracleAddress"
55
66
77 func staticKey_itemsAddress () = "static_itemsAddress"
88
99
1010 func staticKey_extraFee () = "static_extraFee"
1111
1212
1313 func staticKey_feeAggregator () = "static_feeAggregator"
1414
1515
1616 func keyUnstakeHeight (artefactName,artefactId) = (((artefactName + "_") + artefactId) + "_unstake_height")
1717
1818
1919 func keyArtefactOwner (artefactName,owner) = (((artefactName + "_") + owner) + "_owner")
2020
2121
2222 func keyFeedLimit (owner) = ("limit_" + owner)
2323
2424
2525 let stakeable = ["ART-LAKE", "ART-XTREE", "ART-XSOCK", "ART-XMISTL"]
2626
2727 func tryGetString (key) = match getString(this, key) {
2828 case a: String =>
2929 a
3030 case _ =>
3131 ""
3232 }
3333
3434
3535 func tryGetInteger (key) = match getInteger(this, key) {
3636 case a: Int =>
3737 a
3838 case _ =>
3939 0
4040 }
4141
4242
4343 func tryGetStringExternal (address,key) = match getString(address, key) {
4444 case a: String =>
4545 a
4646 case _ =>
4747 ""
4848 }
4949
5050
5151 func getOracle () = Address(fromBase58String(tryGetString(staticKey_oracleAddress())))
5252
5353
5454 func getItemsAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_itemsAddress())))
5555
5656
5757 func getFeeAggregator () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_feeAggregator())))
5858
5959
6060 func asString (value) = match value {
6161 case string: String =>
6262 string
6363 case _ =>
6464 throw("wrong type, expected: String")
6565 }
6666
6767
6868 func asInt (value) = match value {
6969 case int: Int =>
7070 int
7171 case _ =>
7272 throw("wrong type, expected: Int")
7373 }
7474
7575
7676 func checkAdditionalPayment (payment) = if (isDefined(payment.assetId))
7777 then throw("WCAP: Please attach waves")
7878 else {
7979 let feeAmount = getIntegerValue(getOracle(), staticKey_extraFee())
8080 if ((payment.amount != feeAmount))
8181 then throw((("WCAP: Please attach exactly " + toString(feeAmount)) + " amount of wavelets"))
8282 else [ScriptTransfer(getFeeAggregator(), feeAmount, unit)]
8383 }
8484
8585
8686 func itemIsInCoolDown (artefactName,artefactId) = {
8787 let unstakeHeightLast = tryGetInteger(keyUnstakeHeight(artefactName, artefactId))
8888 let cooldownPeriod = 240
8989 if ((height > (unstakeHeightLast + cooldownPeriod)))
9090 then false
9191 else true
9292 }
9393
9494
9595 @Callable(i)
9696 func configureOracle (oracle) = if ((i.caller != this))
9797 then throw("admin only")
9898 else [StringEntry(staticKey_oracleAddress(), oracle)]
9999
100100
101101
102102 @Callable(i)
103103 func stakeItem () = {
104104 let validPayment = checkAdditionalPayment(i.payments[1])
105105 if (!(if ((size(i.payments) == 2))
106106 then (i.payments[0].amount == 1)
107107 else false))
108108 then throw("Invalid payment")
109109 else {
110110 let assetId = value(i.payments[0].assetId)
111111 let artefactName = asString(invoke(getItemsAddress(), "checkArtefactDetails", [toBase58String(assetId)], nil))
112112 if ((artefactName == artefactName))
113113 then if (!(containsElement(stakeable, artefactName)))
114114 then throw("You can't stake this artafect")
115115 else if (itemIsInCoolDown(artefactName, toBase58String(assetId)))
116116 then throw("Item can't be staked yet, it's in cooldown")
117117 else {
118118 let invoker = toString(i.caller)
119119 let artefactId = tryGetString(keyArtefactOwner(artefactName, invoker))
120120 if ((artefactId != ""))
121121 then throw(("You are already staking " + artefactName))
122122 else {
123123 let boostDuck = if ((artefactName == "ART-LAKE"))
124124 then invoke(getItemsAddress(), "manipulateBoostAccount", [2, invoker], nil)
125125 else if ((artefactName == "ART-XTREE"))
126126 then invoke(getItemsAddress(), "manipulateBoostAccount", [3, invoker], nil)
127127 else nil
128128 if ((boostDuck == boostDuck))
129129 then ([StringEntry(keyArtefactOwner(artefactName, invoker), toBase58String(assetId))] ++ validPayment)
130130 else throw("Strict value is not equal to itself.")
131131 }
132132 }
133133 else throw("Strict value is not equal to itself.")
134134 }
135135 }
136136
137137
138138
139139 @Callable(i)
140140 func unstakeItem (artefactName) = {
141141 let validPayment = checkAdditionalPayment(i.payments[0])
142142 if (!(containsElement(stakeable, artefactName)))
143143 then throw("This artefact doesn't exist")
144144 else {
145145 let invoker = toString(i.caller)
146146 let artefactId = tryGetString(keyArtefactOwner(artefactName, invoker))
147147 if ((artefactId == "ART-XSOCK"))
148148 then throw("You can not unstake ART-XSOCK anymore")
149149 else if ((artefactId == ""))
150150 then throw(("You didnt stake " + artefactName))
151151 else {
152152 let boostDuck = if ((artefactName == "ART-LAKE"))
153153 then invoke(getItemsAddress(), "manipulateBoostAccount", [-2, invoker], nil)
154154 else if ((artefactName == "ART-XTREE"))
155155 then invoke(getItemsAddress(), "manipulateBoostAccount", [-3, invoker], nil)
156156 else nil
157157 if ((boostDuck == boostDuck))
158158 then ([IntegerEntry(keyUnstakeHeight(artefactName, artefactId), height), ScriptTransfer(i.caller, 1, fromBase58String(artefactId)), DeleteEntry(keyArtefactOwner(artefactName, invoker))] ++ validPayment)
159159 else throw("Strict value is not equal to itself.")
160160 }
161161 }
162162 }
163163
164164
165165
166166 @Callable(i)
167167 func oneTimeUseFeed () = {
168168 let validPayment = checkAdditionalPayment(i.payments[1])
169169 if (!(if ((size(i.payments) == 2))
170170 then (i.payments[0].amount == 1)
171171 else false))
172172 then throw("Invalid payment")
173173 else {
174174 let assetId = value(i.payments[0].assetId)
175175 let artefactName = asString(invoke(getItemsAddress(), "checkArtefactDetails", [toBase58String(assetId)], nil))
176176 if ((artefactName == artefactName))
177177 then if (!(contains(artefactName, "ART-FEED")))
178178 then throw("You can't use this artafect to earn feedlimit!")
179179 else {
180180 let invoker = toString(i.caller)
181181 let amount = drop(artefactName, 8)
182182 ([IntegerEntry(keyFeedLimit(invoker), (tryGetInteger(keyFeedLimit(invoker)) + parseIntValue(amount))), Burn(assetId, 1)] ++ validPayment)
183183 }
184184 else throw("Strict value is not equal to itself.")
185185 }
186186 }
187187
188188
189189 @Verifier(tx)
190190 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
191191

github/deemru/w8io/6500d08 
379.56 ms