From f91ae95bf7e3e21eb46936a01a47c5e8c5c20c84 Mon Sep 17 00:00:00 2001 From: rouzwelt Date: Thu, 1 Aug 2024 19:58:31 +0000 Subject: [PATCH 01/19] init --- .github/workflows/rainix.yaml | 3 +++ Cargo.lock | 10 ++++++---- Cargo.toml | 8 ++++---- crates/cli/Cargo.toml | 8 +++++++- crates/common/Cargo.toml | 12 +++++++++--- crates/common/src/transaction.rs | 6 +++++- crates/quote/Cargo.toml | 8 +++++++- crates/quote/src/main.rs | 7 +++++++ crates/settings/Cargo.toml | 10 ++++++++-- crates/subgraph/Cargo.toml | 6 +++++- crates/subgraph/src/pagination.rs | 14 ++++++++++++++ tauri-app/src-tauri/Cargo.toml | 2 +- .../OrderBookSubParser.signedContext.t.sol | 16 ++++++++-------- .../parser/OrderBookSubParser.signers.t.sol | 14 +++++++------- .../abstract/OrderBookSubParserContextTest.sol | 14 +++++++------- 15 files changed, 98 insertions(+), 40 deletions(-) diff --git a/.github/workflows/rainix.yaml b/.github/workflows/rainix.yaml index 85ddfc011..d72dc5dbb 100644 --- a/.github/workflows/rainix.yaml +++ b/.github/workflows/rainix.yaml @@ -58,3 +58,6 @@ jobs: DEPLOY_VERIFIER: "" run: nix develop -c ${{ matrix.task }} + + - name: Build for wasm target + run: nix develop -c cd crates/settings && cargo build --target wasm32-unknown-unknown diff --git a/Cargo.lock b/Cargo.lock index e3a007ada..f99e983ba 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -185,7 +185,7 @@ dependencies = [ [[package]] name = "alloy-ethers-typecast" version = "0.2.0" -source = "git+https://github.com/rainlanguage/alloy-ethers-typecast?rev=cbdedb77fb1994a18ceb47e72786f8b32b670669#cbdedb77fb1994a18ceb47e72786f8b32b670669" +source = "git+https://github.com/rainlanguage/alloy-ethers-typecast?rev=d9bd0fe8360d803ed3e58b34063890c8775999f2#d9bd0fe8360d803ed3e58b34063890c8775999f2" dependencies = [ "alloy-dyn-abi 0.6.4", "alloy-json-abi 0.6.4", @@ -194,6 +194,7 @@ dependencies = [ "async-trait", "derive_builder 0.12.0", "ethers", + "getrandom", "once_cell", "rain-error-decoding", "reqwest 0.11.27", @@ -5832,7 +5833,7 @@ checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" [[package]] name = "rain-erc" version = "0.0.0" -source = "git+https://github.com/rainlanguage/rain.erc?rev=cc9d7c3c74cf8e9676d72ee054af7f1b67a84974#cc9d7c3c74cf8e9676d72ee054af7f1b67a84974" +source = "git+https://github.com/rainlanguage/rain.erc?rev=7f50b2c05eb41a77ee925ebe80fe49420a2b5b80#7f50b2c05eb41a77ee925ebe80fe49420a2b5b80" dependencies = [ "alloy-ethers-typecast", "alloy-primitives 0.6.4", @@ -5843,13 +5844,14 @@ dependencies = [ [[package]] name = "rain-error-decoding" version = "0.1.0" -source = "git+https://github.com/rainlanguage/rain.error?rev=700142c3c73d5cbaea82f1d51af5ce04de5bac6a#700142c3c73d5cbaea82f1d51af5ce04de5bac6a" +source = "git+https://github.com/rainlanguage/rain.error?rev=72d9577fdaf7135113847027ba951f9a43b41827#72d9577fdaf7135113847027ba951f9a43b41827" dependencies = [ "alloy-dyn-abi 0.6.4", "alloy-json-abi 0.6.4", "alloy-primitives 0.6.4", "alloy-sol-types 0.6.4", "ethers", + "getrandom", "once_cell", "reqwest 0.11.27", "serde", @@ -5898,7 +5900,7 @@ name = "rain-metadata" version = "0.0.2-alpha.6" dependencies = [ "alloy-ethers-typecast", - "alloy-json-abi 0.5.4", + "alloy-json-abi 0.6.4", "alloy-primitives 0.6.4", "alloy-sol-types 0.6.4", "anyhow", diff --git a/Cargo.toml b/Cargo.toml index c51d04ad9..4eb66ac5c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,7 +10,7 @@ homepage = "https://github.com/rainprotocol/rain.orderbook" [workspace.dependencies] foundry-block-explorers = "0.2.6" -alloy-ethers-typecast = { git = "https://github.com/rainlanguage/alloy-ethers-typecast", rev = "cbdedb77fb1994a18ceb47e72786f8b32b670669" } +alloy-ethers-typecast = { git = "https://github.com/rainlanguage/alloy-ethers-typecast", rev = "d9bd0fe8360d803ed3e58b34063890c8775999f2" } alloy-sol-types = "0.6.3" alloy-primitives = "0.6.3" alloy-json-abi = "0.6.3" @@ -21,7 +21,7 @@ clap = { version = "4.2.5", features = ["cargo", "derive"] } once_cell = "1.17.1" reqwest = { version = "0.11.17", features = ["json"] } rust-bigint = "1.2.0" -serde = "1.0.160" +serde = "1.0.200" futures = "0.3.17" serde_bytes = "0.11.9" serde_json = "1.0.112" @@ -54,8 +54,8 @@ thirtyfour = "0.31.0" test-context = "0.3.0" portpicker = "0.1.1" rain-orderbook-env = { path = "crates/env" } -rain-erc = { git = "https://github.com/rainlanguage/rain.erc", rev = "cc9d7c3c74cf8e9676d72ee054af7f1b67a84974" } -rain-error-decoding = { git = "https://github.com/rainlanguage/rain.error", rev = "700142c3c73d5cbaea82f1d51af5ce04de5bac6a" } +rain-erc = { git = "https://github.com/rainlanguage/rain.erc", rev = "7f50b2c05eb41a77ee925ebe80fe49420a2b5b80" } +rain-error-decoding = { git = "https://github.com/rainlanguage/rain.error", rev = "72d9577fdaf7135113847027ba951f9a43b41827" } [workspace.dependencies.rain_orderbook_bindings] path = "crates/bindings" diff --git a/crates/cli/Cargo.toml b/crates/cli/Cargo.toml index 675fe9406..90a5de5cb 100644 --- a/crates/cli/Cargo.toml +++ b/crates/cli/Cargo.toml @@ -21,10 +21,16 @@ reqwest = { workspace = true } rust-bigint = { workspace = true } serde = { workspace = true } serde_bytes = { workspace = true } -tokio = { workspace = true } +# tokio = { workspace = true } tracing = { workspace = true } tracing-subscriber = { workspace = true, features = ['env-filter'] } alloy-primitives = { workspace = true } alloy-sol-types = { workspace = true } comfy-table = { workspace = true } chrono = { workspace = true } + +[target.'cfg(not(target_family = "wasm"))'.dependencies] +tokio = { version = "1.28.0", features = ["full"] } + +[target.'cfg(target_family = "wasm")'.dependencies] +tokio = { version = "1.28.0", features = ["sync", "macros", "io-util", "rt", "time"] } \ No newline at end of file diff --git a/crates/common/Cargo.toml b/crates/common/Cargo.toml index b3480d710..6ecfbea97 100644 --- a/crates/common/Cargo.toml +++ b/crates/common/Cargo.toml @@ -37,7 +37,7 @@ rain_interpreter_parser = { workspace = true } rain-interpreter-eval = { workspace = true } rain-orderbook-env = { workspace = true } serde_bytes = { workspace = true } -tokio = { workspace = true } +# tokio = { workspace = true } proptest = { workspace = true } typeshare = { workspace = true } csv = { workspace = true } @@ -46,5 +46,11 @@ futures = { workspace = true } rain-error-decoding = { workspace = true } rand = "0.8.5" -[dev-dependencies] -tokio = { workspace = true } +# [dev-dependencies] +# tokio = { workspace = true } + +[target.'cfg(not(target_family = "wasm"))'.dependencies] +tokio = { version = "1.28.0", features = ["full"] } + +[target.'cfg(target_family = "wasm")'.dependencies] +tokio = { version = "1.28.0", features = ["sync", "macros", "io-util", "rt", "time"] } \ No newline at end of file diff --git a/crates/common/src/transaction.rs b/crates/common/src/transaction.rs index 42e96fccf..a5454b69f 100644 --- a/crates/common/src/transaction.rs +++ b/crates/common/src/transaction.rs @@ -1,5 +1,6 @@ +#[cfg(not(target_family = "wasm"))] +use alloy_ethers_typecast::client::{LedgerClient, LedgerClientError}; use alloy_ethers_typecast::{ - client::{LedgerClient, LedgerClientError}, gas_fee_middleware::GasFeeSpeed, transaction::{ ReadableClientError, ReadableClientHttp, WritableClientError, WriteContractParameters, @@ -17,6 +18,7 @@ pub enum WritableTransactionExecuteError { WritableClient(#[from] WritableClientError), #[error(transparent)] TransactionArgs(#[from] TransactionArgsError), + #[cfg(not(target_family = "wasm"))] #[error(transparent)] LedgerClient(#[from] LedgerClientError), #[error("Invalid input args: {0}")] @@ -33,6 +35,7 @@ pub enum TransactionArgsError { ChainIdNone, #[error(transparent)] ReadableClient(#[from] ReadableClientError), + #[cfg(not(target_family = "wasm"))] #[error(transparent)] LedgerClient(#[from] LedgerClientError), } @@ -77,6 +80,7 @@ impl TransactionArgs { Ok(()) } + #[cfg(not(target_family = "wasm"))] pub async fn try_into_ledger_client(self) -> Result { match self.chain_id { Some(chain_id) => { diff --git a/crates/quote/Cargo.toml b/crates/quote/Cargo.toml index 0da960098..4bb17d62f 100644 --- a/crates/quote/Cargo.toml +++ b/crates/quote/Cargo.toml @@ -20,12 +20,18 @@ serde_json = { workspace = true } thiserror = { workspace = true } tracing = { workspace = true } once_cell = { workspace = true } -tokio = { workspace = true } +# tokio = { workspace = true } url = { workspace = true } anyhow = { workspace = true } reqwest = { workspace = true } clap = { workspace = true, features = ["env"]} tracing-subscriber = { workspace = true, features = ['env-filter'] } +[target.'cfg(not(target_family = "wasm"))'.dependencies] +tokio = { version = "1.28.0", features = ["full"] } + +[target.'cfg(target_family = "wasm")'.dependencies] +tokio = { version = "1.28.0", features = ["sync", "macros", "io-util", "rt", "time"] } + [dev-dependencies] httpmock = "0.7.0" \ No newline at end of file diff --git a/crates/quote/src/main.rs b/crates/quote/src/main.rs index d2fce471e..a40754a70 100644 --- a/crates/quote/src/main.rs +++ b/crates/quote/src/main.rs @@ -1,4 +1,11 @@ +#[cfg(not(target_family = "wasm"))] #[tokio::main] async fn main() -> anyhow::Result<()> { rain_orderbook_quote::cli::main().await } + +#[cfg(target_family = "wasm")] +#[tokio::main(flavor = "current_thread")] +async fn main() -> anyhow::Result<()> { + rain_orderbook_quote::cli::main().await +} diff --git a/crates/settings/Cargo.toml b/crates/settings/Cargo.toml index 4181388bf..2eb34c261 100644 --- a/crates/settings/Cargo.toml +++ b/crates/settings/Cargo.toml @@ -18,5 +18,11 @@ serde_json = { workspace = true } strict-yaml-rust = { workspace = true } alloy-primitives = { workspace = true } typeshare = { workspace = true } -tokio = { workspace = true } -reqwest = { workspace = true } \ No newline at end of file +# tokio = { workspace = true } +reqwest = { workspace = true } + +[target.'cfg(not(target_family = "wasm"))'.dependencies] +tokio = { version = "1.28.0", features = ["full"] } + +[target.'cfg(target_family = "wasm")'.dependencies] +tokio = { version = "1.28.0", features = ["sync", "macros", "io-util", "rt", "time"] } \ No newline at end of file diff --git a/crates/subgraph/Cargo.toml b/crates/subgraph/Cargo.toml index 64f0436f7..4e4ba0f91 100644 --- a/crates/subgraph/Cargo.toml +++ b/crates/subgraph/Cargo.toml @@ -22,7 +22,11 @@ alloy-sol-types = { workspace = true } [dev-dependencies] insta = { workspace = true } -tokio = { workspace = true } +# tokio = { workspace = true } +tokio = { version = "1.28.0", features = ["full"] } [build-dependencies] cynic-codegen = { workspace = true } + +#[cfg_attr(not(target_family = "wasm"), async_trait)] + #[cfg_attr(target_family = "wasm", async_trait(?Send))] \ No newline at end of file diff --git a/crates/subgraph/src/pagination.rs b/crates/subgraph/src/pagination.rs index 2e9baf5f4..e50d21ff3 100644 --- a/crates/subgraph/src/pagination.rs +++ b/crates/subgraph/src/pagination.rs @@ -97,6 +97,7 @@ pub trait PaginationClient { /// Client that provides a fn to query a "page", and another to sort a list of results. /// This allows the query to be used for client-side pagination. /// The query_page function can potentially make multiple queries and merge the results into a single list. +#[cfg(not(target_family = "wasm"))] pub trait PageQueryClient { fn query_page( &self, @@ -106,6 +107,19 @@ pub trait PageQueryClient { fn sort_results(results: Vec) -> Vec; } +/// Client that provides a fn to query a "page", and another to sort a list of results. +/// This allows the query to be used for client-side pagination. +/// The query_page function can potentially make multiple queries and merge the results into a single list. +#[cfg(target_family = "wasm")] +pub trait PageQueryClient { + fn query_page( + &self, + variables: V, + ) -> impl std::future::Future, CynicClientError>>; + + fn sort_results(results: Vec) -> Vec; +} + /// Builder fn to setup query variables with a provided skip & option pub trait PageQueryVariables { fn with_pagination(&self, skip: Option, first: Option) -> Self; diff --git a/tauri-app/src-tauri/Cargo.toml b/tauri-app/src-tauri/Cargo.toml index ab8b5576f..29aa57de4 100644 --- a/tauri-app/src-tauri/Cargo.toml +++ b/tauri-app/src-tauri/Cargo.toml @@ -17,7 +17,7 @@ serde_json = "1.0" rain_orderbook_common = { path = "../../crates/common" } rain_orderbook_subgraph_client = { path = "../../crates/subgraph" } rain_orderbook_app_settings = { path = "../../crates/settings" } -alloy-ethers-typecast = { git = "https://github.com/rainlanguage/alloy-ethers-typecast", rev = "cbdedb77fb1994a18ceb47e72786f8b32b670669" } +alloy-ethers-typecast = { git = "https://github.com/rainlanguage/alloy-ethers-typecast", rev = "d9bd0fe8360d803ed3e58b34063890c8775999f2" } rain-orderbook-env = { path = "../../crates/env" } alloy-primitives = "0.6.3" alloy-json-abi = "0.6.3" diff --git a/test/concrete/parser/OrderBookSubParser.signedContext.t.sol b/test/concrete/parser/OrderBookSubParser.signedContext.t.sol index f8b25a296..3351aab7b 100644 --- a/test/concrete/parser/OrderBookSubParser.signedContext.t.sol +++ b/test/concrete/parser/OrderBookSubParser.signedContext.t.sol @@ -99,14 +99,14 @@ contract OrderBookSubParserSignedContextTest is OpTest { checkUnhappyParse(rainlang, abi.encodeWithSelector(UnexpectedOperandValue.selector)); } - /// Test signed-context with an input errors. - function testSubParserContextSignedContextUnhappyInput() external { - OrderBookSubParser orderBookSubParser = new OrderBookSubParser(); + // /// Test signed-context with an input errors. + // function testSubParserContextSignedContextUnhappyInput() external { + // OrderBookSubParser orderBookSubParser = new OrderBookSubParser(); - bytes memory rainlang = bytes( - string.concat("using-words-from ", address(orderBookSubParser).toHexString(), " _: signed-context<0 0>(0);") - ); + // bytes memory rainlang = bytes( + // string.concat("using-words-from ", address(orderBookSubParser).toHexString(), " _: signed-context<0 0>(0);") + // ); - checkUnhappyDeploy(rainlang, abi.encodeWithSelector(StackAllocationMismatch.selector, 2, 1)); - } + // checkUnhappyDeploy(rainlang, abi.encodeWithSelector(StackAllocationMismatch.selector, 2, 1)); + // } } diff --git a/test/concrete/parser/OrderBookSubParser.signers.t.sol b/test/concrete/parser/OrderBookSubParser.signers.t.sol index be46115df..f25aeeac7 100644 --- a/test/concrete/parser/OrderBookSubParser.signers.t.sol +++ b/test/concrete/parser/OrderBookSubParser.signers.t.sol @@ -57,13 +57,13 @@ contract OrderBookSubParserSignersTest is OpTest { checkUnhappyParse(rainlang, abi.encodeWithSelector(UnexpectedOperandValue.selector)); } - /// Test signer with an input errors. - function testSubParserContextSignerUnhappyInput() external { - OrderBookSubParser orderBookSubParser = new OrderBookSubParser(); + // /// Test signer with an input errors. + // function testSubParserContextSignerUnhappyInput() external { + // OrderBookSubParser orderBookSubParser = new OrderBookSubParser(); - bytes memory rainlang = - bytes(string.concat("using-words-from ", address(orderBookSubParser).toHexString(), " _: signer<0>(0);")); + // bytes memory rainlang = + // bytes(string.concat("using-words-from ", address(orderBookSubParser).toHexString(), " _: signer<0>(0);")); - checkUnhappyDeploy(rainlang, abi.encodeWithSelector(StackAllocationMismatch.selector, 2, 1)); - } + // checkUnhappyDeploy(rainlang, abi.encodeWithSelector(StackAllocationMismatch.selector, 2, 1)); + // } } diff --git a/test/util/abstract/OrderBookSubParserContextTest.sol b/test/util/abstract/OrderBookSubParserContextTest.sol index 3bdc11f30..fd4c1687c 100644 --- a/test/util/abstract/OrderBookSubParserContextTest.sol +++ b/test/util/abstract/OrderBookSubParserContextTest.sol @@ -35,13 +35,13 @@ abstract contract OrderBookSubParserContextTest is OpTest { checkDisallowedOperand(rainlang); } - function testSubParserContextUnhappyDisallowedInputs() external { - string memory w = word(); - OrderBookSubParser orderBookSubParser = new OrderBookSubParser(); + // function testSubParserContextUnhappyDisallowedInputs() external { + // string memory w = word(); + // OrderBookSubParser orderBookSubParser = new OrderBookSubParser(); - bytes memory rainlang = - bytes(string.concat("using-words-from ", address(orderBookSubParser).toHexString(), " _: ", w, "(1);")); + // bytes memory rainlang = + // bytes(string.concat("using-words-from ", address(orderBookSubParser).toHexString(), " _: ", w, "(1);")); - checkUnhappyDeploy(rainlang, abi.encodeWithSelector(StackAllocationMismatch.selector, 2, 1)); - } + // checkUnhappyDeploy(rainlang, abi.encodeWithSelector(StackAllocationMismatch.selector, 2, 1)); + // } } From d3577bbeccd53eddd3dbc4625fd96941c618497d Mon Sep 17 00:00:00 2001 From: rouzwelt Date: Thu, 1 Aug 2024 21:13:42 +0000 Subject: [PATCH 02/19] update --- lib/rain.interpreter | 2 +- lib/rain.metadata | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/rain.interpreter b/lib/rain.interpreter index 30563e844..c9f37a37d 160000 --- a/lib/rain.interpreter +++ b/lib/rain.interpreter @@ -1 +1 @@ -Subproject commit 30563e844c8296e4790b6ccfa951b3694e410a4a +Subproject commit c9f37a37d4e0fc34f011902ddbfdd1ddfcc3cf8d diff --git a/lib/rain.metadata b/lib/rain.metadata index ed7d6156c..879bd885a 160000 --- a/lib/rain.metadata +++ b/lib/rain.metadata @@ -1 +1 @@ -Subproject commit ed7d6156ce2b280e6bbbff516b9695f284f6b969 +Subproject commit 879bd885a13fa6233b44cf68ee3e94bec47d1751 From 251eedae8b6f2c52bdaa840b39b607c6ec34ace5 Mon Sep 17 00:00:00 2001 From: rouzwelt Date: Thu, 1 Aug 2024 21:40:30 +0000 Subject: [PATCH 03/19] update --- .github/workflows/rainix.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/rainix.yaml b/.github/workflows/rainix.yaml index d72dc5dbb..35de10a3a 100644 --- a/.github/workflows/rainix.yaml +++ b/.github/workflows/rainix.yaml @@ -61,3 +61,7 @@ jobs: - name: Build for wasm target run: nix develop -c cd crates/settings && cargo build --target wasm32-unknown-unknown + env: + ETH_RPC_URL: ${{ secrets.CI_DEPLOY_SEPOLIA_RPC_URL || vars.CI_DEPLOY_SEPOLIA_RPC_URL }} + ETHERSCAN_API_KEY: ${{ secrets.EXPLORER_VERIFICATION_KEY }} + DEPLOY_VERIFIER: "" From 61deb3daaf965f2df85886e253796dd3e03fa632 Mon Sep 17 00:00:00 2001 From: rouzwelt Date: Thu, 1 Aug 2024 21:48:16 +0000 Subject: [PATCH 04/19] update --- .github/workflows/rainix.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/rainix.yaml b/.github/workflows/rainix.yaml index 35de10a3a..b729c5c54 100644 --- a/.github/workflows/rainix.yaml +++ b/.github/workflows/rainix.yaml @@ -60,7 +60,7 @@ jobs: run: nix develop -c ${{ matrix.task }} - name: Build for wasm target - run: nix develop -c cd crates/settings && cargo build --target wasm32-unknown-unknown + run: nix develop -c cargo build --target wasm32-unknown-unknown -p rain_orderbook_app_settings env: ETH_RPC_URL: ${{ secrets.CI_DEPLOY_SEPOLIA_RPC_URL || vars.CI_DEPLOY_SEPOLIA_RPC_URL }} ETHERSCAN_API_KEY: ${{ secrets.EXPLORER_VERIFICATION_KEY }} From 1e46083daaa007d3ad99ed4776a42708ca6314f5 Mon Sep 17 00:00:00 2001 From: rouzwelt Date: Sat, 3 Aug 2024 03:44:08 +0000 Subject: [PATCH 05/19] update --- Cargo.lock | 65 +++++++- Cargo.toml | 2 +- crates/cli/Cargo.toml | 4 +- crates/common/Cargo.toml | 27 ++-- crates/common/src/add_order.rs | 6 +- crates/common/src/deposit.rs | 12 +- crates/common/src/dotrain_add_order_lsp.rs | 7 +- crates/common/src/fuzz/mod.rs | 2 +- crates/common/src/js_api/mod.rs | 46 ++++++ crates/common/src/lib.rs | 4 + crates/common/src/rainlang.rs | 149 +++++++++--------- crates/common/src/remove_order.rs | 11 +- crates/common/src/transaction.rs | 2 +- crates/common/src/withdraw.rs | 6 +- crates/quote/Cargo.toml | 5 +- crates/settings/Cargo.toml | 14 +- crates/subgraph/Cargo.toml | 6 +- lib/rain.interpreter | 2 +- .../OrderBookSubParser.signedContext.t.sol | 16 +- .../parser/OrderBookSubParser.signers.t.sol | 14 +- .../OrderBookSubParserContextTest.sol | 14 +- 21 files changed, 273 insertions(+), 141 deletions(-) create mode 100644 crates/common/src/js_api/mod.rs diff --git a/Cargo.lock b/Cargo.lock index f99e983ba..ab68ff91e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6084,6 +6084,7 @@ dependencies = [ "dotrain", "dotrain-lsp", "futures", + "js-sys", "once_cell", "proptest", "rain-error-decoding", @@ -6098,9 +6099,9 @@ dependencies = [ "rain_orderbook_app_settings", "rain_orderbook_bindings", "rain_orderbook_subgraph_client", - "rand", "reqwest 0.11.27", "serde", + "serde-wasm-bindgen 0.6.5", "serde_bytes", "serde_json", "serde_yaml", @@ -6108,8 +6109,11 @@ dependencies = [ "thiserror", "tokio", "tracing", + "tsify", "typeshare", "url", + "wasm-bindgen", + "wasm-bindgen-futures", ] [[package]] @@ -6918,7 +6922,7 @@ checksum = "185f2b7aa7e02d418e453790dde16890256bbd2bcd04b7dc5348811052b53f49" dependencies = [ "proc-macro2", "quote", - "serde_derive_internals", + "serde_derive_internals 0.29.0", "syn 2.0.61", ] @@ -7060,6 +7064,28 @@ dependencies = [ "serde_derive", ] +[[package]] +name = "serde-wasm-bindgen" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3b143e2833c57ab9ad3ea280d21fd34e285a42837aeb0ee301f4f41890fa00e" +dependencies = [ + "js-sys", + "serde", + "wasm-bindgen", +] + +[[package]] +name = "serde-wasm-bindgen" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8302e169f0eddcc139c70f139d19d6467353af16f9fce27e8c30158036a1e16b" +dependencies = [ + "js-sys", + "serde", + "wasm-bindgen", +] + [[package]] name = "serde_bytes" version = "0.11.14" @@ -7090,6 +7116,17 @@ dependencies = [ "syn 2.0.61", ] +[[package]] +name = "serde_derive_internals" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e578a843d40b4189a4d66bba51d7684f57da5bd7c304c64e14bd63efbef49509" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.61", +] + [[package]] name = "serde_derive_internals" version = "0.29.0" @@ -8024,6 +8061,30 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" +[[package]] +name = "tsify" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6b26cf145f2f3b9ff84e182c448eaf05468e247f148cf3d2a7d67d78ff023a0" +dependencies = [ + "serde", + "serde-wasm-bindgen 0.5.0", + "tsify-macros", + "wasm-bindgen", +] + +[[package]] +name = "tsify-macros" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a94b0f0954b3e59bfc2c246b4c8574390d94a4ad4ad246aaf2fb07d7dfd3b47" +dependencies = [ + "proc-macro2", + "quote", + "serde_derive_internals 0.28.0", + "syn 2.0.61", +] + [[package]] name = "tungstenite" version = "0.20.1" diff --git a/Cargo.toml b/Cargo.toml index 4eb66ac5c..bcd42a5f0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -26,7 +26,7 @@ futures = "0.3.17" serde_bytes = "0.11.9" serde_json = "1.0.112" serde_yaml = "0.9.32" -tokio = { version = "1.28.0", features = ["full"] } +tokio = { version = "1.28.0" } tracing = "0.1.37" tracing-subscriber = "0.3.17" url = "2.5.0" diff --git a/crates/cli/Cargo.toml b/crates/cli/Cargo.toml index 90a5de5cb..ffd66fa11 100644 --- a/crates/cli/Cargo.toml +++ b/crates/cli/Cargo.toml @@ -30,7 +30,7 @@ comfy-table = { workspace = true } chrono = { workspace = true } [target.'cfg(not(target_family = "wasm"))'.dependencies] -tokio = { version = "1.28.0", features = ["full"] } +tokio = { workspace = true, features = ["full"] } [target.'cfg(target_family = "wasm")'.dependencies] -tokio = { version = "1.28.0", features = ["sync", "macros", "io-util", "rt", "time"] } \ No newline at end of file +tokio = { workspace = true, features = ["sync", "macros", "io-util", "rt", "time"] } \ No newline at end of file diff --git a/crates/common/Cargo.toml b/crates/common/Cargo.toml index 6ecfbea97..e4412f4af 100644 --- a/crates/common/Cargo.toml +++ b/crates/common/Cargo.toml @@ -8,11 +8,14 @@ homepage = "https://github.com/rainprotocol/rain.orderbook" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html +[lib] +crate-type = ["rlib", "cdylib"] + [dependencies] rain_orderbook_bindings = { workspace = true } rain_orderbook_subgraph_client = { workspace = true } rain_orderbook_app_settings = { workspace = true } -alloy-primitives = { workspace = true } +alloy-primitives = { workspace = true, features = ["rand"] } alloy-ethers-typecast = { workspace = true } alloy-sol-types = { workspace = true } url = { workspace = true } @@ -34,23 +37,25 @@ rain-metadata-bindings = { workspace = true } rain_interpreter_bindings = { workspace = true } rain_interpreter_dispair = { workspace = true } rain_interpreter_parser = { workspace = true } -rain-interpreter-eval = { workspace = true } -rain-orderbook-env = { workspace = true } serde_bytes = { workspace = true } -# tokio = { workspace = true } -proptest = { workspace = true } typeshare = { workspace = true } csv = { workspace = true } chrono = { workspace = true } futures = { workspace = true } rain-error-decoding = { workspace = true } -rand = "0.8.5" - -# [dev-dependencies] -# tokio = { workspace = true } [target.'cfg(not(target_family = "wasm"))'.dependencies] -tokio = { version = "1.28.0", features = ["full"] } +tokio = { workspace = true, features = ["full"] } +rain-interpreter-eval = { workspace = true } +proptest = { workspace = true } [target.'cfg(target_family = "wasm")'.dependencies] -tokio = { version = "1.28.0", features = ["sync", "macros", "io-util", "rt", "time"] } \ No newline at end of file +js-sys = { version = "0.3.69" } +wasm-bindgen = { version = "0.2.92" } +serde-wasm-bindgen = { version = "0.6.5" } +wasm-bindgen-futures = { version = "0.4.42" } +tsify = { version = "0.4.5", default-features = false, features = ["js", "wasm-bindgen"] } +tokio = { workspace = true, features = ["sync", "macros", "io-util", "rt", "time"] } + +[dev-dependencies] +rain-orderbook-env = { workspace = true } \ No newline at end of file diff --git a/crates/common/src/add_order.rs b/crates/common/src/add_order.rs index 99acf866e..1cceda3a2 100644 --- a/crates/common/src/add_order.rs +++ b/crates/common/src/add_order.rs @@ -4,9 +4,10 @@ use crate::{ }; use alloy_ethers_typecast::transaction::{ ReadContractParameters, ReadableClientError, ReadableClientHttp, WritableClientError, - WriteTransaction, WriteTransactionStatus, }; -use alloy_primitives::{hex::FromHexError, Address, U256}; +#[cfg(not(target_family = "wasm"))] +use alloy_ethers_typecast::transaction::{WriteTransaction, WriteTransactionStatus}; +use alloy_primitives::{hex::FromHexError, private::rand, Address, U256}; use alloy_sol_types::SolCall; use dotrain::{error::ComposeError, RainDocument, Rebind}; use rain_interpreter_dispair::{DISPair, DISPairError}; @@ -212,6 +213,7 @@ impl AddOrderArgs { }) } + #[cfg(not(target_family = "wasm"))] pub async fn execute)>( &self, transaction_args: TransactionArgs, diff --git a/crates/common/src/deposit.rs b/crates/common/src/deposit.rs index 6e0c8282b..5179a081a 100644 --- a/crates/common/src/deposit.rs +++ b/crates/common/src/deposit.rs @@ -1,10 +1,12 @@ use crate::transaction::{TransactionArgs, TransactionArgsError, WritableTransactionExecuteError}; +use alloy_ethers_typecast::transaction::{ + ReadContractParametersBuilder, ReadContractParametersBuilderError, ReadableClient, + ReadableClientError, WritableClientError, +}; +#[cfg(not(target_family = "wasm"))] use alloy_ethers_typecast::{ ethers_address_to_alloy, - transaction::{ - ReadContractParametersBuilder, ReadContractParametersBuilderError, ReadableClient, - ReadableClientError, WritableClientError, WriteTransaction, WriteTransactionStatus, - }, + transaction::{WriteTransaction, WriteTransactionStatus}, }; use alloy_primitives::{Address, U256}; use alloy_sol_types::SolCall; @@ -72,6 +74,7 @@ impl DepositArgs { } /// Execute IERC20 approve call + #[cfg(not(target_family = "wasm"))] pub async fn execute_approve)>( &self, transaction_args: TransactionArgs, @@ -118,6 +121,7 @@ impl DepositArgs { } /// Execute OrderbookV3 deposit call + #[cfg(not(target_family = "wasm"))] pub async fn execute_deposit)>( &self, transaction_args: TransactionArgs, diff --git a/crates/common/src/dotrain_add_order_lsp.rs b/crates/common/src/dotrain_add_order_lsp.rs index 732511063..12d717648 100644 --- a/crates/common/src/dotrain_add_order_lsp.rs +++ b/crates/common/src/dotrain_add_order_lsp.rs @@ -1,10 +1,14 @@ +#[cfg(not(target_family = "wasm"))] use crate::add_order::ORDERBOOK_ORDER_ENTRYPOINTS; +#[cfg(not(target_family = "wasm"))] use crate::rainlang::parse_rainlang_on_fork; +#[cfg(not(target_family = "wasm"))] use alloy_primitives::Address; +use dotrain::Rebind; +#[cfg(not(target_family = "wasm"))] use dotrain::{ error::{ComposeError, ErrorCode}, types::ast::Problem, - Rebind, }; use dotrain_lsp::{ lsp_types::{CompletionItem, Hover, Position, TextDocumentItem}, @@ -53,6 +57,7 @@ impl DotrainAddOrderLsp { } /// get problems for a given text document item + #[cfg(not(target_family = "wasm"))] pub async fn problems( &self, rpc_url: &str, diff --git a/crates/common/src/fuzz/mod.rs b/crates/common/src/fuzz/mod.rs index 02f5cb9ca..0ee57c48c 100644 --- a/crates/common/src/fuzz/mod.rs +++ b/crates/common/src/fuzz/mod.rs @@ -1,6 +1,6 @@ use crate::add_order::ORDERBOOK_ORDER_ENTRYPOINTS; use alloy_ethers_typecast::transaction::{ReadableClientError, ReadableClientHttp}; -use alloy_primitives::U256; +use alloy_primitives::{private::rand, U256}; use dotrain::{error::ComposeError, RainDocument, Rebind}; use futures::TryFutureExt; use proptest::prelude::RngCore; diff --git a/crates/common/src/js_api/mod.rs b/crates/common/src/js_api/mod.rs new file mode 100644 index 000000000..ada6baf87 --- /dev/null +++ b/crates/common/src/js_api/mod.rs @@ -0,0 +1,46 @@ +use crate::{ + add_order::{AddOrderArgs, AddOrderArgsError}, + frontmatter::parse_frontmatter, + transaction::TransactionArgs, +}; +use js_sys::Uint8Array; +use rain_orderbook_app_settings::{Config, ParseConfigSourceError}; +use std::ops::Deref; +use thiserror::Error; +use wasm_bindgen::prelude::*; + +/// Represents all possible errors of this module +#[derive(Debug, Error)] +pub enum Error { + #[error("undefined deployment")] + UndefinedDeployment, + #[error(transparent)] + ParseConfigSourceError(#[from] ParseConfigSourceError), + #[error(transparent)] + AddOrderArgsError(#[from] AddOrderArgsError), +} + +impl From for JsValue { + fn from(value: Error) -> Self { + serde_wasm_bindgen::to_value(&value.to_string()).unwrap_or(JsValue::NULL) + } +} + +/// Get addOrder() calldata from a given dotrain text and deployment key from its frontmatter +#[wasm_bindgen(js_name = "getAddOrderCalldata")] +pub async fn get_add_order_calldata(dotrain: &str, deployment: &str) -> Result { + let config: Config = parse_frontmatter(dotrain.to_string()).await?.try_into()?; + let deployment_ref = config + .deployments + .get(deployment) + .ok_or(Error::UndefinedDeployment)?; + let add_order_args = + AddOrderArgs::new_from_deployment(dotrain.to_string(), deployment_ref.deref().clone()) + .await?; + + Ok(add_order_args + .get_add_order_calldata(TransactionArgs::default()) + .await? + .as_slice() + .into()) +} diff --git a/crates/common/src/lib.rs b/crates/common/src/lib.rs index 4dcc0f2ea..70b5400fe 100644 --- a/crates/common/src/lib.rs +++ b/crates/common/src/lib.rs @@ -4,6 +4,7 @@ pub mod deposit; pub mod dotrain_add_order_lsp; pub mod dotrain_order; pub mod frontmatter; +#[cfg(not(target_family = "wasm"))] pub mod fuzz; pub mod meta; pub mod rainlang; @@ -14,5 +15,8 @@ pub mod types; pub mod utils; pub mod withdraw; +// #[cfg(target_family = "wasm")] +pub mod js_api; + pub use dotrain; pub use dotrain_lsp; diff --git a/crates/common/src/rainlang.rs b/crates/common/src/rainlang.rs index d84ef59ae..700ffc26e 100644 --- a/crates/common/src/rainlang.rs +++ b/crates/common/src/rainlang.rs @@ -1,80 +1,9 @@ use crate::add_order::ORDERBOOK_ORDER_ENTRYPOINTS; use crate::dotrain_add_order_lsp::LANG_SERVICES; -use alloy_ethers_typecast::transaction::{ReadableClientError, ReadableClientHttp}; -use alloy_primitives::{bytes::Bytes, Address}; use dotrain::error::ComposeError; use dotrain::RainDocument; use dotrain::Rebind; -use once_cell::sync::Lazy; -use rain_error_decoding::AbiDecodedErrorType; -use rain_interpreter_eval::error::ForkCallError; -use rain_interpreter_eval::eval::ForkParseArgs; -use rain_interpreter_eval::fork::Forker; -use rain_interpreter_eval::fork::NewForkedEvm; use std::collections::HashMap; -use std::sync::Arc; -use thiserror::Error; -use tokio::sync::Mutex; - -pub static FORKER: Lazy>> = Lazy::new(|| Arc::new(Mutex::new(Forker::new()))); - -#[derive(Debug, Error)] -pub enum ForkParseError { - #[error("Fork Cache Poisoned")] - ForkCachePoisoned, - #[error(transparent)] - ForkerError(ForkCallError), - #[error("Fork Call Reverted: {0}")] - ForkCallReverted(#[from] AbiDecodedErrorType), - #[error(transparent)] - ReadableClientError(#[from] ReadableClientError), - #[error("Failed to read Parser address from deployer")] - ReadParserAddressFailed, -} - -impl From for ForkParseError { - fn from(value: ForkCallError) -> Self { - match value { - ForkCallError::AbiDecodedError(v) => Self::ForkCallReverted(v), - other => Self::ForkerError(other), - } - } -} - -/// checks the front matter validity and parses the given rainlang string -/// with the deployer parsed from the front matter -/// returns abi encoded expression config on Ok variant -pub async fn parse_rainlang_on_fork( - rainlang: &str, - rpc_url: &str, - block_number: Option, - deployer: Address, -) -> Result { - // Prepare evm fork - let block_number_val = match block_number { - Some(b) => b, - None => { - let client = ReadableClientHttp::new_from_url(rpc_url.to_string())?; - - client.get_block_number().await? - } - }; - let args = NewForkedEvm { - fork_url: rpc_url.to_owned(), - fork_block_number: Some(block_number_val), - }; - let mut forker = FORKER.lock().await; - forker.add_or_select(args, None).await?; - - let parse_args = ForkParseArgs { - rainlang_string: rainlang.to_owned(), - deployer, - decode_errors: true, - }; - let result = forker.fork_parse(parse_args).await?; - - Ok(result.raw.result.0) -} /// Compose to rainlang string by setting elided bindings to zero pub fn compose_to_rainlang( @@ -114,3 +43,81 @@ pub fn compose_to_rainlang( RainDocument::create(dotrain, Some(meta_store), None, Some(final_bindings)) .compose(&ORDERBOOK_ORDER_ENTRYPOINTS) } + +#[cfg(not(target_family = "wasm"))] +pub use fork_parse::*; + +#[cfg(not(target_family = "wasm"))] +mod fork_parse { + use alloy_ethers_typecast::transaction::{ReadableClientError, ReadableClientHttp}; + use alloy_primitives::{bytes::Bytes, Address}; + use once_cell::sync::Lazy; + use rain_error_decoding::AbiDecodedErrorType; + use rain_interpreter_eval::error::ForkCallError; + use rain_interpreter_eval::eval::ForkParseArgs; + use rain_interpreter_eval::fork::Forker; + use rain_interpreter_eval::fork::NewForkedEvm; + use std::sync::Arc; + use thiserror::Error; + use tokio::sync::Mutex; + + pub static FORKER: Lazy>> = Lazy::new(|| Arc::new(Mutex::new(Forker::new()))); + + #[derive(Debug, Error)] + pub enum ForkParseError { + #[error("Fork Cache Poisoned")] + ForkCachePoisoned, + #[error(transparent)] + ForkerError(ForkCallError), + #[error("Fork Call Reverted: {0}")] + ForkCallReverted(#[from] AbiDecodedErrorType), + #[error(transparent)] + ReadableClientError(#[from] ReadableClientError), + #[error("Failed to read Parser address from deployer")] + ReadParserAddressFailed, + } + + impl From for ForkParseError { + fn from(value: ForkCallError) -> Self { + match value { + ForkCallError::AbiDecodedError(v) => Self::ForkCallReverted(v), + other => Self::ForkerError(other), + } + } + } + + /// checks the front matter validity and parses the given rainlang string + /// with the deployer parsed from the front matter + /// returns abi encoded expression config on Ok variant + pub async fn parse_rainlang_on_fork( + rainlang: &str, + rpc_url: &str, + block_number: Option, + deployer: Address, + ) -> Result { + // Prepare evm fork + let block_number_val = match block_number { + Some(b) => b, + None => { + let client = ReadableClientHttp::new_from_url(rpc_url.to_string())?; + + client.get_block_number().await? + } + }; + let args = NewForkedEvm { + fork_url: rpc_url.to_owned(), + fork_block_number: Some(block_number_val), + }; + let mut forker = FORKER.lock().await; + forker.add_or_select(args, None).await?; + + let parse_args = ForkParseArgs { + rainlang_string: rainlang.to_owned(), + deployer, + decode_errors: true, + }; + let result = forker.fork_parse(parse_args).await?; + + Ok(result.raw.result.0) + } +} diff --git a/crates/common/src/remove_order.rs b/crates/common/src/remove_order.rs index c678ef1c6..86a855339 100644 --- a/crates/common/src/remove_order.rs +++ b/crates/common/src/remove_order.rs @@ -1,7 +1,9 @@ -use crate::transaction::{TransactionArgs, TransactionArgsError}; -use alloy_ethers_typecast::transaction::{ - WritableClientError, WriteTransaction, WriteTransactionStatus, -}; +#[cfg(not(target_family = "wasm"))] +use crate::transaction::TransactionArgs; +use crate::transaction::TransactionArgsError; +use alloy_ethers_typecast::transaction::WritableClientError; +#[cfg(not(target_family = "wasm"))] +use alloy_ethers_typecast::transaction::{WriteTransaction, WriteTransactionStatus}; use alloy_primitives::hex::FromHexError; use alloy_sol_types::SolCall; @@ -47,6 +49,7 @@ impl TryInto for RemoveOrderArgs { } impl RemoveOrderArgs { + #[cfg(not(target_family = "wasm"))] pub async fn execute)>( self, transaction_args: TransactionArgs, diff --git a/crates/common/src/transaction.rs b/crates/common/src/transaction.rs index a5454b69f..c45971b7b 100644 --- a/crates/common/src/transaction.rs +++ b/crates/common/src/transaction.rs @@ -40,7 +40,7 @@ pub enum TransactionArgsError { LedgerClient(#[from] LedgerClientError), } -#[derive(Clone, Serialize, Deserialize)] +#[derive(Clone, Serialize, Deserialize, Default)] pub struct TransactionArgs { pub orderbook_address: Address, pub derivation_index: Option, diff --git a/crates/common/src/withdraw.rs b/crates/common/src/withdraw.rs index 9b5b457c6..37122e25e 100644 --- a/crates/common/src/withdraw.rs +++ b/crates/common/src/withdraw.rs @@ -1,4 +1,7 @@ -use crate::transaction::{TransactionArgs, WritableTransactionExecuteError}; +#[cfg(not(target_family = "wasm"))] +use crate::transaction::TransactionArgs; +use crate::transaction::WritableTransactionExecuteError; +#[cfg(not(target_family = "wasm"))] use alloy_ethers_typecast::transaction::{WriteTransaction, WriteTransactionStatus}; use alloy_primitives::{Address, U256}; use alloy_sol_types::SolCall; @@ -25,6 +28,7 @@ impl From for withdraw2Call { impl WithdrawArgs { /// Execute OrderbookV3 withdraw call + #[cfg(not(target_family = "wasm"))] pub async fn execute)>( &self, transaction_args: TransactionArgs, diff --git a/crates/quote/Cargo.toml b/crates/quote/Cargo.toml index 4bb17d62f..c17fbed81 100644 --- a/crates/quote/Cargo.toml +++ b/crates/quote/Cargo.toml @@ -20,7 +20,6 @@ serde_json = { workspace = true } thiserror = { workspace = true } tracing = { workspace = true } once_cell = { workspace = true } -# tokio = { workspace = true } url = { workspace = true } anyhow = { workspace = true } reqwest = { workspace = true } @@ -28,10 +27,10 @@ clap = { workspace = true, features = ["env"]} tracing-subscriber = { workspace = true, features = ['env-filter'] } [target.'cfg(not(target_family = "wasm"))'.dependencies] -tokio = { version = "1.28.0", features = ["full"] } +tokio = { workspace = true, features = ["full"] } [target.'cfg(target_family = "wasm")'.dependencies] -tokio = { version = "1.28.0", features = ["sync", "macros", "io-util", "rt", "time"] } +tokio = { workspace = true, features = ["sync", "macros", "io-util", "rt", "time"] } [dev-dependencies] httpmock = "0.7.0" \ No newline at end of file diff --git a/crates/settings/Cargo.toml b/crates/settings/Cargo.toml index 2eb34c261..c77e89c82 100644 --- a/crates/settings/Cargo.toml +++ b/crates/settings/Cargo.toml @@ -10,19 +10,15 @@ homepage = "https://github.com/rainprotocol/rain.orderbook" [dependencies] derive_builder = { workspace = true } -url = { workspace = true } +alloy-primitives = { workspace = true, features = ["serde"] } +url = { workspace = true, features = ["serde"] } thiserror = { workspace = true } -serde = { workspace = true } +serde = { workspace = true, features = ["derive", "rc"] } serde_yaml = { workspace = true } serde_json = { workspace = true } strict-yaml-rust = { workspace = true } -alloy-primitives = { workspace = true } typeshare = { workspace = true } -# tokio = { workspace = true } reqwest = { workspace = true } -[target.'cfg(not(target_family = "wasm"))'.dependencies] -tokio = { version = "1.28.0", features = ["full"] } - -[target.'cfg(target_family = "wasm")'.dependencies] -tokio = { version = "1.28.0", features = ["sync", "macros", "io-util", "rt", "time"] } \ No newline at end of file +[dev-dependencies] +tokio = { workspace = true } diff --git a/crates/subgraph/Cargo.toml b/crates/subgraph/Cargo.toml index 4e4ba0f91..64f0436f7 100644 --- a/crates/subgraph/Cargo.toml +++ b/crates/subgraph/Cargo.toml @@ -22,11 +22,7 @@ alloy-sol-types = { workspace = true } [dev-dependencies] insta = { workspace = true } -# tokio = { workspace = true } -tokio = { version = "1.28.0", features = ["full"] } +tokio = { workspace = true } [build-dependencies] cynic-codegen = { workspace = true } - -#[cfg_attr(not(target_family = "wasm"), async_trait)] - #[cfg_attr(target_family = "wasm", async_trait(?Send))] \ No newline at end of file diff --git a/lib/rain.interpreter b/lib/rain.interpreter index c9f37a37d..762469017 160000 --- a/lib/rain.interpreter +++ b/lib/rain.interpreter @@ -1 +1 @@ -Subproject commit c9f37a37d4e0fc34f011902ddbfdd1ddfcc3cf8d +Subproject commit 762469017521100a6e071394b775c93259cdd017 diff --git a/test/concrete/parser/OrderBookSubParser.signedContext.t.sol b/test/concrete/parser/OrderBookSubParser.signedContext.t.sol index 3351aab7b..f8b25a296 100644 --- a/test/concrete/parser/OrderBookSubParser.signedContext.t.sol +++ b/test/concrete/parser/OrderBookSubParser.signedContext.t.sol @@ -99,14 +99,14 @@ contract OrderBookSubParserSignedContextTest is OpTest { checkUnhappyParse(rainlang, abi.encodeWithSelector(UnexpectedOperandValue.selector)); } - // /// Test signed-context with an input errors. - // function testSubParserContextSignedContextUnhappyInput() external { - // OrderBookSubParser orderBookSubParser = new OrderBookSubParser(); + /// Test signed-context with an input errors. + function testSubParserContextSignedContextUnhappyInput() external { + OrderBookSubParser orderBookSubParser = new OrderBookSubParser(); - // bytes memory rainlang = bytes( - // string.concat("using-words-from ", address(orderBookSubParser).toHexString(), " _: signed-context<0 0>(0);") - // ); + bytes memory rainlang = bytes( + string.concat("using-words-from ", address(orderBookSubParser).toHexString(), " _: signed-context<0 0>(0);") + ); - // checkUnhappyDeploy(rainlang, abi.encodeWithSelector(StackAllocationMismatch.selector, 2, 1)); - // } + checkUnhappyDeploy(rainlang, abi.encodeWithSelector(StackAllocationMismatch.selector, 2, 1)); + } } diff --git a/test/concrete/parser/OrderBookSubParser.signers.t.sol b/test/concrete/parser/OrderBookSubParser.signers.t.sol index f25aeeac7..be46115df 100644 --- a/test/concrete/parser/OrderBookSubParser.signers.t.sol +++ b/test/concrete/parser/OrderBookSubParser.signers.t.sol @@ -57,13 +57,13 @@ contract OrderBookSubParserSignersTest is OpTest { checkUnhappyParse(rainlang, abi.encodeWithSelector(UnexpectedOperandValue.selector)); } - // /// Test signer with an input errors. - // function testSubParserContextSignerUnhappyInput() external { - // OrderBookSubParser orderBookSubParser = new OrderBookSubParser(); + /// Test signer with an input errors. + function testSubParserContextSignerUnhappyInput() external { + OrderBookSubParser orderBookSubParser = new OrderBookSubParser(); - // bytes memory rainlang = - // bytes(string.concat("using-words-from ", address(orderBookSubParser).toHexString(), " _: signer<0>(0);")); + bytes memory rainlang = + bytes(string.concat("using-words-from ", address(orderBookSubParser).toHexString(), " _: signer<0>(0);")); - // checkUnhappyDeploy(rainlang, abi.encodeWithSelector(StackAllocationMismatch.selector, 2, 1)); - // } + checkUnhappyDeploy(rainlang, abi.encodeWithSelector(StackAllocationMismatch.selector, 2, 1)); + } } diff --git a/test/util/abstract/OrderBookSubParserContextTest.sol b/test/util/abstract/OrderBookSubParserContextTest.sol index fd4c1687c..3bdc11f30 100644 --- a/test/util/abstract/OrderBookSubParserContextTest.sol +++ b/test/util/abstract/OrderBookSubParserContextTest.sol @@ -35,13 +35,13 @@ abstract contract OrderBookSubParserContextTest is OpTest { checkDisallowedOperand(rainlang); } - // function testSubParserContextUnhappyDisallowedInputs() external { - // string memory w = word(); - // OrderBookSubParser orderBookSubParser = new OrderBookSubParser(); + function testSubParserContextUnhappyDisallowedInputs() external { + string memory w = word(); + OrderBookSubParser orderBookSubParser = new OrderBookSubParser(); - // bytes memory rainlang = - // bytes(string.concat("using-words-from ", address(orderBookSubParser).toHexString(), " _: ", w, "(1);")); + bytes memory rainlang = + bytes(string.concat("using-words-from ", address(orderBookSubParser).toHexString(), " _: ", w, "(1);")); - // checkUnhappyDeploy(rainlang, abi.encodeWithSelector(StackAllocationMismatch.selector, 2, 1)); - // } + checkUnhappyDeploy(rainlang, abi.encodeWithSelector(StackAllocationMismatch.selector, 2, 1)); + } } From 6cc1b9eb38d2cc608379da8703b24cfcbbc5b0a9 Mon Sep 17 00:00:00 2001 From: rouzwelt Date: Sat, 3 Aug 2024 03:49:14 +0000 Subject: [PATCH 06/19] update --- .github/workflows/rainix.yaml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/.github/workflows/rainix.yaml b/.github/workflows/rainix.yaml index b729c5c54..dce89c26c 100644 --- a/.github/workflows/rainix.yaml +++ b/.github/workflows/rainix.yaml @@ -60,8 +60,4 @@ jobs: run: nix develop -c ${{ matrix.task }} - name: Build for wasm target - run: nix develop -c cargo build --target wasm32-unknown-unknown -p rain_orderbook_app_settings - env: - ETH_RPC_URL: ${{ secrets.CI_DEPLOY_SEPOLIA_RPC_URL || vars.CI_DEPLOY_SEPOLIA_RPC_URL }} - ETHERSCAN_API_KEY: ${{ secrets.EXPLORER_VERIFICATION_KEY }} - DEPLOY_VERIFIER: "" + run: nix develop -c cargo build --target wasm32-unknown-unknown --workspace --exclude rain_orderbook_cli --exclude rain-orderbook-env From 579ac5242ccefedac96e2fe1b3b8525e41fef0fe Mon Sep 17 00:00:00 2001 From: rouzwelt Date: Sat, 3 Aug 2024 04:02:41 +0000 Subject: [PATCH 07/19] update --- crates/common/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/common/src/lib.rs b/crates/common/src/lib.rs index 70b5400fe..ac36b8426 100644 --- a/crates/common/src/lib.rs +++ b/crates/common/src/lib.rs @@ -15,7 +15,7 @@ pub mod types; pub mod utils; pub mod withdraw; -// #[cfg(target_family = "wasm")] +#[cfg(target_family = "wasm")] pub mod js_api; pub use dotrain; From df5bfeb72a8b42298c85c7b878aa1a0698c43f5a Mon Sep 17 00:00:00 2001 From: thedavidmeister Date: Sat, 3 Aug 2024 18:14:36 +0400 Subject: [PATCH 08/19] wip on update contracts --- .gitmodules | 12 ------------ lib/rain.erc1820 | 1 - lib/rain.interpreter | 2 +- lib/rain.lib.memkv | 1 - lib/rain.metadata | 1 - lib/rain.solmem | 1 - .../parser/OrderBookSubParser.signedContext.t.sol | 2 +- .../concrete/parser/OrderBookSubParser.signers.t.sol | 2 +- test/util/abstract/OrderBookSubParserContextTest.sol | 2 +- 9 files changed, 4 insertions(+), 20 deletions(-) delete mode 160000 lib/rain.erc1820 delete mode 160000 lib/rain.lib.memkv delete mode 160000 lib/rain.metadata delete mode 160000 lib/rain.solmem diff --git a/.gitmodules b/.gitmodules index f54074512..06a43b165 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,21 +1,9 @@ -[submodule "lib/rain.erc1820"] - path = lib/rain.erc1820 - url = https://github.com/rainprotocol/rain.erc1820 -[submodule "lib/rain.lib.memkv"] - path = lib/rain.lib.memkv - url = https://github.com/rainprotocol/rain.lib.memkv [submodule "lib/sushixswap-v2"] path = lib/sushixswap-v2 url = https://github.com/rainprotocol/sushixswap-v2 -[submodule "lib/rain.solmem"] - path = lib/rain.solmem - url = https://github.com/rainprotocol/rain.solmem [submodule "lib/rain.orderbook.interface"] path = lib/rain.orderbook.interface url = https://github.com/rainlanguage/rain.orderbook.interface -[submodule "lib/rain.metadata"] - path = lib/rain.metadata - url = https://github.com/rainlanguage/rain.metadata [submodule "lib/rain.interpreter"] path = lib/rain.interpreter url = https://github.com/rainlanguage/rain.interpreter diff --git a/lib/rain.erc1820 b/lib/rain.erc1820 deleted file mode 160000 index 1fe5e050d..000000000 --- a/lib/rain.erc1820 +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 1fe5e050d194a76f26d712604abb5db32639b06a diff --git a/lib/rain.interpreter b/lib/rain.interpreter index 762469017..004f79f5c 160000 --- a/lib/rain.interpreter +++ b/lib/rain.interpreter @@ -1 +1 @@ -Subproject commit 762469017521100a6e071394b775c93259cdd017 +Subproject commit 004f79f5cbfb2e4d9922ad7c9e5c74b1d5ace69e diff --git a/lib/rain.lib.memkv b/lib/rain.lib.memkv deleted file mode 160000 index 818f262f9..000000000 --- a/lib/rain.lib.memkv +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 818f262f91ac4402d9c800d333ae512874bca6e5 diff --git a/lib/rain.metadata b/lib/rain.metadata deleted file mode 160000 index 879bd885a..000000000 --- a/lib/rain.metadata +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 879bd885a13fa6233b44cf68ee3e94bec47d1751 diff --git a/lib/rain.solmem b/lib/rain.solmem deleted file mode 160000 index 6414ab88a..000000000 --- a/lib/rain.solmem +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 6414ab88a017eacf2b263e9e08d0787fbd677192 diff --git a/test/concrete/parser/OrderBookSubParser.signedContext.t.sol b/test/concrete/parser/OrderBookSubParser.signedContext.t.sol index f8b25a296..937726774 100644 --- a/test/concrete/parser/OrderBookSubParser.signedContext.t.sol +++ b/test/concrete/parser/OrderBookSubParser.signedContext.t.sol @@ -107,6 +107,6 @@ contract OrderBookSubParserSignedContextTest is OpTest { string.concat("using-words-from ", address(orderBookSubParser).toHexString(), " _: signed-context<0 0>(0);") ); - checkUnhappyDeploy(rainlang, abi.encodeWithSelector(StackAllocationMismatch.selector, 2, 1)); + checkUnhappyParse2(rainlang, abi.encodeWithSelector(StackAllocationMismatch.selector, 2, 1)); } } diff --git a/test/concrete/parser/OrderBookSubParser.signers.t.sol b/test/concrete/parser/OrderBookSubParser.signers.t.sol index be46115df..6edf44f72 100644 --- a/test/concrete/parser/OrderBookSubParser.signers.t.sol +++ b/test/concrete/parser/OrderBookSubParser.signers.t.sol @@ -64,6 +64,6 @@ contract OrderBookSubParserSignersTest is OpTest { bytes memory rainlang = bytes(string.concat("using-words-from ", address(orderBookSubParser).toHexString(), " _: signer<0>(0);")); - checkUnhappyDeploy(rainlang, abi.encodeWithSelector(StackAllocationMismatch.selector, 2, 1)); + checkUnhappyParse2(rainlang, abi.encodeWithSelector(StackAllocationMismatch.selector, 2, 1)); } } diff --git a/test/util/abstract/OrderBookSubParserContextTest.sol b/test/util/abstract/OrderBookSubParserContextTest.sol index 3bdc11f30..a65cd3ae2 100644 --- a/test/util/abstract/OrderBookSubParserContextTest.sol +++ b/test/util/abstract/OrderBookSubParserContextTest.sol @@ -42,6 +42,6 @@ abstract contract OrderBookSubParserContextTest is OpTest { bytes memory rainlang = bytes(string.concat("using-words-from ", address(orderBookSubParser).toHexString(), " _: ", w, "(1);")); - checkUnhappyDeploy(rainlang, abi.encodeWithSelector(StackAllocationMismatch.selector, 2, 1)); + checkUnhappyParse2(rainlang, abi.encodeWithSelector(StackAllocationMismatch.selector, 2, 1)); } } From f2dff7981669e8ed1b83d613c2def57b459b7976 Mon Sep 17 00:00:00 2001 From: thedavidmeister Date: Sat, 3 Aug 2024 19:26:40 +0400 Subject: [PATCH 09/19] wip on update interface --- .github/workflows/rainix.yaml | 2 -- lib/rain.orderbook.interface | 2 +- script/Deploy.sol | 2 +- src/abstract/OrderBookV4ArbCommon.sol | 6 +++--- src/abstract/OrderBookV4ArbOrderTaker.sol | 12 ++++++------ src/abstract/OrderBookV4FlashBorrower.sol | 6 +++--- src/concrete/ob/OrderBook.sol | 10 +++++----- src/lib/LibOrder.sol | 2 +- src/lib/LibOrderBook.sol | 4 ++-- src/lib/LibOrderBookSubParser.sol | 2 +- .../OrderBookV4ArbOrderTaker.ierc165.t.sol | 2 +- .../OrderBookV4FlashBorrower.ierc165.t.sol | 2 +- .../OrderBookV4FlashLender.reentrant.t.sol | 8 ++++---- ...PoolOrderBookV4ArbOrderTaker.expression.t.sol | 2 +- ...ericPoolOrderBookV4ArbOrderTaker.sender.t.sol | 2 +- ...ericPoolOrderBookV4FlashBorrower.sender.t.sol | 2 +- ...ssorOrderBookV4ArbOrderTaker.expression.t.sol | 2 +- ...rocessorOrderBookV4ArbOrderTaker.sender.t.sol | 2 +- test/concrete/ob/OrderBook.addOrder.enact.t.sol | 2 +- test/concrete/ob/OrderBook.addOrder.mock.t.sol | 4 ++-- test/concrete/ob/OrderBook.addOrder.nonce.t.sol | 2 +- test/concrete/ob/OrderBook.addOrder.owner.t.sol | 2 +- test/concrete/ob/OrderBook.addOrder.t.sol | 4 ++-- test/concrete/ob/OrderBook.clear.badStack.t.sol | 2 +- .../ob/OrderBook.clear.handleIO.revert.t.sol | 2 +- test/concrete/ob/OrderBook.clear.mock.t.sol | 2 +- test/concrete/ob/OrderBook.deposit.enact.t.sol | 2 +- test/concrete/ob/OrderBook.deposit.t.sol | 2 +- test/concrete/ob/OrderBook.enact.t.sol | 2 +- test/concrete/ob/OrderBook.quote.t.sol | 4 ++-- .../ob/OrderBook.removeOrder.enact.t.sol | 2 +- .../concrete/ob/OrderBook.removeOrder.mock.t.sol | 2 +- .../ob/OrderBook.removeOrder.owner.t.sol | 2 +- .../ob/OrderBook.takeOrder.badStack.t.sol | 4 ++-- .../ob/OrderBook.takeOrder.handleIO.revert.t.sol | 2 +- .../ob/OrderBook.takeOrder.maximumInput.t.sol | 2 +- test/concrete/ob/OrderBook.takeOrder.noop.t.sol | 2 +- .../ob/OrderBook.takeOrder.precision.t.sol | 2 +- .../ob/OrderBook.takeOrder.tokenMismatch.t.sol | 2 +- ...derBook.takeOrder.tokenMismatchDecimals.t.sol | 2 +- test/concrete/ob/OrderBook.withdraw.enact.t.sol | 2 +- test/concrete/ob/OrderBook.withdraw.t.sol | 2 +- test/util/abstract/ArbTest.sol | 4 ++-- test/util/abstract/IOrderBookV4Stub.sol | 2 +- test/util/abstract/OrderBookExternalMockTest.sol | 6 +++--- test/util/abstract/OrderBookExternalRealTest.sol | 16 ++-------------- test/util/concrete/FlashLendingMockOrderBook.sol | 2 +- test/util/lib/LibTestAddOrder.sol | 6 +++--- 48 files changed, 74 insertions(+), 88 deletions(-) diff --git a/.github/workflows/rainix.yaml b/.github/workflows/rainix.yaml index dce89c26c..0b4d7e9fc 100644 --- a/.github/workflows/rainix.yaml +++ b/.github/workflows/rainix.yaml @@ -44,8 +44,6 @@ jobs: working-directory: lib/rain.interpreter - run: nix develop -c rainix-rs-prelude working-directory: lib/rain.interpreter - - run: nix develop -c rainix-sol-prelude - working-directory: lib/rain.metadata - run: nix develop -c rainix-sol-prelude - run: nix develop -c rainix-rs-prelude diff --git a/lib/rain.orderbook.interface b/lib/rain.orderbook.interface index a49951c4e..a9f5a2272 160000 --- a/lib/rain.orderbook.interface +++ b/lib/rain.orderbook.interface @@ -1 +1 @@ -Subproject commit a49951c4ed1cce762a4aee6d1bf07675645037d1 +Subproject commit a9f5a227250457795673ae9008db70e7c314f33c diff --git a/script/Deploy.sol b/script/Deploy.sol index b5b691dcd..9f1c6a9fc 100644 --- a/script/Deploy.sol +++ b/script/Deploy.sol @@ -11,7 +11,7 @@ import {OrderBookV4ArbConfigV1} from "src/abstract/OrderBookV4ArbCommon.sol"; import {IMetaBoardV1} from "rain.metadata/interface/IMetaBoardV1.sol"; import {LibDescribedByMeta} from "rain.metadata/lib/LibDescribedByMeta.sol"; import {IInterpreterStoreV2} from "rain.interpreter.interface/interface/IInterpreterStoreV2.sol"; -import {IInterpreterV3} from "rain.interpreter.interface/interface/unstable/IInterpreterV3.sol"; +import {IInterpreterV3} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; bytes32 constant DEPLOYMENT_SUITE_ALL = keccak256("all"); bytes32 constant DEPLOYMENT_SUITE_RAINDEX = keccak256("raindex"); diff --git a/src/abstract/OrderBookV4ArbCommon.sol b/src/abstract/OrderBookV4ArbCommon.sol index 15ba9e2d0..a9122d329 100644 --- a/src/abstract/OrderBookV4ArbCommon.sol +++ b/src/abstract/OrderBookV4ArbCommon.sol @@ -1,13 +1,13 @@ // SPDX-License-Identifier: CAL pragma solidity ^0.8.19; -import {EvaluableV3, SignedContextV1} from "rain.interpreter.interface/interface/unstable/IInterpreterCallerV3.sol"; +import {EvaluableV3, SignedContextV1} from "rain.interpreter.interface/interface/IInterpreterCallerV3.sol"; import { IInterpreterV3, SourceIndexV2, DEFAULT_STATE_NAMESPACE -} from "rain.interpreter.interface/interface/unstable/IInterpreterV3.sol"; -import {IOrderBookV4} from "rain.orderbook.interface/interface/unstable/IOrderBookV4.sol"; +} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; +import {IOrderBookV4} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; import {LibContext} from "rain.interpreter.interface/lib/caller/LibContext.sol"; import {LibNamespace} from "rain.interpreter.interface/lib/ns/LibNamespace.sol"; import {LibEvaluable} from "rain.interpreter.interface/lib/caller/LibEvaluable.sol"; diff --git a/src/abstract/OrderBookV4ArbOrderTaker.sol b/src/abstract/OrderBookV4ArbOrderTaker.sol index 7f54b1b6d..20329f677 100644 --- a/src/abstract/OrderBookV4ArbOrderTaker.sol +++ b/src/abstract/OrderBookV4ArbOrderTaker.sol @@ -6,19 +6,19 @@ import {ReentrancyGuard} from "openzeppelin-contracts/contracts/security/Reentra import {IERC20} from "openzeppelin-contracts/contracts/token/ERC20/IERC20.sol"; import {SafeERC20} from "openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol"; import {Address} from "openzeppelin-contracts/contracts/utils/Address.sol"; -import {SourceIndexV2} from "rain.interpreter.interface/interface/unstable/IInterpreterV3.sol"; -import {EncodedDispatch, LibEncodedDispatch} from "rain.interpreter.interface/lib/caller/LibEncodedDispatch.sol"; +import {SourceIndexV2} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; +import {EncodedDispatch, LibEncodedDispatch} from "rain.interpreter.interface/lib/deprecated/caller/LibEncodedDispatch.sol"; import {LibNamespace} from "rain.interpreter.interface/lib/ns/LibNamespace.sol"; -import {IOrderBookV4, NoOrders} from "rain.orderbook.interface/interface/unstable/IOrderBookV4.sol"; +import {IOrderBookV4, NoOrders} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; import { IOrderBookV4ArbOrderTaker, IOrderBookV4OrderTaker -} from "rain.orderbook.interface/interface/unstable/IOrderBookV4ArbOrderTaker.sol"; +} from "rain.orderbook.interface/interface/IOrderBookV4ArbOrderTaker.sol"; import { IInterpreterV3, DEFAULT_STATE_NAMESPACE -} from "rain.interpreter.interface/interface/unstable/IInterpreterV3.sol"; +} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; import {IInterpreterStoreV2} from "rain.interpreter.interface/interface/IInterpreterStoreV2.sol"; -import {TakeOrdersConfigV3} from "rain.orderbook.interface/interface/unstable/IOrderBookV4.sol"; +import {TakeOrdersConfigV3} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; import { BadLender, MinimumOutput, diff --git a/src/abstract/OrderBookV4FlashBorrower.sol b/src/abstract/OrderBookV4FlashBorrower.sol index 7524b6a4c..649348257 100644 --- a/src/abstract/OrderBookV4FlashBorrower.sol +++ b/src/abstract/OrderBookV4FlashBorrower.sol @@ -6,12 +6,12 @@ import {SafeERC20} from "openzeppelin-contracts/contracts/token/ERC20/utils/Safe import {Address} from "openzeppelin-contracts/contracts/utils/Address.sol"; import {IERC20} from "openzeppelin-contracts/contracts/token/ERC20/IERC20.sol"; import {ReentrancyGuard} from "openzeppelin-contracts/contracts/security/ReentrancyGuard.sol"; -import {LibEncodedDispatch, EncodedDispatch} from "rain.interpreter.interface/lib/caller/LibEncodedDispatch.sol"; +import {LibEncodedDispatch, EncodedDispatch} from "rain.interpreter.interface/lib/deprecated/caller/LibEncodedDispatch.sol"; import {LibBytecode} from "rain.interpreter.interface/lib/bytecode/LibBytecode.sol"; import {ON_FLASH_LOAN_CALLBACK_SUCCESS} from "rain.orderbook.interface/interface/ierc3156/IERC3156FlashBorrower.sol"; import { IOrderBookV4, TakeOrdersConfigV3, NoOrders -} from "rain.orderbook.interface/interface/unstable/IOrderBookV4.sol"; +} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; import {IERC3156FlashBorrower} from "rain.orderbook.interface/interface/ierc3156/IERC3156FlashBorrower.sol"; import {IInterpreterStoreV2} from "rain.interpreter.interface/interface/IInterpreterStoreV2.sol"; import { @@ -21,7 +21,7 @@ import { OrderBookV4ArbConfigV1, OrderBookV4ArbCommon } from "./OrderBookV4ArbCommon.sol"; -import {EvaluableV3, SignedContextV1} from "rain.interpreter.interface/interface/unstable/IInterpreterCallerV3.sol"; +import {EvaluableV3, SignedContextV1} from "rain.interpreter.interface/interface/IInterpreterCallerV3.sol"; /// Thrown when the initiator is not the order book. /// @param badInitiator The untrusted initiator of the flash loan. diff --git a/src/concrete/ob/OrderBook.sol b/src/concrete/ob/OrderBook.sol index 799e83b1c..9aaa20955 100644 --- a/src/concrete/ob/OrderBook.sol +++ b/src/concrete/ob/OrderBook.sol @@ -11,17 +11,17 @@ import {FLAG_SATURATE, FLAG_ROUND_UP} from "rain.math.fixedpoint/lib/FixedPointD import {LibFixedPointDecimalArithmeticOpenZeppelin} from "rain.math.fixedpoint/lib/LibFixedPointDecimalArithmeticOpenZeppelin.sol"; import {LibFixedPointDecimalScale} from "rain.math.fixedpoint/lib/LibFixedPointDecimalScale.sol"; -import {LibEncodedDispatch, EncodedDispatch} from "rain.interpreter.interface/lib/caller/LibEncodedDispatch.sol"; +import {LibEncodedDispatch, EncodedDispatch} from "rain.interpreter.interface/lib/deprecated/caller/LibEncodedDispatch.sol"; import {LibContext} from "rain.interpreter.interface/lib/caller/LibContext.sol"; import {LibBytecode} from "rain.interpreter.interface/lib/bytecode/LibBytecode.sol"; import { SourceIndexV2, StateNamespace, IInterpreterV3 -} from "rain.interpreter.interface/interface/unstable/IInterpreterV3.sol"; +} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; import {LibUint256Array} from "rain.solmem/lib/LibUint256Array.sol"; import {IInterpreterStoreV2} from "rain.interpreter.interface/interface/IInterpreterStoreV2.sol"; -import {IExpressionDeployerV3} from "rain.interpreter.interface/interface/IExpressionDeployerV3.sol"; +import {IExpressionDeployerV3} from "rain.interpreter.interface/interface/deprecated/IExpressionDeployerV3.sol"; import {LibNamespace} from "rain.interpreter.interface/lib/ns/LibNamespace.sol"; import {LibMeta} from "rain.metadata/lib/LibMeta.sol"; import {IMetaV1} from "rain.metadata/interface/IMetaV1.sol"; @@ -41,8 +41,8 @@ import { EvaluableV3, ActionV1, Quote -} from "rain.orderbook.interface/interface/unstable/IOrderBookV4.sol"; -import {IOrderBookV4OrderTaker} from "rain.orderbook.interface/interface/unstable/IOrderBookV4OrderTaker.sol"; +} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; +import {IOrderBookV4OrderTaker} from "rain.orderbook.interface/interface/IOrderBookV4OrderTaker.sol"; import {LibOrder} from "../../lib/LibOrder.sol"; import { CALLING_CONTEXT_COLUMNS, diff --git a/src/lib/LibOrder.sol b/src/lib/LibOrder.sol index d999f1d44..47529528d 100644 --- a/src/lib/LibOrder.sol +++ b/src/lib/LibOrder.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: CAL pragma solidity ^0.8.18; -import {OrderV3} from "rain.orderbook.interface/interface/unstable/IOrderBookV4.sol"; +import {OrderV3} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; /// @title LibOrder /// @notice Consistent handling of `OrderV3` for where it matters w.r.t. diff --git a/src/lib/LibOrderBook.sol b/src/lib/LibOrderBook.sol index c0b62a103..b01436ccf 100644 --- a/src/lib/LibOrderBook.sol +++ b/src/lib/LibOrderBook.sol @@ -7,8 +7,8 @@ import { CONTEXT_BASE_ROW_CALLING_CONTRACT, CONTEXT_BASE_COLUMN } from "rain.interpreter.interface/lib/caller/LibContext.sol"; -import {EvaluableV3, ActionV1} from "rain.orderbook.interface/interface/unstable/IOrderBookV4.sol"; -import {SourceIndexV2, StateNamespace} from "rain.interpreter.interface/interface/unstable/IInterpreterV3.sol"; +import {EvaluableV3, ActionV1} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; +import {SourceIndexV2, StateNamespace} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; import {LibNamespace} from "rain.interpreter.interface/lib/ns/LibNamespace.sol"; import {LibContext} from "rain.interpreter.interface/lib/caller/LibContext.sol"; diff --git a/src/lib/LibOrderBookSubParser.sol b/src/lib/LibOrderBookSubParser.sol index 25d2c089d..2fe2d6e98 100644 --- a/src/lib/LibOrderBookSubParser.sol +++ b/src/lib/LibOrderBookSubParser.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: CAL pragma solidity ^0.8.19; -import {AuthoringMetaV2, Operand} from "rain.interpreter.interface/interface/ISubParserV2.sol"; +import {AuthoringMetaV2, Operand} from "rain.interpreter.interface/interface/ISubParserV3.sol"; import {LibUint256Matrix} from "rain.solmem/lib/LibUint256Matrix.sol"; import {LibSubParse} from "rain.interpreter/lib/parse/LibSubParse.sol"; import { diff --git a/test/abstract/OrderBookV4ArbOrderTaker.ierc165.t.sol b/test/abstract/OrderBookV4ArbOrderTaker.ierc165.t.sol index 41b0b706a..078ab7b39 100644 --- a/test/abstract/OrderBookV4ArbOrderTaker.ierc165.t.sol +++ b/test/abstract/OrderBookV4ArbOrderTaker.ierc165.t.sol @@ -10,7 +10,7 @@ import { OrderBookV4ArbConfigV1, IOrderBookV4OrderTaker } from "src/abstract/OrderBookV4ArbOrderTaker.sol"; -import {IInterpreterV3} from "rain.interpreter.interface/interface/unstable/IInterpreterV3.sol"; +import {IInterpreterV3} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; import {IInterpreterStoreV2} from "rain.interpreter.interface/interface/IInterpreterStoreV2.sol"; /// @dev We need a contract that is deployable in order to test the abstract diff --git a/test/abstract/OrderBookV4FlashBorrower.ierc165.t.sol b/test/abstract/OrderBookV4FlashBorrower.ierc165.t.sol index b90dbf83a..8889dd2ff 100644 --- a/test/abstract/OrderBookV4FlashBorrower.ierc165.t.sol +++ b/test/abstract/OrderBookV4FlashBorrower.ierc165.t.sol @@ -9,7 +9,7 @@ import { EvaluableV3, OrderBookV4ArbConfigV1 } from "src/abstract/OrderBookV4FlashBorrower.sol"; -import {IInterpreterV3} from "rain.interpreter.interface/interface/unstable/IInterpreterV3.sol"; +import {IInterpreterV3} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; import {IInterpreterStoreV2} from "rain.interpreter.interface/interface/IInterpreterStoreV2.sol"; /// @dev We need a contract that is deployable in order to test the abstract diff --git a/test/abstract/OrderBookV4FlashLender.reentrant.t.sol b/test/abstract/OrderBookV4FlashLender.reentrant.t.sol index ca2ad5490..86f9a2a80 100644 --- a/test/abstract/OrderBookV4FlashLender.reentrant.t.sol +++ b/test/abstract/OrderBookV4FlashLender.reentrant.t.sol @@ -12,13 +12,13 @@ import { TakeOrdersConfigV3, ClearConfig, ActionV1 -} from "rain.orderbook.interface/interface/unstable/IOrderBookV4.sol"; -import {IParserV2} from "rain.interpreter.interface/interface/unstable/IParserV2.sol"; +} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; +import {IParserV2} from "rain.interpreter.interface/interface/IParserV2.sol"; import {IERC3156FlashBorrower} from "rain.orderbook.interface/interface/ierc3156/IERC3156FlashBorrower.sol"; import {IERC20} from "openzeppelin-contracts/contracts/token/ERC20/IERC20.sol"; import {LibTestAddOrder} from "test/util/lib/LibTestAddOrder.sol"; -import {SignedContextV1} from "rain.interpreter.interface/interface/IInterpreterCallerV2.sol"; -import {EvaluableV3} from "rain.interpreter.interface/interface/unstable/IInterpreterCallerV3.sol"; +import {SignedContextV1} from "rain.interpreter.interface/interface/deprecated/IInterpreterCallerV2.sol"; +import {EvaluableV3} from "rain.interpreter.interface/interface/IInterpreterCallerV3.sol"; /// @title OrderBookV4FlashLenderReentrant /// Test that flash borrowers can reenter the orderbook, which is necessary for diff --git a/test/concrete/arb/GenericPoolOrderBookV4ArbOrderTaker.expression.t.sol b/test/concrete/arb/GenericPoolOrderBookV4ArbOrderTaker.expression.t.sol index f6f0e14f0..6c0877f74 100644 --- a/test/concrete/arb/GenericPoolOrderBookV4ArbOrderTaker.expression.t.sol +++ b/test/concrete/arb/GenericPoolOrderBookV4ArbOrderTaker.expression.t.sol @@ -14,7 +14,7 @@ import { IInterpreterV3, IInterpreterStoreV2, SignedContextV1 -} from "rain.orderbook.interface/interface/unstable/IOrderBookV4.sol"; +} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; import {LibContext} from "rain.interpreter.interface/lib/caller/LibContext.sol"; import { LibNamespace, diff --git a/test/concrete/arb/GenericPoolOrderBookV4ArbOrderTaker.sender.t.sol b/test/concrete/arb/GenericPoolOrderBookV4ArbOrderTaker.sender.t.sol index 6316c35f9..27a715a95 100644 --- a/test/concrete/arb/GenericPoolOrderBookV4ArbOrderTaker.sender.t.sol +++ b/test/concrete/arb/GenericPoolOrderBookV4ArbOrderTaker.sender.t.sol @@ -15,7 +15,7 @@ import { TakeOrdersConfigV3, IInterpreterV3, IInterpreterStoreV2 -} from "rain.orderbook.interface/interface/unstable/IOrderBookV4.sol"; +} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; contract GenericPoolOrderBookV4ArbOrderTakerSenderTest is GenericPoolOrderBookV4ArbOrderTakerTest { function testGenericPoolTakeOrdersSender(OrderV3 memory order, uint256 inputIOIndex, uint256 outputIOIndex) diff --git a/test/concrete/arb/GenericPoolOrderBookV4FlashBorrower.sender.t.sol b/test/concrete/arb/GenericPoolOrderBookV4FlashBorrower.sender.t.sol index 321fbdc50..d4888bc1b 100644 --- a/test/concrete/arb/GenericPoolOrderBookV4FlashBorrower.sender.t.sol +++ b/test/concrete/arb/GenericPoolOrderBookV4FlashBorrower.sender.t.sol @@ -15,7 +15,7 @@ import { TakeOrdersConfigV3, IInterpreterV3, IInterpreterStoreV2 -} from "rain.orderbook.interface/interface/unstable/IOrderBookV4.sol"; +} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; contract GenericPoolOrderBookV4FlashBorrowerTest is ArbTest { function buildArb(OrderBookV4ArbConfigV1 memory config) internal override returns (address) { diff --git a/test/concrete/arb/RouteProcessorOrderBookV4ArbOrderTaker.expression.t.sol b/test/concrete/arb/RouteProcessorOrderBookV4ArbOrderTaker.expression.t.sol index 311787e00..aed333861 100644 --- a/test/concrete/arb/RouteProcessorOrderBookV4ArbOrderTaker.expression.t.sol +++ b/test/concrete/arb/RouteProcessorOrderBookV4ArbOrderTaker.expression.t.sol @@ -10,7 +10,7 @@ import { TakeOrdersConfigV3, IInterpreterV3, IInterpreterStoreV2 -} from "rain.orderbook.interface/interface/unstable/IOrderBookV4.sol"; +} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; import {LibNamespace, DEFAULT_STATE_NAMESPACE, WrongEvaluable} from "src/abstract/OrderBookV4ArbCommon.sol"; import {RouteProcessorOrderBookV4ArbOrderTaker} from "src/concrete/arb/RouteProcessorOrderBookV4ArbOrderTaker.sol"; diff --git a/test/concrete/arb/RouteProcessorOrderBookV4ArbOrderTaker.sender.t.sol b/test/concrete/arb/RouteProcessorOrderBookV4ArbOrderTaker.sender.t.sol index 91ba1fe31..2f60e2dc2 100644 --- a/test/concrete/arb/RouteProcessorOrderBookV4ArbOrderTaker.sender.t.sol +++ b/test/concrete/arb/RouteProcessorOrderBookV4ArbOrderTaker.sender.t.sol @@ -10,7 +10,7 @@ import { TakeOrdersConfigV3, IInterpreterV3, IInterpreterStoreV2 -} from "rain.orderbook.interface/interface/unstable/IOrderBookV4.sol"; +} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; import { RouteProcessorOrderBookV4ArbOrderTaker, OrderBookV4ArbConfigV1, diff --git a/test/concrete/ob/OrderBook.addOrder.enact.t.sol b/test/concrete/ob/OrderBook.addOrder.enact.t.sol index 193f198e5..cbd972c36 100644 --- a/test/concrete/ob/OrderBook.addOrder.enact.t.sol +++ b/test/concrete/ob/OrderBook.addOrder.enact.t.sol @@ -8,7 +8,7 @@ import { ActionV1, OrderV3, SignedContextV1 -} from "rain.orderbook.interface/interface/unstable/IOrderBookV4.sol"; +} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; import {LibTestAddOrder} from "test/util/lib/LibTestAddOrder.sol"; import {LibOrder} from "src/lib/LibOrder.sol"; diff --git a/test/concrete/ob/OrderBook.addOrder.mock.t.sol b/test/concrete/ob/OrderBook.addOrder.mock.t.sol index bff55b373..354da317f 100644 --- a/test/concrete/ob/OrderBook.addOrder.mock.t.sol +++ b/test/concrete/ob/OrderBook.addOrder.mock.t.sol @@ -8,11 +8,11 @@ import { IO, EvaluableV3, ActionV1 -} from "rain.orderbook.interface/interface/unstable/IOrderBookV4.sol"; +} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; import {LibTestAddOrder} from "test/util/lib/LibTestAddOrder.sol"; import {NotRainMetaV1, META_MAGIC_NUMBER_V1} from "rain.metadata/interface/IMetaV1.sol"; import {LibMeta} from "rain.metadata/lib/LibMeta.sol"; -import {IExpressionDeployerV3} from "rain.interpreter.interface/interface/IExpressionDeployerV3.sol"; +import {IExpressionDeployerV3} from "rain.interpreter.interface/interface/deprecated/IExpressionDeployerV3.sol"; /// @title OrderBookAddOrderMockTest /// @notice Tests the addOrder function of the OrderBook contract. diff --git a/test/concrete/ob/OrderBook.addOrder.nonce.t.sol b/test/concrete/ob/OrderBook.addOrder.nonce.t.sol index 107d47f2b..0ad1d13e4 100644 --- a/test/concrete/ob/OrderBook.addOrder.nonce.t.sol +++ b/test/concrete/ob/OrderBook.addOrder.nonce.t.sol @@ -4,7 +4,7 @@ pragma solidity =0.8.25; import {OrderBookExternalRealTest} from "test/util/abstract/OrderBookExternalRealTest.sol"; import { OrderConfigV3, OrderV3, EvaluableV3, ActionV1 -} from "rain.orderbook.interface/interface/unstable/IOrderBookV4.sol"; +} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; import {LibTestAddOrder} from "test/util/lib/LibTestAddOrder.sol"; import {LibOrder} from "src/lib/LibOrder.sol"; diff --git a/test/concrete/ob/OrderBook.addOrder.owner.t.sol b/test/concrete/ob/OrderBook.addOrder.owner.t.sol index 62e1d0c5a..42de48cd6 100644 --- a/test/concrete/ob/OrderBook.addOrder.owner.t.sol +++ b/test/concrete/ob/OrderBook.addOrder.owner.t.sol @@ -4,7 +4,7 @@ pragma solidity =0.8.25; import {OrderBookExternalRealTest} from "test/util/abstract/OrderBookExternalRealTest.sol"; import { OrderConfigV3, OrderV3, EvaluableV3, ActionV1 -} from "rain.orderbook.interface/interface/unstable/IOrderBookV4.sol"; +} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; import {LibTestAddOrder} from "test/util/lib/LibTestAddOrder.sol"; import {LibOrder} from "src/lib/LibOrder.sol"; diff --git a/test/concrete/ob/OrderBook.addOrder.t.sol b/test/concrete/ob/OrderBook.addOrder.t.sol index c53d91e47..fded17d61 100644 --- a/test/concrete/ob/OrderBook.addOrder.t.sol +++ b/test/concrete/ob/OrderBook.addOrder.t.sol @@ -3,8 +3,8 @@ pragma solidity =0.8.25; import {OrderBookExternalRealTest} from "test/util/abstract/OrderBookExternalRealTest.sol"; import {LibTestAddOrder} from "test/util/lib/LibTestAddOrder.sol"; -import {OrderConfigV3, EvaluableV3, ActionV1} from "rain.orderbook.interface/interface/unstable/IOrderBookV4.sol"; -import {IParserV2} from "rain.interpreter.interface/interface/unstable/IParserV2.sol"; +import {OrderConfigV3, EvaluableV3, ActionV1} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; +import {IParserV2} from "rain.interpreter.interface/interface/IParserV2.sol"; import {UnsupportedCalculateOutputs, UnsupportedCalculateInputs} from "src/concrete/ob/OrderBook.sol"; /// @title OrderBookAddOrderTest diff --git a/test/concrete/ob/OrderBook.clear.badStack.t.sol b/test/concrete/ob/OrderBook.clear.badStack.t.sol index 6c2636a09..7551be330 100644 --- a/test/concrete/ob/OrderBook.clear.badStack.t.sol +++ b/test/concrete/ob/OrderBook.clear.badStack.t.sol @@ -10,7 +10,7 @@ import { ClearConfig, SignedContextV1, ActionV1 -} from "rain.orderbook.interface/interface/unstable/IOrderBookV4.sol"; +} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; import {UnsupportedCalculateOutputs} from "src/concrete/ob/OrderBook.sol"; contract OrderBookClearOrderBadStackTest is OrderBookExternalRealTest { diff --git a/test/concrete/ob/OrderBook.clear.handleIO.revert.t.sol b/test/concrete/ob/OrderBook.clear.handleIO.revert.t.sol index bfdc52fe1..16b0b2642 100644 --- a/test/concrete/ob/OrderBook.clear.handleIO.revert.t.sol +++ b/test/concrete/ob/OrderBook.clear.handleIO.revert.t.sol @@ -12,7 +12,7 @@ import { EvaluableV3, SignedContextV1, ActionV1 -} from "rain.orderbook.interface/interface/unstable/IOrderBookV4.sol"; +} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; import {SourceIndexOutOfBounds} from "rain.interpreter.interface/error/ErrBytecode.sol"; /// @title OrderBookClearHandleIORevertTest diff --git a/test/concrete/ob/OrderBook.clear.mock.t.sol b/test/concrete/ob/OrderBook.clear.mock.t.sol index b1757bc19..aa01de7d5 100644 --- a/test/concrete/ob/OrderBook.clear.mock.t.sol +++ b/test/concrete/ob/OrderBook.clear.mock.t.sol @@ -14,7 +14,7 @@ import { SignedContextV1, IInterpreterV3, ActionV1 -} from "rain.orderbook.interface/interface/unstable/IOrderBookV4.sol"; +} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; import {LibTestAddOrder} from "test/util/lib/LibTestAddOrder.sol"; import {NotOrderOwner} from "src/concrete/ob/OrderBook.sol"; diff --git a/test/concrete/ob/OrderBook.deposit.enact.t.sol b/test/concrete/ob/OrderBook.deposit.enact.t.sol index 7dc31b128..aab56a4ce 100644 --- a/test/concrete/ob/OrderBook.deposit.enact.t.sol +++ b/test/concrete/ob/OrderBook.deposit.enact.t.sol @@ -7,7 +7,7 @@ import { EvaluableV3, ActionV1, SignedContextV1 -} from "rain.orderbook.interface/interface/unstable/IOrderBookV4.sol"; +} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; import {IERC20} from "forge-std/interfaces/IERC20.sol"; contract OrderBookDepositEnactTest is OrderBookExternalRealTest { diff --git a/test/concrete/ob/OrderBook.deposit.t.sol b/test/concrete/ob/OrderBook.deposit.t.sol index ece477627..7c7d850fd 100644 --- a/test/concrete/ob/OrderBook.deposit.t.sol +++ b/test/concrete/ob/OrderBook.deposit.t.sol @@ -4,7 +4,7 @@ pragma solidity =0.8.25; import {stdError} from "forge-std/Test.sol"; import {REVERTING_MOCK_BYTECODE, CONSOLE_ADDRESS} from "test/util/lib/LibTestConstants.sol"; import {OrderBookExternalMockTest} from "test/util/abstract/OrderBookExternalMockTest.sol"; -import {ActionV1, EvaluableV3, IOrderBookV4} from "rain.orderbook.interface/interface/unstable/IOrderBookV4.sol"; +import {ActionV1, EvaluableV3, IOrderBookV4} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; import {Reenteroor} from "test/util/concrete/Reenteroor.sol"; import {IERC20} from "forge-std/interfaces/IERC20.sol"; diff --git a/test/concrete/ob/OrderBook.enact.t.sol b/test/concrete/ob/OrderBook.enact.t.sol index 32144c404..b25b45752 100644 --- a/test/concrete/ob/OrderBook.enact.t.sol +++ b/test/concrete/ob/OrderBook.enact.t.sol @@ -7,7 +7,7 @@ import { EvaluableV3, ActionV1, SignedContextV1 -} from "rain.orderbook.interface/interface/unstable/IOrderBookV4.sol"; +} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; contract OrderBookEnactTest is OrderBookExternalRealTest { function checkReentrancyRW() internal { diff --git a/test/concrete/ob/OrderBook.quote.t.sol b/test/concrete/ob/OrderBook.quote.t.sol index b727a9ff9..97a1dbc50 100644 --- a/test/concrete/ob/OrderBook.quote.t.sol +++ b/test/concrete/ob/OrderBook.quote.t.sol @@ -2,14 +2,14 @@ pragma solidity =0.8.25; import {OrderBookExternalRealTest} from "test/util/abstract/OrderBookExternalRealTest.sol"; -import {IOrderBookV4, Quote} from "rain.orderbook.interface/interface/unstable/IOrderBookV4.sol"; +import {IOrderBookV4, Quote} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; import { OrderConfigV3, EvaluableV3, ActionV1, OrderV3, SignedContextV1 -} from "rain.orderbook.interface/interface/unstable/IOrderBookV4.sol"; +} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; import {LibTestAddOrder} from "test/util/lib/LibTestAddOrder.sol"; import {IERC20} from "forge-std/interfaces/IERC20.sol"; diff --git a/test/concrete/ob/OrderBook.removeOrder.enact.t.sol b/test/concrete/ob/OrderBook.removeOrder.enact.t.sol index bf9ff1f80..5ab34f534 100644 --- a/test/concrete/ob/OrderBook.removeOrder.enact.t.sol +++ b/test/concrete/ob/OrderBook.removeOrder.enact.t.sol @@ -8,7 +8,7 @@ import { OrderV3, ActionV1, SignedContextV1 -} from "rain.orderbook.interface/interface/unstable/IOrderBookV4.sol"; +} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; import {LibTestAddOrder} from "test/util/lib/LibTestAddOrder.sol"; import {LibOrder} from "src/lib/LibOrder.sol"; diff --git a/test/concrete/ob/OrderBook.removeOrder.mock.t.sol b/test/concrete/ob/OrderBook.removeOrder.mock.t.sol index 4cef05b61..48107e901 100644 --- a/test/concrete/ob/OrderBook.removeOrder.mock.t.sol +++ b/test/concrete/ob/OrderBook.removeOrder.mock.t.sol @@ -4,7 +4,7 @@ pragma solidity =0.8.25; import {OrderBookExternalMockTest} from "test/util/abstract/OrderBookExternalMockTest.sol"; import { OrderConfigV3, OrderV3, EvaluableV3, ActionV1 -} from "rain.orderbook.interface/interface/unstable/IOrderBookV4.sol"; +} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; import {LibTestAddOrder} from "test/util/lib/LibTestAddOrder.sol"; import {NotOrderOwner} from "src/concrete/ob/OrderBook.sol"; diff --git a/test/concrete/ob/OrderBook.removeOrder.owner.t.sol b/test/concrete/ob/OrderBook.removeOrder.owner.t.sol index 5fb90105f..51d64b4c2 100644 --- a/test/concrete/ob/OrderBook.removeOrder.owner.t.sol +++ b/test/concrete/ob/OrderBook.removeOrder.owner.t.sol @@ -4,7 +4,7 @@ pragma solidity =0.8.25; import {OrderBookExternalRealTest} from "test/util/abstract/OrderBookExternalRealTest.sol"; import { OrderConfigV3, OrderV3, EvaluableV3, ActionV1 -} from "rain.orderbook.interface/interface/unstable/IOrderBookV4.sol"; +} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; import {LibTestAddOrder} from "test/util/lib/LibTestAddOrder.sol"; import {LibOrder} from "src/lib/LibOrder.sol"; import {NotOrderOwner} from "src/concrete/ob/OrderBook.sol"; diff --git a/test/concrete/ob/OrderBook.takeOrder.badStack.t.sol b/test/concrete/ob/OrderBook.takeOrder.badStack.t.sol index ce3a68b21..2e6394f63 100644 --- a/test/concrete/ob/OrderBook.takeOrder.badStack.t.sol +++ b/test/concrete/ob/OrderBook.takeOrder.badStack.t.sol @@ -9,8 +9,8 @@ import { OrderV3, EvaluableV3, ActionV1 -} from "rain.orderbook.interface/interface/unstable/IOrderBookV4.sol"; -import {TakeOrdersConfigV3, TakeOrderConfigV3} from "rain.orderbook.interface/interface/unstable/IOrderBookV4.sol"; +} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; +import {TakeOrdersConfigV3, TakeOrderConfigV3} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; import {UnsupportedCalculateOutputs} from "src/concrete/ob/OrderBook.sol"; contract OrderBookTakeOrderBadStackTest is OrderBookExternalRealTest { diff --git a/test/concrete/ob/OrderBook.takeOrder.handleIO.revert.t.sol b/test/concrete/ob/OrderBook.takeOrder.handleIO.revert.t.sol index f6b24a634..54c232eea 100644 --- a/test/concrete/ob/OrderBook.takeOrder.handleIO.revert.t.sol +++ b/test/concrete/ob/OrderBook.takeOrder.handleIO.revert.t.sol @@ -13,7 +13,7 @@ import { EvaluableV3, SignedContextV1, ActionV1 -} from "rain.orderbook.interface/interface/unstable/IOrderBookV4.sol"; +} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; import {SourceIndexOutOfBounds} from "rain.interpreter.interface/error/ErrBytecode.sol"; /// @title OrderBookTakeOrderHandleIORevertTest diff --git a/test/concrete/ob/OrderBook.takeOrder.maximumInput.t.sol b/test/concrete/ob/OrderBook.takeOrder.maximumInput.t.sol index 0815e5a93..5160fbb6a 100644 --- a/test/concrete/ob/OrderBook.takeOrder.maximumInput.t.sol +++ b/test/concrete/ob/OrderBook.takeOrder.maximumInput.t.sol @@ -12,7 +12,7 @@ import { EvaluableV3, OrderConfigV3, ActionV1 -} from "rain.orderbook.interface/interface/unstable/IOrderBookV4.sol"; +} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; import {SignedContextV1} from "rain.interpreter.interface/interface/IInterpreterCallerV2.sol"; contract OrderBookTakeOrderMaximumInputTest is OrderBookExternalRealTest { diff --git a/test/concrete/ob/OrderBook.takeOrder.noop.t.sol b/test/concrete/ob/OrderBook.takeOrder.noop.t.sol index 9f644f4fe..2ee0ebe90 100644 --- a/test/concrete/ob/OrderBook.takeOrder.noop.t.sol +++ b/test/concrete/ob/OrderBook.takeOrder.noop.t.sol @@ -12,7 +12,7 @@ import { TakeOrderConfigV3, SignedContextV1, EvaluableV3 -} from "rain.orderbook.interface/interface/unstable/IOrderBookV4.sol"; +} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; /// @title OrderBookTakeOrderNoopTest /// @notice A test harness for testing the OrderBook takeOrder function. Focuses diff --git a/test/concrete/ob/OrderBook.takeOrder.precision.t.sol b/test/concrete/ob/OrderBook.takeOrder.precision.t.sol index 8c9a6bb87..fb1fc7cbf 100644 --- a/test/concrete/ob/OrderBook.takeOrder.precision.t.sol +++ b/test/concrete/ob/OrderBook.takeOrder.precision.t.sol @@ -12,7 +12,7 @@ import { EvaluableV3, SignedContextV1, ActionV1 -} from "rain.orderbook.interface/interface/unstable/IOrderBookV4.sol"; +} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; /// @title OrderBookTakeOrderPrecisionTest /// @notice A test harness for testing the OrderBook takeOrder function. diff --git a/test/concrete/ob/OrderBook.takeOrder.tokenMismatch.t.sol b/test/concrete/ob/OrderBook.takeOrder.tokenMismatch.t.sol index 66988aff4..a80485002 100644 --- a/test/concrete/ob/OrderBook.takeOrder.tokenMismatch.t.sol +++ b/test/concrete/ob/OrderBook.takeOrder.tokenMismatch.t.sol @@ -9,7 +9,7 @@ import { TakeOrdersConfigV3, EvaluableV3, SignedContextV1 -} from "rain.orderbook.interface/interface/unstable/IOrderBookV4.sol"; +} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; import {TokenMismatch} from "src/concrete/ob/OrderBook.sol"; /// @title OrderBookTakeOrderTokenMismatchTest diff --git a/test/concrete/ob/OrderBook.takeOrder.tokenMismatchDecimals.t.sol b/test/concrete/ob/OrderBook.takeOrder.tokenMismatchDecimals.t.sol index f1e395b9b..00b639f39 100644 --- a/test/concrete/ob/OrderBook.takeOrder.tokenMismatchDecimals.t.sol +++ b/test/concrete/ob/OrderBook.takeOrder.tokenMismatchDecimals.t.sol @@ -9,7 +9,7 @@ import { OrderV3, EvaluableV3, SignedContextV1 -} from "rain.orderbook.interface/interface/unstable/IOrderBookV4.sol"; +} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; /// @title OrderBookTakeOrderTokenMismatchDecimalsTest /// @notice A test harness for testing the OrderBook takeOrder function. diff --git a/test/concrete/ob/OrderBook.withdraw.enact.t.sol b/test/concrete/ob/OrderBook.withdraw.enact.t.sol index df0760fcc..3aeddad5b 100644 --- a/test/concrete/ob/OrderBook.withdraw.enact.t.sol +++ b/test/concrete/ob/OrderBook.withdraw.enact.t.sol @@ -7,7 +7,7 @@ import { EvaluableV3, ActionV1, SignedContextV1 -} from "rain.orderbook.interface/interface/unstable/IOrderBookV4.sol"; +} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; import {IERC20} from "forge-std/interfaces/IERC20.sol"; contract OrderBookWithdrawEvalTest is OrderBookExternalRealTest { diff --git a/test/concrete/ob/OrderBook.withdraw.t.sol b/test/concrete/ob/OrderBook.withdraw.t.sol index 5afb50702..296d23da2 100644 --- a/test/concrete/ob/OrderBook.withdraw.t.sol +++ b/test/concrete/ob/OrderBook.withdraw.t.sol @@ -7,7 +7,7 @@ import {Math} from "openzeppelin-contracts/contracts/utils/math/Math.sol"; import {OrderBookExternalMockTest, REVERTING_MOCK_BYTECODE} from "test/util/abstract/OrderBookExternalMockTest.sol"; import {Reenteroor, IERC20} from "test/util/concrete/Reenteroor.sol"; -import {ActionV1} from "rain.orderbook.interface/interface/unstable/IOrderBookV4.sol"; +import {ActionV1} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; /// @title OrderBookWithdrawTest /// Tests withdrawing from the order book. diff --git a/test/util/abstract/ArbTest.sol b/test/util/abstract/ArbTest.sol index 9ad3999f0..607df366c 100644 --- a/test/util/abstract/ArbTest.sol +++ b/test/util/abstract/ArbTest.sol @@ -5,7 +5,7 @@ import {Test} from "forge-std/Test.sol"; import {Clones} from "openzeppelin-contracts/contracts/proxy/Clones.sol"; import {REVERTING_MOCK_BYTECODE} from "test/util/lib/LibTestConstants.sol"; -import {IExpressionDeployerV3} from "rain.interpreter.interface/interface/IExpressionDeployerV3.sol"; +import {IExpressionDeployerV3} from "rain.interpreter.interface/interface/deprecated/IExpressionDeployerV3.sol"; import {ERC20} from "openzeppelin-contracts/contracts/token/ERC20/ERC20.sol"; import {Refundoor} from "test/util/concrete/Refundoor.sol"; import { @@ -16,7 +16,7 @@ import { SignedContextV1 } from "test/util/concrete/FlashLendingMockOrderBook.sol"; import {OrderBookV4ArbConfigV1} from "src/concrete/arb/GenericPoolOrderBookV4ArbOrderTaker.sol"; -import {EvaluableV3} from "rain.orderbook.interface/interface/unstable/IOrderBookV4.sol"; +import {EvaluableV3} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; import {IInterpreterV3} from "rain.interpreter.interface/interface/unstable/IInterpreterV3.sol"; import {IInterpreterStoreV2} from "rain.interpreter.interface/interface/IInterpreterStoreV2.sol"; diff --git a/test/util/abstract/IOrderBookV4Stub.sol b/test/util/abstract/IOrderBookV4Stub.sol index cb0db6b30..945f46ea8 100644 --- a/test/util/abstract/IOrderBookV4Stub.sol +++ b/test/util/abstract/IOrderBookV4Stub.sol @@ -11,7 +11,7 @@ import { EvaluableV3, ActionV1, Quote -} from "rain.orderbook.interface/interface/unstable/IOrderBookV4.sol"; +} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; import {IERC3156FlashLender} from "rain.orderbook.interface/interface/ierc3156/IERC3156FlashLender.sol"; import {IERC3156FlashBorrower} from "rain.orderbook.interface/interface/ierc3156/IERC3156FlashBorrower.sol"; diff --git a/test/util/abstract/OrderBookExternalMockTest.sol b/test/util/abstract/OrderBookExternalMockTest.sol index 4e93138d2..6037bf83c 100644 --- a/test/util/abstract/OrderBookExternalMockTest.sol +++ b/test/util/abstract/OrderBookExternalMockTest.sol @@ -3,7 +3,7 @@ pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; -import {IExpressionDeployerV3} from "rain.interpreter.interface/interface/IExpressionDeployerV3.sol"; +import {IExpressionDeployerV3} from "rain.interpreter.interface/interface/deprecated/IExpressionDeployerV3.sol"; import {IMetaV1} from "rain.metadata/lib/LibMeta.sol"; import {REVERTING_MOCK_BYTECODE} from "test/util/lib/LibTestConstants.sol"; @@ -16,11 +16,11 @@ import { OrderConfigV3, OrderV3, ActionV1 -} from "rain.orderbook.interface/interface/unstable/IOrderBookV4.sol"; +} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; import {IERC20} from "openzeppelin-contracts/contracts/token/ERC20/IERC20.sol"; import {LibOrder} from "src/lib/LibOrder.sol"; import {OrderBook} from "src/concrete/ob/OrderBook.sol"; -import {EvaluableV3} from "rain.interpreter.interface/interface/unstable/IInterpreterCallerV3.sol"; +import {EvaluableV3} from "rain.interpreter.interface/interface/IInterpreterCallerV3.sol"; /// @title OrderBookExternalTest /// Abstract contract that performs common setup needed for testing an orderbook diff --git a/test/util/abstract/OrderBookExternalRealTest.sol b/test/util/abstract/OrderBookExternalRealTest.sol index 926bf2b5e..8fc282657 100644 --- a/test/util/abstract/OrderBookExternalRealTest.sol +++ b/test/util/abstract/OrderBookExternalRealTest.sol @@ -12,17 +12,15 @@ import {LibAllStandardOpsNP} from "rain.interpreter/lib/op/LibAllStandardOpsNP.s import {REVERTING_MOCK_BYTECODE} from "test/util/lib/LibTestConstants.sol"; import {IOrderBookV4Stub} from "test/util/abstract/IOrderBookV4Stub.sol"; import {IInterpreterStoreV2} from "rain.interpreter.interface/interface/IInterpreterStoreV2.sol"; -import {IParserV2} from "rain.interpreter.interface/interface/unstable/IParserV2.sol"; +import {IParserV2} from "rain.interpreter.interface/interface/IParserV2.sol"; import { IOrderBookV4, IInterpreterV3, ActionV1, EvaluableV3, SignedContextV1 -} from "rain.orderbook.interface/interface/unstable/IOrderBookV4.sol"; +} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; import {OrderBook, IERC20} from "src/concrete/ob/OrderBook.sol"; -import {IERC1820Registry} from "rain.erc1820/interface/IERC1820Registry.sol"; -import {IERC1820_REGISTRY} from "rain.erc1820/lib/LibIERC1820.sol"; import {RainterpreterParserNPE2} from "rain.interpreter/concrete/RainterpreterParserNPE2.sol"; abstract contract OrderBookExternalRealTest is Test, IOrderBookV4Stub { @@ -45,16 +43,6 @@ abstract contract OrderBookExternalRealTest is Test, IOrderBookV4Stub { }) ); - // Deploy the expression deployer. - vm.etch(address(IERC1820_REGISTRY), REVERTING_MOCK_BYTECODE); - vm.mockCall( - address(IERC1820_REGISTRY), - abi.encodeWithSelector(IERC1820Registry.interfaceHash.selector), - abi.encode(bytes32(uint256(5))) - ); - vm.mockCall( - address(IERC1820_REGISTRY), abi.encodeWithSelector(IERC1820Registry.setInterfaceImplementer.selector), "" - ); iOrderbook = IOrderBookV4(address(new OrderBook())); iToken0 = IERC20(address(uint160(uint256(keccak256("token0.rain.test"))))); diff --git a/test/util/concrete/FlashLendingMockOrderBook.sol b/test/util/concrete/FlashLendingMockOrderBook.sol index 00de6fab9..cb8d824d8 100644 --- a/test/util/concrete/FlashLendingMockOrderBook.sol +++ b/test/util/concrete/FlashLendingMockOrderBook.sol @@ -13,7 +13,7 @@ import { EvaluableV3, ActionV1, Quote -} from "rain.orderbook.interface/interface/unstable/IOrderBookV4.sol"; +} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; import {IERC3156FlashBorrower} from "rain.orderbook.interface/interface/ierc3156/IERC3156FlashBorrower.sol"; contract FlashLendingMockOrderBook is IOrderBookV4 { diff --git a/test/util/lib/LibTestAddOrder.sol b/test/util/lib/LibTestAddOrder.sol index be1d2b6b1..3c7f883b8 100644 --- a/test/util/lib/LibTestAddOrder.sol +++ b/test/util/lib/LibTestAddOrder.sol @@ -3,11 +3,11 @@ pragma solidity ^0.8.19; import {META_MAGIC_NUMBER_V1} from "rain.metadata/lib/LibMeta.sol"; import {LibOrder} from "src/lib/LibOrder.sol"; -import {OrderConfigV3, OrderV3, IO} from "rain.orderbook.interface/interface/unstable/IOrderBookV4.sol"; +import {OrderConfigV3, OrderV3, IO} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; import {IInterpreterV3, SourceIndexV2} from "rain.interpreter.interface/interface/unstable/IInterpreterV3.sol"; import {IInterpreterStoreV2} from "rain.interpreter.interface/interface/IInterpreterStoreV2.sol"; -import {IExpressionDeployerV3} from "rain.interpreter.interface/interface/IExpressionDeployerV3.sol"; -import {EvaluableV3} from "rain.interpreter.interface/interface/unstable/IInterpreterCallerV3.sol"; +import {IExpressionDeployerV3} from "rain.interpreter.interface/interface/deprecated/IExpressionDeployerV3.sol"; +import {EvaluableV3} from "rain.interpreter.interface/interface/IInterpreterCallerV3.sol"; import {HANDLE_IO_ENTRYPOINT} from "src/concrete/ob/OrderBook.sol"; import {LibBytecode} from "rain.interpreter.interface/lib/bytecode/LibBytecode.sol"; From ff10170c3280070fec6c1790f1c1e114af0fa5c5 Mon Sep 17 00:00:00 2001 From: thedavidmeister Date: Sat, 3 Aug 2024 19:28:39 +0400 Subject: [PATCH 10/19] wip on update interface --- test/concrete/ob/OrderBook.takeOrder.maximumInput.t.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/concrete/ob/OrderBook.takeOrder.maximumInput.t.sol b/test/concrete/ob/OrderBook.takeOrder.maximumInput.t.sol index 5160fbb6a..deaca406d 100644 --- a/test/concrete/ob/OrderBook.takeOrder.maximumInput.t.sol +++ b/test/concrete/ob/OrderBook.takeOrder.maximumInput.t.sol @@ -13,7 +13,7 @@ import { OrderConfigV3, ActionV1 } from "rain.orderbook.interface/interface/IOrderBookV4.sol"; -import {SignedContextV1} from "rain.interpreter.interface/interface/IInterpreterCallerV2.sol"; +import {SignedContextV1} from "rain.interpreter.interface/interface/deprecated/IInterpreterCallerV2.sol"; contract OrderBookTakeOrderMaximumInputTest is OrderBookExternalRealTest { /// If there is some live order(s) but the maxTakerInput is zero we error as From c37e54ce70f5432cf7ad74a5c6e3aa44565c2d35 Mon Sep 17 00:00:00 2001 From: thedavidmeister Date: Sat, 3 Aug 2024 19:29:08 +0400 Subject: [PATCH 11/19] wip on update interface --- test/concrete/parser/OrderBookSubParser.ierc165.t.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/concrete/parser/OrderBookSubParser.ierc165.t.sol b/test/concrete/parser/OrderBookSubParser.ierc165.t.sol index e8767c321..49f77f46e 100644 --- a/test/concrete/parser/OrderBookSubParser.ierc165.t.sol +++ b/test/concrete/parser/OrderBookSubParser.ierc165.t.sol @@ -5,7 +5,7 @@ import {Test} from "forge-std/Test.sol"; import {IERC165} from "openzeppelin-contracts/contracts/utils/introspection/IERC165.sol"; import {OrderBookSubParser} from "src/concrete/parser/OrderBookSubParser.sol"; -import {ISubParserV2} from "rain.interpreter.interface/interface/ISubParserV2.sol"; +import {ISubParserV2} from "rain.interpreter.interface/interface/deprecated/ISubParserV2.sol"; import {IDescribedByMetaV1} from "rain.metadata/interface/unstable/IDescribedByMetaV1.sol"; contract OrderBookSubParserIERC165Test is Test { From bdc4a12a232d0b0604c1dbe35f7bb54dc82b97cb Mon Sep 17 00:00:00 2001 From: thedavidmeister Date: Sat, 3 Aug 2024 19:29:37 +0400 Subject: [PATCH 12/19] wip on update interface --- test/util/abstract/ArbTest.sol | 2 +- test/util/abstract/OrderBookExternalMockTest.sol | 2 +- test/util/lib/LibTestAddOrder.sol | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/test/util/abstract/ArbTest.sol b/test/util/abstract/ArbTest.sol index 607df366c..88c0bed19 100644 --- a/test/util/abstract/ArbTest.sol +++ b/test/util/abstract/ArbTest.sol @@ -17,7 +17,7 @@ import { } from "test/util/concrete/FlashLendingMockOrderBook.sol"; import {OrderBookV4ArbConfigV1} from "src/concrete/arb/GenericPoolOrderBookV4ArbOrderTaker.sol"; import {EvaluableV3} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; -import {IInterpreterV3} from "rain.interpreter.interface/interface/unstable/IInterpreterV3.sol"; +import {IInterpreterV3} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; import {IInterpreterStoreV2} from "rain.interpreter.interface/interface/IInterpreterStoreV2.sol"; contract Token is ERC20 { diff --git a/test/util/abstract/OrderBookExternalMockTest.sol b/test/util/abstract/OrderBookExternalMockTest.sol index 6037bf83c..9e554d7f6 100644 --- a/test/util/abstract/OrderBookExternalMockTest.sol +++ b/test/util/abstract/OrderBookExternalMockTest.sol @@ -9,7 +9,7 @@ import {IMetaV1} from "rain.metadata/lib/LibMeta.sol"; import {REVERTING_MOCK_BYTECODE} from "test/util/lib/LibTestConstants.sol"; import {IOrderBookV4Stub} from "test/util/abstract/IOrderBookV4Stub.sol"; import {LibTestAddOrder} from "test/util/lib/LibTestAddOrder.sol"; -import {IInterpreterV3} from "rain.interpreter.interface/interface/unstable/IInterpreterV3.sol"; +import {IInterpreterV3} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; import {IInterpreterStoreV2} from "rain.interpreter.interface/interface/IInterpreterStoreV2.sol"; import { IOrderBookV4, diff --git a/test/util/lib/LibTestAddOrder.sol b/test/util/lib/LibTestAddOrder.sol index 3c7f883b8..dfd6dd85e 100644 --- a/test/util/lib/LibTestAddOrder.sol +++ b/test/util/lib/LibTestAddOrder.sol @@ -4,7 +4,7 @@ pragma solidity ^0.8.19; import {META_MAGIC_NUMBER_V1} from "rain.metadata/lib/LibMeta.sol"; import {LibOrder} from "src/lib/LibOrder.sol"; import {OrderConfigV3, OrderV3, IO} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; -import {IInterpreterV3, SourceIndexV2} from "rain.interpreter.interface/interface/unstable/IInterpreterV3.sol"; +import {IInterpreterV3, SourceIndexV2} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; import {IInterpreterStoreV2} from "rain.interpreter.interface/interface/IInterpreterStoreV2.sol"; import {IExpressionDeployerV3} from "rain.interpreter.interface/interface/deprecated/IExpressionDeployerV3.sol"; import {EvaluableV3} from "rain.interpreter.interface/interface/IInterpreterCallerV3.sol"; From 18b24f30d3a8df07cd0b416ff1e26bfa207349b2 Mon Sep 17 00:00:00 2001 From: thedavidmeister Date: Sat, 3 Aug 2024 22:55:03 +0400 Subject: [PATCH 13/19] update i9r --- lib/rain.interpreter | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/rain.interpreter b/lib/rain.interpreter index 004f79f5c..53dcca005 160000 --- a/lib/rain.interpreter +++ b/lib/rain.interpreter @@ -1 +1 @@ -Subproject commit 004f79f5cbfb2e4d9922ad7c9e5c74b1d5ace69e +Subproject commit 53dcca00544694fb76ab2b2d16849365c14a0b13 From 343903b64b29dbe3e1b1f8a12269461b8ab08988 Mon Sep 17 00:00:00 2001 From: thedavidmeister Date: Sat, 3 Aug 2024 23:00:04 +0400 Subject: [PATCH 14/19] remapping --- foundry.toml | 1 + src/abstract/OrderBookV4ArbOrderTaker.sol | 9 +++++---- src/abstract/OrderBookV4FlashBorrower.sol | 9 +++++---- src/concrete/ob/OrderBook.sol | 11 +++++------ test/concrete/ob/OrderBook.addOrder.mock.t.sol | 8 +------- test/concrete/ob/OrderBook.addOrder.nonce.t.sol | 4 +--- test/concrete/ob/OrderBook.addOrder.owner.t.sol | 4 +--- test/concrete/ob/OrderBook.deposit.enact.t.sol | 5 +---- test/concrete/ob/OrderBook.enact.t.sol | 5 +---- test/concrete/ob/OrderBook.removeOrder.mock.t.sol | 4 +--- test/concrete/ob/OrderBook.removeOrder.owner.t.sol | 4 +--- test/concrete/ob/OrderBook.withdraw.enact.t.sol | 5 +---- test/util/abstract/OrderBookExternalMockTest.sol | 7 +------ 13 files changed, 25 insertions(+), 51 deletions(-) diff --git a/foundry.toml b/foundry.toml index 0df0f8176..cdd388092 100644 --- a/foundry.toml +++ b/foundry.toml @@ -41,6 +41,7 @@ remappings = [ "rain.intorastring/=lib/rain.interpreter/lib/rain.intorastring/", "openzeppelin-contracts/=lib/rain.interpreter/lib/openzeppelin-contracts/", "forge-std/=lib/rain.interpreter/lib/forge-std/src/", + "rain.sol.codegen/=lib/rain.interpreter/lib/rain.sol.codegen/src/", ] [fuzz] diff --git a/src/abstract/OrderBookV4ArbOrderTaker.sol b/src/abstract/OrderBookV4ArbOrderTaker.sol index 20329f677..b0fc40505 100644 --- a/src/abstract/OrderBookV4ArbOrderTaker.sol +++ b/src/abstract/OrderBookV4ArbOrderTaker.sol @@ -7,16 +7,17 @@ import {IERC20} from "openzeppelin-contracts/contracts/token/ERC20/IERC20.sol"; import {SafeERC20} from "openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol"; import {Address} from "openzeppelin-contracts/contracts/utils/Address.sol"; import {SourceIndexV2} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; -import {EncodedDispatch, LibEncodedDispatch} from "rain.interpreter.interface/lib/deprecated/caller/LibEncodedDispatch.sol"; +import { + EncodedDispatch, + LibEncodedDispatch +} from "rain.interpreter.interface/lib/deprecated/caller/LibEncodedDispatch.sol"; import {LibNamespace} from "rain.interpreter.interface/lib/ns/LibNamespace.sol"; import {IOrderBookV4, NoOrders} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; import { IOrderBookV4ArbOrderTaker, IOrderBookV4OrderTaker } from "rain.orderbook.interface/interface/IOrderBookV4ArbOrderTaker.sol"; -import { - IInterpreterV3, DEFAULT_STATE_NAMESPACE -} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; +import {IInterpreterV3, DEFAULT_STATE_NAMESPACE} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; import {IInterpreterStoreV2} from "rain.interpreter.interface/interface/IInterpreterStoreV2.sol"; import {TakeOrdersConfigV3} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; import { diff --git a/src/abstract/OrderBookV4FlashBorrower.sol b/src/abstract/OrderBookV4FlashBorrower.sol index 649348257..538ac80ac 100644 --- a/src/abstract/OrderBookV4FlashBorrower.sol +++ b/src/abstract/OrderBookV4FlashBorrower.sol @@ -6,12 +6,13 @@ import {SafeERC20} from "openzeppelin-contracts/contracts/token/ERC20/utils/Safe import {Address} from "openzeppelin-contracts/contracts/utils/Address.sol"; import {IERC20} from "openzeppelin-contracts/contracts/token/ERC20/IERC20.sol"; import {ReentrancyGuard} from "openzeppelin-contracts/contracts/security/ReentrancyGuard.sol"; -import {LibEncodedDispatch, EncodedDispatch} from "rain.interpreter.interface/lib/deprecated/caller/LibEncodedDispatch.sol"; +import { + LibEncodedDispatch, + EncodedDispatch +} from "rain.interpreter.interface/lib/deprecated/caller/LibEncodedDispatch.sol"; import {LibBytecode} from "rain.interpreter.interface/lib/bytecode/LibBytecode.sol"; import {ON_FLASH_LOAN_CALLBACK_SUCCESS} from "rain.orderbook.interface/interface/ierc3156/IERC3156FlashBorrower.sol"; -import { - IOrderBookV4, TakeOrdersConfigV3, NoOrders -} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; +import {IOrderBookV4, TakeOrdersConfigV3, NoOrders} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; import {IERC3156FlashBorrower} from "rain.orderbook.interface/interface/ierc3156/IERC3156FlashBorrower.sol"; import {IInterpreterStoreV2} from "rain.interpreter.interface/interface/IInterpreterStoreV2.sol"; import { diff --git a/src/concrete/ob/OrderBook.sol b/src/concrete/ob/OrderBook.sol index 9aaa20955..0ba25024d 100644 --- a/src/concrete/ob/OrderBook.sol +++ b/src/concrete/ob/OrderBook.sol @@ -11,14 +11,13 @@ import {FLAG_SATURATE, FLAG_ROUND_UP} from "rain.math.fixedpoint/lib/FixedPointD import {LibFixedPointDecimalArithmeticOpenZeppelin} from "rain.math.fixedpoint/lib/LibFixedPointDecimalArithmeticOpenZeppelin.sol"; import {LibFixedPointDecimalScale} from "rain.math.fixedpoint/lib/LibFixedPointDecimalScale.sol"; -import {LibEncodedDispatch, EncodedDispatch} from "rain.interpreter.interface/lib/deprecated/caller/LibEncodedDispatch.sol"; +import { + LibEncodedDispatch, + EncodedDispatch +} from "rain.interpreter.interface/lib/deprecated/caller/LibEncodedDispatch.sol"; import {LibContext} from "rain.interpreter.interface/lib/caller/LibContext.sol"; import {LibBytecode} from "rain.interpreter.interface/lib/bytecode/LibBytecode.sol"; -import { - SourceIndexV2, - StateNamespace, - IInterpreterV3 -} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; +import {SourceIndexV2, StateNamespace, IInterpreterV3} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; import {LibUint256Array} from "rain.solmem/lib/LibUint256Array.sol"; import {IInterpreterStoreV2} from "rain.interpreter.interface/interface/IInterpreterStoreV2.sol"; import {IExpressionDeployerV3} from "rain.interpreter.interface/interface/deprecated/IExpressionDeployerV3.sol"; diff --git a/test/concrete/ob/OrderBook.addOrder.mock.t.sol b/test/concrete/ob/OrderBook.addOrder.mock.t.sol index 354da317f..36938c7f4 100644 --- a/test/concrete/ob/OrderBook.addOrder.mock.t.sol +++ b/test/concrete/ob/OrderBook.addOrder.mock.t.sol @@ -2,13 +2,7 @@ pragma solidity =0.8.25; import {OrderBookExternalMockTest} from "test/util/abstract/OrderBookExternalMockTest.sol"; -import { - OrderConfigV3, - OrderV3, - IO, - EvaluableV3, - ActionV1 -} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; +import {OrderConfigV3, OrderV3, IO, EvaluableV3, ActionV1} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; import {LibTestAddOrder} from "test/util/lib/LibTestAddOrder.sol"; import {NotRainMetaV1, META_MAGIC_NUMBER_V1} from "rain.metadata/interface/IMetaV1.sol"; import {LibMeta} from "rain.metadata/lib/LibMeta.sol"; diff --git a/test/concrete/ob/OrderBook.addOrder.nonce.t.sol b/test/concrete/ob/OrderBook.addOrder.nonce.t.sol index 0ad1d13e4..b3c74e5fc 100644 --- a/test/concrete/ob/OrderBook.addOrder.nonce.t.sol +++ b/test/concrete/ob/OrderBook.addOrder.nonce.t.sol @@ -2,9 +2,7 @@ pragma solidity =0.8.25; import {OrderBookExternalRealTest} from "test/util/abstract/OrderBookExternalRealTest.sol"; -import { - OrderConfigV3, OrderV3, EvaluableV3, ActionV1 -} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; +import {OrderConfigV3, OrderV3, EvaluableV3, ActionV1} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; import {LibTestAddOrder} from "test/util/lib/LibTestAddOrder.sol"; import {LibOrder} from "src/lib/LibOrder.sol"; diff --git a/test/concrete/ob/OrderBook.addOrder.owner.t.sol b/test/concrete/ob/OrderBook.addOrder.owner.t.sol index 42de48cd6..4a992f307 100644 --- a/test/concrete/ob/OrderBook.addOrder.owner.t.sol +++ b/test/concrete/ob/OrderBook.addOrder.owner.t.sol @@ -2,9 +2,7 @@ pragma solidity =0.8.25; import {OrderBookExternalRealTest} from "test/util/abstract/OrderBookExternalRealTest.sol"; -import { - OrderConfigV3, OrderV3, EvaluableV3, ActionV1 -} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; +import {OrderConfigV3, OrderV3, EvaluableV3, ActionV1} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; import {LibTestAddOrder} from "test/util/lib/LibTestAddOrder.sol"; import {LibOrder} from "src/lib/LibOrder.sol"; diff --git a/test/concrete/ob/OrderBook.deposit.enact.t.sol b/test/concrete/ob/OrderBook.deposit.enact.t.sol index aab56a4ce..27182a144 100644 --- a/test/concrete/ob/OrderBook.deposit.enact.t.sol +++ b/test/concrete/ob/OrderBook.deposit.enact.t.sol @@ -3,10 +3,7 @@ pragma solidity =0.8.25; import {OrderBookExternalRealTest} from "test/util/abstract/OrderBookExternalRealTest.sol"; import { - OrderConfigV3, - EvaluableV3, - ActionV1, - SignedContextV1 + OrderConfigV3, EvaluableV3, ActionV1, SignedContextV1 } from "rain.orderbook.interface/interface/IOrderBookV4.sol"; import {IERC20} from "forge-std/interfaces/IERC20.sol"; diff --git a/test/concrete/ob/OrderBook.enact.t.sol b/test/concrete/ob/OrderBook.enact.t.sol index b25b45752..545f5037a 100644 --- a/test/concrete/ob/OrderBook.enact.t.sol +++ b/test/concrete/ob/OrderBook.enact.t.sol @@ -3,10 +3,7 @@ pragma solidity =0.8.25; import {OrderBookExternalRealTest} from "test/util/abstract/OrderBookExternalRealTest.sol"; import { - OrderConfigV3, - EvaluableV3, - ActionV1, - SignedContextV1 + OrderConfigV3, EvaluableV3, ActionV1, SignedContextV1 } from "rain.orderbook.interface/interface/IOrderBookV4.sol"; contract OrderBookEnactTest is OrderBookExternalRealTest { diff --git a/test/concrete/ob/OrderBook.removeOrder.mock.t.sol b/test/concrete/ob/OrderBook.removeOrder.mock.t.sol index 48107e901..5505487c8 100644 --- a/test/concrete/ob/OrderBook.removeOrder.mock.t.sol +++ b/test/concrete/ob/OrderBook.removeOrder.mock.t.sol @@ -2,9 +2,7 @@ pragma solidity =0.8.25; import {OrderBookExternalMockTest} from "test/util/abstract/OrderBookExternalMockTest.sol"; -import { - OrderConfigV3, OrderV3, EvaluableV3, ActionV1 -} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; +import {OrderConfigV3, OrderV3, EvaluableV3, ActionV1} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; import {LibTestAddOrder} from "test/util/lib/LibTestAddOrder.sol"; import {NotOrderOwner} from "src/concrete/ob/OrderBook.sol"; diff --git a/test/concrete/ob/OrderBook.removeOrder.owner.t.sol b/test/concrete/ob/OrderBook.removeOrder.owner.t.sol index 51d64b4c2..a18713934 100644 --- a/test/concrete/ob/OrderBook.removeOrder.owner.t.sol +++ b/test/concrete/ob/OrderBook.removeOrder.owner.t.sol @@ -2,9 +2,7 @@ pragma solidity =0.8.25; import {OrderBookExternalRealTest} from "test/util/abstract/OrderBookExternalRealTest.sol"; -import { - OrderConfigV3, OrderV3, EvaluableV3, ActionV1 -} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; +import {OrderConfigV3, OrderV3, EvaluableV3, ActionV1} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; import {LibTestAddOrder} from "test/util/lib/LibTestAddOrder.sol"; import {LibOrder} from "src/lib/LibOrder.sol"; import {NotOrderOwner} from "src/concrete/ob/OrderBook.sol"; diff --git a/test/concrete/ob/OrderBook.withdraw.enact.t.sol b/test/concrete/ob/OrderBook.withdraw.enact.t.sol index 3aeddad5b..21ce975ef 100644 --- a/test/concrete/ob/OrderBook.withdraw.enact.t.sol +++ b/test/concrete/ob/OrderBook.withdraw.enact.t.sol @@ -3,10 +3,7 @@ pragma solidity =0.8.25; import {OrderBookExternalRealTest} from "test/util/abstract/OrderBookExternalRealTest.sol"; import { - OrderConfigV3, - EvaluableV3, - ActionV1, - SignedContextV1 + OrderConfigV3, EvaluableV3, ActionV1, SignedContextV1 } from "rain.orderbook.interface/interface/IOrderBookV4.sol"; import {IERC20} from "forge-std/interfaces/IERC20.sol"; diff --git a/test/util/abstract/OrderBookExternalMockTest.sol b/test/util/abstract/OrderBookExternalMockTest.sol index 9e554d7f6..a830bd0cc 100644 --- a/test/util/abstract/OrderBookExternalMockTest.sol +++ b/test/util/abstract/OrderBookExternalMockTest.sol @@ -11,12 +11,7 @@ import {IOrderBookV4Stub} from "test/util/abstract/IOrderBookV4Stub.sol"; import {LibTestAddOrder} from "test/util/lib/LibTestAddOrder.sol"; import {IInterpreterV3} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; import {IInterpreterStoreV2} from "rain.interpreter.interface/interface/IInterpreterStoreV2.sol"; -import { - IOrderBookV4, - OrderConfigV3, - OrderV3, - ActionV1 -} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; +import {IOrderBookV4, OrderConfigV3, OrderV3, ActionV1} from "rain.orderbook.interface/interface/IOrderBookV4.sol"; import {IERC20} from "openzeppelin-contracts/contracts/token/ERC20/IERC20.sol"; import {LibOrder} from "src/lib/LibOrder.sol"; import {OrderBook} from "src/concrete/ob/OrderBook.sol"; From 6ea6d6a1587c61178b21acb991b9269d00b75f24 Mon Sep 17 00:00:00 2001 From: thedavidmeister Date: Sun, 4 Aug 2024 09:23:38 +0400 Subject: [PATCH 15/19] build pointers --- src/generated/OrderBookSubParser.pointers.sol | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/generated/OrderBookSubParser.pointers.sol b/src/generated/OrderBookSubParser.pointers.sol index e264d0b76..23b60ec0c 100644 --- a/src/generated/OrderBookSubParser.pointers.sol +++ b/src/generated/OrderBookSubParser.pointers.sol @@ -14,8 +14,8 @@ bytes32 constant BYTECODE_HASH = bytes32(0xa24098eea11f3a83e475674e649959ac6d6b3 /// @dev The hash of the meta that describes the contract. bytes32 constant DESCRIBED_BY_META_HASH = bytes32(0xa90cf581ab38cb58f1502cd049627a3a1f49857ec6a26c8bcc6da98b05bd4696); -/// @dev Encodes the parser meta that is used to lookup word definitions. -/// The structure of the parser meta is: +/// @dev The parse meta that is used to lookup word definitions. +/// The structure of the parse meta is: /// - 1 byte: The depth of the bloom filters /// - 1 byte: The hashing seed /// - The bloom filters, each is 32 bytes long, one for each build depth. @@ -34,9 +34,10 @@ bytes constant PARSE_META = hex"01004800040040420204100000000000001806000008000020840000000100000010088de69a02c9be1f116682f50b6f6a660584c8d406bbcde61283156f0109ac301087b0c70398cd200ea9bcef0a865655075e0bc300d3b4e80f8316290de78f2e0c9fc5d509a7e6560427db4a"; /// @dev The build depth of the parser meta. + uint8 constant PARSE_META_BUILD_DEPTH = 1; -/// @dev Real function pointers to the sub parser functions that produce the +/// @dev The function pointers for the sub parser functions that produce the /// bytecode that this contract knows about. This is both constructing the subParser /// bytecode that dials back into this contract at eval time, and mapping /// to things that happen entirely on the interpreter such as well known From 442cd2ec38eac724c924866f0423547580eb6727 Mon Sep 17 00:00:00 2001 From: rouzwelt Date: Sun, 4 Aug 2024 22:32:24 +0000 Subject: [PATCH 16/19] update --- .github/workflows/rainix.yaml | 5 +++-- Cargo.lock | 5 ----- Cargo.toml | 6 +++--- crates/common/src/js_api/mod.rs | 6 +++++- flake.nix | 9 +++++++++ lib/rain.interpreter | 2 +- 6 files changed, 21 insertions(+), 12 deletions(-) diff --git a/.github/workflows/rainix.yaml b/.github/workflows/rainix.yaml index 0b4d7e9fc..15f831935 100644 --- a/.github/workflows/rainix.yaml +++ b/.github/workflows/rainix.yaml @@ -18,6 +18,9 @@ jobs: # We don't need to do rust static analysis on multiple platforms - os: ubuntu-latest task: rainix-rs-static + # Wasm target doesnt need to run on multiple platforms + - os: ubuntu-latest + task: rainix-wasm-artifacts fail-fast: false runs-on: ${{ matrix.os }} env: @@ -57,5 +60,3 @@ jobs: run: nix develop -c ${{ matrix.task }} - - name: Build for wasm target - run: nix develop -c cargo build --target wasm32-unknown-unknown --workspace --exclude rain_orderbook_cli --exclude rain-orderbook-env diff --git a/Cargo.lock b/Cargo.lock index ab68ff91e..ce1758160 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5887,12 +5887,8 @@ dependencies = [ "async-trait", "cynic", "cynic-codegen", - "httpmock", - "insta", "reqwest 0.11.27", - "serde_json", "thiserror", - "tokio", ] [[package]] @@ -5908,7 +5904,6 @@ dependencies = [ "deflate", "futures", "graphql_client", - "httpmock", "inflate", "itertools 0.10.5", "once_cell", diff --git a/Cargo.toml b/Cargo.toml index bcd42a5f0..94e4e906d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -39,9 +39,9 @@ thiserror = "1.0.56" strict-yaml-rust = "0.1.2" dotrain = "6.0.1-alpha.18" dotrain-lsp = "6.0.1-alpha.18" -rain-metadata = { path = "lib/rain.metadata/crates/cli" } -rain-metadata-bindings = { path = "lib/rain.metadata/crates/bindings" } -rain-metaboard-subgraph = { path = "lib/rain.metadata/crates/metaboard" } +rain-metadata = { path = "lib/rain.interpreter/lib/rain.metadata/crates/cli" } +rain-metadata-bindings = { path = "lib/rain.interpreter/lib/rain.metadata/crates/bindings" } +rain-metaboard-subgraph = { path = "lib/rain.interpreter/lib/rain.metadata/crates/metaboard" } rain_interpreter_bindings = { path = "lib/rain.interpreter/crates/bindings" } rain_interpreter_dispair = { path = "lib/rain.interpreter/crates/dispair" } rain_interpreter_parser = { path = "lib/rain.interpreter/crates/parser" } diff --git a/crates/common/src/js_api/mod.rs b/crates/common/src/js_api/mod.rs index ada6baf87..f76eb090a 100644 --- a/crates/common/src/js_api/mod.rs +++ b/crates/common/src/js_api/mod.rs @@ -38,8 +38,12 @@ pub async fn get_add_order_calldata(dotrain: &str, deployment: &str) -> Result Date: Sun, 4 Aug 2024 22:45:15 +0000 Subject: [PATCH 17/19] Update prep-tauri.sh --- prep-tauri.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/prep-tauri.sh b/prep-tauri.sh index d3606c0ad..d77dd2bc8 100755 --- a/prep-tauri.sh +++ b/prep-tauri.sh @@ -22,7 +22,7 @@ nix develop -i ${keep[@]} -c bash -c '(cd lib/rain.interpreter && rainix-rs-prel (cd lib/rain.interpreter && nix develop -i ${keep[@]} -c bash -c i9r-prelude) # Run commands in lib/rain.metadata -nix develop -i ${keep[@]} -c bash -c '(cd lib/rain.metadata && rainix-sol-prelude)' +nix develop -i ${keep[@]} -c bash -c '(cd lib/rain.interpreter/lib/rain.metadata && rainix-sol-prelude)' nix develop -i ${keep[@]} .#tauri-shell -c ob-tauri-prelude nix develop -i ${keep[@]} .#tauri-shell -c ob-tauri-unit-test From bcc51fb06697fa40d2ce1d7b85b145c6f77db5bc Mon Sep 17 00:00:00 2001 From: rouzwelt Date: Sun, 4 Aug 2024 22:53:46 +0000 Subject: [PATCH 18/19] Update rainix.yaml --- .github/workflows/rainix.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/rainix.yaml b/.github/workflows/rainix.yaml index 15f831935..9ffb3a944 100644 --- a/.github/workflows/rainix.yaml +++ b/.github/workflows/rainix.yaml @@ -47,6 +47,10 @@ jobs: working-directory: lib/rain.interpreter - run: nix develop -c rainix-rs-prelude working-directory: lib/rain.interpreter + - run: nix develop -c rainix-sol-prelude + working-directory: lib/rain.interpreter/lib/rain.metadata + - run: nix develop -c rainix-rs-prelude + working-directory: lib/rain.interpreter/lib/rain.metadata - run: nix develop -c rainix-sol-prelude - run: nix develop -c rainix-rs-prelude From abd23d12cc56833d78e477d1dae88ef5f8d69be7 Mon Sep 17 00:00:00 2001 From: thedavidmeister Date: Mon, 5 Aug 2024 16:10:56 +0400 Subject: [PATCH 19/19] fix tests --- .../ob/OrderBook.clear.handleIO.revert.t.sol | 12 ++++++------ .../ob/OrderBook.takeOrder.handleIO.revert.t.sol | 6 +++--- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/test/concrete/ob/OrderBook.clear.handleIO.revert.t.sol b/test/concrete/ob/OrderBook.clear.handleIO.revert.t.sol index 16b0b2642..2532e71f2 100644 --- a/test/concrete/ob/OrderBook.clear.handleIO.revert.t.sol +++ b/test/concrete/ob/OrderBook.clear.handleIO.revert.t.sol @@ -142,9 +142,9 @@ contract OrderBookClearHandleIORevertTest is OrderBookExternalRealTest { // This is a bit fragile but the error message includes the inner // executable bytecode only, not the outer parsed bytecode. bytes memory aliceErr = - abi.encodeWithSelector(SourceIndexOutOfBounds.selector, hex"010000020200021810000001100000", 1); + abi.encodeWithSelector(SourceIndexOutOfBounds.selector, 1, hex"010000020200021810000001100000"); bytes memory bobErr = - abi.encodeWithSelector(SourceIndexOutOfBounds.selector, hex"010000020200021810000001100000", 1); + abi.encodeWithSelector(SourceIndexOutOfBounds.selector, 1, hex"010000020200021810000001100000"); checkClearOrderHandleIO(aliceString, bobString, aliceErr, bobErr); } @@ -158,9 +158,9 @@ contract OrderBookClearHandleIORevertTest is OrderBookExternalRealTest { // This is a bit fragile but the error message includes the inner // executable bytecode only, not the outer parsed bytecode. bytes memory aliceErr = - abi.encodeWithSelector(SourceIndexOutOfBounds.selector, hex"010000020200021810000001100000", 1); + abi.encodeWithSelector(SourceIndexOutOfBounds.selector, 1, hex"010000020200021810000001100000"); bytes memory bobErr = - abi.encodeWithSelector(SourceIndexOutOfBounds.selector, hex"010000020200021810000001100000", 1); + abi.encodeWithSelector(SourceIndexOutOfBounds.selector, 1, hex"010000020200021810000001100000"); checkClearOrderHandleIO(aliceString, bobString, aliceErr, bobErr); } @@ -174,9 +174,9 @@ contract OrderBookClearHandleIORevertTest is OrderBookExternalRealTest { // This is a bit fragile but the error message includes the inner // executable bytecode only, not the outer parsed bytecode. bytes memory aliceErr = - abi.encodeWithSelector(SourceIndexOutOfBounds.selector, hex"010000020200021810000001100000", 1); + abi.encodeWithSelector(SourceIndexOutOfBounds.selector, 1, hex"010000020200021810000001100000"); bytes memory bobErr = - abi.encodeWithSelector(SourceIndexOutOfBounds.selector, hex"010000020200021810000001100000", 1); + abi.encodeWithSelector(SourceIndexOutOfBounds.selector, 1, hex"010000020200021810000001100000"); checkClearOrderHandleIO(aliceString, bobString, aliceErr, bobErr); } diff --git a/test/concrete/ob/OrderBook.takeOrder.handleIO.revert.t.sol b/test/concrete/ob/OrderBook.takeOrder.handleIO.revert.t.sol index 54c232eea..d93cccddc 100644 --- a/test/concrete/ob/OrderBook.takeOrder.handleIO.revert.t.sol +++ b/test/concrete/ob/OrderBook.takeOrder.handleIO.revert.t.sol @@ -176,7 +176,7 @@ contract OrderBookTakeOrderHandleIORevertTest is OrderBookExternalRealTest { configs[0] = "_ _:1 1;"; checkTakeOrderHandleIO( configs, - abi.encodeWithSelector(SourceIndexOutOfBounds.selector, hex"010000020200020110000001100000", 1), + abi.encodeWithSelector(SourceIndexOutOfBounds.selector, 1, hex"010000020200020110000001100000"), type(uint256).max ); } @@ -189,7 +189,7 @@ contract OrderBookTakeOrderHandleIORevertTest is OrderBookExternalRealTest { configs[1] = "_ _:1 1;"; checkTakeOrderHandleIO( configs, - abi.encodeWithSelector(SourceIndexOutOfBounds.selector, hex"010000020200020110000001100000", 1), + abi.encodeWithSelector(SourceIndexOutOfBounds.selector, 1, hex"010000020200020110000001100000"), type(uint256).max ); } @@ -202,7 +202,7 @@ contract OrderBookTakeOrderHandleIORevertTest is OrderBookExternalRealTest { configs[1] = "_ _:1 1;:;"; checkTakeOrderHandleIO( configs, - abi.encodeWithSelector(SourceIndexOutOfBounds.selector, hex"010000020200020110000001100000", 1), + abi.encodeWithSelector(SourceIndexOutOfBounds.selector, 1, hex"010000020200020110000001100000"), type(uint256).max ); }