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:
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 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 ◑