tx · BreKPLcrgNzb1G71hn6DnawLNJpUTVT3zRCDyu8jzFst

3PKX8mjwxxJGmC6uUV7opAwMmFUN61JnmG9:  -0.01400000 Waves

2022.04.14 16:54 [3073629] smart account 3PKX8mjwxxJGmC6uUV7opAwMmFUN61JnmG9 > SELF 0.00000000 Waves

{ "type": 13, "id": "BreKPLcrgNzb1G71hn6DnawLNJpUTVT3zRCDyu8jzFst", "fee": 1400000, "feeAssetId": null, "timestamp": 1649944516900, "version": 2, "chainId": 87, "sender": "3PKX8mjwxxJGmC6uUV7opAwMmFUN61JnmG9", "senderPublicKey": "XmAFwGAEKdN5NoXVdfV95VeJ85namtKXxkhyGGYYVUw", "proofs": [ "5yHsGVUPmMED6dhQLkPh1BPFENwaudahovLRVWkgGMqTM7JXyEYe2VUeXBovHn2at62HUMTVM9ivrYXay2iNCSmb" ], "script": "base64:AAIFAAAAAAAAAB4IAhIECgIICBIAEgMKAQgSAwoBCBIDCgEIEgMKAQgAAAARAQAAAAhrZXlPd25lcgAAAAEAAAALZHVja0hvdXNlSWQJAAEsAAAAAgUAAAALZHVja0hvdXNlSWQCAAAABl9vd25lcgEAAAAMa2V5RHVja093bmVyAAAAAQAAAAZkdWNrSWQJAAEsAAAAAgUAAAAGZHVja0lkAgAAAAtfZHVja19vd25lcgEAAAAMa2V5RHVja0hvdXNlAAAAAQAAAAZkdWNrSWQJAAEsAAAAAgUAAAAGZHVja0lkAgAAAAtfZHVja19ob3VzZQEAAAAXb2NjdXBpZWRTcG90c0R1Y2tzSG91c2UAAAABAAAAC2R1Y2tIb3VzZUlkCQABLAAAAAIFAAAAC2R1Y2tIb3VzZUlkAgAAAA1fZmlsbGVkX3Nwb3RzAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIAAAAHYWRkcmVzcwAAAANrZXkEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAHYWRkcmVzcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWECAAAAAAEAAAAMdHJ5R2V0U3RyaW5nAAAAAQAAAANrZXkJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIFAAAABHRoaXMFAAAAA2tleQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEAAAADa2V5BAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFiBQAAAAckbWF0Y2gwBQAAAAFiAAAAAAAAAAAAAQAAAAhhc1N0cmluZwAAAAEAAAAFdmFsdWUEAAAAByRtYXRjaDAFAAAABXZhbHVlAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAABnN0cmluZwUAAAAHJG1hdGNoMAUAAAAGc3RyaW5nCQAAAgAAAAECAAAAHHdyb25nIHR5cGUsIGV4cGVjdGVkOiBTdHJpbmcBAAAABWFzSW50AAAAAQAAAAV2YWx1ZQQAAAAHJG1hdGNoMAUAAAAFdmFsdWUDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAADaW50BQAAAAckbWF0Y2gwBQAAAANpbnQJAAACAAAAAQIAAAAZd3JvbmcgdHlwZSwgZXhwZWN0ZWQ6IEludAEAAAAJZ2V0T3JhY2xlAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAAAx0cnlHZXRTdHJpbmcAAAABAgAAABRzdGF0aWNfb3JhY2xlQWRkcmVzcwEAAAAPZ2V0SXRlbXNBZGRyZXNzAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAAAgAAABNzdGF0aWNfaXRlbXNBZGRyZXNzAQAAABFnZXRGYXJtaW5nQWRkcmVzcwAAAAAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAIAAAAVc3RhdGljX2Zhcm1pbmdBZGRyZXNzAQAAAA1nZXRFZ2dBc3NldElkAAAAAAkAAlkAAAABCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAIAAAARc3RhdGljX2VnZ0Fzc2V0SWQBAAAACG1heER1Y2tzAAAAAAkBAAAADXRyeUdldEludGVnZXIAAAABAgAAAA9zdGF0aWNfbWF4RHVja3MBAAAACXN0YWtlQ2FsbAAAAAAJAQAAAAx0cnlHZXRTdHJpbmcAAAABAgAAABBzdGF0aWNfc3Rha2VDYWxsAQAAAAR0eXBlAAAAAAkBAAAADHRyeUdldFN0cmluZwAAAAECAAAAC3N0YXRpY190eXBlAQAAAAVib29zdAAAAAAJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQIAAAAMc3RhdGljX2Jvb3N0AAAABgAAAAFpAQAAAA9jb25maWd1cmVPcmFjbGUAAAACAAAABm9yYWNsZQAAAAR0eXBlAwkBAAAAAiE9AAAAAggFAAAAAWkAAAAGY2FsbGVyBQAAAAR0aGlzCQAAAgAAAAECAAAACmFkbWluIG9ubHkEAAAABXNldHVwAwkAAAAAAAACBQAAAAR0eXBlAgAAAAxBUlQtQklHSE9V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", "height": 3073629, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 3KVvXp3A53uLJAVVbCqTt9RiuY6aPc5nXEA1WQQreo4X Next: 6GcFun5EUPjbChF8X5HuHUuxFQaezgfwv5Hv1ZFF85GE Diff:
OldNewDifferences
6969 func type () = tryGetString("static_type")
7070
7171
72+func boost () = tryGetInteger("static_boost")
73+
74+
7275 @Callable(i)
7376 func configureOracle (oracle,type) = if ((i.caller != this))
7477 then throw("admin only")
7578 else {
7679 let setup = if ((type == "ART-BIGHOUSE"))
77- then [IntegerEntry("static_maxDucks", 10), StringEntry("static_stakeCall", "stakeNFTWithoutPerch"), StringEntry("static_type", "ART-BIGHOUSE")]
80+ then [IntegerEntry("static_boost", 15), IntegerEntry("static_maxDucks", 10), StringEntry("static_stakeCall", "stakeNFTWithoutPerch"), StringEntry("static_type", "ART-BIGHOUSE")]
7881 else if ((type == "ART-HOUSE"))
79- then [IntegerEntry("static_maxDucks", 4), StringEntry("static_stakeCall", "stakeNFT"), StringEntry("static_type", "ART-HOUSE")]
82+ then [IntegerEntry("static_boost", 30), IntegerEntry("static_maxDucks", 4), StringEntry("static_stakeCall", "stakeNFT"), StringEntry("static_type", "ART-HOUSE")]
8083 else throw("Unknown type!")
8184 ([StringEntry("static_oracleAddress", oracle)] ++ setup)
8285 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func keyOwner (duckHouseId) = (duckHouseId + "_owner")
55
66
77 func keyDuckOwner (duckId) = (duckId + "_duck_owner")
88
99
1010 func keyDuckHouse (duckId) = (duckId + "_duck_house")
1111
1212
1313 func occupiedSpotsDucksHouse (duckHouseId) = (duckHouseId + "_filled_spots")
1414
1515
1616 func tryGetStringExternal (address,key) = match getString(address, key) {
1717 case a: String =>
1818 a
1919 case _ =>
2020 ""
2121 }
2222
2323
2424 func tryGetString (key) = tryGetStringExternal(this, key)
2525
2626
2727 func tryGetInteger (key) = match getInteger(this, key) {
2828 case b: Int =>
2929 b
3030 case _ =>
3131 0
3232 }
3333
3434
3535 func asString (value) = match value {
3636 case string: String =>
3737 string
3838 case _ =>
3939 throw("wrong type, expected: String")
4040 }
4141
4242
4343 func asInt (value) = match value {
4444 case int: Int =>
4545 int
4646 case _ =>
4747 throw("wrong type, expected: Int")
4848 }
4949
5050
5151 func getOracle () = Address(fromBase58String(tryGetString("static_oracleAddress")))
5252
5353
5454 func getItemsAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), "static_itemsAddress")))
5555
5656
5757 func getFarmingAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), "static_farmingAddress")))
5858
5959
6060 func getEggAssetId () = fromBase58String(tryGetStringExternal(getOracle(), "static_eggAssetId"))
6161
6262
6363 func maxDucks () = tryGetInteger("static_maxDucks")
6464
6565
6666 func stakeCall () = tryGetString("static_stakeCall")
6767
6868
6969 func type () = tryGetString("static_type")
7070
7171
72+func boost () = tryGetInteger("static_boost")
73+
74+
7275 @Callable(i)
7376 func configureOracle (oracle,type) = if ((i.caller != this))
7477 then throw("admin only")
7578 else {
7679 let setup = if ((type == "ART-BIGHOUSE"))
77- then [IntegerEntry("static_maxDucks", 10), StringEntry("static_stakeCall", "stakeNFTWithoutPerch"), StringEntry("static_type", "ART-BIGHOUSE")]
80+ then [IntegerEntry("static_boost", 15), IntegerEntry("static_maxDucks", 10), StringEntry("static_stakeCall", "stakeNFTWithoutPerch"), StringEntry("static_type", "ART-BIGHOUSE")]
7881 else if ((type == "ART-HOUSE"))
79- then [IntegerEntry("static_maxDucks", 4), StringEntry("static_stakeCall", "stakeNFT"), StringEntry("static_type", "ART-HOUSE")]
82+ then [IntegerEntry("static_boost", 30), IntegerEntry("static_maxDucks", 4), StringEntry("static_stakeCall", "stakeNFT"), StringEntry("static_type", "ART-HOUSE")]
8083 else throw("Unknown type!")
8184 ([StringEntry("static_oracleAddress", oracle)] ++ setup)
8285 }
8386
8487
8588
8689 @Callable(i)
8790 func stakeDuckHouse () = {
8891 let owner = toString(i.caller)
8992 let artefactPayment = value(i.payments[0])
9093 let artefactAssetId = toBase58String(value(artefactPayment.assetId))
9194 if ((artefactPayment.amount != 1))
9295 then throw("NFT is not attached")
9396 else {
9497 let artefactName = asString(invoke(getItemsAddress(), "checkArtefactDetails", [artefactAssetId], nil))
9598 if ((artefactName == artefactName))
9699 then if ((artefactName != type()))
97100 then throw("Wrong artefact")
98101 else [StringEntry(keyOwner(artefactAssetId), owner)]
99102 else throw("Strict value is not equal to itself.")
100103 }
101104 }
102105
103106
104107
105108 @Callable(i)
106109 func unstakeDuckHouse (duckHouseId) = {
107110 let caller = toString(i.caller)
108111 let duckHouseOwner = tryGetString(keyOwner(duckHouseId))
109112 if ((duckHouseOwner == ""))
110113 then throw("This duckhouse is not staked!")
111114 else if ((duckHouseOwner != caller))
112115 then throw("This duckhouse is not yours!")
113116 else if ((tryGetInteger(occupiedSpotsDucksHouse(duckHouseId)) != 0))
114117 then throw("Please first remove your ducks from the duckhouse")
115118 else [ScriptTransfer(i.caller, 1, fromBase58String(duckHouseId)), DeleteEntry(keyOwner(duckHouseId))]
116119 }
117120
118121
119122
120123 @Callable(i)
121124 func stakeDuck (duckHouseId) = {
122125 let assetId = value(value(i.payments[0]).assetId)
123126 let address = toString(i.caller)
124127 let duckHouseOwner = tryGetString(keyOwner(duckHouseId))
125128 if ((duckHouseOwner == ""))
126129 then throw("This duckhouse is not staked!")
127130 else if ((duckHouseOwner != address))
128131 then throw("This duckhouse is not yours!")
129132 else {
130133 let filledSpots = tryGetInteger(occupiedSpotsDucksHouse(duckHouseId))
131134 if ((maxDucks() > filledSpots))
132135 then throw("No space in duck house left!")
133136 else {
134137 let boostDuck = invoke(getItemsAddress(), "manipulateBoost", [15, toBase58String(assetId)], i.payments)
135138 if ((boostDuck == boostDuck))
136139 then {
137140 let stakeDuck = invoke(getFarmingAddress(), stakeCall(), nil, i.payments)
138141 if ((stakeDuck == stakeDuck))
139142 then [StringEntry(keyDuckOwner(toBase58String(assetId)), address), IntegerEntry(occupiedSpotsDucksHouse(duckHouseId), (filledSpots + 1)), StringEntry(keyDuckHouse(toBase58String(assetId)), duckHouseId)]
140143 else throw("Strict value is not equal to itself.")
141144 }
142145 else throw("Strict value is not equal to itself.")
143146 }
144147 }
145148 }
146149
147150
148151
149152 @Callable(i)
150153 func unstakeDuck (asset) = {
151154 let owner = tryGetString(keyDuckOwner(asset))
152155 let address = toString(i.caller)
153156 if ((owner != address))
154157 then throw("Don't try to steal someone duck!")
155158 else {
156159 let unstakeDuckReward = asInt(invoke(getFarmingAddress(), "unstakeNFT", [asset], nil))
157160 if ((unstakeDuckReward == unstakeDuckReward))
158161 then {
159162 let duckHouseId = tryGetString(keyDuckHouse(asset))
160163 let filledSpots = tryGetInteger(occupiedSpotsDucksHouse(duckHouseId))
161164 if ((filledSpots == 0))
162165 then throw("You aren't staking any ducks!")
163166 else {
164167 let unboostDuck = invoke(getItemsAddress(), "manipulateBoost", [-15, asset], i.payments)
165168 if ((unboostDuck == unboostDuck))
166169 then [ScriptTransfer(i.caller, unstakeDuckReward, getEggAssetId()), ScriptTransfer(i.caller, 1, fromBase58String(asset)), DeleteEntry(keyDuckOwner(asset)), IntegerEntry(occupiedSpotsDucksHouse(duckHouseId), (filledSpots - 1))]
167170 else throw("Strict value is not equal to itself.")
168171 }
169172 }
170173 else throw("Strict value is not equal to itself.")
171174 }
172175 }
173176
174177
175178
176179 @Callable(i)
177180 func claimDuckRewards (asset) = {
178181 let owner = tryGetString(keyDuckOwner(asset))
179182 let address = toString(i.caller)
180183 if ((owner != address))
181184 then throw("Don't try to steal someone eggs!")
182185 else {
183186 let claimRewards = asInt(invoke(getFarmingAddress(), "claimReward", [asset], nil))
184187 if ((claimRewards == claimRewards))
185188 then [ScriptTransfer(Address(fromBase58String(address)), claimRewards, getEggAssetId())]
186189 else throw("Strict value is not equal to itself.")
187190 }
188191 }
189192
190193

github/deemru/w8io/6500d08 
37.72 ms