From e902f19e9f486f304256db1e2e6b607c55a27fd9 Mon Sep 17 00:00:00 2001 From: Michael Poplavkov Date: Fri, 4 Oct 2024 21:13:20 +0100 Subject: [PATCH] Implement suggestions (#9) * Use ContractId::zero * Update fixtures * Fix tests --- Cargo.lock | 798 +++++++++++------- Cargo.toml | 2 +- Forc.lock | 4 +- fixtures/mira-amm/mira_amm_contract-abi.json | 14 +- fixtures/mira-amm/mira_amm_contract.bin | Bin 76736 -> 62904 bytes fixtures/mock-token/mock_token-abi.json | 189 ++++- fixtures/mock-token/mock_token.bin | Bin 28176 -> 25384 bytes scripts/add_liquidity_script/src/main.sw | 2 +- .../add_liquidity_script/tests/utils/mod.rs | 5 +- .../src/main.sw | 2 +- scripts/remove_liquidity_script/src/main.sw | 2 +- .../tests/utils/mod.rs | 6 +- scripts/swap_exact_input_script/src/main.sw | 2 +- scripts/swap_exact_output_script/src/main.sw | 2 +- 14 files changed, 675 insertions(+), 353 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 87ab65e..1f2ed97 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -483,7 +483,7 @@ dependencies = [ "cfg-if", "libc", "miniz_oxide", - "object 0.36.3", + "object", "rustc-demangle", "serde", ] @@ -530,30 +530,6 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" -[[package]] -name = "bincode" -version = "1.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" -dependencies = [ - "serde", -] - -[[package]] -name = "bit-set" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" -dependencies = [ - "bit-vec", -] - -[[package]] -name = "bit-vec" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" - [[package]] name = "bitflags" version = "1.3.2" @@ -929,21 +905,32 @@ dependencies = [ [[package]] name = "cranelift-bforest" -version = "0.105.4" +version = "0.110.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "496c993b62bdfbe9b4c518b8b3e1fdba9f89ef89fcccc050ab61d91dfba9fbaf" +checksum = "305d51c180ebdc46ef61bc60c54ae6512db3bc9a05842a1f1e762e45977019ab" dependencies = [ "cranelift-entity", ] +[[package]] +name = "cranelift-bitset" +version = "0.110.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3247afacd9b13d620033f3190d9e49d1beefc1acb33d5604a249956c9c13709" +dependencies = [ + "serde", + "serde_derive", +] + [[package]] name = "cranelift-codegen" -version = "0.105.4" +version = "0.110.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96b922abb6be41fc383f5e9da65b58d32d0d0a32c87dfe3bbbcb61a09119506c" +checksum = "bd7ca95e831c18d1356da783765c344207cbdffea91e13e47fa9327dbb2e0719" dependencies = [ "bumpalo", "cranelift-bforest", + "cranelift-bitset", "cranelift-codegen-meta", "cranelift-codegen-shared", "cranelift-control", @@ -953,49 +940,51 @@ dependencies = [ "hashbrown 0.14.5", "log", "regalloc2", + "rustc-hash 1.1.0", "smallvec", "target-lexicon", ] [[package]] name = "cranelift-codegen-meta" -version = "0.105.4" +version = "0.110.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634c2ed9ef8a04ca42535a3e2e7917e4b551f2f306f4df2d935a6e71e346c167" +checksum = "450c105fa1e51bfba4e95a86e926504a867ad5639d63f31d43fe3b7ec1f1c9ef" dependencies = [ "cranelift-codegen-shared", ] [[package]] name = "cranelift-codegen-shared" -version = "0.105.4" +version = "0.110.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00cde1425b4da28bb0d5ff010030ea9cc9be7aded342ae099b394284f17cefce" +checksum = "5479117cd1266881479908d383086561cee37e49affbea9b1e6b594cc21cc220" [[package]] name = "cranelift-control" -version = "0.105.4" +version = "0.110.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1622125c99f1864aaf44e57971770c4a918d081d4b4af0bb597bdf624660ed66" +checksum = "34378804f0abfdd22c068a741cfeed86938b92375b2a96fb0b42c878e0141bfb" dependencies = [ "arbitrary", ] [[package]] name = "cranelift-entity" -version = "0.105.4" +version = "0.110.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea97887aca1c0cbe7f8513874dc3603e9744fb1cfa78840ca8897bd2766bd35b" +checksum = "a48cb0a194c9ba82fec35a1e492055388d89b2e3c03dee9dcf2488892be8004d" dependencies = [ + "cranelift-bitset", "serde", "serde_derive", ] [[package]] name = "cranelift-frontend" -version = "0.105.4" +version = "0.110.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cdade4c14183fe41482071ed77d6a38cb95a17c7a0a05e629152e6292c4f8cb" +checksum = "8327afc6c1c05f4be62fefce5b439fa83521c65363a322e86ea32c85e7ceaf64" dependencies = [ "cranelift-codegen", "log", @@ -1005,15 +994,15 @@ dependencies = [ [[package]] name = "cranelift-isle" -version = "0.105.4" +version = "0.110.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbbe4d3ad7bd4bf4a8d916c8460b441cf92417f5cdeacce4dd1d96eee70b18a2" +checksum = "56b08621c00321efcfa3eee6a3179adc009e21ea8d24ca7adc3c326184bc3f48" [[package]] name = "cranelift-native" -version = "0.105.4" +version = "0.110.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c46be4ed1fc8f36df4e2a442b8c30a39d8c03c1868182978f4c04ba2c25c9d4f" +checksum = "d51180b147c8557c1196c77b098f04140c91962e135ea152cd2fcabf40cf365c" dependencies = [ "cranelift-codegen", "libc", @@ -1022,14 +1011,14 @@ dependencies = [ [[package]] name = "cranelift-wasm" -version = "0.105.4" +version = "0.110.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1d4c4a785a7866da89d20df159e3c4f96a5f14feb83b1f5998cfd5fe2e74d06" +checksum = "019e3dccb7f15e0bc14f0ddc034ec608a66df8e05c9e1e16f75a7716f8461799" dependencies = [ "cranelift-codegen", "cranelift-entity", "cranelift-frontend", - "itertools 0.10.5", + "itertools 0.12.1", "log", "smallvec", "wasmparser", @@ -1705,16 +1694,28 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "122c27ab46707017063bf1c6e0b4f3de881e22e81b4059750a0dc95033d9cc26" dependencies = [ "bitflags 2.6.0", - "fuel-types", + "fuel-types 0.56.0", + "serde", + "strum 0.24.1", +] + +[[package]] +name = "fuel-asm" +version = "0.57.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "711b83807968cd62babe6cd70c94b76c86f302c8573da18b3c69135688eceecd" +dependencies = [ + "bitflags 2.6.0", + "fuel-types 0.57.1", "serde", "strum 0.24.1", ] [[package]] name = "fuel-core" -version = "0.33.0" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fa3d4784eef8ce261206684bde30c9c0370dcc886fafe310989f83a4be46353" +checksum = "a36ed389d86361845a354d4d0e80620e811c575f937840a11c616e6e409021f8" dependencies = [ "anyhow", "async-graphql", @@ -1736,14 +1737,13 @@ dependencies = [ "fuel-core-services", "fuel-core-storage", "fuel-core-txpool", - "fuel-core-types", + "fuel-core-types 0.36.0", "fuel-core-upgradable-executor", "futures", "hex", "hyper", "indicatif", "itertools 0.12.1", - "postcard", "rand", "serde", "serde_json", @@ -1761,15 +1761,15 @@ dependencies = [ [[package]] name = "fuel-core-chain-config" -version = "0.33.0" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4222290796ea3d5074614a911619127fc95f91e4e01bf105a5c24277c33a931" +checksum = "7a4c5a71702426b8354bff2010131c0abb4a4f0b608cc7a6dfd72f9e785ba478" dependencies = [ "anyhow", "bech32", "derivative", "fuel-core-storage", - "fuel-core-types", + "fuel-core-types 0.36.0", "itertools 0.12.1", "postcard", "rand", @@ -1781,15 +1781,15 @@ dependencies = [ [[package]] name = "fuel-core-client" -version = "0.33.0" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b8c38f4b08094712137651cdf941b47b6c6f3245e080e53a5988337be36638b" +checksum = "5770dbda6220e641eb57ee204dd5914fa15170afe3009473f57cdf15e2339fd8" dependencies = [ "anyhow", "cynic", "derive_more", "eventsource-client", - "fuel-core-types", + "fuel-core-types 0.36.0", "futures", "hex", "hyper-rustls", @@ -1805,38 +1805,38 @@ dependencies = [ [[package]] name = "fuel-core-consensus-module" -version = "0.33.0" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4add16af84dfa5c37484c2b3fd0d9c5a9e4e265208cd9e1d6cb029fa2f5a14d2" +checksum = "9f97a3fc636d057db88cf7087aa996de9825335980092c4e894749674d599f7d" dependencies = [ "anyhow", "fuel-core-chain-config", "fuel-core-poa", "fuel-core-storage", - "fuel-core-types", + "fuel-core-types 0.36.0", ] [[package]] name = "fuel-core-database" -version = "0.33.0" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42894b75ed336629096d5ff3eb024fcd178ffb6a18de96737f850e2df8b160cb" +checksum = "5844c2cf72d4a29d512bcb295f5528c9b8ddbf8ecbf82c3f41001451f5f4ec6f" dependencies = [ "anyhow", "derive_more", "fuel-core-storage", - "fuel-core-types", + "fuel-core-types 0.36.0", ] [[package]] name = "fuel-core-executor" -version = "0.33.0" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c969c849a0bda6e562ab6c06a9a700574654e8a38352356f6366f13634f52f3" +checksum = "e46400b0e816da2efeee58e5822dfe7ffc1218516456159939968a59417a20af" dependencies = [ "anyhow", "fuel-core-storage", - "fuel-core-types", + "fuel-core-types 0.36.0", "hex", "parking_lot", "serde", @@ -1845,19 +1845,20 @@ dependencies = [ [[package]] name = "fuel-core-gas-price-service" -version = "0.33.0" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e55fb3322e220002233536a75017c3878949097edede1ded0e057fbae407cb6b" +checksum = "390c5c33743633c1c70eaa5aaef27f87ad2ab9a79adba7a321c4899fad4c53ee" dependencies = [ "anyhow", "async-trait", "enum-iterator", "fuel-core-services", "fuel-core-storage", - "fuel-core-types", + "fuel-core-types 0.36.0", "fuel-gas-price-algorithm", "futures", "num_enum", + "reqwest", "serde", "strum 0.25.0", "strum_macros 0.25.3", @@ -1869,15 +1870,15 @@ dependencies = [ [[package]] name = "fuel-core-importer" -version = "0.33.0" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93ccba7cee5da23a9cc97d954cb1abbb668a258912b7855067ceeb2c52664caa" +checksum = "8d6710d343bf04f100f8c3bd4324ce60164e7ca3a8c167915a907180abf23332" dependencies = [ "anyhow", "derive_more", "fuel-core-metrics", "fuel-core-storage", - "fuel-core-types", + "fuel-core-types 0.36.0", "parking_lot", "rayon", "tokio", @@ -1886,9 +1887,9 @@ dependencies = [ [[package]] name = "fuel-core-metrics" -version = "0.33.0" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42bbd79ae78b6dd30c345a0e09660cb4d8d689264fe442d73c92977204029161" +checksum = "8f671e9e813b81873ef07e1cfe8697ba3f9fd0f05313879ed0933446da4c1c14" dependencies = [ "parking_lot", "pin-project-lite", @@ -1899,9 +1900,9 @@ dependencies = [ [[package]] name = "fuel-core-p2p" -version = "0.33.0" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f665347289036863caad6b97ed39a455892d919e78765bb003c3f3770c2e4f2d" +checksum = "2453df795ce5e9a22f7ac10bc3436974612d0d698dcb918b2179c5e24b4bfb4a" dependencies = [ "anyhow", "async-trait", @@ -1909,9 +1910,10 @@ dependencies = [ "fuel-core-metrics", "fuel-core-services", "fuel-core-storage", - "fuel-core-types", + "fuel-core-types 0.36.0", "futures", "hex", + "hickory-resolver", "ip_network", "libp2p", "libp2p-mplex", @@ -1932,16 +1934,16 @@ dependencies = [ [[package]] name = "fuel-core-poa" -version = "0.33.0" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a7d90523fdbba5b1b6273519bf2d1f0e40f1349796add0542236cdad8d117e3" +checksum = "9b698e7c184ab4acbaabe7bad73fdc7dfc9ebfc3a6856b1d719a4fd4c1921873" dependencies = [ "anyhow", "async-trait", "fuel-core-chain-config", "fuel-core-services", "fuel-core-storage", - "fuel-core-types", + "fuel-core-types 0.36.0", "serde", "serde_json", "tokio", @@ -1951,15 +1953,15 @@ dependencies = [ [[package]] name = "fuel-core-producer" -version = "0.33.0" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0818b86c3ca6d697edb7ffcc2a7014267575752628b51ecfcc20a88057de1151" +checksum = "ff23a51239988a9aaf451afa05a1ca7920b4e900319d511bd40bf1e04e414ce1" dependencies = [ "anyhow", "async-trait", "derive_more", "fuel-core-storage", - "fuel-core-types", + "fuel-core-types 0.36.0", "tokio", "tokio-rayon", "tracing", @@ -1967,9 +1969,9 @@ dependencies = [ [[package]] name = "fuel-core-services" -version = "0.33.0" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d47e4bffb8cfe6986060fd60f537d530b9fc5050b643ada08f11310f5531695c" +checksum = "998a4f9d057bf3efe43be574bd200ef64c3318007fd04523ce6bd51cc7bb963c" dependencies = [ "anyhow", "async-trait", @@ -1982,15 +1984,15 @@ dependencies = [ [[package]] name = "fuel-core-storage" -version = "0.33.0" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2119ad6f8fbf046e8bf0c2737015c4cf19a7f6d44bd1fda414707db24302c4a2" +checksum = "1daa7422e48120b1623b53fe1a1152d11314f30fb290a73dc80f7e128c1f9014" dependencies = [ "anyhow", "derive_more", "enum-iterator", - "fuel-core-types", - "fuel-vm", + "fuel-core-types 0.36.0", + "fuel-vm 0.57.1", "impl-tools", "itertools 0.12.1", "mockall", @@ -2006,9 +2008,9 @@ dependencies = [ [[package]] name = "fuel-core-txpool" -version = "0.33.0" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "559eec4bbee19649b87bcf96fb015095f298520de1b52df5dcf812029cea07f8" +checksum = "bc5d2c7d515be53c36070fadbae61a59025ef4a41d20d38e7f2ad71237c4dded" dependencies = [ "anyhow", "async-trait", @@ -2016,7 +2018,7 @@ dependencies = [ "fuel-core-metrics", "fuel-core-services", "fuel-core-storage", - "fuel-core-types", + "fuel-core-types 0.36.0", "mockall", "num-rational", "parking_lot", @@ -2028,34 +2030,49 @@ dependencies = [ [[package]] name = "fuel-core-types" -version = "0.33.0" +version = "0.35.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84fda0c6dc7b3bd24a993b3902f55862b8db0fa6de5b0f1d45f5942bc59792eb" +dependencies = [ + "anyhow", + "derivative", + "derive_more", + "fuel-vm 0.56.0", + "secrecy", + "serde", + "tai64", + "zeroize", +] + +[[package]] +name = "fuel-core-types" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ceaa6bd06f31b407b08f8bfe5ea073cf0a87db82cc843d56780779cccb8d8b40" +checksum = "7aa1c54f09cc7c29a11ca1129f73105745f8374a192e3e24040c10822871d83f" dependencies = [ "anyhow", "bs58", "derivative", "derive_more", - "fuel-vm", + "fuel-vm 0.57.1", "rand", "secrecy", "serde", "tai64", - "thiserror", "zeroize", ] [[package]] name = "fuel-core-upgradable-executor" -version = "0.33.0" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dedcf15e7668549a9ce6a9ff2839a5cdbd9d6cdb39d8dcc40bff6ee97907093" +checksum = "89c636782a522cc49f9e5d43e29b15632a5db930959b8bca9dbf8a6adac76415" dependencies = [ "anyhow", "derive_more", "fuel-core-executor", "fuel-core-storage", - "fuel-core-types", + "fuel-core-types 0.36.0", "fuel-core-wasm-executor", "parking_lot", "postcard", @@ -2065,16 +2082,18 @@ dependencies = [ [[package]] name = "fuel-core-wasm-executor" -version = "0.33.0" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa95e4c322fe7befc0150b0a6d61ff4e1477ec40df772d699e26e9ed27ecc77b" +checksum = "52d69a92fba4ccba773b207dd740f04893dbdd0c76dffbebddfebb13c69eea0c" dependencies = [ "anyhow", "fuel-core-executor", "fuel-core-storage", - "fuel-core-types", + "fuel-core-types 0.35.0", + "fuel-core-types 0.36.0", "postcard", "serde", + "serde_json", ] [[package]] @@ -2082,12 +2101,28 @@ name = "fuel-crypto" version = "0.56.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33548590131674e8f272a3e056be4dbaa1de7cb364eab2b17987cd5c0dc31cb0" +dependencies = [ + "ecdsa", + "ed25519-dalek", + "fuel-types 0.56.0", + "k256", + "p256", + "serde", + "sha2 0.10.8", + "zeroize", +] + +[[package]] +name = "fuel-crypto" +version = "0.57.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5a4ca62d0a8a361b66a6eab3456285883d0aa92c407e249fc76f195c332fbb2" dependencies = [ "coins-bip32", "coins-bip39", "ecdsa", "ed25519-dalek", - "fuel-types", + "fuel-types 0.57.1", "k256", "lazy_static", "p256", @@ -2110,13 +2145,24 @@ dependencies = [ "synstructure", ] +[[package]] +name = "fuel-derive" +version = "0.57.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ca99d9c264fec231a01e55bbdb6adb3080266dc44c4cc88de870b089ee2a015" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.74", + "synstructure", +] + [[package]] name = "fuel-gas-price-algorithm" -version = "0.33.0" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce04f61f9ba9baccb0ad1488a3609ccd0b2cf7f28382c80265e5feeec5d1b918" +checksum = "3a69655b9d140ad98d3e8a333e64814876c63ffe6097fd80e68cdd427514912d" dependencies = [ - "proptest", "serde", "thiserror", ] @@ -2129,7 +2175,22 @@ checksum = "cf17ce8ee5e8b573ea584c223635ff09f1288ad022bcf662954fdccb907602eb" dependencies = [ "derive_more", "digest 0.10.7", - "fuel-storage", + "fuel-storage 0.56.0", + "hashbrown 0.13.2", + "hex", + "serde", + "sha2 0.10.8", +] + +[[package]] +name = "fuel-merkle" +version = "0.57.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02f3c08f22f7c24170a4ac255e7dfe52d52ae2e85c4a8e26ed6df4f1bd380210" +dependencies = [ + "derive_more", + "digest 0.10.7", + "fuel-storage 0.57.1", "hashbrown 0.13.2", "hex", "serde", @@ -2142,6 +2203,12 @@ version = "0.56.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c1b711f28553ddc5f3546711bd220e144ce4c1af7d9e9a1f70b2f20d9f5b791" +[[package]] +name = "fuel-storage" +version = "0.57.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d676ea5d926bf90c8ea442e5f6fc23c0e86c2e4d663f303842b4afe5b7928084" + [[package]] name = "fuel-tx" version = "0.56.0" @@ -2151,10 +2218,32 @@ dependencies = [ "bitflags 2.6.0", "derivative", "derive_more", - "fuel-asm", - "fuel-crypto", - "fuel-merkle", - "fuel-types", + "fuel-asm 0.56.0", + "fuel-crypto 0.56.0", + "fuel-merkle 0.56.0", + "fuel-types 0.56.0", + "hashbrown 0.14.5", + "itertools 0.10.5", + "postcard", + "serde", + "serde_json", + "strum 0.24.1", + "strum_macros 0.24.3", +] + +[[package]] +name = "fuel-tx" +version = "0.57.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86158d08fe2a936ac765a1e2cb9bf60be704203b3085882e7cc6cd4c48de38ef" +dependencies = [ + "bitflags 2.6.0", + "derivative", + "derive_more", + "fuel-asm 0.57.1", + "fuel-crypto 0.57.1", + "fuel-merkle 0.57.1", + "fuel-types 0.57.1", "hashbrown 0.14.5", "itertools 0.10.5", "postcard", @@ -2171,7 +2260,18 @@ version = "0.56.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b6fb26bcb408b6897e603f68cf60bbbaf6d15381c99f54a69ea743a58235ac1" dependencies = [ - "fuel-derive", + "fuel-derive 0.56.0", + "hex", + "serde", +] + +[[package]] +name = "fuel-types" +version = "0.57.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42b4430c6a20669fffd8f2c17d2be6809a356f623243a78b5eedf8ba7897c036" +dependencies = [ + "fuel-derive 0.57.1", "hex", "rand", "serde", @@ -2182,6 +2282,37 @@ name = "fuel-vm" version = "0.56.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64fc4695efac9207276f6229f2dd9811848b328a13604a698f7bce1d452bd986" +dependencies = [ + "async-trait", + "backtrace", + "bitflags 2.6.0", + "derivative", + "derive_more", + "ethnum", + "fuel-asm 0.56.0", + "fuel-crypto 0.56.0", + "fuel-merkle 0.56.0", + "fuel-storage 0.56.0", + "fuel-tx 0.56.0", + "fuel-types 0.56.0", + "hashbrown 0.14.5", + "itertools 0.10.5", + "libm", + "paste", + "percent-encoding", + "primitive-types", + "serde", + "serde_with", + "sha3", + "static_assertions", + "strum 0.24.1", +] + +[[package]] +name = "fuel-vm" +version = "0.57.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1b04a4e971d58b3662ff8b84b3176094e25f4b372728a13ea903fdf79c7e426" dependencies = [ "anyhow", "async-trait", @@ -2190,12 +2321,12 @@ dependencies = [ "derivative", "derive_more", "ethnum", - "fuel-asm", - "fuel-crypto", - "fuel-merkle", - "fuel-storage", - "fuel-tx", - "fuel-types", + "fuel-asm 0.57.1", + "fuel-crypto 0.57.1", + "fuel-merkle 0.57.1", + "fuel-storage 0.57.1", + "fuel-tx 0.57.1", + "fuel-types 0.57.1", "hashbrown 0.14.5", "itertools 0.10.5", "libm", @@ -2213,13 +2344,13 @@ dependencies = [ [[package]] name = "fuels" -version = "0.66.2" +version = "0.66.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebe775479432ca9cf928b46ab31b8db70522995d76eee57f8454afd3c2fa93f7" +checksum = "aaf7ca0443308f4c3d3e9dd7ed67cb18369ae63d208302056d6d5f3a09efb031" dependencies = [ "fuel-core-client", - "fuel-crypto", - "fuel-tx", + "fuel-crypto 0.57.1", + "fuel-tx 0.57.1", "fuels-accounts", "fuels-core", "fuels-macros", @@ -2229,19 +2360,19 @@ dependencies = [ [[package]] name = "fuels-accounts" -version = "0.66.2" +version = "0.66.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4458456fe121b996121bbc32bd1db062324b7516a896b18fc99a4824ad266c1e" +checksum = "92ea69afa418ba67b9572a5b4cb612b80ee2113c9f755e93acf7adc9fc1454d1" dependencies = [ "async-trait", "chrono", "elliptic-curve", "eth-keystore", "fuel-core-client", - "fuel-core-types", - "fuel-crypto", - "fuel-tx", - "fuel-types", + "fuel-core-types 0.36.0", + "fuel-crypto 0.57.1", + "fuel-tx 0.57.1", + "fuel-types 0.57.1", "fuels-core", "itertools 0.12.1", "rand", @@ -2254,9 +2385,9 @@ dependencies = [ [[package]] name = "fuels-code-gen" -version = "0.66.2" +version = "0.66.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "093f36e3b663a4d25929e501ae420ddddaa212f50515c3b524c4bff5cff842ee" +checksum = "d8d1949debe40c9eb731a93b22a50da560007d85f6f7983679d217c01b9dc867" dependencies = [ "Inflector", "fuel-abi-types", @@ -2270,22 +2401,22 @@ dependencies = [ [[package]] name = "fuels-core" -version = "0.66.2" +version = "0.66.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6126579bc5c7c27bdba2601859eb878d5e1be66eea651780dadbfcb5d72fd51" +checksum = "e720a87a7c99fcc5477cbb251738406de752a10eb237e15c79c1d99b64f4679f" dependencies = [ "async-trait", "bech32", "chrono", "fuel-abi-types", - "fuel-asm", + "fuel-asm 0.57.1", "fuel-core-chain-config", "fuel-core-client", - "fuel-core-types", - "fuel-crypto", - "fuel-tx", - "fuel-types", - "fuel-vm", + "fuel-core-types 0.36.0", + "fuel-crypto 0.57.1", + "fuel-tx 0.57.1", + "fuel-types 0.57.1", + "fuel-vm 0.57.1", "fuels-macros", "hex", "itertools 0.12.1", @@ -2298,9 +2429,9 @@ dependencies = [ [[package]] name = "fuels-macros" -version = "0.66.2" +version = "0.66.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c8ecb63c040c5efe78e48f8168ca97229939491267d2d2ca35ebd8336c05e00" +checksum = "f4f7b391259fceb75331bcbde2878cd9765b579e9167abd818641205b4c96b9a" dependencies = [ "fuels-code-gen", "itertools 0.12.1", @@ -2311,15 +2442,15 @@ dependencies = [ [[package]] name = "fuels-programs" -version = "0.66.2" +version = "0.66.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "519dd708b35a6fd06ec2874c59dc3af25fea384bf35fa87e911eda824df89731" +checksum = "cbf719a68184ad4999c24dd53cf68bdd247d02fe16a9d67ccba177c8e44771b9" dependencies = [ "async-trait", "fuel-abi-types", - "fuel-asm", - "fuel-tx", - "fuel-types", + "fuel-asm 0.57.1", + "fuel-tx 0.57.1", + "fuel-types 0.57.1", "fuels-accounts", "fuels-core", "itertools 0.12.1", @@ -2330,19 +2461,19 @@ dependencies = [ [[package]] name = "fuels-test-helpers" -version = "0.66.2" +version = "0.66.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db040c96a40c3bd06a5f0e5a3fba393f751ecbf8fd1be853a8a66a9c0ff1a6b" +checksum = "8a615a59644d3cfce8dc1089db0764b4cca2bcea42b2a08eca826e2b8f892936" dependencies = [ "fuel-core", "fuel-core-chain-config", "fuel-core-client", "fuel-core-poa", "fuel-core-services", - "fuel-core-types", - "fuel-crypto", - "fuel-tx", - "fuel-types", + "fuel-core-types 0.36.0", + "fuel-crypto 0.57.1", + "fuel-tx 0.57.1", + "fuel-types 0.57.1", "fuels-accounts", "fuels-core", "futures", @@ -2906,6 +3037,12 @@ dependencies = [ "cc", ] +[[package]] +name = "id-arena" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25a2bc672d1148e28034f176e01fffebb08b35768468cc954630da77a1449005" + [[package]] name = "ident_case" version = "1.0.1" @@ -3883,10 +4020,10 @@ dependencies = [ ] [[package]] -name = "mach" -version = "0.3.2" +name = "mach2" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa" +checksum = "19b955cdeb2a02b9117f121ce63aa52d08ade45de53e48fe6a38b39c10f6f709" dependencies = [ "libc", ] @@ -3918,15 +4055,6 @@ dependencies = [ "rustix", ] -[[package]] -name = "memoffset" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" -dependencies = [ - "autocfg", -] - [[package]] name = "mime" version = "0.3.17" @@ -4200,7 +4328,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", - "libm", ] [[package]] @@ -4242,9 +4369,9 @@ checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" [[package]] name = "object" -version = "0.32.2" +version = "0.36.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" +checksum = "27b64972346851a39438c60b341ebc01bba47464ae329e55cf343eb93964efd9" dependencies = [ "crc32fast", "hashbrown 0.14.5", @@ -4252,15 +4379,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "object" -version = "0.36.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27b64972346851a39438c60b341ebc01bba47464ae329e55cf343eb93964efd9" -dependencies = [ - "memchr", -] - [[package]] name = "oid-registry" version = "0.7.0" @@ -4564,7 +4682,7 @@ version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" dependencies = [ - "toml_edit", + "toml_edit 0.21.1", ] [[package]] @@ -4622,26 +4740,6 @@ dependencies = [ "syn 2.0.74", ] -[[package]] -name = "proptest" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4c2511913b88df1637da85cc8d96ec8e43a3f8bb8ccb71ee1ac240d6f3df58d" -dependencies = [ - "bit-set", - "bit-vec", - "bitflags 2.6.0", - "lazy_static", - "num-traits", - "rand", - "rand_chacha", - "rand_xorshift", - "regex-syntax", - "rusty-fork", - "tempfile", - "unarray", -] - [[package]] name = "psl-types" version = "2.0.11" @@ -4789,15 +4887,6 @@ dependencies = [ "getrandom", ] -[[package]] -name = "rand_xorshift" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" -dependencies = [ - "rand_core", -] - [[package]] name = "rayon" version = "1.10.0" @@ -5147,18 +5236,6 @@ version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" -[[package]] -name = "rusty-fork" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f" -dependencies = [ - "fnv", - "quick-error", - "tempfile", - "wait-timeout", -] - [[package]] name = "rw-stream-sink" version = "0.4.0" @@ -5264,9 +5341,9 @@ dependencies = [ [[package]] name = "secp256k1" -version = "0.26.0" +version = "0.29.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4124a35fe33ae14259c490fd70fa199a32b9ce9502f2ee6bc4f81ec06fa65894" +checksum = "9465315bc9d4566e1724f0fffcbcc446268cb522e60f9a27bcded6b19c108113" dependencies = [ "rand", "secp256k1-sys", @@ -5274,9 +5351,9 @@ dependencies = [ [[package]] name = "secp256k1-sys" -version = "0.8.1" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70a129b9e9efbfb223753b9163c4ab3b13cff7fd9c7f010fbac25ab4099fa07e" +checksum = "d4387882333d3aa8cb20530a17c69a3752e97837832f34f6dccc760e715001d9" dependencies = [ "cc", ] @@ -5351,6 +5428,15 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_spanned" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" +dependencies = [ + "serde", +] + [[package]] name = "serde_urlencoded" version = "0.7.1" @@ -5477,6 +5563,9 @@ name = "smallvec" version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" +dependencies = [ + "serde", +] [[package]] name = "snow" @@ -5765,6 +5854,15 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "termcolor" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" +dependencies = [ + "winapi-util", +] + [[package]] name = "termtree" version = "0.4.1" @@ -5932,11 +6030,14 @@ dependencies = [ [[package]] name = "toml" -version = "0.5.11" +version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" +checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" dependencies = [ "serde", + "serde_spanned", + "toml_datetime", + "toml_edit 0.22.22", ] [[package]] @@ -5944,6 +6045,9 @@ name = "toml_datetime" version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" +dependencies = [ + "serde", +] [[package]] name = "toml_edit" @@ -5953,7 +6057,20 @@ checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" dependencies = [ "indexmap 2.3.0", "toml_datetime", - "winnow", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.22.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" +dependencies = [ + "indexmap 2.3.0", + "serde", + "serde_spanned", + "toml_datetime", + "winnow 0.6.20", ] [[package]] @@ -6079,12 +6196,6 @@ dependencies = [ "static_assertions", ] -[[package]] -name = "unarray" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" - [[package]] name = "unicode-bidi" version = "0.3.15" @@ -6112,6 +6223,12 @@ version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0336d538f7abc86d282a4189614dfaa90810dfc2c6f6427eaf88e16311dd225d" +[[package]] +name = "unicode-xid" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" + [[package]] name = "universal-hash" version = "0.5.1" @@ -6207,15 +6324,6 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" -[[package]] -name = "wait-timeout" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6" -dependencies = [ - "libc", -] - [[package]] name = "want" version = "0.3.1" @@ -6300,76 +6408,100 @@ checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484" [[package]] name = "wasm-encoder" -version = "0.41.2" +version = "0.212.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "972f97a5d8318f908dded23594188a90bcd09365986b1163e66d70170e5287ae" +checksum = "501940df4418b8929eb6d52f1aade1fdd15a5b86c92453cb696e3c906bd3fc33" dependencies = [ "leb128", ] [[package]] name = "wasmparser" -version = "0.121.2" +version = "0.212.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dbe55c8f9d0dbd25d9447a5a889ff90c0cc3feaa7395310d3d826b2c703eaab" +checksum = "8d28bc49ba1e5c5b61ffa7a2eace10820443c4b7d1c0b144109261d14570fdf8" dependencies = [ + "ahash", "bitflags 2.6.0", + "hashbrown 0.14.5", "indexmap 2.3.0", "semver", + "serde", +] + +[[package]] +name = "wasmprinter" +version = "0.212.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfac65326cc561112af88c3028f6dfdb140acff67ede33a8e86be2dc6b8956f7" +dependencies = [ + "anyhow", + "termcolor", + "wasmparser", ] [[package]] name = "wasmtime" -version = "18.0.4" +version = "23.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69472708b96ee90579a482bdbb908ce97e53a9e5ebbcab59cc29c3977bcab512" +checksum = "07232e0b473af36112da7348f51e73fa8b11047a6cb546096da3812930b7c93a" dependencies = [ "anyhow", - "bincode", + "bitflags 2.6.0", "bumpalo", + "cc", "cfg-if", - "gimli 0.28.1", + "hashbrown 0.14.5", "indexmap 2.3.0", "libc", + "libm", "log", - "object 0.32.2", + "mach2", + "memfd", + "object", "once_cell", "paste", + "postcard", + "psm", "rayon", "rustix", "serde", "serde_derive", - "serde_json", + "smallvec", + "sptr", "target-lexicon", "wasmparser", + "wasmtime-asm-macros", "wasmtime-cache", + "wasmtime-component-macro", "wasmtime-cranelift", "wasmtime-environ", "wasmtime-jit-icache-coherence", - "wasmtime-runtime", + "wasmtime-slab", + "wasmtime-versioned-export-macros", "windows-sys 0.52.0", ] [[package]] name = "wasmtime-asm-macros" -version = "18.0.4" +version = "23.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86292d6a9bf30c669582a40c4a4b8e0b8640e951f3635ee8e0acf7f87809961e" +checksum = "e5a9c42562d879c749288d9a26acc0d95d2ca069e30c2ec2efce84461c4d62b3" dependencies = [ "cfg-if", ] [[package]] name = "wasmtime-cache" -version = "18.0.4" +version = "23.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a180017db1233c902b992fea9484640d265f2fedf03db60eed57894cb2effcc" +checksum = "38d5d5aac98c8ae87cf5244495da7722e3fa022aa6f3f4fcd5e3d6e5699ce422" dependencies = [ "anyhow", "base64 0.21.7", - "bincode", "directories-next", "log", + "postcard", "rustix", "serde", "serde_derive", @@ -6379,11 +6511,32 @@ dependencies = [ "zstd", ] +[[package]] +name = "wasmtime-component-macro" +version = "23.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0c3f57c4bc96f9b4a6ff4d6cb6e837913eff32e98d09e2b6d79b5c4647b415b" +dependencies = [ + "anyhow", + "proc-macro2", + "quote", + "syn 2.0.74", + "wasmtime-component-util", + "wasmtime-wit-bindgen", + "wit-parser", +] + +[[package]] +name = "wasmtime-component-util" +version = "23.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1da707969bc31a565da9b32d087eb2370c95c6f2087c5539a15f2e3b27e77203" + [[package]] name = "wasmtime-cranelift" -version = "18.0.4" +version = "23.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b57d58e220ae223855c5d030ef20753377bc716d0c81b34c1fe74c9f44268774" +checksum = "62cb6135ec46994299be711b78b03acaa9480de3715f827d450f0c947a84977c" dependencies = [ "anyhow", "cfg-if", @@ -6395,108 +6548,74 @@ dependencies = [ "cranelift-wasm", "gimli 0.28.1", "log", - "object 0.32.2", + "object", "target-lexicon", "thiserror", "wasmparser", - "wasmtime-cranelift-shared", "wasmtime-environ", "wasmtime-versioned-export-macros", ] -[[package]] -name = "wasmtime-cranelift-shared" -version = "18.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ba2cfdfdbde42f0f3baeddb62f3555524dee9f836c96da8d466e299f75f5eee" -dependencies = [ - "anyhow", - "cranelift-codegen", - "cranelift-control", - "cranelift-native", - "gimli 0.28.1", - "object 0.32.2", - "target-lexicon", - "wasmtime-environ", -] - [[package]] name = "wasmtime-environ" -version = "18.0.4" +version = "23.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abbf3075d9ee7eb1263dc67949aced64d0f0bf27be8098d34d8e5826cf0ff0f2" +checksum = "9bcaa3b42a0718e9123da7fb75e8e13fc95df7db2a7e32e2f2f4f0d3333b7d6f" dependencies = [ "anyhow", - "bincode", + "cranelift-bitset", "cranelift-entity", "gimli 0.28.1", "indexmap 2.3.0", "log", - "object 0.32.2", + "object", + "postcard", "serde", "serde_derive", "target-lexicon", - "thiserror", + "wasm-encoder", "wasmparser", + "wasmprinter", "wasmtime-types", ] [[package]] name = "wasmtime-jit-icache-coherence" -version = "18.0.4" +version = "23.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dacd2aa30fb20fd8cd0eb4e664024a1ab28a02958529fa05bf52117532a098fc" +checksum = "2cfee42dac5148fc2664ab1f5cb8d7fa77a28d1a2cf1d9483abc2c3d751a58b9" dependencies = [ + "anyhow", "cfg-if", "libc", "windows-sys 0.52.0", ] [[package]] -name = "wasmtime-runtime" -version = "18.0.4" +name = "wasmtime-slab" +version = "23.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d14e97c4bb36d91bcdd194745446d595e67ce8b89916806270fdbee640c747fd" -dependencies = [ - "anyhow", - "cc", - "cfg-if", - "indexmap 2.3.0", - "libc", - "log", - "mach", - "memfd", - "memoffset", - "paste", - "psm", - "rustix", - "sptr", - "wasm-encoder", - "wasmtime-asm-macros", - "wasmtime-environ", - "wasmtime-versioned-export-macros", - "wasmtime-wmemcheck", - "windows-sys 0.52.0", -] +checksum = "42eb8f6515708ec67974998c3e644101db4186308985f5ef7c2ef324ff33c948" [[package]] name = "wasmtime-types" -version = "18.0.4" +version = "23.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "530b94c627a454d24f520173d3145112d1b807c44c82697a57e1d8e28390cde4" +checksum = "046873fb8fb3e9652f3fd76fe99c8c8129007695c3d73b2e307fdae40f6e324c" dependencies = [ + "anyhow", "cranelift-entity", "serde", "serde_derive", - "thiserror", + "smallvec", "wasmparser", ] [[package]] name = "wasmtime-versioned-export-macros" -version = "18.0.4" +version = "23.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5399c175ddba4a471b9da45105dea3493059d52b2d54860eadb0df04c813948d" +checksum = "99c02af2e9dbeb427304d1a08787d70ed0dbfec1af2236616f84c9f1f03e7969" dependencies = [ "proc-macro2", "quote", @@ -6504,10 +6623,16 @@ dependencies = [ ] [[package]] -name = "wasmtime-wmemcheck" -version = "18.0.4" +name = "wasmtime-wit-bindgen" +version = "23.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1711f429111e782fac0537e0b3eb2ab6f821613cf1ec3013f2a0ff3fde41745" +checksum = "75f528f8b8a2376a3dacaf497d960216dd466d324425361e1e00e26de0a7705c" +dependencies = [ + "anyhow", + "heck 0.4.1", + "indexmap 2.3.0", + "wit-parser", +] [[package]] name = "web-sys" @@ -6569,6 +6694,15 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" +[[package]] +name = "winapi-util" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" +dependencies = [ + "windows-sys 0.59.0", +] + [[package]] name = "winapi-x86_64-pc-windows-gnu" version = "0.4.0" @@ -6760,6 +6894,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "winnow" +version = "0.6.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b" +dependencies = [ + "memchr", +] + [[package]] name = "winreg" version = "0.50.0" @@ -6776,6 +6919,24 @@ version = "0.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d135d17ab770252ad95e9a872d365cf3090e3be864a34ab46f48555993efc904" +[[package]] +name = "wit-parser" +version = "0.212.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ceeb0424aa8679f3fcf2d6e3cfa381f3d6fa6179976a2c05a6249dd2bb426716" +dependencies = [ + "anyhow", + "id-arena", + "indexmap 2.3.0", + "log", + "semver", + "serde", + "serde_derive", + "serde_json", + "unicode-xid", + "wasmparser", +] + [[package]] name = "wyz" version = "0.5.1" @@ -6912,20 +7073,19 @@ dependencies = [ [[package]] name = "zstd" -version = "0.11.2+zstd.1.5.2" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" +checksum = "fcf2b778a664581e31e389454a7072dab1647606d44f7feea22cd5abb9c9f3f9" dependencies = [ "zstd-safe", ] [[package]] name = "zstd-safe" -version = "5.0.2+zstd.1.5.2" +version = "7.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db" +checksum = "54a3ab4db68cea366acc5c897c7b4d4d1b8994a9cd6e6f841f8964566a419059" dependencies = [ - "libc", "zstd-sys", ] diff --git a/Cargo.toml b/Cargo.toml index 651b94a..1d1d663 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,5 +15,5 @@ members = [ ] [workspace.dependencies] -fuels = { version = "0.66.2", features = ["fuel-core-lib"] } +fuels = { version = "0.66.5", features = ["fuel-core-lib"] } tokio = { version = "1.12", features = ["rt", "macros"] } diff --git a/Forc.lock b/Forc.lock index 1ac051e..5ff2155 100644 --- a/Forc.lock +++ b/Forc.lock @@ -10,7 +10,7 @@ dependencies = [ [[package]] name = "core" -source = "path+from-root-4BB20845430AF9CF" +source = "path+from-root-4BA3A18A2D620E67" [[package]] name = "create_pool_and_add_liquidity_script" @@ -47,7 +47,7 @@ dependencies = [ [[package]] name = "std" -source = "git+https://github.com/fuellabs/sway?tag=v0.63.5#31a1d6f98395f571cd3674b492d9bf4773c55f65" +source = "git+https://github.com/fuellabs/sway?tag=v0.64.0#2156bfbbee01ffb85bfca2aae8f185f8e7c715a4" dependencies = ["core"] [[package]] diff --git a/fixtures/mira-amm/mira_amm_contract-abi.json b/fixtures/mira-amm/mira_amm_contract-abi.json index cd33707..c06547f 100644 --- a/fixtures/mira-amm/mira_amm_contract-abi.json +++ b/fixtures/mira-amm/mira_amm_contract-abi.json @@ -63,6 +63,14 @@ "44a0560c7eea4ea134ff419f7d7735d4cde25c72966cff31ad934e76a41bdfac" ] }, + { + "type": "enum std::option::Option", + "concreteTypeId": "50b87f43f0097a720c18f3fb2100c4502484b716128f2706b3e187aa35a6dfe8", + "metadataTypeId": 9, + "typeArguments": [ + "cdd87b7d12fe505416570c294c884bca819364863efe3bf539245fa18515fbbb" + ] + }, { "type": "enum std::option::Option", "concreteTypeId": "0d79387ad3bacdc3b7aad9da3a96f4ce60d9a1b6002df254069ad95a3931d5c8", @@ -1031,7 +1039,7 @@ }, { "name": "data", - "concreteTypeId": "cdd87b7d12fe505416570c294c884bca819364863efe3bf539245fa18515fbbb" + "concreteTypeId": "50b87f43f0097a720c18f3fb2100c4502484b716128f2706b3e187aa35a6dfe8" } ], "name": "swap", @@ -1137,12 +1145,12 @@ { "name": "LP_FEE_VOLATILE", "concreteTypeId": "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0", - "offset": 75344 + "offset": 61520 }, { "name": "LP_FEE_STABLE", "concreteTypeId": "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0", - "offset": 75336 + "offset": 61512 } ] } \ No newline at end of file diff --git a/fixtures/mira-amm/mira_amm_contract.bin b/fixtures/mira-amm/mira_amm_contract.bin index ba60b9309b969c2b10e75c71cf28918576b56f42..c005c7b9ec88763b7410ae8ca31bc71b098991d5 100644 GIT binary patch literal 62904 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 V(qAC70MtEvIuJga1B7Po005}UtwI0* literal 76736 zcmd?Sdwg8ieb{+H0_2Df>5>FU2o%MUL`tKlM-nMRen@vT1JBS9jmuCpp-2!QORnKq zwqaOQ*t|4J+?aV9eg;m`28r#4n|41t1ArtX`7zBVDVru6G-(qin{1)RO6f#Qu}$32 z$#&K6?|06*uNly?lRvsyem?x*-aF_1&N;vL@XuGh@T*=fTnW7V<$Jx+zg<}u{_RTlv)`=RbSeIBAu&-OXayW{k!?Gt@I$@3>W z^tovJe2U+nqR$q6o}|y2be|7QrTgTbF?E3V;{#QhL;nL~)ujifYdeqE4FEFMnrBxYYIQ-Hn=J27gl+R5+ ztT=0hBaJ+G@(YLedCYBA;a9jX9SEi?#aTNy?SHJi`lMg-TGO?`B^f&~{KBE$7I3G4 z`vKte@b`mZ`73k!TWKF{Z)_ynPFMC76{fs9)ZH5RT3+X$;hmq8aX%Mqxr096rF~ZD zQ)#;`6nNv8*4;*bIsV>09c=e>+yYbkym>0!=Pj+*(dYA~&&?J3d@9}N_M+|cZS>hq zpH=z{(tX~toauArb@cfz)90pn`g}Umr<>>7>2m{p4%6pErq9)Mp9SxA^f_ev+(Do3 z&h$BD=lKr$+(Mrt^jS~$S;%Mld_D9mm_D!iMf&_l$v(s3uQcG9|7QB@`fGTn74uFZ z$n+Jyj`?jhedU(u>pjW7rfa^^h=L~(mH{ItpU*OT#jdq?l(Puu>=Uk@G#_Q$d8`u|Fw@5}V5v|^rj*go&1 zPu0H(9#Z_rect*yWMs?t**@P%pU-6aR9ewzkv_Nb_ip+$dN|TQw<`VWZpTfZ zU32vL{!E`rEBZP>pQ7^)(q|)$+gla?i9UnZ(dR?9&tCfcK&H=@rRN}hZlllp>2o>L zXPD-pTPI#epZiUp-ZFiDFw^IX?ei^`o^Pek)l8p?|HM3BkF4ZupNHskD&6OHr4{pg zh(5RTw~Wrq$jYsX|3sg!LsmBbx$ScuaKHDyz{9@cpNPLw8PNBg?N8gjT|Xx8;cwKi z`vtN4Vfl+IdR-D9=Z)45n%|~_H?Am5X{*0KFsL-J?@kBYYoE6`Tdpt%zUF8Ajko>b z0At*r9;fn9=W*^_5q~Beeo^#wP5gj%|6}tzq)mtCwSf`*l5pUZfAoz0KJZG`x7<}5 zI12pZFXg63ncK0U`gFKwX6^RH#}#i!Uny3s7YTm5D>s#lNzmJvAUK*>O{fp_^EmqcPKeE`G z4h0tnz3GQ<88!DjXO7{KV08Ks=5cr^m=15L%d_c6`0e_%c4> z9~ZrWKgi;x@&j2qwc~fwYG=G}`ZLAR@D~Tc$49Zdr>2AZCJle6?}X2H-$^@9>vO(! z#`2f?n9TdPnfG#Mo~W#U9b@}9)(`&Zbfsc>b;qdHBRSzC{Ns=A81lX6D&9?F)%o{v z9dO-spN9-p{L?bN@mII^P1kn!%X?-lS^s(0EoQDS&cL7f!lCZgba2qjRqpW{Y0oUj#X6eP6uAe;_Lq3&(dzXa_wd5yECo(R*arnnq;muqo=-- z(`(g3_ZnMZf13{OJspop^w?YTme2Iv>41CHQ~C3$=e6sm42_Y8wlUxMeMSc@HK5~^ z%x$`|!}KfnL;K*R=1$8$+s4ZC&+I69#1-B;@P3og$^NMHJO1jr&C`{8S8d;+>VSt2 z7#R+{uyD9n;^Tu3emDg0)E+u%@j5Ae4*0hB3%G|rh`4p(#OEpkmpyt zjNU!?isEtPg*^0w=F)!ul;R@vCJQCuf&CYBT=M&n=$1W~1-_%pz{|x9%)vVhZCA&4(Y<lR6B`-H!DH~ddZDIV=!R-@@lM1krvFS?h zvX1GZ@P*NrX&KpaoyEbb(ecb9c<{2q5S=eP8q$a8Vf!4t^8?eh+Z|1rkM!GnQQncc z3;zwgoTcBEb*7&eh4--~+RtpVpRrQVHC=gdR&i0gea7;P;%mCn=Na5G2Zf)t%bShP zuD+O$;Rityepm|p=?c%F(RA%5FP3!~|4jvLEA$cCSFW=%&0IR-t?)5BpTR_biUYj| zZ}d0#IC4av7fqjcIsI+t)UUGb^s?BpG;Ov$WBUl>K1wGua|%o!JlA>MrFy{e*>t6U z@XC1GcGUJE`pMFzG?VNDzEAT*C73gP+4hx#e(Jt{XjO&F~G_DNX>7Z1LVZ!UdK|}9|_a9VwjNY%@Y2+-L=PqB~H$2f?d!YOda^67B6b!rz>wR*m?U#{`1A;eY+mGs$cZLbnQ;{-=PtCA(Pul(|ya2 zOW*s4;GM`9zIICSW%FR^_PqmUtmkGJ>y(kLw>0cnr&NZ6o9E;{tZEz4Z}sWQ&B~YI z@VS}rP+oK(dUGH6zCINC#d>z00fcX+8_ zcvNKX#+Hs%`d8Vz(a4L)qK@Y}#n;;7x#eHl@dWhmbc^9Px!3XBv1;*Q?kl?z`XnoN zTQ*sE;sYDn2KR>ceM|c{olnwwx^jIhdEZX^+-EKAm#yAei}qWjZ$tY%mOryNy!C!F zzO(0J{NJ-|$0s<1wr`rW<1zH9?93Vd$@&l}v|*2=&SG0$qZty&(kzEZD_ z#n=FRvX`@Z?5gjwI&lu#I6r2>@{5z>ld1d4gQ^pw_LVzYI-cnLo#&;!nNwB=Z~8&o z-%`w<_b4yxz0tv=7M_)#JHzC?z)j2KMqhA*{50&`*RTepzHk#}OX#%)A7@#Gli(Xgqc1+a)@cn5mH* ztKvb&dDF7xU(0KI24mjoB)hj>WARdt@iORS*W#s|m%hU48EIqXxwN9shR@W)V|lR? zjO!8Rb(5i8Jmv%r_xbVIDlKvZn!8vVZ-t9Gw&62#hR3>@_h4P;E&Qi=D60(!O&i80 zxG5RiG;(GRI`u;*#zsyepoY&p)W6c4#lBJHC-Jw2#18B^E#q68hi<>o;;N;1P#aXb ztS~KJgpQ9N3cbgV6us%ueN+Bp;Oueo1CRDFu6;||_Hn^sAN(?5sQ@Vv+p~OqRdZzXjBc~8A>*9jYc-THKsz_mW|-t+pd z=m*UO?^QjjzpGu|t$wB93+B-lZ}ndCEUfq{#!(0P4d&tDn*Er>m}JQ+Cr86FIZlPR98 z73<0ysr<}sRvv+&wVU0uGLC^Y^D{laXX)08`gL&Q{EVmlI$t9wT3sf6h%7&#vKzf$ zxx?Tzn#WG%ug-k4;cIr@dER%j)5`FT!LR$ha$BglwfF5hWBo}hI|e^%`Vkv+O@_!$ znwQ_aPsTKUY2)4K&%4o0O3U_sHvGKhg?!8lx2cWSdySQ@T@e~Nz0t0VdTjoGelWsc z@PNT@tc$`F-77m!DNQXerN_R(`g!x>uR46zGWayS>3*-=I`vKPxzFNr>dLxk!%qv| zGP-Eu3S<4ep?&i_V|BXdq#di%MdrS8=c*l}@vqu)3LAb)U{OEZ$eO`rYT$n}T`T6S zd`L|{pk8}Bb>0t4eLbvxNoupdj9f0;IjPN>4*FN6f4A-;joYnSuLy^m7oo4}W7f!; z@yWf~p8g9ly|aG6);H;VhntrTzle?0H3uR`$e$f=04}H}VKWPg3(d)?%^XeQV7l^# z^nK8O-i#d|1phKU_AR>RDXh->F<;#8aBcK+P)NyLyFan+7iIk9Z6;zqko5!Ed2Z+v ze%W90sqwBpEBGF(uAcCReCEiSC*)!J;a%#BIKL}B)(zJW3@>}(NK@iT{4HEuGHe*(69K@JiXw%U-@}$+1&iBnk_Wet1({%GEE&Qbf zO=}juqp6>~??BT#ElqWMk$l5?C6`joHR=h}0xj%m1o|1Y*1`5S52^$9)j%XY*6;#a^w z#43KmuNdv%S7>|uifdS(U~Hh|jI;)Ho8l(61O2Lt*7hsb|CO;NjmYPr24wJJeG^mv zzALaijE^8ZylXYqH^_aPuX~lX2aQDB9~3OUtY0zcc*fk<-k`Y|{Q@ zJL$Xb-?g%l$WOfCLW)l+_Zxi>*}>}@mJii#w%hxzcUe1FjAf-$UAtT3S7QfvtQcO- z>f^4zu<{`}iK5Xh_srPw6^(8gG`_0)z0xv+b!oW|sG&z>72YquukKyoy_zKm;NO<7xK){Ir>MJF2BNWm3fB3O#)hWrMD z`P6;ofs-*l1;2MVx;j~#l=g1!Xi8gZ1Rt>xy zWc(vf>jv;&u5hV42+{p|T_&f&b-OL`c1yqPCtJ_&rjClP9QZ5G`-JrUjiNWpSbmx@ zz5TL|ZDV3=_+m0P#x=YmFrW|pR>AMreR)4O@Qu8Cf1`c>n)dfsyfJD(V~6s<$m=!o zpWFR#Z_7WluQgucS-AmB9TPBp2lJZjn9O)qyyrY`BQ(tIIFt{bL#8E`g(thj_V8C> zCE&QRJ(w6;kDdv}j(FbgN^jr~Rf2K+M)2Vmh6Nva z!ACKH&j&l;BXHvnhk+US=F-nT5Bi9X^$TV4ZNt#j{tj+7Slk4OIXT=U=QJ75X~om` zFQNDUypiQ0UB}M6WWK)W+kvmO@!5m2j@{+j(sJb8F6-b2Le``{?A?fOQbdQd7q3U# zXWG6^+Kyi;ZlPUZ+Vyp6_ZE>O@V*(J$>0Xv)Jsb^6_ATZV_FS_J(fxh;Gmj+U115MHe&1E=#+? z4z&BW`w-q2K1s+;C-~3D{J!DT!0|b6;3%?KUVYBQmJ1RusJ|Z$FN`u~i9cImdH$5@ zPstVIr?uCiHtrA_pm%CU2c0$7s)OcN^|@SE=O>*WOY=n6JLP@oT#NcIFP!AMCUa`n zVg3J9`@_FL-aX{~z2WfuvKcQvM0I{}ZJX}>r0r`G`0Bref!ef%k39Grt=iY9DWxFMXmfe?#EIqrWjW+;}M*IkTkoa`O21 z4|V^}bL@`{%gyuSuX^`~!;2yC2CW}^C(mcbU-j>?@BSO%r`?AR)cv8}`g7ghP8q+| zeYvqApZzQiiPei{E%QPPSVin~fG*tlxcU8jr{BZJ7KC2K!lMVI?FQh?M(v{CWN*Nt z-~;?UO^uy(&aSV-xM{<_4CXMT{y`6O7-ep^>+_mCr&d{BYyoFb@mg&b_s93HDjf}L>p)^s_iuw$a}}2 z-Pc2O2D0&uz}cMVt=>+^&N}ku$d1_P<8_rGfsZYFCx4*}^`()An`aq1%qZN2^azzm>m27rVxPW8&T$sOcV(&2FtfJaA0=0S0{ZPT>LW_u9Yo zBe3%!FvPF1@jHJn^?J}?kU8g(D`+?`d~f6(83*o&@Qv}6@>v@(Wc*Oo#ggYCH_`|t z*J0Whv+eKK_M+ppRz(e{+BEzwYek018_IK8D>Bl&{JF!uzrgQ8C&qJt->r zscSAKT3;r7aR8ejd;#6t`C@OZQ@x3ZFYu3mpNF5j`QO8T_C8CFPi-FKJ_s$imN{aR zk&}GFkD5r>pEf_t*&gPT+g;k{-5j8ogDGpbB44S^ZY9U2{fa%sZ%g#$e24_Edo%HS z@VfCwPvR%oxQxG-D)5rp{Qg4qj5qdJW5d|-#zy!|cuGwPsPD0l-CdirO z;GKHJo5M|yYZ*g}am|@LNxrQfd&2V`vGP-l+t2swHTe+uGgO$+1m2#~=lBbZk3DM8 zh`eZf+~(Oe@MJt$Hp0e? z^cBsG`PXzTqSJ*pj_q@@JC~4M=LfzP^MJIvb`gFga@;o_--NzmYEYEww^UQOSS~>b|s0IIfdVQo% zY;|7F5#e`g*c0qo4%yG^?O+Up%J)VF=GKsb<%A5pW^GqO2E2NQc@`7%4Bb414iX1+ zTJr%9yd%v6%*EnD@gB!O^~87_-jjZA&5Vcmq}J`-T!YVR;AW)Jj}2Qd&-kl4ROx+5 zYy-MR_-S~tW%z0zdQ4-*S_hvxIrmgNL?5BzQ1_|{O%I4pE-1|MVhbDIgS`91MFH_j zE<9}4BOg|N5dJ1dP?0f6Za{VE8u3PQzTa-lw{bf;t}DcSdlS5zpt0H^^+{!&NZRkt zeMo6&Z4h(MGZ*mtnSN%o??@cBaQK)XB6Y_wfvRrdm`p9VvED*bb)gTduQUk zd|?C|VV~~~**A9hpf_GB3htx+bsRBHCpz?*#A)bw$nu8MXL+Y<()0GV>AWSjz9c>< zaj%WDkzcU^f%;ql=llpieqCevumf*BALD%8>D0VOR=?XnTx^XUT|Ma^30mRtMoWE- zV+ZT_0@sCy!-DZWSU)p@j+6b?hmVo#L4QX&r#a~2?e_h8-DVxz2)bY2#TLrnOFiI` zys2E5&j7D!b4TfT{)D%#M{odd&&2)Bi|kV$I@lqGAtxa1N2qzq_}Kpq?1CAe*rqgm zbe>r=I)V>sa{=h)S-qBZmMNJ5cQH>r-|laBSsj7D{a78JTXcoydL;Hc1kGoZUo=*2 zOcy+R>Gyu7kH#PbK*hp1Z}IjUjebb^m$zzh87e?a!lk zrqCmS_*TZpD5m(D_lM!x^RyNHL5)H5S|fD&Cf(OM@^PY@@Efg+Wo*_;Lcd(m2NC-r z`XdeByISh{$RTr4pWOKEuh0KT+QukvD0U_5>mZ-q^j}~O=mM)F>5u2^>!EMSg&995 zncM4RgVEJXa%27WY;p>)?g2mX4b&l@XTOMWzfhc41S z=X5#utK5tIx4OP@nR|&p^d4Qm8$Ily!@KYY*Nq)*td~4LHHt2LmUZK$V7;{A9nEb@ z|DF70`1x0qM~z+4S`vMqrXQ^{@&3s*a-*a6JrmbyOoY9&agf;`&}Qc>UcpuO^*Ae_g$w!C}&-&{29HysdNnzKnW4_nfIQc_krI1>yo<;GDT!X9Y%o&JYe^?5| zj$Tw;nsJW;pZPx03H}FVp1j|`)6{MySMVmrbn*)Ce9q!#Qt`+d>#ThQ#-pO2p&zjf zJOlrCh@-#T^^N@Huh35SWa@ZKtxe)ysm};s%|_ScLL7{Yto@K3ukkm*3H;(0j!9mw zaq0^5RG$Le?6J7LmiDJtLn;!yE!KZ`{2WC>yU4$Q|1kBq^1nM z4DO414es@?)G)uUemeT8t%jNGFE?;>4t)a8+d5_+`%SP&(7AqAu=TSI=%WocKMd@LMGqEp za^H8j=;m?_I^ACj&Ixbh4ay@UjU02@u=_|rj2mp^dZV?q0q+-ipSrTz-ke_R9w}&0 zl^UnUgZPkb@nF&(So)%0zO@?X#w*0SQT>j3Ikgq&S=E?8 zInpF8(6<5){xGzVoQu{n;Yl0spyU(h#{z%a`a1NlzK+CX9qXU8eVgh4M;rVh_`F+X zF^;iEJK*$rCyUHEk&{IxM^^u_#F~sx;y3bD?3W%<|H{N^T=Ux?zsY%G=-#&RA2nx` zA!l;t*s&h;D2`NWj$P|y+z%bDNY0gb{($)#^TAAF%+Fh$5b;3@rzKBvEMl))Yvi9F zOw2VQ8+G);4_T46+ZvnVnOZ$@>T2ixPyBpwAeJbDy+ z^Ez|e{t-WTJ$daX$ZPv0blTrvPCLO1>x+up=B~wn})IeKPw+6WLk62niJdCa_=SIL655agWqq( zhq%@H4TFrcM!i{Th`N?peq#)Kv2}I+_Uz>^@379R@h%w~ad+L-Jb3;T{RTQ_TjyEB z_I|I9mztHf#RdZJDeU9B!jbulCKuCJzrWP|JB%ks{Cz`MUFer_k@GOMAyX%kJ<-&O zs9{x+G4bD|US(>a`0c&q?B^%oM`{8Z&r9sRgb%+f`J6F}UxWRYT5411p!s{oG$Q$@ z=K}9)u5Y$DO4cAQ0&5R-F!3FgcECNaGD#f-9N)nBi(03sE=Uf;_?p!QXTJG6Y+X%q z4K3PDbjpvN@Vd&DwsnnpOkQPKueByIFZmXkUn{u|JUI>>Pn3IyM`Jl`(+!ahAAyGx zdfe7y1Q$Kv!qsN*x6PSn*gO0SmGh)dckx3~hqO}qr$fAY!dw5tnRxXyI^4ypr_l=% zuWBuzQ@qOiw~J4P-ks6+t`M(+-)Y6~+VN^Dp-Y|KO3X*%U1y`5-fGS;zM8F7Ty%N+ zr2NtEQ_?Tv6WwWiPPvwP!Vvq(<(m4P)}lgUbLwl%>3nA$(!JiwlX*|uQqOYm%G7V& z^-=Z>DDL`%*K&Cq&Q$7*P{#5J)tcsMFCT~YOChy3QA1Pxt&Vp-ocwcUDjJ<=F8I;m|OH(MCu zXQ{t{+=xDLzSYG9AMCaEE5Qd{OVM28dS(sT)ckj%p7~bf=PIjLlDed3>Y3CDojgNt z)kUgH8})&U#(rei#^OJovUEz;>PDk?sXapLQGC9Y1nkRtt#$mytkXSN*yu1_+i&fY zt!p;@2zIq8de=N>%}8`T+zh~<)`Ni|dDKSy4z#?8EqjIkFK2mf<4ZCZ)yEQBI5^a> z(2)|Csh(EYkxm2mu}-sm*!5b>hh4@liy!$EGCD5)Z&PwHMsJdLaPv>{CgZLuUWf75 z#FmPVHG0DMph6$vPh>V4FST5~CKjR&xrI99R_J{-_*+rF;;cnr6bz3c>*N~TbK)AG zesZiGX}!*xX*IP=|1RD zOVGp620ILn4G+O{I*%tMma9vC8oM!N^V40gwevr@mPikR-@{s~^U*bJ=Le}=T~gmQ z8N1{Y^3_R~oKC?Xp~ktUU%zRijmvt$wZSj?q+R!1by?^OJ~+3&u><_|qG!-i!kg%t zOdSQgqI>ie=d2R}hX((qMrZu9OkIz6%zhCQV>sO;^oMUWuPCykzBfMd=>!fs=ol|y zYlyKP_BIl0%32n&$vwh58iR&YUg1c0ix^V;@jN&vGOuri7U=aTj&!t$;)joWU6$4& zNASCz)vU5Xt|hOyOUls+FZU&zv&GiIlf$|{1v|pLX`gKStar6pM=?xJMRX^5UB(Y? z1uk^SoYiu|+hD$Fk@9_!%Y^TnhVN|@nw$8Od0b&VbL0zk_Jg|a^E}pTMr%luevgY~ zllCF&_pCTR%Z$(2L+Xd3E2OT+yfb`-ZZdmvOwF-i^8{1ym8mrz@oLB(d-5gzY=%6a zk~YZRRBY3_I{7xw$9mH{pOLv!YmDVrtPO|0s^3np(QZlF!HcqHTVrEsmzlrTgQ0n# zZAQ*;mUU5le$GCkK6|7XNDRk3@JAxsd_KXi&s*J;%uD3VJXX*Fo%?&@lIJ~c{aUF9 zJcpla@1y#&(A(yal_9xrYF6Y{z)4b$be%j`wt&MW2$VVUjP`hP~*irFsm~-2C@LsR{D`kdr%B=P*8#_)m6>O-tjpx!FDX&^Df1F@BG{fqPz^zleV-@e8qo z#C^?Gy~fXUb}%zvwFLtebWPx0wZ>evt|D_K@A;-3C0~3`sb}`PyoS^sm|qqCyDaoc z_Hn|y%Gu>QyyE=k3tUTWPS%F+c5qxyfN>jNSo124m4S;QgZyvv`8N?eVHfaG!GVo2 z=0m;454HIf8)M8*CfdwIZOj^Ed@5<*^gHnvbNG4NkI>8HV#=%^jq83w1AWdMiumJF zvl%$h)%_jZ-+f=;;RnOpam?%Fu7mC;)*xr?)y@U6_djg-$iOj&K4wLx-li^6(n_;n-{#2*K2s-7s`uy zJHDX9{F1t<5W}i#u2=c{68rDTA*-&9*DMw~;5!Lx!ob28txcG*7$4JI8~-sdI&{AW zK9JJ`4v!NFJML)te5}8_i4W$eb3@Ccz&C5#@jJRDPHJ_^#UMXFD?Em-3yj`doYHI2 zd*#Iokq#^`F2V14Gah(W?-!=@p4ut7&S)K#=_j9($7j9ue`$I7H1ANG%lC1fV^L{w z=n;JE`DLy{$$=VK$iClo7d7JUKIqRlE(2pdF!s`~;O$E9<;_^AANqcnEXW-4xj17g|o#gmgujlIqZnHN2s&^}6ZZKxaORX{2 z?q4IvtA2D+r#Y2HHhRbF+&^cJ8hur#E&hP;!{QP$`kArAVRxRr zCG4HPjL(W+E_*E&jsMDi29v|`(Sccd^!y*fA2Mfje?8kQmU& zny$NVnrq2Da7IEW-X-@rY}a)KhF^PI$d<3y`rdpIf6~}L&T3+u#{O~UqvUPY#$orZ z7Vbn0w^286iBC(u8Jq0G4v^1Bd(nLp=ydRQ#kCph^F|M>Xl|A#veA$+u^~N5Ff0&ye-YQpX69GtMP3ILf}~y$zgr(8tIaxw}rdgg)H@U)x_W zi`%JRGvGd^&4Y&L_r4bE=&NRo{zpe+ zZ=DZfe3`DVhUJAexj*4;{-Vxnyjf>F{e>~)_bFmzxqg!C_cU{Q{cf(`N3KGiznAL| zl9Q0@_jCPW@=9|3A+CqXr8%Ey1iwXcJNWCYAC@>p>%8IdrtGoOdanMx)FXJB;W{LL zSRX6-cI;j6M&9ii3SDoIYvj$Hq43xCe!V?Y;g9Tnx4r*Y_P)p7|8sl4!QTJ4z29i> zr|f;s-XF8~o-sKba$~aZQ=e*2HK!K?VO0XCcc9B1o#U-}4hQX6oU^R?Uk)vZq(xoA#C{Rljp@8+8TD|&6t zVi4Gq2KJ`}c7bcy>W-Bxj@)nF}(I@gYulSG#is z#m-6XrG-q19KuH`Q^v0_GSx`PRDErk@?JCenIDYsQ(l_VYmuXob9N4jt40D>Z?N;p zF`s_g8^5`_c*?+eg!#;09?+Ur$GN=K>IWnHW-f)qT#8%^OwkV~6LXoo!d!Iik@^!( zw#rLEG?(FXcKk{kBhN;L6LVQwPRzyN!Pr_G-*%kKl$i@_StGifyByDDaXB#;)5hpJ z^4`G1E@x?t?B8SgwrKFFy3UX0GIGw2pShHmmLi@lpS>JiSI@0P?^YL=qU-WP;QCGa z1L$mB7YhDFrmR1IPWrU#X4N;)=fumhKR(1KK9Y`~vDZ=TyZ5zrAC{c7t0UR{CD_+h z@MHE7jZk}3`zn5+_?IHr#kQOR_&H+zBG!q+r`6_3ouAN(`a1r{NqjJ=!>I4Z?=^+1 zK4#;>S~3RQH@DML{dFT_*hI;%0&j+KpN{Fx`W`2Tre>n@$r`^cG(tYIQ{ zU>}X-nR*!Sy4{Bl)TO3V*uy&DaLV%!RRTG)->zXgNsZ?k{7G4#DK*xb&Qavj_*%w( zNFGM`U7t5k>$TXGGS^}Q<2@*?gs+fs7;?>_HysLei^`pi<5+kerh-3eH zBKEhwpO=Wwy_i?*K2bRXhW%X=#@CYAOVU_cap_0`Fx%PgPzOvBp zU&KRk9dt%xEM4zs);UYArVHLq*72!>MzA{ZR;q^0-qUr84|0F)YlSyAWi9NE!w20u z>VDdHNnL3mB-j10w_fgff8FjQl@_|NNA|L!1G-pufj>z*Ig9+|FvGi>=d^Am`&^-0 zc!V6Oty^(#=mS5t^Ze#d$$P+Gr~70t6}!>h-Q+AcpuaafaoG3xuFyKpD3$Z4)>+(k zs--7&SUr}ty5>UJr}{m1pQ`9FQ};ZIP7_{aoh`IA^;5I|Js2R5`_PeYc|L*uF}Y5& zRtuXcIgY&0IH^mW&Pm8f_hdYdY#i%$tZo*&8ZnKuApWu&j|2UvPfZ z_&4JFH^q0pf`9J+p7o&;Hc@?gV=K#x1@ZCmQ%}YI2Wvee|D(Bb1^?p{)=!XJk@dxi zMVt?yIhcj>z?R>QZ$sWhf7dlx&C6@W709=Z5p8ZlZMnv0cHHxqV|%Z$mGJ|r#1GEz z9bPCnn*==KNb*Lywo2lf<|*2(c^2adZ=0TN4X+uWO8QU0Bll_SxbdC01G`{gR|NKy z(UV>W8@kP$ZEW_CnK4JOB)(V}HDlJ;SK#^z*VGh82iB}FZ6hzb?5S;z=Wk(&e@xtL z*Oieknu@Ng3$qcvs`FFPb-B6R*+2GOK6#b4)<0elTw4FQ>AC0l$M>Q$^7zL$r2S*$ zFxH<=7r&P9!Ion=HTnV@(yzMV|NCcSL^da$oe z65bChTI@shAg?ydlT& z`tG^T>$|u7pGsrl3w#@Fv$4x<>$@8*=!5OjHucVPyvFH!sTq(LlD6a?Sif||{#pC^4i6L4PQ~_0*0TuBefTNs8~Arwn)~3tXli8m zx~{gyz7A+6znNMBH3+#+pY6xq3G+7tF-9vn5O!D1wZYg_{?YVF3#!Gr$L-!Nr?>hOdP>cCVjatKfy4;&Q^X+eK(5cT9_!H$Ve^6CF!R}u zy{+^3uBk>+%7hel_diLViW$g5ee+QprVoK(&d%MAn?4N|!$lpf$ zn(=?^HFJ`Bk@(A9j0>N*@r<3LoXz;Y#BZ`E{u$nL{&ctW@AEGB?P4v^5$S{ROfny< zC!6vuoFwcISlDj|*83B`3G5GC0rsSs>!P(geu{UPYsvb^0eEA5J$zAJsOdHNYUI<& zqReqU_us`B*XJ-+B))rrFG#SqtIc%AD6TXMts7ip9bjb0%&? zZll^gu~T}^lGoSykY8^_a~@`%7T55N$S`X!iM5RUopktsFI4{Ax;b5&R`EV4?@-&T zxpw&8lbviHG9;ep>>OQPpvUGvu7oB7SWlU;zVPsGX=c{*K5#6 zziEzaJ&67h-FQDbauU2BPU{Ke+Ube%LSC=M_bNADu`;ro>!+>kB;wYEywM>`#{NnC z#F?1Dzn6G0;BPHFoVR)tTW{zhcxKMjy_^k|T2g$*s^}(xn@8VVrcF+5E@%8O{_D|A zGUuG)&D5ZZqSI6l2cn1fiJp_QW_3*ja)cg9>WQw$4DDh)ocaB!Pk7jvb~~3`*VaE! zUQs(QG*9b%&Q7o56U(?YU*E{-HGVMs-(~q<&asqhk&OtSPgc6tGv2NzE7TCpKKTBD zZ+On$y7k#fdu!L9t$0t8YsYr!I&5UYmvz?m9OJ7K_i~Q8vB8`l4L;=^$@Au9{RZ)u z(4KYA2kMMN&c}37zu8k{nSaX)}H@!La1&$NH99>D_2wnXhf}>76%RZBL z$Zz1KgbolKPl_Lc-#IDyNy~$GB<@AO54d~y$k_+5Jbc zJSc0OE=ee0PyqdC%BedC#Z) zI^GjMpgZ-Rw6*=|JID6HyP@=_G|*?q7xfwWuerq9Dd+b_@g_OWe8vZpb;~Vae6w|% zNf_wVx#+wC)iGvGb>8WoZ()sOEd#5N@Ck)>NuRJ_d@SAHfv${v!rGO6!u2c3KB$MS z0*BZaopZEFJZECwjGP{@`RpmP*MoeC>@6XmO)ivNZIL>a=4QJFLimsTKJ>eqJsh%E zyC&xupi}3FpIG;DkoW;6%-Cc03;ng^VR%>kcHOrkeuncqbPqwffxRO4H$og4@?B9G z^T@p9_04s8eon8=9;->o4I16Roa6k;^X-1}CWCjohK_GeeLwl!*4Xgs5BP`j_^oFo z)>j<0=ZCNQ3C3W2U)F=cuW!>_fcVf-SFD~X!sj*UQ^!VwU*e`$@);TT-)r?C{MTE@ z?u?puy6e~hv76>Rfb!W%t|v`RZ}EI5ouK}e*mz_|-xE7ieqmX!u~S+%ck!3_6VY0+ z#Zci8*V-nj=Uf;7R92-G5U64 z4qkaS99{~6H)ZuL=gcn@k)3~J->ov&=%l^0MZ6iBj8M72BupiEUc5w!MA3>ZUbo+l)81SI%!q`m&Rm`Q(%KDVty5tbkv` zZq|@*^=~?zLwLg5@wc{iIhp9&<&+Y*T<6Dq*EP2!b2hf9n6YcS{#54a`UM{|PG2W= zHT=73b+zGlt?4yQTwY$p{x+A5{?vT-%om2bSMet#juzeBLY^BYCQRFp6JGxYD@URO zr7lX_ro@sGTeg6)YG8;hX*Pc8P;Z`R65mP=0NuwLq$m!J&w)>l9o?zlUZL#-ZSj4@ zE;d&58eJ!NNw#Or$bih%#0B6o)_so730x=7M_LiTDlmAkKA$-++sp?%VVg{xfDKRg zd9CK9u{*LS?iy$3Gi`L=hHZoWMyA@~=-P1FNL(OxYJ<=|JY4Kg)zhVJEqM*ICsWSf zF@AjFx%%nRo=WD~&hM|qxl+E%D?awf4EzSq9R(NF<|H^S2)+|J(>(LL)B222tO!jf zP3*l8MD(oA$Jf*pJMksHRLk<^VDw(ODZT*waR7gg9K7YLw;Xze7^F+SALIJUNAEng zAoG7FiEr9=32gG#?`O=XBH^si^0XsjRxyrTRH96PQ$YkG>Lm%S19sW+{FcFPucz!A|XIV#diniOH z9GcofTlQw~dlbjdC*yd*&m{QS3cPv*&wS@X`JsIt{!z=@AK=|3`q>44e}L~Iu@A<_ z?*_LHSF#o&riJ7oW@*2J{(5ztL_DVD1U+O-CuwsHu$B|BRuZsej-$ZZ{N&Jwk6Fu!N; zq0KpFhcw=m*q7f9*57)lFSK>XlZkx9Yc>vjUAZ#O8J`zh#yG#7Tv<1Bkz5(yt7v;idOsyWfKjeQLt2(I~a9@=F_9`O*fFske`nTAR49b1!yr7@Zp;-=pE7)@XRR zHGvOaGd1{M<9v{yhJ58Tw^Ry3o)e#QzF8@ddRdqHZ>3R%Jj;QKy?-jW=_qg;=ZmzC==@rf7Cn>lvlD=&<8s=J)<`pEBVPRID; zTB9NM6x@h!K4jw#$=6gDi_D2!g80Y_r#tyvt z!bydxIV>-QEA*#ZGZHd}q8Y>DtX?bJGt{Uw#|?d?pEIm|A?8kfckm234SiPNJ(mx< zT4>t&TNJyuSUdR3z>~8DewnoiUkFF2PfkGF!yA%o6MmWB|AoMf)+Tg&TZLzB?Snk} z{3^d|E{3(H9=x)NXQ#}wr|VCcXVOk|9_^kLdkxR)d=mXr7Yn8T9xuCo;S(Ob62&C$ z%&#Obaqikv@M0NxuEI;KwZab;f1mj3BQ4>Pw4cj&idZXv9=wma-{N#|@nJc`Fj$rMIJ4;tD*WIC%G6-O$;*y>aZ>HD`3^3g5-zY#X7co;A_T z>$N#+Lis+s-+?u7IpKYHEN}2mJzyC8#dA#1L-u+@i&wI=*kW*#i2b3R;1W4ec$Qbw za>ssqvyWT$9ch1>k1~DBxk)4VOY)pr=Aja~cXDW)_eZ@f!o}Y9b#a^{dwkBs-yP43 z+1)32MQ4#iBZiVQNadTfd~d+&B)7&fZ}`TC_p;;O`cIS>WKT`J#!=!ayCyNL0c%O| z7_AA=9Ju_BjS)OLzVTDK=!AFOjTW}pA-hjX;|B+O3fQbSpr#bThHqv4w!(HY<1y|u zZ1j`HJoH~nz`p3l&AA&pfGubIgbGh{QIfX;)+>xR1CO!R?N}#bcne+vUN7rrgr6o8 z@N7+}BfL*pcqbF^435=4%$w(OT_p~7_^CEq(KR`@&Nh2D`5E|}y;HQcF|dud6&}16 z#aF8jVCQ+}OUpHDOUbqMh2S=?DT!$fVj(hBYHsm7R?pNS})H^O(7n7x9tP zG(wKQ)4n5kw>oF>GS}$Ee_v;9Q@|MQUXjK6+WO$?e{10k#&FJsdM$J)Eu$CDg`9C9 z`U+f#O+0%_VXN+n*Mzn6@*e65;9tIh8jbPXWCAvN@!TY^=VI84=M%7lwRP?u&g z+)4r-Yah?808e<`@ez7@E&N@-)67?E-wxho2amO8x#+rjZcwiUC)GvMr{ZUEs*`-c z>wjZmw|LLmfpdAi79OoGO+?SDOTN_a8MCbWLEf^mo!2!Hv^j0s;G?v+(KW-^z!q)r z8-JBJ!hZ`o=dHwBOXz{3spBjx8+@eo4*HXQHNy9a+)8<=7LAwlo!qs&pVmG3kITEn zF+XDCm5>C1%+ZmhuI?7rjuP&#S&PdC-n{ zI^kX4knyRWH+E*yz0;1DjjBudy%4Y2(0s2wpGayBqRZjWjPHjJ<$NCD85g6QYvG^r z;vBS+dmE!K&dPl{Mqg~%X9b5pY++8u-Z@6UUe6VSXFeHu0&)`_=8|2fQK6B%| zCZ0#Q*V+Rzr0ZTj=#CEV|D;j&)t_CS6`_|Y8z5R>VfCw+vDENk9eHv@pN6kJziEF zAbw-ZFFjo+pVg<|U`D1SKGJxzly~R&<4;fQ#82IYp6VwDB{FAX)+)L^@-wJMN6*O- z#Lp-2zr>zcd*94E9h|ml*Z-NdLzA>sd@^>w@TACVUGf9eucmAq6XmE9aaz{}jnksD z2<5Ejw9P%??Y&<3RmY-h9o3gMF~~4ujOj9G#+b)W6f?GW?@wA8N%&;V8GRRDpZ)lH zo+5NxQFZ``#zqek_orJuI%yxs)-xjciwh-nm^YX}XZ{H@ceN!i&rH!wcOcbsFL zirqUc_OVcU7Tdx3OzJyk=d|Gm(>?$>WO;{JGkoeyL9d_G81P3;4A@wKSFeMAqKzuidA)N%Q#Fed~*M@>g%_vplq_V<8vLyl=!GWzXHh zdGOb+uoQSU#Zqh3L` z{6~DzB{znw4|c-4>1XXYM(NM`qGyG7b7mZ8@x!ye@J+Kacjo#R#3EC`KM4+U)^`1c z^#k|O_lT`!n04&P6n+yq^Z6Asp0wVEW_k`OayJ1y6fIWhB~wo!lhtl&U(6F&8iD_@gOhprF8*L;V= z3-F(FjKT0>6wk;w=g)WM}@OiCs z9=yxsp=7UW)Rx?nT(iak9U%2!#om^Ed%)nm^5Ud} z*Usbnw(7ekE?}(t>+O31_U#lugSv>oA$I7iGw-|cSMOn7;=32ke*cBZ&N%M+9V>g{ zJ3AfFuh*&r7EihB4&ys0@1g^KvV#uzQ>z13;Hf`F4p)#lm1DDyJ1uu7ynR1s#}Uw< z(*fu8TE}q~-u5y!dEaNP4)`zVfRn(lLtm!@{)^QCee@k>bijFZ!2Rv;`pr2lhx}{g z>@#?6&dr@%Q3G6x9gvtw6NwIQ52 zvCqak*xo4KiTtNzt*JlGbK}?I)3@{34Ijv?Q=Y}gu{E~FlKMO4Gm;;N$MAJtVNNeI zh}5@4cYL?uEoXE^*CUOKQJWFg28e%b{9x>ufuDwbgE_ar>{(Zz z863dN2f%@>J?iRDtQT=LrUVYsYhK&=V*kA|e`>qi@R_$U&w{iu=K*Htxqp|;6I#d` z$(F6%%J-ttIrz}APe0gsE_;m6V9tkf^PY0JQF_}oFzhv(X`ffp?^^FEZ8c`8<9|`d zt*-u*%Ib0c9t&IKvCzHw46XM5Z|T@&{-X9Pu?smRYPzE_O_~#(=7Eg-Z3lW^cJt_D zr+DY5(AO8Sz4$SHKQekPx?lQ+miuI^7xdb!sV*8AS)Xx0*Mk8g;a9WHP~^nGIO%-+ zBoEQ|Z(Cogrfs#4dEdQf=$-D1ciyGrHR~aO|B*UloLK|@ISYRx0bgvBj%yA0Z#VE8 z*#B@Zx@2Gd+4HGe9vYQKebMMpYV3S(e`~Z(f6F|8+fNXy~q51%)U31crS48 ztubc&ZfHool<`_y-$d{GsuwaiH|KhpJyEu;=0$CsY3rouKjfM7vn3{+LZ0F4Z%kxk z!UyBpmSWrQvho0Vw+{$-=>^Wh5=(w!h?tQDA0k_kf0jFoGG5OO z#gv@z`vH09xsY!FnRQ~UKko>e?~gBg{^1IIUA!7SK;Fw=$C;d0KYk?e*t2-e6UX>_ zoO1w0KO8$K>uk*aUU??8KCb#BufHEYCVL<^XTEimXHEPykIR{LRyQSa&0dRNm$|TZ zBVY_$@%_u_4`S=+47~?!ez)V=yPb!>>Dfq0eOk-dlwzze8t9vL9nO3=TfHfDe6e9t zx3~IRzUdr|)9LRdy=OB04Z8lMuQVR^o@>|TGM+3y^zOGd4?V7H7fvef&HmGEiEpmU z_n#)N(BGX_51xcaWX&Kvalp%I>|F>On&WrYk+~_m2DK(@w8G&pwcz7W;;Bx$hW$94{r4q_GwgVlRyvQT{}&XW ztn+0IfsAK5*x~u*MNjY5SL8Q|EvOqz2fdf&H^x6}bM_{7D8Dp8d%c!^(mZmLo>3*f z88xUn?TEYbGvV-;#U3yRiN(eKXYFP`YjMdz+c|)PALjo@Sg$qu#L$$---#!NSkF`0 z?)%ln0JxJfe*C_VN$kQJs~Nk->f^G;YV5JqPxy~cw8q9)Kk1K6wZ`7F`YHe2Gp*^# z-WmUWXY13?@cw&uw!-%%bTe|~&sf}m*UvK-|AIfvoF>8Z zp&zMFPi)KkPo4F+pDaANv+m}VUH8e^sL!cCtTEdGY7gF$u0zxK>*+fFXio7t^sLbS z*X%hE#9E&c+84na{R!T(IJ@q9#m3;11mW<1dg0u1`PC{W!72D7^dF z8Q?Asf)~jl2z`G%T}%6-Z}?4OjxUZH8bFWXCHy1dQNKg(@%m328PXbA&B*ji5@W+7 zz0mSS=w#ka&w1~E)A!!9P*eGOcQ<`5Sh{!DkzWrO*zQN9e{j}GM)uhH>HKBpB=HnH zy8Wc`sN8Fg<)ym&t(}(n&kFv=FWopZHastW$zJ=-sh+)@Y0dMG!$&J?zkkbrk~xfD zTF1Vj`OgWAv61ztFqBm`hLi_vp z^uxUq{>Wm>tjFCc>tVN}pYpPAfica5)vt(dBX9iIZfMr|5<4}yfDc-Hb?a334LF3 zoFiYZ>l&rQ`vc@5Z{}R=z*{^2Zv&?x^i??M=Tnxxk_Tc<5aX)x3_TQ%e9^3_I*ffQ ze{oj(C`lhn`02oZMdqH>8Q1^srVsM?aUaW>K7#4Wj%Cra;qXf$Kgbq(rToQZeMjb0 zJ$K&d80jOc2X6MYk7`rsr@kq+q+k0`9`CKgw`N}MzOo~*dfl|IY&)O42k$mE$l`v# z-GkK>8fgv&*mJfo%^NUQp|SpkeyWnwc$qrUf0FfV-2b%ZzN%*~!Vh0U-%4DOGxJ?q zc5_VAdyk3F%-TSeL*%!g_pA&qEjd|8zjyuHE$)RkZ0^CAc*M|Fz7rz+M|}zVZ}|^g z4|#_Fun*{$3E}HB-2ERlu}1Txfh+X+a*Jz`9pS%~1pkG`hv>wAyFPB=h;Cqfvt>dV#(`(*$JQr+lqHQg)0J&2$$NNk&fu<% z2Y=J>JGteU2hV4Cu;2X#&(+|;KY<6oDm+MTYDsN^oLi{)^{#qiC@(&b$WNhQ=#ETh z>3(yM!R5U0p3)1tU*_7<{VV+mx=*f6_x@`voT7sR{+CiTVO+A-0opGa+P`!mhJEhx z+OTix_s`q8#NlueGlMUzgYT?)ZuqvOlf^4}C`H zqxdrQU9o}2uaULyf_GDQzhLl?N2arW*|l!peu57*-{f>g&8(AYUXVQqCf?KfJ$?>4 zLca}?wNp3lF?^HEMKxD-Jfeq6UZ`jKSDUNkU_@71{+I8KV3UY1+I7N>_ZXTrYC2zZ z0{Iq^S(7s{HBWP$Tt{ur6;OU6Cpo(YKm3-3Exe~RCr8`RYxQ*+Q|>wP|8{ucYIxzA zcuh5QitE5GpYVJfhprD3>&0fRkNsKWW0U8#z6w5WZ`#MjCTL70KCbN15Zq+-NI}o> zQyrx1#n74d9ciDoHU3}8Jo(+XH3H7~Q5?GUVl{`KtnWddqQiPI&2<&kcP=mF;n6&J zvT^1Ddylj0#TJ-{J`>r>$$P}nIT?HB^&3_w zzUuLPO>(qScZ=4GQ5%2Nzs|lp39hs2#r({Au_@Z%7xZF#si8?-BfVa1qSNoJ7aP>J z>Gfg;PV}45abEZr9#cO-{0Gw}F>cySnLLMEFJ|}5%X6z6;ZI+$4G!O7Yb*B5GIwr2 z`D@3|CRb~Ddwy1*D{tExjoMho60H}5XCvL@);4_8^7qWFNgYC;D1K1hxWJdlO{Urq`hymI_Z4;-eQ0J-ojw~d|}i)?`fd} zFB<<;#+Rk(wZCoWEB3?c#s%R8@+jD?Ve)6P=HgJF(!ls@2u6zcxAzK;n8R`mqe*-E zdnN49=iWD%KJhUvj?veJ!V#%`1=POa(P&>+RL@WNSUtr^-o;<$tZ75bd}ds?HKZRM z6S@hXaLV~S>G9w8qQyZzF@C{;IUka97o81&=04|SHMEu=@$_Om@5dIG!NoG|8lM~D zyU?6nrf`(!$YDDiCvb(G`x)^Q`L1vNxxjmr_gBLz|A)0U3+|uBKUtLelEm=Bcg0^C z+P4CqB*ryg)G_M%yTwqiHP5&Zey;8OEqKk1gIxaSO1^x*I*gy4@uM-9&-ivMs|E+; zDawlt1E25Im-gMrm{}_#<84Y^fbr`3k=w|n>$?$LGbb}PGbgF}+cg#oQ@>QwIZeg= z%$sY?V=d0;bFFVL%zW-p_XK=Bqy6bx6wUKS{A=gbi27zMZcfw%59nA?;o#PTMvWMb zoTcV<@V$3jV|gS1j`girYrLj@x-qdA8h(vqhUZ^T4RWA_?67w@q02kiz4hN@-|%fW zDgXbS_6=XB`~K1Ak{7YDm92XVPnW{K!@l9$k>h3fxlv5OUe;>^drEW)axe((ZOn}= ziE<2U?;ED3_kx8jKDZmV=s1lVzx92?x4Sz2L=11iOThaU_YL3vi*|gHm$2hoFgTXE zm;WyNhHq0}3cSt$+r$IqSi{SI`X&b#(y}%IqS!~FnpBr zNlV@YwukeShFa8ib9#N`m|TlLgr1i?WJBuLtowSm&|myDuGN>Rk;j1db$>58lW2c$ zhn&fJ-<*Li>wEl+?!WUR)>cZ6rl>JqRbngF+l(|D?KSiMzqYmTqN#RH+6UIiBM zh{U!wW_N2eup{CVc$xlh-)(tFd{^NibaT_^ns}S__2xTp9{M@4&b7JXcov;s8@MRC zj{h%b@pp&Gfg4_N@+11r=3R)(9p9$b!OX|-%T3cpd9G>w=4?N=-)-lxl;Bm-0qXZL zMv*b)VR$u!SM&H{neTkT2k{y8E+?}$&dGGaCv#DJp!}ddKXen`5c^VYOke{hWZgY@ zOYHI1v&y#Hn7fzXwn)t!oXQ>)Imb+X!=EE&<@`qZ9XRg1Eomd?@ojg{Y`ZR556N%a zrC;PFhYU=FLw=F}@?Dx1yrRB6zsov7d@;v2X&wN^M&TQ~1`s^7tszO`!Q>dLGrDGo zx$8OT^ij}jgNKl@h6y|*=X#Bu`*qBT@7Sl#DwN-%H4=7ip`DwY_fxQQn`1t1U8T&E zxS;dgPIx!`rp)aMuvTJN@W~Zn?b7_I#S=NaES{1v(z?qLzleW%6#qc{)FbH5#~P>f z`cbaO;Td^8#&xwRvf=Wv_@mfwa+_&=ai`mlFEWbn0pC@1ZJWH;YS&?X`VA)N;r4uT zE|c@~$gK{`H_fCUk>6}zTTSiD*j5|=%!iCo_+9MFd3dhKz0Kiqjsf@3D9c}s!6 zX*++7Zx)^DV!w-#;vx3yTAgEfNZutcpgc6C*D(*V$yIsC=egw}$&YvBp)XlGk>nw< zacl6<&gVqGLNk{KhKJx);Xn1I8!Kz`5Z`T${WHr$TBmb7G??L`Vh0|Y_||ynEbZs{i@9J5{gC=jZAhuT4iwC?@Z1-#KJYxAy z&QMx_hh9XR4EEBX+Q@jpq8`@dj|Po1bb?OBg^$$k~rA zcnN)^b+fv`bru&_|BfB+Y&5Pic|7N1ChC9ker9~S|L4xqiBFp|D7+8ZJwG477Jdl* z^8v=S;`(j3!*_qy_I;ZEaweasKC;?aQyWIcA{kuYA4<35T`6o1g1E$+U%G^csFql=#Y zjo0FyPxw#P-%i@TuG8^&>-O9w9ru#+*V^N+9bc7LYW!010P|z*rJoxJCp;bNC1Rs-NH&)_SY*#FqO zTl`k!H~nT&7AEt%LGbaM#;J`R-1AM!#&&SCjlbJE=^)w=%PdQ6kl*uaLL`m_FD zwp!?Je`2_mhfc%a* zGC68;XwiG(SFQe>uj_v0`wZO^^t&p4z0srUGub}Y`nE*B+b=J+(Aog&S78I%_2?}> zB;$t`Zxg=`-VGDu;XH`de`?MQZZ7|e!@b1C;BzW$M-?|MLXY#vdMQ1aNE_d}p zV6?@;$@5XW@S*0&ouI$jv(|2#?|DLWBYKCtnZ%^z9Oas|NcipY{XhBMpL_>tg1pui z^!Td&&iTmTZ>zKq59P^uH1lSB#PpQ3>T}OtHXZeWyqq@$?_9BP#w5+vfkyWAxgYOrU;7A;n!MWY2gtd1dQWgI(`iUa+<_x8L0 zp_zf*@4MZ%Z{NOs@9lg0?ee;|+r4{PsuQxtq{}r<)%{o)%eO%{@Ut;lJ8#gOzGY94^L+MA zw`tGvbc`wN;jsJ*1S7N|TQezb^msSPV#_Wp( zydO|H)WPkuzY4Y>`woZ?1Cr-BV|P&Q`RNi`u{|CLMQ{m#-~3TL9|+;Q^3d*O=@yKU zL;6ZKyg!UTWc^N(^*E0~Q?M1Ssa!z%mY<3_L$L9$$gl8Z+)Pn?VcMOaP3^dKdZ3+f zeYEquYR9VD2}bZCJn^r@uY5?8HMC`wu_M2Jk7M_;T#8eLgf7{HM^L91=)Q~TUee>* zvpm~D>rJ6at_$U)4)bxq5rwaNS3b>apDBWGKya7-x&SBo*$r9(52B?v6v5pW)aj2t zc1Rz)U8;|oUXIi7y>Xb!VSiZIF1j(|OCKTnK;2=X?2)m_bz2VWHpT&aRzZv1!h?KX z1=}i@zbD$>MLGM12IkL3^(zbf)nJKNDYatk~<2 z@%FgF^eghXxu0sUAoO+KB*2UEVH+cGJpxN)tt$$y;v-r&8~jVlP;6ka6iV0XrRY$N#{@u zDTwhk>#{7-f04s$DZsWw!6q9(kKaxNo@W4?#z)^%tn@hK^gpv0B;H49gM)EbEAjF?^*?qYzrNpU55wW+8)jqbOpm@3ZO5;<-PDPCDV^NSqe7! zG<5%uhx0V<1)g60J>(Ag`KQ7b%!urv25(-FcSp%u3bq4y#6vj5@?Gv((o1LqHYc~I z_5=IKE@ImgciED>M(mYhOQbI?aWKYk+zj-DUqqX&;;nU%Q7?#$@>u{&)>9=u^0&bE zOR~QUx)Sg{2i@UQO}x)_{*cm{giE2sc)E?8C%Xja#lg0n!*OCg##iDy4ETi-C&qrR z3&)8c2Mh=LZdSe|%%S+Xog?257hxQDZjgM$7}Ff&c?W+Vy=Obgt9TOQoDf4=$bMUl z=V7#`c*sA*c^c=Xe)9h@e?p%g43~iqG@Qp>GsE!EYl?>kP*(8}bgb@^!yWGWd+^XY z@X$i=P_E8Hu-_09?_&Os<&B(>f=lB^IFoMZL>~S&j)^adtQ#X|(J;QuyWUXd0L>{H z-vqwX_W%`gd6pr5$#Y%kbDd5FutoGd?U&N&w3PL~qFEQq<#@XbvP!-|E$|Qwoi=Tp z7aSkf--9;gpv?l%CWmN)=LL(c8vGlWLlHfmWL-4U9JbkMo~?w=59bZZC zLHkP3ejQ?*o+R<9O8j0$aN}Z})K@*mX=i+6;!|Feyo-rX5$(~()|mc9wNEl+nD`XN zI?M~<7-y7Cm)gs`06u{H+e7j%c1{_N;q0%B@OYMBpJ`YgV!m8Z9$xihC94ZXR{Ndk zhurm4Kzm(`Gt{|qVjtj)G3FK6(2(KOrwhn%%?EkR@+B7EnS+W43js^*{qdD@o_VSZ zGL!V0DNZNMnxyKrp)Bx8CwXn=JjoH8QS!9jS?cXgl)DS%EH$#(B664P6Op?mh?Vg< zPqc2JJw+sEphFVmZm!J#82RnDGE8b4c+fftzD1GgY^N%jE_Rh$bY3zUwn)xfiE}&cD?Xie48frNugYg#AgE!bDq~>Jx=5yKdY>X{61dy>7KIN9FU_u z?dTW#9uoUCev6WugZPft6NS@2a-7D?S!#0MpR#q-J`a}d0g~l4(Xt$Jdy>-aS;(IP zf1Lw=eXqk$oM&0(gcHgQqTD&$-FjA+3z;XKapRJ8H^~MaRxF*zeoJt`Q#SDRUS4Mx zcr}bW?0?@G*^@sCGDF#puq|TioBl@i*>}p{1E8$UNU;;peKzX#3^Bj(etf?X?;)Ee zgO7Y{|BxJOwvHU2z5R*y==jZw7K6!gA9qxZ%W0H5-JCaafMQQ9_vD_%+2{l9=Y%ag zIVdpV<>u@+^tvjJHGpTp!Nh^@9`lUOcJKT@Fy5y+kZVi0uh`!M{|L?rp}wxd{dshT zt;lTYXZ-k#hYkY`3p^gwSNsxia9;T3VT|!9jPW4O)!p7)MQ6c`22W$&fPOUIna4oC z{`j$(b_e`Rh42B{?d9HH==ef&*?P@h;Vc9Uv$*mrEfx((VjKPF#4tfvLd{fHXLJ)^5Le$$ktd`V~>>;TT>EcY}zvN zhYL?w;`(%PKmB$O&TGWHn27o)7hfiAjnt=cjsNZ90s5_M<(Zd^E3Cn?+s?d9XZayE zgFAQ~8f;YJC%buVcTjw;j=1)(Sj2I1J})%i1v*VcJVEx>P%IenWY}<*z-NwcR}j-> z8OgCG(Gl>EC!a5AZOSJetrN~mY$p0VstIP^H&fXTU$_gta3^H6gZ<&Lw4L`ootYu+ zKZSYchdrZ#9>%!-%zTFU8|9RY?jyfY4f&)e+gzmQQYPD+G~a^YGrE@*zJhKSbdH_u z7=al-Z?AxC@IE)i_8`~CI3b4S-7&@13OHS)Gj9Ul4*&+{{%|nn?1y|ZMey&bk@;8U z()*El68%5!jO$Mt)^FW4s0X_v&q`%u>5?-*{UsSfeFJXIn1|G7*ixj+{QWxo*m{QL zN)9MIQeB|0q$1EUSn4q%ZCQs$*S&bvfDi51LW~w-#+X8 zY|uJjLVsWn}Jf{_f*ofbI zEjqt|Ulkni%Sp%t$hg@4822foS+{mWpOP%XTvakQu6?Cr*#DxpZ;Wc+h4x72=+@Y@7OJKi-`_axgua}3--aCMCC^Tb!B=+0D z{YJg57>g&$O1#gNt@Q4&*Y&yWweHe8YTcT>5%~s>|B-2x`yo#dv3TrVn2mk`zb~wDFvjmC7>M)Z8+mVr&X%gi0y%kP^+uB^Qp=Et_b2%f_Qd7%su}I&y@Sl5H zH-D1zG*C(HSdAH zv{!HZU0wPK$MK@7!#8eNe8t^0&+PipC*{wdUv+cQ%_X)+0_pA9v=@a4O6 z=f1e7amRv@#s8l5$N!xE<^B(Ux-;d!)q6fEUtzt;TJ=`L*fnYQe{<_K=T~oh)l_@= zJ-=9Z`;E>kcP*OsY?f+%nB;QfFh6J$LOs4cRm1%nexI^o?%dNEndR4?{ASU}8(uuJ zZTh+U2aipE`Yzx3vwvMs`caTeres?rz3hNWOI7-mO4aYP4$1Q@r%F>LHF;E;C+Q5V z$ncjkLzpUMhC!aQ`c&$WbozIaUYf1aX`E``3mk3eWqBUzkn}6TLp$+yY-e9qRWT>i4Z?DZkYu>CX#QYL#@;S1SEn(l!OJty7+zZIageC9TU)sZr9(bV=`2 z?Nlf{)(IW8b<#g=tx3wQoTpOte&u88`9YQ5r_xqQ?Hww8R?^~WlKx~sr6EbLJ1FUF z)$ch9&TQ4cY*l||m6S8REa{9PmA0!iSJEu?dsd-5PyIpCi&bjum1m=(*97%`oWggU MYHzgqeN6xV0L4;$;s5{u diff --git a/fixtures/mock-token/mock_token-abi.json b/fixtures/mock-token/mock_token-abi.json index e9c0605..ef24941 100644 --- a/fixtures/mock-token/mock_token-abi.json +++ b/fixtures/mock-token/mock_token-abi.json @@ -14,7 +14,7 @@ { "type": "enum std::option::Option", "concreteTypeId": "0c2beb9013490c4f753f2757dfe2d8340b22ce3827d596d81d249b7038033cb6", - "metadataTypeId": 0, + "metadataTypeId": 1, "typeArguments": [ "7c5ee1cecf5f8eacd1284feb5f0bf2bdea533a51e2f0c9aabe9236d335989f3b" ] @@ -22,7 +22,7 @@ { "type": "enum std::option::Option", "concreteTypeId": "7c06d929390a9aeeb8ffccf8173ac0d101a9976d99dda01cce74541a81e75ac0", - "metadataTypeId": 0, + "metadataTypeId": 1, "typeArguments": [ "9a7f1d3e963c10e0a4ea70a8e20a4813d1dc5682e28f74cb102ae50d32f7f98c" ] @@ -30,7 +30,7 @@ { "type": "enum std::option::Option", "concreteTypeId": "d852149004cc9ec0bbe7dc4e37bffea1d41469b759512b6136f2e865a4c06e7d", - "metadataTypeId": 0, + "metadataTypeId": 1, "typeArguments": [ "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0" ] @@ -38,20 +38,40 @@ { "type": "enum std::option::Option", "concreteTypeId": "2da102c46c7263beeed95818cd7bee801716ba8303dddafdcd0f6c9efda4a0f1", - "metadataTypeId": 0, + "metadataTypeId": 1, "typeArguments": [ "c89951a24c6ca28c13fd1cfdc646b2b656d69e61a92b91023be7eb58eb914b6b" ] }, + { + "type": "enum sway_libs::asset::errors::SetMetadataError", + "concreteTypeId": "c6c09c148c1a1341c7ab81697b3545cc695fa67668a169cddc59790a9a0b6b44", + "metadataTypeId": 2 + }, + { + "type": "struct standards::src20::SetDecimalsEvent", + "concreteTypeId": "fbe071a6e7ca2b2b5e503e82638f9f11c861a6fb452b65473eca8260db87392d", + "metadataTypeId": 5 + }, + { + "type": "struct standards::src20::SetNameEvent", + "concreteTypeId": "6ce295b0fb4c1c15e8ed1cfa4babda47d8a04940a5266a3229e12243a2e37c2c", + "metadataTypeId": 6 + }, + { + "type": "struct standards::src20::SetSymbolEvent", + "concreteTypeId": "a8a4b78066c51a50da6349bd395fe1c67e774d75c1db2c5c22288a432d7a363d", + "metadataTypeId": 7 + }, { "type": "struct std::asset_id::AssetId", "concreteTypeId": "c0710b6731b1dd59799cf6bef33eee3b3b04a2e40e80a0724090215bbf2ca974", - "metadataTypeId": 3 + "metadataTypeId": 9 }, { "type": "struct std::string::String", "concreteTypeId": "9a7f1d3e963c10e0a4ea70a8e20a4813d1dc5682e28f74cb102ae50d32f7f98c", - "metadataTypeId": 6 + "metadataTypeId": 13 }, { "type": "u64", @@ -64,8 +84,22 @@ ], "metadataTypes": [ { - "type": "enum std::option::Option", + "type": "enum std::identity::Identity", "metadataTypeId": 0, + "components": [ + { + "name": "Address", + "typeId": 8 + }, + { + "name": "ContractId", + "typeId": 12 + } + ] + }, + { + "type": "enum std::option::Option", + "metadataTypeId": 1, "components": [ { "name": "None", @@ -73,24 +107,114 @@ }, { "name": "Some", - "typeId": 1 + "typeId": 3 } ], "typeParameters": [ - 1 + 3 + ] + }, + { + "type": "enum sway_libs::asset::errors::SetMetadataError", + "metadataTypeId": 2, + "components": [ + { + "name": "EmptyString", + "typeId": "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d" + }, + { + "name": "EmptyBytes", + "typeId": "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d" + } ] }, { "type": "generic T", - "metadataTypeId": 1 + "metadataTypeId": 3 }, { "type": "raw untyped ptr", - "metadataTypeId": 2 + "metadataTypeId": 4 + }, + { + "type": "struct standards::src20::SetDecimalsEvent", + "metadataTypeId": 5, + "components": [ + { + "name": "asset", + "typeId": 9 + }, + { + "name": "decimals", + "typeId": "c89951a24c6ca28c13fd1cfdc646b2b656d69e61a92b91023be7eb58eb914b6b" + }, + { + "name": "sender", + "typeId": 0 + } + ] + }, + { + "type": "struct standards::src20::SetNameEvent", + "metadataTypeId": 6, + "components": [ + { + "name": "asset", + "typeId": 9 + }, + { + "name": "name", + "typeId": 1, + "typeArguments": [ + { + "name": "", + "typeId": 13 + } + ] + }, + { + "name": "sender", + "typeId": 0 + } + ] + }, + { + "type": "struct standards::src20::SetSymbolEvent", + "metadataTypeId": 7, + "components": [ + { + "name": "asset", + "typeId": 9 + }, + { + "name": "symbol", + "typeId": 1, + "typeArguments": [ + { + "name": "", + "typeId": 13 + } + ] + }, + { + "name": "sender", + "typeId": 0 + } + ] + }, + { + "type": "struct std::address::Address", + "metadataTypeId": 8, + "components": [ + { + "name": "bits", + "typeId": "7c5ee1cecf5f8eacd1284feb5f0bf2bdea533a51e2f0c9aabe9236d335989f3b" + } + ] }, { "type": "struct std::asset_id::AssetId", - "metadataTypeId": 3, + "metadataTypeId": 9, "components": [ { "name": "bits", @@ -100,11 +224,11 @@ }, { "type": "struct std::bytes::Bytes", - "metadataTypeId": 4, + "metadataTypeId": 10, "components": [ { "name": "buf", - "typeId": 5 + "typeId": 11 }, { "name": "len", @@ -114,11 +238,11 @@ }, { "type": "struct std::bytes::RawBytes", - "metadataTypeId": 5, + "metadataTypeId": 11, "components": [ { "name": "ptr", - "typeId": 2 + "typeId": 4 }, { "name": "cap", @@ -126,13 +250,23 @@ } ] }, + { + "type": "struct std::contract_id::ContractId", + "metadataTypeId": 12, + "components": [ + { + "name": "bits", + "typeId": "7c5ee1cecf5f8eacd1284feb5f0bf2bdea533a51e2f0c9aabe9236d335989f3b" + } + ] + }, { "type": "struct std::string::String", - "metadataTypeId": 6, + "metadataTypeId": 13, "components": [ { "name": "bytes", - "typeId": 4 + "typeId": 10 } ] } @@ -292,7 +426,24 @@ ] } ], - "loggedTypes": [], + "loggedTypes": [ + { + "logId": "14321618427101975361", + "concreteTypeId": "c6c09c148c1a1341c7ab81697b3545cc695fa67668a169cddc59790a9a0b6b44" + }, + { + "logId": "7845998088195677205", + "concreteTypeId": "6ce295b0fb4c1c15e8ed1cfa4babda47d8a04940a5266a3229e12243a2e37c2c" + }, + { + "logId": "12152039456660331088", + "concreteTypeId": "a8a4b78066c51a50da6349bd395fe1c67e774d75c1db2c5c22288a432d7a363d" + }, + { + "logId": "18149631459970394923", + "concreteTypeId": "fbe071a6e7ca2b2b5e503e82638f9f11c861a6fb452b65473eca8260db87392d" + } + ], "messagesTypes": [], "configurables": [] } \ No newline at end of file diff --git a/fixtures/mock-token/mock_token.bin b/fixtures/mock-token/mock_token.bin index 9caea71de9c2cbdea8c369ca4fa2802ff4defae0..65e0ccbc3d7efe060ae44c1b1b0303e14d762fb7 100644 GIT binary patch literal 25384 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 U@L!|L=Y~#oT_dkPU0vJ$H&ETJ^#A|> literal 28176 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 diff --git a/scripts/add_liquidity_script/src/main.sw b/scripts/add_liquidity_script/src/main.sw index db65bdb..d9a83d3 100644 --- a/scripts/add_liquidity_script/src/main.sw +++ b/scripts/add_liquidity_script/src/main.sw @@ -6,7 +6,7 @@ use utils::blockchain_utils::check_deadline; use std::asset::transfer; configurable { - AMM_CONTRACT_ID: ContractId = ContractId::from(0x0000000000000000000000000000000000000000000000000000000000000000), + AMM_CONTRACT_ID: ContractId = ContractId::zero(), } fn main( diff --git a/scripts/add_liquidity_script/tests/utils/mod.rs b/scripts/add_liquidity_script/tests/utils/mod.rs index 371b316..dc6fe49 100644 --- a/scripts/add_liquidity_script/tests/utils/mod.rs +++ b/scripts/add_liquidity_script/tests/utils/mod.rs @@ -1,9 +1,9 @@ use std::str::FromStr; use fuels::accounts::wallet::WalletUnlocked; -use fuels::types::ContractId; +use fuels::types::{Address, ContractId, Identity}; use test_harness::data_structures::{MiraAMMContract, WalletAssetConfiguration}; -use test_harness::interface::amm::create_pool; +use test_harness::interface::amm::{create_pool, initialize_ownership}; use test_harness::interface::mock::{add_token, deploy_mock_token_contract}; use test_harness::interface::mock::{get_sub_id, mint_tokens}; use test_harness::interface::AddLiquidityScript; @@ -23,6 +23,7 @@ pub async fn setup() -> ( let (wallet, _asset_ids, provider) = setup_wallet_and_provider(&WalletAssetConfiguration::default()).await; let amm = deploy_amm(&wallet).await; + initialize_ownership(&amm.instance, Identity::Address(Address::default())).await; let (token_contract_id, token_contract) = deploy_mock_token_contract(&wallet).await; let token_a_id = add_token(&token_contract, "TOKEN_A".to_string(), "TKA".to_string(), 9) diff --git a/scripts/create_pool_and_add_liquidity_script/src/main.sw b/scripts/create_pool_and_add_liquidity_script/src/main.sw index 4a50604..6c9f630 100644 --- a/scripts/create_pool_and_add_liquidity_script/src/main.sw +++ b/scripts/create_pool_and_add_liquidity_script/src/main.sw @@ -5,7 +5,7 @@ use std::asset::transfer; use utils::blockchain_utils::check_deadline; configurable { - AMM_CONTRACT_ID: ContractId = ContractId::from(0x0000000000000000000000000000000000000000000000000000000000000000), + AMM_CONTRACT_ID: ContractId = ContractId::zero(), } fn main( diff --git a/scripts/remove_liquidity_script/src/main.sw b/scripts/remove_liquidity_script/src/main.sw index de0c496..97babcd 100644 --- a/scripts/remove_liquidity_script/src/main.sw +++ b/scripts/remove_liquidity_script/src/main.sw @@ -6,7 +6,7 @@ use utils::blockchain_utils::{check_deadline, get_lp_asset}; use std::asset::transfer; configurable { - AMM_CONTRACT_ID: ContractId = ContractId::from(0x0000000000000000000000000000000000000000000000000000000000000000), + AMM_CONTRACT_ID: ContractId = ContractId::zero(), } fn main( diff --git a/scripts/remove_liquidity_script/tests/utils/mod.rs b/scripts/remove_liquidity_script/tests/utils/mod.rs index 9945e0a..74b2cff 100644 --- a/scripts/remove_liquidity_script/tests/utils/mod.rs +++ b/scripts/remove_liquidity_script/tests/utils/mod.rs @@ -1,9 +1,10 @@ use std::str::FromStr; use fuels::accounts::wallet::WalletUnlocked; -use fuels::types::ContractId; +use fuels::prelude::Address; +use fuels::types::{ContractId, Identity}; use test_harness::data_structures::{MiraAMMContract, WalletAssetConfiguration}; -use test_harness::interface::amm::create_pool; +use test_harness::interface::amm::{create_pool, initialize_ownership}; use test_harness::interface::mock::{ add_token, deploy_mock_token_contract, get_sub_id, mint_tokens, }; @@ -27,6 +28,7 @@ pub async fn setup() -> ( let (wallet, _asset_ids, provider) = setup_wallet_and_provider(&WalletAssetConfiguration::default()).await; let amm = deploy_amm(&wallet).await; + initialize_ownership(&amm.instance, Identity::Address(Address::default())).await; let (token_contract_id, token_contract) = deploy_mock_token_contract(&wallet).await; let token_a_id = add_token(&token_contract, "TOKEN_A".to_string(), "TKA".to_string(), 9) diff --git a/scripts/swap_exact_input_script/src/main.sw b/scripts/swap_exact_input_script/src/main.sw index 0fcb321..9d457ee 100644 --- a/scripts/swap_exact_input_script/src/main.sw +++ b/scripts/swap_exact_input_script/src/main.sw @@ -6,7 +6,7 @@ use utils::blockchain_utils::check_deadline; use std::{asset::transfer, bytes::Bytes}; configurable { - AMM_CONTRACT_ID: ContractId = ContractId::from(0x0000000000000000000000000000000000000000000000000000000000000000), + AMM_CONTRACT_ID: ContractId = ContractId::zero(), } fn main( diff --git a/scripts/swap_exact_output_script/src/main.sw b/scripts/swap_exact_output_script/src/main.sw index 9d87a2e..2ffc62d 100644 --- a/scripts/swap_exact_output_script/src/main.sw +++ b/scripts/swap_exact_output_script/src/main.sw @@ -6,7 +6,7 @@ use utils::blockchain_utils::check_deadline; use std::{asset::transfer, bytes::Bytes}; configurable { - AMM_CONTRACT_ID: ContractId = ContractId::from(0x0000000000000000000000000000000000000000000000000000000000000000), + AMM_CONTRACT_ID: ContractId = ContractId::zero(), } fn main(