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