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:
Old | New | Differences | |
---|---|---|---|
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 ◑