tx · FHjHwaq7ogQ72ThEp63UJWgcRbLkkaWo7fwYtn1ZDdKU

3PHUMZkr66B38WxHV1boULaEjjF7giGgVy7:  -0.01000000 Waves

2022.04.14 16:47 [3073623] smart account 3PHUMZkr66B38WxHV1boULaEjjF7giGgVy7 > SELF 0.00000000 Waves

{ "type": 13, "id": "FHjHwaq7ogQ72ThEp63UJWgcRbLkkaWo7fwYtn1ZDdKU", "fee": 1000000, "feeAssetId": null, "timestamp": 1649944082937, "version": 2, "chainId": 87, "sender": "3PHUMZkr66B38WxHV1boULaEjjF7giGgVy7", "senderPublicKey": "8XKsuJqSe6FsspUz3sPvdADeLpP7e1tfiWx5tt6e674g", "proofs": [ "2iZwzbzGAPZ5efYvLZi2hB3zgQHpMDPHi9vLJP8Ph9DtfxbhdPVfR66Au7iyHmFanwbKRdSBQrV3WBD3Pnj7LX7W" ], "script": "base64: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", "height": 3073623, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: AqDw4EWS5zXGHNs2rNm1ZjFcUPg6PATvyyJ7bfNKELue 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 wearItemToDuck () = {
47+ let firstPayment = value(i.payments[0])
48+ let secondPayment = value(i.payments[1])
49+ let duckId = toBase58String(value(firstPayment.assetId))
50+ let secondAssetId = toBase58String(value(secondPayment.assetId))
51+ if (if ((firstPayment.amount != 1))
52+ then true
53+ else (secondPayment.amount != 1))
54+ then throw("NFT is not attached")
55+ else {
56+ let children = asInt(invoke(getBreederAddress(), "validateAndGetChildren", [duckId], nil))
57+ if ((children == children))
58+ then {
59+ let artefactName = asString(invoke(getItemsAddress(), "checkArtefactDetails", [secondAssetId], nil))
60+ if ((artefactName == artefactName))
61+ then if (!(containsElement(wearables, artefactName)))
62+ then throw("Unsupported wearable")
63+ else {
64+ let artefactId = tryGetString(keyArtefactDuck(duckId, artefactName))
65+ let boostDuck = if ((artefactName == "ART-XSCARF"))
66+ then invoke(getItemsAddress(), "manipulateBoost", [69, duckId], i.payments)
67+ else nil
68+ if ((boostDuck == boostDuck))
69+ then if ((artefactId != ""))
70+ then throw(("Duck is already wearing a " + artefactName))
71+ else [StringEntry(keyArtefactDuck(duckId, artefactName), secondAssetId), ScriptTransfer(i.caller, 1, firstPayment.assetId)]
72+ else throw("Strict value is not equal to itself.")
73+ }
74+ else throw("Strict value is not equal to itself.")
75+ }
76+ else throw("Strict value is not equal to itself.")
77+ }
78+ }
79+
80+

github/deemru/w8io/3ef1775 
21.86 ms