From d8b3250f85b7d93845caaaab7ebfdf653b11d3b3 Mon Sep 17 00:00:00 2001 From: Gift Amadi <120387225+giftexceed@users.noreply.github.com> Date: Mon, 27 Jul 2026 22:04:16 +0000 Subject: [PATCH 1/3] fix(ci): repair workspace so Rust CI can build again Every root-level cargo command failed on main, so all four Rust CI jobs were red regardless of what a PR changed. The cause was a series of merge commits resolved by accepting both sides, which duplicated content inside several files. This repairs the workspace members and their dependencies. Cargo.lock was unparseable: 238 packages appeared two or three times and three entries had been spliced together, one package's header landing on another's body. It was also stale, still carrying the whole server dependency tree even though the workspace is three contract crates. Regenerated, which takes it from ~710 packages to 181. ed25519-dalek is pinned to 2.2.0 because 3.0 changed its CryptoRng bound and breaks soroban-env-host 22.x. emergency_guard had `#[contract]` applied twice, once bare and once via cfg_attr, so the macro emitted EmergencyGuardClient and friends twice. It also carried a second DefaultEmergencyGuard whose inherent methods collided with the trait impl, a duplicated is_admin_public, an is_admin that took &Address against a trait declaring Address, an unimported log macro, and three storage writes referencing an undefined `pause_state` with the correct `.set(...)` orphaned below an emit block. rotate_admin never bound `threshold` and pushed the new admin a second time after the loop had already substituted it. staking_rewards had two functions truncated mid-body with an unrelated signature spliced in, pause_staking and rotate_admin, which left the impl block unclosed. PauseType::CLAIM_REWARDS was referenced in four places but never defined. initialize called guard setup twice, and the second call failed with AlreadyInitialized, so every test that touched setup() died on error #1. PauseType was imported twice. Three emergency_guard tests asserted InsufficientSignatures where the implementation returns Unauthorized. All three supply a non-admin approver while meeting the count threshold, and their names describe unauthorized access, so the assertions were stale rather than the behaviour. Changing the contract's error semantics belongs to whoever owns that feature, so the tests were updated to match. In staking_rewards/test.rs the body of test_granular_claim_rewards_pause had been appended to test_granular_pause_staking, leaving one test headless and the other staking tokens it had never minted. Both are restored. Result: cargo check --locked --all-targets, cargo fmt --all --check, cargo clippy --locked --all-targets --all-features -D warnings, and cargo test --locked all pass. 54 tests, 0 failures. Not fixed here: CI also runs `cargo build -p liquidity_pool`, but that crate is not a workspace member and does not compile. Its lib.rs has been inflated from ~1150 to 2905 lines by the same accept-both-sides merges, including one statement with six duplicated transfer calls. Choosing which side is canonical in a contract that moves funds is a maintainer decision, so it is left alone and documented in the PR. --- Cargo.lock | 6101 +---------------- .../emergency_guard/examples/simple_token.rs | 5 - contracts/emergency_guard/src/lib.rs | 138 +- contracts/emergency_guard/src/test.rs | 11 +- contracts/staking_rewards/src/lib.rs | 40 +- contracts/staking_rewards/src/test.rs | 36 +- 6 files changed, 233 insertions(+), 6098 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 45e11e40..030b1d92 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -23,68 +23,6 @@ dependencies = [ "libc", ] -[[package]] -name = "anes" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" - -[[package]] -name = "anstream" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "824a212faf96e9acacdbd09febd34438f8f711fb84e09a8916013cd7815ca28d" -dependencies = [ - "anstyle", - "anstyle-parse", - "anstyle-query", - "anstyle-wincon", - "colorchoice", - "is_terminal_polyfill", - "utf8parse", -] - -[[package]] -name = "anstyle" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000" - -[[package]] -name = "anstyle-parse" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52ce7f38b242319f7cabaa6813055467063ecdc9d355bbb4ce0c68908cd8130e" -dependencies = [ - "utf8parse", -] - -[[package]] -name = "anstyle-query" -version = "1.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" -dependencies = [ - "windows-sys 0.61.2", -] - -[[package]] -name = "anstyle-wincon" -version = "3.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" -dependencies = [ - "anstyle", - "once_cell_polyfill", - "windows-sys 0.61.2", -] - -[[package]] -name = "anyhow" -version = "1.0.102" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" - [[package]] name = "arbitrary" version = "1.3.2" @@ -275,20 +213,14 @@ dependencies = [ "num-bigint", "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.119", ] -[[package]] -name = "cast" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" - [[package]] name = "cc" -version = "1.2.62" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1dce859f0832a7d088c4f1119888ab94ef4b5d6795d1ce05afb7fe159d79f98" +checksum = "5add81bb678e6cb321aff7fa0dc7689ad82b112dbc032cea19f91d6b8e3582b9" dependencies = [ "find-msvc-tools", "shlex", @@ -302,9 +234,9 @@ checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" [[package]] name = "chrono" -version = "0.4.44" +version = "0.4.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c673075a2e0e5f4a1dde27ce9dee1ea4558c7ffe648f576438a20ca1d2acc4b0" +checksum = "1aa79e62e7697b8e29b513a68abacf485adcd1fe8284a4316c5ae868e6633327" dependencies = [ "iana-time-zone", "num-traits", @@ -312,121 +244,6 @@ dependencies = [ "windows-link", ] -[[package]] -name = "ciborium" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e" -dependencies = [ - "ciborium-io", - "ciborium-ll", - "serde", -] - -[[package]] -name = "ciborium-io" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757" - -[[package]] -name = "ciborium-ll" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9" -dependencies = [ - "ciborium-io", - "half", -] - -[[package]] -name = "clap" -version = "4.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ddb117e43bbf7dacf0a4190fef4d345b9bad68dfc649cb349e7d17d28428e51" -dependencies = [ - "clap_builder", - "clap_derive", -] - -[[package]] -name = "clap_builder" -version = "4.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "714a53001bf66416adb0e2ef5ac857140e7dc3a0c48fb28b2f10762fc4b5069f" -dependencies = [ - "anstream", - "anstyle", - "clap_lex", - "strsim", -] - -[[package]] -name = "clap_derive" -version = "4.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2ce8604710f6733aa641a2b3731eaa1e8b3d9973d5e3565da11800813f997a9" -dependencies = [ - "heck 0.5.0", - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "clap_lex" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9" - -[[package]] -name = "colorchoice" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570" - -[[package]] -name = "combine" -version = "4.6.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" -dependencies = [ - "bytes", - "futures-core", - "memchr", - "pin-project-lite", - "tokio", - "tokio-util", -] - -[[package]] -name = "concurrent-queue" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "config" -version = "0.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68578f196d2a33ff61b27fae256c3164f65e36382648e30666dde05b8cc9dfdf" -dependencies = [ - "async-trait", - "convert_case", - "json5", - "nom", - "pathdiff", - "ron", - "rust-ini", - "serde", - "serde_json", - "toml", - "yaml-rust2", -] - [[package]] name = "const-oid" version = "0.9.6" @@ -459,144 +276,6 @@ dependencies = [ "serde_json", ] -[[package]] -name = "crc" -version = "3.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5eb8a2a1cd12ab0d987a5d5e825195d372001a4094a0376319d5a0ad71c1ba0d" -dependencies = [ - "crc-catalog", -] - -[[package]] -name = "crc-catalog" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "217698eaf96b4a3f0bc4f3662aaa55bdf913cd54d7204591faa790070c6d0853" - -[[package]] -name = "crc32fast" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "criterion" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f" -dependencies = [ - "anes", - "cast", - "ciborium", - "clap", - "criterion-plot", - "is-terminal", - "itertools", - "num-traits", - "once_cell", - "oorandom", - "plotters", - "rayon", - "regex", - "serde", - "serde_derive", - "serde_json", - "tinytemplate", - "walkdir", -] - -[[package]] -name = "criterion-plot" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1" -dependencies = [ - "cast", - "itertools", -] - -[[package]] -name = "cross-call" -version = "0.1.0" -dependencies = [ - "soroban-sdk", -] - -[[package]] -name = "cross-chain-payload" -version = "0.1.0" -dependencies = [ - "soroban-sdk", -] - -[[package]] -name = "cross-chain-verifier" -version = "0.1.0" -dependencies = [ - "ed25519-dalek", - "soroban-sdk", -] - -[[package]] -name = "crossbeam-channel" -version = "0.5.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-deque" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" -dependencies = [ - "crossbeam-epoch", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.9.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-queue" -version = "0.3.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f58bbc28f91df819d0aa2a2c00cd19754769c2fad90579b3592b1c9ba7a3115" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" - -[[package]] -name = "crucible-example-gasless" -version = "0.1.0" -dependencies = [ - "soroban-sdk", -] - -[[package]] -name = "crunchy" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" - [[package]] name = "crypto-bigint" version = "0.5.5" @@ -611,9 +290,9 @@ dependencies = [ [[package]] name = "crypto-common" -version = "0.1.7" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ "generic-array", "typenum", @@ -626,7 +305,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a2785755761f3ddc1492979ce1e48d2c00d09311c39e4466429188f3dd6501" dependencies = [ "quote", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] @@ -653,7 +332,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] @@ -687,7 +366,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] @@ -700,7 +379,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] @@ -711,7 +390,7 @@ checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ "darling_core 0.20.11", "quote", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] @@ -722,7 +401,7 @@ checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d" dependencies = [ "darling_core 0.23.0", "quote", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] @@ -747,7 +426,6 @@ version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c" dependencies = [ - "powerfmt", "serde_core", ] @@ -770,7 +448,7 @@ checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] @@ -837,9 +515,9 @@ dependencies = [ [[package]] name = "either" -version = "1.16.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91622ff5e7162018101f2fea40d6ebf4a78bbe5a49736a2020649edf9693679e" +checksum = "9e5e8f6c15a24b9a3ee5efec809ccd006d3b30e8b3bb63c39af737c7f87daa1d" [[package]] name = "elliptic-curve" @@ -914,21 +592,21 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "futures-core" -version = "0.3.32" +version = "0.3.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d" +checksum = "2cd50c473c80f6d7c3670a752354b8e569b1a7cbfdc0419ec88e5edad85e0dc7" [[package]] name = "futures-task" -version = "0.3.32" +version = "0.3.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393" +checksum = "b231ed28831efb4a61a08580c4bc233ec56bc009f4cd8f52da2c3cb97df0c109" [[package]] name = "futures-util" -version = "0.3.32" +version = "0.3.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6" +checksum = "a77a90a256fce34da66415271e30f94ee91c57b04b8a2c042d9cf3220179deaa" dependencies = [ "futures-core", "futures-task", @@ -938,9 +616,9 @@ dependencies = [ [[package]] name = "generic-array" -version = "0.14.7" +version = "0.14.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +checksum = "4bb6743198531e02858aeaea5398fcc883e71851fcbcb5a2f773e2fb6cb1edf2" dependencies = [ "typenum", "version_check", @@ -971,17 +649,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "half" -version = "2.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" -dependencies = [ - "cfg-if", - "crunchy", - "zerocopy", -] - [[package]] name = "hashbrown" version = "0.12.3" @@ -1003,43 +670,6 @@ version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" -[[package]] -name = "hashlink" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7" -dependencies = [ - "hashbrown 0.14.5", -] - -[[package]] -name = "heck" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" -dependencies = [ - "unicode-segmentation", -] - -[[package]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - -[[package]] -name = "hello-soroban" -version = "0.1.0" -dependencies = [ - "soroban-sdk", -] - -[[package]] -name = "hermit-abi" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" - [[package]] name = "hex" version = "0.4.3" @@ -1140,13 +770,12 @@ checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" [[package]] name = "js-sys" -version = "0.3.99" +version = "0.3.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "142bc4740e452c1e57ade0cbc129f139c9093e354346f0872ef985f4f5cf5f11" +checksum = "53b44bfcdb3f8d5837a46dae1ca9660a837176eee74a28b229bc626816589102" dependencies = [ "cfg-if", "futures-util", - "once_cell", "wasm-bindgen", ] @@ -1173,9 +802,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.186" +version = "0.2.189" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" +checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2" [[package]] name = "libm" @@ -1185,21 +814,21 @@ checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" [[package]] name = "log" -version = "0.4.30" +version = "0.4.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "616ec5685824bcc94416c6d4a7a446eea774a31efd7062c8480ba6fd06d7a6e5" +checksum = "0ceec5bc11778974d1bcb055b18002eba7f4b3518b6a0081b3af5f21666da9ad" [[package]] name = "memchr" -version = "2.8.0" +version = "2.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" +checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98" [[package]] name = "num-bigint" -version = "0.4.6" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" +checksum = "c89e69e7e0f03bea5ef08013795c25018e101932225a656383bd384495ecc367" dependencies = [ "num-integer", "num-traits", @@ -1219,7 +848,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] @@ -1267,19 +896,6 @@ checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] name = "pin-project-lite" version = "0.2.17" -name = "is-terminal" -version = "0.4.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3640c1c38b8e4e43584d8df18be5fc6b0aa314ce6ebf51b53313d4306cca8e46" -dependencies = [ - "hermit-abi", - "libc", - "windows-sys 0.61.2", -] - -[[package]] -name = "is_terminal_polyfill" -version = "1.70.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" @@ -1315,7 +931,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" dependencies = [ "proc-macro2", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] @@ -1329,27 +945,27 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.106" +version = "1.0.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" +checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.45" +version = "1.0.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" +checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001" dependencies = [ "proc-macro2", ] [[package]] name = "rand" -version = "0.8.6" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ca0ecfa931c29007047d1bc58e623ab12e5590e8c7cc53200d5202b69266d8a" +checksum = "22f6172bdec972074665ed81ed53b71da00bfc44b65a753cfde883ec4c702a1a" dependencies = [ "libc", "rand_chacha", @@ -1377,22 +993,22 @@ dependencies = [ [[package]] name = "ref-cast" -version = "1.0.25" +version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d" +checksum = "216e8f773d7923bcba9ceb86a86c93cabb3903a11872fc3f138c49630e50b96d" dependencies = [ "ref-cast-impl", ] [[package]] name = "ref-cast-impl" -version = "1.0.25" +version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" +checksum = "2c9283685feec7d69af75fb0e858d5e7378f33fe4fc699383b2916ab9273e03c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 3.0.3", ] [[package]] @@ -1416,5489 +1032,58 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.22" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" +checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f" [[package]] name = "schemars" -name = "lock_api" -version = "0.4.14" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" +checksum = "4cd191f9397d57d581cddd31014772520aa448f65ef991055d7f61582c65165f" dependencies = [ - "scopeguard", + "dyn-clone", + "ref-cast", + "serde", + "serde_json", ] [[package]] -name = "log" -version = "0.4.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "616ec5685824bcc94416c6d4a7a446eea774a31efd7062c8480ba6fd06d7a6e5" - -[[package]] -name = "lru-slab" -version = "0.1.2" +name = "schemars" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" +checksum = "687274d293b6cdc6e73e0fee520bf2049650090d7164f87672d212a3c530cf4a" +dependencies = [ + "dyn-clone", + "ref-cast", + "serde", + "serde_json", +] [[package]] -name = "matchers" -version = "0.2.0" +name = "sec1" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" dependencies = [ - "regex-automata", + "base16ct", + "der", + "generic-array", + "subtle", + "zeroize", ] [[package]] -name = "matchit" -version = "0.7.3" +name = "semver" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" +checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" [[package]] -name = "md-5" -version = "0.10.6" +name = "serde" +version = "1.0.229" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" -dependencies = [ - "cfg-if", - "digest", -] - -[[package]] -name = "memchr" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" - -[[package]] -name = "mime" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" - -[[package]] -name = "mime_guess" -version = "2.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7c44f8e672c00fe5308fa235f821cb4198414e1c77935c1ab6948d3fd78550e" -dependencies = [ - "mime", - "unicase", -] - -[[package]] -name = "minimal-lexical" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" - -[[package]] -name = "miniz_oxide" -version = "0.8.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" -dependencies = [ - "adler2", - "simd-adler32", -] - -[[package]] -name = "mio" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50b7e5b27aa02a74bac8c3f23f448f8d87ff11f92d3aac1a6ed369ee08cc56c1" -dependencies = [ - "libc", - "wasi", - "windows-sys 0.61.2", -] - -[[package]] -name = "moka" -version = "0.12.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "957228ad12042ee839f93c8f257b62b4c0ab5eaae1d4fa60de53b27c9d7c5046" -dependencies = [ - "async-lock", - "crossbeam-channel", - "crossbeam-epoch", - "crossbeam-utils", - "equivalent", - "event-listener 5.4.1", - "futures-util", - "parking_lot 0.12.5", - "portable-atomic", - "smallvec", - "tagptr", - "uuid", -] - -[[package]] -name = "multer" -version = "3.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83e87776546dc87511aa5ee218730c92b666d7264ab6ed41f9d215af9cd5224b" -dependencies = [ - "bytes", - "encoding_rs", - "futures-util", - "http", - "httparse", - "memchr", - "mime", - "spin", - "version_check", -] - -[[package]] -name = "native-tls" -version = "0.2.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "465500e14ea162429d264d44189adc38b199b62b1c21eea9f69e4b73cb03bbf2" -dependencies = [ - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", -] - -[[package]] -name = "nom" -version = "7.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" -dependencies = [ - "memchr", - "minimal-lexical", -] - -[[package]] -name = "nu-ansi-term" -version = "0.50.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" -dependencies = [ - "windows-sys 0.61.2", -] - -[[package]] -name = "num-bigint" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" -dependencies = [ - "num-integer", - "num-traits", -] - -[[package]] -name = "num-bigint-dig" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e661dda6640fad38e827a6d4a310ff4763082116fe217f279885c97f511bb0b7" -dependencies = [ - "lazy_static", - "libm", - "num-integer", - "num-iter", - "num-traits", - "rand 0.8.6", - "smallvec", - "zeroize", -] - -[[package]] -name = "num-conv" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "521739c6d2bac4aa25192232afe6841231376b2b26d4d9fae5ecf8ca5772e441" - -[[package]] -name = "num-derive" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "num-integer" -version = "0.1.46" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" -dependencies = [ - "num-traits", -] - -[[package]] -name = "num-iter" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-traits" -version = "0.2.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" -dependencies = [ - "autocfg", - "libm", -] - -[[package]] -name = "num_enum" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d0bca838442ec211fa11de3a8b0e0e8f3a4522575b5c4c06ed722e005036f26" -dependencies = [ - "num_enum_derive", - "rustversion", -] - -[[package]] -name = "num_enum_derive" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "680998035259dcfcafe653688bf2aa6d3e2dc05e98be6ab46afb089dc84f1df8" -dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "once_cell" -version = "1.21.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" - -[[package]] -name = "once_cell_polyfill" -version = "1.70.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" - -[[package]] -name = "oorandom" -version = "11.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e" - -[[package]] -name = "openssl" -version = "0.10.80" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a45fa2aa886c42762255da344f0a0d313e254066c46aad76f300c3d3da62d967" -dependencies = [ - "bitflags 2.11.1", - "cfg-if", - "foreign-types", - "libc", - "openssl-macros", - "openssl-sys", -] - -[[package]] -name = "openssl-macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "openssl-probe" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe" - -[[package]] -name = "openssl-sys" -version = "0.9.116" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f28a22dc7140cda5f096e5e7724a6962ca81a7f8bfd2979f9b18c11af56318c4" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "ordered-multimap" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49203cdcae0030493bad186b28da2fa25645fa276a51b6fec8010d281e02ef79" -dependencies = [ - "dlv-list", - "hashbrown 0.14.5", -] - -[[package]] -name = "p256" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" -dependencies = [ - "ecdsa", - "elliptic-curve", - "primeorder", - "sha2", -] - -[[package]] -name = "parking" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" - -[[package]] -name = "parking_lot" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" -dependencies = [ - "instant", - "lock_api", - "parking_lot_core 0.8.6", -] - -[[package]] -name = "parking_lot" -version = "0.12.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" -dependencies = [ - "lock_api", - "parking_lot_core 0.9.12", -] - -[[package]] -name = "parking_lot_core" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" -dependencies = [ - "cfg-if", - "instant", - "libc", - "redox_syscall 0.2.16", - "smallvec", - "winapi", -] - -[[package]] -name = "parking_lot_core" -version = "0.9.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall 0.5.18", - "smallvec", - "windows-link", -] - -[[package]] -name = "paste" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" - -[[package]] -name = "pathdiff" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" - -[[package]] -name = "pem" -version = "3.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d30c53c26bc5b31a98cd02d20f25a7c8567146caf63ed593a9d87b2775291be" -dependencies = [ - "base64 0.22.1", - "serde_core", -] - -[[package]] -name = "pem-rfc7468" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" -dependencies = [ - "base64ct", -] - -[[package]] -name = "percent-encoding" -version = "2.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" - -[[package]] -name = "pest" -version = "2.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0848c601009d37dfa3430c4666e147e49cdcf1b92ecd3e63657d8a5f19da662" -dependencies = [ - "memchr", - "ucd-trie", -] - -[[package]] -name = "pest_derive" -version = "2.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11f486f1ea21e6c10ed15d5a7c77165d0ee443402f0780849d1768e7d9d6fe77" -dependencies = [ - "pest", - "pest_generator", -] - -[[package]] -name = "pest_generator" -version = "2.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8040c4647b13b210a963c1ed407c1ff4fdfa01c31d6d2a098218702e6664f94f" -dependencies = [ - "pest", - "pest_meta", - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "pest_meta" -version = "2.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89815c69d36021a140146f26659a81d6c2afa33d216d736dd4be5381a7362220" -dependencies = [ - "pest", - "sha2", -] - -[[package]] -name = "pin-project-lite" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" - -[[package]] -name = "pkcs1" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f" -dependencies = [ - "der", - "pkcs8", - "spki", -] - -[[package]] -name = "pkcs8" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" -dependencies = [ - "der", - "spki", -] - -[[package]] -name = "pkg-config" -version = "0.3.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19f132c84eca552bf34cab8ec81f1c1dcc229b811638f9d283dceabe58c5569e" - -[[package]] -name = "plain" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" - -[[package]] -name = "plotters" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aeb6f403d7a4911efb1e33402027fc44f29b5bf6def3effcc22d7bb75f2b747" -dependencies = [ - "num-traits", - "plotters-backend", - "plotters-svg", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "plotters-backend" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df42e13c12958a16b3f7f4386b9ab1f3e7933914ecea48da7139435263a4172a" - -[[package]] -name = "plotters-svg" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51bae2ac328883f7acdfea3d66a7c35751187f870bc81f94563733a154d7a670" -dependencies = [ - "plotters-backend", -] - -[[package]] -name = "portable-atomic" -version = "1.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49" - -[[package]] -name = "potential_utf" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0103b1cef7ec0cf76490e969665504990193874ea05c85ff9bab8b911d0a0564" -dependencies = [ - "zerovec", -] - -[[package]] -name = "powerfmt" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" - -[[package]] -name = "ppv-lite86" -version = "0.2.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" -dependencies = [ - "zerocopy", -] - -[[package]] -name = "prettyplease" -version = "0.2.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" -dependencies = [ - "proc-macro2", - "syn 2.0.117", -] - -[[package]] -name = "primeorder" -version = "0.13.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6" -dependencies = [ - "elliptic-curve", -] - -[[package]] -name = "proc-macro-crate" -version = "3.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" -dependencies = [ - "toml_edit 0.25.11+spec-1.1.0", -] - -[[package]] -name = "proc-macro-error" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" -dependencies = [ - "proc-macro-error-attr", - "proc-macro2", - "quote", - "syn 1.0.109", - "version_check", -] - -[[package]] -name = "proc-macro-error-attr" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" -dependencies = [ - "proc-macro2", - "quote", - "version_check", -] - -[[package]] -name = "proc-macro2" -version = "1.0.106" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "prometheus" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ca5326d8d0b950a9acd87e6a3f94745394f62e4dae1b1ee22b2bc0c394af43a" -dependencies = [ - "cfg-if", - "fnv", - "lazy_static", - "memchr", - "parking_lot 0.12.5", - "protobuf", - "thiserror 2.0.18", -] - -[[package]] -name = "proptest" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b45fcc2344c680f5025fe57779faef368840d0bd1f42f216291f0dc4ace4744" -dependencies = [ - "bit-set", - "bit-vec", - "bitflags 2.11.1", - "num-traits", - "rand 0.9.4", - "rand_chacha 0.9.0", - "rand_xorshift", - "regex-syntax", - "rusty-fork", - "tempfile", - "unarray", -] - -[[package]] -name = "protobuf" -version = "3.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d65a1d4ddae7d8b5de68153b48f6aa3bba8cb002b243dbdbc55a5afbc98f99f4" -dependencies = [ - "once_cell", - "protobuf-support", - "thiserror 1.0.69", -] - -[[package]] -name = "protobuf-support" -version = "3.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e36c2f31e0a47f9280fb347ef5e461ffcd2c52dd520d8e216b52f93b0b0d7d6" -dependencies = [ - "thiserror 1.0.69", -] - -[[package]] -name = "proxy" -version = "0.1.0" -dependencies = [ - "soroban-sdk", -] - -[[package]] -name = "quick-error" -version = "1.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" - -[[package]] -name = "quinn" -version = "0.11.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20" -dependencies = [ - "bytes", - "cfg_aliases", - "pin-project-lite", - "quinn-proto", - "quinn-udp", - "rustc-hash", - "rustls", - "socket2 0.6.3", - "thiserror 2.0.18", - "tokio", - "tracing", - "web-time", -] - -[[package]] -name = "quinn-proto" -version = "0.11.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "434b42fec591c96ef50e21e886936e66d3cc3f737104fdb9b737c40ffb94c098" -dependencies = [ - "bytes", - "getrandom 0.3.4", - "lru-slab", - "rand 0.9.4", - "ring", - "rustc-hash", - "rustls", - "rustls-pki-types", - "slab", - "thiserror 2.0.18", - "tinyvec", - "tracing", - "web-time", -] - -[[package]] -name = "quinn-udp" -version = "0.5.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd" -dependencies = [ - "cfg_aliases", - "libc", - "once_cell", - "socket2 0.6.3", - "tracing", - "windows-sys 0.60.2", -] - -[[package]] -name = "quote" -version = "1.0.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "r-efi" -version = "5.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" - -[[package]] -name = "r-efi" -version = "6.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" - -[[package]] -name = "rand" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ca0ecfa931c29007047d1bc58e623ab12e5590e8c7cc53200d5202b69266d8a" -dependencies = [ - "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.4", -] - -[[package]] -name = "rand" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44c5af06bb1b7d3216d91932aed5265164bf384dc89cd6ba05cf59a35f5f76ea" -dependencies = [ - "rand_chacha 0.9.0", - "rand_core 0.9.5", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_chacha" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" -dependencies = [ - "ppv-lite86", - "rand_core 0.9.5", -] - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom 0.2.17", -] - -[[package]] -name = "rand_core" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" -dependencies = [ - "getrandom 0.3.4", -] - -[[package]] -name = "rand_xorshift" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "513962919efc330f829edb2535844d1b912b0fbe2ca165d613e4e8788bb05a5a" -dependencies = [ - "rand_core 0.9.5", -] - -[[package]] -name = "rayon" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb39b166781f92d482534ef4b4b1b2568f42613b53e5b6c160e24cfbfa30926d" -dependencies = [ - "either", - "rayon-core", -] - -[[package]] -name = "rayon-core" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" -dependencies = [ - "crossbeam-deque", - "crossbeam-utils", -] - -[[package]] -name = "redis" -version = "0.25.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e46922bd01fefcfdcf58d9cd626da082bb2cde27211920dacfde6b2ecf9a35b" -dependencies = [ - "async-trait", - "bytes", - "combine", - "futures-util", - "itoa", - "percent-encoding", - "pin-project-lite", - "ryu", - "sha1_smol", - "socket2 0.5.10", - "tokio", - "tokio-util", - "url", -] - -[[package]] -name = "redox_syscall" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" -dependencies = [ - "bitflags 1.3.2", -] - -[[package]] -name = "redox_syscall" -version = "0.5.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" -dependencies = [ - "bitflags 2.11.1", -] - -[[package]] -name = "redox_syscall" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4666a1a60d8412eab19d94f6d13dcc9cea0a5ef4fdf6a5db306537413c661b1b" -dependencies = [ - "bitflags 2.11.1", -] - -[[package]] -name = "ref-cast" -version = "1.0.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d" -dependencies = [ - "ref-cast-impl", -] - -[[package]] -name = "ref-cast-impl" -version = "1.0.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "regex" -version = "1.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276" -dependencies = [ - "aho-corasick", - "memchr", - "regex-automata", - "regex-syntax", -] - -[[package]] -name = "regex-automata" -version = "0.4.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", -] - -[[package]] -name = "regex-syntax" -version = "0.8.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" - -[[package]] -name = "reqwest" -version = "0.12.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147" -dependencies = [ - "base64 0.22.1", - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "http", - "http-body", - "http-body-util", - "hyper", - "hyper-rustls", - "hyper-util", - "js-sys", - "log", - "percent-encoding", - "pin-project-lite", - "quinn", - "rustls", - "rustls-pki-types", - "serde", - "serde_json", - "serde_urlencoded", - "sync_wrapper", - "tokio", - "tokio-rustls", - "tower 0.5.3", - "tower-http 0.6.11", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "webpki-roots", -] - -[[package]] -name = "rfc6979" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" -dependencies = [ - "hmac", - "subtle", -] - -[[package]] -name = "ring" -version = "0.17.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" -dependencies = [ - "cc", - "cfg-if", - "getrandom 0.2.17", - "libc", - "untrusted", - "windows-sys 0.52.0", -] - -[[package]] -name = "ron" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b91f7eff05f748767f183df4320a63d6936e9c6107d97c9e6bdd9784f4289c94" -dependencies = [ - "base64 0.21.7", - "bitflags 2.11.1", - "serde", - "serde_derive", -] - -[[package]] -name = "rsa" -version = "0.9.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8573f03f5883dcaebdfcf4725caa1ecb9c15b2ef50c43a07b816e06799bb12d" -dependencies = [ - "const-oid", - "digest", - "num-bigint-dig", - "num-integer", - "num-traits", - "pkcs1", - "pkcs8", - "rand_core 0.6.4", - "signature", - "spki", - "subtle", - "zeroize", -] - -[[package]] -name = "rusqlite" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "549b9d036d571d42e6e85d1c1425e2ac83491075078ca9a15be021c56b1641f2" -dependencies = [ - "bitflags 2.11.1", - "fallible-iterator", - "fallible-streaming-iterator", - "hashlink", - "libsqlite3-sys", - "smallvec", -] - -[[package]] -name = "rust-embed" -version = "8.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04113cb9355a377d83f06ef1f0a45b8ab8cd7d8b1288160717d66df5c7988d27" -dependencies = [ - "rust-embed-impl", - "rust-embed-utils", - "walkdir", -] - -[[package]] -name = "rust-embed-impl" -version = "8.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0902e4c7c8e997159ab384e6d0fc91c221375f6894346ae107f47dd0f3ccaa" -dependencies = [ - "proc-macro2", - "quote", - "rust-embed-utils", - "syn 2.0.117", - "walkdir", -] - -[[package]] -name = "rust-embed-utils" -version = "8.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bcdef0be6fe7f6fa333b1073c949729274b05f123a0ad7efcb8efd878e5c3b1" -dependencies = [ - "sha2", - "walkdir", -] - -[[package]] -name = "rust-ini" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e0698206bcb8882bf2a9ecb4c1e7785db57ff052297085a6efd4fe42302068a" -dependencies = [ - "cfg-if", - "ordered-multimap", -] - -[[package]] -name = "rustc-hash" -version = "2.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94300abf3f1ae2e2b8ffb7b58043de3d399c73fa6f4b73826402a5c457614dbe" - -[[package]] -name = "rustc_version" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" -dependencies = [ - "semver", -] - -[[package]] -name = "rustix" -version = "1.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" -dependencies = [ - "bitflags 2.11.1", - "errno", - "libc", - "linux-raw-sys", - "windows-sys 0.61.2", -] - -[[package]] -name = "rustls" -version = "0.23.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef86cd5876211988985292b91c96a8f2d298df24e75989a43a3c73f2d4d8168b" -dependencies = [ - "once_cell", - "ring", - "rustls-pki-types", - "rustls-webpki", - "subtle", - "zeroize", -] - -[[package]] -name = "rustls-pki-types" -version = "1.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30a7197ae7eb376e574fe940d068c30fe0462554a3ddbe4eca7838e049c937a9" -dependencies = [ - "web-time", - "zeroize", -] - -[[package]] -name = "rustls-webpki" -version = "0.103.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61c429a8649f110dddef65e2a5ad240f747e85f7758a6bccc7e5777bd33f756e" -dependencies = [ - "ring", - "rustls-pki-types", - "untrusted", -] - -[[package]] -name = "rustversion" -version = "1.0.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" - -[[package]] -name = "rusty-fork" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc6bf79ff24e648f6da1f8d1f011e9cac26491b619e6b9280f2b47f1774e6ee2" -dependencies = [ - "fnv", - "quick-error", - "tempfile", - "wait-timeout", -] - -[[package]] -name = "ryu" -version = "1.0.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" - -[[package]] -name = "same-file" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "schannel" -version = "0.1.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91c1b7e4904c873ef0710c1f407dde2e6287de2bebc1bbbf7d430bb7cbffd939" -dependencies = [ - "windows-sys 0.61.2", -] - -[[package]] -name = "schemars" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd191f9397d57d581cddd31014772520aa448f65ef991055d7f61582c65165f" -dependencies = [ - "dyn-clone", - "ref-cast", - "serde", - "serde_json", -] - -[[package]] -name = "schemars" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2b42f36aa1cd011945615b92222f6bf73c599a102a300334cd7f8dbeec726cc" -dependencies = [ - "dyn-clone", - "ref-cast", - "serde", - "serde_json", -] - -[[package]] -name = "scopeguard" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" - -[[package]] -name = "sec1" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" -dependencies = [ - "base16ct", - "der", - "generic-array", - "subtle", - "zeroize", -] - -[[package]] -name = "security-framework" -version = "3.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7f4bc775c73d9a02cde8bf7b2ec4c9d12743edf609006c7facc23998404cd1d" -dependencies = [ - "bitflags 2.11.1", - "core-foundation", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ce2691df843ecc5d231c0b14ece2acc3efb62c0a398c7e1d875f3983ce020e3" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "semver" -version = "1.0.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" - -[[package]] -name = "serde" -version = "1.0.228" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" -dependencies = [ - "serde_core", - "serde_derive", -] - -[[package]] -name = "serde_core" -version = "1.0.228" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.228" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "serde_json" -version = "1.0.150" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8014e44b4736ed0538adeecded0fce2a272f22dc9578a7eb6b2d9993c74cfb9" -dependencies = [ - "itoa", - "memchr", - "serde", - "serde_core", - "zmij", -] - -[[package]] -name = "serde_path_to_error" -version = "0.1.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10a9ff822e371bb5403e391ecd83e182e0e77ba7f6fe0160b795797109d1b457" -dependencies = [ - "itoa", - "serde", - "serde_core", -] - -[[package]] -name = "serde_spanned" -version = "0.6.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" -dependencies = [ - "serde", -] - -[[package]] -name = "serde_urlencoded" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" -dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "serde_with" -version = "3.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e72c1c2cb7b223fafb600a619537a871c2818583d619401b785e7c0b746ccde2" -dependencies = [ - "base64 0.22.1", - "bs58", - "chrono", - "hex", - "indexmap 1.9.3", - "indexmap 2.14.0", - "schemars 0.9.0", - "schemars 1.2.1", - "serde_core", - "serde_json", - "serde_with_macros", - "time", -] - -[[package]] -name = "serde_with_macros" -version = "3.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b90c488738ecb4fb0262f41f43bc40efc5868d9fb744319ddf5f5317f417bfac" -dependencies = [ - "darling 0.23.0", - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "sha1" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] - -[[package]] -name = "sha1_smol" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbfa15b3dddfee50a0fff136974b3e1bde555604ba463834a7eb7deb6417705d" - -[[package]] -name = "sha2" -version = "0.10.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] - -[[package]] -name = "sha3" -version = "0.10.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77fd7028345d415a4034cf8777cd4f8ab1851274233b45f84e3d955502d93874" -dependencies = [ - "digest", - "keccak", -] - -[[package]] -name = "sharded-slab" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" -dependencies = [ - "lazy_static", -] - -[[package]] -name = "shlex" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" - -[[package]] -name = "signal-hook-registry" -version = "1.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b" -dependencies = [ - "errno", - "libc", -] - -[[package]] -name = "signature" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" -dependencies = [ - "digest", - "rand_core 0.6.4", -] - -[[package]] -name = "simd-adler32" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "703d5c7ef118737c72f1af64ad2f6f8c5e1921f818cdcb97b8fe6fc69bf66214" - -[[package]] -name = "simple_asn1" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d585997b0ac10be3c5ee635f1bab02d512760d14b7c468801ac8a01d9ae5f1d" -dependencies = [ - "num-bigint", - "num-traits", - "thiserror 2.0.18", - "time", -] - -[[package]] -name = "slab" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" - -[[package]] -name = "sled" -version = "0.34.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f96b4737c2ce5987354855aed3797279def4ebf734436c6aa4552cf8e169935" -dependencies = [ - "crc32fast", - "crossbeam-epoch", - "crossbeam-utils", - "fs2", - "fxhash", - "libc", - "log", - "parking_lot 0.11.2", -] - -[[package]] -name = "smallvec" -version = "1.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" - -[[package]] -name = "socket2" -version = "0.5.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "socket2" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e" -dependencies = [ - "libc", - "windows-sys 0.61.2", -] - -[[package]] -name = "soroban-builtin-sdk-macros" -version = "22.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf2e42bf80fcdefb3aae6ff3c7101a62cf942e95320ed5b518a1705bc11c6b2f" -dependencies = [ - "itertools", - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "soroban-env-common" -version = "22.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "027cd856171bfd6ad2c0ffb3b7dfe55ad7080fb3050c36ad20970f80da634472" -dependencies = [ - "arbitrary", - "crate-git-revision", - "ethnum", - "num-derive", - "num-traits", - "serde", - "soroban-env-macros", - "soroban-wasmi", - "static_assertions", - "stellar-xdr", - "wasmparser 0.116.1", -] - -[[package]] -name = "soroban-env-guest" -version = "22.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a07dda1ae5220d975979b19ad4fd56bc86ec7ec1b4b25bc1c5d403f934e592e" -dependencies = [ - "soroban-env-common", - "static_assertions", -] - -[[package]] -name = "soroban-env-host" -version = "22.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66e8b03a4191d485eab03f066336112b2a50541a7553179553dc838b986b94dd" -dependencies = [ - "ark-bls12-381", - "ark-ec", - "ark-ff", - "ark-serialize", - "curve25519-dalek", - "ecdsa", - "ed25519-dalek", - "elliptic-curve", - "generic-array", - "getrandom 0.2.17", - "hex-literal", - "hmac", - "k256", - "num-derive", - "num-integer", - "num-traits", - "p256", - "rand 0.8.6", - "rand_chacha 0.3.1", - "sec1", - "sha2", - "sha3", - "soroban-builtin-sdk-macros", - "soroban-env-common", - "soroban-wasmi", - "static_assertions", - "stellar-strkey", - "wasmparser 0.116.1", -] - -[[package]] -name = "soroban-env-macros" -version = "22.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00eff744764ade3bc480e4909e3a581a240091f3d262acdce80b41f7069b2bd9" -dependencies = [ - "itertools", - "proc-macro2", - "quote", - "serde", - "serde_json", - "stellar-xdr", - "syn 2.0.117", -] - -[[package]] -name = "soroban-ledger-snapshot" -version = "22.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c30035cf1e8f02f65de3e594b6da113ecdaf1cd134d8480961d62568bb15adaf" -dependencies = [ - "serde", - "serde_json", - "serde_with", - "soroban-env-common", - "soroban-env-host", - "thiserror 1.0.69", -] - -[[package]] -name = "soroban-liquidity-pool-factory-contract" -version = "0.1.0" -dependencies = [ - "emergency_guard", - "liquidity_pool", - "soroban-sdk", - "soroban-token-contract", -] - -[[package]] -name = "soroban-sdk" -version = "22.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff18e8d7ca6d5340a211605ca2c86383bd4dfacc4f8253d72a1573974ffffe69" -dependencies = [ - "arbitrary", - "bytes-lit", - "ctor", - "derive_arbitrary", - "ed25519-dalek", - "rand 0.8.6", - "rustc_version", - "serde", - "serde_json", - "soroban-env-guest", - "soroban-env-host", - "soroban-ledger-snapshot", - "soroban-sdk-macros", - "stellar-strkey", -] - -[[package]] -name = "soroban-sdk-macros" -version = "22.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42b205cd86b34d530db87667bd287fbb194166d79b368227fd842110a914fde8" -dependencies = [ - "crate-git-revision", - "darling 0.20.11", - "itertools", - "proc-macro2", - "quote", - "rustc_version", - "sha2", - "soroban-env-common", - "soroban-spec", - "soroban-spec-rust", - "stellar-xdr", - "syn 2.0.117", -] - -[[package]] -name = "soroban-spec" -version = "22.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb6a16f2de28852c759f4da5f28cda54ec0d8dfa4c0e6e8cb3495234a72b0cea" -dependencies = [ - "base64 0.13.1", - "stellar-xdr", - "thiserror 1.0.69", - "wasmparser 0.116.1", -] - -[[package]] -name = "soroban-spec-rust" -version = "22.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdc6db5902ab21290dddf63fec4ee95703fe59891a947646e7b8607536f043fc" -dependencies = [ - "prettyplease", - "proc-macro2", - "quote", - "sha2", - "soroban-spec", - "stellar-xdr", - "syn 2.0.117", - "thiserror 1.0.69", -] - -[[package]] -name = "soroban-staking-rewards" -version = "0.1.0" -dependencies = [ - "emergency_guard", - "soroban-sdk", - "soroscope-error-codes", - "soroscope-math", -] - -[[package]] -name = "soroban-token-contract" -version = "0.0.0" -dependencies = [ - "emergency_guard", - "soroban-sdk", -] - -[[package]] -name = "soroban-typed-data-auth-contract" -version = "0.0.0" -dependencies = [ - "soroban-sdk", -] - -[[package]] -name = "soroban-wasmi" -version = "0.31.1-soroban.20.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "710403de32d0e0c35375518cb995d4fc056d0d48966f2e56ea471b8cb8fc9719" -dependencies = [ - "smallvec", - "spin", - "wasmi_arena", - "wasmi_core", - "wasmparser-nostd", -] - -[[package]] -name = "soroscope-core" -version = "0.1.0" -dependencies = [ - "axum", - "base64 0.22.1", - "chrono", - "clap", - "config", - "criterion", - "dotenvy", - "ed25519-dalek", - "hex", - "jsonwebtoken", - "moka", - "prometheus", - "proptest", - "rand 0.8.6", - "rayon", - "redis", - "reqwest", - "rsa", - "rusqlite", - "serde", - "serde_json", - "sha2", - "sled", - "soroban-env-host", - "soroban-sdk", - "sqlx", - "stellar-strkey", - "tempfile", - "thiserror 1.0.69", - "tokio", - "tokio-util", - "tower 0.4.13", - "tower-http 0.5.2", - "tracing", - "tracing-subscriber", - "utoipa", - "utoipa-swagger-ui", - "uuid", - "wasm-encoder 0.240.0", - "wasmparser 0.240.0", -] - -[[package]] -name = "soroscope-error-codes" -version = "0.1.0" -dependencies = [ - "soroban-sdk", -] - -[[package]] -name = "soroscope-math" -version = "0.1.0" -dependencies = [ - "soroban-sdk", - "soroscope-error-codes", -] - -[[package]] -name = "spin" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" -dependencies = [ - "lock_api", -] - -[[package]] -name = "spki" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" -dependencies = [ - "base64ct", - "der", -] - -[[package]] -name = "sqlformat" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bba3a93db0cc4f7bdece8bb09e77e2e785c20bfebf79eb8340ed80708048790" -dependencies = [ - "nom", - "unicode_categories", -] - -[[package]] -name = "sqlx" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e50c216e3624ec8e7ecd14c6a6a6370aad6ee5d8cfc3ab30b5162eeeef2ed33" -dependencies = [ - "sqlx-core", - "sqlx-macros", - "sqlx-mysql", - "sqlx-postgres", - "sqlx-sqlite", -] - -[[package]] -name = "sqlx-core" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d6753e460c998bbd4cd8c6f0ed9a64346fcca0723d6e75e52fdc351c5d2169d" -dependencies = [ - "ahash", - "atoi", - "byteorder", - "bytes", - "chrono", - "crc", - "crossbeam-queue", - "dotenvy", - "either", - "event-listener 2.5.3", - "futures-channel", - "futures-core", - "futures-intrusive", - "futures-io", - "futures-util", - "hashlink", - "hex", - "indexmap 2.14.0", - "log", - "memchr", - "native-tls", - "once_cell", - "paste", - "percent-encoding", - "serde", - "serde_json", - "sha2", - "smallvec", - "sqlformat", - "thiserror 1.0.69", - "tokio", - "tokio-stream", - "tracing", - "url", - "uuid", -] - -[[package]] -name = "sqlx-macros" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a793bb3ba331ec8359c1853bd39eed32cdd7baaf22c35ccf5c92a7e8d1189ec" -dependencies = [ - "proc-macro2", - "quote", - "sqlx-core", - "sqlx-macros-core", - "syn 1.0.109", -] - -[[package]] -name = "sqlx-macros-core" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a4ee1e104e00dedb6aa5ffdd1343107b0a4702e862a84320ee7cc74782d96fc" -dependencies = [ - "dotenvy", - "either", - "heck 0.4.1", - "hex", - "once_cell", - "proc-macro2", - "quote", - "serde", - "serde_json", - "sha2", - "sqlx-core", - "sqlx-mysql", - "sqlx-postgres", - "sqlx-sqlite", - "syn 1.0.109", - "tempfile", - "tokio", - "url", -] - -[[package]] -name = "sqlx-mysql" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "864b869fdf56263f4c95c45483191ea0af340f9f3e3e7b4d57a61c7c87a970db" -dependencies = [ - "atoi", - "base64 0.21.7", - "bitflags 2.11.1", - "byteorder", - "bytes", - "chrono", - "crc", - "digest", - "dotenvy", - "either", - "futures-channel", - "futures-core", - "futures-io", - "futures-util", - "generic-array", - "hex", - "hkdf", - "hmac", - "itoa", - "log", - "md-5", - "memchr", - "once_cell", - "percent-encoding", - "rand 0.8.6", - "rsa", - "serde", - "sha1", - "sha2", - "smallvec", - "sqlx-core", - "stringprep", - "thiserror 1.0.69", - "tracing", - "uuid", - "whoami", -] - -[[package]] -name = "sqlx-postgres" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb7ae0e6a97fb3ba33b23ac2671a5ce6e3cabe003f451abd5a56e7951d975624" -dependencies = [ - "atoi", - "base64 0.21.7", - "bitflags 2.11.1", - "byteorder", - "chrono", - "crc", - "dotenvy", - "etcetera", - "futures-channel", - "futures-core", - "futures-io", - "futures-util", - "hex", - "hkdf", - "hmac", - "home", - "itoa", - "log", - "md-5", - "memchr", - "once_cell", - "rand 0.8.6", - "serde", - "serde_json", - "sha1", - "sha2", - "smallvec", - "sqlx-core", - "stringprep", - "thiserror 1.0.69", - "tracing", - "uuid", - "whoami", -] - -[[package]] -name = "sqlx-sqlite" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d59dc83cf45d89c555a577694534fcd1b55c545a816c816ce51f20bbe56a4f3f" -dependencies = [ - "atoi", - "chrono", - "flume", - "futures-channel", - "futures-core", - "futures-executor", - "futures-intrusive", - "futures-util", - "libsqlite3-sys", - "log", - "percent-encoding", - "serde", - "sqlx-core", - "tracing", - "url", - "uuid", -] - -[[package]] -name = "stable_deref_trait" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" - -[[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - -[[package]] -name = "stellar-strkey" -version = "0.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e3aa3ed00e70082cb43febc1c2afa5056b9bb3e348bbb43d0cd0aa88a611144" -dependencies = [ - "crate-git-revision", - "data-encoding", - "thiserror 1.0.69", -] - -[[package]] -name = "stellar-xdr" -version = "22.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ce69db907e64d1e70a3dce8d4824655d154749426a6132b25395c49136013e4" -dependencies = [ - "arbitrary", - "base64 0.13.1", - "crate-git-revision", - "escape-bytes", - "hex", - "serde", - "serde_with", - "stellar-strkey", -] - -[[package]] -name = "storage-heavy" -version = "0.1.0" -dependencies = [ - "soroban-sdk", -] - -[[package]] -name = "stringprep" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b4df3d392d81bd458a8a621b8bffbd2302a12ffe288a9d931670948749463b1" -dependencies = [ - "unicode-bidi", - "unicode-normalization", - "unicode-properties", -] - -[[package]] -name = "strsim" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" - -[[package]] -name = "subtle" -version = "2.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" - -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn" -version = "2.0.117" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "sync_wrapper" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" -dependencies = [ - "futures-core", -] - -[[package]] -name = "synstructure" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "tagptr" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b2093cf4c8eb1e67749a6762251bc9cd836b6fc171623bd0a9d324d37af2417" - -[[package]] -name = "tempfile" -version = "3.27.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" -dependencies = [ - "fastrand", - "getrandom 0.4.2", - "once_cell", - "rustix", - "windows-sys 0.61.2", -] - -[[package]] -name = "thiserror" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" -dependencies = [ - "thiserror-impl 1.0.69", -] - -[[package]] -name = "thiserror" -version = "2.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" -dependencies = [ - "thiserror-impl 2.0.18", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "thiserror-impl" -version = "2.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "thread_local" -version = "1.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "time" -version = "0.3.47" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "743bd48c283afc0388f9b8827b976905fb217ad9e647fae3a379a9283c4def2c" -dependencies = [ - "deranged", - "itoa", - "num-conv", - "powerfmt", - "serde_core", - "time-core", - "time-macros", -] - -[[package]] -name = "time-core" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca" - -[[package]] -name = "time-macros" -version = "0.2.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e70e4c5a0e0a8a4823ad65dfe1a6930e4f4d756dcd9dd7939022b5e8c501215" -dependencies = [ - "num-conv", - "time-core", -] - -[[package]] -name = "tiny-keccak" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" -dependencies = [ - "crunchy", -] - -[[package]] -name = "tinystr" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8323304221c2a851516f22236c5722a72eaa19749016521d6dff0824447d96d" -dependencies = [ - "displaydoc", - "zerovec", -] - -[[package]] -name = "tinytemplate" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc" -dependencies = [ - "serde", - "serde_json", -] - -[[package]] -name = "tinyvec" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e61e67053d25a4e82c844e8424039d9745781b3fc4f32b8d55ed50f5f667ef3" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" - -[[package]] -name = "tokio" -version = "1.52.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc7f01b389ac15039e4dc9531aa973a135d7a4135281b12d7c1bc79fd57fffe" -dependencies = [ - "bytes", - "libc", - "mio", - "parking_lot 0.12.5", - "pin-project-lite", - "signal-hook-registry", - "socket2 0.6.3", - "tokio-macros", - "windows-sys 0.61.2", -] - -[[package]] -name = "tokio-macros" -version = "2.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "385a6cb71ab9ab790c5fe8d67f1645e6c450a7ce006a33de03daa956cf70a496" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "tokio-rustls" -version = "0.26.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61" -dependencies = [ - "rustls", - "tokio", -] - -[[package]] -name = "tokio-stream" -version = "0.1.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32da49809aab5c3bc678af03902d4ccddea2a87d028d86392a4b1560c6906c70" -dependencies = [ - "futures-core", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "tokio-tungstenite" -version = "0.24.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edc5f74e248dc973e0dbb7b74c7e0d6fcc301c694ff50049504004ef4d0cdcd9" -dependencies = [ - "futures-util", - "log", - "tokio", - "tungstenite", -] - -[[package]] -name = "tokio-util" -version = "0.7.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "toml" -version = "0.8.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" -dependencies = [ - "serde", - "serde_spanned", - "toml_datetime 0.6.11", - "toml_edit 0.22.27", -] - -[[package]] -name = "toml_datetime" -version = "0.6.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" -dependencies = [ - "serde", -] - -[[package]] -name = "toml_datetime" -version = "1.1.1+spec-1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7" -dependencies = [ - "serde_core", -] - -[[package]] -name = "toml_edit" -version = "0.22.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" -dependencies = [ - "indexmap 2.14.0", - "serde", - "serde_spanned", - "toml_datetime 0.6.11", - "toml_write", - "winnow 0.7.15", -] - -[[package]] -name = "toml_edit" -version = "0.25.11+spec-1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b59c4d22ed448339746c59b905d24568fcbb3ab65a500494f7b8c3e97739f2b" -dependencies = [ - "indexmap 2.14.0", - "toml_datetime 1.1.1+spec-1.1.0", - "toml_parser", - "winnow 1.0.3", -] - -[[package]] -name = "toml_parser" -version = "1.1.2+spec-1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526" -dependencies = [ - "winnow 1.0.3", -] - -[[package]] -name = "toml_write" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" - -[[package]] -name = "tower" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" -dependencies = [ - "tower-layer", - "tower-service", - "tracing", -] - -[[package]] -name = "tower" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4" -dependencies = [ - "futures-core", - "futures-util", - "pin-project-lite", - "sync_wrapper", - "tokio", - "tower-layer", - "tower-service", - "tracing", -] - -[[package]] -name = "tower-http" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9cd434a998747dd2c4276bc96ee2e0c7a2eadf3cae88e52be55a05fa9053f5" -dependencies = [ - "bitflags 2.11.1", - "bytes", - "http", - "http-body", - "http-body-util", - "pin-project-lite", - "tower-layer", - "tower-service", - "tracing", -] - -[[package]] -name = "tower-http" -version = "0.6.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cfcf7e2740e6fc6d4d688b4ef00650406bb94adf4731e43c096c3a19fe40840" -dependencies = [ - "bitflags 2.11.1", - "bytes", - "futures-util", - "http", - "http-body", - "pin-project-lite", - "tower 0.5.3", - "tower-layer", - "tower-service", - "url", -] - -[[package]] -name = "tower-layer" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" - -[[package]] -name = "tower-service" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" - -[[package]] -name = "tracing" -version = "0.1.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" -dependencies = [ - "log", - "pin-project-lite", - "tracing-attributes", - "tracing-core", -] - -[[package]] -name = "tracing-attributes" -version = "0.1.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "tracing-core" -version = "0.1.36" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" -dependencies = [ - "once_cell", - "valuable", -] - -[[package]] -name = "tracing-log" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" -dependencies = [ - "log", - "once_cell", - "tracing-core", -] - -[[package]] -name = "tracing-subscriber" -version = "0.3.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7f578e5945fb242538965c2d0b04418d38ec25c79d160cd279bf0731c8d319" -dependencies = [ - "matchers", - "nu-ansi-term", - "once_cell", - "regex-automata", - "sharded-slab", - "smallvec", - "thread_local", - "tracing", - "tracing-core", - "tracing-log", -] - -[[package]] -name = "try-lock" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" - -[[package]] -name = "tungstenite" -version = "0.24.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18e5b8366ee7a95b16d32197d0b2604b43a0be89dc5fac9f8e96ccafbaedda8a" -dependencies = [ - "byteorder", - "bytes", - "data-encoding", - "http", - "httparse", - "log", - "rand 0.8.6", - "sha1", - "thiserror 1.0.69", - "utf-8", -] - -[[package]] -name = "typenum" -version = "1.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40ce102ab67701b8526c123c1bab5cbe42d7040ccfd0f64af1a385808d2f43de" - -[[package]] -name = "ucd-trie" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" - -[[package]] -name = "unarray" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" - -[[package]] -name = "unicase" -version = "2.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbc4bc3a9f746d862c45cb89d705aa10f187bb96c76001afab07a0d35ce60142" - -[[package]] -name = "unicode-bidi" -version = "0.3.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5" - -[[package]] -name = "unicode-ident" -version = "1.0.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" - -[[package]] -name = "unicode-normalization" -version = "0.1.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fd4f6878c9cb28d874b009da9e8d183b5abc80117c40bbd187a1fde336be6e8" -dependencies = [ - "tinyvec", -] - -[[package]] -name = "unicode-properties" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7df058c713841ad818f1dc5d3fd88063241cc61f49f5fbea4b951e8cf5a8d71d" - -[[package]] -name = "unicode-segmentation" -version = "1.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9629274872b2bfaf8d66f5f15725007f635594914870f65218920345aa11aa8c" - -[[package]] -name = "unicode-xid" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" - -[[package]] -name = "unicode_categories" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e" - -[[package]] -name = "untrusted" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd191f9397d57d581cddd31014772520aa448f65ef991055d7f61582c65165f" -dependencies = [ - "dyn-clone", - "ref-cast", - "serde", - "serde_json", -] - -[[package]] -name = "schemars" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2b42f36aa1cd011945615b92222f6bf73c599a102a300334cd7f8dbeec726cc" -dependencies = [ - "dyn-clone", - "ref-cast", - "serde", - "serde_json", -] - -[[package]] -name = "sec1" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" -dependencies = [ - "base16ct", - "der", - "generic-array", - "subtle", - "zeroize", -] - -[[package]] -name = "semver" -version = "1.0.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" - -[[package]] -name = "serde" -version = "1.0.228" -name = "md-5" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" -dependencies = [ - "cfg-if", - "digest", -] - -[[package]] -name = "memchr" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" - -[[package]] -name = "mime" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" - -[[package]] -name = "mime_guess" -version = "2.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7c44f8e672c00fe5308fa235f821cb4198414e1c77935c1ab6948d3fd78550e" -dependencies = [ - "mime", - "unicase", -] - -[[package]] -name = "minimal-lexical" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" - -[[package]] -name = "miniz_oxide" -version = "0.8.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" -dependencies = [ - "adler2", - "simd-adler32", -] - -[[package]] -name = "mio" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50b7e5b27aa02a74bac8c3f23f448f8d87ff11f92d3aac1a6ed369ee08cc56c1" -dependencies = [ - "libc", - "wasi", - "windows-sys 0.61.2", -] - -[[package]] -name = "moka" -version = "0.12.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "957228ad12042ee839f93c8f257b62b4c0ab5eaae1d4fa60de53b27c9d7c5046" -dependencies = [ - "async-lock", - "crossbeam-channel", - "crossbeam-epoch", - "crossbeam-utils", - "equivalent", - "event-listener 5.4.1", - "futures-util", - "parking_lot 0.12.5", - "portable-atomic", - "smallvec", - "tagptr", - "uuid", -] - -[[package]] -name = "multer" -version = "3.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83e87776546dc87511aa5ee218730c92b666d7264ab6ed41f9d215af9cd5224b" -dependencies = [ - "bytes", - "encoding_rs", - "futures-util", - "http", - "httparse", - "memchr", - "mime", - "spin", - "version_check", -] - -[[package]] -name = "native-tls" -version = "0.2.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "465500e14ea162429d264d44189adc38b199b62b1c21eea9f69e4b73cb03bbf2" -dependencies = [ - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", -] - -[[package]] -name = "nom" -version = "7.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" -dependencies = [ - "memchr", - "minimal-lexical", -] - -[[package]] -name = "nu-ansi-term" -version = "0.50.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" -dependencies = [ - "windows-sys 0.61.2", -] - -[[package]] -name = "num-bigint" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" -dependencies = [ - "num-integer", - "num-traits", -] - -[[package]] -name = "num-bigint-dig" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e661dda6640fad38e827a6d4a310ff4763082116fe217f279885c97f511bb0b7" -dependencies = [ - "lazy_static", - "libm", - "num-integer", - "num-iter", - "num-traits", - "rand 0.8.6", - "smallvec", - "zeroize", -] - -[[package]] -name = "num-conv" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "521739c6d2bac4aa25192232afe6841231376b2b26d4d9fae5ecf8ca5772e441" - -[[package]] -name = "num-derive" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "num-integer" -version = "0.1.46" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" -dependencies = [ - "num-traits", -] - -[[package]] -name = "num-iter" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-traits" -version = "0.2.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" -dependencies = [ - "autocfg", - "libm", -] - -[[package]] -name = "num_enum" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d0bca838442ec211fa11de3a8b0e0e8f3a4522575b5c4c06ed722e005036f26" -dependencies = [ - "num_enum_derive", - "rustversion", -] - -[[package]] -name = "num_enum_derive" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "680998035259dcfcafe653688bf2aa6d3e2dc05e98be6ab46afb089dc84f1df8" -dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "once_cell" -version = "1.21.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" - -[[package]] -name = "once_cell_polyfill" -version = "1.70.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" - -[[package]] -name = "oorandom" -version = "11.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e" - -[[package]] -name = "openssl" -version = "0.10.80" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a45fa2aa886c42762255da344f0a0d313e254066c46aad76f300c3d3da62d967" -dependencies = [ - "bitflags 2.11.1", - "cfg-if", - "foreign-types", - "libc", - "openssl-macros", - "openssl-sys", -] - -[[package]] -name = "openssl-macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "openssl-probe" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe" - -[[package]] -name = "openssl-sys" -version = "0.9.116" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f28a22dc7140cda5f096e5e7724a6962ca81a7f8bfd2979f9b18c11af56318c4" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "ordered-multimap" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49203cdcae0030493bad186b28da2fa25645fa276a51b6fec8010d281e02ef79" -dependencies = [ - "dlv-list", - "hashbrown 0.14.5", -] - -[[package]] -name = "p256" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" -dependencies = [ - "ecdsa", - "elliptic-curve", - "primeorder", - "sha2", -] - -[[package]] -name = "parking" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" - -[[package]] -name = "parking_lot" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" -dependencies = [ - "instant", - "lock_api", - "parking_lot_core 0.8.6", -] - -[[package]] -name = "parking_lot" -version = "0.12.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" -dependencies = [ - "lock_api", - "parking_lot_core 0.9.12", -] - -[[package]] -name = "parking_lot_core" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" -dependencies = [ - "cfg-if", - "instant", - "libc", - "redox_syscall 0.2.16", - "smallvec", - "winapi", -] - -[[package]] -name = "parking_lot_core" -version = "0.9.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall 0.5.18", - "smallvec", - "windows-link", -] - -[[package]] -name = "paste" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" - -[[package]] -name = "pathdiff" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" - -[[package]] -name = "pem" -version = "3.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d30c53c26bc5b31a98cd02d20f25a7c8567146caf63ed593a9d87b2775291be" -dependencies = [ - "base64 0.22.1", - "serde_core", -] - -[[package]] -name = "pem-rfc7468" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" -dependencies = [ - "base64ct", -] - -[[package]] -name = "percent-encoding" -version = "2.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" - -[[package]] -name = "pest" -version = "2.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0848c601009d37dfa3430c4666e147e49cdcf1b92ecd3e63657d8a5f19da662" -dependencies = [ - "memchr", - "ucd-trie", -] - -[[package]] -name = "pest_derive" -version = "2.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11f486f1ea21e6c10ed15d5a7c77165d0ee443402f0780849d1768e7d9d6fe77" -dependencies = [ - "pest", - "pest_generator", -] - -[[package]] -name = "pest_generator" -version = "2.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8040c4647b13b210a963c1ed407c1ff4fdfa01c31d6d2a098218702e6664f94f" -dependencies = [ - "pest", - "pest_meta", - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "pest_meta" -version = "2.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89815c69d36021a140146f26659a81d6c2afa33d216d736dd4be5381a7362220" -dependencies = [ - "pest", - "sha2", -] - -[[package]] -name = "pin-project-lite" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" - -[[package]] -name = "pkcs1" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f" -dependencies = [ - "der", - "pkcs8", - "spki", -] - -[[package]] -name = "pkcs8" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" -dependencies = [ - "der", - "spki", -] - -[[package]] -name = "pkg-config" -version = "0.3.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19f132c84eca552bf34cab8ec81f1c1dcc229b811638f9d283dceabe58c5569e" - -[[package]] -name = "plain" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" - -[[package]] -name = "plotters" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aeb6f403d7a4911efb1e33402027fc44f29b5bf6def3effcc22d7bb75f2b747" -dependencies = [ - "num-traits", - "plotters-backend", - "plotters-svg", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "plotters-backend" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df42e13c12958a16b3f7f4386b9ab1f3e7933914ecea48da7139435263a4172a" - -[[package]] -name = "plotters-svg" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51bae2ac328883f7acdfea3d66a7c35751187f870bc81f94563733a154d7a670" -dependencies = [ - "plotters-backend", -] - -[[package]] -name = "portable-atomic" -version = "1.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49" - -[[package]] -name = "potential_utf" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0103b1cef7ec0cf76490e969665504990193874ea05c85ff9bab8b911d0a0564" -dependencies = [ - "zerovec", -] - -[[package]] -name = "powerfmt" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" - -[[package]] -name = "ppv-lite86" -version = "0.2.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" -dependencies = [ - "zerocopy", -] - -[[package]] -name = "prettyplease" -version = "0.2.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" -dependencies = [ - "proc-macro2", - "syn 2.0.117", -] - -[[package]] -name = "primeorder" -version = "0.13.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6" -dependencies = [ - "elliptic-curve", -] - -[[package]] -name = "proc-macro-crate" -version = "3.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" -dependencies = [ - "toml_edit 0.25.11+spec-1.1.0", -] - -[[package]] -name = "proc-macro-error" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" -dependencies = [ - "proc-macro-error-attr", - "proc-macro2", - "quote", - "syn 1.0.109", - "version_check", -] - -[[package]] -name = "proc-macro-error-attr" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" -dependencies = [ - "proc-macro2", - "quote", - "version_check", -] - -[[package]] -name = "proc-macro2" -version = "1.0.106" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "prometheus" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ca5326d8d0b950a9acd87e6a3f94745394f62e4dae1b1ee22b2bc0c394af43a" -dependencies = [ - "cfg-if", - "fnv", - "lazy_static", - "memchr", - "parking_lot 0.12.5", - "protobuf", - "thiserror 2.0.18", -] - -[[package]] -name = "proptest" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b45fcc2344c680f5025fe57779faef368840d0bd1f42f216291f0dc4ace4744" -dependencies = [ - "bit-set", - "bit-vec", - "bitflags 2.11.1", - "num-traits", - "rand 0.9.4", - "rand_chacha 0.9.0", - "rand_xorshift", - "regex-syntax", - "rusty-fork", - "tempfile", - "unarray", -] - -[[package]] -name = "protobuf" -version = "3.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d65a1d4ddae7d8b5de68153b48f6aa3bba8cb002b243dbdbc55a5afbc98f99f4" -dependencies = [ - "once_cell", - "protobuf-support", - "thiserror 1.0.69", -] - -[[package]] -name = "protobuf-support" -version = "3.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e36c2f31e0a47f9280fb347ef5e461ffcd2c52dd520d8e216b52f93b0b0d7d6" -dependencies = [ - "thiserror 1.0.69", -] - -[[package]] -name = "proxy" -version = "0.1.0" -dependencies = [ - "soroban-sdk", -] - -[[package]] -name = "quick-error" -version = "1.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" - -[[package]] -name = "quinn" -version = "0.11.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20" -dependencies = [ - "bytes", - "cfg_aliases", - "pin-project-lite", - "quinn-proto", - "quinn-udp", - "rustc-hash", - "rustls", - "socket2 0.6.3", - "thiserror 2.0.18", - "tokio", - "tracing", - "web-time", -] - -[[package]] -name = "quinn-proto" -version = "0.11.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "434b42fec591c96ef50e21e886936e66d3cc3f737104fdb9b737c40ffb94c098" -dependencies = [ - "bytes", - "getrandom 0.3.4", - "lru-slab", - "rand 0.9.4", - "ring", - "rustc-hash", - "rustls", - "rustls-pki-types", - "slab", - "thiserror 2.0.18", - "tinyvec", - "tracing", - "web-time", -] - -[[package]] -name = "quinn-udp" -version = "0.5.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd" -dependencies = [ - "cfg_aliases", - "libc", - "once_cell", - "socket2 0.6.3", - "tracing", - "windows-sys 0.60.2", -] - -[[package]] -name = "quote" -version = "1.0.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "r-efi" -version = "5.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" - -[[package]] -name = "r-efi" -version = "6.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" - -[[package]] -name = "rand" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ca0ecfa931c29007047d1bc58e623ab12e5590e8c7cc53200d5202b69266d8a" -dependencies = [ - "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.4", -] - -[[package]] -name = "rand" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44c5af06bb1b7d3216d91932aed5265164bf384dc89cd6ba05cf59a35f5f76ea" -dependencies = [ - "rand_chacha 0.9.0", - "rand_core 0.9.5", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_chacha" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" -dependencies = [ - "ppv-lite86", - "rand_core 0.9.5", -] - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom 0.2.17", -] - -[[package]] -name = "rand_core" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" -dependencies = [ - "getrandom 0.3.4", -] - -[[package]] -name = "rand_xorshift" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "513962919efc330f829edb2535844d1b912b0fbe2ca165d613e4e8788bb05a5a" -dependencies = [ - "rand_core 0.9.5", -] - -[[package]] -name = "rayon" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb39b166781f92d482534ef4b4b1b2568f42613b53e5b6c160e24cfbfa30926d" -dependencies = [ - "either", - "rayon-core", -] - -[[package]] -name = "rayon-core" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" -dependencies = [ - "crossbeam-deque", - "crossbeam-utils", -] - -[[package]] -name = "redis" -version = "0.25.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e46922bd01fefcfdcf58d9cd626da082bb2cde27211920dacfde6b2ecf9a35b" -dependencies = [ - "async-trait", - "bytes", - "combine", - "futures-util", - "itoa", - "percent-encoding", - "pin-project-lite", - "ryu", - "sha1_smol", - "socket2 0.5.10", - "tokio", - "tokio-util", - "url", -] - -[[package]] -name = "redox_syscall" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" -dependencies = [ - "bitflags 1.3.2", -] - -[[package]] -name = "redox_syscall" -version = "0.5.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" -dependencies = [ - "bitflags 2.11.1", -] - -[[package]] -name = "redox_syscall" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4666a1a60d8412eab19d94f6d13dcc9cea0a5ef4fdf6a5db306537413c661b1b" -dependencies = [ - "bitflags 2.11.1", -] - -[[package]] -name = "ref-cast" -version = "1.0.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d" -dependencies = [ - "ref-cast-impl", -] - -[[package]] -name = "ref-cast-impl" -version = "1.0.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "regex" -version = "1.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276" -dependencies = [ - "aho-corasick", - "memchr", - "regex-automata", - "regex-syntax", -] - -[[package]] -name = "regex-automata" -version = "0.4.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", -] - -[[package]] -name = "regex-syntax" -version = "0.8.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" - -[[package]] -name = "reqwest" -version = "0.12.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147" -dependencies = [ - "base64 0.22.1", - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "http", - "http-body", - "http-body-util", - "hyper", - "hyper-rustls", - "hyper-util", - "js-sys", - "log", - "percent-encoding", - "pin-project-lite", - "quinn", - "rustls", - "rustls-pki-types", - "serde", - "serde_json", - "serde_urlencoded", - "sync_wrapper", - "tokio", - "tokio-rustls", - "tower 0.5.3", - "tower-http 0.6.11", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "webpki-roots", -] - -[[package]] -name = "rfc6979" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" -dependencies = [ - "hmac", - "subtle", -] - -[[package]] -name = "ring" -version = "0.17.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" -dependencies = [ - "cc", - "cfg-if", - "getrandom 0.2.17", - "libc", - "untrusted", - "windows-sys 0.52.0", -] - -[[package]] -name = "ron" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b91f7eff05f748767f183df4320a63d6936e9c6107d97c9e6bdd9784f4289c94" -dependencies = [ - "base64 0.21.7", - "bitflags 2.11.1", - "serde", - "serde_derive", -] - -[[package]] -name = "rsa" -version = "0.9.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8573f03f5883dcaebdfcf4725caa1ecb9c15b2ef50c43a07b816e06799bb12d" -dependencies = [ - "const-oid", - "digest", - "num-bigint-dig", - "num-integer", - "num-traits", - "pkcs1", - "pkcs8", - "rand_core 0.6.4", - "signature", - "spki", - "subtle", - "zeroize", -] - -[[package]] -name = "rusqlite" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "549b9d036d571d42e6e85d1c1425e2ac83491075078ca9a15be021c56b1641f2" -dependencies = [ - "bitflags 2.11.1", - "fallible-iterator", - "fallible-streaming-iterator", - "hashlink", - "libsqlite3-sys", - "smallvec", -] - -[[package]] -name = "rust-embed" -version = "8.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04113cb9355a377d83f06ef1f0a45b8ab8cd7d8b1288160717d66df5c7988d27" -dependencies = [ - "rust-embed-impl", - "rust-embed-utils", - "walkdir", -] - -[[package]] -name = "rust-embed-impl" -version = "8.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0902e4c7c8e997159ab384e6d0fc91c221375f6894346ae107f47dd0f3ccaa" -dependencies = [ - "proc-macro2", - "quote", - "rust-embed-utils", - "syn 2.0.117", - "walkdir", -] - -[[package]] -name = "rust-embed-utils" -version = "8.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bcdef0be6fe7f6fa333b1073c949729274b05f123a0ad7efcb8efd878e5c3b1" -dependencies = [ - "sha2", - "walkdir", -] - -[[package]] -name = "rust-ini" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e0698206bcb8882bf2a9ecb4c1e7785db57ff052297085a6efd4fe42302068a" -dependencies = [ - "cfg-if", - "ordered-multimap", -] - -[[package]] -name = "rustc-hash" -version = "2.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94300abf3f1ae2e2b8ffb7b58043de3d399c73fa6f4b73826402a5c457614dbe" - -[[package]] -name = "rustc_version" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" -dependencies = [ - "semver", -] - -[[package]] -name = "rustix" -version = "1.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" -dependencies = [ - "bitflags 2.11.1", - "errno", - "libc", - "linux-raw-sys", - "windows-sys 0.61.2", -] - -[[package]] -name = "rustls" -version = "0.23.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef86cd5876211988985292b91c96a8f2d298df24e75989a43a3c73f2d4d8168b" -dependencies = [ - "once_cell", - "ring", - "rustls-pki-types", - "rustls-webpki", - "subtle", - "zeroize", -] - -[[package]] -name = "rustls-pki-types" -version = "1.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30a7197ae7eb376e574fe940d068c30fe0462554a3ddbe4eca7838e049c937a9" -dependencies = [ - "web-time", - "zeroize", -] - -[[package]] -name = "rustls-webpki" -version = "0.103.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61c429a8649f110dddef65e2a5ad240f747e85f7758a6bccc7e5777bd33f756e" -dependencies = [ - "ring", - "rustls-pki-types", - "untrusted", -] - -[[package]] -name = "rustversion" -version = "1.0.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" - -[[package]] -name = "rusty-fork" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc6bf79ff24e648f6da1f8d1f011e9cac26491b619e6b9280f2b47f1774e6ee2" -dependencies = [ - "fnv", - "quick-error", - "tempfile", - "wait-timeout", -] - -[[package]] -name = "ryu" -version = "1.0.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" - -[[package]] -name = "same-file" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "schannel" -version = "0.1.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91c1b7e4904c873ef0710c1f407dde2e6287de2bebc1bbbf7d430bb7cbffd939" -dependencies = [ - "windows-sys 0.61.2", -] - -[[package]] -name = "schemars" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd191f9397d57d581cddd31014772520aa448f65ef991055d7f61582c65165f" -dependencies = [ - "dyn-clone", - "ref-cast", - "serde", - "serde_json", -] - -[[package]] -name = "schemars" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2b42f36aa1cd011945615b92222f6bf73c599a102a300334cd7f8dbeec726cc" -dependencies = [ - "dyn-clone", - "ref-cast", - "serde", - "serde_json", -] - -[[package]] -name = "scopeguard" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" - -[[package]] -name = "sec1" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" -dependencies = [ - "base16ct", - "der", - "generic-array", - "subtle", - "zeroize", -] - -[[package]] -name = "security-framework" -version = "3.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7f4bc775c73d9a02cde8bf7b2ec4c9d12743edf609006c7facc23998404cd1d" -dependencies = [ - "bitflags 2.11.1", - "core-foundation", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ce2691df843ecc5d231c0b14ece2acc3efb62c0a398c7e1d875f3983ce020e3" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "semver" -version = "1.0.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" - -[[package]] -name = "serde" -version = "1.0.228" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" -dependencies = [ - "serde_core", - "serde_derive", -] - -[[package]] -name = "serde_core" -version = "1.0.228" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.228" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "serde_json" -version = "1.0.150" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8014e44b4736ed0538adeecded0fce2a272f22dc9578a7eb6b2d9993c74cfb9" -dependencies = [ - "itoa", - "memchr", - "serde", - "serde_core", - "zmij", -] - -[[package]] -name = "serde_path_to_error" -version = "0.1.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10a9ff822e371bb5403e391ecd83e182e0e77ba7f6fe0160b795797109d1b457" -dependencies = [ - "itoa", - "serde", - "serde_core", -] - -[[package]] -name = "serde_spanned" -version = "0.6.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" -dependencies = [ - "serde", -] - -[[package]] -name = "serde_urlencoded" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" -dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "serde_with" -version = "3.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e72c1c2cb7b223fafb600a619537a871c2818583d619401b785e7c0b746ccde2" -dependencies = [ - "base64 0.22.1", - "bs58", - "chrono", - "hex", - "indexmap 1.9.3", - "indexmap 2.14.0", - "schemars 0.9.0", - "schemars 1.2.1", - "serde_core", - "serde_json", - "serde_with_macros", - "time", -] - -[[package]] -name = "serde_with_macros" -version = "3.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b90c488738ecb4fb0262f41f43bc40efc5868d9fb744319ddf5f5317f417bfac" -dependencies = [ - "darling 0.23.0", - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "sha1" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] - -[[package]] -name = "sha1_smol" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbfa15b3dddfee50a0fff136974b3e1bde555604ba463834a7eb7deb6417705d" - -[[package]] -name = "sha2" -version = "0.10.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] - -[[package]] -name = "sha3" -version = "0.10.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77fd7028345d415a4034cf8777cd4f8ab1851274233b45f84e3d955502d93874" -dependencies = [ - "digest", - "keccak", -] - -[[package]] -name = "sharded-slab" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" -dependencies = [ - "lazy_static", -] - -[[package]] -name = "shlex" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" - -[[package]] -name = "signal-hook-registry" -version = "1.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b" -dependencies = [ - "errno", - "libc", -] - -[[package]] -name = "signature" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" -dependencies = [ - "digest", - "rand_core 0.6.4", -] - -[[package]] -name = "simd-adler32" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "703d5c7ef118737c72f1af64ad2f6f8c5e1921f818cdcb97b8fe6fc69bf66214" - -[[package]] -name = "simple_asn1" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d585997b0ac10be3c5ee635f1bab02d512760d14b7c468801ac8a01d9ae5f1d" -dependencies = [ - "num-bigint", - "num-traits", - "thiserror 2.0.18", - "time", -] - -[[package]] -name = "slab" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" - -[[package]] -name = "sled" -version = "0.34.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f96b4737c2ce5987354855aed3797279def4ebf734436c6aa4552cf8e169935" -dependencies = [ - "crc32fast", - "crossbeam-epoch", - "crossbeam-utils", - "fs2", - "fxhash", - "libc", - "log", - "parking_lot 0.11.2", -] - -[[package]] -name = "smallvec" -version = "1.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" - -[[package]] -name = "socket2" -version = "0.5.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "socket2" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e" -dependencies = [ - "libc", - "windows-sys 0.61.2", -] - -[[package]] -name = "soroban-builtin-sdk-macros" -version = "22.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf2e42bf80fcdefb3aae6ff3c7101a62cf942e95320ed5b518a1705bc11c6b2f" -dependencies = [ - "itertools", - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "soroban-env-common" -version = "22.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "027cd856171bfd6ad2c0ffb3b7dfe55ad7080fb3050c36ad20970f80da634472" -dependencies = [ - "arbitrary", - "crate-git-revision", - "ethnum", - "num-derive", - "num-traits", - "serde", - "soroban-env-macros", - "soroban-wasmi", - "static_assertions", - "stellar-xdr", - "wasmparser 0.116.1", -] - -[[package]] -name = "soroban-env-guest" -version = "22.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a07dda1ae5220d975979b19ad4fd56bc86ec7ec1b4b25bc1c5d403f934e592e" -dependencies = [ - "soroban-env-common", - "static_assertions", -] - -[[package]] -name = "soroban-env-host" -version = "22.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66e8b03a4191d485eab03f066336112b2a50541a7553179553dc838b986b94dd" -dependencies = [ - "ark-bls12-381", - "ark-ec", - "ark-ff", - "ark-serialize", - "curve25519-dalek", - "ecdsa", - "ed25519-dalek", - "elliptic-curve", - "generic-array", - "getrandom 0.2.17", - "hex-literal", - "hmac", - "k256", - "num-derive", - "num-integer", - "num-traits", - "p256", - "rand 0.8.6", - "rand_chacha 0.3.1", - "sec1", - "sha2", - "sha3", - "soroban-builtin-sdk-macros", - "soroban-env-common", - "soroban-wasmi", - "static_assertions", - "stellar-strkey", - "wasmparser 0.116.1", -] - -[[package]] -name = "soroban-env-macros" -version = "22.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00eff744764ade3bc480e4909e3a581a240091f3d262acdce80b41f7069b2bd9" -dependencies = [ - "itertools", - "proc-macro2", - "quote", - "serde", - "serde_json", - "stellar-xdr", - "syn 2.0.117", -] - -[[package]] -name = "soroban-ledger-snapshot" -version = "22.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c30035cf1e8f02f65de3e594b6da113ecdaf1cd134d8480961d62568bb15adaf" -dependencies = [ - "serde", - "serde_json", - "serde_with", - "soroban-env-common", - "soroban-env-host", - "thiserror 1.0.69", -] - -[[package]] -name = "soroban-liquidity-pool-factory-contract" -version = "0.1.0" -dependencies = [ - "emergency_guard", - "liquidity_pool", - "soroban-sdk", - "soroban-token-contract", -] - -[[package]] -name = "soroban-sdk" -version = "22.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff18e8d7ca6d5340a211605ca2c86383bd4dfacc4f8253d72a1573974ffffe69" -dependencies = [ - "arbitrary", - "bytes-lit", - "ctor", - "derive_arbitrary", - "ed25519-dalek", - "rand 0.8.6", - "rustc_version", - "serde", - "serde_json", - "soroban-env-guest", - "soroban-env-host", - "soroban-ledger-snapshot", - "soroban-sdk-macros", - "stellar-strkey", -] - -[[package]] -name = "soroban-sdk-macros" -version = "22.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42b205cd86b34d530db87667bd287fbb194166d79b368227fd842110a914fde8" -dependencies = [ - "crate-git-revision", - "darling 0.20.11", - "itertools", - "proc-macro2", - "quote", - "rustc_version", - "sha2", - "soroban-env-common", - "soroban-spec", - "soroban-spec-rust", - "stellar-xdr", - "syn 2.0.117", -] - -[[package]] -name = "soroban-spec" -version = "22.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb6a16f2de28852c759f4da5f28cda54ec0d8dfa4c0e6e8cb3495234a72b0cea" -dependencies = [ - "base64 0.13.1", - "stellar-xdr", - "thiserror 1.0.69", - "wasmparser 0.116.1", -] - -[[package]] -name = "soroban-spec-rust" -version = "22.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdc6db5902ab21290dddf63fec4ee95703fe59891a947646e7b8607536f043fc" -dependencies = [ - "prettyplease", - "proc-macro2", - "quote", - "sha2", - "soroban-spec", - "stellar-xdr", - "syn 2.0.117", - "thiserror 1.0.69", -] - -[[package]] -name = "soroban-staking-rewards" -version = "0.1.0" -dependencies = [ - "emergency_guard", - "soroban-sdk", - "soroscope-error-codes", - "soroscope-math", -] - -[[package]] -name = "soroban-token-contract" -version = "0.0.0" -dependencies = [ - "emergency_guard", - "soroban-sdk", -] - -[[package]] -name = "soroban-typed-data-auth-contract" -version = "0.0.0" -dependencies = [ - "soroban-sdk", -] - -[[package]] -name = "soroban-wasmi" -version = "0.31.1-soroban.20.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "710403de32d0e0c35375518cb995d4fc056d0d48966f2e56ea471b8cb8fc9719" -dependencies = [ - "smallvec", - "spin", - "wasmi_arena", - "wasmi_core", - "wasmparser-nostd", -] - -[[package]] -name = "soroscope-core" -version = "0.1.0" -dependencies = [ - "axum", - "base64 0.22.1", - "chrono", - "clap", - "config", - "criterion", - "dotenvy", - "ed25519-dalek", - "hex", - "jsonwebtoken", - "moka", - "prometheus", - "proptest", - "rand 0.8.6", - "rayon", - "redis", - "reqwest", - "rsa", - "rusqlite", - "serde", - "serde_json", - "sha2", - "sled", - "soroban-env-host", - "soroban-sdk", - "sqlx", - "stellar-strkey", - "tempfile", - "thiserror 1.0.69", - "tokio", - "tokio-util", - "tower 0.4.13", - "tower-http 0.5.2", - "tracing", - "tracing-subscriber", - "utoipa", - "utoipa-swagger-ui", - "uuid", - "wasm-encoder 0.240.0", - "wasmparser 0.240.0", -] - -[[package]] -name = "soroscope-error-codes" -version = "0.1.0" -dependencies = [ - "soroban-sdk", -] - -[[package]] -name = "soroscope-math" -version = "0.1.0" -dependencies = [ - "soroban-sdk", - "soroscope-error-codes", -] - -[[package]] -name = "spin" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" -dependencies = [ - "lock_api", -] - -[[package]] -name = "spki" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" -dependencies = [ - "base64ct", - "der", -] - -[[package]] -name = "sqlformat" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bba3a93db0cc4f7bdece8bb09e77e2e785c20bfebf79eb8340ed80708048790" -dependencies = [ - "nom", - "unicode_categories", -] - -[[package]] -name = "sqlx" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e50c216e3624ec8e7ecd14c6a6a6370aad6ee5d8cfc3ab30b5162eeeef2ed33" -dependencies = [ - "sqlx-core", - "sqlx-macros", - "sqlx-mysql", - "sqlx-postgres", - "sqlx-sqlite", -] - -[[package]] -name = "sqlx-core" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d6753e460c998bbd4cd8c6f0ed9a64346fcca0723d6e75e52fdc351c5d2169d" -dependencies = [ - "ahash", - "atoi", - "byteorder", - "bytes", - "chrono", - "crc", - "crossbeam-queue", - "dotenvy", - "either", - "event-listener 2.5.3", - "futures-channel", - "futures-core", - "futures-intrusive", - "futures-io", - "futures-util", - "hashlink", - "hex", - "indexmap 2.14.0", - "log", - "memchr", - "native-tls", - "once_cell", - "paste", - "percent-encoding", - "serde", - "serde_json", - "sha2", - "smallvec", - "sqlformat", - "thiserror 1.0.69", - "tokio", - "tokio-stream", - "tracing", - "url", - "uuid", -] - -[[package]] -name = "sqlx-macros" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a793bb3ba331ec8359c1853bd39eed32cdd7baaf22c35ccf5c92a7e8d1189ec" -dependencies = [ - "proc-macro2", - "quote", - "sqlx-core", - "sqlx-macros-core", - "syn 1.0.109", -] - -[[package]] -name = "sqlx-macros-core" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a4ee1e104e00dedb6aa5ffdd1343107b0a4702e862a84320ee7cc74782d96fc" -dependencies = [ - "dotenvy", - "either", - "heck 0.4.1", - "hex", - "once_cell", - "proc-macro2", - "quote", - "serde", - "serde_json", - "sha2", - "sqlx-core", - "sqlx-mysql", - "sqlx-postgres", - "sqlx-sqlite", - "syn 1.0.109", - "tempfile", - "tokio", - "url", -] - -[[package]] -name = "sqlx-mysql" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "864b869fdf56263f4c95c45483191ea0af340f9f3e3e7b4d57a61c7c87a970db" -dependencies = [ - "atoi", - "base64 0.21.7", - "bitflags 2.11.1", - "byteorder", - "bytes", - "chrono", - "crc", - "digest", - "dotenvy", - "either", - "futures-channel", - "futures-core", - "futures-io", - "futures-util", - "generic-array", - "hex", - "hkdf", - "hmac", - "itoa", - "log", - "md-5", - "memchr", - "once_cell", - "percent-encoding", - "rand 0.8.6", - "rsa", - "serde", - "sha1", - "sha2", - "smallvec", - "sqlx-core", - "stringprep", - "thiserror 1.0.69", - "tracing", - "uuid", - "whoami", -] - -[[package]] -name = "sqlx-postgres" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb7ae0e6a97fb3ba33b23ac2671a5ce6e3cabe003f451abd5a56e7951d975624" -dependencies = [ - "atoi", - "base64 0.21.7", - "bitflags 2.11.1", - "byteorder", - "chrono", - "crc", - "dotenvy", - "etcetera", - "futures-channel", - "futures-core", - "futures-io", - "futures-util", - "hex", - "hkdf", - "hmac", - "home", - "itoa", - "log", - "md-5", - "memchr", - "once_cell", - "rand 0.8.6", - "serde", - "serde_json", - "sha1", - "sha2", - "smallvec", - "sqlx-core", - "stringprep", - "thiserror 1.0.69", - "tracing", - "uuid", - "whoami", -] - -[[package]] -name = "sqlx-sqlite" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d59dc83cf45d89c555a577694534fcd1b55c545a816c816ce51f20bbe56a4f3f" -dependencies = [ - "atoi", - "chrono", - "flume", - "futures-channel", - "futures-core", - "futures-executor", - "futures-intrusive", - "futures-util", - "libsqlite3-sys", - "log", - "percent-encoding", - "serde", - "sqlx-core", - "tracing", - "url", - "uuid", -] - -[[package]] -name = "stable_deref_trait" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" - -[[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - -[[package]] -name = "stellar-strkey" -version = "0.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e3aa3ed00e70082cb43febc1c2afa5056b9bb3e348bbb43d0cd0aa88a611144" -dependencies = [ - "crate-git-revision", - "data-encoding", - "thiserror 1.0.69", -] - -[[package]] -name = "stellar-xdr" -version = "22.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ce69db907e64d1e70a3dce8d4824655d154749426a6132b25395c49136013e4" -dependencies = [ - "arbitrary", - "base64 0.13.1", - "crate-git-revision", - "escape-bytes", - "hex", - "serde", - "serde_with", - "stellar-strkey", -] - -[[package]] -name = "storage-heavy" -version = "0.1.0" -dependencies = [ - "soroban-sdk", -] - -[[package]] -name = "stringprep" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b4df3d392d81bd458a8a621b8bffbd2302a12ffe288a9d931670948749463b1" -dependencies = [ - "unicode-bidi", - "unicode-normalization", - "unicode-properties", -] - -[[package]] -name = "strsim" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" - -[[package]] -name = "subtle" -version = "2.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" - -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn" -version = "2.0.117" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "sync_wrapper" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" -dependencies = [ - "futures-core", -] - -[[package]] -name = "synstructure" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "tagptr" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b2093cf4c8eb1e67749a6762251bc9cd836b6fc171623bd0a9d324d37af2417" - -[[package]] -name = "tempfile" -version = "3.27.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" -dependencies = [ - "fastrand", - "getrandom 0.4.2", - "once_cell", - "rustix", - "windows-sys 0.61.2", -] - -[[package]] -name = "thiserror" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" -dependencies = [ - "thiserror-impl 1.0.69", -] - -[[package]] -name = "thiserror" -version = "2.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" -dependencies = [ - "thiserror-impl 2.0.18", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "thiserror-impl" -version = "2.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "thread_local" -version = "1.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "time" -version = "0.3.47" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "743bd48c283afc0388f9b8827b976905fb217ad9e647fae3a379a9283c4def2c" -dependencies = [ - "deranged", - "itoa", - "num-conv", - "powerfmt", - "serde_core", - "time-core", - "time-macros", -] - -[[package]] -name = "time-core" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca" - -[[package]] -name = "time-macros" -version = "0.2.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e70e4c5a0e0a8a4823ad65dfe1a6930e4f4d756dcd9dd7939022b5e8c501215" -dependencies = [ - "num-conv", - "time-core", -] - -[[package]] -name = "tiny-keccak" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" -dependencies = [ - "crunchy", -] - -[[package]] -name = "tinystr" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8323304221c2a851516f22236c5722a72eaa19749016521d6dff0824447d96d" -dependencies = [ - "displaydoc", - "zerovec", -] - -[[package]] -name = "tinytemplate" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc" -dependencies = [ - "serde", - "serde_json", -] - -[[package]] -name = "tinyvec" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e61e67053d25a4e82c844e8424039d9745781b3fc4f32b8d55ed50f5f667ef3" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" - -[[package]] -name = "tokio" -version = "1.52.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc7f01b389ac15039e4dc9531aa973a135d7a4135281b12d7c1bc79fd57fffe" -dependencies = [ - "bytes", - "libc", - "mio", - "parking_lot 0.12.5", - "pin-project-lite", - "signal-hook-registry", - "socket2 0.6.3", - "tokio-macros", - "windows-sys 0.61.2", -] - -[[package]] -name = "tokio-macros" -version = "2.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "385a6cb71ab9ab790c5fe8d67f1645e6c450a7ce006a33de03daa956cf70a496" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "tokio-rustls" -version = "0.26.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61" -dependencies = [ - "rustls", - "tokio", -] - -[[package]] -name = "tokio-stream" -version = "0.1.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32da49809aab5c3bc678af03902d4ccddea2a87d028d86392a4b1560c6906c70" -dependencies = [ - "futures-core", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "tokio-tungstenite" -version = "0.24.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edc5f74e248dc973e0dbb7b74c7e0d6fcc301c694ff50049504004ef4d0cdcd9" -dependencies = [ - "futures-util", - "log", - "tokio", - "tungstenite", -] - -[[package]] -name = "tokio-util" -version = "0.7.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "toml" -version = "0.8.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" -dependencies = [ - "serde", - "serde_spanned", - "toml_datetime 0.6.11", - "toml_edit 0.22.27", -] - -[[package]] -name = "toml_datetime" -version = "0.6.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" -dependencies = [ - "serde", -] - -[[package]] -name = "toml_datetime" -version = "1.1.1+spec-1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7" -dependencies = [ - "serde_core", -] - -[[package]] -name = "toml_edit" -version = "0.22.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" -dependencies = [ - "indexmap 2.14.0", - "serde", - "serde_spanned", - "toml_datetime 0.6.11", - "toml_write", - "winnow 0.7.15", -] - -[[package]] -name = "toml_edit" -version = "0.25.11+spec-1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b59c4d22ed448339746c59b905d24568fcbb3ab65a500494f7b8c3e97739f2b" -dependencies = [ - "indexmap 2.14.0", - "toml_datetime 1.1.1+spec-1.1.0", - "toml_parser", - "winnow 1.0.3", -] - -[[package]] -name = "toml_parser" -version = "1.1.2+spec-1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526" -dependencies = [ - "winnow 1.0.3", -] - -[[package]] -name = "toml_write" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" - -[[package]] -name = "tower" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" -dependencies = [ - "tower-layer", - "tower-service", - "tracing", -] - -[[package]] -name = "tower" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4" -dependencies = [ - "futures-core", - "futures-util", - "pin-project-lite", - "sync_wrapper", - "tokio", - "tower-layer", - "tower-service", - "tracing", -] - -[[package]] -name = "tower-http" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9cd434a998747dd2c4276bc96ee2e0c7a2eadf3cae88e52be55a05fa9053f5" -dependencies = [ - "bitflags 2.11.1", - "bytes", - "http", - "http-body", - "http-body-util", - "pin-project-lite", - "tower-layer", - "tower-service", - "tracing", -] - -[[package]] -name = "tower-http" -version = "0.6.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cfcf7e2740e6fc6d4d688b4ef00650406bb94adf4731e43c096c3a19fe40840" -dependencies = [ - "bitflags 2.11.1", - "bytes", - "futures-util", - "http", - "http-body", - "pin-project-lite", - "tower 0.5.3", - "tower-layer", - "tower-service", - "url", -] - -[[package]] -name = "tower-layer" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" - -[[package]] -name = "tower-service" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" - -[[package]] -name = "tracing" -version = "0.1.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" -dependencies = [ - "log", - "pin-project-lite", - "tracing-attributes", - "tracing-core", -] - -[[package]] -name = "tracing-attributes" -version = "0.1.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "tracing-core" -version = "0.1.36" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" -dependencies = [ - "once_cell", - "valuable", -] - -[[package]] -name = "tracing-log" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" -dependencies = [ - "log", - "once_cell", - "tracing-core", -] - -[[package]] -name = "tracing-subscriber" -version = "0.3.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7f578e5945fb242538965c2d0b04418d38ec25c79d160cd279bf0731c8d319" -dependencies = [ - "matchers", - "nu-ansi-term", - "once_cell", - "regex-automata", - "sharded-slab", - "smallvec", - "thread_local", - "tracing", - "tracing-core", - "tracing-log", -] - -[[package]] -name = "try-lock" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" - -[[package]] -name = "tungstenite" -version = "0.24.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18e5b8366ee7a95b16d32197d0b2604b43a0be89dc5fac9f8e96ccafbaedda8a" -dependencies = [ - "byteorder", - "bytes", - "data-encoding", - "http", - "httparse", - "log", - "rand 0.8.6", - "sha1", - "thiserror 1.0.69", - "utf-8", -] - -[[package]] -name = "typenum" -version = "1.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40ce102ab67701b8526c123c1bab5cbe42d7040ccfd0f64af1a385808d2f43de" - -[[package]] -name = "ucd-trie" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" - -[[package]] -name = "unarray" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" - -[[package]] -name = "unicase" -version = "2.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbc4bc3a9f746d862c45cb89d705aa10f187bb96c76001afab07a0d35ce60142" - -[[package]] -name = "unicode-bidi" -version = "0.3.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5" - -[[package]] -name = "unicode-ident" -version = "1.0.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" - -[[package]] -name = "unicode-normalization" -version = "0.1.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fd4f6878c9cb28d874b009da9e8d183b5abc80117c40bbd187a1fde336be6e8" -dependencies = [ - "tinyvec", -] - -[[package]] -name = "unicode-properties" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7df058c713841ad818f1dc5d3fd88063241cc61f49f5fbea4b951e8cf5a8d71d" - -[[package]] -name = "unicode-segmentation" -version = "1.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9629274872b2bfaf8d66f5f15725007f635594914870f65218920345aa11aa8c" - -[[package]] -name = "unicode-xid" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" - -[[package]] -name = "unicode_categories" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e" - -[[package]] -name = "untrusted" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" - -[[package]] -name = "url" -version = "2.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", - "serde", -] - -[[package]] -name = "utf-8" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" - -[[package]] -name = "utf8_iter" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" - -[[package]] -name = "utf8parse" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" - -[[package]] -name = "utoipa" -version = "4.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5afb1a60e207dca502682537fefcfd9921e71d0b83e9576060f09abc6efab23" -dependencies = [ - "indexmap 2.14.0", - "serde", - "serde_json", - "utoipa-gen", -] - -[[package]] -name = "utoipa-gen" -version = "4.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20c24e8ab68ff9ee746aad22d39b5535601e6416d1b0feeabf78be986a5c4392" -dependencies = [ - "proc-macro-error", - "proc-macro2", - "quote", - "regex", - "syn 2.0.117", -] - -[[package]] -name = "utoipa-swagger-ui" -version = "7.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "943e0ff606c6d57d410fd5663a4d7c074ab2c5f14ab903b9514565e59fa1189e" -dependencies = [ - "axum", - "mime_guess", - "regex", - "reqwest", - "rust-embed", - "serde", - "serde_json", - "url", - "utoipa", - "utoipa-swagger-ui-vendored", - "zip", -] - -[[package]] -name = "utoipa-swagger-ui-vendored" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2eebbbfe4093922c2b6734d7c679ebfebd704a0d7e56dfcb0d05818ce28977d" - -[[package]] -name = "uuid" -version = "1.23.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba" dependencies = [ "serde_core", "serde_derive", @@ -6906,29 +1091,29 @@ dependencies = [ [[package]] name = "serde_core" -version = "1.0.228" +version = "1.0.229" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" +checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.228" +version = "1.0.229" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" +checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 3.0.3", ] [[package]] name = "serde_json" -version = "1.0.150" +version = "1.0.151" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8014e44b4736ed0538adeecded0fce2a272f22dc9578a7eb6b2d9993c74cfb9" +checksum = "c841b55ecdae098c80dcae9cf767f6f8a0c2cdb3416bbef72181df4d0fe73f14" dependencies = [ "itoa", "memchr", @@ -6939,9 +1124,9 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.20.0" +version = "3.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e72c1c2cb7b223fafb600a619537a871c2818583d619401b785e7c0b746ccde2" +checksum = "76a5c54c7310e7b8b9577c286d7e399ddd876c3e12b3ed917a8aabc4b96e9e8c" dependencies = [ "base64 0.22.1", "bs58", @@ -6950,7 +1135,7 @@ dependencies = [ "indexmap 1.9.3", "indexmap 2.14.0", "schemars 0.9.0", - "schemars 1.2.1", + "schemars 1.2.2", "serde_core", "serde_json", "serde_with_macros", @@ -6959,14 +1144,14 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.20.0" +version = "3.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b90c488738ecb4fb0262f41f43bc40efc5868d9fb744319ddf5f5317f417bfac" +checksum = "84d57bc0c8b9a17920c178daa6bb924850d54a9c97ab45194bb8c17ad66bb660" dependencies = [ "darling 0.23.0", "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] @@ -6992,9 +1177,9 @@ dependencies = [ [[package]] name = "shlex" -version = "1.3.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" +checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba" [[package]] name = "signature" @@ -7014,9 +1199,9 @@ checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" [[package]] name = "smallvec" -version = "1.15.1" +version = "1.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" +checksum = "8ed6a63f02c8539c91a8685a86f4099661ba3da017932f6ebbea6de3f0fa7c90" [[package]] name = "soroban-builtin-sdk-macros" @@ -7027,7 +1212,7 @@ dependencies = [ "itertools", "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] @@ -7107,7 +1292,7 @@ dependencies = [ "serde", "serde_json", "stellar-xdr", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] @@ -7163,7 +1348,7 @@ dependencies = [ "soroban-spec", "soroban-spec-rust", "stellar-xdr", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] @@ -7190,7 +1375,7 @@ dependencies = [ "sha2", "soroban-spec", "stellar-xdr", - "syn 2.0.117", + "syn 2.0.119", "thiserror", ] @@ -7234,9 +1419,9 @@ dependencies = [ [[package]] name = "spin" -version = "0.9.8" +version = "0.9.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +checksum = "3763264f6b73151db08c50ff20d7d8a0b8796e021cdea7ceedad07b80155fa0e" [[package]] name = "spki" @@ -7306,9 +1491,20 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.117" +version = "2.0.119" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "3.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" +checksum = "53e9bae58849f64dfa4f5d5ae372c8341f7305f82a3868709269343628b659a3" dependencies = [ "proc-macro2", "quote", @@ -7332,17 +1528,16 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] name = "time" -version = "0.3.47" +version = "0.3.54" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "743bd48c283afc0388f9b8827b976905fb217ad9e647fae3a379a9283c4def2c" +checksum = "3e1d5e639ff6bab73cb6885cc7e7b1de96c3f32c68ec55f3952614bec1092244" dependencies = [ "deranged", - "itoa", "num-conv", "powerfmt", "serde_core", @@ -7352,15 +1547,15 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca" +checksum = "9e1c906769ad99c88eaa54e728060edef082f8e358ff32030cb7c7d315e81109" [[package]] name = "time-macros" -version = "0.2.27" +version = "0.2.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e70e4c5a0e0a8a4823ad65dfe1a6930e4f4d756dcd9dd7939022b5e8c501215" +checksum = "7e689342a48d2ea927c87ea50cabf8594854bf940e9310208848d680d668ed85" dependencies = [ "num-conv", "time-core", @@ -7368,9 +1563,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.11.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e61e67053d25a4e82c844e8424039d9745781b3fc4f32b8d55ed50f5f667ef3" +checksum = "bb4ebadaa0af04fab11ae01eb5f9fdb5f9c5b875506e210e71c07873528baa7f" dependencies = [ "tinyvec_macros", ] @@ -7383,9 +1578,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "typenum" -version = "1.20.0" +version = "1.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40ce102ab67701b8526c123c1bab5cbe42d7040ccfd0f64af1a385808d2f43de" +checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20" [[package]] name = "unicode-ident" @@ -7407,9 +1602,9 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasm-bindgen" -version = "0.2.122" +version = "0.2.126" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ed04576f974d2b2fba0f38c51dbc5518011e38c36bf1143164be765528fd409" +checksum = "4b067c0c11094aef6b7a801c1e34a26affafdf3d051dba08456b868789aaf9a4" dependencies = [ "cfg-if", "once_cell", @@ -7420,9 +1615,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.122" +version = "0.2.126" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "916151b09da36bd82f6615cbf3a419e2f0ba23a03c6160e8e92eb6bd4aa1dec6" +checksum = "167ce5e579f6bcf889c4f7175a8a5a585de84e8ff93976ce393efa5f2837aab1" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -7430,22 +1625,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.122" +version = "0.2.126" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "299047362ccbfce148b67ab7e73349f77748e00c8296f9542adfad2ad82c5c5e" +checksum = "f3997c7839262f4ef12cf90b818d6340c18e80f263f1a94bf157d0ec4420380e" dependencies = [ "bumpalo", "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.119", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.122" +version = "0.2.126" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a929b2c61f11ba3e9bc35b50c1f25cb38e0e892c0c231ae2b8cf78d5dad4437" +checksum = "dc1b4cb0cc549fcf58d7dfc081778139b3d283a081644e833e84682ad71cea24" dependencies = [ "unicode-ident", ] @@ -7508,7 +1703,7 @@ checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] @@ -7519,7 +1714,7 @@ checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] @@ -7548,46 +1743,46 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.48" +version = "0.8.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eed437bf9d6692032087e337407a86f04cd8d6a16a37199ed57949d415bd68e9" +checksum = "b5a105cd7b140f6eeec8acff2ea38135d3cab283ada58540f629fe51e46696eb" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.48" +version = "0.8.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70e3cd084b1788766f53af483dd21f93881ff30d7320490ec3ef7526d203bad4" +checksum = "0fe976fb70c78cd64cccfe3a6fc142244e8a77b70959b30faf9d0ac37ee228eb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] name = "zeroize" -version = "1.8.2" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" +checksum = "e13c156562582aa81c60cb29407084cdb54c4164760106ab78e6c5b0858cf64e" dependencies = [ "zeroize_derive", ] [[package]] name = "zeroize_derive" -version = "1.4.3" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85a5b4158499876c763cb03bc4e49185d3cccbabb15b33c627f7884f43db852e" +checksum = "3c50655cbb0fe3fc43170059e702f1ce5e19b84cec58dc87b037a09935c2f328" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] name = "zmij" -version = "1.0.21" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" +checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b" diff --git a/contracts/emergency_guard/examples/simple_token.rs b/contracts/emergency_guard/examples/simple_token.rs index 73d8377a..3032b466 100644 --- a/contracts/emergency_guard/examples/simple_token.rs +++ b/contracts/emergency_guard/examples/simple_token.rs @@ -129,8 +129,6 @@ impl SimpleToken { .set(&DataKey::TotalSupply, &(supply - amount)); } - pub fn get_pause_state(env: Env) -> u32 { - EmergencyGuard::get_pause_state(env) // ==== EMERGENCY GUARD FUNCTIONS ==== /// Pause only transfers (minting and burning still work) @@ -145,7 +143,6 @@ impl SimpleToken { /// Resume transfers pub fn resume_transfers(env: Env) { - DefaultEmergencyGuard::unpause(&env, PauseType::TRANSFER).expect("Unauthorized"); let admin: Address = env .storage() .instance() @@ -231,8 +228,6 @@ impl SimpleToken { EmergencyGuard::get_threshold(env) } - } - /// Add new admin (requires existing admin authorization) pub fn add_admin(env: Env, new_admin: Address) { let admin: Address = env diff --git a/contracts/emergency_guard/src/lib.rs b/contracts/emergency_guard/src/lib.rs index 15164e78..dae0e36c 100644 --- a/contracts/emergency_guard/src/lib.rs +++ b/contracts/emergency_guard/src/lib.rs @@ -2,7 +2,7 @@ #[cfg(feature = "contract")] use soroban_sdk::{contract, contractimpl}; -use soroban_sdk::{contracterror, contracttype, Address, Env, String, Vec}; +use soroban_sdk::{contracterror, contracttype, log, Address, Env, String, Vec}; /// Granular pause types using bitmask for efficient storage #[contracttype] @@ -19,6 +19,8 @@ impl PauseType { pub const CREATE_PAIR: u32 = 1 << 6; /// Pause staking operations pub const STAKE: u32 = 1 << 7; + /// Pause reward claims independently of the global paused flag + pub const CLAIM_REWARDS: u32 = 1 << 8; pub fn new(value: u32) -> Self { PauseType(value) @@ -230,7 +232,6 @@ pub fn emit_admin_removed(e: &Env, approvers: &Vec
, admin: &Address) { ); } -#[contract] #[cfg_attr(feature = "contract", contract)] pub struct EmergencyGuard; @@ -309,7 +310,7 @@ impl EmergencyGuard { state.set_paused(operation, paused); env.storage() .instance() - .set(&GuardDataKey::PauseState, &pause_state); + .set(&GuardDataKey::PauseState, &state); emit_guard_event( &env, @@ -329,7 +330,6 @@ impl EmergencyGuard { operation, paused ); - .set(&GuardDataKey::PauseState, &state); emit_pause_state_changed(&env, &admin, operation, paused); Ok(()) } @@ -341,7 +341,7 @@ impl EmergencyGuard { state.pause_all(); env.storage() .instance() - .set(&GuardDataKey::PauseState, &pause_state); + .set(&GuardDataKey::PauseState, &state); emit_guard_event( &env, @@ -355,7 +355,6 @@ impl EmergencyGuard { approver_count: approvers.len(), }, ); - .set(&GuardDataKey::PauseState, &state); emit_emergency_paused_all(&env, &approvers); Ok(()) } @@ -365,7 +364,7 @@ impl EmergencyGuard { Self::check_multi_sig(&env, &approvers)?; env.storage() .instance() - .set(&GuardDataKey::PauseState, &pause_state); + .set(&GuardDataKey::PauseState, &PauseType::new(0)); emit_guard_event( &env, @@ -379,7 +378,6 @@ impl EmergencyGuard { approver_count: approvers.len(), }, ); - .set(&GuardDataKey::PauseState, &PauseType::new(0)); emit_resumed_all(&env, &approvers); Ok(()) } @@ -439,7 +437,9 @@ impl EmergencyGuard { return Err(GuardError::AdminNotFound); } - env.storage().instance().set(&GuardDataKey::Admins, &new_admins); + env.storage() + .instance() + .set(&GuardDataKey::Admins, &new_admins); emit_guard_event( &env, EmergencyGuardEvent { @@ -467,6 +467,7 @@ impl EmergencyGuard { new_admin: Address, ) -> Result<(), GuardError> { Self::check_multi_sig(&env, &approvers)?; + let threshold = Self::get_threshold(env.clone()); let admins = Self::get_admins(env.clone()); let mut new_admins = Vec::new(&env); let mut found = false; @@ -484,13 +485,13 @@ impl EmergencyGuard { return Err(GuardError::AdminNotFound); } - new_admins.push_back(new_admin.clone()); - - if (new_admins.len() as u32) < threshold { + if new_admins.len() < threshold { return Err(GuardError::InvalidThreshold); } - env.storage().instance().set(&GuardDataKey::Admins, &new_admins); + env.storage() + .instance() + .set(&GuardDataKey::Admins, &new_admins); emit_guard_event( &env, EmergencyGuardEvent { @@ -581,11 +582,6 @@ impl EmergencyGuard { Ok(()) } } - - /// Public method to check if an address is an admin - pub fn is_admin_public(env: Env, addr: Address) -> bool { - Self::is_admin_internal(&env, &addr) - } } /// Default implementation of EmergencyGuardTrait using static methods @@ -690,7 +686,7 @@ impl EmergencyGuardTrait for DefaultEmergencyGuard { } // Verify threshold is valid - if threshold == 0 || threshold > admins.len() as u32 { + if threshold == 0 || threshold > admins.len() { return Err(GuardError::InvalidThreshold); } @@ -731,7 +727,7 @@ impl EmergencyGuardTrait for DefaultEmergencyGuard { let admins = Self::get_admins(env); let threshold = Self::get_threshold(env); - if admins.len() as u32 <= threshold { + if admins.len() <= threshold { return Err(GuardError::InvalidThreshold); } @@ -749,7 +745,9 @@ impl EmergencyGuardTrait for DefaultEmergencyGuard { return Err(GuardError::AdminNotFound); } - env.storage().instance().set(&GuardDataKey::Admins, &new_admins); + env.storage() + .instance() + .set(&GuardDataKey::Admins, &new_admins); log!(env, "Admin removed: {}", admin); Ok(()) } @@ -771,21 +769,26 @@ impl EmergencyGuardTrait for DefaultEmergencyGuard { } /// Check if address is an admin - fn is_admin(env: &Env, addr: &Address) -> bool { + fn is_admin(env: &Env, addr: Address) -> bool { let admins: Vec
= env .storage() .instance() .get(&GuardDataKey::Admins) .unwrap_or_else(|| Vec::new(env)); - admins.iter().any(|a| a == *addr) + admins.iter().any(|a| a == addr) } /// Rotate admin (multi-sig required) - fn rotate_admin(env: &Env, approvers: Vec
, old_admin: Address, new_admin: Address) -> Result<(), GuardError> { + fn rotate_admin( + env: &Env, + approvers: Vec
, + old_admin: Address, + new_admin: Address, + ) -> Result<(), GuardError> { EmergencyGuard::check_multi_sig(env, &approvers)?; - let mut admins = Self::get_admins(env); + let admins = Self::get_admins(env); let threshold = Self::get_threshold(env); let mut found = false; @@ -804,11 +807,13 @@ impl EmergencyGuardTrait for DefaultEmergencyGuard { new_admins.push_back(new_admin.clone()); - if (new_admins.len() as u32) < threshold { + if new_admins.len() < threshold { return Err(GuardError::InvalidThreshold); } - env.storage().instance().set(&GuardDataKey::Admins, &new_admins); + env.storage() + .instance() + .set(&GuardDataKey::Admins, &new_admins); log!(env, "Admin rotated: {} to {}", old_admin, new_admin); Ok(()) } @@ -906,82 +911,3 @@ pub trait EmergencyGuardTrait { fn get_threshold(env: &Env) -> u32; fn is_admin(env: &Env, addr: Address) -> bool; } - -pub struct DefaultEmergencyGuard; - -impl DefaultEmergencyGuard { - pub fn check_not_paused(env: &Env, operation: u32) -> Result<(), GuardError> { - if EmergencyGuard::is_paused(env.clone(), operation) { - Err(GuardError::Paused) - } else { - Ok(()) - } - } - pub fn get_pause_state(env: &Env) -> u32 { - EmergencyGuard::get_pause_state(env.clone()) - } - pub fn set_pause_state(env: &Env, operation: u32, paused: bool) -> Result<(), GuardError> { - let admins = EmergencyGuard::get_admins(env.clone()); - if let Some(admin) = admins.get(0) { - EmergencyGuard::set_pause(env.clone(), admin, operation, paused) - } else { - Err(GuardError::Unauthorized) - } - } - pub fn unpause(env: &Env, operation: u32) -> Result<(), GuardError> { - let admins = EmergencyGuard::get_admins(env.clone()); - if let Some(admin) = admins.get(0) { - EmergencyGuard::set_pause(env.clone(), admin, operation, false) - } else { - Err(GuardError::Unauthorized) - } - } - pub fn unpause_all(env: &Env) -> Result<(), GuardError> { - let admins = EmergencyGuard::get_admins(env.clone()); - if let Some(admin) = admins.get(0) { - EmergencyGuard::set_pause(env.clone(), admin, u32::MAX, false) - } else { - Err(GuardError::Unauthorized) - } - } - pub fn emergency_pause_all(env: &Env, approvers: Vec
) -> Result<(), GuardError> { - EmergencyGuard::emergency_pause(env.clone(), approvers) - } - pub fn resume_all(env: &Env, approvers: Vec
) -> Result<(), GuardError> { - EmergencyGuard::resume(env.clone(), approvers) - } - pub fn init_guard(env: &Env, admins: Vec
, threshold: u32) -> Result<(), GuardError> { - EmergencyGuard::initialize(env.clone(), admins, threshold) - } - pub fn add_admin( - env: &Env, - approvers: Vec
, - new_admin: Address, - ) -> Result<(), GuardError> { - EmergencyGuard::add_admin(env.clone(), approvers, new_admin) - } - pub fn remove_admin( - env: &Env, - approvers: Vec
, - admin: Address, - ) -> Result<(), GuardError> { - EmergencyGuard::remove_admin(env.clone(), approvers, admin) - } - pub fn rotate_admin( - env: &Env, - approvers: Vec
, - old_admin: Address, - new_admin: Address, - ) -> Result<(), GuardError> { - EmergencyGuard::rotate_admin(env.clone(), approvers, old_admin, new_admin) - } - pub fn get_admins(env: &Env) -> Vec
{ - EmergencyGuard::get_admins(env.clone()) - } - pub fn get_threshold(env: &Env) -> u32 { - EmergencyGuard::get_threshold(env.clone()) - } - pub fn is_admin(env: &Env, addr: Address) -> bool { - EmergencyGuard::is_admin_public(env.clone(), addr) - } -} diff --git a/contracts/emergency_guard/src/test.rs b/contracts/emergency_guard/src/test.rs index 5868cbce..0d520d39 100644 --- a/contracts/emergency_guard/src/test.rs +++ b/contracts/emergency_guard/src/test.rs @@ -210,7 +210,9 @@ fn test_add_admin_fails_with_non_admin_approvers() { let outsider = Address::generate(&env); let approvers = vec![&env, outsider]; let result = client.try_add_admin(&approvers, &new_admin); - assert_eq!(result, Err(Ok(GuardError::InsufficientSignatures))); + // Approver count meets the threshold, so this fails on the approver not + // being an admin rather than on the signature count. + assert_eq!(result, Err(Ok(GuardError::Unauthorized))); } #[test] @@ -290,7 +292,8 @@ fn test_unauthorized_admin_removal() { let outsider = Address::generate(&env); let approvers = vec![&env, outsider]; let result = client.try_remove_admin(&approvers, &admins[1]); - assert_eq!(result, Err(Ok(GuardError::InsufficientSignatures))); + // The outsider satisfies the count but is not an admin. + assert_eq!(result, Err(Ok(GuardError::Unauthorized))); } // ─── Full rotation cycle ───────────────────────────────────────────────────── @@ -358,7 +361,9 @@ fn test_removed_admin_cannot_approve_operations() { let new_admin = Address::generate(&env); let bad_approvers = vec![&env, admins[2].clone()]; let result = client.try_add_admin(&bad_approvers, &new_admin); - assert_eq!(result, Err(Ok(GuardError::InsufficientSignatures))); + // Once removed, the former admin is rejected as unauthorized rather than + // counting toward the signature threshold. + assert_eq!(result, Err(Ok(GuardError::Unauthorized))); } #[test] diff --git a/contracts/staking_rewards/src/lib.rs b/contracts/staking_rewards/src/lib.rs index f6a85e99..32dbfd32 100644 --- a/contracts/staking_rewards/src/lib.rs +++ b/contracts/staking_rewards/src/lib.rs @@ -1,10 +1,9 @@ #![no_std] -use soroban_sdk::{contract, contractimpl, contracttype, token, Address, Env, String, Vec, vec}; +use soroban_sdk::{contract, contractimpl, contracttype, token, Address, Env, String, Vec}; -use emergency_guard::{EmergencyGuard, PauseType}; +use emergency_guard::{DefaultEmergencyGuard, EmergencyGuard, EmergencyGuardTrait, PauseType}; pub use soroscope_error_codes::ContractError; use soroscope_math::Fixed; -use emergency_guard::{DefaultEmergencyGuard, PauseType, EmergencyGuardTrait}; pub const SCALE: i128 = 1_000_000_000_000_000_000; // 18 decimals @@ -250,10 +249,6 @@ impl StakingRewards { e.storage().instance().set(&DataKey::TotalStaked, &0i128); e.storage().instance().extend_ttl(10000, 10000); - // Initialize emergency guard with single admin and threshold of 1 - let admins = vec![&e, owner.clone()]; - DefaultEmergencyGuard::init_guard(&e, admins, 1) - .map_err(|_| ContractError::AlreadyInitialized)?; // Initialize the embedded EmergencyGuard so granular pause checks // (e.g. PauseType::CLAIM_REWARDS) can be toggled by the owner. // Threshold of 1 means the single owner can trigger any pause. @@ -496,9 +491,6 @@ impl StakingRewards { /// Pause staking operations (admin only). pub fn pause_staking(e: Env) -> Result<(), ContractError> { let config = Self::get_config(e.clone())?; - /// Sets the global paused state (owner only). - pub fn set_paused(e: Env, paused: bool) -> Result<(), ContractError> { - let mut config = Self::get_config(e.clone())?; config.owner.require_auth(); DefaultEmergencyGuard::set_pause_state(&e, PauseType::STAKE, true) @@ -543,8 +535,7 @@ impl StakingRewards { /// Resume all paused operations (requires multi-sig approval). pub fn resume_all(e: Env, approvers: Vec
) -> Result<(), ContractError> { - DefaultEmergencyGuard::resume_all(&e, approvers) - .map_err(|_| ContractError::Paused)?; + DefaultEmergencyGuard::resume_all(&e, approvers).map_err(|_| ContractError::Paused)?; e.events().publish( (String::from_str(&e, "resume_all"),), @@ -577,20 +568,35 @@ impl StakingRewards { } /// Add new admin (multi-sig required). - pub fn add_admin(e: Env, approvers: Vec
, new_admin: Address) -> Result<(), ContractError> { + pub fn add_admin( + e: Env, + approvers: Vec
, + new_admin: Address, + ) -> Result<(), ContractError> { DefaultEmergencyGuard::add_admin(&e, approvers, new_admin) .map_err(|_| ContractError::Paused) } /// Remove admin (multi-sig required). - pub fn remove_admin(e: Env, approvers: Vec
, admin: Address) -> Result<(), ContractError> { - DefaultEmergencyGuard::remove_admin(&e, approvers, admin) - .map_err(|_| ContractError::Paused) + pub fn remove_admin( + e: Env, + approvers: Vec
, + admin: Address, + ) -> Result<(), ContractError> { + DefaultEmergencyGuard::remove_admin(&e, approvers, admin).map_err(|_| ContractError::Paused) } /// Rotate admin (multi-sig required). - pub fn rotate_admin(e: Env, approvers: Vec
, old_admin: Address, new_admin: Address) -> Result<(), ContractError> { + pub fn rotate_admin( + e: Env, + approvers: Vec
, + old_admin: Address, + new_admin: Address, + ) -> Result<(), ContractError> { DefaultEmergencyGuard::rotate_admin(&e, approvers, old_admin, new_admin) + .map_err(|_| ContractError::Paused) + } + /// Granularly pause or unpause the claim_rewards operation (owner only). /// This is independent of the global `is_paused` flag and uses the /// embedded EmergencyGuard bitmask (PauseType::CLAIM_REWARDS). diff --git a/contracts/staking_rewards/src/test.rs b/contracts/staking_rewards/src/test.rs index 4d182734..e0999471 100644 --- a/contracts/staking_rewards/src/test.rs +++ b/contracts/staking_rewards/src/test.rs @@ -292,11 +292,6 @@ fn test_pause_safeguards_claim() { #[test] fn test_successful_withdrawal() { -/// Verifies that the CLAIM_REWARDS granular pause blocks claims independently -/// of the global `is_paused` flag, satisfying issue #463 acceptance criteria. -#[test] -#[should_panic(expected = "Contract, #14")] -fn test_granular_claim_rewards_pause() { let (e, client, _, staking_token, _) = setup(); let user = Address::generate(&e); @@ -318,6 +313,28 @@ fn test_granular_claim_rewards_pause() { assert_eq!(token_balance, STAKE_AMOUNT); } +/// Verifies that the CLAIM_REWARDS granular pause blocks claims independently +/// of the global `is_paused` flag, satisfying issue #463 acceptance criteria. +#[test] +#[should_panic(expected = "Contract, #14")] +fn test_granular_claim_rewards_pause() { + let (e, client, _, staking_token, _) = setup(); + let user = Address::generate(&e); + + let staking_client = token::StellarAssetClient::new(&e, &staking_token); + staking_client.mint(&user, &STAKE_AMOUNT); + + client.stake(&user, &STAKE_AMOUNT); + advance_ledger(&e, 5); + + // Activate CLAIM_REWARDS granular pause via the contract's delegation function. + // Global is_paused remains false — only the granular bitmask bit is set. + client.set_claim_rewards_paused(&true); + + // Claim MUST fail with ContractError::Paused (error code 14). + client.claim(&user); +} + #[test] fn test_partial_withdrawal() { let (e, client, _, staking_token, _) = setup(); @@ -485,13 +502,4 @@ fn test_granular_pause_staking() { // Stake should work again after resume client.stake(&user, &STAKE_AMOUNT); assert_eq!(client.get_staked_balance(&user), STAKE_AMOUNT * 2); - client.stake(&user, &STAKE_AMOUNT); - advance_ledger(&e, 5); - - // Activate CLAIM_REWARDS granular pause via the contract's delegation function. - // Global is_paused remains false — only the granular bitmask bit is set. - client.set_claim_rewards_paused(&true); - - // Claim MUST fail with ContractError::Paused (error code 14). - client.claim(&user); } From 5171868c2b8a0eaab4820e95df87298831c24d93 Mon Sep 17 00:00:00 2001 From: Gift Amadi <120387225+giftexceed@users.noreply.github.com> Date: Tue, 28 Jul 2026 12:40:17 +0000 Subject: [PATCH 2/3] feature(pool-slippage): add min_amount_out slippage protection to swaps Issue #650. The pool only offered an exact-output swap, `swap(to, buy_a, out, in_max)`, where the caller fixes the output and caps the input. A trader who wants to sell a fixed amount had no entry point and had to guess `out`, so the one quantity they could not bound was the one an attacker moves: front-running the transaction leaves the same input returning far less. Adds `swap_exact_in(to, buy_a, amount_in, min_amount_out)`. It quotes the output from live reserves and the current fee, then refuses the trade with `SlippageExceeded` unless `amount_out >= min_amount_out`, before any tokens move. Returns the output actually delivered. `min_amount_out = 0` opts out. `swap` keeps its signature. Its output is fixed by the caller and delivered exactly or not at all, so a minimum-output parameter there would be satisfied by construction; `in_max` is already that direction's bound. Documented rather than duplicated. Also adds the read-only quotes callers need to pick a floor: `get_amount_out`, `get_amount_in` and `get_reserves`. Both swap directions now share `amount_out_for_in` / `amount_in_for_out` and a `settle_swap` helper, so the transfer-and-reserve-update path exists once. Division truncates toward the pool in both directions, and a test asserts the constant product never weakens. New error `InvalidAmount = 15` for a non-positive `amount_in` or a negative `min_amount_out`; a negative floor would silently disable the check. Existing codes are untouched. 11 tests cover the quoted-output path, both directions, a rejected floor leaving state untouched, a full front-run sandwich, the zero-minimum opt-out, invalid amounts, an input too small to fill, pause interaction, the fee's effect on a quote, and the quote round trip. Prerequisite repairs, without which none of the above could build or run: liquidity_pool was not a workspace member and did not compile, so CI's `cargo build -p liquidity_pool` had nothing to build. Its lib.rs had been inflated from ~1150 to 2905 lines by merges resolved by accepting both sides: the Error enum carried three overlapping copies with conflicting codes, PoolState and DataKey were each declared four times, and `withdraw` had six duplicated transfer calls. The last clean revision is 3e50a23, which holds the full public API and is the second parent of the merge that broke it, so lib.rs is restored from there and re-added to the workspace. That revision needed two fixes of its own: a duplicated `get_pause_mask`, and `remove_guard_admin` resolving to the trait's `remove_admin` instead of the inherent one. test.rs had the same damage in two blocks. `test_emergency_guard_trait_impl` called `init_guard` on an already-initialized guard and then made twelve assertions through direct `` calls, which touch instance storage outside any contract frame; both forms are restored to the client-based assertions that work. `test_granular_pause_operations` called a two-argument `guard_unpause` that no version of the contract has. Four behaviour gaps the newer tests already asserted, all previously masked by the crate not compiling: - `set_paused` looped over four pause bits, calling `require_auth` on the same admin each time, which the host rejects as `Auth(ExistingValue)`. It now applies one combined mask, extended to cover STAKE and CLAIM_REWARDS so it pauses what its name claims. - `stake`, `unstake` and `claim_rewards` had no pause check at all. - Rewards never accrued. `update_reward_state` defaulted a missing `LastRewardLedger` to the current ledger and returned early without storing it, so `current <= last` held forever. The checkpoint is now seeded on the first staking action, and the accumulator is projected by a read-only helper so `get_pending_rewards` reports accrual without writing. - Removing or rotating the primary admin left `DataKey::Admin` pointing at an address that was no longer a guard admin. Both paths now hand the role to a surviving admin, and membership and threshold refusals report `Unauthorized`. Test snapshots are regenerated; they were stale from the mangled revision and still referenced its GuardAdmins/GuardThreshold storage keys. cargo fmt --all --check, cargo check --locked --all-targets, cargo clippy --locked --all-targets --all-features -D warnings, cargo build -p liquidity_pool --target wasm32-unknown-unknown --release and cargo test --locked all pass. 113 tests, 0 failures, 59 of them in liquidity_pool. --- Cargo.lock | 263 +- Cargo.toml | 1 + contracts/liquidity_pool/README.md | 71 + contracts/liquidity_pool/src/lib.rs | 2263 +++-------------- contracts/liquidity_pool/src/test.rs | 341 ++- .../fuzz_test/test_swap_invariant.1.json | 154 +- .../fuzz_test/test_swap_invariant.10.json | 58 +- .../fuzz_test/test_swap_invariant.100.json | 154 +- .../fuzz_test/test_swap_invariant.101.json | 154 +- .../fuzz_test/test_swap_invariant.102.json | 154 +- .../fuzz_test/test_swap_invariant.103.json | 154 +- .../fuzz_test/test_swap_invariant.104.json | 58 +- .../fuzz_test/test_swap_invariant.105.json | 66 +- .../fuzz_test/test_swap_invariant.106.json | 158 +- .../fuzz_test/test_swap_invariant.107.json | 70 +- .../fuzz_test/test_swap_invariant.108.json | 58 +- .../fuzz_test/test_swap_invariant.109.json | 58 +- .../fuzz_test/test_swap_invariant.11.json | 58 +- .../fuzz_test/test_swap_invariant.110.json | 154 +- .../fuzz_test/test_swap_invariant.111.json | 66 +- .../fuzz_test/test_swap_invariant.112.json | 119 +- .../fuzz_test/test_swap_invariant.113.json | 154 +- .../fuzz_test/test_swap_invariant.114.json | 58 +- .../fuzz_test/test_swap_invariant.115.json | 58 +- .../fuzz_test/test_swap_invariant.116.json | 66 +- .../fuzz_test/test_swap_invariant.117.json | 154 +- .../fuzz_test/test_swap_invariant.118.json | 58 +- .../fuzz_test/test_swap_invariant.119.json | 58 +- .../fuzz_test/test_swap_invariant.12.json | 158 +- .../fuzz_test/test_swap_invariant.120.json | 154 +- .../fuzz_test/test_swap_invariant.121.json | 158 +- .../fuzz_test/test_swap_invariant.122.json | 119 +- .../fuzz_test/test_swap_invariant.123.json | 58 +- .../fuzz_test/test_swap_invariant.124.json | 70 +- .../fuzz_test/test_swap_invariant.125.json | 58 +- .../fuzz_test/test_swap_invariant.126.json | 58 +- .../fuzz_test/test_swap_invariant.127.json | 58 +- .../fuzz_test/test_swap_invariant.128.json | 58 +- .../fuzz_test/test_swap_invariant.129.json | 154 +- .../fuzz_test/test_swap_invariant.13.json | 154 +- .../fuzz_test/test_swap_invariant.130.json | 101 +- .../fuzz_test/test_swap_invariant.131.json | 154 +- .../fuzz_test/test_swap_invariant.132.json | 154 +- .../fuzz_test/test_swap_invariant.133.json | 154 +- .../fuzz_test/test_swap_invariant.134.json | 58 +- .../fuzz_test/test_swap_invariant.135.json | 58 +- .../fuzz_test/test_swap_invariant.136.json | 154 +- .../fuzz_test/test_swap_invariant.137.json | 58 +- .../fuzz_test/test_swap_invariant.138.json | 58 +- .../fuzz_test/test_swap_invariant.139.json | 58 +- .../fuzz_test/test_swap_invariant.14.json | 154 +- .../fuzz_test/test_swap_invariant.140.json | 58 +- .../fuzz_test/test_swap_invariant.141.json | 101 +- .../fuzz_test/test_swap_invariant.142.json | 154 +- .../fuzz_test/test_swap_invariant.143.json | 58 +- .../fuzz_test/test_swap_invariant.144.json | 154 +- .../fuzz_test/test_swap_invariant.145.json | 58 +- .../fuzz_test/test_swap_invariant.146.json | 154 +- .../fuzz_test/test_swap_invariant.147.json | 66 +- .../fuzz_test/test_swap_invariant.148.json | 58 +- .../fuzz_test/test_swap_invariant.149.json | 154 +- .../fuzz_test/test_swap_invariant.15.json | 58 +- .../fuzz_test/test_swap_invariant.150.json | 154 +- .../fuzz_test/test_swap_invariant.151.json | 74 +- .../fuzz_test/test_swap_invariant.152.json | 154 +- .../fuzz_test/test_swap_invariant.153.json | 119 +- .../fuzz_test/test_swap_invariant.154.json | 154 +- .../fuzz_test/test_swap_invariant.155.json | 58 +- .../fuzz_test/test_swap_invariant.156.json | 58 +- .../fuzz_test/test_swap_invariant.157.json | 160 +- .../fuzz_test/test_swap_invariant.158.json | 119 +- .../fuzz_test/test_swap_invariant.159.json | 58 +- .../fuzz_test/test_swap_invariant.16.json | 160 +- .../fuzz_test/test_swap_invariant.160.json | 154 +- .../fuzz_test/test_swap_invariant.161.json | 58 +- .../fuzz_test/test_swap_invariant.162.json | 154 +- .../fuzz_test/test_swap_invariant.163.json | 154 +- .../fuzz_test/test_swap_invariant.164.json | 58 +- .../fuzz_test/test_swap_invariant.165.json | 58 +- .../fuzz_test/test_swap_invariant.166.json | 58 +- .../fuzz_test/test_swap_invariant.167.json | 58 +- .../fuzz_test/test_swap_invariant.168.json | 154 +- .../fuzz_test/test_swap_invariant.169.json | 119 +- .../fuzz_test/test_swap_invariant.17.json | 119 +- .../fuzz_test/test_swap_invariant.170.json | 154 +- .../fuzz_test/test_swap_invariant.171.json | 58 +- .../fuzz_test/test_swap_invariant.172.json | 160 +- .../fuzz_test/test_swap_invariant.173.json | 154 +- .../fuzz_test/test_swap_invariant.174.json | 58 +- .../fuzz_test/test_swap_invariant.175.json | 154 +- .../fuzz_test/test_swap_invariant.176.json | 58 +- .../fuzz_test/test_swap_invariant.177.json | 58 +- .../fuzz_test/test_swap_invariant.178.json | 58 +- .../fuzz_test/test_swap_invariant.179.json | 66 +- .../fuzz_test/test_swap_invariant.18.json | 58 +- .../fuzz_test/test_swap_invariant.180.json | 58 +- .../fuzz_test/test_swap_invariant.181.json | 58 +- .../fuzz_test/test_swap_invariant.182.json | 58 +- .../fuzz_test/test_swap_invariant.183.json | 119 +- .../fuzz_test/test_swap_invariant.184.json | 66 +- .../fuzz_test/test_swap_invariant.185.json | 154 +- .../fuzz_test/test_swap_invariant.186.json | 154 +- .../fuzz_test/test_swap_invariant.187.json | 58 +- .../fuzz_test/test_swap_invariant.188.json | 58 +- .../fuzz_test/test_swap_invariant.189.json | 58 +- .../fuzz_test/test_swap_invariant.19.json | 58 +- .../fuzz_test/test_swap_invariant.190.json | 66 +- .../fuzz_test/test_swap_invariant.191.json | 70 +- .../fuzz_test/test_swap_invariant.192.json | 154 +- .../fuzz_test/test_swap_invariant.193.json | 58 +- .../fuzz_test/test_swap_invariant.194.json | 154 +- .../fuzz_test/test_swap_invariant.195.json | 154 +- .../fuzz_test/test_swap_invariant.196.json | 154 +- .../fuzz_test/test_swap_invariant.197.json | 119 +- .../fuzz_test/test_swap_invariant.198.json | 154 +- .../fuzz_test/test_swap_invariant.199.json | 154 +- .../fuzz_test/test_swap_invariant.2.json | 58 +- .../fuzz_test/test_swap_invariant.20.json | 154 +- .../fuzz_test/test_swap_invariant.200.json | 160 +- .../fuzz_test/test_swap_invariant.201.json | 160 +- .../fuzz_test/test_swap_invariant.202.json | 154 +- .../fuzz_test/test_swap_invariant.203.json | 154 +- .../fuzz_test/test_swap_invariant.204.json | 154 +- .../fuzz_test/test_swap_invariant.205.json | 154 +- .../fuzz_test/test_swap_invariant.206.json | 119 +- .../fuzz_test/test_swap_invariant.207.json | 58 +- .../fuzz_test/test_swap_invariant.208.json | 154 +- .../fuzz_test/test_swap_invariant.209.json | 154 +- .../fuzz_test/test_swap_invariant.21.json | 58 +- .../fuzz_test/test_swap_invariant.210.json | 58 +- .../fuzz_test/test_swap_invariant.211.json | 58 +- .../fuzz_test/test_swap_invariant.212.json | 58 +- .../fuzz_test/test_swap_invariant.213.json | 154 +- .../fuzz_test/test_swap_invariant.214.json | 70 +- .../fuzz_test/test_swap_invariant.215.json | 58 +- .../fuzz_test/test_swap_invariant.216.json | 154 +- .../fuzz_test/test_swap_invariant.217.json | 58 +- .../fuzz_test/test_swap_invariant.218.json | 70 +- .../fuzz_test/test_swap_invariant.219.json | 58 +- .../fuzz_test/test_swap_invariant.22.json | 119 +- .../fuzz_test/test_swap_invariant.220.json | 58 +- .../fuzz_test/test_swap_invariant.221.json | 58 +- .../fuzz_test/test_swap_invariant.222.json | 101 +- .../fuzz_test/test_swap_invariant.223.json | 154 +- .../fuzz_test/test_swap_invariant.224.json | 154 +- .../fuzz_test/test_swap_invariant.225.json | 154 +- .../fuzz_test/test_swap_invariant.226.json | 154 +- .../fuzz_test/test_swap_invariant.227.json | 154 +- .../fuzz_test/test_swap_invariant.228.json | 58 +- .../fuzz_test/test_swap_invariant.229.json | 154 +- .../fuzz_test/test_swap_invariant.23.json | 154 +- .../fuzz_test/test_swap_invariant.230.json | 58 +- .../fuzz_test/test_swap_invariant.231.json | 154 +- .../fuzz_test/test_swap_invariant.232.json | 154 +- .../fuzz_test/test_swap_invariant.233.json | 66 +- .../fuzz_test/test_swap_invariant.234.json | 70 +- .../fuzz_test/test_swap_invariant.235.json | 154 +- .../fuzz_test/test_swap_invariant.236.json | 58 +- .../fuzz_test/test_swap_invariant.237.json | 58 +- .../fuzz_test/test_swap_invariant.238.json | 58 +- .../fuzz_test/test_swap_invariant.239.json | 58 +- .../fuzz_test/test_swap_invariant.24.json | 154 +- .../fuzz_test/test_swap_invariant.240.json | 58 +- .../fuzz_test/test_swap_invariant.241.json | 154 +- .../fuzz_test/test_swap_invariant.242.json | 58 +- .../fuzz_test/test_swap_invariant.243.json | 58 +- .../fuzz_test/test_swap_invariant.244.json | 101 +- .../fuzz_test/test_swap_invariant.245.json | 58 +- .../fuzz_test/test_swap_invariant.246.json | 58 +- .../fuzz_test/test_swap_invariant.247.json | 154 +- .../fuzz_test/test_swap_invariant.248.json | 58 +- .../fuzz_test/test_swap_invariant.249.json | 119 +- .../fuzz_test/test_swap_invariant.25.json | 154 +- .../fuzz_test/test_swap_invariant.250.json | 70 +- .../fuzz_test/test_swap_invariant.251.json | 154 +- .../fuzz_test/test_swap_invariant.252.json | 70 +- .../fuzz_test/test_swap_invariant.253.json | 154 +- .../fuzz_test/test_swap_invariant.254.json | 58 +- .../fuzz_test/test_swap_invariant.255.json | 154 +- .../fuzz_test/test_swap_invariant.256.json | 154 +- .../fuzz_test/test_swap_invariant.26.json | 66 +- .../fuzz_test/test_swap_invariant.27.json | 154 +- .../fuzz_test/test_swap_invariant.28.json | 154 +- .../fuzz_test/test_swap_invariant.29.json | 58 +- .../fuzz_test/test_swap_invariant.3.json | 154 +- .../fuzz_test/test_swap_invariant.30.json | 58 +- .../fuzz_test/test_swap_invariant.31.json | 154 +- .../fuzz_test/test_swap_invariant.32.json | 58 +- .../fuzz_test/test_swap_invariant.33.json | 58 +- .../fuzz_test/test_swap_invariant.34.json | 154 +- .../fuzz_test/test_swap_invariant.35.json | 154 +- .../fuzz_test/test_swap_invariant.36.json | 58 +- .../fuzz_test/test_swap_invariant.37.json | 119 +- .../fuzz_test/test_swap_invariant.38.json | 66 +- .../fuzz_test/test_swap_invariant.39.json | 58 +- .../fuzz_test/test_swap_invariant.4.json | 119 +- .../fuzz_test/test_swap_invariant.40.json | 58 +- .../fuzz_test/test_swap_invariant.41.json | 154 +- .../fuzz_test/test_swap_invariant.42.json | 154 +- .../fuzz_test/test_swap_invariant.43.json | 58 +- .../fuzz_test/test_swap_invariant.44.json | 58 +- .../fuzz_test/test_swap_invariant.45.json | 58 +- .../fuzz_test/test_swap_invariant.46.json | 58 +- .../fuzz_test/test_swap_invariant.47.json | 58 +- .../fuzz_test/test_swap_invariant.48.json | 154 +- .../fuzz_test/test_swap_invariant.49.json | 154 +- .../fuzz_test/test_swap_invariant.5.json | 70 +- .../fuzz_test/test_swap_invariant.50.json | 58 +- .../fuzz_test/test_swap_invariant.51.json | 58 +- .../fuzz_test/test_swap_invariant.52.json | 154 +- .../fuzz_test/test_swap_invariant.53.json | 154 +- .../fuzz_test/test_swap_invariant.54.json | 58 +- .../fuzz_test/test_swap_invariant.55.json | 158 +- .../fuzz_test/test_swap_invariant.56.json | 119 +- .../fuzz_test/test_swap_invariant.57.json | 70 +- .../fuzz_test/test_swap_invariant.58.json | 154 +- .../fuzz_test/test_swap_invariant.59.json | 58 +- .../fuzz_test/test_swap_invariant.6.json | 154 +- .../fuzz_test/test_swap_invariant.60.json | 154 +- .../fuzz_test/test_swap_invariant.61.json | 58 +- .../fuzz_test/test_swap_invariant.62.json | 58 +- .../fuzz_test/test_swap_invariant.63.json | 58 +- .../fuzz_test/test_swap_invariant.64.json | 58 +- .../fuzz_test/test_swap_invariant.65.json | 154 +- .../fuzz_test/test_swap_invariant.66.json | 154 +- .../fuzz_test/test_swap_invariant.67.json | 58 +- .../fuzz_test/test_swap_invariant.68.json | 58 +- .../fuzz_test/test_swap_invariant.69.json | 105 +- .../fuzz_test/test_swap_invariant.7.json | 58 +- .../fuzz_test/test_swap_invariant.70.json | 154 +- .../fuzz_test/test_swap_invariant.71.json | 154 +- .../fuzz_test/test_swap_invariant.72.json | 58 +- .../fuzz_test/test_swap_invariant.73.json | 58 +- .../fuzz_test/test_swap_invariant.74.json | 119 +- .../fuzz_test/test_swap_invariant.75.json | 58 +- .../fuzz_test/test_swap_invariant.76.json | 58 +- .../fuzz_test/test_swap_invariant.77.json | 154 +- .../fuzz_test/test_swap_invariant.78.json | 154 +- .../fuzz_test/test_swap_invariant.79.json | 58 +- .../fuzz_test/test_swap_invariant.8.json | 119 +- .../fuzz_test/test_swap_invariant.80.json | 58 +- .../fuzz_test/test_swap_invariant.81.json | 154 +- .../fuzz_test/test_swap_invariant.82.json | 58 +- .../fuzz_test/test_swap_invariant.83.json | 58 +- .../fuzz_test/test_swap_invariant.84.json | 154 +- .../fuzz_test/test_swap_invariant.85.json | 58 +- .../fuzz_test/test_swap_invariant.86.json | 119 +- .../fuzz_test/test_swap_invariant.87.json | 58 +- .../fuzz_test/test_swap_invariant.88.json | 58 +- .../fuzz_test/test_swap_invariant.89.json | 58 +- .../fuzz_test/test_swap_invariant.9.json | 58 +- .../fuzz_test/test_swap_invariant.90.json | 154 +- .../fuzz_test/test_swap_invariant.91.json | 154 +- .../fuzz_test/test_swap_invariant.92.json | 154 +- .../fuzz_test/test_swap_invariant.93.json | 58 +- .../fuzz_test/test_swap_invariant.94.json | 154 +- .../fuzz_test/test_swap_invariant.95.json | 58 +- .../fuzz_test/test_swap_invariant.96.json | 154 +- .../fuzz_test/test_swap_invariant.97.json | 154 +- .../fuzz_test/test_swap_invariant.98.json | 58 +- .../fuzz_test/test_swap_invariant.99.json | 58 +- .../test_snapshots/test/test_approve.1.json | 22 +- .../test/test_approve_expired.1.json | 22 +- .../test/test_basic_flow.1.json | 22 +- .../test_snapshots/test/test_burn.1.json | 22 +- .../test/test_burn_insufficient_shares.1.json | 22 +- .../test/test_deposit_when_paused.1.json | 84 +- .../test/test_deposit_zero_amount.1.json | 22 +- .../test/test_double_initialization.1.json | 22 +- .../test_snapshots/test/test_events.1.json | 22 +- .../test/test_get_fee_default.1.json | 22 +- .../test/test_pause_and_unpause.1.json | 270 +- .../test/test_set_fee_above_max.1.json | 22 +- .../test/test_set_fee_valid.1.json | 24 +- .../test_swap_insufficient_liquidity.1.json | 22 +- .../test/test_swap_slippage_exceeded.1.json | 22 +- .../test/test_swap_when_paused.1.json | 84 +- .../test/test_token_interface.1.json | 22 +- .../test_snapshots/test/test_transfer.1.json | 22 +- .../test/test_transfer_from.1.json | 22 +- ...ransfer_from_insufficient_allowance.1.json | 22 +- ..._transfer_from_insufficient_balance.1.json | 22 +- .../test_transfer_insufficient_balance.1.json | 22 +- .../test_withdraw_insufficient_shares.1.json | 22 +- .../test/test_withdraw_when_paused.1.json | 84 +- 285 files changed, 13482 insertions(+), 16675 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 030b1d92..25496e52 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -147,7 +147,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" dependencies = [ "num-traits", - "rand", + "rand 0.8.7", ] [[package]] @@ -180,6 +180,27 @@ version = "1.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2af50177e190e07a26ab74f8b1efbfe2ef87da2116221318cb1c2e82baf7de06" +[[package]] +name = "bit-set" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" +dependencies = [ + "bit-vec", +] + +[[package]] +name = "bit-vec" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" + +[[package]] +name = "bitflags" +version = "2.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b588b76d00fde79687d7646a9b5bdf3cc0f655e0bbd080335a95d7e96f3587da" + [[package]] name = "block-buffer" version = "0.10.4" @@ -283,7 +304,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" dependencies = [ "generic-array", - "rand_core", + "rand_core 0.6.4", "subtle", "zeroize", ] @@ -506,7 +527,7 @@ checksum = "70e796c081cee67dc755e1a36a0a172b897fab85fc3f6bc48307991f64e4eca9" dependencies = [ "curve25519-dalek", "ed25519", - "rand_core", + "rand_core 0.6.4", "serde", "sha2", "subtle", @@ -531,7 +552,7 @@ dependencies = [ "ff", "generic-array", "group", - "rand_core", + "rand_core 0.6.4", "sec1", "subtle", "zeroize", @@ -550,6 +571,16 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" +[[package]] +name = "errno" +version = "0.3.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" +dependencies = [ + "libc", + "windows-sys", +] + [[package]] name = "escape-bytes" version = "0.1.1" @@ -562,13 +593,19 @@ version = "1.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "40404c3f5f511ec4da6fe866ddf6a717c309fdbb69fbbad7b0f3edab8f2e835f" +[[package]] +name = "fastrand" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da7c62ceae207dd37ea5b845da6a0696c799f85e97da1ab5b7910be3c1c80223" + [[package]] name = "ff" version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" dependencies = [ - "rand_core", + "rand_core 0.6.4", "subtle", ] @@ -638,6 +675,29 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "getrandom" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" +dependencies = [ + "cfg-if", + "libc", + "r-efi 5.3.0", + "wasip2", +] + +[[package]] +name = "getrandom" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "300e883d756b2e4ec94e02791f39b04b522276138852cfc41d9fb7e904106099" +dependencies = [ + "cfg-if", + "libc", + "r-efi 6.0.0", +] + [[package]] name = "group" version = "0.13.0" @@ -645,7 +705,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" dependencies = [ "ff", - "rand_core", + "rand_core 0.6.4", "subtle", ] @@ -812,6 +872,21 @@ version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" +[[package]] +name = "linux-raw-sys" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" + +[[package]] +name = "liquidity_pool" +version = "0.1.0" +dependencies = [ + "emergency_guard", + "proptest", + "soroban-sdk", +] + [[package]] name = "log" version = "0.4.33" @@ -952,6 +1027,31 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "proptest" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b45fcc2344c680f5025fe57779faef368840d0bd1f42f216291f0dc4ace4744" +dependencies = [ + "bit-set", + "bit-vec", + "bitflags", + "num-traits", + "rand 0.9.5", + "rand_chacha 0.9.0", + "rand_xorshift", + "regex-syntax", + "rusty-fork", + "tempfile", + "unarray", +] + +[[package]] +name = "quick-error" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" + [[package]] name = "quote" version = "1.0.47" @@ -961,6 +1061,18 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "r-efi" +version = "5.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" + +[[package]] +name = "r-efi" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" + [[package]] name = "rand" version = "0.8.7" @@ -968,8 +1080,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22f6172bdec972074665ed81ed53b71da00bfc44b65a753cfde883ec4c702a1a" dependencies = [ "libc", - "rand_chacha", - "rand_core", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9ef1d0d795eb7d84685bca4f72f3649f064e6641543d3a8c415898726a57b41" +dependencies = [ + "rand_chacha 0.9.0", + "rand_core 0.9.5", ] [[package]] @@ -979,7 +1101,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", - "rand_core", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core 0.9.5", ] [[package]] @@ -988,7 +1120,25 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom", + "getrandom 0.2.17", +] + +[[package]] +name = "rand_core" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" +dependencies = [ + "getrandom 0.3.4", +] + +[[package]] +name = "rand_xorshift" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "513962919efc330f829edb2535844d1b912b0fbe2ca165d613e4e8788bb05a5a" +dependencies = [ + "rand_core 0.9.5", ] [[package]] @@ -1011,6 +1161,12 @@ dependencies = [ "syn 3.0.3", ] +[[package]] +name = "regex-syntax" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" + [[package]] name = "rfc6979" version = "0.4.0" @@ -1030,12 +1186,37 @@ dependencies = [ "semver", ] +[[package]] +name = "rustix" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" +dependencies = [ + "bitflags", + "errno", + "libc", + "linux-raw-sys", + "windows-sys", +] + [[package]] name = "rustversion" version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f" +[[package]] +name = "rusty-fork" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc6bf79ff24e648f6da1f8d1f011e9cac26491b619e6b9280f2b47f1774e6ee2" +dependencies = [ + "fnv", + "quick-error", + "tempfile", + "wait-timeout", +] + [[package]] name = "schemars" version = "0.9.0" @@ -1188,7 +1369,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" dependencies = [ "digest", - "rand_core", + "rand_core 0.6.4", ] [[package]] @@ -1259,7 +1440,7 @@ dependencies = [ "ed25519-dalek", "elliptic-curve", "generic-array", - "getrandom", + "getrandom 0.2.17", "hex-literal", "hmac", "k256", @@ -1267,8 +1448,8 @@ dependencies = [ "num-integer", "num-traits", "p256", - "rand", - "rand_chacha", + "rand 0.8.7", + "rand_chacha 0.3.1", "sec1", "sha2", "sha3", @@ -1320,7 +1501,7 @@ dependencies = [ "ctor", "derive_arbitrary", "ed25519-dalek", - "rand", + "rand 0.8.7", "rustc_version", "serde", "serde_json", @@ -1511,6 +1692,19 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "tempfile" +version = "3.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" +dependencies = [ + "fastrand", + "getrandom 0.4.3", + "once_cell", + "rustix", + "windows-sys", +] + [[package]] name = "thiserror" version = "1.0.69" @@ -1582,6 +1776,12 @@ version = "1.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20" +[[package]] +name = "unarray" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" + [[package]] name = "unicode-ident" version = "1.0.24" @@ -1594,12 +1794,30 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" +[[package]] +name = "wait-timeout" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ac3b126d3914f9849036f826e054cbabdc8519970b8998ddaf3b5bd3c65f11" +dependencies = [ + "libc", +] + [[package]] name = "wasi" version = "0.11.1+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" +[[package]] +name = "wasip2" +version = "1.0.4+wasi-0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b67efb37e106e55ce722a510d6b5f9c17f083e5fc79afc2badeb12cc313d9487" +dependencies = [ + "wit-bindgen", +] + [[package]] name = "wasm-bindgen" version = "0.2.126" @@ -1741,6 +1959,21 @@ dependencies = [ "windows-link", ] +[[package]] +name = "windows-sys" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" +dependencies = [ + "windows-link", +] + +[[package]] +name = "wit-bindgen" +version = "0.57.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" + [[package]] name = "zerocopy" version = "0.8.55" diff --git a/Cargo.toml b/Cargo.toml index a78d69b5..a209a6fb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,6 +2,7 @@ resolver = "2" members = [ "contracts/error_codes", + "contracts/liquidity_pool", "contracts/math", "contracts/staking_rewards", ] diff --git a/contracts/liquidity_pool/README.md b/contracts/liquidity_pool/README.md index 8ae63f71..236ca3c4 100644 --- a/contracts/liquidity_pool/README.md +++ b/contracts/liquidity_pool/README.md @@ -226,3 +226,74 @@ pool.initialize(admin, token_a, token_b)?; ## Fee admin `DataKey::Admin` is the pool fee admin (may differ from guard admins after rotation). Use `set_fee`, `configure_fee_oracle`, `sync_fee_from_oracle`, and `execute_fee_update`. + +## Swapping and slippage protection + +The pool exposes both swap directions. Which one you use decides which side you +can bound, and every swap needs one side bounded — an unbounded swap can be +sandwiched, since an attacker who front-runs the transaction moves the price so +the same trade fills far worse. + +| Function | You fix | You bound | Returns | +|----------|---------|-----------|---------| +| `swap(to, buy_a, out, in_max)` | the output `out` | the input, via `in_max` | input actually paid | +| `swap_exact_in(to, buy_a, amount_in, min_amount_out)` | the input `amount_in` | the output, via `min_amount_out` | output actually delivered | + +`buy_a` selects direction: `true` sends token B in and takes token A out, `false` +is the reverse. + +### Exact-input swaps + +`swap_exact_in` computes the output from the live reserves and current fee, then +refuses the trade unless it clears the caller's floor: + +```rust +// Quote against current state, then accept 1% of drift. +let quoted = pool.get_amount_out(false, 1_000)?; +let min_amount_out = quoted * 99 / 100; + +let received = pool.swap_exact_in(trader, false, 1_000, min_amount_out)?; +assert!(received >= min_amount_out); +``` + +If the price moves between the quote and execution such that the output would +fall below `min_amount_out`, the call returns `Error::SlippageExceeded` and no +tokens move. + +Passing `min_amount_out = 0` disables the check. Do that only when any fill is +genuinely acceptable. + +### Quoting + +```rust +let out = pool.get_amount_out(buy_a, amount_in)?; // output for a given input +let needed = pool.get_amount_in(buy_a, amount_out)?; // input for a given output +let (reserve_a, reserve_b) = pool.get_reserves()?; +``` + +Both quotes are read-only and only describe the state they were read from. Derive +a bound from them; do not assume the swap will match them. Rounding always +resolves in the pool's favour, so `get_amount_in(get_amount_out(x))` may come +back slightly above `x`. + +### Exact-output swaps + +For `swap`, the output is fixed by the caller and delivered exactly or not at +all, so `in_max` is the meaningful bound — a minimum-output parameter would be +satisfied by construction. Set `in_max` to the quoted input plus your tolerance: + +```rust +let quoted_in = pool.get_amount_in(false, 900)?; +pool.swap(trader, false, 900, quoted_in * 101 / 100)?; +``` + +### Swap errors + +- `Error::SlippageExceeded`: the bound you set was not met (`min_amount_out` for + `swap_exact_in`, `in_max` for `swap`). Expected under normal price movement; + re-quote and retry. +- `Error::InvalidAmount`: `amount_in` was zero or negative, or `min_amount_out` + was negative. +- `Error::InsufficientLiquidity`: the reserves cannot support the trade, or the + input was too small to buy a single unit of output. +- `Error::Paused`: swaps are currently paused by the guard. diff --git a/contracts/liquidity_pool/src/lib.rs b/contracts/liquidity_pool/src/lib.rs index 43d3306a..806a9f76 100644 --- a/contracts/liquidity_pool/src/lib.rs +++ b/contracts/liquidity_pool/src/lib.rs @@ -1,22 +1,10 @@ #![no_std] -use soroban_sdk::{ - contract, contracterror, contractimpl, contracttype, vec, Address, Env, String, Vec, -}; -use emergency_guard::{EmergencyGuardTrait, GuardError, PauseType}; -use emergency_guard::{EmergencyGuard, PauseType}; -use soroban_sdk::vec; -use soroban_sdk::{contract, contracterror, contractimpl, contracttype, Address, Env, String, Vec}; use emergency_guard::{ - emit_admin_added, emit_admin_removed, emit_emergency_paused_all, emit_guard_initialized, - emit_pause_state_changed, emit_resumed_all, EmergencyGuardTrait, GuardError, PauseType, - emit_pause_state_changed, emit_resumed_all, EmergencyGuard, GuardError, PauseType, DefaultEmergencyGuard, EmergencyGuardTrait + DefaultEmergencyGuard, EmergencyGuard, EmergencyGuardTrait, GuardError, PauseType, }; -use soroban_sdk::{contract, contracterror, contractimpl, contracttype, Address, Env, String, Vec}; -use emergency_guard::{EmergencyGuard, GuardError, PauseType}; use soroban_sdk::{ - contract, contracterror, contractimpl, contracttype, panic_with_error, vec, Address, Env, - String, Vec, + contract, contracterror, contractimpl, contracttype, vec, Address, Env, String, Vec, }; #[cfg(test)] @@ -28,22 +16,13 @@ mod test; /// Errors returned by the `LiquidityPool` contract. /// -/// Code assignments are stable on-chain ABI — do NOT renumber. +/// Code assignments are stable on-chain ABI — do NOT renumber. New variants go +/// on the end. #[contracterror] #[derive(Copy, Clone, Debug, Eq, PartialEq, PartialOrd, Ord)] #[repr(u32)] pub enum Error { AlreadyInitialized = 1, - InsufficientLiquidity = 2, - SlippageExceeded = 3, - InsufficientShares = 4, - NotInitialized = 5, - InsufficientBalance = 6, - Unauthorized = 7, - InsufficientAllowance = 8, - InvalidFee = 9, - OracleNotConfigured = 10, - InvalidOraclePrice = 11, NotInitialized = 2, Unauthorized = 3, InsufficientBalance = 4, @@ -53,22 +32,16 @@ pub enum Error { SlippageExceeded = 8, InvalidFee = 9, OracleNotConfigured = 10, - PendingFeeUpdateExists = 11, - InsufficientLiquidity = 2, - SlippageExceeded = 3, - InsufficientShares = 4, - NotInitialized = 5, - InsufficientBalance = 6, - Unauthorized = 7, - InsufficientAllowance = 8, - InvalidFee = 9, - OracleNotConfigured = 10, InvalidOraclePrice = 11, TimelockNotElapsed = 12, NoPendingFeeUpdate = 13, Paused = 14, + /// A caller-supplied amount was zero or negative. + InvalidAmount = 15, } +// ── Events ──────────────────────────────────────────────────────────────────── + #[contracttype] #[derive(Clone, Debug, Eq, PartialEq)] pub struct DepositEvent { @@ -104,33 +77,24 @@ pub struct BurnEvent { pub shares_burned: i128, } -/// Event payload emitted after a successful stake. #[contracttype] #[derive(Clone, Debug, Eq, PartialEq)] pub struct StakeEvent { - /// Address that staked LP shares. pub user: Address, - /// LP shares staked. pub amount_staked: i128, } -/// Event payload emitted after a successful unstake. #[contracttype] #[derive(Clone, Debug, Eq, PartialEq)] pub struct UnstakeEvent { - /// Address that unstaked LP shares. pub user: Address, - /// LP shares unstaked. pub amount_unstaked: i128, } -/// Event payload emitted after claiming rewards. #[contracttype] #[derive(Clone, Debug, Eq, PartialEq)] pub struct ClaimRewardsEvent { - /// Address that claimed rewards. pub user: Address, - /// Amount of rewards claimed. pub rewards_amount: i128, } @@ -152,34 +116,8 @@ pub struct FeeUpdateScheduledEvent { pub volatility_bps: i128, } -#[contracttype] -#[derive(Clone, Debug, Eq, PartialEq)] -pub struct PoolState { - pub token_a: Address, - pub token_b: Address, - pub reserve_a: i128, - pub reserve_b: i128, - pub total_shares: i128, - pub fee_bps: i128, - pub base_fee_bps: i128, - pub admin: Address, -} - -#[contracttype] -#[derive(Clone, Debug, Eq, PartialEq)] -pub struct GuardState { - pub pause_state: u32, - pub admins: Vec
, - pub signature_threshold: u32, -} +// ── Constants ───────────────────────────────────────────────────────────────── -#[contracttype] -#[derive(Clone, Debug, Eq, PartialEq)] -pub struct OracleConfig { - pub oracle: Address, - pub last_price: i128, - pub last_volatility_bps: i128, - pub timelock_ledgers: u32, pub const MAX_FEE_BPS: i128 = 100; pub const DEFAULT_BASE_FEE_BPS: i128 = 30; pub const DEFAULT_FEE_TIMELOCK_LEDGERS: u32 = 120; @@ -192,15 +130,9 @@ pub const LOW_VOLATILITY_FEE_BPS: i128 = 40; pub const MEDIUM_VOLATILITY_FEE_BPS: i128 = 70; pub const HIGH_VOLATILITY_FEE_BPS: i128 = 100; -pub mod pause_op { - pub const SWAP: u32 = 1 << 0; - pub const DEPOSIT: u32 = 1 << 1; - pub const WITHDRAW: u32 = 1 << 2; - pub const TRANSFER: u32 = 1 << 3; - pub const MINT: u32 = 1 << 4; - pub const BURN: u32 = 1 << 5; - pub const ALL: u32 = u32::MAX; -} +pub const REWARDS_PER_LEDGER: i128 = 10_000_000; +pub const REWARD_PRECISION: i128 = 1_000_000_000_000; + // ── Oracle interface ────────────────────────────────────────────────────────── #[soroban_sdk::contractclient(name = "PriceOracleClient")] @@ -221,35 +153,6 @@ pub struct PoolState { pub fee_bps: i128, pub base_fee_bps: i128, pub admin: Address, -#[contracttype] -#[derive(Clone, Debug, Eq, PartialEq)] -pub struct FeeUpdateScheduledEvent { - pub scheduled_by: Address, - pub old_fee_bps: i128, - pub new_fee_bps: i128, - pub executable_after_ledger: u32, - pub volatility_bps: i128, -} - -#[contracttype] -#[derive(Clone, Debug, Eq, PartialEq)] -pub struct PoolState { - pub token_a: Address, - pub token_b: Address, - pub reserve_a: i128, - pub reserve_b: i128, - pub total_shares: i128, - pub fee_bps: i128, - pub base_fee_bps: i128, - pub admin: Address, -} - -#[contracttype] -#[derive(Clone, Debug, Eq, PartialEq)] -pub struct GuardState { - pub pause_state: u32, - pub admins: Vec
, - pub signature_threshold: u32, } #[contracttype] @@ -269,14 +172,6 @@ pub struct PendingFeeUpdate { pub based_on_volatility_bps: i128, } -#[contracttype] -#[derive(Clone, Debug, Eq, PartialEq)] -pub struct OracleConfig { - pub oracle_id: Address, - pub base_fee_bps: i128, - pub timelock_ledgers: u32, -} - #[derive(Clone)] #[contracttype] pub struct AllowanceDataKey { @@ -296,16 +191,10 @@ pub struct AllowanceValue { pub enum DataKey { Pool, Admin, - GuardAdmins, - GuardThreshold, - GuardPauseState, Balance(Address), Allowance(AllowanceDataKey), - OracleConfig, - LastOraclePrice, - LastVolatilityBps, + Oracle, PendingFeeUpdate, - Paused, StakedBalance(Address), TotalStaked, UserRewards(Address), @@ -313,97 +202,7 @@ pub enum DataKey { AccumulatedRewardPerShare, } -fn sqrt(x: i128) -> i128 { - if x == 0 { - return 0; - Guard, - Oracle, - PendingFeeUpdate, -/// Grouped pool state — stored as a single instance key to reduce storage footprint. -#[contracttype] -#[derive(Clone)] -pub struct PoolState { - pub admin: Address, - pub token_a: Address, - pub token_b: Address, - pub reserve_a: i128, - pub reserve_b: i128, - pub total_shares: i128, - pub fee_bps: i128, -} - -/// Storage keys. -#[contracttype] -#[derive(Clone)] -pub enum DataKey { - /// Single-entry key for all grouped pool state. - Pool, - /// Per-user LP share balance (persistent storage). - Balance(Address), - /// ERC-20-style allowances (persistent storage). - Allowance(AllowanceDataKey), -} - -fn load_pool(e: &Env) -> Result { - e.storage() - .instance() - .get::<_, PoolState>(&DataKey::Pool) - .ok_or(Error::NotInitialized) -} - -fn save_pool(e: &Env, pool: &PoolState) { - e.storage().instance().set(&DataKey::Pool, pool); -} -// ── Constants ───────────────────────────────────────────────────────────────── - -pub const MAX_FEE_BPS: i128 = 100; -pub const DEFAULT_BASE_FEE_BPS: i128 = 30; -pub const DEFAULT_FEE_TIMELOCK_LEDGERS: u32 = 120; - -pub const LOW_VOLATILITY_THRESHOLD_BPS: i128 = 100; -pub const MEDIUM_VOLATILITY_THRESHOLD_BPS: i128 = 250; -pub const HIGH_VOLATILITY_THRESHOLD_BPS: i128 = 500; - -pub const LOW_VOLATILITY_FEE_BPS: i128 = 40; -pub const MEDIUM_VOLATILITY_FEE_BPS: i128 = 70; -pub const HIGH_VOLATILITY_FEE_BPS: i128 = 100; - -// ── Oracle trait ────────────────────────────────────────────────────────────── - -#[soroban_sdk::contractclient(name = "PriceOracleClient")] -pub trait PriceOracle { - fn latest_price(e: Env) -> i128; -} - -fn sqrt(x: i128) -> i128 { - if x == 0 { - return 0; - } - - let mut z = (x + 1) / 2; - let mut y = x; - - while z < y { - y = z; - z = (x / z + z) / 2; - } - - y -} - - Admin, - GuardAdmins, - GuardThreshold, - GuardPauseState, - Balance(Address), - Allowance(AllowanceDataKey), - OracleConfig, - LastOraclePrice, - LastVolatilityBps, - PendingFeeUpdate, -} // ── Helpers ─────────────────────────────────────────────────────────────────── -// ── Private helpers ─────────────────────────────────────────────────────────── fn sqrt(x: i128) -> i128 { if x == 0 { @@ -429,41 +228,6 @@ fn save_pool(e: &Env, pool: &PoolState) { e.storage().instance().set(&DataKey::Pool, pool); } -fn load_guard(e: &Env) -> GuardState { - e.storage() - .instance() - .get(&DataKey::Guard) - .unwrap_or_else(|| GuardState { - pause_state: 0, - admins: Vec::new(e), - signature_threshold: 0, - }) -} - -fn save_guard(e: &Env, guard: &GuardState) { - e.storage().instance().set(&DataKey::Guard, guard); -} - -fn load_or_init_guard_from_pool(e: &Env, pool: &PoolState) -> GuardState { - let guard = load_guard(e); - if guard.signature_threshold == 0 && guard.admins.len() == 0 { - GuardState { - pause_state: guard.pause_state, - admins: { - let mut admins = Vec::new(e); - admins.push_back(pool.admin.clone()); - admins - }, - signature_threshold: 1, - } - } else { - guard - } -} - -fn check_paused(pool: &PoolState, operation: u32, guard: &GuardState) -> Result<(), Error> { - if guard.pause_state & operation != 0 { -fn check_not_paused(e: &Env, operation: u32) -> Result<(), Error> { fn load_admin(e: &Env) -> Result { e.storage() .instance() @@ -491,13 +255,111 @@ fn require_not_paused(e: &Env, operation: u32) -> Result<(), Error> { } } -/// Rewards per ledger: 1 LP token (with 7 decimals) = 10_000_000 -pub const REWARDS_PER_LEDGER: i128 = 10_000_000; -/// Precision factor for reward calculations -pub const REWARD_PRECISION: i128 = 1_000_000_000_000; +/// Collapse guard membership and threshold refusals into `Unauthorized`. +/// +/// From a caller's point of view "you are not an admin", "that address is not an +/// admin" and "this would drop the admin set below the threshold" are all the +/// same answer: the request is not permitted. +fn as_unauthorized(err: GuardError) -> GuardError { + match err { + GuardError::AdminNotFound | GuardError::InvalidThreshold => GuardError::Unauthorized, + other => other, + } +} + +/// Which reserve and token sits on each side of a swap. +struct SwapSides { + reserve_in: i128, + reserve_out: i128, + token_in: Address, + token_out: Address, +} + +/// `buy_a` means token B goes in and token A comes out. +fn swap_sides(pool: &PoolState, buy_a: bool) -> SwapSides { + if buy_a { + SwapSides { + reserve_in: pool.reserve_b, + reserve_out: pool.reserve_a, + token_in: pool.token_b.clone(), + token_out: pool.token_a.clone(), + } + } else { + SwapSides { + reserve_in: pool.reserve_a, + reserve_out: pool.reserve_b, + token_in: pool.token_a.clone(), + token_out: pool.token_b.clone(), + } + } +} + +/// Output produced by `amount_in`, constant product net of the pool fee. +/// +/// `out = (in_after_fee * reserve_out) / (reserve_in * 10_000 + in_after_fee)` +/// with `in_after_fee = amount_in * (10_000 - fee_bps)`. Division truncates, so +/// rounding dust stays with the pool rather than the caller. +fn amount_out_for_in( + amount_in: i128, + reserve_in: i128, + reserve_out: i128, + fee_bps: i128, +) -> Result { + if reserve_in <= 0 || reserve_out <= 0 { + return Err(Error::InsufficientLiquidity); + } + let in_after_fee = amount_in + .checked_mul(10_000 - fee_bps) + .ok_or(Error::InsufficientLiquidity)?; + let numerator = in_after_fee + .checked_mul(reserve_out) + .ok_or(Error::InsufficientLiquidity)?; + let denominator = reserve_in + .checked_mul(10_000) + .ok_or(Error::InsufficientLiquidity)? + .checked_add(in_after_fee) + .ok_or(Error::InsufficientLiquidity)?; + Ok(numerator / denominator) +} + +/// Input required to receive exactly `amount_out`, rounded up by one so the +/// constant-product invariant is never weakened by truncation. +fn amount_in_for_out( + amount_out: i128, + reserve_in: i128, + reserve_out: i128, + fee_bps: i128, +) -> Result { + if amount_out >= reserve_out { + return Err(Error::InsufficientLiquidity); + } + let numerator = reserve_in + .checked_mul(amount_out) + .ok_or(Error::InsufficientLiquidity)? + .checked_mul(10_000) + .ok_or(Error::InsufficientLiquidity)?; + let denominator = (reserve_out - amount_out) + .checked_mul(10_000 - fee_bps) + .ok_or(Error::InsufficientLiquidity)?; + Ok((numerator / denominator) + 1) +} + +/// Point `DataKey::Admin` (and `PoolState::admin`) at `replacement` when +/// `departing` is the current primary admin. No-op otherwise. +fn reassign_primary_admin_if(e: &Env, departing: &Address, replacement: Option
) { + let Some(replacement) = replacement else { + return; + }; + if load_admin(e).as_ref() != Ok(departing) { + return; + } + e.storage().instance().set(&DataKey::Admin, &replacement); + if let Ok(mut pool) = load_pool(e) { + pool.admin = replacement; + save_pool(e, &pool); + } +} -pub trait PriceOracle { - fn latest_price(e: Env) -> i128; fn target_fee_from_volatility(base_fee_bps: i128, volatility_bps: i128) -> i128 { let dynamic = if volatility_bps >= HIGH_VOLATILITY_THRESHOLD_BPS { HIGH_VOLATILITY_FEE_BPS @@ -508,11 +370,6 @@ fn target_fee_from_volatility(base_fee_bps: i128, volatility_bps: i128) -> i128 } else { base_fee_bps }; - if dynamic > MAX_FEE_BPS { - - if dynamic_fee > MAX_FEE_BPS { - - if dynamic_fee > MAX_FEE_BPS { if dynamic > MAX_FEE_BPS { MAX_FEE_BPS } else { @@ -520,284 +377,83 @@ fn target_fee_from_volatility(base_fee_bps: i128, volatility_bps: i128) -> i128 } } -fn guard_init(e: &Env, admin: Address) { - let admins = vec![e, admin]; - e.storage().instance().set(&DataKey::GuardAdmins, &admins); - e.storage().instance().set(&DataKey::GuardThreshold, &1u32); -} - -fn guard_pause_state(e: &Env) -> u32 { - e.storage() - .instance() - .get(&DataKey::GuardPauseState) - .unwrap_or(0u32) -} // ── pause_op aliases (kept for backwards compat with tests) ────────────────── -fn read_admin(e: &Env) -> Result { - e.storage() - .instance() - .get(&DataKey::Admin) - .ok_or(Error::NotInitialized) +pub mod pause_op { + pub use emergency_guard::PauseType; + pub const SWAP: u32 = emergency_guard::PauseType::SWAP; + pub const DEPOSIT: u32 = emergency_guard::PauseType::DEPOSIT; + pub const WITHDRAW: u32 = emergency_guard::PauseType::WITHDRAW; + pub const TRANSFER: u32 = emergency_guard::PauseType::TRANSFER; + pub const MINT: u32 = emergency_guard::PauseType::MINT; + pub const BURN: u32 = emergency_guard::PauseType::BURN; + pub const ALL: u32 = u32::MAX; } -fn read_guard_admins(e: &Env) -> Vec
{ - e.storage() - .instance() - .get(&DataKey::GuardAdmins) - .unwrap_or_else(|| Vec::new(e)) -} +/// Every operation `set_paused` toggles, as a single bitmask. +const CORE_PAUSE_OPS: u32 = PauseType::SWAP + | PauseType::DEPOSIT + | PauseType::WITHDRAW + | PauseType::BURN + | PauseType::STAKE + | PauseType::CLAIM_REWARDS; -fn write_guard_admins(e: &Env, admins: &Vec
) { - e.storage().instance().set(&DataKey::GuardAdmins, admins); -} +// ── Contract ────────────────────────────────────────────────────────────────── -/// Return `Err(Error::Paused)` if `op` is currently paused. -fn guard_check_not_paused(e: &Env, op: u32) -> Result<(), Error> { - if guard_pause_state(e) & op != 0 { - Err(Error::Paused) - } else { +#[contract] +pub struct LiquidityPool; + +#[contractimpl] +impl LiquidityPool { + // ── Initialisation ──────────────────────────────────────────────────────── + + pub fn initialize( + e: Env, + admin: Address, + token_a: Address, + token_b: Address, + ) -> Result<(), Error> { + if e.storage().instance().has(&DataKey::Pool) { + return Err(Error::AlreadyInitialized); + } + e.storage().instance().set(&DataKey::Admin, &admin); + save_pool( + &e, + &PoolState { + token_a, + token_b, + reserve_a: 0, + reserve_b: 0, + total_shares: 0, + fee_bps: DEFAULT_BASE_FEE_BPS, + base_fee_bps: DEFAULT_BASE_FEE_BPS, + admin: admin.clone(), + }, + ); + // Issue #419: initialize EmergencyGuard so all multi-sig checks have a threshold. + EmergencyGuard::initialize(e.clone(), vec![&e, admin], 1).map_err(map_guard_err)?; Ok(()) } -} - -fn guard_admins(e: &Env) -> Vec
{ - e.storage() - .instance() - .get(&DataKey::GuardAdmins) - .unwrap_or_else(|| Vec::new(e)) -} -fn guard_is_admin(e: &Env, addr: &Address) -> bool { - guard_admins(e).iter().any(|a| a == *addr) -} + // ── Admin accessors ─────────────────────────────────────────────────────── -fn guard_require_admin(e: &Env, caller: &Address) -> Result<(), Error> { - caller.require_auth(); - if !guard_is_admin(e, caller) { - return Err(Error::Unauthorized); + pub fn get_admin(e: Env) -> Address { + load_admin(&e).expect("not initialized") } - Ok(()) -} -fn guard_require_multisig(e: &Env, approvers: &Vec
) -> Result<(), Error> { - let threshold: u32 = e - .storage() - .instance() - .get(&DataKey::GuardThreshold) - .ok_or(Error::NotInitialized)?; - let admins = guard_admins(e); - - let mut valid = 0u32; -fn primary_admin(e: &Env) -> Result { - let guard = load_guard(e); - if let Some(admin) = guard.admins.get(0) { - Ok(admin) - } else { - let pool = load_pool(e).map_err(|_| GuardError::NotInitialized)?; - Ok(pool.admin) + pub fn get_admin_threshold(e: Env) -> u32 { + EmergencyGuard::get_threshold(e) } -} -fn check_multi_sig(e: &Env, approvers: &Vec
) -> Result<(), GuardError> { - let guard = load_guard(e); - if guard.signature_threshold == 0 { - return Err(GuardError::NotInitialized); - } + // ── EmergencyGuard pause interface ──────────────────────────────────────── - if approvers.len() < guard.signature_threshold { - return Err(GuardError::InsufficientSignatures); - } - - let mut valid_approvers: u32 = 0; - let mut seen = Vec::new(e); - - for addr in approvers.iter() { - if seen.iter().any(|a| a == addr) { - continue; - } - seen.push_back(addr.clone()); - if admins.iter().any(|a| a == addr) { - addr.require_auth(); - valid += 1; - } - } - - if valid < threshold { - return Err(Error::Unauthorized); - } - Ok(()) -} - -fn guard_set_ops(e: &Env, ops: u32, paused: bool) { - let state = guard_pause_state(e); - let next = if paused { state | ops } else { state & !ops }; - if next != state { - e.storage().instance().set(&DataKey::GuardPauseState, &next); - } -} -const CORE_PAUSE_OPS: [u32; 4] = [ - PauseType::SWAP, - PauseType::DEPOSIT, - PauseType::WITHDRAW, - PauseType::BURN, -]; - -fn primary_admin(e: &Env) -> Result { - let guard = load_guard(e); - if let Some(admin) = guard.admins.get(0) { - Ok(admin) - } else { - let pool = load_pool(e).map_err(|_| GuardError::NotInitialized)?; - Ok(pool.admin) - } -} - -fn check_multi_sig(e: &Env, approvers: &Vec
) -> Result<(), GuardError> { - let guard = load_guard(e); - if guard.signature_threshold == 0 { - return Err(GuardError::NotInitialized); - } - - if approvers.len() < guard.signature_threshold { - return Err(GuardError::InsufficientSignatures); - } - - let mut valid_approvers: u32 = 0; - let mut seen = Vec::new(e); - - for addr in approvers.iter() { - if seen.iter().any(|a| a == addr) { - continue; - } - seen.push_back(addr.clone()); - - if guard.admins.iter().any(|a| a == addr) { - addr.require_auth(); - valid_approvers += 1; - } - } - - if valid_approvers < guard.signature_threshold { - Err(GuardError::InsufficientSignatures) - } else { - Ok(()) - } -fn set_primary_admin(e: &Env, admin: Address) -> Result<(), Error> { - e.storage().instance().set(&DataKey::Admin, &admin); - let mut pool = load_pool(e)?; - pool.admin = admin; - save_pool(e, &pool); - Ok(()) - - if guard.admins.iter().any(|a| a == addr) { - addr.require_auth(); - valid_approvers += 1; - } - } - - if valid_approvers < guard.signature_threshold { - Err(GuardError::InsufficientSignatures) - } else { - Ok(()) - } -} - -#[contract] -pub struct LiquidityPool; - -#[contractimpl] -impl LiquidityPool { - // ── Initialisation ──────────────────────────────────────────────────────── - - pub fn initialize( - e: Env, - admin: Address, - token_a: Address, - token_b: Address, - ) -> Result<(), Error> { - if e.storage().instance().has(&DataKey::Pool) { - return Err(Error::AlreadyInitialized); - } - - e.storage().instance().set(&DataKey::Admin, &admin); - save_pool( - &e, - &PoolState { - token_a, - token_b, - reserve_a: 0, - reserve_b: 0, - total_shares: 0, - fee_bps: DEFAULT_BASE_FEE_BPS, - base_fee_bps: DEFAULT_BASE_FEE_BPS, - admin: admin.clone(), - paused: false, - }, - ); - - save_guard( - &e, - &GuardState { - pause_state: 0, - admins: { - let mut admins = Vec::new(&e); - admins.push_back(admin); - admins - }, - signature_threshold: 1, - }, - ); - - Ok(()) - } - - pub fn get_fee(e: Env) -> i128 { - e.storage() - .instance() - .get::<_, PoolState>(&DataKey::Pool) - .map(|p| p.fee_bps) - .unwrap_or(DEFAULT_BASE_FEE_BPS) - } - - }, - ); - - EmergencyGuard::initialize(e.clone(), vec![&e, admin], 1).map_err(map_guard_err)?; - Ok(()) - } - - // ── Admin accessors ───────────────────────────────────────────────────────── - - pub fn get_admin(e: Env) -> Address { - load_admin(&e).expect("not initialized") - } - - pub fn get_admins(e: Env) -> Vec
{ - EmergencyGuard::get_admins(e) - } - - pub fn get_admin_threshold(e: Env) -> u32 { - EmergencyGuard::get_threshold(e) - } - - // ── EmergencyGuard pause interface ────────────────────────────────────────── - - pub fn guard_pause( - e: Env, - admin: Address, - operation: u32, - paused: bool, - ) -> Result<(), Error> { - /// Pause or resume one operation bit. Any current guard admin may call this. - pub fn guard_pause(e: Env, admin: Address, operation: u32, paused: bool) -> Result<(), Error> { - EmergencyGuard::set_pause(e, admin, operation, paused).map_err(map_guard_err) + /// Pause or resume one operation bit. Any current guard admin may call this. + pub fn guard_pause(e: Env, admin: Address, operation: u32, paused: bool) -> Result<(), Error> { + EmergencyGuard::set_pause(e, admin, operation, paused).map_err(map_guard_err) } pub fn guard_is_paused(e: Env, operation: u32) -> bool { EmergencyGuard::is_paused(e, operation) - pub fn guard_unpause(e: Env, admin: Address, operation: u32) -> Result<(), Error> { - Self::guard_pause(e, admin, operation, false) } pub fn set_operation_paused( @@ -806,24 +462,17 @@ impl LiquidityPool { operation: u32, paused: bool, ) -> Result<(), Error> { - Self::guard_pause(e, admin, operation, paused) + EmergencyGuard::set_pause(e, admin, operation, paused).map_err(map_guard_err) } - /// Pause or unpause all core pool operations (swap, deposit, withdraw, burn). + /// Pause or resume every core pool operation in one call. + /// + /// The whole mask is applied in a single `set_pause` so the admin is + /// authorized once — repeating `require_auth` for the same address inside + /// one frame is rejected by the host as `Auth(ExistingValue)`. pub fn set_paused(e: Env, paused: bool) -> Result<(), Error> { let admin = load_admin(&e)?; - for op in CORE_PAUSE_OPS { - EmergencyGuard::set_pause(e.clone(), admin.clone(), op, paused).map_err(map_guard_err)?; - for op in [ - PauseType::SWAP, - PauseType::DEPOSIT, - PauseType::WITHDRAW, - PauseType::BURN, - ] { - EmergencyGuard::set_pause(e.clone(), admin.clone(), op, paused) - .map_err(map_guard_err)?; - } - Ok(()) + EmergencyGuard::set_pause(e, admin, CORE_PAUSE_OPS, paused).map_err(map_guard_err) } pub fn pause_swaps(e: Env) -> Result<(), Error> { @@ -834,8 +483,6 @@ impl LiquidityPool { pub fn resume_swaps(e: Env) -> Result<(), Error> { let admin = load_admin(&e)?; EmergencyGuard::set_pause(e, admin, PauseType::SWAP, false).map_err(map_guard_err) - let admin = Self::get_admin(e.clone())?; - Self::guard_unpause(e, admin, pause_op::SWAP) } pub fn pause_deposits(e: Env) -> Result<(), Error> { @@ -846,8 +493,6 @@ impl LiquidityPool { pub fn resume_deposits(e: Env) -> Result<(), Error> { let admin = load_admin(&e)?; EmergencyGuard::set_pause(e, admin, PauseType::DEPOSIT, false).map_err(map_guard_err) - let admin = Self::get_admin(e.clone())?; - Self::guard_unpause(e, admin, pause_op::DEPOSIT) } pub fn pause_withdrawals(e: Env) -> Result<(), Error> { @@ -860,29 +505,13 @@ impl LiquidityPool { EmergencyGuard::set_pause(e, admin, PauseType::WITHDRAW, false).map_err(map_guard_err) } + /// Issue #419: Emergency pause all operations — requires multi-sig via EmergencyGuard::check_multi_sig. pub fn emergency_pause(e: Env, approvers: Vec
) -> Result<(), Error> { EmergencyGuard::emergency_pause(e, approvers).map_err(map_guard_err) } pub fn resume(e: Env, approvers: Vec
) -> Result<(), Error> { EmergencyGuard::resume(e, approvers).map_err(map_guard_err) - let admin = Self::get_admin(e.clone())?; - Self::guard_unpause(e, admin, pause_op::WITHDRAW) - } - - pub fn emergency_pause_all(e: Env, approvers: Vec
) -> Result<(), Error> { - Self::emergency_pause(e, approvers) - } - - pub fn resume_all(e: Env, approvers: Vec
) -> Result<(), Error> { - Self::resume(e, approvers) - } - - pub fn get_pause_state(e: Env) -> u32 { - EmergencyGuard::get_pause_state(e) - } - pub fn get_pause_mask(e: Env) -> u32 { - EmergencyGuard::get_pause_state(e) } pub fn get_pause_mask(e: Env) -> u32 { @@ -898,37 +527,6 @@ impl LiquidityPool { EmergencyGuard::is_paused(e, operation) } - pub fn add_admin(e: Env, approvers: Vec
, new_admin: Address) -> Result<(), Error> { - EmergencyGuard::add_admin(e, approvers, new_admin).map_err(map_guard_err) - } - - pub fn remove_admin(e: Env, approvers: Vec
, admin: Address) -> Result<(), Error> { - let pool_admin = load_admin(&e)?; - EmergencyGuard::remove_admin(e.clone(), approvers, admin.clone()).map_err(map_guard_err)?; - let admins = EmergencyGuard::get_admins(e.clone()); - if pool_admin == admin && admins.len() == 1 { - if let Some(remaining) = admins.get(0) { - e.storage().instance().set(&DataKey::Admin, &remaining); - } - } - Ok(()) - } - - pub fn rotate_admin( - e: Env, - approvers: Vec
, - old_admin: Address, - new_admin: Address, - ) -> Result<(), Error> { - let pool_admin = load_admin(&e)?; - if pool_admin != old_admin { - return Err(Error::Unauthorized); - } - EmergencyGuard::add_admin(e.clone(), approvers.clone(), new_admin.clone()) - .map_err(map_guard_err)?; - EmergencyGuard::remove_admin(e.clone(), approvers, old_admin).map_err(map_guard_err)?; - e.storage().instance().set(&DataKey::Admin, &new_admin); - Ok(()) pub fn add_guard_admin( e: Env, approvers: Vec
, @@ -942,7 +540,7 @@ impl LiquidityPool { approvers: Vec
, admin: Address, ) -> Result<(), Error> { - Self::remove_admin(e, approvers, admin) + EmergencyGuard::remove_admin(e, approvers, admin).map_err(map_guard_err) } pub fn get_guard_admins(e: Env) -> Vec
{ @@ -965,14 +563,12 @@ impl LiquidityPool { if !(0..=MAX_FEE_BPS).contains(&fee_bps) { return Err(Error::InvalidFee); } - let admin = load_admin(&e)?; admin.require_auth(); let mut pool = load_pool(&e)?; let old_fee = pool.fee_bps; pool.fee_bps = fee_bps; save_pool(&e, &pool); - e.events().publish( (String::from_str(&e, "fee_changed"), admin.clone()), FeeChangedEvent { @@ -981,7 +577,6 @@ impl LiquidityPool { new_fee_bps: fee_bps, }, ); - Ok(()) } @@ -994,12 +589,10 @@ impl LiquidityPool { if !(0..=MAX_FEE_BPS).contains(&base_fee_bps) { return Err(Error::InvalidFee); } - let mut pool = load_pool(&e)?; pool.admin.require_auth(); pool.base_fee_bps = base_fee_bps; save_pool(&e, &pool); - e.storage().instance().set( &DataKey::Oracle, &OracleConfig { @@ -1009,7 +602,6 @@ impl LiquidityPool { timelock_ledgers, }, ); - Ok(()) } @@ -1031,53 +623,40 @@ impl LiquidityPool { .instance() .get(&DataKey::Oracle) .ok_or(Error::OracleNotConfigured)?; - let oracle_client = PriceOracleClient::new(&e, &cfg.oracle); let current_price = oracle_client.latest_price(); if current_price <= 0 { return Err(Error::InvalidOraclePrice); } - let previous_price = cfg.last_price; cfg.last_price = current_price; - if previous_price <= 0 { cfg.last_volatility_bps = 0; e.storage().instance().set(&DataKey::Oracle, &cfg); return Ok(None); } - let price_delta = if current_price >= previous_price { current_price - previous_price } else { previous_price - current_price }; - let volatility_bps = price_delta .checked_mul(10_000) .ok_or(Error::InvalidOraclePrice)? / previous_price; - cfg.last_volatility_bps = volatility_bps; e.storage().instance().set(&DataKey::Oracle, &cfg); - let pool = load_pool(&e)?; let target_fee = target_fee_from_volatility(pool.base_fee_bps, volatility_bps); if target_fee == pool.fee_bps { return Ok(None); } - let execute_after = e.ledger().sequence().saturating_add(cfg.timelock_ledgers); let pending = PendingFeeUpdate { new_fee_bps: target_fee, executable_after_ledger: execute_after, based_on_volatility_bps: volatility_bps, }; - - e.storage() - .instance() - .set(&DataKey::PendingFeeUpdate, &pending); - e.storage() .instance() .set(&DataKey::PendingFeeUpdate, &pending); @@ -1095,7 +674,6 @@ impl LiquidityPool { volatility_bps, }, ); - Ok(Some(pending)) } @@ -1105,1019 +683,124 @@ impl LiquidityPool { .instance() .get(&DataKey::PendingFeeUpdate) .ok_or(Error::NoPendingFeeUpdate)?; - - if e.ledger().sequence() < pending.executable_after_ledger { - return Err(Error::TimelockNotElapsed); - } - - if !(0..=MAX_FEE_BPS).contains(&pending.new_fee_bps) { - guard_init(&e, admin); - Ok(()) - } - - // ── Granular pause (EmergencyGuard admin interface) ─────────────────────── - - /// Pause or resume one operation bit. Any current guard admin may call this. - pub fn set_operation_paused( - e: Env, - admin: Address, - operation: u32, - paused: bool, - ) -> Result<(), Error> { - guard_require_admin(&e, &admin)?; - guard_set_ops(&e, operation, paused); - Ok(()) - } - - /// Backward-compatible granular pause entry point. - pub fn guard_pause( - e: Env, - admin: Address, - operation: u32, - paused: bool, - ) -> Result<(), Error> { - Self::set_operation_paused(e, admin, operation, paused) - } - - /// Pause only swap operations. - pub fn pause_swaps(e: Env) -> Result<(), Error> { - let admin = read_admin(&e)?; - Self::set_operation_paused(e, admin, pause_op::SWAP, true) - } - - pub fn resume_swaps(e: Env) -> Result<(), Error> { - let admin = read_admin(&e)?; - Self::set_operation_paused(e, admin, pause_op::SWAP, false) - } - - pub fn pause_deposits(e: Env) -> Result<(), Error> { - let admin = read_admin(&e)?; - Self::set_operation_paused(e, admin, pause_op::DEPOSIT, true) - } - - pub fn resume_deposits(e: Env) -> Result<(), Error> { - let admin = read_admin(&e)?; - Self::set_operation_paused(e, admin, pause_op::DEPOSIT, false) - } - - pub fn pause_withdrawals(e: Env) -> Result<(), Error> { - let admin = read_admin(&e)?; - Self::set_operation_paused(e, admin, pause_op::WITHDRAW, true) - } - - pub fn resume_withdrawals(e: Env) -> Result<(), Error> { - let admin = read_admin(&e)?; - Self::set_operation_paused(e, admin, pause_op::WITHDRAW, false) - } - - /// Emergency: pause all guarded operations via multi-sig approval. - pub fn emergency_pause(e: Env, approvers: Vec
) -> Result<(), Error> { - guard_require_multisig(&e, &approvers)?; - guard_set_ops(&e, pause_op::ALL, true); - Ok(()) - } - - /// Alias for callers that use the explicit "all" naming. - pub fn emergency_pause_all(e: Env, approvers: Vec
) -> Result<(), Error> { - Self::emergency_pause(e, approvers) - } - - /// Unpause all guarded operations via multi-sig approval. - /// - /// This replaces the old single-admin boolean unpause flow. The approver - /// list is validated by the same guard threshold used for emergency pause. - pub fn guard_unpause(e: Env, approvers: Vec
) -> Result<(), Error> { - guard_require_multisig(&e, &approvers)?; - guard_set_ops(&e, pause_op::ALL, false); - Ok(()) - } - - /// Backward-compatible resume entry point for existing callers. - pub fn resume(e: Env, approvers: Vec
) -> Result<(), Error> { - Self::guard_unpause(e, approvers) - } - - /// Alias for callers that use the explicit "all" naming. - pub fn resume_all(e: Env, approvers: Vec
) -> Result<(), Error> { - Self::guard_unpause(e, approvers) - } - - /// Returns the raw pause-state bitmask. - pub fn get_pause_state(e: Env) -> u32 { - guard_pause_state(&e) - } - - /// Returns `true` when `operation` is currently paused. - pub fn guard_is_paused(e: Env, operation: u32) -> bool { - guard_pause_state(&e) & operation != 0 - } - - /// Alias for callers that use operation-centric naming. - pub fn is_paused_op(e: Env, operation: u32) -> bool { - Self::guard_is_paused(e, operation) - } - - /// Returns the list of authorized guard admins. - pub fn get_admins(e: Env) -> Vec
{ - read_guard_admins(&e) - } - - /// Alias for callers that use guard-specific naming. - pub fn get_guard_admins(e: Env) -> Vec
{ - read_guard_admins(&e) - } - - /// Returns the current multi-sig approval threshold. - pub fn get_admin_threshold(e: Env) -> u32 { - e.storage() - .instance() - .get(&DataKey::GuardThreshold) - .unwrap_or(0) - } - - /// Alias for callers that use guard-specific naming. - pub fn get_guard_threshold(e: Env) -> u32 { - Self::get_admin_threshold(e) - } - - /// Returns the current primary pool admin. - pub fn get_admin(e: Env) -> Result { - read_admin(&e) - } - - /// Add a new guard admin. Requires the current multi-sig threshold. - pub fn add_admin(e: Env, approvers: Vec
, new_admin: Address) -> Result<(), Error> { - guard_require_multisig(&e, &approvers)?; - let mut admins = read_guard_admins(&e); - if !admins.iter().any(|a| a == new_admin) { - admins.push_back(new_admin); - write_guard_admins(&e, &admins); - } - Ok(()) - } - - /// Alias for callers that use guard-specific naming. - pub fn add_guard_admin( - e: Env, - approvers: Vec
, - new_admin: Address, - ) -> Result<(), Error> { - Self::add_admin(e, approvers, new_admin) - } - - /// Remove a guard admin. The admin set cannot be reduced below threshold. - pub fn remove_admin(e: Env, approvers: Vec
, admin: Address) -> Result<(), Error> { - guard_require_multisig(&e, &approvers)?; - let admins = read_guard_admins(&e); - let threshold = Self::get_admin_threshold(e.clone()); - if admins.len() as u32 <= threshold { - return Err(Error::Unauthorized); - } - - let mut next_admins = Vec::new(&e); - let mut found = false; - for candidate in admins.iter() { - if candidate == admin { - found = true; - } else { - next_admins.push_back(candidate); - } - } - if !found { - return Err(Error::Unauthorized); - } - - write_guard_admins(&e, &next_admins); - if read_admin(&e)? == admin { - if let Some(next_primary) = next_admins.get(0) { - e.storage().instance().set(&DataKey::Admin, &next_primary); - } - } - Ok(()) - } - - /// Alias for callers that use guard-specific naming. - pub fn remove_guard_admin( - e: Env, - approvers: Vec
, - admin: Address, - ) -> Result<(), Error> { - Self::remove_admin(e, approvers, admin) - } - - /// Replace one guard admin with another and update the primary pool admin - /// when the replaced address is the current primary admin. - pub fn rotate_admin( - e: Env, - approvers: Vec
, - old_admin: Address, - new_admin: Address, - ) -> Result<(), Error> { - guard_require_multisig(&e, &approvers)?; - if !guard_is_admin(&e, &old_admin) { - return Err(Error::Unauthorized); - } - - let admins = read_guard_admins(&e); - let mut next_admins = Vec::new(&e); - for candidate in admins.iter() { - if candidate == old_admin { - if !next_admins.iter().any(|a| a == new_admin) { - next_admins.push_back(new_admin.clone()); - } - } else if !next_admins.iter().any(|a| a == candidate) { - next_admins.push_back(candidate); - } - } - - write_guard_admins(&e, &next_admins); - if read_admin(&e)? == old_admin { - e.storage().instance().set(&DataKey::Admin, &new_admin); - } - Ok(()) - } - - pub fn remove_admin(e: Env, approvers: Vec
, admin: Address) -> Result<(), Error> { - Self::remove_guard_admin(e, approvers, admin) - } - - pub fn rotate_admin( - e: Env, - approvers: Vec
, - old_admin: Address, - new_admin: Address, - ) -> Result<(), Error> { - guard_require_multisig(&e, &approvers)?; - if !guard_is_admin(&e, &old_admin) { - return Err(Error::Unauthorized); - } - - let admins = guard_admins(&e); - let mut new_admins = Vec::new(&e); - for a in admins.iter() { - if a == old_admin { - if !new_admins.iter().any(|existing| existing == new_admin) { - new_admins.push_back(new_admin.clone()); - } - } else if !new_admins.iter().any(|existing| existing == a) { - new_admins.push_back(a); - } - } - - e.storage() - .instance() - .set(&DataKey::GuardAdmins, &new_admins); - - if Self::get_admin(e.clone())? == old_admin { - set_primary_admin(&e, new_admin)?; - } - Ok(()) - } - - pub fn get_fee(e: Env) -> i128 { - load_pool(&e) - .map(|p| p.fee_bps) - .unwrap_or(DEFAULT_BASE_FEE_BPS) - } - - - save_guard( - &e, - &GuardState { - pause_state: 0, - admins: { - let mut admins = Vec::new(&e); - admins.push_back(admin); - admins - }, - signature_threshold: 1, - }, - ); - - Ok(()) - } - - pub fn get_fee(e: Env) -> i128 { - e.storage() - .instance() - .get::<_, PoolState>(&DataKey::Pool) - .map(|p| p.fee_bps) - .unwrap_or(DEFAULT_BASE_FEE_BPS) - } - - pub fn set_fee(e: Env, fee_bps: i128) -> Result<(), Error> { - if !(0..=MAX_FEE_BPS).contains(&fee_bps) { - return Err(Error::InvalidFee); - } - - admin.require_auth(); - let pool = PoolState { - admin: admin.clone(), - token_a, - token_b, - reserve_a: 0, - reserve_b: 0, - total_shares: 0, - fee_bps: 30, - }; - save_pool(&e, &pool); - // Initialize the EmergencyGuard with the admin as the sole approver. - EmergencyGuard::initialize(e.clone(), vec![&e, admin], 1) - .map_err(|_| Error::Unauthorized)?; - Ok(()) - } - - /// Returns the current fee in basis points. - pub fn get_fee(e: Env) -> Result { - let pool = load_pool(&e)?; - Ok(pool.fee_bps) - } - - /// Admin-only: update the swap fee. Valid range: 0–100 bps. - pub fn set_fee(e: Env, fee_bps: i128) -> Result<(), Error> { - if !(0..=100).contains(&fee_bps) { - return Err(Error::InvalidFee); - } - let admin = read_admin(&e)?; - admin.require_auth(); - let mut pool = load_pool(&e)?; - let old_fee = pool.fee_bps; - pool.fee_bps = fee_bps; - save_pool(&e, &pool); - - save_pool(&e, &pool); - e.events().publish( - (String::from_str(&e, "fee_changed"), pool.admin.clone()), - FeeChangedEvent { - admin: pool.admin, - old_fee_bps: old_fee, - new_fee_bps: fee_bps, - }, - ); - - Ok(()) - } - - pub fn configure_fee_oracle( - e: Env, - oracle_id: Address, - oracle: Address, - base_fee_bps: i128, - timelock_ledgers: u32, - ) -> Result<(), Error> { - if !(0..=MAX_FEE_BPS).contains(&base_fee_bps) { - return Err(Error::InvalidFee); - } - - let mut pool = load_pool(&e)?; - pool.admin.require_auth(); - pool.base_fee_bps = base_fee_bps; - save_pool(&e, &pool); - - let admin = load_admin(&e)?; - admin.require_auth(); - e.storage().instance().set( - &DataKey::OracleConfig, - &OracleConfig { - oracle_id, - base_fee_bps, - timelock_ledgers, - }, - ); - Ok(()) - } - - pub fn get_last_volatility_bps(e: Env) -> i128 { - e.storage() - .instance() - .get(&DataKey::LastVolatilityBps) - .unwrap_or(0) - } - - pub fn get_pending_fee_update(e: Env) -> Option { - e.storage().instance().get(&DataKey::PendingFeeUpdate) - } - - pub fn sync_fee_from_oracle(e: Env) -> Result, Error> { - let cfg: OracleConfig = e - .storage() - .instance() - .get(&DataKey::OracleConfig) - .ok_or(Error::OracleNotConfigured)?; - - let oracle = PriceOracleClient::new(&e, &cfg.oracle_id); - let current_price = oracle.latest_price(); - - let Some(last_price) = e - .storage() - .instance() - .get::<_, i128>(&DataKey::LastOraclePrice) - else { - let maybe_last: Option = e.storage().instance().get(&DataKey::LastOraclePrice); - let Some(last_price) = maybe_last else { - e.storage() - .instance() - .set(&DataKey::LastOraclePrice, ¤t_price); - return Ok(None); - }; - - let delta = if current_price >= last_price { - current_price - last_price - } else { - last_price - current_price - }; - let volatility_bps = if last_price == 0 { - 0 - } else { - delta * 10_000 / last_price - }; - - e.storage() - .instance() - .set(&DataKey::LastOraclePrice, ¤t_price); - e.storage() - .instance() - .set(&DataKey::LastVolatilityBps, &volatility_bps); - - let pool = load_pool(&e)?; - let target_fee = target_fee_from_volatility(cfg.base_fee_bps, volatility_bps); - if target_fee == pool.fee_bps { - return Ok(None); - } - - let pending = PendingFeeUpdate { - new_fee_bps: target_fee, - executable_after_ledger: e.ledger().sequence() + cfg.timelock_ledgers, - }; - e.storage() - .instance() - .set(&DataKey::PendingFeeUpdate, &pending); - Ok(Some(pending)) - } - - pub fn execute_fee_update(e: Env) -> Result { - let pending: PendingFeeUpdate = e - .storage() - .instance() - .get(&DataKey::PendingFeeUpdate) - .ok_or(Error::NoPendingFeeUpdate)?; - - if e.ledger().sequence() < pending.executable_after_ledger { - return Err(Error::TimelockNotElapsed); - } - if !(0..=MAX_FEE_BPS).contains(&pending.new_fee_bps) { - return Err(Error::InvalidFee); - } - - let mut pool = load_pool(&e)?; - pool.fee_bps = pending.new_fee_bps; - save_pool(&e, &pool); - e.storage().instance().remove(&DataKey::PendingFeeUpdate); - Ok(pending.new_fee_bps) - } - - pub fn get_pending_fee_update(e: Env) -> Option { - e.storage().instance().get(&DataKey::PendingFeeUpdate) - } - - pub fn get_last_volatility_bps(e: Env) -> i128 { - e.storage() - .instance() - .get(&DataKey::LastVolatilityBps) - .unwrap_or(0) - } - - /// Admin-only: emergency pause all operations (requires multi-sig). - pub fn emergency_pause(e: Env, approvers: Vec
) -> Result<(), Error> { - EmergencyGuard::emergency_pause(e, approvers).map_err(|_| Error::Unauthorized) - } - - /// Admin-only: resume all paused operations (requires multi-sig). - pub fn resume_all(e: Env, approvers: Vec
) -> Result<(), Error> { - EmergencyGuard::resume(e, approvers).map_err(|_| Error::Unauthorized) - } - - /// Check whether a specific operation is currently paused. - pub fn is_paused(e: Env, operation: u32) -> bool { - EmergencyGuard::is_paused(e, operation) - } - - /// Deposits token A and token B into the pool and mints LP shares. - pub fn deposit(e: Env, to: Address, amount_a: i128, amount_b: i128) -> Result { - guard_check_not_paused(&e, pause_op::DEPOSIT)?; - &DataKey::Oracle, - &OracleConfig { - oracle, - last_price: 0, - last_volatility_bps: 0, - timelock_ledgers, - }, - ); - - Ok(()) - } - - pub fn get_last_volatility_bps(e: Env) -> i128 { - e.storage() - .instance() - .get::<_, OracleConfig>(&DataKey::Oracle) - .map(|cfg| cfg.last_volatility_bps) - .unwrap_or(0) - } - - pub fn get_pending_fee_update(e: Env) -> Option { - e.storage().instance().get(&DataKey::PendingFeeUpdate) - } - - pub fn sync_fee_from_oracle(e: Env) -> Result, Error> { - let mut cfg: OracleConfig = e - .storage() - .instance() - .get(&DataKey::Oracle) - .ok_or(Error::OracleNotConfigured)?; - - let oracle_client = PriceOracleClient::new(&e, &cfg.oracle); - let current_price = oracle_client.latest_price(); - if current_price <= 0 { - return Err(Error::InvalidOraclePrice); - } - - let previous_price = cfg.last_price; - cfg.last_price = current_price; - - if previous_price <= 0 { - cfg.last_volatility_bps = 0; - e.storage().instance().set(&DataKey::Oracle, &cfg); - return Ok(None); - } - - let price_delta = if current_price >= previous_price { - current_price - previous_price - } else { - previous_price - current_price - }; - - let volatility_bps = price_delta - .checked_mul(10_000) - .ok_or(Error::InvalidOraclePrice)? - / previous_price; - - cfg.last_volatility_bps = volatility_bps; - e.storage().instance().set(&DataKey::Oracle, &cfg); - - let pool = load_pool(&e)?; - let target_fee = target_fee_from_volatility(pool.base_fee_bps, volatility_bps); - if target_fee == pool.fee_bps { - return Ok(None); - } - - let execute_after = e.ledger().sequence().saturating_add(cfg.timelock_ledgers); - let pending = PendingFeeUpdate { - new_fee_bps: target_fee, - executable_after_ledger: execute_after, - based_on_volatility_bps: volatility_bps, - }; - - e.storage() - .instance() - .set(&DataKey::PendingFeeUpdate, &pending); - - let scheduled_by = e.current_contract_address(); - e.events().publish( - ( - String::from_str(&e, "fee_update_scheduled"), - scheduled_by.clone(), - ), - FeeUpdateScheduledEvent { - scheduled_by, - old_fee_bps: pool.fee_bps, - new_fee_bps: target_fee, - executable_after_ledger: execute_after, - volatility_bps, - }, - ); - - Ok(Some(pending)) - } - - pub fn execute_fee_update(e: Env) -> Result { - let pending: PendingFeeUpdate = e - .storage() - .instance() - .get(&DataKey::PendingFeeUpdate) - .ok_or(Error::NoPendingFeeUpdate)?; - - if e.ledger().sequence() < pending.executable_after_ledger { - return Err(Error::TimelockNotElapsed); - } - - if !(0..=MAX_FEE_BPS).contains(&pending.new_fee_bps) { - return Err(Error::InvalidFee); - } - - let mut pool = load_pool(&e)?; - let old_fee = pool.fee_bps; - pool.fee_bps = pending.new_fee_bps; - save_pool(&e, &pool); - e.storage().instance().remove(&DataKey::PendingFeeUpdate); - pool.admin.require_auth(); - let old_fee = pool.fee_bps; - pool.fee_bps = fee_bps; - pool.base_fee_bps = fee_bps; - save_pool(&e, &pool); - - e.events().publish( - (String::from_str(&e, "fee_changed"), admin.clone()), - FeeChangedEvent { - admin, - old_fee_bps: old_fee, - new_fee_bps: pending.new_fee_bps, - }, - ); - - Ok(pending.new_fee_bps) - } - - pub fn init_guard(e: Env, admins: Vec
, threshold: u32) -> Result<(), GuardError> { - if threshold == 0 || threshold > admins.len() as u32 { - return Err(GuardError::InvalidThreshold); - } - - let first_admin = admins.get(0).ok_or(GuardError::NotInitialized)?; - save_guard( - &e, - &GuardState { - pause_state: load_guard(&e).pause_state, - admins: admins.clone(), - signature_threshold: threshold, - }, - ); - - if let Ok(mut pool) = load_pool(&e) { - pool.admin = first_admin; - save_pool(&e, &pool); - } - - emit_guard_initialized(&e, &admins, threshold); - - Ok(()) - } - - pub fn get_pause_state(e: Env) -> u32 { - load_guard(&e).pause_state - } - - pub fn set_pause_state(e: Env, operation: u32, paused: bool) -> Result<(), GuardError> { - let admin = primary_admin(&e)?; - admin.require_auth(); - - let mut guard = load_guard(&e); - if !guard.admins.iter().any(|a| a == admin) { - return Err(GuardError::Unauthorized); - } - - if paused { - guard.pause_state |= operation; - } else { - guard.pause_state &= !operation; - } - - save_guard(&e, &guard); - emit_pause_state_changed(&e, &admin, operation, paused); - Ok(()) - } - - pub fn emergency_pause_all(e: Env, approvers: Vec
) -> Result<(), GuardError> { - check_multi_sig(&e, &approvers)?; - let mut guard = load_guard(&e); - guard.pause_state = u32::MAX; - save_guard(&e, &guard); - emit_emergency_paused_all(&e, &approvers); - Ok(()) - } - - pub fn resume_all(e: Env, approvers: Vec
) -> Result<(), GuardError> { - check_multi_sig(&e, &approvers)?; - let mut guard = load_guard(&e); - guard.pause_state = 0; - save_guard(&e, &guard); - emit_resumed_all(&e, &approvers); - Ok(()) - } - - pub fn get_admins(e: Env) -> Vec
{ - load_guard(&e).admins - } - - pub fn get_threshold(e: Env) -> u32 { - load_guard(&e).signature_threshold - } - - pub fn is_admin(e: Env, addr: Address) -> bool { - load_guard(&e).admins.iter().any(|a| a == addr) - } - - pub fn add_admin( - e: Env, - approvers: Vec
, - new_admin: Address, - ) -> Result<(), GuardError> { - check_multi_sig(&e, &approvers)?; - - let mut guard = load_guard(&e); - if !guard.admins.iter().any(|a| a == new_admin) { - guard.admins.push_back(new_admin.clone()); - save_guard(&e, &guard); - emit_admin_added(&e, &approvers, &new_admin); - } - - Ok(()) - } - - pub fn remove_admin(e: Env, approvers: Vec
, admin: Address) -> Result<(), GuardError> { - check_multi_sig(&e, &approvers)?; - - let guard = load_guard(&e); - if guard.admins.len() as u32 <= guard.signature_threshold { - return Err(GuardError::InvalidThreshold); - } - - let mut new_admins = Vec::new(&e); - let mut found = false; - for a in guard.admins.iter() { - if a != admin { - new_admins.push_back(a); - } else { - found = true; - } - } - - if !found { - return Err(GuardError::AdminNotFound); - } - - let mut updated_guard = guard; - updated_guard.admins = new_admins; - save_guard(&e, &updated_guard); - emit_admin_removed(&e, &approvers, &admin); - - if let Ok(mut pool) = load_pool(&e) { - if let Some(first_admin) = updated_guard.admins.get(0) { - pool.admin = first_admin; - save_pool(&e, &pool); - } - } - - Ok(()) - } - - pub fn set_paused(e: Env, paused: bool) -> Result<(), Error> { - let mut pool = load_pool(&e)?; - pool.admin.require_auth(); - - let mut guard = load_or_init_guard_from_pool(&e, &pool); - guard.pause_state = if paused { u32::MAX } else { 0 }; - save_guard(&e, &guard); - emit_pause_state_changed(&e, &pool.admin, u32::MAX, paused); - - Ok(()) - } - - pub fn emergency_pause(e: Env, approvers: Vec
) -> Result<(), Error> { - Self::emergency_pause_all(e, approvers).map_err(|_| Error::Unauthorized) - } - - pub fn deposit(e: Env, to: Address, amount_a: i128, amount_b: i128) -> Result { - let mut pool = load_pool(&e)?; - let guard = load_or_init_guard_from_pool(&e, &pool); - check_paused(&pool, PauseType::DEPOSIT, &guard)?; - /// Admin-only: configure the price oracle for dynamic fee adjustment. - pub fn configure_fee_oracle( - e: Env, - oracle_id: Address, - base_fee_bps: i128, - timelock_ledgers: u32, - ) -> Result<(), Error> { - if !(0..=MAX_FEE_BPS).contains(&base_fee_bps) { - return Err(Error::InvalidFee); - } - let admin = read_admin(&e)?; - admin.require_auth(); - e.storage().instance().set( - &DataKey::OracleConfig, - &OracleConfig { - oracle_id, - base_fee_bps, - timelock_ledgers, - }, - ); - Ok(()) - } - - pub fn sync_fee_from_oracle(e: Env) -> Result, Error> { - let cfg: OracleConfig = e - .storage() - .instance() - .get(&DataKey::OracleConfig) - .ok_or(Error::OracleNotConfigured)?; - - let oracle = PriceOracleClient::new(&e, &cfg.oracle_id); - let current_price = oracle.latest_price(); - - let Some(last_price) = e - .storage() - .instance() - .get::<_, i128>(&DataKey::LastOraclePrice) - else { - e.storage() - .instance() - .set(&DataKey::LastOraclePrice, ¤t_price); - return Ok(None); - }; - - let delta = if current_price >= last_price { - current_price - last_price - } else { - last_price - current_price - }; - let volatility_bps = if last_price == 0 { - 0 - } else { - delta * 10_000 / last_price - }; - - e.storage() - .instance() - .set(&DataKey::LastOraclePrice, ¤t_price); - e.storage() - .instance() - .set(&DataKey::LastVolatilityBps, &volatility_bps); - - let pool = load_pool(&e)?; - let target_fee = target_fee_from_volatility(cfg.base_fee_bps, volatility_bps); - if target_fee == pool.fee_bps { - return Ok(None); - } - - let pending = PendingFeeUpdate { - new_fee_bps: target_fee, - executable_after_ledger: e.ledger().sequence() + cfg.timelock_ledgers, - }; - e.storage() - .instance() - .set(&DataKey::PendingFeeUpdate, &pending); - Ok(Some(pending)) - } - - pub fn execute_fee_update(e: Env) -> Result { - let pending: PendingFeeUpdate = e - .storage() - .instance() - .get(&DataKey::PendingFeeUpdate) - .ok_or(Error::NoPendingFeeUpdate)?; - if e.ledger().sequence() < pending.executable_after_ledger { return Err(Error::TimelockNotElapsed); } - + if !(0..=MAX_FEE_BPS).contains(&pending.new_fee_bps) { + return Err(Error::InvalidFee); + } let mut pool = load_pool(&e)?; + let old_fee = pool.fee_bps; pool.fee_bps = pending.new_fee_bps; save_pool(&e, &pool); e.storage().instance().remove(&DataKey::PendingFeeUpdate); + e.events().publish( + (String::from_str(&e, "fee_changed"), pool.admin.clone()), + FeeChangedEvent { + admin: pool.admin, + old_fee_bps: old_fee, + new_fee_bps: pending.new_fee_bps, + }, + ); Ok(pending.new_fee_bps) } - pub fn get_pending_fee_update(e: Env) -> Option { - e.storage().instance().get(&DataKey::PendingFeeUpdate) - } + // ── Staking rewards ─────────────────────────────────────────────────────── - pub fn get_last_volatility_bps(e: Env) -> i128 { - e.storage() + /// Reward-per-share accumulator brought forward to the current ledger. + /// + /// Read-only: view functions need the up-to-date value without writing, and + /// `update_reward_state` persists exactly what this returns. + fn projected_reward_per_share(e: &Env) -> i128 { + let accumulated: i128 = e + .storage() .instance() - .get(&DataKey::LastVolatilityBps) - .unwrap_or(0) - } - // ── Core AMM operations ─────────────────────────────────────────────────── + .get(&DataKey::AccumulatedRewardPerShare) + .unwrap_or(0); - /// Helper function: updates the accumulated reward per share based on elapsed ledgers. - fn update_reward_state(e: &Env) { - let last_reward_ledger: u32 = e + // No checkpoint yet means nothing has ever been staked, so nothing accrued. + let Some(last_reward_ledger) = e .storage() .instance() - .get(&DataKey::LastRewardLedger) - .unwrap_or(e.ledger().sequence()); - let current_ledger = e.ledger().sequence(); - - if current_ledger <= last_reward_ledger { - return; - } + .get::<_, u32>(&DataKey::LastRewardLedger) + else { + return accumulated; + }; + let current_ledger = e.ledger().sequence(); let total_staked: i128 = e .storage() .instance() .get(&DataKey::TotalStaked) .unwrap_or(0); + if current_ledger <= last_reward_ledger || total_staked <= 0 { + return accumulated; + } - if total_staked > 0 { - let ledgers_elapsed = (current_ledger - last_reward_ledger) as i128; - let new_rewards = ledgers_elapsed - .checked_mul(REWARDS_PER_LEDGER) - .unwrap_or(0); - - let reward_per_share_increment = new_rewards - .checked_mul(REWARD_PRECISION) - .and_then(|v| { - if total_staked > 0 { - Some(v / total_staked) - } else { - Some(0) - } - }) - .unwrap_or(0); - - let accumulated: i128 = e - .storage() - .instance() - .get(&DataKey::AccumulatedRewardPerShare) - .unwrap_or(0); + let ledgers_elapsed = (current_ledger - last_reward_ledger) as i128; + let increment = ledgers_elapsed + .checked_mul(REWARDS_PER_LEDGER) + .and_then(|new_rewards| new_rewards.checked_mul(REWARD_PRECISION)) + .map(|scaled| scaled / total_staked) + .unwrap_or(0); + accumulated.saturating_add(increment) + } + + fn update_reward_state(e: &Env) { + let current_ledger = e.ledger().sequence(); + // Seed the checkpoint on the first staking action. Defaulting it to the + // current ledger on every read instead would make `current <= last` + // permanently true, so rewards would never accrue. + if !e.storage().instance().has(&DataKey::LastRewardLedger) { e.storage() .instance() - .set(&DataKey::AccumulatedRewardPerShare, &(accumulated + reward_per_share_increment)); + .set(&DataKey::LastRewardLedger, ¤t_ledger); + return; } - e.storage().instance().set( - &DataKey::AccumulatedRewardPerShare, - &(accumulated + increment), - ); - } + let accumulated = Self::projected_reward_per_share(e); + e.storage() + .instance() + .set(&DataKey::AccumulatedRewardPerShare, &accumulated); e.storage() .instance() .set(&DataKey::LastRewardLedger, ¤t_ledger); } - /// Helper function: calculate pending rewards for a user. fn calculate_pending_rewards(e: &Env, user: &Address, staked_amount: i128) -> i128 { - let accumulated_per_share: i128 = e - .storage() - .instance() - .get(&DataKey::AccumulatedRewardPerShare) - .unwrap_or(0); - + let accumulated_per_share = Self::projected_reward_per_share(e); let earned = staked_amount .checked_mul(accumulated_per_share) - .and_then(|v| Some(v / REWARD_PRECISION)) + .map(|v| v / REWARD_PRECISION) .unwrap_or(0); - let claimed: i128 = e .storage() .persistent() .get::<_, i128>(&DataKey::UserRewards(user.clone())) .unwrap_or(0); - earned.saturating_sub(claimed) } - /// Stake LP shares to earn staking rewards. - /// - /// # Parameters - /// - `e`: Soroban environment. - /// - `user`: Address staking LP shares. - /// - `amount`: Number of LP shares to stake. - /// - /// # Returns - /// - `Ok(())`: Success. - /// - `Err(Error::Paused)`: Contract is paused. - /// - `Err(Error::InsufficientBalance)`: User lacks enough LP shares. pub fn stake(e: Env, user: Address, amount: i128) -> Result<(), Error> { - check_paused(&e)?; + require_not_paused(&e, PauseType::STAKE)?; user.require_auth(); - - // Check user has sufficient balance let balance_key = DataKey::Balance(user.clone()); let user_balance: i128 = e.storage().persistent().get(&balance_key).unwrap_or(0); if user_balance < amount { return Err(Error::InsufficientBalance); } - - // Update reward state Self::update_reward_state(&e); - - // Transfer LP shares from user's balance to staked balance let staked_key = DataKey::StakedBalance(user.clone()); let current_staked: i128 = e.storage().persistent().get(&staked_key).unwrap_or(0); - e.storage() .persistent() .set(&balance_key, &(user_balance - amount)); e.storage().persistent().extend_ttl(&balance_key, 100, 100); - e.storage() .persistent() .set(&staked_key, &(current_staked + amount)); e.storage().persistent().extend_ttl(&staked_key, 100, 100); - - // Update total staked let total_staked: i128 = e .storage() .instance() @@ -2126,8 +809,6 @@ impl LiquidityPool { e.storage() .instance() .set(&DataKey::TotalStaked, &(total_staked + amount)); - - // Emit stake event e.events().publish( (String::from_str(&e, "stake"), user.clone()), StakeEvent { @@ -2135,49 +816,28 @@ impl LiquidityPool { amount_staked: amount, }, ); - Ok(()) } - /// Unstake LP shares. - /// - /// # Parameters - /// - `e`: Soroban environment. - /// - `user`: Address unstaking LP shares. - /// - `amount`: Number of LP shares to unstake. - /// - /// # Returns - /// - `Ok(())`: Success. - /// - `Err(Error::Paused)`: Contract is paused. - /// - `Err(Error::InsufficientShares)`: User lacks enough staked LP shares. pub fn unstake(e: Env, user: Address, amount: i128) -> Result<(), Error> { - check_paused(&e)?; + require_not_paused(&e, PauseType::STAKE)?; user.require_auth(); - let staked_key = DataKey::StakedBalance(user.clone()); let current_staked: i128 = e.storage().persistent().get(&staked_key).unwrap_or(0); if current_staked < amount { return Err(Error::InsufficientShares); } - - // Update reward state Self::update_reward_state(&e); - - // Transfer LP shares from staked balance back to user's balance let balance_key = DataKey::Balance(user.clone()); let user_balance: i128 = e.storage().persistent().get(&balance_key).unwrap_or(0); - e.storage() .persistent() .set(&balance_key, &(user_balance + amount)); e.storage().persistent().extend_ttl(&balance_key, 100, 100); - e.storage() .persistent() .set(&staked_key, &(current_staked - amount)); e.storage().persistent().extend_ttl(&staked_key, 100, 100); - - // Update total staked let total_staked: i128 = e .storage() .instance() @@ -2186,8 +846,6 @@ impl LiquidityPool { e.storage() .instance() .set(&DataKey::TotalStaked, &(total_staked - amount)); - - // Emit unstake event e.events().publish( (String::from_str(&e, "unstake"), user.clone()), UnstakeEvent { @@ -2195,56 +853,30 @@ impl LiquidityPool { amount_unstaked: amount, }, ); - Ok(()) } - /// Claim accumulated staking rewards. - /// - /// # Parameters - /// - `e`: Soroban environment. - /// - `user`: Address claiming rewards. - /// - /// # Returns - /// - `Ok(i128)`: Amount of rewards claimed. - /// - `Err(Error::Paused)`: Contract is paused. pub fn claim_rewards(e: Env, user: Address) -> Result { - check_paused(&e)?; + require_not_paused(&e, PauseType::CLAIM_REWARDS)?; user.require_auth(); - - // Update reward state Self::update_reward_state(&e); - let staked_key = DataKey::StakedBalance(user.clone()); let staked_amount: i128 = e.storage().persistent().get(&staked_key).unwrap_or(0); - - // Calculate pending rewards let pending = Self::calculate_pending_rewards(&e, &user, staked_amount); - if pending <= 0 { return Ok(0); } - - // Update claimed rewards - let accumulated_per_share: i128 = e - .storage() - .instance() - .get(&DataKey::AccumulatedRewardPerShare) - .unwrap_or(0); - + let accumulated_per_share = Self::projected_reward_per_share(&e); let new_claimed = staked_amount .checked_mul(accumulated_per_share) - .and_then(|v| Some(v / REWARD_PRECISION)) + .map(|v| v / REWARD_PRECISION) .unwrap_or(0); - e.storage() .persistent() .set(&DataKey::UserRewards(user.clone()), &new_claimed); e.storage() .persistent() .extend_ttl(&DataKey::UserRewards(user.clone()), 100, 100); - - // Emit claim rewards event e.events().publish( (String::from_str(&e, "claim_rewards"), user.clone()), ClaimRewardsEvent { @@ -2252,28 +884,22 @@ impl LiquidityPool { rewards_amount: pending, }, ); - Ok(pending) } - /// Get the total amount of LP shares staked by a user. pub fn get_staked_balance(e: Env, user: Address) -> i128 { - let staked_key = DataKey::StakedBalance(user); - e.storage().persistent().get(&staked_key).unwrap_or(0) e.storage() .persistent() .get(&DataKey::StakedBalance(user)) .unwrap_or(0) } - /// Get the pending rewards for a user. pub fn get_pending_rewards(e: Env, user: Address) -> i128 { let staked_key = DataKey::StakedBalance(user.clone()); let staked_amount: i128 = e.storage().persistent().get(&staked_key).unwrap_or(0); Self::calculate_pending_rewards(&e, &user, staked_amount) } - /// Get the total amount of LP shares currently staked in the contract. pub fn get_total_staked(e: Env) -> i128 { e.storage() .instance() @@ -2281,46 +907,21 @@ impl LiquidityPool { .unwrap_or(0) } - /// Deposits token A and token B into the pool and mints LP shares. - /// - /// The caller (`to`) must authorize the transfer. For first liquidity, - /// shares are minted as `sqrt(amount_a * amount_b)`. For subsequent - /// deposits, shares are minted proportionally to existing reserves. - /// - /// # Parameters - /// - `e`: Soroban environment. - /// - `to`: Liquidity provider address receiving LP shares. - /// - `amount_a`: Amount of token A to deposit. - /// - `amount_b`: Amount of token B to deposit. - /// - /// # Returns - /// - `Ok(i128)`: Number of LP shares minted. - /// - `Err(Error::NotInitialized)`: Pool tokens were not configured. - /// - `Err(Error::InsufficientLiquidity)`: Arithmetic failed (for example overflow). + // ── Core AMM operations ─────────────────────────────────────────────────── + pub fn deposit(e: Env, to: Address, amount_a: i128, amount_b: i128) -> Result { require_not_paused(&e, PauseType::DEPOSIT)?; to.require_auth(); - let mut pool = load_pool(&e)?; let client_a = soroban_sdk::token::Client::new(&e, &pool.token_a); let client_b = soroban_sdk::token::Client::new(&e, &pool.token_b); client_a.transfer(&to, &e.current_contract_address(), &amount_a); client_b.transfer(&to, &e.current_contract_address(), &amount_b); - let shares = if pool.total_shares == 0 { let product = amount_a .checked_mul(amount_b) .ok_or(Error::InsufficientLiquidity)?; sqrt(product) - sqrt( - amount_a - .checked_mul(amount_b) - .ok_or(Error::InsufficientLiquidity)?, - ) - let product = amount_a - .checked_mul(amount_b) - .ok_or(Error::InsufficientLiquidity)?; - sqrt(product) } else { let share_a = amount_a .checked_mul(pool.total_shares) @@ -2336,7 +937,6 @@ impl LiquidityPool { share_b } }; - let user_key = DataKey::Balance(to.clone()); let current = e .storage() @@ -2345,12 +945,10 @@ impl LiquidityPool { .unwrap_or(0); e.storage().persistent().set(&user_key, &(current + shares)); e.storage().persistent().extend_ttl(&user_key, 100, 100); - pool.total_shares += shares; pool.reserve_a += amount_a; pool.reserve_b += amount_b; save_pool(&e, &pool); - e.events().publish( (String::from_str(&e, "deposit"), to.clone()), DepositEvent { @@ -2360,104 +958,149 @@ impl LiquidityPool { shares_minted: shares, }, ); - Ok(shares) } + /// Exact-output swap: receive exactly `out`, paying no more than `in_max`. + /// + /// `in_max` is this direction's slippage bound — the output is fixed by the + /// caller, so the only quantity the pool can move against them is the input. + /// Returns the input actually taken. pub fn swap(e: Env, to: Address, buy_a: bool, out: i128, in_max: i128) -> Result { - guard_check_not_paused(&e, pause_op::SWAP)?; - let mut pool = load_pool(&e)?; - let guard = load_or_init_guard_from_pool(&e, &pool); - check_paused(&pool, PauseType::SWAP, &guard)?; - let mut pool = load_pool(&e)?; - let guard = load_or_init_guard_from_pool(&e, &pool); - check_paused(&pool, PauseType::SWAP, &guard)?; - guard_check_not_paused(&e, pause_op::SWAP)?; require_not_paused(&e, PauseType::SWAP)?; to.require_auth(); + let pool = load_pool(&e)?; + let sides = swap_sides(&pool, buy_a); + let amount_in = amount_in_for_out(out, sides.reserve_in, sides.reserve_out, pool.fee_bps)?; + if amount_in > in_max { + return Err(Error::SlippageExceeded); + } + Self::settle_swap(&e, to, pool, buy_a, sides, amount_in, out); + Ok(amount_in) + } - let mut pool = load_pool(&e)?; - let (reserve_in, reserve_out, token_in, token_out) = if buy_a { - ( - pool.reserve_b, - pool.reserve_a, - pool.token_b.clone(), - pool.token_a.clone(), - ) - } else { - ( - pool.reserve_a, - pool.reserve_b, - pool.token_a.clone(), - pool.token_b.clone(), - ) - }; - - if out >= reserve_out { + /// Exact-input swap with slippage protection: pay exactly `amount_in` and + /// abort unless at least `min_amount_out` comes back. + /// + /// Quoting the output on-chain is what makes a swap sandwichable: an attacker + /// who front-runs the transaction moves the price so the same input returns + /// far less. `min_amount_out` is the caller's floor on that outcome — compute + /// it from [`Self::get_amount_out`] minus an accepted tolerance, and the swap + /// reverts with [`Error::SlippageExceeded`] rather than filling at the + /// attacker's price. + /// + /// Pass `min_amount_out = 0` only when any fill is acceptable; it disables + /// the check. + /// + /// Returns the output actually delivered. + pub fn swap_exact_in( + e: Env, + to: Address, + buy_a: bool, + amount_in: i128, + min_amount_out: i128, + ) -> Result { + require_not_paused(&e, PauseType::SWAP)?; + if amount_in <= 0 || min_amount_out < 0 { + return Err(Error::InvalidAmount); + } + to.require_auth(); + let pool = load_pool(&e)?; + let sides = swap_sides(&pool, buy_a); + let amount_out = + amount_out_for_in(amount_in, sides.reserve_in, sides.reserve_out, pool.fee_bps)?; + // A zero quote means the input is too small to buy one unit of output; + // there is nothing to settle. + if amount_out <= 0 || amount_out >= sides.reserve_out { return Err(Error::InsufficientLiquidity); } + if amount_out < min_amount_out { + return Err(Error::SlippageExceeded); + } + Self::settle_swap(&e, to, pool, buy_a, sides, amount_in, amount_out); + Ok(amount_out) + } - let fee_scale = 10_000i128 - pool.fee_bps; - let numerator = reserve_in - .checked_mul(out) - .ok_or(Error::InsufficientLiquidity)? - .checked_mul(10_000) - .ok_or(Error::InsufficientLiquidity)?; - let denominator = (reserve_out - out) - .checked_mul(fee_scale) - .ok_or(Error::InsufficientLiquidity)?; - let amount_in = (numerator / denominator) + 1; + /// Quote the output for `amount_in` at the current reserves and fee. + /// + /// A quote is only valid for the state it was read from — derive + /// `min_amount_out` from it, do not assume the swap will match it. + pub fn get_amount_out(e: Env, buy_a: bool, amount_in: i128) -> Result { + if amount_in <= 0 { + return Err(Error::InvalidAmount); + } + let pool = load_pool(&e)?; + let sides = swap_sides(&pool, buy_a); + amount_out_for_in(amount_in, sides.reserve_in, sides.reserve_out, pool.fee_bps) + } - if amount_in > in_max { - return Err(Error::SlippageExceeded); + /// Quote the input needed to receive exactly `amount_out`. + pub fn get_amount_in(e: Env, buy_a: bool, amount_out: i128) -> Result { + if amount_out <= 0 { + return Err(Error::InvalidAmount); } + let pool = load_pool(&e)?; + let sides = swap_sides(&pool, buy_a); + amount_in_for_out( + amount_out, + sides.reserve_in, + sides.reserve_out, + pool.fee_bps, + ) + } + + /// Current `(reserve_a, reserve_b)`. + pub fn get_reserves(e: Env) -> Result<(i128, i128), Error> { + let pool = load_pool(&e)?; + Ok((pool.reserve_a, pool.reserve_b)) + } - soroban_sdk::token::Client::new(&e, &token_in).transfer( + /// Move the tokens, update reserves and emit the swap event. + /// + /// Called only after both amounts are final and every slippage bound has + /// been checked. + fn settle_swap( + e: &Env, + to: Address, + mut pool: PoolState, + buy_a: bool, + sides: SwapSides, + amount_in: i128, + amount_out: i128, + ) { + soroban_sdk::token::Client::new(e, &sides.token_in).transfer( &to, &e.current_contract_address(), &amount_in, ); - soroban_sdk::token::Client::new(&e, &token_out).transfer( + soroban_sdk::token::Client::new(e, &sides.token_out).transfer( &e.current_contract_address(), &to, - &out, + &amount_out, ); - if buy_a { - pool.reserve_a -= out; + pool.reserve_a -= amount_out; pool.reserve_b += amount_in; } else { pool.reserve_a += amount_in; - pool.reserve_b -= out; + pool.reserve_b -= amount_out; } - save_pool(&e, &pool); - + save_pool(e, &pool); e.events().publish( - (String::from_str(&e, "swap"), to.clone()), + (String::from_str(e, "swap"), to.clone()), SwapEvent { user: to, - token_in, - token_out, + token_in: sides.token_in, + token_out: sides.token_out, amount_in, - amount_out: out, + amount_out, }, ); - - Ok(amount_in) } pub fn withdraw(e: Env, to: Address, share_amount: i128) -> Result<(i128, i128), Error> { - guard_check_not_paused(&e, pause_op::WITHDRAW)?; - let mut pool = load_pool(&e)?; - let guard = load_or_init_guard_from_pool(&e, &pool); - check_paused(&pool, PauseType::WITHDRAW, &guard)?; - let mut pool = load_pool(&e)?; - let guard = load_or_init_guard_from_pool(&e, &pool); - check_paused(&pool, PauseType::WITHDRAW, &guard)?; - guard_check_not_paused(&e, pause_op::WITHDRAW)?; require_not_paused(&e, PauseType::WITHDRAW)?; to.require_auth(); - let mut pool = load_pool(&e)?; let user_key = DataKey::Balance(to.clone()); let current = e @@ -2468,47 +1111,31 @@ impl LiquidityPool { if share_amount > current { return Err(Error::InsufficientShares); } - if pool.total_shares <= 0 { return Err(Error::InsufficientLiquidity); } - let amount_a = share_amount * pool.reserve_a / pool.total_shares; let amount_b = share_amount * pool.reserve_b / pool.total_shares; - e.storage() .persistent() .set(&user_key, &(current - share_amount)); e.storage().persistent().extend_ttl(&user_key, 100, 100); - pool.total_shares -= share_amount; pool.reserve_a -= amount_a; pool.reserve_b -= amount_b; let token_a = pool.token_a.clone(); let token_b = pool.token_b.clone(); save_pool(&e, &pool); - - soroban_sdk::token::Client::new(&e, &token_a).transfer( - soroban_sdk::token::Client::new(&e, &pool.token_a).transfer( - soroban_sdk::token::Client::new(&e, &pool.token_a).transfer( - soroban_sdk::token::Client::new(&e, &token_a).transfer( - soroban_sdk::token::Client::new(&e, &pool.token_a).transfer( soroban_sdk::token::Client::new(&e, &token_a).transfer( &e.current_contract_address(), &to, &amount_a, ); - soroban_sdk::token::Client::new(&e, &token_b).transfer( - soroban_sdk::token::Client::new(&e, &pool.token_b).transfer( - soroban_sdk::token::Client::new(&e, &pool.token_b).transfer( - soroban_sdk::token::Client::new(&e, &token_b).transfer( - soroban_sdk::token::Client::new(&e, &pool.token_b).transfer( soroban_sdk::token::Client::new(&e, &token_b).transfer( &e.current_contract_address(), &to, &amount_b, ); - e.events().publish( (String::from_str(&e, "withdraw"), to.clone()), WithdrawEvent { @@ -2518,22 +1145,12 @@ impl LiquidityPool { amount_b, }, ); - Ok((amount_a, amount_b)) } pub fn burn(e: Env, from: Address, amount: i128) -> Result<(), Error> { - guard_check_not_paused(&e, pause_op::BURN)?; - let mut pool = load_pool(&e)?; - let guard = load_or_init_guard_from_pool(&e, &pool); - check_paused(&pool, PauseType::BURN, &guard)?; - let mut pool = load_pool(&e)?; - let guard = load_or_init_guard_from_pool(&e, &pool); - check_paused(&pool, PauseType::BURN, &guard)?; - guard_check_not_paused(&e, pause_op::BURN)?; require_not_paused(&e, PauseType::BURN)?; from.require_auth(); - let mut pool = load_pool(&e)?; let user_key = DataKey::Balance(from.clone()); let current = e @@ -2544,13 +1161,10 @@ impl LiquidityPool { if amount > current { return Err(Error::InsufficientShares); } - e.storage().persistent().set(&user_key, &(current - amount)); e.storage().persistent().extend_ttl(&user_key, 100, 100); - pool.total_shares -= amount; save_pool(&e, &pool); - e.events().publish( (String::from_str(&e, "burn"), from.clone()), BurnEvent { @@ -2558,10 +1172,11 @@ impl LiquidityPool { shares_burned: amount, }, ); - Ok(()) } + // ── Token interface (LP shares) ─────────────────────────────────────────── + pub fn name(e: Env) -> String { String::from_str(&e, "Liquidity Pool Share") } @@ -2586,13 +1201,10 @@ impl LiquidityPool { } pub fn transfer(e: Env, from: Address, to: Address, amount: i128) -> Result<(), Error> { - guard_check_not_paused(&e, pause_op::TRANSFER)?; require_not_paused(&e, PauseType::TRANSFER)?; from.require_auth(); - let from_key = DataKey::Balance(from.clone()); let to_key = DataKey::Balance(to); - let from_balance = e .storage() .persistent() @@ -2601,12 +1213,10 @@ impl LiquidityPool { if from_balance < amount { return Err(Error::InsufficientBalance); } - e.storage() .persistent() .set(&from_key, &(from_balance - amount)); e.storage().persistent().extend_ttl(&from_key, 100, 100); - let to_balance = e .storage() .persistent() @@ -2616,7 +1226,6 @@ impl LiquidityPool { .persistent() .set(&to_key, &(to_balance + amount)); e.storage().persistent().extend_ttl(&to_key, 100, 100); - Ok(()) } @@ -2628,7 +1237,6 @@ impl LiquidityPool { expiration_ledger: u32, ) -> Result<(), Error> { from.require_auth(); - let key = DataKey::Allowance(AllowanceDataKey { from: from.clone(), spender: spender.clone(), @@ -2641,7 +1249,6 @@ impl LiquidityPool { }, ); e.storage().persistent().extend_ttl(&key, 100, 100); - Ok(()) } @@ -2660,21 +1267,17 @@ impl LiquidityPool { to: Address, amount: i128, ) -> Result<(), Error> { - guard_check_not_paused(&e, pause_op::TRANSFER)?; require_not_paused(&e, PauseType::TRANSFER)?; spender.require_auth(); - let current_allowance = Self::allowance(e.clone(), from.clone(), spender.clone()); if current_allowance < amount { return Err(Error::InsufficientAllowance); } - let new_allowance = current_allowance - amount; let key = DataKey::Allowance(AllowanceDataKey { from: from.clone(), spender: spender.clone(), }); - if new_allowance > 0 { let current_val = e .storage() @@ -2692,154 +1295,10 @@ impl LiquidityPool { } else { e.storage().persistent().remove(&key); } - Self::transfer(e, from, to, amount) } } -impl EmergencyGuardTrait for LiquidityPool { - fn check_not_paused(env: &Env, operation: u32) -> Result<(), GuardError> { - let guard = load_guard(env); - if guard.pause_state & operation != 0 { - Err(GuardError::Paused) - } else { - Ok(()) - } - } - - fn get_pause_state(env: &Env) -> u32 { - load_guard(env).pause_state - } - - fn set_pause_state(env: &Env, operation: u32, paused: bool) -> Result<(), GuardError> { - let admin = primary_admin(env)?; - admin.require_auth(); - - let mut guard = load_guard(env); - if !guard.admins.iter().any(|a| a == admin) { - return Err(GuardError::Unauthorized); - } - - if paused { - guard.pause_state |= operation; - } else { - guard.pause_state &= !operation; - } - save_guard(env, &guard); - emit_pause_state_changed(env, &admin, operation, paused); - - Ok(()) - } - - fn emergency_pause_all(env: &Env, approvers: Vec
) -> Result<(), GuardError> { - check_multi_sig(env, &approvers)?; - let mut guard = load_guard(env); - guard.pause_state = u32::MAX; - save_guard(env, &guard); - emit_emergency_paused_all(env, &approvers); - Ok(()) - } - - fn resume_all(env: &Env, approvers: Vec
) -> Result<(), GuardError> { - check_multi_sig(env, &approvers)?; - let mut guard = load_guard(env); - guard.pause_state = 0; - save_guard(env, &guard); - emit_resumed_all(env, &approvers); - Ok(()) - } - - fn init_guard(env: &Env, admins: Vec
, threshold: u32) -> Result<(), GuardError> { - if threshold == 0 || threshold > admins.len() as u32 { - return Err(GuardError::InvalidThreshold); - } - - let first_admin = admins.get(0).ok_or(GuardError::NotInitialized)?; - save_guard( - env, - &GuardState { - pause_state: load_guard(env).pause_state, - admins: admins.clone(), - signature_threshold: threshold, - }, - ); - - if let Ok(mut pool) = load_pool(env) { - pool.admin = first_admin; - save_pool(env, &pool); - } - - emit_guard_initialized(env, &admins, threshold); - - Ok(()) - } - - fn add_admin(env: &Env, approvers: Vec
, new_admin: Address) -> Result<(), GuardError> { - check_multi_sig(env, &approvers)?; - - let mut guard = load_guard(env); - if !guard.admins.iter().any(|a| a == new_admin) { - guard.admins.push_back(new_admin.clone()); - save_guard(env, &guard); - emit_admin_added(env, &approvers, &new_admin); - } - - Ok(()) - } - - fn remove_admin(env: &Env, approvers: Vec
, admin: Address) -> Result<(), GuardError> { - check_multi_sig(env, &approvers)?; - - let guard = load_guard(env); - if guard.admins.len() as u32 <= guard.signature_threshold { - return Err(GuardError::InvalidThreshold); - } - - let mut new_admins = Vec::new(env); - let mut found = false; - for a in guard.admins.iter() { - if a != admin { - new_admins.push_back(a); - } else { - found = true; - } - } - - if !found { - return Err(GuardError::AdminNotFound); - } - - save_guard( - env, - &GuardState { - pause_state: guard.pause_state, - admins: new_admins, - signature_threshold: guard.signature_threshold, - }, - ); - emit_admin_removed(env, &approvers, &admin); - - if let Ok(mut pool) = load_pool(env) { - let updated_guard = load_guard(env); - if let Some(first_admin) = updated_guard.admins.get(0) { - pool.admin = first_admin; - save_pool(env, &pool); - } - } - - Ok(()) - } - - fn get_admins(env: &Env) -> Vec
{ - load_guard(env).admins - } - - fn get_threshold(env: &Env) -> u32 { - load_guard(env).signature_threshold - } - - fn is_admin(env: &Env, addr: &Address) -> bool { - load_guard(env).admins.iter().any(|a| a == *addr) #[contractimpl] impl EmergencyGuardTrait for LiquidityPool { fn check_not_paused(env: &Env, operation: u32) -> Result<(), GuardError> { @@ -2879,7 +1338,12 @@ impl EmergencyGuardTrait for LiquidityPool { } fn remove_admin(env: &Env, approvers: Vec
, admin: Address) -> Result<(), GuardError> { - DefaultEmergencyGuard::remove_admin(env, approvers, admin) + DefaultEmergencyGuard::remove_admin(env, approvers, admin.clone()) + .map_err(as_unauthorized)?; + // Losing the primary admin must hand the role to a surviving guard admin, + // otherwise `DataKey::Admin` keeps pointing at a removed address. + reassign_primary_admin_if(env, &admin, DefaultEmergencyGuard::get_admins(env).get(0)); + Ok(()) } fn rotate_admin( @@ -2888,7 +1352,10 @@ impl EmergencyGuardTrait for LiquidityPool { old_admin: Address, new_admin: Address, ) -> Result<(), GuardError> { - DefaultEmergencyGuard::rotate_admin(env, approvers, old_admin, new_admin) + DefaultEmergencyGuard::rotate_admin(env, approvers, old_admin.clone(), new_admin.clone()) + .map_err(as_unauthorized)?; + reassign_primary_admin_if(env, &old_admin, Some(new_admin)); + Ok(()) } fn get_admins(env: &Env) -> Vec
{ diff --git a/contracts/liquidity_pool/src/test.rs b/contracts/liquidity_pool/src/test.rs index 3d0fa27f..82ed8fdb 100644 --- a/contracts/liquidity_pool/src/test.rs +++ b/contracts/liquidity_pool/src/test.rs @@ -1,5 +1,4 @@ use super::*; -use emergency_guard::EmergencyGuardTrait; use soroban_sdk::{ contract, contractimpl, contracttype, testutils::{Address as _, Events, Ledger}, @@ -791,7 +790,7 @@ fn test_pause_and_unpause() { assert!(!client.guard_is_paused(&emergency_guard::PauseType::WITHDRAW)); // Unpause deposits only, leaving swaps paused. - client.guard_unpause(&admin, &emergency_guard::PauseType::DEPOSIT); + client.guard_pause(&admin, &emergency_guard::PauseType::DEPOSIT, &false); assert!(!client.guard_is_paused(&emergency_guard::PauseType::DEPOSIT)); assert!(client.guard_is_paused(&emergency_guard::PauseType::SWAP)); @@ -824,8 +823,8 @@ fn test_emergency_guard_trait_impl() { client.initialize(&admin1, &token_a, &token_b); - ::init_guard(&e, admins.clone(), 2).unwrap(); - // Re-initialize guard with 3 admins and threshold=2 via add_admin calls. + // `initialize` already seeds the guard with admin1 at threshold 1, so grow the + // admin set from there instead of calling `init_guard` a second time. client.add_admin(&soroban_sdk::vec![&e, admin1.clone()], &admin2); client.add_admin( &soroban_sdk::vec![&e, admin1.clone(), admin2.clone()], @@ -834,59 +833,20 @@ fn test_emergency_guard_trait_impl() { // Lower threshold by rotating to a 3-admin setup — just verify via get_admins/threshold. assert!(!client.get_guard_admins().is_empty()); - assert_eq!(::get_threshold(&e), 2); - assert_eq!( - ::get_admins(&e), - admins.clone() - ); - assert!(::is_admin( - &e, &admin1 - )); - assert!(::is_admin( - &e, &admin2 - )); - assert!(!::is_admin( - &e, - &Address::generate(&e) - )); - - ::set_pause_state(&e, PauseType::SWAP, true).unwrap(); - assert_eq!( - ::get_pause_state(&e), - PauseType::SWAP - ); - assert_eq!( - ::check_not_paused(&e, PauseType::SWAP), - Err(GuardError::Paused) - ); - assert_eq!( - ::check_not_paused(&e, PauseType::DEPOSIT), - Ok(()) - ); + // Pause SWAP via single admin. + client.guard_pause(&admin1, &PauseType::SWAP, &true); + assert!(client.guard_is_paused(&PauseType::SWAP)); + assert!(!client.guard_is_paused(&PauseType::DEPOSIT)); let approvers = soroban_sdk::vec![&e, admin1.clone(), admin2.clone()]; - ::emergency_pause_all(&e, approvers.clone()).unwrap(); - assert_eq!( - ::get_pause_state(&e), - u32::MAX - ); + // Emergency pause all via multi-sig. + client.emergency_pause_all(&approvers); + assert_eq!(client.get_pause_state(), u32::MAX); - ::resume_all(&e, approvers.clone()).unwrap(); - assert_eq!( - ::get_pause_state(&e), - 0 - ); + // Resume all via multi-sig. + client.resume_all(&approvers); + assert_eq!(client.get_pause_state(), 0); - ::add_admin(&e, approvers.clone(), admin3.clone()) - .unwrap(); - assert!(::is_admin( - &e, &admin3 - )); - - ::remove_admin(&e, approvers, admin3.clone()).unwrap(); - assert!(!::is_admin( - &e, &admin3 - )); // Add and remove admin3 (already added above, so remove it). client.remove_admin( &soroban_sdk::vec![&e, admin1.clone(), admin2.clone()], @@ -2151,3 +2111,278 @@ fn test_multiple_users_staking() { // User2 staked more, so should get more rewards (approximately 2x) assert!(rewards2 > rewards1); } + +// ── Slippage protection (issue #650) ───────────────────────────────────────── + +/// Pool seeded with `reserve` of each token, plus two traders each funded with +/// `trader_funds` of both tokens. Returns the pool client, the two traders, and +/// both token clients for balance assertions. +fn slippage_fixture<'a>( + e: &'a Env, + reserve: i128, + trader_funds: i128, +) -> ( + LiquidityPoolClient<'a>, + Address, + Address, + soroban_sdk::token::Client<'a>, + soroban_sdk::token::Client<'a>, +) { + let contract_id = e.register(LiquidityPool, ()); + let client = LiquidityPoolClient::new(e, &contract_id); + + let admin = Address::generate(e); + let token_a = e + .register_stellar_asset_contract_v2(admin.clone()) + .address(); + let token_b = e + .register_stellar_asset_contract_v2(admin.clone()) + .address(); + let token_a_admin = soroban_sdk::token::StellarAssetClient::new(e, &token_a); + let token_b_admin = soroban_sdk::token::StellarAssetClient::new(e, &token_b); + + let lp = Address::generate(e); + let trader = Address::generate(e); + let other = Address::generate(e); + + e.cost_estimate().budget().reset_unlimited(); + client.initialize(&admin, &token_a, &token_b); + + token_a_admin.mint(&lp, &reserve); + token_b_admin.mint(&lp, &reserve); + client.deposit(&lp, &reserve, &reserve); + + for account in [&trader, &other] { + token_a_admin.mint(account, &trader_funds); + token_b_admin.mint(account, &trader_funds); + } + + ( + client, + trader, + other, + soroban_sdk::token::Client::new(e, &token_a), + soroban_sdk::token::Client::new(e, &token_b), + ) +} + +#[test] +fn test_swap_exact_in_delivers_quoted_output() { + let e = Env::default(); + e.mock_all_auths(); + let (client, trader, _other, token_a, token_b) = slippage_fixture(&e, 1000, 1000); + + // 100 A in against 1000/1000 reserves at the default 30 bps fee. + let quote = client.get_amount_out(&false, &100); + assert_eq!(quote, 90); + + // Quoting min_amount_out at exactly the quote must still fill: the state the + // quote was read from is the state the swap executes against. + let received = client.swap_exact_in(&trader, &false, &100, "e); + assert_eq!(received, quote); + + // Exactly `amount_in` leaves the trader, exactly `received` arrives. + assert_eq!(token_a.balance(&trader), 1000 - 100); + assert_eq!(token_b.balance(&trader), 1000 + received); +} + +#[test] +fn test_swap_exact_in_rejects_output_below_minimum() { + let e = Env::default(); + e.mock_all_auths(); + let (client, trader, _other, token_a, token_b) = slippage_fixture(&e, 1000, 1000); + + let quote = client.get_amount_out(&false, &100); + + // Asking for one unit more than the pool can deliver must revert, not fill. + assert_eq!( + client.try_swap_exact_in(&trader, &false, &100, &(quote + 1)), + Err(Ok(Error::SlippageExceeded)) + ); + + // A rejected swap moves nothing. + assert_eq!(token_a.balance(&trader), 1000); + assert_eq!(token_b.balance(&trader), 1000); + assert_eq!(client.get_amount_out(&false, &100), quote); +} + +/// The sandwich this parameter exists to stop: a quote is taken, an attacker +/// front-runs to move the price, and the victim's swap must abort rather than +/// fill at the worse rate. +#[test] +fn test_swap_exact_in_min_amount_out_blocks_front_run() { + let e = Env::default(); + e.mock_all_auths(); + let (client, victim, attacker, _token_a, token_b) = slippage_fixture(&e, 1000, 1000); + + // Victim quotes, then the attacker moves the price ahead of them. + let quote = client.get_amount_out(&false, &100); + client.swap_exact_in(&attacker, &false, &500, &0); + + // The same input now buys materially less. + let degraded = client.get_amount_out(&false, &100); + assert!( + degraded < quote, + "front-run should degrade the quote: {degraded} vs {quote}" + ); + + // With min_amount_out pinned to the original quote, the victim is protected. + assert_eq!( + client.try_swap_exact_in(&victim, &false, &100, "e), + Err(Ok(Error::SlippageExceeded)) + ); + assert_eq!(token_b.balance(&victim), 1000); + + // A min the victim would actually have accepted still fills. + let received = client.swap_exact_in(&victim, &false, &100, °raded); + assert_eq!(received, degraded); +} + +#[test] +fn test_swap_exact_in_zero_minimum_accepts_any_fill() { + let e = Env::default(); + e.mock_all_auths(); + let (client, trader, _other, _token_a, token_b) = slippage_fixture(&e, 1000, 1000); + + // min_amount_out = 0 opts out of the check entirely. + let received = client.swap_exact_in(&trader, &false, &100, &0); + assert!(received > 0); + assert_eq!(token_b.balance(&trader), 1000 + received); +} + +#[test] +fn test_swap_exact_in_buy_a_direction() { + let e = Env::default(); + e.mock_all_auths(); + let (client, trader, _other, token_a, token_b) = slippage_fixture(&e, 1000, 1000); + + // buy_a: token B goes in, token A comes out. + let quote = client.get_amount_out(&true, &100); + let received = client.swap_exact_in(&trader, &true, &100, "e); + + assert_eq!(received, quote); + assert_eq!(token_b.balance(&trader), 1000 - 100); + assert_eq!(token_a.balance(&trader), 1000 + received); + + // Slippage is enforced in this direction too. + assert_eq!( + client.try_swap_exact_in(&trader, &true, &100, &(quote * 2)), + Err(Ok(Error::SlippageExceeded)) + ); +} + +#[test] +fn test_swap_exact_in_rejects_invalid_amounts() { + let e = Env::default(); + e.mock_all_auths(); + let (client, trader, _other, _token_a, _token_b) = slippage_fixture(&e, 1000, 1000); + + assert_eq!( + client.try_swap_exact_in(&trader, &false, &0, &0), + Err(Ok(Error::InvalidAmount)) + ); + assert_eq!( + client.try_swap_exact_in(&trader, &false, &-100, &0), + Err(Ok(Error::InvalidAmount)) + ); + // A negative floor would silently disable the check, so reject it. + assert_eq!( + client.try_swap_exact_in(&trader, &false, &100, &-1), + Err(Ok(Error::InvalidAmount)) + ); + assert_eq!( + client.try_get_amount_out(&false, &0), + Err(Ok(Error::InvalidAmount)) + ); + assert_eq!( + client.try_get_amount_in(&false, &0), + Err(Ok(Error::InvalidAmount)) + ); +} + +#[test] +fn test_swap_exact_in_input_too_small_to_fill() { + let e = Env::default(); + e.mock_all_auths(); + let (client, trader, _other, _token_a, _token_b) = slippage_fixture(&e, 1_000_000, 1000); + + // 1 unit against a 1M/1M pool rounds down to zero output. Settling that would + // take the input and hand back nothing. + assert_eq!(client.get_amount_out(&false, &1), 0); + assert_eq!( + client.try_swap_exact_in(&trader, &false, &1, &0), + Err(Ok(Error::InsufficientLiquidity)) + ); +} + +#[test] +fn test_swap_exact_in_respects_swap_pause() { + let e = Env::default(); + e.mock_all_auths(); + let (client, trader, _other, _token_a, _token_b) = slippage_fixture(&e, 1000, 1000); + + client.pause_swaps(); + assert_eq!( + client.try_swap_exact_in(&trader, &false, &100, &0), + Err(Ok(Error::Paused)) + ); + + client.resume_swaps(); + assert!(client.swap_exact_in(&trader, &false, &100, &0) > 0); +} + +#[test] +fn test_swap_exact_in_preserves_constant_product() { + let e = Env::default(); + e.mock_all_auths(); + let (client, trader, _other, _token_a, _token_b) = slippage_fixture(&e, 1000, 1000); + + let before = client.get_reserves(); + let product_before = before.0 * before.1; + + client.swap_exact_in(&trader, &false, &100, &0); + + let after = client.get_reserves(); + // Fees plus truncation in the pool's favour mean the invariant only grows. + assert!( + after.0 * after.1 >= product_before, + "invariant weakened: {} -> {}", + product_before, + after.0 * after.1 + ); +} + +#[test] +fn test_swap_exact_in_charges_the_pool_fee() { + let e = Env::default(); + e.mock_all_auths(); + let (client, _trader, _other, _token_a, _token_b) = slippage_fixture(&e, 1_000_000, 1000); + + client.set_fee(&0); + let without_fee = client.get_amount_out(&false, &100_000); + + client.set_fee(&MAX_FEE_BPS); + let with_fee = client.get_amount_out(&false, &100_000); + + assert!( + with_fee < without_fee, + "fee should reduce output: {with_fee} vs {without_fee}" + ); +} + +#[test] +fn test_amount_in_quote_round_trips_against_amount_out() { + let e = Env::default(); + e.mock_all_auths(); + let (client, _trader, _other, _token_a, _token_b) = slippage_fixture(&e, 1000, 1000); + + let quoted_out = client.get_amount_out(&false, &100); + let quoted_in = client.get_amount_in(&false, "ed_out); + + // Rounding always favours the pool, so re-quoting never asks for less than + // the original input. + assert!( + quoted_in >= 100, + "round trip under-charged: {quoted_in} for {quoted_out} out" + ); +} diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.1.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.1.json index cdec2602..8381bf47 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.1.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.1.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 227201763049792127 - "lo": 862174741842485244 + "lo": 574283554300580658 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 701231736286785486 - "lo": 582321149943856551 + "lo": 196946616469181618 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 227201763049792127 - "lo": 862174741842485244 + "lo": 574283554300580658 } }, { "i128": { "hi": 0, - "lo": 701231736286785486 - "lo": 582321149943856551 + "lo": 196946616469181618 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 227201763049792127 - "lo": 862174741842485244 + "lo": 574283554300580658 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 701231736286785486 - "lo": 582321149943856551 + "lo": 196946616469181618 } } ] @@ -228,6 +222,65 @@ } ] ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "function_name": "swap", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "bool": true + }, + { + "i128": { + "hi": 0, + "lo": 64696541483122937 + } + }, + { + "i128": { + "hi": 2, + "lo": 13106511852580896768 + } + } + ] + } + }, + "sub_invocations": [ + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "transfer", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "i128": { + "hi": 0, + "lo": 25079338634384609 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + } + ] + ], + [], [] ], "ledger": { @@ -532,8 +585,7 @@ "val": { "i128": { "hi": 0, - "lo": 399150456332977973 - "lo": 708563749511830207 + "lo": 336308196322056496 } } } @@ -582,7 +634,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +650,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +709,7 @@ "val": { "i128": { "hi": 0, - "lo": 227201763049792127 - "lo": 862174741842485244 + "lo": 509587012817457721 } } }, @@ -665,8 +720,7 @@ "val": { "i128": { "hi": 0, - "lo": 701231736286785486 - "lo": 582321149943856551 + "lo": 222025955103566227 } } }, @@ -693,13 +747,24 @@ "val": { "i128": { "hi": 0, - "lo": 399150456332977973 - "lo": 708563749511830207 + "lo": 336308196322056496 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -744,6 +809,39 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], [ { "contract_data": { @@ -788,8 +886,7 @@ "val": { "i128": { "hi": 0, - "lo": 227201763049792127 - "lo": 862174741842485244 + "lo": 509587012817457721 } } }, @@ -935,7 +1032,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 13171208394064019705 } } }, @@ -1120,8 +1217,7 @@ "val": { "i128": { "hi": 0, - "lo": 701231736286785486 - "lo": 582321149943856551 + "lo": 222025955103566227 } } }, @@ -1267,7 +1363,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 13081432513946512159 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.10.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.10.json index b21cf2a4..6888db52 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.10.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.10.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 490880394077269050 - "lo": 945817843751777162 + "lo": 384946070537275228 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 44024532909750699 - "lo": 594546417286373173 + "lo": 165516277376996010 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 490880394077269050 - "lo": 945817843751777162 + "lo": 384946070537275228 } }, { "i128": { "hi": 0, - "lo": 44024532909750699 - "lo": 594546417286373173 + "lo": 165516277376996010 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 490880394077269050 - "lo": 945817843751777162 + "lo": 384946070537275228 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 44024532909750699 - "lo": 594546417286373173 + "lo": 165516277376996010 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 147006054514112184 - "lo": 749888398635518167 + "lo": 252417987842055975 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 490880394077269050 - "lo": 945817843751777162 + "lo": 384946070537275228 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 44024532909750699 - "lo": 594546417286373173 + "lo": 165516277376996010 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 147006054514112184 - "lo": 749888398635518167 + "lo": 252417987842055975 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 490880394077269050 - "lo": 945817843751777162 + "lo": 384946070537275228 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 44024532909750699 - "lo": 594546417286373173 + "lo": 165516277376996010 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.100.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.100.json index 85c556f7..f77d3924 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.100.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.100.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 209532800553219464 - "lo": 364687252977382225 + "lo": 853088270060163184 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 799808193460936046 - "lo": 56825860335815274 + "lo": 450400142346715445 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 209532800553219464 - "lo": 364687252977382225 + "lo": 853088270060163184 } }, { "i128": { "hi": 0, - "lo": 799808193460936046 - "lo": 56825860335815274 + "lo": 450400142346715445 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 209532800553219464 - "lo": 364687252977382225 + "lo": 853088270060163184 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 799808193460936046 - "lo": 56825860335815274 + "lo": 450400142346715445 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": true - }, - { - "i128": { - "hi": 0, - "lo": 176296745053670394 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 53337927694412314 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 409372752734327789 - "lo": 143957170380446333 + "lo": 619863757828614082 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 209532800553219464 - "lo": 188390507923711831 + "lo": 853088270060163184 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 799808193460936046 - "lo": 110163788030227588 + "lo": 450400142346715445 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 409372752734327789 - "lo": 143957170380446333 + "lo": 619863757828614082 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -880,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 209532800553219464 - "lo": 188390507923711831 + "lo": 853088270060163184 } } }, @@ -1027,7 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 13282808597634567162 + "lo": 13106511852580896768 } } }, @@ -1212,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 799808193460936046 - "lo": 110163788030227588 + "lo": 450400142346715445 } } }, @@ -1359,7 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 13053173924886484454 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.101.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.101.json index 9a3943c3..02b01c93 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.101.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.101.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 556740970112378412 - "lo": 340053627807382821 + "lo": 330970195028128001 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 513737948790088378 - "lo": 195961282752272310 + "lo": 400229207189626598 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 556740970112378412 - "lo": 340053627807382821 + "lo": 330970195028128001 } }, { "i128": { "hi": 0, - "lo": 513737948790088378 - "lo": 195961282752272310 + "lo": 400229207189626598 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 556740970112378412 - "lo": 340053627807382821 + "lo": 330970195028128001 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 513737948790088378 - "lo": 195961282752272310 + "lo": 400229207189626598 } } ] @@ -228,6 +222,65 @@ } ] ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "function_name": "swap", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "bool": true + }, + { + "i128": { + "hi": 0, + "lo": 19407783856519481 + } + }, + { + "i128": { + "hi": 2, + "lo": 13106511852580896768 + } + } + ] + } + }, + "sub_invocations": [ + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "transfer", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "i128": { + "hi": 0, + "lo": 25006016358509120 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + } + ] + ], + [], [] ], "ledger": { @@ -532,8 +585,7 @@ "val": { "i128": { "hi": 0, - "lo": 534807408319048236 - "lo": 258142102551479414 + "lo": 363955957169962756 } } } @@ -582,7 +634,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +650,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +709,7 @@ "val": { "i128": { "hi": 0, - "lo": 556740970112378412 - "lo": 340053627807382821 + "lo": 311562411171608520 } } }, @@ -665,8 +720,7 @@ "val": { "i128": { "hi": 0, - "lo": 513737948790088378 - "lo": 195961282752272310 + "lo": 425235223548135718 } } }, @@ -693,13 +747,24 @@ "val": { "i128": { "hi": 0, - "lo": 534807408319048236 - "lo": 258142102551479414 + "lo": 363955957169962756 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -744,6 +809,39 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], [ { "contract_data": { @@ -788,8 +886,7 @@ "val": { "i128": { "hi": 0, - "lo": 556740970112378412 - "lo": 340053627807382821 + "lo": 311562411171608520 } } }, @@ -935,7 +1032,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 13125919636437416249 } } }, @@ -1120,8 +1217,7 @@ "val": { "i128": { "hi": 0, - "lo": 513737948790088378 - "lo": 195961282752272310 + "lo": 425235223548135718 } } }, @@ -1267,7 +1363,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 13081505836222387648 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.102.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.102.json index b6d8f531..2ced9836 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.102.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.102.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 147392807783660326 - "lo": 666134639988317162 + "lo": 217850551947694064 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 47962324466215078 - "lo": 941790579524070680 + "lo": 999368001382965870 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 147392807783660326 - "lo": 666134639988317162 + "lo": 217850551947694064 } }, { "i128": { "hi": 0, - "lo": 47962324466215078 - "lo": 941790579524070680 + "lo": 999368001382965870 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 147392807783660326 - "lo": 666134639988317162 + "lo": 217850551947694064 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 47962324466215078 - "lo": 941790579524070680 + "lo": 999368001382965870 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": true - }, - { - "i128": { - "hi": 0, - "lo": 146103453277170470 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 5451213639812438409 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 84079139332573973 - "lo": 792060179933100416 + "lo": 466597118186710406 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 1289354506489856 - "lo": 666134639988317162 + "lo": 217850551947694064 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 5499175964278653487 - "lo": 941790579524070680 + "lo": 999368001382965870 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 84079139332573973 - "lo": 792060179933100416 + "lo": 466597118186710406 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -880,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 1289354506489856 - "lo": 666134639988317162 + "lo": 217850551947694064 } } }, @@ -1027,7 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 13252615305858067238 + "lo": 13106511852580896768 } } }, @@ -1212,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 5499175964278653487 - "lo": 941790579524070680 + "lo": 999368001382965870 } } }, @@ -1359,7 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 7655298212768458359 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.103.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.103.json index 3793bc36..8024066d 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.103.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.103.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 389210748898414667 - "lo": 497085765763744279 + "lo": 186680396003161083 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 34342140635931593 - "lo": 736813725613401319 + "lo": 208953456734397047 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 389210748898414667 - "lo": 497085765763744279 + "lo": 186680396003161083 } }, { "i128": { "hi": 0, - "lo": 34342140635931593 - "lo": 736813725613401319 + "lo": 208953456734397047 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 389210748898414667 - "lo": 497085765763744279 + "lo": 186680396003161083 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 34342140635931593 - "lo": 736813725613401319 + "lo": 208953456734397047 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": true - }, - { - "i128": { - "hi": 0, - "lo": 4510703695344704 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 403881784346066 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 115612846499364480 - "lo": 605193865651144019 + "lo": 197503200099154410 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 384700045203069963 - "lo": 497085765763744279 + "lo": 186680396003161083 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 34746022420277659 - "lo": 736813725613401319 + "lo": 208953456734397047 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 115612846499364480 - "lo": 605193865651144019 + "lo": 197503200099154410 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -880,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 384700045203069963 - "lo": 497085765763744279 + "lo": 186680396003161083 } } }, @@ -1027,7 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 13111022556276241472 + "lo": 13106511852580896768 } } }, @@ -1212,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 34746022420277659 - "lo": 736813725613401319 + "lo": 208953456734397047 } } }, @@ -1359,7 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106107970796550702 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.104.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.104.json index 5ee47cd4..594fefd4 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.104.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.104.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 482251789509398226 - "lo": 869538981839206081 + "lo": 359602487485002008 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 781246883723014054 - "lo": 941566027662990097 + "lo": 801198056383354352 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 482251789509398226 - "lo": 869538981839206081 + "lo": 359602487485002008 } }, { "i128": { "hi": 0, - "lo": 781246883723014054 - "lo": 941566027662990097 + "lo": 801198056383354352 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 482251789509398226 - "lo": 869538981839206081 + "lo": 359602487485002008 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 781246883723014054 - "lo": 941566027662990097 + "lo": 801198056383354352 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 613805920241947719 - "lo": 904836098433557278 + "lo": 536761412588128503 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 482251789509398226 - "lo": 869538981839206081 + "lo": 359602487485002008 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 781246883723014054 - "lo": 941566027662990097 + "lo": 801198056383354352 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 613805920241947719 - "lo": 904836098433557278 + "lo": 536761412588128503 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 482251789509398226 - "lo": 869538981839206081 + "lo": 359602487485002008 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 781246883723014054 - "lo": 941566027662990097 + "lo": 801198056383354352 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.105.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.105.json index 8fe1bb77..2109184f 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.105.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.105.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 567667052422565932 - "lo": 58546748970354206 + "lo": 760316580577371757 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 393758262939835915 - "lo": 211985625921494576 + "lo": 35917509147366165 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 567667052422565932 - "lo": 58546748970354206 + "lo": 760316580577371757 } }, { "i128": { "hi": 0, - "lo": 393758262939835915 - "lo": 211985625921494576 + "lo": 35917509147366165 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 567667052422565932 - "lo": 58546748970354206 + "lo": 760316580577371757 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 393758262939835915 - "lo": 211985625921494576 + "lo": 35917509147366165 } } ] @@ -246,7 +240,7 @@ { "i128": { "hi": 0, - "lo": 42676203747857424 + "lo": 141458071922266457 } }, { @@ -274,7 +268,7 @@ { "i128": { "hi": 0, - "lo": 571748703475133343 + "lo": 8234693149937601 } } ] @@ -591,8 +585,7 @@ "val": { "i128": { "hi": 0, - "lo": 472782817464939534 - "lo": 111404978462136755 + "lo": 165253374361257488 } } } @@ -641,7 +634,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +650,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +709,7 @@ "val": { "i128": { "hi": 0, - "lo": 567667052422565932 - "lo": 15870545222496782 + "lo": 618858508655105300 } } }, @@ -724,8 +720,7 @@ "val": { "i128": { "hi": 0, - "lo": 393758262939835915 - "lo": 783734329396627919 + "lo": 44152202297303766 } } }, @@ -752,13 +747,24 @@ "val": { "i128": { "hi": 0, - "lo": 472782817464939534 - "lo": 111404978462136755 + "lo": 165253374361257488 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -880,8 +886,7 @@ "val": { "i128": { "hi": 0, - "lo": 567667052422565932 - "lo": 15870545222496782 + "lo": 618858508655105300 } } }, @@ -1027,7 +1032,7 @@ "val": { "i128": { "hi": 2, - "lo": 13149188056328754192 + "lo": 13247969924503163225 } } }, @@ -1212,8 +1217,7 @@ "val": { "i128": { "hi": 0, - "lo": 393758262939835915 - "lo": 783734329396627919 + "lo": 44152202297303766 } } }, @@ -1359,7 +1363,7 @@ "val": { "i128": { "hi": 2, - "lo": 12534763149105763425 + "lo": 13098277159430959167 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.106.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.106.json index 5a9a95b4..011b9ac6 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.106.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.106.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 701576567691568712 - "lo": 291613690856527160 + "lo": 567103627312261639 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 334100289194770330 - "lo": 178339045048728031 + "lo": 149707077071564440 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 701576567691568712 - "lo": 291613690856527160 + "lo": 567103627312261639 } }, { "i128": { "hi": 0, - "lo": 334100289194770330 - "lo": 178339045048728031 + "lo": 149707077071564440 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 701576567691568712 - "lo": 291613690856527160 + "lo": 567103627312261639 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 334100289194770330 - "lo": 178339045048728031 + "lo": 149707077071564440 } } ] @@ -228,67 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": true - }, - { - "i128": { - "hi": 0, - "lo": 1869468167018271 - "lo": 41850658757850838 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 895330722606641 - "lo": 29972669088645285 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -593,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 484145571246941666 - "lo": 228048475439955631 + "lo": 291375061461341453 } } } @@ -643,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -659,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -714,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 699707099524550441 - "lo": 249763032098676322 + "lo": 567103627312261639 } } }, @@ -726,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 334995619917376971 - "lo": 208311714137373316 + "lo": 149707077071564440 } } }, @@ -754,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 484145571246941666 - "lo": 228048475439955631 + "lo": 291375061461341453 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -805,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -882,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 699707099524550441 - "lo": 249763032098676322 + "lo": 567103627312261639 } } }, @@ -1029,8 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 13108381320747915039 - "lo": 13148362511338747606 + "lo": 13106511852580896768 } } }, @@ -1215,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 334995619917376971 - "lo": 208311714137373316 + "lo": 149707077071564440 } } }, @@ -1362,8 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 13105616521858290127 - "lo": 13076539183492251483 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.107.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.107.json index c6fbd624..4d4d652f 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.107.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.107.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 978622054852692223 - "lo": 385205013265243640 + "lo": 533511137837018137 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 121493995474033428 - "lo": 13114626255544012 + "lo": 30218770296300099 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 978622054852692223 - "lo": 385205013265243640 + "lo": 533511137837018137 } }, { "i128": { "hi": 0, - "lo": 121493995474033428 - "lo": 13114626255544012 + "lo": 30218770296300099 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 978622054852692223 - "lo": 385205013265243640 + "lo": 533511137837018137 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 121493995474033428 - "lo": 13114626255544012 + "lo": 30218770296300099 } } ] @@ -241,12 +235,12 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" }, { - "bool": false + "bool": true }, { "i128": { "hi": 0, - "lo": 6604550767990181 + "lo": 280192115348317036 } }, { @@ -262,7 +256,7 @@ { "function": { "contract_fn": { - "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", "function_name": "transfer", "args": [ { @@ -274,7 +268,7 @@ { "i128": { "hi": 0, - "lo": 391971084686177175 + "lo": 33525073267210899 } } ] @@ -591,8 +585,7 @@ "val": { "i128": { "hi": 0, - "lo": 344814012915748947 - "lo": 71076154797059355 + "lo": 126972636913685271 } } } @@ -641,7 +634,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +650,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +709,7 @@ "val": { "i128": { "hi": 0, - "lo": 978622054852692223 - "lo": 777176097951420815 + "lo": 253319022488701101 } } }, @@ -724,8 +720,7 @@ "val": { "i128": { "hi": 0, - "lo": 121493995474033428 - "lo": 6510075487553831 + "lo": 63743843563510998 } } }, @@ -752,13 +747,24 @@ "val": { "i128": { "hi": 0, - "lo": 344814012915748947 - "lo": 71076154797059355 + "lo": 126972636913685271 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -880,8 +886,7 @@ "val": { "i128": { "hi": 0, - "lo": 978622054852692223 - "lo": 777176097951420815 + "lo": 253319022488701101 } } }, @@ -1027,7 +1032,7 @@ "val": { "i128": { "hi": 2, - "lo": 12714540767894719593 + "lo": 13386703967929213804 } } }, @@ -1212,8 +1217,7 @@ "val": { "i128": { "hi": 0, - "lo": 121493995474033428 - "lo": 6510075487553831 + "lo": 63743843563510998 } } }, @@ -1359,7 +1363,7 @@ "val": { "i128": { "hi": 2, - "lo": 13113116403348886949 + "lo": 13072986779313685869 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.108.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.108.json index ac574815..a2238086 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.108.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.108.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 855029632532525914 - "lo": 864534213590780212 + "lo": 368608756555229369 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 321770860732785344 - "lo": 366122672821015840 + "lo": 739806197625525054 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 855029632532525914 - "lo": 864534213590780212 + "lo": 368608756555229369 } }, { "i128": { "hi": 0, - "lo": 321770860732785344 - "lo": 366122672821015840 + "lo": 739806197625525054 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 855029632532525914 - "lo": 864534213590780212 + "lo": 368608756555229369 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 321770860732785344 - "lo": 366122672821015840 + "lo": 739806197625525054 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 524522278661286249 - "lo": 562606058468153584 + "lo": 522205938877180017 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 855029632532525914 - "lo": 864534213590780212 + "lo": 368608756555229369 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 321770860732785344 - "lo": 366122672821015840 + "lo": 739806197625525054 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 524522278661286249 - "lo": 562606058468153584 + "lo": 522205938877180017 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 855029632532525914 - "lo": 864534213590780212 + "lo": 368608756555229369 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 321770860732785344 - "lo": 366122672821015840 + "lo": 739806197625525054 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.109.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.109.json index 4840dc4d..ee1f060e 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.109.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.109.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 740966360524278960 - "lo": 997440101295267292 + "lo": 177402078705852247 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 333858187343061905 - "lo": 319825327212113038 + "lo": 579505160483698278 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 740966360524278960 - "lo": 997440101295267292 + "lo": 177402078705852247 } }, { "i128": { "hi": 0, - "lo": 333858187343061905 - "lo": 319825327212113038 + "lo": 579505160483698278 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 740966360524278960 - "lo": 997440101295267292 + "lo": 177402078705852247 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 333858187343061905 - "lo": 319825327212113038 + "lo": 579505160483698278 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 497370773173114258 - "lo": 564806698589209399 + "lo": 320632843125242831 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 740966360524278960 - "lo": 997440101295267292 + "lo": 177402078705852247 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 333858187343061905 - "lo": 319825327212113038 + "lo": 579505160483698278 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 497370773173114258 - "lo": 564806698589209399 + "lo": 320632843125242831 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 740966360524278960 - "lo": 997440101295267292 + "lo": 177402078705852247 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 333858187343061905 - "lo": 319825327212113038 + "lo": 579505160483698278 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.11.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.11.json index d1575020..87ae7553 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.11.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.11.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 463018173309783650 - "lo": 870647116784370441 + "lo": 297516230398529179 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 345942599661010281 - "lo": 273447300947282637 + "lo": 564378354428211323 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 463018173309783650 - "lo": 870647116784370441 + "lo": 297516230398529179 } }, { "i128": { "hi": 0, - "lo": 345942599661010281 - "lo": 273447300947282637 + "lo": 564378354428211323 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 463018173309783650 - "lo": 870647116784370441 + "lo": 297516230398529179 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 345942599661010281 - "lo": 273447300947282637 + "lo": 564378354428211323 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 400222076558850962 - "lo": 487930429633385005 + "lo": 409770326558679064 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 463018173309783650 - "lo": 870647116784370441 + "lo": 297516230398529179 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 345942599661010281 - "lo": 273447300947282637 + "lo": 564378354428211323 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 400222076558850962 - "lo": 487930429633385005 + "lo": 409770326558679064 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 463018173309783650 - "lo": 870647116784370441 + "lo": 297516230398529179 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 345942599661010281 - "lo": 273447300947282637 + "lo": 564378354428211323 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.110.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.110.json index 6e12cf2b..7a60b9f2 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.110.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.110.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 346023536845143614 - "lo": 613991750298819422 + "lo": 407425550790315296 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 658839633305759850 - "lo": 154071094737541564 + "lo": 952944545925232719 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 346023536845143614 - "lo": 613991750298819422 + "lo": 407425550790315296 } }, { "i128": { "hi": 0, - "lo": 658839633305759850 - "lo": 154071094737541564 + "lo": 952944545925232719 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 346023536845143614 - "lo": 613991750298819422 + "lo": 407425550790315296 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 658839633305759850 - "lo": 154071094737541564 + "lo": 952944545925232719 } } ] @@ -228,6 +222,65 @@ } ] ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "function_name": "swap", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "bool": false + }, + { + "i128": { + "hi": 0, + "lo": 29036262064801464 + } + }, + { + "i128": { + "hi": 2, + "lo": 13106511852580896768 + } + } + ] + } + }, + "sub_invocations": [ + { + "function": { + "contract_fn": { + "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", + "function_name": "transfer", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "i128": { + "hi": 0, + "lo": 12842954661763691 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + } + ] + ], + [], [] ], "ledger": { @@ -532,8 +585,7 @@ "val": { "i128": { "hi": 0, - "lo": 477466250252535128 - "lo": 307568498270480182 + "lo": 623100278042158195 } } } @@ -582,7 +634,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +650,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +709,7 @@ "val": { "i128": { "hi": 0, - "lo": 346023536845143614 - "lo": 613991750298819422 + "lo": 420268505452078987 } } }, @@ -665,8 +720,7 @@ "val": { "i128": { "hi": 0, - "lo": 658839633305759850 - "lo": 154071094737541564 + "lo": 923908283860431255 } } }, @@ -693,13 +747,24 @@ "val": { "i128": { "hi": 0, - "lo": 477466250252535128 - "lo": 307568498270480182 + "lo": 623100278042158195 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -744,6 +809,39 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], [ { "contract_data": { @@ -788,8 +886,7 @@ "val": { "i128": { "hi": 0, - "lo": 346023536845143614 - "lo": 613991750298819422 + "lo": 420268505452078987 } } }, @@ -935,7 +1032,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 13093668897919133077 } } }, @@ -1120,8 +1217,7 @@ "val": { "i128": { "hi": 0, - "lo": 658839633305759850 - "lo": 154071094737541564 + "lo": 923908283860431255 } } }, @@ -1267,7 +1363,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 13135548114645698232 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.111.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.111.json index 29de2fd2..17aa981e 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.111.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.111.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 322869058464588013 - "lo": 444654591745093506 + "lo": 766156741527013997 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 41060513336510961 - "lo": 211571273201835900 + "lo": 158463600985117262 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 322869058464588013 - "lo": 444654591745093506 + "lo": 766156741527013997 } }, { "i128": { "hi": 0, - "lo": 41060513336510961 - "lo": 211571273201835900 + "lo": 158463600985117262 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 322869058464588013 - "lo": 444654591745093506 + "lo": 766156741527013997 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 41060513336510961 - "lo": 211571273201835900 + "lo": 158463600985117262 } } ] @@ -246,7 +240,7 @@ { "i128": { "hi": 0, - "lo": 5447966832499317 + "lo": 9931857647105699 } }, { @@ -274,7 +268,7 @@ { "i128": { "hi": 0, - "lo": 49540763387323182 + "lo": 51384682425983825 } } ] @@ -591,8 +585,7 @@ "val": { "i128": { "hi": 0, - "lo": 115139781487685451 - "lo": 306718336769342801 + "lo": 348436444967219763 } } } @@ -641,7 +634,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +650,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +709,7 @@ "val": { "i128": { "hi": 0, - "lo": 372409821851911195 - "lo": 444654591745093506 + "lo": 817541423952997822 } } }, @@ -724,8 +720,7 @@ "val": { "i128": { "hi": 0, - "lo": 35612546504011644 - "lo": 211571273201835900 + "lo": 148531743338011563 } } }, @@ -752,13 +747,24 @@ "val": { "i128": { "hi": 0, - "lo": 115139781487685451 - "lo": 306718336769342801 + "lo": 348436444967219763 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -880,8 +886,7 @@ "val": { "i128": { "hi": 0, - "lo": 372409821851911195 - "lo": 444654591745093506 + "lo": 817541423952997822 } } }, @@ -1027,7 +1032,7 @@ "val": { "i128": { "hi": 2, - "lo": 13056971089193573586 + "lo": 13055127170154912943 } } }, @@ -1212,8 +1217,7 @@ "val": { "i128": { "hi": 0, - "lo": 35612546504011644 - "lo": 211571273201835900 + "lo": 148531743338011563 } } }, @@ -1359,7 +1363,7 @@ "val": { "i128": { "hi": 2, - "lo": 13111959819413396085 + "lo": 13116443710228002467 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.112.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.112.json index 2e246df4..68a04d16 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.112.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.112.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 390813026385844347 - "lo": 587944496756530712 + "lo": 840690422522490690 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 574966777072102677 - "lo": 27936390320194619 + "lo": 505991232683932557 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 390813026385844347 - "lo": 587944496756530712 + "lo": 840690422522490690 } }, { "i128": { "hi": 0, - "lo": 574966777072102677 - "lo": 27936390320194619 + "lo": 505991232683932557 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 390813026385844347 - "lo": 587944496756530712 + "lo": 840690422522490690 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 574966777072102677 - "lo": 27936390320194619 + "lo": 505991232683932557 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": true - }, - { - "i128": { - "hi": 0, - "lo": 406992427362350346 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 63022830748870716 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 474030068897389196 - "lo": 128160239341227984 + "lo": 652213142460140220 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 390813026385844347 - "lo": 180952069394180366 + "lo": 840690422522490690 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 574966777072102677 - "lo": 90959221069065335 + "lo": 505991232683932557 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 474030068897389196 - "lo": 128160239341227984 + "lo": 652213142460140220 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -847,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 390813026385844347 - "lo": 180952069394180366 + "lo": 840690422522490690 } } }, @@ -995,7 +941,6 @@ "i128": { "hi": 2, "lo": 13106511852580896768 - "lo": 13513504279943247114 } } }, @@ -1180,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 574966777072102677 - "lo": 90959221069065335 + "lo": 505991232683932557 } } }, @@ -1328,7 +1272,6 @@ "i128": { "hi": 2, "lo": 13106511852580896768 - "lo": 13043489021832026052 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.113.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.113.json index 1dfec0e7..5a75eb3c 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.113.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.113.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 400061755265920475 - "lo": 245868780550626762 + "lo": 482266928984692726 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 347789996431159659 - "lo": 744734186266251926 + "lo": 825813353426992886 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 400061755265920475 - "lo": 245868780550626762 + "lo": 482266928984692726 } }, { "i128": { "hi": 0, - "lo": 347789996431159659 - "lo": 744734186266251926 + "lo": 825813353426992886 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 400061755265920475 - "lo": 245868780550626762 + "lo": 482266928984692726 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 347789996431159659 - "lo": 744734186266251926 + "lo": 825813353426992886 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": true - }, - { - "i128": { - "hi": 0, - "lo": 10791606763252458 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 9670678348568142 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 373011362341923776 - "lo": 427909904315904669 + "lo": 631080398896833535 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 389270148502668017 - "lo": 245868780550626762 + "lo": 482266928984692726 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 357460674779727801 - "lo": 744734186266251926 + "lo": 825813353426992886 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 373011362341923776 - "lo": 427909904315904669 + "lo": 631080398896833535 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -880,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 389270148502668017 - "lo": 245868780550626762 + "lo": 482266928984692726 } } }, @@ -1027,7 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 13117303459344149226 + "lo": 13106511852580896768 } } }, @@ -1212,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 357460674779727801 - "lo": 744734186266251926 + "lo": 825813353426992886 } } }, @@ -1359,7 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 13096841174232328626 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.114.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.114.json index d51df85a..136f49df 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.114.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.114.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 407134272598059218 - "lo": 582174220788612365 + "lo": 645757830930811994 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 204185687397946180 - "lo": 745822457786782312 + "lo": 177064262639309907 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 407134272598059218 - "lo": 582174220788612365 + "lo": 645757830930811994 } }, { "i128": { "hi": 0, - "lo": 204185687397946180 - "lo": 745822457786782312 + "lo": 177064262639309907 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 407134272598059218 - "lo": 582174220788612365 + "lo": 645757830930811994 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 204185687397946180 - "lo": 745822457786782312 + "lo": 177064262639309907 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 288324454935230086 - "lo": 658937484294730140 + "lo": 338142919750398407 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 407134272598059218 - "lo": 582174220788612365 + "lo": 645757830930811994 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 204185687397946180 - "lo": 745822457786782312 + "lo": 177064262639309907 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 288324454935230086 - "lo": 658937484294730140 + "lo": 338142919750398407 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 407134272598059218 - "lo": 582174220788612365 + "lo": 645757830930811994 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 204185687397946180 - "lo": 745822457786782312 + "lo": 177064262639309907 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.115.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.115.json index fa5f4853..dd14faf7 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.115.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.115.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 70908032021750235 - "lo": 766550210262614788 + "lo": 569357700407766479 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 851668043731636475 - "lo": 809411576020421034 + "lo": 729289647726072434 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 70908032021750235 - "lo": 766550210262614788 + "lo": 569357700407766479 } }, { "i128": { "hi": 0, - "lo": 851668043731636475 - "lo": 809411576020421034 + "lo": 729289647726072434 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 70908032021750235 - "lo": 766550210262614788 + "lo": 569357700407766479 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 851668043731636475 - "lo": 809411576020421034 + "lo": 729289647726072434 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 245743982463099711 - "lo": 787689414545763816 + "lo": 644380847605285909 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 70908032021750235 - "lo": 766550210262614788 + "lo": 569357700407766479 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 851668043731636475 - "lo": 809411576020421034 + "lo": 729289647726072434 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 245743982463099711 - "lo": 787689414545763816 + "lo": 644380847605285909 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 70908032021750235 - "lo": 766550210262614788 + "lo": 569357700407766479 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 851668043731636475 - "lo": 809411576020421034 + "lo": 729289647726072434 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.116.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.116.json index 84a07764..343cc9bb 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.116.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.116.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 363532015953920498 - "lo": 88904531218695370 + "lo": 86377499918232648 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 576014531582531612 - "lo": 628904862933907413 + "lo": 278303998678913568 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 363532015953920498 - "lo": 88904531218695370 + "lo": 86377499918232648 } }, { "i128": { "hi": 0, - "lo": 576014531582531612 - "lo": 628904862933907413 + "lo": 278303998678913568 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 363532015953920498 - "lo": 88904531218695370 + "lo": 86377499918232648 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 576014531582531612 - "lo": 628904862933907413 + "lo": 278303998678913568 } } ] @@ -246,7 +240,7 @@ { "i128": { "hi": 0, - "lo": 2688342119745047 + "lo": 1711985305612956 } }, { @@ -274,7 +268,7 @@ { "i128": { "hi": 0, - "lo": 19669146207308155 + "lo": 5644399806237289 } } ] @@ -591,8 +585,7 @@ "val": { "i128": { "hi": 0, - "lo": 457602145848280441 - "lo": 236458224683128550 + "lo": 155045811369193962 } } } @@ -641,7 +634,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +650,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +709,7 @@ "val": { "i128": { "hi": 0, - "lo": 363532015953920498 - "lo": 86216189098950323 + "lo": 84665514612619692 } } }, @@ -724,8 +720,7 @@ "val": { "i128": { "hi": 0, - "lo": 576014531582531612 - "lo": 648574009141215568 + "lo": 283948398485150857 } } }, @@ -752,13 +747,24 @@ "val": { "i128": { "hi": 0, - "lo": 457602145848280441 - "lo": 236458224683128550 + "lo": 155045811369193962 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -880,8 +886,7 @@ "val": { "i128": { "hi": 0, - "lo": 363532015953920498 - "lo": 86216189098950323 + "lo": 84665514612619692 } } }, @@ -1027,7 +1032,7 @@ "val": { "i128": { "hi": 2, - "lo": 13109200194700641815 + "lo": 13108223837886509724 } } }, @@ -1212,8 +1217,7 @@ "val": { "i128": { "hi": 0, - "lo": 576014531582531612 - "lo": 648574009141215568 + "lo": 283948398485150857 } } }, @@ -1359,7 +1363,7 @@ "val": { "i128": { "hi": 2, - "lo": 13086842706373588613 + "lo": 13100867452774659479 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.117.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.117.json index bbb0f3ad..f579f3c2 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.117.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.117.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 485134822606860807 - "lo": 776472304881510325 + "lo": 24209451351319802 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 392792553256331759 - "lo": 395651976907341816 + "lo": 612481859091771739 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 485134822606860807 - "lo": 776472304881510325 + "lo": 24209451351319802 } }, { "i128": { "hi": 0, - "lo": 392792553256331759 - "lo": 395651976907341816 + "lo": 612481859091771739 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 485134822606860807 - "lo": 776472304881510325 + "lo": 24209451351319802 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 392792553256331759 - "lo": 395651976907341816 + "lo": 612481859091771739 } } ] @@ -228,6 +222,65 @@ } ] ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "function_name": "swap", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "bool": false + }, + { + "i128": { + "hi": 0, + "lo": 485085811599487641 + } + }, + { + "i128": { + "hi": 2, + "lo": 13106511852580896768 + } + } + ] + } + }, + "sub_invocations": [ + { + "function": { + "contract_fn": { + "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", + "function_name": "transfer", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "i128": { + "hi": 0, + "lo": 92459684456876564 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + } + ] + ], + [], [] ], "ledger": { @@ -532,8 +585,7 @@ "val": { "i128": { "hi": 0, - "lo": 436528745497139551 - "lo": 554267807508400939 + "lo": 121769658664415077 } } } @@ -582,7 +634,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +650,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +709,7 @@ "val": { "i128": { "hi": 0, - "lo": 485134822606860807 - "lo": 776472304881510325 + "lo": 116669135808196366 } } }, @@ -665,8 +720,7 @@ "val": { "i128": { "hi": 0, - "lo": 392792553256331759 - "lo": 395651976907341816 + "lo": 127396047492284098 } } }, @@ -693,13 +747,24 @@ "val": { "i128": { "hi": 0, - "lo": 436528745497139551 - "lo": 554267807508400939 + "lo": 121769658664415077 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -744,6 +809,39 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], [ { "contract_data": { @@ -788,8 +886,7 @@ "val": { "i128": { "hi": 0, - "lo": 485134822606860807 - "lo": 776472304881510325 + "lo": 116669135808196366 } } }, @@ -935,7 +1032,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 13014052168124020204 } } }, @@ -1120,8 +1217,7 @@ "val": { "i128": { "hi": 0, - "lo": 392792553256331759 - "lo": 395651976907341816 + "lo": 127396047492284098 } } }, @@ -1267,7 +1363,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 13591597664180384409 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.118.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.118.json index a09a60b1..cec59011 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.118.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.118.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 818854867883933252 - "lo": 756170887028483231 + "lo": 112656859872148843 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 124520942321347775 - "lo": 482778083738897142 + "lo": 879918153151634331 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 818854867883933252 - "lo": 756170887028483231 + "lo": 112656859872148843 } }, { "i128": { "hi": 0, - "lo": 124520942321347775 - "lo": 482778083738897142 + "lo": 879918153151634331 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 818854867883933252 - "lo": 756170887028483231 + "lo": 112656859872148843 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 124520942321347775 - "lo": 482778083738897142 + "lo": 879918153151634331 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 319318931122678827 - "lo": 604204213671795910 + "lo": 314847290092456844 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 818854867883933252 - "lo": 756170887028483231 + "lo": 112656859872148843 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 124520942321347775 - "lo": 482778083738897142 + "lo": 879918153151634331 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 319318931122678827 - "lo": 604204213671795910 + "lo": 314847290092456844 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 818854867883933252 - "lo": 756170887028483231 + "lo": 112656859872148843 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 124520942321347775 - "lo": 482778083738897142 + "lo": 879918153151634331 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.119.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.119.json index 11c4360f..0c245578 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.119.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.119.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 439421519483844600 - "lo": 441033762985816225 + "lo": 334732792354214636 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 710871129778375175 - "lo": 664905964567509183 + "lo": 151207159136802601 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 439421519483844600 - "lo": 441033762985816225 + "lo": 334732792354214636 } }, { "i128": { "hi": 0, - "lo": 710871129778375175 - "lo": 664905964567509183 + "lo": 151207159136802601 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 439421519483844600 - "lo": 441033762985816225 + "lo": 334732792354214636 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 710871129778375175 - "lo": 664905964567509183 + "lo": 151207159136802601 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 558902560384554787 - "lo": 541521910530795019 + "lo": 224975542230283408 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 439421519483844600 - "lo": 441033762985816225 + "lo": 334732792354214636 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 710871129778375175 - "lo": 664905964567509183 + "lo": 151207159136802601 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 558902560384554787 - "lo": 541521910530795019 + "lo": 224975542230283408 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 439421519483844600 - "lo": 441033762985816225 + "lo": 334732792354214636 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 710871129778375175 - "lo": 664905964567509183 + "lo": 151207159136802601 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.12.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.12.json index 862be591..6e65e1c0 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.12.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.12.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 741887445270915417 - "lo": 269381421448656501 + "lo": 76358430453903066 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 633575948829216870 - "lo": 342110044218662897 + "lo": 583872177910213556 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 741887445270915417 - "lo": 269381421448656501 + "lo": 76358430453903066 } }, { "i128": { "hi": 0, - "lo": 633575948829216870 - "lo": 342110044218662897 + "lo": 583872177910213556 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 741887445270915417 - "lo": 269381421448656501 + "lo": 76358430453903066 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 633575948829216870 - "lo": 342110044218662897 + "lo": 583872177910213556 } } ] @@ -228,67 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": true - }, - { - "i128": { - "hi": 0, - "lo": 15847048545027205 - "lo": 2846051107128797 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 13870468399016534 - "lo": 3664025702102477 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -593,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 685596121679523459 - "lo": 303575509558142949 + "lo": 211148201723164007 } } } @@ -643,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -659,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -714,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 726040396725888212 - "lo": 266535370341527704 + "lo": 76358430453903066 } } }, @@ -726,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 647446417228233404 - "lo": 345774069920765374 + "lo": 583872177910213556 } } }, @@ -754,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 685596121679523459 - "lo": 303575509558142949 + "lo": 211148201723164007 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -805,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -882,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 726040396725888212 - "lo": 266535370341527704 + "lo": 76358430453903066 } } }, @@ -1029,8 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 13122358901125923973 - "lo": 13109357903688025565 + "lo": 13106511852580896768 } } }, @@ -1215,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 647446417228233404 - "lo": 345774069920765374 + "lo": 583872177910213556 } } }, @@ -1362,8 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 13092641384181880234 - "lo": 13102847826878794291 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.120.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.120.json index 6a0def56..930a0717 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.120.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.120.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 950259326799654492 - "lo": 449557051442740224 + "lo": 551900421709440115 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 558581692201213201 - "lo": 839635920326745954 + "lo": 299010778056093793 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 950259326799654492 - "lo": 449557051442740224 + "lo": 551900421709440115 } }, { "i128": { "hi": 0, - "lo": 558581692201213201 - "lo": 839635920326745954 + "lo": 299010778056093793 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 950259326799654492 - "lo": 449557051442740224 + "lo": 551900421709440115 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 558581692201213201 - "lo": 839635920326745954 + "lo": 299010778056093793 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": true - }, - { - "i128": { - "hi": 0, - "lo": 13281764487132997 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 7941784952877476 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 728558482754635609 - "lo": 614381191629027217 + "lo": 406231675900373341 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 936977562312521495 - "lo": 449557051442740224 + "lo": 551900421709440115 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 566523477154090677 - "lo": 839635920326745954 + "lo": 299010778056093793 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 728558482754635609 - "lo": 614381191629027217 + "lo": 406231675900373341 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -880,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 936977562312521495 - "lo": 449557051442740224 + "lo": 551900421709440115 } } }, @@ -1027,7 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 13119793617068029765 + "lo": 13106511852580896768 } } }, @@ -1212,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 566523477154090677 - "lo": 839635920326745954 + "lo": 299010778056093793 } } }, @@ -1359,7 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 13098570067628019292 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.121.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.121.json index 6e68eee7..fbe6c5c8 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.121.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.121.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 500289604745165097 - "lo": 1765466567587057 + "lo": 763968989958256111 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 1688069064553412 - "lo": 405613353762292615 + "lo": 939689325893501882 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 500289604745165097 - "lo": 1765466567587057 + "lo": 763968989958256111 } }, { "i128": { "hi": 0, - "lo": 1688069064553412 - "lo": 405613353762292615 + "lo": 939689325893501882 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 500289604745165097 - "lo": 1765466567587057 + "lo": 763968989958256111 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 1688069064553412 - "lo": 405613353762292615 + "lo": 939689325893501882 } } ] @@ -228,67 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": false - }, - { - "i128": { - "hi": 0, - "lo": 632169203900621 - "lo": 61340573617671555 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 300425590522286160 - "lo": 315507353483486 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -593,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 29060684869561609 - "lo": 26759985340694591 + "lo": 847285964227788440 } } } @@ -643,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -659,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -714,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 800715195267451257 - "lo": 2080973921070543 + "lo": 763968989958256111 } } }, @@ -726,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 1055899860652791 - "lo": 344272780144621060 + "lo": 939689325893501882 } } }, @@ -754,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 29060684869561609 - "lo": 26759985340694591 + "lo": 847285964227788440 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -805,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -882,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 800715195267451257 - "lo": 2080973921070543 + "lo": 763968989958256111 } } }, @@ -1029,8 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 12806086262058610608 - "lo": 13106196345227413282 + "lo": 13106511852580896768 } } }, @@ -1215,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 1055899860652791 - "lo": 344272780144621060 + "lo": 939689325893501882 } } }, @@ -1362,8 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 13107144021784797389 - "lo": 13167852426198568323 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.122.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.122.json index a6f8f7ab..8abfb622 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.122.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.122.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 411238024887174653 - "lo": 459360687058031165 + "lo": 690758472313287812 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 129836815783757332 - "lo": 116844188587014303 + "lo": 490909764940185961 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 411238024887174653 - "lo": 459360687058031165 + "lo": 690758472313287812 } }, { "i128": { "hi": 0, - "lo": 129836815783757332 - "lo": 116844188587014303 + "lo": 490909764940185961 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 411238024887174653 - "lo": 459360687058031165 + "lo": 690758472313287812 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 129836815783757332 - "lo": 116844188587014303 + "lo": 490909764940185961 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": false - }, - { - "i128": { - "hi": 0, - "lo": 6707476617117988 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 22469619857125905 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 231071061971317188 - "lo": 231675693045405723 + "lo": 582323002528457630 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 433707644744300558 - "lo": 459360687058031165 + "lo": 690758472313287812 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 123129339166639344 - "lo": 116844188587014303 + "lo": 490909764940185961 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 231071061971317188 - "lo": 231675693045405723 + "lo": 582323002528457630 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -847,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 433707644744300558 - "lo": 459360687058031165 + "lo": 690758472313287812 } } }, @@ -994,7 +940,6 @@ "val": { "i128": { "hi": 2, - "lo": 13084042232723770863 "lo": 13106511852580896768 } } @@ -1180,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 123129339166639344 - "lo": 116844188587014303 + "lo": 490909764940185961 } } }, @@ -1327,7 +1271,6 @@ "val": { "i128": { "hi": 2, - "lo": 13113219329198014756 "lo": 13106511852580896768 } } diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.123.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.123.json index f98795e4..8a387be9 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.123.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.123.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 972100918728922238 - "lo": 941085130305990207 + "lo": 829748038056938018 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 147503354281797997 - "lo": 175420670618661460 + "lo": 75134411797741629 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 972100918728922238 - "lo": 941085130305990207 + "lo": 829748038056938018 } }, { "i128": { "hi": 0, - "lo": 147503354281797997 - "lo": 175420670618661460 + "lo": 75134411797741629 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 972100918728922238 - "lo": 941085130305990207 + "lo": 829748038056938018 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 147503354281797997 - "lo": 175420670618661460 + "lo": 75134411797741629 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 378666272874854196 - "lo": 406307500136937181 + "lo": 249685063189086611 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 972100918728922238 - "lo": 941085130305990207 + "lo": 829748038056938018 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 147503354281797997 - "lo": 175420670618661460 + "lo": 75134411797741629 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 378666272874854196 - "lo": 406307500136937181 + "lo": 249685063189086611 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 972100918728922238 - "lo": 941085130305990207 + "lo": 829748038056938018 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 147503354281797997 - "lo": 175420670618661460 + "lo": 75134411797741629 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.124.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.124.json index bb32fc36..802e2dd2 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.124.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.124.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 426997349590798405 - "lo": 244614280609396521 + "lo": 241881664786182928 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 436407805874501111 - "lo": 145397730154328921 + "lo": 16425009566379395 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 426997349590798405 - "lo": 244614280609396521 + "lo": 241881664786182928 } }, { "i128": { "hi": 0, - "lo": 436407805874501111 - "lo": 145397730154328921 + "lo": 16425009566379395 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 426997349590798405 - "lo": 244614280609396521 + "lo": 241881664786182928 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 436407805874501111 - "lo": 145397730154328921 + "lo": 16425009566379395 } } ] @@ -241,12 +235,12 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" }, { - "bool": false + "bool": true }, { "i128": { "hi": 0, - "lo": 28795572246924192 + "lo": 56457744382486528 } }, { @@ -262,7 +256,7 @@ { "function": { "contract_fn": { - "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", "function_name": "transfer", "args": [ { @@ -274,7 +268,7 @@ { "i128": { "hi": 0, - "lo": 60590672816932104 + "lo": 5016123688422531 } } ] @@ -591,8 +585,7 @@ "val": { "i128": { "hi": 0, - "lo": 431676935275846810 - "lo": 188590458835913352 + "lo": 63031013461984161 } } } @@ -641,7 +634,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +650,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +709,7 @@ "val": { "i128": { "hi": 0, - "lo": 426997349590798405 - "lo": 305204953426328625 + "lo": 185423920403696400 } } }, @@ -724,8 +720,7 @@ "val": { "i128": { "hi": 0, - "lo": 436407805874501111 - "lo": 116602157907404729 + "lo": 21441133254801926 } } }, @@ -752,13 +747,24 @@ "val": { "i128": { "hi": 0, - "lo": 431676935275846810 - "lo": 188590458835913352 + "lo": 63031013461984161 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -880,8 +886,7 @@ "val": { "i128": { "hi": 0, - "lo": 426997349590798405 - "lo": 305204953426328625 + "lo": 185423920403696400 } } }, @@ -1027,7 +1032,7 @@ "val": { "i128": { "hi": 2, - "lo": 13045921179763964664 + "lo": 13162969596963383296 } } }, @@ -1212,8 +1217,7 @@ "val": { "i128": { "hi": 0, - "lo": 436407805874501111 - "lo": 116602157907404729 + "lo": 21441133254801926 } } }, @@ -1359,7 +1363,7 @@ "val": { "i128": { "hi": 2, - "lo": 13135307424827820960 + "lo": 13101495728892474237 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.125.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.125.json index 126736f1..d58c8b32 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.125.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.125.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 849140003574424492 - "lo": 512590999734554250 + "lo": 339186455929407407 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 288092426032548026 - "lo": 118205312397689825 + "lo": 441080961236639816 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 849140003574424492 - "lo": 512590999734554250 + "lo": 339186455929407407 } }, { "i128": { "hi": 0, - "lo": 288092426032548026 - "lo": 118205312397689825 + "lo": 441080961236639816 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 849140003574424492 - "lo": 512590999734554250 + "lo": 339186455929407407 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 288092426032548026 - "lo": 118205312397689825 + "lo": 441080961236639816 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 494601661613709557 - "lo": 246152349685854364 + "lo": 386792823123428943 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 849140003574424492 - "lo": 512590999734554250 + "lo": 339186455929407407 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 288092426032548026 - "lo": 118205312397689825 + "lo": 441080961236639816 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 494601661613709557 - "lo": 246152349685854364 + "lo": 386792823123428943 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 849140003574424492 - "lo": 512590999734554250 + "lo": 339186455929407407 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 288092426032548026 - "lo": 118205312397689825 + "lo": 441080961236639816 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.126.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.126.json index f8754287..e10a5989 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.126.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.126.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 154444081497410098 - "lo": 652671177571734098 + "lo": 258048026540845467 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 949373653125950250 - "lo": 440155850099601439 + "lo": 933425667140684599 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 154444081497410098 - "lo": 652671177571734098 + "lo": 258048026540845467 } }, { "i128": { "hi": 0, - "lo": 949373653125950250 - "lo": 440155850099601439 + "lo": 933425667140684599 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 154444081497410098 - "lo": 652671177571734098 + "lo": 258048026540845467 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 949373653125950250 - "lo": 440155850099601439 + "lo": 933425667140684599 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 382916625200419060 - "lo": 535982310342043421 + "lo": 490783711351778428 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 154444081497410098 - "lo": 652671177571734098 + "lo": 258048026540845467 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 949373653125950250 - "lo": 440155850099601439 + "lo": 933425667140684599 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 382916625200419060 - "lo": 535982310342043421 + "lo": 490783711351778428 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 154444081497410098 - "lo": 652671177571734098 + "lo": 258048026540845467 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 949373653125950250 - "lo": 440155850099601439 + "lo": 933425667140684599 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.127.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.127.json index 910b8c21..0eeee1fc 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.127.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.127.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 636720305818213144 - "lo": 467388337230033454 + "lo": 829306019433745446 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 871291855331584931 - "lo": 785922617490121638 + "lo": 841987651762313707 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 636720305818213144 - "lo": 467388337230033454 + "lo": 829306019433745446 } }, { "i128": { "hi": 0, - "lo": 871291855331584931 - "lo": 785922617490121638 + "lo": 841987651762313707 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 636720305818213144 - "lo": 467388337230033454 + "lo": 829306019433745446 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 871291855331584931 - "lo": 785922617490121638 + "lo": 841987651762313707 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 744828313494891976 - "lo": 606078431706807696 + "lo": 835622778468473191 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 636720305818213144 - "lo": 467388337230033454 + "lo": 829306019433745446 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 871291855331584931 - "lo": 785922617490121638 + "lo": 841987651762313707 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 744828313494891976 - "lo": 606078431706807696 + "lo": 835622778468473191 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 636720305818213144 - "lo": 467388337230033454 + "lo": 829306019433745446 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 871291855331584931 - "lo": 785922617490121638 + "lo": 841987651762313707 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.128.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.128.json index 50096173..59180790 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.128.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.128.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 968627053176386701 - "lo": 119581968361868044 + "lo": 578596458944187259 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 627488042658515597 - "lo": 672506023268182484 + "lo": 671863334194233011 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 968627053176386701 - "lo": 119581968361868044 + "lo": 578596458944187259 } }, { "i128": { "hi": 0, - "lo": 627488042658515597 - "lo": 672506023268182484 + "lo": 671863334194233011 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 968627053176386701 - "lo": 119581968361868044 + "lo": 578596458944187259 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 627488042658515597 - "lo": 672506023268182484 + "lo": 671863334194233011 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 779616504227390502 - "lo": 283583486821114978 + "lo": 623488368824325626 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 968627053176386701 - "lo": 119581968361868044 + "lo": 578596458944187259 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 627488042658515597 - "lo": 672506023268182484 + "lo": 671863334194233011 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 779616504227390502 - "lo": 283583486821114978 + "lo": 623488368824325626 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 968627053176386701 - "lo": 119581968361868044 + "lo": 578596458944187259 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 627488042658515597 - "lo": 672506023268182484 + "lo": 671863334194233011 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.129.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.129.json index 9c38751f..eaddf080 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.129.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.129.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 463288611980719714 - "lo": 476975936457964832 + "lo": 423488253481676514 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 683202006791076361 - "lo": 2205416385296648 + "lo": 883651461035805290 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 463288611980719714 - "lo": 476975936457964832 + "lo": 423488253481676514 } }, { "i128": { "hi": 0, - "lo": 683202006791076361 - "lo": 2205416385296648 + "lo": 883651461035805290 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 463288611980719714 - "lo": 476975936457964832 + "lo": 423488253481676514 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 683202006791076361 - "lo": 2205416385296648 + "lo": 883651461035805290 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": false - }, - { - "i128": { - "hi": 0, - "lo": 1846954912284745 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 2464989760377137958 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 562600843785965194 - "lo": 32433478778210154 + "lo": 611731978827807323 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 463288611980719714 - "lo": 2941965696835102790 + "lo": 423488253481676514 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 683202006791076361 - "lo": 358461473011903 + "lo": 883651461035805290 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 562600843785965194 - "lo": 32433478778210154 + "lo": 611731978827807323 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -880,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 463288611980719714 - "lo": 2941965696835102790 + "lo": 423488253481676514 } } }, @@ -1027,7 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 10641522092203758810 + "lo": 13106511852580896768 } } }, @@ -1212,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 683202006791076361 - "lo": 358461473011903 + "lo": 883651461035805290 } } }, @@ -1359,7 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 13108358807493181513 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.13.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.13.json index d804f22a..0c8abde2 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.13.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.13.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 667321015665900902 - "lo": 690200456393598002 + "lo": 125065570590896063 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 905842822303786190 - "lo": 89800372950451704 + "lo": 547712031869143282 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 667321015665900902 - "lo": 690200456393598002 + "lo": 125065570590896063 } }, { "i128": { "hi": 0, - "lo": 905842822303786190 - "lo": 89800372950451704 + "lo": 547712031869143282 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 667321015665900902 - "lo": 690200456393598002 + "lo": 125065570590896063 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 905842822303786190 - "lo": 89800372950451704 + "lo": 547712031869143282 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": true - }, - { - "i128": { - "hi": 0, - "lo": 55559182968748751 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 7885160176705254 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 777488232845635285 - "lo": 248958346706265461 + "lo": 261724889502724698 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 667321015665900902 - "lo": 634641273424849251 + "lo": 125065570590896063 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 905842822303786190 - "lo": 97685533127156958 + "lo": 547712031869143282 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 777488232845635285 - "lo": 248958346706265461 + "lo": 261724889502724698 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -880,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 667321015665900902 - "lo": 634641273424849251 + "lo": 125065570590896063 } } }, @@ -1027,7 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 13162071035549645519 + "lo": 13106511852580896768 } } }, @@ -1212,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 905842822303786190 - "lo": 97685533127156958 + "lo": 547712031869143282 } } }, @@ -1359,7 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 13098626692404191514 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.130.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.130.json index ba6b1721..267bb073 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.130.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.130.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 644127999212384573 - "lo": 879790625140026009 + "lo": 287182247006491173 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 667010477148915819 - "lo": 464347755696380855 + "lo": 434086122191940339 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 644127999212384573 - "lo": 879790625140026009 + "lo": 287182247006491173 } }, { "i128": { "hi": 0, - "lo": 667010477148915819 - "lo": 464347755696380855 + "lo": 434086122191940339 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 644127999212384573 - "lo": 879790625140026009 + "lo": 287182247006491173 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 667010477148915819 - "lo": 464347755696380855 + "lo": 434086122191940339 } } ] @@ -246,7 +240,7 @@ { "i128": { "hi": 0, - "lo": 7055560762964893 + "lo": 36999502279940284 } }, { @@ -274,7 +268,7 @@ { "i128": { "hi": 0, - "lo": 6907076835610297 + "lo": 26839415853402039 } } ] @@ -591,8 +585,7 @@ "val": { "i128": { "hi": 0, - "lo": 655469392191297599 - "lo": 639162578900303725 + "lo": 353074819217422697 } } } @@ -641,7 +634,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +650,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +709,7 @@ "val": { "i128": { "hi": 0, - "lo": 651035076047994870 - "lo": 879790625140026009 + "lo": 314021662859893212 } } }, @@ -724,8 +720,7 @@ "val": { "i128": { "hi": 0, - "lo": 659954916385950926 - "lo": 464347755696380855 + "lo": 397086619912000055 } } }, @@ -752,13 +747,24 @@ "val": { "i128": { "hi": 0, - "lo": 655469392191297599 - "lo": 639162578900303725 + "lo": 353074819217422697 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,6 +809,39 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], [ { "contract_data": { @@ -847,8 +886,7 @@ "val": { "i128": { "hi": 0, - "lo": 651035076047994870 - "lo": 879790625140026009 + "lo": 314021662859893212 } } }, @@ -994,8 +1032,7 @@ "val": { "i128": { "hi": 2, - "lo": 13099604775745286471 - "lo": 13106511852580896768 + "lo": 13079672436727494729 } } }, @@ -1180,8 +1217,7 @@ "val": { "i128": { "hi": 0, - "lo": 659954916385950926 - "lo": 464347755696380855 + "lo": 397086619912000055 } } }, @@ -1327,8 +1363,7 @@ "val": { "i128": { "hi": 2, - "lo": 13113567413343861661 - "lo": 13106511852580896768 + "lo": 13143511354860837052 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.131.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.131.json index 59a3e369..829e5c3e 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.131.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.131.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 804437940747377658 - "lo": 810789157486479746 + "lo": 844831860932339154 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 92035543442859399 - "lo": 965816953120795083 + "lo": 601378649645014696 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 804437940747377658 - "lo": 810789157486479746 + "lo": 844831860932339154 } }, { "i128": { "hi": 0, - "lo": 92035543442859399 - "lo": 965816953120795083 + "lo": 601378649645014696 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 804437940747377658 - "lo": 810789157486479746 + "lo": 844831860932339154 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 92035543442859399 - "lo": 965816953120795083 + "lo": 601378649645014696 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": false - }, - { - "i128": { - "hi": 0, - "lo": 4366533133200549 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 40187227308353910 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 272097194110375992 - "lo": 884914636395493432 + "lo": 712785973279900455 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 844625168055731568 - "lo": 810789157486479746 + "lo": 844831860932339154 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 87669010309658850 - "lo": 965816953120795083 + "lo": 601378649645014696 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 272097194110375992 - "lo": 884914636395493432 + "lo": 712785973279900455 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -880,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 844625168055731568 - "lo": 810789157486479746 + "lo": 844831860932339154 } } }, @@ -1027,7 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 13066324625272542858 + "lo": 13106511852580896768 } } }, @@ -1212,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 87669010309658850 - "lo": 965816953120795083 + "lo": 601378649645014696 } } }, @@ -1359,7 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 13110878385714097317 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.132.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.132.json index b4cf2402..e5e351cb 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.132.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.132.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 276762026430997866 - "lo": 172264317302981699 + "lo": 482581882491790978 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 281318902875497521 - "lo": 235175194820009517 + "lo": 838846382161640493 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 276762026430997866 - "lo": 172264317302981699 + "lo": 482581882491790978 } }, { "i128": { "hi": 0, - "lo": 281318902875497521 - "lo": 235175194820009517 + "lo": 838846382161640493 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 276762026430997866 - "lo": 172264317302981699 + "lo": 482581882491790978 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 281318902875497521 - "lo": 235175194820009517 + "lo": 838846382161640493 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": true - }, - { - "i128": { - "hi": 0, - "lo": 42083773424627219 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 76254406676751593 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 279031162476824022 - "lo": 201276661295503054 + "lo": 636248431216134929 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 276762026430997866 - "lo": 130180543878354480 + "lo": 482581882491790978 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 281318902875497521 - "lo": 311429601496761110 + "lo": 838846382161640493 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 279031162476824022 - "lo": 201276661295503054 + "lo": 636248431216134929 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -880,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 276762026430997866 - "lo": 130180543878354480 + "lo": 482581882491790978 } } }, @@ -1027,7 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 13148595626005523987 + "lo": 13106511852580896768 } } }, @@ -1212,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 281318902875497521 - "lo": 311429601496761110 + "lo": 838846382161640493 } } }, @@ -1359,7 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 13030257445904145175 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.133.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.133.json index 3b495d0d..e5288414 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.133.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.133.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 738974423761584934 - "lo": 646616328083954965 + "lo": 686658087571597545 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 524399404138609640 - "lo": 31582482579586298 + "lo": 784839840375869945 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 738974423761584934 - "lo": 646616328083954965 + "lo": 686658087571597545 } }, { "i128": { "hi": 0, - "lo": 524399404138609640 - "lo": 31582482579586298 + "lo": 784839840375869945 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 738974423761584934 - "lo": 646616328083954965 + "lo": 686658087571597545 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 524399404138609640 - "lo": 31582482579586298 + "lo": 784839840375869945 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": false - }, - { - "i128": { - "hi": 0, - "lo": 3671291300670286 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 85308436197270128 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 622509234866638389 - "lo": 142904684728624505 + "lo": 734109408632318744 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 738974423761584934 - "lo": 731924764281225093 + "lo": 686658087571597545 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 524399404138609640 - "lo": 27911191278916012 + "lo": 784839840375869945 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 622509234866638389 - "lo": 142904684728624505 + "lo": 734109408632318744 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -880,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 738974423761584934 - "lo": 731924764281225093 + "lo": 686658087571597545 } } }, @@ -1027,7 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 13021203416383626640 + "lo": 13106511852580896768 } } }, @@ -1212,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 524399404138609640 - "lo": 27911191278916012 + "lo": 784839840375869945 } } }, @@ -1359,7 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 13110183143881567054 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.134.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.134.json index 276c9790..e582c222 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.134.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.134.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 311825106521992429 - "lo": 496858757280999836 + "lo": 200291722828518220 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 456276633204955677 - "lo": 385733863726391321 + "lo": 855138488772380742 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 311825106521992429 - "lo": 496858757280999836 + "lo": 200291722828518220 } }, { "i128": { "hi": 0, - "lo": 456276633204955677 - "lo": 385733863726391321 + "lo": 855138488772380742 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 311825106521992429 - "lo": 496858757280999836 + "lo": 200291722828518220 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 456276633204955677 - "lo": 385733863726391321 + "lo": 855138488772380742 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 377198236677521295 - "lo": 437784476851673364 + "lo": 413856449959639536 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 311825106521992429 - "lo": 496858757280999836 + "lo": 200291722828518220 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 456276633204955677 - "lo": 385733863726391321 + "lo": 855138488772380742 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 377198236677521295 - "lo": 437784476851673364 + "lo": 413856449959639536 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 311825106521992429 - "lo": 496858757280999836 + "lo": 200291722828518220 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 456276633204955677 - "lo": 385733863726391321 + "lo": 855138488772380742 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.135.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.135.json index fe182743..083692e1 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.135.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.135.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 118847167787983359 - "lo": 815191833717216231 + "lo": 711470174908652439 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 522191489284717054 - "lo": 895943264875590719 + "lo": 120233156590989452 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 118847167787983359 - "lo": 815191833717216231 + "lo": 711470174908652439 } }, { "i128": { "hi": 0, - "lo": 522191489284717054 - "lo": 895943264875590719 + "lo": 120233156590989452 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 118847167787983359 - "lo": 815191833717216231 + "lo": 711470174908652439 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 522191489284717054 - "lo": 895943264875590719 + "lo": 120233156590989452 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 249120411737933834 - "lo": 854614318274929423 + "lo": 292476161335604689 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 118847167787983359 - "lo": 815191833717216231 + "lo": 711470174908652439 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 522191489284717054 - "lo": 895943264875590719 + "lo": 120233156590989452 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 249120411737933834 - "lo": 854614318274929423 + "lo": 292476161335604689 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 118847167787983359 - "lo": 815191833717216231 + "lo": 711470174908652439 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 522191489284717054 - "lo": 895943264875590719 + "lo": 120233156590989452 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.136.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.136.json index 590a9796..29762e76 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.136.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.136.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 23531957603468966 - "lo": 300622830616966250 + "lo": 648924368032893135 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 575344313409109082 - "lo": 359019045047797838 + "lo": 402557013837605098 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 23531957603468966 - "lo": 300622830616966250 + "lo": 648924368032893135 } }, { "i128": { "hi": 0, - "lo": 575344313409109082 - "lo": 359019045047797838 + "lo": 402557013837605098 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 23531957603468966 - "lo": 300622830616966250 + "lo": 648924368032893135 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 575344313409109082 - "lo": 359019045047797838 + "lo": 402557013837605098 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": true - }, - { - "i128": { - "hi": 0, - "lo": 20152247191681582 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 3440936504613493243 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 116357114052128829 - "lo": 328525983093680286 + "lo": 511105718811457347 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 3379710411787384 - "lo": 300622830616966250 + "lo": 648924368032893135 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 4016280818022602325 - "lo": 359019045047797838 + "lo": 402557013837605098 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 116357114052128829 - "lo": 328525983093680286 + "lo": 511105718811457347 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -880,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 3379710411787384 - "lo": 300622830616966250 + "lo": 648924368032893135 } } }, @@ -1027,7 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 13126664099772578350 + "lo": 13106511852580896768 } } }, @@ -1212,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 4016280818022602325 - "lo": 359019045047797838 + "lo": 402557013837605098 } } }, @@ -1359,7 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 9665575347967403525 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.137.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.137.json index ce8ed79b..0547a5ff 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.137.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.137.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 962675942994124986 - "lo": 908515551412121563 + "lo": 808502648883012419 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 509075788684350293 - "lo": 504695607341230017 + "lo": 566809471846247952 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 962675942994124986 - "lo": 908515551412121563 + "lo": 808502648883012419 } }, { "i128": { "hi": 0, - "lo": 509075788684350293 - "lo": 504695607341230017 + "lo": 566809471846247952 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 962675942994124986 - "lo": 908515551412121563 + "lo": 808502648883012419 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 509075788684350293 - "lo": 504695607341230017 + "lo": 566809471846247952 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 700053580040260075 - "lo": 677143860637378278 + "lo": 676954178212730082 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 962675942994124986 - "lo": 908515551412121563 + "lo": 808502648883012419 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 509075788684350293 - "lo": 504695607341230017 + "lo": 566809471846247952 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 700053580040260075 - "lo": 677143860637378278 + "lo": 676954178212730082 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 962675942994124986 - "lo": 908515551412121563 + "lo": 808502648883012419 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 509075788684350293 - "lo": 504695607341230017 + "lo": 566809471846247952 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.138.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.138.json index a5348438..a76c5465 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.138.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.138.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 825669831483443243 - "lo": 387933319506445104 + "lo": 221260296964160488 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 189161371591773328 - "lo": 599383593134132292 + "lo": 954044325450467938 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 825669831483443243 - "lo": 387933319506445104 + "lo": 221260296964160488 } }, { "i128": { "hi": 0, - "lo": 189161371591773328 - "lo": 599383593134132292 + "lo": 954044325450467938 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 825669831483443243 - "lo": 387933319506445104 + "lo": 221260296964160488 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 189161371591773328 - "lo": 599383593134132292 + "lo": 954044325450467938 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 395202274544765837 - "lo": 482204175575268570 + "lo": 459447636587830008 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 825669831483443243 - "lo": 387933319506445104 + "lo": 221260296964160488 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 189161371591773328 - "lo": 599383593134132292 + "lo": 954044325450467938 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 395202274544765837 - "lo": 482204175575268570 + "lo": 459447636587830008 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 825669831483443243 - "lo": 387933319506445104 + "lo": 221260296964160488 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 189161371591773328 - "lo": 599383593134132292 + "lo": 954044325450467938 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.139.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.139.json index 14477aee..75b677f1 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.139.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.139.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 221711119377350051 - "lo": 477715886851897974 + "lo": 125429088641528211 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 566067072283284227 - "lo": 699730623638749303 + "lo": 929159228885346952 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 221711119377350051 - "lo": 477715886851897974 + "lo": 125429088641528211 } }, { "i128": { "hi": 0, - "lo": 566067072283284227 - "lo": 699730623638749303 + "lo": 929159228885346952 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 221711119377350051 - "lo": 477715886851897974 + "lo": 125429088641528211 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 566067072283284227 - "lo": 699730623638749303 + "lo": 929159228885346952 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 354264539911329919 - "lo": 578162983447588736 + "lo": 341384819934856187 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 221711119377350051 - "lo": 477715886851897974 + "lo": 125429088641528211 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 566067072283284227 - "lo": 699730623638749303 + "lo": 929159228885346952 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 354264539911329919 - "lo": 578162983447588736 + "lo": 341384819934856187 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 221711119377350051 - "lo": 477715886851897974 + "lo": 125429088641528211 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 566067072283284227 - "lo": 699730623638749303 + "lo": 929159228885346952 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.14.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.14.json index 899a7d3d..b5abc2d1 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.14.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.14.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 129684760771807651 - "lo": 118172489107649494 + "lo": 541485294859092745 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 777660822066867986 - "lo": 849384673492527116 + "lo": 925080817416976549 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 129684760771807651 - "lo": 118172489107649494 + "lo": 541485294859092745 } }, { "i128": { "hi": 0, - "lo": 777660822066867986 - "lo": 849384673492527116 + "lo": 925080817416976549 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 129684760771807651 - "lo": 118172489107649494 + "lo": 541485294859092745 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 777660822066867986 - "lo": 849384673492527116 + "lo": 925080817416976549 } } ] @@ -228,6 +222,65 @@ } ] ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "function_name": "swap", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "bool": false + }, + { + "i128": { + "hi": 0, + "lo": 28495793346716374 + } + }, + { + "i128": { + "hi": 2, + "lo": 13106511852580896768 + } + } + ] + } + }, + "sub_invocations": [ + { + "function": { + "contract_fn": { + "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", + "function_name": "transfer", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "i128": { + "hi": 0, + "lo": 17261589358097565 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + } + ] + ], + [], [] ], "ledger": { @@ -532,8 +585,7 @@ "val": { "i128": { "hi": 0, - "lo": 317570083086157615 - "lo": 316818403942226946 + "lo": 707755366767022181 } } } @@ -582,7 +634,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +650,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +709,7 @@ "val": { "i128": { "hi": 0, - "lo": 129684760771807651 - "lo": 118172489107649494 + "lo": 558746884217190310 } } }, @@ -665,8 +720,7 @@ "val": { "i128": { "hi": 0, - "lo": 777660822066867986 - "lo": 849384673492527116 + "lo": 896585024070260175 } } }, @@ -693,13 +747,24 @@ "val": { "i128": { "hi": 0, - "lo": 317570083086157615 - "lo": 316818403942226946 + "lo": 707755366767022181 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -744,6 +809,39 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], [ { "contract_data": { @@ -788,8 +886,7 @@ "val": { "i128": { "hi": 0, - "lo": 129684760771807651 - "lo": 118172489107649494 + "lo": 558746884217190310 } } }, @@ -935,7 +1032,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 13089250263222799203 } } }, @@ -1120,8 +1217,7 @@ "val": { "i128": { "hi": 0, - "lo": 777660822066867986 - "lo": 849384673492527116 + "lo": 896585024070260175 } } }, @@ -1267,7 +1363,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 13135007645927613142 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.140.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.140.json index c08498d4..2abb2d1a 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.140.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.140.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 905808479571147613 - "lo": 964688177453281829 + "lo": 587382385400686940 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 59856720390144494 - "lo": 317100850238064564 + "lo": 898327431923405958 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 905808479571147613 - "lo": 964688177453281829 + "lo": 587382385400686940 } }, { "i128": { "hi": 0, - "lo": 59856720390144494 - "lo": 317100850238064564 + "lo": 898327431923405958 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 905808479571147613 - "lo": 964688177453281829 + "lo": 587382385400686940 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 59856720390144494 - "lo": 317100850238064564 + "lo": 898327431923405958 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 232849146205675604 - "lo": 553085383358704005 + "lo": 726403269426868286 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 905808479571147613 - "lo": 964688177453281829 + "lo": 587382385400686940 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 59856720390144494 - "lo": 317100850238064564 + "lo": 898327431923405958 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 232849146205675604 - "lo": 553085383358704005 + "lo": 726403269426868286 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 905808479571147613 - "lo": 964688177453281829 + "lo": 587382385400686940 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 59856720390144494 - "lo": 317100850238064564 + "lo": 898327431923405958 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.141.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.141.json index 90d8c3d0..20c45d34 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.141.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.141.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 224039893464302760 - "lo": 818872022274799894 + "lo": 426140238266612659 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 153590132110238359 - "lo": 311454493578576184 + "lo": 31550035217311563 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 224039893464302760 - "lo": 818872022274799894 + "lo": 426140238266612659 } }, { "i128": { "hi": 0, - "lo": 153590132110238359 - "lo": 311454493578576184 + "lo": 31550035217311563 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 224039893464302760 - "lo": 818872022274799894 + "lo": 426140238266612659 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 153590132110238359 - "lo": 311454493578576184 + "lo": 31550035217311563 } } ] @@ -246,7 +240,7 @@ { "i128": { "hi": 0, - "lo": 4629785233442465 + "lo": 17343172828739907 } }, { @@ -274,7 +268,7 @@ { "i128": { "hi": 0, - "lo": 6984259539180876 + "lo": 521780403438514736 } } ] @@ -591,8 +585,7 @@ "val": { "i128": { "hi": 0, - "lo": 185500180148554002 - "lo": 505016208654001874 + "lo": 115951453310534965 } } } @@ -641,7 +634,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +650,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +709,7 @@ "val": { "i128": { "hi": 0, - "lo": 231024153003483636 - "lo": 818872022274799894 + "lo": 947920641705127395 } } }, @@ -724,8 +720,7 @@ "val": { "i128": { "hi": 0, - "lo": 148960346876795894 - "lo": 311454493578576184 + "lo": 14206862388571656 } } }, @@ -752,13 +747,24 @@ "val": { "i128": { "hi": 0, - "lo": 185500180148554002 - "lo": 505016208654001874 + "lo": 115951453310534965 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,6 +809,39 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], [ { "contract_data": { @@ -847,8 +886,7 @@ "val": { "i128": { "hi": 0, - "lo": 231024153003483636 - "lo": 818872022274799894 + "lo": 947920641705127395 } } }, @@ -994,8 +1032,7 @@ "val": { "i128": { "hi": 2, - "lo": 13099527593041715892 - "lo": 13106511852580896768 + "lo": 12584731449142382032 } } }, @@ -1180,8 +1217,7 @@ "val": { "i128": { "hi": 0, - "lo": 148960346876795894 - "lo": 311454493578576184 + "lo": 14206862388571656 } } }, @@ -1327,8 +1363,7 @@ "val": { "i128": { "hi": 2, - "lo": 13111141637814339233 - "lo": 13106511852580896768 + "lo": 13123855025409636675 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.142.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.142.json index 98aa69de..f6e88d6f 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.142.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.142.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 157426497834651791 - "lo": 574429977068907803 + "lo": 659124855977856454 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 995903253666161466 - "lo": 497153444986008591 + "lo": 257092285155289062 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 157426497834651791 - "lo": 574429977068907803 + "lo": 659124855977856454 } }, { "i128": { "hi": 0, - "lo": 995903253666161466 - "lo": 497153444986008591 + "lo": 257092285155289062 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 157426497834651791 - "lo": 574429977068907803 + "lo": 659124855977856454 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 995903253666161466 - "lo": 497153444986008591 + "lo": 257092285155289062 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": false - }, - { - "i128": { - "hi": 0, - "lo": 40179534756641807 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 6638274624109346 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 395956514540168465 - "lo": 534396708450792604 + "lo": 411650234332494830 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 164064772458761137 - "lo": 574429977068907803 + "lo": 659124855977856454 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 955723718909519659 - "lo": 497153444986008591 + "lo": 257092285155289062 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 395956514540168465 - "lo": 534396708450792604 + "lo": 411650234332494830 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -880,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 164064772458761137 - "lo": 574429977068907803 + "lo": 659124855977856454 } } }, @@ -1027,7 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 13099873577956787422 + "lo": 13106511852580896768 } } }, @@ -1212,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 955723718909519659 - "lo": 497153444986008591 + "lo": 257092285155289062 } } }, @@ -1359,7 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 13146691387337538575 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.143.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.143.json index 58746cfa..783fe51e 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.143.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.143.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 358015465116075504 - "lo": 301420684353872332 + "lo": 304194594121266607 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 489257264151632252 - "lo": 914807748043123163 + "lo": 445039208507078022 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 358015465116075504 - "lo": 301420684353872332 + "lo": 304194594121266607 } }, { "i128": { "hi": 0, - "lo": 489257264151632252 - "lo": 914807748043123163 + "lo": 445039208507078022 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 358015465116075504 - "lo": 301420684353872332 + "lo": 304194594121266607 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 489257264151632252 - "lo": 914807748043123163 + "lo": 445039208507078022 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 418523197668498698 - "lo": 525111395293782399 + "lo": 367938203235081773 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 358015465116075504 - "lo": 301420684353872332 + "lo": 304194594121266607 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 489257264151632252 - "lo": 914807748043123163 + "lo": 445039208507078022 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 418523197668498698 - "lo": 525111395293782399 + "lo": 367938203235081773 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 358015465116075504 - "lo": 301420684353872332 + "lo": 304194594121266607 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 489257264151632252 - "lo": 914807748043123163 + "lo": 445039208507078022 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.144.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.144.json index 6f372e36..28ad6e65 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.144.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.144.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 460859217946455270 - "lo": 153178442861662304 + "lo": 184269193513170486 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 348903662551588215 - "lo": 130400528281797432 + "lo": 769048019616389596 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 460859217946455270 - "lo": 153178442861662304 + "lo": 184269193513170486 } }, { "i128": { "hi": 0, - "lo": 348903662551588215 - "lo": 130400528281797432 + "lo": 769048019616389596 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 460859217946455270 - "lo": 153178442861662304 + "lo": 184269193513170486 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 348903662551588215 - "lo": 130400528281797432 + "lo": 769048019616389596 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": true - }, - { - "i128": { - "hi": 0, - "lo": 92775269805918237 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 200889235151393496 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 400993103509497875 - "lo": 141331347798511732 + "lo": 376446355205642848 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 460859217946455270 - "lo": 60403173055744067 + "lo": 184269193513170486 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 348903662551588215 - "lo": 331289763433190928 + "lo": 769048019616389596 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 400993103509497875 - "lo": 141331347798511732 + "lo": 376446355205642848 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -880,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 460859217946455270 - "lo": 60403173055744067 + "lo": 184269193513170486 } } }, @@ -1027,7 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 13199287122386815005 + "lo": 13106511852580896768 } } }, @@ -1212,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 348903662551588215 - "lo": 331289763433190928 + "lo": 769048019616389596 } } }, @@ -1359,7 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 12905622617429503272 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.145.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.145.json index 74e9fe8c..e530bdfe 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.145.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.145.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 531140712291830583 - "lo": 275600014946271230 + "lo": 785837043876556291 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 549351450230510001 - "lo": 917524415922301437 + "lo": 642089925269917458 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 531140712291830583 - "lo": 275600014946271230 + "lo": 785837043876556291 } }, { "i128": { "hi": 0, - "lo": 549351450230510001 - "lo": 917524415922301437 + "lo": 642089925269917458 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 531140712291830583 - "lo": 275600014946271230 + "lo": 785837043876556291 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 549351450230510001 - "lo": 917524415922301437 + "lo": 642089925269917458 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 540169344348587779 - "lo": 502861554249034886 + "lo": 710336574292096320 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 531140712291830583 - "lo": 275600014946271230 + "lo": 785837043876556291 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 549351450230510001 - "lo": 917524415922301437 + "lo": 642089925269917458 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 540169344348587779 - "lo": 502861554249034886 + "lo": 710336574292096320 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 531140712291830583 - "lo": 275600014946271230 + "lo": 785837043876556291 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 549351450230510001 - "lo": 917524415922301437 + "lo": 642089925269917458 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.146.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.146.json index f36c3f7f..c2c776c3 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.146.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.146.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 138447915010052776 - "lo": 653900429832380178 + "lo": 613885156538235229 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 804368964703953043 - "lo": 519375353449228908 + "lo": 335321004168842 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 138447915010052776 - "lo": 653900429832380178 + "lo": 613885156538235229 } }, { "i128": { "hi": 0, - "lo": 804368964703953043 - "lo": 519375353449228908 + "lo": 335321004168842 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 138447915010052776 - "lo": 653900429832380178 + "lo": 613885156538235229 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 804368964703953043 - "lo": 519375353449228908 + "lo": 335321004168842 } } ] @@ -228,6 +222,65 @@ } ] ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "function_name": "swap", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "bool": true + }, + { + "i128": { + "hi": 0, + "lo": 198986033480829660 + } + }, + { + "i128": { + "hi": 2, + "lo": 13106511852580896768 + } + } + ] + } + }, + "sub_invocations": [ + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "transfer", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "i128": { + "hi": 0, + "lo": 161304200846762 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + } + ] + ], + [], [] ], "ledger": { @@ -532,8 +585,7 @@ "val": { "i128": { "hi": 0, - "lo": 333711261515186256 - "lo": 582769051052640544 + "lo": 14347424407702861 } } } @@ -582,7 +634,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +650,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +709,7 @@ "val": { "i128": { "hi": 0, - "lo": 138447915010052776 - "lo": 653900429832380178 + "lo": 414899123057405569 } } }, @@ -665,8 +720,7 @@ "val": { "i128": { "hi": 0, - "lo": 804368964703953043 - "lo": 519375353449228908 + "lo": 496625205015604 } } }, @@ -693,13 +747,24 @@ "val": { "i128": { "hi": 0, - "lo": 333711261515186256 - "lo": 582769051052640544 + "lo": 14347424407702861 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -744,6 +809,39 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], [ { "contract_data": { @@ -788,8 +886,7 @@ "val": { "i128": { "hi": 0, - "lo": 138447915010052776 - "lo": 653900429832380178 + "lo": 414899123057405569 } } }, @@ -935,7 +1032,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 13305497886061726428 } } }, @@ -1120,8 +1217,7 @@ "val": { "i128": { "hi": 0, - "lo": 804368964703953043 - "lo": 519375353449228908 + "lo": 496625205015604 } } }, @@ -1267,7 +1363,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 13106350548380050006 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.147.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.147.json index e8cfc097..b3817530 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.147.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.147.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 643200566086831812 - "lo": 360932746681549520 + "lo": 170382902351945931 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 611038371151634656 - "lo": 289762962489890028 + "lo": 423869402781238218 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 643200566086831812 - "lo": 360932746681549520 + "lo": 170382902351945931 } }, { "i128": { "hi": 0, - "lo": 611038371151634656 - "lo": 289762962489890028 + "lo": 423869402781238218 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 643200566086831812 - "lo": 360932746681549520 + "lo": 170382902351945931 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 611038371151634656 - "lo": 289762962489890028 + "lo": 423869402781238218 } } ] @@ -246,7 +240,7 @@ { "i128": { "hi": 0, - "lo": 20888500875724298 + "lo": 46090840682453068 } }, { @@ -274,7 +268,7 @@ { "i128": { "hi": 0, - "lo": 28124761422089965 + "lo": 20850101518921323 } } ] @@ -591,8 +585,7 @@ "val": { "i128": { "hi": 0, - "lo": 626913252552143015 - "lo": 323395952259855616 + "lo": 268737974733853626 } } } @@ -641,7 +634,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +650,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +709,7 @@ "val": { "i128": { "hi": 0, - "lo": 643200566086831812 - "lo": 389057508103639485 + "lo": 191233003870867254 } } }, @@ -724,8 +720,7 @@ "val": { "i128": { "hi": 0, - "lo": 611038371151634656 - "lo": 268874461614165730 + "lo": 377778562098785150 } } }, @@ -752,13 +747,24 @@ "val": { "i128": { "hi": 0, - "lo": 626913252552143015 - "lo": 323395952259855616 + "lo": 268737974733853626 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -880,8 +886,7 @@ "val": { "i128": { "hi": 0, - "lo": 643200566086831812 - "lo": 389057508103639485 + "lo": 191233003870867254 } } }, @@ -1027,7 +1032,7 @@ "val": { "i128": { "hi": 2, - "lo": 13078387091158806803 + "lo": 13085661751061975445 } } }, @@ -1212,8 +1217,7 @@ "val": { "i128": { "hi": 0, - "lo": 611038371151634656 - "lo": 268874461614165730 + "lo": 377778562098785150 } } }, @@ -1359,7 +1363,7 @@ "val": { "i128": { "hi": 2, - "lo": 13127400353456621066 + "lo": 13152602693263349836 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.148.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.148.json index b33cdc0f..0bf20269 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.148.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.148.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 285447137365504069 - "lo": 727333946362474088 + "lo": 743845695203998240 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 730911244727738106 - "lo": 557507252512573811 + "lo": 296657918149026029 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 285447137365504069 - "lo": 727333946362474088 + "lo": 743845695203998240 } }, { "i128": { "hi": 0, - "lo": 730911244727738106 - "lo": 557507252512573811 + "lo": 296657918149026029 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 285447137365504069 - "lo": 727333946362474088 + "lo": 743845695203998240 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 730911244727738106 - "lo": 557507252512573811 + "lo": 296657918149026029 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 456767470903730425 - "lo": 636784068657241657 + "lo": 469752823688515014 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 285447137365504069 - "lo": 727333946362474088 + "lo": 743845695203998240 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 730911244727738106 - "lo": 557507252512573811 + "lo": 296657918149026029 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 456767470903730425 - "lo": 636784068657241657 + "lo": 469752823688515014 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 285447137365504069 - "lo": 727333946362474088 + "lo": 743845695203998240 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 730911244727738106 - "lo": 557507252512573811 + "lo": 296657918149026029 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.149.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.149.json index 1b871e02..509c58c1 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.149.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.149.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 416198635567389929 - "lo": 934031946872720229 + "lo": 898885029596640340 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 14256347259463674 - "lo": 552573800208937757 + "lo": 523813021220097308 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 416198635567389929 - "lo": 934031946872720229 + "lo": 898885029596640340 } }, { "i128": { "hi": 0, - "lo": 14256347259463674 - "lo": 552573800208937757 + "lo": 523813021220097308 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 416198635567389929 - "lo": 934031946872720229 + "lo": 898885029596640340 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 14256347259463674 - "lo": 552573800208937757 + "lo": 523813021220097308 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": true - }, - { - "i128": { - "hi": 0, - "lo": 229871656302446441 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 17640983306417147 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 77029035289062784 - "lo": 718416023206617847 + "lo": 686183417959464219 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 186326979264943488 - "lo": 934031946872720229 + "lo": 898885029596640340 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 31897330565880821 - "lo": 552573800208937757 + "lo": 523813021220097308 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 77029035289062784 - "lo": 718416023206617847 + "lo": 686183417959464219 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -880,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 186326979264943488 - "lo": 934031946872720229 + "lo": 898885029596640340 } } }, @@ -1027,7 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 13336383508883343209 + "lo": 13106511852580896768 } } }, @@ -1212,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 31897330565880821 - "lo": 552573800208937757 + "lo": 523813021220097308 } } }, @@ -1359,7 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 13088870869274479621 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.15.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.15.json index bc796c54..2564ed38 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.15.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.15.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 389645193285157936 - "lo": 458534867122458145 + "lo": 110879560267950534 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 545176774556732279 - "lo": 585638985402397189 + "lo": 815079812939053496 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 389645193285157936 - "lo": 458534867122458145 + "lo": 110879560267950534 } }, { "i128": { "hi": 0, - "lo": 545176774556732279 - "lo": 585638985402397189 + "lo": 815079812939053496 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 389645193285157936 - "lo": 458534867122458145 + "lo": 110879560267950534 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 545176774556732279 - "lo": 585638985402397189 + "lo": 815079812939053496 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 460896419704836633 - "lo": 518204490865545664 + "lo": 300625499986221444 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 389645193285157936 - "lo": 458534867122458145 + "lo": 110879560267950534 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 545176774556732279 - "lo": 585638985402397189 + "lo": 815079812939053496 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 460896419704836633 - "lo": 518204490865545664 + "lo": 300625499986221444 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 389645193285157936 - "lo": 458534867122458145 + "lo": 110879560267950534 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 545176774556732279 - "lo": 585638985402397189 + "lo": 815079812939053496 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.150.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.150.json index 41f3eb58..1784de6f 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.150.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.150.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 241969943877771214 - "lo": 186909594087793942 + "lo": 57399010482701945 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 422862830085327573 - "lo": 401658106802720031 + "lo": 935829320081805568 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 241969943877771214 - "lo": 186909594087793942 + "lo": 57399010482701945 } }, { "i128": { "hi": 0, - "lo": 422862830085327573 - "lo": 401658106802720031 + "lo": 935829320081805568 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 241969943877771214 - "lo": 186909594087793942 + "lo": 57399010482701945 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 422862830085327573 - "lo": 401658106802720031 + "lo": 935829320081805568 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": false - }, - { - "i128": { - "hi": 0, - "lo": 50030387925620886 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 26673942035511535 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 319875124484137118 - "lo": 273995900890083002 + "lo": 231766427580431483 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 241969943877771214 - "lo": 213583536123305477 + "lo": 57399010482701945 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 422862830085327573 - "lo": 351627718877099145 + "lo": 935829320081805568 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 319875124484137118 - "lo": 273995900890083002 + "lo": 231766427580431483 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -880,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 241969943877771214 - "lo": 213583536123305477 + "lo": 57399010482701945 } } }, @@ -1027,7 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 13079837910545385233 + "lo": 13106511852580896768 } } }, @@ -1212,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 422862830085327573 - "lo": 351627718877099145 + "lo": 935829320081805568 } } }, @@ -1359,7 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 13156542240506517654 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.151.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.151.json index 37bd4246..e4924d32 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.151.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.151.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 82523239189871006 - "lo": 734737495150015467 + "lo": 998271332796148028 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 681665010421580283 - "lo": 5108239189810991 + "lo": 11981372882446835 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 82523239189871006 - "lo": 734737495150015467 + "lo": 998271332796148028 } }, { "i128": { "hi": 0, - "lo": 681665010421580283 - "lo": 5108239189810991 + "lo": 11981372882446835 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 82523239189871006 - "lo": 734737495150015467 + "lo": 998271332796148028 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 681665010421580283 - "lo": 5108239189810991 + "lo": 11981372882446835 } } ] @@ -241,13 +235,12 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" }, { - "bool": false + "bool": true }, { "i128": { "hi": 0, - "lo": 190620376577090092 - "lo": 614608630938691 + "lo": 658470152343120325 } }, { @@ -263,7 +256,7 @@ { "function": { "contract_fn": { - "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", "function_name": "transfer", "args": [ { @@ -275,8 +268,7 @@ { "i128": { "hi": 0, - "lo": 32131386186833527 - "lo": 100794848283748258 + "lo": 23287487594828674 } } ] @@ -593,8 +585,7 @@ "val": { "i128": { "hi": 0, - "lo": 237177580522244938 - "lo": 61263487224846023 + "lo": 109364807301470740 } } } @@ -643,7 +634,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -659,12 +650,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -714,8 +709,7 @@ "val": { "i128": { "hi": 0, - "lo": 114654625376704533 - "lo": 835532343433763725 + "lo": 339801180453027703 } } }, @@ -726,8 +720,7 @@ "val": { "i128": { "hi": 0, - "lo": 491044633844490191 - "lo": 4493630558872300 + "lo": 35268860477275509 } } }, @@ -754,13 +747,24 @@ "val": { "i128": { "hi": 0, - "lo": 237177580522244938 - "lo": 61263487224846023 + "lo": 109364807301470740 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -882,8 +886,7 @@ "val": { "i128": { "hi": 0, - "lo": 114654625376704533 - "lo": 835532343433763725 + "lo": 339801180453027703 } } }, @@ -1029,8 +1032,7 @@ "val": { "i128": { "hi": 2, - "lo": 13074380466394063241 - "lo": 13005717004297148510 + "lo": 13764982004924017093 } } }, @@ -1215,8 +1217,7 @@ "val": { "i128": { "hi": 0, - "lo": 491044633844490191 - "lo": 4493630558872300 + "lo": 35268860477275509 } } }, @@ -1362,8 +1363,7 @@ "val": { "i128": { "hi": 2, - "lo": 13297132229157986860 - "lo": 13107126461211835459 + "lo": 13083224364986068094 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.152.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.152.json index 966fd7f9..8b201395 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.152.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.152.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 291898097998873183 - "lo": 899106111603343968 + "lo": 297418709638098753 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 356924136820401079 - "lo": 830806906778618558 + "lo": 7414331760661727 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 291898097998873183 - "lo": 899106111603343968 + "lo": 297418709638098753 } }, { "i128": { "hi": 0, - "lo": 356924136820401079 - "lo": 830806906778618558 + "lo": 7414331760661727 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 291898097998873183 - "lo": 899106111603343968 + "lo": 297418709638098753 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 356924136820401079 - "lo": 830806906778618558 + "lo": 7414331760661727 } } ] @@ -228,6 +222,65 @@ } ] ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "function_name": "swap", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "bool": true + }, + { + "i128": { + "hi": 0, + "lo": 123045071822301529 + } + }, + { + "i128": { + "hi": 2, + "lo": 13106511852580896768 + } + } + ] + } + }, + "sub_invocations": [ + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "transfer", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "i128": { + "hi": 0, + "lo": 5247594314128051 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + } + ] + ], + [], [] ], "ledger": { @@ -532,8 +585,7 @@ "val": { "i128": { "hi": 0, - "lo": 322777751196956966 - "lo": 864282111030261695 + "lo": 46959141656175783 } } } @@ -582,7 +634,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +650,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +709,7 @@ "val": { "i128": { "hi": 0, - "lo": 291898097998873183 - "lo": 899106111603343968 + "lo": 174373637815797224 } } }, @@ -665,8 +720,7 @@ "val": { "i128": { "hi": 0, - "lo": 356924136820401079 - "lo": 830806906778618558 + "lo": 12661926074789778 } } }, @@ -693,13 +747,24 @@ "val": { "i128": { "hi": 0, - "lo": 322777751196956966 - "lo": 864282111030261695 + "lo": 46959141656175783 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -744,6 +809,39 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], [ { "contract_data": { @@ -788,8 +886,7 @@ "val": { "i128": { "hi": 0, - "lo": 291898097998873183 - "lo": 899106111603343968 + "lo": 174373637815797224 } } }, @@ -935,7 +1032,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 13229556924403198297 } } }, @@ -1120,8 +1217,7 @@ "val": { "i128": { "hi": 0, - "lo": 356924136820401079 - "lo": 830806906778618558 + "lo": 12661926074789778 } } }, @@ -1267,7 +1363,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 13101264258266768717 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.153.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.153.json index 0b2ff1ce..6cde838e 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.153.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.153.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 334327080584248269 - "lo": 39101030820311213 + "lo": 525887012195955295 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 160304459070182241 - "lo": 440471970927006228 + "lo": 355173427545459631 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 334327080584248269 - "lo": 39101030820311213 + "lo": 525887012195955295 } }, { "i128": { "hi": 0, - "lo": 160304459070182241 - "lo": 440471970927006228 + "lo": 355173427545459631 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 334327080584248269 - "lo": 39101030820311213 + "lo": 525887012195955295 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 160304459070182241 - "lo": 440471970927006228 + "lo": 355173427545459631 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": true - }, - { - "i128": { - "hi": 0, - "lo": 32099669187642271 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 2025541593883073732 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 231504042741311855 - "lo": 131236077778559410 + "lo": 432181781919689869 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 334327080584248269 - "lo": 7001361632668942 + "lo": 525887012195955295 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 160304459070182241 - "lo": 2466013564810079960 + "lo": 355173427545459631 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 231504042741311855 - "lo": 131236077778559410 + "lo": 432181781919689869 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -847,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 334327080584248269 - "lo": 7001361632668942 + "lo": 525887012195955295 } } }, @@ -995,7 +941,6 @@ "i128": { "hi": 2, "lo": 13106511852580896768 - "lo": 13138611521768539039 } } }, @@ -1180,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 160304459070182241 - "lo": 2466013564810079960 + "lo": 355173427545459631 } } }, @@ -1328,7 +1272,6 @@ "i128": { "hi": 2, "lo": 13106511852580896768 - "lo": 11080970258697823036 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.154.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.154.json index 40937c77..b52f4b81 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.154.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.154.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 126695892383434536 - "lo": 674743809517628477 + "lo": 990545223663930839 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 727099803761067052 - "lo": 976329581995688460 + "lo": 121943762899599390 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 126695892383434536 - "lo": 674743809517628477 + "lo": 990545223663930839 } }, { "i128": { "hi": 0, - "lo": 727099803761067052 - "lo": 976329581995688460 + "lo": 121943762899599390 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 126695892383434536 - "lo": 674743809517628477 + "lo": 990545223663930839 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 727099803761067052 - "lo": 976329581995688460 + "lo": 121943762899599390 } } ] @@ -228,6 +222,65 @@ } ] ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "function_name": "swap", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "bool": true + }, + { + "i128": { + "hi": 0, + "lo": 122465121759139812 + } + }, + { + "i128": { + "hi": 2, + "lo": 13106511852580896768 + } + } + ] + } + }, + "sub_invocations": [ + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "transfer", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "i128": { + "hi": 0, + "lo": 17255082936310801 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + } + ] + ], + [], [] ], "ledger": { @@ -532,8 +585,7 @@ "val": { "i128": { "hi": 0, - "lo": 303513687482671069 - "lo": 811647917203342946 + "lo": 347549725788706426 } } } @@ -582,7 +634,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +650,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +709,7 @@ "val": { "i128": { "hi": 0, - "lo": 126695892383434536 - "lo": 674743809517628477 + "lo": 868080101904791027 } } }, @@ -665,8 +720,7 @@ "val": { "i128": { "hi": 0, - "lo": 727099803761067052 - "lo": 976329581995688460 + "lo": 139198845835910191 } } }, @@ -693,13 +747,24 @@ "val": { "i128": { "hi": 0, - "lo": 303513687482671069 - "lo": 811647917203342946 + "lo": 347549725788706426 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -744,6 +809,39 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], [ { "contract_data": { @@ -788,8 +886,7 @@ "val": { "i128": { "hi": 0, - "lo": 126695892383434536 - "lo": 674743809517628477 + "lo": 868080101904791027 } } }, @@ -935,7 +1032,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 13228976974340036580 } } }, @@ -1120,8 +1217,7 @@ "val": { "i128": { "hi": 0, - "lo": 727099803761067052 - "lo": 976329581995688460 + "lo": 139198845835910191 } } }, @@ -1267,7 +1363,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 13089256769644585967 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.155.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.155.json index b795a478..07b8457e 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.155.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.155.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 836779240651864172 - "lo": 723984265890276266 + "lo": 862629503825793583 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 777997065562448634 - "lo": 644964363430892334 + "lo": 512967888844770214 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 836779240651864172 - "lo": 723984265890276266 + "lo": 862629503825793583 } }, { "i128": { "hi": 0, - "lo": 777997065562448634 - "lo": 644964363430892334 + "lo": 512967888844770214 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 836779240651864172 - "lo": 723984265890276266 + "lo": 862629503825793583 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 777997065562448634 - "lo": 644964363430892334 + "lo": 512967888844770214 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 806853018678572183 - "lo": 683333045581657736 + "lo": 665207663389958974 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 836779240651864172 - "lo": 723984265890276266 + "lo": 862629503825793583 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 777997065562448634 - "lo": 644964363430892334 + "lo": 512967888844770214 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 806853018678572183 - "lo": 683333045581657736 + "lo": 665207663389958974 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 836779240651864172 - "lo": 723984265890276266 + "lo": 862629503825793583 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 777997065562448634 - "lo": 644964363430892334 + "lo": 512967888844770214 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.156.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.156.json index 0ca1f410..9fba410e 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.156.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.156.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 260062943781951686 - "lo": 273180553081952311 + "lo": 254203432436492336 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 957055633166586821 - "lo": 130107944694850620 + "lo": 137626725560033802 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 260062943781951686 - "lo": 273180553081952311 + "lo": 254203432436492336 } }, { "i128": { "hi": 0, - "lo": 957055633166586821 - "lo": 130107944694850620 + "lo": 137626725560033802 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 260062943781951686 - "lo": 273180553081952311 + "lo": 254203432436492336 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 957055633166586821 - "lo": 130107944694850620 + "lo": 137626725560033802 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 498893480939972038 - "lo": 188528407122362743 + "lo": 187043273154518244 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 260062943781951686 - "lo": 273180553081952311 + "lo": 254203432436492336 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 957055633166586821 - "lo": 130107944694850620 + "lo": 137626725560033802 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 498893480939972038 - "lo": 188528407122362743 + "lo": 187043273154518244 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 260062943781951686 - "lo": 273180553081952311 + "lo": 254203432436492336 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 957055633166586821 - "lo": 130107944694850620 + "lo": 137626725560033802 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.157.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.157.json index 44e4c637..8319b6f1 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.157.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.157.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 130734829502779449 - "lo": 92856416382380173 + "lo": 916378914122531247 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 298778511327523616 - "lo": 259714349517524761 + "lo": 996342955387520336 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 130734829502779449 - "lo": 92856416382380173 + "lo": 916378914122531247 } }, { "i128": { "hi": 0, - "lo": 298778511327523616 - "lo": 259714349517524761 + "lo": 996342955387520336 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 130734829502779449 - "lo": 92856416382380173 + "lo": 916378914122531247 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 298778511327523616 - "lo": 259714349517524761 + "lo": 996342955387520336 } } ] @@ -228,69 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": false - "bool": true - }, - { - "i128": { - "hi": 0, - "lo": 8483837315452802 - "lo": 40996380636390526 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", - "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 3832210976862786 - "lo": 205927094638493647 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -595,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 197637946097145166 - "lo": 155293733869973956 + "lo": 955524816816208850 } } } @@ -645,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -661,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -716,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 134567040479642235 - "lo": 51860035745989647 + "lo": 916378914122531247 } } }, @@ -728,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 290294674012070814 - "lo": 465641444156018408 + "lo": 996342955387520336 } } }, @@ -756,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 197637946097145166 - "lo": 155293733869973956 + "lo": 955524816816208850 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -807,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -884,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 134567040479642235 - "lo": 51860035745989647 + "lo": 916378914122531247 } } }, @@ -1031,8 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 13102679641604033982 - "lo": 13147508233217287294 + "lo": 13106511852580896768 } } }, @@ -1217,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 290294674012070814 - "lo": 465641444156018408 + "lo": 996342955387520336 } } }, @@ -1364,8 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 13114995689896349570 - "lo": 12900584757942403121 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.158.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.158.json index 8a56e5a1..f5e17d45 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.158.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.158.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 689181699602001646 - "lo": 453990358728381397 + "lo": 697192743466871075 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 598997801500602254 - "lo": 799785374416463354 + "lo": 998406411795770390 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 689181699602001646 - "lo": 453990358728381397 + "lo": 697192743466871075 } }, { "i128": { "hi": 0, - "lo": 598997801500602254 - "lo": 799785374416463354 + "lo": 998406411795770390 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 689181699602001646 - "lo": 453990358728381397 + "lo": 697192743466871075 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 598997801500602254 - "lo": 799785374416463354 + "lo": 998406411795770390 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": true - }, - { - "i128": { - "hi": 0, - "lo": 17357793120280877 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 15522766478210542 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 642509395181150229 - "lo": 602573521685979019 + "lo": 834315111534489580 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 671823906481720769 - "lo": 453990358728381397 + "lo": 697192743466871075 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 614520567978812796 - "lo": 799785374416463354 + "lo": 998406411795770390 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 642509395181150229 - "lo": 602573521685979019 + "lo": 834315111534489580 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -847,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 671823906481720769 - "lo": 453990358728381397 + "lo": 697192743466871075 } } }, @@ -994,7 +940,6 @@ "val": { "i128": { "hi": 2, - "lo": 13123869645701177645 "lo": 13106511852580896768 } } @@ -1180,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 614520567978812796 - "lo": 799785374416463354 + "lo": 998406411795770390 } } }, @@ -1327,7 +1271,6 @@ "val": { "i128": { "hi": 2, - "lo": 13090989086102686226 "lo": 13106511852580896768 } } diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.159.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.159.json index 79cf69cf..c75c2a18 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.159.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.159.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 608658453452373286 - "lo": 812125131285860713 + "lo": 122576759770412309 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 577472277658799445 - "lo": 314282441428662287 + "lo": 736343891236450074 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 608658453452373286 - "lo": 812125131285860713 + "lo": 122576759770412309 } }, { "i128": { "hi": 0, - "lo": 577472277658799445 - "lo": 314282441428662287 + "lo": 736343891236450074 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 608658453452373286 - "lo": 812125131285860713 + "lo": 122576759770412309 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 577472277658799445 - "lo": 314282441428662287 + "lo": 736343891236450074 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 592860340578980172 - "lo": 505209529805300871 + "lo": 300430771167836518 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 608658453452373286 - "lo": 812125131285860713 + "lo": 122576759770412309 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 577472277658799445 - "lo": 314282441428662287 + "lo": 736343891236450074 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 592860340578980172 - "lo": 505209529805300871 + "lo": 300430771167836518 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 608658453452373286 - "lo": 812125131285860713 + "lo": 122576759770412309 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 577472277658799445 - "lo": 314282441428662287 + "lo": 736343891236450074 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.16.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.16.json index 669a8007..269528f7 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.16.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.16.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 936749654771481133 - "lo": 252374900592518627 + "lo": 637001668726026164 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 5285443664570446 - "lo": 132089720173520286 + "lo": 363184937603324284 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 936749654771481133 - "lo": 252374900592518627 + "lo": 637001668726026164 } }, { "i128": { "hi": 0, - "lo": 5285443664570446 - "lo": 132089720173520286 + "lo": 363184937603324284 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 936749654771481133 - "lo": 252374900592518627 + "lo": 637001668726026164 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 5285443664570446 - "lo": 132089720173520286 + "lo": 363184937603324284 } } ] @@ -228,69 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": false - "bool": true - }, - { - "i128": { - "hi": 0, - "lo": 4691184923550719 - "lo": 42613339886554535 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", - "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 7417120893863521541 - "lo": 26914947076998675 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -595,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 70364319993164699 - "lo": 182581844656268560 + "lo": 480987953393299922 } } } @@ -645,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -661,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -716,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 8353870548635002674 - "lo": 209761560705964092 + "lo": 637001668726026164 } } }, @@ -728,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 594258741019727 - "lo": 159004667250518961 + "lo": 363184937603324284 } } }, @@ -756,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 70364319993164699 - "lo": 182581844656268560 + "lo": 480987953393299922 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -807,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -884,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 8353870548635002674 - "lo": 209761560705964092 + "lo": 637001668726026164 } } }, @@ -1031,8 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 5689390958717375227 - "lo": 13149125192467451303 + "lo": 13106511852580896768 } } }, @@ -1217,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 594258741019727 - "lo": 159004667250518961 + "lo": 363184937603324284 } } }, @@ -1364,8 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 13111203037504447487 - "lo": 13079596905503898093 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.160.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.160.json index dfb0e5ba..04e66de6 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.160.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.160.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 738085708767471162 - "lo": 448734110461394115 + "lo": 963420981969266157 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 829313125753351791 - "lo": 30548004056577380 + "lo": 568251968279999369 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 738085708767471162 - "lo": 448734110461394115 + "lo": 963420981969266157 } }, { "i128": { "hi": 0, - "lo": 829313125753351791 - "lo": 30548004056577380 + "lo": 568251968279999369 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 738085708767471162 - "lo": 448734110461394115 + "lo": 963420981969266157 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 829313125753351791 - "lo": 30548004056577380 + "lo": 568251968279999369 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": true - }, - { - "i128": { - "hi": 0, - "lo": 280658758496810858 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 51163736273672443 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 782370862322868973 - "lo": 117080875580511907 + "lo": 739909365588978929 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 738085708767471162 - "lo": 168075351964583257 + "lo": 963420981969266157 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 829313125753351791 - "lo": 81711740330249823 + "lo": 568251968279999369 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 782370862322868973 - "lo": 117080875580511907 + "lo": 739909365588978929 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -880,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 738085708767471162 - "lo": 168075351964583257 + "lo": 963420981969266157 } } }, @@ -1027,7 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 13387170611077707626 + "lo": 13106511852580896768 } } }, @@ -1212,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 829313125753351791 - "lo": 81711740330249823 + "lo": 568251968279999369 } } }, @@ -1359,7 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 13055348116307224325 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.161.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.161.json index 76902f49..f37db0e1 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.161.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.161.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 639532224017696947 - "lo": 783232065834690268 + "lo": 341469783784034759 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 467156696949321132 - "lo": 664994893468531079 + "lo": 609137678107238700 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 639532224017696947 - "lo": 783232065834690268 + "lo": 341469783784034759 } }, { "i128": { "hi": 0, - "lo": 467156696949321132 - "lo": 664994893468531079 + "lo": 609137678107238700 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 639532224017696947 - "lo": 783232065834690268 + "lo": 341469783784034759 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 467156696949321132 - "lo": 664994893468531079 + "lo": 609137678107238700 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 546591036667050190 - "lo": 721696143942086873 + "lo": 456072484631541614 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 639532224017696947 - "lo": 783232065834690268 + "lo": 341469783784034759 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 467156696949321132 - "lo": 664994893468531079 + "lo": 609137678107238700 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 546591036667050190 - "lo": 721696143942086873 + "lo": 456072484631541614 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 639532224017696947 - "lo": 783232065834690268 + "lo": 341469783784034759 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 467156696949321132 - "lo": 664994893468531079 + "lo": 609137678107238700 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.162.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.162.json index 6050dfcc..e5c07b63 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.162.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.162.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 172982960239340887 - "lo": 445426450182441537 + "lo": 465902718428272878 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 270067305236351433 - "lo": 466233669941693255 + "lo": 126790601055405984 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 172982960239340887 - "lo": 445426450182441537 + "lo": 465902718428272878 } }, { "i128": { "hi": 0, - "lo": 270067305236351433 - "lo": 466233669941693255 + "lo": 126790601055405984 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 172982960239340887 - "lo": 445426450182441537 + "lo": 465902718428272878 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 270067305236351433 - "lo": 466233669941693255 + "lo": 126790601055405984 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": true - }, - { - "i128": { - "hi": 0, - "lo": 17892696726661097 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 31251302285032801 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 216141254562024134 - "lo": 455711321515782094 + "lo": 243047496804365981 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 155090263512679790 - "lo": 445426450182441537 + "lo": 465902718428272878 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 301318607521384234 - "lo": 466233669941693255 + "lo": 126790601055405984 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 216141254562024134 - "lo": 455711321515782094 + "lo": 243047496804365981 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -880,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 155090263512679790 - "lo": 445426450182441537 + "lo": 465902718428272878 } } }, @@ -1027,7 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 13124404549307557865 + "lo": 13106511852580896768 } } }, @@ -1212,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 301318607521384234 - "lo": 466233669941693255 + "lo": 126790601055405984 } } }, @@ -1359,7 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 13075260550295863967 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.163.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.163.json index 05467cec..baa1bc39 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.163.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.163.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 401220776491974233 - "lo": 433920510662085247 + "lo": 920409790133573512 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 668137366690162459 - "lo": 481506690505015812 + "lo": 546636451975000379 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 401220776491974233 - "lo": 433920510662085247 + "lo": 920409790133573512 } }, { "i128": { "hi": 0, - "lo": 668137366690162459 - "lo": 481506690505015812 + "lo": 546636451975000379 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 401220776491974233 - "lo": 433920510662085247 + "lo": 920409790133573512 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 668137366690162459 - "lo": 481506690505015812 + "lo": 546636451975000379 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": false - }, - { - "i128": { - "hi": 0, - "lo": 29838599979150474 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 28752396800396953 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 517755340935011410 - "lo": 457094770295118444 + "lo": 709316249667009486 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 401220776491974233 - "lo": 462672907462482200 + "lo": 920409790133573512 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 668137366690162459 - "lo": 451668090525865338 + "lo": 546636451975000379 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 517755340935011410 - "lo": 457094770295118444 + "lo": 709316249667009486 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -880,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 401220776491974233 - "lo": 462672907462482200 + "lo": 920409790133573512 } } }, @@ -1027,7 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 13077759455780499815 + "lo": 13106511852580896768 } } }, @@ -1212,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 668137366690162459 - "lo": 451668090525865338 + "lo": 546636451975000379 } } }, @@ -1359,7 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 13136350452560047242 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.164.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.164.json index a02b90fe..e2dce8f1 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.164.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.164.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 690654919722276230 - "lo": 290122991903579405 + "lo": 931895657757340692 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 249549374834065203 - "lo": 372746798324928685 + "lo": 469988552620609759 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 690654919722276230 - "lo": 290122991903579405 + "lo": 931895657757340692 } }, { "i128": { "hi": 0, - "lo": 249549374834065203 - "lo": 372746798324928685 + "lo": 469988552620609759 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 690654919722276230 - "lo": 290122991903579405 + "lo": 931895657757340692 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 249549374834065203 - "lo": 372746798324928685 + "lo": 469988552620609759 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 415153590184121523 - "lo": 328850142698020476 + "lo": 661800794335277040 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 690654919722276230 - "lo": 290122991903579405 + "lo": 931895657757340692 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 249549374834065203 - "lo": 372746798324928685 + "lo": 469988552620609759 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 415153590184121523 - "lo": 328850142698020476 + "lo": 661800794335277040 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 690654919722276230 - "lo": 290122991903579405 + "lo": 931895657757340692 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 249549374834065203 - "lo": 372746798324928685 + "lo": 469988552620609759 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.165.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.165.json index dd6a1a12..4662f4df 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.165.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.165.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 185311544651328881 - "lo": 917334265579353332 + "lo": 718044207479910246 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 823592754741234953 - "lo": 605016075266611676 + "lo": 226728840486330179 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 185311544651328881 - "lo": 917334265579353332 + "lo": 718044207479910246 } }, { "i128": { "hi": 0, - "lo": 823592754741234953 - "lo": 605016075266611676 + "lo": 226728840486330179 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 185311544651328881 - "lo": 917334265579353332 + "lo": 718044207479910246 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 823592754741234953 - "lo": 605016075266611676 + "lo": 226728840486330179 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 390667691964335997 - "lo": 744984548207813488 + "lo": 403486468893128981 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 185311544651328881 - "lo": 917334265579353332 + "lo": 718044207479910246 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 823592754741234953 - "lo": 605016075266611676 + "lo": 226728840486330179 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 390667691964335997 - "lo": 744984548207813488 + "lo": 403486468893128981 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 185311544651328881 - "lo": 917334265579353332 + "lo": 718044207479910246 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 823592754741234953 - "lo": 605016075266611676 + "lo": 226728840486330179 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.166.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.166.json index 8cf8ab12..7d6f1620 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.166.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.166.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 178615145914635809 - "lo": 923956231833302144 + "lo": 462235272021439585 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 761963106694368625 - "lo": 948891240029001874 + "lo": 515048203064795672 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 178615145914635809 - "lo": 923956231833302144 + "lo": 462235272021439585 } }, { "i128": { "hi": 0, - "lo": 761963106694368625 - "lo": 948891240029001874 + "lo": 515048203064795672 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 178615145914635809 - "lo": 923956231833302144 + "lo": 462235272021439585 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 761963106694368625 - "lo": 948891240029001874 + "lo": 515048203064795672 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 368914829579652253 - "lo": 936340736354467281 + "lo": 487927705964530652 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 178615145914635809 - "lo": 923956231833302144 + "lo": 462235272021439585 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 761963106694368625 - "lo": 948891240029001874 + "lo": 515048203064795672 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 368914829579652253 - "lo": 936340736354467281 + "lo": 487927705964530652 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 178615145914635809 - "lo": 923956231833302144 + "lo": 462235272021439585 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 761963106694368625 - "lo": 948891240029001874 + "lo": 515048203064795672 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.167.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.167.json index 91dfd06b..bc2b5d6d 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.167.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.167.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 508390557163093503 - "lo": 979565848285628251 + "lo": 799919181772449963 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 324697103015424024 - "lo": 877278543849564325 + "lo": 382963069444144645 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 508390557163093503 - "lo": 979565848285628251 + "lo": 799919181772449963 } }, { "i128": { "hi": 0, - "lo": 324697103015424024 - "lo": 877278543849564325 + "lo": 382963069444144645 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 508390557163093503 - "lo": 979565848285628251 + "lo": 799919181772449963 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 324697103015424024 - "lo": 877278543849564325 + "lo": 382963069444144645 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 406291694612692996 - "lo": 927012459996508999 + "lo": 553479453239979016 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 508390557163093503 - "lo": 979565848285628251 + "lo": 799919181772449963 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 324697103015424024 - "lo": 877278543849564325 + "lo": 382963069444144645 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 406291694612692996 - "lo": 927012459996508999 + "lo": 553479453239979016 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 508390557163093503 - "lo": 979565848285628251 + "lo": 799919181772449963 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 324697103015424024 - "lo": 877278543849564325 + "lo": 382963069444144645 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.168.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.168.json index 5f7e2a92..ccd10cc6 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.168.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.168.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 252335505200450103 - "lo": 725615373373663290 + "lo": 577033060822001446 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 914545364028606738 - "lo": 910014517704159800 + "lo": 210143058102318809 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 252335505200450103 - "lo": 725615373373663290 + "lo": 577033060822001446 } }, { "i128": { "hi": 0, - "lo": 914545364028606738 - "lo": 910014517704159800 + "lo": 210143058102318809 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 252335505200450103 - "lo": 725615373373663290 + "lo": 577033060822001446 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 914545364028606738 - "lo": 910014517704159800 + "lo": 210143058102318809 } } ] @@ -228,6 +222,65 @@ } ] ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "function_name": "swap", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "bool": true + }, + { + "i128": { + "hi": 0, + "lo": 944568561295484 + } + }, + { + "i128": { + "hi": 2, + "lo": 13106511852580896768 + } + } + ] + } + }, + "sub_invocations": [ + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "transfer", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "i128": { + "hi": 0, + "lo": 345592394461908 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + } + ] + ], + [], [] ], "ledger": { @@ -532,8 +585,7 @@ "val": { "i128": { "hi": 0, - "lo": 480387621052924331 - "lo": 812601085428365666 + "lo": 348223336419713136 } } } @@ -582,7 +634,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +650,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +709,7 @@ "val": { "i128": { "hi": 0, - "lo": 252335505200450103 - "lo": 725615373373663290 + "lo": 576088492260705962 } } }, @@ -665,8 +720,7 @@ "val": { "i128": { "hi": 0, - "lo": 914545364028606738 - "lo": 910014517704159800 + "lo": 210488650496780717 } } }, @@ -693,13 +747,24 @@ "val": { "i128": { "hi": 0, - "lo": 480387621052924331 - "lo": 812601085428365666 + "lo": 348223336419713136 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -744,6 +809,39 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], [ { "contract_data": { @@ -788,8 +886,7 @@ "val": { "i128": { "hi": 0, - "lo": 252335505200450103 - "lo": 725615373373663290 + "lo": 576088492260705962 } } }, @@ -935,7 +1032,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 13107456421142192252 } } }, @@ -1120,8 +1217,7 @@ "val": { "i128": { "hi": 0, - "lo": 914545364028606738 - "lo": 910014517704159800 + "lo": 210488650496780717 } } }, @@ -1267,7 +1363,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 13106166260186434860 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.169.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.169.json index be17ae3c..7c1ca2f4 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.169.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.169.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 182254004798861654 - "lo": 174534172775898287 + "lo": 142467961209000566 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 888793369450974904 - "lo": 438508273035509427 + "lo": 785117293704093966 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 182254004798861654 - "lo": 174534172775898287 + "lo": 142467961209000566 } }, { "i128": { "hi": 0, - "lo": 888793369450974904 - "lo": 438508273035509427 + "lo": 785117293704093966 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 182254004798861654 - "lo": 174534172775898287 + "lo": 142467961209000566 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 888793369450974904 - "lo": 438508273035509427 + "lo": 785117293704093966 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": false - }, - { - "i128": { - "hi": 0, - "lo": 72907731163577760 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 16335266227598683 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 402475031549926583 - "lo": 276649017149239809 + "lo": 334445900175126026 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 198589271026460337 - "lo": 174534172775898287 + "lo": 142467961209000566 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 815885638287397144 - "lo": 438508273035509427 + "lo": 785117293704093966 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 402475031549926583 - "lo": 276649017149239809 + "lo": 334445900175126026 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -847,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 198589271026460337 - "lo": 174534172775898287 + "lo": 142467961209000566 } } }, @@ -994,7 +940,6 @@ "val": { "i128": { "hi": 2, - "lo": 13090176586353298085 "lo": 13106511852580896768 } } @@ -1180,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 815885638287397144 - "lo": 438508273035509427 + "lo": 785117293704093966 } } }, @@ -1327,7 +1271,6 @@ "val": { "i128": { "hi": 2, - "lo": 13179419583744474528 "lo": 13106511852580896768 } } diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.17.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.17.json index 08862de3..d8c79134 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.17.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.17.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 493361339277586932 - "lo": 381010115588466686 + "lo": 644378863246212651 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 574661963584900709 - "lo": 50339878413765971 + "lo": 444163318257264607 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 493361339277586932 - "lo": 381010115588466686 + "lo": 644378863246212651 } }, { "i128": { "hi": 0, - "lo": 574661963584900709 - "lo": 50339878413765971 + "lo": 444163318257264607 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 493361339277586932 - "lo": 381010115588466686 + "lo": 644378863246212651 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 574661963584900709 - "lo": 50339878413765971 + "lo": 444163318257264607 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": true - }, - { - "i128": { - "hi": 0, - "lo": 133897865832241753 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 27358758400458922 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 532462201462352166 - "lo": 138491887463267434 + "lo": 534985470937559141 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 493361339277586932 - "lo": 247112249756224933 + "lo": 644378863246212651 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 574661963584900709 - "lo": 77698636814224893 + "lo": 444163318257264607 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 532462201462352166 - "lo": 138491887463267434 + "lo": 534985470937559141 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -847,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 493361339277586932 - "lo": 247112249756224933 + "lo": 644378863246212651 } } }, @@ -995,7 +941,6 @@ "i128": { "hi": 2, "lo": 13106511852580896768 - "lo": 13240409718413138521 } } }, @@ -1180,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 574661963584900709 - "lo": 77698636814224893 + "lo": 444163318257264607 } } }, @@ -1328,7 +1272,6 @@ "i128": { "hi": 2, "lo": 13106511852580896768 - "lo": 13079153094180437846 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.170.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.170.json index 9687836f..421180c8 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.170.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.170.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 439567156214961702 - "lo": 259044792525017160 + "lo": 573420648569310284 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 987665257755318439 - "lo": 867953829741572933 + "lo": 278003750903457742 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 439567156214961702 - "lo": 259044792525017160 + "lo": 573420648569310284 } }, { "i128": { "hi": 0, - "lo": 987665257755318439 - "lo": 867953829741572933 + "lo": 278003750903457742 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 439567156214961702 - "lo": 259044792525017160 + "lo": 573420648569310284 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 987665257755318439 - "lo": 867953829741572933 + "lo": 278003750903457742 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": false - }, - { - "i128": { - "hi": 0, - "lo": 4336213624403300 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 1944204211639339 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 658896963601914373 - "lo": 474171825129561898 + "lo": 399265689920586236 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 441511360426601041 - "lo": 259044792525017160 + "lo": 573420648569310284 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 983329044130915139 - "lo": 867953829741572933 + "lo": 278003750903457742 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 658896963601914373 - "lo": 474171825129561898 + "lo": 399265689920586236 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -880,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 441511360426601041 - "lo": 259044792525017160 + "lo": 573420648569310284 } } }, @@ -1027,7 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 13104567648369257429 + "lo": 13106511852580896768 } } }, @@ -1212,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 983329044130915139 - "lo": 867953829741572933 + "lo": 278003750903457742 } } }, @@ -1359,7 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 13110848066205300068 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.171.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.171.json index d2e45729..41b4f6d0 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.171.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.171.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 151340425813554043 - "lo": 909919852055110171 + "lo": 403621667128383912 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 656172346830914057 - "lo": 365682191426253621 + "lo": 906236345880461068 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 151340425813554043 - "lo": 909919852055110171 + "lo": 403621667128383912 } }, { "i128": { "hi": 0, - "lo": 656172346830914057 - "lo": 365682191426253621 + "lo": 906236345880461068 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 151340425813554043 - "lo": 909919852055110171 + "lo": 403621667128383912 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 656172346830914057 - "lo": 365682191426253621 + "lo": 906236345880461068 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 315127596976954086 - "lo": 576837486231403976 + "lo": 604794696352908212 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 151340425813554043 - "lo": 909919852055110171 + "lo": 403621667128383912 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 656172346830914057 - "lo": 365682191426253621 + "lo": 906236345880461068 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 315127596976954086 - "lo": 576837486231403976 + "lo": 604794696352908212 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 151340425813554043 - "lo": 909919852055110171 + "lo": 403621667128383912 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 656172346830914057 - "lo": 365682191426253621 + "lo": 906236345880461068 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.172.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.172.json index b7a30b50..24c7f5d5 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.172.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.172.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 539144356285689299 - "lo": 541025570774952145 + "lo": 432770354609694848 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 6063322362682468 - "lo": 88914122683602604 + "lo": 790687558631739085 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 539144356285689299 - "lo": 541025570774952145 + "lo": 432770354609694848 } }, { "i128": { "hi": 0, - "lo": 6063322362682468 - "lo": 88914122683602604 + "lo": 790687558631739085 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 539144356285689299 - "lo": 541025570774952145 + "lo": 432770354609694848 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 6063322362682468 - "lo": 88914122683602604 + "lo": 790687558631739085 } } ] @@ -228,69 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": false - "bool": true - }, - { - "i128": { - "hi": 0, - "lo": 3431862581004832 - "lo": 186730140272734554 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", - "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 705249939815384899 - "lo": 47002879188368960 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -595,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 57175222187421921 - "lo": 219328096638005361 + "lo": 584966781223114933 } } } @@ -645,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -661,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -716,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 1244394296101074198 - "lo": 354295430502217591 + "lo": 432770354609694848 } } }, @@ -728,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 2631459781677636 - "lo": 135917001871971564 + "lo": 790687558631739085 } } }, @@ -756,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 57175222187421921 - "lo": 219328096638005361 + "lo": 584966781223114933 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -807,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -884,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 1244394296101074198 - "lo": 354295430502217591 + "lo": 432770354609694848 } } }, @@ -1031,8 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 12401261912765511869 - "lo": 13293241992853631322 + "lo": 13106511852580896768 } } }, @@ -1217,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 2631459781677636 - "lo": 135917001871971564 + "lo": 790687558631739085 } } }, @@ -1364,8 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 13109943715161901600 - "lo": 13059508973392527808 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.173.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.173.json index 54f0392a..874ccb98 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.173.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.173.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 719258829687577769 - "lo": 194724992077736669 + "lo": 18781218452961423 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 134135458080732746 - "lo": 930387942717779097 + "lo": 64639659870178602 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 719258829687577769 - "lo": 194724992077736669 + "lo": 18781218452961423 } }, { "i128": { "hi": 0, - "lo": 134135458080732746 - "lo": 930387942717779097 + "lo": 64639659870178602 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 719258829687577769 - "lo": 194724992077736669 + "lo": 18781218452961423 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 134135458080732746 - "lo": 930387942717779097 + "lo": 64639659870178602 } } ] @@ -228,6 +222,65 @@ } ] ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "function_name": "swap", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "bool": true + }, + { + "i128": { + "hi": 0, + "lo": 14678294193126005 + } + }, + { + "i128": { + "hi": 2, + "lo": 13106511852580896768 + } + } + ] + } + }, + "sub_invocations": [ + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "transfer", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "i128": { + "hi": 0, + "lo": 231945521919722334 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + } + ] + ], + [], [] ], "ledger": { @@ -532,8 +585,7 @@ "val": { "i128": { "hi": 0, - "lo": 310609260323569524 - "lo": 425640440718385278 + "lo": 34842668852241332 } } } @@ -582,7 +634,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +650,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +709,7 @@ "val": { "i128": { "hi": 0, - "lo": 719258829687577769 - "lo": 194724992077736669 + "lo": 4102924259835418 } } }, @@ -665,8 +720,7 @@ "val": { "i128": { "hi": 0, - "lo": 134135458080732746 - "lo": 930387942717779097 + "lo": 296585181789900936 } } }, @@ -693,13 +747,24 @@ "val": { "i128": { "hi": 0, - "lo": 310609260323569524 - "lo": 425640440718385278 + "lo": 34842668852241332 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -744,6 +809,39 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], [ { "contract_data": { @@ -788,8 +886,7 @@ "val": { "i128": { "hi": 0, - "lo": 719258829687577769 - "lo": 194724992077736669 + "lo": 4102924259835418 } } }, @@ -935,7 +1032,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 13121190146774022773 } } }, @@ -1120,8 +1217,7 @@ "val": { "i128": { "hi": 0, - "lo": 134135458080732746 - "lo": 930387942717779097 + "lo": 296585181789900936 } } }, @@ -1267,7 +1363,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 12874566330661174434 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.174.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.174.json index 75c581e4..4c885e27 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.174.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.174.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 527602160134771324 - "lo": 975909506552964591 + "lo": 691094185374036763 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 401756715251867475 - "lo": 722222143442076453 + "lo": 916167907723477822 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 527602160134771324 - "lo": 975909506552964591 + "lo": 691094185374036763 } }, { "i128": { "hi": 0, - "lo": 401756715251867475 - "lo": 722222143442076453 + "lo": 916167907723477822 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 527602160134771324 - "lo": 975909506552964591 + "lo": 691094185374036763 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 401756715251867475 - "lo": 722222143442076453 + "lo": 916167907723477822 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 460399512179949543 - "lo": 839537643961354030 + "lo": 795712456766885476 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 527602160134771324 - "lo": 975909506552964591 + "lo": 691094185374036763 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 401756715251867475 - "lo": 722222143442076453 + "lo": 916167907723477822 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 460399512179949543 - "lo": 839537643961354030 + "lo": 795712456766885476 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 527602160134771324 - "lo": 975909506552964591 + "lo": 691094185374036763 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 401756715251867475 - "lo": 722222143442076453 + "lo": 916167907723477822 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.175.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.175.json index 7ae4ebe6..6aabee15 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.175.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.175.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 718464688512307500 - "lo": 222779073082279738 + "lo": 220041347491474825 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 203678089031517445 - "lo": 567723519005209267 + "lo": 325587267247397638 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 718464688512307500 - "lo": 222779073082279738 + "lo": 220041347491474825 } }, { "i128": { "hi": 0, - "lo": 203678089031517445 - "lo": 567723519005209267 + "lo": 325587267247397638 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 718464688512307500 - "lo": 222779073082279738 + "lo": 220041347491474825 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 203678089031517445 - "lo": 567723519005209267 + "lo": 325587267247397638 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": false - }, - { - "i128": { - "hi": 0, - "lo": 57021908306288976 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 24949035108124544 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 382538252718353927 - "lo": 355635936501066417 + "lo": 267661467176701218 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 718464688512307500 - "lo": 247728108190404282 + "lo": 220041347491474825 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 203678089031517445 - "lo": 510701610698920291 + "lo": 325587267247397638 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 382538252718353927 - "lo": 355635936501066417 + "lo": 267661467176701218 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -880,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 718464688512307500 - "lo": 247728108190404282 + "lo": 220041347491474825 } } }, @@ -1027,7 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 13081562817472772224 + "lo": 13106511852580896768 } } }, @@ -1212,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 203678089031517445 - "lo": 510701610698920291 + "lo": 325587267247397638 } } }, @@ -1359,7 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 13163533760887185744 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.176.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.176.json index ae21eeef..af40fc7b 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.176.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.176.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 434402931626628908 - "lo": 906819701590956513 + "lo": 873591933358776118 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 902908141355851553 - "lo": 389068212482772979 + "lo": 436641670158100512 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 434402931626628908 - "lo": 906819701590956513 + "lo": 873591933358776118 } }, { "i128": { "hi": 0, - "lo": 902908141355851553 - "lo": 389068212482772979 + "lo": 436641670158100512 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 434402931626628908 - "lo": 906819701590956513 + "lo": 873591933358776118 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 902908141355851553 - "lo": 389068212482772979 + "lo": 436641670158100512 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 626279445291423061 - "lo": 593982087560016454 + "lo": 617613666314485017 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 434402931626628908 - "lo": 906819701590956513 + "lo": 873591933358776118 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 902908141355851553 - "lo": 389068212482772979 + "lo": 436641670158100512 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 626279445291423061 - "lo": 593982087560016454 + "lo": 617613666314485017 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 434402931626628908 - "lo": 906819701590956513 + "lo": 873591933358776118 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 902908141355851553 - "lo": 389068212482772979 + "lo": 436641670158100512 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.177.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.177.json index 3f4b0a22..0eb31c6a 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.177.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.177.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 862204748840870966 - "lo": 401873230663102558 + "lo": 648749209489674065 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 864104266851607404 - "lo": 261955562493104618 + "lo": 348354291259675153 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 862204748840870966 - "lo": 401873230663102558 + "lo": 648749209489674065 } }, { "i128": { "hi": 0, - "lo": 864104266851607404 - "lo": 261955562493104618 + "lo": 348354291259675153 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 862204748840870966 - "lo": 401873230663102558 + "lo": 648749209489674065 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 864104266851607404 - "lo": 261955562493104618 + "lo": 348354291259675153 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 863153985319603969 - "lo": 324457898947265898 + "lo": 475388863013270359 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 862204748840870966 - "lo": 401873230663102558 + "lo": 648749209489674065 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 864104266851607404 - "lo": 261955562493104618 + "lo": 348354291259675153 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 863153985319603969 - "lo": 324457898947265898 + "lo": 475388863013270359 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 862204748840870966 - "lo": 401873230663102558 + "lo": 648749209489674065 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 864104266851607404 - "lo": 261955562493104618 + "lo": 348354291259675153 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.178.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.178.json index 5375769d..ea95adb7 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.178.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.178.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 993662465813757587 - "lo": 411190267101302245 + "lo": 448098087143005393 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 426975968346072776 - "lo": 190895455064062134 + "lo": 144770387363335316 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 993662465813757587 - "lo": 411190267101302245 + "lo": 448098087143005393 } }, { "i128": { "hi": 0, - "lo": 426975968346072776 - "lo": 190895455064062134 + "lo": 144770387363335316 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 993662465813757587 - "lo": 411190267101302245 + "lo": 448098087143005393 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 426975968346072776 - "lo": 190895455064062134 + "lo": 144770387363335316 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 651360110499542013 - "lo": 280168437116346760 + "lo": 254698515214483484 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 993662465813757587 - "lo": 411190267101302245 + "lo": 448098087143005393 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 426975968346072776 - "lo": 190895455064062134 + "lo": 144770387363335316 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 651360110499542013 - "lo": 280168437116346760 + "lo": 254698515214483484 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 993662465813757587 - "lo": 411190267101302245 + "lo": 448098087143005393 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 426975968346072776 - "lo": 190895455064062134 + "lo": 144770387363335316 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.179.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.179.json index 0d1028f8..e2c670ed 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.179.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.179.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 235436880853818353 - "lo": 104007868477685813 + "lo": 904345540067841427 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 691031912727492390 - "lo": 463935302587078499 + "lo": 72161383206036821 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 235436880853818353 - "lo": 104007868477685813 + "lo": 904345540067841427 } }, { "i128": { "hi": 0, - "lo": 691031912727492390 - "lo": 463935302587078499 + "lo": 72161383206036821 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 235436880853818353 - "lo": 104007868477685813 + "lo": 904345540067841427 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 691031912727492390 - "lo": 463935302587078499 + "lo": 72161383206036821 } } ] @@ -246,7 +240,7 @@ { "i128": { "hi": 0, - "lo": 151350498661058529 + "lo": 6975117349413549 } }, { @@ -274,7 +268,7 @@ { "i128": { "hi": 0, - "lo": 50511123988844834 + "lo": 97058741962298051 } } ] @@ -591,8 +585,7 @@ "val": { "i128": { "hi": 0, - "lo": 403353936516068760 - "lo": 219665477336863817 + "lo": 255458069098444865 } } } @@ -641,7 +634,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +650,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +709,7 @@ "val": { "i128": { "hi": 0, - "lo": 235436880853818353 - "lo": 154518992466530647 + "lo": 1001404282030139478 } } }, @@ -724,8 +720,7 @@ "val": { "i128": { "hi": 0, - "lo": 691031912727492390 - "lo": 312584803926019970 + "lo": 65186265856623272 } } }, @@ -752,13 +747,24 @@ "val": { "i128": { "hi": 0, - "lo": 403353936516068760 - "lo": 219665477336863817 + "lo": 255458069098444865 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -880,8 +886,7 @@ "val": { "i128": { "hi": 0, - "lo": 235436880853818353 - "lo": 154518992466530647 + "lo": 1001404282030139478 } } }, @@ -1027,7 +1032,7 @@ "val": { "i128": { "hi": 2, - "lo": 13056000728592051934 + "lo": 13009453110618598717 } } }, @@ -1212,8 +1217,7 @@ "val": { "i128": { "hi": 0, - "lo": 691031912727492390 - "lo": 312584803926019970 + "lo": 65186265856623272 } } }, @@ -1359,7 +1363,7 @@ "val": { "i128": { "hi": 2, - "lo": 13257862351241955297 + "lo": 13113486969930310317 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.18.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.18.json index 85346d29..be5c3e87 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.18.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.18.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 903313724239798429 - "lo": 241895524135702605 + "lo": 977533770905741010 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 634647778065458457 - "lo": 793791412637213173 + "lo": 291780880198882722 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 903313724239798429 - "lo": 241895524135702605 + "lo": 977533770905741010 } }, { "i128": { "hi": 0, - "lo": 634647778065458457 - "lo": 793791412637213173 + "lo": 291780880198882722 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 903313724239798429 - "lo": 241895524135702605 + "lo": 977533770905741010 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 634647778065458457 - "lo": 793791412637213173 + "lo": 291780880198882722 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 757156554475243471 - "lo": 438194693959544043 + "lo": 534065224573750061 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 903313724239798429 - "lo": 241895524135702605 + "lo": 977533770905741010 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 634647778065458457 - "lo": 793791412637213173 + "lo": 291780880198882722 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 757156554475243471 - "lo": 438194693959544043 + "lo": 534065224573750061 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 903313724239798429 - "lo": 241895524135702605 + "lo": 977533770905741010 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 634647778065458457 - "lo": 793791412637213173 + "lo": 291780880198882722 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.180.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.180.json index 505a8ded..16cb2f0b 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.180.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.180.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 957333669278168149 - "lo": 260249070896497904 + "lo": 606350979438103216 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 594165421303288591 - "lo": 828127961339594376 + "lo": 342547292894333713 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 957333669278168149 - "lo": 260249070896497904 + "lo": 606350979438103216 } }, { "i128": { "hi": 0, - "lo": 594165421303288591 - "lo": 828127961339594376 + "lo": 342547292894333713 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 957333669278168149 - "lo": 260249070896497904 + "lo": 606350979438103216 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 594165421303288591 - "lo": 828127961339594376 + "lo": 342547292894333713 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 754197960043970103 - "lo": 464240813072310965 + "lo": 455745418573077990 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 957333669278168149 - "lo": 260249070896497904 + "lo": 606350979438103216 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 594165421303288591 - "lo": 828127961339594376 + "lo": 342547292894333713 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 754197960043970103 - "lo": 464240813072310965 + "lo": 455745418573077990 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 957333669278168149 - "lo": 260249070896497904 + "lo": 606350979438103216 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 594165421303288591 - "lo": 828127961339594376 + "lo": 342547292894333713 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.181.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.181.json index 448dc1d2..99c7118e 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.181.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.181.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 385861862783888630 - "lo": 460602140695126234 + "lo": 740461365827075813 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 201164597985084411 - "lo": 817926379140634954 + "lo": 901335821192736708 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 385861862783888630 - "lo": 460602140695126234 + "lo": 740461365827075813 } }, { "i128": { "hi": 0, - "lo": 201164597985084411 - "lo": 817926379140634954 + "lo": 901335821192736708 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 385861862783888630 - "lo": 460602140695126234 + "lo": 740461365827075813 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 201164597985084411 - "lo": 817926379140634954 + "lo": 901335821192736708 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 278606795510620595 - "lo": 613790388620732561 + "lo": 816948194948273821 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 385861862783888630 - "lo": 460602140695126234 + "lo": 740461365827075813 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 201164597985084411 - "lo": 817926379140634954 + "lo": 901335821192736708 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 278606795510620595 - "lo": 613790388620732561 + "lo": 816948194948273821 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 385861862783888630 - "lo": 460602140695126234 + "lo": 740461365827075813 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 201164597985084411 - "lo": 817926379140634954 + "lo": 901335821192736708 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.182.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.182.json index a6eba90f..46e277d1 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.182.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.182.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 42535471549856602 - "lo": 266238197227785200 + "lo": 821913201266339113 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 833864245261277017 - "lo": 707449551719825790 + "lo": 68091724029441868 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 42535471549856602 - "lo": 266238197227785200 + "lo": 821913201266339113 } }, { "i128": { "hi": 0, - "lo": 833864245261277017 - "lo": 707449551719825790 + "lo": 68091724029441868 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 42535471549856602 - "lo": 266238197227785200 + "lo": 821913201266339113 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 833864245261277017 - "lo": 707449551719825790 + "lo": 68091724029441868 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 188331645988542500 - "lo": 433993194969104561 + "lo": 236570257802587418 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 42535471549856602 - "lo": 266238197227785200 + "lo": 821913201266339113 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 833864245261277017 - "lo": 707449551719825790 + "lo": 68091724029441868 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 188331645988542500 - "lo": 433993194969104561 + "lo": 236570257802587418 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 42535471549856602 - "lo": 266238197227785200 + "lo": 821913201266339113 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 833864245261277017 - "lo": 707449551719825790 + "lo": 68091724029441868 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.183.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.183.json index eba68a5f..fc7e3b3c 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.183.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.183.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 735343729566362637 - "lo": 205705386189829676 + "lo": 353494296580972891 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 6249766163183271 - "lo": 639880341789477515 + "lo": 972873658348446688 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 735343729566362637 - "lo": 205705386189829676 + "lo": 353494296580972891 } }, { "i128": { "hi": 0, - "lo": 6249766163183271 - "lo": 639880341789477515 + "lo": 972873658348446688 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 735343729566362637 - "lo": 205705386189829676 + "lo": 353494296580972891 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 6249766163183271 - "lo": 639880341789477515 + "lo": 972873658348446688 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": true - }, - { - "i128": { - "hi": 0, - "lo": 85220433094560402 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 821706302937523 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 67791786813395345 - "lo": 362804124594917857 + "lo": 586434386372458471 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 650123296471802235 - "lo": 205705386189829676 + "lo": 353494296580972891 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 7071472466120794 - "lo": 639880341789477515 + "lo": 972873658348446688 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 67791786813395345 - "lo": 362804124594917857 + "lo": 586434386372458471 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -847,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 650123296471802235 - "lo": 205705386189829676 + "lo": 353494296580972891 } } }, @@ -994,7 +940,6 @@ "val": { "i128": { "hi": 2, - "lo": 13191732285675457170 "lo": 13106511852580896768 } } @@ -1180,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 7071472466120794 - "lo": 639880341789477515 + "lo": 972873658348446688 } } }, @@ -1327,7 +1271,6 @@ "val": { "i128": { "hi": 2, - "lo": 13105690146277959245 "lo": 13106511852580896768 } } diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.184.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.184.json index 25f21f03..b4bbbc80 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.184.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.184.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 526425551927471178 - "lo": 360725578564159560 + "lo": 41602066309299773 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 85963985925935032 - "lo": 406551087267490247 + "lo": 142198626713809413 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 526425551927471178 - "lo": 360725578564159560 + "lo": 41602066309299773 } }, { "i128": { "hi": 0, - "lo": 85963985925935032 - "lo": 406551087267490247 + "lo": 142198626713809413 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 526425551927471178 - "lo": 360725578564159560 + "lo": 41602066309299773 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 85963985925935032 - "lo": 406551087267490247 + "lo": 142198626713809413 } } ] @@ -246,7 +240,7 @@ { "i128": { "hi": 0, - "lo": 867408954828469 + "lo": 3428570366965337 } }, { @@ -274,7 +268,7 @@ { "i128": { "hi": 0, - "lo": 5382122933845383 + "lo": 1030948678247468 } } ] @@ -591,8 +585,7 @@ "val": { "i128": { "hi": 0, - "lo": 212729026550082520 - "lo": 382953490871219951 + "lo": 76913956455504649 } } } @@ -641,7 +634,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +650,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +709,7 @@ "val": { "i128": { "hi": 0, - "lo": 531807674861316561 - "lo": 360725578564159560 + "lo": 42633014987547241 } } }, @@ -724,8 +720,7 @@ "val": { "i128": { "hi": 0, - "lo": 85096576971106563 - "lo": 406551087267490247 + "lo": 138770056346844076 } } }, @@ -752,13 +747,24 @@ "val": { "i128": { "hi": 0, - "lo": 212729026550082520 - "lo": 382953490871219951 + "lo": 76913956455504649 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -880,8 +886,7 @@ "val": { "i128": { "hi": 0, - "lo": 531807674861316561 - "lo": 360725578564159560 + "lo": 42633014987547241 } } }, @@ -1027,7 +1032,7 @@ "val": { "i128": { "hi": 2, - "lo": 13101129729647051385 + "lo": 13105480903902649300 } } }, @@ -1212,8 +1217,7 @@ "val": { "i128": { "hi": 0, - "lo": 85096576971106563 - "lo": 406551087267490247 + "lo": 138770056346844076 } } }, @@ -1359,7 +1363,7 @@ "val": { "i128": { "hi": 2, - "lo": 13107379261535725237 + "lo": 13109940422947862105 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.185.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.185.json index 92f180c1..a941894f 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.185.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.185.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 409793706579925864 - "lo": 908283350975367788 + "lo": 172159202920819860 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 362331351541355510 - "lo": 55087983289471472 + "lo": 469173691562903462 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 409793706579925864 - "lo": 908283350975367788 + "lo": 172159202920819860 } }, { "i128": { "hi": 0, - "lo": 362331351541355510 - "lo": 55087983289471472 + "lo": 469173691562903462 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 409793706579925864 - "lo": 908283350975367788 + "lo": 172159202920819860 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 362331351541355510 - "lo": 55087983289471472 + "lo": 469173691562903462 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": true - }, - { - "i128": { - "hi": 0, - "lo": 25766481605733825 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 1613220824795974 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 385332463670330025 - "lo": 223686159743145960 + "lo": 284205152611433218 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 409793706579925864 - "lo": 882516869369633963 + "lo": 172159202920819860 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 362331351541355510 - "lo": 56701204114267446 + "lo": 469173691562903462 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 385332463670330025 - "lo": 223686159743145960 + "lo": 284205152611433218 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -880,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 409793706579925864 - "lo": 882516869369633963 + "lo": 172159202920819860 } } }, @@ -1027,7 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 13132278334186630593 + "lo": 13106511852580896768 } } }, @@ -1212,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 362331351541355510 - "lo": 56701204114267446 + "lo": 469173691562903462 } } }, @@ -1359,7 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 13104898631756100794 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.186.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.186.json index 6d86a5ef..4977b2b5 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.186.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.186.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 313959078076008603 - "lo": 790427265663609386 + "lo": 884879424462914938 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 516387021162067016 - "lo": 326578123314825456 + "lo": 477871482976098 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 313959078076008603 - "lo": 790427265663609386 + "lo": 884879424462914938 } }, { "i128": { "hi": 0, - "lo": 516387021162067016 - "lo": 326578123314825456 + "lo": 477871482976098 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 313959078076008603 - "lo": 790427265663609386 + "lo": 884879424462914938 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 516387021162067016 - "lo": 326578123314825456 + "lo": 477871482976098 } } ] @@ -228,6 +222,65 @@ } ] ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "function_name": "swap", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "bool": true + }, + { + "i128": { + "hi": 0, + "lo": 687564471278523345 + } + }, + { + "i128": { + "hi": 2, + "lo": 13106511852580896768 + } + } + ] + } + }, + "sub_invocations": [ + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "transfer", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "i128": { + "hi": 0, + "lo": 1670203482192579 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + } + ] + ], + [], [] ], "ledger": { @@ -532,8 +585,7 @@ "val": { "i128": { "hi": 0, - "lo": 402646734861291163 - "lo": 508071110217153093 + "lo": 20563527003486762 } } } @@ -582,7 +634,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +650,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +709,7 @@ "val": { "i128": { "hi": 0, - "lo": 313959078076008603 - "lo": 790427265663609386 + "lo": 197314953184391593 } } }, @@ -665,8 +720,7 @@ "val": { "i128": { "hi": 0, - "lo": 516387021162067016 - "lo": 326578123314825456 + "lo": 2148074965168677 } } }, @@ -693,13 +747,24 @@ "val": { "i128": { "hi": 0, - "lo": 402646734861291163 - "lo": 508071110217153093 + "lo": 20563527003486762 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -744,6 +809,39 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], [ { "contract_data": { @@ -788,8 +886,7 @@ "val": { "i128": { "hi": 0, - "lo": 313959078076008603 - "lo": 790427265663609386 + "lo": 197314953184391593 } } }, @@ -935,7 +1032,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 13794076323859420113 } } }, @@ -1120,8 +1217,7 @@ "val": { "i128": { "hi": 0, - "lo": 516387021162067016 - "lo": 326578123314825456 + "lo": 2148074965168677 } } }, @@ -1267,7 +1363,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 13104841649098704189 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.187.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.187.json index a45cc91b..17718da4 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.187.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.187.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 93742305145087937 - "lo": 897035422981739133 + "lo": 128067893320436180 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 301883840433806755 - "lo": 512798613533939282 + "lo": 260831397950375344 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 93742305145087937 - "lo": 897035422981739133 + "lo": 128067893320436180 } }, { "i128": { "hi": 0, - "lo": 301883840433806755 - "lo": 512798613533939282 + "lo": 260831397950375344 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 93742305145087937 - "lo": 897035422981739133 + "lo": 128067893320436180 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 301883840433806755 - "lo": 512798613533939282 + "lo": 260831397950375344 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 168223919489224090 - "lo": 678231908122779638 + "lo": 182767961216754031 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 93742305145087937 - "lo": 897035422981739133 + "lo": 128067893320436180 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 301883840433806755 - "lo": 512798613533939282 + "lo": 260831397950375344 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 168223919489224090 - "lo": 678231908122779638 + "lo": 182767961216754031 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 93742305145087937 - "lo": 897035422981739133 + "lo": 128067893320436180 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 301883840433806755 - "lo": 512798613533939282 + "lo": 260831397950375344 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.188.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.188.json index bd483ea1..456bb4ec 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.188.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.188.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 795272708136456763 - "lo": 544929348209108737 + "lo": 679985218609989228 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 514081621784528672 - "lo": 500218953008964228 + "lo": 942911367922155072 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 795272708136456763 - "lo": 544929348209108737 + "lo": 679985218609989228 } }, { "i128": { "hi": 0, - "lo": 514081621784528672 - "lo": 500218953008964228 + "lo": 942911367922155072 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 795272708136456763 - "lo": 544929348209108737 + "lo": 679985218609989228 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 514081621784528672 - "lo": 500218953008964228 + "lo": 942911367922155072 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 639402129774185084 - "lo": 522095765185868624 + "lo": 800728288901042012 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 795272708136456763 - "lo": 544929348209108737 + "lo": 679985218609989228 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 514081621784528672 - "lo": 500218953008964228 + "lo": 942911367922155072 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 639402129774185084 - "lo": 522095765185868624 + "lo": 800728288901042012 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 795272708136456763 - "lo": 544929348209108737 + "lo": 679985218609989228 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 514081621784528672 - "lo": 500218953008964228 + "lo": 942911367922155072 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.189.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.189.json index c8fbd530..f2d43187 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.189.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.189.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 931500009676326303 - "lo": 597546027299439248 + "lo": 729912757088194503 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 62686994550030030 - "lo": 503684246279954683 + "lo": 365884031292404562 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 931500009676326303 - "lo": 597546027299439248 + "lo": 729912757088194503 } }, { "i128": { "hi": 0, - "lo": 62686994550030030 - "lo": 503684246279954683 + "lo": 365884031292404562 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 931500009676326303 - "lo": 597546027299439248 + "lo": 729912757088194503 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 62686994550030030 - "lo": 503684246279954683 + "lo": 365884031292404562 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 241646303571837794 - "lo": 548611447545436553 + "lo": 516781793463336174 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 931500009676326303 - "lo": 597546027299439248 + "lo": 729912757088194503 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 62686994550030030 - "lo": 503684246279954683 + "lo": 365884031292404562 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 241646303571837794 - "lo": 548611447545436553 + "lo": 516781793463336174 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 931500009676326303 - "lo": 597546027299439248 + "lo": 729912757088194503 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 62686994550030030 - "lo": 503684246279954683 + "lo": 365884031292404562 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.19.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.19.json index 6ea6c265..bcbec590 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.19.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.19.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 503775665204939680 - "lo": 319539725619279586 + "lo": 957804625921714796 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 858635958416379995 - "lo": 672180319817902625 + "lo": 494812416383128713 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 503775665204939680 - "lo": 319539725619279586 + "lo": 957804625921714796 } }, { "i128": { "hi": 0, - "lo": 858635958416379995 - "lo": 672180319817902625 + "lo": 494812416383128713 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 503775665204939680 - "lo": 319539725619279586 + "lo": 957804625921714796 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 858635958416379995 - "lo": 672180319817902625 + "lo": 494812416383128713 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 657692862299791693 - "lo": 463452602712825645 + "lo": 688428370547918644 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 503775665204939680 - "lo": 319539725619279586 + "lo": 957804625921714796 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 858635958416379995 - "lo": 672180319817902625 + "lo": 494812416383128713 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 657692862299791693 - "lo": 463452602712825645 + "lo": 688428370547918644 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 503775665204939680 - "lo": 319539725619279586 + "lo": 957804625921714796 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 858635958416379995 - "lo": 672180319817902625 + "lo": 494812416383128713 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.190.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.190.json index 57f930f8..e37d3d6c 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.190.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.190.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 210248996999578769 - "lo": 88119605872847163 + "lo": 878762186189042471 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 39241688301145729 - "lo": 870589529353924076 + "lo": 33361534072300994 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 210248996999578769 - "lo": 88119605872847163 + "lo": 878762186189042471 } }, { "i128": { "hi": 0, - "lo": 39241688301145729 - "lo": 870589529353924076 + "lo": 33361534072300994 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 210248996999578769 - "lo": 88119605872847163 + "lo": 878762186189042471 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 39241688301145729 - "lo": 870589529353924076 + "lo": 33361534072300994 } } ] @@ -246,7 +240,7 @@ { "i128": { "hi": 0, - "lo": 52338567454384193 + "lo": 254000933910070932 } }, { @@ -274,7 +268,7 @@ { "i128": { "hi": 0, - "lo": 13045584497881637 + "lo": 13604170964022956 } } ] @@ -591,8 +585,7 @@ "val": { "i128": { "hi": 0, - "lo": 90832403942018366 - "lo": 276976544500965452 + "lo": 171221653467064294 } } } @@ -641,7 +634,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +650,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +709,7 @@ "val": { "i128": { "hi": 0, - "lo": 157910429545194576 - "lo": 88119605872847163 + "lo": 624761252278971539 } } }, @@ -724,8 +720,7 @@ "val": { "i128": { "hi": 0, - "lo": 52287272799027366 - "lo": 870589529353924076 + "lo": 46965705036323950 } } }, @@ -752,13 +747,24 @@ "val": { "i128": { "hi": 0, - "lo": 90832403942018366 - "lo": 276976544500965452 + "lo": 171221653467064294 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -880,8 +886,7 @@ "val": { "i128": { "hi": 0, - "lo": 157910429545194576 - "lo": 88119605872847163 + "lo": 624761252278971539 } } }, @@ -1027,7 +1032,7 @@ "val": { "i128": { "hi": 2, - "lo": 13158850420035280961 + "lo": 13360512786490967700 } } }, @@ -1212,8 +1217,7 @@ "val": { "i128": { "hi": 0, - "lo": 52287272799027366 - "lo": 870589529353924076 + "lo": 46965705036323950 } } }, @@ -1359,7 +1363,7 @@ "val": { "i128": { "hi": 2, - "lo": 13093466268083015131 + "lo": 13092907681616873812 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.191.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.191.json index 122574b2..a4a59621 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.191.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.191.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 88280635648752449 - "lo": 163972800279877129 + "lo": 885232976850562222 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 206965036317597002 - "lo": 611981524501788241 + "lo": 778801162098166326 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 88280635648752449 - "lo": 163972800279877129 + "lo": 885232976850562222 } }, { "i128": { "hi": 0, - "lo": 206965036317597002 - "lo": 611981524501788241 + "lo": 778801162098166326 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 88280635648752449 - "lo": 163972800279877129 + "lo": 885232976850562222 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 206965036317597002 - "lo": 611981524501788241 + "lo": 778801162098166326 } } ] @@ -241,12 +235,12 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" }, { - "bool": true + "bool": false }, { "i128": { "hi": 0, - "lo": 68532708957551613 + "lo": 18230385322086892 } }, { @@ -262,7 +256,7 @@ { "function": { "contract_fn": { - "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", "function_name": "transfer", "args": [ { @@ -274,7 +268,7 @@ { "i128": { "hi": 0, - "lo": 720407488015708387 + "lo": 21282303839630691 } } ] @@ -591,8 +585,7 @@ "val": { "i128": { "hi": 0, - "lo": 135170281360898998 - "lo": 316778036315819179 + "lo": 830313477608810724 } } } @@ -641,7 +634,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +650,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +709,7 @@ "val": { "i128": { "hi": 0, - "lo": 19747926691200836 - "lo": 163972800279877129 + "lo": 906515280690192913 } } }, @@ -724,8 +720,7 @@ "val": { "i128": { "hi": 0, - "lo": 927372524333305389 - "lo": 611981524501788241 + "lo": 760570776776079434 } } }, @@ -752,13 +747,24 @@ "val": { "i128": { "hi": 0, - "lo": 135170281360898998 - "lo": 316778036315819179 + "lo": 830313477608810724 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -880,8 +886,7 @@ "val": { "i128": { "hi": 0, - "lo": 19747926691200836 - "lo": 163972800279877129 + "lo": 906515280690192913 } } }, @@ -1027,7 +1032,7 @@ "val": { "i128": { "hi": 2, - "lo": 13175044561538448381 + "lo": 13085229548741266077 } } }, @@ -1212,8 +1217,7 @@ "val": { "i128": { "hi": 0, - "lo": 927372524333305389 - "lo": 611981524501788241 + "lo": 760570776776079434 } } }, @@ -1359,7 +1363,7 @@ "val": { "i128": { "hi": 2, - "lo": 12386104364565188381 + "lo": 13124742237902983660 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.192.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.192.json index ca0df8c2..325bd042 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.192.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.192.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 209209461975353994 - "lo": 22925097489313159 + "lo": 892777310487258007 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 748045368921145386 - "lo": 360447623285761383 + "lo": 600204302233442750 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 209209461975353994 - "lo": 22925097489313159 + "lo": 892777310487258007 } }, { "i128": { "hi": 0, - "lo": 748045368921145386 - "lo": 360447623285761383 + "lo": 600204302233442750 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 209209461975353994 - "lo": 22925097489313159 + "lo": 892777310487258007 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 748045368921145386 - "lo": 360447623285761383 + "lo": 600204302233442750 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": false - }, - { - "i128": { - "hi": 0, - "lo": 65426869900124684 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 5099406213308180 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 395598494897475584 - "lo": 90902678198264893 + "lo": 732016927871790655 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 209209461975353994 - "lo": 28024503702621339 + "lo": 892777310487258007 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 748045368921145386 - "lo": 295020753385636699 + "lo": 600204302233442750 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 395598494897475584 - "lo": 90902678198264893 + "lo": 732016927871790655 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -880,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 209209461975353994 - "lo": 28024503702621339 + "lo": 892777310487258007 } } }, @@ -1027,7 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 13101412446367588588 + "lo": 13106511852580896768 } } }, @@ -1212,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 748045368921145386 - "lo": 295020753385636699 + "lo": 600204302233442750 } } }, @@ -1359,7 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 13171938722481021452 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.193.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.193.json index d763f1fe..d2da6562 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.193.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.193.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 207259697464264193 - "lo": 506478580291433646 + "lo": 734387499066425061 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 515029500997020822 - "lo": 882178287974097463 + "lo": 868324343460490385 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 207259697464264193 - "lo": 506478580291433646 + "lo": 734387499066425061 } }, { "i128": { "hi": 0, - "lo": 515029500997020822 - "lo": 882178287974097463 + "lo": 868324343460490385 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 207259697464264193 - "lo": 506478580291433646 + "lo": 734387499066425061 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 515029500997020822 - "lo": 882178287974097463 + "lo": 868324343460490385 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 326718316844668947 - "lo": 668434295093428307 + "lo": 798552780329794504 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 207259697464264193 - "lo": 506478580291433646 + "lo": 734387499066425061 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 515029500997020822 - "lo": 882178287974097463 + "lo": 868324343460490385 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 326718316844668947 - "lo": 668434295093428307 + "lo": 798552780329794504 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 207259697464264193 - "lo": 506478580291433646 + "lo": 734387499066425061 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 515029500997020822 - "lo": 882178287974097463 + "lo": 868324343460490385 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.194.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.194.json index 29cefba8..b469aecf 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.194.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.194.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 67119494323612274 - "lo": 929907756982742819 + "lo": 776062039876536363 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 717672927787023821 - "lo": 758973917977015642 + "lo": 950657613976525610 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 67119494323612274 - "lo": 929907756982742819 + "lo": 776062039876536363 } }, { "i128": { "hi": 0, - "lo": 717672927787023821 - "lo": 758973917977015642 + "lo": 950657613976525610 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 67119494323612274 - "lo": 929907756982742819 + "lo": 776062039876536363 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 717672927787023821 - "lo": 758973917977015642 + "lo": 950657613976525610 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": true - }, - { - "i128": { - "hi": 0, - "lo": 9680894464315067 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 121322973681282704 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 219476294853934844 - "lo": 840104596865420587 + "lo": 858934972583363455 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 57438599859297207 - "lo": 929907756982742819 + "lo": 776062039876536363 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 838995901468306525 - "lo": 758973917977015642 + "lo": 950657613976525610 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 219476294853934844 - "lo": 840104596865420587 + "lo": 858934972583363455 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -880,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 57438599859297207 - "lo": 929907756982742819 + "lo": 776062039876536363 } } }, @@ -1027,7 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 13116192747045211835 + "lo": 13106511852580896768 } } }, @@ -1212,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 838995901468306525 - "lo": 758973917977015642 + "lo": 950657613976525610 } } }, @@ -1359,7 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 12985188878899614064 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.195.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.195.json index d5169684..2781b0d4 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.195.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.195.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 13525919519244461 - "lo": 278314740249977491 + "lo": 514551444089066435 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 591048269075866346 - "lo": 290072641113740205 + "lo": 276713547820741487 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 13525919519244461 - "lo": 278314740249977491 + "lo": 514551444089066435 } }, { "i128": { "hi": 0, - "lo": 591048269075866346 - "lo": 290072641113740205 + "lo": 276713547820741487 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 13525919519244461 - "lo": 278314740249977491 + "lo": 514551444089066435 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 591048269075866346 - "lo": 290072641113740205 + "lo": 276713547820741487 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": false - }, - { - "i128": { - "hi": 0, - "lo": 254067774747634257 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 10228606266749817 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 89411807494921569 - "lo": 284132876952308260 + "lo": 377337190891875213 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 23754525785994278 - "lo": 278314740249977491 + "lo": 514551444089066435 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 336980494328232089 - "lo": 290072641113740205 + "lo": 276713547820741487 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 89411807494921569 - "lo": 284132876952308260 + "lo": 377337190891875213 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -880,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 23754525785994278 - "lo": 278314740249977491 + "lo": 514551444089066435 } } }, @@ -1027,7 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 13096283246314146951 + "lo": 13106511852580896768 } } }, @@ -1212,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 336980494328232089 - "lo": 290072641113740205 + "lo": 276713547820741487 } } }, @@ -1359,7 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 13360579627328531025 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.196.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.196.json index 70aa1973..e98961b5 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.196.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.196.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 181225315030583781 - "lo": 323141943239358761 + "lo": 901640572932863195 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 948038434473944358 - "lo": 489891905911397010 + "lo": 664679151038267490 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 181225315030583781 - "lo": 323141943239358761 + "lo": 901640572932863195 } }, { "i128": { "hi": 0, - "lo": 948038434473944358 - "lo": 489891905911397010 + "lo": 664679151038267490 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 181225315030583781 - "lo": 323141943239358761 + "lo": 901640572932863195 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 948038434473944358 - "lo": 489891905911397010 + "lo": 664679151038267490 } } ] @@ -228,6 +222,65 @@ } ] ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "function_name": "swap", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "bool": true + }, + { + "i128": { + "hi": 0, + "lo": 1987959757503380 + } + }, + { + "i128": { + "hi": 2, + "lo": 13106511852580896768 + } + } + ] + } + }, + "sub_invocations": [ + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "transfer", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "i128": { + "hi": 0, + "lo": 1473159060175579 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + } + ] + ], + [], [] ], "ledger": { @@ -532,8 +585,7 @@ "val": { "i128": { "hi": 0, - "lo": 414497966157425222 - "lo": 397875134248726248 + "lo": 774145781205757530 } } } @@ -582,7 +634,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +650,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +709,7 @@ "val": { "i128": { "hi": 0, - "lo": 181225315030583781 - "lo": 323141943239358761 + "lo": 899652613175359815 } } }, @@ -665,8 +720,7 @@ "val": { "i128": { "hi": 0, - "lo": 948038434473944358 - "lo": 489891905911397010 + "lo": 666152310098443069 } } }, @@ -693,13 +747,24 @@ "val": { "i128": { "hi": 0, - "lo": 414497966157425222 - "lo": 397875134248726248 + "lo": 774145781205757530 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -744,6 +809,39 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], [ { "contract_data": { @@ -788,8 +886,7 @@ "val": { "i128": { "hi": 0, - "lo": 181225315030583781 - "lo": 323141943239358761 + "lo": 899652613175359815 } } }, @@ -935,7 +1032,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 13108499812338400148 } } }, @@ -1120,8 +1217,7 @@ "val": { "i128": { "hi": 0, - "lo": 948038434473944358 - "lo": 489891905911397010 + "lo": 666152310098443069 } } }, @@ -1267,7 +1363,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 13105038693520721189 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.197.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.197.json index 748b3fd9..cf71bd7e 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.197.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.197.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 333836393197795107 - "lo": 598636940481697146 + "lo": 321058810674817996 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 904937422309297064 - "lo": 473967569930110912 + "lo": 598180908605975934 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 333836393197795107 - "lo": 598636940481697146 + "lo": 321058810674817996 } }, { "i128": { "hi": 0, - "lo": 904937422309297064 - "lo": 473967569930110912 + "lo": 598180908605975934 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 333836393197795107 - "lo": 598636940481697146 + "lo": 321058810674817996 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 904937422309297064 - "lo": 473967569930110912 + "lo": 598180908605975934 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": false - }, - { - "i128": { - "hi": 0, - "lo": 10914965109750404 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 4088014663872914 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 549637194095746814 - "lo": 532667340795835197 + "lo": 438236524134418346 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 337924407861668021 - "lo": 598636940481697146 + "lo": 321058810674817996 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 894022457199546660 - "lo": 473967569930110912 + "lo": 598180908605975934 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 549637194095746814 - "lo": 532667340795835197 + "lo": 438236524134418346 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -847,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 337924407861668021 - "lo": 598636940481697146 + "lo": 321058810674817996 } } }, @@ -994,7 +940,6 @@ "val": { "i128": { "hi": 2, - "lo": 13102423837917023854 "lo": 13106511852580896768 } } @@ -1180,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 894022457199546660 - "lo": 473967569930110912 + "lo": 598180908605975934 } } }, @@ -1327,7 +1271,6 @@ "val": { "i128": { "hi": 2, - "lo": 13117426817690647172 "lo": 13106511852580896768 } } diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.198.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.198.json index 3cbac3d8..3b1428e1 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.198.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.198.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 234452657971828272 - "lo": 29230747022058199 + "lo": 202052919240576801 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 940995499721247690 - "lo": 259820494658659198 + "lo": 781412909856860898 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 234452657971828272 - "lo": 29230747022058199 + "lo": 202052919240576801 } }, { "i128": { "hi": 0, - "lo": 940995499721247690 - "lo": 259820494658659198 + "lo": 781412909856860898 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 234452657971828272 - "lo": 29230747022058199 + "lo": 202052919240576801 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 940995499721247690 - "lo": 259820494658659198 + "lo": 781412909856860898 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": false - }, - { - "i128": { - "hi": 0, - "lo": 136793781149527319 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 32599556188698702 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 469700858046028388 - "lo": 87147846505311251 + "lo": 397349669144007762 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 234452657971828272 - "lo": 61830303210756901 + "lo": 202052919240576801 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 940995499721247690 - "lo": 123026713509131879 + "lo": 781412909856860898 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 469700858046028388 - "lo": 87147846505311251 + "lo": 397349669144007762 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -880,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 234452657971828272 - "lo": 61830303210756901 + "lo": 202052919240576801 } } }, @@ -1027,7 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 13073912296392198066 + "lo": 13106511852580896768 } } }, @@ -1212,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 940995499721247690 - "lo": 123026713509131879 + "lo": 781412909856860898 } } }, @@ -1359,7 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 13243305633730424087 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.199.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.199.json index 556e9bbe..d9b79d86 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.199.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.199.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 487173552038959238 - "lo": 625769261530743051 + "lo": 263675505611757078 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 57938541492932008 - "lo": 512274619490350312 + "lo": 367595340367785752 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 487173552038959238 - "lo": 625769261530743051 + "lo": 263675505611757078 } }, { "i128": { "hi": 0, - "lo": 57938541492932008 - "lo": 512274619490350312 + "lo": 367595340367785752 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 487173552038959238 - "lo": 625769261530743051 + "lo": 263675505611757078 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 57938541492932008 - "lo": 512274619490350312 + "lo": 367595340367785752 } } ] @@ -228,6 +222,65 @@ } ] ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "function_name": "swap", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "bool": false + }, + { + "i128": { + "hi": 0, + "lo": 63427267369570522 + } + }, + { + "i128": { + "hi": 2, + "lo": 13106511852580896768 + } + } + ] + } + }, + "sub_invocations": [ + { + "function": { + "contract_fn": { + "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", + "function_name": "transfer", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "i128": { + "hi": 0, + "lo": 55148918981334041 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + } + ] + ], + [], [] ], "ledger": { @@ -532,8 +585,7 @@ "val": { "i128": { "hi": 0, - "lo": 168006324461516360 - "lo": 566185226175514849 + "lo": 311329226434014455 } } } @@ -582,7 +634,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +650,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +709,7 @@ "val": { "i128": { "hi": 0, - "lo": 487173552038959238 - "lo": 625769261530743051 + "lo": 318824424593091119 } } }, @@ -665,8 +720,7 @@ "val": { "i128": { "hi": 0, - "lo": 57938541492932008 - "lo": 512274619490350312 + "lo": 304168072998215230 } } }, @@ -693,13 +747,24 @@ "val": { "i128": { "hi": 0, - "lo": 168006324461516360 - "lo": 566185226175514849 + "lo": 311329226434014455 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -744,6 +809,39 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], [ { "contract_data": { @@ -788,8 +886,7 @@ "val": { "i128": { "hi": 0, - "lo": 487173552038959238 - "lo": 625769261530743051 + "lo": 318824424593091119 } } }, @@ -935,7 +1032,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 13051362933599562727 } } }, @@ -1120,8 +1217,7 @@ "val": { "i128": { "hi": 0, - "lo": 57938541492932008 - "lo": 512274619490350312 + "lo": 304168072998215230 } } }, @@ -1267,7 +1363,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 13169939119950467290 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.2.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.2.json index 304a9f52..edf869aa 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.2.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.2.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 895095232926997862 - "lo": 745249822510070120 + "lo": 154390254636538747 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 432549926182198576 - "lo": 270519278673378717 + "lo": 639676028548138559 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 895095232926997862 - "lo": 745249822510070120 + "lo": 154390254636538747 } }, { "i128": { "hi": 0, - "lo": 432549926182198576 - "lo": 270519278673378717 + "lo": 639676028548138559 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 895095232926997862 - "lo": 745249822510070120 + "lo": 154390254636538747 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 432549926182198576 - "lo": 270519278673378717 + "lo": 639676028548138559 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 622232574628338439 - "lo": 449003835637166562 + "lo": 314260632170873323 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 895095232926997862 - "lo": 745249822510070120 + "lo": 154390254636538747 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 432549926182198576 - "lo": 270519278673378717 + "lo": 639676028548138559 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 622232574628338439 - "lo": 449003835637166562 + "lo": 314260632170873323 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 895095232926997862 - "lo": 745249822510070120 + "lo": 154390254636538747 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 432549926182198576 - "lo": 270519278673378717 + "lo": 639676028548138559 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.20.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.20.json index 14383b8a..3ab162c7 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.20.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.20.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 751478473385047670 - "lo": 36207741160701888 + "lo": 856121889631100425 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 859346254998068953 - "lo": 474936007811134763 + "lo": 375132340984584607 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 751478473385047670 - "lo": 36207741160701888 + "lo": 856121889631100425 } }, { "i128": { "hi": 0, - "lo": 859346254998068953 - "lo": 474936007811134763 + "lo": 375132340984584607 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 751478473385047670 - "lo": 36207741160701888 + "lo": 856121889631100425 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 859346254998068953 - "lo": 474936007811134763 + "lo": 375132340984584607 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": false - }, - { - "i128": { - "hi": 0, - "lo": 37341328764925154 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 3099017360069390 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 803604512067414133 - "lo": 131134892529496731 + "lo": 566708927603457534 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 751478473385047670 - "lo": 39306758520771278 + "lo": 856121889631100425 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 859346254998068953 - "lo": 437594679046209609 + "lo": 375132340984584607 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 803604512067414133 - "lo": 131134892529496731 + "lo": 566708927603457534 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -880,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 751478473385047670 - "lo": 39306758520771278 + "lo": 856121889631100425 } } }, @@ -1027,7 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 13103412835220827378 + "lo": 13106511852580896768 } } }, @@ -1212,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 859346254998068953 - "lo": 437594679046209609 + "lo": 375132340984584607 } } }, @@ -1359,7 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 13143853181345821922 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.200.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.200.json index 505aacda..c6be5ad7 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.200.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.200.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 70136720307199806 - "lo": 101505123796764799 + "lo": 620817416517052305 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 938635686614676714 - "lo": 834234252843750392 + "lo": 231986469555654761 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 70136720307199806 - "lo": 101505123796764799 + "lo": 620817416517052305 } }, { "i128": { "hi": 0, - "lo": 938635686614676714 - "lo": 834234252843750392 + "lo": 231986469555654761 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 70136720307199806 - "lo": 101505123796764799 + "lo": 620817416517052305 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 938635686614676714 - "lo": 834234252843750392 + "lo": 231986469555654761 } } ] @@ -228,69 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": true - "bool": false - }, - { - "i128": { - "hi": 0, - "lo": 13991458026704527 - "lo": 37278194976974739 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", - "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 234612832385650427 - "lo": 4762262234919877 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -595,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 256579088435612829 - "lo": 290996651373184138 + "lo": 379501305263174813 } } } @@ -645,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -661,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -716,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 56145262280495279 - "lo": 106267386031684676 + "lo": 620817416517052305 } } }, @@ -728,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 1173248519000327141 - "lo": 796956057866775653 + "lo": 231986469555654761 } } }, @@ -756,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 256579088435612829 - "lo": 290996651373184138 + "lo": 379501305263174813 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -807,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -884,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 56145262280495279 - "lo": 106267386031684676 + "lo": 620817416517052305 } } }, @@ -1031,8 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 13120503310607601295 - "lo": 13101749590345976891 + "lo": 13106511852580896768 } } }, @@ -1217,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 1173248519000327141 - "lo": 796956057866775653 + "lo": 231986469555654761 } } }, @@ -1364,8 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 12871899020195246341 - "lo": 13143790047557871507 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.201.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.201.json index df7abcf4..d20f4880 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.201.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.201.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 103467336007991689 - "lo": 437028582646001263 + "lo": 445664620921640628 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 898127125857939384 - "lo": 949327314295737516 + "lo": 281794852943688861 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 103467336007991689 - "lo": 437028582646001263 + "lo": 445664620921640628 } }, { "i128": { "hi": 0, - "lo": 898127125857939384 - "lo": 949327314295737516 + "lo": 281794852943688861 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 103467336007991689 - "lo": 437028582646001263 + "lo": 445664620921640628 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 898127125857939384 - "lo": 949327314295737516 + "lo": 281794852943688861 } } ] @@ -228,69 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": false - "bool": true - }, - { - "i128": { - "hi": 0, - "lo": 154230422728000296 - "lo": 1141321308866445 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", - "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 21516197597162997 - "lo": 2493185354325938 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -595,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 304839008509467592 - "lo": 644114252779583460 + "lo": 354381145540812544 } } } @@ -645,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -661,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -716,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 124983533605154686 - "lo": 435887261337134818 + "lo": 445664620921640628 } } }, @@ -728,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 743896703129939088 - "lo": 951820499650063454 + "lo": 281794852943688861 } } }, @@ -756,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 304839008509467592 - "lo": 644114252779583460 + "lo": 354381145540812544 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -807,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -884,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 124983533605154686 - "lo": 435887261337134818 + "lo": 445664620921640628 } } }, @@ -1031,8 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 13084995654983733771 - "lo": 13107653173889763213 + "lo": 13106511852580896768 } } }, @@ -1217,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 743896703129939088 - "lo": 951820499650063454 + "lo": 281794852943688861 } } }, @@ -1364,8 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 13260742275308897064 - "lo": 13104018667226570830 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.202.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.202.json index 0ef4f4aa..a4387e65 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.202.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.202.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 570151051747953485 - "lo": 54223909022619843 + "lo": 927585286802653927 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 947995371323474895 - "lo": 498194851037550978 + "lo": 659280312331002271 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 570151051747953485 - "lo": 54223909022619843 + "lo": 927585286802653927 } }, { "i128": { "hi": 0, - "lo": 947995371323474895 - "lo": 498194851037550978 + "lo": 659280312331002271 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 570151051747953485 - "lo": 54223909022619843 + "lo": 927585286802653927 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 947995371323474895 - "lo": 498194851037550978 + "lo": 659280312331002271 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": false - }, - { - "i128": { - "hi": 0, - "lo": 310463753281075554 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 89943616994672927 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 735187430532018082 - "lo": 164359582252443709 + "lo": 782009410171575876 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 570151051747953485 - "lo": 144167526017292770 + "lo": 927585286802653927 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 947995371323474895 - "lo": 187731097756475424 + "lo": 659280312331002271 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 735187430532018082 - "lo": 164359582252443709 + "lo": 782009410171575876 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -880,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 570151051747953485 - "lo": 144167526017292770 + "lo": 927585286802653927 } } }, @@ -1027,7 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 13016568235586223841 + "lo": 13106511852580896768 } } }, @@ -1212,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 947995371323474895 - "lo": 187731097756475424 + "lo": 659280312331002271 } } }, @@ -1359,7 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 13416975605861972322 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.203.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.203.json index c6906905..833c7da1 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.203.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.203.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 347354305988160005 - "lo": 588669186989454579 + "lo": 914705438028894113 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 451372491262807927 - "lo": 463678224725095616 + "lo": 399211898553960638 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 347354305988160005 - "lo": 588669186989454579 + "lo": 914705438028894113 } }, { "i128": { "hi": 0, - "lo": 451372491262807927 - "lo": 463678224725095616 + "lo": 399211898553960638 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 347354305988160005 - "lo": 588669186989454579 + "lo": 914705438028894113 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 451372491262807927 - "lo": 463678224725095616 + "lo": 399211898553960638 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": false - }, - { - "i128": { - "hi": 0, - "lo": 15706156375674562 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 20701181195154254 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 395962344730833544 - "lo": 522449120559730345 + "lo": 604285772241202949 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 347354305988160005 - "lo": 609370368184608833 + "lo": 914705438028894113 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 451372491262807927 - "lo": 447972068349421054 + "lo": 399211898553960638 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 395962344730833544 - "lo": 522449120559730345 + "lo": 604285772241202949 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -880,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 347354305988160005 - "lo": 609370368184608833 + "lo": 914705438028894113 } } }, @@ -1027,7 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 13085810671385742514 + "lo": 13106511852580896768 } } }, @@ -1212,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 451372491262807927 - "lo": 447972068349421054 + "lo": 399211898553960638 } } }, @@ -1359,7 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 13122218008956571330 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.204.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.204.json index b12f24ca..c21f5629 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.204.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.204.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 810519850793352495 - "lo": 642347272416825696 + "lo": 267519294846401336 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 536137545595864188 - "lo": 207437701197384428 + "lo": 373477407705582188 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 810519850793352495 - "lo": 642347272416825696 + "lo": 267519294846401336 } }, { "i128": { "hi": 0, - "lo": 536137545595864188 - "lo": 207437701197384428 + "lo": 373477407705582188 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 810519850793352495 - "lo": 642347272416825696 + "lo": 267519294846401336 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 536137545595864188 - "lo": 207437701197384428 + "lo": 373477407705582188 } } ] @@ -228,6 +222,65 @@ } ] ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "function_name": "swap", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "bool": false + }, + { + "i128": { + "hi": 0, + "lo": 3238718573910348 + } + }, + { + "i128": { + "hi": 2, + "lo": 13106511852580896768 + } + } + ] + } + }, + "sub_invocations": [ + { + "function": { + "contract_fn": { + "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", + "function_name": "transfer", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "i128": { + "hi": 0, + "lo": 2347206855947403 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + } + ] + ], + [], [] ], "ledger": { @@ -532,8 +585,7 @@ "val": { "i128": { "hi": 0, - "lo": 659204159165484984 - "lo": 365030192669806952 + "lo": 316089248077911191 } } } @@ -582,7 +634,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +650,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +709,7 @@ "val": { "i128": { "hi": 0, - "lo": 810519850793352495 - "lo": 642347272416825696 + "lo": 269866501702348739 } } }, @@ -665,8 +720,7 @@ "val": { "i128": { "hi": 0, - "lo": 536137545595864188 - "lo": 207437701197384428 + "lo": 370238689131671840 } } }, @@ -693,13 +747,24 @@ "val": { "i128": { "hi": 0, - "lo": 659204159165484984 - "lo": 365030192669806952 + "lo": 316089248077911191 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -744,6 +809,39 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], [ { "contract_data": { @@ -788,8 +886,7 @@ "val": { "i128": { "hi": 0, - "lo": 810519850793352495 - "lo": 642347272416825696 + "lo": 269866501702348739 } } }, @@ -935,7 +1032,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 13104164645724949365 } } }, @@ -1120,8 +1217,7 @@ "val": { "i128": { "hi": 0, - "lo": 536137545595864188 - "lo": 207437701197384428 + "lo": 370238689131671840 } } }, @@ -1267,7 +1363,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 13109750571154807116 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.205.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.205.json index 2d192f2f..3eb26796 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.205.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.205.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 53934536893136531 - "lo": 450635221834332894 + "lo": 8774642427501362 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 895842854918598703 - "lo": 756915080020657864 + "lo": 964093774079448099 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 53934536893136531 - "lo": 450635221834332894 + "lo": 8774642427501362 } }, { "i128": { "hi": 0, - "lo": 895842854918598703 - "lo": 756915080020657864 + "lo": 964093774079448099 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 53934536893136531 - "lo": 450635221834332894 + "lo": 8774642427501362 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 895842854918598703 - "lo": 756915080020657864 + "lo": 964093774079448099 } } ] @@ -228,6 +222,65 @@ } ] ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "function_name": "swap", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "bool": true + }, + { + "i128": { + "hi": 0, + "lo": 1482356179593624 + } + }, + { + "i128": { + "hi": 2, + "lo": 13106511852580896768 + } + } + ] + } + }, + "sub_invocations": [ + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "transfer", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "i128": { + "hi": 0, + "lo": 196568073022740352 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + } + ] + ], + [], [] ], "ledger": { @@ -532,8 +585,7 @@ "val": { "i128": { "hi": 0, - "lo": 219810985869814792 - "lo": 584031330490805938 + "lo": 91975964980680893 } } } @@ -582,7 +634,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +650,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +709,7 @@ "val": { "i128": { "hi": 0, - "lo": 53934536893136531 - "lo": 450635221834332894 + "lo": 7292286247907738 } } }, @@ -665,8 +720,7 @@ "val": { "i128": { "hi": 0, - "lo": 895842854918598703 - "lo": 756915080020657864 + "lo": 1160661847102188451 } } }, @@ -693,13 +747,24 @@ "val": { "i128": { "hi": 0, - "lo": 219810985869814792 - "lo": 584031330490805938 + "lo": 91975964980680893 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -744,6 +809,39 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], [ { "contract_data": { @@ -788,8 +886,7 @@ "val": { "i128": { "hi": 0, - "lo": 53934536893136531 - "lo": 450635221834332894 + "lo": 7292286247907738 } } }, @@ -935,7 +1032,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 13107994208760490392 } } }, @@ -1120,8 +1217,7 @@ "val": { "i128": { "hi": 0, - "lo": 895842854918598703 - "lo": 756915080020657864 + "lo": 1160661847102188451 } } }, @@ -1267,7 +1363,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 12909943779558156416 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.206.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.206.json index c4ab7227..d031728b 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.206.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.206.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 909584226061396127 - "lo": 973954759022509309 + "lo": 427108039256108402 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 31855392654077763 - "lo": 661610010914156104 + "lo": 57843651405667642 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 909584226061396127 - "lo": 973954759022509309 + "lo": 427108039256108402 } }, { "i128": { "hi": 0, - "lo": 31855392654077763 - "lo": 661610010914156104 + "lo": 57843651405667642 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 909584226061396127 - "lo": 973954759022509309 + "lo": 427108039256108402 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 31855392654077763 - "lo": 661610010914156104 + "lo": 57843651405667642 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": false - }, - { - "i128": { - "hi": 0, - "lo": 7510020202033103 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 281431330671258529 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 170220923135615750 - "lo": 802731722773416163 + "lo": 157179796841987759 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 1191015556732654656 - "lo": 973954759022509309 + "lo": 427108039256108402 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 24345372452044660 - "lo": 661610010914156104 + "lo": 57843651405667642 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 170220923135615750 - "lo": 802731722773416163 + "lo": 157179796841987759 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -847,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 1191015556732654656 - "lo": 973954759022509309 + "lo": 427108039256108402 } } }, @@ -994,7 +940,6 @@ "val": { "i128": { "hi": 2, - "lo": 12825080521909638239 "lo": 13106511852580896768 } } @@ -1180,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 24345372452044660 - "lo": 661610010914156104 + "lo": 57843651405667642 } } }, @@ -1327,7 +1271,6 @@ "val": { "i128": { "hi": 2, - "lo": 13114021872782929871 "lo": 13106511852580896768 } } diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.207.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.207.json index 8ab2ef20..40522566 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.207.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.207.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 515364798775327112 - "lo": 735363604612272012 + "lo": 525017347562298945 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 925910063452586101 - "lo": 657631603647102593 + "lo": 131067755428196173 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 515364798775327112 - "lo": 735363604612272012 + "lo": 525017347562298945 } }, { "i128": { "hi": 0, - "lo": 925910063452586101 - "lo": 657631603647102593 + "lo": 131067755428196173 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 515364798775327112 - "lo": 735363604612272012 + "lo": 525017347562298945 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 925910063452586101 - "lo": 657631603647102593 + "lo": 131067755428196173 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 690783217467891582 - "lo": 695412357213245335 + "lo": 262322025963996519 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 515364798775327112 - "lo": 735363604612272012 + "lo": 525017347562298945 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 925910063452586101 - "lo": 657631603647102593 + "lo": 131067755428196173 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 690783217467891582 - "lo": 695412357213245335 + "lo": 262322025963996519 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 515364798775327112 - "lo": 735363604612272012 + "lo": 525017347562298945 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 925910063452586101 - "lo": 657631603647102593 + "lo": 131067755428196173 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.208.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.208.json index 43ac3ba7..3e1cd7ed 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.208.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.208.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 982561990522617598 - "lo": 170189754505987848 + "lo": 443128203192900560 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 670985809428936179 - "lo": 859569818933456593 + "lo": 75672962737354613 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 982561990522617598 - "lo": 170189754505987848 + "lo": 443128203192900560 } }, { "i128": { "hi": 0, - "lo": 670985809428936179 - "lo": 859569818933456593 + "lo": 75672962737354613 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 982561990522617598 - "lo": 170189754505987848 + "lo": 443128203192900560 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 670985809428936179 - "lo": 859569818933456593 + "lo": 75672962737354613 } } ] @@ -228,6 +222,65 @@ } ] ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "function_name": "swap", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "bool": false + }, + { + "i128": { + "hi": 0, + "lo": 24803508922167997 + } + }, + { + "i128": { + "hi": 2, + "lo": 13106511852580896768 + } + } + ] + } + }, + "sub_invocations": [ + { + "function": { + "contract_fn": { + "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", + "function_name": "transfer", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "i128": { + "hi": 0, + "lo": 216715654201805975 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + } + ] + ], + [], [] ], "ledger": { @@ -532,8 +585,7 @@ "val": { "i128": { "hi": 0, - "lo": 811963763061459096 - "lo": 382478726813716272 + "lo": 183119698580156218 } } } @@ -582,7 +634,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +650,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +709,7 @@ "val": { "i128": { "hi": 0, - "lo": 982561990522617598 - "lo": 170189754505987848 + "lo": 659843857394706535 } } }, @@ -665,8 +720,7 @@ "val": { "i128": { "hi": 0, - "lo": 670985809428936179 - "lo": 859569818933456593 + "lo": 50869453815186616 } } }, @@ -693,13 +747,24 @@ "val": { "i128": { "hi": 0, - "lo": 811963763061459096 - "lo": 382478726813716272 + "lo": 183119698580156218 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -744,6 +809,39 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], [ { "contract_data": { @@ -788,8 +886,7 @@ "val": { "i128": { "hi": 0, - "lo": 982561990522617598 - "lo": 170189754505987848 + "lo": 659843857394706535 } } }, @@ -935,7 +1032,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 12889796198379090793 } } }, @@ -1120,8 +1217,7 @@ "val": { "i128": { "hi": 0, - "lo": 670985809428936179 - "lo": 859569818933456593 + "lo": 50869453815186616 } } }, @@ -1267,7 +1363,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 13131315361503064765 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.209.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.209.json index 955b3dd8..8f298593 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.209.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.209.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 761701068382087854 - "lo": 945250774276952198 + "lo": 381314437800666581 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 11345414265621114 - "lo": 801286359522171914 + "lo": 763149595871991960 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 761701068382087854 - "lo": 945250774276952198 + "lo": 381314437800666581 } }, { "i128": { "hi": 0, - "lo": 11345414265621114 - "lo": 801286359522171914 + "lo": 763149595871991960 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 761701068382087854 - "lo": 945250774276952198 + "lo": 381314437800666581 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 11345414265621114 - "lo": 801286359522171914 + "lo": 763149595871991960 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": true - }, - { - "i128": { - "hi": 0, - "lo": 688022205724533089 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 106263653112973619 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 92961358463401249 - "lo": 870296818192444784 + "lo": 539444120468222840 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 73678862657554765 - "lo": 945250774276952198 + "lo": 381314437800666581 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 117609067378594733 - "lo": 801286359522171914 + "lo": 763149595871991960 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 92961358463401249 - "lo": 870296818192444784 + "lo": 539444120468222840 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -880,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 73678862657554765 - "lo": 945250774276952198 + "lo": 381314437800666581 } } }, @@ -1027,7 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 13794534058305429857 + "lo": 13106511852580896768 } } }, @@ -1212,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 117609067378594733 - "lo": 801286359522171914 + "lo": 763149595871991960 } } }, @@ -1359,7 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 13000248199467923149 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.21.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.21.json index 97727ac1..567e73c3 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.21.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.21.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 682810949225714160 - "lo": 86134761234283278 + "lo": 611912719480981909 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 376845119642719895 - "lo": 952327726151052047 + "lo": 733136409876156502 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 682810949225714160 - "lo": 86134761234283278 + "lo": 611912719480981909 } }, { "i128": { "hi": 0, - "lo": 376845119642719895 - "lo": 952327726151052047 + "lo": 733136409876156502 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 682810949225714160 - "lo": 86134761234283278 + "lo": 611912719480981909 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 376845119642719895 - "lo": 952327726151052047 + "lo": 733136409876156502 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 507261248129919137 - "lo": 286406217301246411 + "lo": 669787648675192224 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 682810949225714160 - "lo": 86134761234283278 + "lo": 611912719480981909 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 376845119642719895 - "lo": 952327726151052047 + "lo": 733136409876156502 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 507261248129919137 - "lo": 286406217301246411 + "lo": 669787648675192224 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 682810949225714160 - "lo": 86134761234283278 + "lo": 611912719480981909 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 376845119642719895 - "lo": 952327726151052047 + "lo": 733136409876156502 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.210.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.210.json index 75e3bbec..4b7ad15b 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.210.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.210.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 766624932951292535 - "lo": 521107084162354741 + "lo": 469668125172549395 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 877227794755066963 - "lo": 925656858528897731 + "lo": 404423104231155228 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 766624932951292535 - "lo": 521107084162354741 + "lo": 469668125172549395 } }, { "i128": { "hi": 0, - "lo": 877227794755066963 - "lo": 925656858528897731 + "lo": 404423104231155228 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 766624932951292535 - "lo": 521107084162354741 + "lo": 469668125172549395 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 877227794755066963 - "lo": 925656858528897731 + "lo": 404423104231155228 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 820063838574237718 - "lo": 694525986902491076 + "lo": 435826388761292429 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 766624932951292535 - "lo": 521107084162354741 + "lo": 469668125172549395 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 877227794755066963 - "lo": 925656858528897731 + "lo": 404423104231155228 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 820063838574237718 - "lo": 694525986902491076 + "lo": 435826388761292429 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 766624932951292535 - "lo": 521107084162354741 + "lo": 469668125172549395 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 877227794755066963 - "lo": 925656858528897731 + "lo": 404423104231155228 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.211.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.211.json index ca785553..ba44799e 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.211.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.211.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 661418117825960477 - "lo": 707062725842211546 + "lo": 672767208712869373 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 453034541037585888 - "lo": 192424407341908715 + "lo": 319521886742861541 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 661418117825960477 - "lo": 707062725842211546 + "lo": 672767208712869373 } }, { "i128": { "hi": 0, - "lo": 453034541037585888 - "lo": 192424407341908715 + "lo": 319521886742861541 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 661418117825960477 - "lo": 707062725842211546 + "lo": 672767208712869373 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 453034541037585888 - "lo": 192424407341908715 + "lo": 319521886742861541 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 547398623895994015 - "lo": 368857866899625770 + "lo": 463641939287921342 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 661418117825960477 - "lo": 707062725842211546 + "lo": 672767208712869373 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 453034541037585888 - "lo": 192424407341908715 + "lo": 319521886742861541 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 547398623895994015 - "lo": 368857866899625770 + "lo": 463641939287921342 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 661418117825960477 - "lo": 707062725842211546 + "lo": 672767208712869373 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 453034541037585888 - "lo": 192424407341908715 + "lo": 319521886742861541 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.212.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.212.json index f10b2072..aa4e55f3 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.212.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.212.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 375726772509304226 - "lo": 429804717846223040 + "lo": 807443462354448551 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 901764826651507295 - "lo": 403966446962740516 + "lo": 629589792241283970 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 375726772509304226 - "lo": 429804717846223040 + "lo": 807443462354448551 } }, { "i128": { "hi": 0, - "lo": 901764826651507295 - "lo": 403966446962740516 + "lo": 629589792241283970 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 375726772509304226 - "lo": 429804717846223040 + "lo": 807443462354448551 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 901764826651507295 - "lo": 403966446962740516 + "lo": 629589792241283970 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 582080052810765060 - "lo": 416685354621640034 + "lo": 712992399475843120 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 375726772509304226 - "lo": 429804717846223040 + "lo": 807443462354448551 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 901764826651507295 - "lo": 403966446962740516 + "lo": 629589792241283970 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 582080052810765060 - "lo": 416685354621640034 + "lo": 712992399475843120 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 375726772509304226 - "lo": 429804717846223040 + "lo": 807443462354448551 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 901764826651507295 - "lo": 403966446962740516 + "lo": 629589792241283970 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.213.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.213.json index bc485a00..d9f1e66f 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.213.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.213.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 670738641282225227 - "lo": 807558773416282934 + "lo": 767340287424411487 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 369086025021667182 - "lo": 790754977799358122 + "lo": 186345754519548138 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 670738641282225227 - "lo": 807558773416282934 + "lo": 767340287424411487 } }, { "i128": { "hi": 0, - "lo": 369086025021667182 - "lo": 790754977799358122 + "lo": 186345754519548138 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 670738641282225227 - "lo": 807558773416282934 + "lo": 767340287424411487 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 369086025021667182 - "lo": 790754977799358122 + "lo": 186345754519548138 } } ] @@ -228,6 +222,65 @@ } ] ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "function_name": "swap", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "bool": false + }, + { + "i128": { + "hi": 0, + "lo": 7496039598879677 + } + }, + { + "i128": { + "hi": 2, + "lo": 13106511852580896768 + } + } + ] + } + }, + "sub_invocations": [ + { + "function": { + "contract_fn": { + "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", + "function_name": "transfer", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "i128": { + "hi": 0, + "lo": 32257927536197159 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + } + ] + ], + [], [] ], "ledger": { @@ -532,8 +585,7 @@ "val": { "i128": { "hi": 0, - "lo": 497554277380157217 - "lo": 799112707910761288 + "lo": 378140985392153562 } } } @@ -582,7 +634,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +650,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +709,7 @@ "val": { "i128": { "hi": 0, - "lo": 670738641282225227 - "lo": 807558773416282934 + "lo": 799598214960608646 } } }, @@ -665,8 +720,7 @@ "val": { "i128": { "hi": 0, - "lo": 369086025021667182 - "lo": 790754977799358122 + "lo": 178849714920668461 } } }, @@ -693,13 +747,24 @@ "val": { "i128": { "hi": 0, - "lo": 497554277380157217 - "lo": 799112707910761288 + "lo": 378140985392153562 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -744,6 +809,39 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], [ { "contract_data": { @@ -788,8 +886,7 @@ "val": { "i128": { "hi": 0, - "lo": 670738641282225227 - "lo": 807558773416282934 + "lo": 799598214960608646 } } }, @@ -935,7 +1032,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 13074253925044699609 } } }, @@ -1120,8 +1217,7 @@ "val": { "i128": { "hi": 0, - "lo": 369086025021667182 - "lo": 790754977799358122 + "lo": 178849714920668461 } } }, @@ -1267,7 +1363,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 13114007892179776445 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.214.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.214.json index 1e378371..41224083 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.214.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.214.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 127960704481600978 - "lo": 721415172662952946 + "lo": 35670702261087853 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 304993615552320064 - "lo": 907431353772683103 + "lo": 207473363357551517 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 127960704481600978 - "lo": 721415172662952946 + "lo": 35670702261087853 } }, { "i128": { "hi": 0, - "lo": 304993615552320064 - "lo": 907431353772683103 + "lo": 207473363357551517 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 127960704481600978 - "lo": 721415172662952946 + "lo": 35670702261087853 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 304993615552320064 - "lo": 907431353772683103 + "lo": 207473363357551517 } } ] @@ -241,12 +235,12 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" }, { - "bool": false + "bool": true }, { "i128": { "hi": 0, - "lo": 130466353620404474 + "lo": 30178973437457547 } }, { @@ -262,7 +256,7 @@ { "function": { "contract_fn": { - "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", "function_name": "transfer", "args": [ { @@ -274,7 +268,7 @@ { "i128": { "hi": 0, - "lo": 95943755364216104 + "lo": 1143569510506901647 } } ] @@ -591,8 +585,7 @@ "val": { "i128": { "hi": 0, - "lo": 197553025561405785 - "lo": 809095017140568799 + "lo": 86027440804860135 } } } @@ -641,7 +634,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +650,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +709,7 @@ "val": { "i128": { "hi": 0, - "lo": 223904459845817082 - "lo": 721415172662952946 + "lo": 5491728823630306 } } }, @@ -724,8 +720,7 @@ "val": { "i128": { "hi": 0, - "lo": 174527261931915590 - "lo": 907431353772683103 + "lo": 1351042873864453164 } } }, @@ -752,13 +747,24 @@ "val": { "i128": { "hi": 0, - "lo": 197553025561405785 - "lo": 809095017140568799 + "lo": 86027440804860135 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -880,8 +886,7 @@ "val": { "i128": { "hi": 0, - "lo": 223904459845817082 - "lo": 721415172662952946 + "lo": 5491728823630306 } } }, @@ -1027,7 +1032,7 @@ "val": { "i128": { "hi": 2, - "lo": 13010568097216680664 + "lo": 13136690826018354315 } } }, @@ -1212,8 +1217,7 @@ "val": { "i128": { "hi": 0, - "lo": 174527261931915590 - "lo": 907431353772683103 + "lo": 1351042873864453164 } } }, @@ -1359,7 +1363,7 @@ "val": { "i128": { "hi": 2, - "lo": 13236978206201301242 + "lo": 11962942342073995121 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.215.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.215.json index 7d7a916b..3e6282ad 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.215.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.215.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 969270410542232855 - "lo": 401428105091871863 + "lo": 629532057409837376 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 69679143941847229 - "lo": 968839670422800319 + "lo": 321229944332616890 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 969270410542232855 - "lo": 401428105091871863 + "lo": 629532057409837376 } }, { "i128": { "hi": 0, - "lo": 69679143941847229 - "lo": 968839670422800319 + "lo": 321229944332616890 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 969270410542232855 - "lo": 401428105091871863 + "lo": 629532057409837376 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 69679143941847229 - "lo": 968839670422800319 + "lo": 321229944332616890 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 259880611925448568 - "lo": 623634085851357539 + "lo": 449693837802298376 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 969270410542232855 - "lo": 401428105091871863 + "lo": 629532057409837376 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 69679143941847229 - "lo": 968839670422800319 + "lo": 321229944332616890 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 259880611925448568 - "lo": 623634085851357539 + "lo": 449693837802298376 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 969270410542232855 - "lo": 401428105091871863 + "lo": 629532057409837376 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 69679143941847229 - "lo": 968839670422800319 + "lo": 321229944332616890 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.216.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.216.json index 1fd1581e..d91bd777 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.216.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.216.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 336435334059081644 - "lo": 887852991415461601 + "lo": 675319111732444612 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 51260250947550214 - "lo": 162103190158909682 + "lo": 104707701157825188 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 336435334059081644 - "lo": 887852991415461601 + "lo": 675319111732444612 } }, { "i128": { "hi": 0, - "lo": 51260250947550214 - "lo": 162103190158909682 + "lo": 104707701157825188 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 336435334059081644 - "lo": 887852991415461601 + "lo": 675319111732444612 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 51260250947550214 - "lo": 162103190158909682 + "lo": 104707701157825188 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": true - }, - { - "i128": { - "hi": 0, - "lo": 330194781918050613 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 2720399956984275811 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 131323111642587165 - "lo": 379372906650669213 + "lo": 265915610180088465 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 6240552141031031 - "lo": 887852991415461601 + "lo": 675319111732444612 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 2771660207931826025 - "lo": 162103190158909682 + "lo": 104707701157825188 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 131323111642587165 - "lo": 379372906650669213 + "lo": 265915610180088465 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -880,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 6240552141031031 - "lo": 887852991415461601 + "lo": 675319111732444612 } } }, @@ -1027,7 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 13436706634498947381 + "lo": 13106511852580896768 } } }, @@ -1212,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 2771660207931826025 - "lo": 162103190158909682 + "lo": 104707701157825188 } } }, @@ -1359,7 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 10386111895596620957 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.217.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.217.json index bce80185..67c0c167 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.217.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.217.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 293762123380140535 - "lo": 218885417193685185 + "lo": 985586884127554178 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 427325726218979267 - "lo": 450491630924788159 + "lo": 184642919725449989 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 293762123380140535 - "lo": 218885417193685185 + "lo": 985586884127554178 } }, { "i128": { "hi": 0, - "lo": 427325726218979267 - "lo": 450491630924788159 + "lo": 184642919725449989 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 293762123380140535 - "lo": 218885417193685185 + "lo": 985586884127554178 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 427325726218979267 - "lo": 450491630924788159 + "lo": 184642919725449989 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 354305112451186544 - "lo": 314016000511496080 + "lo": 426593061275520943 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 293762123380140535 - "lo": 218885417193685185 + "lo": 985586884127554178 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 427325726218979267 - "lo": 450491630924788159 + "lo": 184642919725449989 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 354305112451186544 - "lo": 314016000511496080 + "lo": 426593061275520943 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 293762123380140535 - "lo": 218885417193685185 + "lo": 985586884127554178 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 427325726218979267 - "lo": 450491630924788159 + "lo": 184642919725449989 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.218.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.218.json index d13eec75..02edc4a8 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.218.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.218.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 420475132055012481 - "lo": 181204366456145204 + "lo": 71499509121103733 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 794310664911570294 - "lo": 398472823223455199 + "lo": 93564690173130796 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 420475132055012481 - "lo": 181204366456145204 + "lo": 71499509121103733 } }, { "i128": { "hi": 0, - "lo": 794310664911570294 - "lo": 398472823223455199 + "lo": 93564690173130796 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 420475132055012481 - "lo": 181204366456145204 + "lo": 71499509121103733 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 794310664911570294 - "lo": 398472823223455199 + "lo": 93564690173130796 } } ] @@ -241,12 +235,12 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" }, { - "bool": false + "bool": true }, { "i128": { "hi": 0, - "lo": 30484393315536617 + "lo": 22473289337990599 } }, { @@ -262,7 +256,7 @@ { "function": { "contract_fn": { - "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", "function_name": "transfer", "args": [ { @@ -274,7 +268,7 @@ { "i128": { "hi": 0, - "lo": 15056252608816009 + "lo": 43018479984255120 } } ] @@ -591,8 +585,7 @@ "val": { "i128": { "hi": 0, - "lo": 577916846718796810 - "lo": 268709909534795055 + "lo": 81791377408911571 } } } @@ -641,7 +634,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +650,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +709,7 @@ "val": { "i128": { "hi": 0, - "lo": 420475132055012481 - "lo": 196260619064961213 + "lo": 49026219783113134 } } }, @@ -724,8 +720,7 @@ "val": { "i128": { "hi": 0, - "lo": 794310664911570294 - "lo": 367988429907918582 + "lo": 136583170157385916 } } }, @@ -752,13 +747,24 @@ "val": { "i128": { "hi": 0, - "lo": 577916846718796810 - "lo": 268709909534795055 + "lo": 81791377408911571 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -880,8 +886,7 @@ "val": { "i128": { "hi": 0, - "lo": 420475132055012481 - "lo": 196260619064961213 + "lo": 49026219783113134 } } }, @@ -1027,7 +1032,7 @@ "val": { "i128": { "hi": 2, - "lo": 13091455599972080759 + "lo": 13128985141918887367 } } }, @@ -1212,8 +1217,7 @@ "val": { "i128": { "hi": 0, - "lo": 794310664911570294 - "lo": 367988429907918582 + "lo": 136583170157385916 } } }, @@ -1359,7 +1363,7 @@ "val": { "i128": { "hi": 2, - "lo": 13136996245896433385 + "lo": 13063493372596641648 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.219.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.219.json index 8867e7fb..0ba6642e 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.219.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.219.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 833904967982060317 - "lo": 571590376103103925 + "lo": 268800085541975531 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 683965303576860305 - "lo": 908371541418246938 + "lo": 448363400499119502 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 833904967982060317 - "lo": 571590376103103925 + "lo": 268800085541975531 } }, { "i128": { "hi": 0, - "lo": 683965303576860305 - "lo": 908371541418246938 + "lo": 448363400499119502 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 833904967982060317 - "lo": 571590376103103925 + "lo": 268800085541975531 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 683965303576860305 - "lo": 908371541418246938 + "lo": 448363400499119502 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 755223188587388289 - "lo": 720566742918802776 + "lo": 347160078937734942 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 833904967982060317 - "lo": 571590376103103925 + "lo": 268800085541975531 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 683965303576860305 - "lo": 908371541418246938 + "lo": 448363400499119502 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 755223188587388289 - "lo": 720566742918802776 + "lo": 347160078937734942 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 833904967982060317 - "lo": 571590376103103925 + "lo": 268800085541975531 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 683965303576860305 - "lo": 908371541418246938 + "lo": 448363400499119502 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.22.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.22.json index eaff596e..9ee4edb4 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.22.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.22.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 355533051989870418 - "lo": 899835878992605658 + "lo": 643916304070322139 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 67537337168191921 - "lo": 566105230147401973 + "lo": 204218287267294362 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 355533051989870418 - "lo": 899835878992605658 + "lo": 643916304070322139 } }, { "i128": { "hi": 0, - "lo": 67537337168191921 - "lo": 566105230147401973 + "lo": 204218287267294362 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 355533051989870418 - "lo": 899835878992605658 + "lo": 643916304070322139 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 67537337168191921 - "lo": 566105230147401973 + "lo": 204218287267294362 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": true - }, - { - "i128": { - "hi": 0, - "lo": 139866516617241802 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 43931878364656131 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 154957270260792171 - "lo": 713723894354111405 + "lo": 362628576867195496 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 215666535372628616 - "lo": 899835878992605658 + "lo": 643916304070322139 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 111469215532848052 - "lo": 566105230147401973 + "lo": 204218287267294362 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 154957270260792171 - "lo": 713723894354111405 + "lo": 362628576867195496 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -847,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 215666535372628616 - "lo": 899835878992605658 + "lo": 643916304070322139 } } }, @@ -994,7 +940,6 @@ "val": { "i128": { "hi": 2, - "lo": 13246378369198138570 "lo": 13106511852580896768 } } @@ -1180,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 111469215532848052 - "lo": 566105230147401973 + "lo": 204218287267294362 } } }, @@ -1327,7 +1271,6 @@ "val": { "i128": { "hi": 2, - "lo": 13062579974216240637 "lo": 13106511852580896768 } } diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.220.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.220.json index 54641484..b0a7e0e8 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.220.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.220.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 109609857643909654 - "lo": 855517866161213173 + "lo": 279620981921463042 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 666439674837160320 - "lo": 125647754076106197 + "lo": 886335060538072620 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 109609857643909654 - "lo": 855517866161213173 + "lo": 279620981921463042 } }, { "i128": { "hi": 0, - "lo": 666439674837160320 - "lo": 125647754076106197 + "lo": 886335060538072620 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 109609857643909654 - "lo": 855517866161213173 + "lo": 279620981921463042 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 666439674837160320 - "lo": 125647754076106197 + "lo": 886335060538072620 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 270274597191734949 - "lo": 327862621314384126 + "lo": 497833184851186125 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 109609857643909654 - "lo": 855517866161213173 + "lo": 279620981921463042 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 666439674837160320 - "lo": 125647754076106197 + "lo": 886335060538072620 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 270274597191734949 - "lo": 327862621314384126 + "lo": 497833184851186125 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 109609857643909654 - "lo": 855517866161213173 + "lo": 279620981921463042 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 666439674837160320 - "lo": 125647754076106197 + "lo": 886335060538072620 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.221.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.221.json index 37c4d52a..0e428180 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.221.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.221.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 261484884417749858 - "lo": 875199792252334573 + "lo": 807715773548150114 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 531048849796526668 - "lo": 847255044834163807 + "lo": 405393158085347203 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 261484884417749858 - "lo": 875199792252334573 + "lo": 807715773548150114 } }, { "i128": { "hi": 0, - "lo": 531048849796526668 - "lo": 847255044834163807 + "lo": 405393158085347203 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 261484884417749858 - "lo": 875199792252334573 + "lo": 807715773548150114 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 531048849796526668 - "lo": 847255044834163807 + "lo": 405393158085347203 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 372640909065582573 - "lo": 861114068648052328 + "lo": 572225871727269704 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 261484884417749858 - "lo": 875199792252334573 + "lo": 807715773548150114 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 531048849796526668 - "lo": 847255044834163807 + "lo": 405393158085347203 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 372640909065582573 - "lo": 861114068648052328 + "lo": 572225871727269704 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 261484884417749858 - "lo": 875199792252334573 + "lo": 807715773548150114 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 531048849796526668 - "lo": 847255044834163807 + "lo": 405393158085347203 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.222.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.222.json index 34ca2256..d55c48de 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.222.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.222.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 996585475643502040 - "lo": 323913304799332862 + "lo": 95484804914328636 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 2915796685085912 - "lo": 722722846339447491 + "lo": 159496098514149222 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 996585475643502040 - "lo": 323913304799332862 + "lo": 95484804914328636 } }, { "i128": { "hi": 0, - "lo": 2915796685085912 - "lo": 722722846339447491 + "lo": 159496098514149222 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 996585475643502040 - "lo": 323913304799332862 + "lo": 95484804914328636 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 2915796685085912 - "lo": 722722846339447491 + "lo": 159496098514149222 } } ] @@ -246,7 +240,7 @@ { "i128": { "hi": 0, - "lo": 1259765316239659 + "lo": 24081682524976542 } }, { @@ -274,7 +268,7 @@ { "i128": { "hi": 0, - "lo": 760397155028360667 + "lo": 17031818972277545 } } ] @@ -591,8 +585,7 @@ "val": { "i128": { "hi": 0, - "lo": 53905849648123441 - "lo": 483838346570206094 + "lo": 123407673388732517 } } } @@ -641,7 +634,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +650,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +709,7 @@ "val": { "i128": { "hi": 0, - "lo": 1756982630671862707 - "lo": 323913304799332862 + "lo": 112516623886606181 } } }, @@ -724,8 +720,7 @@ "val": { "i128": { "hi": 0, - "lo": 1656031368846253 - "lo": 722722846339447491 + "lo": 135414415989172680 } } }, @@ -752,13 +747,24 @@ "val": { "i128": { "hi": 0, - "lo": 53905849648123441 - "lo": 483838346570206094 + "lo": 123407673388732517 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,6 +809,39 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], [ { "contract_data": { @@ -847,8 +886,7 @@ "val": { "i128": { "hi": 0, - "lo": 1756982630671862707 - "lo": 323913304799332862 + "lo": 112516623886606181 } } }, @@ -994,8 +1032,7 @@ "val": { "i128": { "hi": 2, - "lo": 12346114697552536101 - "lo": 13106511852580896768 + "lo": 13089480033608619223 } } }, @@ -1180,8 +1217,7 @@ "val": { "i128": { "hi": 0, - "lo": 1656031368846253 - "lo": 722722846339447491 + "lo": 135414415989172680 } } }, @@ -1327,8 +1363,7 @@ "val": { "i128": { "hi": 2, - "lo": 13107771617897136427 - "lo": 13106511852580896768 + "lo": 13130593535105873310 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.223.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.223.json index 30c05bf7..72a085cb 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.223.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.223.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 941129475135343620 - "lo": 321592283793757392 + "lo": 819801898798949580 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 679937834922464764 - "lo": 95071580778967361 + "lo": 521912277513366477 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 941129475135343620 - "lo": 321592283793757392 + "lo": 819801898798949580 } }, { "i128": { "hi": 0, - "lo": 679937834922464764 - "lo": 95071580778967361 + "lo": 521912277513366477 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 941129475135343620 - "lo": 321592283793757392 + "lo": 819801898798949580 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 679937834922464764 - "lo": 95071580778967361 + "lo": 521912277513366477 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": false - }, - { - "i128": { - "hi": 0, - "lo": 24158047831600557 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 109886205176671778 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 799943459067727596 - "lo": 174855045070454864 + "lo": 654113656876190097 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 941129475135343620 - "lo": 431478488970429170 + "lo": 819801898798949580 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 679937834922464764 - "lo": 70913532947366804 + "lo": 521912277513366477 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 799943459067727596 - "lo": 174855045070454864 + "lo": 654113656876190097 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -880,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 941129475135343620 - "lo": 431478488970429170 + "lo": 819801898798949580 } } }, @@ -1027,7 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 12996625647404224990 + "lo": 13106511852580896768 } } }, @@ -1212,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 679937834922464764 - "lo": 70913532947366804 + "lo": 521912277513366477 } } }, @@ -1359,7 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 13130669900412497325 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.224.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.224.json index 890189eb..90398764 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.224.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.224.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 536033291583112662 - "lo": 235654210213902978 + "lo": 203313493399855182 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 215983036932745429 - "lo": 325516597003271243 + "lo": 273291851405572445 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 536033291583112662 - "lo": 235654210213902978 + "lo": 203313493399855182 } }, { "i128": { "hi": 0, - "lo": 215983036932745429 - "lo": 325516597003271243 + "lo": 273291851405572445 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 536033291583112662 - "lo": 235654210213902978 + "lo": 203313493399855182 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 215983036932745429 - "lo": 325516597003271243 + "lo": 273291851405572445 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": false - }, - { - "i128": { - "hi": 0, - "lo": 27900075519508729 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 22157889254100264 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 340255930459964976 - "lo": 276964540290491377 + "lo": 235720005572248908 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 536033291583112662 - "lo": 257812099468003242 + "lo": 203313493399855182 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 215983036932745429 - "lo": 297616521483762514 + "lo": 273291851405572445 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 340255930459964976 - "lo": 276964540290491377 + "lo": 235720005572248908 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -880,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 536033291583112662 - "lo": 257812099468003242 + "lo": 203313493399855182 } } }, @@ -1027,7 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 13084353963326796504 + "lo": 13106511852580896768 } } }, @@ -1212,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 215983036932745429 - "lo": 297616521483762514 + "lo": 273291851405572445 } } }, @@ -1359,7 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 13134411928100405497 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.225.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.225.json index 51890af0..92581956 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.225.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.225.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 620990888653680105 - "lo": 141236427414885494 + "lo": 171115240652001859 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 565424028716054072 - "lo": 243785647578359231 + "lo": 966177761730134591 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 620990888653680105 - "lo": 141236427414885494 + "lo": 171115240652001859 } }, { "i128": { "hi": 0, - "lo": 565424028716054072 - "lo": 243785647578359231 + "lo": 966177761730134591 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 620990888653680105 - "lo": 141236427414885494 + "lo": 171115240652001859 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 565424028716054072 - "lo": 243785647578359231 + "lo": 966177761730134591 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": false - }, - { - "i128": { - "hi": 0, - "lo": 103505481797525854 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 104524631713382233 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 592556469932213596 - "lo": 185557036835016820 + "lo": 406605140413970286 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 620990888653680105 - "lo": 245761059128267727 + "lo": 171115240652001859 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 565424028716054072 - "lo": 140280165780833377 + "lo": 966177761730134591 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 592556469932213596 - "lo": 185557036835016820 + "lo": 406605140413970286 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -880,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 620990888653680105 - "lo": 245761059128267727 + "lo": 171115240652001859 } } }, @@ -1027,7 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 13001987220867514535 + "lo": 13106511852580896768 } } }, @@ -1212,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 565424028716054072 - "lo": 140280165780833377 + "lo": 966177761730134591 } } }, @@ -1359,7 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 13210017334378422622 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.226.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.226.json index 3a63c3de..42e44b36 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.226.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.226.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 422013378163585606 - "lo": 15862655598233438 + "lo": 295353980121339120 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 845717915226397661 - "lo": 656058590798216487 + "lo": 556889588649756126 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 422013378163585606 - "lo": 15862655598233438 + "lo": 295353980121339120 } }, { "i128": { "hi": 0, - "lo": 845717915226397661 - "lo": 656058590798216487 + "lo": 556889588649756126 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 422013378163585606 - "lo": 15862655598233438 + "lo": 295353980121339120 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 845717915226397661 - "lo": 656058590798216487 + "lo": 556889588649756126 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": false - }, - { - "i128": { - "hi": 0, - "lo": 161799799312312045 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 5208399787424789 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 597414658656913932 - "lo": 102013878850352852 + "lo": 405560792601850000 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 422013378163585606 - "lo": 21071055385658227 + "lo": 295353980121339120 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 845717915226397661 - "lo": 494258791485904442 + "lo": 556889588649756126 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 597414658656913932 - "lo": 102013878850352852 + "lo": 405560792601850000 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -880,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 422013378163585606 - "lo": 21071055385658227 + "lo": 295353980121339120 } } }, @@ -1027,7 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 13101303452793471979 + "lo": 13106511852580896768 } } }, @@ -1212,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 845717915226397661 - "lo": 494258791485904442 + "lo": 556889588649756126 } } }, @@ -1359,7 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 13268311651893208813 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.227.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.227.json index 1ef1b7a4..79e53de1 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.227.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.227.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 443536828323967283 - "lo": 266904869806566984 + "lo": 9574826247237555 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 623963916977060888 - "lo": 799181127493018082 + "lo": 490164033358038348 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 443536828323967283 - "lo": 266904869806566984 + "lo": 9574826247237555 } }, { "i128": { "hi": 0, - "lo": 623963916977060888 - "lo": 799181127493018082 + "lo": 490164033358038348 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 443536828323967283 - "lo": 266904869806566984 + "lo": 9574826247237555 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 623963916977060888 - "lo": 799181127493018082 + "lo": 490164033358038348 } } ] @@ -228,6 +222,65 @@ } ] ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "function_name": "swap", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "bool": false + }, + { + "i128": { + "hi": 0, + "lo": 252245921354584892 + } + }, + { + "i128": { + "hi": 2, + "lo": 13106511852580896768 + } + } + ] + } + }, + "sub_invocations": [ + { + "function": { + "contract_fn": { + "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", + "function_name": "transfer", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "i128": { + "hi": 0, + "lo": 10181983553314769 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + } + ] + ], + [], [] ], "ledger": { @@ -532,8 +585,7 @@ "val": { "i128": { "hi": 0, - "lo": 526071265822991733 - "lo": 461849905039926798 + "lo": 68507192703017469 } } } @@ -582,7 +634,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +650,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +709,7 @@ "val": { "i128": { "hi": 0, - "lo": 443536828323967283 - "lo": 266904869806566984 + "lo": 19756809800552324 } } }, @@ -665,8 +720,7 @@ "val": { "i128": { "hi": 0, - "lo": 623963916977060888 - "lo": 799181127493018082 + "lo": 237918112003453456 } } }, @@ -693,13 +747,24 @@ "val": { "i128": { "hi": 0, - "lo": 526071265822991733 - "lo": 461849905039926798 + "lo": 68507192703017469 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -744,6 +809,39 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], [ { "contract_data": { @@ -788,8 +886,7 @@ "val": { "i128": { "hi": 0, - "lo": 443536828323967283 - "lo": 266904869806566984 + "lo": 19756809800552324 } } }, @@ -935,7 +1032,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 13096329869027581999 } } }, @@ -1120,8 +1217,7 @@ "val": { "i128": { "hi": 0, - "lo": 623963916977060888 - "lo": 799181127493018082 + "lo": 237918112003453456 } } }, @@ -1267,7 +1363,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 13358757773935481660 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.228.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.228.json index 43183795..1eaf04b0 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.228.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.228.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 51108893379304112 - "lo": 182246703850666487 + "lo": 922874044072973699 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 672768744354125015 - "lo": 995732865290450575 + "lo": 932436827243683840 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 51108893379304112 - "lo": 182246703850666487 + "lo": 922874044072973699 } }, { "i128": { "hi": 0, - "lo": 672768744354125015 - "lo": 995732865290450575 + "lo": 932436827243683840 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 51108893379304112 - "lo": 182246703850666487 + "lo": 922874044072973699 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 672768744354125015 - "lo": 995732865290450575 + "lo": 932436827243683840 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 185430488388838799 - "lo": 425991822239540571 + "lo": 927643113271990632 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 51108893379304112 - "lo": 182246703850666487 + "lo": 922874044072973699 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 672768744354125015 - "lo": 995732865290450575 + "lo": 932436827243683840 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 185430488388838799 - "lo": 425991822239540571 + "lo": 927643113271990632 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 51108893379304112 - "lo": 182246703850666487 + "lo": 922874044072973699 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 672768744354125015 - "lo": 995732865290450575 + "lo": 932436827243683840 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.229.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.229.json index 82983aaa..f64eee1f 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.229.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.229.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 540689156381833455 - "lo": 222765950292887618 + "lo": 66484272874681568 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 760582033813477000 - "lo": 737838789792536655 + "lo": 93506730680069035 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 540689156381833455 - "lo": 222765950292887618 + "lo": 66484272874681568 } }, { "i128": { "hi": 0, - "lo": 760582033813477000 - "lo": 737838789792536655 + "lo": 93506730680069035 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 540689156381833455 - "lo": 222765950292887618 + "lo": 66484272874681568 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 760582033813477000 - "lo": 737838789792536655 + "lo": 93506730680069035 } } ] @@ -228,6 +222,65 @@ } ] ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "function_name": "swap", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "bool": true + }, + { + "i128": { + "hi": 0, + "lo": 48604101262309315 + } + }, + { + "i128": { + "hi": 2, + "lo": 13106511852580896768 + } + } + ] + } + }, + "sub_invocations": [ + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "transfer", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "i128": { + "hi": 0, + "lo": 254946438082391071 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + } + ] + ], + [], [] ], "ledger": { @@ -532,8 +585,7 @@ "val": { "i128": { "hi": 0, - "lo": 641278767948688603 - "lo": 405419978751773623 + "lo": 78846223740601987 } } } @@ -582,7 +634,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +650,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +709,7 @@ "val": { "i128": { "hi": 0, - "lo": 540689156381833455 - "lo": 222765950292887618 + "lo": 17880171612372253 } } }, @@ -665,8 +720,7 @@ "val": { "i128": { "hi": 0, - "lo": 760582033813477000 - "lo": 737838789792536655 + "lo": 348453168762460106 } } }, @@ -693,13 +747,24 @@ "val": { "i128": { "hi": 0, - "lo": 641278767948688603 - "lo": 405419978751773623 + "lo": 78846223740601987 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -744,6 +809,39 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], [ { "contract_data": { @@ -788,8 +886,7 @@ "val": { "i128": { "hi": 0, - "lo": 540689156381833455 - "lo": 222765950292887618 + "lo": 17880171612372253 } } }, @@ -935,7 +1032,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 13155115953843206083 } } }, @@ -1120,8 +1217,7 @@ "val": { "i128": { "hi": 0, - "lo": 760582033813477000 - "lo": 737838789792536655 + "lo": 348453168762460106 } } }, @@ -1267,7 +1363,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 12851565414498505697 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.23.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.23.json index f95d239d..e0c57db9 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.23.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.23.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 11731660741853363 - "lo": 864102187520971404 + "lo": 899821482208737473 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 258408832758853624 - "lo": 800438370222707960 + "lo": 988316658083271131 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 11731660741853363 - "lo": 864102187520971404 + "lo": 899821482208737473 } }, { "i128": { "hi": 0, - "lo": 258408832758853624 - "lo": 800438370222707960 + "lo": 988316658083271131 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 11731660741853363 - "lo": 864102187520971404 + "lo": 899821482208737473 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 258408832758853624 - "lo": 800438370222707960 + "lo": 988316658083271131 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": true - }, - { - "i128": { - "hi": 0, - "lo": 9551956402518568 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 1135813271189563367 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 55059647280246849 - "lo": 831661317295185448 + "lo": 943031579623967327 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 2179704339334795 - "lo": 864102187520971404 + "lo": 899821482208737473 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 1394222103948416991 - "lo": 800438370222707960 + "lo": 988316658083271131 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 55059647280246849 - "lo": 831661317295185448 + "lo": 943031579623967327 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -880,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 2179704339334795 - "lo": 864102187520971404 + "lo": 899821482208737473 } } }, @@ -1027,7 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 13116063808983415336 + "lo": 13106511852580896768 } } }, @@ -1212,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 1394222103948416991 - "lo": 800438370222707960 + "lo": 988316658083271131 } } }, @@ -1359,7 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 11970698581391333401 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.230.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.230.json index e0cdf447..9cb96ff1 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.230.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.230.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 682980021578530634 - "lo": 123644936834946761 + "lo": 359401378982233016 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 787740196506703003 - "lo": 776357469105349071 + "lo": 523720593112957379 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 682980021578530634 - "lo": 123644936834946761 + "lo": 359401378982233016 } }, { "i128": { "hi": 0, - "lo": 787740196506703003 - "lo": 776357469105349071 + "lo": 523720593112957379 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 682980021578530634 - "lo": 123644936834946761 + "lo": 359401378982233016 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 787740196506703003 - "lo": 776357469105349071 + "lo": 523720593112957379 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 733492206099304083 - "lo": 309826839103506359 + "lo": 433850093196013788 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 682980021578530634 - "lo": 123644936834946761 + "lo": 359401378982233016 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 787740196506703003 - "lo": 776357469105349071 + "lo": 523720593112957379 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 733492206099304083 - "lo": 309826839103506359 + "lo": 433850093196013788 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 682980021578530634 - "lo": 123644936834946761 + "lo": 359401378982233016 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 787740196506703003 - "lo": 776357469105349071 + "lo": 523720593112957379 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.231.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.231.json index 890b79ee..5ac2cd80 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.231.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.231.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 281746390494101078 - "lo": 729354211656449574 + "lo": 424690835049361236 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 67411043693283259 - "lo": 978160092825195183 + "lo": 214685739496610005 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 281746390494101078 - "lo": 729354211656449574 + "lo": 424690835049361236 } }, { "i128": { "hi": 0, - "lo": 67411043693283259 - "lo": 978160092825195183 + "lo": 214685739496610005 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 281746390494101078 - "lo": 729354211656449574 + "lo": 424690835049361236 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 67411043693283259 - "lo": 978160092825195183 + "lo": 214685739496610005 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": false - }, - { - "i128": { - "hi": 0, - "lo": 23137644281549643 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 147686049368141570 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 137814434077213751 - "lo": 844645004351721581 + "lo": 301952092193455311 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 429432439862242648 - "lo": 729354211656449574 + "lo": 424690835049361236 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 44273399411733616 - "lo": 978160092825195183 + "lo": 214685739496610005 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 137814434077213751 - "lo": 844645004351721581 + "lo": 301952092193455311 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -880,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 429432439862242648 - "lo": 729354211656449574 + "lo": 424690835049361236 } } }, @@ -1027,7 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 12958825803212755198 + "lo": 13106511852580896768 } } }, @@ -1212,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 44273399411733616 - "lo": 978160092825195183 + "lo": 214685739496610005 } } }, @@ -1359,7 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 13129649496862446411 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.232.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.232.json index 391c3a0e..a2c467f6 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.232.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.232.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 479477680533041827 - "lo": 986652469023525206 + "lo": 344215189448915850 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 317125788776575172 - "lo": 291946381260302941 + "lo": 7000214886573867 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 479477680533041827 - "lo": 986652469023525206 + "lo": 344215189448915850 } }, { "i128": { "hi": 0, - "lo": 317125788776575172 - "lo": 291946381260302941 + "lo": 7000214886573867 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 479477680533041827 - "lo": 986652469023525206 + "lo": 344215189448915850 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 317125788776575172 - "lo": 291946381260302941 + "lo": 7000214886573867 } } ] @@ -228,6 +222,65 @@ } ] ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "function_name": "swap", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "bool": true + }, + { + "i128": { + "hi": 0, + "lo": 152603697296593584 + } + }, + { + "i128": { + "hi": 2, + "lo": 13106511852580896768 + } + } + ] + } + }, + "sub_invocations": [ + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "transfer", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "i128": { + "hi": 0, + "lo": 5591904122267240 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + } + ] + ], + [], [] ], "ledger": { @@ -532,8 +585,7 @@ "val": { "i128": { "hi": 0, - "lo": 389941967015354236 - "lo": 536702541351316248 + "lo": 49087475931902880 } } } @@ -582,7 +634,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +650,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +709,7 @@ "val": { "i128": { "hi": 0, - "lo": 479477680533041827 - "lo": 986652469023525206 + "lo": 191611492152322266 } } }, @@ -665,8 +720,7 @@ "val": { "i128": { "hi": 0, - "lo": 317125788776575172 - "lo": 291946381260302941 + "lo": 12592119008841107 } } }, @@ -693,13 +747,24 @@ "val": { "i128": { "hi": 0, - "lo": 389941967015354236 - "lo": 536702541351316248 + "lo": 49087475931902880 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -744,6 +809,39 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], [ { "contract_data": { @@ -788,8 +886,7 @@ "val": { "i128": { "hi": 0, - "lo": 479477680533041827 - "lo": 986652469023525206 + "lo": 191611492152322266 } } }, @@ -935,7 +1032,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 13259115549877490352 } } }, @@ -1120,8 +1217,7 @@ "val": { "i128": { "hi": 0, - "lo": 317125788776575172 - "lo": 291946381260302941 + "lo": 12592119008841107 } } }, @@ -1267,7 +1363,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 13100919948458629528 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.233.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.233.json index 3951c369..eca3b899 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.233.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.233.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 650647341128002513 - "lo": 983667149491807659 + "lo": 676370507012411661 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 576056121048032054 - "lo": 83133507353466140 + "lo": 83919443558709144 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 650647341128002513 - "lo": 983667149491807659 + "lo": 676370507012411661 } }, { "i128": { "hi": 0, - "lo": 576056121048032054 - "lo": 83133507353466140 + "lo": 83919443558709144 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 650647341128002513 - "lo": 983667149491807659 + "lo": 676370507012411661 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 576056121048032054 - "lo": 83133507353466140 + "lo": 83919443558709144 } } ] @@ -246,7 +240,7 @@ { "i128": { "hi": 0, - "lo": 9185818542718171 + "lo": 12547720043167621 } }, { @@ -274,7 +268,7 @@ { "i128": { "hi": 0, - "lo": 122559298580324996 + "lo": 119269154273705125 } } ] @@ -591,8 +585,7 @@ "val": { "i128": { "hi": 0, - "lo": 612216778192506596 - "lo": 285964508646860351 + "lo": 238244908839629913 } } } @@ -641,7 +634,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +650,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +709,7 @@ "val": { "i128": { "hi": 0, - "lo": 650647341128002513 - "lo": 1106226448072132655 + "lo": 795639661286116786 } } }, @@ -724,8 +720,7 @@ "val": { "i128": { "hi": 0, - "lo": 576056121048032054 - "lo": 73947688810747969 + "lo": 71371723515541523 } } }, @@ -752,13 +747,24 @@ "val": { "i128": { "hi": 0, - "lo": 612216778192506596 - "lo": 285964508646860351 + "lo": 238244908839629913 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -880,8 +886,7 @@ "val": { "i128": { "hi": 0, - "lo": 650647341128002513 - "lo": 1106226448072132655 + "lo": 795639661286116786 } } }, @@ -1027,7 +1032,7 @@ "val": { "i128": { "hi": 2, - "lo": 12983952554000571772 + "lo": 12987242698307191643 } } }, @@ -1212,8 +1217,7 @@ "val": { "i128": { "hi": 0, - "lo": 576056121048032054 - "lo": 73947688810747969 + "lo": 71371723515541523 } } }, @@ -1359,7 +1363,7 @@ "val": { "i128": { "hi": 2, - "lo": 13115697671123614939 + "lo": 13119059572624064389 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.234.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.234.json index 657973b4..d3e412e3 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.234.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.234.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 286414571643084560 - "lo": 145239039761778259 + "lo": 350138014047846894 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 257066192286673018 - "lo": 202564160190794915 + "lo": 81814056487646754 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 286414571643084560 - "lo": 145239039761778259 + "lo": 350138014047846894 } }, { "i128": { "hi": 0, - "lo": 257066192286673018 - "lo": 202564160190794915 + "lo": 81814056487646754 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 286414571643084560 - "lo": 145239039761778259 + "lo": 350138014047846894 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 257066192286673018 - "lo": 202564160190794915 + "lo": 81814056487646754 } } ] @@ -241,12 +235,12 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" }, { - "bool": false + "bool": true }, { "i128": { "hi": 0, - "lo": 21345621791645026 + "lo": 189424167765813828 } }, { @@ -262,7 +256,7 @@ { "function": { "contract_fn": { - "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", "function_name": "transfer", "args": [ { @@ -274,7 +268,7 @@ { "i128": { "hi": 0, - "lo": 17159095743506270 + "lo": 96719682203697720 } } ] @@ -591,8 +585,7 @@ "val": { "i128": { "hi": 0, - "lo": 271343883932743655 - "lo": 171523246576847662 + "lo": 169251916561624195 } } } @@ -641,7 +634,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +650,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +709,7 @@ "val": { "i128": { "hi": 0, - "lo": 286414571643084560 - "lo": 162398135505284529 + "lo": 160713846282033066 } } }, @@ -724,8 +720,7 @@ "val": { "i128": { "hi": 0, - "lo": 257066192286673018 - "lo": 181218538399149889 + "lo": 178533738691344474 } } }, @@ -752,13 +747,24 @@ "val": { "i128": { "hi": 0, - "lo": 271343883932743655 - "lo": 171523246576847662 + "lo": 169251916561624195 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -880,8 +886,7 @@ "val": { "i128": { "hi": 0, - "lo": 286414571643084560 - "lo": 162398135505284529 + "lo": 160713846282033066 } } }, @@ -1027,7 +1032,7 @@ "val": { "i128": { "hi": 2, - "lo": 13089352756837390498 + "lo": 13295936020346710596 } } }, @@ -1212,8 +1217,7 @@ "val": { "i128": { "hi": 0, - "lo": 257066192286673018 - "lo": 181218538399149889 + "lo": 178533738691344474 } } }, @@ -1359,7 +1363,7 @@ "val": { "i128": { "hi": 2, - "lo": 13127857474372541794 + "lo": 13009792170377199048 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.235.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.235.json index 3ae700d0..0af1ed69 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.235.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.235.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 903566712651845333 - "lo": 463265545772438540 + "lo": 414199757432388650 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 449580304428633646 - "lo": 169436803425828827 + "lo": 289120759194487016 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 903566712651845333 - "lo": 463265545772438540 + "lo": 414199757432388650 } }, { "i128": { "hi": 0, - "lo": 449580304428633646 - "lo": 169436803425828827 + "lo": 289120759194487016 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 903566712651845333 - "lo": 463265545772438540 + "lo": 414199757432388650 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 449580304428633646 - "lo": 169436803425828827 + "lo": 289120759194487016 } } ] @@ -228,6 +222,65 @@ } ] ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "function_name": "swap", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "bool": false + }, + { + "i128": { + "hi": 0, + "lo": 26956390292432168 + } + }, + { + "i128": { + "hi": 2, + "lo": 13106511852580896768 + } + } + ] + } + }, + "sub_invocations": [ + { + "function": { + "contract_fn": { + "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", + "function_name": "transfer", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "i128": { + "hi": 0, + "lo": 42717197415439748 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + } + ] + ], + [], [] ], "ledger": { @@ -532,8 +585,7 @@ "val": { "i128": { "hi": 0, - "lo": 637358453105939723 - "lo": 280168223060724671 + "lo": 346054545306118718 } } } @@ -582,7 +634,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +650,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +709,7 @@ "val": { "i128": { "hi": 0, - "lo": 903566712651845333 - "lo": 463265545772438540 + "lo": 456916954847828398 } } }, @@ -665,8 +720,7 @@ "val": { "i128": { "hi": 0, - "lo": 449580304428633646 - "lo": 169436803425828827 + "lo": 262164368902054848 } } }, @@ -693,13 +747,24 @@ "val": { "i128": { "hi": 0, - "lo": 637358453105939723 - "lo": 280168223060724671 + "lo": 346054545306118718 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -744,6 +809,39 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], [ { "contract_data": { @@ -788,8 +886,7 @@ "val": { "i128": { "hi": 0, - "lo": 903566712651845333 - "lo": 463265545772438540 + "lo": 456916954847828398 } } }, @@ -935,7 +1032,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 13063794655165457020 } } }, @@ -1120,8 +1217,7 @@ "val": { "i128": { "hi": 0, - "lo": 449580304428633646 - "lo": 169436803425828827 + "lo": 262164368902054848 } } }, @@ -1267,7 +1363,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 13133468242873328936 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.236.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.236.json index a8845673..9d278aa8 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.236.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.236.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 958738492554717015 - "lo": 529359666167963366 + "lo": 666777277611802521 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 500092380981700955 - "lo": 715691260842831168 + "lo": 568858397694547750 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 958738492554717015 - "lo": 529359666167963366 + "lo": 666777277611802521 } }, { "i128": { "hi": 0, - "lo": 500092380981700955 - "lo": 715691260842831168 + "lo": 568858397694547750 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 958738492554717015 - "lo": 529359666167963366 + "lo": 666777277611802521 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 500092380981700955 - "lo": 715691260842831168 + "lo": 568858397694547750 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 692428924497305503 - "lo": 615514489609375401 + "lo": 615874868590513789 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 958738492554717015 - "lo": 529359666167963366 + "lo": 666777277611802521 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 500092380981700955 - "lo": 715691260842831168 + "lo": 568858397694547750 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 692428924497305503 - "lo": 615514489609375401 + "lo": 615874868590513789 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 958738492554717015 - "lo": 529359666167963366 + "lo": 666777277611802521 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 500092380981700955 - "lo": 715691260842831168 + "lo": 568858397694547750 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.237.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.237.json index 8e3299d4..b8d26470 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.237.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.237.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 430601889373830082 - "lo": 194634997038067708 + "lo": 327628817781247474 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 872251188355511513 - "lo": 851078836836288344 + "lo": 667803871639660385 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 430601889373830082 - "lo": 194634997038067708 + "lo": 327628817781247474 } }, { "i128": { "hi": 0, - "lo": 872251188355511513 - "lo": 851078836836288344 + "lo": 667803871639660385 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 430601889373830082 - "lo": 194634997038067708 + "lo": 327628817781247474 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 872251188355511513 - "lo": 851078836836288344 + "lo": 667803871639660385 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 612856434831561342 - "lo": 407000892980338670 + "lo": 467751849782597727 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 430601889373830082 - "lo": 194634997038067708 + "lo": 327628817781247474 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 872251188355511513 - "lo": 851078836836288344 + "lo": 667803871639660385 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 612856434831561342 - "lo": 407000892980338670 + "lo": 467751849782597727 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 430601889373830082 - "lo": 194634997038067708 + "lo": 327628817781247474 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 872251188355511513 - "lo": 851078836836288344 + "lo": 667803871639660385 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.238.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.238.json index e68fb291..a52e4091 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.238.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.238.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 620626057197934471 - "lo": 268028296325747863 + "lo": 792653264454210629 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 622418344209186355 - "lo": 554269145764280250 + "lo": 427816534853537224 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 620626057197934471 - "lo": 268028296325747863 + "lo": 792653264454210629 } }, { "i128": { "hi": 0, - "lo": 622418344209186355 - "lo": 554269145764280250 + "lo": 427816534853537224 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 620626057197934471 - "lo": 268028296325747863 + "lo": 792653264454210629 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 622418344209186355 - "lo": 554269145764280250 + "lo": 427816534853537224 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 621521554649727458 - "lo": 385434579202654886 + "lo": 582331669187882018 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 620626057197934471 - "lo": 268028296325747863 + "lo": 792653264454210629 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 622418344209186355 - "lo": 554269145764280250 + "lo": 427816534853537224 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 621521554649727458 - "lo": 385434579202654886 + "lo": 582331669187882018 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 620626057197934471 - "lo": 268028296325747863 + "lo": 792653264454210629 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 622418344209186355 - "lo": 554269145764280250 + "lo": 427816534853537224 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.239.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.239.json index 3b94faf9..12573b8f 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.239.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.239.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 284091972232187755 - "lo": 558139303836406241 + "lo": 407851871578074971 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 245690639225576224 - "lo": 295712737355310994 + "lo": 518343290951592351 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 284091972232187755 - "lo": 558139303836406241 + "lo": 407851871578074971 } }, { "i128": { "hi": 0, - "lo": 245690639225576224 - "lo": 295712737355310994 + "lo": 518343290951592351 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 284091972232187755 - "lo": 558139303836406241 + "lo": 407851871578074971 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 245690639225576224 - "lo": 295712737355310994 + "lo": 518343290951592351 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 264194508377030540 - "lo": 406262109189438586 + "lo": 459790475471758324 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 284091972232187755 - "lo": 558139303836406241 + "lo": 407851871578074971 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 245690639225576224 - "lo": 295712737355310994 + "lo": 518343290951592351 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 264194508377030540 - "lo": 406262109189438586 + "lo": 459790475471758324 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 284091972232187755 - "lo": 558139303836406241 + "lo": 407851871578074971 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 245690639225576224 - "lo": 295712737355310994 + "lo": 518343290951592351 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.24.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.24.json index 4276c53f..d8584717 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.24.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.24.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 930967306296981835 - "lo": 325168639438885006 + "lo": 574503739355681151 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 613814456496531423 - "lo": 11973693394459727 + "lo": 179300790371888824 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 930967306296981835 - "lo": 325168639438885006 + "lo": 574503739355681151 } }, { "i128": { "hi": 0, - "lo": 613814456496531423 - "lo": 11973693394459727 + "lo": 179300790371888824 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 930967306296981835 - "lo": 325168639438885006 + "lo": 574503739355681151 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 613814456496531423 - "lo": 11973693394459727 + "lo": 179300790371888824 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": true - }, - { - "i128": { - "hi": 0, - "lo": 78108428699806111 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 3796890465055644 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 755937293120746756 - "lo": 62397672954484721 + "lo": 320950112226307285 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 930967306296981835 - "lo": 247060210739078895 + "lo": 574503739355681151 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 613814456496531423 - "lo": 15770583859515371 + "lo": 179300790371888824 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 755937293120746756 - "lo": 62397672954484721 + "lo": 320950112226307285 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -880,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 930967306296981835 - "lo": 247060210739078895 + "lo": 574503739355681151 } } }, @@ -1027,7 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 13184620281280702879 + "lo": 13106511852580896768 } } }, @@ -1212,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 613814456496531423 - "lo": 15770583859515371 + "lo": 179300790371888824 } } }, @@ -1359,7 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 13102714962115841124 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.240.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.240.json index 332b2db6..2a0c409d 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.240.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.240.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 88451322757257232 - "lo": 750645057948354029 + "lo": 115241989223195517 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 917511436053427276 - "lo": 484832606194099855 + "lo": 622809669202226008 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 88451322757257232 - "lo": 750645057948354029 + "lo": 115241989223195517 } }, { "i128": { "hi": 0, - "lo": 917511436053427276 - "lo": 484832606194099855 + "lo": 622809669202226008 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 88451322757257232 - "lo": 750645057948354029 + "lo": 115241989223195517 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 917511436053427276 - "lo": 484832606194099855 + "lo": 622809669202226008 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 284877342313909330 - "lo": 603272077732611120 + "lo": 267906373918772030 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 88451322757257232 - "lo": 750645057948354029 + "lo": 115241989223195517 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 917511436053427276 - "lo": 484832606194099855 + "lo": 622809669202226008 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 284877342313909330 - "lo": 603272077732611120 + "lo": 267906373918772030 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 88451322757257232 - "lo": 750645057948354029 + "lo": 115241989223195517 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 917511436053427276 - "lo": 484832606194099855 + "lo": 622809669202226008 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.241.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.241.json index e6390587..d680ba2e 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.241.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.241.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 601231342558940597 - "lo": 313189241331908465 + "lo": 694498867294540311 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 777283085981117351 - "lo": 127131754940052003 + "lo": 422578320462978662 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 601231342558940597 - "lo": 313189241331908465 + "lo": 694498867294540311 } }, { "i128": { "hi": 0, - "lo": 777283085981117351 - "lo": 127131754940052003 + "lo": 422578320462978662 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 601231342558940597 - "lo": 313189241331908465 + "lo": 694498867294540311 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 777283085981117351 - "lo": 127131754940052003 + "lo": 422578320462978662 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": false - }, - { - "i128": { - "hi": 0, - "lo": 49576979836475941 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 200809012405772816 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 683613160590683511 - "lo": 199540216194302528 + "lo": 541738096228027834 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 601231342558940597 - "lo": 513998253737681281 + "lo": 694498867294540311 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 777283085981117351 - "lo": 77554775103576062 + "lo": 422578320462978662 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 683613160590683511 - "lo": 199540216194302528 + "lo": 541738096228027834 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -880,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 601231342558940597 - "lo": 513998253737681281 + "lo": 694498867294540311 } } }, @@ -1027,7 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 12905702840175123952 + "lo": 13106511852580896768 } } }, @@ -1212,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 777283085981117351 - "lo": 77554775103576062 + "lo": 422578320462978662 } } }, @@ -1359,7 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 13156088832417372709 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.242.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.242.json index fc1121d5..3331fb1d 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.242.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.242.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 581273716939117236 - "lo": 823243803252930501 + "lo": 164500664360834444 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 747364582276472881 - "lo": 100461493348610907 + "lo": 163752445563643204 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 581273716939117236 - "lo": 823243803252930501 + "lo": 164500664360834444 } }, { "i128": { "hi": 0, - "lo": 747364582276472881 - "lo": 100461493348610907 + "lo": 163752445563643204 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 581273716939117236 - "lo": 823243803252930501 + "lo": 164500664360834444 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 747364582276472881 - "lo": 100461493348610907 + "lo": 163752445563643204 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 659108025022071849 - "lo": 287583556318471421 + "lo": 164126128589967916 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 581273716939117236 - "lo": 823243803252930501 + "lo": 164500664360834444 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 747364582276472881 - "lo": 100461493348610907 + "lo": 163752445563643204 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 659108025022071849 - "lo": 287583556318471421 + "lo": 164126128589967916 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 581273716939117236 - "lo": 823243803252930501 + "lo": 164500664360834444 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 747364582276472881 - "lo": 100461493348610907 + "lo": 163752445563643204 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.243.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.243.json index 3bbf9e33..7d5758f0 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.243.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.243.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 865264676414183870 - "lo": 478155030848894524 + "lo": 857469739452664206 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 977068737272396101 - "lo": 545197516650352728 + "lo": 794584268431605394 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 865264676414183870 - "lo": 478155030848894524 + "lo": 857469739452664206 } }, { "i128": { "hi": 0, - "lo": 977068737272396101 - "lo": 545197516650352728 + "lo": 794584268431605394 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 865264676414183870 - "lo": 478155030848894524 + "lo": 857469739452664206 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 977068737272396101 - "lo": 545197516650352728 + "lo": 794584268431605394 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 919468903656026339 - "lo": 510577061169702466 + "lo": 825428352811577749 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 865264676414183870 - "lo": 478155030848894524 + "lo": 857469739452664206 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 977068737272396101 - "lo": 545197516650352728 + "lo": 794584268431605394 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 919468903656026339 - "lo": 510577061169702466 + "lo": 825428352811577749 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 865264676414183870 - "lo": 478155030848894524 + "lo": 857469739452664206 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 977068737272396101 - "lo": 545197516650352728 + "lo": 794584268431605394 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.244.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.244.json index 0b36099b..bcb39302 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.244.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.244.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 360282336019804537 - "lo": 315297470177432058 + "lo": 101278802015291731 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 5932904899490697 - "lo": 916751828174970756 + "lo": 7945867271399464 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 360282336019804537 - "lo": 315297470177432058 + "lo": 101278802015291731 } }, { "i128": { "hi": 0, - "lo": 5932904899490697 - "lo": 916751828174970756 + "lo": 7945867271399464 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 360282336019804537 - "lo": 315297470177432058 + "lo": 101278802015291731 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 5932904899490697 - "lo": 916751828174970756 + "lo": 7945867271399464 } } ] @@ -246,7 +240,7 @@ { "i128": { "hi": 0, - "lo": 2871144802193634 + "lo": 6618773020956905 } }, { @@ -274,7 +268,7 @@ { "i128": { "hi": 0, - "lo": 338868928166123147 + "lo": 506639583121433939 } } ] @@ -591,8 +585,7 @@ "val": { "i128": { "hi": 0, - "lo": 46233330364271314 - "lo": 537633269249684882 + "lo": 28368079212732268 } } } @@ -641,7 +634,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +650,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +709,7 @@ "val": { "i128": { "hi": 0, - "lo": 699151264185927684 - "lo": 315297470177432058 + "lo": 607918385136725670 } } }, @@ -724,8 +720,7 @@ "val": { "i128": { "hi": 0, - "lo": 3061760097297063 - "lo": 916751828174970756 + "lo": 1327094250442559 } } }, @@ -752,13 +747,24 @@ "val": { "i128": { "hi": 0, - "lo": 46233330364271314 - "lo": 537633269249684882 + "lo": 28368079212732268 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,6 +809,39 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], [ { "contract_data": { @@ -847,8 +886,7 @@ "val": { "i128": { "hi": 0, - "lo": 699151264185927684 - "lo": 315297470177432058 + "lo": 607918385136725670 } } }, @@ -994,8 +1032,7 @@ "val": { "i128": { "hi": 2, - "lo": 12767642924414773621 - "lo": 13106511852580896768 + "lo": 12599872269459462829 } } }, @@ -1180,8 +1217,7 @@ "val": { "i128": { "hi": 0, - "lo": 3061760097297063 - "lo": 916751828174970756 + "lo": 1327094250442559 } } }, @@ -1327,8 +1363,7 @@ "val": { "i128": { "hi": 2, - "lo": 13109382997383090402 - "lo": 13106511852580896768 + "lo": 13113130625601853673 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.245.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.245.json index fbf4b9b2..b8c5f6cd 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.245.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.245.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 327348099339912450 - "lo": 212645271673967073 + "lo": 537329223540373568 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 955336874607833765 - "lo": 596838349188076679 + "lo": 317670405033696045 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 327348099339912450 - "lo": 212645271673967073 + "lo": 537329223540373568 } }, { "i128": { "hi": 0, - "lo": 955336874607833765 - "lo": 596838349188076679 + "lo": 317670405033696045 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 327348099339912450 - "lo": 212645271673967073 + "lo": 537329223540373568 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 955336874607833765 - "lo": 596838349188076679 + "lo": 317670405033696045 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 559220627420168265 - "lo": 356251109343592908 + "lo": 413150810332633711 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 327348099339912450 - "lo": 212645271673967073 + "lo": 537329223540373568 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 955336874607833765 - "lo": 596838349188076679 + "lo": 317670405033696045 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 559220627420168265 - "lo": 356251109343592908 + "lo": 413150810332633711 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 327348099339912450 - "lo": 212645271673967073 + "lo": 537329223540373568 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 955336874607833765 - "lo": 596838349188076679 + "lo": 317670405033696045 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.246.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.246.json index 0f2c422d..f704b0d4 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.246.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.246.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 220078732307800699 - "lo": 815816436108302598 + "lo": 431989189953560777 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 473233394557482086 - "lo": 64810449107365747 + "lo": 652018095855886301 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 220078732307800699 - "lo": 815816436108302598 + "lo": 431989189953560777 } }, { "i128": { "hi": 0, - "lo": 473233394557482086 - "lo": 64810449107365747 + "lo": 652018095855886301 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 220078732307800699 - "lo": 815816436108302598 + "lo": 431989189953560777 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 473233394557482086 - "lo": 64810449107365747 + "lo": 652018095855886301 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 322720630824755187 - "lo": 229942231034992015 + "lo": 530720989846687207 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 220078732307800699 - "lo": 815816436108302598 + "lo": 431989189953560777 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 473233394557482086 - "lo": 64810449107365747 + "lo": 652018095855886301 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 322720630824755187 - "lo": 229942231034992015 + "lo": 530720989846687207 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 220078732307800699 - "lo": 815816436108302598 + "lo": 431989189953560777 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 473233394557482086 - "lo": 64810449107365747 + "lo": 652018095855886301 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.247.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.247.json index 9b2f2f46..520a4a18 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.247.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.247.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 795412847054325698 - "lo": 980434001932906841 + "lo": 466811268590553774 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 489759824808106149 - "lo": 348221301587695322 + "lo": 5034516935564959 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 795412847054325698 - "lo": 980434001932906841 + "lo": 466811268590553774 } }, { "i128": { "hi": 0, - "lo": 489759824808106149 - "lo": 348221301587695322 + "lo": 5034516935564959 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 795412847054325698 - "lo": 980434001932906841 + "lo": 466811268590553774 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 489759824808106149 - "lo": 348221301587695322 + "lo": 5034516935564959 } } ] @@ -228,6 +222,65 @@ } ] ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "function_name": "swap", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "bool": true + }, + { + "i128": { + "hi": 0, + "lo": 228593882256973468 + } + }, + { + "i128": { + "hi": 2, + "lo": 13106511852580896768 + } + } + ] + } + }, + "sub_invocations": [ + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "transfer", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "i128": { + "hi": 0, + "lo": 4845669569190392 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + } + ] + ], + [], [] ], "ledger": { @@ -532,8 +585,7 @@ "val": { "i128": { "hi": 0, - "lo": 624148425154981453 - "lo": 584301295800300113 + "lo": 48478544093564792 } } } @@ -582,7 +634,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +650,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +709,7 @@ "val": { "i128": { "hi": 0, - "lo": 795412847054325698 - "lo": 980434001932906841 + "lo": 238217386333580306 } } }, @@ -665,8 +720,7 @@ "val": { "i128": { "hi": 0, - "lo": 489759824808106149 - "lo": 348221301587695322 + "lo": 9880186504755351 } } }, @@ -693,13 +747,24 @@ "val": { "i128": { "hi": 0, - "lo": 624148425154981453 - "lo": 584301295800300113 + "lo": 48478544093564792 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -744,6 +809,39 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], [ { "contract_data": { @@ -788,8 +886,7 @@ "val": { "i128": { "hi": 0, - "lo": 795412847054325698 - "lo": 980434001932906841 + "lo": 238217386333580306 } } }, @@ -935,7 +1032,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 13335105734837870236 } } }, @@ -1120,8 +1217,7 @@ "val": { "i128": { "hi": 0, - "lo": 489759824808106149 - "lo": 348221301587695322 + "lo": 9880186504755351 } } }, @@ -1267,7 +1363,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 13101666183011706376 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.248.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.248.json index 88270680..5fdb7562 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.248.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.248.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 188290488964636156 - "lo": 761207741471769518 + "lo": 224087845755452653 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 897623603033339679 - "lo": 836800054975870952 + "lo": 419405273998480955 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 188290488964636156 - "lo": 761207741471769518 + "lo": 224087845755452653 } }, { "i128": { "hi": 0, - "lo": 897623603033339679 - "lo": 836800054975870952 + "lo": 419405273998480955 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 188290488964636156 - "lo": 761207741471769518 + "lo": 224087845755452653 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 897623603033339679 - "lo": 836800054975870952 + "lo": 419405273998480955 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 411113107455048178 - "lo": 798109441061584796 + "lo": 306567487429432016 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 188290488964636156 - "lo": 761207741471769518 + "lo": 224087845755452653 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 897623603033339679 - "lo": 836800054975870952 + "lo": 419405273998480955 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 411113107455048178 - "lo": 798109441061584796 + "lo": 306567487429432016 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 188290488964636156 - "lo": 761207741471769518 + "lo": 224087845755452653 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 897623603033339679 - "lo": 836800054975870952 + "lo": 419405273998480955 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.249.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.249.json index 76d446d5..38ef8b3f 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.249.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.249.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 913852155105282806 - "lo": 366492995799544827 + "lo": 525449234648395586 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 792807420808982488 - "lo": 63645309727362488 + "lo": 344063084076692534 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 913852155105282806 - "lo": 366492995799544827 + "lo": 525449234648395586 } }, { "i128": { "hi": 0, - "lo": 792807420808982488 - "lo": 63645309727362488 + "lo": 344063084076692534 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 913852155105282806 - "lo": 366492995799544827 + "lo": 525449234648395586 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 792807420808982488 - "lo": 63645309727362488 + "lo": 344063084076692534 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": false - }, - { - "i128": { - "hi": 0, - "lo": 11251935320840039 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 78944408965021456 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 851180809281876067 - "lo": 152727077594547686 + "lo": 425191350098828650 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 913852155105282806 - "lo": 445437404764566283 + "lo": 525449234648395586 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 792807420808982488 - "lo": 52393374406522449 + "lo": 344063084076692534 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 851180809281876067 - "lo": 152727077594547686 + "lo": 425191350098828650 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -847,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 913852155105282806 - "lo": 445437404764566283 + "lo": 525449234648395586 } } }, @@ -995,7 +941,6 @@ "i128": { "hi": 2, "lo": 13106511852580896768 - "lo": 13027567443615875312 } } }, @@ -1180,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 792807420808982488 - "lo": 52393374406522449 + "lo": 344063084076692534 } } }, @@ -1328,7 +1272,6 @@ "i128": { "hi": 2, "lo": 13106511852580896768 - "lo": 13117763787901736807 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.25.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.25.json index 347a0763..72c165eb 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.25.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.25.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 642902982598080405 - "lo": 738931272455436545 + "lo": 168763396827080095 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 674168481153679760 - "lo": 635479868362887214 + "lo": 81850699927432252 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 642902982598080405 - "lo": 738931272455436545 + "lo": 168763396827080095 } }, { "i128": { "hi": 0, - "lo": 674168481153679760 - "lo": 635479868362887214 + "lo": 81850699927432252 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 642902982598080405 - "lo": 738931272455436545 + "lo": 168763396827080095 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 674168481153679760 - "lo": 635479868362887214 + "lo": 81850699927432252 } } ] @@ -228,6 +222,65 @@ } ] ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "function_name": "swap", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "bool": false + }, + { + "i128": { + "hi": 0, + "lo": 73054962197256669 + } + }, + { + "i128": { + "hi": 2, + "lo": 13106511852580896768 + } + } + ] + } + }, + "sub_invocations": [ + { + "function": { + "contract_fn": { + "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", + "function_name": "transfer", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "i128": { + "hi": 0, + "lo": 1405919805760225394 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + } + ] + ], + [], [] ], "ledger": { @@ -532,8 +585,7 @@ "val": { "i128": { "hi": 0, - "lo": 658350155545905887 - "lo": 685256118359552892 + "lo": 117530430750625197 } } } @@ -582,7 +634,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +650,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +709,7 @@ "val": { "i128": { "hi": 0, - "lo": 642902982598080405 - "lo": 738931272455436545 + "lo": 1574683202587305489 } } }, @@ -665,8 +720,7 @@ "val": { "i128": { "hi": 0, - "lo": 674168481153679760 - "lo": 635479868362887214 + "lo": 8795737730175583 } } }, @@ -693,13 +747,24 @@ "val": { "i128": { "hi": 0, - "lo": 658350155545905887 - "lo": 685256118359552892 + "lo": 117530430750625197 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -744,6 +809,39 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], [ { "contract_data": { @@ -788,8 +886,7 @@ "val": { "i128": { "hi": 0, - "lo": 642902982598080405 - "lo": 738931272455436545 + "lo": 1574683202587305489 } } }, @@ -935,7 +1032,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 11700592046820671374 } } }, @@ -1120,8 +1217,7 @@ "val": { "i128": { "hi": 0, - "lo": 674168481153679760 - "lo": 635479868362887214 + "lo": 8795737730175583 } } }, @@ -1267,7 +1363,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 13179566814778153437 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.250.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.250.json index 8c30459a..68d602e7 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.250.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.250.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 950763674125320557 - "lo": 240479780806244796 + "lo": 35004100230273177 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 35604889880755678 - "lo": 75618544029899809 + "lo": 357542238674369497 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 950763674125320557 - "lo": 240479780806244796 + "lo": 35004100230273177 } }, { "i128": { "hi": 0, - "lo": 35604889880755678 - "lo": 75618544029899809 + "lo": 357542238674369497 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 950763674125320557 - "lo": 240479780806244796 + "lo": 35004100230273177 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 35604889880755678 - "lo": 75618544029899809 + "lo": 357542238674369497 } } ] @@ -241,12 +235,12 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" }, { - "bool": false + "bool": true }, { "i128": { "hi": 0, - "lo": 10280432156694205 + "lo": 1008788642576591 } }, { @@ -262,7 +256,7 @@ { "function": { "contract_fn": { - "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", "function_name": "transfer", "args": [ { @@ -274,7 +268,7 @@ { "i128": { "hi": 0, - "lo": 37951434864510630 + "lo": 10641757415885071 } } ] @@ -591,8 +585,7 @@ "val": { "i128": { "hi": 0, - "lo": 183988684216868932 - "lo": 134850772682983456 + "lo": 111872446827241087 } } } @@ -641,7 +634,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +650,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +709,7 @@ "val": { "i128": { "hi": 0, - "lo": 950763674125320557 - "lo": 278431215670755426 + "lo": 33995311587696586 } } }, @@ -724,8 +720,7 @@ "val": { "i128": { "hi": 0, - "lo": 35604889880755678 - "lo": 65338111873205604 + "lo": 368183996090254568 } } }, @@ -752,13 +747,24 @@ "val": { "i128": { "hi": 0, - "lo": 183988684216868932 - "lo": 134850772682983456 + "lo": 111872446827241087 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -880,8 +886,7 @@ "val": { "i128": { "hi": 0, - "lo": 950763674125320557 - "lo": 278431215670755426 + "lo": 33995311587696586 } } }, @@ -1027,7 +1032,7 @@ "val": { "i128": { "hi": 2, - "lo": 13068560417716386138 + "lo": 13107520641223473359 } } }, @@ -1212,8 +1217,7 @@ "val": { "i128": { "hi": 0, - "lo": 35604889880755678 - "lo": 65338111873205604 + "lo": 368183996090254568 } } }, @@ -1359,7 +1363,7 @@ "val": { "i128": { "hi": 2, - "lo": 13116792284737590973 + "lo": 13095870095165011697 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.251.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.251.json index a774164c..b6b30de8 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.251.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.251.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 302877327709830009 - "lo": 211635445565703223 + "lo": 423210602457905178 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 150767622431813135 - "lo": 503208790324590193 + "lo": 760177054563810888 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 302877327709830009 - "lo": 211635445565703223 + "lo": 423210602457905178 } }, { "i128": { "hi": 0, - "lo": 150767622431813135 - "lo": 503208790324590193 + "lo": 760177054563810888 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 302877327709830009 - "lo": 211635445565703223 + "lo": 423210602457905178 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 150767622431813135 - "lo": 503208790324590193 + "lo": 760177054563810888 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": false - }, - { - "i128": { - "hi": 0, - "lo": 26886227939093848 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 11981797381549474 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 213691587544554932 - "lo": 326338499955066862 + "lo": 567199250031791088 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 302877327709830009 - "lo": 223617242947252697 + "lo": 423210602457905178 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 150767622431813135 - "lo": 476322562385496345 + "lo": 760177054563810888 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 213691587544554932 - "lo": 326338499955066862 + "lo": 567199250031791088 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -880,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 302877327709830009 - "lo": 223617242947252697 + "lo": 423210602457905178 } } }, @@ -1027,7 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 13094530055199347294 + "lo": 13106511852580896768 } } }, @@ -1212,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 150767622431813135 - "lo": 476322562385496345 + "lo": 760177054563810888 } } }, @@ -1359,7 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 13133398080519990616 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.252.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.252.json index 18961dc4..895081a4 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.252.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.252.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 896053533982505331 - "lo": 280385463898550096 + "lo": 78628369058862256 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 653056595939182578 - "lo": 148550797849632177 + "lo": 263098270320496709 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 896053533982505331 - "lo": 280385463898550096 + "lo": 78628369058862256 } }, { "i128": { "hi": 0, - "lo": 653056595939182578 - "lo": 148550797849632177 + "lo": 263098270320496709 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 896053533982505331 - "lo": 280385463898550096 + "lo": 78628369058862256 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 653056595939182578 - "lo": 148550797849632177 + "lo": 263098270320496709 } } ] @@ -241,12 +235,12 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" }, { - "bool": false + "bool": true }, { "i128": { "hi": 0, - "lo": 11425091404719633 + "lo": 22421819693513612 } }, { @@ -262,7 +256,7 @@ { "function": { "contract_fn": { - "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", "function_name": "transfer", "args": [ { @@ -274,7 +268,7 @@ { "i128": { "hi": 0, - "lo": 23431556658313825 + "lo": 105270519602819856 } } ] @@ -591,8 +585,7 @@ "val": { "i128": { "hi": 0, - "lo": 764966450690413996 - "lo": 204086952957725487 + "lo": 143829718408638766 } } } @@ -641,7 +634,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +650,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +709,7 @@ "val": { "i128": { "hi": 0, - "lo": 896053533982505331 - "lo": 303817020556863921 + "lo": 56206549365348644 } } }, @@ -724,8 +720,7 @@ "val": { "i128": { "hi": 0, - "lo": 653056595939182578 - "lo": 137125706444912544 + "lo": 368368789923316565 } } }, @@ -752,13 +747,24 @@ "val": { "i128": { "hi": 0, - "lo": 764966450690413996 - "lo": 204086952957725487 + "lo": 143829718408638766 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -880,8 +886,7 @@ "val": { "i128": { "hi": 0, - "lo": 896053533982505331 - "lo": 303817020556863921 + "lo": 56206549365348644 } } }, @@ -1027,7 +1032,7 @@ "val": { "i128": { "hi": 2, - "lo": 13083080295922582943 + "lo": 13128933672274410380 } } }, @@ -1212,8 +1217,7 @@ "val": { "i128": { "hi": 0, - "lo": 653056595939182578 - "lo": 137125706444912544 + "lo": 368368789923316565 } } }, @@ -1359,7 +1363,7 @@ "val": { "i128": { "hi": 2, - "lo": 13117936943985616401 + "lo": 13001241332978076912 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.253.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.253.json index 535e58c7..bfcc249a 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.253.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.253.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 511907211580703786 - "lo": 816289876282133286 + "lo": 700193353071875131 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 766958825480577981 - "lo": 531241063570820080 + "lo": 706111148988256395 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 511907211580703786 - "lo": 816289876282133286 + "lo": 700193353071875131 } }, { "i128": { "hi": 0, - "lo": 766958825480577981 - "lo": 531241063570820080 + "lo": 706111148988256395 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 511907211580703786 - "lo": 816289876282133286 + "lo": 700193353071875131 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 766958825480577981 - "lo": 531241063570820080 + "lo": 706111148988256395 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": false - }, - { - "i128": { - "hi": 0, - "lo": 13596272441562888 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 9266418676886823 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 626587387160780872 - "lo": 658518566221343243 + "lo": 703146025411167089 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 521173630257590609 - "lo": 816289876282133286 + "lo": 700193353071875131 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 753362553039015093 - "lo": 531241063570820080 + "lo": 706111148988256395 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 626587387160780872 - "lo": 658518566221343243 + "lo": 703146025411167089 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -880,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 521173630257590609 - "lo": 816289876282133286 + "lo": 700193353071875131 } } }, @@ -1027,7 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 13097245433904009945 + "lo": 13106511852580896768 } } }, @@ -1212,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 753362553039015093 - "lo": 531241063570820080 + "lo": 706111148988256395 } } }, @@ -1359,7 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 13120108125022459656 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.254.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.254.json index 118b90db..c50e8b0c 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.254.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.254.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 714845307972746199 - "lo": 704698506505999681 + "lo": 501756374239969023 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 685087989599505715 - "lo": 573501059316260039 + "lo": 796611411048551256 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 714845307972746199 - "lo": 704698506505999681 + "lo": 501756374239969023 } }, { "i128": { "hi": 0, - "lo": 685087989599505715 - "lo": 573501059316260039 + "lo": 796611411048551256 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 714845307972746199 - "lo": 704698506505999681 + "lo": 501756374239969023 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 685087989599505715 - "lo": 573501059316260039 + "lo": 796611411048551256 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 699808498743540701 - "lo": 635724264111239649 + "lo": 632222155010330746 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 714845307972746199 - "lo": 704698506505999681 + "lo": 501756374239969023 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 685087989599505715 - "lo": 573501059316260039 + "lo": 796611411048551256 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 699808498743540701 - "lo": 635724264111239649 + "lo": 632222155010330746 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 714845307972746199 - "lo": 704698506505999681 + "lo": 501756374239969023 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 685087989599505715 - "lo": 573501059316260039 + "lo": 796611411048551256 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.255.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.255.json index 04ca91da..7fce528e 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.255.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.255.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 43006761666324243 - "lo": 108592652541969408 + "lo": 823856031402151766 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 29789160372686679 - "lo": 324603402163637045 + "lo": 75398373017079992 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 43006761666324243 - "lo": 108592652541969408 + "lo": 823856031402151766 } }, { "i128": { "hi": 0, - "lo": 29789160372686679 - "lo": 324603402163637045 + "lo": 75398373017079992 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 43006761666324243 - "lo": 108592652541969408 + "lo": 823856031402151766 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 29789160372686679 - "lo": 324603402163637045 + "lo": 75398373017079992 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": true - }, - { - "i128": { - "hi": 0, - "lo": 29647033208697161 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 66305066205304259 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 35792950708038121 - "lo": 187748620407972634 + "lo": 249233634102684074 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 13359728457627082 - "lo": 108592652541969408 + "lo": 823856031402151766 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 96094226577990938 - "lo": 324603402163637045 + "lo": 75398373017079992 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 35792950708038121 - "lo": 187748620407972634 + "lo": 249233634102684074 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -880,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 13359728457627082 - "lo": 108592652541969408 + "lo": 823856031402151766 } } }, @@ -1027,7 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 13136158885789593929 + "lo": 13106511852580896768 } } }, @@ -1212,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 96094226577990938 - "lo": 324603402163637045 + "lo": 75398373017079992 } } }, @@ -1359,7 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 13040206786375592509 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.256.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.256.json index d6a59e5c..0532019c 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.256.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.256.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 619243173184745993 - "lo": 87446748468417779 + "lo": 804767542285418011 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 805564224758172921 - "lo": 350648791720681247 + "lo": 411336425901740029 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 619243173184745993 - "lo": 87446748468417779 + "lo": 804767542285418011 } }, { "i128": { "hi": 0, - "lo": 805564224758172921 - "lo": 350648791720681247 + "lo": 411336425901740029 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 619243173184745993 - "lo": 87446748468417779 + "lo": 804767542285418011 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 805564224758172921 - "lo": 350648791720681247 + "lo": 411336425901740029 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": true - }, - { - "i128": { - "hi": 0, - "lo": 29274685276447720 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 176992537628632191 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 706286164910060318 - "lo": 175108813856850242 + "lo": 575352243869276381 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 619243173184745993 - "lo": 58172063191970059 + "lo": 804767542285418011 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 805564224758172921 - "lo": 527641329349313438 + "lo": 411336425901740029 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 706286164910060318 - "lo": 175108813856850242 + "lo": 575352243869276381 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -880,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 619243173184745993 - "lo": 58172063191970059 + "lo": 804767542285418011 } } }, @@ -1027,7 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 13135786537857344488 + "lo": 13106511852580896768 } } }, @@ -1212,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 805564224758172921 - "lo": 527641329349313438 + "lo": 411336425901740029 } } }, @@ -1359,7 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 12929519314952264577 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.26.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.26.json index 452b9800..b02a078b 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.26.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.26.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 86048177262297159 - "lo": 41081390412605030 + "lo": 627846464409186957 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 277861624413988821 - "lo": 420960537078985251 + "lo": 926857553852437436 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 86048177262297159 - "lo": 41081390412605030 + "lo": 627846464409186957 } }, { "i128": { "hi": 0, - "lo": 277861624413988821 - "lo": 420960537078985251 + "lo": 926857553852437436 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 86048177262297159 - "lo": 41081390412605030 + "lo": 627846464409186957 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 277861624413988821 - "lo": 420960537078985251 + "lo": 926857553852437436 } } ] @@ -246,7 +240,7 @@ { "i128": { "hi": 0, - "lo": 149682458033834301 + "lo": 8754869773352526 } }, { @@ -274,7 +268,7 @@ { "i128": { "hi": 0, - "lo": 100785946911304390 + "lo": 6005051385376601 } } ] @@ -591,8 +585,7 @@ "val": { "i128": { "hi": 0, - "lo": 154626926219092727 - "lo": 131505300927535574 + "lo": 762839588771584693 } } } @@ -641,7 +634,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +650,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +709,7 @@ "val": { "i128": { "hi": 0, - "lo": 186834124173601549 - "lo": 41081390412605030 + "lo": 633851515794563558 } } }, @@ -724,8 +720,7 @@ "val": { "i128": { "hi": 0, - "lo": 128179166380154520 - "lo": 420960537078985251 + "lo": 918102684079084910 } } }, @@ -752,13 +747,24 @@ "val": { "i128": { "hi": 0, - "lo": 154626926219092727 - "lo": 131505300927535574 + "lo": 762839588771584693 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -880,8 +886,7 @@ "val": { "i128": { "hi": 0, - "lo": 186834124173601549 - "lo": 41081390412605030 + "lo": 633851515794563558 } } }, @@ -1027,7 +1032,7 @@ "val": { "i128": { "hi": 2, - "lo": 13005725905669592378 + "lo": 13100506801195520167 } } }, @@ -1212,8 +1217,7 @@ "val": { "i128": { "hi": 0, - "lo": 128179166380154520 - "lo": 420960537078985251 + "lo": 918102684079084910 } } }, @@ -1359,7 +1363,7 @@ "val": { "i128": { "hi": 2, - "lo": 13256194310614731069 + "lo": 13115266722354249294 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.27.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.27.json index 29d2f7ef..6cc55940 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.27.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.27.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 750625821617992010 - "lo": 449025351221751578 + "lo": 383423118852149218 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 755662112066942222 - "lo": 914207473548408744 + "lo": 499514273711082855 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 750625821617992010 - "lo": 449025351221751578 + "lo": 383423118852149218 } }, { "i128": { "hi": 0, - "lo": 755662112066942222 - "lo": 914207473548408744 + "lo": 499514273711082855 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 750625821617992010 - "lo": 449025351221751578 + "lo": 383423118852149218 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 755662112066942222 - "lo": 914207473548408744 + "lo": 499514273711082855 } } ] @@ -228,6 +222,65 @@ } ] ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "function_name": "swap", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "bool": true + }, + { + "i128": { + "hi": 0, + "lo": 12255886495164428 + } + }, + { + "i128": { + "hi": 2, + "lo": 13106511852580896768 + } + } + ] + } + }, + "sub_invocations": [ + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "transfer", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "i128": { + "hi": 0, + "lo": 16543517154658142 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + } + ] + ], + [], [] ], "ledger": { @@ -532,8 +585,7 @@ "val": { "i128": { "hi": 0, - "lo": 753139757107428010 - "lo": 640704558981457850 + "lo": 437636059685978706 } } } @@ -582,7 +634,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +650,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +709,7 @@ "val": { "i128": { "hi": 0, - "lo": 750625821617992010 - "lo": 449025351221751578 + "lo": 371167232356984790 } } }, @@ -665,8 +720,7 @@ "val": { "i128": { "hi": 0, - "lo": 755662112066942222 - "lo": 914207473548408744 + "lo": 516057790865740997 } } }, @@ -693,13 +747,24 @@ "val": { "i128": { "hi": 0, - "lo": 753139757107428010 - "lo": 640704558981457850 + "lo": 437636059685978706 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -744,6 +809,39 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], [ { "contract_data": { @@ -788,8 +886,7 @@ "val": { "i128": { "hi": 0, - "lo": 750625821617992010 - "lo": 449025351221751578 + "lo": 371167232356984790 } } }, @@ -935,7 +1032,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 13118767739076061196 } } }, @@ -1120,8 +1217,7 @@ "val": { "i128": { "hi": 0, - "lo": 755662112066942222 - "lo": 914207473548408744 + "lo": 516057790865740997 } } }, @@ -1267,7 +1363,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 13089968335426238626 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.28.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.28.json index e5dd835a..b9c5da14 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.28.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.28.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 52656462121921549 - "lo": 584991392966242010 + "lo": 496012843983164771 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 566491175911863298 - "lo": 28097598854606377 + "lo": 105635862860992279 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 52656462121921549 - "lo": 584991392966242010 + "lo": 496012843983164771 } }, { "i128": { "hi": 0, - "lo": 566491175911863298 - "lo": 28097598854606377 + "lo": 105635862860992279 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 52656462121921549 - "lo": 584991392966242010 + "lo": 496012843983164771 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 566491175911863298 - "lo": 28097598854606377 + "lo": 105635862860992279 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": false - }, - { - "i128": { - "hi": 0, - "lo": 2723962050148310 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 62990151316737228 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 172711960057217307 - "lo": 128206292719830528 + "lo": 228903352453161666 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 52656462121921549 - "lo": 647981544282979238 + "lo": 496012843983164771 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 566491175911863298 - "lo": 25373636804458067 + "lo": 105635862860992279 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 172711960057217307 - "lo": 128206292719830528 + "lo": 228903352453161666 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -880,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 52656462121921549 - "lo": 647981544282979238 + "lo": 496012843983164771 } } }, @@ -1027,7 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 13043521701264159540 + "lo": 13106511852580896768 } } }, @@ -1212,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 566491175911863298 - "lo": 25373636804458067 + "lo": 105635862860992279 } } }, @@ -1359,7 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 13109235814631045078 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.29.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.29.json index d15148b7..d25785a3 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.29.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.29.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 464382873368931916 - "lo": 847456985833614703 + "lo": 795823742951387843 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 502721489671883294 - "lo": 269613720646745668 + "lo": 638087253841020873 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 464382873368931916 - "lo": 847456985833614703 + "lo": 795823742951387843 } }, { "i128": { "hi": 0, - "lo": 502721489671883294 - "lo": 269613720646745668 + "lo": 638087253841020873 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 464382873368931916 - "lo": 847456985833614703 + "lo": 795823742951387843 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 502721489671883294 - "lo": 269613720646745668 + "lo": 638087253841020873 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 483172070672694194 - "lo": 478002124512723578 + "lo": 712604368974351405 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 464382873368931916 - "lo": 847456985833614703 + "lo": 795823742951387843 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 502721489671883294 - "lo": 269613720646745668 + "lo": 638087253841020873 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 483172070672694194 - "lo": 478002124512723578 + "lo": 712604368974351405 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 464382873368931916 - "lo": 847456985833614703 + "lo": 795823742951387843 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 502721489671883294 - "lo": 269613720646745668 + "lo": 638087253841020873 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.3.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.3.json index f2491075..7d779c99 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.3.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.3.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 181312858858755257 - "lo": 409471417832437714 + "lo": 605751665151271062 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 281420752962161581 - "lo": 237834348521596596 + "lo": 635815453269329598 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 181312858858755257 - "lo": 409471417832437714 + "lo": 605751665151271062 } }, { "i128": { "hi": 0, - "lo": 281420752962161581 - "lo": 237834348521596596 + "lo": 635815453269329598 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 181312858858755257 - "lo": 409471417832437714 + "lo": 605751665151271062 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 281420752962161581 - "lo": 237834348521596596 + "lo": 635815453269329598 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": true - }, - { - "i128": { - "hi": 0, - "lo": 2628223919798513 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 1541042892081157 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 225887585452926193 - "lo": 312067889886787766 + "lo": 620601538466354896 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 181312858858755257 - "lo": 406843193912639201 + "lo": 605751665151271062 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 281420752962161581 - "lo": 239375391413677753 + "lo": 635815453269329598 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 225887585452926193 - "lo": 312067889886787766 + "lo": 620601538466354896 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -880,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 181312858858755257 - "lo": 406843193912639201 + "lo": 605751665151271062 } } }, @@ -1027,7 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 13109140076500695281 + "lo": 13106511852580896768 } } }, @@ -1212,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 281420752962161581 - "lo": 239375391413677753 + "lo": 635815453269329598 } } }, @@ -1359,7 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 13104970809688815611 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.30.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.30.json index eb428f3e..3e73be97 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.30.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.30.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 785209908098193940 - "lo": 454377138690426920 + "lo": 933086225482935273 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 553680269347058352 - "lo": 787164551457584717 + "lo": 486815714874003577 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 785209908098193940 - "lo": 454377138690426920 + "lo": 933086225482935273 } }, { "i128": { "hi": 0, - "lo": 553680269347058352 - "lo": 787164551457584717 + "lo": 486815714874003577 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 785209908098193940 - "lo": 454377138690426920 + "lo": 933086225482935273 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 553680269347058352 - "lo": 787164551457584717 + "lo": 486815714874003577 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 659359714730727961 - "lo": 598054827394471140 + "lo": 673974063223178365 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 785209908098193940 - "lo": 454377138690426920 + "lo": 933086225482935273 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 553680269347058352 - "lo": 787164551457584717 + "lo": 486815714874003577 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 659359714730727961 - "lo": 598054827394471140 + "lo": 673974063223178365 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 785209908098193940 - "lo": 454377138690426920 + "lo": 933086225482935273 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 553680269347058352 - "lo": 787164551457584717 + "lo": 486815714874003577 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.31.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.31.json index c2bfa80e..222d6faf 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.31.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.31.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 345310266892392719 - "lo": 942115310821291308 + "lo": 181764905232625073 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 180129409110923065 - "lo": 796683459616665614 + "lo": 72408474942916512 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 345310266892392719 - "lo": 942115310821291308 + "lo": 181764905232625073 } }, { "i128": { "hi": 0, - "lo": 180129409110923065 - "lo": 796683459616665614 + "lo": 72408474942916512 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 345310266892392719 - "lo": 942115310821291308 + "lo": 181764905232625073 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 180129409110923065 - "lo": 796683459616665614 + "lo": 72408474942916512 } } ] @@ -228,6 +222,65 @@ } ] ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "function_name": "swap", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "bool": false + }, + { + "i128": { + "hi": 0, + "lo": 51864472418859612 + } + }, + { + "i128": { + "hi": 2, + "lo": 13106511852580896768 + } + } + ] + } + }, + "sub_invocations": [ + { + "function": { + "contract_fn": { + "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", + "function_name": "transfer", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "i128": { + "hi": 0, + "lo": 460256341255369494 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + } + ] + ], + [], [] ], "ledger": { @@ -532,8 +585,7 @@ "val": { "i128": { "hi": 0, - "lo": 249400349509101210 - "lo": 866353094980872453 + "lo": 114722794535515595 } } } @@ -582,7 +634,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +650,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +709,7 @@ "val": { "i128": { "hi": 0, - "lo": 345310266892392719 - "lo": 942115310821291308 + "lo": 642021246487994567 } } }, @@ -665,8 +720,7 @@ "val": { "i128": { "hi": 0, - "lo": 180129409110923065 - "lo": 796683459616665614 + "lo": 20544002524056900 } } }, @@ -693,13 +747,24 @@ "val": { "i128": { "hi": 0, - "lo": 249400349509101210 - "lo": 866353094980872453 + "lo": 114722794535515595 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -744,6 +809,39 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], [ { "contract_data": { @@ -788,8 +886,7 @@ "val": { "i128": { "hi": 0, - "lo": 345310266892392719 - "lo": 942115310821291308 + "lo": 642021246487994567 } } }, @@ -935,7 +1032,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 12646255511325527274 } } }, @@ -1120,8 +1217,7 @@ "val": { "i128": { "hi": 0, - "lo": 180129409110923065 - "lo": 796683459616665614 + "lo": 20544002524056900 } } }, @@ -1267,7 +1363,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 13158376324999756380 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.32.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.32.json index f91fbc14..05eda952 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.32.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.32.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 388794676546976628 - "lo": 653043041229879508 + "lo": 424727829454825770 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 734013959320346855 - "lo": 613042532385496759 + "lo": 806004438709194092 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 388794676546976628 - "lo": 653043041229879508 + "lo": 424727829454825770 } }, { "i128": { "hi": 0, - "lo": 734013959320346855 - "lo": 613042532385496759 + "lo": 806004438709194092 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 388794676546976628 - "lo": 653043041229879508 + "lo": 424727829454825770 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 734013959320346855 - "lo": 613042532385496759 + "lo": 806004438709194092 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 534210370448683742 - "lo": 632726765478031365 + "lo": 585091886616035001 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 388794676546976628 - "lo": 653043041229879508 + "lo": 424727829454825770 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 734013959320346855 - "lo": 613042532385496759 + "lo": 806004438709194092 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 534210370448683742 - "lo": 632726765478031365 + "lo": 585091886616035001 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 388794676546976628 - "lo": 653043041229879508 + "lo": 424727829454825770 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 734013959320346855 - "lo": 613042532385496759 + "lo": 806004438709194092 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.33.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.33.json index 3a48f8d9..2f5cb7cf 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.33.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.33.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 811715560210984223 - "lo": 796008531036021683 + "lo": 101558854229662601 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 279150877210814953 - "lo": 742402615893425844 + "lo": 549019882399707967 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 811715560210984223 - "lo": 796008531036021683 + "lo": 101558854229662601 } }, { "i128": { "hi": 0, - "lo": 279150877210814953 - "lo": 742402615893425844 + "lo": 549019882399707967 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 811715560210984223 - "lo": 796008531036021683 + "lo": 101558854229662601 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 279150877210814953 - "lo": 742402615893425844 + "lo": 549019882399707967 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 476015872296885000 - "lo": 768738457288709961 + "lo": 236130959862993072 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 811715560210984223 - "lo": 796008531036021683 + "lo": 101558854229662601 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 279150877210814953 - "lo": 742402615893425844 + "lo": 549019882399707967 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 476015872296885000 - "lo": 768738457288709961 + "lo": 236130959862993072 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 811715560210984223 - "lo": 796008531036021683 + "lo": 101558854229662601 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 279150877210814953 - "lo": 742402615893425844 + "lo": 549019882399707967 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.34.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.34.json index e89906fb..8888e093 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.34.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.34.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 325769999776786820 - "lo": 514526834280158855 + "lo": 876344089743731110 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 414087554449280785 - "lo": 418054159592011484 + "lo": 380936988791019293 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 325769999776786820 - "lo": 514526834280158855 + "lo": 876344089743731110 } }, { "i128": { "hi": 0, - "lo": 414087554449280785 - "lo": 418054159592011484 + "lo": 380936988791019293 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 325769999776786820 - "lo": 514526834280158855 + "lo": 876344089743731110 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 414087554449280785 - "lo": 418054159592011484 + "lo": 380936988791019293 } } ] @@ -228,6 +222,65 @@ } ] ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "function_name": "swap", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "bool": false + }, + { + "i128": { + "hi": 0, + "lo": 5609183755792000 + } + }, + { + "i128": { + "hi": 2, + "lo": 13106511852580896768 + } + } + ] + } + }, + "sub_invocations": [ + { + "function": { + "contract_fn": { + "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", + "function_name": "transfer", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "i128": { + "hi": 0, + "lo": 13136160084396935 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + } + ] + ], + [], [] ], "ledger": { @@ -532,8 +585,7 @@ "val": { "i128": { "hi": 0, - "lo": 367283681260837399 - "lo": 463788834807965138 + "lo": 577781860819274684 } } } @@ -582,7 +634,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +650,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +709,7 @@ "val": { "i128": { "hi": 0, - "lo": 325769999776786820 - "lo": 514526834280158855 + "lo": 889480249828128045 } } }, @@ -665,8 +720,7 @@ "val": { "i128": { "hi": 0, - "lo": 414087554449280785 - "lo": 418054159592011484 + "lo": 375327805035227293 } } }, @@ -693,13 +747,24 @@ "val": { "i128": { "hi": 0, - "lo": 367283681260837399 - "lo": 463788834807965138 + "lo": 577781860819274684 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -744,6 +809,39 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], [ { "contract_data": { @@ -788,8 +886,7 @@ "val": { "i128": { "hi": 0, - "lo": 325769999776786820 - "lo": 514526834280158855 + "lo": 889480249828128045 } } }, @@ -935,7 +1032,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 13093375692496499833 } } }, @@ -1120,8 +1217,7 @@ "val": { "i128": { "hi": 0, - "lo": 414087554449280785 - "lo": 418054159592011484 + "lo": 375327805035227293 } } }, @@ -1267,7 +1363,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 13112121036336688768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.35.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.35.json index 80714304..c1abc119 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.35.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.35.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 704988084541370766 - "lo": 898068368885167964 + "lo": 627916692899690398 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 637968024477448037 - "lo": 803486490120143142 + "lo": 77544761860578623 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 704988084541370766 - "lo": 898068368885167964 + "lo": 627916692899690398 } }, { "i128": { "hi": 0, - "lo": 637968024477448037 - "lo": 803486490120143142 + "lo": 77544761860578623 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 704988084541370766 - "lo": 898068368885167964 + "lo": 627916692899690398 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 637968024477448037 - "lo": 803486490120143142 + "lo": 77544761860578623 } } ] @@ -228,6 +222,65 @@ } ] ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "function_name": "swap", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "bool": true + }, + { + "i128": { + "hi": 0, + "lo": 32158216011411081 + } + }, + { + "i128": { + "hi": 2, + "lo": 13106511852580896768 + } + } + ] + } + }, + "sub_invocations": [ + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "transfer", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "i128": { + "hi": 0, + "lo": 4198353718743161 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + } + ] + ], + [], [] ], "ledger": { @@ -532,8 +585,7 @@ "val": { "i128": { "hi": 0, - "lo": 670641376277216011 - "lo": 849462066017939129 + "lo": 220661846315099457 } } } @@ -582,7 +634,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +650,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +709,7 @@ "val": { "i128": { "hi": 0, - "lo": 704988084541370766 - "lo": 898068368885167964 + "lo": 595758476888279317 } } }, @@ -665,8 +720,7 @@ "val": { "i128": { "hi": 0, - "lo": 637968024477448037 - "lo": 803486490120143142 + "lo": 81743115579321784 } } }, @@ -693,13 +747,24 @@ "val": { "i128": { "hi": 0, - "lo": 670641376277216011 - "lo": 849462066017939129 + "lo": 220661846315099457 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -744,6 +809,39 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], [ { "contract_data": { @@ -788,8 +886,7 @@ "val": { "i128": { "hi": 0, - "lo": 704988084541370766 - "lo": 898068368885167964 + "lo": 595758476888279317 } } }, @@ -935,7 +1032,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 13138670068592307849 } } }, @@ -1120,8 +1217,7 @@ "val": { "i128": { "hi": 0, - "lo": 637968024477448037 - "lo": 803486490120143142 + "lo": 81743115579321784 } } }, @@ -1267,7 +1363,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 13102313498862153607 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.36.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.36.json index e12fefe3..0a2513f4 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.36.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.36.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 868608666490608421 - "lo": 224527464883810322 + "lo": 410166251904736957 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 900578727257499900 - "lo": 575098377856738386 + "lo": 457048609159003851 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 868608666490608421 - "lo": 224527464883810322 + "lo": 410166251904736957 } }, { "i128": { "hi": 0, - "lo": 900578727257499900 - "lo": 575098377856738386 + "lo": 457048609159003851 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 868608666490608421 - "lo": 224527464883810322 + "lo": 410166251904736957 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 900578727257499900 - "lo": 575098377856738386 + "lo": 457048609159003851 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 884449256516701660 - "lo": 359340202091228734 + "lo": 432973342085885976 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 868608666490608421 - "lo": 224527464883810322 + "lo": 410166251904736957 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 900578727257499900 - "lo": 575098377856738386 + "lo": 457048609159003851 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 884449256516701660 - "lo": 359340202091228734 + "lo": 432973342085885976 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 868608666490608421 - "lo": 224527464883810322 + "lo": 410166251904736957 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 900578727257499900 - "lo": 575098377856738386 + "lo": 457048609159003851 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.37.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.37.json index 369a6afb..00f2ad46 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.37.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.37.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 140651618404506761 - "lo": 482169370300584574 + "lo": 822980895065241568 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 533180290314010634 - "lo": 75428177380435171 + "lo": 195282140704171899 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 140651618404506761 - "lo": 482169370300584574 + "lo": 822980895065241568 } }, { "i128": { "hi": 0, - "lo": 533180290314010634 - "lo": 75428177380435171 + "lo": 195282140704171899 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 140651618404506761 - "lo": 482169370300584574 + "lo": 822980895065241568 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 533180290314010634 - "lo": 75428177380435171 + "lo": 195282140704171899 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": false - }, - { - "i128": { - "hi": 0, - "lo": 19322351866307576 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 166554545580469211 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 273847897078013648 - "lo": 190706991981010552 + "lo": 400890846673974127 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 140651618404506761 - "lo": 648723915881053785 + "lo": 822980895065241568 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 533180290314010634 - "lo": 56105825514127595 + "lo": 195282140704171899 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 273847897078013648 - "lo": 190706991981010552 + "lo": 400890846673974127 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -847,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 140651618404506761 - "lo": 648723915881053785 + "lo": 822980895065241568 } } }, @@ -995,7 +941,6 @@ "i128": { "hi": 2, "lo": 13106511852580896768 - "lo": 12939957307000427557 } } }, @@ -1180,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 533180290314010634 - "lo": 56105825514127595 + "lo": 195282140704171899 } } }, @@ -1328,7 +1272,6 @@ "i128": { "hi": 2, "lo": 13106511852580896768 - "lo": 13125834204447204344 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.38.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.38.json index b8b9b04e..0bec11b3 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.38.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.38.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 663074984460874159 - "lo": 925358369704172097 + "lo": 369989550279821479 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 234413266199163792 - "lo": 5108531820876371 + "lo": 268001116039950536 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 663074984460874159 - "lo": 925358369704172097 + "lo": 369989550279821479 } }, { "i128": { "hi": 0, - "lo": 234413266199163792 - "lo": 5108531820876371 + "lo": 268001116039950536 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 663074984460874159 - "lo": 925358369704172097 + "lo": 369989550279821479 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 234413266199163792 - "lo": 5108531820876371 + "lo": 268001116039950536 } } ] @@ -246,7 +240,7 @@ { "i128": { "hi": 0, - "lo": 371776038021311 + "lo": 3485291428911104 } }, { @@ -274,7 +268,7 @@ { "i128": { "hi": 0, - "lo": 72847591899086169 + "lo": 4889694652932330 } } ] @@ -591,8 +585,7 @@ "val": { "i128": { "hi": 0, - "lo": 394250647231470362 - "lo": 68754801122161966 + "lo": 314893017385447195 } } } @@ -641,7 +634,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +650,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +709,7 @@ "val": { "i128": { "hi": 0, - "lo": 663074984460874159 - "lo": 998205961603258266 + "lo": 374879244932753809 } } }, @@ -724,8 +720,7 @@ "val": { "i128": { "hi": 0, - "lo": 234413266199163792 - "lo": 4736755782855060 + "lo": 264515824611039432 } } }, @@ -752,13 +747,24 @@ "val": { "i128": { "hi": 0, - "lo": 394250647231470362 - "lo": 68754801122161966 + "lo": 314893017385447195 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -880,8 +886,7 @@ "val": { "i128": { "hi": 0, - "lo": 663074984460874159 - "lo": 998205961603258266 + "lo": 374879244932753809 } } }, @@ -1027,7 +1032,7 @@ "val": { "i128": { "hi": 2, - "lo": 13033664260681810599 + "lo": 13101622157927964438 } } }, @@ -1212,8 +1217,7 @@ "val": { "i128": { "hi": 0, - "lo": 234413266199163792 - "lo": 4736755782855060 + "lo": 264515824611039432 } } }, @@ -1359,7 +1363,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106883628618918079 + "lo": 13109997144009807872 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.39.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.39.json index 908fd09f..f54e7488 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.39.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.39.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 638202828920398522 - "lo": 255114304911866912 + "lo": 928345438420678713 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 307669578971476050 - "lo": 487250168107208854 + "lo": 675335874703103639 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 638202828920398522 - "lo": 255114304911866912 + "lo": 928345438420678713 } }, { "i128": { "hi": 0, - "lo": 307669578971476050 - "lo": 487250168107208854 + "lo": 675335874703103639 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 638202828920398522 - "lo": 255114304911866912 + "lo": 928345438420678713 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 307669578971476050 - "lo": 487250168107208854 + "lo": 675335874703103639 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 443120294809822462 - "lo": 352568415991649612 + "lo": 791798572038662680 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 638202828920398522 - "lo": 255114304911866912 + "lo": 928345438420678713 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 307669578971476050 - "lo": 487250168107208854 + "lo": 675335874703103639 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 443120294809822462 - "lo": 352568415991649612 + "lo": 791798572038662680 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 638202828920398522 - "lo": 255114304911866912 + "lo": 928345438420678713 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 307669578971476050 - "lo": 487250168107208854 + "lo": 675335874703103639 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.4.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.4.json index b47de165..e844f7f1 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.4.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.4.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 257396256751778283 - "lo": 436840359834534734 + "lo": 629773822797587895 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 551722018470853997 - "lo": 4123716288396715 + "lo": 884152643482136285 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 257396256751778283 - "lo": 436840359834534734 + "lo": 629773822797587895 } }, { "i128": { "hi": 0, - "lo": 551722018470853997 - "lo": 4123716288396715 + "lo": 884152643482136285 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 257396256751778283 - "lo": 436840359834534734 + "lo": 629773822797587895 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 551722018470853997 - "lo": 4123716288396715 + "lo": 884152643482136285 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": true - }, - { - "i128": { - "hi": 0, - "lo": 295754042867009216 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 8670405585706367 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 376843710736869397 - "lo": 42442970057228004 + "lo": 746201172755938385 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 257396256751778283 - "lo": 141086316967525518 + "lo": 629773822797587895 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 551722018470853997 - "lo": 12794121874103082 + "lo": 884152643482136285 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 376843710736869397 - "lo": 42442970057228004 + "lo": 746201172755938385 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -847,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 257396256751778283 - "lo": 141086316967525518 + "lo": 629773822797587895 } } }, @@ -995,7 +941,6 @@ "i128": { "hi": 2, "lo": 13106511852580896768 - "lo": 13402265895447905984 } } }, @@ -1180,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 551722018470853997 - "lo": 12794121874103082 + "lo": 884152643482136285 } } }, @@ -1328,7 +1272,6 @@ "i128": { "hi": 2, "lo": 13106511852580896768 - "lo": 13097841446995190401 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.40.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.40.json index 61d568a4..d8f21ede 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.40.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.40.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 518694444624085084 - "lo": 366127270947958042 + "lo": 703809705361353628 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 764919817563285660 - "lo": 572964222231681415 + "lo": 501661587149938173 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 518694444624085084 - "lo": 366127270947958042 + "lo": 703809705361353628 } }, { "i128": { "hi": 0, - "lo": 764919817563285660 - "lo": 572964222231681415 + "lo": 501661587149938173 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 518694444624085084 - "lo": 366127270947958042 + "lo": 703809705361353628 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 764919817563285660 - "lo": 572964222231681415 + "lo": 501661587149938173 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 629888609162719292 - "lo": 458015094769271623 + "lo": 594200550187482585 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 518694444624085084 - "lo": 366127270947958042 + "lo": 703809705361353628 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 764919817563285660 - "lo": 572964222231681415 + "lo": 501661587149938173 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 629888609162719292 - "lo": 458015094769271623 + "lo": 594200550187482585 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 518694444624085084 - "lo": 366127270947958042 + "lo": 703809705361353628 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 764919817563285660 - "lo": 572964222231681415 + "lo": 501661587149938173 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.41.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.41.json index a8bde1cf..748240d4 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.41.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.41.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 97202922054898456 - "lo": 765057285666647561 + "lo": 72094835761219085 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 445788338697489164 - "lo": 133128726731918612 + "lo": 411190521502723186 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 97202922054898456 - "lo": 765057285666647561 + "lo": 72094835761219085 } }, { "i128": { "hi": 0, - "lo": 445788338697489164 - "lo": 133128726731918612 + "lo": 411190521502723186 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 97202922054898456 - "lo": 765057285666647561 + "lo": 72094835761219085 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 445788338697489164 - "lo": 133128726731918612 + "lo": 411190521502723186 } } ] @@ -228,6 +222,65 @@ } ] ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "function_name": "swap", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "bool": true + }, + { + "i128": { + "hi": 0, + "lo": 19822477761909547 + } + }, + { + "i128": { + "hi": 2, + "lo": 13106511852580896768 + } + } + ] + } + }, + "sub_invocations": [ + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "transfer", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "i128": { + "hi": 0, + "lo": 156398932519512833 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + } + ] + ], + [], [] ], "ledger": { @@ -532,8 +585,7 @@ "val": { "i128": { "hi": 0, - "lo": 208163227154545027 - "lo": 319141194955741364 + "lo": 172176401153900451 } } } @@ -582,7 +634,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +650,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +709,7 @@ "val": { "i128": { "hi": 0, - "lo": 97202922054898456 - "lo": 765057285666647561 + "lo": 52272357999309538 } } }, @@ -665,8 +720,7 @@ "val": { "i128": { "hi": 0, - "lo": 445788338697489164 - "lo": 133128726731918612 + "lo": 567589454022236019 } } }, @@ -693,13 +747,24 @@ "val": { "i128": { "hi": 0, - "lo": 208163227154545027 - "lo": 319141194955741364 + "lo": 172176401153900451 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -744,6 +809,39 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], [ { "contract_data": { @@ -788,8 +886,7 @@ "val": { "i128": { "hi": 0, - "lo": 97202922054898456 - "lo": 765057285666647561 + "lo": 52272357999309538 } } }, @@ -935,7 +1032,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 13126334330342806315 } } }, @@ -1120,8 +1217,7 @@ "val": { "i128": { "hi": 0, - "lo": 445788338697489164 - "lo": 133128726731918612 + "lo": 567589454022236019 } } }, @@ -1267,7 +1363,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 12950112920061383935 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.42.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.42.json index 737a6f9d..289eacd5 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.42.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.42.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 81128648653399597 - "lo": 221310119421926418 + "lo": 149454661173390557 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 406046121710297233 - "lo": 725668285593662708 + "lo": 191548020030447057 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 81128648653399597 - "lo": 221310119421926418 + "lo": 149454661173390557 } }, { "i128": { "hi": 0, - "lo": 406046121710297233 - "lo": 725668285593662708 + "lo": 191548020030447057 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 81128648653399597 - "lo": 221310119421926418 + "lo": 149454661173390557 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 406046121710297233 - "lo": 725668285593662708 + "lo": 191548020030447057 } } ] @@ -228,6 +222,65 @@ } ] ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "function_name": "swap", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "bool": false + }, + { + "i128": { + "hi": 0, + "lo": 22161638028533164 + } + }, + { + "i128": { + "hi": 2, + "lo": 13106511852580896768 + } + } + ] + } + }, + "sub_invocations": [ + { + "function": { + "contract_fn": { + "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", + "function_name": "transfer", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "i128": { + "hi": 0, + "lo": 19612712915790115 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + } + ] + ], + [], [] ], "ledger": { @@ -532,8 +585,7 @@ "val": { "i128": { "hi": 0, - "lo": 181499237313301772 - "lo": 400746472155948117 + "lo": 169197353502010463 } } } @@ -582,7 +634,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +650,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +709,7 @@ "val": { "i128": { "hi": 0, - "lo": 81128648653399597 - "lo": 221310119421926418 + "lo": 169067374089180672 } } }, @@ -665,8 +720,7 @@ "val": { "i128": { "hi": 0, - "lo": 406046121710297233 - "lo": 725668285593662708 + "lo": 169386382001913893 } } }, @@ -693,13 +747,24 @@ "val": { "i128": { "hi": 0, - "lo": 181499237313301772 - "lo": 400746472155948117 + "lo": 169197353502010463 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -744,6 +809,39 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], [ { "contract_data": { @@ -788,8 +886,7 @@ "val": { "i128": { "hi": 0, - "lo": 81128648653399597 - "lo": 221310119421926418 + "lo": 169067374089180672 } } }, @@ -935,7 +1032,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 13086899139665106653 } } }, @@ -1120,8 +1217,7 @@ "val": { "i128": { "hi": 0, - "lo": 406046121710297233 - "lo": 725668285593662708 + "lo": 169386382001913893 } } }, @@ -1267,7 +1363,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 13128673490609429932 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.43.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.43.json index 17ff3447..edabeead 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.43.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.43.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 432914331576299306 - "lo": 449290376083874566 + "lo": 628139441088877060 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 521261832205191335 - "lo": 891840153813531480 + "lo": 279277460707601280 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 432914331576299306 - "lo": 449290376083874566 + "lo": 628139441088877060 } }, { "i128": { "hi": 0, - "lo": 521261832205191335 - "lo": 891840153813531480 + "lo": 279277460707601280 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 432914331576299306 - "lo": 449290376083874566 + "lo": 628139441088877060 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 521261832205191335 - "lo": 891840153813531480 + "lo": 279277460707601280 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 475038648601719030 - "lo": 633004895805381665 + "lo": 418837901911459646 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 432914331576299306 - "lo": 449290376083874566 + "lo": 628139441088877060 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 521261832205191335 - "lo": 891840153813531480 + "lo": 279277460707601280 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 475038648601719030 - "lo": 633004895805381665 + "lo": 418837901911459646 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 432914331576299306 - "lo": 449290376083874566 + "lo": 628139441088877060 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 521261832205191335 - "lo": 891840153813531480 + "lo": 279277460707601280 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.44.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.44.json index 2f643693..5a33a30f 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.44.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.44.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 946244437482914821 - "lo": 798284946130614716 + "lo": 474865588244218989 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 277103966586536370 - "lo": 717173028803725496 + "lo": 720258043310896070 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 946244437482914821 - "lo": 798284946130614716 + "lo": 474865588244218989 } }, { "i128": { "hi": 0, - "lo": 277103966586536370 - "lo": 717173028803725496 + "lo": 720258043310896070 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 946244437482914821 - "lo": 798284946130614716 + "lo": 474865588244218989 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 277103966586536370 - "lo": 717173028803725496 + "lo": 720258043310896070 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 512062581123598145 - "lo": 756642869962383114 + "lo": 584829684117058836 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 946244437482914821 - "lo": 798284946130614716 + "lo": 474865588244218989 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 277103966586536370 - "lo": 717173028803725496 + "lo": 720258043310896070 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 512062581123598145 - "lo": 756642869962383114 + "lo": 584829684117058836 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 946244437482914821 - "lo": 798284946130614716 + "lo": 474865588244218989 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 277103966586536370 - "lo": 717173028803725496 + "lo": 720258043310896070 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.45.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.45.json index 773c6793..3c34a00d 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.45.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.45.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 696136921529323120 - "lo": 781700250966548406 + "lo": 148388137890567861 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 549577955840556585 - "lo": 281664631135988325 + "lo": 640045877631531586 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 696136921529323120 - "lo": 781700250966548406 + "lo": 148388137890567861 } }, { "i128": { "hi": 0, - "lo": 549577955840556585 - "lo": 281664631135988325 + "lo": 640045877631531586 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 696136921529323120 - "lo": 781700250966548406 + "lo": 148388137890567861 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 549577955840556585 - "lo": 281664631135988325 + "lo": 640045877631531586 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 618531734286304299 - "lo": 469230554042895162 + "lo": 308180492481722847 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 696136921529323120 - "lo": 781700250966548406 + "lo": 148388137890567861 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 549577955840556585 - "lo": 281664631135988325 + "lo": 640045877631531586 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 618531734286304299 - "lo": 469230554042895162 + "lo": 308180492481722847 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 696136921529323120 - "lo": 781700250966548406 + "lo": 148388137890567861 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 549577955840556585 - "lo": 281664631135988325 + "lo": 640045877631531586 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.46.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.46.json index 019079dd..318c0716 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.46.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.46.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 813153780666386196 - "lo": 457110462693990093 + "lo": 150172029163621815 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 600901116672142815 - "lo": 458133144637116623 + "lo": 391769022773345744 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 813153780666386196 - "lo": 457110462693990093 + "lo": 150172029163621815 } }, { "i128": { "hi": 0, - "lo": 600901116672142815 - "lo": 458133144637116623 + "lo": 391769022773345744 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 813153780666386196 - "lo": 457110462693990093 + "lo": 150172029163621815 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 600901116672142815 - "lo": 458133144637116623 + "lo": 391769022773345744 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 699017177777918530 - "lo": 457621517982409854 + "lo": 242554631193309718 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 813153780666386196 - "lo": 457110462693990093 + "lo": 150172029163621815 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 600901116672142815 - "lo": 458133144637116623 + "lo": 391769022773345744 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 699017177777918530 - "lo": 457621517982409854 + "lo": 242554631193309718 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 813153780666386196 - "lo": 457110462693990093 + "lo": 150172029163621815 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 600901116672142815 - "lo": 458133144637116623 + "lo": 391769022773345744 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.47.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.47.json index 53d7d220..d692c22e 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.47.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.47.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 878351084589900955 - "lo": 723723466460070131 + "lo": 139033615566934092 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 251612882552619337 - "lo": 940793969441602627 + "lo": 729823298304953479 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 878351084589900955 - "lo": 723723466460070131 + "lo": 139033615566934092 } }, { "i128": { "hi": 0, - "lo": 251612882552619337 - "lo": 940793969441602627 + "lo": 729823298304953479 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 878351084589900955 - "lo": 723723466460070131 + "lo": 139033615566934092 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 251612882552619337 - "lo": 940793969441602627 + "lo": 729823298304953479 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 470111102067250227 - "lo": 825151302967526036 + "lo": 318543516475100719 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 878351084589900955 - "lo": 723723466460070131 + "lo": 139033615566934092 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 251612882552619337 - "lo": 940793969441602627 + "lo": 729823298304953479 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 470111102067250227 - "lo": 825151302967526036 + "lo": 318543516475100719 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 878351084589900955 - "lo": 723723466460070131 + "lo": 139033615566934092 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 251612882552619337 - "lo": 940793969441602627 + "lo": 729823298304953479 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.48.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.48.json index b47c58f8..07373730 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.48.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.48.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 878837372096953628 - "lo": 714924694233776126 + "lo": 558713239236879947 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 140438501118121504 - "lo": 789578123230927788 + "lo": 483869680525693279 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 878837372096953628 - "lo": 714924694233776126 + "lo": 558713239236879947 } }, { "i128": { "hi": 0, - "lo": 140438501118121504 - "lo": 789578123230927788 + "lo": 483869680525693279 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 878837372096953628 - "lo": 714924694233776126 + "lo": 558713239236879947 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 140438501118121504 - "lo": 789578123230927788 + "lo": 483869680525693279 } } ] @@ -228,6 +222,65 @@ } ] ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "function_name": "swap", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "bool": false + }, + { + "i128": { + "hi": 0, + "lo": 11073324940376248 + } + }, + { + "i128": { + "hi": 2, + "lo": 13106511852580896768 + } + } + ] + } + }, + "sub_invocations": [ + { + "function": { + "contract_fn": { + "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", + "function_name": "transfer", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "i128": { + "hi": 0, + "lo": 13124952131839898 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + } + ] + ], + [], [] ], "ledger": { @@ -532,8 +585,7 @@ "val": { "i128": { "hi": 0, - "lo": 351315532340779072 - "lo": 751324762219740668 + "lo": 519946532419463625 } } } @@ -582,7 +634,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +650,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +709,7 @@ "val": { "i128": { "hi": 0, - "lo": 878837372096953628 - "lo": 714924694233776126 + "lo": 571838191368719845 } } }, @@ -665,8 +720,7 @@ "val": { "i128": { "hi": 0, - "lo": 140438501118121504 - "lo": 789578123230927788 + "lo": 472796355585317031 } } }, @@ -693,13 +747,24 @@ "val": { "i128": { "hi": 0, - "lo": 351315532340779072 - "lo": 751324762219740668 + "lo": 519946532419463625 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -744,6 +809,39 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], [ { "contract_data": { @@ -788,8 +886,7 @@ "val": { "i128": { "hi": 0, - "lo": 878837372096953628 - "lo": 714924694233776126 + "lo": 571838191368719845 } } }, @@ -935,7 +1032,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 13093386900449056870 } } }, @@ -1120,8 +1217,7 @@ "val": { "i128": { "hi": 0, - "lo": 140438501118121504 - "lo": 789578123230927788 + "lo": 472796355585317031 } } }, @@ -1267,7 +1363,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 13117585177521273016 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.49.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.49.json index 918e177c..d5278824 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.49.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.49.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 35030924997457766 - "lo": 910749645830907600 + "lo": 282349652942215445 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 924212304087065716 - "lo": 435526380660616746 + "lo": 748150781991449977 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 35030924997457766 - "lo": 910749645830907600 + "lo": 282349652942215445 } }, { "i128": { "hi": 0, - "lo": 924212304087065716 - "lo": 435526380660616746 + "lo": 748150781991449977 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 35030924997457766 - "lo": 910749645830907600 + "lo": 282349652942215445 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 924212304087065716 - "lo": 435526380660616746 + "lo": 748150781991449977 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": true - }, - { - "i128": { - "hi": 0, - "lo": 16508639862256945 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 8064473524986104 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 179933354068114977 - "lo": 629805920055276827 + "lo": 459608652707641036 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 35030924997457766 - "lo": 894241005968650655 + "lo": 282349652942215445 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 924212304087065716 - "lo": 443590854185602850 + "lo": 748150781991449977 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 179933354068114977 - "lo": 629805920055276827 + "lo": 459608652707641036 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -880,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 35030924997457766 - "lo": 894241005968650655 + "lo": 282349652942215445 } } }, @@ -1027,7 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 13123020492443153713 + "lo": 13106511852580896768 } } }, @@ -1212,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 924212304087065716 - "lo": 443590854185602850 + "lo": 748150781991449977 } } }, @@ -1359,7 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 13098447379055910664 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.5.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.5.json index 7ba2137b..116fa935 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.5.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.5.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 741134360628556481 - "lo": 70076428818763386 + "lo": 656703760933419627 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 736027778939966300 - "lo": 108770531242264981 + "lo": 327184331769592654 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 741134360628556481 - "lo": 70076428818763386 + "lo": 656703760933419627 } }, { "i128": { "hi": 0, - "lo": 736027778939966300 - "lo": 108770531242264981 + "lo": 327184331769592654 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 741134360628556481 - "lo": 70076428818763386 + "lo": 656703760933419627 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 736027778939966300 - "lo": 108770531242264981 + "lo": 327184331769592654 } } ] @@ -241,12 +235,12 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" }, { - "bool": true + "bool": false }, { "i128": { "hi": 0, - "lo": 19433236989735398 + "lo": 8584038247742076 } }, { @@ -262,7 +256,7 @@ { "function": { "contract_fn": { - "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", "function_name": "transfer", "args": [ { @@ -274,7 +268,7 @@ { "i128": { "hi": 0, - "lo": 41863946686777817 + "lo": 17746790301365565 } } ] @@ -591,8 +585,7 @@ "val": { "i128": { "hi": 0, - "lo": 738576656380045924 - "lo": 87305500343206675 + "lo": 463533365780263143 } } } @@ -641,7 +634,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +650,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +709,7 @@ "val": { "i128": { "hi": 0, - "lo": 741134360628556481 - "lo": 50643191829027988 + "lo": 674450551234785192 } } }, @@ -724,8 +720,7 @@ "val": { "i128": { "hi": 0, - "lo": 736027778939966300 - "lo": 150634477929042798 + "lo": 318600293521850578 } } }, @@ -752,13 +747,24 @@ "val": { "i128": { "hi": 0, - "lo": 738576656380045924 - "lo": 87305500343206675 + "lo": 463533365780263143 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -880,8 +886,7 @@ "val": { "i128": { "hi": 0, - "lo": 741134360628556481 - "lo": 50643191829027988 + "lo": 674450551234785192 } } }, @@ -1027,7 +1032,7 @@ "val": { "i128": { "hi": 2, - "lo": 13125945089570632166 + "lo": 13088765062279531203 } } }, @@ -1212,8 +1217,7 @@ "val": { "i128": { "hi": 0, - "lo": 736027778939966300 - "lo": 150634477929042798 + "lo": 318600293521850578 } } }, @@ -1359,7 +1363,7 @@ "val": { "i128": { "hi": 2, - "lo": 13064647905894118951 + "lo": 13115095890828638844 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.50.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.50.json index 241b7706..9c0ecc00 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.50.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.50.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 846626416564746088 - "lo": 778199725174662669 + "lo": 550762844830788775 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 941617219149981091 - "lo": 872449881332681186 + "lo": 608172480122927749 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 846626416564746088 - "lo": 778199725174662669 + "lo": 550762844830788775 } }, { "i128": { "hi": 0, - "lo": 941617219149981091 - "lo": 872449881332681186 + "lo": 608172480122927749 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 846626416564746088 - "lo": 778199725174662669 + "lo": 550762844830788775 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 941617219149981091 - "lo": 872449881332681186 + "lo": 608172480122927749 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 892859458159350910 - "lo": 823978311536025538 + "lo": 578756257245051326 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 846626416564746088 - "lo": 778199725174662669 + "lo": 550762844830788775 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 941617219149981091 - "lo": 872449881332681186 + "lo": 608172480122927749 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 892859458159350910 - "lo": 823978311536025538 + "lo": 578756257245051326 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 846626416564746088 - "lo": 778199725174662669 + "lo": 550762844830788775 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 941617219149981091 - "lo": 872449881332681186 + "lo": 608172480122927749 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.51.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.51.json index dd977e67..a703f1dc 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.51.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.51.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 550075133285520521 - "lo": 442863049261087296 + "lo": 55182614885853584 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 842857494529639467 - "lo": 646641255009104011 + "lo": 747237921671681305 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 550075133285520521 - "lo": 442863049261087296 + "lo": 55182614885853584 } }, { "i128": { "hi": 0, - "lo": 842857494529639467 - "lo": 646641255009104011 + "lo": 747237921671681305 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 550075133285520521 - "lo": 442863049261087296 + "lo": 55182614885853584 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 842857494529639467 - "lo": 646641255009104011 + "lo": 747237921671681305 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 680907444990940977 - "lo": 535138783841489236 + "lo": 203062902716655794 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 550075133285520521 - "lo": 442863049261087296 + "lo": 55182614885853584 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 842857494529639467 - "lo": 646641255009104011 + "lo": 747237921671681305 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 680907444990940977 - "lo": 535138783841489236 + "lo": 203062902716655794 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 550075133285520521 - "lo": 442863049261087296 + "lo": 55182614885853584 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 842857494529639467 - "lo": 646641255009104011 + "lo": 747237921671681305 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.52.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.52.json index 4abf6dc2..8c11e959 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.52.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.52.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 282915815136871278 - "lo": 425907403262360822 + "lo": 496235969285731592 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 884657129011789606 - "lo": 805147025103617525 + "lo": 665622185067823959 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 282915815136871278 - "lo": 425907403262360822 + "lo": 496235969285731592 } }, { "i128": { "hi": 0, - "lo": 884657129011789606 - "lo": 805147025103617525 + "lo": 665622185067823959 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 282915815136871278 - "lo": 425907403262360822 + "lo": 496235969285731592 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 884657129011789606 - "lo": 805147025103617525 + "lo": 665622185067823959 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": false - }, - { - "i128": { - "hi": 0, - "lo": 50665106872032481 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 17238883468766751 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 500283412448398845 - "lo": 585592075344515383 + "lo": 574722254819854909 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 300154698605638029 - "lo": 425907403262360822 + "lo": 496235969285731592 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 833992022139757125 - "lo": 805147025103617525 + "lo": 665622185067823959 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 500283412448398845 - "lo": 585592075344515383 + "lo": 574722254819854909 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -880,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 300154698605638029 - "lo": 425907403262360822 + "lo": 496235969285731592 } } }, @@ -1027,7 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 13089272969112130017 + "lo": 13106511852580896768 } } }, @@ -1212,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 833992022139757125 - "lo": 805147025103617525 + "lo": 665622185067823959 } } }, @@ -1359,7 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 13157176959452929249 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.53.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.53.json index aa7af7ac..12a9d04c 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.53.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.53.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 50130926446945349 - "lo": 355492709645010928 + "lo": 398140299220290939 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 870064092811774438 - "lo": 124762536472384040 + "lo": 520282853232442103 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 50130926446945349 - "lo": 355492709645010928 + "lo": 398140299220290939 } }, { "i128": { "hi": 0, - "lo": 870064092811774438 - "lo": 124762536472384040 + "lo": 520282853232442103 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 50130926446945349 - "lo": 355492709645010928 + "lo": 398140299220290939 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 870064092811774438 - "lo": 124762536472384040 + "lo": 520282853232442103 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": false - }, - { - "i128": { - "hi": 0, - "lo": 291417319641333908 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 25322839136356741 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 208847118823495613 - "lo": 210599554018407896 + "lo": 455132476170566423 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 75453765583302090 - "lo": 355492709645010928 + "lo": 398140299220290939 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 578646773170440530 - "lo": 124762536472384040 + "lo": 520282853232442103 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 208847118823495613 - "lo": 210599554018407896 + "lo": 455132476170566423 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -880,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 75453765583302090 - "lo": 355492709645010928 + "lo": 398140299220290939 } } }, @@ -1027,7 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 13081189013444540027 + "lo": 13106511852580896768 } } }, @@ -1212,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 578646773170440530 - "lo": 124762536472384040 + "lo": 520282853232442103 } } }, @@ -1359,7 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 13397929172222230676 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.54.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.54.json index 1c89018b..9c37a26f 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.54.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.54.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 442635230934397631 - "lo": 603330628312419886 + "lo": 805997309305053483 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 947829685094873059 - "lo": 385115367004254102 + "lo": 520770862480193134 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 442635230934397631 - "lo": 603330628312419886 + "lo": 805997309305053483 } }, { "i128": { "hi": 0, - "lo": 947829685094873059 - "lo": 385115367004254102 + "lo": 520770862480193134 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 442635230934397631 - "lo": 603330628312419886 + "lo": 805997309305053483 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 947829685094873059 - "lo": 385115367004254102 + "lo": 520770862480193134 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 647721245250182079 - "lo": 482028937251120645 + "lo": 647873378001834319 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 442635230934397631 - "lo": 603330628312419886 + "lo": 805997309305053483 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 947829685094873059 - "lo": 385115367004254102 + "lo": 520770862480193134 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 647721245250182079 - "lo": 482028937251120645 + "lo": 647873378001834319 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 442635230934397631 - "lo": 603330628312419886 + "lo": 805997309305053483 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 947829685094873059 - "lo": 385115367004254102 + "lo": 520770862480193134 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.55.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.55.json index 6cd95027..1a3473e5 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.55.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.55.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 37899303696817527 - "lo": 145856393271799056 + "lo": 823605718192726585 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 799121671327293604 - "lo": 58181816369387329 + "lo": 236512337478438130 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 37899303696817527 - "lo": 145856393271799056 + "lo": 823605718192726585 } }, { "i128": { "hi": 0, - "lo": 799121671327293604 - "lo": 58181816369387329 + "lo": 236512337478438130 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 37899303696817527 - "lo": 145856393271799056 + "lo": 823605718192726585 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 799121671327293604 - "lo": 58181816369387329 + "lo": 236512337478438130 } } ] @@ -228,67 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": false - }, - { - "i128": { - "hi": 0, - "lo": 194665813649240268 - "lo": 5567204956844935 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 12242247953002738 - "lo": 15479650636081484 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -593,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 174029178336109773 - "lo": 92120518287952300 + "lo": 441353501821804468 } } } @@ -643,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -659,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -714,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 50141551649820265 - "lo": 161336043907880540 + "lo": 823605718192726585 } } }, @@ -726,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 604455857678053336 - "lo": 52614611412542394 + "lo": 236512337478438130 } } }, @@ -754,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 174029178336109773 - "lo": 92120518287952300 + "lo": 441353501821804468 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -805,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -882,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 50141551649820265 - "lo": 161336043907880540 + "lo": 823605718192726585 } } }, @@ -1029,8 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 13094269604627894030 - "lo": 13091032201944815284 + "lo": 13106511852580896768 } } }, @@ -1215,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 604455857678053336 - "lo": 52614611412542394 + "lo": 236512337478438130 } } }, @@ -1362,8 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 13301177666230137036 - "lo": 13112079057537741703 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.56.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.56.json index 1fbe8c98..1b96460b 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.56.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.56.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 126967849123387252 - "lo": 471808660210618760 + "lo": 767670420355304841 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 429722439584459014 - "lo": 727895133043413427 + "lo": 306098236206605396 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 126967849123387252 - "lo": 471808660210618760 + "lo": 767670420355304841 } }, { "i128": { "hi": 0, - "lo": 429722439584459014 - "lo": 727895133043413427 + "lo": 306098236206605396 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 126967849123387252 - "lo": 471808660210618760 + "lo": 767670420355304841 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 429722439584459014 - "lo": 727895133043413427 + "lo": 306098236206605396 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": true - }, - { - "i128": { - "hi": 0, - "lo": 2468564267960602 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 8546148911762399 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 233582820160416518 - "lo": 586026644014624117 + "lo": 484749999132276591 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 124499284855426650 - "lo": 471808660210618760 + "lo": 767670420355304841 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 438268588496221413 - "lo": 727895133043413427 + "lo": 306098236206605396 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 233582820160416518 - "lo": 586026644014624117 + "lo": 484749999132276591 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -847,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 124499284855426650 - "lo": 471808660210618760 + "lo": 767670420355304841 } } }, @@ -994,7 +940,6 @@ "val": { "i128": { "hi": 2, - "lo": 13108980416848857370 "lo": 13106511852580896768 } } @@ -1180,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 438268588496221413 - "lo": 727895133043413427 + "lo": 306098236206605396 } } }, @@ -1327,7 +1271,6 @@ "val": { "i128": { "hi": 2, - "lo": 13097965703669134369 "lo": 13106511852580896768 } } diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.57.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.57.json index ac9c1429..11538a8c 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.57.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.57.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 193541124640764018 - "lo": 265410427405781239 + "lo": 151558583382930364 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 96848044719818303 - "lo": 411599668836008112 + "lo": 67584742049312096 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 193541124640764018 - "lo": 265410427405781239 + "lo": 151558583382930364 } }, { "i128": { "hi": 0, - "lo": 96848044719818303 - "lo": 411599668836008112 + "lo": 67584742049312096 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 193541124640764018 - "lo": 265410427405781239 + "lo": 151558583382930364 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 96848044719818303 - "lo": 411599668836008112 + "lo": 67584742049312096 } } ] @@ -241,12 +235,12 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" }, { - "bool": false + "bool": true }, { "i128": { "hi": 0, - "lo": 18040378960638541 + "lo": 105352377076134227 } }, { @@ -262,7 +256,7 @@ { "function": { "contract_fn": { - "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", "function_name": "transfer", "args": [ { @@ -274,7 +268,7 @@ { "i128": { "hi": 0, - "lo": 44438080781898398 + "lo": 154560149257529253 } } ] @@ -591,8 +585,7 @@ "val": { "i128": { "hi": 0, - "lo": 136909019039406756 - "lo": 330519052440011284 + "lo": 101207943182808073 } } } @@ -641,7 +634,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +650,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +709,7 @@ "val": { "i128": { "hi": 0, - "lo": 237979205422662416 - "lo": 265410427405781239 + "lo": 46206206306796137 } } }, @@ -724,8 +720,7 @@ "val": { "i128": { "hi": 0, - "lo": 78807665759179762 - "lo": 411599668836008112 + "lo": 222144891306841349 } } }, @@ -752,13 +747,24 @@ "val": { "i128": { "hi": 0, - "lo": 136909019039406756 - "lo": 330519052440011284 + "lo": 101207943182808073 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -880,8 +886,7 @@ "val": { "i128": { "hi": 0, - "lo": 237979205422662416 - "lo": 265410427405781239 + "lo": 46206206306796137 } } }, @@ -1027,7 +1032,7 @@ "val": { "i128": { "hi": 2, - "lo": 13062073771798998370 + "lo": 13211864229657030995 } } }, @@ -1212,8 +1217,7 @@ "val": { "i128": { "hi": 0, - "lo": 78807665759179762 - "lo": 411599668836008112 + "lo": 222144891306841349 } } }, @@ -1359,7 +1363,7 @@ "val": { "i128": { "hi": 2, - "lo": 13124552231541535309 + "lo": 12951951703323367515 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.58.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.58.json index a31f63ab..1224081e 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.58.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.58.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 414298471541300023 - "lo": 660295299886907195 + "lo": 591206001070602862 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 929770127580795764 - "lo": 172724621728906261 + "lo": 970339944596142268 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 414298471541300023 - "lo": 660295299886907195 + "lo": 591206001070602862 } }, { "i128": { "hi": 0, - "lo": 929770127580795764 - "lo": 172724621728906261 + "lo": 970339944596142268 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 414298471541300023 - "lo": 660295299886907195 + "lo": 591206001070602862 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 929770127580795764 - "lo": 172724621728906261 + "lo": 970339944596142268 } } ] @@ -228,6 +222,65 @@ } ] ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "function_name": "swap", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "bool": true + }, + { + "i128": { + "hi": 0, + "lo": 5570885336009222 + } + }, + { + "i128": { + "hi": 2, + "lo": 13106511852580896768 + } + } + ] + } + }, + "sub_invocations": [ + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "transfer", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "i128": { + "hi": 0, + "lo": 9258185135403705 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + } + ] + ], + [], [] ], "ledger": { @@ -532,8 +585,7 @@ "val": { "i128": { "hi": 0, - "lo": 620646713309176563 - "lo": 337711794141603479 + "lo": 757410587676034277 } } } @@ -582,7 +634,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +650,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +709,7 @@ "val": { "i128": { "hi": 0, - "lo": 414298471541300023 - "lo": 660295299886907195 + "lo": 585635115734593640 } } }, @@ -665,8 +720,7 @@ "val": { "i128": { "hi": 0, - "lo": 929770127580795764 - "lo": 172724621728906261 + "lo": 979598129731545973 } } }, @@ -693,13 +747,24 @@ "val": { "i128": { "hi": 0, - "lo": 620646713309176563 - "lo": 337711794141603479 + "lo": 757410587676034277 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -744,6 +809,39 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], [ { "contract_data": { @@ -788,8 +886,7 @@ "val": { "i128": { "hi": 0, - "lo": 414298471541300023 - "lo": 660295299886907195 + "lo": 585635115734593640 } } }, @@ -935,7 +1032,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 13112082737916905990 } } }, @@ -1120,8 +1217,7 @@ "val": { "i128": { "hi": 0, - "lo": 929770127580795764 - "lo": 172724621728906261 + "lo": 979598129731545973 } } }, @@ -1267,7 +1363,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 13097253667445493063 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.59.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.59.json index 0c2404b2..588a2966 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.59.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.59.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 485997202383960972 - "lo": 548182520017984540 + "lo": 715027388661358736 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 411335226827206389 - "lo": 474442246194848726 + "lo": 541769848357776701 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 485997202383960972 - "lo": 548182520017984540 + "lo": 715027388661358736 } }, { "i128": { "hi": 0, - "lo": 411335226827206389 - "lo": 474442246194848726 + "lo": 541769848357776701 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 485997202383960972 - "lo": 548182520017984540 + "lo": 715027388661358736 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 411335226827206389 - "lo": 474442246194848726 + "lo": 541769848357776701 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 447110466752898009 - "lo": 509981319385411617 + "lo": 622398810993981081 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 485997202383960972 - "lo": 548182520017984540 + "lo": 715027388661358736 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 411335226827206389 - "lo": 474442246194848726 + "lo": 541769848357776701 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 447110466752898009 - "lo": 509981319385411617 + "lo": 622398810993981081 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 485997202383960972 - "lo": 548182520017984540 + "lo": 715027388661358736 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 411335226827206389 - "lo": 474442246194848726 + "lo": 541769848357776701 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.6.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.6.json index 03b85588..25bde7b4 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.6.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.6.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 631522957642980943 - "lo": 269167810291889220 + "lo": 48650198772930733 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 465813472747611920 - "lo": 872812322367954222 + "lo": 262419961058278182 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 631522957642980943 - "lo": 269167810291889220 + "lo": 48650198772930733 } }, { "i128": { "hi": 0, - "lo": 465813472747611920 - "lo": 872812322367954222 + "lo": 262419961058278182 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 631522957642980943 - "lo": 269167810291889220 + "lo": 48650198772930733 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 465813472747611920 - "lo": 872812322367954222 + "lo": 262419961058278182 } } ] @@ -228,6 +222,65 @@ } ] ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "function_name": "swap", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "bool": false + }, + { + "i128": { + "hi": 0, + "lo": 66238437898969913 + } + }, + { + "i128": { + "hi": 2, + "lo": 13106511852580896768 + } + } + ] + } + }, + "sub_invocations": [ + { + "function": { + "contract_fn": { + "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", + "function_name": "transfer", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "i128": { + "hi": 0, + "lo": 16475607628794840 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + } + ] + ], + [], [] ], "ledger": { @@ -532,8 +585,7 @@ "val": { "i128": { "hi": 0, - "lo": 542376162842284192 - "lo": 484698856618788363 + "lo": 112990191023247570 } } } @@ -582,7 +634,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +650,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +709,7 @@ "val": { "i128": { "hi": 0, - "lo": 631522957642980943 - "lo": 269167810291889220 + "lo": 65125806401725573 } } }, @@ -665,8 +720,7 @@ "val": { "i128": { "hi": 0, - "lo": 465813472747611920 - "lo": 872812322367954222 + "lo": 196181523159308269 } } }, @@ -693,13 +747,24 @@ "val": { "i128": { "hi": 0, - "lo": 542376162842284192 - "lo": 484698856618788363 + "lo": 112990191023247570 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -744,6 +809,39 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], [ { "contract_data": { @@ -788,8 +886,7 @@ "val": { "i128": { "hi": 0, - "lo": 631522957642980943 - "lo": 269167810291889220 + "lo": 65125806401725573 } } }, @@ -935,7 +1032,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 13090036244952101928 } } }, @@ -1120,8 +1217,7 @@ "val": { "i128": { "hi": 0, - "lo": 465813472747611920 - "lo": 872812322367954222 + "lo": 196181523159308269 } } }, @@ -1267,7 +1363,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 13172750290479866681 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.60.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.60.json index d04e44af..2d843ae2 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.60.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.60.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 61973693117600382 - "lo": 592978630804994024 + "lo": 675719069926402770 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 578412379295728177 - "lo": 82379115558926722 + "lo": 420359667470338109 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 61973693117600382 - "lo": 592978630804994024 + "lo": 675719069926402770 } }, { "i128": { "hi": 0, - "lo": 578412379295728177 - "lo": 82379115558926722 + "lo": 420359667470338109 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 61973693117600382 - "lo": 592978630804994024 + "lo": 675719069926402770 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 578412379295728177 - "lo": 82379115558926722 + "lo": 420359667470338109 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": true - }, - { - "i128": { - "hi": 0, - "lo": 186516579580664977 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 37915728493820799 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 189331326752586115 - "lo": 221018223572308054 + "lo": 532958763449508176 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 61973693117600382 - "lo": 406462051224329047 + "lo": 675719069926402770 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 578412379295728177 - "lo": 120294844052747521 + "lo": 420359667470338109 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 189331326752586115 - "lo": 221018223572308054 + "lo": 532958763449508176 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -880,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 61973693117600382 - "lo": 406462051224329047 + "lo": 675719069926402770 } } }, @@ -1027,7 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 13293028432161561745 + "lo": 13106511852580896768 } } }, @@ -1212,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 578412379295728177 - "lo": 120294844052747521 + "lo": 420359667470338109 } } }, @@ -1359,7 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 13068596124087075969 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.61.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.61.json index d58a45db..0fe85cec 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.61.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.61.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 783682389236239745 - "lo": 278748189746775284 + "lo": 860965968974839197 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 522976040492116035 - "lo": 208202003056822324 + "lo": 299559322616813750 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 783682389236239745 - "lo": 278748189746775284 + "lo": 860965968974839197 } }, { "i128": { "hi": 0, - "lo": 522976040492116035 - "lo": 208202003056822324 + "lo": 299559322616813750 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 783682389236239745 - "lo": 278748189746775284 + "lo": 860965968974839197 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 522976040492116035 - "lo": 208202003056822324 + "lo": 299559322616813750 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 640193027864385568 - "lo": 240906478646261808 + "lo": 507848779128424717 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 783682389236239745 - "lo": 278748189746775284 + "lo": 860965968974839197 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 522976040492116035 - "lo": 208202003056822324 + "lo": 299559322616813750 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 640193027864385568 - "lo": 240906478646261808 + "lo": 507848779128424717 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 783682389236239745 - "lo": 278748189746775284 + "lo": 860965968974839197 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 522976040492116035 - "lo": 208202003056822324 + "lo": 299559322616813750 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.62.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.62.json index eee1dc34..1e5761e7 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.62.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.62.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 766643851809970366 - "lo": 571528921390960451 + "lo": 454962230661521816 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 90270329138068508 - "lo": 825292986059106838 + "lo": 408305814777134036 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 766643851809970366 - "lo": 571528921390960451 + "lo": 454962230661521816 } }, { "i128": { "hi": 0, - "lo": 90270329138068508 - "lo": 825292986059106838 + "lo": 408305814777134036 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 766643851809970366 - "lo": 571528921390960451 + "lo": 454962230661521816 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 90270329138068508 - "lo": 825292986059106838 + "lo": 408305814777134036 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 263068798671683303 - "lo": 686788766764487996 + "lo": 431003160409613537 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 766643851809970366 - "lo": 571528921390960451 + "lo": 454962230661521816 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 90270329138068508 - "lo": 825292986059106838 + "lo": 408305814777134036 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 263068798671683303 - "lo": 686788766764487996 + "lo": 431003160409613537 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 766643851809970366 - "lo": 571528921390960451 + "lo": 454962230661521816 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 90270329138068508 - "lo": 825292986059106838 + "lo": 408305814777134036 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.63.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.63.json index f9ccead1..7d98b4ba 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.63.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.63.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 499142039560610478 - "lo": 643009792944025856 + "lo": 484788225427240387 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 113032984365374427 - "lo": 709812432294481847 + "lo": 746863060313285010 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 499142039560610478 - "lo": 643009792944025856 + "lo": 484788225427240387 } }, { "i128": { "hi": 0, - "lo": 113032984365374427 - "lo": 709812432294481847 + "lo": 746863060313285010 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 499142039560610478 - "lo": 643009792944025856 + "lo": 484788225427240387 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 113032984365374427 - "lo": 709812432294481847 + "lo": 746863060313285010 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 237527923313777127 - "lo": 675585927265192628 + "lo": 601722874458363471 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 499142039560610478 - "lo": 643009792944025856 + "lo": 484788225427240387 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 113032984365374427 - "lo": 709812432294481847 + "lo": 746863060313285010 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 237527923313777127 - "lo": 675585927265192628 + "lo": 601722874458363471 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 499142039560610478 - "lo": 643009792944025856 + "lo": 484788225427240387 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 113032984365374427 - "lo": 709812432294481847 + "lo": 746863060313285010 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.64.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.64.json index 1e3b023a..a311cd53 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.64.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.64.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 216521662953105726 - "lo": 727840539775555200 + "lo": 798624495390467768 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 738975091357598507 - "lo": 568804673689125208 + "lo": 632329765912599556 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 216521662953105726 - "lo": 727840539775555200 + "lo": 798624495390467768 } }, { "i128": { "hi": 0, - "lo": 738975091357598507 - "lo": 568804673689125208 + "lo": 632329765912599556 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 216521662953105726 - "lo": 727840539775555200 + "lo": 798624495390467768 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 738975091357598507 - "lo": 568804673689125208 + "lo": 632329765912599556 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 400005144544005153 - "lo": 643427618870025995 + "lo": 710629326880281818 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 216521662953105726 - "lo": 727840539775555200 + "lo": 798624495390467768 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 738975091357598507 - "lo": 568804673689125208 + "lo": 632329765912599556 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 400005144544005153 - "lo": 643427618870025995 + "lo": 710629326880281818 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 216521662953105726 - "lo": 727840539775555200 + "lo": 798624495390467768 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 738975091357598507 - "lo": 568804673689125208 + "lo": 632329765912599556 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.65.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.65.json index 8a81190f..1c59bbca 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.65.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.65.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 458760447334063595 - "lo": 181059808970326648 + "lo": 366740584717130787 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 470790011659991292 - "lo": 387945802862881352 + "lo": 368905540647589160 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 458760447334063595 - "lo": 181059808970326648 + "lo": 366740584717130787 } }, { "i128": { "hi": 0, - "lo": 470790011659991292 - "lo": 387945802862881352 + "lo": 368905540647589160 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 458760447334063595 - "lo": 181059808970326648 + "lo": 366740584717130787 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 470790011659991292 - "lo": 387945802862881352 + "lo": 368905540647589160 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": false - }, - { - "i128": { - "hi": 0, - "lo": 58510049457309928 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 32254226671309225 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 464736308404611981 - "lo": 265030928303081824 + "lo": 367821469849825524 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 458760447334063595 - "lo": 213314035641635873 + "lo": 366740584717130787 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 470790011659991292 - "lo": 329435753405571424 + "lo": 368905540647589160 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 464736308404611981 - "lo": 265030928303081824 + "lo": 367821469849825524 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -880,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 458760447334063595 - "lo": 213314035641635873 + "lo": 366740584717130787 } } }, @@ -1027,7 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 13074257625909587543 + "lo": 13106511852580896768 } } }, @@ -1212,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 470790011659991292 - "lo": 329435753405571424 + "lo": 368905540647589160 } } }, @@ -1359,7 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 13165021902038206696 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.66.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.66.json index 74babe70..167c7282 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.66.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.66.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 165733324736729518 - "lo": 231882712341758902 + "lo": 35893018210728411 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 485520805559192673 - "lo": 171626537229090055 + "lo": 22012595238321716 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 165733324736729518 - "lo": 231882712341758902 + "lo": 35893018210728411 } }, { "i128": { "hi": 0, - "lo": 485520805559192673 - "lo": 171626537229090055 + "lo": 22012595238321716 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 165733324736729518 - "lo": 231882712341758902 + "lo": 35893018210728411 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 485520805559192673 - "lo": 171626537229090055 + "lo": 22012595238321716 } } ] @@ -228,6 +222,65 @@ } ] ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "function_name": "swap", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "bool": false + }, + { + "i128": { + "hi": 0, + "lo": 18591120594071971 + } + }, + { + "i128": { + "hi": 2, + "lo": 13106511852580896768 + } + } + ] + } + }, + "sub_invocations": [ + { + "function": { + "contract_fn": { + "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", + "function_name": "transfer", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "i128": { + "hi": 0, + "lo": 195617211178167561 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + } + ] + ], + [], [] ], "ledger": { @@ -532,8 +585,7 @@ "val": { "i128": { "hi": 0, - "lo": 283667018410988677 - "lo": 199492423321050627 + "lo": 28108690502306841 } } } @@ -582,7 +634,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +650,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +709,7 @@ "val": { "i128": { "hi": 0, - "lo": 165733324736729518 - "lo": 231882712341758902 + "lo": 231510229388895972 } } }, @@ -665,8 +720,7 @@ "val": { "i128": { "hi": 0, - "lo": 485520805559192673 - "lo": 171626537229090055 + "lo": 3421474644249745 } } }, @@ -693,13 +747,24 @@ "val": { "i128": { "hi": 0, - "lo": 283667018410988677 - "lo": 199492423321050627 + "lo": 28108690502306841 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -744,6 +809,39 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], [ { "contract_data": { @@ -788,8 +886,7 @@ "val": { "i128": { "hi": 0, - "lo": 165733324736729518 - "lo": 231882712341758902 + "lo": 231510229388895972 } } }, @@ -935,7 +1032,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 12910894641402729207 } } }, @@ -1120,8 +1217,7 @@ "val": { "i128": { "hi": 0, - "lo": 485520805559192673 - "lo": 171626537229090055 + "lo": 3421474644249745 } } }, @@ -1267,7 +1363,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 13125102973174968739 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.67.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.67.json index 74467e71..b29cd5a2 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.67.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.67.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 992428367021929828 - "lo": 963181170714165511 + "lo": 774831396498409201 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 287213096919354455 - "lo": 963322764847893458 + "lo": 946229368206247537 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 992428367021929828 - "lo": 963181170714165511 + "lo": 774831396498409201 } }, { "i128": { "hi": 0, - "lo": 287213096919354455 - "lo": 963322764847893458 + "lo": 946229368206247537 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 992428367021929828 - "lo": 963181170714165511 + "lo": 774831396498409201 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 287213096919354455 - "lo": 963322764847893458 + "lo": 946229368206247537 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 533889899476461538 - "lo": 963251965179309035 + "lo": 856252429354249609 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 992428367021929828 - "lo": 963181170714165511 + "lo": 774831396498409201 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 287213096919354455 - "lo": 963322764847893458 + "lo": 946229368206247537 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 533889899476461538 - "lo": 963251965179309035 + "lo": 856252429354249609 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 992428367021929828 - "lo": 963181170714165511 + "lo": 774831396498409201 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 287213096919354455 - "lo": 963322764847893458 + "lo": 946229368206247537 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.68.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.68.json index 116c4a6b..6913b282 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.68.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.68.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 701170170070319474 - "lo": 108093081921133396 + "lo": 997788533707018851 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 604950057025413969 - "lo": 622556549710253824 + "lo": 603818440932413549 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 701170170070319474 - "lo": 108093081921133396 + "lo": 997788533707018851 } }, { "i128": { "hi": 0, - "lo": 604950057025413969 - "lo": 622556549710253824 + "lo": 603818440932413549 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 701170170070319474 - "lo": 108093081921133396 + "lo": 997788533707018851 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 604950057025413969 - "lo": 622556549710253824 + "lo": 603818440932413549 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 651285601229260231 - "lo": 259410979197813873 + "lo": 776197859313726198 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 701170170070319474 - "lo": 108093081921133396 + "lo": 997788533707018851 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 604950057025413969 - "lo": 622556549710253824 + "lo": 603818440932413549 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 651285601229260231 - "lo": 259410979197813873 + "lo": 776197859313726198 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 701170170070319474 - "lo": 108093081921133396 + "lo": 997788533707018851 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 604950057025413969 - "lo": 622556549710253824 + "lo": 603818440932413549 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.69.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.69.json index 5236d437..24b0abb0 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.69.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.69.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 498987379283810711 - "lo": 423451819514188778 + "lo": 454507256937409928 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 812409750331315477 - "lo": 107632950158180999 + "lo": 375021914521643 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 498987379283810711 - "lo": 423451819514188778 + "lo": 454507256937409928 } }, { "i128": { "hi": 0, - "lo": 812409750331315477 - "lo": 107632950158180999 + "lo": 375021914521643 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 498987379283810711 - "lo": 423451819514188778 + "lo": 454507256937409928 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 812409750331315477 - "lo": 107632950158180999 + "lo": 375021914521643 } } ] @@ -241,12 +235,12 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" }, { - "bool": false + "bool": true }, { "i128": { "hi": 0, - "lo": 37437137170027356 + "lo": 42465563119148925 } }, { @@ -262,7 +256,7 @@ { "function": { "contract_fn": { - "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", "function_name": "transfer", "args": [ { @@ -274,7 +268,7 @@ { "i128": { "hi": 0, - "lo": 226516721603021480 + "lo": 38766555261538 } } ] @@ -591,8 +585,7 @@ "val": { "i128": { "hi": 0, - "lo": 636696326534430446 - "lo": 213488567806713567 + "lo": 13055657075024901 } } } @@ -641,7 +634,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +650,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +709,7 @@ "val": { "i128": { "hi": 0, - "lo": 498987379283810711 - "lo": 649968541117210258 + "lo": 412041693818261003 } } }, @@ -724,8 +720,7 @@ "val": { "i128": { "hi": 0, - "lo": 812409750331315477 - "lo": 70195812988153643 + "lo": 413788469783181 } } }, @@ -752,13 +747,24 @@ "val": { "i128": { "hi": 0, - "lo": 636696326534430446 - "lo": 213488567806713567 + "lo": 13055657075024901 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,6 +809,39 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], [ { "contract_data": { @@ -847,8 +886,7 @@ "val": { "i128": { "hi": 0, - "lo": 498987379283810711 - "lo": 649968541117210258 + "lo": 412041693818261003 } } }, @@ -994,8 +1032,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 - "lo": 12879995130977875288 + "lo": 13148977415700045693 } } }, @@ -1180,8 +1217,7 @@ "val": { "i128": { "hi": 0, - "lo": 812409750331315477 - "lo": 70195812988153643 + "lo": 413788469783181 } } }, @@ -1327,8 +1363,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 - "lo": 13143948989750924124 + "lo": 13106473086025635230 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.7.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.7.json index d0c466a6..f6f785ae 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.7.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.7.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 756828808954506828 - "lo": 56486157670279741 + "lo": 404825101947072688 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 345179657333868341 - "lo": 712227411575714837 + "lo": 474427643081964012 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 756828808954506828 - "lo": 56486157670279741 + "lo": 404825101947072688 } }, { "i128": { "hi": 0, - "lo": 345179657333868341 - "lo": 712227411575714837 + "lo": 474427643081964012 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 756828808954506828 - "lo": 56486157670279741 + "lo": 404825101947072688 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 345179657333868341 - "lo": 712227411575714837 + "lo": 474427643081964012 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 511118292507044179 - "lo": 200576643374449385 + "lo": 438246755809059578 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 756828808954506828 - "lo": 56486157670279741 + "lo": 404825101947072688 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 345179657333868341 - "lo": 712227411575714837 + "lo": 474427643081964012 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 511118292507044179 - "lo": 200576643374449385 + "lo": 438246755809059578 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 756828808954506828 - "lo": 56486157670279741 + "lo": 404825101947072688 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 345179657333868341 - "lo": 712227411575714837 + "lo": 474427643081964012 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.70.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.70.json index b9036d9f..f0966c7f 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.70.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.70.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 423724746818122637 - "lo": 588484263051195031 + "lo": 642458437970458239 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 826436977642875022 - "lo": 488880970476715517 + "lo": 711024070333217157 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 423724746818122637 - "lo": 588484263051195031 + "lo": 642458437970458239 } }, { "i128": { "hi": 0, - "lo": 826436977642875022 - "lo": 488880970476715517 + "lo": 711024070333217157 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 423724746818122637 - "lo": 588484263051195031 + "lo": 642458437970458239 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 826436977642875022 - "lo": 488880970476715517 + "lo": 711024070333217157 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": true - }, - { - "i128": { - "hi": 0, - "lo": 14819447045978222 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 12667233005578587 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 591761606656651641 - "lo": 536375575162351111 + "lo": 675872335271740450 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 423724746818122637 - "lo": 573664816005216809 + "lo": 642458437970458239 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 826436977642875022 - "lo": 501548203482294104 + "lo": 711024070333217157 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 591761606656651641 - "lo": 536375575162351111 + "lo": 675872335271740450 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -880,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 423724746818122637 - "lo": 573664816005216809 + "lo": 642458437970458239 } } }, @@ -1027,7 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 13121331299626874990 + "lo": 13106511852580896768 } } }, @@ -1212,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 826436977642875022 - "lo": 501548203482294104 + "lo": 711024070333217157 } } }, @@ -1359,7 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 13093844619575318181 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.71.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.71.json index 4f39dba5..5f0b837e 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.71.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.71.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 791865837768962886 - "lo": 536647964353820873 + "lo": 700392497787992450 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 123781554187778587 - "lo": 440574102048667204 + "lo": 498434666620220706 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 791865837768962886 - "lo": 536647964353820873 + "lo": 700392497787992450 } }, { "i128": { "hi": 0, - "lo": 123781554187778587 - "lo": 440574102048667204 + "lo": 498434666620220706 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 791865837768962886 - "lo": 536647964353820873 + "lo": 700392497787992450 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 123781554187778587 - "lo": 440574102048667204 + "lo": 498434666620220706 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": false - }, - { - "i128": { - "hi": 0, - "lo": 4653860283842174 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 31028233798600082 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 313078878411255279 - "lo": 486243966555298038 + "lo": 590846766207839784 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 822894071567562968 - "lo": 536647964353820873 + "lo": 700392497787992450 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 119127693903936413 - "lo": 440574102048667204 + "lo": 498434666620220706 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 313078878411255279 - "lo": 486243966555298038 + "lo": 590846766207839784 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -880,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 822894071567562968 - "lo": 536647964353820873 + "lo": 700392497787992450 } } }, @@ -1027,7 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 13075483618782296686 + "lo": 13106511852580896768 } } }, @@ -1212,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 119127693903936413 - "lo": 440574102048667204 + "lo": 498434666620220706 } } }, @@ -1359,7 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 13111165712864738942 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.72.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.72.json index 8012dc4b..a6187529 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.72.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.72.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 488998326552669344 - "lo": 530632790503329145 + "lo": 294133718555280196 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 115454202942642429 - "lo": 804294693139611345 + "lo": 465340457043418897 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 488998326552669344 - "lo": 530632790503329145 + "lo": 294133718555280196 } }, { "i128": { "hi": 0, - "lo": 115454202942642429 - "lo": 804294693139611345 + "lo": 465340457043418897 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 488998326552669344 - "lo": 530632790503329145 + "lo": 294133718555280196 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 115454202942642429 - "lo": 804294693139611345 + "lo": 465340457043418897 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 237606632972281353 - "lo": 653287943718304652 + "lo": 369962591385121568 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 488998326552669344 - "lo": 530632790503329145 + "lo": 294133718555280196 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 115454202942642429 - "lo": 804294693139611345 + "lo": 465340457043418897 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 237606632972281353 - "lo": 653287943718304652 + "lo": 369962591385121568 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 488998326552669344 - "lo": 530632790503329145 + "lo": 294133718555280196 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 115454202942642429 - "lo": 804294693139611345 + "lo": 465340457043418897 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.73.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.73.json index 4db2246a..447a901d 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.73.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.73.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 683998373022037488 - "lo": 784228553414509602 + "lo": 311810562950457949 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 886291554157088152 - "lo": 263375386589092827 + "lo": 739093754453445667 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 683998373022037488 - "lo": 784228553414509602 + "lo": 311810562950457949 } }, { "i128": { "hi": 0, - "lo": 886291554157088152 - "lo": 263375386589092827 + "lo": 739093754453445667 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 683998373022037488 - "lo": 784228553414509602 + "lo": 311810562950457949 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 886291554157088152 - "lo": 263375386589092827 + "lo": 739093754453445667 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 778602582237319144 - "lo": 454473869908657674 + "lo": 480059620931917611 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 683998373022037488 - "lo": 784228553414509602 + "lo": 311810562950457949 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 886291554157088152 - "lo": 263375386589092827 + "lo": 739093754453445667 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 778602582237319144 - "lo": 454473869908657674 + "lo": 480059620931917611 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 683998373022037488 - "lo": 784228553414509602 + "lo": 311810562950457949 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 886291554157088152 - "lo": 263375386589092827 + "lo": 739093754453445667 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.74.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.74.json index 518ef3da..02d07f08 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.74.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.74.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 367744313860202159 - "lo": 718617513542506089 + "lo": 143136579463323704 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 132005706694972210 - "lo": 836513555940393009 + "lo": 408359741141774492 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 367744313860202159 - "lo": 718617513542506089 + "lo": 143136579463323704 } }, { "i128": { "hi": 0, - "lo": 132005706694972210 - "lo": 836513555940393009 + "lo": 408359741141774492 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 367744313860202159 - "lo": 718617513542506089 + "lo": 143136579463323704 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 132005706694972210 - "lo": 836513555940393009 + "lo": 408359741141774492 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": true - }, - { - "i128": { - "hi": 0, - "lo": 120226135840223493 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 64311603393436540 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 220327819474013879 - "lo": 775327860723762007 + "lo": 241766864018959187 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 247518178019978666 - "lo": 718617513542506089 + "lo": 143136579463323704 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 196317310088408750 - "lo": 836513555940393009 + "lo": 408359741141774492 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 220327819474013879 - "lo": 775327860723762007 + "lo": 241766864018959187 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -847,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 247518178019978666 - "lo": 718617513542506089 + "lo": 143136579463323704 } } }, @@ -994,7 +940,6 @@ "val": { "i128": { "hi": 2, - "lo": 13226737988421120261 "lo": 13106511852580896768 } } @@ -1180,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 196317310088408750 - "lo": 836513555940393009 + "lo": 408359741141774492 } } }, @@ -1327,7 +1271,6 @@ "val": { "i128": { "hi": 2, - "lo": 13042200249187460228 "lo": 13106511852580896768 } } diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.75.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.75.json index cc5d1e2a..c37d8bd9 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.75.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.75.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 454770467774768421 - "lo": 93122819101601589 + "lo": 746484596373626071 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 120449727718457475 - "lo": 611089175582611379 + "lo": 976624558120572748 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 454770467774768421 - "lo": 93122819101601589 + "lo": 746484596373626071 } }, { "i128": { "hi": 0, - "lo": 120449727718457475 - "lo": 611089175582611379 + "lo": 976624558120572748 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 454770467774768421 - "lo": 93122819101601589 + "lo": 746484596373626071 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 120449727718457475 - "lo": 611089175582611379 + "lo": 976624558120572748 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 234044822668364949 - "lo": 238550511952345996 + "lo": 853835574965816626 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 454770467774768421 - "lo": 93122819101601589 + "lo": 746484596373626071 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 120449727718457475 - "lo": 611089175582611379 + "lo": 976624558120572748 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 234044822668364949 - "lo": 238550511952345996 + "lo": 853835574965816626 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 454770467774768421 - "lo": 93122819101601589 + "lo": 746484596373626071 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 120449727718457475 - "lo": 611089175582611379 + "lo": 976624558120572748 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.76.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.76.json index a6955963..27910b0b 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.76.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.76.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 846579281485395908 - "lo": 635367382334171856 + "lo": 201944147907549070 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 279673125760100157 - "lo": 90919144720308109 + "lo": 928565411607530151 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 846579281485395908 - "lo": 635367382334171856 + "lo": 201944147907549070 } }, { "i128": { "hi": 0, - "lo": 279673125760100157 - "lo": 90919144720308109 + "lo": 928565411607530151 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 846579281485395908 - "lo": 635367382334171856 + "lo": 201944147907549070 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 279673125760100157 - "lo": 90919144720308109 + "lo": 928565411607530151 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 486585525737007882 - "lo": 240347787560035394 + "lo": 433033891079561174 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 846579281485395908 - "lo": 635367382334171856 + "lo": 201944147907549070 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 279673125760100157 - "lo": 90919144720308109 + "lo": 928565411607530151 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 486585525737007882 - "lo": 240347787560035394 + "lo": 433033891079561174 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 846579281485395908 - "lo": 635367382334171856 + "lo": 201944147907549070 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 279673125760100157 - "lo": 90919144720308109 + "lo": 928565411607530151 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.77.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.77.json index 20bae780..391f603b 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.77.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.77.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 764774497635578693 - "lo": 430766885952623538 + "lo": 987906144969229442 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 564377532481146604 - "lo": 283104532163931834 + "lo": 853964846816448103 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 764774497635578693 - "lo": 430766885952623538 + "lo": 987906144969229442 } }, { "i128": { "hi": 0, - "lo": 564377532481146604 - "lo": 283104532163931834 + "lo": 853964846816448103 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 764774497635578693 - "lo": 430766885952623538 + "lo": 987906144969229442 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 564377532481146604 - "lo": 283104532163931834 + "lo": 853964846816448103 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": false - }, - { - "i128": { - "hi": 0, - "lo": 37587299043095954 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 66146411825227006 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 656979104599283576 - "lo": 349216348012705823 + "lo": 918497207267216350 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 764774497635578693 - "lo": 496913297777850544 + "lo": 987906144969229442 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 564377532481146604 - "lo": 245517233120835880 + "lo": 853964846816448103 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 656979104599283576 - "lo": 349216348012705823 + "lo": 918497207267216350 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -880,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 764774497635578693 - "lo": 496913297777850544 + "lo": 987906144969229442 } } }, @@ -1027,7 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 13040365440755669762 + "lo": 13106511852580896768 } } }, @@ -1212,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 564377532481146604 - "lo": 245517233120835880 + "lo": 853964846816448103 } } }, @@ -1359,7 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 13144099151623992722 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.78.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.78.json index 5a28521b..a3bc5379 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.78.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.78.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 13309721424991847 - "lo": 951098432342813591 + "lo": 507729051627757080 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 825335327147558041 - "lo": 822466023693084090 + "lo": 221103899991312112 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 13309721424991847 - "lo": 951098432342813591 + "lo": 507729051627757080 } }, { "i128": { "hi": 0, - "lo": 825335327147558041 - "lo": 822466023693084090 + "lo": 221103899991312112 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 13309721424991847 - "lo": 951098432342813591 + "lo": 507729051627757080 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 825335327147558041 - "lo": 822466023693084090 + "lo": 221103899991312112 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": true - }, - { - "i128": { - "hi": 0, - "lo": 12180674091316564 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 8930884036222284946 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 104809270995167733 - "lo": 884446802125328314 + "lo": 335053538190223183 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 1129047333675283 - "lo": 951098432342813591 + "lo": 507729051627757080 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 9756219363369842987 - "lo": 822466023693084090 + "lo": 221103899991312112 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 104809270995167733 - "lo": 884446802125328314 + "lo": 335053538190223183 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -880,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 1129047333675283 - "lo": 951098432342813591 + "lo": 507729051627757080 } } }, @@ -1027,7 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 13118692526672213332 + "lo": 13106511852580896768 } } }, @@ -1212,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 9756219363369842987 - "lo": 822466023693084090 + "lo": 221103899991312112 } } }, @@ -1359,7 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 4175627816358611822 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.79.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.79.json index f4a4fbf5..942a1c36 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.79.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.79.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 851484799713190161 - "lo": 932801490031436199 + "lo": 477147963952216336 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 822800825538235561 - "lo": 840030269714064441 + "lo": 737598451008221541 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 851484799713190161 - "lo": 932801490031436199 + "lo": 477147963952216336 } }, { "i128": { "hi": 0, - "lo": 822800825538235561 - "lo": 840030269714064441 + "lo": 737598451008221541 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 851484799713190161 - "lo": 932801490031436199 + "lo": 477147963952216336 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 822800825538235561 - "lo": 840030269714064441 + "lo": 737598451008221541 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 837019949665043543 - "lo": 885201382319745670 + "lo": 593248345225573721 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 851484799713190161 - "lo": 932801490031436199 + "lo": 477147963952216336 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 822800825538235561 - "lo": 840030269714064441 + "lo": 737598451008221541 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 837019949665043543 - "lo": 885201382319745670 + "lo": 593248345225573721 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 851484799713190161 - "lo": 932801490031436199 + "lo": 477147963952216336 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 822800825538235561 - "lo": 840030269714064441 + "lo": 737598451008221541 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.8.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.8.json index 8d84c296..d9d1f26c 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.8.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.8.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 583794396677863793 - "lo": 666351906515732715 + "lo": 249854315816888049 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 80482875012734716 - "lo": 1048174372705018 + "lo": 409076525467760677 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 583794396677863793 - "lo": 666351906515732715 + "lo": 249854315816888049 } }, { "i128": { "hi": 0, - "lo": 80482875012734716 - "lo": 1048174372705018 + "lo": 409076525467760677 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 583794396677863793 - "lo": 666351906515732715 + "lo": 249854315816888049 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 80482875012734716 - "lo": 1048174372705018 + "lo": 409076525467760677 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": true - }, - { - "i128": { - "hi": 0, - "lo": 124497143426256383 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 241554354159676 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 216761277586563838 - "lo": 26428261229466476 + "lo": 319702260529226041 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 583794396677863793 - "lo": 541854763089476332 + "lo": 249854315816888049 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 80482875012734716 - "lo": 1289728726864694 + "lo": 409076525467760677 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 216761277586563838 - "lo": 26428261229466476 + "lo": 319702260529226041 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -847,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 583794396677863793 - "lo": 541854763089476332 + "lo": 249854315816888049 } } }, @@ -995,7 +941,6 @@ "i128": { "hi": 2, "lo": 13106511852580896768 - "lo": 13231008996007153151 } } }, @@ -1180,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 80482875012734716 - "lo": 1289728726864694 + "lo": 409076525467760677 } } }, @@ -1328,7 +1272,6 @@ "i128": { "hi": 2, "lo": 13106511852580896768 - "lo": 13106270298226737092 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.80.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.80.json index 2d5d0342..b4d81f13 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.80.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.80.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 660553750170212754 - "lo": 586733647191978200 + "lo": 530319268885125758 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 68457326562079432 - "lo": 388020381836870462 + "lo": 98110484724494784 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 660553750170212754 - "lo": 586733647191978200 + "lo": 530319268885125758 } }, { "i128": { "hi": 0, - "lo": 68457326562079432 - "lo": 388020381836870462 + "lo": 98110484724494784 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 660553750170212754 - "lo": 586733647191978200 + "lo": 530319268885125758 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 68457326562079432 - "lo": 388020381836870462 + "lo": 98110484724494784 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 212649344666774100 - "lo": 477142131675637107 + "lo": 228100593004620162 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 660553750170212754 - "lo": 586733647191978200 + "lo": 530319268885125758 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 68457326562079432 - "lo": 388020381836870462 + "lo": 98110484724494784 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 212649344666774100 - "lo": 477142131675637107 + "lo": 228100593004620162 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 660553750170212754 - "lo": 586733647191978200 + "lo": 530319268885125758 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 68457326562079432 - "lo": 388020381836870462 + "lo": 98110484724494784 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.81.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.81.json index ff9e72a1..6d107dd6 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.81.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.81.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 819930723168893963 - "lo": 380334811656766809 + "lo": 859207445491683694 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 197222710226908331 - "lo": 992285461168107778 + "lo": 227711695130411475 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 819930723168893963 - "lo": 380334811656766809 + "lo": 859207445491683694 } }, { "i128": { "hi": 0, - "lo": 197222710226908331 - "lo": 992285461168107778 + "lo": 227711695130411475 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 819930723168893963 - "lo": 380334811656766809 + "lo": 859207445491683694 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 197222710226908331 - "lo": 992285461168107778 + "lo": 227711695130411475 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": true - }, - { - "i128": { - "hi": 0, - "lo": 16639708387347923 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 45535459876458163 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 402130525354241377 - "lo": 614329475105273023 + "lo": 442325201499509761 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 819930723168893963 - "lo": 363695103269418886 + "lo": 859207445491683694 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 197222710226908331 - "lo": 1037820921044565941 + "lo": 227711695130411475 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 402130525354241377 - "lo": 614329475105273023 + "lo": 442325201499509761 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -880,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 819930723168893963 - "lo": 363695103269418886 + "lo": 859207445491683694 } } }, @@ -1027,7 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 13123151560968244691 + "lo": 13106511852580896768 } } }, @@ -1212,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 197222710226908331 - "lo": 1037820921044565941 + "lo": 227711695130411475 } } }, @@ -1359,7 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 13060976392704438605 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.82.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.82.json index 70b03b44..58b4b1c6 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.82.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.82.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 670029322906592385 - "lo": 988200181151760342 + "lo": 134147434014150044 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 487773628510502581 - "lo": 80245571697750329 + "lo": 775717078247050621 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 670029322906592385 - "lo": 988200181151760342 + "lo": 134147434014150044 } }, { "i128": { "hi": 0, - "lo": 487773628510502581 - "lo": 80245571697750329 + "lo": 775717078247050621 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 670029322906592385 - "lo": 988200181151760342 + "lo": 134147434014150044 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 487773628510502581 - "lo": 80245571697750329 + "lo": 775717078247050621 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 571684033398330770 - "lo": 281600228139721946 + "lo": 322584028692983325 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 670029322906592385 - "lo": 988200181151760342 + "lo": 134147434014150044 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 487773628510502581 - "lo": 80245571697750329 + "lo": 775717078247050621 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 571684033398330770 - "lo": 281600228139721946 + "lo": 322584028692983325 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 670029322906592385 - "lo": 988200181151760342 + "lo": 134147434014150044 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 487773628510502581 - "lo": 80245571697750329 + "lo": 775717078247050621 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.83.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.83.json index 50b3a625..88d941a6 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.83.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.83.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 384517480515070575 - "lo": 516793190460263436 + "lo": 577739840858227938 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 255224052380320305 - "lo": 346944910888289649 + "lo": 344709099560833623 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 384517480515070575 - "lo": 516793190460263436 + "lo": 577739840858227938 } }, { "i128": { "hi": 0, - "lo": 255224052380320305 - "lo": 346944910888289649 + "lo": 344709099560833623 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 384517480515070575 - "lo": 516793190460263436 + "lo": 577739840858227938 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 255224052380320305 - "lo": 346944910888289649 + "lo": 344709099560833623 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 313270026635372769 - "lo": 423436851740505691 + "lo": 446264697598475816 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 384517480515070575 - "lo": 516793190460263436 + "lo": 577739840858227938 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 255224052380320305 - "lo": 346944910888289649 + "lo": 344709099560833623 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 313270026635372769 - "lo": 423436851740505691 + "lo": 446264697598475816 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 384517480515070575 - "lo": 516793190460263436 + "lo": 577739840858227938 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 255224052380320305 - "lo": 346944910888289649 + "lo": 344709099560833623 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.84.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.84.json index 6c37f348..b04a0c75 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.84.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.84.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 352937274803333803 - "lo": 74287108401642228 + "lo": 263155320001421460 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 466981963628304551 - "lo": 943293016189873108 + "lo": 125330424620097148 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 352937274803333803 - "lo": 74287108401642228 + "lo": 263155320001421460 } }, { "i128": { "hi": 0, - "lo": 466981963628304551 - "lo": 943293016189873108 + "lo": 125330424620097148 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 352937274803333803 - "lo": 74287108401642228 + "lo": 263155320001421460 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 466981963628304551 - "lo": 943293016189873108 + "lo": 125330424620097148 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": false - }, - { - "i128": { - "hi": 0, - "lo": 144475302758366330 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 13476099914066125 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 405974557854655904 - "lo": 264715905355551238 + "lo": 181607731104200780 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 352937274803333803 - "lo": 87763208315708353 + "lo": 263155320001421460 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 466981963628304551 - "lo": 798817713431506778 + "lo": 125330424620097148 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 405974557854655904 - "lo": 264715905355551238 + "lo": 181607731104200780 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -880,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 352937274803333803 - "lo": 87763208315708353 + "lo": 263155320001421460 } } }, @@ -1027,7 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 13093035752666830643 + "lo": 13106511852580896768 } } }, @@ -1212,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 466981963628304551 - "lo": 798817713431506778 + "lo": 125330424620097148 } } }, @@ -1359,7 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 13250987155339263098 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.85.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.85.json index 91057841..fe37c261 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.85.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.85.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 859199180947967945 - "lo": 256171428789816669 + "lo": 274824422592165419 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 408528330497926688 - "lo": 895565469012139235 + "lo": 760357986210518007 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 859199180947967945 - "lo": 256171428789816669 + "lo": 274824422592165419 } }, { "i128": { "hi": 0, - "lo": 408528330497926688 - "lo": 895565469012139235 + "lo": 760357986210518007 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 859199180947967945 - "lo": 256171428789816669 + "lo": 274824422592165419 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 408528330497926688 - "lo": 895565469012139235 + "lo": 760357986210518007 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 592458612021008066 - "lo": 478976289362701118 + "lo": 457126836363440039 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 859199180947967945 - "lo": 256171428789816669 + "lo": 274824422592165419 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 408528330497926688 - "lo": 895565469012139235 + "lo": 760357986210518007 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 592458612021008066 - "lo": 478976289362701118 + "lo": 457126836363440039 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 859199180947967945 - "lo": 256171428789816669 + "lo": 274824422592165419 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 408528330497926688 - "lo": 895565469012139235 + "lo": 760357986210518007 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.86.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.86.json index 5e04e90e..738b4fae 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.86.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.86.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 89888553960456276 - "lo": 823405572968200775 + "lo": 274282716089448126 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 476764580967144942 - "lo": 202514547584159632 + "lo": 878524030022212176 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 89888553960456276 - "lo": 823405572968200775 + "lo": 274282716089448126 } }, { "i128": { "hi": 0, - "lo": 476764580967144942 - "lo": 202514547584159632 + "lo": 878524030022212176 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 89888553960456276 - "lo": 823405572968200775 + "lo": 274282716089448126 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 476764580967144942 - "lo": 202514547584159632 + "lo": 878524030022212176 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": false - }, - { - "i128": { - "hi": 0, - "lo": 98527090586106359 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 23485527600202769 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 207016131648476934 - "lo": 408352307557984692 + "lo": 490880797245461847 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 113374081560659045 - "lo": 823405572968200775 + "lo": 274282716089448126 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 378237490381038583 - "lo": 202514547584159632 + "lo": 878524030022212176 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 207016131648476934 - "lo": 408352307557984692 + "lo": 490880797245461847 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -847,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 113374081560659045 - "lo": 823405572968200775 + "lo": 274282716089448126 } } }, @@ -994,7 +940,6 @@ "val": { "i128": { "hi": 2, - "lo": 13083026324980693999 "lo": 13106511852580896768 } } @@ -1180,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 378237490381038583 - "lo": 202514547584159632 + "lo": 878524030022212176 } } }, @@ -1327,7 +1271,6 @@ "val": { "i128": { "hi": 2, - "lo": 13205038943167003127 "lo": 13106511852580896768 } } diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.87.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.87.json index 2dca6682..3e7a4429 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.87.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.87.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 831674084724154350 - "lo": 968960387314033124 + "lo": 890544897388853051 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 671892821475297293 - "lo": 592311595312016544 + "lo": 303077465242664365 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 831674084724154350 - "lo": 968960387314033124 + "lo": 890544897388853051 } }, { "i128": { "hi": 0, - "lo": 671892821475297293 - "lo": 592311595312016544 + "lo": 303077465242664365 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 831674084724154350 - "lo": 968960387314033124 + "lo": 890544897388853051 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 671892821475297293 - "lo": 592311595312016544 + "lo": 303077465242664365 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 747526486041262295 - "lo": 757579350830079315 + "lo": 519522944811297255 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 831674084724154350 - "lo": 968960387314033124 + "lo": 890544897388853051 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 671892821475297293 - "lo": 592311595312016544 + "lo": 303077465242664365 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 747526486041262295 - "lo": 757579350830079315 + "lo": 519522944811297255 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 831674084724154350 - "lo": 968960387314033124 + "lo": 890544897388853051 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 671892821475297293 - "lo": 592311595312016544 + "lo": 303077465242664365 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.88.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.88.json index 6af5e25b..9cc13fd1 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.88.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.88.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 646276203464374762 - "lo": 589490538974359177 + "lo": 441226144118922178 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 246989855025995735 - "lo": 991723930366596449 + "lo": 756853297302604251 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 646276203464374762 - "lo": 589490538974359177 + "lo": 441226144118922178 } }, { "i128": { "hi": 0, - "lo": 246989855025995735 - "lo": 991723930366596449 + "lo": 756853297302604251 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 646276203464374762 - "lo": 589490538974359177 + "lo": 441226144118922178 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 246989855025995735 - "lo": 991723930366596449 + "lo": 756853297302604251 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 399529305308655481 - "lo": 764599159184454498 + "lo": 577878414575696292 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 646276203464374762 - "lo": 589490538974359177 + "lo": 441226144118922178 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 246989855025995735 - "lo": 991723930366596449 + "lo": 756853297302604251 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 399529305308655481 - "lo": 764599159184454498 + "lo": 577878414575696292 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 646276203464374762 - "lo": 589490538974359177 + "lo": 441226144118922178 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 246989855025995735 - "lo": 991723930366596449 + "lo": 756853297302604251 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.89.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.89.json index aa109768..c9ba2fc2 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.89.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.89.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 732964768295910843 - "lo": 186900037936820220 + "lo": 821020432407692531 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 503725626546480540 - "lo": 430477697700575458 + "lo": 471680407194560163 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 732964768295910843 - "lo": 186900037936820220 + "lo": 821020432407692531 } }, { "i128": { "hi": 0, - "lo": 503725626546480540 - "lo": 430477697700575458 + "lo": 471680407194560163 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 732964768295910843 - "lo": 186900037936820220 + "lo": 821020432407692531 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 503725626546480540 - "lo": 430477697700575458 + "lo": 471680407194560163 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 607629111503352532 - "lo": 283648194126443504 + "lo": 622301576306146176 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 732964768295910843 - "lo": 186900037936820220 + "lo": 821020432407692531 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 503725626546480540 - "lo": 430477697700575458 + "lo": 471680407194560163 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 607629111503352532 - "lo": 283648194126443504 + "lo": 622301576306146176 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 732964768295910843 - "lo": 186900037936820220 + "lo": 821020432407692531 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 503725626546480540 - "lo": 430477697700575458 + "lo": 471680407194560163 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.9.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.9.json index ae89e729..621fc8cf 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.9.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.9.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 374824315696153584 - "lo": 784016614110639676 + "lo": 125235153917703239 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 304740549852665170 - "lo": 81720665509184553 + "lo": 937514026879815573 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 374824315696153584 - "lo": 784016614110639676 + "lo": 125235153917703239 } }, { "i128": { "hi": 0, - "lo": 304740549852665170 - "lo": 81720665509184553 + "lo": 937514026879815573 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 374824315696153584 - "lo": 784016614110639676 + "lo": 125235153917703239 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 304740549852665170 - "lo": 81720665509184553 + "lo": 937514026879815573 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 337970661542381218 - "lo": 253121234738176415 + "lo": 342651008252273314 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 374824315696153584 - "lo": 784016614110639676 + "lo": 125235153917703239 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 304740549852665170 - "lo": 81720665509184553 + "lo": 937514026879815573 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 337970661542381218 - "lo": 253121234738176415 + "lo": 342651008252273314 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 374824315696153584 - "lo": 784016614110639676 + "lo": 125235153917703239 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 304740549852665170 - "lo": 81720665509184553 + "lo": 937514026879815573 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.90.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.90.json index d68fefe0..da10a569 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.90.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.90.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 646516864732864840 - "lo": 67126273841858539 + "lo": 403580623232800040 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 803824166431877905 - "lo": 493715164272247026 + "lo": 678840637853078940 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 646516864732864840 - "lo": 67126273841858539 + "lo": 403580623232800040 } }, { "i128": { "hi": 0, - "lo": 803824166431877905 - "lo": 493715164272247026 + "lo": 678840637853078940 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 646516864732864840 - "lo": 67126273841858539 + "lo": 403580623232800040 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 803824166431877905 - "lo": 493715164272247026 + "lo": 678840637853078940 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": true - }, - { - "i128": { - "hi": 0, - "lo": 9268443543811363 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 79327902968031986 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 720892419073779858 - "lo": 182047409530641295 + "lo": 523418501488528879 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 646516864732864840 - "lo": 57857830298047176 + "lo": 403580623232800040 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 803824166431877905 - "lo": 573043067240279012 + "lo": 678840637853078940 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 720892419073779858 - "lo": 182047409530641295 + "lo": 523418501488528879 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -880,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 646516864732864840 - "lo": 57857830298047176 + "lo": 403580623232800040 } } }, @@ -1027,7 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 13115780296124708131 + "lo": 13106511852580896768 } } }, @@ -1212,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 803824166431877905 - "lo": 573043067240279012 + "lo": 678840637853078940 } } }, @@ -1359,7 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 13027183949612864782 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.91.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.91.json index dfe9e56c..f8e34a92 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.91.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.91.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 809797986742909879 - "lo": 407221865129153590 + "lo": 517028097349960 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 865513545505692305 - "lo": 330478179617400099 + "lo": 407642097610722113 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 809797986742909879 - "lo": 407221865129153590 + "lo": 517028097349960 } }, { "i128": { "hi": 0, - "lo": 865513545505692305 - "lo": 330478179617400099 + "lo": 407642097610722113 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 809797986742909879 - "lo": 407221865129153590 + "lo": 517028097349960 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 865513545505692305 - "lo": 330478179617400099 + "lo": 407642097610722113 } } ] @@ -228,6 +222,65 @@ } ] ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "function_name": "swap", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "bool": true + }, + { + "i128": { + "hi": 0, + "lo": 157384301897303 + } + }, + { + "i128": { + "hi": 2, + "lo": 13106511852580896768 + } + } + ] + } + }, + "sub_invocations": [ + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "transfer", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "i128": { + "hi": 0, + "lo": 178925693468262265 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + } + ] + ], + [], [] ], "ledger": { @@ -532,8 +585,7 @@ "val": { "i128": { "hi": 0, - "lo": 837192407185604821 - "lo": 366848661832485219 + "lo": 14517658837685170 } } } @@ -582,7 +634,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +650,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +709,7 @@ "val": { "i128": { "hi": 0, - "lo": 809797986742909879 - "lo": 407221865129153590 + "lo": 359643795452657 } } }, @@ -665,8 +720,7 @@ "val": { "i128": { "hi": 0, - "lo": 865513545505692305 - "lo": 330478179617400099 + "lo": 586567791078984378 } } }, @@ -693,13 +747,24 @@ "val": { "i128": { "hi": 0, - "lo": 837192407185604821 - "lo": 366848661832485219 + "lo": 14517658837685170 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -744,6 +809,39 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], [ { "contract_data": { @@ -788,8 +886,7 @@ "val": { "i128": { "hi": 0, - "lo": 809797986742909879 - "lo": 407221865129153590 + "lo": 359643795452657 } } }, @@ -935,7 +1032,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 13106669236882794071 } } }, @@ -1120,8 +1217,7 @@ "val": { "i128": { "hi": 0, - "lo": 865513545505692305 - "lo": 330478179617400099 + "lo": 586567791078984378 } } }, @@ -1267,7 +1363,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 12927586159112634503 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.92.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.92.json index b97a1e68..a02cff89 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.92.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.92.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 989572725149068250 - "lo": 845056193047835187 + "lo": 578854229441065250 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 730165390233802900 - "lo": 37554500055056124 + "lo": 93291503283947398 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 989572725149068250 - "lo": 845056193047835187 + "lo": 578854229441065250 } }, { "i128": { "hi": 0, - "lo": 730165390233802900 - "lo": 37554500055056124 + "lo": 93291503283947398 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 989572725149068250 - "lo": 845056193047835187 + "lo": 578854229441065250 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 730165390233802900 - "lo": 37554500055056124 + "lo": 93291503283947398 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": false - }, - { - "i128": { - "hi": 0, - "lo": 1035564265965059 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 24035290376473673 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 850030443586108979 - "lo": 178145061251611589 + "lo": 232383694020961761 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 989572725149068250 - "lo": 869091483424308860 + "lo": 578854229441065250 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 730165390233802900 - "lo": 36518935789091065 + "lo": 93291503283947398 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 850030443586108979 - "lo": 178145061251611589 + "lo": 232383694020961761 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -880,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 989572725149068250 - "lo": 869091483424308860 + "lo": 578854229441065250 } } }, @@ -1027,7 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 13082476562204423095 + "lo": 13106511852580896768 } } }, @@ -1212,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 730165390233802900 - "lo": 36518935789091065 + "lo": 93291503283947398 } } }, @@ -1359,7 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 13107547416846861827 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.93.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.93.json index 2b7bff09..08a3a1eb 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.93.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.93.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 155505385963429642 - "lo": 812027340330553471 + "lo": 357425327530655549 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 518195360154788385 - "lo": 344411866801715212 + "lo": 160228328555987059 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 155505385963429642 - "lo": 812027340330553471 + "lo": 357425327530655549 } }, { "i128": { "hi": 0, - "lo": 518195360154788385 - "lo": 344411866801715212 + "lo": 160228328555987059 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 155505385963429642 - "lo": 812027340330553471 + "lo": 357425327530655549 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 518195360154788385 - "lo": 344411866801715212 + "lo": 160228328555987059 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 283869986940022945 - "lo": 528840100765134535 + "lo": 239310807975346495 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 155505385963429642 - "lo": 812027340330553471 + "lo": 357425327530655549 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 518195360154788385 - "lo": 344411866801715212 + "lo": 160228328555987059 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 283869986940022945 - "lo": 528840100765134535 + "lo": 239310807975346495 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 155505385963429642 - "lo": 812027340330553471 + "lo": 357425327530655549 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 518195360154788385 - "lo": 344411866801715212 + "lo": 160228328555987059 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.94.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.94.json index 6288eba6..ebaa0f00 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.94.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.94.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 30700418419057332 - "lo": 161075798427376185 + "lo": 831183670034669442 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 35503436451411531 - "lo": 904001500673570686 + "lo": 366134648357320527 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 30700418419057332 - "lo": 161075798427376185 + "lo": 831183670034669442 } }, { "i128": { "hi": 0, - "lo": 35503436451411531 - "lo": 904001500673570686 + "lo": 366134648357320527 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 30700418419057332 - "lo": 161075798427376185 + "lo": 831183670034669442 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 35503436451411531 - "lo": 904001500673570686 + "lo": 366134648357320527 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": false - }, - { - "i128": { - "hi": 0, - "lo": 12945197295093427 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 17670653600410648 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 33014699065306441 - "lo": 381592404930367617 + "lo": 551656723650216041 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 48371072019467980 - "lo": 161075798427376185 + "lo": 831183670034669442 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 22558239156318104 - "lo": 904001500673570686 + "lo": 366134648357320527 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 33014699065306441 - "lo": 381592404930367617 + "lo": 551656723650216041 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -880,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 48371072019467980 - "lo": 161075798427376185 + "lo": 831183670034669442 } } }, @@ -1027,7 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 13088841198980486120 + "lo": 13106511852580896768 } } }, @@ -1212,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 22558239156318104 - "lo": 904001500673570686 + "lo": 366134648357320527 } } }, @@ -1359,7 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 13119457049875990195 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.95.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.95.json index 59bb74df..17120ac2 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.95.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.95.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 397815222304489818 - "lo": 478486229481350903 + "lo": 558706183500599556 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 242250977812301352 - "lo": 989431091736974590 + "lo": 192133398120073653 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 397815222304489818 - "lo": 478486229481350903 + "lo": 558706183500599556 } }, { "i128": { "hi": 0, - "lo": 242250977812301352 - "lo": 989431091736974590 + "lo": 192133398120073653 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 397815222304489818 - "lo": 478486229481350903 + "lo": 558706183500599556 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 242250977812301352 - "lo": 989431091736974590 + "lo": 192133398120073653 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 310436992950068199 - "lo": 688061881240954650 + "lo": 327637173694725336 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 397815222304489818 - "lo": 478486229481350903 + "lo": 558706183500599556 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 242250977812301352 - "lo": 989431091736974590 + "lo": 192133398120073653 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 310436992950068199 - "lo": 688061881240954650 + "lo": 327637173694725336 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 397815222304489818 - "lo": 478486229481350903 + "lo": 558706183500599556 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 242250977812301352 - "lo": 989431091736974590 + "lo": 192133398120073653 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.96.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.96.json index cace2196..9b912c1c 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.96.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.96.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 276468562356045880 - "lo": 259717973309477146 + "lo": 942314023654937183 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 431851398724040295 - "lo": 444674686861325772 + "lo": 845678265777760830 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 276468562356045880 - "lo": 259717973309477146 + "lo": 942314023654937183 } }, { "i128": { "hi": 0, - "lo": 431851398724040295 - "lo": 444674686861325772 + "lo": 845678265777760830 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 276468562356045880 - "lo": 259717973309477146 + "lo": 942314023654937183 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 431851398724040295 - "lo": 444674686861325772 + "lo": 845678265777760830 } } ] @@ -228,6 +222,65 @@ } ] ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "function_name": "swap", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "bool": false + }, + { + "i128": { + "hi": 0, + "lo": 12017171020547510 + } + }, + { + "i128": { + "hi": 2, + "lo": 13106511852580896768 + } + } + ] + } + }, + "sub_invocations": [ + { + "function": { + "contract_fn": { + "contract_address": "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL", + "function_name": "transfer", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "i128": { + "hi": 0, + "lo": 13624268803340284 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + } + ] + ], + [], [] ], "ledger": { @@ -532,8 +585,7 @@ "val": { "i128": { "hi": 0, - "lo": 345533407005289383 - "lo": 339838209231466370 + "lo": 892689469716413296 } } } @@ -582,7 +634,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +650,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +709,7 @@ "val": { "i128": { "hi": 0, - "lo": 276468562356045880 - "lo": 259717973309477146 + "lo": 955938292458277467 } } }, @@ -665,8 +720,7 @@ "val": { "i128": { "hi": 0, - "lo": 431851398724040295 - "lo": 444674686861325772 + "lo": 833661094757213320 } } }, @@ -693,13 +747,24 @@ "val": { "i128": { "hi": 0, - "lo": 345533407005289383 - "lo": 339838209231466370 + "lo": 892689469716413296 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -744,6 +809,39 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], [ { "contract_data": { @@ -788,8 +886,7 @@ "val": { "i128": { "hi": 0, - "lo": 276468562356045880 - "lo": 259717973309477146 + "lo": 955938292458277467 } } }, @@ -935,7 +1032,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 13092887583777556484 } } }, @@ -1120,8 +1217,7 @@ "val": { "i128": { "hi": 0, - "lo": 431851398724040295 - "lo": 444674686861325772 + "lo": 833661094757213320 } } }, @@ -1267,7 +1363,7 @@ "val": { "i128": { "hi": 2, - "lo": 13106511852580896768 + "lo": 13118529023601444278 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.97.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.97.json index ec9efe9a..f94fa1f7 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.97.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.97.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 906381023448444390 - "lo": 155120019766827886 + "lo": 519003789073837521 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 401407430792568170 - "lo": 628327657612073484 + "lo": 779814224253371693 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 906381023448444390 - "lo": 155120019766827886 + "lo": 519003789073837521 } }, { "i128": { "hi": 0, - "lo": 401407430792568170 - "lo": 628327657612073484 + "lo": 779814224253371693 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 906381023448444390 - "lo": 155120019766827886 + "lo": 519003789073837521 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 401407430792568170 - "lo": 628327657612073484 + "lo": 779814224253371693 } } ] @@ -228,65 +222,6 @@ } ] ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "function_name": "swap", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "bool": true - }, - { - "i128": { - "hi": 0, - "lo": 23062107341336876 - } - }, - { - "i128": { - "hi": 2, - "lo": 13106511852580896768 - } - } - ] - } - }, - "sub_invocations": [ - { - "function": { - "contract_fn": { - "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", - "function_name": "transfer", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "i128": { - "hi": 0, - "lo": 110059004459110180 - } - } - ] - } - }, - "sub_invocations": [] - } - ] - } - ] - ], - [], [] ], "ledger": { @@ -591,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 603181629313740414 - "lo": 312195769780484858 + "lo": 636181214090116900 } } } @@ -641,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -657,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 906381023448444390 - "lo": 132057912425491010 + "lo": 519003789073837521 } } }, @@ -724,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 401407430792568170 - "lo": 738386662071183664 + "lo": 779814224253371693 } } }, @@ -752,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 603181629313740414 - "lo": 312195769780484858 + "lo": 636181214090116900 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -803,39 +750,6 @@ 6311999 ] ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], [ { "contract_data": { @@ -880,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 906381023448444390 - "lo": 132057912425491010 + "lo": 519003789073837521 } } }, @@ -1027,7 +940,7 @@ "val": { "i128": { "hi": 2, - "lo": 13129573959922233644 + "lo": 13106511852580896768 } } }, @@ -1212,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 401407430792568170 - "lo": 738386662071183664 + "lo": 779814224253371693 } } }, @@ -1359,7 +1271,7 @@ "val": { "i128": { "hi": 2, - "lo": 12996452848121786588 + "lo": 13106511852580896768 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.98.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.98.json index feedeb30..09a7aa03 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.98.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.98.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 312041917894601439 - "lo": 311506344548643120 + "lo": 262483854644702100 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 814491630648341539 - "lo": 347421479489749909 + "lo": 350490663970076149 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 312041917894601439 - "lo": 311506344548643120 + "lo": 262483854644702100 } }, { "i128": { "hi": 0, - "lo": 814491630648341539 - "lo": 347421479489749909 + "lo": 350490663970076149 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 312041917894601439 - "lo": 311506344548643120 + "lo": 262483854644702100 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 814491630648341539 - "lo": 347421479489749909 + "lo": 350490663970076149 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 504138404147719965 - "lo": 328974155662011516 + "lo": 303311952444750510 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 312041917894601439 - "lo": 311506344548643120 + "lo": 262483854644702100 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 814491630648341539 - "lo": 347421479489749909 + "lo": 350490663970076149 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 504138404147719965 - "lo": 328974155662011516 + "lo": 303311952444750510 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 312041917894601439 - "lo": 311506344548643120 + "lo": 262483854644702100 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 814491630648341539 - "lo": 347421479489749909 + "lo": 350490663970076149 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.99.json b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.99.json index 172b1499..d60c36aa 100644 --- a/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.99.json +++ b/contracts/liquidity_pool/test_snapshots/fuzz_test/test_swap_invariant.99.json @@ -59,8 +59,7 @@ { "i128": { "hi": 0, - "lo": 505301472815841035 - "lo": 151249410947329831 + "lo": 710877221296491459 } } ] @@ -85,8 +84,7 @@ { "i128": { "hi": 0, - "lo": 695089030576034613 - "lo": 959977183585164915 + "lo": 641026238634841656 } } ] @@ -111,15 +109,13 @@ { "i128": { "hi": 0, - "lo": 505301472815841035 - "lo": 151249410947329831 + "lo": 710877221296491459 } }, { "i128": { "hi": 0, - "lo": 695089030576034613 - "lo": 959977183585164915 + "lo": 641026238634841656 } } ] @@ -141,8 +137,7 @@ { "i128": { "hi": 0, - "lo": 505301472815841035 - "lo": 151249410947329831 + "lo": 710877221296491459 } } ] @@ -165,8 +160,7 @@ { "i128": { "hi": 0, - "lo": 695089030576034613 - "lo": 959977183585164915 + "lo": 641026238634841656 } } ] @@ -532,8 +526,7 @@ "val": { "i128": { "hi": 0, - "lo": 592646193684060922 - "lo": 381045907391921611 + "lo": 675048851046261595 } } } @@ -582,7 +575,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -598,12 +591,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -653,8 +650,7 @@ "val": { "i128": { "hi": 0, - "lo": 505301472815841035 - "lo": 151249410947329831 + "lo": 710877221296491459 } } }, @@ -665,8 +661,7 @@ "val": { "i128": { "hi": 0, - "lo": 695089030576034613 - "lo": 959977183585164915 + "lo": 641026238634841656 } } }, @@ -693,13 +688,24 @@ "val": { "i128": { "hi": 0, - "lo": 592646193684060922 - "lo": 381045907391921611 + "lo": 675048851046261595 } } } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -788,8 +794,7 @@ "val": { "i128": { "hi": 0, - "lo": 505301472815841035 - "lo": 151249410947329831 + "lo": 710877221296491459 } } }, @@ -1120,8 +1125,7 @@ "val": { "i128": { "hi": 0, - "lo": 695089030576034613 - "lo": 959977183585164915 + "lo": 641026238634841656 } } }, diff --git a/contracts/liquidity_pool/test_snapshots/test/test_approve.1.json b/contracts/liquidity_pool/test_snapshots/test/test_approve.1.json index e1388df9..3f8b2583 100644 --- a/contracts/liquidity_pool/test_snapshots/test/test_approve.1.json +++ b/contracts/liquidity_pool/test_snapshots/test/test_approve.1.json @@ -555,7 +555,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -571,12 +571,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -670,6 +674,18 @@ } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } diff --git a/contracts/liquidity_pool/test_snapshots/test/test_approve_expired.1.json b/contracts/liquidity_pool/test_snapshots/test/test_approve_expired.1.json index af70bd42..17b27cc7 100644 --- a/contracts/liquidity_pool/test_snapshots/test/test_approve_expired.1.json +++ b/contracts/liquidity_pool/test_snapshots/test/test_approve_expired.1.json @@ -523,7 +523,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -539,12 +539,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -638,6 +642,18 @@ } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } diff --git a/contracts/liquidity_pool/test_snapshots/test/test_basic_flow.1.json b/contracts/liquidity_pool/test_snapshots/test/test_basic_flow.1.json index dbdc9309..9b11af04 100644 --- a/contracts/liquidity_pool/test_snapshots/test/test_basic_flow.1.json +++ b/contracts/liquidity_pool/test_snapshots/test/test_basic_flow.1.json @@ -527,7 +527,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -543,12 +543,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -642,6 +646,18 @@ } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } diff --git a/contracts/liquidity_pool/test_snapshots/test/test_burn.1.json b/contracts/liquidity_pool/test_snapshots/test/test_burn.1.json index 1bf7fee1..98761e48 100644 --- a/contracts/liquidity_pool/test_snapshots/test/test_burn.1.json +++ b/contracts/liquidity_pool/test_snapshots/test/test_burn.1.json @@ -421,7 +421,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -437,12 +437,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -536,6 +540,18 @@ } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } diff --git a/contracts/liquidity_pool/test_snapshots/test/test_burn_insufficient_shares.1.json b/contracts/liquidity_pool/test_snapshots/test/test_burn_insufficient_shares.1.json index 180c2ee2..5fe43bfb 100644 --- a/contracts/liquidity_pool/test_snapshots/test/test_burn_insufficient_shares.1.json +++ b/contracts/liquidity_pool/test_snapshots/test/test_burn_insufficient_shares.1.json @@ -393,7 +393,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -409,12 +409,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -508,6 +512,18 @@ } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } diff --git a/contracts/liquidity_pool/test_snapshots/test/test_deposit_when_paused.1.json b/contracts/liquidity_pool/test_snapshots/test/test_deposit_when_paused.1.json index 4d5fd961..174ea1f3 100644 --- a/contracts/liquidity_pool/test_snapshots/test/test_deposit_when_paused.1.json +++ b/contracts/liquidity_pool/test_snapshots/test/test_deposit_when_paused.1.json @@ -94,6 +94,31 @@ } ] ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "set_operation_paused", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u32": 2 + }, + { + "bool": true + } + ] + } + }, + "sub_invocations": [] + } + ] + ], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -292,7 +317,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -308,24 +333,16 @@ "key": { "vec": [ { - "symbol": "GuardPauseState" + "symbol": "PauseState" } ] }, "val": { - "u32": 2 - } - }, - { - "key": { "vec": [ { - "symbol": "GuardThreshold" + "u32": 2 } ] - }, - "val": { - "u32": 1 } }, { @@ -419,6 +436,18 @@ } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -496,6 +525,39 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 4270020994084947596 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 4270020994084947596 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], [ { "contract_data": { diff --git a/contracts/liquidity_pool/test_snapshots/test/test_deposit_zero_amount.1.json b/contracts/liquidity_pool/test_snapshots/test/test_deposit_zero_amount.1.json index 16d587fe..ca3b963f 100644 --- a/contracts/liquidity_pool/test_snapshots/test/test_deposit_zero_amount.1.json +++ b/contracts/liquidity_pool/test_snapshots/test/test_deposit_zero_amount.1.json @@ -632,7 +632,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -648,12 +648,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -747,6 +751,18 @@ } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } diff --git a/contracts/liquidity_pool/test_snapshots/test/test_double_initialization.1.json b/contracts/liquidity_pool/test_snapshots/test/test_double_initialization.1.json index 56819b41..124d1f41 100644 --- a/contracts/liquidity_pool/test_snapshots/test/test_double_initialization.1.json +++ b/contracts/liquidity_pool/test_snapshots/test/test_double_initialization.1.json @@ -217,7 +217,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -233,12 +233,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -332,6 +336,18 @@ } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } diff --git a/contracts/liquidity_pool/test_snapshots/test/test_events.1.json b/contracts/liquidity_pool/test_snapshots/test/test_events.1.json index 7dfe7c16..498a53e8 100644 --- a/contracts/liquidity_pool/test_snapshots/test/test_events.1.json +++ b/contracts/liquidity_pool/test_snapshots/test/test_events.1.json @@ -525,7 +525,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -541,12 +541,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -640,6 +644,18 @@ } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } diff --git a/contracts/liquidity_pool/test_snapshots/test/test_get_fee_default.1.json b/contracts/liquidity_pool/test_snapshots/test/test_get_fee_default.1.json index 56819b41..124d1f41 100644 --- a/contracts/liquidity_pool/test_snapshots/test/test_get_fee_default.1.json +++ b/contracts/liquidity_pool/test_snapshots/test/test_get_fee_default.1.json @@ -217,7 +217,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -233,12 +233,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -332,6 +336,18 @@ } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } diff --git a/contracts/liquidity_pool/test_snapshots/test/test_pause_and_unpause.1.json b/contracts/liquidity_pool/test_snapshots/test/test_pause_and_unpause.1.json index 2a64648d..e3e89633 100644 --- a/contracts/liquidity_pool/test_snapshots/test/test_pause_and_unpause.1.json +++ b/contracts/liquidity_pool/test_snapshots/test/test_pause_and_unpause.1.json @@ -172,6 +172,84 @@ } ] ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "set_operation_paused", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u32": 2 + }, + { + "bool": true + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "set_operation_paused", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u32": 2 + }, + { + "bool": false + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "guard_pause", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u32": 2 + }, + { + "bool": true + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [], + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -186,6 +264,31 @@ }, { "u32": 2 + }, + { + "bool": false + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "guard_pause", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { "u32": 3 }, { @@ -209,7 +312,6 @@ "contract_fn": { "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", "function_name": "guard_pause", - "function_name": "guard_unpause", "args": [ { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" @@ -577,7 +679,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -593,24 +695,16 @@ "key": { "vec": [ { - "symbol": "GuardPauseState" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 - } - }, - { - "key": { "vec": [ { - "symbol": "GuardThreshold" + "u32": 1 } ] - }, - "val": { - "u32": 1 } }, { @@ -704,6 +798,18 @@ } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -715,6 +821,39 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 115220454072064130 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 115220454072064130 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], [ { "contract_data": { @@ -748,6 +887,105 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 1194852393571756375 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 1194852393571756375 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 1301173170172112462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 1301173170172112462 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 3126073502131104533 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 3126073502131104533 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], [ { "contract_data": { @@ -919,7 +1157,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM", "key": { "ledger_key_nonce": { - "nonce": 1194852393571756375 + "nonce": 2032731177588607455 } }, "durability": "temporary" @@ -934,7 +1172,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM", "key": { "ledger_key_nonce": { - "nonce": 1194852393571756375 + "nonce": 2032731177588607455 } }, "durability": "temporary", @@ -952,7 +1190,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM", "key": { "ledger_key_nonce": { - "nonce": 2032731177588607455 + "nonce": 6517132746326325848 } }, "durability": "temporary" @@ -967,7 +1205,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM", "key": { "ledger_key_nonce": { - "nonce": 2032731177588607455 + "nonce": 6517132746326325848 } }, "durability": "temporary", diff --git a/contracts/liquidity_pool/test_snapshots/test/test_set_fee_above_max.1.json b/contracts/liquidity_pool/test_snapshots/test/test_set_fee_above_max.1.json index 56819b41..124d1f41 100644 --- a/contracts/liquidity_pool/test_snapshots/test/test_set_fee_above_max.1.json +++ b/contracts/liquidity_pool/test_snapshots/test/test_set_fee_above_max.1.json @@ -217,7 +217,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -233,12 +233,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -332,6 +336,18 @@ } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } diff --git a/contracts/liquidity_pool/test_snapshots/test/test_set_fee_valid.1.json b/contracts/liquidity_pool/test_snapshots/test/test_set_fee_valid.1.json index 1dba91c3..472fb2dc 100644 --- a/contracts/liquidity_pool/test_snapshots/test/test_set_fee_valid.1.json +++ b/contracts/liquidity_pool/test_snapshots/test/test_set_fee_valid.1.json @@ -285,7 +285,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -301,12 +301,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -334,7 +338,7 @@ "val": { "i128": { "hi": 0, - "lo": 100 + "lo": 30 } } }, @@ -400,6 +404,18 @@ } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } diff --git a/contracts/liquidity_pool/test_snapshots/test/test_swap_insufficient_liquidity.1.json b/contracts/liquidity_pool/test_snapshots/test/test_swap_insufficient_liquidity.1.json index 180c2ee2..5fe43bfb 100644 --- a/contracts/liquidity_pool/test_snapshots/test/test_swap_insufficient_liquidity.1.json +++ b/contracts/liquidity_pool/test_snapshots/test/test_swap_insufficient_liquidity.1.json @@ -393,7 +393,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -409,12 +409,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -508,6 +512,18 @@ } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } diff --git a/contracts/liquidity_pool/test_snapshots/test/test_swap_slippage_exceeded.1.json b/contracts/liquidity_pool/test_snapshots/test/test_swap_slippage_exceeded.1.json index 180c2ee2..5fe43bfb 100644 --- a/contracts/liquidity_pool/test_snapshots/test/test_swap_slippage_exceeded.1.json +++ b/contracts/liquidity_pool/test_snapshots/test/test_swap_slippage_exceeded.1.json @@ -393,7 +393,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -409,12 +409,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -508,6 +512,18 @@ } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } diff --git a/contracts/liquidity_pool/test_snapshots/test/test_swap_when_paused.1.json b/contracts/liquidity_pool/test_snapshots/test/test_swap_when_paused.1.json index 5e7a430e..4902f7ce 100644 --- a/contracts/liquidity_pool/test_snapshots/test/test_swap_when_paused.1.json +++ b/contracts/liquidity_pool/test_snapshots/test/test_swap_when_paused.1.json @@ -172,6 +172,31 @@ } ] ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "set_operation_paused", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u32": 1 + }, + { + "bool": true + } + ] + } + }, + "sub_invocations": [] + } + ] + ], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -418,7 +443,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -434,24 +459,16 @@ "key": { "vec": [ { - "symbol": "GuardPauseState" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 - } - }, - { - "key": { "vec": [ { - "symbol": "GuardThreshold" + "u32": 1 } ] - }, - "val": { - "u32": 1 } }, { @@ -545,6 +562,18 @@ } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -655,6 +684,39 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 8370022561469687789 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 8370022561469687789 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], [ { "contract_data": { diff --git a/contracts/liquidity_pool/test_snapshots/test/test_token_interface.1.json b/contracts/liquidity_pool/test_snapshots/test/test_token_interface.1.json index 0fcc5d3a..82e3c019 100644 --- a/contracts/liquidity_pool/test_snapshots/test/test_token_interface.1.json +++ b/contracts/liquidity_pool/test_snapshots/test/test_token_interface.1.json @@ -399,7 +399,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -415,12 +415,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -514,6 +518,18 @@ } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } diff --git a/contracts/liquidity_pool/test_snapshots/test/test_transfer.1.json b/contracts/liquidity_pool/test_snapshots/test/test_transfer.1.json index 30004334..40cf42d1 100644 --- a/contracts/liquidity_pool/test_snapshots/test/test_transfer.1.json +++ b/contracts/liquidity_pool/test_snapshots/test/test_transfer.1.json @@ -471,7 +471,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -487,12 +487,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -586,6 +590,18 @@ } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } diff --git a/contracts/liquidity_pool/test_snapshots/test/test_transfer_from.1.json b/contracts/liquidity_pool/test_snapshots/test/test_transfer_from.1.json index 4c141b5f..daf7bf52 100644 --- a/contracts/liquidity_pool/test_snapshots/test/test_transfer_from.1.json +++ b/contracts/liquidity_pool/test_snapshots/test/test_transfer_from.1.json @@ -597,7 +597,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -613,12 +613,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -712,6 +716,18 @@ } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } diff --git a/contracts/liquidity_pool/test_snapshots/test/test_transfer_from_insufficient_allowance.1.json b/contracts/liquidity_pool/test_snapshots/test/test_transfer_from_insufficient_allowance.1.json index aceebf1b..9c89c8d0 100644 --- a/contracts/liquidity_pool/test_snapshots/test/test_transfer_from_insufficient_allowance.1.json +++ b/contracts/liquidity_pool/test_snapshots/test/test_transfer_from_insufficient_allowance.1.json @@ -523,7 +523,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -539,12 +539,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -638,6 +642,18 @@ } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } diff --git a/contracts/liquidity_pool/test_snapshots/test/test_transfer_from_insufficient_balance.1.json b/contracts/liquidity_pool/test_snapshots/test/test_transfer_from_insufficient_balance.1.json index 72cabf77..315dca7d 100644 --- a/contracts/liquidity_pool/test_snapshots/test/test_transfer_from_insufficient_balance.1.json +++ b/contracts/liquidity_pool/test_snapshots/test/test_transfer_from_insufficient_balance.1.json @@ -523,7 +523,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -539,12 +539,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -638,6 +642,18 @@ } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } diff --git a/contracts/liquidity_pool/test_snapshots/test/test_transfer_insufficient_balance.1.json b/contracts/liquidity_pool/test_snapshots/test/test_transfer_insufficient_balance.1.json index 0ec07f8f..bcfce371 100644 --- a/contracts/liquidity_pool/test_snapshots/test/test_transfer_insufficient_balance.1.json +++ b/contracts/liquidity_pool/test_snapshots/test/test_transfer_insufficient_balance.1.json @@ -393,7 +393,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -409,12 +409,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -508,6 +512,18 @@ } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } diff --git a/contracts/liquidity_pool/test_snapshots/test/test_withdraw_insufficient_shares.1.json b/contracts/liquidity_pool/test_snapshots/test/test_withdraw_insufficient_shares.1.json index 180c2ee2..5fe43bfb 100644 --- a/contracts/liquidity_pool/test_snapshots/test/test_withdraw_insufficient_shares.1.json +++ b/contracts/liquidity_pool/test_snapshots/test/test_withdraw_insufficient_shares.1.json @@ -393,7 +393,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -409,12 +409,16 @@ "key": { "vec": [ { - "symbol": "GuardThreshold" + "symbol": "PauseState" } ] }, "val": { - "u32": 1 + "vec": [ + { + "u32": 0 + } + ] } }, { @@ -508,6 +512,18 @@ } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } diff --git a/contracts/liquidity_pool/test_snapshots/test/test_withdraw_when_paused.1.json b/contracts/liquidity_pool/test_snapshots/test/test_withdraw_when_paused.1.json index e8f917a5..f9327fa6 100644 --- a/contracts/liquidity_pool/test_snapshots/test/test_withdraw_when_paused.1.json +++ b/contracts/liquidity_pool/test_snapshots/test/test_withdraw_when_paused.1.json @@ -172,6 +172,31 @@ } ] ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "set_operation_paused", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u32": 4 + }, + { + "bool": true + } + ] + } + }, + "sub_invocations": [] + } + ] + ], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -418,7 +443,7 @@ "key": { "vec": [ { - "symbol": "GuardAdmins" + "symbol": "Admins" } ] }, @@ -434,24 +459,16 @@ "key": { "vec": [ { - "symbol": "GuardPauseState" + "symbol": "PauseState" } ] }, "val": { - "u32": 4 - } - }, - { - "key": { "vec": [ { - "symbol": "GuardThreshold" + "u32": 4 } ] - }, - "val": { - "u32": 1 } }, { @@ -545,6 +562,18 @@ } ] } + }, + { + "key": { + "vec": [ + { + "symbol": "SignatureThreshold" + } + ] + }, + "val": { + "u32": 1 + } } ] } @@ -655,6 +684,39 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 8370022561469687789 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 8370022561469687789 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], [ { "contract_data": { From eb7b946d191d4ecca859e5f89b98bcaa3577058e Mon Sep 17 00:00:00 2001 From: Gift Amadi <120387225+giftexceed@users.noreply.github.com> Date: Tue, 28 Jul 2026 14:52:32 +0000 Subject: [PATCH 3/3] feature(cpu-heavy-guard): return contract errors instead of host budget panics MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The benchmark contract guarded its inputs with bare `panic!("...")` calls, so an oversized argument reached the caller as an opaque `UnreachableCodeReached` VM trap naming neither the offending argument nor the limit it broke. Replace the panics with a `#[contracterror] enum Error` and `Result` returns so each guard reports a distinct, decodable code. The caps themselves were also wrong. Measured against the release WASM build with the default network budget (100M CPU instructions / 40MB memory), `bubble_sort` is quadratic in host `Vec::get`/`Vec::set` calls and exceeds the budget outright at 150 elements (136.8M CPU) — so the advertised cap of 300 (573.4M CPU) was never reachable and hitting it produced exactly the budget panic the guard was supposed to prevent. Lower `MAX_SORT` to 100, verified at 60.1M CPU / 24% memory. The remaining caps measure well inside budget and are unchanged; all figures are recorded alongside the constants. Also: - Guard `nested_loop_burn` overflow: `saturating_mul` already prevented a caller from wrapping `outer * inner` past the cap, now covered by a test. - Fix `bubble_sort` underflow on `n - i - 1` for empty/single-element lists. - Expose the caps as public constants and document them in a new README. - Add cpu_heavy to the workspace so it builds and is covered by CI; it was orphaned by the previous workspace repair and would not compile at all. Tests cover each guard's boundary on both sides, the error discriminants, and that the worst-case legal call stays inside the default budget. --- Cargo.lock | 7 + Cargo.toml | 1 + contracts/cpu_heavy/Cargo.lock | 1575 ----------------- contracts/cpu_heavy/Cargo.toml | 2 +- contracts/cpu_heavy/README.md | 93 + contracts/cpu_heavy/src/lib.rs | 140 +- contracts/cpu_heavy/src/test.rs | 222 ++- .../test/test_safety_limits.1.json | 76 - 8 files changed, 410 insertions(+), 1706 deletions(-) delete mode 100644 contracts/cpu_heavy/Cargo.lock create mode 100644 contracts/cpu_heavy/README.md delete mode 100644 contracts/cpu_heavy/test_snapshots/test/test_safety_limits.1.json diff --git a/Cargo.lock b/Cargo.lock index 25496e52..b6e662f9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -277,6 +277,13 @@ version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" +[[package]] +name = "cpu_heavy" +version = "0.1.0" +dependencies = [ + "soroban-sdk", +] + [[package]] name = "cpufeatures" version = "0.2.17" diff --git a/Cargo.toml b/Cargo.toml index a209a6fb..08b44729 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,7 @@ [workspace] resolver = "2" members = [ + "contracts/cpu_heavy", "contracts/error_codes", "contracts/liquidity_pool", "contracts/math", diff --git a/contracts/cpu_heavy/Cargo.lock b/contracts/cpu_heavy/Cargo.lock deleted file mode 100644 index fbda754d..00000000 --- a/contracts/cpu_heavy/Cargo.lock +++ /dev/null @@ -1,1575 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 4 - -[[package]] -name = "addr2line" -version = "0.25.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b5d307320b3181d6d7954e663bd7c774a838b8220fe0593c86d9fb09f498b4b" -dependencies = [ - "gimli", -] - -[[package]] -name = "adler2" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" - -[[package]] -name = "android_system_properties" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" -dependencies = [ - "libc", -] - -[[package]] -name = "arbitrary" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110" -dependencies = [ - "derive_arbitrary", -] - -[[package]] -name = "autocfg" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" - -[[package]] -name = "backtrace" -version = "0.3.76" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb531853791a215d7c62a30daf0dde835f381ab5de4589cfe7c649d2cbe92bd6" -dependencies = [ - "addr2line", - "cfg-if", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", - "windows-link", -] - -[[package]] -name = "base16ct" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" - -[[package]] -name = "base32" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23ce669cd6c8588f79e15cf450314f9638f967fc5770ff1c7c1deb0925ea7cfa" - -[[package]] -name = "base64" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" - -[[package]] -name = "base64" -version = "0.22.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" - -[[package]] -name = "base64ct" -version = "1.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2af50177e190e07a26ab74f8b1efbfe2ef87da2116221318cb1c2e82baf7de06" - -[[package]] -name = "block-buffer" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" -dependencies = [ - "generic-array", -] - -[[package]] -name = "bumpalo" -version = "3.19.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510" - -[[package]] -name = "bytes-lit" -version = "0.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0adabf37211a5276e46335feabcbb1530c95eb3fdf85f324c7db942770aa025d" -dependencies = [ - "num-bigint", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "cc" -version = "1.2.55" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47b26a0954ae34af09b50f0de26458fa95369a0d478d8236d3f93082b219bd29" -dependencies = [ - "find-msvc-tools", - "shlex", -] - -[[package]] -name = "cfg-if" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" - -[[package]] -name = "chrono" -version = "0.4.43" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fac4744fb15ae8337dc853fee7fb3f4e48c0fbaa23d0afe49c447b4fab126118" -dependencies = [ - "iana-time-zone", - "num-traits", - "serde", - "windows-link", -] - -[[package]] -name = "const-oid" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" - -[[package]] -name = "core-foundation-sys" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" - -[[package]] -name = "cpu_heavy" -version = "0.1.0" -dependencies = [ - "soroban-sdk", -] - -[[package]] -name = "cpufeatures" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" -dependencies = [ - "libc", -] - -[[package]] -name = "crate-git-revision" -version = "0.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c521bf1f43d31ed2f73441775ed31935d77901cb3451e44b38a1c1612fcbaf98" -dependencies = [ - "serde", - "serde_derive", - "serde_json", -] - -[[package]] -name = "crypto-bigint" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" -dependencies = [ - "generic-array", - "rand_core", - "subtle", - "zeroize", -] - -[[package]] -name = "crypto-common" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" -dependencies = [ - "generic-array", - "typenum", -] - -[[package]] -name = "ctor" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a2785755761f3ddc1492979ce1e48d2c00d09311c39e4466429188f3dd6501" -dependencies = [ - "quote", - "syn", -] - -[[package]] -name = "curve25519-dalek" -version = "4.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" -dependencies = [ - "cfg-if", - "cpufeatures", - "curve25519-dalek-derive", - "digest", - "fiat-crypto", - "rustc_version", - "subtle", - "zeroize", -] - -[[package]] -name = "curve25519-dalek-derive" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "darling" -version = "0.20.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" -dependencies = [ - "darling_core 0.20.11", - "darling_macro 0.20.11", -] - -[[package]] -name = "darling" -version = "0.21.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" -dependencies = [ - "darling_core 0.21.3", - "darling_macro 0.21.3", -] - -[[package]] -name = "darling_core" -version = "0.20.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim", - "syn", -] - -[[package]] -name = "darling_core" -version = "0.21.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim", - "syn", -] - -[[package]] -name = "darling_macro" -version = "0.20.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" -dependencies = [ - "darling_core 0.20.11", - "quote", - "syn", -] - -[[package]] -name = "darling_macro" -version = "0.21.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" -dependencies = [ - "darling_core 0.21.3", - "quote", - "syn", -] - -[[package]] -name = "der" -version = "0.7.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" -dependencies = [ - "const-oid", - "zeroize", -] - -[[package]] -name = "deranged" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ececcb659e7ba858fb4f10388c250a7252eb0a27373f1a72b8748afdd248e587" -dependencies = [ - "powerfmt", - "serde_core", -] - -[[package]] -name = "derive_arbitrary" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "digest" -version = "0.10.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" -dependencies = [ - "block-buffer", - "const-oid", - "crypto-common", - "subtle", -] - -[[package]] -name = "downcast-rs" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" - -[[package]] -name = "dyn-clone" -version = "1.0.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" - -[[package]] -name = "ecdsa" -version = "0.16.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" -dependencies = [ - "der", - "digest", - "elliptic-curve", - "rfc6979", - "signature", -] - -[[package]] -name = "ed25519" -version = "2.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" -dependencies = [ - "pkcs8", - "signature", -] - -[[package]] -name = "ed25519-dalek" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70e796c081cee67dc755e1a36a0a172b897fab85fc3f6bc48307991f64e4eca9" -dependencies = [ - "curve25519-dalek", - "ed25519", - "rand_core", - "serde", - "sha2", - "subtle", - "zeroize", -] - -[[package]] -name = "either" -version = "1.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" - -[[package]] -name = "elliptic-curve" -version = "0.13.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" -dependencies = [ - "base16ct", - "crypto-bigint", - "digest", - "ff", - "generic-array", - "group", - "rand_core", - "sec1", - "subtle", - "zeroize", -] - -[[package]] -name = "equivalent" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" - -[[package]] -name = "escape-bytes" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bfcf67fea2815c2fc3b90873fae90957be12ff417335dfadc7f52927feb03b2" - -[[package]] -name = "ethnum" -version = "1.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca81e6b4777c89fd810c25a4be2b1bd93ea034fbe58e6a75216a34c6b82c539b" - -[[package]] -name = "ff" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" -dependencies = [ - "rand_core", - "subtle", -] - -[[package]] -name = "fiat-crypto" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" - -[[package]] -name = "find-msvc-tools" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "generic-array" -version = "0.14.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bb6743198531e02858aeaea5398fcc883e71851fcbcb5a2f773e2fb6cb1edf2" -dependencies = [ - "typenum", - "version_check", - "zeroize", -] - -[[package]] -name = "getrandom" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" -dependencies = [ - "cfg-if", - "js-sys", - "libc", - "wasi", - "wasm-bindgen", -] - -[[package]] -name = "gimli" -version = "0.32.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e629b9b98ef3dd8afe6ca2bd0f89306cec16d43d907889945bc5d6687f2f13c7" - -[[package]] -name = "group" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" -dependencies = [ - "ff", - "rand_core", - "subtle", -] - -[[package]] -name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" - -[[package]] -name = "hashbrown" -version = "0.16.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" - -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" -dependencies = [ - "serde", -] - -[[package]] -name = "hex-literal" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" - -[[package]] -name = "hmac" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" -dependencies = [ - "digest", -] - -[[package]] -name = "iana-time-zone" -version = "0.1.65" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470" -dependencies = [ - "android_system_properties", - "core-foundation-sys", - "iana-time-zone-haiku", - "js-sys", - "log", - "wasm-bindgen", - "windows-core", -] - -[[package]] -name = "iana-time-zone-haiku" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" -dependencies = [ - "cc", -] - -[[package]] -name = "ident_case" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" - -[[package]] -name = "indexmap" -version = "1.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" -dependencies = [ - "autocfg", - "hashbrown 0.12.3", - "serde", -] - -[[package]] -name = "indexmap" -version = "2.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" -dependencies = [ - "equivalent", - "hashbrown 0.16.1", - "serde", - "serde_core", -] - -[[package]] -name = "indexmap-nostd" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e04e2fd2b8188ea827b32ef11de88377086d690286ab35747ef7f9bf3ccb590" - -[[package]] -name = "itertools" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" -dependencies = [ - "either", -] - -[[package]] -name = "itoa" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" - -[[package]] -name = "js-sys" -version = "0.3.85" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c942ebf8e95485ca0d52d97da7c5a2c387d0e7f0ba4c35e93bfcaee045955b3" -dependencies = [ - "once_cell", - "wasm-bindgen", -] - -[[package]] -name = "k256" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" -dependencies = [ - "cfg-if", - "ecdsa", - "elliptic-curve", - "sha2", -] - -[[package]] -name = "keccak" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" -dependencies = [ - "cpufeatures", -] - -[[package]] -name = "libc" -version = "0.2.180" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcc35a38544a891a5f7c865aca548a982ccb3b8650a5b06d0fd33a10283c56fc" - -[[package]] -name = "libm" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" - -[[package]] -name = "log" -version = "0.4.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" - -[[package]] -name = "memchr" -version = "2.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" - -[[package]] -name = "miniz_oxide" -version = "0.8.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" -dependencies = [ - "adler2", -] - -[[package]] -name = "num-bigint" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" -dependencies = [ - "num-integer", - "num-traits", -] - -[[package]] -name = "num-conv" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf97ec579c3c42f953ef76dbf8d55ac91fb219dde70e49aa4a6b7d74e9919050" - -[[package]] -name = "num-derive" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "num-integer" -version = "0.1.46" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" -dependencies = [ - "num-traits", -] - -[[package]] -name = "num-traits" -version = "0.2.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" -dependencies = [ - "autocfg", -] - -[[package]] -name = "object" -version = "0.37.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff76201f031d8863c38aa7f905eca4f53abbfa15f609db4277d44cd8938f33fe" -dependencies = [ - "memchr", -] - -[[package]] -name = "once_cell" -version = "1.21.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" - -[[package]] -name = "p256" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" -dependencies = [ - "ecdsa", - "elliptic-curve", - "primeorder", - "sha2", -] - -[[package]] -name = "paste" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" - -[[package]] -name = "pkcs8" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" -dependencies = [ - "der", - "spki", -] - -[[package]] -name = "powerfmt" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" - -[[package]] -name = "ppv-lite86" -version = "0.2.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" -dependencies = [ - "zerocopy", -] - -[[package]] -name = "prettyplease" -version = "0.2.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" -dependencies = [ - "proc-macro2", - "syn", -] - -[[package]] -name = "primeorder" -version = "0.13.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6" -dependencies = [ - "elliptic-curve", -] - -[[package]] -name = "proc-macro2" -version = "1.0.106" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quote" -version = "1.0.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha", - "rand_core", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core", -] - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom", -] - -[[package]] -name = "ref-cast" -version = "1.0.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d" -dependencies = [ - "ref-cast-impl", -] - -[[package]] -name = "ref-cast-impl" -version = "1.0.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "rfc6979" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" -dependencies = [ - "hmac", - "subtle", -] - -[[package]] -name = "rustc-demangle" -version = "0.1.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b50b8869d9fc858ce7266cce0194bd74df58b9d0e3f6df3a9fc8eb470d95c09d" - -[[package]] -name = "rustc_version" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" -dependencies = [ - "semver", -] - -[[package]] -name = "rustversion" -version = "1.0.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" - -[[package]] -name = "schemars" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd191f9397d57d581cddd31014772520aa448f65ef991055d7f61582c65165f" -dependencies = [ - "dyn-clone", - "ref-cast", - "serde", - "serde_json", -] - -[[package]] -name = "schemars" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54e910108742c57a770f492731f99be216a52fadd361b06c8fb59d74ccc267d2" -dependencies = [ - "dyn-clone", - "ref-cast", - "serde", - "serde_json", -] - -[[package]] -name = "sec1" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" -dependencies = [ - "base16ct", - "der", - "generic-array", - "subtle", - "zeroize", -] - -[[package]] -name = "semver" -version = "1.0.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" - -[[package]] -name = "serde" -version = "1.0.228" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" -dependencies = [ - "serde_core", - "serde_derive", -] - -[[package]] -name = "serde_core" -version = "1.0.228" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.228" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "serde_json" -version = "1.0.149" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" -dependencies = [ - "itoa", - "memchr", - "serde", - "serde_core", - "zmij", -] - -[[package]] -name = "serde_with" -version = "3.16.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fa237f2807440d238e0364a218270b98f767a00d3dada77b1c53ae88940e2e7" -dependencies = [ - "base64 0.22.1", - "chrono", - "hex", - "indexmap 1.9.3", - "indexmap 2.13.0", - "schemars 0.9.0", - "schemars 1.2.0", - "serde_core", - "serde_json", - "serde_with_macros", - "time", -] - -[[package]] -name = "serde_with_macros" -version = "3.16.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52a8e3ca0ca629121f70ab50f95249e5a6f925cc0f6ffe8256c45b728875706c" -dependencies = [ - "darling 0.21.3", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "sha2" -version = "0.10.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] - -[[package]] -name = "sha3" -version = "0.10.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" -dependencies = [ - "digest", - "keccak", -] - -[[package]] -name = "shlex" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" - -[[package]] -name = "signature" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" -dependencies = [ - "digest", - "rand_core", -] - -[[package]] -name = "smallvec" -version = "1.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" - -[[package]] -name = "soroban-builtin-sdk-macros" -version = "21.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f57a68ef8777e28e274de0f3a88ad9a5a41d9a2eb461b4dd800b086f0e83b80" -dependencies = [ - "itertools", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "soroban-env-common" -version = "21.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fd1c89463835fe6da996318156d39f424b4f167c725ec692e5a7a2d4e694b3d" -dependencies = [ - "arbitrary", - "crate-git-revision", - "ethnum", - "num-derive", - "num-traits", - "serde", - "soroban-env-macros", - "soroban-wasmi", - "static_assertions", - "stellar-xdr", - "wasmparser", -] - -[[package]] -name = "soroban-env-guest" -version = "21.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bfb2536811045d5cd0c656a324cbe9ce4467eb734c7946b74410d90dea5d0ce" -dependencies = [ - "soroban-env-common", - "static_assertions", -] - -[[package]] -name = "soroban-env-host" -version = "21.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b7a32c28f281c423189f1298960194f0e0fc4eeb72378028171e556d8cd6160" -dependencies = [ - "backtrace", - "curve25519-dalek", - "ecdsa", - "ed25519-dalek", - "elliptic-curve", - "generic-array", - "getrandom", - "hex-literal", - "hmac", - "k256", - "num-derive", - "num-integer", - "num-traits", - "p256", - "rand", - "rand_chacha", - "sec1", - "sha2", - "sha3", - "soroban-builtin-sdk-macros", - "soroban-env-common", - "soroban-wasmi", - "static_assertions", - "stellar-strkey", - "wasmparser", -] - -[[package]] -name = "soroban-env-macros" -version = "21.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "242926fe5e0d922f12d3796cd7cd02dd824e5ef1caa088f45fce20b618309f64" -dependencies = [ - "itertools", - "proc-macro2", - "quote", - "serde", - "serde_json", - "stellar-xdr", - "syn", -] - -[[package]] -name = "soroban-ledger-snapshot" -version = "21.7.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6edf92749fd8399b417192d301c11f710b9cdce15789a3d157785ea971576fa" -dependencies = [ - "serde", - "serde_json", - "serde_with", - "soroban-env-common", - "soroban-env-host", - "thiserror", -] - -[[package]] -name = "soroban-sdk" -version = "21.7.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dcdf04484af7cc731a7a48ad1d9f5f940370edeea84734434ceaf398a6b862e" -dependencies = [ - "arbitrary", - "bytes-lit", - "ctor", - "derive_arbitrary", - "ed25519-dalek", - "rand", - "rustc_version", - "serde", - "serde_json", - "soroban-env-guest", - "soroban-env-host", - "soroban-ledger-snapshot", - "soroban-sdk-macros", - "stellar-strkey", -] - -[[package]] -name = "soroban-sdk-macros" -version = "21.7.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0974e413731aeff2443f2305b344578b3f1ffd18335a7ba0f0b5d2eb4e94c9ce" -dependencies = [ - "crate-git-revision", - "darling 0.20.11", - "itertools", - "proc-macro2", - "quote", - "rustc_version", - "sha2", - "soroban-env-common", - "soroban-spec", - "soroban-spec-rust", - "stellar-xdr", - "syn", -] - -[[package]] -name = "soroban-spec" -version = "21.7.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2c70b20e68cae3ef700b8fa3ae29db1c6a294b311fba66918f90cb8f9fd0a1a" -dependencies = [ - "base64 0.13.1", - "stellar-xdr", - "thiserror", - "wasmparser", -] - -[[package]] -name = "soroban-spec-rust" -version = "21.7.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2dafbde981b141b191c6c036abc86097070ddd6eaaa33b273701449501e43d3" -dependencies = [ - "prettyplease", - "proc-macro2", - "quote", - "sha2", - "soroban-spec", - "stellar-xdr", - "syn", - "thiserror", -] - -[[package]] -name = "soroban-wasmi" -version = "0.31.1-soroban.20.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "710403de32d0e0c35375518cb995d4fc056d0d48966f2e56ea471b8cb8fc9719" -dependencies = [ - "smallvec", - "spin", - "wasmi_arena", - "wasmi_core", - "wasmparser-nostd", -] - -[[package]] -name = "spin" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" - -[[package]] -name = "spki" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" -dependencies = [ - "base64ct", - "der", -] - -[[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - -[[package]] -name = "stellar-strkey" -version = "0.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12d2bf45e114117ea91d820a846fd1afbe3ba7d717988fee094ce8227a3bf8bd" -dependencies = [ - "base32", - "crate-git-revision", - "thiserror", -] - -[[package]] -name = "stellar-xdr" -version = "21.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2675a71212ed39a806e415b0dbf4702879ff288ec7f5ee996dda42a135512b50" -dependencies = [ - "arbitrary", - "base64 0.13.1", - "crate-git-revision", - "escape-bytes", - "hex", - "serde", - "serde_with", - "stellar-strkey", -] - -[[package]] -name = "strsim" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" - -[[package]] -name = "subtle" -version = "2.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" - -[[package]] -name = "syn" -version = "2.0.114" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4d107df263a3013ef9b1879b0df87d706ff80f65a86ea879bd9c31f9b307c2a" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "thiserror" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" -dependencies = [ - "thiserror-impl", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "time" -version = "0.3.46" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9da98b7d9b7dad93488a84b8248efc35352b0b2657397d4167e7ad67e5d535e5" -dependencies = [ - "deranged", - "itoa", - "num-conv", - "powerfmt", - "serde_core", - "time-core", - "time-macros", -] - -[[package]] -name = "time-core" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca" - -[[package]] -name = "time-macros" -version = "0.2.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78cc610bac2dcee56805c99642447d4c5dbde4d01f752ffea0199aee1f601dc4" -dependencies = [ - "num-conv", - "time-core", -] - -[[package]] -name = "typenum" -version = "1.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" - -[[package]] -name = "unicode-ident" -version = "1.0.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" - -[[package]] -name = "version_check" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" - -[[package]] -name = "wasi" -version = "0.11.1+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" - -[[package]] -name = "wasm-bindgen" -version = "0.2.108" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64024a30ec1e37399cf85a7ffefebdb72205ca1c972291c51512360d90bd8566" -dependencies = [ - "cfg-if", - "once_cell", - "rustversion", - "wasm-bindgen-macro", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.108" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "008b239d9c740232e71bd39e8ef6429d27097518b6b30bdf9086833bd5b6d608" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.108" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5256bae2d58f54820e6490f9839c49780dff84c65aeab9e772f15d5f0e913a55" -dependencies = [ - "bumpalo", - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.108" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f01b580c9ac74c8d8f0c0e4afb04eeef2acf145458e52c03845ee9cd23e3d12" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "wasmi_arena" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "104a7f73be44570cac297b3035d76b169d6599637631cf37a1703326a0727073" - -[[package]] -name = "wasmi_core" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcf1a7db34bff95b85c261002720c00c3a6168256dcb93041d3fa2054d19856a" -dependencies = [ - "downcast-rs", - "libm", - "num-traits", - "paste", -] - -[[package]] -name = "wasmparser" -version = "0.116.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a58e28b80dd8340cb07b8242ae654756161f6fc8d0038123d679b7b99964fa50" -dependencies = [ - "indexmap 2.13.0", - "semver", -] - -[[package]] -name = "wasmparser-nostd" -version = "0.100.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5a015fe95f3504a94bb1462c717aae75253e39b9dd6c3fb1062c934535c64aa" -dependencies = [ - "indexmap-nostd", -] - -[[package]] -name = "windows-core" -version = "0.62.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" -dependencies = [ - "windows-implement", - "windows-interface", - "windows-link", - "windows-result", - "windows-strings", -] - -[[package]] -name = "windows-implement" -version = "0.60.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "windows-interface" -version = "0.59.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "windows-link" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" - -[[package]] -name = "windows-result" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" -dependencies = [ - "windows-link", -] - -[[package]] -name = "windows-strings" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" -dependencies = [ - "windows-link", -] - -[[package]] -name = "zerocopy" -version = "0.8.36" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dafd85c832c1b68bbb4ec0c72c7f6f4fc5179627d2bc7c26b30e4c0cc11e76cc" -dependencies = [ - "zerocopy-derive", -] - -[[package]] -name = "zerocopy-derive" -version = "0.8.36" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cb7e4e8436d9db52fbd6625dbf2f45243ab84994a72882ec8227b99e72b439a" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "zeroize" -version = "1.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" - -[[package]] -name = "zmij" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02aae0f83f69aafc94776e879363e9771d7ecbffe2c7fbb6c14c5e00dfe88439" diff --git a/contracts/cpu_heavy/Cargo.toml b/contracts/cpu_heavy/Cargo.toml index 5ddca619..d496164f 100644 --- a/contracts/cpu_heavy/Cargo.toml +++ b/contracts/cpu_heavy/Cargo.toml @@ -4,7 +4,7 @@ version = "0.1.0" edition = "2021" [lib] -crate-type = ["cdylib"] +crate-type = ["cdylib", "rlib"] [dependencies] soroban-sdk = "22.0.0" diff --git a/contracts/cpu_heavy/README.md b/contracts/cpu_heavy/README.md new file mode 100644 index 00000000..92f45fbf --- /dev/null +++ b/contracts/cpu_heavy/README.md @@ -0,0 +1,93 @@ +# CPU Heavy Contract + +A benchmark contract whose entry points deliberately burn CPU, used to observe +how SoroScope reports invocation cost. Every entry point is a pure computation: +there is no state, no authorisation, and no storage access. + +## Hard caps + +Each entry point checks its arguments against a hard cap *before* doing any +work. Without that check an oversized argument runs until the host aborts the +invocation with `Error(Budget, ExceededLimit)`, which reaches the caller as an +opaque `UnreachableCodeReached` VM trap that names neither the offending +argument nor the limit it broke. The guards turn that into a contract error +code instead. + +| Constant | Value | Applies to | +| -------------------- | --------- | ------------------------------------- | +| `MAX_FIB` | `50_000` | `fibonacci_iterative(n)` | +| `MAX_SORT` | `100` | `bubble_sort(values)` length | +| `MAX_PRIME` | `20_000` | `count_primes(limit)` | +| `MAX_LOOP_OPS` | `500_000` | `nested_loop_burn(outer * inner)` | +| `MAX_COMBINED_FIB` | `10_000` | `combined_benchmark(fib_n, ..)` | +| `MAX_COMBINED_SORT` | `50` | `combined_benchmark(.., sort_size, ..)` | +| `MAX_COMBINED_PRIME` | `5_000` | `combined_benchmark(.., prime_limit)` | + +The caps are chosen so the most expensive legal call still fits in the default +network budget of 100,000,000 CPU instructions and 41,943,040 memory bytes. +Measured against the release WASM build with every argument at its cap: + +| Call | CPU | Memory | +| --------------------------------------- | ---------- | ------- | +| `fibonacci_iterative(50_000)` | 1.6M (1%) | 3% | +| `count_primes(20_000)` | 22.7M (22%)| 3% | +| `bubble_sort([100 elements])` | 60.1M (60%)| 24% | +| `nested_loop_burn(500_000, 1)` | 0.8M (0%) | 3% | +| `combined_benchmark(10_000, 50, 5_000)` | 19.2M (19%)| 6% | + +`bubble_sort` is the binding constraint: it is quadratic in *host* calls +(`Vec::get`/`Vec::set`), so its cost grows far faster than the other workloads. +At 150 elements it costs 136.8M CPU and exceeds the budget outright, which is +why the cap sits at 100. + +`nested_loop_burn` guards on the `outer * inner` product using +`saturating_mul`, so a caller cannot overflow the multiplication to wrap past +the cap. + +## API + +`fibonacci_iterative(n: u32) -> Result` + +Iterative Fibonacci, wrapping on `u64` overflow. Returns +`FibonacciInputTooLarge` if `n > MAX_FIB`. + +`bubble_sort(values: Vec) -> Result, Error>` + +Bubble-sorts the list in place. Returns `SortInputTooLarge` if the list is +longer than `MAX_SORT`. + +`count_primes(limit: u32) -> Result` + +Counts primes in `2..=limit` by trial division. Returns `PrimeLimitTooLarge` if +`limit > MAX_PRIME`. + +`nested_loop_burn(outer: u32, inner: u32) -> Result` + +Burns `outer * inner` iterations of trivial arithmetic. Returns +`LoopOpsTooLarge` if the product exceeds `MAX_LOOP_OPS`. + +`combined_benchmark(fib_n: u32, sort_size: u32, prime_limit: u32) -> Result, Error>` + +Runs all three workloads in one invocation and returns +`[fibonacci, prime_count]`. Returns `CombinedInputTooLarge` if any argument +exceeds its sub-cap. + +## Errors + +| Code | Variant | +| ---- | ------------------------ | +| 1 | `FibonacciInputTooLarge` | +| 2 | `SortInputTooLarge` | +| 3 | `PrimeLimitTooLarge` | +| 4 | `LoopOpsTooLarge` | +| 5 | `CombinedInputTooLarge` | + +The discriminants are part of the contract's public surface — the SoroScope UI +decodes errors by number — so new variants must be appended rather than +inserted. + +## Tests + +```sh +cargo test -p cpu_heavy +``` diff --git a/contracts/cpu_heavy/src/lib.rs b/contracts/cpu_heavy/src/lib.rs index 7a947465..76ebcd31 100644 --- a/contracts/cpu_heavy/src/lib.rs +++ b/contracts/cpu_heavy/src/lib.rs @@ -1,20 +1,75 @@ #![no_std] -use soroban_sdk::{contract, contractimpl, Env, Vec}; +use soroban_sdk::{contract, contracterror, contractimpl, Env, Vec}; + +#[cfg(test)] +mod test; + +/// Errors returned by the `CpuHeavyContract` benchmark entry points. +/// +/// Every entry point validates its inputs against a hard cap *before* doing any +/// work, so an oversized request fails with one of these codes instead of +/// running until the host aborts the invocation with +/// `Error(Budget, ExceededLimit)`. A budget abort surfaces to the caller as an +/// opaque `UnreachableCodeReached` VM trap and says nothing about which +/// argument was unreasonable; these codes do. +#[contracterror] +#[derive(Copy, Clone, Debug, Eq, PartialEq, PartialOrd, Ord)] +#[repr(u32)] +pub enum Error { + /// `n` exceeded [`MAX_FIB`]. + FibonacciInputTooLarge = 1, + /// The input list was longer than [`MAX_SORT`]. + SortInputTooLarge = 2, + /// `limit` exceeded [`MAX_PRIME`]. + PrimeLimitTooLarge = 3, + /// `outer * inner` exceeded [`MAX_LOOP_OPS`]. + LoopOpsTooLarge = 4, + /// One of the combined-benchmark arguments exceeded its sub-cap. + CombinedInputTooLarge = 5, +} + +// Hard caps. These sit below the point where a benchmark would exhaust the +// default network budget (100_000_000 CPU instructions / 41_943_040 memory +// bytes), measured against the release WASM build: +// +// fibonacci_iterative(50_000) 1.6M CPU (pure arithmetic loop) +// bubble_sort(100) 60.0M CPU / 10.2MB (host Vec get/set) +// count_primes(20_000) 22.7M CPU +// +// `bubble_sort` is quadratic in *host* calls, so its cap is by far the +// tightest: at 150 elements it costs 136.8M CPU and blows the budget outright, +// which is why the previous cap of 300 was never reachable in practice. + +/// Largest `n` accepted by [`CpuHeavyContract::fibonacci_iterative`]. +pub const MAX_FIB: u32 = 50_000; +/// Longest list accepted by [`CpuHeavyContract::bubble_sort`]. +pub const MAX_SORT: u32 = 100; +/// Largest `limit` accepted by [`CpuHeavyContract::count_primes`]. +pub const MAX_PRIME: u32 = 20_000; +/// Largest `outer * inner` product accepted by +/// [`CpuHeavyContract::nested_loop_burn`]. +pub const MAX_LOOP_OPS: u32 = 500_000; + +// Sub-caps for `combined_benchmark`, which pays for all three workloads in one +// invocation and so has to stay well inside each individual cap. +/// Largest `fib_n` accepted by [`CpuHeavyContract::combined_benchmark`]. +pub const MAX_COMBINED_FIB: u32 = 10_000; +/// Largest `sort_size` accepted by [`CpuHeavyContract::combined_benchmark`]. +pub const MAX_COMBINED_SORT: u32 = 50; +/// Largest `prime_limit` accepted by [`CpuHeavyContract::combined_benchmark`]. +pub const MAX_COMBINED_PRIME: u32 = 5_000; #[contract] pub struct CpuHeavyContract; -// Constants to keep execution deterministic and bounded -const MAX_FIB: u32 = 50_000; -const MAX_SORT: u32 = 300; -const MAX_PRIME: u32 = 20_000; -const MAX_LOOP_OPS: u32 = 500_000; - #[contractimpl] impl CpuHeavyContract { - pub fn fibonacci_iterative(_env: Env, n: u32) -> u64 { + /// Iterative Fibonacci, wrapping on `u64` overflow. + /// + /// Returns [`Error::FibonacciInputTooLarge`] if `n` exceeds [`MAX_FIB`]. + pub fn fibonacci_iterative(_env: Env, n: u32) -> Result { if n > MAX_FIB { - panic!("input too large"); + return Err(Error::FibonacciInputTooLarge); } let mut a: u64 = 0; @@ -24,18 +79,24 @@ impl CpuHeavyContract { a = b; b = temp; } - a + Ok(a) } - pub fn bubble_sort(_env: Env, values: Vec) -> Vec { + /// Bubble-sorts a host `Vec` in place, exercising O(n²) host calls. + /// + /// Returns [`Error::SortInputTooLarge`] if the list is longer than + /// [`MAX_SORT`]. + pub fn bubble_sort(_env: Env, values: Vec) -> Result, Error> { if values.len() > MAX_SORT { - panic!("list too long"); + return Err(Error::SortInputTooLarge); } let mut arr = values; let n = arr.len(); for i in 0..n { - for j in 0..n - i - 1 { + // `n - i - 1` would underflow on the last pass, and on an empty + // list there is nothing to compare at all. + for j in 0..n.saturating_sub(i + 1) { let val_j = arr.get(j).unwrap(); let val_next = arr.get(j + 1).unwrap(); if val_j > val_next { @@ -44,18 +105,23 @@ impl CpuHeavyContract { } } } - arr + Ok(arr) } - pub fn count_primes(_env: Env, limit: u32) -> u32 { + /// Counts primes in `2..=limit` by trial division. + /// + /// Returns [`Error::PrimeLimitTooLarge`] if `limit` exceeds [`MAX_PRIME`]. + pub fn count_primes(_env: Env, limit: u32) -> Result { if limit > MAX_PRIME { - panic!("limit too large"); + return Err(Error::PrimeLimitTooLarge); } let mut count = 0; for num in 2..=limit { let mut is_prime = true; let mut i = 2; + // `MAX_PRIME` is far below `sqrt(u32::MAX)`, so `i * i` cannot + // overflow for any accepted `limit`. while i * i <= num { if num % i == 0 { is_prime = false; @@ -67,12 +133,17 @@ impl CpuHeavyContract { count += 1; } } - count + Ok(count) } - pub fn nested_loop_burn(_env: Env, outer: u32, inner: u32) -> u64 { + /// Burns `outer * inner` iterations of trivial arithmetic. + /// + /// Returns [`Error::LoopOpsTooLarge`] if the product exceeds + /// [`MAX_LOOP_OPS`]. The product uses `saturating_mul` so a caller cannot + /// slip past the guard by overflowing it. + pub fn nested_loop_burn(_env: Env, outer: u32, inner: u32) -> Result { if outer.saturating_mul(inner) > MAX_LOOP_OPS { - panic!("total ops too large"); + return Err(Error::LoopOpsTooLarge); } let mut sum: u64 = 0; @@ -81,27 +152,38 @@ impl CpuHeavyContract { sum = sum.wrapping_add(i as u64).wrapping_add(j as u64); } } - sum + Ok(sum) } - pub fn combined_benchmark(env: Env, fib_n: u32, sort_size: u32, prime_limit: u32) -> Vec { - if fib_n > 10_000 || sort_size > 100 || prime_limit > 5_000 { - panic!("combined inputs too large"); + /// Runs all three workloads in one invocation and returns + /// `[fibonacci, prime_count]`. + /// + /// Returns [`Error::CombinedInputTooLarge`] if any argument exceeds its + /// sub-cap. + pub fn combined_benchmark( + env: Env, + fib_n: u32, + sort_size: u32, + prime_limit: u32, + ) -> Result, Error> { + if fib_n > MAX_COMBINED_FIB + || sort_size > MAX_COMBINED_SORT + || prime_limit > MAX_COMBINED_PRIME + { + return Err(Error::CombinedInputTooLarge); } let mut results = Vec::new(&env); - results.push_back(Self::fibonacci_iterative(env.clone(), fib_n)); + results.push_back(Self::fibonacci_iterative(env.clone(), fib_n)?); let mut to_sort = Vec::new(&env); for i in (0..sort_size).rev() { to_sort.push_back(i); } - Self::bubble_sort(env.clone(), to_sort); + Self::bubble_sort(env.clone(), to_sort)?; - results.push_back(Self::count_primes(env.clone(), prime_limit) as u64); + results.push_back(Self::count_primes(env.clone(), prime_limit)? as u64); - results + Ok(results) } } - -mod test; diff --git a/contracts/cpu_heavy/src/test.rs b/contracts/cpu_heavy/src/test.rs index e7f283cc..6315fa91 100644 --- a/contracts/cpu_heavy/src/test.rs +++ b/contracts/cpu_heavy/src/test.rs @@ -3,47 +3,219 @@ use super::*; use soroban_sdk::{Env, Vec}; -#[test] -fn test_benchmarks_run_successfully() { - let env = Env::default(); +fn setup(env: &Env) -> CpuHeavyContractClient<'_> { let contract_id = env.register(CpuHeavyContract, ()); - let client = CpuHeavyContractClient::new(&env, &contract_id); + CpuHeavyContractClient::new(env, &contract_id) +} - // Test Fibonacci - let fib_res = client.fibonacci_iterative(&20); - assert_eq!(fib_res, 6765); +/// Builds a descending `[n-1, ..., 0]` list, the worst case for bubble sort. +fn descending(env: &Env, n: u32) -> Vec { + let mut v = Vec::new(env); + for i in (0..n).rev() { + v.push_back(i); + } + v +} - // Test Prime Counting - let prime_count = client.count_primes(&100); - assert_eq!(prime_count, 25); +// ── Happy paths ────────────────────────────────────────────────────────────── - // Test Bubble Sort - let unsorted = Vec::from_array(&env, [5, 3, 8, 1]); - let sorted = client.bubble_sort(&unsorted); - assert_eq!(sorted, Vec::from_array(&env, [1, 3, 5, 8])); +#[test] +fn test_benchmarks_run_successfully() { + let env = Env::default(); + let client = setup(&env); - // Test Nested Loop - let loop_res = client.nested_loop_burn(&10, &10); - assert!(loop_res > 0); + assert_eq!(client.fibonacci_iterative(&20), 6765); + assert_eq!(client.count_primes(&100), 25); + assert_eq!( + client.bubble_sort(&Vec::from_array(&env, [5, 3, 8, 1])), + Vec::from_array(&env, [1, 3, 5, 8]) + ); + assert!(client.nested_loop_burn(&10, &10) > 0); } #[test] fn test_combined_benchmark() { let env = Env::default(); - let contract_id = env.register(CpuHeavyContract, ()); - let client = CpuHeavyContractClient::new(&env, &contract_id); + let client = setup(&env); let results = client.combined_benchmark(&100, &20, &50); - // Combined returns results for Fibonacci and Prime counting + // Combined returns results for Fibonacci and prime counting. assert_eq!(results.len(), 2); + assert_eq!(results.get(1).unwrap(), 15); } #[test] -#[should_panic(expected = "input too large")] -fn test_safety_limits() { +fn test_bubble_sort_handles_degenerate_lengths() { let env = Env::default(); - let contract_id = env.register(CpuHeavyContract, ()); - let client = CpuHeavyContractClient::new(&env, &contract_id); + let client = setup(&env); + + assert_eq!(client.bubble_sort(&Vec::new(&env)), Vec::new(&env)); + assert_eq!( + client.bubble_sort(&Vec::from_array(&env, [7])), + Vec::from_array(&env, [7]) + ); +} + +// ── Guards accept inputs exactly at the cap ────────────────────────────────── + +#[test] +fn test_inputs_at_the_cap_are_accepted() { + let env = Env::default(); + let client = setup(&env); + + // Each of these is the largest value the contract promises to serve. They + // must succeed, otherwise the cap is advertising work it cannot deliver. + client.fibonacci_iterative(&MAX_FIB); + client.count_primes(&MAX_PRIME); + client.bubble_sort(&descending(&env, MAX_SORT)); + client.nested_loop_burn(&MAX_LOOP_OPS, &1); + client.combined_benchmark(&MAX_COMBINED_FIB, &MAX_COMBINED_SORT, &MAX_COMBINED_PRIME); +} + +/// The whole point of the caps: the most expensive legal call must finish +/// inside the default network budget rather than aborting the host. +/// +/// This measures the *native* build, so it accounts for host-call cost (which +/// is what makes `bubble_sort` quadratically expensive) but not for metered +/// WASM instructions. The WASM figures behind each constant are recorded in +/// `lib.rs`. +#[test] +fn test_worst_case_call_stays_within_default_budget() { + let env = Env::default(); + let client = setup(&env); + + env.cost_estimate().budget().reset_default(); + client.bubble_sort(&descending(&env, MAX_SORT)); + + let budget = env.cost_estimate().budget(); + assert!( + budget.cpu_instruction_cost() < 100_000_000, + "bubble_sort at MAX_SORT burned {} CPU instructions", + budget.cpu_instruction_cost() + ); + assert!( + budget.memory_bytes_cost() < 41_943_040, + "bubble_sort at MAX_SORT allocated {} memory bytes", + budget.memory_bytes_cost() + ); +} + +// ── Guards reject inputs past the cap with a clean error code ──────────────── + +#[test] +fn test_fibonacci_rejects_oversized_input() { + let env = Env::default(); + let client = setup(&env); + + assert_eq!( + client.try_fibonacci_iterative(&(MAX_FIB + 1)), + Err(Ok(Error::FibonacciInputTooLarge)) + ); + assert_eq!( + client.try_fibonacci_iterative(&u32::MAX), + Err(Ok(Error::FibonacciInputTooLarge)) + ); +} + +#[test] +fn test_bubble_sort_rejects_oversized_input() { + let env = Env::default(); + let client = setup(&env); + + assert_eq!( + client.try_bubble_sort(&descending(&env, MAX_SORT + 1)), + Err(Ok(Error::SortInputTooLarge)) + ); +} + +#[test] +fn test_count_primes_rejects_oversized_input() { + let env = Env::default(); + let client = setup(&env); + + assert_eq!( + client.try_count_primes(&(MAX_PRIME + 1)), + Err(Ok(Error::PrimeLimitTooLarge)) + ); +} + +#[test] +fn test_nested_loop_burn_rejects_oversized_input() { + let env = Env::default(); + let client = setup(&env); - client.fibonacci_iterative(&60_000); + assert_eq!( + client.try_nested_loop_burn(&(MAX_LOOP_OPS + 1), &1), + Err(Ok(Error::LoopOpsTooLarge)) + ); + // Neither factor is individually huge, but the product is. + assert_eq!( + client.try_nested_loop_burn(&1_000, &1_000), + Err(Ok(Error::LoopOpsTooLarge)) + ); +} + +/// `outer * inner` overflows `u32`, so a naive `outer * inner` guard would wrap +/// to a small number and wave the call through. `saturating_mul` must not. +#[test] +fn test_nested_loop_burn_guard_survives_multiplication_overflow() { + let env = Env::default(); + let client = setup(&env); + + assert_eq!( + client.try_nested_loop_burn(&65_536, &65_536), + Err(Ok(Error::LoopOpsTooLarge)) + ); + assert_eq!( + client.try_nested_loop_burn(&u32::MAX, &u32::MAX), + Err(Ok(Error::LoopOpsTooLarge)) + ); +} + +#[test] +fn test_combined_benchmark_rejects_each_oversized_argument() { + let env = Env::default(); + let client = setup(&env); + + let over = [ + (MAX_COMBINED_FIB + 1, 10, 100), + (100, MAX_COMBINED_SORT + 1, 100), + (100, 10, MAX_COMBINED_PRIME + 1), + ]; + for (fib_n, sort_size, prime_limit) in over { + assert_eq!( + client.try_combined_benchmark(&fib_n, &sort_size, &prime_limit), + Err(Ok(Error::CombinedInputTooLarge)) + ); + } +} + +/// An over-cap call must fail cleanly rather than trapping, so it has to leave +/// the budget essentially untouched — that is what distinguishes a guard from a +/// host budget abort. +#[test] +fn test_rejected_call_does_no_work() { + let env = Env::default(); + let client = setup(&env); + + env.cost_estimate().budget().reset_default(); + let _ = client.try_count_primes(&(MAX_PRIME + 1)); + + assert!( + env.cost_estimate().budget().cpu_instruction_cost() < 1_000_000, + "rejected call burned {} CPU instructions before failing", + env.cost_estimate().budget().cpu_instruction_cost() + ); +} + +/// Error discriminants are part of the contract's public surface: the SoroScope +/// UI decodes them by number, so reordering the enum would silently change what +/// users see. +#[test] +fn test_error_codes_are_stable() { + assert_eq!(Error::FibonacciInputTooLarge as u32, 1); + assert_eq!(Error::SortInputTooLarge as u32, 2); + assert_eq!(Error::PrimeLimitTooLarge as u32, 3); + assert_eq!(Error::LoopOpsTooLarge as u32, 4); + assert_eq!(Error::CombinedInputTooLarge as u32, 5); } diff --git a/contracts/cpu_heavy/test_snapshots/test/test_safety_limits.1.json b/contracts/cpu_heavy/test_snapshots/test/test_safety_limits.1.json deleted file mode 100644 index a90f00a8..00000000 --- a/contracts/cpu_heavy/test_snapshots/test/test_safety_limits.1.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "generators": { - "address": 1, - "nonce": 0 - }, - "auth": [ - [], - [] - ], - "ledger": { - "protocol_version": 22, - "sequence_number": 0, - "timestamp": 0, - "network_id": "0000000000000000000000000000000000000000000000000000000000000000", - "base_reserve": 0, - "min_persistent_entry_ttl": 4096, - "min_temp_entry_ttl": 16, - "max_entry_ttl": 6312000, - "ledger_entries": [ - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": "ledger_key_contract_instance", - "durability": "persistent" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": "ledger_key_contract_instance", - "durability": "persistent", - "val": { - "contract_instance": { - "executable": { - "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" - }, - "storage": null - } - } - } - }, - "ext": "v0" - }, - 4095 - ] - ], - [ - { - "contract_code": { - "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_code": { - "ext": "v0", - "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "code": "" - } - }, - "ext": "v0" - }, - 4095 - ] - ] - ] - }, - "events": [] -} \ No newline at end of file