tx · szvTi4yfhQLzT3gerV7J4HnhrWC2PAErjovTAPkZUK7

3PCxXZk5r9nL8ppcqRjDAqeYWzRQSDapxWw:  -0.01000000 Waves

2022.04.30 22:11 [3097048] smart account 3PCxXZk5r9nL8ppcqRjDAqeYWzRQSDapxWw > SELF 0.00000000 Waves

{ "type": 13, "id": "szvTi4yfhQLzT3gerV7J4HnhrWC2PAErjovTAPkZUK7", "fee": 1000000, "feeAssetId": null, "timestamp": 1651345885787, "version": 2, "chainId": 87, "sender": "3PCxXZk5r9nL8ppcqRjDAqeYWzRQSDapxWw", "senderPublicKey": "7HScgnyFhXBghV1HNiksyihGxZhYeyoGPr5Lp4jBiabf", "proofs": [ "4TzkGTZQWFshVqEF3f6nLBsXw4NaLXVK5KFgEBQ8juNj1HkZT3z14xJEoED2dsTNq6Epd5VG1da8axs19FcBwBrM" ], "script": "base64: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", "height": 3097048, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: 2ZaLwix4s4hX37cp61wBystDkPHKKmkwdhCqKv1aoJH4 Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 5 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let wearables = ["ART-CAPE", "ART-HAT", "ART-XSCARF", "ART-XSWEATER"]
5+
6+func keyArtefactDuck (duckId,wearable) = ((duckId + "_") + wearable)
7+
8+
9+func tryGetStringExternal (address,key) = match getString(address, key) {
10+ case a: String =>
11+ a
12+ case _ =>
13+ ""
14+}
15+
16+
17+func tryGetString (key) = tryGetStringExternal(this, key)
18+
19+
20+func asInt (value) = match value {
21+ case int: Int =>
22+ int
23+ case _ =>
24+ throw("wrong type, expected: Int")
25+}
26+
27+
28+func asString (value) = match value {
29+ case string: String =>
30+ string
31+ case _ =>
32+ throw("wrong type, expected: String")
33+}
34+
35+
36+func getOracle () = Address(fromBase58String(tryGetString("static_oracleAddress")))
37+
38+
39+func getBreederAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), "static_breederAddress")))
40+
41+
42+func getItemsAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), "static_itemsAddress")))
43+
44+
45+@Callable(i)
46+func configureOracle (oracle) = if ((i.caller != this))
47+ then throw("admin only")
48+ else [StringEntry("static_oracleAddress", oracle)]
49+
50+
51+
52+@Callable(i)
53+func wearItemToDuck () = {
54+ let firstPayment = value(i.payments[0])
55+ let secondPayment = value(i.payments[1])
56+ let duckId = toBase58String(value(firstPayment.assetId))
57+ let secondAssetId = toBase58String(value(secondPayment.assetId))
58+ if (if ((firstPayment.amount != 1))
59+ then true
60+ else (secondPayment.amount != 1))
61+ then throw("NFT is not attached")
62+ else {
63+ let children = asInt(invoke(getBreederAddress(), "validateAndGetChildren", [duckId], nil))
64+ if ((children == children))
65+ then {
66+ let artefactName = asString(invoke(getItemsAddress(), "checkArtefactDetails", [secondAssetId], nil))
67+ if ((artefactName == artefactName))
68+ then if (!(containsElement(wearables, artefactName)))
69+ then throw("Unsupported wearable")
70+ else {
71+ let artefactId = tryGetString(keyArtefactDuck(duckId, artefactName))
72+ let boostDuck = if ((artefactName == "ART-XSCARF"))
73+ then invoke(getItemsAddress(), "manipulateBoost", [69, duckId], nil)
74+ else nil
75+ if ((boostDuck == boostDuck))
76+ then if ((artefactId != ""))
77+ then throw(("Duck is already wearing a " + artefactName))
78+ else [StringEntry(keyArtefactDuck(duckId, artefactName), secondAssetId), ScriptTransfer(i.caller, 1, firstPayment.assetId)]
79+ else throw("Strict value is not equal to itself.")
80+ }
81+ else throw("Strict value is not equal to itself.")
82+ }
83+ else throw("Strict value is not equal to itself.")
84+ }
85+ }
86+
87+

github/deemru/w8io/3ef1775 
22.36 ms