From 25bd2753d34ea060abdf26349b1851af2e786db4 Mon Sep 17 00:00:00 2001 From: highonhopium Date: Thu, 29 Aug 2024 15:04:44 +0100 Subject: [PATCH 01/62] replays --- crates/eval/src/error.rs | 19 ++++++ crates/eval/src/fork.rs | 141 ++++++++++++++++++++++++++++++++++++++- crates/eval/src/trace.rs | 31 ++++++--- 3 files changed, 180 insertions(+), 11 deletions(-) diff --git a/crates/eval/src/error.rs b/crates/eval/src/error.rs index b2a6d2d40..f9230c7b9 100644 --- a/crates/eval/src/error.rs +++ b/crates/eval/src/error.rs @@ -1,5 +1,7 @@ use alloy::primitives::ruint::FromUintError; #[cfg(not(target_family = "wasm"))] +use foundry_evm::backend::DatabaseError; +#[cfg(not(target_family = "wasm"))] use foundry_evm::executors::RawCallResult; use rain_error_decoding::{AbiDecodeFailedErrors, AbiDecodedErrorType}; use thiserror::Error; @@ -23,6 +25,23 @@ pub enum ForkCallError { U64FromUint256(#[from] FromUintError), #[error(transparent)] Eyre(#[from] eyre::Report), + #[error("Replay transaction error: {:#?}", .0)] + ReplayTransactionError(ReplayTransactionError), +} + +#[derive(Debug, Error)] +pub enum ReplayTransactionError { + #[error("Transaction not found for hash {0} and fork url {1}")] + TransactionNotFound(String, String), + #[error("No active fork found")] + NoActiveFork, + #[cfg(not(target_family = "wasm"))] + #[error("Database error for hash {0} and fork url {1}: {2}")] + DatabaseError(String, String, DatabaseError), + #[error("No block number found in transaction for hash {0} and fork url {1}")] + NoBlockNumberFound(String, String), + #[error("No from address found in transaction for hash {0} and fork url {1}")] + NoFromAddressFound(String, String), } #[cfg(not(target_family = "wasm"))] diff --git a/crates/eval/src/fork.rs b/crates/eval/src/fork.rs index 357b11260..e50ab2ecb 100644 --- a/crates/eval/src/fork.rs +++ b/crates/eval/src/fork.rs @@ -1,4 +1,4 @@ -use crate::error::ForkCallError; +use crate::error::{ForkCallError, ReplayTransactionError}; use alloy::primitives::{Address, BlockNumber, U256}; use alloy::sol_types::SolCall; use foundry_evm::{ @@ -8,6 +8,7 @@ use foundry_evm::{ opts::EvmOpts, }; use rain_error_decoding::AbiDecodedErrorType; +use revm::primitives::B256; use revm::{ interpreter::InstructionResult, primitives::{Address as Addr, Bytes, Env, HashSet, SpecId}, @@ -388,12 +389,120 @@ impl Forker { ) .map_err(|v| ForkCallError::ExecutorError(v.to_string())) } + + /// Replays a transaction from the forked EVM. + /// # Arguments + /// * `tx_hash` - The transaction hash. + /// # Returns + /// A result containing the raw call result. + pub async fn replay_transaction( + &mut self, + tx_hash: B256, + ) -> Result { + let fork_url = self + .executor + .backend() + .active_fork_url() + .unwrap_or("No fork url found".to_string()); + + // get the transaction + let shared_backend = &self + .executor + .backend() + .active_fork_db() + .ok_or(ForkCallError::ReplayTransactionError( + ReplayTransactionError::NoActiveFork, + ))? + .db; + let full_tx = shared_backend.get_transaction(tx_hash).map_err(|e| { + ForkCallError::ReplayTransactionError(ReplayTransactionError::DatabaseError( + tx_hash.to_string(), + fork_url.clone(), + e, + )) + })?; + + // get the block number from the transaction + let block_number = full_tx + .block_number + .ok_or(ForkCallError::ReplayTransactionError( + ReplayTransactionError::NoBlockNumberFound(tx_hash.to_string(), fork_url.clone()), + ))?; + + // get the block + let block = shared_backend.get_full_block(block_number).map_err(|e| { + ForkCallError::ReplayTransactionError(ReplayTransactionError::DatabaseError( + block_number.to_string(), + fork_url.clone(), + e, + )) + })?; + + // matching env to the env from the block the transaction is in + self.executor.env_mut().block.number = U256::from(block_number); + self.executor.env_mut().block.timestamp = U256::from(block.header.timestamp); + self.executor.env_mut().block.coinbase = block.header.miner; + self.executor.env_mut().block.difficulty = block.header.difficulty; + self.executor.env_mut().block.prevrandao = Some(block.header.mix_hash.unwrap_or_default()); + self.executor.env_mut().block.basefee = + U256::from(block.header.base_fee_per_gas.unwrap_or_default()); + self.executor.env_mut().block.gas_limit = U256::from(block.header.gas_limit); + + let _ = &self + .add_or_select( + NewForkedEvm { + fork_url: fork_url.clone(), + fork_block_number: Some(block_number - 1), + }, + None, + ) + .await; + + let active_fork_local_id = self + .executor + .backend() + .active_fork_id() + .ok_or(ForkCallError::ExecutorError("no active fork!".to_owned()))?; + + let mut journaled_state = JournaledState::new(SpecId::LATEST, HashSet::new()); + + let env = self.executor.env().clone(); + + // replay all transactions that came before + let tx = self.executor.backend_mut().replay_until( + active_fork_local_id, + env, + tx_hash, + &mut journaled_state, + )?; + + let res = match tx { + Some(tx) => match tx.to { + Some(to) => self.call(tx.from.as_slice(), to.as_slice(), &tx.input)?, + None => { + return Err(ForkCallError::ReplayTransactionError( + ReplayTransactionError::NoFromAddressFound(tx_hash.to_string(), fork_url), + )) + } + }, + None => { + return Err(ForkCallError::ReplayTransactionError( + ReplayTransactionError::TransactionNotFound(tx_hash.to_string(), fork_url), + )) + } + }; + + Ok(res) + } } #[cfg(test)] mod tests { - use crate::namespace::CreateNamespace; + use crate::{ + namespace::CreateNamespace, + trace::{RainEvalResult, RainSourceTrace}, + }; use rain_interpreter_env::{ CI_DEPLOY_SEPOLIA_RPC_URL, CI_FORK_SEPOLIA_BLOCK_NUMBER, CI_FORK_SEPOLIA_DEPLOYER_ADDRESS, }; @@ -663,4 +772,32 @@ mod tests { U256::from(POLYGON_FORK_NUMBER + 1) ); } + + #[tokio::test(flavor = "multi_thread", worker_threads = 1)] + async fn test_fork_replay() { + let mut forker = Forker::new_with_fork( + NewForkedEvm { + fork_url: CI_DEPLOY_SEPOLIA_RPC_URL.to_string(), + fork_block_number: None, + }, + None, + None, + ) + .await + .unwrap(); + + let tx_hash = "0xcbfff7d9369afcc7a851dff42ca2769f32d77c3b9066023b887583ee9cd0809d" + .parse::() + .unwrap(); + + let replay_result = forker.replay_transaction(tx_hash).await.unwrap(); + + assert!( + replay_result.env.tx.caller + == "0x8924274F5304277FFDdd29fad5181D98D5F65eF6" + .parse::
() + .unwrap() + ); + assert!(replay_result.exit_reason.is_ok()); + } } diff --git a/crates/eval/src/trace.rs b/crates/eval/src/trace.rs index 22c453f96..95428ca19 100644 --- a/crates/eval/src/trace.rs +++ b/crates/eval/src/trace.rs @@ -1,7 +1,7 @@ use crate::fork::ForkTypedReturn; use alloy::primitives::{Address, U256}; +use foundry_evm::executors::RawCallResult; use rain_interpreter_bindings::IInterpreterV3::{eval3Call, eval3Return}; - use thiserror::Error; pub const RAIN_TRACER_ADDRESS: &str = "0xF06Cd48c98d7321649dB7D8b2C396A81A2046555"; @@ -56,13 +56,11 @@ pub struct RainEvalResult { pub traces: Vec, } -impl From> for RainEvalResult { - fn from(typed_return: ForkTypedReturn) -> Self { - let eval3Return { stack, writes } = typed_return.typed_return; - +impl From for RainEvalResult { + fn from(raw_call_result: RawCallResult) -> Self { let tracer_address = RAIN_TRACER_ADDRESS.parse::
().unwrap(); - let mut traces: Vec = typed_return - .raw + + let mut traces: Vec = raw_call_result .traces .unwrap() .to_owned() @@ -79,10 +77,25 @@ impl From> for RainEvalResult { traces.reverse(); RainEvalResult { - reverted: typed_return.raw.reverted, + reverted: raw_call_result.reverted, + stack: vec![], + writes: vec![], + traces, + } + } +} + +impl From> for RainEvalResult { + fn from(typed_return: ForkTypedReturn) -> Self { + let eval3Return { stack, writes } = typed_return.typed_return; + + let res: RainEvalResult = typed_return.raw.into(); + + RainEvalResult { + reverted: res.reverted, stack, writes, - traces, + traces: res.traces, } } } From 558e5fdf7fcec46d4f151ec393e32d51245aa140 Mon Sep 17 00:00:00 2001 From: highonhopium Date: Fri, 30 Aug 2024 13:41:53 +0100 Subject: [PATCH 02/62] flattening and naming full traces --- crates/eval/src/trace.rs | 111 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 108 insertions(+), 3 deletions(-) diff --git a/crates/eval/src/trace.rs b/crates/eval/src/trace.rs index 95428ca19..ce9a82904 100644 --- a/crates/eval/src/trace.rs +++ b/crates/eval/src/trace.rs @@ -2,10 +2,19 @@ use crate::fork::ForkTypedReturn; use alloy::primitives::{Address, U256}; use foundry_evm::executors::RawCallResult; use rain_interpreter_bindings::IInterpreterV3::{eval3Call, eval3Return}; +use std::ops::{Deref, DerefMut}; use thiserror::Error; pub const RAIN_TRACER_ADDRESS: &str = "0xF06Cd48c98d7321649dB7D8b2C396A81A2046555"; +#[derive(Error, Debug)] +pub enum RainEvalResultError { + #[error("Corrupt traces")] + CorruptTraces, +} + +type RainStack = Vec; + /// A struct representing a single trace from a Rain source. Intended to be decoded /// from the calldata sent as part of a noop call by the Interpreter to the /// non-existent tracer contract. @@ -13,7 +22,34 @@ pub const RAIN_TRACER_ADDRESS: &str = "0xF06Cd48c98d7321649dB7D8b2C396A81A204655 pub struct RainSourceTrace { pub parent_source_index: u16, pub source_index: u16, - pub stack: Vec, + pub stack: RainStack, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct RainSourceTraces { + pub traces: Vec, +} + +impl Deref for RainSourceTraces { + type Target = Vec; + + fn deref(&self) -> &Self::Target { + &self.traces + } +} + +impl DerefMut for RainSourceTraces { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.traces + } +} + +impl FromIterator for RainSourceTraces { + fn from_iter>(iter: I) -> Self { + RainSourceTraces { + traces: iter.into_iter().collect(), + } + } } impl RainSourceTrace { @@ -46,6 +82,52 @@ impl RainSourceTrace { } } +impl RainSourceTraces { + pub fn flatten(&self) -> RainStack { + let mut flattened_stack: RainStack = vec![]; + for trace in self.traces.iter() { + let mut stack = trace.stack.clone(); + stack.reverse(); + for stack_item in stack.iter() { + flattened_stack.push(*stack_item); + } + } + flattened_stack + } + pub fn flattened_path_names(&self) -> Result, RainEvalResultError> { + let mut path_names: Vec = vec![]; + let mut source_paths: Vec = vec![]; + + for trace in self.iter() { + let current_path = if trace.parent_source_index == trace.source_index { + format!("{}", trace.source_index) + } else { + source_paths + .iter() + .rev() + .find_map(|recent_path| { + recent_path.split('.').last().and_then(|last_part| { + if last_part == trace.parent_source_index.to_string() { + Some(format!("{}.{}", recent_path, trace.source_index)) + } else { + None + } + }) + }) + .ok_or_else(|| RainEvalResultError::CorruptTraces)? + }; + + for (index, _) in trace.stack.iter().enumerate() { + path_names.push(format!("{}.{}", current_path, index)); + } + + source_paths.push(current_path); + } + + Ok(path_names) + } +} + /// A struct representing the result of a Rain eval call. Contains the stack, /// writes, and traces. Can be constructed from a `ForkTypedReturn`. #[derive(Debug, Clone)] @@ -53,14 +135,37 @@ pub struct RainEvalResult { pub reverted: bool, pub stack: Vec, pub writes: Vec, - pub traces: Vec, + pub traces: RainSourceTraces, +} + +pub struct RainEvalResults { + pub results: Vec, +} + +pub struct RainEvalResultsTable { + pub column_names: Vec, + pub rows: Vec, +} + +impl RainEvalResults { + pub fn into_flattened_table(&self) -> Result { + let column_names = &self.results[0].traces.flattened_path_names()?; + let mut rows = Vec::new(); + for result in &self.results { + rows.push(result.traces.flatten()); + } + Ok(RainEvalResultsTable { + column_names: column_names.to_vec(), + rows, + }) + } } impl From for RainEvalResult { fn from(raw_call_result: RawCallResult) -> Self { let tracer_address = RAIN_TRACER_ADDRESS.parse::
().unwrap(); - let mut traces: Vec = raw_call_result + let mut traces: RainSourceTraces = raw_call_result .traces .unwrap() .to_owned() From 861a69a56b43aab6f045dfcab15b4827ee398ec2 Mon Sep 17 00:00:00 2001 From: highonhopium Date: Fri, 30 Aug 2024 14:52:41 +0100 Subject: [PATCH 03/62] typeshare --- Cargo.toml | 1 + crates/eval/Cargo.toml | 1 + crates/eval/src/trace.rs | 12 ++++++++++++ 3 files changed, 14 insertions(+) diff --git a/Cargo.toml b/Cargo.toml index 0e670d008..a9f24f0a1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -36,6 +36,7 @@ alloy-ethers-typecast = { git = "https://github.com/rainlanguage/alloy-ethers-ty rain-interpreter-env = { path = "crates/env" } eyre = "0.6" rain-error-decoding = { git = "https://github.com/rainlanguage/rain.error", rev = "72d9577fdaf7135113847027ba951f9a43b41827" } +typeshare = { git = "https://github.com/tomjw64/typeshare", rev = "556b44aafd5304eedf17206800f69834e3820b7c" } [workspace.dependencies.rain_interpreter_parser] path = "crates/parser" diff --git a/crates/eval/Cargo.toml b/crates/eval/Cargo.toml index c58bce1cb..42fc644dc 100644 --- a/crates/eval/Cargo.toml +++ b/crates/eval/Cargo.toml @@ -15,6 +15,7 @@ reqwest = { workspace = true } once_cell = { workspace = true } eyre = { workspace = true } rain-error-decoding = { workspace = true } +typeshare = { workspace = true } [target.'cfg(not(target_family = "wasm"))'.dependencies] foundry-evm = { workspace = true } diff --git a/crates/eval/src/trace.rs b/crates/eval/src/trace.rs index ce9a82904..5a2cbdde3 100644 --- a/crates/eval/src/trace.rs +++ b/crates/eval/src/trace.rs @@ -2,8 +2,10 @@ use crate::fork::ForkTypedReturn; use alloy::primitives::{Address, U256}; use foundry_evm::executors::RawCallResult; use rain_interpreter_bindings::IInterpreterV3::{eval3Call, eval3Return}; +use serde::{Deserialize, Serialize}; use std::ops::{Deref, DerefMut}; use thiserror::Error; +use typeshare::typeshare; pub const RAIN_TRACER_ADDRESS: &str = "0xF06Cd48c98d7321649dB7D8b2C396A81A2046555"; @@ -13,6 +15,7 @@ pub enum RainEvalResultError { CorruptTraces, } +#[typeshare(serialized_as = "Vec")] type RainStack = Vec; /// A struct representing a single trace from a Rain source. Intended to be decoded @@ -138,10 +141,19 @@ pub struct RainEvalResult { pub traces: RainSourceTraces, } +#[derive(Debug, Clone)] pub struct RainEvalResults { pub results: Vec, } +impl From> for RainEvalResults { + fn from(results: Vec) -> Self { + RainEvalResults { results } + } +} + +#[typeshare] +#[derive(Debug, Serialize, Deserialize)] pub struct RainEvalResultsTable { pub column_names: Vec, pub rows: Vec, From 3fe2116625fca773cfeacbfc1db791e2d65d8efd Mon Sep 17 00:00:00 2001 From: highonhopium Date: Fri, 30 Aug 2024 15:00:03 +0100 Subject: [PATCH 04/62] deref --- crates/eval/src/trace.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/crates/eval/src/trace.rs b/crates/eval/src/trace.rs index 5a2cbdde3..2f5fd780e 100644 --- a/crates/eval/src/trace.rs +++ b/crates/eval/src/trace.rs @@ -152,6 +152,20 @@ impl From> for RainEvalResults { } } +impl Deref for RainEvalResults { + type Target = Vec; + + fn deref(&self) -> &Self::Target { + &self.results + } +} + +impl DerefMut for RainEvalResults { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.results + } +} + #[typeshare] #[derive(Debug, Serialize, Deserialize)] pub struct RainEvalResultsTable { From 6d2f74f9c4b72c3658baff5658101dd816e398e3 Mon Sep 17 00:00:00 2001 From: highonhopium Date: Fri, 30 Aug 2024 15:43:49 +0100 Subject: [PATCH 05/62] clippy --- Cargo.lock | 23 +++++++++++++++++++++++ crates/eval/src/trace.rs | 2 +- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/Cargo.lock b/Cargo.lock index 1abb99423..a13ccc79e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1545,7 +1545,9 @@ checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" dependencies = [ "android-tzdata", "iana-time-zone", + "js-sys", "num-traits", + "wasm-bindgen", "windows-targets 0.52.6", ] @@ -5141,6 +5143,7 @@ dependencies = [ "thiserror", "tokio", "tracing", + "typeshare", ] [[package]] @@ -6872,6 +6875,26 @@ version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" +[[package]] +name = "typeshare" +version = "1.0.1" +source = "git+https://github.com/tomjw64/typeshare?rev=556b44aafd5304eedf17206800f69834e3820b7c#556b44aafd5304eedf17206800f69834e3820b7c" +dependencies = [ + "chrono", + "serde", + "serde_json", + "typeshare-annotation", +] + +[[package]] +name = "typeshare-annotation" +version = "1.0.2" +source = "git+https://github.com/tomjw64/typeshare?rev=556b44aafd5304eedf17206800f69834e3820b7c#556b44aafd5304eedf17206800f69834e3820b7c" +dependencies = [ + "quote", + "syn 1.0.109", +] + [[package]] name = "ucd-trie" version = "0.1.6" diff --git a/crates/eval/src/trace.rs b/crates/eval/src/trace.rs index 2f5fd780e..cf5b6aef2 100644 --- a/crates/eval/src/trace.rs +++ b/crates/eval/src/trace.rs @@ -117,7 +117,7 @@ impl RainSourceTraces { } }) }) - .ok_or_else(|| RainEvalResultError::CorruptTraces)? + .ok_or(RainEvalResultError::CorruptTraces)? }; for (index, _) in trace.stack.iter().enumerate() { From 06af21914a69210fb5bb0670cb6420819a7e4717 Mon Sep 17 00:00:00 2001 From: highonhopium Date: Fri, 30 Aug 2024 16:04:09 +0100 Subject: [PATCH 06/62] tests --- crates/eval/src/fork.rs | 5 +- crates/eval/src/trace.rs | 129 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 130 insertions(+), 4 deletions(-) diff --git a/crates/eval/src/fork.rs b/crates/eval/src/fork.rs index e50ab2ecb..37a31cc31 100644 --- a/crates/eval/src/fork.rs +++ b/crates/eval/src/fork.rs @@ -499,10 +499,7 @@ impl Forker { #[cfg(test)] mod tests { - use crate::{ - namespace::CreateNamespace, - trace::{RainEvalResult, RainSourceTrace}, - }; + use crate::namespace::CreateNamespace; use rain_interpreter_env::{ CI_DEPLOY_SEPOLIA_RPC_URL, CI_FORK_SEPOLIA_BLOCK_NUMBER, CI_FORK_SEPOLIA_DEPLOYER_ADDRESS, }; diff --git a/crates/eval/src/trace.rs b/crates/eval/src/trace.rs index cf5b6aef2..148f7215e 100644 --- a/crates/eval/src/trace.rs +++ b/crates/eval/src/trace.rs @@ -441,6 +441,135 @@ mod tests { assert!(matches!(result, Err(TraceSearchError::TraceNotFound(_)))); } + #[test] + fn test_rain_source_trace_from_data() { + // stack items are 32 bytes each + let stack_items = vec![U256::from(1), U256::from(2), U256::from(3)]; + let stack_data: Vec = stack_items + .iter() + .flat_map(|x| x.to_be_bytes_vec()) + .collect(); + + let source_indices = vec![ + 0x00, 0x01, 0x00, 0x02, // parent_source_index: 1, source_index: 2 + ]; + + // concat source indices and stack data + let data: Vec = source_indices + .iter() + .chain(stack_data.iter()) + .copied() + .collect(); + + let trace = RainSourceTrace::from_data(&data).unwrap(); + + assert_eq!(trace.parent_source_index, 1); + assert_eq!(trace.source_index, 2); + assert_eq!(trace.stack.len(), 3); + assert_eq!(trace.stack[0], U256::from(1)); + } + + #[test] + fn test_rain_source_traces_deref() { + let trace1 = RainSourceTrace { + parent_source_index: 1, + source_index: 1, // Adjusted to have the same parent and source index for consistency + stack: vec![U256::from(1)], + }; + let trace2 = RainSourceTrace { + parent_source_index: 1, // Adjusted to match the parent_source_index + source_index: 2, + stack: vec![U256::from(2)], + }; + + let traces = RainSourceTraces { + traces: vec![trace1.clone(), trace2.clone()], + }; + + assert_eq!(traces[0], trace1); + assert_eq!(traces[1], trace2); + } + + #[test] + fn test_rain_source_traces_flatten() { + let trace1 = RainSourceTrace { + parent_source_index: 1, + source_index: 1, // Adjusted to match the test case + stack: vec![U256::from(1), U256::from(2)], + }; + let trace2 = RainSourceTrace { + parent_source_index: 1, // Adjusted to match the parent_source_index + source_index: 2, + stack: vec![U256::from(3)], + }; + + let traces = RainSourceTraces { + traces: vec![trace1, trace2], + }; + + let flattened_stack = traces.flatten(); + assert_eq!( + flattened_stack, + vec![U256::from(2), U256::from(1), U256::from(3)] + ); + } + + #[test] + fn test_rain_source_traces_flattened_path_names() { + let trace1 = RainSourceTrace { + parent_source_index: 1, + source_index: 1, // Adjusted to match the test case + stack: vec![U256::from(1), U256::from(2)], + }; + let trace2 = RainSourceTrace { + parent_source_index: 1, // Adjusted to match the parent_source_index + source_index: 2, + stack: vec![U256::from(3)], + }; + + let traces = RainSourceTraces { + traces: vec![trace1, trace2], + }; + + let path_names = traces.flattened_path_names().unwrap(); + assert_eq!(path_names, vec!["1.0", "1.1", "1.2.0"]); + } + + #[test] + fn test_rain_eval_result_into_flattened_table() { + let trace1 = RainSourceTrace { + parent_source_index: 1, + source_index: 1, // Adjusted to match the test case + stack: vec![U256::from(1), U256::from(2)], + }; + let trace2 = RainSourceTrace { + parent_source_index: 1, // Adjusted to match the parent_source_index + source_index: 2, + stack: vec![U256::from(3)], + }; + + let rain_eval_result = RainEvalResult { + reverted: false, + stack: vec![], + writes: vec![], + traces: RainSourceTraces { + traces: vec![trace1, trace2], + }, + }; + + let rain_eval_results = RainEvalResults { + results: vec![rain_eval_result], + }; + + let table = rain_eval_results.into_flattened_table().unwrap(); + assert_eq!(table.column_names, vec!["1.0", "1.1", "1.2.0"]); + assert_eq!(table.rows.len(), 1); + assert_eq!( + table.rows[0], + vec![U256::from(2), U256::from(1), U256::from(3)] + ); + } + fn vec_i32_to_u256(vec: Vec) -> Vec { vec.iter() .map(|&x| parse_ether(&x.to_string()).unwrap()) From 797157856e2762307da2813ea385db26c5b21430 Mon Sep 17 00:00:00 2001 From: highonhopium Date: Fri, 30 Aug 2024 16:47:18 +0100 Subject: [PATCH 07/62] clippy --- crates/eval/src/trace.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/eval/src/trace.rs b/crates/eval/src/trace.rs index 148f7215e..31c4999a4 100644 --- a/crates/eval/src/trace.rs +++ b/crates/eval/src/trace.rs @@ -444,13 +444,13 @@ mod tests { #[test] fn test_rain_source_trace_from_data() { // stack items are 32 bytes each - let stack_items = vec![U256::from(1), U256::from(2), U256::from(3)]; + let stack_items = [U256::from(1), U256::from(2), U256::from(3)]; let stack_data: Vec = stack_items .iter() .flat_map(|x| x.to_be_bytes_vec()) .collect(); - let source_indices = vec![ + let source_indices = [ 0x00, 0x01, 0x00, 0x02, // parent_source_index: 1, source_index: 2 ]; From daf8794d3827c3e6b508b869ef22a75bc2238a18 Mon Sep 17 00:00:00 2001 From: highonhopium Date: Tue, 3 Sep 2024 11:29:53 +0100 Subject: [PATCH 08/62] flake lock --- flake.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.lock b/flake.lock index 07089efb9..27761cf17 100644 --- a/flake.lock +++ b/flake.lock @@ -368,11 +368,11 @@ "solc": "solc_2" }, "locked": { - "lastModified": 1723043648, - "narHash": "sha256-DZCGdrjDRjjKF2BuPCqGb7H8guYA7uWsCeOT30tUWrk=", + "lastModified": 1724781020, + "narHash": "sha256-/vgAiDPnO11KoKxtdqxzR6L+vQmAPpLPL8dl3OqwVmQ=", "owner": "rainlanguage", "repo": "rainix", - "rev": "6baf112368cb17b44233b5fce6848aa0cc2d36d6", + "rev": "e2a37abcdc83c08834428d225fdf3c5469116f62", "type": "github" }, "original": { From 26e6b5cc629fddcb1e26f4a1a1baa97298b116ea Mon Sep 17 00:00:00 2001 From: highonhopium Date: Tue, 3 Sep 2024 23:38:36 +0100 Subject: [PATCH 09/62] bump metadata --- lib/rain.metadata | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/rain.metadata b/lib/rain.metadata index 7d2ea7947..9a0185267 160000 --- a/lib/rain.metadata +++ b/lib/rain.metadata @@ -1 +1 @@ -Subproject commit 7d2ea7947fdb986d61c1b45065804d9e26d74508 +Subproject commit 9a0185267e6870035fd307de026eac8b77234057 From 0b3cc50234ccab6d7e0362013832436745fba165 Mon Sep 17 00:00:00 2001 From: rouzwelt Date: Fri, 6 Sep 2024 21:23:41 +0000 Subject: [PATCH 10/62] init --- .env.example | 3 - Cargo.lock | 68 +- Cargo.toml | 5 +- crates/bindings/Cargo.toml | 2 +- crates/cli/Cargo.lock | 1585 ------------------------------- crates/cli/Cargo.toml | 12 +- crates/cli/src/commands/eval.rs | 12 +- crates/dispair/Cargo.toml | 8 +- crates/env/Cargo.toml | 10 - crates/env/src/lib.rs | 25 - crates/eval/Cargo.toml | 4 +- crates/eval/src/eval.rs | 31 +- crates/eval/src/fork.rs | 157 ++- crates/eval/src/trace.rs | 21 +- crates/parser/Cargo.toml | 8 +- crates/test_fixtures/Cargo.toml | 16 + crates/test_fixtures/src/lib.rs | 236 +++++ test/utils/TestERC20.sol | 19 + 18 files changed, 447 insertions(+), 1775 deletions(-) delete mode 100644 .env.example delete mode 100644 crates/cli/Cargo.lock delete mode 100644 crates/env/Cargo.toml delete mode 100644 crates/env/src/lib.rs create mode 100644 crates/test_fixtures/Cargo.toml create mode 100644 crates/test_fixtures/src/lib.rs create mode 100644 test/utils/TestERC20.sol diff --git a/.env.example b/.env.example deleted file mode 100644 index 63b50c1c3..000000000 --- a/.env.example +++ /dev/null @@ -1,3 +0,0 @@ -CI_DEPLOY_SEPOLIA_RPC_URL= -CI_FORK_SEPOLIA_BLOCK_NUMBER= -CI_FORK_SEPOLIA_DEPLOYER_ADDRESS= \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock index a13ccc79e..0eb7cedd2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -73,12 +73,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ba1c79677c9ce51c8d45e20845b05e6fb070ea2c863fba03ad6af2c778474bd" dependencies = [ "alloy-consensus", + "alloy-contract", "alloy-core", "alloy-eips", "alloy-genesis", + "alloy-network", + "alloy-node-bindings", "alloy-provider", "alloy-rpc-client", + "alloy-rpc-types", "alloy-serde", + "alloy-signer", + "alloy-signer-local", + "alloy-transport", "alloy-transport-http", ] @@ -279,6 +286,22 @@ dependencies = [ "thiserror", ] +[[package]] +name = "alloy-node-bindings" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "494b2fb0276a78ec13791446a417c2517eee5c8e8a8c520ae0681975b8056e5c" +dependencies = [ + "alloy-genesis", + "alloy-primitives 0.7.7", + "k256", + "serde_json", + "tempfile", + "thiserror", + "tracing", + "url", +] + [[package]] name = "alloy-primitives" version = "0.6.4" @@ -340,9 +363,12 @@ dependencies = [ "alloy-eips", "alloy-json-rpc", "alloy-network", + "alloy-node-bindings", "alloy-primitives 0.7.7", "alloy-rpc-client", + "alloy-rpc-types-anvil", "alloy-rpc-types-eth", + "alloy-signer-local", "alloy-transport", "alloy-transport-http", "async-stream", @@ -435,6 +461,17 @@ dependencies = [ "alloy-serde", ] +[[package]] +name = "alloy-rpc-types-anvil" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c7cf4356a9d00df76d6e90d002e2a7b5edc1c8476e90e6f17ab868d99db6435" +dependencies = [ + "alloy-primitives 0.7.7", + "alloy-serde", + "serde", +] + [[package]] name = "alloy-rpc-types-engine" version = "0.1.4" @@ -5102,14 +5139,14 @@ dependencies = [ [[package]] name = "rain-i9r-cli" -version = "0.0.1" +version = "0.0.0-alpha.0" dependencies = [ "alloy", "anyhow", "clap", - "rain-interpreter-env", "rain-interpreter-eval", "rain_interpreter_bindings", + "rain_interpreter_test_fixtures", "serde", "serde_bytes", "tokio", @@ -5117,25 +5154,17 @@ dependencies = [ "tracing-subscriber", ] -[[package]] -name = "rain-interpreter-env" -version = "0.0.0" -dependencies = [ - "alloy", - "once_cell", -] - [[package]] name = "rain-interpreter-eval" -version = "0.1.0" +version = "0.0.0-alpha.0" dependencies = [ "alloy", "eyre", "foundry-evm", "once_cell", "rain-error-decoding", - "rain-interpreter-env", "rain_interpreter_bindings", + "rain_interpreter_test_fixtures", "reqwest 0.11.27", "revm", "serde", @@ -5148,14 +5177,14 @@ dependencies = [ [[package]] name = "rain_interpreter_bindings" -version = "0.1.0" +version = "0.0.0-alpha.0" dependencies = [ "alloy", ] [[package]] name = "rain_interpreter_dispair" -version = "0.1.0" +version = "0.0.0-alpha.0" dependencies = [ "alloy", "alloy-ethers-typecast", @@ -5171,7 +5200,7 @@ dependencies = [ [[package]] name = "rain_interpreter_parser" -version = "0.1.0" +version = "0.0.0-alpha.0" dependencies = [ "alloy", "alloy-ethers-typecast", @@ -5184,6 +5213,15 @@ dependencies = [ "tokio", ] +[[package]] +name = "rain_interpreter_test_fixtures" +version = "0.0.0-alpha.0" +dependencies = [ + "alloy", + "getrandom", + "serde_json", +] + [[package]] name = "rand" version = "0.8.5" diff --git a/Cargo.toml b/Cargo.toml index a9f24f0a1..949a3b5c3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,6 +3,7 @@ members = ["crates/*"] resolver = "2" [workspace.package] +version = "0.0.0-alpha.0" edition = "2021" license = "CAL-1.0" homepage = "https://github.com/rainprotocol/rain.interpreter" @@ -33,7 +34,6 @@ tracing-subscriber = "0.3.17" reqwest = { version = "0.11.17", features = ["json"] } once_cell = "1.17.1" alloy-ethers-typecast = { git = "https://github.com/rainlanguage/alloy-ethers-typecast", rev = "0881930a22e84db49ba955c5b88e790e1266ac66" } -rain-interpreter-env = { path = "crates/env" } eyre = "0.6" rain-error-decoding = { git = "https://github.com/rainlanguage/rain.error", rev = "72d9577fdaf7135113847027ba951f9a43b41827" } typeshare = { git = "https://github.com/tomjw64/typeshare", rev = "556b44aafd5304eedf17206800f69834e3820b7c" } @@ -49,3 +49,6 @@ path = "crates/bindings" [workspace.dependencies.rain-interpreter-eval] path = "crates/eval" + +[workspace.dependencies.rain_interpreter_test_fixtures] +path = "crates/test_fixtures" diff --git a/crates/bindings/Cargo.toml b/crates/bindings/Cargo.toml index c44579cba..3e6327200 100644 --- a/crates/bindings/Cargo.toml +++ b/crates/bindings/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rain_interpreter_bindings" -version = "0.1.0" +version.workspace = true edition.workspace = true license.workspace = true homepage.workspace = true diff --git a/crates/cli/Cargo.lock b/crates/cli/Cargo.lock deleted file mode 100644 index 13e617d55..000000000 --- a/crates/cli/Cargo.lock +++ /dev/null @@ -1,1585 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "anstream" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6342bd4f5a1205d7f41e94a41a901f5647c938cdfa96036338e8533c9d6c2450" -dependencies = [ - "anstyle", - "anstyle-parse", - "anstyle-query", - "anstyle-wincon", - "colorchoice", - "is-terminal", - "utf8parse", -] - -[[package]] -name = "anstyle" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41ed9a86bf92ae6580e0a31281f65a1b1d867c0cc68d5346e2ae128dddfa6a7d" - -[[package]] -name = "anstyle-parse" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e765fd216e48e067936442276d1d57399e37bce53c264d6fefbe298080cb57ee" -dependencies = [ - "utf8parse", -] - -[[package]] -name = "anstyle-query" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b" -dependencies = [ - "windows-sys 0.48.0", -] - -[[package]] -name = "anstyle-wincon" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "180abfa45703aebe0093f79badacc01b8fd4ea2e35118747e5811127f926e188" -dependencies = [ - "anstyle", - "windows-sys 0.48.0", -] - -[[package]] -name = "anyhow" -version = "1.0.70" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7de8ce5e0f9f8d88245311066a578d72b7af3e7088f32783804676302df237e4" - -[[package]] -name = "ascii" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eab1c04a571841102f5345a8fc0f6bb3d31c315dec879b5c6e42e40ce7ffa34e" - -[[package]] -name = "autocfg" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" - -[[package]] -name = "base64" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a" - -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "bumpalo" -version = "3.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b1ce199063694f33ffb7dd4e0ee620741495c32833cde5aa08f02a0bf96f0c8" - -[[package]] -name = "byteorder" -version = "1.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" - -[[package]] -name = "bytes" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" - -[[package]] -name = "cc" -version = "1.0.79" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "clap" -version = "4.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a1f23fa97e1d1641371b51f35535cb26959b8e27ab50d167a8b996b5bada819" -dependencies = [ - "clap_builder", - "clap_derive", - "once_cell", -] - -[[package]] -name = "clap_builder" -version = "4.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fdc5d93c358224b4d6867ef1356d740de2303e9892edc06c5340daeccd96bab" -dependencies = [ - "anstream", - "anstyle", - "bitflags", - "clap_lex", - "once_cell", - "strsim", -] - -[[package]] -name = "clap_derive" -version = "4.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9644cd56d6b87dbe899ef8b053e331c0637664e9e21a33dfcdc36093f5c5c4" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn 2.0.15", -] - -[[package]] -name = "clap_lex" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a2dd5a6fe8c6e3502f568a6353e5273bbb15193ad9a89e457b9970798efbea1" - -[[package]] -name = "colorchoice" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" - -[[package]] -name = "combine" -version = "3.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da3da6baa321ec19e1cc41d31bf599f00c783d0517095cdaf0332e3fe8d20680" -dependencies = [ - "ascii", - "byteorder", - "either", - "memchr", - "unreachable", -] - -[[package]] -name = "core-foundation" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" - -[[package]] -name = "either" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" - -[[package]] -name = "encoding_rs" -version = "0.8.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071a31f4ee85403370b58aca746f01041ede6f0da2730960ad001edc2b71b394" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "errno" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a" -dependencies = [ - "errno-dragonfly", - "libc", - "windows-sys 0.48.0", -] - -[[package]] -name = "errno-dragonfly" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" -dependencies = [ - "cc", - "libc", -] - -[[package]] -name = "fastrand" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" -dependencies = [ - "instant", -] - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - -[[package]] -name = "form_urlencoded" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "futures-channel" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2" -dependencies = [ - "futures-core", -] - -[[package]] -name = "futures-core" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" - -[[package]] -name = "futures-sink" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" - -[[package]] -name = "futures-task" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" - -[[package]] -name = "futures-util" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533" -dependencies = [ - "futures-core", - "futures-task", - "pin-project-lite", - "pin-utils", -] - -[[package]] -name = "getrandom" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4" -dependencies = [ - "cfg-if", - "libc", - "wasi", -] - -[[package]] -name = "graphql-introspection-query" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f2a4732cf5140bd6c082434494f785a19cfb566ab07d1382c3671f5812fed6d" -dependencies = [ - "serde", -] - -[[package]] -name = "graphql-parser" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2ebc8013b4426d5b81a4364c419a95ed0b404af2b82e2457de52d9348f0e474" -dependencies = [ - "combine", - "thiserror", -] - -[[package]] -name = "graphql_client" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa61bb9dc6d373a8b465a5da17b62809483e8527a34b0e9034dc0915b09e160a" -dependencies = [ - "graphql_query_derive", - "serde", - "serde_json", -] - -[[package]] -name = "graphql_client_codegen" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e55df64cc702c4ad6647f8df13a799ad11688a3781fadf5045f7ba12733fa9b" -dependencies = [ - "graphql-introspection-query", - "graphql-parser", - "heck", - "lazy_static", - "proc-macro2", - "quote", - "serde", - "serde_json", - "syn 1.0.109", -] - -[[package]] -name = "graphql_query_derive" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d52fc9cde811f44b15ec0692b31e56a3067f6f431c5ace712f286e47c1dacc98" -dependencies = [ - "graphql_client_codegen", - "proc-macro2", - "syn 1.0.109", -] - -[[package]] -name = "h2" -version = "0.3.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17f8a914c2987b688368b5138aa05321db91f4090cf26118185672ad588bce21" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http", - "indexmap", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" - -[[package]] -name = "heck" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" - -[[package]] -name = "hermit-abi" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" -dependencies = [ - "libc", -] - -[[package]] -name = "hermit-abi" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286" - -[[package]] -name = "http" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "http-body" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" -dependencies = [ - "bytes", - "http", - "pin-project-lite", -] - -[[package]] -name = "httparse" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" - -[[package]] -name = "httpdate" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" - -[[package]] -name = "hyper" -version = "0.14.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab302d72a6f11a3b910431ff93aae7e773078c769f0a3ef15fb9ec692ed147d4" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "socket2", - "tokio", - "tower-service", - "tracing", - "want", -] - -[[package]] -name = "hyper-tls" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" -dependencies = [ - "bytes", - "hyper", - "native-tls", - "tokio", - "tokio-native-tls", -] - -[[package]] -name = "idna" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" -dependencies = [ - "unicode-bidi", - "unicode-normalization", -] - -[[package]] -name = "indexmap" -version = "1.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" -dependencies = [ - "autocfg", - "hashbrown", -] - -[[package]] -name = "instant" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "io-lifetimes" -version = "1.0.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c66c74d2ae7e79a5a8f7ac924adbe38ee42a859c6539ad869eb51f0b52dc220" -dependencies = [ - "hermit-abi 0.3.1", - "libc", - "windows-sys 0.48.0", -] - -[[package]] -name = "ipnet" -version = "2.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12b6ee2129af8d4fb011108c73d99a1b83a85977f23b82460c0ae2e25bb4b57f" - -[[package]] -name = "is-terminal" -version = "0.4.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adcf93614601c8129ddf72e2d5633df827ba6551541c6d8c59520a371475be1f" -dependencies = [ - "hermit-abi 0.3.1", - "io-lifetimes", - "rustix", - "windows-sys 0.48.0", -] - -[[package]] -name = "itoa" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6" - -[[package]] -name = "js-sys" -version = "0.3.61" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730" -dependencies = [ - "wasm-bindgen", -] - -[[package]] -name = "lazy_static" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" - -[[package]] -name = "libc" -version = "0.2.142" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a987beff54b60ffa6d51982e1aa1146bc42f19bd26be28b0586f252fccf5317" - -[[package]] -name = "linux-raw-sys" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b64f40e5e03e0d54f03845c8197d0291253cdbedfb1cb46b13c2c117554a9f4c" - -[[package]] -name = "lock_api" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" -dependencies = [ - "autocfg", - "scopeguard", -] - -[[package]] -name = "log" -version = "0.4.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "memchr" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" - -[[package]] -name = "mime" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" - -[[package]] -name = "mio" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b9d9a46eff5b4ff64b45a9e316a6d1e0bc719ef429cbec4dc630684212bfdf9" -dependencies = [ - "libc", - "log", - "wasi", - "windows-sys 0.45.0", -] - -[[package]] -name = "native-tls" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" -dependencies = [ - "lazy_static", - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", -] - -[[package]] -name = "nu-ansi-term" -version = "0.46.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" -dependencies = [ - "overload", - "winapi", -] - -[[package]] -name = "num-traits" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" -dependencies = [ - "autocfg", -] - -[[package]] -name = "num_cpus" -version = "1.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b" -dependencies = [ - "hermit-abi 0.2.6", - "libc", -] - -[[package]] -name = "once_cell" -version = "1.17.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" - -[[package]] -name = "openssl" -version = "0.10.52" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01b8574602df80f7b85fdfc5392fa884a4e3b3f4f35402c070ab34c3d3f78d56" -dependencies = [ - "bitflags", - "cfg-if", - "foreign-types", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", -] - -[[package]] -name = "openssl-macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.15", -] - -[[package]] -name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - -[[package]] -name = "openssl-sys" -version = "0.9.87" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e17f59264b2809d77ae94f0e1ebabc434773f370d6ca667bd223ea10e06cc7e" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "overload" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" - -[[package]] -name = "parking_lot" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" -dependencies = [ - "lock_api", - "parking_lot_core", -] - -[[package]] -name = "parking_lot_core" -version = "0.9.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall 0.2.16", - "smallvec", - "windows-sys 0.45.0", -] - -[[package]] -name = "percent-encoding" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" - -[[package]] -name = "pin-project-lite" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "pkg-config" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160" - -[[package]] -name = "proc-macro2" -version = "1.0.56" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quote" -version = "1.0.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "rain_cli_ob" -version = "0.0.4" -dependencies = [ - "anyhow", - "clap", - "graphql_client", - "once_cell", - "reqwest", - "rust-bigint", - "serde", - "serde_bytes", - "tokio", - "tracing", - "tracing-subscriber", -] - -[[package]] -name = "redox_syscall" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" -dependencies = [ - "bitflags", -] - -[[package]] -name = "redox_syscall" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" -dependencies = [ - "bitflags", -] - -[[package]] -name = "reqwest" -version = "0.11.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13293b639a097af28fc8a90f22add145a9c954e49d77da06263d58cf44d5fb91" -dependencies = [ - "base64", - "bytes", - "encoding_rs", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "hyper", - "hyper-tls", - "ipnet", - "js-sys", - "log", - "mime", - "native-tls", - "once_cell", - "percent-encoding", - "pin-project-lite", - "serde", - "serde_json", - "serde_urlencoded", - "tokio", - "tokio-native-tls", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "winreg", -] - -[[package]] -name = "rust-bigint" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe1d6964d886b707f3e2cec76ac5b0e887661a6699f695ed0d3d5bb4852d6959" -dependencies = [ - "getrandom", - "rust-gmp-kzen", - "serde", - "serde_derive", -] - -[[package]] -name = "rust-gmp-kzen" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e654bb304958a567aefa09e83cc313251388202c40bfc245fac19a0e2dd8d08" -dependencies = [ - "libc", - "num-traits", - "serde", -] - -[[package]] -name = "rustix" -version = "0.37.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc809f704c03a812ac71f22456c857be34185cac691a4316f27ab0f633bb9009" -dependencies = [ - "bitflags", - "errno", - "io-lifetimes", - "libc", - "linux-raw-sys", - "windows-sys 0.48.0", -] - -[[package]] -name = "ryu" -version = "1.0.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" - -[[package]] -name = "schannel" -version = "0.1.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "713cfb06c7059f3588fb8044c0fad1d09e3c01d225e25b9220dbfdcf16dbb1b3" -dependencies = [ - "windows-sys 0.42.0", -] - -[[package]] -name = "scopeguard" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" - -[[package]] -name = "security-framework" -version = "2.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a332be01508d814fed64bf28f798a146d73792121129962fdf335bb3c49a4254" -dependencies = [ - "bitflags", - "core-foundation", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31c9bb296072e961fcbd8853511dd39c2d8be2deb1e17c6860b1d30732b323b4" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "serde" -version = "1.0.160" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb2f3770c8bce3bcda7e149193a069a0f4365bda1fa5cd88e03bca26afc1216c" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_bytes" -version = "0.11.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "416bda436f9aab92e02c8e10d49a15ddd339cea90b6e340fe51ed97abb548294" -dependencies = [ - "serde", -] - -[[package]] -name = "serde_derive" -version = "1.0.160" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291a097c63d8497e00160b166a967a4a79c64f3facdd01cbd7502231688d77df" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.15", -] - -[[package]] -name = "serde_json" -version = "1.0.96" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "057d394a50403bcac12672b2b18fb387ab6d289d957dab67dd201875391e52f1" -dependencies = [ - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "serde_urlencoded" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" -dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "sharded-slab" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" -dependencies = [ - "lazy_static", -] - -[[package]] -name = "signal-hook-registry" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" -dependencies = [ - "libc", -] - -[[package]] -name = "slab" -version = "0.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" -dependencies = [ - "autocfg", -] - -[[package]] -name = "smallvec" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" - -[[package]] -name = "socket2" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "strsim" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" - -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn" -version = "2.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a34fcf3e8b60f57e6a14301a2e916d323af98b0ea63c599441eec8558660c822" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "tempfile" -version = "3.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9fbec84f381d5795b08656e4912bec604d162bff9291d6189a78f4c8ab87998" -dependencies = [ - "cfg-if", - "fastrand", - "redox_syscall 0.3.5", - "rustix", - "windows-sys 0.45.0", -] - -[[package]] -name = "thiserror" -version = "1.0.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac" -dependencies = [ - "thiserror-impl", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.15", -] - -[[package]] -name = "thread_local" -version = "1.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" -dependencies = [ - "cfg-if", - "once_cell", -] - -[[package]] -name = "tinyvec" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" - -[[package]] -name = "tokio" -version = "1.28.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3c786bf8134e5a3a166db9b29ab8f48134739014a3eca7bc6bfa95d673b136f" -dependencies = [ - "autocfg", - "bytes", - "libc", - "mio", - "num_cpus", - "parking_lot", - "pin-project-lite", - "signal-hook-registry", - "socket2", - "tokio-macros", - "windows-sys 0.48.0", -] - -[[package]] -name = "tokio-macros" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.15", -] - -[[package]] -name = "tokio-native-tls" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" -dependencies = [ - "native-tls", - "tokio", -] - -[[package]] -name = "tokio-util" -version = "0.7.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "pin-project-lite", - "tokio", - "tracing", -] - -[[package]] -name = "tower-service" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" - -[[package]] -name = "tracing" -version = "0.1.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" -dependencies = [ - "cfg-if", - "pin-project-lite", - "tracing-attributes", - "tracing-core", -] - -[[package]] -name = "tracing-attributes" -version = "0.1.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f57e3ca2a01450b1a921183a9c9cbfda207fd822cef4ccb00a65402cbba7a74" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.15", -] - -[[package]] -name = "tracing-core" -version = "0.1.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" -dependencies = [ - "once_cell", - "valuable", -] - -[[package]] -name = "tracing-log" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" -dependencies = [ - "lazy_static", - "log", - "tracing-core", -] - -[[package]] -name = "tracing-subscriber" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77" -dependencies = [ - "nu-ansi-term", - "sharded-slab", - "smallvec", - "thread_local", - "tracing-core", - "tracing-log", -] - -[[package]] -name = "try-lock" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" - -[[package]] -name = "unicode-bidi" -version = "0.3.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" - -[[package]] -name = "unicode-ident" -version = "1.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4" - -[[package]] -name = "unicode-normalization" -version = "0.1.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" -dependencies = [ - "tinyvec", -] - -[[package]] -name = "unreachable" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" -dependencies = [ - "void", -] - -[[package]] -name = "url" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", -] - -[[package]] -name = "utf8parse" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" - -[[package]] -name = "valuable" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" - -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - -[[package]] -name = "void" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" - -[[package]] -name = "want" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" -dependencies = [ - "log", - "try-lock", -] - -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "wasm-bindgen" -version = "0.2.84" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b" -dependencies = [ - "cfg-if", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.84" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9" -dependencies = [ - "bumpalo", - "log", - "once_cell", - "proc-macro2", - "quote", - "syn 1.0.109", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f219e0d211ba40266969f6dbdd90636da12f75bee4fc9d6c23d1260dadb51454" -dependencies = [ - "cfg-if", - "js-sys", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.84" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.84" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.84" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d" - -[[package]] -name = "web-sys" -version = "0.3.61" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e33b99f4b23ba3eec1a53ac264e35a755f00e966e0065077d6027c0f575b0b97" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - -[[package]] -name = "windows-sys" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" -dependencies = [ - "windows_aarch64_gnullvm 0.42.2", - "windows_aarch64_msvc 0.42.2", - "windows_i686_gnu 0.42.2", - "windows_i686_msvc 0.42.2", - "windows_x86_64_gnu 0.42.2", - "windows_x86_64_gnullvm 0.42.2", - "windows_x86_64_msvc 0.42.2", -] - -[[package]] -name = "windows-sys" -version = "0.45.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" -dependencies = [ - "windows-targets 0.42.2", -] - -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.0", -] - -[[package]] -name = "windows-targets" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" -dependencies = [ - "windows_aarch64_gnullvm 0.42.2", - "windows_aarch64_msvc 0.42.2", - "windows_i686_gnu 0.42.2", - "windows_i686_msvc 0.42.2", - "windows_x86_64_gnu 0.42.2", - "windows_x86_64_gnullvm 0.42.2", - "windows_x86_64_msvc 0.42.2", -] - -[[package]] -name = "windows-targets" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5" -dependencies = [ - "windows_aarch64_gnullvm 0.48.0", - "windows_aarch64_msvc 0.48.0", - "windows_i686_gnu 0.48.0", - "windows_i686_msvc 0.48.0", - "windows_x86_64_gnu 0.48.0", - "windows_x86_64_gnullvm 0.48.0", - "windows_x86_64_msvc 0.48.0", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" - -[[package]] -name = "windows_i686_gnu" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" - -[[package]] -name = "windows_i686_gnu" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" - -[[package]] -name = "windows_i686_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" - -[[package]] -name = "winreg" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" -dependencies = [ - "winapi", -] diff --git a/crates/cli/Cargo.toml b/crates/cli/Cargo.toml index d7ff5f7fb..fc2620e3d 100644 --- a/crates/cli/Cargo.toml +++ b/crates/cli/Cargo.toml @@ -1,10 +1,10 @@ [package] name = "rain-i9r-cli" -version = "0.0.1" -edition = "2021" -license = "CAL-1.0" description = "Rain Interpreter CLI." -homepage = "https://github.com/rainprotocol/rain.orderbook" +version.workspace = true +edition.workspace = true +license.workspace = true +homepage.workspace = true # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html @@ -19,4 +19,6 @@ tokio = { version = "1.28.0", features = ["full"] } tracing = { workspace = true } tracing-subscriber = { workspace = true, features = ['env-filter'] } alloy = { workspace = true } -rain-interpreter-env = { workspace = true } \ No newline at end of file + +[dev-dependencies] +rain_interpreter_test_fixtures = { workspace = true } \ No newline at end of file diff --git a/crates/cli/src/commands/eval.rs b/crates/cli/src/commands/eval.rs index b1cdfef88..a19a49988 100644 --- a/crates/cli/src/commands/eval.rs +++ b/crates/cli/src/commands/eval.rs @@ -112,10 +112,7 @@ impl Execute for Eval { #[cfg(test)] mod tests { use super::*; - - use rain_interpreter_env::{ - CI_DEPLOY_SEPOLIA_RPC_URL, CI_FORK_SEPOLIA_BLOCK_NUMBER, CI_FORK_SEPOLIA_DEPLOYER_ADDRESS, - }; + use rain_interpreter_test_fixtures::LocalEvm; #[test] fn test_parse_int_or_hex() { @@ -127,16 +124,17 @@ mod tests { #[tokio::test(flavor = "multi_thread", worker_threads = 1)] async fn test_execute() { + let local_evm = LocalEvm::new().await; let eval = Eval { output_path: None, forked_evm: NewForkedEvmCliArgs { - fork_url: CI_DEPLOY_SEPOLIA_RPC_URL.to_string(), - fork_block_number: Some(*CI_FORK_SEPOLIA_BLOCK_NUMBER), + fork_url: local_evm.url(), + fork_block_number: None, }, fork_eval_args: ForkEvalCliArgs { rainlang_string: r"_: add(10 2), _: context<0 0>(), _:context<0 1>();".into(), source_index: 0, - deployer: *CI_FORK_SEPOLIA_DEPLOYER_ADDRESS, + deployer: *local_evm.deployer.address(), namespace: "0x123".into(), context: vec!["0x06,99".into()], decode_errors: true, diff --git a/crates/dispair/Cargo.toml b/crates/dispair/Cargo.toml index 6369b04ce..bf312e697 100644 --- a/crates/dispair/Cargo.toml +++ b/crates/dispair/Cargo.toml @@ -1,10 +1,10 @@ [package] name = "rain_interpreter_dispair" -version = "0.1.0" -edition = "2021" -license = "CAL-1.0" description = "Rain Interpreter Rust Crate." -homepage = "https://github.com/rainlanguage/rain.interpreter" +version.workspace = true +edition.workspace = true +license.workspace = true +homepage.workspace = true [dependencies] alloy-ethers-typecast = { workspace = true } diff --git a/crates/env/Cargo.toml b/crates/env/Cargo.toml deleted file mode 100644 index d1d2e6954..000000000 --- a/crates/env/Cargo.toml +++ /dev/null @@ -1,10 +0,0 @@ -[package] -name = "rain-interpreter-env" -version = "0.0.0" -edition.workspace = true -license.workspace = true -homepage.workspace = true - -[dependencies] -once_cell = { workspace = true } -alloy = { workspace = true } diff --git a/crates/env/src/lib.rs b/crates/env/src/lib.rs deleted file mode 100644 index 243ee0efb..000000000 --- a/crates/env/src/lib.rs +++ /dev/null @@ -1,25 +0,0 @@ -use alloy::primitives::{Address, BlockNumber}; -use once_cell::sync::Lazy; - -pub const CI_DEPLOY_SEPOLIA_RPC_URL: &str = env!( - "CI_DEPLOY_SEPOLIA_RPC_URL", - "$CI_DEPLOY_SEPOLIA_RPC_URL not set." -); - -pub static CI_FORK_SEPOLIA_DEPLOYER_ADDRESS: Lazy
= Lazy::new(|| { - env!( - "CI_FORK_SEPOLIA_DEPLOYER_ADDRESS", - "$CI_FORK_SEPOLIA_DEPLOYER_ADDRESS not set." - ) - .parse() - .unwrap() -}); - -pub static CI_FORK_SEPOLIA_BLOCK_NUMBER: Lazy = Lazy::new(|| { - env!( - "CI_FORK_SEPOLIA_BLOCK_NUMBER", - "$CI_FORK_SEPOLIA_BLOCK_NUMBER not set." - ) - .parse() - .unwrap() -}); diff --git a/crates/eval/Cargo.toml b/crates/eval/Cargo.toml index 42fc644dc..ffaa9cc8c 100644 --- a/crates/eval/Cargo.toml +++ b/crates/eval/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rain-interpreter-eval" -version = "0.1.0" +version.workspace = true edition.workspace = true license.workspace = true homepage.workspace = true @@ -24,4 +24,4 @@ revm = { workspace = true } [dev-dependencies] tokio = { version = "1.28.0", features = ["full"] } tracing = { workspace = true } -rain-interpreter-env = { workspace = true } +rain_interpreter_test_fixtures = { workspace = true } diff --git a/crates/eval/src/eval.rs b/crates/eval/src/eval.rs index 9dd08b047..2278f4221 100644 --- a/crates/eval/src/eval.rs +++ b/crates/eval/src/eval.rs @@ -134,22 +134,19 @@ impl Forker { #[cfg(test)] mod tests { - use alloy::primitives::utils::parse_ether; - use rain_interpreter_env::{ - CI_DEPLOY_SEPOLIA_RPC_URL, CI_FORK_SEPOLIA_BLOCK_NUMBER, CI_FORK_SEPOLIA_DEPLOYER_ADDRESS, - }; - - use std::sync::Arc; - use super::*; use crate::fork::NewForkedEvm; + use alloy::primitives::utils::parse_ether; + use rain_interpreter_test_fixtures::LocalEvm; + use std::sync::Arc; #[tokio::test(flavor = "multi_thread", worker_threads = 1)] async fn test_fork_parse() { - let deployer: Address = *CI_FORK_SEPOLIA_DEPLOYER_ADDRESS; + let local_evm = LocalEvm::new().await; + let deployer = *local_evm.deployer.address(); let args = NewForkedEvm { - fork_url: CI_DEPLOY_SEPOLIA_RPC_URL.to_string(), - fork_block_number: Some(*CI_FORK_SEPOLIA_BLOCK_NUMBER), + fork_url: local_evm.url(), + fork_block_number: None, }; let fork = Forker::new_with_fork(args, None, None).await.unwrap(); let res = fork @@ -167,10 +164,11 @@ mod tests { #[tokio::test(flavor = "multi_thread", worker_threads = 1)] async fn test_fork_eval() { - let deployer: Address = *CI_FORK_SEPOLIA_DEPLOYER_ADDRESS; + let local_evm = LocalEvm::new().await; + let deployer = *local_evm.deployer.address(); let args = NewForkedEvm { - fork_url: CI_DEPLOY_SEPOLIA_RPC_URL.to_owned(), - fork_block_number: Some(*CI_FORK_SEPOLIA_BLOCK_NUMBER), + fork_url: local_evm.url(), + fork_block_number: None, }; let fork = Forker::new_with_fork(args, None, None).await.unwrap(); let res = fork @@ -209,10 +207,11 @@ mod tests { #[tokio::test(flavor = "multi_thread", worker_threads = 10)] async fn test_fork_eval_parallel() { - let deployer: Address = *CI_FORK_SEPOLIA_DEPLOYER_ADDRESS; + let local_evm = LocalEvm::new().await; + let deployer = *local_evm.deployer.address(); let args = NewForkedEvm { - fork_url: CI_DEPLOY_SEPOLIA_RPC_URL.to_string(), - fork_block_number: Some(*CI_FORK_SEPOLIA_BLOCK_NUMBER), + fork_url: local_evm.url(), + fork_block_number: None, }; let fork = Forker::new_with_fork(args, None, None).await.unwrap(); let fork = Arc::new(fork); // Wrap in Arc for shared ownership diff --git a/crates/eval/src/fork.rs b/crates/eval/src/fork.rs index 37a31cc31..bc1457264 100644 --- a/crates/eval/src/fork.rs +++ b/crates/eval/src/fork.rs @@ -8,7 +8,7 @@ use foundry_evm::{ opts::EvmOpts, }; use rain_error_decoding::AbiDecodedErrorType; -use revm::primitives::B256; +use revm::primitives::{TxKind, B256}; use revm::{ interpreter::InstructionResult, primitives::{Address as Addr, Bytes, Env, HashSet, SpecId}, @@ -477,13 +477,10 @@ impl Forker { )?; let res = match tx { - Some(tx) => match tx.to { - Some(to) => self.call(tx.from.as_slice(), to.as_slice(), &tx.input)?, - None => { - return Err(ForkCallError::ReplayTransactionError( - ReplayTransactionError::NoFromAddressFound(tx_hash.to_string(), fork_url), - )) - } + // if to field is None, it means the tx was a contract deployment, see 'revm::primitives::TxKind' + Some(tx) => match TxKind::from(tx.to) { + TxKind::Call(to) => self.call(tx.from.as_slice(), to.as_slice(), &tx.input)?, + TxKind::Create => self.call(tx.from.as_slice(), &[0u8; 20], &tx.input)?, }, None => { return Err(ForkCallError::ReplayTransactionError( @@ -499,18 +496,16 @@ impl Forker { #[cfg(test)] mod tests { - use crate::namespace::CreateNamespace; - use rain_interpreter_env::{ - CI_DEPLOY_SEPOLIA_RPC_URL, CI_FORK_SEPOLIA_BLOCK_NUMBER, CI_FORK_SEPOLIA_DEPLOYER_ADDRESS, - }; - use super::*; + use crate::namespace::CreateNamespace; + use alloy::eips::BlockNumberOrTag; use alloy::primitives::U256; - use alloy::sol; + use alloy::{providers::Provider, sol}; use rain_interpreter_bindings::{ - DeployerISP::{iParserCall, iStoreCall}, + DeployerISP::iParserCall, IInterpreterStoreV1::{getCall, setCall}, }; + use rain_interpreter_test_fixtures::LocalEvm; sol! { interface IERC20 { @@ -521,57 +516,40 @@ mod tests { function transferFrom(address from, address to, uint256 amount) external returns (bool); } } - const USDT_POLYGON: &str = "0xc2132d05d31c914a87c6611c10748aeb04b58e8f"; - const USDT_BSC: &str = "0x55d398326f99059fF775485246999027B3197955"; - const POLYGON_FORK_NUMBER: u64 = 54697866; - const BSC_FORK_NUMBER: u64 = 40531873; - const POLYGON_FORK_URL: &str = "https://rpc.ankr.com/polygon"; - const BSC_FORK_URL: &str = "https://rpc.ankr.com/bsc"; - const BSC_ACC: &str = "0xee5B5B923fFcE93A870B3104b7CA09c3db80047A"; - const POLYGON_ACC: &str = "0xF977814e90dA44bFA03b6295A0616a897441aceC"; #[tokio::test(flavor = "multi_thread", worker_threads = 1)] async fn test_forker_read() { + let local_evm = LocalEvm::new().await; + let deployer = *local_evm.deployer.address(); let args = NewForkedEvm { - fork_url: CI_DEPLOY_SEPOLIA_RPC_URL.to_string(), - fork_block_number: Some(*CI_FORK_SEPOLIA_BLOCK_NUMBER), + fork_url: local_evm.url(), + fork_block_number: None, }; let forker = Forker::new_with_fork(args, None, None).await.unwrap(); let from_address = Address::default(); - let to_address: Address = *CI_FORK_SEPOLIA_DEPLOYER_ADDRESS; + let to_address = deployer; let call = iParserCall {}; let result = forker .alloy_call(from_address, to_address, call, false) .await .unwrap(); let parser_address = result.typed_return._0; - let expected_address = "0xf14e09601a47552de6abd3a0b165607fafd2b5ba" - .parse::
() - .unwrap(); + let expected_address = *local_evm.parser.address(); assert_eq!(parser_address, expected_address); } #[tokio::test(flavor = "multi_thread", worker_threads = 1)] async fn test_forker_write() { + let local_evm = LocalEvm::new().await; let args = NewForkedEvm { - fork_url: CI_DEPLOY_SEPOLIA_RPC_URL.to_string(), - fork_block_number: Some(*CI_FORK_SEPOLIA_BLOCK_NUMBER), + fork_url: local_evm.url(), + fork_block_number: None, }; let mut forker = Forker::new_with_fork(args, None, None).await.unwrap(); let from_address = Address::repeat_byte(0x02); - let store_call = iStoreCall {}; - let store_result = forker - .alloy_call( - from_address, - *CI_FORK_SEPOLIA_DEPLOYER_ADDRESS, - store_call, - false, - ) - .await - .unwrap(); - let store_address: Address = store_result.typed_return._0; + let store_address = *local_evm.store.address(); let namespace = U256::from(1); let key = U256::from(3); @@ -612,16 +590,19 @@ mod tests { #[tokio::test(flavor = "multi_thread", worker_threads = 1)] async fn test_multi_fork_read_write_switch_reset() -> Result<(), ForkCallError> { + let local_evm1 = LocalEvm::new_with_tokens(1).await; + let local_evm1_token = *local_evm1.tokens[0].address(); + let local_evm1_token_holder = local_evm1.anvil.addresses()[0]; let args = NewForkedEvm { - fork_url: POLYGON_FORK_URL.to_owned(), - fork_block_number: Some(POLYGON_FORK_NUMBER), + fork_url: local_evm1.url(), + fork_block_number: None, }; let mut forker = Forker::new_with_fork(args, None, None).await.unwrap(); let from_address = Address::default(); - let to_address: Address = USDT_POLYGON.parse::
().unwrap(); + let to_address = local_evm1_token; let call = IERC20::balanceOfCall { - account: POLYGON_ACC.parse::
().unwrap(), + account: local_evm1_token_holder, }; let result = forker .alloy_call(from_address, to_address, call, false) @@ -630,8 +611,8 @@ mod tests { let old_balance = result.typed_return._0; let polygon_old_balance = result.typed_return._0; - let from_address = POLYGON_ACC.parse::
().unwrap(); - let to_address: Address = USDT_POLYGON.parse::
().unwrap(); + let from_address = local_evm1_token_holder; + let to_address = local_evm1_token; let send_amount = U256::from(0xffu64); let transfer_call = IERC20::transferCall { to: Address::repeat_byte(0x2), @@ -649,9 +630,9 @@ mod tests { .unwrap(); let from_address = Address::default(); - let to_address: Address = USDT_POLYGON.parse::
().unwrap(); + let to_address = local_evm1_token; let call = IERC20::balanceOfCall { - account: POLYGON_ACC.parse::
().unwrap(), + account: local_evm1_token_holder, }; let result = forker .alloy_call(from_address, to_address, call, false) @@ -662,16 +643,19 @@ mod tests { let polygon_balance = new_balance; // switch fork + let local_evm2 = LocalEvm::new_with_tokens(1).await; + let local_evm2_token = *local_evm2.tokens[0].address(); + let local_evm2_token_holder = local_evm2.anvil.addresses()[0]; let args = NewForkedEvm { - fork_url: BSC_FORK_URL.to_owned(), - fork_block_number: Some(BSC_FORK_NUMBER), + fork_url: local_evm2.url(), + fork_block_number: None, }; forker.add_or_select(args, None).await?; let from_address = Address::default(); - let to_address: Address = USDT_BSC.parse::
().unwrap(); + let to_address = local_evm2_token; let call = IERC20::balanceOfCall { - account: BSC_ACC.parse::
().unwrap(), + account: local_evm2_token_holder, }; let result = forker .alloy_call(from_address, to_address, call, false) @@ -679,9 +663,9 @@ mod tests { .unwrap(); let old_balance = result.typed_return._0; - let from_address = BSC_ACC.parse::
().unwrap(); - let to_address: Address = USDT_BSC.parse::
().unwrap(); - let send_amount = U256::from(0xffffffffu64); + let from_address = local_evm2_token_holder; + let to_address = local_evm2_token; + let send_amount = U256::from(0xffu64); let transfer_call = IERC20::transferCall { to: Address::repeat_byte(0x2), amount: send_amount, @@ -698,9 +682,9 @@ mod tests { .unwrap(); let from_address = Address::default(); - let to_address: Address = USDT_BSC.parse::
().unwrap(); + let to_address = local_evm2_token; let call = IERC20::balanceOfCall { - account: BSC_ACC.parse::
().unwrap(), + account: local_evm2_token_holder, }; let result = forker .alloy_call(from_address, to_address, call, false) @@ -709,17 +693,17 @@ mod tests { let new_balance = result.typed_return._0; assert_eq!(new_balance, old_balance - send_amount); - // switch fork + // switch back to fork1 let args = NewForkedEvm { - fork_url: POLYGON_FORK_URL.to_owned(), - fork_block_number: Some(POLYGON_FORK_NUMBER), + fork_url: local_evm1.url(), + fork_block_number: None, }; forker.add_or_select(args, None).await?; let from_address = Address::default(); - let to_address: Address = USDT_POLYGON.parse::
().unwrap(); + let to_address = local_evm1_token; let call = IERC20::balanceOfCall { - account: POLYGON_ACC.parse::
().unwrap(), + account: local_evm1_token_holder, }; let result = forker .alloy_call(from_address, to_address, call, false) @@ -729,9 +713,9 @@ mod tests { assert_eq!(balance, polygon_balance); // reset fork - forker.roll_fork(Some(POLYGON_FORK_NUMBER), None)?; + forker.roll_fork(None, None)?; let call = IERC20::balanceOfCall { - account: POLYGON_ACC.parse::
().unwrap(), + account: local_evm1_token_holder, }; let result = forker .alloy_call(from_address, to_address, call, false) @@ -746,35 +730,43 @@ mod tests { #[tokio::test(flavor = "multi_thread", worker_threads = 1)] async fn test_fork_rolls() { // we need to roll the fork forwards and check that the env block number is updated + let local_evm = LocalEvm::new().await; + let block_number = local_evm.provider.get_block_number().await.unwrap() - 2; let args = NewForkedEvm { - fork_url: POLYGON_FORK_URL.to_owned(), - fork_block_number: Some(POLYGON_FORK_NUMBER), + fork_url: local_evm.url(), + fork_block_number: Some(block_number), }; let mut forker = Forker::new_with_fork(args, None, None).await.unwrap(); // check the env block number is the same as the fork block number - assert_eq!( - forker.executor.env().block.number, - U256::from(POLYGON_FORK_NUMBER) - ); + assert_eq!(forker.executor.env().block.number, U256::from(block_number)); // roll the fork forwards by 1 block - forker - .roll_fork(Some(POLYGON_FORK_NUMBER + 1), None) - .unwrap(); + forker.roll_fork(Some(block_number + 1), None).unwrap(); // check the env block number is updated assert_eq!( forker.executor.env().block.number, - U256::from(POLYGON_FORK_NUMBER + 1) + U256::from(block_number + 1) ); } #[tokio::test(flavor = "multi_thread", worker_threads = 1)] async fn test_fork_replay() { + let local_evm = LocalEvm::new().await; + let block_number = local_evm.provider.get_block_number().await.unwrap(); + let tx_hash = local_evm + .provider + .get_block_by_number(BlockNumberOrTag::Number(block_number - 2), false) + .await + .unwrap() + .unwrap() + .transactions + .as_hashes() + .unwrap()[0]; let mut forker = Forker::new_with_fork( NewForkedEvm { - fork_url: CI_DEPLOY_SEPOLIA_RPC_URL.to_string(), + fork_url: local_evm.url(), fork_block_number: None, }, None, @@ -783,18 +775,9 @@ mod tests { .await .unwrap(); - let tx_hash = "0xcbfff7d9369afcc7a851dff42ca2769f32d77c3b9066023b887583ee9cd0809d" - .parse::() - .unwrap(); - let replay_result = forker.replay_transaction(tx_hash).await.unwrap(); - assert!( - replay_result.env.tx.caller - == "0x8924274F5304277FFDdd29fad5181D98D5F65eF6" - .parse::
() - .unwrap() - ); + assert!(replay_result.env.tx.caller == local_evm.anvil.addresses()[0]); assert!(replay_result.exit_reason.is_ok()); } } diff --git a/crates/eval/src/trace.rs b/crates/eval/src/trace.rs index 31c4999a4..8341aff45 100644 --- a/crates/eval/src/trace.rs +++ b/crates/eval/src/trace.rs @@ -315,16 +315,15 @@ mod tests { use crate::fork::{Forker, NewForkedEvm}; use alloy::primitives::utils::parse_ether; use rain_interpreter_bindings::IInterpreterStoreV1::FullyQualifiedNamespace; - use rain_interpreter_env::{ - CI_DEPLOY_SEPOLIA_RPC_URL, CI_FORK_SEPOLIA_BLOCK_NUMBER, CI_FORK_SEPOLIA_DEPLOYER_ADDRESS, - }; + use rain_interpreter_test_fixtures::LocalEvm; #[tokio::test(flavor = "multi_thread", worker_threads = 1)] async fn test_fork_trace() { - let deployer_address: Address = *CI_FORK_SEPOLIA_DEPLOYER_ADDRESS; + let local_evm = LocalEvm::new().await; + let deployer = *local_evm.deployer.address(); let args = NewForkedEvm { - fork_url: CI_DEPLOY_SEPOLIA_RPC_URL.to_string(), - fork_block_number: Some(*CI_FORK_SEPOLIA_BLOCK_NUMBER), + fork_url: local_evm.url(), + fork_block_number: None, }; let fork = Forker::new_with_fork(args, None, None).await.unwrap(); @@ -345,7 +344,7 @@ mod tests { " .into(), source_index: 0, - deployer: deployer_address, + deployer, namespace: FullyQualifiedNamespace::default(), context: vec![], decode_errors: true, @@ -391,9 +390,11 @@ mod tests { #[tokio::test(flavor = "multi_thread", worker_threads = 1)] async fn test_search_trace_by_path() { + let local_evm = LocalEvm::new().await; + let deployer = *local_evm.deployer.address(); let args = NewForkedEvm { - fork_url: CI_DEPLOY_SEPOLIA_RPC_URL.to_string(), - fork_block_number: Some(*CI_FORK_SEPOLIA_BLOCK_NUMBER), + fork_url: local_evm.url(), + fork_block_number: None, }; let fork = Forker::new_with_fork(args, None, None).await.unwrap(); @@ -412,7 +413,7 @@ mod tests { " .into(), source_index: 0, - deployer: *CI_FORK_SEPOLIA_DEPLOYER_ADDRESS, + deployer, namespace: FullyQualifiedNamespace::default(), context: vec![], decode_errors: true, diff --git a/crates/parser/Cargo.toml b/crates/parser/Cargo.toml index 36e834c41..8c5c9197c 100644 --- a/crates/parser/Cargo.toml +++ b/crates/parser/Cargo.toml @@ -1,10 +1,10 @@ [package] name = "rain_interpreter_parser" -version = "0.1.0" -edition = "2021" -license = "CAL-1.0" description = "Rain Interpreter Parser Rust Crate." -homepage = "https://github.com/rainlanguage/rain.interpreter" +version.workspace = true +edition.workspace = true +license.workspace = true +homepage.workspace = true [dependencies] alloy-ethers-typecast = { workspace = true } diff --git a/crates/test_fixtures/Cargo.toml b/crates/test_fixtures/Cargo.toml new file mode 100644 index 000000000..f8c2999dc --- /dev/null +++ b/crates/test_fixtures/Cargo.toml @@ -0,0 +1,16 @@ +[package] +name = "rain_interpreter_test_fixtures" +version.workspace = true +edition.workspace = true +license.workspace = true +homepage.workspace = true +publish = false + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +serde_json = { workspace = true } +alloy = { workspace = true, features = ["node-bindings", "sol-types", "rpc-types", "provider-http", "network", "contract", "signer-local"] } + +[target.'cfg(target_family = "wasm")'.dependencies] +getrandom = { version = "0", features = ["js", "js-sys"] } \ No newline at end of file diff --git a/crates/test_fixtures/src/lib.rs b/crates/test_fixtures/src/lib.rs new file mode 100644 index 000000000..23cb495f6 --- /dev/null +++ b/crates/test_fixtures/src/lib.rs @@ -0,0 +1,236 @@ +use alloy::{ + contract::CallBuilder, + network::{Ethereum, EthereumWallet}, + node_bindings::{Anvil, AnvilInstance}, + primitives::{utils::parse_units, Address, Bytes, U256}, + providers::{ + fillers::{FillProvider, JoinFill, RecommendedFiller, WalletFiller}, + Provider, ProviderBuilder, RootProvider, + }, + rpc::types::{TransactionReceipt, TransactionRequest}, + signers::local::PrivateKeySigner, + sol, + sol_types::SolCall, + transports::{ + http::{Client, Http}, + RpcError, TransportErrorKind, + }, +}; +use serde_json::value::RawValue; +use std::marker::PhantomData; + +sol!( + #![sol(all_derives = true, rpc = true)] + ERC20, "../../out/TestERC20.sol/TestERC20.json" +); + +sol!( + #![sol(all_derives = true, rpc = true)] + Interpreter, + "../../out/RainterpreterNPE2.sol/RainterpreterNPE2.json" +); + +sol!( + #![sol(all_derives = true, rpc = true)] + Store, + "../../out/RainterpreterStoreNPE2.sol/RainterpreterStoreNPE2.json" +); + +sol!( + #![sol(all_derives = true, rpc = true)] + Parser, + "../../out/RainterpreterParserNPE2.sol/RainterpreterParserNPE2.json" +); + +sol!( + #![sol(all_derives = true, rpc = true)] + Deployer, + "../../out/RainterpreterExpressionDeployerNPE2.sol/RainterpreterExpressionDeployerNPE2.json" +); + +// type aliases for LocalEvm provider type +pub type LocalEvmFillers = JoinFill>; +pub type LocalEvmProvider = + FillProvider>, Http, Ethereum>; + +/// A local evm instance that wraps an Anvil instance and provider with +/// its signers, and with rain contracts already deployed on it. +/// The first signer wallet is the main wallet that would sign any transactions +/// that dont specify a sender ('to' field) +pub struct LocalEvm { + /// The Anvil instance, ie the local blockchain + pub anvil: AnvilInstance, + + /// The alloy provider instance of this local blockchain + pub provider: LocalEvmProvider, + + /// Alloy interpreter contract instance deployed on this blockchain + pub interpreter: Interpreter::InterpreterInstance, LocalEvmProvider>, + + /// Alloy store contract instance deployed on this blockchain + pub store: Store::StoreInstance, LocalEvmProvider>, + + /// Alloy parser contract instance deployed on this blockchain + pub parser: Parser::ParserInstance, LocalEvmProvider>, + + /// Alloy expression deployer contract instance deployed on this blockchain + pub deployer: Deployer::DeployerInstance, LocalEvmProvider>, + + /// Array of alloy ERC20 contract instances deployed on this blockchain + pub tokens: Vec, LocalEvmProvider>>, + + /// All wallets of this local blockchain that can be used to perform transactions + /// the first wallet is the blockchain's default wallet, ie transactions that dont + /// explicitly specify a sender address will use this as the sender + pub signer_wallets: Vec, +} + +impl LocalEvm { + /// Instantiates this struct with rain contracts deployed and no ERC20 tokens + pub async fn new() -> Self { + let anvil = Anvil::new().try_spawn().unwrap(); + + // set up signers from anvil accounts + let mut signer_wallets = vec![]; + let mut default_signer = + EthereumWallet::from(PrivateKeySigner::from(anvil.keys()[0].clone())); + let other_signer_wallets: Vec = anvil.keys()[1..] + .iter() + .map(|v| EthereumWallet::from(PrivateKeySigner::from(v.clone()))) + .collect(); + + for s in &other_signer_wallets { + default_signer.register_signer(s.default_signer()) + } + signer_wallets.push(default_signer); + signer_wallets.extend(other_signer_wallets); + + // Create a provider with the wallet and fillers + let provider = ProviderBuilder::new() + .with_recommended_fillers() + .wallet(signer_wallets[0].clone()) + .on_http(anvil.endpoint_url()); + + // provider.wallet_mut().register_signer(signer) + + // deploy rain contracts + let interpreter = Interpreter::deploy(provider.clone()).await.unwrap(); + let store = Store::deploy(provider.clone()).await.unwrap(); + let parser = Parser::deploy(provider.clone()).await.unwrap(); + let config = Deployer::RainterpreterExpressionDeployerNPE2ConstructionConfigV2 { + interpreter: *interpreter.address(), + parser: *parser.address(), + store: *store.address(), + }; + let deployer = Deployer::deploy(provider.clone(), config).await.unwrap(); + + Self { + anvil, + provider, + interpreter, + store, + parser, + deployer, + tokens: vec![], + signer_wallets, + } + } + + /// Instantiates with number of ERC20 tokens with 18 decimals. + /// Each token after being deployed will mint 1 milion tokens to the + /// default address, which is the first signer wallet of this instance + pub async fn new_with_tokens(tokens_count: u8) -> Self { + let mut local_evm = Self::new().await; + + // deploy tokens contracts and mint 1 milion of each for the default address (first signer wallet) + for i in 1..=tokens_count { + local_evm + .deploy_new_token( + &format!("Token{}", i), + &format!("Token{}", i), + 18, + parse_units("1_000_000", 18).unwrap().into(), + local_evm.anvil.addresses()[0], + ) + .await; + } + local_evm + } + + /// Get the local rpc url of the underlying anvil instance + pub fn url(&self) -> String { + self.anvil.endpoint() + } + + /// Deploys a new ERC20 token with the given arguments + pub async fn deploy_new_token( + &mut self, + name: &str, + symbol: &str, + decimals: u8, + supply: U256, + recipient: Address, + ) -> ERC20::ERC20Instance, LocalEvmProvider> { + let token = ERC20::deploy( + self.provider.clone(), + name.to_string(), + symbol.to_string(), + decimals, + recipient, + supply, + ) + .await + .unwrap(); + self.tokens.push(token.clone()); + token + } + + /// Sends a contract write transaction to the blockchain and returns the tx receipt + pub async fn send_contract_transaction( + &self, + contract_call: CallBuilder, &LocalEvmProvider, PhantomData>, + ) -> Result>> { + self.provider + .send_transaction(contract_call.into_transaction_request()) + .await? + .get_receipt() + .await + } + + /// Sends (write call) a raw transaction request to the blockchain and returns the tx receipt + pub async fn send_transaction( + &self, + tx: TransactionRequest, + ) -> Result>> { + self.provider + .send_transaction(tx) + .await? + .get_receipt() + .await + } + + /// Calls (readonly call) contract method and returns the decoded result + pub async fn call_contract( + &self, + contract_call: CallBuilder, &LocalEvmProvider, PhantomData>, + ) -> Result< + Result, + RpcError>, + > { + Ok(T::abi_decode_returns( + &self + .provider + .call(&contract_call.into_transaction_request()) + .await?, + true, + )) + } + + /// Calls (readonly call) a raw transaction and returns the result + pub async fn call( + &self, + tx: &TransactionRequest, + ) -> Result>> { + self.provider.call(tx).await + } +} diff --git a/test/utils/TestERC20.sol b/test/utils/TestERC20.sol new file mode 100644 index 000000000..dfd880f0f --- /dev/null +++ b/test/utils/TestERC20.sol @@ -0,0 +1,19 @@ +// SPDX-License-Identifier: CAL +pragma solidity =0.8.25; + +import {ERC20} from "openzeppelin-contracts/contracts/token/ERC20/ERC20.sol"; + +contract TestERC20 is ERC20 { + uint8 private _decimals; + + constructor(string memory name_, string memory symbol_, uint8 decimals_, address recipient_, uint256 supply_) + ERC20(name_, symbol_) + { + _decimals = decimals_; + _mint(recipient_, supply_); + } + + function decimals() public view virtual override returns (uint8) { + return _decimals; + } +} From 8066f539f94220a2ff0d73880f2cf99280355834 Mon Sep 17 00:00:00 2001 From: highonhopium Date: Thu, 12 Sep 2024 14:02:33 +0100 Subject: [PATCH 11/62] partial traces --- crates/eval/src/trace.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/crates/eval/src/trace.rs b/crates/eval/src/trace.rs index 8341aff45..19b46517d 100644 --- a/crates/eval/src/trace.rs +++ b/crates/eval/src/trace.rs @@ -101,6 +101,8 @@ impl RainSourceTraces { let mut path_names: Vec = vec![]; let mut source_paths: Vec = vec![]; + println!("{:?}", self.traces); + for trace in self.iter() { let current_path = if trace.parent_source_index == trace.source_index { format!("{}", trace.source_index) @@ -111,13 +113,15 @@ impl RainSourceTraces { .find_map(|recent_path| { recent_path.split('.').last().and_then(|last_part| { if last_part == trace.parent_source_index.to_string() { + println!("found match"); Some(format!("{}.{}", recent_path, trace.source_index)) } else { - None + println!("no match"); + Some(format!("?.{}", trace.source_index)) } }) }) - .ok_or(RainEvalResultError::CorruptTraces)? + .unwrap_or(format!("?.{}", trace.source_index)) }; for (index, _) in trace.stack.iter().enumerate() { From 6e90c7d7b52b8aa0154fd6ed8b4a05b94c793468 Mon Sep 17 00:00:00 2001 From: highonhopium Date: Thu, 12 Sep 2024 20:33:37 +0100 Subject: [PATCH 12/62] better partial trace formatting --- crates/eval/src/trace.rs | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/crates/eval/src/trace.rs b/crates/eval/src/trace.rs index 19b46517d..6955f022c 100644 --- a/crates/eval/src/trace.rs +++ b/crates/eval/src/trace.rs @@ -101,8 +101,6 @@ impl RainSourceTraces { let mut path_names: Vec = vec![]; let mut source_paths: Vec = vec![]; - println!("{:?}", self.traces); - for trace in self.iter() { let current_path = if trace.parent_source_index == trace.source_index { format!("{}", trace.source_index) @@ -113,15 +111,16 @@ impl RainSourceTraces { .find_map(|recent_path| { recent_path.split('.').last().and_then(|last_part| { if last_part == trace.parent_source_index.to_string() { - println!("found match"); Some(format!("{}.{}", recent_path, trace.source_index)) } else { - println!("no match"); - Some(format!("?.{}", trace.source_index)) + None } }) }) - .unwrap_or(format!("?.{}", trace.source_index)) + .unwrap_or(format!( + "{}?.{}", + trace.parent_source_index, trace.source_index + )) }; for (index, _) in trace.stack.iter().enumerate() { From dc8e861a2ed7a6a235e96b81d9b9ef344edde9d2 Mon Sep 17 00:00:00 2001 From: highonhopium Date: Mon, 30 Sep 2024 13:38:19 +0100 Subject: [PATCH 13/62] adding linea --- .github/workflows/manual-sol-artifacts.yaml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/manual-sol-artifacts.yaml b/.github/workflows/manual-sol-artifacts.yaml index f1833e4b1..1507fbae6 100644 --- a/.github/workflows/manual-sol-artifacts.yaml +++ b/.github/workflows/manual-sol-artifacts.yaml @@ -3,7 +3,7 @@ on: workflow_dispatch: inputs: network: - description: 'Network to deploy to' + description: "Network to deploy to" required: true type: choice options: @@ -19,6 +19,7 @@ on: - polygon - sepolia - songbird + - linea jobs: deploy: @@ -47,11 +48,11 @@ jobs: - name: deploy to ${{ inputs.network }} run: nix develop --command rainix-sol-artifacts env: - DEPLOY_BROADCAST: '1' + DEPLOY_BROADCAST: "1" DEPLOYMENT_KEY: ${{ github.ref == 'refs/heads/main' && secrets.PRIVATE_KEY || secrets.PRIVATE_KEY_DEV }} ETH_RPC_URL: ${{ secrets[env.rpc_secret_name] || vars[env.rpc_secret_name] || '' }} ETHERSCAN_API_KEY: ${{ secrets[env.etherscan_api_key_secret_name] || vars[env.etherscan_api_key_secret_name] || ''}} DEPLOY_VERIFY: ${{ secrets[env.verify_secret_name] || vars[env.verify_secret_name] || '' }} DEPLOY_VERIFIER: ${{ secrets[env.verifier_secret_name] || vars[env.verifier_secret_name] || '' }} DEPLOY_VERIFIER_URL: ${{ secrets[env.verifier_url_secret_name] || vars[env.verifier_url_secret_name] || '' }} - DEPLOY_METABOARD_ADDRESS: ${{ secrets[env.metaboard_address_secret_name] || vars[env.metaboard_address_secret_name] || '' }} \ No newline at end of file + DEPLOY_METABOARD_ADDRESS: ${{ secrets[env.metaboard_address_secret_name] || vars[env.metaboard_address_secret_name] || '' }} From 7c7e718751119a094225559cb53bf6105db09843 Mon Sep 17 00:00:00 2001 From: thedavidmeister Date: Mon, 21 Oct 2024 17:22:22 +0400 Subject: [PATCH 14/62] update prb math --- .gitmodules | 6 +++--- lib/prb-math | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.gitmodules b/.gitmodules index 009d12055..044c63034 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,9 +4,6 @@ [submodule "lib/rain.lib.memkv"] path = lib/rain.lib.memkv url = https://github.com/rainprotocol/rain.lib.memkv -[submodule "lib/prb-math"] - path = lib/prb-math - url = https://github.com/PaulRBerg/prb-math [submodule "lib/sol.lib.binmaskflag"] path = lib/sol.lib.binmaskflag url = https://github.com/rainprotocol/sol.lib.binmaskflag @@ -28,3 +25,6 @@ [submodule "lib/rain.math.float"] path = lib/rain.math.float url = https://github.com/rainlanguage/rain.math.float +[submodule "lib/prb-math"] + path = lib/prb-math + url = https://github.com/PaulRBerg/prb-math diff --git a/lib/prb-math b/lib/prb-math index 77fa88eda..280fc5f77 160000 --- a/lib/prb-math +++ b/lib/prb-math @@ -1 +1 @@ -Subproject commit 77fa88eda4a4a91b3f3e9431df291292c26b6c71 +Subproject commit 280fc5f77e1b21b9c54013aac51966be33f4a410 From 2e4b9778aee4d03200540cc30c02748290d7a8e2 Mon Sep 17 00:00:00 2001 From: thedavidmeister Date: Mon, 21 Oct 2024 17:24:41 +0400 Subject: [PATCH 15/62] rm chainlink dep --- .gitmodules | 3 --- lib/rain.chainlink | 1 - 2 files changed, 4 deletions(-) delete mode 160000 lib/rain.chainlink diff --git a/.gitmodules b/.gitmodules index 044c63034..40e14d0d8 100644 --- a/.gitmodules +++ b/.gitmodules @@ -10,9 +10,6 @@ [submodule "lib/rain.math.fixedpoint"] path = lib/rain.math.fixedpoint url = https://github.com/rainprotocol/rain.math.fixedpoint -[submodule "lib/rain.chainlink"] - path = lib/rain.chainlink - url = https://github.com/rainprotocol/rain.chainlink [submodule "lib/rain.intorastring"] path = lib/rain.intorastring url = https://github.com/rainlanguage/rain.intorastring diff --git a/lib/rain.chainlink b/lib/rain.chainlink deleted file mode 160000 index c9844b3f4..000000000 --- a/lib/rain.chainlink +++ /dev/null @@ -1 +0,0 @@ -Subproject commit c9844b3f49432d809f506fb104fe9ea6c7be7031 From 6fcc032c3931207c0e468b81bc604e51d620a82e Mon Sep 17 00:00:00 2001 From: thedavidmeister Date: Mon, 21 Oct 2024 17:31:48 +0400 Subject: [PATCH 16/62] update intorastring dep --- .gitmodules | 6 +++--- lib/rain.intorastring | 2 +- src/lib/op/logic/LibOpConditionsNP.sol | 2 +- src/lib/op/logic/LibOpEnsureNP.sol | 2 +- src/lib/parse/literal/LibParseLiteralString.sol | 2 +- test/src/lib/op/logic/LibOpConditionsNP.t.sol | 2 +- test/src/lib/op/logic/LibOpEnsureNP.t.sol | 2 +- test/src/lib/parse/LibParse.literalString.t.sol | 2 +- .../parse/literal/LibParseLiteralString.parseString.t.sol | 2 +- 9 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.gitmodules b/.gitmodules index 40e14d0d8..7545e93b5 100644 --- a/.gitmodules +++ b/.gitmodules @@ -10,9 +10,6 @@ [submodule "lib/rain.math.fixedpoint"] path = lib/rain.math.fixedpoint url = https://github.com/rainprotocol/rain.math.fixedpoint -[submodule "lib/rain.intorastring"] - path = lib/rain.intorastring - url = https://github.com/rainlanguage/rain.intorastring [submodule "lib/rain.interpreter.interface"] path = lib/rain.interpreter.interface url = https://github.com/rainlanguage/rain.interpreter.interface @@ -25,3 +22,6 @@ [submodule "lib/prb-math"] path = lib/prb-math url = https://github.com/PaulRBerg/prb-math +[submodule "lib/rain.intorastring"] + path = lib/rain.intorastring + url = https://github.com/rainlanguage/rain.intorastring diff --git a/lib/rain.intorastring b/lib/rain.intorastring index 33a88a9b6..41a0b725b 160000 --- a/lib/rain.intorastring +++ b/lib/rain.intorastring @@ -1 +1 @@ -Subproject commit 33a88a9b623d0d6a98897085fd104d59997434b4 +Subproject commit 41a0b725be1f846e567bf193e4c52e074ac73e60 diff --git a/src/lib/op/logic/LibOpConditionsNP.sol b/src/lib/op/logic/LibOpConditionsNP.sol index 30fec5301..b7c34100e 100644 --- a/src/lib/op/logic/LibOpConditionsNP.sol +++ b/src/lib/op/logic/LibOpConditionsNP.sol @@ -5,7 +5,7 @@ import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; import {Pointer} from "rain.solmem/lib/LibPointer.sol"; import {IntegrityCheckStateNP} from "../../integrity/LibIntegrityCheckNP.sol"; import {InterpreterStateNP} from "../../state/LibInterpreterStateNP.sol"; -import {LibIntOrAString, IntOrAString} from "rain.intorastring/src/lib/LibIntOrAString.sol"; +import {LibIntOrAString, IntOrAString} from "rain.intorastring/lib/LibIntOrAString.sol"; /// @title LibOpConditionsNP /// @notice Opcode to return the first nonzero item on the stack up to the inputs diff --git a/src/lib/op/logic/LibOpEnsureNP.sol b/src/lib/op/logic/LibOpEnsureNP.sol index 66721d919..9335d6b36 100644 --- a/src/lib/op/logic/LibOpEnsureNP.sol +++ b/src/lib/op/logic/LibOpEnsureNP.sol @@ -5,7 +5,7 @@ import {Pointer} from "rain.solmem/lib/LibPointer.sol"; import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; import {InterpreterStateNP} from "../../state/LibInterpreterStateNP.sol"; import {IntegrityCheckStateNP} from "../../integrity/LibIntegrityCheckNP.sol"; -import {LibIntOrAString, IntOrAString} from "rain.intorastring/src/lib/LibIntOrAString.sol"; +import {LibIntOrAString, IntOrAString} from "rain.intorastring/lib/LibIntOrAString.sol"; /// @title LibOpEnsureNP /// @notice Opcode to revert if the condition is zero. diff --git a/src/lib/parse/literal/LibParseLiteralString.sol b/src/lib/parse/literal/LibParseLiteralString.sol index 3e737e051..5dc8a803a 100644 --- a/src/lib/parse/literal/LibParseLiteralString.sol +++ b/src/lib/parse/literal/LibParseLiteralString.sol @@ -2,7 +2,7 @@ pragma solidity ^0.8.18; import {ParseState} from "../LibParseState.sol"; -import {IntOrAString, LibIntOrAString} from "rain.intorastring/src/lib/LibIntOrAString.sol"; +import {IntOrAString, LibIntOrAString} from "rain.intorastring/lib/LibIntOrAString.sol"; import {UnclosedStringLiteral, StringTooLong} from "../../../error/ErrParse.sol"; import {CMASK_STRING_LITERAL_END, CMASK_STRING_LITERAL_TAIL} from "../LibParseCMask.sol"; import {LibParseError} from "../LibParseError.sol"; diff --git a/test/src/lib/op/logic/LibOpConditionsNP.t.sol b/test/src/lib/op/logic/LibOpConditionsNP.t.sol index 22356b4e3..279749e7b 100644 --- a/test/src/lib/op/logic/LibOpConditionsNP.t.sol +++ b/test/src/lib/op/logic/LibOpConditionsNP.t.sol @@ -17,7 +17,7 @@ import { import {IInterpreterStoreV2} from "rain.interpreter.interface/interface/IInterpreterStoreV2.sol"; import {SignedContextV1} from "rain.interpreter.interface/interface/deprecated/IInterpreterCallerV2.sol"; import {LibEncodedDispatch} from "rain.interpreter.interface/lib/deprecated/caller/LibEncodedDispatch.sol"; -import {LibIntOrAString, IntOrAString} from "rain.intorastring/src/lib/LibIntOrAString.sol"; +import {LibIntOrAString, IntOrAString} from "rain.intorastring/lib/LibIntOrAString.sol"; import {LibOperand} from "test/lib/operand/LibOperand.sol"; contract LibOpConditionsNPTest is OpTest { diff --git a/test/src/lib/op/logic/LibOpEnsureNP.t.sol b/test/src/lib/op/logic/LibOpEnsureNP.t.sol index 33317a851..405c84a40 100644 --- a/test/src/lib/op/logic/LibOpEnsureNP.t.sol +++ b/test/src/lib/op/logic/LibOpEnsureNP.t.sol @@ -13,7 +13,7 @@ import { FullyQualifiedNamespace } from "rain.interpreter.interface/interface/deprecated/IInterpreterV2.sol"; import {InterpreterStateNP} from "src/lib/state/LibInterpreterStateNP.sol"; -import {LibIntOrAString, IntOrAString} from "rain.intorastring/src/lib/LibIntOrAString.sol"; +import {LibIntOrAString, IntOrAString} from "rain.intorastring/lib/LibIntOrAString.sol"; import {LibOperand} from "test/lib/operand/LibOperand.sol"; contract LibOpEnsureNPTest is OpTest { diff --git a/test/src/lib/parse/LibParse.literalString.t.sol b/test/src/lib/parse/LibParse.literalString.t.sol index e25fde6ce..3f689e063 100644 --- a/test/src/lib/parse/LibParse.literalString.t.sol +++ b/test/src/lib/parse/LibParse.literalString.t.sol @@ -5,7 +5,7 @@ import {Test} from "forge-std/Test.sol"; import {LibBytecode} from "rain.interpreter.interface/lib/bytecode/LibBytecode.sol"; import {LibParse} from "src/lib/parse/LibParse.sol"; import {LibMetaFixture} from "test/lib/parse/LibMetaFixture.sol"; -import {IntOrAString, LibIntOrAString} from "rain.intorastring/src/lib/LibIntOrAString.sol"; +import {IntOrAString, LibIntOrAString} from "rain.intorastring/lib/LibIntOrAString.sol"; import {StringTooLong, UnclosedStringLiteral} from "src/error/ErrParse.sol"; import {LibLiteralString} from "test/lib/literal/LibLiteralString.sol"; import {LibParseState, ParseState} from "src/lib/parse/LibParseState.sol"; diff --git a/test/src/lib/parse/literal/LibParseLiteralString.parseString.t.sol b/test/src/lib/parse/literal/LibParseLiteralString.parseString.t.sol index 0e824dea3..1d9dc8211 100644 --- a/test/src/lib/parse/literal/LibParseLiteralString.parseString.t.sol +++ b/test/src/lib/parse/literal/LibParseLiteralString.parseString.t.sol @@ -4,7 +4,7 @@ pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; import {LibParseLiteralString} from "src/lib/parse/literal/LibParseLiteralString.sol"; import {LibBytes, Pointer} from "rain.solmem/lib/LibBytes.sol"; -import {IntOrAString, LibIntOrAString} from "rain.intorastring/src/lib/LibIntOrAString.sol"; +import {IntOrAString, LibIntOrAString} from "rain.intorastring/lib/LibIntOrAString.sol"; import {LibParseState, ParseState} from "src/lib/parse/LibParseState.sol"; import {LibAllStandardOpsNP} from "src/lib/op/LibAllStandardOpsNP.sol"; import {CMASK_STRING_LITERAL_TAIL} from "src/lib/parse/LibParseCMask.sol"; From 39b5a948bb2f3e761ac51c4bdf55471ab5dd008e Mon Sep 17 00:00:00 2001 From: thedavidmeister Date: Mon, 21 Oct 2024 18:18:29 +0400 Subject: [PATCH 17/62] update datacontract --- .gitmodules | 6 +++--- lib/rain.datacontract | 1 + lib/rain.math.float | 1 - 3 files changed, 4 insertions(+), 4 deletions(-) create mode 160000 lib/rain.datacontract delete mode 160000 lib/rain.math.float diff --git a/.gitmodules b/.gitmodules index 7545e93b5..f760c9880 100644 --- a/.gitmodules +++ b/.gitmodules @@ -16,12 +16,12 @@ [submodule "lib/rain.sol.codegen"] path = lib/rain.sol.codegen url = https://github.com/rainlanguage/rain.sol.codegen -[submodule "lib/rain.math.float"] - path = lib/rain.math.float - url = https://github.com/rainlanguage/rain.math.float [submodule "lib/prb-math"] path = lib/prb-math url = https://github.com/PaulRBerg/prb-math [submodule "lib/rain.intorastring"] path = lib/rain.intorastring url = https://github.com/rainlanguage/rain.intorastring +[submodule "lib/rain.datacontract"] + path = lib/rain.datacontract + url = https://github.com/rainlanguage/rain.datacontract diff --git a/lib/rain.datacontract b/lib/rain.datacontract new file mode 160000 index 000000000..918a0bbe4 --- /dev/null +++ b/lib/rain.datacontract @@ -0,0 +1 @@ +Subproject commit 918a0bbe4942d44c2a4d48227bf21d42b2531ca3 diff --git a/lib/rain.math.float b/lib/rain.math.float deleted file mode 160000 index 455a0f447..000000000 --- a/lib/rain.math.float +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 455a0f4472c7084b751ae062f2a243e6e18cb958 From eaa2acf9a6002f6da51ae3ea6ce525090e23fb85 Mon Sep 17 00:00:00 2001 From: thedavidmeister Date: Mon, 21 Oct 2024 19:14:38 +0400 Subject: [PATCH 18/62] udpate memkv --- .gitmodules | 6 +++--- lib/rain.lib.memkv | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.gitmodules b/.gitmodules index f760c9880..61d5ca207 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,9 +1,6 @@ [submodule "lib/rain.metadata"] path = lib/rain.metadata url = https://github.com/rainprotocol/rain.metadata -[submodule "lib/rain.lib.memkv"] - path = lib/rain.lib.memkv - url = https://github.com/rainprotocol/rain.lib.memkv [submodule "lib/sol.lib.binmaskflag"] path = lib/sol.lib.binmaskflag url = https://github.com/rainprotocol/sol.lib.binmaskflag @@ -25,3 +22,6 @@ [submodule "lib/rain.datacontract"] path = lib/rain.datacontract url = https://github.com/rainlanguage/rain.datacontract +[submodule "lib/rain.lib.memkv"] + path = lib/rain.lib.memkv + url = https://github.com/rainlanguage/rain.lib.memkv diff --git a/lib/rain.lib.memkv b/lib/rain.lib.memkv index 818f262f9..fe2ba3a59 160000 --- a/lib/rain.lib.memkv +++ b/lib/rain.lib.memkv @@ -1 +1 @@ -Subproject commit 818f262f91ac4402d9c800d333ae512874bca6e5 +Subproject commit fe2ba3a59cbf180dc7bd42e6830fdb3942cd1472 From 23d03c377604c7691ca5f5cd4da542b702363727 Mon Sep 17 00:00:00 2001 From: thedavidmeister Date: Mon, 21 Oct 2024 19:16:53 +0400 Subject: [PATCH 19/62] bump deps --- .gitmodules | 12 ++++++------ lib/rain.math.fixedpoint | 2 +- lib/rain.metadata | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.gitmodules b/.gitmodules index 61d5ca207..4f27da439 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,12 +1,6 @@ -[submodule "lib/rain.metadata"] - path = lib/rain.metadata - url = https://github.com/rainprotocol/rain.metadata [submodule "lib/sol.lib.binmaskflag"] path = lib/sol.lib.binmaskflag url = https://github.com/rainprotocol/sol.lib.binmaskflag -[submodule "lib/rain.math.fixedpoint"] - path = lib/rain.math.fixedpoint - url = https://github.com/rainprotocol/rain.math.fixedpoint [submodule "lib/rain.interpreter.interface"] path = lib/rain.interpreter.interface url = https://github.com/rainlanguage/rain.interpreter.interface @@ -25,3 +19,9 @@ [submodule "lib/rain.lib.memkv"] path = lib/rain.lib.memkv url = https://github.com/rainlanguage/rain.lib.memkv +[submodule "lib/rain.math.fixedpoint"] + path = lib/rain.math.fixedpoint + url = https://github.com/rainlanguage/rain.math.fixedpoint +[submodule "lib/rain.metadata"] + path = lib/rain.metadata + url = https://github.com/rainlanguage/rain.metadata diff --git a/lib/rain.math.fixedpoint b/lib/rain.math.fixedpoint index f0d74ed3e..7d4d41f6b 160000 --- a/lib/rain.math.fixedpoint +++ b/lib/rain.math.fixedpoint @@ -1 +1 @@ -Subproject commit f0d74ed3ef41f2a71fc43c99e81c3918b64e874b +Subproject commit 7d4d41f6b779a4465993ef23b349203edf917f56 diff --git a/lib/rain.metadata b/lib/rain.metadata index 9a0185267..8d75b57c5 160000 --- a/lib/rain.metadata +++ b/lib/rain.metadata @@ -1 +1 @@ -Subproject commit 9a0185267e6870035fd307de026eac8b77234057 +Subproject commit 8d75b57c575f9e426f4937a55e11447577d32495 From 391d0c70b09b339d8be8809b1c7479c8cbbb243a Mon Sep 17 00:00:00 2001 From: thedavidmeister Date: Mon, 21 Oct 2024 20:50:40 +0400 Subject: [PATCH 20/62] udpate metadata --- lib/rain.metadata | 2 +- src/lib/op/math/LibOpSub.sol | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/rain.metadata b/lib/rain.metadata index 8d75b57c5..779f563bb 160000 --- a/lib/rain.metadata +++ b/lib/rain.metadata @@ -1 +1 @@ -Subproject commit 8d75b57c575f9e426f4937a55e11447577d32495 +Subproject commit 779f563bb6068b747d3029b384e0fceca9a7b697 diff --git a/src/lib/op/math/LibOpSub.sol b/src/lib/op/math/LibOpSub.sol index 490be7d50..e3a48cbfe 100644 --- a/src/lib/op/math/LibOpSub.sol +++ b/src/lib/op/math/LibOpSub.sol @@ -5,7 +5,7 @@ import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; import {Pointer} from "rain.solmem/lib/LibPointer.sol"; import {IntegrityCheckStateNP} from "../../integrity/LibIntegrityCheckNP.sol"; import {InterpreterStateNP} from "../../state/LibInterpreterStateNP.sol"; -import {SaturatingMath} from "rain.math.saturating/SaturatingMath.sol"; +import {LibSaturatingMath} from "rain.math.saturating/lib/LibSaturatingMath.sol"; /// @title LibOpSub /// @notice Opcode to subtract N integers. @@ -34,7 +34,7 @@ library LibOpSub { saturate := and(operand, 1) } function (uint256, uint256) internal pure returns (uint256) f = - saturate > 0 ? SaturatingMath.saturatingSub : sub; + saturate > 0 ? LibSaturatingMath.saturatingSub : sub; a = f(a, b); { From df3699d88c78a3e2300f39ac531225ff3ab960e8 Mon Sep 17 00:00:00 2001 From: thedavidmeister Date: Mon, 21 Oct 2024 21:06:20 +0400 Subject: [PATCH 21/62] update codegen --- .gitmodules | 12 ++++++------ lib/rain.interpreter.interface | 2 +- lib/rain.sol.codegen | 2 +- script/BuildPointers.sol | 5 +++-- ...terpreterExpressionDeployerNPE2DeploymentTest.sol | 2 +- test/lib/parse/LibMetaFixture.sol | 2 +- .../concrete/RainterpreterParserNPE2.pointers.t.sol | 2 +- .../RainterpreterReferenceExternNPE2.pointers.t.sol | 2 +- test/src/lib/parse/LibParse.namedLHS.t.sol | 2 +- test/src/lib/parse/LibParse.singleRHSNamed.gas.t.sol | 2 +- 10 files changed, 17 insertions(+), 16 deletions(-) diff --git a/.gitmodules b/.gitmodules index 4f27da439..204b3f308 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,12 +1,6 @@ [submodule "lib/sol.lib.binmaskflag"] path = lib/sol.lib.binmaskflag url = https://github.com/rainprotocol/sol.lib.binmaskflag -[submodule "lib/rain.interpreter.interface"] - path = lib/rain.interpreter.interface - url = https://github.com/rainlanguage/rain.interpreter.interface -[submodule "lib/rain.sol.codegen"] - path = lib/rain.sol.codegen - url = https://github.com/rainlanguage/rain.sol.codegen [submodule "lib/prb-math"] path = lib/prb-math url = https://github.com/PaulRBerg/prb-math @@ -25,3 +19,9 @@ [submodule "lib/rain.metadata"] path = lib/rain.metadata url = https://github.com/rainlanguage/rain.metadata +[submodule "lib/rain.sol.codegen"] + path = lib/rain.sol.codegen + url = https://github.com/rainlanguage/rain.sol.codegen +[submodule "lib/rain.interpreter.interface"] + path = lib/rain.interpreter.interface + url = https://github.com/rainlanguage/rain.interpreter.interface diff --git a/lib/rain.interpreter.interface b/lib/rain.interpreter.interface index 20da616b9..e40abd293 160000 --- a/lib/rain.interpreter.interface +++ b/lib/rain.interpreter.interface @@ -1 +1 @@ -Subproject commit 20da616b981d45578cd1c56fca234f19b3db9f5b +Subproject commit e40abd293f8a6ddb1f4a5824537b76037797b2ff diff --git a/lib/rain.sol.codegen b/lib/rain.sol.codegen index d0fbb765f..a2fbf7ec8 160000 --- a/lib/rain.sol.codegen +++ b/lib/rain.sol.codegen @@ -1 +1 @@ -Subproject commit d0fbb765f8861d3b5e5acf95dd8c873111191985 +Subproject commit a2fbf7ec81cedc606976f8e624bec5d496c8e219 diff --git a/script/BuildPointers.sol b/script/BuildPointers.sol index 681d1bda9..3dfeab6d6 100644 --- a/script/BuildPointers.sol +++ b/script/BuildPointers.sol @@ -17,6 +17,7 @@ import { import {LibAllStandardOpsNP, AuthoringMetaV2} from "src/lib/op/LibAllStandardOpsNP.sol"; import {LibCodeGen} from "rain.sol.codegen/lib/LibCodeGen.sol"; import {LibFs} from "rain.sol.codegen/lib/LibFs.sol"; +import {LibGenParseMeta} from "rain.interpreter.interface/lib/codegen/LibGenParseMeta.sol"; contract BuildPointers is Script { function buildRainterpreterNPE2Pointers() internal { @@ -44,7 +45,7 @@ contract BuildPointers is Script { address(parser), "RainterpreterParserNPE2", string.concat( - LibCodeGen.parseMetaConstantString(vm, LibAllStandardOpsNP.authoringMetaV2(), PARSE_META_BUILD_DEPTH), + LibGenParseMeta.parseMetaConstantString(vm, LibAllStandardOpsNP.authoringMetaV2(), PARSE_META_BUILD_DEPTH), LibCodeGen.operandHandlerFunctionPointersConstantString(vm, parser), LibCodeGen.literalParserFunctionPointersConstantString(vm, parser) ) @@ -87,7 +88,7 @@ contract BuildPointers is Script { string.concat( string.concat( LibCodeGen.describedByMetaHashConstantString(vm, name), - LibCodeGen.parseMetaConstantString( + LibGenParseMeta.parseMetaConstantString( vm, LibRainterpreterReferenceExternNPE2.authoringMetaV2(), EXTERN_PARSE_META_BUILD_DEPTH ), LibCodeGen.subParserWordParsersConstantString(vm, extern), diff --git a/test/abstract/RainterpreterExpressionDeployerNPE2DeploymentTest.sol b/test/abstract/RainterpreterExpressionDeployerNPE2DeploymentTest.sol index 0d082a606..52b45b390 100644 --- a/test/abstract/RainterpreterExpressionDeployerNPE2DeploymentTest.sol +++ b/test/abstract/RainterpreterExpressionDeployerNPE2DeploymentTest.sol @@ -24,7 +24,7 @@ import { } from "../../src/concrete/RainterpreterExpressionDeployerNPE2.sol"; import {LibAllStandardOpsNP} from "src/lib/op/LibAllStandardOpsNP.sol"; import {LibEncodedDispatch} from "rain.interpreter.interface/lib/deprecated/caller/LibEncodedDispatch.sol"; -import {LibGenParseMeta} from "rain.sol.codegen/lib/LibGenParseMeta.sol"; +import {LibGenParseMeta} from "rain.interpreter.interface/lib/codegen/LibGenParseMeta.sol"; /// @title RainterpreterExpressionDeployerNPD2DeploymentTest /// Tests that the RainterpreterExpressionDeployerNPE2 meta is correct. Also diff --git a/test/lib/parse/LibMetaFixture.sol b/test/lib/parse/LibMetaFixture.sol index 46925b6fe..9e5ea5523 100644 --- a/test/lib/parse/LibMetaFixture.sol +++ b/test/lib/parse/LibMetaFixture.sol @@ -8,7 +8,7 @@ import {LibParseState, ParseState} from "src/lib/parse/LibParseState.sol"; import {LibParseLiteral} from "src/lib/parse/literal/LibParseLiteral.sol"; import {LibConvert} from "rain.lib.typecast/LibConvert.sol"; import {LibAllStandardOpsNP} from "src/lib/op/LibAllStandardOpsNP.sol"; -import {LibGenParseMeta} from "rain.sol.codegen/lib/LibGenParseMeta.sol"; +import {LibGenParseMeta} from "rain.interpreter.interface/lib/codegen/LibGenParseMeta.sol"; uint256 constant FIXTURE_OPS_LENGTH = 18; diff --git a/test/src/concrete/RainterpreterParserNPE2.pointers.t.sol b/test/src/concrete/RainterpreterParserNPE2.pointers.t.sol index ec116f011..c3e9102d1 100644 --- a/test/src/concrete/RainterpreterParserNPE2.pointers.t.sol +++ b/test/src/concrete/RainterpreterParserNPE2.pointers.t.sol @@ -11,7 +11,7 @@ import { } from "src/concrete/RainterpreterParserNPE2.sol"; import {LibAllStandardOpsNP, AuthoringMetaV2} from "src/lib/op/LibAllStandardOpsNP.sol"; import {LibParseMeta} from "rain.interpreter.interface/lib/parse/LibParseMeta.sol"; -import {LibGenParseMeta} from "rain.sol.codegen/lib/LibGenParseMeta.sol"; +import {LibGenParseMeta} from "rain.interpreter.interface/lib/codegen/LibGenParseMeta.sol"; contract RainterpreterParserNPE2PointersTest is Test { function testOperandHandlerFunctionPointers() external { diff --git a/test/src/concrete/RainterpreterReferenceExternNPE2.pointers.t.sol b/test/src/concrete/RainterpreterReferenceExternNPE2.pointers.t.sol index b6bcc1eb2..c04aece6e 100644 --- a/test/src/concrete/RainterpreterReferenceExternNPE2.pointers.t.sol +++ b/test/src/concrete/RainterpreterReferenceExternNPE2.pointers.t.sol @@ -14,7 +14,7 @@ import { OPERAND_HANDLER_FUNCTION_POINTERS } from "src/concrete/extern/RainterpreterReferenceExternNPE2.sol"; import {LibParseMeta} from "rain.interpreter.interface/lib/parse/LibParseMeta.sol"; -import {LibGenParseMeta} from "rain.sol.codegen/lib/LibGenParseMeta.sol"; +import {LibGenParseMeta} from "rain.interpreter.interface/lib/codegen/LibGenParseMeta.sol"; contract RainterpreterReferenceExternNPE2PointersTest is Test { function testOpcodeFunctionPointers() external { diff --git a/test/src/lib/parse/LibParse.namedLHS.t.sol b/test/src/lib/parse/LibParse.namedLHS.t.sol index f5ec82164..9755bf40a 100644 --- a/test/src/lib/parse/LibParse.namedLHS.t.sol +++ b/test/src/lib/parse/LibParse.namedLHS.t.sol @@ -14,7 +14,7 @@ import {LibParseLiteral} from "src/lib/parse/literal/LibParseLiteral.sol"; import {Operand, LibParseOperand} from "src/lib/parse/LibParseOperand.sol"; import {LibConvert} from "rain.lib.typecast/LibConvert.sol"; import {LibAllStandardOpsNP} from "src/lib/op/LibAllStandardOpsNP.sol"; -import {LibGenParseMeta} from "rain.sol.codegen/lib/LibGenParseMeta.sol"; +import {LibGenParseMeta} from "rain.interpreter.interface/lib/codegen/LibGenParseMeta.sol"; /// @title LibParseNamedLHSTest contract LibParseNamedLHSTest is Test { diff --git a/test/src/lib/parse/LibParse.singleRHSNamed.gas.t.sol b/test/src/lib/parse/LibParse.singleRHSNamed.gas.t.sol index 6e76a1e5e..d0ee05ec7 100644 --- a/test/src/lib/parse/LibParse.singleRHSNamed.gas.t.sol +++ b/test/src/lib/parse/LibParse.singleRHSNamed.gas.t.sol @@ -10,7 +10,7 @@ import {LibParseState, ParseState} from "src/lib/parse/LibParseState.sol"; import {LibConvert} from "rain.lib.typecast/LibConvert.sol"; import {LibParseLiteral} from "src/lib/parse/literal/LibParseLiteral.sol"; import {LibAllStandardOpsNP} from "src/lib/op/LibAllStandardOpsNP.sol"; -import {LibGenParseMeta} from "rain.sol.codegen/lib/LibGenParseMeta.sol"; +import {LibGenParseMeta} from "rain.interpreter.interface/lib/codegen/LibGenParseMeta.sol"; /// @title LibParseSingleRHSNamedGasTest /// Parse a single RHS name for many different sized RHS names just to include From 39ed908a528c4b1223e2dcc3c612e0680930e15a Mon Sep 17 00:00:00 2001 From: thedavidmeister Date: Mon, 21 Oct 2024 21:35:12 +0400 Subject: [PATCH 22/62] update dep --- .gitmodules | 6 +++--- lib/rain.sol.binmaskflag | 1 + lib/sol.lib.binmaskflag | 1 - src/lib/op/math/LibOpScale18Dynamic.sol | 2 +- src/lib/op/math/LibOpScaleNDynamic.sol | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) create mode 160000 lib/rain.sol.binmaskflag delete mode 160000 lib/sol.lib.binmaskflag diff --git a/.gitmodules b/.gitmodules index 204b3f308..e04e09cb6 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,6 +1,3 @@ -[submodule "lib/sol.lib.binmaskflag"] - path = lib/sol.lib.binmaskflag - url = https://github.com/rainprotocol/sol.lib.binmaskflag [submodule "lib/prb-math"] path = lib/prb-math url = https://github.com/PaulRBerg/prb-math @@ -25,3 +22,6 @@ [submodule "lib/rain.interpreter.interface"] path = lib/rain.interpreter.interface url = https://github.com/rainlanguage/rain.interpreter.interface +[submodule "lib/rain.sol.binmaskflag"] + path = lib/rain.sol.binmaskflag + url = https://github.com/rainlanguage/rain.sol.binmaskflag diff --git a/lib/rain.sol.binmaskflag b/lib/rain.sol.binmaskflag new file mode 160000 index 000000000..58b5c1338 --- /dev/null +++ b/lib/rain.sol.binmaskflag @@ -0,0 +1 @@ +Subproject commit 58b5c13389c14e6f8238514762c0a6a611fd8280 diff --git a/lib/sol.lib.binmaskflag b/lib/sol.lib.binmaskflag deleted file mode 160000 index 6ded2e717..000000000 --- a/lib/sol.lib.binmaskflag +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 6ded2e7178524b7c5f5c0f9e54ea77a18aa55ea9 diff --git a/src/lib/op/math/LibOpScale18Dynamic.sol b/src/lib/op/math/LibOpScale18Dynamic.sol index 485ad9af1..8c5bd28bf 100644 --- a/src/lib/op/math/LibOpScale18Dynamic.sol +++ b/src/lib/op/math/LibOpScale18Dynamic.sol @@ -2,7 +2,7 @@ pragma solidity ^0.8.18; import {LibFixedPointDecimalScale, DECIMAL_MAX_SAFE_INT} from "rain.math.fixedpoint/lib/LibFixedPointDecimalScale.sol"; -import {MASK_2BIT} from "sol.lib.binmaskflag/Binary.sol"; +import {MASK_2BIT} from "rain.sol.binmaskflag/Binary.sol"; import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; import {Pointer} from "rain.solmem/lib/LibPointer.sol"; import {IntegrityCheckStateNP} from "../../integrity/LibIntegrityCheckNP.sol"; diff --git a/src/lib/op/math/LibOpScaleNDynamic.sol b/src/lib/op/math/LibOpScaleNDynamic.sol index 999c5d669..7aca8740a 100644 --- a/src/lib/op/math/LibOpScaleNDynamic.sol +++ b/src/lib/op/math/LibOpScaleNDynamic.sol @@ -6,7 +6,7 @@ import {IntegrityCheckStateNP} from "../../integrity/LibIntegrityCheckNP.sol"; import {InterpreterStateNP} from "../../state/LibInterpreterStateNP.sol"; import {Pointer} from "rain.solmem/lib/LibPointer.sol"; import {LibFixedPointDecimalScale, DECIMAL_MAX_SAFE_INT} from "rain.math.fixedpoint/lib/LibFixedPointDecimalScale.sol"; -import {MASK_2BIT} from "sol.lib.binmaskflag/Binary.sol"; +import {MASK_2BIT} from "rain.sol.binmaskflag/Binary.sol"; import {LibParseLiteral} from "../../parse/literal/LibParseLiteral.sol"; /// @title LibOpScaleNDynamic From 7fecbd17cfbaadcd377ef2a745e7bfb1c140d47a Mon Sep 17 00:00:00 2001 From: thedavidmeister Date: Mon, 21 Oct 2024 21:44:11 +0400 Subject: [PATCH 23/62] update deps --- .devcontainer.json | 12 - .gas-snapshot | 2298 ++++++++--------- Cargo.toml | 4 +- LICENSES/LicenseRef-DCL-1.0.txt | 189 ++ REUSE.toml | 18 + flake.lock | 12 +- script/BuildAuthoringMeta.sol | 3 +- script/BuildPointers.sol | 7 +- script/Deploy.sol | 3 +- src/abstract/BaseRainterpreterExternNPE2.sol | 3 +- .../BaseRainterpreterSubParserNPE2.sol | 3 +- .../RainterpreterExpressionDeployerNPE2.sol | 3 +- src/concrete/RainterpreterNPE2.sol | 3 +- src/concrete/RainterpreterParserNPE2.sol | 3 +- src/concrete/RainterpreterStoreNPE2.sol | 3 +- .../RainterpreterReferenceExternNPE2.sol | 3 +- src/error/ErrBitwise.sol | 3 +- src/error/ErrDeploy.sol | 3 +- src/error/ErrExtern.sol | 3 +- src/error/ErrIntegrity.sol | 3 +- src/error/ErrOpList.sol | 3 +- src/error/ErrParse.sol | 3 +- src/error/ErrSubParse.sol | 3 +- ...rpreterExpressionDeployerNPE2.pointers.sol | 3 +- src/generated/RainterpreterNPE2.pointers.sol | 3 +- .../RainterpreterParserNPE2.pointers.sol | 3 +- ...nterpreterReferenceExternNPE2.pointers.sol | 3 +- .../RainterpreterStoreNPE2.pointers.sol | 3 +- .../ExpressionDeployerNPConstants.sol | 3 +- src/lib/eval/LibEvalNP.sol | 3 +- src/lib/extern/LibExtern.sol | 3 +- .../literal/LibParseLiteralRepeat.sol | 3 +- .../LibExternOpContextCallingContractNPE2.sol | 3 +- .../op/LibExternOpContextRainlenNPE2.sol | 3 +- .../op/LibExternOpContextSenderNPE2.sol | 3 +- .../reference/op/LibExternOpIntIncNPE2.sol | 3 +- .../op/LibExternOpStackOperandNPE2.sol | 3 +- src/lib/integrity/LibIntegrityCheckNP.sol | 3 +- src/lib/op/00/LibOpConstantNP.sol | 3 +- src/lib/op/00/LibOpContextNP.sol | 3 +- src/lib/op/00/LibOpExternNP.sol | 3 +- src/lib/op/00/LibOpStackNP.sol | 3 +- src/lib/op/LibAllStandardOpsNP.sol | 3 +- src/lib/op/bitwise/LibOpBitwiseAndNP.sol | 3 +- src/lib/op/bitwise/LibOpBitwiseOrNP.sol | 3 +- src/lib/op/bitwise/LibOpCtPopNP.sol | 3 +- src/lib/op/bitwise/LibOpDecodeBitsNP.sol | 3 +- src/lib/op/bitwise/LibOpEncodeBitsNP.sol | 3 +- src/lib/op/bitwise/LibOpShiftBitsLeftNP.sol | 3 +- src/lib/op/bitwise/LibOpShiftBitsRightNP.sol | 3 +- src/lib/op/call/LibOpCallNP.sol | 3 +- src/lib/op/crypto/LibOpHashNP.sol | 3 +- src/lib/op/erc20/LibOpERC20Allowance.sol | 3 +- src/lib/op/erc20/LibOpERC20BalanceOf.sol | 3 +- src/lib/op/erc20/LibOpERC20TotalSupply.sol | 3 +- .../uint256/LibOpUint256ERC20Allowance.sol | 3 +- .../uint256/LibOpUint256ERC20BalanceOf.sol | 3 +- .../uint256/LibOpUint256ERC20TotalSupply.sol | 3 +- src/lib/op/erc5313/LibOpERC5313OwnerNP.sol | 3 +- src/lib/op/erc721/LibOpERC721OwnerOf.sol | 3 +- .../uint256/LibOpUint256ERC721BalanceOf.sol | 3 +- src/lib/op/evm/LibOpBlockNumberNP.sol | 3 +- src/lib/op/evm/LibOpChainIdNP.sol | 3 +- src/lib/op/evm/LibOpMaxUint256NP.sol | 3 +- src/lib/op/evm/LibOpTimestampNP.sol | 3 +- src/lib/op/logic/LibOpAnyNP.sol | 3 +- src/lib/op/logic/LibOpConditionsNP.sol | 3 +- src/lib/op/logic/LibOpEnsureNP.sol | 3 +- src/lib/op/logic/LibOpEqualToNP.sol | 3 +- src/lib/op/logic/LibOpEveryNP.sol | 3 +- src/lib/op/logic/LibOpGreaterThanNP.sol | 3 +- .../op/logic/LibOpGreaterThanOrEqualToNP.sol | 3 +- src/lib/op/logic/LibOpIfNP.sol | 3 +- src/lib/op/logic/LibOpIsZeroNP.sol | 3 +- src/lib/op/logic/LibOpLessThanNP.sol | 3 +- src/lib/op/logic/LibOpLessThanOrEqualToNP.sol | 3 +- src/lib/op/math/LibOpAdd.sol | 3 +- src/lib/op/math/LibOpAvg.sol | 3 +- src/lib/op/math/LibOpCeil.sol | 3 +- src/lib/op/math/LibOpDiv.sol | 3 +- src/lib/op/math/LibOpE.sol | 3 +- src/lib/op/math/LibOpExp.sol | 3 +- src/lib/op/math/LibOpExp2.sol | 3 +- src/lib/op/math/LibOpFloor.sol | 3 +- src/lib/op/math/LibOpFrac.sol | 3 +- src/lib/op/math/LibOpGm.sol | 3 +- src/lib/op/math/LibOpHeadroom.sol | 3 +- src/lib/op/math/LibOpInv.sol | 3 +- src/lib/op/math/LibOpLn.sol | 3 +- src/lib/op/math/LibOpLog10.sol | 3 +- src/lib/op/math/LibOpLog2.sol | 3 +- src/lib/op/math/LibOpMax.sol | 3 +- src/lib/op/math/LibOpMin.sol | 3 +- src/lib/op/math/LibOpMod.sol | 3 +- src/lib/op/math/LibOpMul.sol | 3 +- src/lib/op/math/LibOpPow.sol | 3 +- src/lib/op/math/LibOpScale18.sol | 3 +- src/lib/op/math/LibOpScale18Dynamic.sol | 3 +- src/lib/op/math/LibOpScaleN.sol | 3 +- src/lib/op/math/LibOpScaleNDynamic.sol | 3 +- src/lib/op/math/LibOpSnapToUnit.sol | 3 +- src/lib/op/math/LibOpSqrt.sol | 3 +- src/lib/op/math/LibOpSub.sol | 3 +- .../op/math/growth/LibOpExponentialGrowth.sol | 3 +- src/lib/op/math/growth/LibOpLinearGrowth.sol | 3 +- src/lib/op/math/uint256/LibOpUint256Div.sol | 3 +- src/lib/op/math/uint256/LibOpUint256Mul.sol | 3 +- src/lib/op/math/uint256/LibOpUint256Pow.sol | 3 +- src/lib/op/store/LibOpGetNP.sol | 3 +- src/lib/op/store/LibOpSetNP.sol | 3 +- src/lib/parse/LibParse.sol | 3 +- src/lib/parse/LibParseCMask.sol | 3 +- src/lib/parse/LibParseError.sol | 3 +- src/lib/parse/LibParseInterstitial.sol | 3 +- src/lib/parse/LibParseOperand.sol | 3 +- src/lib/parse/LibParsePragma.sol | 3 +- src/lib/parse/LibParseStackName.sol | 3 +- src/lib/parse/LibParseStackTracker.sol | 3 +- src/lib/parse/LibParseState.sol | 3 +- src/lib/parse/LibSubParse.sol | 3 +- src/lib/parse/literal/LibParseLiteral.sol | 3 +- .../parse/literal/LibParseLiteralDecimal.sol | 3 +- src/lib/parse/literal/LibParseLiteralHex.sol | 3 +- .../parse/literal/LibParseLiteralString.sol | 3 +- .../literal/LibParseLiteralSubParseable.sol | 3 +- .../LibInterpreterStateDataContractNP.sol | 3 +- src/lib/state/LibInterpreterStateNP.sol | 3 +- test/abstract/OpTest.sol | 3 +- test/abstract/OperandTest.sol | 3 +- test/abstract/ParseLiteralTest.sol | 3 +- ...erExpressionDeployerNPE2DeploymentTest.sol | 3 +- test/lib/etch/LibEtch.sol | 3 +- test/lib/integrity/LibIntegrityFnPointers.sol | 3 +- test/lib/literal/LibLiteralString.sol | 3 +- test/lib/operand/LibOperand.sol | 3 +- test/lib/parse/LibMetaFixture.sol | 3 +- .../BaseRainterpreterExternNPE2.ierc165.t.sol | 3 +- ...terpreterSubParserNPE2.compatibility.t.sol | 3 +- ...seRainterpreterSubParserNPE2.ierc165.t.sol | 3 +- ...erExpressionDeployerNPE2.deployCheck.t.sol | 3 +- ...essionDeployerNPE2.describedByMetaV1.t.sol | 3 +- ...preterExpressionDeployerNPE2.ierc165.t.sol | 3 +- ...terpreterExpressionDeployerNPE2.meta.t.sol | 3 +- .../concrete/RainterpreterNPE2.ierc165.t.sol | 3 +- .../concrete/RainterpreterNPE2.pointers.t.sol | 3 +- test/src/concrete/RainterpreterNPE2.t.sol | 3 +- .../RainterpreterParserNPE2.ierc165.t.sol | 3 +- ...RainterpreterParserNPE2.parserPragma.t.sol | 3 +- .../RainterpreterParserNPE2.pointers.t.sol | 3 +- ...nceExternNPE2.contextCallingContract.t.sol | 3 +- ...erReferenceExternNPE2.contextRainlen.t.sol | 3 +- ...terReferenceExternNPE2.contextSender.t.sol | 3 +- ...eferenceExternNPE2.describedByMetaV1.t.sol | 3 +- ...terpreterReferenceExternNPE2.ierc165.t.sol | 3 +- ...nterpreterReferenceExternNPE2.intInc.t.sol | 3 +- ...erpreterReferenceExternNPE2.pointers.t.sol | 3 +- ...nterpreterReferenceExternNPE2.repeat.t.sol | 3 +- ...eterReferenceExternNPE2.stackOperand.t.sol | 3 +- ...reterReferenceExternNPE2.unknownWord.t.sol | 3 +- .../RainterpreterStoreNPE2.ierc165.t.sol | 3 +- .../src/concrete/RainterpreterStoreNPE2.t.sol | 3 +- test/src/lib/eval/LibEvalNP.fBounds.t.sol | 3 +- test/src/lib/extern/LibExtern.codec.t.sol | 3 +- test/src/lib/op/00/LibOpConstantNP.t.sol | 3 +- test/src/lib/op/00/LibOpContextNP.t.sol | 3 +- test/src/lib/op/00/LibOpExternNP.t.sol | 3 +- test/src/lib/op/00/LibOpStackNP.t.sol | 3 +- test/src/lib/op/LibAllStandardOpsNP.t.sol | 3 +- .../lib/op/bitwise/LibOpBitwiseAndNP.t.sol | 3 +- .../src/lib/op/bitwise/LibOpBitwiseOrNP.t.sol | 3 +- test/src/lib/op/bitwise/LibOpCtPopNP.t.sol | 3 +- .../lib/op/bitwise/LibOpDecodeBitsNP.t.sol | 3 +- .../lib/op/bitwise/LibOpEncodeBitsNP.t.sol | 3 +- .../lib/op/bitwise/LibOpShiftBitsLeftNP.t.sol | 3 +- .../op/bitwise/LibOpShiftBitsRightNP.t.sol | 3 +- test/src/lib/op/call/LibOpCallNP.t.sol | 3 +- test/src/lib/op/crypto/LibOpHashNP.t.sol | 3 +- .../lib/op/erc20/LibOpERC20Allowance.t.sol | 3 +- .../lib/op/erc20/LibOpERC20BalanceOf.t.sol | 3 +- .../lib/op/erc20/LibOpERC20TotalSupply.t.sol | 3 +- .../uint256/LibOpUint256ERC20Allowance.t.sol | 3 +- .../uint256/LibOpUint256ERC20BalanceOf.t.sol | 3 +- .../LibOpUint256ERC20TotalSupply.t.sol | 3 +- .../lib/op/erc5313/LibOpERC5313OwnerNP.t.sol | 3 +- .../lib/op/erc721/LibOpERC721OwnerOf.t.sol | 3 +- .../uint256/LibOpUint256ERC721BalanceOf.t.sol | 3 +- test/src/lib/op/evm/LibOpBlockNumberNP.t.sol | 3 +- test/src/lib/op/evm/LibOpChainIdNP.t.sol | 3 +- test/src/lib/op/evm/LibOpMaxUint256NP.t.sol | 3 +- test/src/lib/op/evm/LibOpTimestampNP.t.sol | 3 +- test/src/lib/op/logic/LibOpAnyNP.t.sol | 3 +- test/src/lib/op/logic/LibOpConditionsNP.t.sol | 3 +- test/src/lib/op/logic/LibOpEnsureNP.t.sol | 3 +- test/src/lib/op/logic/LibOpEqualToNP.t.sol | 3 +- test/src/lib/op/logic/LibOpEveryNP.t.sol | 3 +- .../src/lib/op/logic/LibOpGreaterThanNP.t.sol | 3 +- .../logic/LibOpGreaterThanOrEqualToNP.t.sol | 3 +- test/src/lib/op/logic/LibOpIfNP.t.sol | 3 +- test/src/lib/op/logic/LibOpIsZeroNP.t.sol | 3 +- test/src/lib/op/logic/LibOpLessThanNP.t.sol | 3 +- .../op/logic/LibOpLessThanOrEqualToNP.t.sol | 3 +- test/src/lib/op/math/LibOpAvg.t.sol | 3 +- test/src/lib/op/math/LibOpCeil.t.sol | 3 +- test/src/lib/op/math/LibOpDiv.t.sol | 3 +- test/src/lib/op/math/LibOpE.t.sol | 3 +- test/src/lib/op/math/LibOpExp.t.sol | 3 +- test/src/lib/op/math/LibOpExp2.t.sol | 3 +- test/src/lib/op/math/LibOpFloor.t.sol | 3 +- test/src/lib/op/math/LibOpFrac.t.sol | 3 +- test/src/lib/op/math/LibOpGm.t.sol | 3 +- test/src/lib/op/math/LibOpHeadroom.t.sol | 3 +- test/src/lib/op/math/LibOpIntAddNP.t.sol | 3 +- test/src/lib/op/math/LibOpInv.t.sol | 3 +- test/src/lib/op/math/LibOpLn.t.sol | 3 +- test/src/lib/op/math/LibOpLog10.t.sol | 3 +- test/src/lib/op/math/LibOpLog2.t.sol | 3 +- test/src/lib/op/math/LibOpMax.t.sol | 3 +- test/src/lib/op/math/LibOpMin.t.sol | 3 +- test/src/lib/op/math/LibOpMod.t.sol | 3 +- test/src/lib/op/math/LibOpMul.t.sol | 3 +- test/src/lib/op/math/LibOpPow.t.sol | 3 +- test/src/lib/op/math/LibOpScale18.t.sol | 3 +- .../src/lib/op/math/LibOpScale18Dynamic.t.sol | 3 +- test/src/lib/op/math/LibOpScaleN.t.sol | 3 +- test/src/lib/op/math/LibOpScaleNDynamic.t.sol | 3 +- test/src/lib/op/math/LibOpSnapToUnit.t.sol | 3 +- test/src/lib/op/math/LibOpSqrt.t.sol | 3 +- test/src/lib/op/math/LibOpSub.t.sol | 3 +- .../math/growth/LibOpExponentialGrowth.t.sol | 3 +- .../op/math/growth/LibOpLinearGrowth.t.sol | 3 +- .../src/lib/op/math/int/LibOpUint256Div.t.sol | 3 +- .../src/lib/op/math/int/LibOpUint256Mul.t.sol | 3 +- .../src/lib/op/math/int/LibOpUint256Pow.t.sol | 3 +- test/src/lib/op/store/LibOpGetNP.t.sol | 3 +- test/src/lib/op/store/LibOpSetNP.t.sol | 3 +- test/src/lib/parse/LibParse.comments.t.sol | 3 +- test/src/lib/parse/LibParse.empty.gas.t.sol | 3 +- test/src/lib/parse/LibParse.empty.t.sol | 3 +- test/src/lib/parse/LibParse.ignoredLHS.t.sol | 3 +- .../lib/parse/LibParse.inputsOnly.gas.t.sol | 3 +- test/src/lib/parse/LibParse.inputsOnly.t.sol | 3 +- test/src/lib/parse/LibParse.isMask.t.sol | 3 +- .../LibParse.literalIntegerDecimal.t.sol | 3 +- .../parse/LibParse.literalIntegerHex.t.sol | 3 +- .../lib/parse/LibParse.literalString.t.sol | 3 +- .../lib/parse/LibParse.missingFinalSemi.t.sol | 3 +- test/src/lib/parse/LibParse.nOutput.t.sol | 3 +- test/src/lib/parse/LibParse.namedLHS.t.sol | 3 +- .../src/lib/parse/LibParse.operand8M1M1.t.sol | 3 +- .../parse/LibParse.operandDisallowed.t.sol | 3 +- ...bParse.operandDoublePerByteNoDefault.t.sol | 3 +- test/src/lib/parse/LibParse.operandM1M1.t.sol | 3 +- .../parse/LibParse.operandSingleFull.t.sol | 3 +- test/src/lib/parse/LibParse.parseWord.t.sol | 3 +- .../parse/LibParse.singleIgnored.gas.t.sol | 3 +- .../parse/LibParse.singleLHSNamed.gas.t.sol | 3 +- .../parse/LibParse.singleRHSNamed.gas.t.sol | 3 +- .../src/lib/parse/LibParse.sourceInputs.t.sol | 3 +- .../parse/LibParse.unclosedLeftParen.t.sol | 3 +- .../lib/parse/LibParse.unexpectedLHS.t.sol | 3 +- .../lib/parse/LibParse.unexpectedRHS.t.sol | 3 +- .../parse/LibParse.unexpectedRightParen.t.sol | 3 +- test/src/lib/parse/LibParse.wordsRHS.t.sol | 3 +- .../LibParseOperand.handleOperand8M1M1.t.sol | 3 +- ...ParseOperand.handleOperandDisallowed.t.sol | 3 +- ....handleOperandDoublePerByteNoDefault.t.sol | 3 +- .../LibParseOperand.handleOperandM1M1.t.sol | 3 +- ...ParseOperand.handleOperandSingleFull.t.sol | 3 +- ...and.handleOperandSingleFullNoDefault.t.sol | 3 +- .../parse/LibParseOperand.parseOperand.t.sol | 3 +- .../lib/parse/LibParsePragma.keyword.t.sol | 3 +- test/src/lib/parse/LibParseSlow.sol | 3 +- test/src/lib/parse/LibParseStackName.t.sol | 3 +- .../LibParseState.constantValueBloom.t.sol | 3 +- .../LibParseState.exportSubParsers.t.sol | 3 +- ...LibParseState.newActiveSourcePointer.t.sol | 3 +- .../LibParseState.pushConstantValue.t.sol | 3 +- .../parse/LibParseState.pushSubParser.t.sol | 3 +- .../parse/LibSubParse.subParserExtern.t.sol | 3 +- .../LibParseLiteralDecimal.parseDecimal.t.sol | 3 +- ...arseLiteralDecimal.parseDecimalFloat.t.sol | 3 +- ...ibParseLiteralDecimal.unsafeStrToInt.t.sol | 3 +- ...eLiteralDecimal.unsafeStrToSignedInt.t.sol | 3 +- .../literal/LibParseLiteralHex.boundHex.t.sol | 3 +- .../literal/LibParseLiteralHex.parseHex.t.sol | 3 +- .../LibParseLiteralString.boundString.t.sol | 3 +- .../LibParseLiteralString.parseString.t.sol | 3 +- ...iteralSubParseable.parseSubParseable.t.sol | 3 +- .../LibInterpreterStateNP.stackTrace.t.sol | 3 +- test/utils/TestERC20.sol | 3 +- 290 files changed, 1935 insertions(+), 1454 deletions(-) delete mode 100644 .devcontainer.json create mode 100644 LICENSES/LicenseRef-DCL-1.0.txt create mode 100644 REUSE.toml diff --git a/.devcontainer.json b/.devcontainer.json deleted file mode 100644 index 272e49571..000000000 --- a/.devcontainer.json +++ /dev/null @@ -1,12 +0,0 @@ -{ -"image": "rainprotocol/devcontainer:foundry", -"customizations": { - "vscode": { - "extensions": [ - "JuanBlanco.solidity", - "ms-azuretools.vscode-docker", - "bungcip.better-toml" - ] - } -} -} diff --git a/.gas-snapshot b/.gas-snapshot index 3b750ce74..88f71765f 100644 --- a/.gas-snapshot +++ b/.gas-snapshot @@ -1,1149 +1,1149 @@ -BaseRainterpreterExternNPE2IERC165Test:testRainterpreterExternNPE2IERC165(bytes4) (runs: 2050, μ: 276310, ~: 276310) -BaseRainterpreterSubParserNPE2CompatibilityTest:testRainterpreterSubParserNPE2Compatibility(bytes32,bytes) (runs: 2050, μ: 655490, ~: 655481) -BaseRainterpreterSubParserNPE2IERC165Test:testRainterpreterSubParserNPE2IERC165(uint32) (runs: 2050, μ: 656376, ~: 656376) -LibAllStandardOpsNPTest:testIntegrityAndOpcodeFunctionPointersLength() (gas: 66743) -LibAllStandardOpsNPTest:testIntegrityFunctionPointersLength() (gas: 12090) -LibAllStandardOpsNPTest:testOpcodeFunctionPointersLength() (gas: 12086) -LibEvalNPFBoundsTest:testEvalNPFBoundsModConstant(uint256) (runs: 2050, μ: 86635, ~: 86635) -LibExternCodecTest:testLibExternCodecEncodeExternCall(uint256,uint256) (runs: 2050, μ: 9449, ~: 9337) -LibExternCodecTest:testLibExternCodecEncodeExternDispatch(uint256,uint256) (runs: 2050, μ: 8620, ~: 8508) -LibInterpreterStateNPStackTraceTest:testStackTraceCall(uint256,uint256,uint256[]) (runs: 2050, μ: 33219, ~: 32808) -LibOpAddTest:testOpAddEval2InputsHappy() (gas: 99920) -LibOpAddTest:testOpAddEval2InputsHappyZero() (gas: 54813) -LibOpAddTest:testOpAddEval2InputsHappyZeroMax() (gas: 96334) -LibOpAddTest:testOpAddEval2InputsHappyZeroOne() (gas: 98937) -LibOpAddTest:testOpAddEval2InputsUnhappy() (gas: 92576) -LibOpAddTest:testOpAddEval3InputsHappy() (gas: 313454) -LibOpAddTest:testOpAddEval3InputsUnhappy() (gas: 636796) -LibOpAddTest:testOpAddEvalOneInput() (gas: 34553) -LibOpAddTest:testOpAddEvalOperandDisallowed() (gas: 91190) -LibOpAddTest:testOpAddEvalTwoOutput() (gas: 41338) -LibOpAddTest:testOpAddEvalZeroInputs() (gas: 28861) -LibOpAddTest:testOpAddEvalZeroOutputs() (gas: 40261) -LibOpAddTest:testOpAddIntegrityHappy((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint16) (runs: 2050, μ: 17834, ~: 17844) -LibOpAddTest:testOpAddIntegrityUnhappyOneInput((uint256,uint256,uint256,uint256[],uint256,bytes)) (runs: 2050, μ: 13783, ~: 13633) -LibOpAddTest:testOpAddIntegrityUnhappyZeroInputs((uint256,uint256,uint256,uint256[],uint256,bytes)) (runs: 2050, μ: 13781, ~: 13631) -LibOpAddTest:testOpAddRun(uint256[]) (runs: 2048, μ: 18182, ~: 18436) -LibOpAnyNPTest:testOpAnyNPEval1FalseInput() (gas: 48147) -LibOpAnyNPTest:testOpAnyNPEval1TrueInput() (gas: 48046) -LibOpAnyNPTest:testOpAnyNPEval2FalseInputs() (gas: 53514) -LibOpAnyNPTest:testOpAnyNPEval2MixedInputs() (gas: 54088) -LibOpAnyNPTest:testOpAnyNPEval2MixedInputs2() (gas: 54192) -LibOpAnyNPTest:testOpAnyNPEval2TrueInputs() (gas: 54090) -LibOpAnyNPTest:testOpAnyNPEvalFail() (gas: 28514) -LibOpAnyNPTest:testOpAnyNPIntegrityGas0() (gas: 3273) -LibOpAnyNPTest:testOpAnyNPIntegrityHappy(uint8,uint16) (runs: 2050, μ: 8174, ~: 8297) -LibOpAnyNPTest:testOpAnyNPIntegrityUnhappyZeroInputs() (gas: 4062) -LibOpAnyNPTest:testOpAnyNPRun(uint256[],uint16) (runs: 2048, μ: 17313, ~: 17307) -LibOpAnyNPTest:testOpAnyNPRunGas0() (gas: 3377) -LibOpAnyNPTest:testOpAnyNPTwoOutputs() (gas: 34668) -LibOpAnyNPTest:testOpAnyNPZeroOutputs() (gas: 33652) -LibOpAvgTest:testOpAvgEval() (gas: 394995) -LibOpAvgTest:testOpAvgEvalOneInput() (gas: 34004) -LibOpAvgTest:testOpAvgEvalOperandDisallowed() (gas: 17391) -LibOpAvgTest:testOpAvgEvalThreeInputs() (gas: 44057) -LibOpAvgTest:testOpAvgEvalTwoOutputs() (gas: 39741) -LibOpAvgTest:testOpAvgEvalZeroOutputs() (gas: 38687) -LibOpAvgTest:testOpAvgIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint256) (runs: 2050, μ: 13823, ~: 13795) -LibOpAvgTest:testOpAvgRun(uint256,uint256,uint16) (runs: 2050, μ: 20478, ~: 20186) -LibOpBitwiseAndNPTest:testOpBitwiseAndNPEvalHappy() (gas: 711235) -LibOpBitwiseAndNPTest:testOpBitwiseAndNPIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint256) (runs: 2050, μ: 13845, ~: 13817) -LibOpBitwiseAndNPTest:testOpBitwiseAndNPRun(uint256,uint256) (runs: 2050, μ: 15151, ~: 15151) -LibOpBitwiseAndNPTest:testOpBitwiseORNPEvalBadOperand() (gas: 18081) -LibOpBitwiseAndNPTest:testOpBitwiseORNPEvalOneInput() (gas: 34621) -LibOpBitwiseAndNPTest:testOpBitwiseORNPEvalThreeInputs() (gas: 44695) -LibOpBitwiseAndNPTest:testOpBitwiseORNPEvalTwoOutputs() (gas: 40379) -LibOpBitwiseAndNPTest:testOpBitwiseORNPEvalZeroInputs() (gas: 29487) -LibOpBitwiseAndNPTest:testOpBitwiseORNPEvalZeroOutputs() (gas: 39367) -LibOpBitwiseOrNPTest:testOpBitwiseORNPEval() (gas: 709927) -LibOpBitwiseOrNPTest:testOpBitwiseORNPEvalBadOperand() (gas: 18000) -LibOpBitwiseOrNPTest:testOpBitwiseORNPEvalOneInput() (gas: 34562) -LibOpBitwiseOrNPTest:testOpBitwiseORNPEvalThreeInputs() (gas: 44636) -LibOpBitwiseOrNPTest:testOpBitwiseORNPEvalTwoOutputs() (gas: 40275) -LibOpBitwiseOrNPTest:testOpBitwiseORNPEvalZeroInputs() (gas: 29362) -LibOpBitwiseOrNPTest:testOpBitwiseORNPEvalZeroOutputs() (gas: 39286) -LibOpBitwiseOrNPTest:testOpBitwiseORNPIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint256) (runs: 2050, μ: 13823, ~: 13795) -LibOpBitwiseOrNPTest:testOpBitwiseORNPRun(uint256,uint256) (runs: 2050, μ: 15127, ~: 15127) -LibOpBlockNumberNPTest:testOpBlockNumberNPEval(uint256) (runs: 2050, μ: 47181, ~: 47049) -LibOpBlockNumberNPTest:testOpBlockNumberNPEvalOneInput() (gas: 33765) -LibOpBlockNumberNPTest:testOpBlockNumberNPEvalTwoOutputs() (gas: 30147) -LibOpBlockNumberNPTest:testOpBlockNumberNPEvalZeroOutputs() (gas: 29152) -LibOpBlockNumberNPTest:testOpBlockNumberNPIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint8,uint16) (runs: 2050, μ: 19177, ~: 19226) -LibOpBlockNumberNPTest:testOpBlockNumberNPRun(uint256,uint16) (runs: 2050, μ: 18790, ~: 18647) -LibOpCallNPTest:testCallTraceInnerOnly() (gas: 59694) -LibOpCallNPTest:testCallTraceOuterAndInner() (gas: 70400) -LibOpCallNPTest:testCallTraceOuterAndTwoInner() (gas: 108818) -LibOpCallNPTest:testCallTraceOuterOnly() (gas: 42763) -LibOpCallNPTest:testOpCallNPIntegrityIO((uint256,uint256,uint256,uint256[],uint256,bytes),uint256,uint256,uint8,bytes32) (runs: 2050, μ: 38328, ~: 36934) -LibOpCallNPTest:testOpCallNPIntegritySourceIndexOutOfBounds((uint256,uint256,uint256,uint256[],uint256,bytes),uint256,uint256,uint256,uint256,bytes32) (runs: 2050, μ: 35396, ~: 33628) -LibOpCallNPTest:testOpCallNPIntegrityTooManyOutputs((uint256,uint256,uint256,uint256[],uint256,bytes),uint256,uint256,uint8,bytes32) (runs: 2050, μ: 34788, ~: 34698) -LibOpCallNPTest:testOpCallNPRunInputsMismatch() (gas: 71847) -LibOpCallNPTest:testOpCallNPRunNoIO() (gas: 677091) -LibOpCallNPTest:testOpCallNPRunOutputsMismatch() (gas: 64966) -LibOpCallNPTest:testOpCallNPRunRecursive() (gas: 294298) -LibOpCallNPTest:testOpCallNPRunSourceDoesNotExist() (gas: 334821) -LibOpCeilTest:testOpCeilEval() (gas: 197291) -LibOpCeilTest:testOpCeilEvalOperandDisallowed() (gas: 17472) -LibOpCeilTest:testOpCeilIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint256) (runs: 2050, μ: 13867, ~: 13839) -LibOpCeilTest:testOpCeilRun(uint256,uint16) (runs: 2050, μ: 18955, ~: 19167) -LibOpCeilTest:testOpCeilTwoInputs() (gas: 39124) -LibOpCeilTest:testOpCeilTwoOutputs() (gas: 34745) -LibOpCeilTest:testOpCeilZeroInputs() (gas: 28909) -LibOpCeilTest:testOpCeilZeroOutputs() (gas: 33752) -LibOpChainIdNPTest:testOpChainIDNPEval(uint64,uint256) (runs: 2050, μ: 44245, ~: 44245) -LibOpChainIdNPTest:testOpChainIDNPIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint8,uint16) (runs: 2050, μ: 19190, ~: 19223) -LibOpChainIdNPTest:testOpChainIdNPEvalFail() (gas: 33143) -LibOpChainIdNPTest:testOpChainIdNPRun(uint64,uint16) (runs: 2050, μ: 15359, ~: 15359) -LibOpChainIdNPTest:testOpChainIdNPTwoOutputs() (gas: 29828) -LibOpChainIdNPTest:testOpChainIdNPZeroOutputs() (gas: 28813) -LibOpConditionsNPTest:testOpConditionsNPEval1FalseInput1TrueInput() (gas: 67444) -LibOpConditionsNPTest:testOpConditionsNPEval1FalseInputRevert() (gas: 52314) -LibOpConditionsNPTest:testOpConditionsNPEval1TrueInput1FalseInput() (gas: 67318) -LibOpConditionsNPTest:testOpConditionsNPEval1TrueInputZeroOutput() (gas: 54907) -LibOpConditionsNPTest:testOpConditionsNPEval2MixedInputs() (gas: 54910) -LibOpConditionsNPTest:testOpConditionsNPEval2TrueInputs() (gas: 67319) -LibOpConditionsNPTest:testOpConditionsNPEvalErrorCode() (gas: 63956) -LibOpConditionsNPTest:testOpConditionsNPEvalFail0Inputs() (gas: 29175) -LibOpConditionsNPTest:testOpConditionsNPEvalFail1Inputs() (gas: 33419) -LibOpConditionsNPTest:testOpConditionsNPEvalUnhappyOperand() (gas: 17942) -LibOpConditionsNPTest:testOpConditionsNPIntegrityHappy((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint8,uint16) (runs: 2050, μ: 19639, ~: 19712) -LibOpConditionsNPTest:testOpConditionsNPRun(uint256[],uint256) (runs: 2048, μ: 17803, ~: 17904) -LibOpConditionsNPTest:testOpConditionsNPRunNoConditionsMet(uint256[],string) (runs: 2049, μ: 23431, ~: 23122) -LibOpConditionsNPTest:testOpConditionsNPTwoOutputs() (gas: 38513) -LibOpConditionsNPTest:testOpConditionsNPZeroOutputs() (gas: 37525) -LibOpConstantNPTest:testOpConstantEvalNPE2E() (gas: 51893) -LibOpConstantNPTest:testOpConstantEvalZeroConstants() (gas: 40129) -LibOpConstantNPTest:testOpConstantNPIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint256) (runs: 2050, μ: 18888, ~: 18874) -LibOpConstantNPTest:testOpConstantNPIntegrityOOBConstants((uint256,uint256,uint256,uint256[],uint256,bytes),uint256) (runs: 2050, μ: 17678, ~: 17684) -LibOpConstantNPTest:testOpConstantNPMultipleOutputErrorSugared() (gas: 30551) -LibOpConstantNPTest:testOpConstantNPMultipleOutputErrorUnsugared() (gas: 40426) -LibOpConstantNPTest:testOpConstantNPRun(uint256[],uint16) (runs: 2050, μ: 51914, ~: 51959) -LibOpConstantNPTest:testOpConstantNPZeroOutputErrorSugared() (gas: 29211) -LibOpConstantNPTest:testOpConstantNPZeroOutputErrorUnsugared() (gas: 39030) -LibOpContextNPTest:testOpContextNPEval00(uint256[][]) (runs: 2050, μ: 7237302, ~: 6123529) -LibOpContextNPTest:testOpContextNPEval01(uint256[][]) (runs: 2050, μ: 7231074, ~: 6114055) -LibOpContextNPTest:testOpContextNPEval10(uint256[][]) (runs: 2050, μ: 7276707, ~: 6181143) -LibOpContextNPTest:testOpContextNPEval11(uint256[][]) (runs: 2050, μ: 7273395, ~: 6200493) -LibOpContextNPTest:testOpContextNPEvalOOBi(uint256[]) (runs: 2050, μ: 74726, ~: 74812) -LibOpContextNPTest:testOpContextNPEvalOOBj(uint256) (runs: 2050, μ: 45724, ~: 45724) -LibOpContextNPTest:testOpContextNPIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint256) (runs: 2050, μ: 14328, ~: 14300) -LibOpContextNPTest:testOpContextNPOneInput() (gas: 40416) -LibOpContextNPTest:testOpContextNPRun(uint256[][],uint256,uint256) (runs: 2050, μ: 10540788, ~: 8994700) -LibOpContextNPTest:testOpContextNPRunOOBi(uint256[][],uint256,uint256) (runs: 2050, μ: 5493868, ~: 4780175) -LibOpContextNPTest:testOpContextNPRunOOBj(uint256[][],uint256,uint256) (runs: 2050, μ: 5522956, ~: 4826971) -LibOpContextNPTest:testOpContextNPTwoInputs() (gas: 45497) -LibOpContextNPTest:testOpContextNPTwoOutputs() (gas: 35940) -LibOpContextNPTest:testOpContextNPZeroOutputs() (gas: 34923) -LibOpCtPopNPTest:testOpCtPopNPEval(uint256) (runs: 2050, μ: 61459, ~: 58497) -LibOpCtPopNPTest:testOpCtPopNPIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint256) (runs: 2050, μ: 13866, ~: 13838) -LibOpCtPopNPTest:testOpCtPopNPRun(uint256) (runs: 2050, μ: 15357, ~: 15358) -LibOpCtPopNPTest:testOpCtPopNPTwoInputs() (gas: 40181) -LibOpCtPopNPTest:testOpCtPopNPTwoOutputs() (gas: 35868) -LibOpCtPopNPTest:testOpCtPopNPZeroInputs() (gas: 29965) -LibOpCtPopNPTest:testOpCtPopNPZeroOutputs() (gas: 34831) -LibOpDecodeBitsNPTest:testOpDecodeBitsNPEvalHappy() (gas: 796031) -LibOpDecodeBitsNPTest:testOpDecodeBitsNPEvalTwoInputs() (gas: 45980) -LibOpDecodeBitsNPTest:testOpDecodeBitsNPEvalTwoOutputs() (gas: 41691) -LibOpDecodeBitsNPTest:testOpDecodeBitsNPEvalZeroInputs() (gas: 35810) -LibOpDecodeBitsNPTest:testOpDecodeBitsNPEvalZeroOutputs() (gas: 40608) -LibOpDecodeBitsNPTest:testOpDecodeBitsNPIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint8,uint8,uint8) (runs: 2050, μ: 21588, ~: 21786) -LibOpDecodeBitsNPTest:testOpDecodeBitsNPIntegrityFail((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint8) (runs: 2050, μ: 18946, ~: 18901) -LibOpDecodeBitsNPTest:testOpDecodeBitsNPIntegrityFailZeroLength((uint256,uint256,uint256,uint256[],uint256,bytes),uint8) (runs: 2050, μ: 13748, ~: 13727) -LibOpDecodeBitsNPTest:testOpDecodeBitsNPRun(uint256,uint8,uint8) (runs: 2050, μ: 19416, ~: 19230) -LibOpDivTest:testDebugOpDivRun() (gas: 10758) -LibOpDivTest:testOpDivEvalOneInput() (gas: 121571) -LibOpDivTest:testOpDivEvalOperandsDisallowed() (gas: 91166) -LibOpDivTest:testOpDivEvalThreeInputsHappy() (gas: 353399) -LibOpDivTest:testOpDivEvalThreeInputsUnhappy() (gas: 198512) -LibOpDivTest:testOpDivEvalThreeInputsUnhappyOverflow() (gas: 157664) -LibOpDivTest:testOpDivEvalTwoInputsHappy() (gas: 311793) -LibOpDivTest:testOpDivEvalTwoInputsUnhappy() (gas: 134248) -LibOpDivTest:testOpDivEvalTwoInputsUnhappyOverflow() (gas: 94970) -LibOpDivTest:testOpDivEvalTwoOutputs() (gas: 40446) -LibOpDivTest:testOpDivEvalZeroInputs() (gas: 28861) -LibOpDivTest:testOpDivEvalZeroOutputs() (gas: 39412) -LibOpDivTest:testOpDivIntegrityHappy((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint16) (runs: 2050, μ: 17839, ~: 17843) -LibOpDivTest:testOpDivIntegrityUnhappyOneInput((uint256,uint256,uint256,uint256[],uint256,bytes)) (runs: 2050, μ: 13782, ~: 13632) -LibOpDivTest:testOpDivIntegrityUnhappyZeroInputs((uint256,uint256,uint256,uint256[],uint256,bytes)) (runs: 2050, μ: 13804, ~: 13654) -LibOpDivTest:testOpDivRun(uint256[]) (runs: 2048, μ: 23329, ~: 22519) -LibOpERC20AllowanceTest:testOpERC20AllowanceNPEvalFourInputs() (gas: 54140) -LibOpERC20AllowanceTest:testOpERC20AllowanceNPEvalHappy(uint256,uint8) (runs: 2050, μ: 67569, ~: 67624) -LibOpERC20AllowanceTest:testOpERC20AllowanceNPEvalOneInput() (gas: 35769) -LibOpERC20AllowanceTest:testOpERC20AllowanceNPEvalOperandDisallowed() (gas: 18364) -LibOpERC20AllowanceTest:testOpERC20AllowanceNPEvalTwoInputs() (gas: 42001) -LibOpERC20AllowanceTest:testOpERC20AllowanceNPEvalTwoOutputs() (gas: 49007) -LibOpERC20AllowanceTest:testOpERC20AllowanceNPEvalZeroInputs() (gas: 29783) -LibOpERC20AllowanceTest:testOpERC20AllowanceNPEvalZeroOutputs() (gas: 47952) -LibOpERC20AllowanceTest:testOpERC20AllowanceNPIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint256) (runs: 2050, μ: 13847, ~: 13819) -LibOpERC20AllowanceTest:testOpERC20AllowanceNPRun(address,address,address,uint256,uint8) (runs: 2050, μ: 24560, ~: 24607) -LibOpERC20BalanceOfTest:testOpERC20BalanceOfNPEvalHappy(uint256,uint8) (runs: 2050, μ: 61578, ~: 61499) -LibOpERC20BalanceOfTest:testOpERC20BalanceOfNPEvalOneInput() (gas: 35825) -LibOpERC20BalanceOfTest:testOpERC20BalanceOfNPEvalOperandDisallowed() (gas: 18445) -LibOpERC20BalanceOfTest:testOpERC20BalanceOfNPEvalOverflow(uint256,uint8) (runs: 2048, μ: 57606, ~: 57606) -LibOpERC20BalanceOfTest:testOpERC20BalanceOfNPEvalThreeInputs() (gas: 47886) -LibOpERC20BalanceOfTest:testOpERC20BalanceOfNPEvalTwoOutputs() (gas: 42757) -LibOpERC20BalanceOfTest:testOpERC20BalanceOfNPEvalZeroInputs() (gas: 29881) -LibOpERC20BalanceOfTest:testOpERC20BalanceOfNPEvalZeroOutputs() (gas: 41744) -LibOpERC20BalanceOfTest:testOpERC20BalanceOfNPIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint256) (runs: 2050, μ: 13867, ~: 13839) -LibOpERC20BalanceOfTest:testOpERC20BalanceOfNPRun(address,address,uint256,uint16,uint8) (runs: 2048, μ: 24830, ~: 24752) -LibOpERC20TotalSupplyTest:testOpERC20TotalSupplyNPEvalHappy(uint256,uint8) (runs: 2050, μ: 55033, ~: 54952) -LibOpERC20TotalSupplyTest:testOpERC20TotalSupplyNPEvalOperandDisallowed() (gas: 18651) -LibOpERC20TotalSupplyTest:testOpERC20TotalSupplyNPEvalOverflow(uint256,uint8) (runs: 2048, μ: 51127, ~: 51127) -LibOpERC20TotalSupplyTest:testOpERC20TotalSupplyNPEvalTwoInputs() (gas: 42262) -LibOpERC20TotalSupplyTest:testOpERC20TotalSupplyNPEvalTwoOutputs() (gas: 36675) -LibOpERC20TotalSupplyTest:testOpERC20TotalSupplyNPEvalZeroInputs() (gas: 30044) -LibOpERC20TotalSupplyTest:testOpERC20TotalSupplyNPEvalZeroOutputs() (gas: 35639) -LibOpERC20TotalSupplyTest:testOpERC20TotalSupplyNPIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint256) (runs: 2050, μ: 13847, ~: 13819) -LibOpERC20TotalSupplyTest:testOpERC20TotalSupplyNPRun(address,uint256,uint16,uint8) (runs: 2049, μ: 24287, ~: 24208) -LibOpERC5313OwnerNPTest:testOpERC5313OwnerNPEvalHappy() (gas: 52058) -LibOpERC5313OwnerNPTest:testOpERC5313OwnerNPEvalOperandDisallowed() (gas: 18213) -LibOpERC5313OwnerNPTest:testOpERC5313OwnerNPEvalTwoInputs() (gas: 41826) -LibOpERC5313OwnerNPTest:testOpERC5313OwnerNPEvalTwoOutputs() (gas: 36275) -LibOpERC5313OwnerNPTest:testOpERC5313OwnerNPEvalZeroInputs() (gas: 29606) -LibOpERC5313OwnerNPTest:testOpERC5313OwnerNPEvalZeroOutputs() (gas: 35235) -LibOpERC5313OwnerNPTest:testOpERC5313OwnerOfNPIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint256) (runs: 2050, μ: 13824, ~: 13796) -LibOpERC5313OwnerNPTest:testOpERC5313OwnerOfNPRun(address,address,uint16) (runs: 2050, μ: 21499, ~: 21499) -LibOpERC721OwnerOfTest:testOpERC721OwnerOfNPEvalFail0() (gas: 29469) -LibOpERC721OwnerOfTest:testOpERC721OwnerOfNPEvalFail1() (gas: 33757) -LibOpERC721OwnerOfTest:testOpERC721OwnerOfNPEvalFail3() (gas: 43032) -LibOpERC721OwnerOfTest:testOpERC721OwnerOfNPEvalFailOperand() (gas: 18155) -LibOpERC721OwnerOfTest:testOpERC721OwnerOfNPEvalHappy(address,uint256,address) (runs: 2050, μ: 91696, ~: 88124) -LibOpERC721OwnerOfTest:testOpERC721OwnerOfNPEvalOneInput() (gas: 34100) -LibOpERC721OwnerOfTest:testOpERC721OwnerOfNPEvalThreeInputs() (gas: 43363) -LibOpERC721OwnerOfTest:testOpERC721OwnerOfNPEvalZeroInputs() (gas: 29823) -LibOpERC721OwnerOfTest:testOpERC721OwnerOfNPEvalZeroOutputs() (gas: 38318) -LibOpERC721OwnerOfTest:testOpERC721OwnerOfNPIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint8) (runs: 2050, μ: 13849, ~: 13828) -LibOpERC721OwnerOfTest:testOpERC721OwnerOfNPRun(address,uint256,address,uint16) (runs: 2050, μ: 21895, ~: 21895) -LibOpERC721OwnerOfTest:testOpERC721OwnerOfNPTwoOutputs() (gas: 39350) -LibOpETest:testOpEEval() (gas: 42254) -LibOpETest:testOpEEvalOneInput() (gas: 32875) -LibOpETest:testOpEEvalTwoOutputs() (gas: 29299) -LibOpETest:testOpEEvalZeroOutputs() (gas: 28262) -LibOpETest:testOpEIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint8,uint16) (runs: 2050, μ: 19199, ~: 19252) -LibOpETest:testOpERun(uint16) (runs: 2050, μ: 14769, ~: 14769) -LibOpEncodeBitsNPTest:testOpEncodeBitsNPEvalHappy() (gas: 799934) -LibOpEncodeBitsNPTest:testOpEncodeBitsNPEvalOneInput() (gas: 40904) -LibOpEncodeBitsNPTest:testOpEncodeBitsNPEvalThreeInputs() (gas: 50977) -LibOpEncodeBitsNPTest:testOpEncodeBitsNPEvalTwoOutputs() (gas: 46618) -LibOpEncodeBitsNPTest:testOpEncodeBitsNPEvalZeroInputs() (gas: 35725) -LibOpEncodeBitsNPTest:testOpEncodeBitsNPEvalZeroOutputs() (gas: 45628) -LibOpEncodeBitsNPTest:testOpEncodeBitsNPIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint8) (runs: 2050, μ: 18017, ~: 18034) -LibOpEncodeBitsNPTest:testOpEncodeBitsNPIntegrityFail((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint8) (runs: 2050, μ: 19060, ~: 19007) -LibOpEncodeBitsNPTest:testOpEncodeBitsNPIntegrityFailZeroLength((uint256,uint256,uint256,uint256[],uint256,bytes),uint8) (runs: 2050, μ: 13919, ~: 13898) -LibOpEncodeBitsNPTest:testOpEncodeBitsNPRun(uint256,uint256,uint8,uint8) (runs: 2050, μ: 19748, ~: 19557) -LibOpEnsureNPTest:testOpEnsureNPEvalBadOutputs() (gas: 34711) -LibOpEnsureNPTest:testOpEnsureNPEvalBadOutputs2() (gas: 34064) -LibOpEnsureNPTest:testOpEnsureNPEvalHappy() (gas: 160742) -LibOpEnsureNPTest:testOpEnsureNPEvalOne() (gas: 33544) -LibOpEnsureNPTest:testOpEnsureNPEvalThree() (gas: 45003) -LibOpEnsureNPTest:testOpEnsureNPEvalUnhappy() (gas: 106677) -LibOpEnsureNPTest:testOpEnsureNPEvalUnhappyOperand() (gas: 16940) -LibOpEnsureNPTest:testOpEnsureNPEvalZero() (gas: 28318) -LibOpEnsureNPTest:testOpEnsureNPIntegrityHappy((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint8,uint16) (runs: 2050, μ: 19260, ~: 19355) -LibOpEnsureNPTest:testOpEnsureNPIntegrityUnhappy((uint256,uint256,uint256,uint256[],uint256,bytes)) (runs: 2050, μ: 13746, ~: 13596) -LibOpEnsureNPTest:testOpEnsureNPOneOutput() (gas: 38597) -LibOpEnsureNPTest:testOpEnsureNPRun(uint256,string) (runs: 2048, μ: 15256, ~: 15321) -LibOpEqualToNPTest:testOpEqualToNPEval2InputsBothOne() (gas: 53669) -LibOpEqualToNPTest:testOpEqualToNPEval2InputsFirstOneSecondZero() (gas: 54401) -LibOpEqualToNPTest:testOpEqualToNPEval2InputsFirstZeroSecondOne() (gas: 54380) -LibOpEqualToNPTest:testOpEqualToNPEval2ZeroInputs() (gas: 53711) -LibOpEqualToNPTest:testOpEqualToNPEvalFail0Inputs() (gas: 28870) -LibOpEqualToNPTest:testOpEqualToNPEvalFail1Input() (gas: 33134) -LibOpEqualToNPTest:testOpEqualToNPEvalFail3Inputs() (gas: 41431) -LibOpEqualToNPTest:testOpEqualToNPIntegrityHappy((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint8,uint16) (runs: 2050, μ: 19202, ~: 19264) -LibOpEqualToNPTest:testOpEqualToNPRun(uint256,uint256) (runs: 2050, μ: 15178, ~: 15179) -LibOpEqualToNPTest:testOpEqualToNPTwoOutputs() (gas: 40042) -LibOpEqualToNPTest:testOpEqualToNPZeroOutputs() (gas: 39054) -LibOpEveryNPTest:testOpAnyNPEvalFail() (gas: 29368) -LibOpEveryNPTest:testOpEveryNPEval1FalseInput() (gas: 48893) -LibOpEveryNPTest:testOpEveryNPEval1TrueInput() (gas: 48933) -LibOpEveryNPTest:testOpEveryNPEval2FalseInputs() (gas: 54228) -LibOpEveryNPTest:testOpEveryNPEval2MixedInputs() (gas: 55016) -LibOpEveryNPTest:testOpEveryNPEval2MixedInputs2() (gas: 54962) -LibOpEveryNPTest:testOpEveryNPEval2TrueInputs() (gas: 55053) -LibOpEveryNPTest:testOpEveryNPIntegrityHappy((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint8,uint16) (runs: 2050, μ: 19375, ~: 19485) -LibOpEveryNPTest:testOpEveryNPIntegrityUnhappyZeroInputs((uint256,uint256,uint256,uint256[],uint256,bytes)) (runs: 2050, μ: 13731, ~: 13581) -LibOpEveryNPTest:testOpEveryNPRun(uint256[]) (runs: 2048, μ: 18631, ~: 18703) -LibOpEveryNPTest:testOpEveryNPTwoOutputs() (gas: 35499) -LibOpEveryNPTest:testOpEveryNPZeroOutputs() (gas: 34483) -LibOpExp2Test:testOpExp2Eval() (gas: 201815) -LibOpExp2Test:testOpExp2EvalBad() (gas: 64402) -LibOpExp2Test:testOpExp2EvalOperandDisallowed() (gas: 18154) -LibOpExp2Test:testOpExp2Integrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint256) (runs: 2050, μ: 13823, ~: 13795) -LibOpExp2Test:testOpExp2Run(uint256,uint16) (runs: 2050, μ: 22583, ~: 23726) -LibOpExp2Test:testOpExp2TwoOutputs() (gas: 35385) -LibOpExp2Test:testOpExp2ZeroOutputs() (gas: 34368) -LibOpExpTest:testOpExpEval() (gas: 206855) -LibOpExpTest:testOpExpEvalOperandDisallowed() (gas: 17389) -LibOpExpTest:testOpExpEvalTwoInputs() (gas: 39020) -LibOpExpTest:testOpExpEvalZeroInputs() (gas: 28827) -LibOpExpTest:testOpExpIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint256) (runs: 2050, μ: 13844, ~: 13816) -LibOpExpTest:testOpExpRun(uint256,uint16) (runs: 2050, μ: 22844, ~: 24134) -LibOpExpTest:testOpExpTwoOutputs() (gas: 34666) -LibOpExpTest:testOpExpZeroOutputs() (gas: 33671) -LibOpExponentialGrowthTest:testOpExponentialGrowthEval() (gas: 657535) -LibOpExponentialGrowthTest:testOpExponentialGrowthEvalFourInputs() (gas: 51100) -LibOpExponentialGrowthTest:testOpExponentialGrowthEvalOneInput() (gas: 35188) -LibOpExponentialGrowthTest:testOpExponentialGrowthEvalOperandDisallowed() (gas: 18596) -LibOpExponentialGrowthTest:testOpExponentialGrowthEvalTwoInputs() (gas: 40928) -LibOpExponentialGrowthTest:testOpExponentialGrowthEvalTwoOutputs() (gas: 46648) -LibOpExponentialGrowthTest:testOpExponentialGrowthEvalZeroInputs() (gas: 29627) -LibOpExponentialGrowthTest:testOpExponentialGrowthEvalZeroOutputs() (gas: 45593) -LibOpExponentialGrowthTest:testOpExponentialGrowthIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint256) (runs: 2050, μ: 13822, ~: 13794) -LibOpExponentialGrowthTest:testOpExponentialGrowthRun(uint256,uint256,uint256,uint16) (runs: 2050, μ: 37217, ~: 37314) -LibOpExternNPTest:testOpExternNPEvalHappy() (gas: 94147) -LibOpExternNPTest:testOpExternNPEvalMultipleInputsOutputsHappy() (gas: 107900) -LibOpExternNPTest:testOpExternNPIntegrityHappy((uint256,uint256,uint256,uint256[],uint256,bytes),address,uint16,uint8,uint8) (runs: 2050, μ: 32373, ~: 32206) -LibOpExternNPTest:testOpExternNPIntegrityNotAnExternContract((uint256,uint256,uint256,uint256[],uint256,bytes),address,uint16,uint8,uint8) (runs: 2050, μ: 50985, ~: 50415) -LibOpExternNPTest:testOpExternNPRunHappy(address,uint256[],uint16,uint256[],uint256[]) (runs: 2049, μ: 107710, ~: 107064) -LibOpFloorTest:testOpFloorEval() (gas: 234066) -LibOpFloorTest:testOpFloorEvalOperandDisallowed() (gas: 17554) -LibOpFloorTest:testOpFloorIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint256) (runs: 2050, μ: 13844, ~: 13816) -LibOpFloorTest:testOpFloorRun(uint256,uint16) (runs: 2050, μ: 18822, ~: 19033) -LibOpFloorTest:testOpFloorTwoInputs() (gas: 39204) -LibOpFloorTest:testOpFloorTwoOutputs() (gas: 34827) -LibOpFloorTest:testOpFloorZeroInputs() (gas: 28968) -LibOpFloorTest:testOpFloorZeroOutputs() (gas: 33812) -LibOpFracTest:testOpFracEval() (gas: 233501) -LibOpFracTest:testOpFracEvalOperandDisallowed() (gas: 17472) -LibOpFracTest:testOpFracIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint256) (runs: 2050, μ: 13822, ~: 13794) -LibOpFracTest:testOpFracRun(uint256,uint16) (runs: 2050, μ: 18782, ~: 18992) -LibOpFracTest:testOpFracTwoInputs() (gas: 39114) -LibOpFracTest:testOpFracTwoOutputs() (gas: 34780) -LibOpFracTest:testOpFracZeroInputs() (gas: 28897) -LibOpFracTest:testOpFracZeroOutputs() (gas: 33741) -LibOpGetNPTest:testLibOpGetNPEvalKeyNotSet() (gas: 287432) -LibOpGetNPTest:testLibOpGetNPEvalOperandDisallowed() (gas: 57183) -LibOpGetNPTest:testLibOpGetNPEvalSetThenGet() (gas: 490716) -LibOpGetNPTest:testLibOpGetNPEvalStoreAndSetAndGet() (gas: 242272) -LibOpGetNPTest:testLibOpGetNPEvalStoreThenGet() (gas: 448986) -LibOpGetNPTest:testLibOpGetNPEvalThreeInputs() (gas: 43550) -LibOpGetNPTest:testLibOpGetNPEvalTwoInputs() (gas: 38367) -LibOpGetNPTest:testLibOpGetNPEvalTwoOutputs() (gas: 33948) -LibOpGetNPTest:testLibOpGetNPEvalZeroInputs() (gas: 28479) -LibOpGetNPTest:testLibOpGetNPEvalZeroOutputs() (gas: 32932) -LibOpGetNPTest:testLibOpGetNPIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint8,uint16) (runs: 2050, μ: 19848, ~: 19954) -LibOpGetNPTest:testLibOpGetNPRunState(uint256,uint256,uint16) (runs: 2050, μ: 17798, ~: 17803) -LibOpGetNPTest:testLibOpGetNPRunStateAndStore(uint256,uint256,uint256,uint16) (runs: 2050, μ: 45590, ~: 45808) -LibOpGetNPTest:testLibOpGetNPRunStore(uint256,uint256,uint16) (runs: 2050, μ: 47789, ~: 47997) -LibOpGetNPTest:testLibOpGetNPRunStoreDifferentNamespace(uint256,uint256,uint16) (runs: 2050, μ: 49318, ~: 49526) -LibOpGetNPTest:testLibOpGetNPRunUnset(uint256,uint16) (runs: 2050, μ: 23029, ~: 23034) -LibOpGmTest:testOpGmEval() (gas: 399303) -LibOpGmTest:testOpGmEvalOperandDisallowed() (gas: 17332) -LibOpGmTest:testOpGmIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint256) (runs: 2050, μ: 13866, ~: 13838) -LibOpGmTest:testOpGmOneInput() (gas: 34777) -LibOpGmTest:testOpGmRun(uint256,uint256,uint16) (runs: 2050, μ: 21915, ~: 21816) -LibOpGmTest:testOpGmThreeInputs() (gas: 44010) -LibOpGmTest:testOpGmTwoOutputs() (gas: 39627) -LibOpGmTest:testOpGmZeroOutputs() (gas: 38618) -LibOpGreaterThanNPTest:testOpGreaterThanNPEval2InputsBothOne() (gas: 54034) -LibOpGreaterThanNPTest:testOpGreaterThanNPEval2InputsFirstOneSecondZero() (gas: 54705) -LibOpGreaterThanNPTest:testOpGreaterThanNPEval2InputsFirstZeroSecondOne() (gas: 54703) -LibOpGreaterThanNPTest:testOpGreaterThanNPEval2ZeroInputs() (gas: 54011) -LibOpGreaterThanNPTest:testOpGreaterThanNPEvalFail0Inputs() (gas: 29205) -LibOpGreaterThanNPTest:testOpGreaterThanNPEvalFail1Input() (gas: 33482) -LibOpGreaterThanNPTest:testOpGreaterThanNPEvalFail3Inputs() (gas: 41726) -LibOpGreaterThanNPTest:testOpGreaterThanNPIntegrityHappy((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint8,uint16) (runs: 2050, μ: 19177, ~: 19233) -LibOpGreaterThanNPTest:testOpGreaterThanNPRun(uint256,uint256) (runs: 2050, μ: 15175, ~: 15171) -LibOpGreaterThanNPTest:testOpGreaterThanNPTwoOutputs() (gas: 41027) -LibOpGreaterThanNPTest:testOpGreaterThanNPZeroOutputs() (gas: 40037) -LibOpGreaterThanOrEqualToNPTest:testOpGreaterThanOrEqualToNPEval2InputsBothOne() (gas: 55014) -LibOpGreaterThanOrEqualToNPTest:testOpGreaterThanOrEqualToNPEval2InputsFirstOneSecondZero() (gas: 55682) -LibOpGreaterThanOrEqualToNPTest:testOpGreaterThanOrEqualToNPEval2InputsFirstZeroSecondOne() (gas: 55703) -LibOpGreaterThanOrEqualToNPTest:testOpGreaterThanOrEqualToNPEval2ZeroInputs() (gas: 54994) -LibOpGreaterThanOrEqualToNPTest:testOpGreaterThanOrEqualToNPEvalFail0Inputs() (gas: 30188) -LibOpGreaterThanOrEqualToNPTest:testOpGreaterThanOrEqualToNPEvalFail1Input() (gas: 34461) -LibOpGreaterThanOrEqualToNPTest:testOpGreaterThanOrEqualToNPEvalFail3Inputs() (gas: 42748) -LibOpGreaterThanOrEqualToNPTest:testOpGreaterThanOrEqualToNPIntegrityHappy((uint256,uint256,uint256,uint256[],uint256,bytes),uint8) (runs: 2050, μ: 13826, ~: 13805) -LibOpGreaterThanOrEqualToNPTest:testOpGreaterThanOrEqualToNPRun(uint256,uint256) (runs: 2050, μ: 15182, ~: 15178) -LibOpGreaterThanOrEqualToNPTest:testOpGreaterThanOrEqualToNPTwoOutputs() (gas: 42070) -LibOpGreaterThanOrEqualToNPTest:testOpGreaterThanOrEqualToNPZeroOutputs() (gas: 40985) -LibOpHashNPTest:testOpHashNPEval0Inputs() (gas: 43371) -LibOpHashNPTest:testOpHashNPEval1Input() (gas: 50889) -LibOpHashNPTest:testOpHashNPEval2Inputs() (gas: 58914) -LibOpHashNPTest:testOpHashNPEval2InputsDifferent() (gas: 59426) -LibOpHashNPTest:testOpHashNPEval2InputsOtherStack() (gas: 75294) -LibOpHashNPTest:testOpHashNPIntegrityHappy((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint8,uint16) (runs: 2050, μ: 19231, ~: 19298) -LibOpHashNPTest:testOpHashNPRun(uint256[]) (runs: 2048, μ: 17514, ~: 17597) -LibOpHashNPTest:testOpHashNPTwoOutputs() (gas: 29556) -LibOpHashNPTest:testOpHashNPZeroOutputs() (gas: 28138) -LibOpHeadroomTest:testOpHeadroomEval() (gas: 235334) -LibOpHeadroomTest:testOpHeadroomEvalOperandDisallowed() (gas: 17818) -LibOpHeadroomTest:testOpHeadroomIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint256) (runs: 2050, μ: 13822, ~: 13794) -LibOpHeadroomTest:testOpHeadroomRun(uint256,uint16) (runs: 2050, μ: 18870, ~: 19080) -LibOpHeadroomTest:testOpHeadroomTwoInputs() (gas: 39426) -LibOpHeadroomTest:testOpHeadroomTwoOutputs() (gas: 35092) -LibOpHeadroomTest:testOpHeadroomZeroInputs() (gas: 29232) -LibOpHeadroomTest:testOpHeadroomZeroOutputs() (gas: 34075) -LibOpIfNPTest:testOpIfNPEval3InputsFirstOneSecondTwoThirdThree() (gas: 60109) -LibOpIfNPTest:testOpIfNPEval3InputsFirstOneSecondZeroThirdThree() (gas: 60065) -LibOpIfNPTest:testOpIfNPEval3InputsFirstTwoSecondThreeThirdFour() (gas: 60065) -LibOpIfNPTest:testOpIfNPEval3InputsFirstTwoSecondZeroThirdFour() (gas: 60085) -LibOpIfNPTest:testOpIfNPEval3InputsFirstZeroSecondOneThirdTwo() (gas: 60108) -LibOpIfNPTest:testOpIfNPEval3InputsFirstZeroSecondOneThirdZero() (gas: 59349) -LibOpIfNPTest:testOpIfNPEval3InputsFirstZeroSecondZeroThirdOne() (gas: 59261) -LibOpIfNPTest:testOpIfNPEval3InputsFirstZeroSecondZeroThirdThree() (gas: 59283) -LibOpIfNPTest:testOpIfNPEvalEmptyStringTruthy() (gas: 59061) -LibOpIfNPTest:testOpIfNPEvalFail0Inputs() (gas: 28364) -LibOpIfNPTest:testOpIfNPEvalFail1Input() (gas: 32692) -LibOpIfNPTest:testOpIfNPEvalFail2Inputs() (gas: 36832) -LibOpIfNPTest:testOpIfNPEvalFail4Inputs() (gas: 45058) -LibOpIfNPTest:testOpIfNPEvalTwoOutputs() (gas: 45281) -LibOpIfNPTest:testOpIfNPEvalZeroOutputs() (gas: 44227) -LibOpIfNPTest:testOpIfNPIntegrityHappy((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint8,uint16) (runs: 2050, μ: 19187, ~: 19276) -LibOpIfNPTest:testOpIfNPRun(uint256,uint256,uint256) (runs: 2050, μ: 15336, ~: 15336) -LibOpInvTest:testOpExpEvalOperandDisallowed() (gas: 17411) -LibOpInvTest:testOpInvEval() (gas: 159569) -LibOpInvTest:testOpInvIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint256) (runs: 2050, μ: 13845, ~: 13817) -LibOpInvTest:testOpInvRun(uint256,uint16) (runs: 2050, μ: 18905, ~: 19109) -LibOpInvTest:testOpInvTwoInputs() (gas: 39042) -LibOpInvTest:testOpInvTwoOutputs() (gas: 34665) -LibOpInvTest:testOpInvZeroInputs() (gas: 28828) -LibOpInvTest:testOpInvZeroOutputs() (gas: 33672) -LibOpIsZeroNPTest:testOpIsZeroNPEval1NonZeroInput() (gas: 48508) -LibOpIsZeroNPTest:testOpIsZeroNPEval1ZeroInput() (gas: 48208) -LibOpIsZeroNPTest:testOpIsZeroNPEvalFail0Inputs() (gas: 28777) -LibOpIsZeroNPTest:testOpIsZeroNPEvalFail2Inputs() (gas: 37181) -LibOpIsZeroNPTest:testOpIsZeroNPIntegrityHappy((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint8,uint16) (runs: 2050, μ: 19299, ~: 19387) -LibOpIsZeroNPTest:testOpIsZeroNPRun(uint256) (runs: 2050, μ: 14947, ~: 14948) -LibOpIsZeroNPTest:testOpIsZeroNPTwoOutputs() (gas: 35253) -LibOpIsZeroNPTest:testOpIsZeroNPZeroOutputs() (gas: 33913) -LibOpLessThanNPTest:testOpLessThanNPEval2InputsBothOne() (gas: 53771) -LibOpLessThanNPTest:testOpLessThanNPEval2InputsFirstOneSecondZero() (gas: 54460) -LibOpLessThanNPTest:testOpLessThanNPEval2InputsFirstZeroSecondOne() (gas: 54460) -LibOpLessThanNPTest:testOpLessThanNPEval2ZeroInputs() (gas: 53791) -LibOpLessThanNPTest:testOpLessThanNPIntegrityHappy((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint8,uint16) (runs: 2050, μ: 19218, ~: 19277) -LibOpLessThanNPTest:testOpLessThanNPRun(uint256,uint256) (runs: 2050, μ: 15160, ~: 15165) -LibOpLessThanNPTest:testOpLessThanNPTwoOutputs() (gas: 41062) -LibOpLessThanNPTest:testOpLessThanNPZeroOutputs() (gas: 39134) -LibOpLessThanNPTest:testOpLessThanToNPEvalFail0Inputs() (gas: 28985) -LibOpLessThanNPTest:testOpLessThanToNPEvalFail1Input() (gas: 33207) -LibOpLessThanNPTest:testOpLessThanToNPEvalFail3Inputs() (gas: 41535) -LibOpLessThanOrEqualToNPTest:testOpLessThanOrEqualToNPEval2InputsBothOne() (gas: 54723) -LibOpLessThanOrEqualToNPTest:testOpLessThanOrEqualToNPEval2InputsFirstOneSecondZero() (gas: 55435) -LibOpLessThanOrEqualToNPTest:testOpLessThanOrEqualToNPEval2InputsFirstZeroSecondOne() (gas: 55437) -LibOpLessThanOrEqualToNPTest:testOpLessThanOrEqualToNPEval2ZeroInputs() (gas: 54767) -LibOpLessThanOrEqualToNPTest:testOpLessThanOrEqualToNPEvalFail0Inputs() (gas: 29934) -LibOpLessThanOrEqualToNPTest:testOpLessThanOrEqualToNPEvalFail1Input() (gas: 34231) -LibOpLessThanOrEqualToNPTest:testOpLessThanOrEqualToNPEvalFail3Inputs() (gas: 42516) -LibOpLessThanOrEqualToNPTest:testOpLessThanOrEqualToNPIntegrityHappy((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint8,uint16) (runs: 2050, μ: 19226, ~: 19284) -LibOpLessThanOrEqualToNPTest:testOpLessThanOrEqualToNPRun(uint256,uint256) (runs: 2050, μ: 15189, ~: 15194) -LibOpLessThanOrEqualToNPTest:testOpLessThanOrEqualToNPTwoOutputs() (gas: 41798) -LibOpLessThanOrEqualToNPTest:testOpLessThanOrEqualToNPZeroOutputs() (gas: 40722) -LibOpLinearGrowthTest:testOpLinearGrowthEval() (gas: 615496) -LibOpLinearGrowthTest:testOpLinearGrowthEvalFourInputs() (gas: 50728) -LibOpLinearGrowthTest:testOpLinearGrowthEvalOneInput() (gas: 34837) -LibOpLinearGrowthTest:testOpLinearGrowthEvalOperandDisallowed() (gas: 18199) -LibOpLinearGrowthTest:testOpLinearGrowthEvalTwoInputs() (gas: 40489) -LibOpLinearGrowthTest:testOpLinearGrowthEvalTwoOutputs() (gas: 46235) -LibOpLinearGrowthTest:testOpLinearGrowthEvalZeroInputs() (gas: 29277) -LibOpLinearGrowthTest:testOpLinearGrowthEvalZeroOutputs() (gas: 45178) -LibOpLinearGrowthTest:testOpLinearGrowthIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint256) (runs: 2050, μ: 13824, ~: 13796) -LibOpLinearGrowthTest:testOpLinearGrowthRun(uint256,uint256,uint256,uint16) (runs: 2050, μ: 21898, ~: 21804) -LibOpLnTest:testOpLnEval() (gas: 220062) -LibOpLnTest:testOpLnEvalOperandDisallowed() (gas: 17331) -LibOpLnTest:testOpLnIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint256) (runs: 2050, μ: 13845, ~: 13817) -LibOpLnTest:testOpLnRun(uint256,uint16) (runs: 2050, μ: 31843, ~: 31861) -LibOpLnTest:testOpLnTwoInputs() (gas: 38940) -LibOpLnTest:testOpLnTwoOutputs() (gas: 34628) -LibOpLnTest:testOpLnZeroInputs() (gas: 28726) -LibOpLnTest:testOpLnZeroOutputs() (gas: 33570) -LibOpLog10Test:testOpLog10Eval() (gas: 267448) -LibOpLog10Test:testOpLog10EvalOperandDisallowed() (gas: 17574) -LibOpLog10Test:testOpLog10Integrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint256) (runs: 2050, μ: 13867, ~: 13839) -LibOpLog10Test:testOpLog10Run(uint256,uint16) (runs: 2050, μ: 35404, ~: 35436) -LibOpLog10Test:testOpLog10TwoInputs() (gas: 39226) -LibOpLog10Test:testOpLog10TwoOutputs() (gas: 34828) -LibOpLog10Test:testOpLog10ZeroInputs() (gas: 28967) -LibOpLog10Test:testOpLog10ZeroOutputs() (gas: 33812) -LibOpLog2Test:testOpLog2Eval() (gas: 257321) -LibOpLog2Test:testOpLog2EvalOperandDisallowed() (gas: 17493) -LibOpLog2Test:testOpLog2Integrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint256) (runs: 2050, μ: 13822, ~: 13794) -LibOpLog2Test:testOpLog2Run(uint256) (runs: 2050, μ: 31563, ~: 31594) -LibOpLog2Test:testOpLog2TwoInputs() (gas: 39114) -LibOpLog2Test:testOpLog2TwoOutputs() (gas: 34780) -LibOpLog2Test:testOpLog2ZeroInputs() (gas: 28899) -LibOpLog2Test:testOpLog2ZeroOutputs() (gas: 33762) -LibOpMaxTest:testOpMaxEval2InputsHappy() (gas: 522795) -LibOpMaxTest:testOpMaxEval3InputsHappy() (gas: 1774671) -LibOpMaxTest:testOpMaxEvalOneInput() (gas: 122576) -LibOpMaxTest:testOpMaxEvalOperandDisallowed() (gas: 58508) -LibOpMaxTest:testOpMaxEvalTwoOutputs() (gas: 39787) -LibOpMaxTest:testOpMaxEvalZeroInputs() (gas: 28863) -LibOpMaxTest:testOpMaxIntegrityHappy((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint16) (runs: 2050, μ: 17839, ~: 17850) -LibOpMaxTest:testOpMaxIntegrityUnhappyOneInput((uint256,uint256,uint256,uint256[],uint256,bytes)) (runs: 2050, μ: 13763, ~: 13613) -LibOpMaxTest:testOpMaxIntegrityUnhappyZeroInputs((uint256,uint256,uint256,uint256[],uint256,bytes)) (runs: 2050, μ: 13760, ~: 13610) -LibOpMaxTest:testOpMaxRun(uint256[]) (runs: 2048, μ: 19040, ~: 19160) -LibOpMaxUint256NPTest:testOpMaxUint256NPEval(uint256) (runs: 2050, μ: 42981, ~: 42981) -LibOpMaxUint256NPTest:testOpMaxUint256NPEvalFail() (gas: 33225) -LibOpMaxUint256NPTest:testOpMaxUint256NPIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint8,uint16) (runs: 2050, μ: 19200, ~: 19262) -LibOpMaxUint256NPTest:testOpMaxUint256NPRun() (gas: 14623) -LibOpMaxUint256NPTest:testOpMaxUint256NPTwoOutputs() (gas: 29953) -LibOpMaxUint256NPTest:testOpMaxUint256NPZeroOutputs() (gas: 28850) -LibOpMinTest:testOpMinEval2InputsHappy() (gas: 522795) -LibOpMinTest:testOpMinEval3InputsHappy() (gas: 3121521) -LibOpMinTest:testOpMinEvalOneInput() (gas: 122512) -LibOpMinTest:testOpMinEvalOperandDisallowed() (gas: 58487) -LibOpMinTest:testOpMinEvalZeroInputs() (gas: 28868) -LibOpMinTest:testOpMinIntegrityHappy((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint16) (runs: 2050, μ: 17851, ~: 17859) -LibOpMinTest:testOpMinIntegrityUnhappyOneInput((uint256,uint256,uint256,uint256[],uint256,bytes)) (runs: 2050, μ: 13760, ~: 13610) -LibOpMinTest:testOpMinIntegrityUnhappyZeroInputs((uint256,uint256,uint256,uint256[],uint256,bytes)) (runs: 2050, μ: 13782, ~: 13632) -LibOpMinTest:testOpMinRun(uint256[],uint16) (runs: 2048, μ: 19040, ~: 18929) -LibOpModTest:testOpModEval2InputsHappy() (gas: 745935) -LibOpModTest:testOpModEval2InputsUnhappy() (gas: 134072) -LibOpModTest:testOpModEval3InputsHappy() (gas: 1450323) -LibOpModTest:testOpModEval3InputsUnhappy() (gas: 443067) -LibOpModTest:testOpModEvalOneInput() (gas: 122576) -LibOpModTest:testOpModEvalOperandDisallowed() (gas: 58532) -LibOpModTest:testOpModEvalTwoOutputs() (gas: 39785) -LibOpModTest:testOpModEvalZeroInputs() (gas: 28861) -LibOpModTest:testOpModEvalZeroOutputs() (gas: 38753) -LibOpModTest:testOpModIntegrityHappy((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint16) (runs: 2050, μ: 17808, ~: 17819) -LibOpModTest:testOpModIntegrityUnhappyOneInput((uint256,uint256,uint256,uint256[],uint256,bytes)) (runs: 2050, μ: 13762, ~: 13612) -LibOpModTest:testOpModIntegrityUnhappyZeroInputs((uint256,uint256,uint256,uint256[],uint256,bytes)) (runs: 2050, μ: 13739, ~: 13589) -LibOpModTest:testOpModRun(uint256[]) (runs: 2048, μ: 19412, ~: 19816) -LibOpMulTest:testOpDecimal18MulNPIntegrityUnhappyOneInput((uint256,uint256,uint256,uint256[],uint256,bytes)) (runs: 2050, μ: 13784, ~: 13634) -LibOpMulTest:testOpMulEvalOneInput() (gas: 121506) -LibOpMulTest:testOpMulEvalOperandsDisallowed() (gas: 91210) -LibOpMulTest:testOpMulEvalThreeInputsHappy() (gas: 696070) -LibOpMulTest:testOpMulEvalThreeInputsUnhappyOverflow() (gas: 157504) -LibOpMulTest:testOpMulEvalTwoInputsHappy() (gas: 486223) -LibOpMulTest:testOpMulEvalTwoInputsUnhappyOverflow() (gas: 94909) -LibOpMulTest:testOpMulEvalZeroInputs() (gas: 28884) -LibOpMulTest:testOpMulIntegrityHappy((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint16) (runs: 2050, μ: 17792, ~: 17802) -LibOpMulTest:testOpMulIntegrityUnhappyZeroInputs((uint256,uint256,uint256,uint256[],uint256,bytes)) (runs: 2050, μ: 13782, ~: 13632) -LibOpMulTest:testOpMulRun(uint256[]) (runs: 2048, μ: 19042, ~: 16680) -LibOpMulTest:testOpMulTwoOutputs() (gas: 39786) -LibOpMulTest:testOpMulZeroOutputs() (gas: 38754) -LibOpPowTest:testOpPowEval() (gas: 401203) -LibOpPowTest:testOpPowEvalOneInput() (gas: 34168) -LibOpPowTest:testOpPowEvalOperandDisallowed() (gas: 17552) -LibOpPowTest:testOpPowIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint256) (runs: 2050, μ: 13844, ~: 13816) -LibOpPowTest:testOpPowRun(uint256,uint256) (runs: 2050, μ: 33692, ~: 35466) -LibOpPowTest:testOpPowThreeInputs() (gas: 44219) -LibOpPowTest:testOpPowTwoOutputs() (gas: 39861) -LibOpPowTest:testOpPowZeroOutputs() (gas: 38825) -LibOpScale18DynamicTest:testOpScale18DynamicEval() (gas: 1575800) -LibOpScale18DynamicTest:testOpScale18DynamicEvalOneInput() (gas: 126569) -LibOpScale18DynamicTest:testOpScale18DynamicEvalThreeInputs() (gas: 338386) -LibOpScale18DynamicTest:testOpScale18DynamicEvalZeroInputs() (gas: 30119) -LibOpScale18DynamicTest:testOpScale18DynamicIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint16) (runs: 2050, μ: 17770, ~: 17776) -LibOpScale18DynamicTest:testOpScale18DynamicRun(uint256,uint256,uint256,uint256) (runs: 2050, μ: 22787, ~: 22684) -LibOpScale18DynamicTest:testOpScale18DynamicTwoOutputs() (gas: 41012) -LibOpScale18DynamicTest:testOpScale18DynamicZeroOutputs() (gas: 39998) -LibOpScale18Test:testOpScale18Eval() (gas: 1483763) -LibOpScale18Test:testOpScale18EvalOneInput() (gas: 160996) -LibOpScale18Test:testOpScale18EvalZeroInputs() (gas: 33263) -LibOpScale18Test:testOpScale18Integrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint16) (runs: 2050, μ: 17717, ~: 17693) -LibOpScale18Test:testOpScale18Run(uint256,uint256,uint256,uint256) (runs: 2050, μ: 22466, ~: 22561) -LibOpScale18Test:testOpScale18TwoOutputs() (gas: 39103) -LibOpScale18Test:testOpScale18ZeroOutputs() (gas: 38085) -LibOpScale18Test:testOpUint256ToDecimal18Eval() (gas: 169107) -LibOpScaleNDynamicTest:testOpScaleNDynamicEval() (gas: 1573580) -LibOpScaleNDynamicTest:testOpScaleNDynamicEvalOneInput() (gas: 126190) -LibOpScaleNDynamicTest:testOpScaleNDynamicEvalThreeInputs() (gas: 337651) -LibOpScaleNDynamicTest:testOpScaleNDynamicEvalZeroInputs() (gas: 30027) -LibOpScaleNDynamicTest:testOpScaleNDynamicIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint16) (runs: 2050, μ: 17792, ~: 17782) -LibOpScaleNDynamicTest:testOpScaleNDynamicRun(uint256,uint256,uint256,uint256) (runs: 2050, μ: 20889, ~: 22336) -LibOpScaleNDynamicTest:testOpScaleNDynamicTwoOutputs() (gas: 40962) -LibOpScaleNDynamicTest:testOpScaleNDynamicZeroOutputs() (gas: 39907) -LibOpScaleNTest:testOpDecimal18ToIntNPEval() (gas: 281994) -LibOpScaleNTest:testOpScaleNEval() (gas: 1460469) -LibOpScaleNTest:testOpScaleNEvalOneInput() (gas: 157966) -LibOpScaleNTest:testOpScaleNEvalZeroInputs() (gas: 32492) -LibOpScaleNTest:testOpScaleNEvalZeroOutputs() (gas: 37356) -LibOpScaleNTest:testOpScaleNIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint16) (runs: 2050, μ: 17736, ~: 17709) -LibOpScaleNTest:testOpScaleNRun(uint256,uint256,uint256,uint256) (runs: 2050, μ: 20682, ~: 22456) -LibOpScaleNTest:testOpScaleNTwoOutputs() (gas: 38371) -LibOpSetNPTest:testLibOpSetNP(uint256,uint256) (runs: 2050, μ: 16038, ~: 16043) -LibOpSetNPTest:testLibOpSetNPEvalOneInput() (gas: 32852) -LibOpSetNPTest:testLibOpSetNPEvalOneOutput() (gas: 38358) -LibOpSetNPTest:testLibOpSetNPEvalOperandsDisallowed() (gas: 55669) -LibOpSetNPTest:testLibOpSetNPEvalSetTwice() (gas: 74198) -LibOpSetNPTest:testLibOpSetNPEvalThreeInputs() (gas: 43181) -LibOpSetNPTest:testLibOpSetNPEvalTwoInputs() (gas: 242520) -LibOpSetNPTest:testLibOpSetNPEvalTwoOutputs() (gas: 39010) -LibOpSetNPTest:testLibOpSetNPEvalZeroInputs() (gas: 28107) -LibOpSetNPTest:testLibOpSetNPIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint8,uint16) (runs: 2050, μ: 19747, ~: 19814) -LibOpShiftBitsLeftNPTest:testOpShiftBitsLeftNPEval() (gas: 837361) -LibOpShiftBitsLeftNPTest:testOpShiftBitsLeftNPIntegrityFailBadShiftAmount() (gas: 124681) -LibOpShiftBitsLeftNPTest:testOpShiftBitsLeftNPIntegrityFailTwoInputs() (gas: 43436) -LibOpShiftBitsLeftNPTest:testOpShiftBitsLeftNPIntegrityFailTwoOutputs() (gas: 39092) -LibOpShiftBitsLeftNPTest:testOpShiftBitsLeftNPIntegrityFailZeroInputs() (gas: 33265) -LibOpShiftBitsLeftNPTest:testOpShiftBitsLeftNPIntegrityFailZeroOutputs() (gas: 38074) -LibOpShiftBitsLeftNPTest:testOpShiftBitsLeftNPIntegrityHappy((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint8,uint8) (runs: 2050, μ: 19661, ~: 19636) -LibOpShiftBitsLeftNPTest:testOpShiftBitsLeftNPIntegrityNoop((uint256,uint256,uint256,uint256[],uint256,bytes),uint8) (runs: 2050, μ: 13844, ~: 13823) -LibOpShiftBitsLeftNPTest:testOpShiftBitsLeftNPIntegrityZero((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint16) (runs: 2050, μ: 18762, ~: 18768) -LibOpShiftBitsLeftNPTest:testOpShiftBitsLeftNPRun(uint256,uint8) (runs: 2050, μ: 15354, ~: 15354) -LibOpShiftBitsRightNPTest:testOpShiftBitsRightNPEval() (gas: 1006227) -LibOpShiftBitsRightNPTest:testOpShiftBitsRightNPIntegrityFailBadShiftAmount() (gas: 125033) -LibOpShiftBitsRightNPTest:testOpShiftBitsRightNPIntegrityHappy((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint8,uint8) (runs: 2050, μ: 19665, ~: 19587) -LibOpShiftBitsRightNPTest:testOpShiftBitsRightNPIntegrityNoop((uint256,uint256,uint256,uint256[],uint256,bytes),uint8) (runs: 2050, μ: 13812, ~: 13791) -LibOpShiftBitsRightNPTest:testOpShiftBitsRightNPIntegrityZero((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint16) (runs: 2050, μ: 17437, ~: 17422) -LibOpShiftBitsRightNPTest:testOpShiftBitsRightNPRun(uint256,uint8) (runs: 2050, μ: 15401, ~: 15401) -LibOpShiftBitsRightNPTest:testOpShiftBitsRightNPTwoInputs() (gas: 43515) -LibOpShiftBitsRightNPTest:testOpShiftBitsRightNPTwoOutputs() (gas: 39195) -LibOpShiftBitsRightNPTest:testOpShiftBitsRightNPZeroInputs() (gas: 33302) -LibOpShiftBitsRightNPTest:testOpShiftBitsRightNPZeroOutputs() (gas: 38158) -LibOpSnapToUnitTest:testOpSnapToUnitEval() (gas: 586229) -LibOpSnapToUnitTest:testOpSnapToUnitEvalBad() (gas: 99440) -LibOpSnapToUnitTest:testOpSnapToUnitEvalOperandDisallowed() (gas: 18120) -LibOpSnapToUnitTest:testOpSnapToUnitEvalTwoOutputs() (gas: 40437) -LibOpSnapToUnitTest:testOpSnapToUnitEvalZeroOutputs() (gas: 39426) -LibOpSnapToUnitTest:testOpSnapToUnitIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint256) (runs: 2050, μ: 13843, ~: 13815) -LibOpSnapToUnitTest:testOpSnapToUnitRun(uint256,uint256) (runs: 2050, μ: 19135, ~: 18821) -LibOpSqrtTest:testOpSqrtEval() (gas: 200267) -LibOpSqrtTest:testOpSqrtEvalBad() (gas: 63083) -LibOpSqrtTest:testOpSqrtEvalOperandDisallowed() (gas: 17471) -LibOpSqrtTest:testOpSqrtEvalTwoOutputs() (gas: 34746) -LibOpSqrtTest:testOpSqrtEvalZeroOutputs() (gas: 33729) -LibOpSqrtTest:testOpSqrtIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint256) (runs: 2050, μ: 13845, ~: 13817) -LibOpSqrtTest:testOpSqrtRun(uint256) (runs: 2050, μ: 20237, ~: 20533) -LibOpStackNPTest:testOpStackEval() (gas: 53749) -LibOpStackNPTest:testOpStackEvalSeveral() (gas: 86318) -LibOpStackNPTest:testOpStackNPIntegrity(bytes,uint256,uint256[],uint256) (runs: 2050, μ: 18431, ~: 18298) -LibOpStackNPTest:testOpStackNPIntegrityOOBStack(bytes,uint16,uint256[],uint16,uint256) (runs: 2050, μ: 18683, ~: 18663) -LibOpStackNPTest:testOpStackNPMultipleOutputErrorSugared() (gas: 38822) -LibOpStackNPTest:testOpStackNPMultipleOutputErrorUnsugared() (gas: 41751) -LibOpStackNPTest:testOpStackNPRun(uint256[][],uint256) (runs: 2050, μ: 2040033, ~: 1871142) -LibOpStackNPTest:testOpStackNPZeroOutputErrorSugared() (gas: 37434) -LibOpStackNPTest:testOpStackNPZeroOutputErrorUnsugared() (gas: 40329) -LibOpSubTest:testOpSubEval2InputsSaturatingUnderflow() (gas: 285405) -LibOpSubTest:testOpSubEval2InputsUnhappyUnderflow() (gas: 137715) -LibOpSubTest:testOpSubEval3InputsSaturatingUnderflow() (gas: 736066) -LibOpSubTest:testOpSubEval3InputsUnhappyUnderflow() (gas: 355017) -LibOpSubTest:testOpSubEvalOneInput() (gas: 122467) -LibOpSubTest:testOpSubEvalOneInputSaturating() (gas: 259869) -LibOpSubTest:testOpSubEvalThreeInputs() (gas: 209700) -LibOpSubTest:testOpSubEvalThreeInputsSaturating() (gas: 421830) -LibOpSubTest:testOpSubEvalTwoInputs() (gas: 311512) -LibOpSubTest:testOpSubEvalTwoInputsSaturating() (gas: 637471) -LibOpSubTest:testOpSubEvalZeroInputs() (gas: 28836) -LibOpSubTest:testOpSubEvalZeroInputsSaturating() (gas: 56710) -LibOpSubTest:testOpSubIntegrityHappy((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint16) (runs: 2050, μ: 17852, ~: 17854) -LibOpSubTest:testOpSubIntegrityUnhappyOneInput((uint256,uint256,uint256,uint256[],uint256,bytes)) (runs: 2050, μ: 13784, ~: 13634) -LibOpSubTest:testOpSubIntegrityUnhappyZeroInputs((uint256,uint256,uint256,uint256[],uint256,bytes)) (runs: 2050, μ: 13783, ~: 13633) -LibOpSubTest:testOpSubRun(uint256[]) (runs: 2048, μ: 14241, ~: 13765) -LibOpTimestampNPTest:testOpBlockTimestampNPEvalFail() (gas: 62915) -LibOpTimestampNPTest:testOpBlockTimestampNPTwoOutputs() (gas: 55947) -LibOpTimestampNPTest:testOpBlockTimestampNPZeroOutputs() (gas: 53850) -LibOpTimestampNPTest:testOpTimestampNPEval(uint256) (runs: 2050, μ: 79806, ~: 79677) -LibOpTimestampNPTest:testOpTimestampNPIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint8,uint16) (runs: 2050, μ: 19175, ~: 19240) -LibOpTimestampNPTest:testOpTimestampNPRun(uint256) (runs: 2050, μ: 18722, ~: 18593) -LibOpUint256DivTest:testOpUint256DivEval2InputsHappy() (gas: 757043) -LibOpUint256DivTest:testOpUint256DivEval2InputsUnhappy() (gas: 136015) -LibOpUint256DivTest:testOpUint256DivEval3InputsHappy() (gas: 1418516) -LibOpUint256DivTest:testOpUint256DivEval3InputsUnhappy() (gas: 448854) -LibOpUint256DivTest:testOpUint256DivEvalOneInput() (gas: 125660) -LibOpUint256DivTest:testOpUint256DivEvalOperandDisallowed() (gas: 61124) -LibOpUint256DivTest:testOpUint256DivEvalTwoOutputs() (gas: 40413) -LibOpUint256DivTest:testOpUint256DivEvalZeroInputs() (gas: 29511) -LibOpUint256DivTest:testOpUint256DivEvalZeroOutputs() (gas: 39402) -LibOpUint256DivTest:testOpUint256DivIntegrityHappy((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint16) (runs: 2050, μ: 17809, ~: 17814) -LibOpUint256DivTest:testOpUint256DivIntegrityUnhappyOneInput((uint256,uint256,uint256,uint256[],uint256,bytes)) (runs: 2050, μ: 13804, ~: 13654) -LibOpUint256DivTest:testOpUint256DivIntegrityUnhappyZeroInputs((uint256,uint256,uint256,uint256[],uint256,bytes)) (runs: 2050, μ: 13759, ~: 13609) -LibOpUint256DivTest:testOpUint256DivRun(uint256[]) (runs: 2048, μ: 19371, ~: 19774) -LibOpUint256ERC20AllowanceTest:testOpERC20AllowanceNPEvalFourInputs() (gas: 54766) -LibOpUint256ERC20AllowanceTest:testOpERC20AllowanceNPEvalHappy(uint256) (runs: 2050, μ: 66305, ~: 66305) -LibOpUint256ERC20AllowanceTest:testOpERC20AllowanceNPEvalOneInput() (gas: 36432) -LibOpUint256ERC20AllowanceTest:testOpERC20AllowanceNPEvalOperandDisallowed() (gas: 19012) -LibOpUint256ERC20AllowanceTest:testOpERC20AllowanceNPEvalTwoInputs() (gas: 42645) -LibOpUint256ERC20AllowanceTest:testOpERC20AllowanceNPEvalTwoOutputs() (gas: 49629) -LibOpUint256ERC20AllowanceTest:testOpERC20AllowanceNPEvalZeroInputs() (gas: 30471) -LibOpUint256ERC20AllowanceTest:testOpERC20AllowanceNPEvalZeroOutputs() (gas: 48573) -LibOpUint256ERC20AllowanceTest:testOpERC20AllowanceNPIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint256) (runs: 2050, μ: 13825, ~: 13797) -LibOpUint256ERC20AllowanceTest:testOpERC20AllowanceNPRun(address,address,address,uint256) (runs: 2050, μ: 22213, ~: 22213) -LibOpUint256ERC20BalanceOfTest:testOpERC20BalanceOfNPEvalHappy(uint256) (runs: 2050, μ: 59662, ~: 59662) -LibOpUint256ERC20BalanceOfTest:testOpERC20BalanceOfNPEvalOneInput() (gas: 36492) -LibOpUint256ERC20BalanceOfTest:testOpERC20BalanceOfNPEvalOperandDisallowed() (gas: 19093) -LibOpUint256ERC20BalanceOfTest:testOpERC20BalanceOfNPEvalThreeInputs() (gas: 48512) -LibOpUint256ERC20BalanceOfTest:testOpERC20BalanceOfNPEvalTwoOutputs() (gas: 43405) -LibOpUint256ERC20BalanceOfTest:testOpERC20BalanceOfNPEvalZeroInputs() (gas: 30529) -LibOpUint256ERC20BalanceOfTest:testOpERC20BalanceOfNPEvalZeroOutputs() (gas: 42392) -LibOpUint256ERC20BalanceOfTest:testOpERC20BalanceOfNPIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint256) (runs: 2050, μ: 13867, ~: 13839) -LibOpUint256ERC20BalanceOfTest:testOpERC20BalanceOfNPRun(address,address,uint256,uint16) (runs: 2049, μ: 21814, ~: 21814) -LibOpUint256ERC20TotalSupplyTest:testOpERC20TotalSupplyNPEvalHappy(uint256) (runs: 2050, μ: 53126, ~: 53126) -LibOpUint256ERC20TotalSupplyTest:testOpERC20TotalSupplyNPEvalOperandDisallowed() (gas: 19299) -LibOpUint256ERC20TotalSupplyTest:testOpERC20TotalSupplyNPEvalTwoInputs() (gas: 42910) -LibOpUint256ERC20TotalSupplyTest:testOpERC20TotalSupplyNPEvalTwoOutputs() (gas: 37335) -LibOpUint256ERC20TotalSupplyTest:testOpERC20TotalSupplyNPEvalZeroInputs() (gas: 30692) -LibOpUint256ERC20TotalSupplyTest:testOpERC20TotalSupplyNPEvalZeroOutputs() (gas: 36277) -LibOpUint256ERC20TotalSupplyTest:testOpERC20TotalSupplyNPIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint256) (runs: 2050, μ: 13847, ~: 13819) -LibOpUint256ERC20TotalSupplyTest:testOpERC20TotalSupplyNPRun(address,uint256,uint16) (runs: 2050, μ: 21277, ~: 21277) -LibOpUint256ERC721BalanceOfTest:testOpERC721BalanceOfEvalHappy(address,address,uint256) (runs: 2049, μ: 99786, ~: 99947) -LibOpUint256ERC721BalanceOfTest:testOpERC721BalanceOfIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint8,uint16) (runs: 2050, μ: 19193, ~: 19251) -LibOpUint256ERC721BalanceOfTest:testOpERC721BalanceOfIntegrityFail0() (gas: 30258) -LibOpUint256ERC721BalanceOfTest:testOpERC721BalanceOfIntegrityFail1() (gas: 34533) -LibOpUint256ERC721BalanceOfTest:testOpERC721BalanceOfIntegrityFail3() (gas: 43768) -LibOpUint256ERC721BalanceOfTest:testOpERC721BalanceOfIntegrityFailOperand() (gas: 21960) -LibOpUint256ERC721BalanceOfTest:testOpERC721BalanceOfOneInput() (gas: 34884) -LibOpUint256ERC721BalanceOfTest:testOpERC721BalanceOfRun(address,address,uint256,uint16) (runs: 2049, μ: 21901, ~: 21901) -LibOpUint256ERC721BalanceOfTest:testOpERC721BalanceOfThreeInputs() (gas: 44109) -LibOpUint256ERC721BalanceOfTest:testOpERC721BalanceOfTwoOutputs() (gas: 40146) -LibOpUint256ERC721BalanceOfTest:testOpERC721BalanceOfZeroInputs() (gas: 30576) -LibOpUint256ERC721BalanceOfTest:testOpERC721BalanceOfZeroOutputs() (gas: 39135) -LibOpUint256MulTest:testOpUint256MulEvalOneInput() (gas: 125212) -LibOpUint256MulTest:testOpUint256MulEvalOperandsDisallowed() (gas: 95099) -LibOpUint256MulTest:testOpUint256MulEvalThreeInputsHappy() (gas: 1005000) -LibOpUint256MulTest:testOpUint256MulEvalThreeInputsUnhappy() (gas: 621580) -LibOpUint256MulTest:testOpUint256MulEvalTwoInputsHappy() (gas: 404569) -LibOpUint256MulTest:testOpUint256MulEvalTwoInputsUnhappy() (gas: 135048) -LibOpUint256MulTest:testOpUint256MulEvalTwoOutputs() (gas: 40401) -LibOpUint256MulTest:testOpUint256MulEvalZeroInputs() (gas: 29520) -LibOpUint256MulTest:testOpUint256MulEvalZeroOutputs() (gas: 39414) -LibOpUint256MulTest:testOpUint256MulIntegrityHappy((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint16) (runs: 2050, μ: 17866, ~: 17864) -LibOpUint256MulTest:testOpUint256MulIntegrityUnhappyOneInput((uint256,uint256,uint256,uint256[],uint256,bytes)) (runs: 2050, μ: 13760, ~: 13610) -LibOpUint256MulTest:testOpUint256MulIntegrityUnhappyZeroInputs((uint256,uint256,uint256,uint256[],uint256,bytes)) (runs: 2050, μ: 13783, ~: 13633) -LibOpUint256MulTest:testOpUint256MulRun(uint256[]) (runs: 2048, μ: 14887, ~: 14469) -LibOpUint256PowTest:testOpUint256ExpIntegrityHappy((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint16) (runs: 2050, μ: 17796, ~: 17745) -LibOpUint256PowTest:testOpUint256PowEval2InputsHappy() (gas: 848704) -LibOpUint256PowTest:testOpUint256PowEval2InputsUnhappy() (gas: 136998) -LibOpUint256PowTest:testOpUint256PowEval3InputsHappy() (gas: 1977622) -LibOpUint256PowTest:testOpUint256PowEval3InputsUnhappy() (gas: 608268) -LibOpUint256PowTest:testOpUint256PowEvalOneInput() (gas: 125860) -LibOpUint256PowTest:testOpUint256PowEvalOperandDisallowed() (gas: 61726) -LibOpUint256PowTest:testOpUint256PowEvalTwoOutputs() (gas: 40608) -LibOpUint256PowTest:testOpUint256PowEvalZeroInputs() (gas: 29725) -LibOpUint256PowTest:testOpUint256PowEvalZeroOutputs() (gas: 39532) -LibOpUint256PowTest:testOpUint256PowIntegrityUnhappyOneInput((uint256,uint256,uint256,uint256[],uint256,bytes)) (runs: 2050, μ: 13762, ~: 13612) -LibOpUint256PowTest:testOpUint256PowIntegrityUnhappyZeroInputs((uint256,uint256,uint256,uint256[],uint256,bytes)) (runs: 2050, μ: 13739, ~: 13589) -LibOpUint256PowTest:testOpUint256PowRun(uint256[]) (runs: 2048, μ: 16355, ~: 15723) -LibParseCommentsTest:testParseCommentAfterSources() (gas: 68194) -LibParseCommentsTest:testParseCommentBetweenSources() (gas: 68271) -LibParseCommentsTest:testParseCommentInIgnoredLHS() (gas: 41415) -LibParseCommentsTest:testParseCommentInLHSWhitespace() (gas: 41692) -LibParseCommentsTest:testParseCommentInNamedLHS() (gas: 41563) -LibParseCommentsTest:testParseCommentInRHS() (gas: 41860) -LibParseCommentsTest:testParseCommentInRHS2() (gas: 44678) -LibParseCommentsTest:testParseCommentInRHS3() (gas: 44688) -LibParseCommentsTest:testParseCommentLong() (gas: 61773) -LibParseCommentsTest:testParseCommentManyAstericks() (gas: 54962) -LibParseCommentsTest:testParseCommentManyAstericksTrailing() (gas: 54898) -LibParseCommentsTest:testParseCommentMultiple() (gas: 72897) -LibParseCommentsTest:testParseCommentNoTrailingWhitespace() (gas: 42267) -LibParseCommentsTest:testParseCommentNoWords() (gas: 51433) -LibParseCommentsTest:testParseCommentSingleWord() (gas: 55418) -LibParseCommentsTest:testParseCommentSingleWordSameLine() (gas: 56246) -LibParseCommentsTest:testParseCommentUnclosed() (gas: 41939) -LibParseCommentsTest:testParseCommentUnclosed2() (gas: 42115) -LibParseEmptyGasTest:testParseGasEmpty00() (gas: 37570) -LibParseEmptyGasTest:testParseGasEmpty01() (gas: 42253) -LibParseEmptyGasTest:testParseGasEmpty02() (gas: 46331) -LibParseEmptyGasTest:testParseGasEmpty03() (gas: 50386) -LibParseEmptyGasTest:testParseGasEmpty04() (gas: 54441) -LibParseEmptyTest:testParseEmpty00() (gas: 41746) -LibParseEmptyTest:testParseEmpty01() (gas: 49720) -LibParseEmptyTest:testParseEmpty02() (gas: 57361) -LibParseEmptyTest:testParseEmpty03() (gas: 64801) -LibParseEmptyTest:testParseEmpty04() (gas: 72262) -LibParseEmptyTest:testParseEmpty08() (gas: 102163) -LibParseEmptyTest:testParseEmpty15() (gas: 154427) -LibParseEmptyTest:testParseEmptyError16() (gas: 85274) -LibParseIgnoredLHSTest:testParseIgnoredLHSAlphaTooLong() (gas: 51784) -LibParseIgnoredLHSTest:testParseIgnoredLHSLoneUnderscore() (gas: 50404) -LibParseIgnoredLHSTest:testParseIgnoredLHSMultipleLines() (gas: 53632) -LibParseIgnoredLHSTest:testParseIgnoredLHSTwoAlphas() (gas: 51501) -LibParseIgnoredLHSTest:testParseIgnoredLHSTwoUnderscores() (gas: 51338) -LibParseIgnoredLHSTest:testParseIgnoredLHSUnderscoreAlpha() (gas: 50478) -LibParseIgnoredLHSTest:testParseIgnoredLHSUnderscoreNotInput() (gas: 55415) -LibParseIgnoredLHSTest:testParseIgnoredWordTooLong() (gas: 53029) -LibParseInputsOnlyGasTest:testParseGasInputsOnly00() (gas: 42946) -LibParseInputsOnlyGasTest:testParseGasInputsOnly01() (gas: 43869) -LibParseInputsOnlyGasTest:testParseGasInputsOnly02() (gas: 44765) -LibParseInputsOnlyGasTest:testParseGasInputsOnly03() (gas: 45687) -LibParseInputsOnlyGasTest:testParseGasInputsOnly04() (gas: 46609) -LibParseInputsOnlyGasTest:testParseGasInputsOnly05() (gas: 47531) -LibParseInputsOnlyGasTest:testParseGasInputsOnly06() (gas: 48451) -LibParseInputsOnlyGasTest:testParseGasInputsOnly07() (gas: 49403) -LibParseInputsOnlyGasTest:testParseGasInputsOnly08() (gas: 50292) -LibParseInputsOnlyGasTest:testParseGasInputsOnly09() (gas: 51214) -LibParseInputsOnlyTest:testParseInputsOnlyMultiple() (gas: 51293) -LibParseInputsOnlyTest:testParseInputsOnlySingle() (gas: 50395) -LibParseIsMaskTest:testIsMaskPastEnd(uint256,uint256,uint256) (runs: 2050, μ: 16916, ~: 18818) -LibParseIsMaskTest:testIsMaskReference(string,uint256,uint256) (runs: 2050, μ: 8238, ~: 8289) -LibParseLiteralBoundLiteralHexTest:testParseLiteralBoundLiteralHexBounds() (gas: 17333) -LibParseLiteralBoundLiteralHexTest:testParseLiteralBoundLiteralHexFuzz(string,bytes1,string) (runs: 2050, μ: 43433, ~: 42204) -LibParseLiteralDecimalParseDecimalFloatTest:testParseLiteralDecimalFloatDecimals() (gas: 406343) -LibParseLiteralDecimalParseDecimalFloatTest:testParseLiteralDecimalFloatDotE() (gas: 5216) -LibParseLiteralDecimalParseDecimalFloatTest:testParseLiteralDecimalFloatDotE0() (gas: 5194) -LibParseLiteralDecimalParseDecimalFloatTest:testParseLiteralDecimalFloatDotRevert() (gas: 5195) -LibParseLiteralDecimalParseDecimalFloatTest:testParseLiteralDecimalFloatDotRevert2() (gas: 5194) -LibParseLiteralDecimalParseDecimalFloatTest:testParseLiteralDecimalFloatDotRevert3() (gas: 6037) -LibParseLiteralDecimalParseDecimalFloatTest:testParseLiteralDecimalFloatEDot() (gas: 5218) -LibParseLiteralDecimalParseDecimalFloatTest:testParseLiteralDecimalFloatEmpty() (gas: 5183) -LibParseLiteralDecimalParseDecimalFloatTest:testParseLiteralDecimalFloatExponentRevert() (gas: 5163) -LibParseLiteralDecimalParseDecimalFloatTest:testParseLiteralDecimalFloatExponentRevert2() (gas: 6253) -LibParseLiteralDecimalParseDecimalFloatTest:testParseLiteralDecimalFloatExponentRevert3() (gas: 6269) -LibParseLiteralDecimalParseDecimalFloatTest:testParseLiteralDecimalFloatExponentRevert4() (gas: 5216) -LibParseLiteralDecimalParseDecimalFloatTest:testParseLiteralDecimalFloatExponentRevert5() (gas: 5237) -LibParseLiteralDecimalParseDecimalFloatTest:testParseLiteralDecimalFloatExponentRevert6() (gas: 5238) -LibParseLiteralDecimalParseDecimalFloatTest:testParseLiteralDecimalFloatExponents() (gas: 443340) -LibParseLiteralDecimalParseDecimalFloatTest:testParseLiteralDecimalFloatFuzz(uint256,uint8,bool) (runs: 2050, μ: 45603, ~: 37336) -LibParseLiteralDecimalParseDecimalFloatTest:testParseLiteralDecimalFloatLeadingZeros() (gas: 64472) -LibParseLiteralDecimalParseDecimalFloatTest:testParseLiteralDecimalFloatNegativeE() (gas: 7259) -LibParseLiteralDecimalParseDecimalFloatTest:testParseLiteralDecimalFloatNegativeFrac() (gas: 6008) -LibParseLiteralDecimalParseDecimalFloatTest:testParseLiteralDecimalFloatNonDecimal() (gas: 5194) -LibParseLiteralDecimalParseDecimalFloatTest:testParseLiteralDecimalFloatPrecisionRevert0() (gas: 28246) -LibParseLiteralDecimalParseDecimalFloatTest:testParseLiteralDecimalFloatPrecisionRevert1() (gas: 28124) -LibParseLiteralDecimalParseDecimalFloatTest:testParseLiteralDecimalFloatSpecific() (gas: 27281) -LibParseLiteralDecimalParseDecimalFloatTest:testParseLiteralDecimalFloatUnrelated() (gas: 36407) -LibParseLiteralDecimalTest:testParseLiteralDecimalDecimals() (gas: 169939) -LibParseLiteralDecimalTest:testParseLiteralDecimalDotError() (gas: 5137) -LibParseLiteralDecimalTest:testParseLiteralDecimalDotError2() (gas: 5137) -LibParseLiteralDecimalTest:testParseLiteralDecimalDotError3() (gas: 5765) -LibParseLiteralDecimalTest:testParseLiteralDecimalDotError4() (gas: 5117) -LibParseLiteralDecimalTest:testParseLiteralDecimalDotError5() (gas: 5094) -LibParseLiteralDecimalTest:testParseLiteralDecimalDotError6() (gas: 5095) -LibParseLiteralDecimalTest:testParseLiteralDecimalEmpty() (gas: 5049) -LibParseLiteralDecimalTest:testParseLiteralDecimalExponents() (gas: 166109) -LibParseLiteralDecimalTest:testParseLiteralDecimalExponents2() (gas: 235133) -LibParseLiteralDecimalTest:testParseLiteralDecimalExponents2Capital() (gas: 169693) -LibParseLiteralDecimalTest:testParseLiteralDecimalExponents3() (gas: 256423) -LibParseLiteralDecimalTest:testParseLiteralDecimalExponents4() (gas: 136502) -LibParseLiteralDecimalTest:testParseLiteralDecimalExponentsError() (gas: 5136) -LibParseLiteralDecimalTest:testParseLiteralDecimalExponentsError3() (gas: 5870) -LibParseLiteralDecimalTest:testParseLiteralDecimalExponentsError4() (gas: 5138) -LibParseLiteralDecimalTest:testParseLiteralDecimalExponentsError5() (gas: 5138) -LibParseLiteralDecimalTest:testParseLiteralDecimalNegativeExponents() (gas: 219344) -LibParseLiteralDecimalTest:testParseLiteralDecimalNegativeExponentsError() (gas: 6489) -LibParseLiteralDecimalTest:testParseLiteralDecimalNonDecimal() (gas: 5041) -LibParseLiteralDecimalTest:testParseLiteralDecimalOverflow() (gas: 7472) -LibParseLiteralDecimalTest:testParseLiteralDecimalPrecisionLossDecimal() (gas: 7330) -LibParseLiteralDecimalTest:testParseLiteralDecimalPrecisionLossDecimalMax() (gas: 11787) -LibParseLiteralDecimalTest:testParseLiteralDecimalPrecisionLossDecimalSmall() (gas: 11450) -LibParseLiteralDecimalTest:testParseLiteralDecimalPrecisionLossInteger() (gas: 7192) -LibParseLiteralDecimalTest:testParseLiteralDecimalRoundTrip(uint256) (runs: 2050, μ: 21595, ~: 20921) -LibParseLiteralDecimalTest:testParseLiteralDecimalSpecific() (gas: 49442) -LibParseLiteralDecimalTest:testParseLiteralDecimalTrailingZeros() (gas: 198848) -LibParseLiteralDecimalTest:testParseLiteralDecimalUnrelated() (gas: 70886) -LibParseLiteralHexBoundHexTest:testParseLiteralHexRoundTrip(uint256) (runs: 2050, μ: 18084, ~: 13270) -LibParseLiteralIntegerDecimalTest:testParseIntegerLiteralDecimal00() (gas: 55518) -LibParseLiteralIntegerDecimalTest:testParseIntegerLiteralDecimal01() (gas: 62770) -LibParseLiteralIntegerDecimalTest:testParseIntegerLiteralDecimal02() (gas: 69243) -LibParseLiteralIntegerDecimalTest:testParseIntegerLiteralDecimalENotation() (gas: 87706) -LibParseLiteralIntegerDecimalTest:testParseIntegerLiteralDecimalParensBoth() (gas: 45583) -LibParseLiteralIntegerDecimalTest:testParseIntegerLiteralDecimalParensLeft() (gas: 45625) -LibParseLiteralIntegerDecimalTest:testParseIntegerLiteralDecimalParensRight() (gas: 45484) -LibParseLiteralIntegerDecimalTest:testParseIntegerLiteralDecimalUint256Max() (gas: 77678) -LibParseLiteralIntegerDecimalTest:testParseIntegerLiteralDecimalUint256MaxLeadingZeros() (gas: 78178) -LibParseLiteralIntegerDecimalTest:testParseIntegerLiteralDecimalUint256OverflowLeadingDigit() (gas: 64314) -LibParseLiteralIntegerDecimalTest:testParseIntegerLiteralDecimalUint256OverflowLeadingDigitLeadingZeros() (gas: 64434) -LibParseLiteralIntegerDecimalTest:testParseIntegerLiteralDecimalUint256OverflowLeadingZeros() (gas: 64597) -LibParseLiteralIntegerDecimalTest:testParseIntegerLiteralDecimalUint256OverflowSimple() (gas: 64424) -LibParseLiteralIntegerDecimalTest:testParseIntegerLiteralDecimalYang() (gas: 46061) -LibParseLiteralIntegerHexTest:testParseIntegerLiteralHex00() (gas: 54645) -LibParseLiteralIntegerHexTest:testParseIntegerLiteralHex01() (gas: 60281) -LibParseLiteralIntegerHexTest:testParseIntegerLiteralHex02() (gas: 65275) -LibParseLiteralIntegerHexTest:testParseIntegerLiteralHexUint256Max() (gas: 71345) -LibParseLiteralStringBoundTest:testParseStringLiteralBounds(string) (runs: 2049, μ: 15969, ~: 16015) -LibParseLiteralStringBoundTest:testParseStringLiteralBoundsInvalidCharBefore(string,uint256) (runs: 2050, μ: 29103, ~: 29036) -LibParseLiteralStringBoundTest:testParseStringLiteralBoundsParserOutOfBounds(string,uint256) (runs: 2049, μ: 18088, ~: 17911) -LibParseLiteralStringBoundTest:testParseStringLiteralBoundsTooLong(string) (runs: 2049, μ: 30535, ~: 30107) -LibParseLiteralStringTest:testParseStringLiteralAny(bytes) (runs: 2048, μ: 13111, ~: 13014) -LibParseLiteralStringTest:testParseStringLiteralCorrupt(bytes,uint256) (runs: 2048, μ: 18032, ~: 17971) -LibParseLiteralStringTest:testParseStringLiteralEmpty() (gas: 53559) -LibParseLiteralStringTest:testParseStringLiteralEmpty() (gas: 5543) -LibParseLiteralStringTest:testParseStringLiteralInvalidCharAfter(string,string) (runs: 2049, μ: 67976, ~: 67556) -LibParseLiteralStringTest:testParseStringLiteralInvalidCharWithin(string,uint256) (runs: 2050, μ: 65929, ~: 65817) -LibParseLiteralStringTest:testParseStringLiteralLongASCII(string) (runs: 2049, μ: 67397, ~: 66965) -LibParseLiteralStringTest:testParseStringLiteralShortASCII(string) (runs: 2049, μ: 61266, ~: 61313) -LibParseLiteralStringTest:testParseStringLiteralSimple() (gas: 53662) -LibParseLiteralStringTest:testParseStringLiteralTwo(string,string) (runs: 2048, μ: 74302, ~: 74242) -LibParseLiteralSubParseableTest:testParseLiteralSubParseableBody() (gas: 52887) -LibParseLiteralSubParseableTest:testParseLiteralSubParseableEmptyBody() (gas: 16526) -LibParseLiteralSubParseableTest:testParseLiteralSubParseableHappyFuzz(string,string,string) (runs: 2050, μ: 85253, ~: 84760) -LibParseLiteralSubParseableTest:testParseLiteralSubParseableMissingDispatchEmpty() (gas: 7839) -LibParseLiteralSubParseableTest:testParseLiteralSubParseableMissingDispatchUnclosed() (gas: 7844) -LibParseLiteralSubParseableTest:testParseLiteralSubParseableMissingDispatchUnclosedWhitespace0() (gas: 7837) -LibParseLiteralSubParseableTest:testParseLiteralSubParseableMissingDispatchUnclosedWhitespace1() (gas: 7794) -LibParseLiteralSubParseableTest:testParseLiteralSubParseableUnclosedDispatch0() (gas: 8252) -LibParseLiteralSubParseableTest:testParseLiteralSubParseableUnclosedDispatchBody() (gas: 8414) -LibParseLiteralSubParseableTest:testParseLiteralSubParseableUnclosedDispatchWhitespace0() (gas: 8346) -LibParseLiteralSubParseableTest:testParseLiteralSubParseableUnclosedDispatchWhitespace1() (gas: 7817) -LibParseLiteralSubParseableTest:testParseLiteralSubParseableUnclosedDoubleOpen() (gas: 8274) -LibParseMissingFinalSemiTest:testParseMissingFinalSemiRevertsEmptySource() (gas: 44180) -LibParseMissingFinalSemiTest:testParseMissingFinalSemiRevertsLHSItems() (gas: 42131) -LibParseMissingFinalSemiTest:testParseMissingFinalSemiRevertsLoneColon() (gas: 41247) -LibParseMissingFinalSemiTest:testParseMissingFinalSemiRevertsSingleWord() (gas: 44158) -LibParseMissingFinalSemiTest:testParseMissingFinalSemiRevertsTrailingComma() (gas: 42405) -LibParseNOutputTest:testParseBalanceStackOffsetsInputs() (gas: 60488) -LibParseNOutputTest:testParseNOutputExcessRHS0() (gas: 49623) -LibParseNOutputTest:testParseNOutputExcessRHS1() (gas: 47915) -LibParseNOutputTest:testParseNOutputExcessRHS2() (gas: 48314) -LibParseNOutputTest:testParseNOutputExcessRHS3() (gas: 49647) -LibParseNOutputTest:testParseNOutputNestedRHS() (gas: 55754) -LibParseNamedLHSTest:testParseNamedDuplicateDifferentSource() (gas: 54420) -LibParseNamedLHSTest:testParseNamedError32() (gas: 44047) -LibParseNamedLHSTest:testParseNamedError33() (gas: 44024) -LibParseNamedLHSTest:testParseNamedErrorDuplicateSameSource() (gas: 44482) -LibParseNamedLHSTest:testParseNamedLHSEmptySourceExamples() (gas: 151264) -LibParseNamedLHSTest:testParseNamedLHSStackIndex() (gas: 57179) -LibParseNamedLHSTest:testParseNamedLHSTwoInputs() (gas: 59946) -LibParseNamedRHSTest:testParseSingleLHSNestingAndSequential00() (gas: 77379) -LibParseNamedRHSTest:testParseSingleLHSNestingAndSequential01() (gas: 92236) -LibParseNamedRHSTest:testParseSingleLHSNestingAndSequential02() (gas: 87634) -LibParseNamedRHSTest:testParseSingleLHSNestingAndSequential03() (gas: 189412) -LibParseNamedRHSTest:testParseSingleWord() (gas: 53392) -LibParseNamedRHSTest:testParseTwoFullLinesSingleRHSEach() (gas: 73943) -LibParseNamedRHSTest:testParseTwoFullSourcesSingleRHSEach() (gas: 64768) -LibParseNamedRHSTest:testParseTwoNested() (gas: 56794) -LibParseNamedRHSTest:testParseTwoNestedAsThirdInput() (gas: 66587) -LibParseNamedRHSTest:testParseTwoSequential() (gas: 58429) -LibParseNamedRHSTest:testParseTwoSequentialWithInputs() (gas: 71329) -LibParseOperand8M1M1Test:testOperand8M1M1Elided() (gas: 91043) -LibParseOperand8M1M1Test:testOperand8M1M1Single() (gas: 264585) -LibParseOperand8M1M1Test:testOperand8M1M1SingleBit() (gas: 546146) -LibParseOperand8M1M1Test:testOperand8M1M1SingleBitsPart1() (gas: 1552186) -LibParseOperand8M1M1Test:testOperand8M1M1Unclosed() (gas: 301312) -LibParseOperand8M1M1Test:testOperand8M1M1Unopened() (gas: 46550) -LibParseOperandDisallowedTest:testOperandDisallowed() (gas: 43291) -LibParseOperandDisallowedTest:testOperandDisallowed1() (gas: 43759) -LibParseOperandDisallowedTest:testOperandDisallowed3() (gas: 45670) -LibParseOperandDisallowedTest:testOperandDisallowed4() (gas: 45692) -LibParseOperandDoublePerByteNoDefaultTest:testOperandDoublePerByteNoDefaultElided() (gas: 42781) -LibParseOperandDoublePerByteNoDefaultTest:testOperandDoublePerByteNoDefaultEmpty() (gas: 43171) -LibParseOperandDoublePerByteNoDefaultTest:testOperandDoublePerByteNoDefaultFirst() (gas: 45744) -LibParseOperandDoublePerByteNoDefaultTest:testOperandDoublePerByteNoDefaultMultipleWhitespace() (gas: 57474) -LibParseOperandDoublePerByteNoDefaultTest:testOperandDoublePerByteNoDefaultPostfixWhitespace() (gas: 56713) -LibParseOperandDoublePerByteNoDefaultTest:testOperandDoublePerByteNoDefaultPrefixWhitespace() (gas: 56689) -LibParseOperandDoublePerByteNoDefaultTest:testOperandDoublePerByteNoDefaultSecond() (gas: 56328) -LibParseOperandDoublePerByteNoDefaultTest:testOperandDoublePerByteNoDefaultSecondMax() (gas: 57447) -LibParseOperandDoublePerByteNoDefaultTest:testOperandDoublePerByteNoDefaultSecondMaxZero() (gas: 56808) -LibParseOperandDoublePerByteNoDefaultTest:testOperandDoublePerByteNoDefaultSecondOverflow() (gas: 50078) -LibParseOperandDoublePerByteNoDefaultTest:testOperandDoublePerByteNoDefaultSecondOverflowFirst() (gas: 50079) -LibParseOperandDoublePerByteNoDefaultTest:testOperandDoublePerByteNoDefaultSecondZero() (gas: 56193) -LibParseOperandDoublePerByteNoDefaultTest:testOperandDoublePerByteNoDefaultSecondZeroMax() (gas: 56830) -LibParseOperandDoublePerByteNoDefaultTest:testOperandDoublePerByteNoDefaultThird() (gas: 51663) -LibParseOperandDoublePerByteNoDefaultTest:testOperandDoublePerByteNoDefaultUnclosed() (gas: 48493) -LibParseOperandDoublePerByteNoDefaultTest:testOperandDoublePerByteNoDefaultUnopened() (gas: 42782) -LibParseOperandHandleOperand8M1M1Test:testHandleOperand8M1M1AllValues(uint256,uint256,uint256) (runs: 2050, μ: 10903, ~: 10989) -LibParseOperandHandleOperand8M1M1Test:testHandleOperand8M1M1AllValuesThirdValueTooLarge(uint256,uint256,uint256) (runs: 2050, μ: 10933, ~: 10751) -LibParseOperandHandleOperand8M1M1Test:testHandleOperand8M1M1FirstAndSecondValue(uint256,uint256) (runs: 2050, μ: 9338, ~: 9329) -LibParseOperandHandleOperand8M1M1Test:testHandleOperand8M1M1FirstAndSecondValueSecondValueTooLarge(uint256,uint256) (runs: 2050, μ: 9354, ~: 9088) -LibParseOperandHandleOperand8M1M1Test:testHandleOperand8M1M1FirstValueOnly(uint256) (runs: 2050, μ: 7827, ~: 7886) -LibParseOperandHandleOperand8M1M1Test:testHandleOperand8M1M1FirstValueTooLarge(uint256) (runs: 2050, μ: 7770, ~: 7979) -LibParseOperandHandleOperand8M1M1Test:testHandleOperand8M1M1ManyValues(uint256[]) (runs: 2050, μ: 14020, ~: 14029) -LibParseOperandHandleOperand8M1M1Test:testHandleOperand8M1M1NoValues() (gas: 3508) -LibParseOperandHandleOperandDisallowedTest:testHandleOperandDisallowedAnyValues(uint256[]) (runs: 2050, μ: 13808, ~: 13855) -LibParseOperandHandleOperandDisallowedTest:testHandleOperandDisallowedNoValues() (gas: 3212) -LibParseOperandHandleOperandDoublePerByteNoDefaultTest:testHandleOperandDoublePerByteNoDefaultBothValuesWithinOneByte(uint256,uint256) (runs: 2050, μ: 9096, ~: 9214) -LibParseOperandHandleOperandDoublePerByteNoDefaultTest:testHandleOperandDoublePerByteNoDefaultFirstValueTooLarge(uint256,uint256) (runs: 2050, μ: 9180, ~: 8895) -LibParseOperandHandleOperandDoublePerByteNoDefaultTest:testHandleOperandDoublePerByteNoDefaultManyValues(uint256[]) (runs: 2050, μ: 13916, ~: 13891) -LibParseOperandHandleOperandDoublePerByteNoDefaultTest:testHandleOperandDoublePerByteNoDefaultNoValues() (gas: 3507) -LibParseOperandHandleOperandDoublePerByteNoDefaultTest:testHandleOperandDoublePerByteNoDefaultOneValue(uint256) (runs: 2050, μ: 7384, ~: 7658) -LibParseOperandHandleOperandDoublePerByteNoDefaultTest:testHandleOperandDoublePerByteNoDefaultSecondValueTooLarge(uint256,uint256) (runs: 2050, μ: 9298, ~: 9277) -LibParseOperandHandleOperandM1M1Test:testHandleOperandM1M1ManyValues(uint256[]) (runs: 2050, μ: 13918, ~: 13893) -LibParseOperandHandleOperandM1M1Test:testHandleOperandM1M1NoValues() (gas: 3544) -LibParseOperandHandleOperandM1M1Test:testHandleOperandM1M1OneValue(uint256) (runs: 2050, μ: 7634, ~: 7602) -LibParseOperandHandleOperandM1M1Test:testHandleOperandM1M1OneValueTooLarge(uint256) (runs: 2050, μ: 7694, ~: 7372) -LibParseOperandHandleOperandM1M1Test:testHandleOperandM1M1TwoValues(uint256,uint256) (runs: 2050, μ: 9175, ~: 9201) -LibParseOperandHandleOperandM1M1Test:testHandleOperandM1M1TwoValuesSecondValueTooLarge(uint256,uint256) (runs: 2050, μ: 9269, ~: 9038) -LibParseOperandHandleOperandSingleFullTest:testHandleOperandSingleFullManyValues(uint256[]) (runs: 2050, μ: 13867, ~: 13889) -LibParseOperandHandleOperandSingleFullTest:testHandleOperandSingleFullNoDefaultManyValues(uint256[]) (runs: 2050, μ: 13911, ~: 13933) -LibParseOperandHandleOperandSingleFullTest:testHandleOperandSingleFullNoDefaultNoValues() (gas: 3502) -LibParseOperandHandleOperandSingleFullTest:testHandleOperandSingleFullNoDefaultSingleValue(uint256) (runs: 2050, μ: 7193, ~: 7466) -LibParseOperandHandleOperandSingleFullTest:testHandleOperandSingleFullNoValues() (gas: 3237) -LibParseOperandHandleOperandSingleFullTest:testHandleOperandSingleFullSingleValue(uint256) (runs: 2050, μ: 7408, ~: 7677) -LibParseOperandHandleOperandSingleFullTest:testHandleOperandSingleFullSingleValueDisallowed(uint256) (runs: 2050, μ: 8096, ~: 8210) -LibParseOperandHandleOperandSingleFullTest:testHandleOperandSingleFullSingleValueNoDefaultDisallowed(uint256) (runs: 2050, μ: 9119, ~: 9227) -LibParseOperandM1M1Test:testOperandM1M1Both() (gas: 56440) -LibParseOperandM1M1Test:testOperandM1M1BothZero() (gas: 55368) -LibParseOperandM1M1Test:testOperandM1M1Elided() (gas: 50298) -LibParseOperandM1M1Test:testOperandM1M1Empty() (gas: 50690) -LibParseOperandM1M1Test:testOperandM1M1First() (gas: 53339) -LibParseOperandM1M1Test:testOperandM1M1FirstOverflow() (gas: 46070) -LibParseOperandM1M1Test:testOperandM1M1Second() (gas: 56361) -LibParseOperandM1M1Test:testOperandM1M1SecondOverflow() (gas: 49170) -LibParseOperandM1M1Test:testOperandM1M1SecondZero() (gas: 56240) -LibParseOperandM1M1Test:testOperandM1M1Unclosed() (gas: 247498) -LibParseOperandM1M1Test:testOperandM1M1Unopened() (gas: 47893) -LibParseOperandParseOperandTest:testParseOperandEmptyOperand(string) (runs: 2050, μ: 42200, ~: 42204) -LibParseOperandParseOperandTest:testParseOperandFourDecimalLiterals(bool[4],uint256[4],string[5],string) (runs: 2050, μ: 341874, ~: 341749) -LibParseOperandParseOperandTest:testParseOperandNoOpeningCharacter(string) (runs: 2050, μ: 42151, ~: 42155) -LibParseOperandParseOperandTest:testParseOperandSingleDecimalLiteral(bool,uint256,string,string,string) (runs: 2050, μ: 149774, ~: 149753) -LibParseOperandParseOperandTest:testParseOperandThreeDecimalLiterals(bool,bool,bool,uint256,uint256,uint256,string,string,string,string,string) (runs: 2050, μ: 275746, ~: 276623) -LibParseOperandParseOperandTest:testParseOperandTooManyValues() (gas: 52964) -LibParseOperandParseOperandTest:testParseOperandTwoDecimalLiterals(bool,bool,uint256,uint256,string,string,string,string) (runs: 2050, μ: 214097, ~: 213889) -LibParseOperandParseOperandTest:testParseOperandUnclosed() (gas: 52478) -LibParseOperandParseOperandTest:testParseOperandUnexpectedChars() (gas: 49578) -LibParseOperandSingleFullTest:testOperandSingleFullElided() (gas: 50041) -LibParseOperandSingleFullTest:testOperandSingleFullEmpty() (gas: 50366) -LibParseOperandSingleFullTest:testOperandSingleFullHexOne() (gas: 52186) -LibParseOperandSingleFullTest:testOperandSingleFullHexUint16Max() (gas: 52798) -LibParseOperandSingleFullTest:testOperandSingleFullHexUint16MaxOverflow() (gas: 46015) -LibParseOperandSingleFullTest:testOperandSingleFullHexZero() (gas: 52187) -LibParseOperandSingleFullTest:testOperandSingleFullLeadingAndTrailingWhitespace() (gas: 52871) -LibParseOperandSingleFullTest:testOperandSingleFullLeadingWhitespace() (gas: 53485) -LibParseOperandSingleFullTest:testOperandSingleFullMultiple() (gas: 46901) -LibParseOperandSingleFullTest:testOperandSingleFullOne() (gas: 53143) -LibParseOperandSingleFullTest:testOperandSingleFullTrailingWhitespace() (gas: 53529) -LibParseOperandSingleFullTest:testOperandSingleFullUint16Max() (gas: 54241) -LibParseOperandSingleFullTest:testOperandSingleFullUint16MaxOverflow() (gas: 47108) -LibParseOperandSingleFullTest:testOperandSingleFullUnclosed() (gas: 45626) -LibParseOperandSingleFullTest:testOperandSingleFullUnopened() (gas: 43806) -LibParseOperandSingleFullTest:testOperandSingleFullZero() (gas: 53088) -LibParseParseWordTest:testLibParseParseWordEnd(uint256) (runs: 2050, μ: 9351, ~: 9368) -LibParseParseWordTest:testLibParseParseWordExamples() (gas: 26461) -LibParseParseWordTest:testLibParseParseWordReferenceImplementation(bytes,uint256) (runs: 2048, μ: 6455, ~: 6236) -LibParseParseWordTest:testLibParseParseWordTooLong(bytes) (runs: 2050, μ: 9041, ~: 9033) -LibParsePragmaKeywordTest:testPragmaKeywordNoWhitespace(uint256,string) (runs: 2050, μ: 8256, ~: 8252) -LibParsePragmaKeywordTest:testPragmaKeywordNoop((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,uint256[],uint256,bytes,bytes),string) (runs: 2050, μ: 16560, ~: 16437) -LibParsePragmaKeywordTest:testPragmaKeywordParseSubParser(string,address,uint256,string) (runs: 2050, μ: 181202, ~: 176089) -LibParsePragmaKeywordTest:testPragmaKeywordParseSubParserCoupleOfAddresses(string,string,address,address,uint256,string) (runs: 2050, μ: 358987, ~: 357598) -LibParsePragmaKeywordTest:testPragmaKeywordParseSubParserSpecificStrings() (gas: 246981) -LibParsePragmaKeywordTest:testPragmaKeywordWhitespaceNoHex(uint256,string) (runs: 2050, μ: 19767, ~: 17118) -LibParseSingleLHSIgnoredGasTest:testParseGasSingleLHSIgnored00() (gas: 8094) -LibParseSingleLHSIgnoredGasTest:testParseGasSingleLHSIgnored01() (gas: 8154) -LibParseSingleLHSIgnoredGasTest:testParseGasSingleLHSIgnored02() (gas: 8238) -LibParseSingleLHSIgnoredGasTest:testParseGasSingleLHSIgnored03() (gas: 8319) -LibParseSingleLHSIgnoredGasTest:testParseGasSingleLHSIgnored04() (gas: 8422) -LibParseSingleLHSIgnoredGasTest:testParseGasSingleLHSIgnored05() (gas: 8461) -LibParseSingleLHSIgnoredGasTest:testParseGasSingleLHSIgnored06() (gas: 8587) -LibParseSingleLHSIgnoredGasTest:testParseGasSingleLHSIgnored07() (gas: 8626) -LibParseSingleLHSIgnoredGasTest:testParseGasSingleLHSIgnored08() (gas: 8705) -LibParseSingleLHSIgnoredGasTest:testParseGasSingleLHSIgnored09() (gas: 8811) -LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed00() (gas: 8794) -LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed01() (gas: 8895) -LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed02() (gas: 8933) -LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed03() (gas: 9035) -LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed04() (gas: 9117) -LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed05() (gas: 9200) -LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed06() (gas: 9278) -LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed07() (gas: 9382) -LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed08() (gas: 9463) -LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed09() (gas: 9543) -LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed10() (gas: 9602) -LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed11() (gas: 9662) -LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed12() (gas: 9786) -LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed13() (gas: 9847) -LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed14() (gas: 9927) -LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed15() (gas: 9985) -LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed16() (gas: 10111) -LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed17() (gas: 10170) -LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed18() (gas: 10272) -LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed19() (gas: 10311) -LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed20() (gas: 10391) -LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed21() (gas: 10494) -LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed22() (gas: 10552) -LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed23() (gas: 10636) -LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed24() (gas: 10714) -LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed25() (gas: 10840) -LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed26() (gas: 10899) -LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed27() (gas: 10959) -LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed28() (gas: 11070) -LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed29() (gas: 11118) -LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed30() (gas: 11202) -LibParseSingleRHSNamedGasTest:testParseGasRHS00() (gas: 115165) -LibParseSingleRHSNamedGasTest:testParseGasRHS01() (gas: 115267) -LibParseSingleRHSNamedGasTest:testParseGasRHS02() (gas: 115326) -LibParseSingleRHSNamedGasTest:testParseGasRHS03() (gas: 115406) -LibParseSingleRHSNamedGasTest:testParseGasRHS04() (gas: 115489) -LibParseSingleRHSNamedGasTest:testParseGasRHS05() (gas: 115569) -LibParseSingleRHSNamedGasTest:testParseGasRHS06() (gas: 115629) -LibParseSingleRHSNamedGasTest:testParseGasRHS07() (gas: 115710) -LibParseSingleRHSNamedGasTest:testParseGasRHS08() (gas: 115811) -LibParseSingleRHSNamedGasTest:testParseGasRHS09() (gas: 115872) -LibParseSingleRHSNamedGasTest:testParseGasRHS10() (gas: 115995) -LibParseSingleRHSNamedGasTest:testParseGasRHS11() (gas: 116031) -LibParseSingleRHSNamedGasTest:testParseGasRHS12() (gas: 116145) -LibParseSingleRHSNamedGasTest:testParseGasRHS13() (gas: 116217) -LibParseSingleRHSNamedGasTest:testParseGasRHS14() (gas: 116275) -LibParseSingleRHSNamedGasTest:testParseGasRHS15() (gas: 116379) -LibParseSingleRHSNamedGasTest:testParseGasRHS16() (gas: 116439) -LibParseSingleRHSNamedGasTest:testParseGasRHS17() (gas: 116519) -LibParseSingleRHSNamedGasTest:testParseGasRHS18() (gas: 116644) -LibParseSingleRHSNamedGasTest:testParseGasRHS19() (gas: 116725) -LibParseSingleRHSNamedGasTest:testParseGasRHS20() (gas: 116784) -LibParseSingleRHSNamedGasTest:testParseGasRHS21() (gas: 116886) -LibParseSingleRHSNamedGasTest:testParseGasRHS22() (gas: 116924) -LibParseSingleRHSNamedGasTest:testParseGasRHS23() (gas: 117028) -LibParseSingleRHSNamedGasTest:testParseGasRHS24() (gas: 117107) -LibParseSingleRHSNamedGasTest:testParseGasRHS25() (gas: 117188) -LibParseSingleRHSNamedGasTest:testParseGasRHS26() (gas: 117250) -LibParseSingleRHSNamedGasTest:testParseGasRHS27() (gas: 117341) -LibParseSingleRHSNamedGasTest:testParseGasRHS28() (gas: 117445) -LibParseSingleRHSNamedGasTest:testParseGasRHS29() (gas: 117536) -LibParseSingleRHSNamedGasTest:testParseGasRHS30() (gas: 117598) -LibParseSourceInputsTest:testParseSourceInputsEmptyLinePrefix() (gas: 48331) -LibParseSourceInputsTest:testParseSourceInputsMultipleLines() (gas: 51041) -LibParseSourceInputsTest:testParseSourceInputsSingle() (gas: 48308) -LibParseStackNameTest:testPushAndRetrieveStackNameDouble((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,uint256[],uint256,bytes,bytes),bytes32,bytes32) (runs: 2050, μ: 20694, ~: 20680) -LibParseStackNameTest:testPushAndRetrieveStackNameDoubleIdentical((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,uint256[],uint256,bytes,bytes),bytes32) (runs: 2050, μ: 17937, ~: 18124) -LibParseStackNameTest:testPushAndRetrieveStackNameMany((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,uint256[],uint256,bytes,bytes),uint256) (runs: 2050, μ: 323090, ~: 274813) -LibParseStackNameTest:testPushAndRetrieveStackNameSingle((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,uint256[],uint256,bytes,bytes),bytes32) (runs: 2050, μ: 17816, ~: 18003) -LibParseStateConstantValueBloomTest:testConstantValueBloom(uint256) (runs: 2050, μ: 3357, ~: 3357) -LibParseStateConstantValueBloomTest:testConstantValueBloomAllBits() (gas: 44617) -LibParseStateConstantValueBloomTest:testConstantValueBloomSingleBit(uint256) (runs: 2050, μ: 3417, ~: 3417) -LibParseStateExportSubParsersTest:testExportSubParsers((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,uint256[],uint256,bytes,bytes),address[]) (runs: 2050, μ: 151933, ~: 152126) -LibParseStateNewActiveSourcePointerTest:testAlignedOldPointer(uint256,uint256) (runs: 2050, μ: 12573, ~: 12696) -LibParseStateNewActiveSourcePointerTest:testPostUnalignedNewPointer(uint256) (runs: 2050, μ: 6529, ~: 6529) -LibParseStateNewActiveSourcePointerTest:testPreUnalignedNewPointer() (gas: 8436) -LibParseStateNewActiveSourcePointerTest:testZeroOldPointer(bytes) (runs: 2050, μ: 4604, ~: 4601) -LibParseStatePushConstantValueTest:testPushConstantValueEmpty(bytes,bytes,bytes,bytes) (runs: 2050, μ: 6321, ~: 6318) -LibParseStatePushConstantValueTest:testPushConstantValueMany(uint256[]) (runs: 2050, μ: 226420, ~: 227538) -LibParseStatePushConstantValueTest:testPushConstantValueSingle(uint256) (runs: 2050, μ: 6924, ~: 6924) -LibParseStatePushSubParserTest:testPushSubParserList((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,uint256[],uint256,bytes,bytes),address[]) (runs: 2050, μ: 135534, ~: 136056) -LibParseStatePushSubParserTest:testPushSubParserMultiple((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,uint256[],uint256,bytes,bytes),address,address,address) (runs: 2050, μ: 16835, ~: 16834) -LibParseStatePushSubParserTest:testPushSubParserOverflow((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,uint256[],uint256,bytes,bytes),uint256) (runs: 2050, μ: 19138, ~: 18934) -LibParseStatePushSubParserTest:testPushSubParserZero((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,uint256[],uint256,bytes,bytes),address) (runs: 2050, μ: 15697, ~: 15656) -LibParseUnclosedLeftParenTest:testParseUnclosedLeftParen() (gas: 44207) -LibParseUnclosedLeftParenTest:testParseUnclosedLeftParenNested() (gas: 63377) -LibParseUnclosedLeftParenTest:testParseUnclosedLeftParenNested2() (gas: 64859) -LibParseUnclosedLeftParenTest:testParseUnclosedLeftParenNested3() (gas: 74307) -LibParseUnexpectedLHSTest:testParseUnexpectedLHSBadIgnoredTail(uint8) (runs: 2050, μ: 41969, ~: 41970) -LibParseUnexpectedLHSTest:testParseUnexpectedLHSBadNamedTail(uint8,bytes) (runs: 2050, μ: 47702, ~: 47786) -LibParseUnexpectedLHSTest:testParseUnexpectedLHSEOF() (gas: 41043) -LibParseUnexpectedLHSTest:testParseUnexpectedLHSEOL() (gas: 41044) -LibParseUnexpectedLHSTest:testParseUnexpectedLHSSingleChar(uint8) (runs: 2050, μ: 41587, ~: 41587) -LibParseUnexpectedLHSTest:testParseUnexpectedLHSUnderscoreTail() (gas: 42035) -LibParseUnexpectedRHSTest:testParseUnexpectedRHS(uint8) (runs: 2050, μ: 41917, ~: 41917) -LibParseUnexpectedRHSTest:testParseUnexpectedRHSLeftParen() (gas: 41411) -LibParseUnexpectedRightParenTest:testParseUnexpectedRightParen() (gas: 40924) -LibParseUnexpectedRightParenTest:testParseUnexpectedRightParenNested() (gas: 46503) -LibSubParseSubParserExternTest:testLibSubParseSubParserExtern(address,uint8,uint8,uint8,uint16,uint8) (runs: 2050, μ: 12953, ~: 12904) -LibSubParseSubParserExternTest:testLibSubParseSubParserExternConstantsHeightOverflow(address,uint256,uint8,uint8,uint16,uint8) (runs: 2050, μ: 7691, ~: 7427) -RainterpreterExpressionDeployerNPE2DeployCheckTest:testRainterpreterExpressionDeployerDeployNoEIP1820() (gas: 9499762) -RainterpreterExpressionDeployerNPE2DescribedByMetaV1Test:testRainterpreterExpressionDeployerNPE2DescribedByMetaV1Happy() (gas: 9506782) -RainterpreterExpressionDeployerNPE2IERC165Test:testRainterpreterExpressionDeployerNPE2IERC165(bytes4) (runs: 2050, μ: 9507878, ~: 9507878) -RainterpreterExpressionDeployerNPE2MetaTest:testRainterpreterExpressionDeployerNPE2ExpectedConstructionMetaHash() (gas: 6173) -RainterpreterNPE2IERC165Test:testRainterpreterNPE2IERC165(bytes4) (runs: 2050, μ: 4105796, ~: 4105796) -RainterpreterNPE2PointersTest:testOpcodeFunctionPointers() (gas: 4112532) -RainterpreterNPE2Test:testRainterpreterNPE2OddFunctionPointersLength() (gas: 3690) -RainterpreterParserNPE2IERC165Test:testRainterpreterParserNPE2IERC165(bytes4) (runs: 2050, μ: 3720510, ~: 3720510) -RainterpreterParserNPE2ParserPragma:testParsePragmaNoPragma() (gas: 18575805) -RainterpreterParserNPE2ParserPragma:testParsePragmaSinglePragma() (gas: 11195849) -RainterpreterParserNPE2ParserPragma:testParsePragmaWithInterstitial() (gas: 11199078) -RainterpreterParserNPE2PointersTest:testLiteralParserFunctionPointers() (gas: 3717503) -RainterpreterParserNPE2PointersTest:testOperandHandlerFunctionPointers() (gas: 3725674) -RainterpreterParserNPE2PointersTest:testParserParseMeta() (gas: 5324665) -RainterpreterReferenceExternNPE2ContextRainlenTest:testRainterpreterReferenceExterNPE2ContextRainlenHappy() (gas: 1700182) -RainterpreterReferenceExternNPE2ContextSenderTest:testRainterpreterReferenceExterNPE2ContextContractHappy() (gas: 1699796) -RainterpreterReferenceExternNPE2ContextSenderTest:testRainterpreterReferenceExterNPE2ContextSenderHappy() (gas: 1698620) -RainterpreterReferenceExternNPE2DescribedByMetaV1:testRainterpreterReferenceExternNPE2DescribedByMetaV1Happy() (gas: 1624445) -RainterpreterReferenceExternNPE2IERC165Test:testRainterpreterReferenceExternNPE2IERC165(bytes4) (runs: 2050, μ: 1630367, ~: 1630367) -RainterpreterReferenceExternNPE2IntIncTest:testRainterpreterReferenceExternNPE2IntIncHappySugared() (gas: 1720541) -RainterpreterReferenceExternNPE2IntIncTest:testRainterpreterReferenceExternNPE2IntIncHappyUnsugared() (gas: 1714504) -RainterpreterReferenceExternNPE2IntIncTest:testRainterpreterReferenceExternNPE2IntIncIntegrity(uint256,uint256,uint256) (runs: 2050, μ: 3613, ~: 3613) -RainterpreterReferenceExternNPE2IntIncTest:testRainterpreterReferenceExternNPE2IntIncRun(uint256,uint256[]) (runs: 2050, μ: 167010, ~: 153544) -RainterpreterReferenceExternNPE2IntIncTest:testRainterpreterReferenceExternNPE2IntIncSubParseKnownWord(uint16,bytes1) (runs: 2050, μ: 1638495, ~: 1638770) -RainterpreterReferenceExternNPE2IntIncTest:testRainterpreterReferenceExternNPE2IntIncSubParseUnknownWord(uint16,bytes1,bytes) (runs: 2048, μ: 1635042, ~: 1634765) -RainterpreterReferenceExternNPE2PointersTest:testIntegrityFunctionPointers() (gas: 1624934) -RainterpreterReferenceExternNPE2PointersTest:testOpcodeFunctionPointers() (gas: 1624999) -RainterpreterReferenceExternNPE2PointersTest:testSubParserFunctionPointers() (gas: 1625444) -RainterpreterReferenceExternNPE2PointersTest:testSubParserLiteralParsers() (gas: 1624976) -RainterpreterReferenceExternNPE2PointersTest:testSubParserOperandParsers() (gas: 1625449) -RainterpreterReferenceExternNPE2PointersTest:testSubParserParseMeta() (gas: 18170) -RainterpreterReferenceExternNPE2RepeatTest:testRainterpreterReferenceExternNPE2RepeatHappy() (gas: 1747852) -RainterpreterReferenceExternNPE2StackOperandTest:testRainterpreterReferenceExternNPE2StackOperandSingle(uint256) (runs: 2050, μ: 1706930, ~: 1707287) -RainterpreterReferenceExternNPE2UnknownWordTest:testRainterpreterReferenceExternNPE2UnknownWord() (gas: 1671158) -RainterpreterStoreNPE2IERC165Test:testRainterpreterStoreNPE2IERC165(bytes4) (runs: 2050, μ: 224769, ~: 224769) -RainterpreterStoreNPE2Test:testRainterpreterStoreNPE2IERC165(uint32) (runs: 2050, μ: 224786, ~: 224786) -RainterpreterStoreNPE2Test:testRainterpreterStoreNPE2SetGetDupes((uint256,uint256[11])[]) (runs: 2048, μ: 1503674, ~: 1460139) -RainterpreterStoreNPE2Test:testRainterpreterStoreNPE2SetGetNoDupesMany((uint256,uint256[])[]) (runs: 2050, μ: 3512055, ~: 3343134) -RainterpreterStoreNPE2Test:testRainterpreterStoreNPE2SetGetNoDupesSingle(uint256,uint256[]) (runs: 2050, μ: 1931151, ~: 1944236) -RainterpreterStoreNPE2Test:testRainterpreterStoreNPE2SetOddLength(uint256,uint256[]) (runs: 2049, μ: 243348, ~: 243330) -TestLibParseLiteralDecimalUnsafeStrToInt:testUnsafeStrToIntOverflowVeryLarge(uint256,uint256,uint8) (runs: 2050, μ: 42686, ~: 37168) -TestLibParseLiteralDecimalUnsafeStrToInt:testUnsafeStrToIntRoundTrip(uint256,uint8) (runs: 2050, μ: 29700, ~: 22983) -TestLibParseLiteralDecimalUnsafeStrToSignedInt:testUnsafeStrToSignedIntOverflowNegative(uint256,uint8) (runs: 2050, μ: 46115, ~: 36528) -TestLibParseLiteralDecimalUnsafeStrToSignedInt:testUnsafeStrToSignedIntOverflowPositive(uint256,uint8) (runs: 2050, μ: 46156, ~: 36569) -TestLibParseLiteralDecimalUnsafeStrToSignedInt:testUnsafeStrToSignedIntRoundTrip(uint256,uint8,bool) (runs: 2050, μ: 34797, ~: 29273) \ No newline at end of file +BaseRainterpreterExternNPE2IERC165Test:testRainterpreterExternNPE2IERC165(bytes4) (runs: 2048, μ: 287281, ~: 287281) +BaseRainterpreterSubParserNPE2CompatibilityTest:testRainterpreterSubParserNPE2Compatibility(bytes32,bytes) (runs: 2048, μ: 679858, ~: 679810) +BaseRainterpreterSubParserNPE2IERC165Test:testRainterpreterSubParserNPE2IERC165(uint32) (runs: 2048, μ: 680462, ~: 680462) +LibAllStandardOpsNPTest:testIntegrityAndOpcodeFunctionPointersLength() (gas: 90234) +LibAllStandardOpsNPTest:testIntegrityFunctionPointersLength() (gas: 12096) +LibAllStandardOpsNPTest:testOpcodeFunctionPointersLength() (gas: 12090) +LibEvalNPFBoundsTest:testEvalNPFBoundsModConstant(uint256) (runs: 2048, μ: 86864, ~: 86864) +LibExternCodecTest:testLibExternCodecEncodeExternCall(uint256,uint256) (runs: 2048, μ: 9644, ~: 9532) +LibExternCodecTest:testLibExternCodecEncodeExternDispatch(uint256,uint256) (runs: 2048, μ: 8812, ~: 8700) +LibInterpreterStateNPStackTraceTest:testStackTraceCall(uint256,uint256,uint256[]) (runs: 2048, μ: 43098, ~: 42742) +LibOpAddTest:testOpAddEval2InputsHappy() (gas: 104831) +LibOpAddTest:testOpAddEval2InputsHappyZero() (gas: 57054) +LibOpAddTest:testOpAddEval2InputsHappyZeroMax() (gas: 100817) +LibOpAddTest:testOpAddEval2InputsHappyZeroOne() (gas: 103826) +LibOpAddTest:testOpAddEval2InputsUnhappy() (gas: 96963) +LibOpAddTest:testOpAddEval3InputsHappy() (gas: 329667) +LibOpAddTest:testOpAddEval3InputsUnhappy() (gas: 667141) +LibOpAddTest:testOpAddEvalOneInput() (gas: 35897) +LibOpAddTest:testOpAddEvalOperandDisallowed() (gas: 93453) +LibOpAddTest:testOpAddEvalTwoOutput() (gas: 42745) +LibOpAddTest:testOpAddEvalZeroInputs() (gas: 30156) +LibOpAddTest:testOpAddEvalZeroOutputs() (gas: 41657) +LibOpAddTest:testOpAddIntegrityHappy((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint16) (runs: 2048, μ: 17968, ~: 17968) +LibOpAddTest:testOpAddIntegrityUnhappyOneInput((uint256,uint256,uint256,uint256[],uint256,bytes)) (runs: 2048, μ: 13798, ~: 13645) +LibOpAddTest:testOpAddIntegrityUnhappyZeroInputs((uint256,uint256,uint256,uint256[],uint256,bytes)) (runs: 2048, μ: 13797, ~: 13644) +LibOpAddTest:testOpAddRun(uint256[]) (runs: 2048, μ: 19869, ~: 20060) +LibOpAnyNPTest:testOpAnyNPEval1FalseInput() (gas: 50005) +LibOpAnyNPTest:testOpAnyNPEval1TrueInput() (gas: 49903) +LibOpAnyNPTest:testOpAnyNPEval2FalseInputs() (gas: 55414) +LibOpAnyNPTest:testOpAnyNPEval2MixedInputs() (gas: 56181) +LibOpAnyNPTest:testOpAnyNPEval2MixedInputs2() (gas: 56285) +LibOpAnyNPTest:testOpAnyNPEval2TrueInputs() (gas: 56183) +LibOpAnyNPTest:testOpAnyNPEvalFail() (gas: 29691) +LibOpAnyNPTest:testOpAnyNPIntegrityGas0() (gas: 3279) +LibOpAnyNPTest:testOpAnyNPIntegrityHappy(uint8,uint16) (runs: 2048, μ: 8303, ~: 8432) +LibOpAnyNPTest:testOpAnyNPIntegrityUnhappyZeroInputs() (gas: 4079) +LibOpAnyNPTest:testOpAnyNPRun(uint256[],uint16) (runs: 2048, μ: 19148, ~: 19140) +LibOpAnyNPTest:testOpAnyNPRunGas0() (gas: 3382) +LibOpAnyNPTest:testOpAnyNPTwoOutputs() (gas: 36001) +LibOpAnyNPTest:testOpAnyNPZeroOutputs() (gas: 34974) +LibOpAvgTest:testOpAvgEval() (gas: 416320) +LibOpAvgTest:testOpAvgEvalOneInput() (gas: 35336) +LibOpAvgTest:testOpAvgEvalOperandDisallowed() (gas: 17754) +LibOpAvgTest:testOpAvgEvalThreeInputs() (gas: 45473) +LibOpAvgTest:testOpAvgEvalTwoOutputs() (gas: 41123) +LibOpAvgTest:testOpAvgEvalZeroOutputs() (gas: 40058) +LibOpAvgTest:testOpAvgIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint256) (runs: 2048, μ: 13835, ~: 13805) +LibOpAvgTest:testOpAvgRun(uint256,uint256,uint16) (runs: 2048, μ: 22103, ~: 21813) +LibOpBitwiseAndNPTest:testOpBitwiseAndNPEvalHappy() (gas: 749629) +LibOpBitwiseAndNPTest:testOpBitwiseAndNPIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint256) (runs: 2048, μ: 13857, ~: 13827) +LibOpBitwiseAndNPTest:testOpBitwiseAndNPRun(uint256,uint256) (runs: 2048, μ: 16544, ~: 16544) +LibOpBitwiseAndNPTest:testOpBitwiseORNPEvalBadOperand() (gas: 18444) +LibOpBitwiseAndNPTest:testOpBitwiseORNPEvalOneInput() (gas: 35953) +LibOpBitwiseAndNPTest:testOpBitwiseORNPEvalThreeInputs() (gas: 46111) +LibOpBitwiseAndNPTest:testOpBitwiseORNPEvalTwoOutputs() (gas: 41761) +LibOpBitwiseAndNPTest:testOpBitwiseORNPEvalZeroInputs() (gas: 30781) +LibOpBitwiseAndNPTest:testOpBitwiseORNPEvalZeroOutputs() (gas: 40738) +LibOpBitwiseOrNPTest:testOpBitwiseORNPEval() (gas: 748313) +LibOpBitwiseOrNPTest:testOpBitwiseORNPEvalBadOperand() (gas: 18363) +LibOpBitwiseOrNPTest:testOpBitwiseORNPEvalOneInput() (gas: 35894) +LibOpBitwiseOrNPTest:testOpBitwiseORNPEvalThreeInputs() (gas: 46052) +LibOpBitwiseOrNPTest:testOpBitwiseORNPEvalTwoOutputs() (gas: 41657) +LibOpBitwiseOrNPTest:testOpBitwiseORNPEvalZeroInputs() (gas: 30656) +LibOpBitwiseOrNPTest:testOpBitwiseORNPEvalZeroOutputs() (gas: 40657) +LibOpBitwiseOrNPTest:testOpBitwiseORNPIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint256) (runs: 2048, μ: 13835, ~: 13805) +LibOpBitwiseOrNPTest:testOpBitwiseORNPRun(uint256,uint256) (runs: 2048, μ: 16520, ~: 16520) +LibOpBlockNumberNPTest:testOpBlockNumberNPEval(uint256) (runs: 2048, μ: 48928, ~: 48797) +LibOpBlockNumberNPTest:testOpBlockNumberNPEvalOneInput() (gas: 35094) +LibOpBlockNumberNPTest:testOpBlockNumberNPEvalTwoOutputs() (gas: 31448) +LibOpBlockNumberNPTest:testOpBlockNumberNPEvalZeroOutputs() (gas: 30442) +LibOpBlockNumberNPTest:testOpBlockNumberNPIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint8,uint16) (runs: 2048, μ: 19422, ~: 19456) +LibOpBlockNumberNPTest:testOpBlockNumberNPRun(uint256,uint16) (runs: 2048, μ: 20146, ~: 20009) +LibOpCallNPTest:testCallTraceInnerOnly() (gas: 62207) +LibOpCallNPTest:testCallTraceOuterAndInner() (gas: 73065) +LibOpCallNPTest:testCallTraceOuterAndTwoInner() (gas: 113087) +LibOpCallNPTest:testCallTraceOuterOnly() (gas: 44866) +LibOpCallNPTest:testOpCallNPIntegrityIO((uint256,uint256,uint256,uint256[],uint256,bytes),uint256,uint256,uint8,bytes32) (runs: 2048, μ: 39810, ~: 38276) +LibOpCallNPTest:testOpCallNPIntegritySourceIndexOutOfBounds((uint256,uint256,uint256,uint256[],uint256,bytes),uint256,uint256,uint256,uint256,bytes32) (runs: 2048, μ: 37505, ~: 35590) +LibOpCallNPTest:testOpCallNPIntegrityTooManyOutputs((uint256,uint256,uint256,uint256[],uint256,bytes),uint256,uint256,uint8,bytes32) (runs: 2048, μ: 36210, ~: 35993) +LibOpCallNPTest:testOpCallNPRunInputsMismatch() (gas: 73763) +LibOpCallNPTest:testOpCallNPRunNoIO() (gas: 708857) +LibOpCallNPTest:testOpCallNPRunOutputsMismatch() (gas: 66546) +LibOpCallNPTest:testOpCallNPRunRecursive() (gas: 302226) +LibOpCallNPTest:testOpCallNPRunSourceDoesNotExist() (gas: 351530) +LibOpCeilTest:testOpCeilEval() (gas: 208294) +LibOpCeilTest:testOpCeilEvalOperandDisallowed() (gas: 17835) +LibOpCeilTest:testOpCeilIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint256) (runs: 2048, μ: 13879, ~: 13849) +LibOpCeilTest:testOpCeilRun(uint256,uint16) (runs: 2048, μ: 20396, ~: 20603) +LibOpCeilTest:testOpCeilTwoInputs() (gas: 40498) +LibOpCeilTest:testOpCeilTwoOutputs() (gas: 36085) +LibOpCeilTest:testOpCeilZeroInputs() (gas: 30203) +LibOpCeilTest:testOpCeilZeroOutputs() (gas: 35081) +LibOpChainIdNPTest:testOpChainIDNPEval(uint64,uint256) (runs: 2048, μ: 46206, ~: 46206) +LibOpChainIdNPTest:testOpChainIDNPIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint8,uint16) (runs: 2048, μ: 19439, ~: 19492) +LibOpChainIdNPTest:testOpChainIdNPEvalFail() (gas: 34363) +LibOpChainIdNPTest:testOpChainIdNPRun(uint64,uint16) (runs: 2048, μ: 16607, ~: 16607) +LibOpChainIdNPTest:testOpChainIdNPTwoOutputs() (gas: 31129) +LibOpChainIdNPTest:testOpChainIdNPZeroOutputs() (gas: 30103) +LibOpConditionsNPTest:testOpConditionsNPEval1FalseInput1TrueInput() (gas: 70019) +LibOpConditionsNPTest:testOpConditionsNPEval1FalseInputRevert() (gas: 54464) +LibOpConditionsNPTest:testOpConditionsNPEval1TrueInput1FalseInput() (gas: 69893) +LibOpConditionsNPTest:testOpConditionsNPEval1TrueInputZeroOutput() (gas: 57011) +LibOpConditionsNPTest:testOpConditionsNPEval2MixedInputs() (gas: 57013) +LibOpConditionsNPTest:testOpConditionsNPEval2TrueInputs() (gas: 69894) +LibOpConditionsNPTest:testOpConditionsNPEvalErrorCode() (gas: 66410) +LibOpConditionsNPTest:testOpConditionsNPEvalFail0Inputs() (gas: 30360) +LibOpConditionsNPTest:testOpConditionsNPEvalFail1Inputs() (gas: 34639) +LibOpConditionsNPTest:testOpConditionsNPEvalUnhappyOperand() (gas: 18305) +LibOpConditionsNPTest:testOpConditionsNPIntegrityHappy((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint8,uint16) (runs: 2048, μ: 19997, ~: 20089) +LibOpConditionsNPTest:testOpConditionsNPRun(uint256[],uint256) (runs: 2048, μ: 19641, ~: 19743) +LibOpConditionsNPTest:testOpConditionsNPRunNoConditionsMet(uint256[],string) (runs: 2048, μ: 25208, ~: 24938) +LibOpConditionsNPTest:testOpConditionsNPTwoOutputs() (gas: 39888) +LibOpConditionsNPTest:testOpConditionsNPZeroOutputs() (gas: 38889) +LibOpConstantNPTest:testOpConstantEvalNPE2E() (gas: 53786) +LibOpConstantNPTest:testOpConstantEvalZeroConstants() (gas: 41484) +LibOpConstantNPTest:testOpConstantNPIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint256) (runs: 2048, μ: 19241, ~: 19225) +LibOpConstantNPTest:testOpConstantNPIntegrityOOBConstants((uint256,uint256,uint256,uint256[],uint256,bytes),uint256) (runs: 2048, μ: 18107, ~: 18108) +LibOpConstantNPTest:testOpConstantNPMultipleOutputErrorSugared() (gas: 31852) +LibOpConstantNPTest:testOpConstantNPMultipleOutputErrorUnsugared() (gas: 41813) +LibOpConstantNPTest:testOpConstantNPRun(uint256[],uint16) (runs: 2048, μ: 53277, ~: 53322) +LibOpConstantNPTest:testOpConstantNPZeroOutputErrorSugared() (gas: 30496) +LibOpConstantNPTest:testOpConstantNPZeroOutputErrorUnsugared() (gas: 40402) +LibOpContextNPTest:testOpContextNPEval00(uint256[][]) (runs: 2048, μ: 7239042, ~: 6126133) +LibOpContextNPTest:testOpContextNPEval01(uint256[][]) (runs: 2048, μ: 7232806, ~: 6116670) +LibOpContextNPTest:testOpContextNPEval10(uint256[][]) (runs: 2048, μ: 7278488, ~: 6183761) +LibOpContextNPTest:testOpContextNPEval11(uint256[][]) (runs: 2048, μ: 7275172, ~: 6203107) +LibOpContextNPTest:testOpContextNPEvalOOBi(uint256[]) (runs: 2048, μ: 76577, ~: 76665) +LibOpContextNPTest:testOpContextNPEvalOOBj(uint256) (runs: 2048, μ: 47576, ~: 47576) +LibOpContextNPTest:testOpContextNPIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint256) (runs: 2048, μ: 14558, ~: 14528) +LibOpContextNPTest:testOpContextNPOneInput() (gas: 41806) +LibOpContextNPTest:testOpContextNPRun(uint256[][],uint256,uint256) (runs: 2048, μ: 10520944, ~: 8961145) +LibOpContextNPTest:testOpContextNPRunOOBi(uint256[][],uint256,uint256) (runs: 2048, μ: 5494721, ~: 4781618) +LibOpContextNPTest:testOpContextNPRunOOBj(uint256[][],uint256,uint256) (runs: 2048, μ: 5522188, ~: 4828386) +LibOpContextNPTest:testOpContextNPTwoInputs() (gas: 46929) +LibOpContextNPTest:testOpContextNPTwoOutputs() (gas: 37298) +LibOpContextNPTest:testOpContextNPZeroOutputs() (gas: 36270) +LibOpCtPopNPTest:testOpCtPopNPEval(uint256) (runs: 2048, μ: 63962, ~: 60857) +LibOpCtPopNPTest:testOpCtPopNPIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint256) (runs: 2048, μ: 13878, ~: 13848) +LibOpCtPopNPTest:testOpCtPopNPRun(uint256) (runs: 2048, μ: 16679, ~: 16680) +LibOpCtPopNPTest:testOpCtPopNPTwoInputs() (gas: 41554) +LibOpCtPopNPTest:testOpCtPopNPTwoOutputs() (gas: 37207) +LibOpCtPopNPTest:testOpCtPopNPZeroInputs() (gas: 31258) +LibOpCtPopNPTest:testOpCtPopNPZeroOutputs() (gas: 36159) +LibOpDecodeBitsNPTest:testOpDecodeBitsNPEvalHappy() (gas: 836330) +LibOpDecodeBitsNPTest:testOpDecodeBitsNPEvalTwoInputs() (gas: 47409) +LibOpDecodeBitsNPTest:testOpDecodeBitsNPEvalTwoOutputs() (gas: 43086) +LibOpDecodeBitsNPTest:testOpDecodeBitsNPEvalZeroInputs() (gas: 37159) +LibOpDecodeBitsNPTest:testOpDecodeBitsNPEvalZeroOutputs() (gas: 41992) +LibOpDecodeBitsNPTest:testOpDecodeBitsNPIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint8,uint8,uint8) (runs: 2048, μ: 22060, ~: 22206) +LibOpDecodeBitsNPTest:testOpDecodeBitsNPIntegrityFail((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint8) (runs: 2048, μ: 19426, ~: 19364) +LibOpDecodeBitsNPTest:testOpDecodeBitsNPIntegrityFailZeroLength((uint256,uint256,uint256,uint256[],uint256,bytes),uint8) (runs: 2048, μ: 13873, ~: 13849) +LibOpDecodeBitsNPTest:testOpDecodeBitsNPRun(uint256,uint8,uint8) (runs: 2048, μ: 20851, ~: 20668) +LibOpDivTest:testDebugOpDivRun() (gas: 11706) +LibOpDivTest:testOpDivEvalOneInput() (gas: 126900) +LibOpDivTest:testOpDivEvalOperandsDisallowed() (gas: 93429) +LibOpDivTest:testOpDivEvalThreeInputsHappy() (gas: 370588) +LibOpDivTest:testOpDivEvalThreeInputsUnhappy() (gas: 207933) +LibOpDivTest:testOpDivEvalThreeInputsUnhappyOverflow() (gas: 165561) +LibOpDivTest:testOpDivEvalTwoInputsHappy() (gas: 328277) +LibOpDivTest:testOpDivEvalTwoInputsUnhappy() (gas: 141121) +LibOpDivTest:testOpDivEvalTwoInputsUnhappyOverflow() (gas: 99815) +LibOpDivTest:testOpDivEvalTwoOutputs() (gas: 41831) +LibOpDivTest:testOpDivEvalZeroInputs() (gas: 30156) +LibOpDivTest:testOpDivEvalZeroOutputs() (gas: 40786) +LibOpDivTest:testOpDivIntegrityHappy((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint16) (runs: 2048, μ: 17971, ~: 17979) +LibOpDivTest:testOpDivIntegrityUnhappyOneInput((uint256,uint256,uint256,uint256[],uint256,bytes)) (runs: 2048, μ: 13797, ~: 13644) +LibOpDivTest:testOpDivIntegrityUnhappyZeroInputs((uint256,uint256,uint256,uint256[],uint256,bytes)) (runs: 2048, μ: 13820, ~: 13667) +LibOpDivTest:testOpDivRun(uint256[]) (runs: 2048, μ: 25144, ~: 24769) +LibOpERC20AllowanceTest:testOpERC20AllowanceNPEvalFourInputs() (gas: 55762) +LibOpERC20AllowanceTest:testOpERC20AllowanceNPEvalHappy(uint256,uint8) (runs: 2048, μ: 70963, ~: 71019) +LibOpERC20AllowanceTest:testOpERC20AllowanceNPEvalOneInput() (gas: 37109) +LibOpERC20AllowanceTest:testOpERC20AllowanceNPEvalOperandDisallowed() (gas: 18791) +LibOpERC20AllowanceTest:testOpERC20AllowanceNPEvalTwoInputs() (gas: 43521) +LibOpERC20AllowanceTest:testOpERC20AllowanceNPEvalTwoOutputs() (gas: 50587) +LibOpERC20AllowanceTest:testOpERC20AllowanceNPEvalZeroInputs() (gas: 31077) +LibOpERC20AllowanceTest:testOpERC20AllowanceNPEvalZeroOutputs() (gas: 49521) +LibOpERC20AllowanceTest:testOpERC20AllowanceNPIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint256) (runs: 2048, μ: 13859, ~: 13829) +LibOpERC20AllowanceTest:testOpERC20AllowanceNPRun(address,address,address,uint256,uint8) (runs: 2048, μ: 26859, ~: 26907) +LibOpERC20BalanceOfTest:testOpERC20BalanceOfNPEvalHappy(uint256,uint8) (runs: 2048, μ: 64673, ~: 64592) +LibOpERC20BalanceOfTest:testOpERC20BalanceOfNPEvalOneInput() (gas: 37165) +LibOpERC20BalanceOfTest:testOpERC20BalanceOfNPEvalOperandDisallowed() (gas: 18872) +LibOpERC20BalanceOfTest:testOpERC20BalanceOfNPEvalOverflow(uint256,uint8) (runs: 2048, μ: 60637, ~: 60637) +LibOpERC20BalanceOfTest:testOpERC20BalanceOfNPEvalThreeInputs() (gas: 49456) +LibOpERC20BalanceOfTest:testOpERC20BalanceOfNPEvalTwoOutputs() (gas: 44285) +LibOpERC20BalanceOfTest:testOpERC20BalanceOfNPEvalZeroInputs() (gas: 31175) +LibOpERC20BalanceOfTest:testOpERC20BalanceOfNPEvalZeroOutputs() (gas: 43261) +LibOpERC20BalanceOfTest:testOpERC20BalanceOfNPIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint256) (runs: 2048, μ: 13879, ~: 13849) +LibOpERC20BalanceOfTest:testOpERC20BalanceOfNPRun(address,address,uint256,uint16,uint8) (runs: 2048, μ: 26934, ~: 26855) +LibOpERC20TotalSupplyTest:testOpERC20TotalSupplyNPEvalHappy(uint256,uint8) (runs: 2048, μ: 57821, ~: 57738) +LibOpERC20TotalSupplyTest:testOpERC20TotalSupplyNPEvalOperandDisallowed() (gas: 19078) +LibOpERC20TotalSupplyTest:testOpERC20TotalSupplyNPEvalOverflow(uint256,uint8) (runs: 2048, μ: 53851, ~: 53851) +LibOpERC20TotalSupplyTest:testOpERC20TotalSupplyNPEvalTwoInputs() (gas: 43782) +LibOpERC20TotalSupplyTest:testOpERC20TotalSupplyNPEvalTwoOutputs() (gas: 38151) +LibOpERC20TotalSupplyTest:testOpERC20TotalSupplyNPEvalZeroInputs() (gas: 31338) +LibOpERC20TotalSupplyTest:testOpERC20TotalSupplyNPEvalZeroOutputs() (gas: 37104) +LibOpERC20TotalSupplyTest:testOpERC20TotalSupplyNPIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint256) (runs: 2048, μ: 13859, ~: 13829) +LibOpERC20TotalSupplyTest:testOpERC20TotalSupplyNPRun(address,uint256,uint16,uint8) (runs: 2048, μ: 26193, ~: 26109) +LibOpERC5313OwnerNPTest:testOpERC5313OwnerNPEvalHappy() (gas: 54484) +LibOpERC5313OwnerNPTest:testOpERC5313OwnerNPEvalOperandDisallowed() (gas: 18576) +LibOpERC5313OwnerNPTest:testOpERC5313OwnerNPEvalTwoInputs() (gas: 43346) +LibOpERC5313OwnerNPTest:testOpERC5313OwnerNPEvalTwoOutputs() (gas: 37623) +LibOpERC5313OwnerNPTest:testOpERC5313OwnerNPEvalZeroInputs() (gas: 30900) +LibOpERC5313OwnerNPTest:testOpERC5313OwnerNPEvalZeroOutputs() (gas: 36572) +LibOpERC5313OwnerNPTest:testOpERC5313OwnerOfNPIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint256) (runs: 2048, μ: 13836, ~: 13806) +LibOpERC5313OwnerNPTest:testOpERC5313OwnerOfNPRun(address,address,uint16) (runs: 2048, μ: 23167, ~: 23167) +LibOpERC721OwnerOfTest:testOpERC721OwnerOfNPEvalFail0() (gas: 30653) +LibOpERC721OwnerOfTest:testOpERC721OwnerOfNPEvalFail1() (gas: 34976) +LibOpERC721OwnerOfTest:testOpERC721OwnerOfNPEvalFail3() (gas: 44395) +LibOpERC721OwnerOfTest:testOpERC721OwnerOfNPEvalFailOperand() (gas: 18409) +LibOpERC721OwnerOfTest:testOpERC721OwnerOfNPEvalHappy(address,uint256,address) (runs: 2048, μ: 95436, ~: 91777) +LibOpERC721OwnerOfTest:testOpERC721OwnerOfNPEvalOneInput() (gas: 35428) +LibOpERC721OwnerOfTest:testOpERC721OwnerOfNPEvalThreeInputs() (gas: 44899) +LibOpERC721OwnerOfTest:testOpERC721OwnerOfNPEvalZeroInputs() (gas: 31117) +LibOpERC721OwnerOfTest:testOpERC721OwnerOfNPEvalZeroOutputs() (gas: 39683) +LibOpERC721OwnerOfTest:testOpERC721OwnerOfNPIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint8) (runs: 2048, μ: 13861, ~: 13838) +LibOpERC721OwnerOfTest:testOpERC721OwnerOfNPRun(address,uint256,address,uint16) (runs: 2048, μ: 23764, ~: 23764) +LibOpERC721OwnerOfTest:testOpERC721OwnerOfNPTwoOutputs() (gas: 40726) +LibOpETest:testOpEEval() (gas: 43885) +LibOpETest:testOpEEvalOneInput() (gas: 34204) +LibOpETest:testOpEEvalTwoOutputs() (gas: 30600) +LibOpETest:testOpEEvalZeroOutputs() (gas: 29552) +LibOpETest:testOpEIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint8,uint16) (runs: 2048, μ: 19443, ~: 19492) +LibOpETest:testOpERun(uint16) (runs: 2048, μ: 16015, ~: 16015) +LibOpEncodeBitsNPTest:testOpEncodeBitsNPEvalHappy() (gas: 839051) +LibOpEncodeBitsNPTest:testOpEncodeBitsNPEvalOneInput() (gas: 42290) +LibOpEncodeBitsNPTest:testOpEncodeBitsNPEvalThreeInputs() (gas: 52447) +LibOpEncodeBitsNPTest:testOpEncodeBitsNPEvalTwoOutputs() (gas: 48054) +LibOpEncodeBitsNPTest:testOpEncodeBitsNPEvalZeroInputs() (gas: 37073) +LibOpEncodeBitsNPTest:testOpEncodeBitsNPEvalZeroOutputs() (gas: 47053) +LibOpEncodeBitsNPTest:testOpEncodeBitsNPIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint8) (runs: 2048, μ: 18146, ~: 18133) +LibOpEncodeBitsNPTest:testOpEncodeBitsNPIntegrityFail((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint8) (runs: 2048, μ: 19550, ~: 19556) +LibOpEncodeBitsNPTest:testOpEncodeBitsNPIntegrityFailZeroLength((uint256,uint256,uint256,uint256[],uint256,bytes),uint8) (runs: 2048, μ: 14045, ~: 14021) +LibOpEncodeBitsNPTest:testOpEncodeBitsNPRun(uint256,uint256,uint8,uint8) (runs: 2048, μ: 21261, ~: 21069) +LibOpEnsureNPTest:testOpEnsureNPEvalBadOutputs() (gas: 35192) +LibOpEnsureNPTest:testOpEnsureNPEvalBadOutputs2() (gas: 34532) +LibOpEnsureNPTest:testOpEnsureNPEvalHappy() (gas: 168250) +LibOpEnsureNPTest:testOpEnsureNPEvalOne() (gas: 34869) +LibOpEnsureNPTest:testOpEnsureNPEvalThree() (gas: 46416) +LibOpEnsureNPTest:testOpEnsureNPEvalUnhappy() (gas: 111811) +LibOpEnsureNPTest:testOpEnsureNPEvalUnhappyOperand() (gas: 17295) +LibOpEnsureNPTest:testOpEnsureNPEvalZero() (gas: 29605) +LibOpEnsureNPTest:testOpEnsureNPIntegrityHappy((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint8,uint16) (runs: 2048, μ: 19504, ~: 19557) +LibOpEnsureNPTest:testOpEnsureNPIntegrityUnhappy((uint256,uint256,uint256,uint256[],uint256,bytes)) (runs: 2048, μ: 13764, ~: 13611) +LibOpEnsureNPTest:testOpEnsureNPOneOutput() (gas: 39962) +LibOpEnsureNPTest:testOpEnsureNPRun(uint256,string) (runs: 2048, μ: 16542, ~: 16613) +LibOpEqualToNPTest:testOpEqualToNPEval2InputsBothOne() (gas: 55573) +LibOpEqualToNPTest:testOpEqualToNPEval2InputsFirstOneSecondZero() (gas: 56500) +LibOpEqualToNPTest:testOpEqualToNPEval2InputsFirstZeroSecondOne() (gas: 56479) +LibOpEqualToNPTest:testOpEqualToNPEval2ZeroInputs() (gas: 55615) +LibOpEqualToNPTest:testOpEqualToNPEvalFail0Inputs() (gas: 30053) +LibOpEqualToNPTest:testOpEqualToNPEvalFail1Input() (gas: 34352) +LibOpEqualToNPTest:testOpEqualToNPEvalFail3Inputs() (gas: 42725) +LibOpEqualToNPTest:testOpEqualToNPIntegrityHappy((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint8,uint16) (runs: 2048, μ: 19444, ~: 19492) +LibOpEqualToNPTest:testOpEqualToNPRun(uint256,uint256) (runs: 2048, μ: 16571, ~: 16572) +LibOpEqualToNPTest:testOpEqualToNPTwoOutputs() (gas: 41423) +LibOpEqualToNPTest:testOpEqualToNPZeroOutputs() (gas: 40424) +LibOpEveryNPTest:testOpAnyNPEvalFail() (gas: 30560) +LibOpEveryNPTest:testOpEveryNPEval1FalseInput() (gas: 50766) +LibOpEveryNPTest:testOpEveryNPEval1TrueInput() (gas: 50805) +LibOpEveryNPTest:testOpEveryNPEval2FalseInputs() (gas: 56143) +LibOpEveryNPTest:testOpEveryNPEval2MixedInputs() (gas: 57125) +LibOpEveryNPTest:testOpEveryNPEval2MixedInputs2() (gas: 57071) +LibOpEveryNPTest:testOpEveryNPEval2TrueInputs() (gas: 57161) +LibOpEveryNPTest:testOpEveryNPIntegrityHappy((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint8,uint16) (runs: 2048, μ: 19630, ~: 19699) +LibOpEveryNPTest:testOpEveryNPIntegrityUnhappyZeroInputs((uint256,uint256,uint256,uint256[],uint256,bytes)) (runs: 2048, μ: 13747, ~: 13594) +LibOpEveryNPTest:testOpEveryNPRun(uint256[]) (runs: 2048, μ: 20480, ~: 20545) +LibOpEveryNPTest:testOpEveryNPTwoOutputs() (gas: 36847) +LibOpEveryNPTest:testOpEveryNPZeroOutputs() (gas: 35820) +LibOpExp2Test:testOpExp2Eval() (gas: 212859) +LibOpExp2Test:testOpExp2EvalBad() (gas: 67085) +LibOpExp2Test:testOpExp2EvalOperandDisallowed() (gas: 18525) +LibOpExp2Test:testOpExp2Integrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint256) (runs: 2048, μ: 13835, ~: 13805) +LibOpExp2Test:testOpExp2Run(uint256,uint16) (runs: 2048, μ: 24021, ~: 25086) +LibOpExp2Test:testOpExp2TwoOutputs() (gas: 36733) +LibOpExp2Test:testOpExp2ZeroOutputs() (gas: 35705) +LibOpExpTest:testOpExpEval() (gas: 217864) +LibOpExpTest:testOpExpEvalOperandDisallowed() (gas: 17752) +LibOpExpTest:testOpExpEvalTwoInputs() (gas: 40394) +LibOpExpTest:testOpExpEvalZeroInputs() (gas: 30121) +LibOpExpTest:testOpExpIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint256) (runs: 2048, μ: 13856, ~: 13826) +LibOpExpTest:testOpExpRun(uint256,uint16) (runs: 2048, μ: 24317, ~: 25588) +LibOpExpTest:testOpExpTwoOutputs() (gas: 36006) +LibOpExpTest:testOpExpZeroOutputs() (gas: 35000) +LibOpExponentialGrowthTest:testOpExponentialGrowthEval() (gas: 689027) +LibOpExponentialGrowthTest:testOpExponentialGrowthEvalFourInputs() (gas: 52560) +LibOpExponentialGrowthTest:testOpExponentialGrowthEvalOneInput() (gas: 36520) +LibOpExponentialGrowthTest:testOpExponentialGrowthEvalOperandDisallowed() (gas: 18959) +LibOpExponentialGrowthTest:testOpExponentialGrowthEvalTwoInputs() (gas: 42304) +LibOpExponentialGrowthTest:testOpExponentialGrowthEvalTwoOutputs() (gas: 48074) +LibOpExponentialGrowthTest:testOpExponentialGrowthEvalZeroInputs() (gas: 30917) +LibOpExponentialGrowthTest:testOpExponentialGrowthEvalZeroOutputs() (gas: 47008) +LibOpExponentialGrowthTest:testOpExponentialGrowthIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint256) (runs: 2048, μ: 13834, ~: 13804) +LibOpExponentialGrowthTest:testOpExponentialGrowthRun(uint256,uint256,uint256,uint16) (runs: 2048, μ: 39048, ~: 39160) +LibOpExternNPTest:testOpExternNPEvalHappy() (gas: 99409) +LibOpExternNPTest:testOpExternNPEvalMultipleInputsOutputsHappy() (gas: 114332) +LibOpExternNPTest:testOpExternNPIntegrityHappy((uint256,uint256,uint256,uint256[],uint256,bytes),address,uint16,uint8,uint8) (runs: 2048, μ: 34374, ~: 34223) +LibOpExternNPTest:testOpExternNPIntegrityNotAnExternContract((uint256,uint256,uint256,uint256[],uint256,bytes),address,uint16,uint8,uint8) (runs: 2048, μ: 52617, ~: 52172) +LibOpExternNPTest:testOpExternNPRunHappy(address,uint256[],uint16,uint256[],uint256[]) (runs: 2048, μ: 116351, ~: 115761) +LibOpFloorTest:testOpFloorEval() (gas: 247261) +LibOpFloorTest:testOpFloorEvalOperandDisallowed() (gas: 17917) +LibOpFloorTest:testOpFloorIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint256) (runs: 2048, μ: 13856, ~: 13826) +LibOpFloorTest:testOpFloorRun(uint256,uint16) (runs: 2048, μ: 20258, ~: 20466) +LibOpFloorTest:testOpFloorTwoInputs() (gas: 40578) +LibOpFloorTest:testOpFloorTwoOutputs() (gas: 36167) +LibOpFloorTest:testOpFloorZeroInputs() (gas: 30262) +LibOpFloorTest:testOpFloorZeroOutputs() (gas: 35141) +LibOpFracTest:testOpFracEval() (gas: 246698) +LibOpFracTest:testOpFracEvalOperandDisallowed() (gas: 17835) +LibOpFracTest:testOpFracIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint256) (runs: 2048, μ: 13834, ~: 13804) +LibOpFracTest:testOpFracRun(uint256,uint16) (runs: 2048, μ: 20218, ~: 20425) +LibOpFracTest:testOpFracTwoInputs() (gas: 40488) +LibOpFracTest:testOpFracTwoOutputs() (gas: 36120) +LibOpFracTest:testOpFracZeroInputs() (gas: 30191) +LibOpFracTest:testOpFracZeroOutputs() (gas: 35070) +LibOpGetNPTest:testLibOpGetNPEvalKeyNotSet() (gas: 303282) +LibOpGetNPTest:testLibOpGetNPEvalOperandDisallowed() (gas: 58646) +LibOpGetNPTest:testLibOpGetNPEvalSetThenGet() (gas: 516383) +LibOpGetNPTest:testLibOpGetNPEvalStoreAndSetAndGet() (gas: 252945) +LibOpGetNPTest:testLibOpGetNPEvalStoreThenGet() (gas: 468972) +LibOpGetNPTest:testLibOpGetNPEvalThreeInputs() (gas: 44966) +LibOpGetNPTest:testLibOpGetNPEvalTwoInputs() (gas: 39739) +LibOpGetNPTest:testLibOpGetNPEvalTwoOutputs() (gas: 35284) +LibOpGetNPTest:testLibOpGetNPEvalZeroInputs() (gas: 29769) +LibOpGetNPTest:testLibOpGetNPEvalZeroOutputs() (gas: 34257) +LibOpGetNPTest:testLibOpGetNPIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint8,uint16) (runs: 2048, μ: 20314, ~: 20410) +LibOpGetNPTest:testLibOpGetNPRunState(uint256,uint256,uint16) (runs: 2048, μ: 19501, ~: 19505) +LibOpGetNPTest:testLibOpGetNPRunStateAndStore(uint256,uint256,uint256,uint16) (runs: 2048, μ: 47306, ~: 47524) +LibOpGetNPTest:testLibOpGetNPRunStore(uint256,uint256,uint16) (runs: 2048, μ: 49516, ~: 49724) +LibOpGetNPTest:testLibOpGetNPRunStoreDifferentNamespace(uint256,uint256,uint16) (runs: 2048, μ: 51046, ~: 51254) +LibOpGetNPTest:testLibOpGetNPRunUnset(uint256,uint16) (runs: 2048, μ: 24523, ~: 24528) +LibOpGmTest:testOpGmEval() (gas: 420651) +LibOpGmTest:testOpGmEvalOperandDisallowed() (gas: 17695) +LibOpGmTest:testOpGmIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint256) (runs: 2048, μ: 13878, ~: 13848) +LibOpGmTest:testOpGmOneInput() (gas: 36120) +LibOpGmTest:testOpGmRun(uint256,uint256,uint16) (runs: 2048, μ: 23534, ~: 23449) +LibOpGmTest:testOpGmThreeInputs() (gas: 45426) +LibOpGmTest:testOpGmTwoOutputs() (gas: 41009) +LibOpGmTest:testOpGmZeroOutputs() (gas: 39989) +LibOpGreaterThanNPTest:testOpGreaterThanNPEval2InputsBothOne() (gas: 55939) +LibOpGreaterThanNPTest:testOpGreaterThanNPEval2InputsFirstOneSecondZero() (gas: 56803) +LibOpGreaterThanNPTest:testOpGreaterThanNPEval2InputsFirstZeroSecondOne() (gas: 56802) +LibOpGreaterThanNPTest:testOpGreaterThanNPEval2ZeroInputs() (gas: 55916) +LibOpGreaterThanNPTest:testOpGreaterThanNPEvalFail0Inputs() (gas: 30388) +LibOpGreaterThanNPTest:testOpGreaterThanNPEvalFail1Input() (gas: 34700) +LibOpGreaterThanNPTest:testOpGreaterThanNPEvalFail3Inputs() (gas: 43020) +LibOpGreaterThanNPTest:testOpGreaterThanNPIntegrityHappy((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint8,uint16) (runs: 2048, μ: 19425, ~: 19486) +LibOpGreaterThanNPTest:testOpGreaterThanNPRun(uint256,uint256) (runs: 2048, μ: 16567, ~: 16563) +LibOpGreaterThanNPTest:testOpGreaterThanNPTwoOutputs() (gas: 42410) +LibOpGreaterThanNPTest:testOpGreaterThanNPZeroOutputs() (gas: 41409) +LibOpGreaterThanOrEqualToNPTest:testOpGreaterThanOrEqualToNPEval2InputsBothOne() (gas: 56982) +LibOpGreaterThanOrEqualToNPTest:testOpGreaterThanOrEqualToNPEval2InputsFirstOneSecondZero() (gas: 57844) +LibOpGreaterThanOrEqualToNPTest:testOpGreaterThanOrEqualToNPEval2InputsFirstZeroSecondOne() (gas: 57866) +LibOpGreaterThanOrEqualToNPTest:testOpGreaterThanOrEqualToNPEval2ZeroInputs() (gas: 56962) +LibOpGreaterThanOrEqualToNPTest:testOpGreaterThanOrEqualToNPEvalFail0Inputs() (gas: 31371) +LibOpGreaterThanOrEqualToNPTest:testOpGreaterThanOrEqualToNPEvalFail1Input() (gas: 35743) +LibOpGreaterThanOrEqualToNPTest:testOpGreaterThanOrEqualToNPEvalFail3Inputs() (gas: 44106) +LibOpGreaterThanOrEqualToNPTest:testOpGreaterThanOrEqualToNPIntegrityHappy((uint256,uint256,uint256,uint256[],uint256,bytes),uint8) (runs: 2048, μ: 13838, ~: 13815) +LibOpGreaterThanOrEqualToNPTest:testOpGreaterThanOrEqualToNPRun(uint256,uint256) (runs: 2048, μ: 16574, ~: 16570) +LibOpGreaterThanOrEqualToNPTest:testOpGreaterThanOrEqualToNPTwoOutputs() (gas: 43581) +LibOpGreaterThanOrEqualToNPTest:testOpGreaterThanOrEqualToNPZeroOutputs() (gas: 42357) +LibOpHashNPTest:testOpHashNPEval0Inputs() (gas: 45329) +LibOpHashNPTest:testOpHashNPEval1Input() (gas: 52776) +LibOpHashNPTest:testOpHashNPEval2Inputs() (gas: 60931) +LibOpHashNPTest:testOpHashNPEval2InputsDifferent() (gas: 61637) +LibOpHashNPTest:testOpHashNPEval2InputsOtherStack() (gas: 78001) +LibOpHashNPTest:testOpHashNPIntegrityHappy((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint8,uint16) (runs: 2048, μ: 19479, ~: 19599) +LibOpHashNPTest:testOpHashNPRun(uint256[]) (runs: 2048, μ: 19321, ~: 19429) +LibOpHashNPTest:testOpHashNPTwoOutputs() (gas: 30856) +LibOpHashNPTest:testOpHashNPZeroOutputs() (gas: 29423) +LibOpHeadroomTest:testOpHeadroomEval() (gas: 248521) +LibOpHeadroomTest:testOpHeadroomEvalOperandDisallowed() (gas: 18181) +LibOpHeadroomTest:testOpHeadroomIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint256) (runs: 2048, μ: 13834, ~: 13804) +LibOpHeadroomTest:testOpHeadroomRun(uint256,uint16) (runs: 2048, μ: 20307, ~: 20513) +LibOpHeadroomTest:testOpHeadroomTwoInputs() (gas: 40800) +LibOpHeadroomTest:testOpHeadroomTwoOutputs() (gas: 36432) +LibOpHeadroomTest:testOpHeadroomZeroInputs() (gas: 30526) +LibOpHeadroomTest:testOpHeadroomZeroOutputs() (gas: 35404) +LibOpIfNPTest:testOpIfNPEval3InputsFirstOneSecondTwoThirdThree() (gas: 62443) +LibOpIfNPTest:testOpIfNPEval3InputsFirstOneSecondZeroThirdThree() (gas: 62400) +LibOpIfNPTest:testOpIfNPEval3InputsFirstTwoSecondThreeThirdFour() (gas: 62399) +LibOpIfNPTest:testOpIfNPEval3InputsFirstTwoSecondZeroThirdFour() (gas: 62420) +LibOpIfNPTest:testOpIfNPEval3InputsFirstZeroSecondOneThirdTwo() (gas: 62442) +LibOpIfNPTest:testOpIfNPEval3InputsFirstZeroSecondOneThirdZero() (gas: 61490) +LibOpIfNPTest:testOpIfNPEval3InputsFirstZeroSecondZeroThirdOne() (gas: 61401) +LibOpIfNPTest:testOpIfNPEval3InputsFirstZeroSecondZeroThirdThree() (gas: 61423) +LibOpIfNPTest:testOpIfNPEvalEmptyStringTruthy() (gas: 61389) +LibOpIfNPTest:testOpIfNPEvalFail0Inputs() (gas: 29547) +LibOpIfNPTest:testOpIfNPEvalFail1Input() (gas: 33910) +LibOpIfNPTest:testOpIfNPEvalFail2Inputs() (gas: 38088) +LibOpIfNPTest:testOpIfNPEvalFail4Inputs() (gas: 46390) +LibOpIfNPTest:testOpIfNPEvalTwoOutputs() (gas: 46706) +LibOpIfNPTest:testOpIfNPEvalZeroOutputs() (gas: 45641) +LibOpIfNPTest:testOpIfNPIntegrityHappy((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint8,uint16) (runs: 2048, μ: 19426, ~: 19477) +LibOpIfNPTest:testOpIfNPRun(uint256,uint256,uint256) (runs: 2048, μ: 16803, ~: 16803) +LibOpInvTest:testOpExpEvalOperandDisallowed() (gas: 17774) +LibOpInvTest:testOpInvEval() (gas: 168366) +LibOpInvTest:testOpInvIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint256) (runs: 2048, μ: 13857, ~: 13827) +LibOpInvTest:testOpInvRun(uint256,uint16) (runs: 2048, μ: 20339, ~: 20544) +LibOpInvTest:testOpInvTwoInputs() (gas: 40416) +LibOpInvTest:testOpInvTwoOutputs() (gas: 36005) +LibOpInvTest:testOpInvZeroInputs() (gas: 30122) +LibOpInvTest:testOpInvZeroOutputs() (gas: 35001) +LibOpIsZeroNPTest:testOpIsZeroNPEval1NonZeroInput() (gas: 50374) +LibOpIsZeroNPTest:testOpIsZeroNPEval1ZeroInput() (gas: 50070) +LibOpIsZeroNPTest:testOpIsZeroNPEvalFail0Inputs() (gas: 29960) +LibOpIsZeroNPTest:testOpIsZeroNPEvalFail2Inputs() (gas: 38437) +LibOpIsZeroNPTest:testOpIsZeroNPIntegrityHappy((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint8,uint16) (runs: 2048, μ: 19536, ~: 19600) +LibOpIsZeroNPTest:testOpIsZeroNPRun(uint256) (runs: 2048, μ: 16268, ~: 16269) +LibOpIsZeroNPTest:testOpIsZeroNPTwoOutputs() (gas: 36595) +LibOpIsZeroNPTest:testOpIsZeroNPZeroOutputs() (gas: 35241) +LibOpLessThanNPTest:testOpLessThanNPEval2InputsBothOne() (gas: 55676) +LibOpLessThanNPTest:testOpLessThanNPEval2InputsFirstOneSecondZero() (gas: 56559) +LibOpLessThanNPTest:testOpLessThanNPEval2InputsFirstZeroSecondOne() (gas: 56558) +LibOpLessThanNPTest:testOpLessThanNPEval2ZeroInputs() (gas: 55696) +LibOpLessThanNPTest:testOpLessThanNPIntegrityHappy((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint8,uint16) (runs: 2048, μ: 19478, ~: 19520) +LibOpLessThanNPTest:testOpLessThanNPRun(uint256,uint256) (runs: 2048, μ: 16553, ~: 16558) +LibOpLessThanNPTest:testOpLessThanNPTwoOutputs() (gas: 42448) +LibOpLessThanNPTest:testOpLessThanNPZeroOutputs() (gas: 40504) +LibOpLessThanNPTest:testOpLessThanToNPEvalFail0Inputs() (gas: 30168) +LibOpLessThanNPTest:testOpLessThanToNPEvalFail1Input() (gas: 34425) +LibOpLessThanNPTest:testOpLessThanToNPEvalFail3Inputs() (gas: 42829) +LibOpLessThanOrEqualToNPTest:testOpLessThanOrEqualToNPEval2InputsBothOne() (gas: 56627) +LibOpLessThanOrEqualToNPTest:testOpLessThanOrEqualToNPEval2InputsFirstOneSecondZero() (gas: 57534) +LibOpLessThanOrEqualToNPTest:testOpLessThanOrEqualToNPEval2InputsFirstZeroSecondOne() (gas: 57535) +LibOpLessThanOrEqualToNPTest:testOpLessThanOrEqualToNPEval2ZeroInputs() (gas: 56671) +LibOpLessThanOrEqualToNPTest:testOpLessThanOrEqualToNPEvalFail0Inputs() (gas: 31117) +LibOpLessThanOrEqualToNPTest:testOpLessThanOrEqualToNPEvalFail1Input() (gas: 35449) +LibOpLessThanOrEqualToNPTest:testOpLessThanOrEqualToNPEvalFail3Inputs() (gas: 43874) +LibOpLessThanOrEqualToNPTest:testOpLessThanOrEqualToNPIntegrityHappy((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint8,uint16) (runs: 2048, μ: 19470, ~: 19537) +LibOpLessThanOrEqualToNPTest:testOpLessThanOrEqualToNPRun(uint256,uint256) (runs: 2048, μ: 16582, ~: 16587) +LibOpLessThanOrEqualToNPTest:testOpLessThanOrEqualToNPTwoOutputs() (gas: 43181) +LibOpLessThanOrEqualToNPTest:testOpLessThanOrEqualToNPZeroOutputs() (gas: 42094) +LibOpLinearGrowthTest:testOpLinearGrowthEval() (gas: 646689) +LibOpLinearGrowthTest:testOpLinearGrowthEvalFourInputs() (gas: 52188) +LibOpLinearGrowthTest:testOpLinearGrowthEvalOneInput() (gas: 36169) +LibOpLinearGrowthTest:testOpLinearGrowthEvalOperandDisallowed() (gas: 18562) +LibOpLinearGrowthTest:testOpLinearGrowthEvalTwoInputs() (gas: 41865) +LibOpLinearGrowthTest:testOpLinearGrowthEvalTwoOutputs() (gas: 47661) +LibOpLinearGrowthTest:testOpLinearGrowthEvalZeroInputs() (gas: 30567) +LibOpLinearGrowthTest:testOpLinearGrowthEvalZeroOutputs() (gas: 46593) +LibOpLinearGrowthTest:testOpLinearGrowthIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint256) (runs: 2048, μ: 13836, ~: 13806) +LibOpLinearGrowthTest:testOpLinearGrowthRun(uint256,uint256,uint256,uint16) (runs: 2048, μ: 23714, ~: 23623) +LibOpLnTest:testOpLnEval() (gas: 231118) +LibOpLnTest:testOpLnEvalOperandDisallowed() (gas: 17694) +LibOpLnTest:testOpLnIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint256) (runs: 2048, μ: 13857, ~: 13827) +LibOpLnTest:testOpLnRun(uint256,uint16) (runs: 2048, μ: 33279, ~: 33302) +LibOpLnTest:testOpLnTwoInputs() (gas: 40314) +LibOpLnTest:testOpLnTwoOutputs() (gas: 35968) +LibOpLnTest:testOpLnZeroInputs() (gas: 30020) +LibOpLnTest:testOpLnZeroOutputs() (gas: 34899) +LibOpLog10Test:testOpLog10Eval() (gas: 280702) +LibOpLog10Test:testOpLog10EvalOperandDisallowed() (gas: 17937) +LibOpLog10Test:testOpLog10Integrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint256) (runs: 2048, μ: 13879, ~: 13849) +LibOpLog10Test:testOpLog10Run(uint256,uint16) (runs: 2048, μ: 36859, ~: 36877) +LibOpLog10Test:testOpLog10TwoInputs() (gas: 40600) +LibOpLog10Test:testOpLog10TwoOutputs() (gas: 36168) +LibOpLog10Test:testOpLog10ZeroInputs() (gas: 30261) +LibOpLog10Test:testOpLog10ZeroOutputs() (gas: 35141) +LibOpLog2Test:testOpLog2Eval() (gas: 270570) +LibOpLog2Test:testOpLog2EvalOperandDisallowed() (gas: 17856) +LibOpLog2Test:testOpLog2Integrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint256) (runs: 2048, μ: 13834, ~: 13804) +LibOpLog2Test:testOpLog2Run(uint256) (runs: 2048, μ: 32995, ~: 33036) +LibOpLog2Test:testOpLog2TwoInputs() (gas: 40488) +LibOpLog2Test:testOpLog2TwoOutputs() (gas: 36120) +LibOpLog2Test:testOpLog2ZeroInputs() (gas: 30193) +LibOpLog2Test:testOpLog2ZeroOutputs() (gas: 35091) +LibOpMaxTest:testOpMaxEval2InputsHappy() (gas: 551020) +LibOpMaxTest:testOpMaxEval3InputsHappy() (gas: 1864517) +LibOpMaxTest:testOpMaxEvalOneInput() (gas: 127927) +LibOpMaxTest:testOpMaxEvalOperandDisallowed() (gas: 59987) +LibOpMaxTest:testOpMaxEvalTwoOutputs() (gas: 41170) +LibOpMaxTest:testOpMaxEvalZeroInputs() (gas: 30158) +LibOpMaxTest:testOpMaxIntegrityHappy((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint16) (runs: 2048, μ: 17971, ~: 17970) +LibOpMaxTest:testOpMaxIntegrityUnhappyOneInput((uint256,uint256,uint256,uint256[],uint256,bytes)) (runs: 2048, μ: 13778, ~: 13625) +LibOpMaxTest:testOpMaxIntegrityUnhappyZeroInputs((uint256,uint256,uint256,uint256[],uint256,bytes)) (runs: 2048, μ: 13776, ~: 13623) +LibOpMaxTest:testOpMaxRun(uint256[]) (runs: 2048, μ: 20921, ~: 21069) +LibOpMaxUint256NPTest:testOpMaxUint256NPEval(uint256) (runs: 2048, μ: 44613, ~: 44613) +LibOpMaxUint256NPTest:testOpMaxUint256NPEvalFail() (gas: 34445) +LibOpMaxUint256NPTest:testOpMaxUint256NPIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint8,uint16) (runs: 2048, μ: 19442, ~: 19477) +LibOpMaxUint256NPTest:testOpMaxUint256NPRun() (gas: 15866) +LibOpMaxUint256NPTest:testOpMaxUint256NPTwoOutputs() (gas: 31254) +LibOpMaxUint256NPTest:testOpMaxUint256NPZeroOutputs() (gas: 30140) +LibOpMinTest:testOpMinEval2InputsHappy() (gas: 551025) +LibOpMinTest:testOpMinEval3InputsHappy() (gas: 3279221) +LibOpMinTest:testOpMinEvalOneInput() (gas: 127863) +LibOpMinTest:testOpMinEvalOperandDisallowed() (gas: 59966) +LibOpMinTest:testOpMinEvalZeroInputs() (gas: 30163) +LibOpMinTest:testOpMinIntegrityHappy((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint16) (runs: 2048, μ: 17979, ~: 17976) +LibOpMinTest:testOpMinIntegrityUnhappyOneInput((uint256,uint256,uint256,uint256[],uint256,bytes)) (runs: 2048, μ: 13775, ~: 13622) +LibOpMinTest:testOpMinIntegrityUnhappyZeroInputs((uint256,uint256,uint256,uint256[],uint256,bytes)) (runs: 2048, μ: 13798, ~: 13645) +LibOpMinTest:testOpMinRun(uint256[],uint16) (runs: 2048, μ: 20910, ~: 20764) +LibOpModTest:testOpModEval2InputsHappy() (gas: 785908) +LibOpModTest:testOpModEval2InputsUnhappy() (gas: 140823) +LibOpModTest:testOpModEval3InputsHappy() (gas: 1524493) +LibOpModTest:testOpModEval3InputsUnhappy() (gas: 464466) +LibOpModTest:testOpModEvalOneInput() (gas: 127927) +LibOpModTest:testOpModEvalOperandDisallowed() (gas: 60011) +LibOpModTest:testOpModEvalTwoOutputs() (gas: 41168) +LibOpModTest:testOpModEvalZeroInputs() (gas: 30156) +LibOpModTest:testOpModEvalZeroOutputs() (gas: 40125) +LibOpModTest:testOpModIntegrityHappy((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint16) (runs: 2048, μ: 17940, ~: 17947) +LibOpModTest:testOpModIntegrityUnhappyOneInput((uint256,uint256,uint256,uint256[],uint256,bytes)) (runs: 2048, μ: 13777, ~: 13624) +LibOpModTest:testOpModIntegrityUnhappyZeroInputs((uint256,uint256,uint256,uint256[],uint256,bytes)) (runs: 2048, μ: 13755, ~: 13602) +LibOpModTest:testOpModRun(uint256[]) (runs: 2048, μ: 21251, ~: 21667) +LibOpMulTest:testOpDecimal18MulNPIntegrityUnhappyOneInput((uint256,uint256,uint256,uint256[],uint256,bytes)) (runs: 2048, μ: 13799, ~: 13646) +LibOpMulTest:testOpMulEvalOneInput() (gas: 126835) +LibOpMulTest:testOpMulEvalOperandsDisallowed() (gas: 93473) +LibOpMulTest:testOpMulEvalThreeInputsHappy() (gas: 729920) +LibOpMulTest:testOpMulEvalThreeInputsUnhappyOverflow() (gas: 165387) +LibOpMulTest:testOpMulEvalTwoInputsHappy() (gas: 512115) +LibOpMulTest:testOpMulEvalTwoInputsUnhappyOverflow() (gas: 99621) +LibOpMulTest:testOpMulEvalZeroInputs() (gas: 30179) +LibOpMulTest:testOpMulIntegrityHappy((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint16) (runs: 2048, μ: 17925, ~: 17926) +LibOpMulTest:testOpMulIntegrityUnhappyZeroInputs((uint256,uint256,uint256,uint256[],uint256,bytes)) (runs: 2048, μ: 13798, ~: 13645) +LibOpMulTest:testOpMulRun(uint256[]) (runs: 2048, μ: 20737, ~: 18603) +LibOpMulTest:testOpMulTwoOutputs() (gas: 41169) +LibOpMulTest:testOpMulZeroOutputs() (gas: 40126) +LibOpPowTest:testOpPowEval() (gas: 422565) +LibOpPowTest:testOpPowEvalOneInput() (gas: 35500) +LibOpPowTest:testOpPowEvalOperandDisallowed() (gas: 17915) +LibOpPowTest:testOpPowIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint256) (runs: 2048, μ: 13856, ~: 13826) +LibOpPowTest:testOpPowRun(uint256,uint256) (runs: 2048, μ: 35357, ~: 37120) +LibOpPowTest:testOpPowThreeInputs() (gas: 45635) +LibOpPowTest:testOpPowTwoOutputs() (gas: 41243) +LibOpPowTest:testOpPowZeroOutputs() (gas: 40196) +LibOpScale18DynamicTest:testOpScale18DynamicEval() (gas: 1655856) +LibOpScale18DynamicTest:testOpScale18DynamicEvalOneInput() (gas: 132030) +LibOpScale18DynamicTest:testOpScale18DynamicEvalThreeInputs() (gas: 349735) +LibOpScale18DynamicTest:testOpScale18DynamicEvalZeroInputs() (gas: 31415) +LibOpScale18DynamicTest:testOpScale18DynamicIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint16) (runs: 2048, μ: 17899, ~: 17902) +LibOpScale18DynamicTest:testOpScale18DynamicRun(uint256,uint256,uint256,uint256) (runs: 2048, μ: 24552, ~: 24439) +LibOpScale18DynamicTest:testOpScale18DynamicTwoOutputs() (gas: 42396) +LibOpScale18DynamicTest:testOpScale18DynamicZeroOutputs() (gas: 41371) +LibOpScale18Test:testOpScale18Eval() (gas: 1556824) +LibOpScale18Test:testOpScale18EvalOneInput() (gas: 166647) +LibOpScale18Test:testOpScale18EvalZeroInputs() (gas: 34595) +LibOpScale18Test:testOpScale18Integrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint16) (runs: 2048, μ: 17846, ~: 17825) +LibOpScale18Test:testOpScale18Run(uint256,uint256,uint256,uint256) (runs: 2048, μ: 24117, ~: 24241) +LibOpScale18Test:testOpScale18TwoOutputs() (gas: 40481) +LibOpScale18Test:testOpScale18ZeroOutputs() (gas: 39452) +LibOpScale18Test:testOpUint256ToDecimal18Eval() (gas: 177947) +LibOpScaleNDynamicTest:testOpScaleNDynamicEval() (gas: 1653526) +LibOpScaleNDynamicTest:testOpScaleNDynamicEvalOneInput() (gas: 131523) +LibOpScaleNDynamicTest:testOpScaleNDynamicEvalThreeInputs() (gas: 349000) +LibOpScaleNDynamicTest:testOpScaleNDynamicEvalZeroInputs() (gas: 31323) +LibOpScaleNDynamicTest:testOpScaleNDynamicIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint16) (runs: 2048, μ: 17918, ~: 17925) +LibOpScaleNDynamicTest:testOpScaleNDynamicRun(uint256,uint256,uint256,uint256) (runs: 2048, μ: 22379, ~: 24087) +LibOpScaleNDynamicTest:testOpScaleNDynamicTwoOutputs() (gas: 42346) +LibOpScaleNDynamicTest:testOpScaleNDynamicZeroOutputs() (gas: 41280) +LibOpScaleNTest:testOpDecimal18ToIntNPEval() (gas: 297412) +LibOpScaleNTest:testOpScaleNEval() (gas: 1533292) +LibOpScaleNTest:testOpScaleNEvalOneInput() (gas: 163585) +LibOpScaleNTest:testOpScaleNEvalZeroInputs() (gas: 33816) +LibOpScaleNTest:testOpScaleNEvalZeroOutputs() (gas: 38715) +LibOpScaleNTest:testOpScaleNIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint16) (runs: 2048, μ: 17864, ~: 17846) +LibOpScaleNTest:testOpScaleNRun(uint256,uint256,uint256,uint256) (runs: 2048, μ: 22153, ~: 24136) +LibOpScaleNTest:testOpScaleNTwoOutputs() (gas: 39741) +LibOpSetNPTest:testLibOpSetNP(uint256,uint256) (runs: 2048, μ: 17584, ~: 17589) +LibOpSetNPTest:testLibOpSetNPEvalOneInput() (gas: 34177) +LibOpSetNPTest:testLibOpSetNPEvalOneOutput() (gas: 39732) +LibOpSetNPTest:testLibOpSetNPEvalOperandsDisallowed() (gas: 57116) +LibOpSetNPTest:testLibOpSetNPEvalSetTwice() (gas: 77419) +LibOpSetNPTest:testLibOpSetNPEvalThreeInputs() (gas: 44594) +LibOpSetNPTest:testLibOpSetNPEvalTwoInputs() (gas: 255478) +LibOpSetNPTest:testLibOpSetNPEvalTwoOutputs() (gas: 40392) +LibOpSetNPTest:testLibOpSetNPEvalZeroInputs() (gas: 29394) +LibOpSetNPTest:testLibOpSetNPIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint8,uint16) (runs: 2048, μ: 20206, ~: 20257) +LibOpShiftBitsLeftNPTest:testOpShiftBitsLeftNPEval() (gas: 882117) +LibOpShiftBitsLeftNPTest:testOpShiftBitsLeftNPIntegrityFailBadShiftAmount() (gas: 128896) +LibOpShiftBitsLeftNPTest:testOpShiftBitsLeftNPIntegrityFailTwoInputs() (gas: 44838) +LibOpShiftBitsLeftNPTest:testOpShiftBitsLeftNPIntegrityFailTwoOutputs() (gas: 40460) +LibOpShiftBitsLeftNPTest:testOpShiftBitsLeftNPIntegrityFailZeroInputs() (gas: 34587) +LibOpShiftBitsLeftNPTest:testOpShiftBitsLeftNPIntegrityFailZeroOutputs() (gas: 39431) +LibOpShiftBitsLeftNPTest:testOpShiftBitsLeftNPIntegrityHappy((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint8,uint8) (runs: 2048, μ: 19963, ~: 20043) +LibOpShiftBitsLeftNPTest:testOpShiftBitsLeftNPIntegrityNoop((uint256,uint256,uint256,uint256[],uint256,bytes),uint8) (runs: 2048, μ: 14033, ~: 14009) +LibOpShiftBitsLeftNPTest:testOpShiftBitsLeftNPIntegrityZero((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint16) (runs: 2048, μ: 19172, ~: 19136) +LibOpShiftBitsLeftNPTest:testOpShiftBitsLeftNPRun(uint256,uint8) (runs: 2048, μ: 16675, ~: 16675) +LibOpShiftBitsRightNPTest:testOpShiftBitsRightNPEval() (gas: 1061600) +LibOpShiftBitsRightNPTest:testOpShiftBitsRightNPIntegrityFailBadShiftAmount() (gas: 129440) +LibOpShiftBitsRightNPTest:testOpShiftBitsRightNPIntegrityHappy((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint8,uint8) (runs: 2048, μ: 19924, ~: 19926) +LibOpShiftBitsRightNPTest:testOpShiftBitsRightNPIntegrityNoop((uint256,uint256,uint256,uint256[],uint256,bytes),uint8) (runs: 2048, μ: 14001, ~: 13977) +LibOpShiftBitsRightNPTest:testOpShiftBitsRightNPIntegrityZero((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint16) (runs: 2048, μ: 17740, ~: 17725) +LibOpShiftBitsRightNPTest:testOpShiftBitsRightNPRun(uint256,uint8) (runs: 2048, μ: 16722, ~: 16722) +LibOpShiftBitsRightNPTest:testOpShiftBitsRightNPTwoInputs() (gas: 44917) +LibOpShiftBitsRightNPTest:testOpShiftBitsRightNPTwoOutputs() (gas: 40563) +LibOpShiftBitsRightNPTest:testOpShiftBitsRightNPZeroInputs() (gas: 34624) +LibOpShiftBitsRightNPTest:testOpShiftBitsRightNPZeroOutputs() (gas: 39515) +LibOpSnapToUnitTest:testOpSnapToUnitEval() (gas: 617598) +LibOpSnapToUnitTest:testOpSnapToUnitEvalBad() (gas: 103480) +LibOpSnapToUnitTest:testOpSnapToUnitEvalOperandDisallowed() (gas: 18483) +LibOpSnapToUnitTest:testOpSnapToUnitEvalTwoOutputs() (gas: 41819) +LibOpSnapToUnitTest:testOpSnapToUnitEvalZeroOutputs() (gas: 40797) +LibOpSnapToUnitTest:testOpSnapToUnitIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint256) (runs: 2048, μ: 13855, ~: 13825) +LibOpSnapToUnitTest:testOpSnapToUnitRun(uint256,uint256) (runs: 2048, μ: 20648, ~: 20331) +LibOpSqrtTest:testOpSqrtEval() (gas: 211285) +LibOpSqrtTest:testOpSqrtEvalBad() (gas: 65750) +LibOpSqrtTest:testOpSqrtEvalOperandDisallowed() (gas: 17834) +LibOpSqrtTest:testOpSqrtEvalTwoOutputs() (gas: 36086) +LibOpSqrtTest:testOpSqrtEvalZeroOutputs() (gas: 35058) +LibOpSqrtTest:testOpSqrtIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint256) (runs: 2048, μ: 13857, ~: 13827) +LibOpSqrtTest:testOpSqrtRun(uint256) (runs: 2048, μ: 21681, ~: 21976) +LibOpStackNPTest:testOpStackEval() (gas: 55644) +LibOpStackNPTest:testOpStackEvalSeveral() (gas: 88525) +LibOpStackNPTest:testOpStackNPIntegrity(bytes,uint256,uint256[],uint256) (runs: 2048, μ: 18685, ~: 18489) +LibOpStackNPTest:testOpStackNPIntegrityOOBStack(bytes,uint16,uint256[],uint16,uint256) (runs: 2048, μ: 19232, ~: 19194) +LibOpStackNPTest:testOpStackNPMultipleOutputErrorSugared() (gas: 40192) +LibOpStackNPTest:testOpStackNPMultipleOutputErrorUnsugared() (gas: 43149) +LibOpStackNPTest:testOpStackNPRun(uint256[][],uint256) (runs: 2048, μ: 2041044, ~: 1872279) +LibOpStackNPTest:testOpStackNPZeroOutputErrorSugared() (gas: 38786) +LibOpStackNPTest:testOpStackNPZeroOutputErrorUnsugared() (gas: 41709) +LibOpSubTest:testOpSubEval2InputsSaturatingUnderflow() (gas: 300204) +LibOpSubTest:testOpSubEval2InputsUnhappyUnderflow() (gas: 144893) +LibOpSubTest:testOpSubEval3InputsSaturatingUnderflow() (gas: 773283) +LibOpSubTest:testOpSubEval3InputsUnhappyUnderflow() (gas: 372713) +LibOpSubTest:testOpSubEvalOneInput() (gas: 127814) +LibOpSubTest:testOpSubEvalOneInputSaturating() (gas: 270666) +LibOpSubTest:testOpSubEvalThreeInputs() (gas: 219696) +LibOpSubTest:testOpSubEvalThreeInputsSaturating() (gas: 442319) +LibOpSubTest:testOpSubEvalTwoInputs() (gas: 327479) +LibOpSubTest:testOpSubEvalTwoInputsSaturating() (gas: 670104) +LibOpSubTest:testOpSubEvalZeroInputs() (gas: 30130) +LibOpSubTest:testOpSubEvalZeroInputsSaturating() (gas: 59323) +LibOpSubTest:testOpSubIntegrityHappy((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint16) (runs: 2048, μ: 17988, ~: 17991) +LibOpSubTest:testOpSubIntegrityUnhappyOneInput((uint256,uint256,uint256,uint256[],uint256,bytes)) (runs: 2048, μ: 13799, ~: 13646) +LibOpSubTest:testOpSubIntegrityUnhappyZeroInputs((uint256,uint256,uint256,uint256[],uint256,bytes)) (runs: 2048, μ: 13799, ~: 13646) +LibOpSubTest:testOpSubRun(uint256[]) (runs: 2048, μ: 15641, ~: 15258) +LibOpTimestampNPTest:testOpBlockTimestampNPEvalFail() (gas: 65754) +LibOpTimestampNPTest:testOpBlockTimestampNPTwoOutputs() (gas: 58730) +LibOpTimestampNPTest:testOpBlockTimestampNPZeroOutputs() (gas: 56611) +LibOpTimestampNPTest:testOpTimestampNPEval(uint256) (runs: 2048, μ: 83699, ~: 83571) +LibOpTimestampNPTest:testOpTimestampNPIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint8,uint16) (runs: 2048, μ: 19416, ~: 19470) +LibOpTimestampNPTest:testOpTimestampNPRun(uint256) (runs: 2048, μ: 20084, ~: 19956) +LibOpUint256DivTest:testOpUint256DivEval2InputsHappy() (gas: 797390) +LibOpUint256DivTest:testOpUint256DivEval2InputsUnhappy() (gas: 142766) +LibOpUint256DivTest:testOpUint256DivEval3InputsHappy() (gas: 1493157) +LibOpUint256DivTest:testOpUint256DivEval3InputsUnhappy() (gas: 470381) +LibOpUint256DivTest:testOpUint256DivEvalOneInput() (gas: 131022) +LibOpUint256DivTest:testOpUint256DivEvalOperandDisallowed() (gas: 62603) +LibOpUint256DivTest:testOpUint256DivEvalTwoOutputs() (gas: 41796) +LibOpUint256DivTest:testOpUint256DivEvalZeroInputs() (gas: 30806) +LibOpUint256DivTest:testOpUint256DivEvalZeroOutputs() (gas: 40774) +LibOpUint256DivTest:testOpUint256DivIntegrityHappy((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint16) (runs: 2048, μ: 17946, ~: 17938) +LibOpUint256DivTest:testOpUint256DivIntegrityUnhappyOneInput((uint256,uint256,uint256,uint256[],uint256,bytes)) (runs: 2048, μ: 13819, ~: 13666) +LibOpUint256DivTest:testOpUint256DivIntegrityUnhappyZeroInputs((uint256,uint256,uint256,uint256[],uint256,bytes)) (runs: 2048, μ: 13775, ~: 13622) +LibOpUint256DivTest:testOpUint256DivRun(uint256[]) (runs: 2048, μ: 21211, ~: 21625) +LibOpUint256ERC20AllowanceTest:testOpERC20AllowanceNPEvalFourInputs() (gas: 56516) +LibOpUint256ERC20AllowanceTest:testOpERC20AllowanceNPEvalHappy(uint256) (runs: 2048, μ: 69475, ~: 69475) +LibOpUint256ERC20AllowanceTest:testOpERC20AllowanceNPEvalOneInput() (gas: 37900) +LibOpUint256ERC20AllowanceTest:testOpERC20AllowanceNPEvalOperandDisallowed() (gas: 19439) +LibOpUint256ERC20AllowanceTest:testOpERC20AllowanceNPEvalTwoInputs() (gas: 44165) +LibOpUint256ERC20AllowanceTest:testOpERC20AllowanceNPEvalTwoOutputs() (gas: 51209) +LibOpUint256ERC20AllowanceTest:testOpERC20AllowanceNPEvalZeroInputs() (gas: 31765) +LibOpUint256ERC20AllowanceTest:testOpERC20AllowanceNPEvalZeroOutputs() (gas: 50142) +LibOpUint256ERC20AllowanceTest:testOpERC20AllowanceNPIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint256) (runs: 2048, μ: 13837, ~: 13807) +LibOpUint256ERC20AllowanceTest:testOpERC20AllowanceNPRun(address,address,address,uint256) (runs: 2048, μ: 24285, ~: 24285) +LibOpUint256ERC20BalanceOfTest:testOpERC20BalanceOfNPEvalHappy(uint256) (runs: 2048, μ: 62524, ~: 62524) +LibOpUint256ERC20BalanceOfTest:testOpERC20BalanceOfNPEvalOneInput() (gas: 37960) +LibOpUint256ERC20BalanceOfTest:testOpERC20BalanceOfNPEvalOperandDisallowed() (gas: 19520) +LibOpUint256ERC20BalanceOfTest:testOpERC20BalanceOfNPEvalThreeInputs() (gas: 50082) +LibOpUint256ERC20BalanceOfTest:testOpERC20BalanceOfNPEvalTwoOutputs() (gas: 44933) +LibOpUint256ERC20BalanceOfTest:testOpERC20BalanceOfNPEvalZeroInputs() (gas: 31823) +LibOpUint256ERC20BalanceOfTest:testOpERC20BalanceOfNPEvalZeroOutputs() (gas: 43909) +LibOpUint256ERC20BalanceOfTest:testOpERC20BalanceOfNPIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint256) (runs: 2048, μ: 13879, ~: 13849) +LibOpUint256ERC20BalanceOfTest:testOpERC20BalanceOfNPRun(address,address,uint256,uint16) (runs: 2048, μ: 23683, ~: 23683) +LibOpUint256ERC20TotalSupplyTest:testOpERC20TotalSupplyNPEvalHappy(uint256) (runs: 2048, μ: 55681, ~: 55681) +LibOpUint256ERC20TotalSupplyTest:testOpERC20TotalSupplyNPEvalOperandDisallowed() (gas: 19726) +LibOpUint256ERC20TotalSupplyTest:testOpERC20TotalSupplyNPEvalTwoInputs() (gas: 44430) +LibOpUint256ERC20TotalSupplyTest:testOpERC20TotalSupplyNPEvalTwoOutputs() (gas: 38811) +LibOpUint256ERC20TotalSupplyTest:testOpERC20TotalSupplyNPEvalZeroInputs() (gas: 31986) +LibOpUint256ERC20TotalSupplyTest:testOpERC20TotalSupplyNPEvalZeroOutputs() (gas: 37742) +LibOpUint256ERC20TotalSupplyTest:testOpERC20TotalSupplyNPIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint256) (runs: 2048, μ: 13859, ~: 13829) +LibOpUint256ERC20TotalSupplyTest:testOpERC20TotalSupplyNPRun(address,uint256,uint16) (runs: 2048, μ: 22945, ~: 22945) +LibOpUint256ERC721BalanceOfTest:testOpERC721BalanceOfEvalHappy(address,address,uint256) (runs: 2048, μ: 611442, ~: 103631) +LibOpUint256ERC721BalanceOfTest:testOpERC721BalanceOfIntegrity((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint8,uint16) (runs: 2048, μ: 19431, ~: 19469) +LibOpUint256ERC721BalanceOfTest:testOpERC721BalanceOfIntegrityFail0() (gas: 31441) +LibOpUint256ERC721BalanceOfTest:testOpERC721BalanceOfIntegrityFail1() (gas: 35815) +LibOpUint256ERC721BalanceOfTest:testOpERC721BalanceOfIntegrityFail3() (gas: 45130) +LibOpUint256ERC721BalanceOfTest:testOpERC721BalanceOfIntegrityFailOperand() (gas: 22392) +LibOpUint256ERC721BalanceOfTest:testOpERC721BalanceOfOneInput() (gas: 36339) +LibOpUint256ERC721BalanceOfTest:testOpERC721BalanceOfRun(address,address,uint256,uint16) (runs: 2048, μ: 23770, ~: 23770) +LibOpUint256ERC721BalanceOfTest:testOpERC721BalanceOfThreeInputs() (gas: 45644) +LibOpUint256ERC721BalanceOfTest:testOpERC721BalanceOfTwoOutputs() (gas: 41649) +LibOpUint256ERC721BalanceOfTest:testOpERC721BalanceOfZeroInputs() (gas: 31869) +LibOpUint256ERC721BalanceOfTest:testOpERC721BalanceOfZeroOutputs() (gas: 40627) +LibOpUint256MulTest:testOpUint256MulEvalOneInput() (gas: 130563) +LibOpUint256MulTest:testOpUint256MulEvalOperandsDisallowed() (gas: 97362) +LibOpUint256MulTest:testOpUint256MulEvalThreeInputsHappy() (gas: 1055506) +LibOpUint256MulTest:testOpUint256MulEvalThreeInputsUnhappy() (gas: 650225) +LibOpUint256MulTest:testOpUint256MulEvalTwoInputsHappy() (gas: 425754) +LibOpUint256MulTest:testOpUint256MulEvalTwoInputsUnhappy() (gas: 141809) +LibOpUint256MulTest:testOpUint256MulEvalTwoOutputs() (gas: 41784) +LibOpUint256MulTest:testOpUint256MulEvalZeroInputs() (gas: 30815) +LibOpUint256MulTest:testOpUint256MulEvalZeroOutputs() (gas: 40786) +LibOpUint256MulTest:testOpUint256MulIntegrityHappy((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint16) (runs: 2048, μ: 17993, ~: 17995) +LibOpUint256MulTest:testOpUint256MulIntegrityUnhappyOneInput((uint256,uint256,uint256,uint256[],uint256,bytes)) (runs: 2048, μ: 13775, ~: 13622) +LibOpUint256MulTest:testOpUint256MulIntegrityUnhappyZeroInputs((uint256,uint256,uint256,uint256[],uint256,bytes)) (runs: 2048, μ: 13799, ~: 13646) +LibOpUint256MulTest:testOpUint256MulRun(uint256[]) (runs: 2048, μ: 16312, ~: 15956) +LibOpUint256PowTest:testOpUint256ExpIntegrityHappy((uint256,uint256,uint256,uint256[],uint256,bytes),uint8,uint16) (runs: 2048, μ: 17932, ~: 17931) +LibOpUint256PowTest:testOpUint256PowEval2InputsHappy() (gas: 893983) +LibOpUint256PowTest:testOpUint256PowEval2InputsUnhappy() (gas: 143765) +LibOpUint256PowTest:testOpUint256PowEval3InputsHappy() (gas: 2078307) +LibOpUint256PowTest:testOpUint256PowEval3InputsUnhappy() (gas: 637876) +LibOpUint256PowTest:testOpUint256PowEvalOneInput() (gas: 131211) +LibOpUint256PowTest:testOpUint256PowEvalOperandDisallowed() (gas: 63205) +LibOpUint256PowTest:testOpUint256PowEvalTwoOutputs() (gas: 41991) +LibOpUint256PowTest:testOpUint256PowEvalZeroInputs() (gas: 31020) +LibOpUint256PowTest:testOpUint256PowEvalZeroOutputs() (gas: 40904) +LibOpUint256PowTest:testOpUint256PowIntegrityUnhappyOneInput((uint256,uint256,uint256,uint256[],uint256,bytes)) (runs: 2048, μ: 13777, ~: 13624) +LibOpUint256PowTest:testOpUint256PowIntegrityUnhappyZeroInputs((uint256,uint256,uint256,uint256[],uint256,bytes)) (runs: 2048, μ: 13755, ~: 13602) +LibOpUint256PowTest:testOpUint256PowRun(uint256[]) (runs: 2048, μ: 17674, ~: 17124) +LibParseCommentsTest:testParseCommentAfterSources() (gas: 69470) +LibParseCommentsTest:testParseCommentBetweenSources() (gas: 69548) +LibParseCommentsTest:testParseCommentInIgnoredLHS() (gas: 42114) +LibParseCommentsTest:testParseCommentInLHSWhitespace() (gas: 42395) +LibParseCommentsTest:testParseCommentInNamedLHS() (gas: 42264) +LibParseCommentsTest:testParseCommentInRHS() (gas: 42561) +LibParseCommentsTest:testParseCommentInRHS2() (gas: 45415) +LibParseCommentsTest:testParseCommentInRHS3() (gas: 45425) +LibParseCommentsTest:testParseCommentLong() (gas: 62861) +LibParseCommentsTest:testParseCommentManyAstericks() (gas: 55971) +LibParseCommentsTest:testParseCommentManyAstericksTrailing() (gas: 55907) +LibParseCommentsTest:testParseCommentMultiple() (gas: 74232) +LibParseCommentsTest:testParseCommentNoTrailingWhitespace() (gas: 42975) +LibParseCommentsTest:testParseCommentNoWords() (gas: 52406) +LibParseCommentsTest:testParseCommentSingleWord() (gas: 56433) +LibParseCommentsTest:testParseCommentSingleWordSameLine() (gas: 57270) +LibParseCommentsTest:testParseCommentUnclosed() (gas: 42647) +LibParseCommentsTest:testParseCommentUnclosed2() (gas: 42825) +LibParseEmptyGasTest:testParseGasEmpty00() (gas: 38090) +LibParseEmptyGasTest:testParseGasEmpty01() (gas: 42935) +LibParseEmptyGasTest:testParseGasEmpty02() (gas: 47171) +LibParseEmptyGasTest:testParseGasEmpty03() (gas: 51384) +LibParseEmptyGasTest:testParseGasEmpty04() (gas: 55597) +LibParseEmptyTest:testParseEmpty00() (gas: 42493) +LibParseEmptyTest:testParseEmpty01() (gas: 50675) +LibParseEmptyTest:testParseEmpty02() (gas: 58519) +LibParseEmptyTest:testParseEmpty03() (gas: 66163) +LibParseEmptyTest:testParseEmpty04() (gas: 73828) +LibParseEmptyTest:testParseEmpty08() (gas: 104673) +LibParseEmptyTest:testParseEmpty15() (gas: 158493) +LibParseEmptyTest:testParseEmptyError16() (gas: 86202) +LibParseIgnoredLHSTest:testParseIgnoredLHSAlphaTooLong() (gas: 52762) +LibParseIgnoredLHSTest:testParseIgnoredLHSLoneUnderscore() (gas: 51361) +LibParseIgnoredLHSTest:testParseIgnoredLHSMultipleLines() (gas: 54618) +LibParseIgnoredLHSTest:testParseIgnoredLHSTwoAlphas() (gas: 52471) +LibParseIgnoredLHSTest:testParseIgnoredLHSTwoUnderscores() (gas: 52304) +LibParseIgnoredLHSTest:testParseIgnoredLHSUnderscoreAlpha() (gas: 51437) +LibParseIgnoredLHSTest:testParseIgnoredLHSUnderscoreNotInput() (gas: 56424) +LibParseIgnoredLHSTest:testParseIgnoredWordTooLong() (gas: 54050) +LibParseInputsOnlyGasTest:testParseGasInputsOnly00() (gas: 43633) +LibParseInputsOnlyGasTest:testParseGasInputsOnly01() (gas: 44565) +LibParseInputsOnlyGasTest:testParseGasInputsOnly02() (gas: 45470) +LibParseInputsOnlyGasTest:testParseGasInputsOnly03() (gas: 46401) +LibParseInputsOnlyGasTest:testParseGasInputsOnly04() (gas: 47332) +LibParseInputsOnlyGasTest:testParseGasInputsOnly05() (gas: 48263) +LibParseInputsOnlyGasTest:testParseGasInputsOnly06() (gas: 49192) +LibParseInputsOnlyGasTest:testParseGasInputsOnly07() (gas: 50153) +LibParseInputsOnlyGasTest:testParseGasInputsOnly08() (gas: 51051) +LibParseInputsOnlyGasTest:testParseGasInputsOnly09() (gas: 51982) +LibParseInputsOnlyTest:testParseInputsOnlyMultiple() (gas: 52259) +LibParseInputsOnlyTest:testParseInputsOnlySingle() (gas: 51352) +LibParseIsMaskTest:testIsMaskPastEnd(uint256,uint256,uint256) (runs: 2048, μ: 17082, ~: 18994) +LibParseIsMaskTest:testIsMaskReference(string,uint256,uint256) (runs: 2048, μ: 8346, ~: 8396) +LibParseLiteralBoundLiteralHexTest:testParseLiteralBoundLiteralHexBounds() (gas: 18768) +LibParseLiteralBoundLiteralHexTest:testParseLiteralBoundLiteralHexFuzz(string,bytes1,string) (runs: 2048, μ: 45074, ~: 43868) +LibParseLiteralDecimalParseDecimalFloatTest:testParseLiteralDecimalFloatDecimals() (gas: 411326) +LibParseLiteralDecimalParseDecimalFloatTest:testParseLiteralDecimalFloatDotE() (gas: 5430) +LibParseLiteralDecimalParseDecimalFloatTest:testParseLiteralDecimalFloatDotE0() (gas: 5408) +LibParseLiteralDecimalParseDecimalFloatTest:testParseLiteralDecimalFloatDotRevert() (gas: 5409) +LibParseLiteralDecimalParseDecimalFloatTest:testParseLiteralDecimalFloatDotRevert2() (gas: 5408) +LibParseLiteralDecimalParseDecimalFloatTest:testParseLiteralDecimalFloatDotRevert3() (gas: 6259) +LibParseLiteralDecimalParseDecimalFloatTest:testParseLiteralDecimalFloatEDot() (gas: 5432) +LibParseLiteralDecimalParseDecimalFloatTest:testParseLiteralDecimalFloatEmpty() (gas: 5397) +LibParseLiteralDecimalParseDecimalFloatTest:testParseLiteralDecimalFloatExponentRevert() (gas: 5377) +LibParseLiteralDecimalParseDecimalFloatTest:testParseLiteralDecimalFloatExponentRevert2() (gas: 6479) +LibParseLiteralDecimalParseDecimalFloatTest:testParseLiteralDecimalFloatExponentRevert3() (gas: 6497) +LibParseLiteralDecimalParseDecimalFloatTest:testParseLiteralDecimalFloatExponentRevert4() (gas: 5430) +LibParseLiteralDecimalParseDecimalFloatTest:testParseLiteralDecimalFloatExponentRevert5() (gas: 5451) +LibParseLiteralDecimalParseDecimalFloatTest:testParseLiteralDecimalFloatExponentRevert6() (gas: 5452) +LibParseLiteralDecimalParseDecimalFloatTest:testParseLiteralDecimalFloatExponents() (gas: 448597) +LibParseLiteralDecimalParseDecimalFloatTest:testParseLiteralDecimalFloatFuzz(uint256,uint8,bool) (runs: 2048, μ: 46682, ~: 38192) +LibParseLiteralDecimalParseDecimalFloatTest:testParseLiteralDecimalFloatLeadingZeros() (gas: 65265) +LibParseLiteralDecimalParseDecimalFloatTest:testParseLiteralDecimalFloatNegativeE() (gas: 7499) +LibParseLiteralDecimalParseDecimalFloatTest:testParseLiteralDecimalFloatNegativeFrac() (gas: 6230) +LibParseLiteralDecimalParseDecimalFloatTest:testParseLiteralDecimalFloatNonDecimal() (gas: 5408) +LibParseLiteralDecimalParseDecimalFloatTest:testParseLiteralDecimalFloatPrecisionRevert0() (gas: 28706) +LibParseLiteralDecimalParseDecimalFloatTest:testParseLiteralDecimalFloatPrecisionRevert1() (gas: 28584) +LibParseLiteralDecimalParseDecimalFloatTest:testParseLiteralDecimalFloatSpecific() (gas: 27606) +LibParseLiteralDecimalParseDecimalFloatTest:testParseLiteralDecimalFloatUnrelated() (gas: 36849) +LibParseLiteralDecimalTest:testParseLiteralDecimalDecimals() (gas: 171897) +LibParseLiteralDecimalTest:testParseLiteralDecimalDotError() (gas: 5341) +LibParseLiteralDecimalTest:testParseLiteralDecimalDotError2() (gas: 5341) +LibParseLiteralDecimalTest:testParseLiteralDecimalDotError3() (gas: 5976) +LibParseLiteralDecimalTest:testParseLiteralDecimalDotError4() (gas: 5321) +LibParseLiteralDecimalTest:testParseLiteralDecimalDotError5() (gas: 5298) +LibParseLiteralDecimalTest:testParseLiteralDecimalDotError6() (gas: 5299) +LibParseLiteralDecimalTest:testParseLiteralDecimalEmpty() (gas: 5250) +LibParseLiteralDecimalTest:testParseLiteralDecimalExponents() (gas: 168036) +LibParseLiteralDecimalTest:testParseLiteralDecimalExponents2() (gas: 237834) +LibParseLiteralDecimalTest:testParseLiteralDecimalExponents2Capital() (gas: 171655) +LibParseLiteralDecimalTest:testParseLiteralDecimalExponents3() (gas: 259413) +LibParseLiteralDecimalTest:testParseLiteralDecimalExponents4() (gas: 138106) +LibParseLiteralDecimalTest:testParseLiteralDecimalExponentsError() (gas: 5340) +LibParseLiteralDecimalTest:testParseLiteralDecimalExponentsError3() (gas: 6083) +LibParseLiteralDecimalTest:testParseLiteralDecimalExponentsError4() (gas: 5342) +LibParseLiteralDecimalTest:testParseLiteralDecimalExponentsError5() (gas: 5342) +LibParseLiteralDecimalTest:testParseLiteralDecimalNegativeExponents() (gas: 221911) +LibParseLiteralDecimalTest:testParseLiteralDecimalNegativeExponentsError() (gas: 6710) +LibParseLiteralDecimalTest:testParseLiteralDecimalNonDecimal() (gas: 5245) +LibParseLiteralDecimalTest:testParseLiteralDecimalOverflow() (gas: 7703) +LibParseLiteralDecimalTest:testParseLiteralDecimalPrecisionLossDecimal() (gas: 7558) +LibParseLiteralDecimalTest:testParseLiteralDecimalPrecisionLossDecimalMax() (gas: 12063) +LibParseLiteralDecimalTest:testParseLiteralDecimalPrecisionLossDecimalSmall() (gas: 11721) +LibParseLiteralDecimalTest:testParseLiteralDecimalPrecisionLossInteger() (gas: 7420) +LibParseLiteralDecimalTest:testParseLiteralDecimalRoundTrip(uint256) (runs: 2048, μ: 21969, ~: 21156) +LibParseLiteralDecimalTest:testParseLiteralDecimalSpecific() (gas: 49997) +LibParseLiteralDecimalTest:testParseLiteralDecimalTrailingZeros() (gas: 201496) +LibParseLiteralDecimalTest:testParseLiteralDecimalUnrelated() (gas: 71717) +LibParseLiteralHexBoundHexTest:testParseLiteralHexRoundTrip(uint256) (runs: 2048, μ: 18385, ~: 14263) +LibParseLiteralIntegerDecimalTest:testParseIntegerLiteralDecimal00() (gas: 56515) +LibParseLiteralIntegerDecimalTest:testParseIntegerLiteralDecimal01() (gas: 63825) +LibParseLiteralIntegerDecimalTest:testParseIntegerLiteralDecimal02() (gas: 70353) +LibParseLiteralIntegerDecimalTest:testParseIntegerLiteralDecimalENotation() (gas: 88972) +LibParseLiteralIntegerDecimalTest:testParseIntegerLiteralDecimalParensBoth() (gas: 46319) +LibParseLiteralIntegerDecimalTest:testParseIntegerLiteralDecimalParensLeft() (gas: 46361) +LibParseLiteralIntegerDecimalTest:testParseIntegerLiteralDecimalParensRight() (gas: 46223) +LibParseLiteralIntegerDecimalTest:testParseIntegerLiteralDecimalUint256Max() (gas: 78917) +LibParseLiteralIntegerDecimalTest:testParseIntegerLiteralDecimalUint256MaxLeadingZeros() (gas: 79426) +LibParseLiteralIntegerDecimalTest:testParseIntegerLiteralDecimalUint256OverflowLeadingDigit() (gas: 65262) +LibParseLiteralIntegerDecimalTest:testParseIntegerLiteralDecimalUint256OverflowLeadingDigitLeadingZeros() (gas: 65386) +LibParseLiteralIntegerDecimalTest:testParseIntegerLiteralDecimalUint256OverflowLeadingZeros() (gas: 65549) +LibParseLiteralIntegerDecimalTest:testParseIntegerLiteralDecimalUint256OverflowSimple() (gas: 65372) +LibParseLiteralIntegerDecimalTest:testParseIntegerLiteralDecimalYang() (gas: 46805) +LibParseLiteralIntegerHexTest:testParseIntegerLiteralHex00() (gas: 55638) +LibParseLiteralIntegerHexTest:testParseIntegerLiteralHex01() (gas: 61322) +LibParseLiteralIntegerHexTest:testParseIntegerLiteralHex02() (gas: 66361) +LibParseLiteralIntegerHexTest:testParseIntegerLiteralHexUint256Max() (gas: 72462) +LibParseLiteralStringBoundTest:testParseStringLiteralBounds(string) (runs: 2048, μ: 16695, ~: 16752) +LibParseLiteralStringBoundTest:testParseStringLiteralBoundsInvalidCharBefore(string,uint256) (runs: 2048, μ: 30342, ~: 30223) +LibParseLiteralStringBoundTest:testParseStringLiteralBoundsParserOutOfBounds(string,uint256) (runs: 2048, μ: 18751, ~: 18606) +LibParseLiteralStringBoundTest:testParseStringLiteralBoundsTooLong(string) (runs: 2048, μ: 31812, ~: 31361) +LibParseLiteralStringTest:testParseStringLiteralAny(bytes) (runs: 2048, μ: 13386, ~: 13290) +LibParseLiteralStringTest:testParseStringLiteralCorrupt(bytes,uint256) (runs: 2048, μ: 18612, ~: 18540) +LibParseLiteralStringTest:testParseStringLiteralEmpty() (gas: 54332) +LibParseLiteralStringTest:testParseStringLiteralEmpty() (gas: 5585) +LibParseLiteralStringTest:testParseStringLiteralInvalidCharAfter(string,string) (runs: 2048, μ: 69516, ~: 69114) +LibParseLiteralStringTest:testParseStringLiteralInvalidCharWithin(string,uint256) (runs: 2048, μ: 67303, ~: 67223) +LibParseLiteralStringTest:testParseStringLiteralLongASCII(string) (runs: 2048, μ: 68846, ~: 68385) +LibParseLiteralStringTest:testParseStringLiteralShortASCII(string) (runs: 2048, μ: 62233, ~: 62294) +LibParseLiteralStringTest:testParseStringLiteralSimple() (gas: 54434) +LibParseLiteralStringTest:testParseStringLiteralTwo(string,string) (runs: 2048, μ: 75501, ~: 75448) +LibParseLiteralSubParseableTest:testParseLiteralSubParseableBody() (gas: 64781) +LibParseLiteralSubParseableTest:testParseLiteralSubParseableEmptyBody() (gas: 19685) +LibParseLiteralSubParseableTest:testParseLiteralSubParseableHappyFuzz(string,string,string) (runs: 2048, μ: 89730, ~: 89233) +LibParseLiteralSubParseableTest:testParseLiteralSubParseableMissingDispatchEmpty() (gas: 9223) +LibParseLiteralSubParseableTest:testParseLiteralSubParseableMissingDispatchUnclosed() (gas: 9228) +LibParseLiteralSubParseableTest:testParseLiteralSubParseableMissingDispatchUnclosedWhitespace0() (gas: 9221) +LibParseLiteralSubParseableTest:testParseLiteralSubParseableMissingDispatchUnclosedWhitespace1() (gas: 9178) +LibParseLiteralSubParseableTest:testParseLiteralSubParseableUnclosedDispatch0() (gas: 9646) +LibParseLiteralSubParseableTest:testParseLiteralSubParseableUnclosedDispatchBody() (gas: 9812) +LibParseLiteralSubParseableTest:testParseLiteralSubParseableUnclosedDispatchWhitespace0() (gas: 9742) +LibParseLiteralSubParseableTest:testParseLiteralSubParseableUnclosedDispatchWhitespace1() (gas: 9201) +LibParseLiteralSubParseableTest:testParseLiteralSubParseableUnclosedDoubleOpen() (gas: 9668) +LibParseMissingFinalSemiTest:testParseMissingFinalSemiRevertsEmptySource() (gas: 44895) +LibParseMissingFinalSemiTest:testParseMissingFinalSemiRevertsLHSItems() (gas: 42838) +LibParseMissingFinalSemiTest:testParseMissingFinalSemiRevertsLoneColon() (gas: 41943) +LibParseMissingFinalSemiTest:testParseMissingFinalSemiRevertsSingleWord() (gas: 44890) +LibParseMissingFinalSemiTest:testParseMissingFinalSemiRevertsTrailingComma() (gas: 43111) +LibParseNOutputTest:testParseBalanceStackOffsetsInputs() (gas: 61554) +LibParseNOutputTest:testParseNOutputExcessRHS0() (gas: 50564) +LibParseNOutputTest:testParseNOutputExcessRHS1() (gas: 48694) +LibParseNOutputTest:testParseNOutputExcessRHS2() (gas: 49097) +LibParseNOutputTest:testParseNOutputExcessRHS3() (gas: 50446) +LibParseNOutputTest:testParseNOutputNestedRHS() (gas: 56760) +LibParseNamedLHSTest:testParseNamedDuplicateDifferentSource() (gas: 55410) +LibParseNamedLHSTest:testParseNamedError32() (gas: 44980) +LibParseNamedLHSTest:testParseNamedError33() (gas: 44957) +LibParseNamedLHSTest:testParseNamedErrorDuplicateSameSource() (gas: 45201) +LibParseNamedLHSTest:testParseNamedLHSEmptySourceExamples() (gas: 153516) +LibParseNamedLHSTest:testParseNamedLHSStackIndex() (gas: 57996) +LibParseNamedLHSTest:testParseNamedLHSTwoInputs() (gas: 61112) +LibParseNamedRHSTest:testParseSingleLHSNestingAndSequential00() (gas: 78612) +LibParseNamedRHSTest:testParseSingleLHSNestingAndSequential01() (gas: 93835) +LibParseNamedRHSTest:testParseSingleLHSNestingAndSequential02() (gas: 89122) +LibParseNamedRHSTest:testParseSingleLHSNestingAndSequential03() (gas: 192678) +LibParseNamedRHSTest:testParseSingleWord() (gas: 54374) +LibParseNamedRHSTest:testParseTwoFullLinesSingleRHSEach() (gas: 75133) +LibParseNamedRHSTest:testParseTwoFullSourcesSingleRHSEach() (gas: 65993) +LibParseNamedRHSTest:testParseTwoNested() (gas: 57814) +LibParseNamedRHSTest:testParseTwoNestedAsThirdInput() (gas: 67706) +LibParseNamedRHSTest:testParseTwoSequential() (gas: 59464) +LibParseNamedRHSTest:testParseTwoSequentialWithInputs() (gas: 72497) +LibParseOperand8M1M1Test:testOperand8M1M1Elided() (gas: 92668) +LibParseOperand8M1M1Test:testOperand8M1M1Single() (gas: 271311) +LibParseOperand8M1M1Test:testOperand8M1M1SingleBit() (gas: 558958) +LibParseOperand8M1M1Test:testOperand8M1M1SingleBitsPart1() (gas: 1585625) +LibParseOperand8M1M1Test:testOperand8M1M1Unclosed() (gas: 306844) +LibParseOperand8M1M1Test:testOperand8M1M1Unopened() (gas: 47361) +LibParseOperandDisallowedTest:testOperandDisallowed() (gas: 44015) +LibParseOperandDisallowedTest:testOperandDisallowed1() (gas: 44486) +LibParseOperandDisallowedTest:testOperandDisallowed3() (gas: 46350) +LibParseOperandDisallowedTest:testOperandDisallowed4() (gas: 46372) +LibParseOperandDoublePerByteNoDefaultTest:testOperandDoublePerByteNoDefaultElided() (gas: 43433) +LibParseOperandDoublePerByteNoDefaultTest:testOperandDoublePerByteNoDefaultEmpty() (gas: 43827) +LibParseOperandDoublePerByteNoDefaultTest:testOperandDoublePerByteNoDefaultFirst() (gas: 46423) +LibParseOperandDoublePerByteNoDefaultTest:testOperandDoublePerByteNoDefaultMultipleWhitespace() (gas: 58502) +LibParseOperandDoublePerByteNoDefaultTest:testOperandDoublePerByteNoDefaultPostfixWhitespace() (gas: 57724) +LibParseOperandDoublePerByteNoDefaultTest:testOperandDoublePerByteNoDefaultPrefixWhitespace() (gas: 57700) +LibParseOperandDoublePerByteNoDefaultTest:testOperandDoublePerByteNoDefaultSecond() (gas: 57332) +LibParseOperandDoublePerByteNoDefaultTest:testOperandDoublePerByteNoDefaultSecondMax() (gas: 58463) +LibParseOperandDoublePerByteNoDefaultTest:testOperandDoublePerByteNoDefaultSecondMaxZero() (gas: 57817) +LibParseOperandDoublePerByteNoDefaultTest:testOperandDoublePerByteNoDefaultSecondOverflow() (gas: 50929) +LibParseOperandDoublePerByteNoDefaultTest:testOperandDoublePerByteNoDefaultSecondOverflowFirst() (gas: 50930) +LibParseOperandDoublePerByteNoDefaultTest:testOperandDoublePerByteNoDefaultSecondZero() (gas: 57195) +LibParseOperandDoublePerByteNoDefaultTest:testOperandDoublePerByteNoDefaultSecondZeroMax() (gas: 57839) +LibParseOperandDoublePerByteNoDefaultTest:testOperandDoublePerByteNoDefaultThird() (gas: 52402) +LibParseOperandDoublePerByteNoDefaultTest:testOperandDoublePerByteNoDefaultUnclosed() (gas: 49261) +LibParseOperandDoublePerByteNoDefaultTest:testOperandDoublePerByteNoDefaultUnopened() (gas: 43434) +LibParseOperandHandleOperand8M1M1Test:testHandleOperand8M1M1AllValues(uint256,uint256,uint256) (runs: 2048, μ: 11205, ~: 11288) +LibParseOperandHandleOperand8M1M1Test:testHandleOperand8M1M1AllValuesThirdValueTooLarge(uint256,uint256,uint256) (runs: 2048, μ: 11468, ~: 11285) +LibParseOperandHandleOperand8M1M1Test:testHandleOperand8M1M1FirstAndSecondValue(uint256,uint256) (runs: 2048, μ: 9538, ~: 9532) +LibParseOperandHandleOperand8M1M1Test:testHandleOperand8M1M1FirstAndSecondValueSecondValueTooLarge(uint256,uint256) (runs: 2048, μ: 9791, ~: 9525) +LibParseOperandHandleOperand8M1M1Test:testHandleOperand8M1M1FirstValueOnly(uint256) (runs: 2048, μ: 7933, ~: 7994) +LibParseOperandHandleOperand8M1M1Test:testHandleOperand8M1M1FirstValueTooLarge(uint256) (runs: 2048, μ: 8115, ~: 8321) +LibParseOperandHandleOperand8M1M1Test:testHandleOperand8M1M1ManyValues(uint256[]) (runs: 2048, μ: 14113, ~: 14123) +LibParseOperandHandleOperand8M1M1Test:testHandleOperand8M1M1NoValues() (gas: 3601) +LibParseOperandHandleOperandDisallowedTest:testHandleOperandDisallowedAnyValues(uint256[]) (runs: 2048, μ: 13901, ~: 13949) +LibParseOperandHandleOperandDisallowedTest:testHandleOperandDisallowedNoValues() (gas: 3219) +LibParseOperandHandleOperandDoublePerByteNoDefaultTest:testHandleOperandDoublePerByteNoDefaultBothValuesWithinOneByte(uint256,uint256) (runs: 2048, μ: 9294, ~: 9414) +LibParseOperandHandleOperandDoublePerByteNoDefaultTest:testHandleOperandDoublePerByteNoDefaultFirstValueTooLarge(uint256,uint256) (runs: 2048, μ: 9619, ~: 9329) +LibParseOperandHandleOperandDoublePerByteNoDefaultTest:testHandleOperandDoublePerByteNoDefaultManyValues(uint256[]) (runs: 2048, μ: 14008, ~: 13984) +LibParseOperandHandleOperandDoublePerByteNoDefaultTest:testHandleOperandDoublePerByteNoDefaultNoValues() (gas: 3599) +LibParseOperandHandleOperandDoublePerByteNoDefaultTest:testHandleOperandDoublePerByteNoDefaultOneValue(uint256) (runs: 2048, μ: 7573, ~: 7848) +LibParseOperandHandleOperandDoublePerByteNoDefaultTest:testHandleOperandDoublePerByteNoDefaultSecondValueTooLarge(uint256,uint256) (runs: 2048, μ: 9739, ~: 9713) +LibParseOperandHandleOperandM1M1Test:testHandleOperandM1M1ManyValues(uint256[]) (runs: 2048, μ: 14010, ~: 13986) +LibParseOperandHandleOperandM1M1Test:testHandleOperandM1M1NoValues() (gas: 3554) +LibParseOperandHandleOperandM1M1Test:testHandleOperandM1M1OneValue(uint256) (runs: 2048, μ: 7740, ~: 7704) +LibParseOperandHandleOperandM1M1Test:testHandleOperandM1M1OneValueTooLarge(uint256) (runs: 2048, μ: 8040, ~: 7712) +LibParseOperandHandleOperandM1M1Test:testHandleOperandM1M1TwoValues(uint256,uint256) (runs: 2048, μ: 9376, ~: 9402) +LibParseOperandHandleOperandM1M1Test:testHandleOperandM1M1TwoValuesSecondValueTooLarge(uint256,uint256) (runs: 2048, μ: 9712, ~: 9474) +LibParseOperandHandleOperandSingleFullTest:testHandleOperandSingleFullManyValues(uint256[]) (runs: 2048, μ: 13960, ~: 13983) +LibParseOperandHandleOperandSingleFullTest:testHandleOperandSingleFullNoDefaultManyValues(uint256[]) (runs: 2048, μ: 14004, ~: 14027) +LibParseOperandHandleOperandSingleFullTest:testHandleOperandSingleFullNoDefaultNoValues() (gas: 3595) +LibParseOperandHandleOperandSingleFullTest:testHandleOperandSingleFullNoDefaultSingleValue(uint256) (runs: 2048, μ: 7292, ~: 7569) +LibParseOperandHandleOperandSingleFullTest:testHandleOperandSingleFullNoValues() (gas: 3244) +LibParseOperandHandleOperandSingleFullTest:testHandleOperandSingleFullSingleValue(uint256) (runs: 2048, μ: 7506, ~: 7782) +LibParseOperandHandleOperandSingleFullTest:testHandleOperandSingleFullSingleValueDisallowed(uint256) (runs: 2048, μ: 8442, ~: 8555) +LibParseOperandHandleOperandSingleFullTest:testHandleOperandSingleFullSingleValueNoDefaultDisallowed(uint256) (runs: 2048, μ: 9553, ~: 9663) +LibParseOperandM1M1Test:testOperandM1M1Both() (gas: 57445) +LibParseOperandM1M1Test:testOperandM1M1BothZero() (gas: 56265) +LibParseOperandM1M1Test:testOperandM1M1Elided() (gas: 51246) +LibParseOperandM1M1Test:testOperandM1M1Empty() (gas: 51642) +LibParseOperandM1M1Test:testOperandM1M1First() (gas: 54314) +LibParseOperandM1M1Test:testOperandM1M1FirstOverflow() (gas: 46881) +LibParseOperandM1M1Test:testOperandM1M1Second() (gas: 57365) +LibParseOperandM1M1Test:testOperandM1M1SecondOverflow() (gas: 50011) +LibParseOperandM1M1Test:testOperandM1M1SecondZero() (gas: 57243) +LibParseOperandM1M1Test:testOperandM1M1Unclosed() (gas: 252075) +LibParseOperandM1M1Test:testOperandM1M1Unopened() (gas: 48781) +LibParseOperandParseOperandTest:testParseOperandEmptyOperand(string) (runs: 2048, μ: 42731, ~: 42735) +LibParseOperandParseOperandTest:testParseOperandFourDecimalLiterals(bool[4],uint256[4],string[5],string) (runs: 2048, μ: 351820, ~: 351379) +LibParseOperandParseOperandTest:testParseOperandNoOpeningCharacter(string) (runs: 2048, μ: 42679, ~: 42683) +LibParseOperandParseOperandTest:testParseOperandSingleDecimalLiteral(bool,uint256,string,string,string) (runs: 2048, μ: 153470, ~: 153712) +LibParseOperandParseOperandTest:testParseOperandThreeDecimalLiterals(bool,bool,bool,uint256,uint256,uint256,string,string,string,string,string) (runs: 2048, μ: 283326, ~: 284035) +LibParseOperandParseOperandTest:testParseOperandTooManyValues() (gas: 53781) +LibParseOperandParseOperandTest:testParseOperandTwoDecimalLiterals(bool,bool,uint256,uint256,string,string,string,string) (runs: 2048, μ: 219544, ~: 219276) +LibParseOperandParseOperandTest:testParseOperandUnclosed() (gas: 53286) +LibParseOperandParseOperandTest:testParseOperandUnexpectedChars() (gas: 50358) +LibParseOperandSingleFullTest:testOperandSingleFullElided() (gas: 50986) +LibParseOperandSingleFullTest:testOperandSingleFullEmpty() (gas: 51315) +LibParseOperandSingleFullTest:testOperandSingleFullHexOne() (gas: 53153) +LibParseOperandSingleFullTest:testOperandSingleFullHexUint16Max() (gas: 53769) +LibParseOperandSingleFullTest:testOperandSingleFullHexUint16MaxOverflow() (gas: 46827) +LibParseOperandSingleFullTest:testOperandSingleFullHexZero() (gas: 53154) +LibParseOperandSingleFullTest:testOperandSingleFullLeadingAndTrailingWhitespace() (gas: 53852) +LibParseOperandSingleFullTest:testOperandSingleFullLeadingWhitespace() (gas: 54464) +LibParseOperandSingleFullTest:testOperandSingleFullMultiple() (gas: 47603) +LibParseOperandSingleFullTest:testOperandSingleFullOne() (gas: 54115) +LibParseOperandSingleFullTest:testOperandSingleFullTrailingWhitespace() (gas: 54508) +LibParseOperandSingleFullTest:testOperandSingleFullUint16Max() (gas: 55225) +LibParseOperandSingleFullTest:testOperandSingleFullUint16MaxOverflow() (gas: 47929) +LibParseOperandSingleFullTest:testOperandSingleFullUnclosed() (gas: 46366) +LibParseOperandSingleFullTest:testOperandSingleFullUnopened() (gas: 44533) +LibParseOperandSingleFullTest:testOperandSingleFullZero() (gas: 54059) +LibParseParseWordTest:testLibParseParseWordEnd(uint256) (runs: 2048, μ: 9471, ~: 9471) +LibParseParseWordTest:testLibParseParseWordExamples() (gas: 26926) +LibParseParseWordTest:testLibParseParseWordReferenceImplementation(bytes,uint256) (runs: 2048, μ: 6474, ~: 6254) +LibParseParseWordTest:testLibParseParseWordTooLong(bytes) (runs: 2048, μ: 9694, ~: 9627) +LibParsePragmaKeywordTest:testPragmaKeywordNoWhitespace(uint256,string) (runs: 2048, μ: 8923, ~: 8888) +LibParsePragmaKeywordTest:testPragmaKeywordNoop((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,uint256[],uint256,bytes,bytes),string) (runs: 2048, μ: 16581, ~: 16456) +LibParsePragmaKeywordTest:testPragmaKeywordParseSubParser(string,address,uint256,string) (runs: 2048, μ: 186117, ~: 180938) +LibParsePragmaKeywordTest:testPragmaKeywordParseSubParserCoupleOfAddresses(string,string,address,address,uint256,string) (runs: 2048, μ: 369124, ~: 367816) +LibParsePragmaKeywordTest:testPragmaKeywordParseSubParserSpecificStrings() (gas: 252034) +LibParsePragmaKeywordTest:testPragmaKeywordWhitespaceNoHex(uint256,string) (runs: 2048, μ: 20268, ~: 17493) +LibParseSingleLHSIgnoredGasTest:testParseGasSingleLHSIgnored00() (gas: 8317) +LibParseSingleLHSIgnoredGasTest:testParseGasSingleLHSIgnored01() (gas: 8379) +LibParseSingleLHSIgnoredGasTest:testParseGasSingleLHSIgnored02() (gas: 8465) +LibParseSingleLHSIgnoredGasTest:testParseGasSingleLHSIgnored03() (gas: 8548) +LibParseSingleLHSIgnoredGasTest:testParseGasSingleLHSIgnored04() (gas: 8653) +LibParseSingleLHSIgnoredGasTest:testParseGasSingleLHSIgnored05() (gas: 8694) +LibParseSingleLHSIgnoredGasTest:testParseGasSingleLHSIgnored06() (gas: 8822) +LibParseSingleLHSIgnoredGasTest:testParseGasSingleLHSIgnored07() (gas: 8863) +LibParseSingleLHSIgnoredGasTest:testParseGasSingleLHSIgnored08() (gas: 8944) +LibParseSingleLHSIgnoredGasTest:testParseGasSingleLHSIgnored09() (gas: 9052) +LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed00() (gas: 9018) +LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed01() (gas: 9119) +LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed02() (gas: 9157) +LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed03() (gas: 9259) +LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed04() (gas: 9341) +LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed05() (gas: 9424) +LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed06() (gas: 9502) +LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed07() (gas: 9606) +LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed08() (gas: 9687) +LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed09() (gas: 9767) +LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed10() (gas: 9826) +LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed11() (gas: 9886) +LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed12() (gas: 10010) +LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed13() (gas: 10071) +LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed14() (gas: 10151) +LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed15() (gas: 10209) +LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed16() (gas: 10335) +LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed17() (gas: 10394) +LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed18() (gas: 10496) +LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed19() (gas: 10535) +LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed20() (gas: 10615) +LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed21() (gas: 10718) +LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed22() (gas: 10776) +LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed23() (gas: 10860) +LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed24() (gas: 10938) +LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed25() (gas: 11064) +LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed26() (gas: 11123) +LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed27() (gas: 11183) +LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed28() (gas: 11294) +LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed29() (gas: 11342) +LibParseSingleLHSNamedGasTest:testParseGasSingleLHSNamed30() (gas: 11426) +LibParseSingleRHSNamedGasTest:testParseGasRHS00() (gas: 117215) +LibParseSingleRHSNamedGasTest:testParseGasRHS01() (gas: 117317) +LibParseSingleRHSNamedGasTest:testParseGasRHS02() (gas: 117376) +LibParseSingleRHSNamedGasTest:testParseGasRHS03() (gas: 117456) +LibParseSingleRHSNamedGasTest:testParseGasRHS04() (gas: 117539) +LibParseSingleRHSNamedGasTest:testParseGasRHS05() (gas: 117619) +LibParseSingleRHSNamedGasTest:testParseGasRHS06() (gas: 117679) +LibParseSingleRHSNamedGasTest:testParseGasRHS07() (gas: 117760) +LibParseSingleRHSNamedGasTest:testParseGasRHS08() (gas: 117861) +LibParseSingleRHSNamedGasTest:testParseGasRHS09() (gas: 117922) +LibParseSingleRHSNamedGasTest:testParseGasRHS10() (gas: 118045) +LibParseSingleRHSNamedGasTest:testParseGasRHS11() (gas: 118081) +LibParseSingleRHSNamedGasTest:testParseGasRHS12() (gas: 118195) +LibParseSingleRHSNamedGasTest:testParseGasRHS13() (gas: 118267) +LibParseSingleRHSNamedGasTest:testParseGasRHS14() (gas: 118325) +LibParseSingleRHSNamedGasTest:testParseGasRHS15() (gas: 118429) +LibParseSingleRHSNamedGasTest:testParseGasRHS16() (gas: 118489) +LibParseSingleRHSNamedGasTest:testParseGasRHS17() (gas: 118569) +LibParseSingleRHSNamedGasTest:testParseGasRHS18() (gas: 118694) +LibParseSingleRHSNamedGasTest:testParseGasRHS19() (gas: 118775) +LibParseSingleRHSNamedGasTest:testParseGasRHS20() (gas: 118834) +LibParseSingleRHSNamedGasTest:testParseGasRHS21() (gas: 118936) +LibParseSingleRHSNamedGasTest:testParseGasRHS22() (gas: 118974) +LibParseSingleRHSNamedGasTest:testParseGasRHS23() (gas: 119078) +LibParseSingleRHSNamedGasTest:testParseGasRHS24() (gas: 119157) +LibParseSingleRHSNamedGasTest:testParseGasRHS25() (gas: 119238) +LibParseSingleRHSNamedGasTest:testParseGasRHS26() (gas: 119300) +LibParseSingleRHSNamedGasTest:testParseGasRHS27() (gas: 119391) +LibParseSingleRHSNamedGasTest:testParseGasRHS28() (gas: 119495) +LibParseSingleRHSNamedGasTest:testParseGasRHS29() (gas: 119586) +LibParseSingleRHSNamedGasTest:testParseGasRHS30() (gas: 119648) +LibParseSourceInputsTest:testParseSourceInputsEmptyLinePrefix() (gas: 49254) +LibParseSourceInputsTest:testParseSourceInputsMultipleLines() (gas: 51991) +LibParseSourceInputsTest:testParseSourceInputsSingle() (gas: 49231) +LibParseStackNameTest:testPushAndRetrieveStackNameDouble((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,uint256[],uint256,bytes,bytes),bytes32,bytes32) (runs: 2048, μ: 20724, ~: 20700) +LibParseStackNameTest:testPushAndRetrieveStackNameDoubleIdentical((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,uint256[],uint256,bytes,bytes),bytes32) (runs: 2048, μ: 17960, ~: 18143) +LibParseStackNameTest:testPushAndRetrieveStackNameMany((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,uint256[],uint256,bytes,bytes),uint256) (runs: 2048, μ: 318847, ~: 260840) +LibParseStackNameTest:testPushAndRetrieveStackNameSingle((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,uint256[],uint256,bytes,bytes),bytes32) (runs: 2048, μ: 17838, ~: 18021) +LibParseStateConstantValueBloomTest:testConstantValueBloom(uint256) (runs: 2048, μ: 3363, ~: 3363) +LibParseStateConstantValueBloomTest:testConstantValueBloomAllBits() (gas: 45132) +LibParseStateConstantValueBloomTest:testConstantValueBloomSingleBit(uint256) (runs: 2048, μ: 3423, ~: 3423) +LibParseStateExportSubParsersTest:testExportSubParsers((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,uint256[],uint256,bytes,bytes),address[]) (runs: 2048, μ: 152065, ~: 152276) +LibParseStateNewActiveSourcePointerTest:testAlignedOldPointer(uint256,uint256) (runs: 2048, μ: 13310, ~: 13428) +LibParseStateNewActiveSourcePointerTest:testPostUnalignedNewPointer(uint256) (runs: 2048, μ: 7131, ~: 7131) +LibParseStateNewActiveSourcePointerTest:testPreUnalignedNewPointer() (gas: 9152) +LibParseStateNewActiveSourcePointerTest:testZeroOldPointer(bytes) (runs: 2048, μ: 4787, ~: 4784) +LibParseStatePushConstantValueTest:testPushConstantValueEmpty(bytes,bytes,bytes,bytes) (runs: 2048, μ: 6365, ~: 6362) +LibParseStatePushConstantValueTest:testPushConstantValueMany(uint256[]) (runs: 2048, μ: 227338, ~: 228479) +LibParseStatePushConstantValueTest:testPushConstantValueSingle(uint256) (runs: 2048, μ: 6968, ~: 6968) +LibParseStatePushSubParserTest:testPushSubParserList((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,uint256[],uint256,bytes,bytes),address[]) (runs: 2048, μ: 135665, ~: 136207) +LibParseStatePushSubParserTest:testPushSubParserMultiple((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,uint256[],uint256,bytes,bytes),address,address,address) (runs: 2048, μ: 16856, ~: 16855) +LibParseStatePushSubParserTest:testPushSubParserOverflow((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,uint256[],uint256,bytes,bytes),uint256) (runs: 2048, μ: 19413, ~: 19203) +LibParseStatePushSubParserTest:testPushSubParserZero((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,uint256[],uint256,bytes,bytes),address) (runs: 2048, μ: 15715, ~: 15673) +LibParseUnclosedLeftParenTest:testParseUnclosedLeftParen() (gas: 44936) +LibParseUnclosedLeftParenTest:testParseUnclosedLeftParenNested() (gas: 64305) +LibParseUnclosedLeftParenTest:testParseUnclosedLeftParenNested2() (gas: 65819) +LibParseUnclosedLeftParenTest:testParseUnclosedLeftParenNested3() (gas: 75373) +LibParseUnexpectedLHSTest:testParseUnexpectedLHSBadIgnoredTail(uint8) (runs: 2048, μ: 42670, ~: 42671) +LibParseUnexpectedLHSTest:testParseUnexpectedLHSBadNamedTail(uint8,bytes) (runs: 2048, μ: 48704, ~: 48743) +LibParseUnexpectedLHSTest:testParseUnexpectedLHSEOF() (gas: 41739) +LibParseUnexpectedLHSTest:testParseUnexpectedLHSEOL() (gas: 41740) +LibParseUnexpectedLHSTest:testParseUnexpectedLHSSingleChar(uint8) (runs: 2048, μ: 42285, ~: 42285) +LibParseUnexpectedLHSTest:testParseUnexpectedLHSUnderscoreTail() (gas: 42735) +LibParseUnexpectedRHSTest:testParseUnexpectedRHS(uint8) (runs: 2048, μ: 42617, ~: 42617) +LibParseUnexpectedRHSTest:testParseUnexpectedRHSLeftParen() (gas: 42109) +LibParseUnexpectedRightParenTest:testParseUnexpectedRightParen() (gas: 41612) +LibParseUnexpectedRightParenTest:testParseUnexpectedRightParenNested() (gas: 47262) +LibSubParseSubParserExternTest:testLibSubParseSubParserExtern(address,uint8,uint8,uint8,uint16,uint8) (runs: 2048, μ: 13169, ~: 13112) +LibSubParseSubParserExternTest:testLibSubParseSubParserExternConstantsHeightOverflow(address,uint256,uint8,uint8,uint16,uint8) (runs: 2048, μ: 7949, ~: 7689) +RainterpreterExpressionDeployerNPE2DeployCheckTest:testRainterpreterExpressionDeployerDeployNoEIP1820() (gas: 9685569) +RainterpreterExpressionDeployerNPE2DescribedByMetaV1Test:testRainterpreterExpressionDeployerNPE2DescribedByMetaV1Happy() (gas: 9699668) +RainterpreterExpressionDeployerNPE2IERC165Test:testRainterpreterExpressionDeployerNPE2IERC165(bytes4) (runs: 2048, μ: 9693706, ~: 9693706) +RainterpreterExpressionDeployerNPE2MetaTest:testRainterpreterExpressionDeployerNPE2ExpectedConstructionMetaHash() (gas: 6178) +RainterpreterNPE2IERC165Test:testRainterpreterNPE2IERC165(bytes4) (runs: 2048, μ: 4164319, ~: 4164319) +RainterpreterNPE2PointersTest:testOpcodeFunctionPointers() (gas: 4172525) +RainterpreterNPE2Test:testRainterpreterNPE2OddFunctionPointersLength() (gas: 3695) +RainterpreterParserNPE2IERC165Test:testRainterpreterParserNPE2IERC165(bytes4) (runs: 2048, μ: 3793588, ~: 3793588) +RainterpreterParserNPE2ParserPragma:testParsePragmaNoPragma() (gas: 18941509) +RainterpreterParserNPE2ParserPragma:testParsePragmaSinglePragma() (gas: 11416232) +RainterpreterParserNPE2ParserPragma:testParsePragmaWithInterstitial() (gas: 11419509) +RainterpreterParserNPE2PointersTest:testLiteralParserFunctionPointers() (gas: 3791002) +RainterpreterParserNPE2PointersTest:testOperandHandlerFunctionPointers() (gas: 3800200) +RainterpreterParserNPE2PointersTest:testParserParseMeta() (gas: 5488449) +RainterpreterReferenceExternNPE2ContextRainlenTest:testRainterpreterReferenceExterNPE2ContextRainlenHappy() (gas: 1740911) +RainterpreterReferenceExternNPE2ContextSenderTest:testRainterpreterReferenceExterNPE2ContextContractHappy() (gas: 1740518) +RainterpreterReferenceExternNPE2ContextSenderTest:testRainterpreterReferenceExterNPE2ContextSenderHappy() (gas: 1739214) +RainterpreterReferenceExternNPE2DescribedByMetaV1:testRainterpreterReferenceExternNPE2DescribedByMetaV1Happy() (gas: 1662715) +RainterpreterReferenceExternNPE2IERC165Test:testRainterpreterReferenceExternNPE2IERC165(bytes4) (runs: 2048, μ: 1667797, ~: 1667797) +RainterpreterReferenceExternNPE2IntIncTest:testRainterpreterReferenceExternNPE2IntIncHappySugared() (gas: 1762131) +RainterpreterReferenceExternNPE2IntIncTest:testRainterpreterReferenceExternNPE2IntIncHappyUnsugared() (gas: 1755423) +RainterpreterReferenceExternNPE2IntIncTest:testRainterpreterReferenceExternNPE2IntIncIntegrity(uint256,uint256,uint256) (runs: 2048, μ: 3618, ~: 3618) +RainterpreterReferenceExternNPE2IntIncTest:testRainterpreterReferenceExternNPE2IntIncRun(uint256,uint256[]) (runs: 2048, μ: 167201, ~: 153965) +RainterpreterReferenceExternNPE2IntIncTest:testRainterpreterReferenceExternNPE2IntIncSubParseKnownWord(uint16,bytes1) (runs: 2048, μ: 1676560, ~: 1676836) +RainterpreterReferenceExternNPE2IntIncTest:testRainterpreterReferenceExternNPE2IntIncSubParseUnknownWord(uint16,bytes1,bytes) (runs: 2048, μ: 1672960, ~: 1672739) +RainterpreterReferenceExternNPE2PointersTest:testIntegrityFunctionPointers() (gas: 1662748) +RainterpreterReferenceExternNPE2PointersTest:testOpcodeFunctionPointers() (gas: 1662813) +RainterpreterReferenceExternNPE2PointersTest:testSubParserFunctionPointers() (gas: 1663258) +RainterpreterReferenceExternNPE2PointersTest:testSubParserLiteralParsers() (gas: 1662790) +RainterpreterReferenceExternNPE2PointersTest:testSubParserOperandParsers() (gas: 1663263) +RainterpreterReferenceExternNPE2PointersTest:testSubParserParseMeta() (gas: 21933) +RainterpreterReferenceExternNPE2RepeatTest:testRainterpreterReferenceExternNPE2RepeatHappy() (gas: 1791925) +RainterpreterReferenceExternNPE2StackOperandTest:testRainterpreterReferenceExternNPE2StackOperandSingle(uint256) (runs: 2048, μ: 1748189, ~: 1748586) +RainterpreterReferenceExternNPE2UnknownWordTest:testRainterpreterReferenceExternNPE2UnknownWord() (gas: 1710356) +RainterpreterStoreNPE2IERC165Test:testRainterpreterStoreNPE2IERC165(bytes4) (runs: 2048, μ: 229944, ~: 229944) +RainterpreterStoreNPE2Test:testRainterpreterStoreNPE2IERC165(uint32) (runs: 2048, μ: 229961, ~: 229961) +RainterpreterStoreNPE2Test:testRainterpreterStoreNPE2SetGetDupes((uint256,uint256[11])[]) (runs: 2048, μ: 1509710, ~: 1466264) +RainterpreterStoreNPE2Test:testRainterpreterStoreNPE2SetGetNoDupesMany((uint256,uint256[])[]) (runs: 2048, μ: 3518035, ~: 3349331) +RainterpreterStoreNPE2Test:testRainterpreterStoreNPE2SetGetNoDupesSingle(uint256,uint256[]) (runs: 2048, μ: 1936429, ~: 1943575) +RainterpreterStoreNPE2Test:testRainterpreterStoreNPE2SetOddLength(uint256,uint256[]) (runs: 2048, μ: 248679, ~: 248662) +TestLibParseLiteralDecimalUnsafeStrToInt:testUnsafeStrToIntOverflowVeryLarge(uint256,uint256,uint8) (runs: 2048, μ: 43057, ~: 37832) +TestLibParseLiteralDecimalUnsafeStrToInt:testUnsafeStrToIntRoundTrip(uint256,uint8) (runs: 2048, μ: 28863, ~: 23189) +TestLibParseLiteralDecimalUnsafeStrToSignedInt:testUnsafeStrToSignedIntOverflowNegative(uint256,uint8) (runs: 2048, μ: 46330, ~: 37118) +TestLibParseLiteralDecimalUnsafeStrToSignedInt:testUnsafeStrToSignedIntOverflowPositive(uint256,uint8) (runs: 2048, μ: 46357, ~: 37147) +TestLibParseLiteralDecimalUnsafeStrToSignedInt:testUnsafeStrToSignedIntRoundTrip(uint256,uint8,bool) (runs: 2048, μ: 36005, ~: 29676) \ No newline at end of file diff --git a/Cargo.toml b/Cargo.toml index 949a3b5c3..c90141aa4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -5,8 +5,8 @@ resolver = "2" [workspace.package] version = "0.0.0-alpha.0" edition = "2021" -license = "CAL-1.0" -homepage = "https://github.com/rainprotocol/rain.interpreter" +license = "LicenseRef-DCL-1.0" +homepage = "https://github.com/rainlanguage/rain.interpreter" [workspace.dependencies] alloy = { version = "0.1.4", features = ["sol-types", "json", "json-abi"] } diff --git a/LICENSES/LicenseRef-DCL-1.0.txt b/LICENSES/LicenseRef-DCL-1.0.txt new file mode 100644 index 000000000..dc4e17161 --- /dev/null +++ b/LICENSES/LicenseRef-DCL-1.0.txt @@ -0,0 +1,189 @@ +# DecentraLicense + +*This DecentraLicense (the “License”) applies to any Work whose owner has marked it with any of the following notices:* + +*“Licensed under the DecentraLicense version 1.0,” or* + +*“Licensed under the DecentraLicense version 1.0, with Combined Work Exception”* + +------ + +## 1. Purpose + +This License gives You unlimited permission to use and modify the software to which it applies (the “Work”), either as-is or in modified form, for Your private purposes, while protecting the owners and contributors to the software from liability. + +This License also strives to protect the freedom and autonomy of third parties who receive the Work from you. If any non-affiliated third party receives any part, aspect, or element of the Work from You, this License requires that You provide that third party all the permissions and materials needed to independently use and modify the Work without that third party having a loss of data or capability due to your actions. + +The full permissions, conditions, and other terms are laid out below. + +## 2. Receiving a License + +In order to receive this License, You must agree to its rules. The rules of this License are both obligations of Your agreement with the Licensor and conditions to your License. You must not do anything with the Work that triggers a rule You cannot or will not follow. + +### 2.1. Application + +The terms of this License apply to the Work as you receive it from Licensor, as well as to any modifications, elaborations, or implementations created by You that contain any licenseable portion of the Work (a “Modified Work”). Unless specified, any reference to the Work also applies to a Modified Work. + +### 2.2. Offer and Acceptance + +This License is automatically offered to every person and organization. You show that you accept this License and agree to its conditions by taking any action with the Work that, absent this License, would infringe any intellectual property right held by Licensor. + +### 2.3. Compliance and Remedies + +Any failure to act according to the terms and conditions of this License places Your use of the Work outside the scope of the License and infringes the rights of the Licensor. In the event of breach, the terms and conditions of this License may be enforced by Licensor under the laws of any jurisdiction to which You are subject. You also agree that either the Licensor or a Recipient (as an intended third-party beneficiary) may enforce the terms and conditions of this License against You via specific performance. + +To the fullest extent available under the law of any jurisdiction to which You are subject, You also agree that a Recipient (as an intended third-party beneficiary) receives a benefit in the form of the ability to maintain exclusive control of private keys under the terms and conditions of this License. + +## 3. Permissions and Conditions + +### 3.1. Permissions Granted + +Conditioned on compliance with section 4, and subject to the limitations of section 3.2, Licensor grants You the world-wide, royalty-free, non-exclusive permission to: + +> a) Take any action with the Work that would infringe the non-patent intellectual property laws of any jurisdiction to which You are subject; and +> +> b) Take any action with the Work that would infringe any patent claims that Licensor can license or becomes able to license, to the extent that those claims are embodied in the Work as distributed by Licensor. + +### 3.2. Limitations on Permissions Granted + +The following limitations apply to the permissions granted in section 3.1: + +> a) Licensor does not grant any patent license for claims that are only infringed due to modification of the Work as provided by Licensor, or the combination of the Work as provided by Licensor, directly or indirectly, with any other component, including other software or hardware. +> +> b) Licensor does not grant any license to the trademarks, service marks, or logos of Licensor, except to the extent necessary to comply with the attribution conditions in section 4.1 of this License. + +## 4. Conditions + +If You exercise any permission granted by this License, such that the Work, or any part, aspect, or element of the Work, is distributed, communicated, made available, or made perceptible to a non-Affiliate third party (a “Recipient”), either via physical delivery or via a network connection to the Recipient, You must comply with the following conditions: + +### 4.1. Provide Access to Source Code + +Subject to the exception in section 4.4, You must provide to each Recipient a copy of, or no-charge unrestricted network access to, the Source Code corresponding to the Work. + +The “Source Code” of the Work means the form of the Work preferred for making modifications, including any comments, configuration information, documentation, help materials, installation instructions, cryptographic seeds or keys, and any information reasonably necessary for the Recipient to independently compile and use the Source Code and to have full access to the functionality contained in the Work. + +#### 4.1.1. Providing Network Access to the Source Code + +Network access to the Notices and Source Code may be provided by You or by a third party, such as a public software repository, and must persist during the same period in which You exercise any of the permissions granted to You under this License and for at least one year thereafter. + +#### 4.1.2. Source Code for a Modified Work + +Subject to the exception in section 4.5, You must provide to each Recipient of a Modified Work Access to Source Code corresponding to those portions of the Work remaining in the Modified Work as well as the modifications used by You to create the Modified Work. The Source Code corresponding to the modifications in the Modified Work must be provided to the Recipient either a) under this License, or b) under a Compatible Open Source License. + +A “Compatible Open Source License” means a license accepted by the Open Source Initiative that allows object code created using both Source Code provided under this License and Source Code provided under the other open source license to be distributed together as a single work. + +#### 4.1.3. Coordinated Disclosure of Security Vulnerabilities + +You may delay providing the Source Code corresponding to a particular modification of the Work for up to ninety (90) days (the “Embargo Period”) if: a) the modification is intended to address a newly-identified vulnerability or a security flaw in the Work, b) disclosure of the vulnerability or security flaw before the end of the Embargo Period would put the data, identity, or autonomy of one or more Recipients of the Work at significant risk, c) You are participating in a coordinated disclosure of the vulnerability or security flaw with one or more additional Licensees, and d) Access to the Source Code pertaining to the modification is provided to all Recipients at the end of the Embargo Period. + +### 4.2. Maintain User Autonomy + +In addition to providing each Recipient the opportunity to have Access to the Source Code, You cannot use the permissions given under this License to interfere with a Recipient’s ability to fully use an independent copy of the Work generated from the Source Code You provide with the Recipient’s own User Data. + +“User Data” means any data that is an input to or an output from the Work, where the presence of the data is necessary for substantially identical use of the Work in an equivalent context chosen by the Recipient, and where the Recipient has an existing ownership interest, an existing right to possess, or where the data has been generated by, for, or has been assigned to the Recipient. + +#### 4.2.1. No Withholding User Data + +Throughout any period in which You exercise any of the permissions granted to You under this License, You must also provide to any Recipient to whom you provide services via the Work, a no-charge copy, provided in a commonly used electronic form, of the Recipient’s User Data in your possession, to the extent that such User Data is available to You for use in conjunction with the Work. + +#### 4.2.2. No Technical Measures that Limit Access + +You may not, by the use of cryptographic methods applied to anything provided to the Recipient, by possession or control of cryptographic keys, seeds, or hashes, by other technological protection measures, or by any other method, limit a Recipient's ability to access any functionality present in the Recipient's independent copy of the Work, or deny a Recipient full control of the Recipient's User Data. + +#### 4.2.3. No Legal or Contractual Measures that Limit Access + +You may not contractually restrict a Recipient's ability to independently exercise the permissions granted under this License. You waive any legal power to forbid circumvention of technical protection measures that include use of the Work, and You waive any claim that the capabilities of the Work were limited or modified as a means of enforcing the legal rights of third parties against Recipients. + +### 4.3. Decentralized Code and Decentralized Systems + +You must only run Decentralized Code if: + +> a) it is run by a Decentralized System; and +> +> b) all the data referenced by Decentralized Code is stored on a Decentralized System. + +“Decentralized Code” is a Source Code file marked by the Licensor as “Decentralized Code”. + +“Decentralized System” is a system operating solely in accordance with publicly available Rules where any person or organisation: + +> a) only participates in the system by freely opting in; +> +> b) can interpret system data by reference to the Rules; and +> +> c) can obtain a copy of the system data, provided in a commonly used electronic form, accessible in accordance with the Rules. + +“Rule” is any unambiguous and human comprehensible: + +> a) rule that results in a deterministic outcome when implemented, in a commonly used electronic form; or +> +> b) configuration information, documentation, help materials, and any information reasonably necessary for a Recipient skilled in the art to independently comprehend the rule. + +### 4.4. Maintain Private Key Exclusive Control + +You cannot use the permissions given under this License to provide a Recipient with functionality using the Work that: + +> a) would cause the loss of exclusive control of a private key by a private key holder with exclusive control of a private key; or +> +> b) deals with private keys except by using a Decentralized System. + +### 4.5. Provide Notices and Attribution + +You must retain all licensing, authorship, or attribution notices contained in the Source Code (the “Notices”), and provide all such Notices to each Recipient, together with a statement acknowledging the use of the Work. Notices may be provided directly to a Recipient or via an easy-to-find hyperlink to an Internet location also providing Access to Source Code. + +### 4.6. Scope of Conditions in this License + +You are required to uphold the conditions of this License only relative to those who are Recipients of the Work from You. Other than providing Recipients with the applicable Notices, Access to Source Code, and a copy of and full control of their User Data, nothing in this License requires You to provide processing services to or engage in network interactions with anyone. + +### 4.7. Combined Work Exception + +As an exception to condition that You provide Recipients Access to Source Code, any Source Code files not marked by the Licensor as “Decentralized Code” and as having the “Combined Work Exception,” or any object code exclusively resulting from Source Code files so marked, may be combined with other Software into a “Larger Work.” So long as you: a) comply with the requirements to provide Recipients the applicable Notices and Access to the Source Code provided to You by Licensor, b) you provide Recipients access to their User Data and do not limit Recipient’s ability to independently work with their User Data, c) you comply with the requirements in relation to Decentralized Code and Decentralized Systems, and d) Recipients are able to maintain exclusive control of private cryptographic keys, any other Software in the Larger Work as well as the Larger Work as a whole may be licensed under the terms of your choice. + +## 5. Term and Termination + +The term of this License begins when You receive the Work, and continues until terminated for any of the reasons described herein, or until all Licensor’s intellectual property rights in the Software expire, whichever comes first (“Term”). This License cannot be revoked, only terminated for the reasons listed below. + +### 5.1. Effect of Termination + +If this License is terminated for any reason, all permissions granted to You under Section 3 by any Licensor automatically terminate. You will immediately cease exercising any permissions granted in this License relative to the Work, including as part of any Modified Work. + +### 5.2. Termination for Non-Compliance; Reinstatement + +This License terminates automatically if You fail to comply with any of the conditions in section 4. As a special exception to termination for non-compliance, Your permissions for the Work under this License will automatically be reinstated if You come into compliance with all the conditions in section 2 within sixty (60) days of being notified by Licensor or an intended third party beneficiary of Your noncompliance. You are eligible for reinstatement of permissions for the Work one time only, and only for the sixty days immediately after becoming aware of noncompliance. Loss of permissions granted for the Work under this License due to either a) sustained noncompliance lasting more than sixty days or b) subsequent termination for noncompliance after reinstatement, is permanent, unless rights are specifically restored by Licensor in writing. + +### 5.3 Termination Due to Litigation + +If You initiate litigation against Licensor, or any Recipient of the Work, either direct or indirect, asserting that the Work directly or indirectly infringes any patent, then all permissions granted to You by this License shall terminate. In the event of termination due to litigation, all permissions validly granted by You under this License, directly or indirectly, shall survive termination. Administrative review procedures, declaratory judgment actions, counterclaims in response to patent litigation, and enforcement actions against former Licensees terminated under this section do not cause termination due to litigation. + +## 6. Disclaimer of Warranty and Limit on Liability + +As far as the law allows, the Work comes AS-IS, without any warranty of any kind, and no Licensor or contributor will be liable to anyone for any damages related to this software or this license, under any kind of legal claim, or for any type of damages, including indirect, special, incidental, or consequential damages of any type arising as a result of this License or the use of the Work including, without limitation, damages for loss of goodwill, work stoppage, computer failure or malfunction, loss of profits, revenue, or any and all other commercial damages or losses. + +## 7. Other Provisions + +### 7.1. Affiliates + +An “Affiliate” means any other entity that, directly or indirectly through one or more intermediaries, controls, is controlled by, or is under common control with, the Licensee. Employees of a Licensee and natural persons acting as contractors exclusively providing services to Licensee are also Affiliates. + +### 7.2. Choice of Jurisdiction and Governing Law + +A Licensor may require that any action or suit by a Licensee relating to a Work provided by Licensor under this License may be brought only in the courts of a particular jurisdiction and under the laws of a particular jurisdiction (excluding its conflict-of-law provisions), if Licensor provides conspicuous notice of the particular jurisdiction to all Licensees. + +### 7.3. No Sublicensing + +This License is not sublicensable. Each time You provide the Work or a Modified Work to a Recipient, the Recipient automatically receives a license under the terms described in this License. You may not impose any further reservations, conditions, or other provisions on any Recipients’ exercise of the permissions granted herein. + +### 7.4. Attorneys' Fees + +In any action to enforce the terms of this License, or seeking damages relating thereto, including by an intended third party beneficiary, the prevailing party shall be entitled to recover its costs and expenses, including, without limitation, reasonable attorneys' fees and costs incurred in connection with such action, including any appeal of such action. A “prevailing party” is the party that achieves, or avoids, compliance with this License, including through settlement. This section shall survive the termination of this License. + +### 7.5. No Waiver + +Any failure by Licensor to enforce any provision of this License will not constitute a present or future waiver of such provision nor limit Licensor’s ability to enforce such provision at a later time. + +### 7.6. Severability + +If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. Any invalid or unenforceable portion will be interpreted to the effect and intent of the original portion. If such a construction is not possible, the invalid or unenforceable portion will be severed from this License but the rest of this License will remain in full force and effect. + +### 7.7. License for the Text of this License + +The text of this license is released under the Creative Commons Attribution-ShareAlike 4.0 International License, with the caveat that any modifications of this license may not use the name “DecentraLicense” or any name confusingly similar thereto to describe any derived work of this License. diff --git a/REUSE.toml b/REUSE.toml new file mode 100644 index 000000000..91221b6ad --- /dev/null +++ b/REUSE.toml @@ -0,0 +1,18 @@ +version = 1 + +[[annotations]] +path = [ + ".gas-snapshot", + ".github/workflows/**/", + "crates/**/", + ".gitignore", + ".gitmodules", + "README.md", + "flake.lock", + "flake.nix", + "foundry.toml", + "slither.config.json", + "REUSE.toml" +] +SPDX-FileCopyrightText = "Copyright (c) 2020 thedavidmeister" +SPDX-License-Identifier = "LicenseRef-DCL-1.0" diff --git a/flake.lock b/flake.lock index 27761cf17..e13e50b58 100644 --- a/flake.lock +++ b/flake.lock @@ -5,11 +5,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1710146030, - "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "lastModified": 1726560853, + "narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=", "owner": "numtide", "repo": "flake-utils", - "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a", "type": "github" }, "original": { @@ -368,11 +368,11 @@ "solc": "solc_2" }, "locked": { - "lastModified": 1724781020, - "narHash": "sha256-/vgAiDPnO11KoKxtdqxzR6L+vQmAPpLPL8dl3OqwVmQ=", + "lastModified": 1728997542, + "narHash": "sha256-D/CtiI2B1GoAkhGc0Bxq0XPZItWSgBhTPlW//kW4Kqw=", "owner": "rainlanguage", "repo": "rainix", - "rev": "e2a37abcdc83c08834428d225fdf3c5469116f62", + "rev": "b2722bcc1856af6c925128962ff24fda1bbc2c82", "type": "github" }, "original": { diff --git a/script/BuildAuthoringMeta.sol b/script/BuildAuthoringMeta.sol index 602508238..c6202ecb5 100644 --- a/script/BuildAuthoringMeta.sol +++ b/script/BuildAuthoringMeta.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Script} from "forge-std/Script.sol"; diff --git a/script/BuildPointers.sol b/script/BuildPointers.sol index 3dfeab6d6..cf881ff00 100644 --- a/script/BuildPointers.sol +++ b/script/BuildPointers.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Script} from "forge-std/Script.sol"; @@ -45,7 +46,9 @@ contract BuildPointers is Script { address(parser), "RainterpreterParserNPE2", string.concat( - LibGenParseMeta.parseMetaConstantString(vm, LibAllStandardOpsNP.authoringMetaV2(), PARSE_META_BUILD_DEPTH), + LibGenParseMeta.parseMetaConstantString( + vm, LibAllStandardOpsNP.authoringMetaV2(), PARSE_META_BUILD_DEPTH + ), LibCodeGen.operandHandlerFunctionPointersConstantString(vm, parser), LibCodeGen.literalParserFunctionPointersConstantString(vm, parser) ) diff --git a/script/Deploy.sol b/script/Deploy.sol index b295eacfb..0a69a9e58 100644 --- a/script/Deploy.sol +++ b/script/Deploy.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Script} from "forge-std/Script.sol"; diff --git a/src/abstract/BaseRainterpreterExternNPE2.sol b/src/abstract/BaseRainterpreterExternNPE2.sol index cd18dde2f..ed2a79b59 100644 --- a/src/abstract/BaseRainterpreterExternNPE2.sol +++ b/src/abstract/BaseRainterpreterExternNPE2.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {ERC165} from "openzeppelin-contracts/contracts/utils/introspection/ERC165.sol"; diff --git a/src/abstract/BaseRainterpreterSubParserNPE2.sol b/src/abstract/BaseRainterpreterSubParserNPE2.sol index f01134929..3718231bd 100644 --- a/src/abstract/BaseRainterpreterSubParserNPE2.sol +++ b/src/abstract/BaseRainterpreterSubParserNPE2.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {ERC165} from "openzeppelin-contracts/contracts/utils/introspection/ERC165.sol"; diff --git a/src/concrete/RainterpreterExpressionDeployerNPE2.sol b/src/concrete/RainterpreterExpressionDeployerNPE2.sol index 517b0596d..77394565e 100644 --- a/src/concrete/RainterpreterExpressionDeployerNPE2.sol +++ b/src/concrete/RainterpreterExpressionDeployerNPE2.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {ERC165, IERC165} from "openzeppelin-contracts/contracts/utils/introspection/ERC165.sol"; diff --git a/src/concrete/RainterpreterNPE2.sol b/src/concrete/RainterpreterNPE2.sol index 7afc91db2..d09df9ec3 100644 --- a/src/concrete/RainterpreterNPE2.sol +++ b/src/concrete/RainterpreterNPE2.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {ERC165} from "openzeppelin-contracts/contracts/utils/introspection/ERC165.sol"; diff --git a/src/concrete/RainterpreterParserNPE2.sol b/src/concrete/RainterpreterParserNPE2.sol index ad9379f44..089f5e4c8 100644 --- a/src/concrete/RainterpreterParserNPE2.sol +++ b/src/concrete/RainterpreterParserNPE2.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {IERC165, ERC165} from "openzeppelin-contracts/contracts/utils/introspection/ERC165.sol"; diff --git a/src/concrete/RainterpreterStoreNPE2.sol b/src/concrete/RainterpreterStoreNPE2.sol index b8fa31a60..03ced915f 100644 --- a/src/concrete/RainterpreterStoreNPE2.sol +++ b/src/concrete/RainterpreterStoreNPE2.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {ERC165} from "openzeppelin-contracts/contracts/utils/introspection/ERC165.sol"; diff --git a/src/concrete/extern/RainterpreterReferenceExternNPE2.sol b/src/concrete/extern/RainterpreterReferenceExternNPE2.sol index 392c8bf48..018db81f5 100644 --- a/src/concrete/extern/RainterpreterReferenceExternNPE2.sol +++ b/src/concrete/extern/RainterpreterReferenceExternNPE2.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {LibConvert} from "rain.lib.typecast/LibConvert.sol"; diff --git a/src/error/ErrBitwise.sol b/src/error/ErrBitwise.sol index 5b7d34afc..fcd647df2 100644 --- a/src/error/ErrBitwise.sol +++ b/src/error/ErrBitwise.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; /// @dev Workaround for https://github.com/foundry-rs/foundry/issues/6572 diff --git a/src/error/ErrDeploy.sol b/src/error/ErrDeploy.sol index 45d5de466..80cbdb465 100644 --- a/src/error/ErrDeploy.sol +++ b/src/error/ErrDeploy.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.19; /// @dev Workaround for https://github.com/foundry-rs/foundry/issues/6572 diff --git a/src/error/ErrExtern.sol b/src/error/ErrExtern.sol index 4d6b71547..d698952fa 100644 --- a/src/error/ErrExtern.sol +++ b/src/error/ErrExtern.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; /// @dev Workaround for https://github.com/foundry-rs/foundry/issues/6572 diff --git a/src/error/ErrIntegrity.sol b/src/error/ErrIntegrity.sol index 1caf6753d..a73fe4629 100644 --- a/src/error/ErrIntegrity.sol +++ b/src/error/ErrIntegrity.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.19; /// @dev There are more entrypoints defined by the minimum stack outputs than diff --git a/src/error/ErrOpList.sol b/src/error/ErrOpList.sol index f89932ff9..f740e7c81 100644 --- a/src/error/ErrOpList.sol +++ b/src/error/ErrOpList.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.19; /// @dev Workaround for https://github.com/foundry-rs/foundry/issues/6572 diff --git a/src/error/ErrParse.sol b/src/error/ErrParse.sol index 76b7e5259..ed1f75bc8 100644 --- a/src/error/ErrParse.sol +++ b/src/error/ErrParse.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; /// @dev Workaround for https://github.com/foundry-rs/foundry/issues/6572 diff --git a/src/error/ErrSubParse.sol b/src/error/ErrSubParse.sol index 93fe00daf..0c4b67f96 100644 --- a/src/error/ErrSubParse.sol +++ b/src/error/ErrSubParse.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; /// @dev When a subparser is not compatible with the main parser it MUST error diff --git a/src/generated/RainterpreterExpressionDeployerNPE2.pointers.sol b/src/generated/RainterpreterExpressionDeployerNPE2.pointers.sol index 10bed50fa..5c100eac1 100644 --- a/src/generated/RainterpreterExpressionDeployerNPE2.pointers.sol +++ b/src/generated/RainterpreterExpressionDeployerNPE2.pointers.sol @@ -5,7 +5,8 @@ // needs the pointers file to exist so that it can compile, and the pointers // file needs the contract to exist so that it can be compiled. -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; /// @dev Hash of the known bytecode. diff --git a/src/generated/RainterpreterNPE2.pointers.sol b/src/generated/RainterpreterNPE2.pointers.sol index 8197fd400..d65c41468 100644 --- a/src/generated/RainterpreterNPE2.pointers.sol +++ b/src/generated/RainterpreterNPE2.pointers.sol @@ -5,7 +5,8 @@ // needs the pointers file to exist so that it can compile, and the pointers // file needs the contract to exist so that it can be compiled. -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; /// @dev Hash of the known bytecode. diff --git a/src/generated/RainterpreterParserNPE2.pointers.sol b/src/generated/RainterpreterParserNPE2.pointers.sol index 209a2f0de..7330deefb 100644 --- a/src/generated/RainterpreterParserNPE2.pointers.sol +++ b/src/generated/RainterpreterParserNPE2.pointers.sol @@ -5,7 +5,8 @@ // needs the pointers file to exist so that it can compile, and the pointers // file needs the contract to exist so that it can be compiled. -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; /// @dev Hash of the known bytecode. diff --git a/src/generated/RainterpreterReferenceExternNPE2.pointers.sol b/src/generated/RainterpreterReferenceExternNPE2.pointers.sol index 99fd0d659..4f8160cb5 100644 --- a/src/generated/RainterpreterReferenceExternNPE2.pointers.sol +++ b/src/generated/RainterpreterReferenceExternNPE2.pointers.sol @@ -5,7 +5,8 @@ // needs the pointers file to exist so that it can compile, and the pointers // file needs the contract to exist so that it can be compiled. -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; /// @dev Hash of the known bytecode. diff --git a/src/generated/RainterpreterStoreNPE2.pointers.sol b/src/generated/RainterpreterStoreNPE2.pointers.sol index 8d6c8c5d9..8d8636cc2 100644 --- a/src/generated/RainterpreterStoreNPE2.pointers.sol +++ b/src/generated/RainterpreterStoreNPE2.pointers.sol @@ -5,7 +5,8 @@ // needs the pointers file to exist so that it can compile, and the pointers // file needs the contract to exist so that it can be compiled. -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; /// @dev Hash of the known bytecode. diff --git a/src/lib/constants/ExpressionDeployerNPConstants.sol b/src/lib/constants/ExpressionDeployerNPConstants.sol index a04788424..904963ee2 100644 --- a/src/lib/constants/ExpressionDeployerNPConstants.sol +++ b/src/lib/constants/ExpressionDeployerNPConstants.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; string constant EXPRESSION_DEPLOYER_NP_META_PATH = "meta/RainterpreterExpressionDeployerNPE2.rain.meta"; diff --git a/src/lib/eval/LibEvalNP.sol b/src/lib/eval/LibEvalNP.sol index 20733c74f..1702ea6f1 100644 --- a/src/lib/eval/LibEvalNP.sol +++ b/src/lib/eval/LibEvalNP.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {LibInterpreterStateNP, InterpreterStateNP} from "../state/LibInterpreterStateNP.sol"; diff --git a/src/lib/extern/LibExtern.sol b/src/lib/extern/LibExtern.sol index c46b45790..f6c221766 100644 --- a/src/lib/extern/LibExtern.sol +++ b/src/lib/extern/LibExtern.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; diff --git a/src/lib/extern/reference/literal/LibParseLiteralRepeat.sol b/src/lib/extern/reference/literal/LibParseLiteralRepeat.sol index 6f598702c..0b015dc05 100644 --- a/src/lib/extern/reference/literal/LibParseLiteralRepeat.sol +++ b/src/lib/extern/reference/literal/LibParseLiteralRepeat.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.25; import {LibParseLiteralDecimal} from "../../../parse/literal/LibParseLiteralDecimal.sol"; diff --git a/src/lib/extern/reference/op/LibExternOpContextCallingContractNPE2.sol b/src/lib/extern/reference/op/LibExternOpContextCallingContractNPE2.sol index a33a7840a..fa1a8bf3c 100644 --- a/src/lib/extern/reference/op/LibExternOpContextCallingContractNPE2.sol +++ b/src/lib/extern/reference/op/LibExternOpContextCallingContractNPE2.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.25; import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; diff --git a/src/lib/extern/reference/op/LibExternOpContextRainlenNPE2.sol b/src/lib/extern/reference/op/LibExternOpContextRainlenNPE2.sol index 354eac69d..4634cb5e9 100644 --- a/src/lib/extern/reference/op/LibExternOpContextRainlenNPE2.sol +++ b/src/lib/extern/reference/op/LibExternOpContextRainlenNPE2.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.25; import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; diff --git a/src/lib/extern/reference/op/LibExternOpContextSenderNPE2.sol b/src/lib/extern/reference/op/LibExternOpContextSenderNPE2.sol index 382741543..194e555ed 100644 --- a/src/lib/extern/reference/op/LibExternOpContextSenderNPE2.sol +++ b/src/lib/extern/reference/op/LibExternOpContextSenderNPE2.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.25; import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; diff --git a/src/lib/extern/reference/op/LibExternOpIntIncNPE2.sol b/src/lib/extern/reference/op/LibExternOpIntIncNPE2.sol index a13933693..f6972e9a3 100644 --- a/src/lib/extern/reference/op/LibExternOpIntIncNPE2.sol +++ b/src/lib/extern/reference/op/LibExternOpIntIncNPE2.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.25; import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; diff --git a/src/lib/extern/reference/op/LibExternOpStackOperandNPE2.sol b/src/lib/extern/reference/op/LibExternOpStackOperandNPE2.sol index 3f1ef0485..60ac62b14 100644 --- a/src/lib/extern/reference/op/LibExternOpStackOperandNPE2.sol +++ b/src/lib/extern/reference/op/LibExternOpStackOperandNPE2.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.25; import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; diff --git a/src/lib/integrity/LibIntegrityCheckNP.sol b/src/lib/integrity/LibIntegrityCheckNP.sol index e18f90bfc..d0bd37623 100644 --- a/src/lib/integrity/LibIntegrityCheckNP.sol +++ b/src/lib/integrity/LibIntegrityCheckNP.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.19; import {Pointer} from "rain.solmem/lib/LibPointer.sol"; diff --git a/src/lib/op/00/LibOpConstantNP.sol b/src/lib/op/00/LibOpConstantNP.sol index edd643bee..c470e0a7e 100644 --- a/src/lib/op/00/LibOpConstantNP.sol +++ b/src/lib/op/00/LibOpConstantNP.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {IntegrityCheckStateNP} from "../../integrity/LibIntegrityCheckNP.sol"; diff --git a/src/lib/op/00/LibOpContextNP.sol b/src/lib/op/00/LibOpContextNP.sol index 92062f114..0517f52cc 100644 --- a/src/lib/op/00/LibOpContextNP.sol +++ b/src/lib/op/00/LibOpContextNP.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {Pointer} from "rain.solmem/lib/LibPointer.sol"; diff --git a/src/lib/op/00/LibOpExternNP.sol b/src/lib/op/00/LibOpExternNP.sol index f8efdac6c..dc0e3185d 100644 --- a/src/lib/op/00/LibOpExternNP.sol +++ b/src/lib/op/00/LibOpExternNP.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {NotAnExternContract} from "../../../error/ErrExtern.sol"; diff --git a/src/lib/op/00/LibOpStackNP.sol b/src/lib/op/00/LibOpStackNP.sol index d695b12e3..99043b64d 100644 --- a/src/lib/op/00/LibOpStackNP.sol +++ b/src/lib/op/00/LibOpStackNP.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {Pointer} from "rain.solmem/lib/LibPointer.sol"; diff --git a/src/lib/op/LibAllStandardOpsNP.sol b/src/lib/op/LibAllStandardOpsNP.sol index de257f80e..bf682b0d7 100644 --- a/src/lib/op/LibAllStandardOpsNP.sol +++ b/src/lib/op/LibAllStandardOpsNP.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.19; import {BadDynamicLength} from "../../error/ErrOpList.sol"; diff --git a/src/lib/op/bitwise/LibOpBitwiseAndNP.sol b/src/lib/op/bitwise/LibOpBitwiseAndNP.sol index 9ec939ad6..d77c614a0 100644 --- a/src/lib/op/bitwise/LibOpBitwiseAndNP.sol +++ b/src/lib/op/bitwise/LibOpBitwiseAndNP.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {IntegrityCheckStateNP} from "../../integrity/LibIntegrityCheckNP.sol"; diff --git a/src/lib/op/bitwise/LibOpBitwiseOrNP.sol b/src/lib/op/bitwise/LibOpBitwiseOrNP.sol index 913541243..28a705f78 100644 --- a/src/lib/op/bitwise/LibOpBitwiseOrNP.sol +++ b/src/lib/op/bitwise/LibOpBitwiseOrNP.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {IntegrityCheckStateNP} from "../../integrity/LibIntegrityCheckNP.sol"; diff --git a/src/lib/op/bitwise/LibOpCtPopNP.sol b/src/lib/op/bitwise/LibOpCtPopNP.sol index b8ca791ac..6f3e88e0b 100644 --- a/src/lib/op/bitwise/LibOpCtPopNP.sol +++ b/src/lib/op/bitwise/LibOpCtPopNP.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {Pointer} from "rain.solmem/lib/LibPointer.sol"; diff --git a/src/lib/op/bitwise/LibOpDecodeBitsNP.sol b/src/lib/op/bitwise/LibOpDecodeBitsNP.sol index 629bf8ed0..a414e31e4 100644 --- a/src/lib/op/bitwise/LibOpDecodeBitsNP.sol +++ b/src/lib/op/bitwise/LibOpDecodeBitsNP.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {IntegrityCheckStateNP} from "../../integrity/LibIntegrityCheckNP.sol"; diff --git a/src/lib/op/bitwise/LibOpEncodeBitsNP.sol b/src/lib/op/bitwise/LibOpEncodeBitsNP.sol index 95181fc20..180e3379a 100644 --- a/src/lib/op/bitwise/LibOpEncodeBitsNP.sol +++ b/src/lib/op/bitwise/LibOpEncodeBitsNP.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {ZeroLengthBitwiseEncoding, TruncatedBitwiseEncoding} from "../../../error/ErrBitwise.sol"; diff --git a/src/lib/op/bitwise/LibOpShiftBitsLeftNP.sol b/src/lib/op/bitwise/LibOpShiftBitsLeftNP.sol index 879686659..98033bddc 100644 --- a/src/lib/op/bitwise/LibOpShiftBitsLeftNP.sol +++ b/src/lib/op/bitwise/LibOpShiftBitsLeftNP.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {IntegrityCheckStateNP} from "../../integrity/LibIntegrityCheckNP.sol"; diff --git a/src/lib/op/bitwise/LibOpShiftBitsRightNP.sol b/src/lib/op/bitwise/LibOpShiftBitsRightNP.sol index 735077bf1..9ede08966 100644 --- a/src/lib/op/bitwise/LibOpShiftBitsRightNP.sol +++ b/src/lib/op/bitwise/LibOpShiftBitsRightNP.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {IntegrityCheckStateNP} from "../../integrity/LibIntegrityCheckNP.sol"; diff --git a/src/lib/op/call/LibOpCallNP.sol b/src/lib/op/call/LibOpCallNP.sol index db8e46c43..b45d7a3e2 100644 --- a/src/lib/op/call/LibOpCallNP.sol +++ b/src/lib/op/call/LibOpCallNP.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; diff --git a/src/lib/op/crypto/LibOpHashNP.sol b/src/lib/op/crypto/LibOpHashNP.sol index 40377bc37..19718ddae 100644 --- a/src/lib/op/crypto/LibOpHashNP.sol +++ b/src/lib/op/crypto/LibOpHashNP.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {Pointer} from "rain.solmem/lib/LibPointer.sol"; diff --git a/src/lib/op/erc20/LibOpERC20Allowance.sol b/src/lib/op/erc20/LibOpERC20Allowance.sol index 6e0171080..d5db0f056 100644 --- a/src/lib/op/erc20/LibOpERC20Allowance.sol +++ b/src/lib/op/erc20/LibOpERC20Allowance.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {IERC20} from "openzeppelin-contracts/contracts/token/ERC20/IERC20.sol"; diff --git a/src/lib/op/erc20/LibOpERC20BalanceOf.sol b/src/lib/op/erc20/LibOpERC20BalanceOf.sol index 2923b0960..9b61b755c 100644 --- a/src/lib/op/erc20/LibOpERC20BalanceOf.sol +++ b/src/lib/op/erc20/LibOpERC20BalanceOf.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {IERC20} from "openzeppelin-contracts/contracts/token/ERC20/IERC20.sol"; diff --git a/src/lib/op/erc20/LibOpERC20TotalSupply.sol b/src/lib/op/erc20/LibOpERC20TotalSupply.sol index d118ec099..acfc4ad06 100644 --- a/src/lib/op/erc20/LibOpERC20TotalSupply.sol +++ b/src/lib/op/erc20/LibOpERC20TotalSupply.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.25; import {IERC20} from "openzeppelin-contracts/contracts/interfaces/IERC20.sol"; diff --git a/src/lib/op/erc20/uint256/LibOpUint256ERC20Allowance.sol b/src/lib/op/erc20/uint256/LibOpUint256ERC20Allowance.sol index 9d60013f8..2fc906aba 100644 --- a/src/lib/op/erc20/uint256/LibOpUint256ERC20Allowance.sol +++ b/src/lib/op/erc20/uint256/LibOpUint256ERC20Allowance.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {IERC20} from "openzeppelin-contracts/contracts/token/ERC20/IERC20.sol"; diff --git a/src/lib/op/erc20/uint256/LibOpUint256ERC20BalanceOf.sol b/src/lib/op/erc20/uint256/LibOpUint256ERC20BalanceOf.sol index 80c87bbdf..121e0f951 100644 --- a/src/lib/op/erc20/uint256/LibOpUint256ERC20BalanceOf.sol +++ b/src/lib/op/erc20/uint256/LibOpUint256ERC20BalanceOf.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {IERC20} from "openzeppelin-contracts/contracts/token/ERC20/IERC20.sol"; diff --git a/src/lib/op/erc20/uint256/LibOpUint256ERC20TotalSupply.sol b/src/lib/op/erc20/uint256/LibOpUint256ERC20TotalSupply.sol index 8b3963b34..7a05a2927 100644 --- a/src/lib/op/erc20/uint256/LibOpUint256ERC20TotalSupply.sol +++ b/src/lib/op/erc20/uint256/LibOpUint256ERC20TotalSupply.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.25; import {IERC20} from "openzeppelin-contracts/contracts/interfaces/IERC20.sol"; diff --git a/src/lib/op/erc5313/LibOpERC5313OwnerNP.sol b/src/lib/op/erc5313/LibOpERC5313OwnerNP.sol index 756996bfb..ee04f49dd 100644 --- a/src/lib/op/erc5313/LibOpERC5313OwnerNP.sol +++ b/src/lib/op/erc5313/LibOpERC5313OwnerNP.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.25; import {IERC5313} from "openzeppelin-contracts/contracts/interfaces/IERC5313.sol"; diff --git a/src/lib/op/erc721/LibOpERC721OwnerOf.sol b/src/lib/op/erc721/LibOpERC721OwnerOf.sol index 54d8d9dd7..f8c220774 100644 --- a/src/lib/op/erc721/LibOpERC721OwnerOf.sol +++ b/src/lib/op/erc721/LibOpERC721OwnerOf.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {IERC721} from "openzeppelin-contracts/contracts/token/ERC721/IERC721.sol"; diff --git a/src/lib/op/erc721/uint256/LibOpUint256ERC721BalanceOf.sol b/src/lib/op/erc721/uint256/LibOpUint256ERC721BalanceOf.sol index a47c7d6b1..57eb46379 100644 --- a/src/lib/op/erc721/uint256/LibOpUint256ERC721BalanceOf.sol +++ b/src/lib/op/erc721/uint256/LibOpUint256ERC721BalanceOf.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {IERC721} from "openzeppelin-contracts/contracts/token/ERC721/IERC721.sol"; diff --git a/src/lib/op/evm/LibOpBlockNumberNP.sol b/src/lib/op/evm/LibOpBlockNumberNP.sol index 822510f43..d6f5ff06d 100644 --- a/src/lib/op/evm/LibOpBlockNumberNP.sol +++ b/src/lib/op/evm/LibOpBlockNumberNP.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {Pointer} from "rain.solmem/lib/LibPointer.sol"; diff --git a/src/lib/op/evm/LibOpChainIdNP.sol b/src/lib/op/evm/LibOpChainIdNP.sol index 5b5b308b0..d73db3fbe 100644 --- a/src/lib/op/evm/LibOpChainIdNP.sol +++ b/src/lib/op/evm/LibOpChainIdNP.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {Pointer} from "rain.solmem/lib/LibPointer.sol"; diff --git a/src/lib/op/evm/LibOpMaxUint256NP.sol b/src/lib/op/evm/LibOpMaxUint256NP.sol index eca23a7df..60d3336cd 100644 --- a/src/lib/op/evm/LibOpMaxUint256NP.sol +++ b/src/lib/op/evm/LibOpMaxUint256NP.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {IntegrityCheckStateNP} from "../../integrity/LibIntegrityCheckNP.sol"; diff --git a/src/lib/op/evm/LibOpTimestampNP.sol b/src/lib/op/evm/LibOpTimestampNP.sol index b06863263..d3e41b30f 100644 --- a/src/lib/op/evm/LibOpTimestampNP.sol +++ b/src/lib/op/evm/LibOpTimestampNP.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {IntegrityCheckStateNP} from "../../integrity/LibIntegrityCheckNP.sol"; diff --git a/src/lib/op/logic/LibOpAnyNP.sol b/src/lib/op/logic/LibOpAnyNP.sol index 33405035e..94ce1c921 100644 --- a/src/lib/op/logic/LibOpAnyNP.sol +++ b/src/lib/op/logic/LibOpAnyNP.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; diff --git a/src/lib/op/logic/LibOpConditionsNP.sol b/src/lib/op/logic/LibOpConditionsNP.sol index b7c34100e..78b19e853 100644 --- a/src/lib/op/logic/LibOpConditionsNP.sol +++ b/src/lib/op/logic/LibOpConditionsNP.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; diff --git a/src/lib/op/logic/LibOpEnsureNP.sol b/src/lib/op/logic/LibOpEnsureNP.sol index 9335d6b36..dfd5ae499 100644 --- a/src/lib/op/logic/LibOpEnsureNP.sol +++ b/src/lib/op/logic/LibOpEnsureNP.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {Pointer} from "rain.solmem/lib/LibPointer.sol"; diff --git a/src/lib/op/logic/LibOpEqualToNP.sol b/src/lib/op/logic/LibOpEqualToNP.sol index e8a8b805d..23512d166 100644 --- a/src/lib/op/logic/LibOpEqualToNP.sol +++ b/src/lib/op/logic/LibOpEqualToNP.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; diff --git a/src/lib/op/logic/LibOpEveryNP.sol b/src/lib/op/logic/LibOpEveryNP.sol index 1c523ceaa..dfda0fa8e 100644 --- a/src/lib/op/logic/LibOpEveryNP.sol +++ b/src/lib/op/logic/LibOpEveryNP.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {Pointer} from "rain.solmem/lib/LibPointer.sol"; diff --git a/src/lib/op/logic/LibOpGreaterThanNP.sol b/src/lib/op/logic/LibOpGreaterThanNP.sol index f9ab78502..d09f9c453 100644 --- a/src/lib/op/logic/LibOpGreaterThanNP.sol +++ b/src/lib/op/logic/LibOpGreaterThanNP.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; diff --git a/src/lib/op/logic/LibOpGreaterThanOrEqualToNP.sol b/src/lib/op/logic/LibOpGreaterThanOrEqualToNP.sol index 3df3d9a52..03b451f2a 100644 --- a/src/lib/op/logic/LibOpGreaterThanOrEqualToNP.sol +++ b/src/lib/op/logic/LibOpGreaterThanOrEqualToNP.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; diff --git a/src/lib/op/logic/LibOpIfNP.sol b/src/lib/op/logic/LibOpIfNP.sol index a40f76528..ee00f9941 100644 --- a/src/lib/op/logic/LibOpIfNP.sol +++ b/src/lib/op/logic/LibOpIfNP.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; diff --git a/src/lib/op/logic/LibOpIsZeroNP.sol b/src/lib/op/logic/LibOpIsZeroNP.sol index b37669f64..55edfeffa 100644 --- a/src/lib/op/logic/LibOpIsZeroNP.sol +++ b/src/lib/op/logic/LibOpIsZeroNP.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; diff --git a/src/lib/op/logic/LibOpLessThanNP.sol b/src/lib/op/logic/LibOpLessThanNP.sol index 118843401..b0c6c72dc 100644 --- a/src/lib/op/logic/LibOpLessThanNP.sol +++ b/src/lib/op/logic/LibOpLessThanNP.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; diff --git a/src/lib/op/logic/LibOpLessThanOrEqualToNP.sol b/src/lib/op/logic/LibOpLessThanOrEqualToNP.sol index 25bc0893f..295b4639d 100644 --- a/src/lib/op/logic/LibOpLessThanOrEqualToNP.sol +++ b/src/lib/op/logic/LibOpLessThanOrEqualToNP.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; diff --git a/src/lib/op/math/LibOpAdd.sol b/src/lib/op/math/LibOpAdd.sol index cf1d193f7..46f26c861 100644 --- a/src/lib/op/math/LibOpAdd.sol +++ b/src/lib/op/math/LibOpAdd.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; diff --git a/src/lib/op/math/LibOpAvg.sol b/src/lib/op/math/LibOpAvg.sol index 7873560f8..68ed2c5d8 100644 --- a/src/lib/op/math/LibOpAvg.sol +++ b/src/lib/op/math/LibOpAvg.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {UD60x18, avg} from "prb-math/UD60x18.sol"; diff --git a/src/lib/op/math/LibOpCeil.sol b/src/lib/op/math/LibOpCeil.sol index 9eaa7a7b4..622b826b9 100644 --- a/src/lib/op/math/LibOpCeil.sol +++ b/src/lib/op/math/LibOpCeil.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {UD60x18, ceil} from "prb-math/UD60x18.sol"; diff --git a/src/lib/op/math/LibOpDiv.sol b/src/lib/op/math/LibOpDiv.sol index 262f7755b..9d901ee3b 100644 --- a/src/lib/op/math/LibOpDiv.sol +++ b/src/lib/op/math/LibOpDiv.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; /// Used for reference implementation so that we have two independent diff --git a/src/lib/op/math/LibOpE.sol b/src/lib/op/math/LibOpE.sol index 224e91934..00e157616 100644 --- a/src/lib/op/math/LibOpE.sol +++ b/src/lib/op/math/LibOpE.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {Pointer} from "rain.solmem/lib/LibPointer.sol"; diff --git a/src/lib/op/math/LibOpExp.sol b/src/lib/op/math/LibOpExp.sol index d164017a2..d8f4fac35 100644 --- a/src/lib/op/math/LibOpExp.sol +++ b/src/lib/op/math/LibOpExp.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {UD60x18, exp} from "prb-math/UD60x18.sol"; diff --git a/src/lib/op/math/LibOpExp2.sol b/src/lib/op/math/LibOpExp2.sol index 7176d8ec5..14aadc7e3 100644 --- a/src/lib/op/math/LibOpExp2.sol +++ b/src/lib/op/math/LibOpExp2.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {UD60x18, exp2} from "prb-math/UD60x18.sol"; diff --git a/src/lib/op/math/LibOpFloor.sol b/src/lib/op/math/LibOpFloor.sol index c2a5b5c4c..0a7dcc9ae 100644 --- a/src/lib/op/math/LibOpFloor.sol +++ b/src/lib/op/math/LibOpFloor.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {UD60x18, floor} from "prb-math/UD60x18.sol"; diff --git a/src/lib/op/math/LibOpFrac.sol b/src/lib/op/math/LibOpFrac.sol index d88b24416..234db211f 100644 --- a/src/lib/op/math/LibOpFrac.sol +++ b/src/lib/op/math/LibOpFrac.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {UD60x18, frac} from "prb-math/UD60x18.sol"; diff --git a/src/lib/op/math/LibOpGm.sol b/src/lib/op/math/LibOpGm.sol index 04d862829..63162d585 100644 --- a/src/lib/op/math/LibOpGm.sol +++ b/src/lib/op/math/LibOpGm.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {UD60x18, gm} from "prb-math/UD60x18.sol"; diff --git a/src/lib/op/math/LibOpHeadroom.sol b/src/lib/op/math/LibOpHeadroom.sol index aa2f004f7..2782e065a 100644 --- a/src/lib/op/math/LibOpHeadroom.sol +++ b/src/lib/op/math/LibOpHeadroom.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {UD60x18, frac} from "prb-math/UD60x18.sol"; diff --git a/src/lib/op/math/LibOpInv.sol b/src/lib/op/math/LibOpInv.sol index 6bfdb67dd..24d56a3b5 100644 --- a/src/lib/op/math/LibOpInv.sol +++ b/src/lib/op/math/LibOpInv.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {UD60x18, inv} from "prb-math/UD60x18.sol"; diff --git a/src/lib/op/math/LibOpLn.sol b/src/lib/op/math/LibOpLn.sol index 9bdbcc0a6..5433bae13 100644 --- a/src/lib/op/math/LibOpLn.sol +++ b/src/lib/op/math/LibOpLn.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {UD60x18, ln} from "prb-math/UD60x18.sol"; diff --git a/src/lib/op/math/LibOpLog10.sol b/src/lib/op/math/LibOpLog10.sol index 348dbfa5c..45fd11b07 100644 --- a/src/lib/op/math/LibOpLog10.sol +++ b/src/lib/op/math/LibOpLog10.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {UD60x18, log10} from "prb-math/UD60x18.sol"; diff --git a/src/lib/op/math/LibOpLog2.sol b/src/lib/op/math/LibOpLog2.sol index 16fb3d8a2..803b4e3be 100644 --- a/src/lib/op/math/LibOpLog2.sol +++ b/src/lib/op/math/LibOpLog2.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {UD60x18, log2} from "prb-math/UD60x18.sol"; diff --git a/src/lib/op/math/LibOpMax.sol b/src/lib/op/math/LibOpMax.sol index 55daa3041..48bb2c434 100644 --- a/src/lib/op/math/LibOpMax.sol +++ b/src/lib/op/math/LibOpMax.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; diff --git a/src/lib/op/math/LibOpMin.sol b/src/lib/op/math/LibOpMin.sol index 44903752b..ca161b8c7 100644 --- a/src/lib/op/math/LibOpMin.sol +++ b/src/lib/op/math/LibOpMin.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; diff --git a/src/lib/op/math/LibOpMod.sol b/src/lib/op/math/LibOpMod.sol index 40eafadc6..c3708fc19 100644 --- a/src/lib/op/math/LibOpMod.sol +++ b/src/lib/op/math/LibOpMod.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; diff --git a/src/lib/op/math/LibOpMul.sol b/src/lib/op/math/LibOpMul.sol index a7755fd28..6d94cfaa9 100644 --- a/src/lib/op/math/LibOpMul.sol +++ b/src/lib/op/math/LibOpMul.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; /// Used for reference implementation so that we have two independent diff --git a/src/lib/op/math/LibOpPow.sol b/src/lib/op/math/LibOpPow.sol index ed42df461..11850c382 100644 --- a/src/lib/op/math/LibOpPow.sol +++ b/src/lib/op/math/LibOpPow.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {UD60x18, pow} from "prb-math/UD60x18.sol"; diff --git a/src/lib/op/math/LibOpScale18.sol b/src/lib/op/math/LibOpScale18.sol index 2fe8ef89b..a636168d1 100644 --- a/src/lib/op/math/LibOpScale18.sol +++ b/src/lib/op/math/LibOpScale18.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {LibFixedPointDecimalScale} from "rain.math.fixedpoint/lib/LibFixedPointDecimalScale.sol"; diff --git a/src/lib/op/math/LibOpScale18Dynamic.sol b/src/lib/op/math/LibOpScale18Dynamic.sol index 8c5bd28bf..4c59f363b 100644 --- a/src/lib/op/math/LibOpScale18Dynamic.sol +++ b/src/lib/op/math/LibOpScale18Dynamic.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {LibFixedPointDecimalScale, DECIMAL_MAX_SAFE_INT} from "rain.math.fixedpoint/lib/LibFixedPointDecimalScale.sol"; diff --git a/src/lib/op/math/LibOpScaleN.sol b/src/lib/op/math/LibOpScaleN.sol index 5b832feff..99882cf48 100644 --- a/src/lib/op/math/LibOpScaleN.sol +++ b/src/lib/op/math/LibOpScaleN.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {LibFixedPointDecimalScale} from "rain.math.fixedpoint/lib/LibFixedPointDecimalScale.sol"; diff --git a/src/lib/op/math/LibOpScaleNDynamic.sol b/src/lib/op/math/LibOpScaleNDynamic.sol index 7aca8740a..91acde873 100644 --- a/src/lib/op/math/LibOpScaleNDynamic.sol +++ b/src/lib/op/math/LibOpScaleNDynamic.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; diff --git a/src/lib/op/math/LibOpSnapToUnit.sol b/src/lib/op/math/LibOpSnapToUnit.sol index 9e08ac3b1..c00ef90f3 100644 --- a/src/lib/op/math/LibOpSnapToUnit.sol +++ b/src/lib/op/math/LibOpSnapToUnit.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {InterpreterStateNP} from "../../state/LibInterpreterStateNP.sol"; diff --git a/src/lib/op/math/LibOpSqrt.sol b/src/lib/op/math/LibOpSqrt.sol index fee6a307f..2c5b39d3e 100644 --- a/src/lib/op/math/LibOpSqrt.sol +++ b/src/lib/op/math/LibOpSqrt.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {UD60x18, sqrt} from "prb-math/UD60x18.sol"; diff --git a/src/lib/op/math/LibOpSub.sol b/src/lib/op/math/LibOpSub.sol index e3a48cbfe..a52c4ccbc 100644 --- a/src/lib/op/math/LibOpSub.sol +++ b/src/lib/op/math/LibOpSub.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; diff --git a/src/lib/op/math/growth/LibOpExponentialGrowth.sol b/src/lib/op/math/growth/LibOpExponentialGrowth.sol index 3cb0b7ebc..bfb26658b 100644 --- a/src/lib/op/math/growth/LibOpExponentialGrowth.sol +++ b/src/lib/op/math/growth/LibOpExponentialGrowth.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {UD60x18, mul, pow} from "prb-math/UD60x18.sol"; diff --git a/src/lib/op/math/growth/LibOpLinearGrowth.sol b/src/lib/op/math/growth/LibOpLinearGrowth.sol index 936cf9236..2d9a4bc08 100644 --- a/src/lib/op/math/growth/LibOpLinearGrowth.sol +++ b/src/lib/op/math/growth/LibOpLinearGrowth.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {UD60x18, mul, add} from "prb-math/UD60x18.sol"; diff --git a/src/lib/op/math/uint256/LibOpUint256Div.sol b/src/lib/op/math/uint256/LibOpUint256Div.sol index 4c593bb8a..4f1a4e58c 100644 --- a/src/lib/op/math/uint256/LibOpUint256Div.sol +++ b/src/lib/op/math/uint256/LibOpUint256Div.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; diff --git a/src/lib/op/math/uint256/LibOpUint256Mul.sol b/src/lib/op/math/uint256/LibOpUint256Mul.sol index 7017591aa..20659462c 100644 --- a/src/lib/op/math/uint256/LibOpUint256Mul.sol +++ b/src/lib/op/math/uint256/LibOpUint256Mul.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; diff --git a/src/lib/op/math/uint256/LibOpUint256Pow.sol b/src/lib/op/math/uint256/LibOpUint256Pow.sol index 86c339d84..211072178 100644 --- a/src/lib/op/math/uint256/LibOpUint256Pow.sol +++ b/src/lib/op/math/uint256/LibOpUint256Pow.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; diff --git a/src/lib/op/store/LibOpGetNP.sol b/src/lib/op/store/LibOpGetNP.sol index 3a7e8cc6b..11df11c4c 100644 --- a/src/lib/op/store/LibOpGetNP.sol +++ b/src/lib/op/store/LibOpGetNP.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {MemoryKVKey, MemoryKVVal, MemoryKV, LibMemoryKV} from "rain.lib.memkv/lib/LibMemoryKV.sol"; diff --git a/src/lib/op/store/LibOpSetNP.sol b/src/lib/op/store/LibOpSetNP.sol index 5222dc3fa..cad393fb1 100644 --- a/src/lib/op/store/LibOpSetNP.sol +++ b/src/lib/op/store/LibOpSetNP.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {MemoryKV, MemoryKVKey, MemoryKVVal, LibMemoryKV} from "rain.lib.memkv/lib/LibMemoryKV.sol"; diff --git a/src/lib/parse/LibParse.sol b/src/lib/parse/LibParse.sol index 4b8295a18..a575c50b4 100644 --- a/src/lib/parse/LibParse.sol +++ b/src/lib/parse/LibParse.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {LibPointer, Pointer} from "rain.solmem/lib/LibPointer.sol"; diff --git a/src/lib/parse/LibParseCMask.sol b/src/lib/parse/LibParseCMask.sol index ee30d4380..6655d4fb4 100644 --- a/src/lib/parse/LibParseCMask.sol +++ b/src/lib/parse/LibParseCMask.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; /// @dev Workaround for https://github.com/foundry-rs/foundry/issues/6572 diff --git a/src/lib/parse/LibParseError.sol b/src/lib/parse/LibParseError.sol index 9a1e7e518..b7495f878 100644 --- a/src/lib/parse/LibParseError.sol +++ b/src/lib/parse/LibParseError.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {ParseState} from "./LibParseState.sol"; diff --git a/src/lib/parse/LibParseInterstitial.sol b/src/lib/parse/LibParseInterstitial.sol index e77bde855..f418b1918 100644 --- a/src/lib/parse/LibParseInterstitial.sol +++ b/src/lib/parse/LibParseInterstitial.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {FSM_YANG_MASK, ParseState} from "./LibParseState.sol"; diff --git a/src/lib/parse/LibParseOperand.sol b/src/lib/parse/LibParseOperand.sol index 0f8c5146d..dd79cb25a 100644 --- a/src/lib/parse/LibParseOperand.sol +++ b/src/lib/parse/LibParseOperand.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import { diff --git a/src/lib/parse/LibParsePragma.sol b/src/lib/parse/LibParsePragma.sol index 5cf19a447..f27f1143d 100644 --- a/src/lib/parse/LibParsePragma.sol +++ b/src/lib/parse/LibParsePragma.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {LibParseState, ParseState} from "./LibParseState.sol"; diff --git a/src/lib/parse/LibParseStackName.sol b/src/lib/parse/LibParseStackName.sol index 007fd6d26..c79ceb688 100644 --- a/src/lib/parse/LibParseStackName.sol +++ b/src/lib/parse/LibParseStackName.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {ParseState} from "./LibParseState.sol"; diff --git a/src/lib/parse/LibParseStackTracker.sol b/src/lib/parse/LibParseStackTracker.sol index 5e2a96216..143216051 100644 --- a/src/lib/parse/LibParseStackTracker.sol +++ b/src/lib/parse/LibParseStackTracker.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {ParseStackUnderflow} from "../../error/ErrParse.sol"; diff --git a/src/lib/parse/LibParseState.sol b/src/lib/parse/LibParseState.sol index 6db13cfa5..8dcf9adc0 100644 --- a/src/lib/parse/LibParseState.sol +++ b/src/lib/parse/LibParseState.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {Operand, OPCODE_CONSTANT} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; diff --git a/src/lib/parse/LibSubParse.sol b/src/lib/parse/LibSubParse.sol index ede4cd33f..b836eaa5e 100644 --- a/src/lib/parse/LibSubParse.sol +++ b/src/lib/parse/LibSubParse.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {LibParseState, ParseState} from "./LibParseState.sol"; diff --git a/src/lib/parse/literal/LibParseLiteral.sol b/src/lib/parse/literal/LibParseLiteral.sol index bc96453d1..7c4a34af8 100644 --- a/src/lib/parse/literal/LibParseLiteral.sol +++ b/src/lib/parse/literal/LibParseLiteral.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import { diff --git a/src/lib/parse/literal/LibParseLiteralDecimal.sol b/src/lib/parse/literal/LibParseLiteralDecimal.sol index 6825ae69d..1b37becd2 100644 --- a/src/lib/parse/literal/LibParseLiteralDecimal.sol +++ b/src/lib/parse/literal/LibParseLiteralDecimal.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {ParseState} from "../LibParseState.sol"; diff --git a/src/lib/parse/literal/LibParseLiteralHex.sol b/src/lib/parse/literal/LibParseLiteralHex.sol index 04a1be08d..5c3d3fcba 100644 --- a/src/lib/parse/literal/LibParseLiteralHex.sol +++ b/src/lib/parse/literal/LibParseLiteralHex.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {ParseState} from "../LibParseState.sol"; diff --git a/src/lib/parse/literal/LibParseLiteralString.sol b/src/lib/parse/literal/LibParseLiteralString.sol index 5dc8a803a..810f97a7c 100644 --- a/src/lib/parse/literal/LibParseLiteralString.sol +++ b/src/lib/parse/literal/LibParseLiteralString.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {ParseState} from "../LibParseState.sol"; diff --git a/src/lib/parse/literal/LibParseLiteralSubParseable.sol b/src/lib/parse/literal/LibParseLiteralSubParseable.sol index fddfb24e3..758dd264a 100644 --- a/src/lib/parse/literal/LibParseLiteralSubParseable.sol +++ b/src/lib/parse/literal/LibParseLiteralSubParseable.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {ParseState} from "../LibParseState.sol"; diff --git a/src/lib/state/LibInterpreterStateDataContractNP.sol b/src/lib/state/LibInterpreterStateDataContractNP.sol index 8f7994c7a..c3e0eea3d 100644 --- a/src/lib/state/LibInterpreterStateDataContractNP.sol +++ b/src/lib/state/LibInterpreterStateDataContractNP.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {MemoryKV} from "rain.lib.memkv/lib/LibMemoryKV.sol"; diff --git a/src/lib/state/LibInterpreterStateNP.sol b/src/lib/state/LibInterpreterStateNP.sol index e745b35cd..37470c4d3 100644 --- a/src/lib/state/LibInterpreterStateNP.sol +++ b/src/lib/state/LibInterpreterStateNP.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {Pointer} from "rain.solmem/lib/LibPointer.sol"; diff --git a/test/abstract/OpTest.sol b/test/abstract/OpTest.sol index 2168289d5..df5f1ebd0 100644 --- a/test/abstract/OpTest.sol +++ b/test/abstract/OpTest.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test, stdError} from "forge-std/Test.sol"; diff --git a/test/abstract/OperandTest.sol b/test/abstract/OperandTest.sol index a357d4cdc..4c37ef16b 100644 --- a/test/abstract/OperandTest.sol +++ b/test/abstract/OperandTest.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/abstract/ParseLiteralTest.sol b/test/abstract/ParseLiteralTest.sol index 636226fec..df0a2cb5f 100644 --- a/test/abstract/ParseLiteralTest.sol +++ b/test/abstract/ParseLiteralTest.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/abstract/RainterpreterExpressionDeployerNPE2DeploymentTest.sol b/test/abstract/RainterpreterExpressionDeployerNPE2DeploymentTest.sol index 52b45b390..aff9cd37e 100644 --- a/test/abstract/RainterpreterExpressionDeployerNPE2DeploymentTest.sol +++ b/test/abstract/RainterpreterExpressionDeployerNPE2DeploymentTest.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test, console2, stdError} from "forge-std/Test.sol"; diff --git a/test/lib/etch/LibEtch.sol b/test/lib/etch/LibEtch.sol index aa44ae3e4..8154454ef 100644 --- a/test/lib/etch/LibEtch.sol +++ b/test/lib/etch/LibEtch.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.19; bytes constant INVALID_BYTECODE = hex"FE"; diff --git a/test/lib/integrity/LibIntegrityFnPointers.sol b/test/lib/integrity/LibIntegrityFnPointers.sol index 26816b6b7..b789457a0 100644 --- a/test/lib/integrity/LibIntegrityFnPointers.sol +++ b/test/lib/integrity/LibIntegrityFnPointers.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.19; import "rain.lib.typecast/LibConvert.sol"; diff --git a/test/lib/literal/LibLiteralString.sol b/test/lib/literal/LibLiteralString.sol index b5f1902c0..156c0f583 100644 --- a/test/lib/literal/LibLiteralString.sol +++ b/test/lib/literal/LibLiteralString.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {CMASK_STRING_LITERAL_TAIL, CMASK_HEX, CMASK_WHITESPACE} from "src/lib/parse/LibParseCMask.sol"; diff --git a/test/lib/operand/LibOperand.sol b/test/lib/operand/LibOperand.sol index 8d4887e52..1dee7e687 100644 --- a/test/lib/operand/LibOperand.sol +++ b/test/lib/operand/LibOperand.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; diff --git a/test/lib/parse/LibMetaFixture.sol b/test/lib/parse/LibMetaFixture.sol index 9e5ea5523..99bf07392 100644 --- a/test/lib/parse/LibMetaFixture.sol +++ b/test/lib/parse/LibMetaFixture.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {AuthoringMetaV2} from "rain.interpreter.interface/interface/deprecated/IParserV1View.sol"; diff --git a/test/src/abstract/BaseRainterpreterExternNPE2.ierc165.t.sol b/test/src/abstract/BaseRainterpreterExternNPE2.ierc165.t.sol index 7baa95002..d22a33950 100644 --- a/test/src/abstract/BaseRainterpreterExternNPE2.ierc165.t.sol +++ b/test/src/abstract/BaseRainterpreterExternNPE2.ierc165.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/abstract/BaseRainterpreterSubParserNPE2.compatibility.t.sol b/test/src/abstract/BaseRainterpreterSubParserNPE2.compatibility.t.sol index 71fac9d07..004fcd79c 100644 --- a/test/src/abstract/BaseRainterpreterSubParserNPE2.compatibility.t.sol +++ b/test/src/abstract/BaseRainterpreterSubParserNPE2.compatibility.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/abstract/BaseRainterpreterSubParserNPE2.ierc165.t.sol b/test/src/abstract/BaseRainterpreterSubParserNPE2.ierc165.t.sol index e1682a487..5ebc6723c 100644 --- a/test/src/abstract/BaseRainterpreterSubParserNPE2.ierc165.t.sol +++ b/test/src/abstract/BaseRainterpreterSubParserNPE2.ierc165.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/concrete/RainterpreterExpressionDeployerNPE2.deployCheck.t.sol b/test/src/concrete/RainterpreterExpressionDeployerNPE2.deployCheck.t.sol index 0da07ba88..7fd3f9927 100644 --- a/test/src/concrete/RainterpreterExpressionDeployerNPE2.deployCheck.t.sol +++ b/test/src/concrete/RainterpreterExpressionDeployerNPE2.deployCheck.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/concrete/RainterpreterExpressionDeployerNPE2.describedByMetaV1.t.sol b/test/src/concrete/RainterpreterExpressionDeployerNPE2.describedByMetaV1.t.sol index f1cba3489..6edfaa183 100644 --- a/test/src/concrete/RainterpreterExpressionDeployerNPE2.describedByMetaV1.t.sol +++ b/test/src/concrete/RainterpreterExpressionDeployerNPE2.describedByMetaV1.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/concrete/RainterpreterExpressionDeployerNPE2.ierc165.t.sol b/test/src/concrete/RainterpreterExpressionDeployerNPE2.ierc165.t.sol index 45e1a0846..0b4a8ff9b 100644 --- a/test/src/concrete/RainterpreterExpressionDeployerNPE2.ierc165.t.sol +++ b/test/src/concrete/RainterpreterExpressionDeployerNPE2.ierc165.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/concrete/RainterpreterExpressionDeployerNPE2.meta.t.sol b/test/src/concrete/RainterpreterExpressionDeployerNPE2.meta.t.sol index 08e29fb3a..136efd475 100644 --- a/test/src/concrete/RainterpreterExpressionDeployerNPE2.meta.t.sol +++ b/test/src/concrete/RainterpreterExpressionDeployerNPE2.meta.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {RainterpreterExpressionDeployerNPE2DeploymentTest} from diff --git a/test/src/concrete/RainterpreterNPE2.ierc165.t.sol b/test/src/concrete/RainterpreterNPE2.ierc165.t.sol index 47ced9ad0..a843cba55 100644 --- a/test/src/concrete/RainterpreterNPE2.ierc165.t.sol +++ b/test/src/concrete/RainterpreterNPE2.ierc165.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/concrete/RainterpreterNPE2.pointers.t.sol b/test/src/concrete/RainterpreterNPE2.pointers.t.sol index 02a94a5cb..fac315785 100644 --- a/test/src/concrete/RainterpreterNPE2.pointers.t.sol +++ b/test/src/concrete/RainterpreterNPE2.pointers.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/concrete/RainterpreterNPE2.t.sol b/test/src/concrete/RainterpreterNPE2.t.sol index 20f9b4702..104fd17d9 100644 --- a/test/src/concrete/RainterpreterNPE2.t.sol +++ b/test/src/concrete/RainterpreterNPE2.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/concrete/RainterpreterParserNPE2.ierc165.t.sol b/test/src/concrete/RainterpreterParserNPE2.ierc165.t.sol index acae64141..7e9dfbae5 100644 --- a/test/src/concrete/RainterpreterParserNPE2.ierc165.t.sol +++ b/test/src/concrete/RainterpreterParserNPE2.ierc165.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/concrete/RainterpreterParserNPE2.parserPragma.t.sol b/test/src/concrete/RainterpreterParserNPE2.parserPragma.t.sol index a7fe7311e..446564bda 100644 --- a/test/src/concrete/RainterpreterParserNPE2.parserPragma.t.sol +++ b/test/src/concrete/RainterpreterParserNPE2.parserPragma.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/concrete/RainterpreterParserNPE2.pointers.t.sol b/test/src/concrete/RainterpreterParserNPE2.pointers.t.sol index c3e9102d1..cac756159 100644 --- a/test/src/concrete/RainterpreterParserNPE2.pointers.t.sol +++ b/test/src/concrete/RainterpreterParserNPE2.pointers.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/concrete/RainterpreterReferenceExternNPE2.contextCallingContract.t.sol b/test/src/concrete/RainterpreterReferenceExternNPE2.contextCallingContract.t.sol index 10b2f0d85..b373b83a7 100644 --- a/test/src/concrete/RainterpreterReferenceExternNPE2.contextCallingContract.t.sol +++ b/test/src/concrete/RainterpreterReferenceExternNPE2.contextCallingContract.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/concrete/RainterpreterReferenceExternNPE2.contextRainlen.t.sol b/test/src/concrete/RainterpreterReferenceExternNPE2.contextRainlen.t.sol index 1f6f8a45e..ba8e5c18f 100644 --- a/test/src/concrete/RainterpreterReferenceExternNPE2.contextRainlen.t.sol +++ b/test/src/concrete/RainterpreterReferenceExternNPE2.contextRainlen.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/concrete/RainterpreterReferenceExternNPE2.contextSender.t.sol b/test/src/concrete/RainterpreterReferenceExternNPE2.contextSender.t.sol index 9812a9169..deaa7e192 100644 --- a/test/src/concrete/RainterpreterReferenceExternNPE2.contextSender.t.sol +++ b/test/src/concrete/RainterpreterReferenceExternNPE2.contextSender.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/concrete/RainterpreterReferenceExternNPE2.describedByMetaV1.t.sol b/test/src/concrete/RainterpreterReferenceExternNPE2.describedByMetaV1.t.sol index 3c59ea9e4..07642c0cf 100644 --- a/test/src/concrete/RainterpreterReferenceExternNPE2.describedByMetaV1.t.sol +++ b/test/src/concrete/RainterpreterReferenceExternNPE2.describedByMetaV1.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/concrete/RainterpreterReferenceExternNPE2.ierc165.t.sol b/test/src/concrete/RainterpreterReferenceExternNPE2.ierc165.t.sol index 44de71d68..9d0a9163b 100644 --- a/test/src/concrete/RainterpreterReferenceExternNPE2.ierc165.t.sol +++ b/test/src/concrete/RainterpreterReferenceExternNPE2.ierc165.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/concrete/RainterpreterReferenceExternNPE2.intInc.t.sol b/test/src/concrete/RainterpreterReferenceExternNPE2.intInc.t.sol index 89feb5634..d648f82b0 100644 --- a/test/src/concrete/RainterpreterReferenceExternNPE2.intInc.t.sol +++ b/test/src/concrete/RainterpreterReferenceExternNPE2.intInc.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/concrete/RainterpreterReferenceExternNPE2.pointers.t.sol b/test/src/concrete/RainterpreterReferenceExternNPE2.pointers.t.sol index c04aece6e..d41f4fb20 100644 --- a/test/src/concrete/RainterpreterReferenceExternNPE2.pointers.t.sol +++ b/test/src/concrete/RainterpreterReferenceExternNPE2.pointers.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/concrete/RainterpreterReferenceExternNPE2.repeat.t.sol b/test/src/concrete/RainterpreterReferenceExternNPE2.repeat.t.sol index 91b20532b..cdaa0c7db 100644 --- a/test/src/concrete/RainterpreterReferenceExternNPE2.repeat.t.sol +++ b/test/src/concrete/RainterpreterReferenceExternNPE2.repeat.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/concrete/RainterpreterReferenceExternNPE2.stackOperand.t.sol b/test/src/concrete/RainterpreterReferenceExternNPE2.stackOperand.t.sol index 6c8b45a4b..287b97d05 100644 --- a/test/src/concrete/RainterpreterReferenceExternNPE2.stackOperand.t.sol +++ b/test/src/concrete/RainterpreterReferenceExternNPE2.stackOperand.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/concrete/RainterpreterReferenceExternNPE2.unknownWord.t.sol b/test/src/concrete/RainterpreterReferenceExternNPE2.unknownWord.t.sol index 2c73f8a1a..fa6e4ab0a 100644 --- a/test/src/concrete/RainterpreterReferenceExternNPE2.unknownWord.t.sol +++ b/test/src/concrete/RainterpreterReferenceExternNPE2.unknownWord.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/concrete/RainterpreterStoreNPE2.ierc165.t.sol b/test/src/concrete/RainterpreterStoreNPE2.ierc165.t.sol index da3328275..8d23986c2 100644 --- a/test/src/concrete/RainterpreterStoreNPE2.ierc165.t.sol +++ b/test/src/concrete/RainterpreterStoreNPE2.ierc165.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/concrete/RainterpreterStoreNPE2.t.sol b/test/src/concrete/RainterpreterStoreNPE2.t.sol index 69be0e298..4172a0175 100644 --- a/test/src/concrete/RainterpreterStoreNPE2.t.sol +++ b/test/src/concrete/RainterpreterStoreNPE2.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/eval/LibEvalNP.fBounds.t.sol b/test/src/lib/eval/LibEvalNP.fBounds.t.sol index 8a4ebf315..6587e4bb6 100644 --- a/test/src/lib/eval/LibEvalNP.fBounds.t.sol +++ b/test/src/lib/eval/LibEvalNP.fBounds.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/extern/LibExtern.codec.t.sol b/test/src/lib/extern/LibExtern.codec.t.sol index 1d7d6ff06..b9b03ab50 100644 --- a/test/src/lib/extern/LibExtern.codec.t.sol +++ b/test/src/lib/extern/LibExtern.codec.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/op/00/LibOpConstantNP.t.sol b/test/src/lib/op/00/LibOpConstantNP.t.sol index b5e378971..4aa5f6f24 100644 --- a/test/src/lib/op/00/LibOpConstantNP.t.sol +++ b/test/src/lib/op/00/LibOpConstantNP.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/00/LibOpContextNP.t.sol b/test/src/lib/op/00/LibOpContextNP.t.sol index 011f5e02c..605a78950 100644 --- a/test/src/lib/op/00/LibOpContextNP.t.sol +++ b/test/src/lib/op/00/LibOpContextNP.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {stdError} from "forge-std/Test.sol"; diff --git a/test/src/lib/op/00/LibOpExternNP.t.sol b/test/src/lib/op/00/LibOpExternNP.t.sol index 15312df2a..99cddce82 100644 --- a/test/src/lib/op/00/LibOpExternNP.t.sol +++ b/test/src/lib/op/00/LibOpExternNP.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/00/LibOpStackNP.t.sol b/test/src/lib/op/00/LibOpStackNP.t.sol index d3832df73..827990574 100644 --- a/test/src/lib/op/00/LibOpStackNP.t.sol +++ b/test/src/lib/op/00/LibOpStackNP.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Pointer} from "rain.solmem/lib/LibPointer.sol"; diff --git a/test/src/lib/op/LibAllStandardOpsNP.t.sol b/test/src/lib/op/LibAllStandardOpsNP.t.sol index e84047726..a034f2201 100644 --- a/test/src/lib/op/LibAllStandardOpsNP.t.sol +++ b/test/src/lib/op/LibAllStandardOpsNP.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import "forge-std/Test.sol"; diff --git a/test/src/lib/op/bitwise/LibOpBitwiseAndNP.t.sol b/test/src/lib/op/bitwise/LibOpBitwiseAndNP.t.sol index 1d4888ce4..65f529ee1 100644 --- a/test/src/lib/op/bitwise/LibOpBitwiseAndNP.t.sol +++ b/test/src/lib/op/bitwise/LibOpBitwiseAndNP.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/bitwise/LibOpBitwiseOrNP.t.sol b/test/src/lib/op/bitwise/LibOpBitwiseOrNP.t.sol index 5a1f67bdd..62d6720ec 100644 --- a/test/src/lib/op/bitwise/LibOpBitwiseOrNP.t.sol +++ b/test/src/lib/op/bitwise/LibOpBitwiseOrNP.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/bitwise/LibOpCtPopNP.t.sol b/test/src/lib/op/bitwise/LibOpCtPopNP.t.sol index f195dfc82..6fe640bf0 100644 --- a/test/src/lib/op/bitwise/LibOpCtPopNP.t.sol +++ b/test/src/lib/op/bitwise/LibOpCtPopNP.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/bitwise/LibOpDecodeBitsNP.t.sol b/test/src/lib/op/bitwise/LibOpDecodeBitsNP.t.sol index c3de69572..b4d9deca0 100644 --- a/test/src/lib/op/bitwise/LibOpDecodeBitsNP.t.sol +++ b/test/src/lib/op/bitwise/LibOpDecodeBitsNP.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/bitwise/LibOpEncodeBitsNP.t.sol b/test/src/lib/op/bitwise/LibOpEncodeBitsNP.t.sol index f45ec459d..97e8877c1 100644 --- a/test/src/lib/op/bitwise/LibOpEncodeBitsNP.t.sol +++ b/test/src/lib/op/bitwise/LibOpEncodeBitsNP.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/bitwise/LibOpShiftBitsLeftNP.t.sol b/test/src/lib/op/bitwise/LibOpShiftBitsLeftNP.t.sol index 621719a50..3c3889c7b 100644 --- a/test/src/lib/op/bitwise/LibOpShiftBitsLeftNP.t.sol +++ b/test/src/lib/op/bitwise/LibOpShiftBitsLeftNP.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/bitwise/LibOpShiftBitsRightNP.t.sol b/test/src/lib/op/bitwise/LibOpShiftBitsRightNP.t.sol index a715a128c..993622e4d 100644 --- a/test/src/lib/op/bitwise/LibOpShiftBitsRightNP.t.sol +++ b/test/src/lib/op/bitwise/LibOpShiftBitsRightNP.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/call/LibOpCallNP.t.sol b/test/src/lib/op/call/LibOpCallNP.t.sol index f11a8644e..f4cdd9c0d 100644 --- a/test/src/lib/op/call/LibOpCallNP.t.sol +++ b/test/src/lib/op/call/LibOpCallNP.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {LibEncodedDispatch} from "rain.interpreter.interface/lib/deprecated/caller/LibEncodedDispatch.sol"; diff --git a/test/src/lib/op/crypto/LibOpHashNP.t.sol b/test/src/lib/op/crypto/LibOpHashNP.t.sol index a39426780..8bea46838 100644 --- a/test/src/lib/op/crypto/LibOpHashNP.t.sol +++ b/test/src/lib/op/crypto/LibOpHashNP.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/erc20/LibOpERC20Allowance.t.sol b/test/src/lib/op/erc20/LibOpERC20Allowance.t.sol index 771b01647..f569437e2 100644 --- a/test/src/lib/op/erc20/LibOpERC20Allowance.t.sol +++ b/test/src/lib/op/erc20/LibOpERC20Allowance.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/erc20/LibOpERC20BalanceOf.t.sol b/test/src/lib/op/erc20/LibOpERC20BalanceOf.t.sol index 34cb98f00..7b50a1206 100644 --- a/test/src/lib/op/erc20/LibOpERC20BalanceOf.t.sol +++ b/test/src/lib/op/erc20/LibOpERC20BalanceOf.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {stdError} from "forge-std/Test.sol"; diff --git a/test/src/lib/op/erc20/LibOpERC20TotalSupply.t.sol b/test/src/lib/op/erc20/LibOpERC20TotalSupply.t.sol index 74e1840f7..210f9321a 100644 --- a/test/src/lib/op/erc20/LibOpERC20TotalSupply.t.sol +++ b/test/src/lib/op/erc20/LibOpERC20TotalSupply.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {stdError} from "forge-std/Test.sol"; diff --git a/test/src/lib/op/erc20/uint256/LibOpUint256ERC20Allowance.t.sol b/test/src/lib/op/erc20/uint256/LibOpUint256ERC20Allowance.t.sol index 96a82c56a..2b39cf52b 100644 --- a/test/src/lib/op/erc20/uint256/LibOpUint256ERC20Allowance.t.sol +++ b/test/src/lib/op/erc20/uint256/LibOpUint256ERC20Allowance.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/erc20/uint256/LibOpUint256ERC20BalanceOf.t.sol b/test/src/lib/op/erc20/uint256/LibOpUint256ERC20BalanceOf.t.sol index eac7fdb99..5b5d46a07 100644 --- a/test/src/lib/op/erc20/uint256/LibOpUint256ERC20BalanceOf.t.sol +++ b/test/src/lib/op/erc20/uint256/LibOpUint256ERC20BalanceOf.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/erc20/uint256/LibOpUint256ERC20TotalSupply.t.sol b/test/src/lib/op/erc20/uint256/LibOpUint256ERC20TotalSupply.t.sol index f831ba9d4..4aee62864 100644 --- a/test/src/lib/op/erc20/uint256/LibOpUint256ERC20TotalSupply.t.sol +++ b/test/src/lib/op/erc20/uint256/LibOpUint256ERC20TotalSupply.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/erc5313/LibOpERC5313OwnerNP.t.sol b/test/src/lib/op/erc5313/LibOpERC5313OwnerNP.t.sol index 3c1305863..54bf22076 100644 --- a/test/src/lib/op/erc5313/LibOpERC5313OwnerNP.t.sol +++ b/test/src/lib/op/erc5313/LibOpERC5313OwnerNP.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/erc721/LibOpERC721OwnerOf.t.sol b/test/src/lib/op/erc721/LibOpERC721OwnerOf.t.sol index 013dd7c15..600b1fc27 100644 --- a/test/src/lib/op/erc721/LibOpERC721OwnerOf.t.sol +++ b/test/src/lib/op/erc721/LibOpERC721OwnerOf.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/erc721/uint256/LibOpUint256ERC721BalanceOf.t.sol b/test/src/lib/op/erc721/uint256/LibOpUint256ERC721BalanceOf.t.sol index 244750490..85fc14d2b 100644 --- a/test/src/lib/op/erc721/uint256/LibOpUint256ERC721BalanceOf.t.sol +++ b/test/src/lib/op/erc721/uint256/LibOpUint256ERC721BalanceOf.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/evm/LibOpBlockNumberNP.t.sol b/test/src/lib/op/evm/LibOpBlockNumberNP.t.sol index ce6021847..6c71c184c 100644 --- a/test/src/lib/op/evm/LibOpBlockNumberNP.t.sol +++ b/test/src/lib/op/evm/LibOpBlockNumberNP.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/evm/LibOpChainIdNP.t.sol b/test/src/lib/op/evm/LibOpChainIdNP.t.sol index 1470fa4a3..3947727ab 100644 --- a/test/src/lib/op/evm/LibOpChainIdNP.t.sol +++ b/test/src/lib/op/evm/LibOpChainIdNP.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Pointer} from "rain.solmem/lib/LibPointer.sol"; diff --git a/test/src/lib/op/evm/LibOpMaxUint256NP.t.sol b/test/src/lib/op/evm/LibOpMaxUint256NP.t.sol index b6b87cf38..d510c5bd5 100644 --- a/test/src/lib/op/evm/LibOpMaxUint256NP.t.sol +++ b/test/src/lib/op/evm/LibOpMaxUint256NP.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/evm/LibOpTimestampNP.t.sol b/test/src/lib/op/evm/LibOpTimestampNP.t.sol index 036f6691a..c3f97e63b 100644 --- a/test/src/lib/op/evm/LibOpTimestampNP.t.sol +++ b/test/src/lib/op/evm/LibOpTimestampNP.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/logic/LibOpAnyNP.t.sol b/test/src/lib/op/logic/LibOpAnyNP.t.sol index fd05e220d..4f71292ea 100644 --- a/test/src/lib/op/logic/LibOpAnyNP.t.sol +++ b/test/src/lib/op/logic/LibOpAnyNP.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Pointer} from "rain.solmem/lib/LibPointer.sol"; diff --git a/test/src/lib/op/logic/LibOpConditionsNP.t.sol b/test/src/lib/op/logic/LibOpConditionsNP.t.sol index 279749e7b..d87c13bde 100644 --- a/test/src/lib/op/logic/LibOpConditionsNP.t.sol +++ b/test/src/lib/op/logic/LibOpConditionsNP.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {LibUint256Array} from "rain.solmem/lib/LibUint256Array.sol"; diff --git a/test/src/lib/op/logic/LibOpEnsureNP.t.sol b/test/src/lib/op/logic/LibOpEnsureNP.t.sol index 405c84a40..029466484 100644 --- a/test/src/lib/op/logic/LibOpEnsureNP.t.sol +++ b/test/src/lib/op/logic/LibOpEnsureNP.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {OpTest, UnexpectedOperand} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/logic/LibOpEqualToNP.t.sol b/test/src/lib/op/logic/LibOpEqualToNP.t.sol index 1dc771c26..934452474 100644 --- a/test/src/lib/op/logic/LibOpEqualToNP.t.sol +++ b/test/src/lib/op/logic/LibOpEqualToNP.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/logic/LibOpEveryNP.t.sol b/test/src/lib/op/logic/LibOpEveryNP.t.sol index 476eefa51..d71680fe8 100644 --- a/test/src/lib/op/logic/LibOpEveryNP.t.sol +++ b/test/src/lib/op/logic/LibOpEveryNP.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/logic/LibOpGreaterThanNP.t.sol b/test/src/lib/op/logic/LibOpGreaterThanNP.t.sol index cf154b6df..93cc2bbdb 100644 --- a/test/src/lib/op/logic/LibOpGreaterThanNP.t.sol +++ b/test/src/lib/op/logic/LibOpGreaterThanNP.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/logic/LibOpGreaterThanOrEqualToNP.t.sol b/test/src/lib/op/logic/LibOpGreaterThanOrEqualToNP.t.sol index 648af2ca7..d71364af2 100644 --- a/test/src/lib/op/logic/LibOpGreaterThanOrEqualToNP.t.sol +++ b/test/src/lib/op/logic/LibOpGreaterThanOrEqualToNP.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/logic/LibOpIfNP.t.sol b/test/src/lib/op/logic/LibOpIfNP.t.sol index b7ad501d3..15ea29b45 100644 --- a/test/src/lib/op/logic/LibOpIfNP.t.sol +++ b/test/src/lib/op/logic/LibOpIfNP.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/logic/LibOpIsZeroNP.t.sol b/test/src/lib/op/logic/LibOpIsZeroNP.t.sol index e159220d3..d3831c3e8 100644 --- a/test/src/lib/op/logic/LibOpIsZeroNP.t.sol +++ b/test/src/lib/op/logic/LibOpIsZeroNP.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/logic/LibOpLessThanNP.t.sol b/test/src/lib/op/logic/LibOpLessThanNP.t.sol index f451254df..8aba768ce 100644 --- a/test/src/lib/op/logic/LibOpLessThanNP.t.sol +++ b/test/src/lib/op/logic/LibOpLessThanNP.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/logic/LibOpLessThanOrEqualToNP.t.sol b/test/src/lib/op/logic/LibOpLessThanOrEqualToNP.t.sol index 0fb5f7ff5..1a21f6d71 100644 --- a/test/src/lib/op/logic/LibOpLessThanOrEqualToNP.t.sol +++ b/test/src/lib/op/logic/LibOpLessThanOrEqualToNP.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/math/LibOpAvg.t.sol b/test/src/lib/op/math/LibOpAvg.t.sol index 8c98bfa32..af55be7b2 100644 --- a/test/src/lib/op/math/LibOpAvg.t.sol +++ b/test/src/lib/op/math/LibOpAvg.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {OpTest, IntegrityCheckStateNP, Operand, InterpreterStateNP, UnexpectedOperand} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/math/LibOpCeil.t.sol b/test/src/lib/op/math/LibOpCeil.t.sol index 251780e21..9fcd2e110 100644 --- a/test/src/lib/op/math/LibOpCeil.t.sol +++ b/test/src/lib/op/math/LibOpCeil.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {OpTest, IntegrityCheckStateNP, Operand, InterpreterStateNP, UnexpectedOperand} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/math/LibOpDiv.t.sol b/test/src/lib/op/math/LibOpDiv.t.sol index ade1a2aa9..ac6be3a60 100644 --- a/test/src/lib/op/math/LibOpDiv.t.sol +++ b/test/src/lib/op/math/LibOpDiv.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {LibPointer} from "rain.solmem/lib/LibPointer.sol"; diff --git a/test/src/lib/op/math/LibOpE.t.sol b/test/src/lib/op/math/LibOpE.t.sol index 9edf1400b..c0c8fde06 100644 --- a/test/src/lib/op/math/LibOpE.t.sol +++ b/test/src/lib/op/math/LibOpE.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/math/LibOpExp.t.sol b/test/src/lib/op/math/LibOpExp.t.sol index 7a224c422..f9e0fc1df 100644 --- a/test/src/lib/op/math/LibOpExp.t.sol +++ b/test/src/lib/op/math/LibOpExp.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {OpTest, IntegrityCheckStateNP, Operand, InterpreterStateNP, UnexpectedOperand} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/math/LibOpExp2.t.sol b/test/src/lib/op/math/LibOpExp2.t.sol index c750c51f0..ea64c8394 100644 --- a/test/src/lib/op/math/LibOpExp2.t.sol +++ b/test/src/lib/op/math/LibOpExp2.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {OpTest, IntegrityCheckStateNP, Operand, InterpreterStateNP, UnexpectedOperand} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/math/LibOpFloor.t.sol b/test/src/lib/op/math/LibOpFloor.t.sol index 66c0bb747..be1ff0674 100644 --- a/test/src/lib/op/math/LibOpFloor.t.sol +++ b/test/src/lib/op/math/LibOpFloor.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {OpTest, IntegrityCheckStateNP, Operand, InterpreterStateNP, UnexpectedOperand} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/math/LibOpFrac.t.sol b/test/src/lib/op/math/LibOpFrac.t.sol index a38fc48d2..c00270c06 100644 --- a/test/src/lib/op/math/LibOpFrac.t.sol +++ b/test/src/lib/op/math/LibOpFrac.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {OpTest, IntegrityCheckStateNP, Operand, InterpreterStateNP, UnexpectedOperand} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/math/LibOpGm.t.sol b/test/src/lib/op/math/LibOpGm.t.sol index aeae0094c..cc29b034d 100644 --- a/test/src/lib/op/math/LibOpGm.t.sol +++ b/test/src/lib/op/math/LibOpGm.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {OpTest, IntegrityCheckStateNP, Operand, InterpreterStateNP, UnexpectedOperand} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/math/LibOpHeadroom.t.sol b/test/src/lib/op/math/LibOpHeadroom.t.sol index b5c5be3c9..21165e763 100644 --- a/test/src/lib/op/math/LibOpHeadroom.t.sol +++ b/test/src/lib/op/math/LibOpHeadroom.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {OpTest, IntegrityCheckStateNP, Operand, InterpreterStateNP, UnexpectedOperand} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/math/LibOpIntAddNP.t.sol b/test/src/lib/op/math/LibOpIntAddNP.t.sol index b7083c860..aac53675b 100644 --- a/test/src/lib/op/math/LibOpIntAddNP.t.sol +++ b/test/src/lib/op/math/LibOpIntAddNP.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {stdError} from "forge-std/Test.sol"; diff --git a/test/src/lib/op/math/LibOpInv.t.sol b/test/src/lib/op/math/LibOpInv.t.sol index 39897dd0a..d60dc85f8 100644 --- a/test/src/lib/op/math/LibOpInv.t.sol +++ b/test/src/lib/op/math/LibOpInv.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {OpTest, IntegrityCheckStateNP, Operand, InterpreterStateNP, UnexpectedOperand} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/math/LibOpLn.t.sol b/test/src/lib/op/math/LibOpLn.t.sol index 805ffc905..49ee275cc 100644 --- a/test/src/lib/op/math/LibOpLn.t.sol +++ b/test/src/lib/op/math/LibOpLn.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {OpTest, IntegrityCheckStateNP, Operand, InterpreterStateNP, UnexpectedOperand} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/math/LibOpLog10.t.sol b/test/src/lib/op/math/LibOpLog10.t.sol index b9939f4ad..d5e025e76 100644 --- a/test/src/lib/op/math/LibOpLog10.t.sol +++ b/test/src/lib/op/math/LibOpLog10.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {OpTest, IntegrityCheckStateNP, Operand, InterpreterStateNP, UnexpectedOperand} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/math/LibOpLog2.t.sol b/test/src/lib/op/math/LibOpLog2.t.sol index 6077565d6..7e1a46497 100644 --- a/test/src/lib/op/math/LibOpLog2.t.sol +++ b/test/src/lib/op/math/LibOpLog2.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {OpTest, IntegrityCheckStateNP, Operand, InterpreterStateNP, UnexpectedOperand} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/math/LibOpMax.t.sol b/test/src/lib/op/math/LibOpMax.t.sol index f802c0819..7b416f140 100644 --- a/test/src/lib/op/math/LibOpMax.t.sol +++ b/test/src/lib/op/math/LibOpMax.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {LibUint256Array} from "rain.solmem/lib/LibUint256Array.sol"; diff --git a/test/src/lib/op/math/LibOpMin.t.sol b/test/src/lib/op/math/LibOpMin.t.sol index ee234830a..6164b82cc 100644 --- a/test/src/lib/op/math/LibOpMin.t.sol +++ b/test/src/lib/op/math/LibOpMin.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {LibUint256Array} from "rain.solmem/lib/LibUint256Array.sol"; diff --git a/test/src/lib/op/math/LibOpMod.t.sol b/test/src/lib/op/math/LibOpMod.t.sol index 20ecc7f02..cbc03375c 100644 --- a/test/src/lib/op/math/LibOpMod.t.sol +++ b/test/src/lib/op/math/LibOpMod.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {LibUint256Array} from "rain.solmem/lib/LibUint256Array.sol"; diff --git a/test/src/lib/op/math/LibOpMul.t.sol b/test/src/lib/op/math/LibOpMul.t.sol index 6b5a7d44d..4acf0afb3 100644 --- a/test/src/lib/op/math/LibOpMul.t.sol +++ b/test/src/lib/op/math/LibOpMul.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {LibPointer} from "rain.solmem/lib/LibPointer.sol"; diff --git a/test/src/lib/op/math/LibOpPow.t.sol b/test/src/lib/op/math/LibOpPow.t.sol index 3f560833c..7204a2ce2 100644 --- a/test/src/lib/op/math/LibOpPow.t.sol +++ b/test/src/lib/op/math/LibOpPow.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {OpTest, IntegrityCheckStateNP, Operand, InterpreterStateNP, UnexpectedOperand} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/math/LibOpScale18.t.sol b/test/src/lib/op/math/LibOpScale18.t.sol index a7637032f..3046e0125 100644 --- a/test/src/lib/op/math/LibOpScale18.t.sol +++ b/test/src/lib/op/math/LibOpScale18.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {OpTest, IntegrityCheckStateNP, InterpreterStateNP, Operand, stdError} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/math/LibOpScale18Dynamic.t.sol b/test/src/lib/op/math/LibOpScale18Dynamic.t.sol index 965d4b617..db6f1229f 100644 --- a/test/src/lib/op/math/LibOpScale18Dynamic.t.sol +++ b/test/src/lib/op/math/LibOpScale18Dynamic.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {OpTest, IntegrityCheckStateNP, InterpreterStateNP, Operand, stdError} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/math/LibOpScaleN.t.sol b/test/src/lib/op/math/LibOpScaleN.t.sol index 6a4d131e5..f3eb2f779 100644 --- a/test/src/lib/op/math/LibOpScaleN.t.sol +++ b/test/src/lib/op/math/LibOpScaleN.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {OpTest, IntegrityCheckStateNP, InterpreterStateNP, Operand, stdError} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/math/LibOpScaleNDynamic.t.sol b/test/src/lib/op/math/LibOpScaleNDynamic.t.sol index eaef89e2d..84fde974c 100644 --- a/test/src/lib/op/math/LibOpScaleNDynamic.t.sol +++ b/test/src/lib/op/math/LibOpScaleNDynamic.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {OpTest, IntegrityCheckStateNP, InterpreterStateNP, Operand, stdError} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/math/LibOpSnapToUnit.t.sol b/test/src/lib/op/math/LibOpSnapToUnit.t.sol index 47ababdba..933758b49 100644 --- a/test/src/lib/op/math/LibOpSnapToUnit.t.sol +++ b/test/src/lib/op/math/LibOpSnapToUnit.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {OpTest, IntegrityCheckStateNP, Operand, InterpreterStateNP, UnexpectedOperand} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/math/LibOpSqrt.t.sol b/test/src/lib/op/math/LibOpSqrt.t.sol index 3eff33439..87ded07ce 100644 --- a/test/src/lib/op/math/LibOpSqrt.t.sol +++ b/test/src/lib/op/math/LibOpSqrt.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {OpTest, IntegrityCheckStateNP, Operand, InterpreterStateNP, UnexpectedOperand} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/math/LibOpSub.t.sol b/test/src/lib/op/math/LibOpSub.t.sol index 284a7f8de..23147b45a 100644 --- a/test/src/lib/op/math/LibOpSub.t.sol +++ b/test/src/lib/op/math/LibOpSub.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {OpTest, IntegrityCheckStateNP, InterpreterStateNP, Operand, stdError} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/math/growth/LibOpExponentialGrowth.t.sol b/test/src/lib/op/math/growth/LibOpExponentialGrowth.t.sol index c2bfa95a8..6a6bbb8c6 100644 --- a/test/src/lib/op/math/growth/LibOpExponentialGrowth.t.sol +++ b/test/src/lib/op/math/growth/LibOpExponentialGrowth.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {OpTest, IntegrityCheckStateNP, Operand, InterpreterStateNP, UnexpectedOperand} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/math/growth/LibOpLinearGrowth.t.sol b/test/src/lib/op/math/growth/LibOpLinearGrowth.t.sol index ac4ef0169..3d1f5d54a 100644 --- a/test/src/lib/op/math/growth/LibOpLinearGrowth.t.sol +++ b/test/src/lib/op/math/growth/LibOpLinearGrowth.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {OpTest, IntegrityCheckStateNP, Operand, InterpreterStateNP, UnexpectedOperand} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/math/int/LibOpUint256Div.t.sol b/test/src/lib/op/math/int/LibOpUint256Div.t.sol index fe65c0d6b..9de3ac47a 100644 --- a/test/src/lib/op/math/int/LibOpUint256Div.t.sol +++ b/test/src/lib/op/math/int/LibOpUint256Div.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {OpTest, IntegrityCheckStateNP, Operand, InterpreterStateNP, stdError} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/math/int/LibOpUint256Mul.t.sol b/test/src/lib/op/math/int/LibOpUint256Mul.t.sol index 80fb34480..bf5f5bff4 100644 --- a/test/src/lib/op/math/int/LibOpUint256Mul.t.sol +++ b/test/src/lib/op/math/int/LibOpUint256Mul.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {OpTest, IntegrityCheckStateNP, Operand, InterpreterStateNP, stdError} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/math/int/LibOpUint256Pow.t.sol b/test/src/lib/op/math/int/LibOpUint256Pow.t.sol index f0895696f..793a3b195 100644 --- a/test/src/lib/op/math/int/LibOpUint256Pow.t.sol +++ b/test/src/lib/op/math/int/LibOpUint256Pow.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {stdError} from "forge-std/Test.sol"; diff --git a/test/src/lib/op/store/LibOpGetNP.t.sol b/test/src/lib/op/store/LibOpGetNP.t.sol index 4c7627f60..a099d6f89 100644 --- a/test/src/lib/op/store/LibOpGetNP.t.sol +++ b/test/src/lib/op/store/LibOpGetNP.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {LibMemoryKV, MemoryKV, MemoryKVVal, MemoryKVKey} from "rain.lib.memkv/lib/LibMemoryKV.sol"; diff --git a/test/src/lib/op/store/LibOpSetNP.t.sol b/test/src/lib/op/store/LibOpSetNP.t.sol index dae7c4c7c..0d078e227 100644 --- a/test/src/lib/op/store/LibOpSetNP.t.sol +++ b/test/src/lib/op/store/LibOpSetNP.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {LibMemoryKV, MemoryKV, MemoryKVVal, MemoryKVKey} from "rain.lib.memkv/lib/LibMemoryKV.sol"; diff --git a/test/src/lib/parse/LibParse.comments.t.sol b/test/src/lib/parse/LibParse.comments.t.sol index febd50ca5..44872e2a6 100644 --- a/test/src/lib/parse/LibParse.comments.t.sol +++ b/test/src/lib/parse/LibParse.comments.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParse.empty.gas.t.sol b/test/src/lib/parse/LibParse.empty.gas.t.sol index d1757d100..999cd4d34 100644 --- a/test/src/lib/parse/LibParse.empty.gas.t.sol +++ b/test/src/lib/parse/LibParse.empty.gas.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParse.empty.t.sol b/test/src/lib/parse/LibParse.empty.t.sol index dd40fd9f0..651bf591f 100644 --- a/test/src/lib/parse/LibParse.empty.t.sol +++ b/test/src/lib/parse/LibParse.empty.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParse.ignoredLHS.t.sol b/test/src/lib/parse/LibParse.ignoredLHS.t.sol index 0c8469d52..b847402ff 100644 --- a/test/src/lib/parse/LibParse.ignoredLHS.t.sol +++ b/test/src/lib/parse/LibParse.ignoredLHS.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParse.inputsOnly.gas.t.sol b/test/src/lib/parse/LibParse.inputsOnly.gas.t.sol index 2a1d2098e..706bffd60 100644 --- a/test/src/lib/parse/LibParse.inputsOnly.gas.t.sol +++ b/test/src/lib/parse/LibParse.inputsOnly.gas.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParse.inputsOnly.t.sol b/test/src/lib/parse/LibParse.inputsOnly.t.sol index ee1e266ef..bfb379244 100644 --- a/test/src/lib/parse/LibParse.inputsOnly.t.sol +++ b/test/src/lib/parse/LibParse.inputsOnly.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParse.isMask.t.sol b/test/src/lib/parse/LibParse.isMask.t.sol index 093de9836..1689cfcce 100644 --- a/test/src/lib/parse/LibParse.isMask.t.sol +++ b/test/src/lib/parse/LibParse.isMask.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParse.literalIntegerDecimal.t.sol b/test/src/lib/parse/LibParse.literalIntegerDecimal.t.sol index 2e5b80e4e..15467679c 100644 --- a/test/src/lib/parse/LibParse.literalIntegerDecimal.t.sol +++ b/test/src/lib/parse/LibParse.literalIntegerDecimal.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParse.literalIntegerHex.t.sol b/test/src/lib/parse/LibParse.literalIntegerHex.t.sol index ef1347298..f76c1346c 100644 --- a/test/src/lib/parse/LibParse.literalIntegerHex.t.sol +++ b/test/src/lib/parse/LibParse.literalIntegerHex.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParse.literalString.t.sol b/test/src/lib/parse/LibParse.literalString.t.sol index 3f689e063..2d4455521 100644 --- a/test/src/lib/parse/LibParse.literalString.t.sol +++ b/test/src/lib/parse/LibParse.literalString.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParse.missingFinalSemi.t.sol b/test/src/lib/parse/LibParse.missingFinalSemi.t.sol index b7b18f1dd..4a8778f17 100644 --- a/test/src/lib/parse/LibParse.missingFinalSemi.t.sol +++ b/test/src/lib/parse/LibParse.missingFinalSemi.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParse.nOutput.t.sol b/test/src/lib/parse/LibParse.nOutput.t.sol index 5341f7f5e..dcb8683ae 100644 --- a/test/src/lib/parse/LibParse.nOutput.t.sol +++ b/test/src/lib/parse/LibParse.nOutput.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParse.namedLHS.t.sol b/test/src/lib/parse/LibParse.namedLHS.t.sol index 9755bf40a..f6854f209 100644 --- a/test/src/lib/parse/LibParse.namedLHS.t.sol +++ b/test/src/lib/parse/LibParse.namedLHS.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParse.operand8M1M1.t.sol b/test/src/lib/parse/LibParse.operand8M1M1.t.sol index 3d0a0865c..e0b636fb3 100644 --- a/test/src/lib/parse/LibParse.operand8M1M1.t.sol +++ b/test/src/lib/parse/LibParse.operand8M1M1.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {UnsupportedLiteralType} from "src/lib/parse/literal/LibParseLiteral.sol"; diff --git a/test/src/lib/parse/LibParse.operandDisallowed.t.sol b/test/src/lib/parse/LibParse.operandDisallowed.t.sol index 714ea1587..f6a3af7cc 100644 --- a/test/src/lib/parse/LibParse.operandDisallowed.t.sol +++ b/test/src/lib/parse/LibParse.operandDisallowed.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParse.operandDoublePerByteNoDefault.t.sol b/test/src/lib/parse/LibParse.operandDoublePerByteNoDefault.t.sol index 49b3dc2d8..d0c7a7c85 100644 --- a/test/src/lib/parse/LibParse.operandDoublePerByteNoDefault.t.sol +++ b/test/src/lib/parse/LibParse.operandDoublePerByteNoDefault.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParse.operandM1M1.t.sol b/test/src/lib/parse/LibParse.operandM1M1.t.sol index ad3150204..0ccb571d6 100644 --- a/test/src/lib/parse/LibParse.operandM1M1.t.sol +++ b/test/src/lib/parse/LibParse.operandM1M1.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {UnclosedOperand, UnsupportedLiteralType, UnexpectedOperandValue} from "src/error/ErrParse.sol"; diff --git a/test/src/lib/parse/LibParse.operandSingleFull.t.sol b/test/src/lib/parse/LibParse.operandSingleFull.t.sol index 03a193d35..e7537c2d9 100644 --- a/test/src/lib/parse/LibParse.operandSingleFull.t.sol +++ b/test/src/lib/parse/LibParse.operandSingleFull.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParse.parseWord.t.sol b/test/src/lib/parse/LibParse.parseWord.t.sol index 68bb38c1b..9debd5c5a 100644 --- a/test/src/lib/parse/LibParse.parseWord.t.sol +++ b/test/src/lib/parse/LibParse.parseWord.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParse.singleIgnored.gas.t.sol b/test/src/lib/parse/LibParse.singleIgnored.gas.t.sol index 128258d87..a5b382e70 100644 --- a/test/src/lib/parse/LibParse.singleIgnored.gas.t.sol +++ b/test/src/lib/parse/LibParse.singleIgnored.gas.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParse.singleLHSNamed.gas.t.sol b/test/src/lib/parse/LibParse.singleLHSNamed.gas.t.sol index 7b08856d8..89aad1f49 100644 --- a/test/src/lib/parse/LibParse.singleLHSNamed.gas.t.sol +++ b/test/src/lib/parse/LibParse.singleLHSNamed.gas.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParse.singleRHSNamed.gas.t.sol b/test/src/lib/parse/LibParse.singleRHSNamed.gas.t.sol index d0ee05ec7..ba875e340 100644 --- a/test/src/lib/parse/LibParse.singleRHSNamed.gas.t.sol +++ b/test/src/lib/parse/LibParse.singleRHSNamed.gas.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParse.sourceInputs.t.sol b/test/src/lib/parse/LibParse.sourceInputs.t.sol index 4a38708a6..1a79a5d37 100644 --- a/test/src/lib/parse/LibParse.sourceInputs.t.sol +++ b/test/src/lib/parse/LibParse.sourceInputs.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParse.unclosedLeftParen.t.sol b/test/src/lib/parse/LibParse.unclosedLeftParen.t.sol index 11aa8abac..8560babfc 100644 --- a/test/src/lib/parse/LibParse.unclosedLeftParen.t.sol +++ b/test/src/lib/parse/LibParse.unclosedLeftParen.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParse.unexpectedLHS.t.sol b/test/src/lib/parse/LibParse.unexpectedLHS.t.sol index 5e2e7d1ef..eb05650b1 100644 --- a/test/src/lib/parse/LibParse.unexpectedLHS.t.sol +++ b/test/src/lib/parse/LibParse.unexpectedLHS.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParse.unexpectedRHS.t.sol b/test/src/lib/parse/LibParse.unexpectedRHS.t.sol index daec97858..e6fd52e0f 100644 --- a/test/src/lib/parse/LibParse.unexpectedRHS.t.sol +++ b/test/src/lib/parse/LibParse.unexpectedRHS.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParse.unexpectedRightParen.t.sol b/test/src/lib/parse/LibParse.unexpectedRightParen.t.sol index 9664e28ce..ee39f7c59 100644 --- a/test/src/lib/parse/LibParse.unexpectedRightParen.t.sol +++ b/test/src/lib/parse/LibParse.unexpectedRightParen.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParse.wordsRHS.t.sol b/test/src/lib/parse/LibParse.wordsRHS.t.sol index c951b3725..d3610b7f8 100644 --- a/test/src/lib/parse/LibParse.wordsRHS.t.sol +++ b/test/src/lib/parse/LibParse.wordsRHS.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParseOperand.handleOperand8M1M1.t.sol b/test/src/lib/parse/LibParseOperand.handleOperand8M1M1.t.sol index 42b22062c..b84b0decf 100644 --- a/test/src/lib/parse/LibParseOperand.handleOperand8M1M1.t.sol +++ b/test/src/lib/parse/LibParseOperand.handleOperand8M1M1.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParseOperand.handleOperandDisallowed.t.sol b/test/src/lib/parse/LibParseOperand.handleOperandDisallowed.t.sol index 8795fe885..2a6d501de 100644 --- a/test/src/lib/parse/LibParseOperand.handleOperandDisallowed.t.sol +++ b/test/src/lib/parse/LibParseOperand.handleOperandDisallowed.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParseOperand.handleOperandDoublePerByteNoDefault.t.sol b/test/src/lib/parse/LibParseOperand.handleOperandDoublePerByteNoDefault.t.sol index 8c493f462..8ae5670e0 100644 --- a/test/src/lib/parse/LibParseOperand.handleOperandDoublePerByteNoDefault.t.sol +++ b/test/src/lib/parse/LibParseOperand.handleOperandDoublePerByteNoDefault.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParseOperand.handleOperandM1M1.t.sol b/test/src/lib/parse/LibParseOperand.handleOperandM1M1.t.sol index d8643df29..4b3c792d6 100644 --- a/test/src/lib/parse/LibParseOperand.handleOperandM1M1.t.sol +++ b/test/src/lib/parse/LibParseOperand.handleOperandM1M1.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParseOperand.handleOperandSingleFull.t.sol b/test/src/lib/parse/LibParseOperand.handleOperandSingleFull.t.sol index 135d4f00d..b4c05716b 100644 --- a/test/src/lib/parse/LibParseOperand.handleOperandSingleFull.t.sol +++ b/test/src/lib/parse/LibParseOperand.handleOperandSingleFull.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParseOperand.handleOperandSingleFullNoDefault.t.sol b/test/src/lib/parse/LibParseOperand.handleOperandSingleFullNoDefault.t.sol index 4749b50f7..f4434a823 100644 --- a/test/src/lib/parse/LibParseOperand.handleOperandSingleFullNoDefault.t.sol +++ b/test/src/lib/parse/LibParseOperand.handleOperandSingleFullNoDefault.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParseOperand.parseOperand.t.sol b/test/src/lib/parse/LibParseOperand.parseOperand.t.sol index 12ca97ef0..c509f2308 100644 --- a/test/src/lib/parse/LibParseOperand.parseOperand.t.sol +++ b/test/src/lib/parse/LibParseOperand.parseOperand.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParsePragma.keyword.t.sol b/test/src/lib/parse/LibParsePragma.keyword.t.sol index 12b090f96..d52fbd135 100644 --- a/test/src/lib/parse/LibParsePragma.keyword.t.sol +++ b/test/src/lib/parse/LibParsePragma.keyword.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParseSlow.sol b/test/src/lib/parse/LibParseSlow.sol index 916492dfa..9e3eac370 100644 --- a/test/src/lib/parse/LibParseSlow.sol +++ b/test/src/lib/parse/LibParseSlow.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; library LibParseSlow { diff --git a/test/src/lib/parse/LibParseStackName.t.sol b/test/src/lib/parse/LibParseStackName.t.sol index 2aa4ad184..23c3b464b 100644 --- a/test/src/lib/parse/LibParseStackName.t.sol +++ b/test/src/lib/parse/LibParseStackName.t.sol @@ -1,4 +1,5 @@ -//// SPDX-License-Identifier: CAL +//// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParseState.constantValueBloom.t.sol b/test/src/lib/parse/LibParseState.constantValueBloom.t.sol index 92905b73e..5c21fbdb6 100644 --- a/test/src/lib/parse/LibParseState.constantValueBloom.t.sol +++ b/test/src/lib/parse/LibParseState.constantValueBloom.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParseState.exportSubParsers.t.sol b/test/src/lib/parse/LibParseState.exportSubParsers.t.sol index fdafd51af..b0aee6593 100644 --- a/test/src/lib/parse/LibParseState.exportSubParsers.t.sol +++ b/test/src/lib/parse/LibParseState.exportSubParsers.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParseState.newActiveSourcePointer.t.sol b/test/src/lib/parse/LibParseState.newActiveSourcePointer.t.sol index 9fb516947..97415bf84 100644 --- a/test/src/lib/parse/LibParseState.newActiveSourcePointer.t.sol +++ b/test/src/lib/parse/LibParseState.newActiveSourcePointer.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParseState.pushConstantValue.t.sol b/test/src/lib/parse/LibParseState.pushConstantValue.t.sol index 1cb6a242a..a4ae1cfd0 100644 --- a/test/src/lib/parse/LibParseState.pushConstantValue.t.sol +++ b/test/src/lib/parse/LibParseState.pushConstantValue.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParseState.pushSubParser.t.sol b/test/src/lib/parse/LibParseState.pushSubParser.t.sol index 8aa8a530c..802ed337b 100644 --- a/test/src/lib/parse/LibParseState.pushSubParser.t.sol +++ b/test/src/lib/parse/LibParseState.pushSubParser.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibSubParse.subParserExtern.t.sol b/test/src/lib/parse/LibSubParse.subParserExtern.t.sol index d8d181286..513609cd8 100644 --- a/test/src/lib/parse/LibSubParse.subParserExtern.t.sol +++ b/test/src/lib/parse/LibSubParse.subParserExtern.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/literal/LibParseLiteralDecimal.parseDecimal.t.sol b/test/src/lib/parse/literal/LibParseLiteralDecimal.parseDecimal.t.sol index 1c510c1ba..e17ad390a 100644 --- a/test/src/lib/parse/literal/LibParseLiteralDecimal.parseDecimal.t.sol +++ b/test/src/lib/parse/literal/LibParseLiteralDecimal.parseDecimal.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/literal/LibParseLiteralDecimal.parseDecimalFloat.t.sol b/test/src/lib/parse/literal/LibParseLiteralDecimal.parseDecimalFloat.t.sol index 8ea7e1251..ca711be89 100644 --- a/test/src/lib/parse/literal/LibParseLiteralDecimal.parseDecimalFloat.t.sol +++ b/test/src/lib/parse/literal/LibParseLiteralDecimal.parseDecimalFloat.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/literal/LibParseLiteralDecimal.unsafeStrToInt.t.sol b/test/src/lib/parse/literal/LibParseLiteralDecimal.unsafeStrToInt.t.sol index aefd36e9d..3c61c66e0 100644 --- a/test/src/lib/parse/literal/LibParseLiteralDecimal.unsafeStrToInt.t.sol +++ b/test/src/lib/parse/literal/LibParseLiteralDecimal.unsafeStrToInt.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/literal/LibParseLiteralDecimal.unsafeStrToSignedInt.t.sol b/test/src/lib/parse/literal/LibParseLiteralDecimal.unsafeStrToSignedInt.t.sol index a5139eea4..44c54c387 100644 --- a/test/src/lib/parse/literal/LibParseLiteralDecimal.unsafeStrToSignedInt.t.sol +++ b/test/src/lib/parse/literal/LibParseLiteralDecimal.unsafeStrToSignedInt.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/literal/LibParseLiteralHex.boundHex.t.sol b/test/src/lib/parse/literal/LibParseLiteralHex.boundHex.t.sol index 42bbc15b9..a63e88f6e 100644 --- a/test/src/lib/parse/literal/LibParseLiteralHex.boundHex.t.sol +++ b/test/src/lib/parse/literal/LibParseLiteralHex.boundHex.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {ParseLiteralTest} from "test/abstract/ParseLiteralTest.sol"; diff --git a/test/src/lib/parse/literal/LibParseLiteralHex.parseHex.t.sol b/test/src/lib/parse/literal/LibParseLiteralHex.parseHex.t.sol index 0d9de1f10..f5eaf1eb2 100644 --- a/test/src/lib/parse/literal/LibParseLiteralHex.parseHex.t.sol +++ b/test/src/lib/parse/literal/LibParseLiteralHex.parseHex.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/literal/LibParseLiteralString.boundString.t.sol b/test/src/lib/parse/literal/LibParseLiteralString.boundString.t.sol index e17ab7237..571322655 100644 --- a/test/src/lib/parse/literal/LibParseLiteralString.boundString.t.sol +++ b/test/src/lib/parse/literal/LibParseLiteralString.boundString.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/literal/LibParseLiteralString.parseString.t.sol b/test/src/lib/parse/literal/LibParseLiteralString.parseString.t.sol index 1d9dc8211..d5ee648a0 100644 --- a/test/src/lib/parse/literal/LibParseLiteralString.parseString.t.sol +++ b/test/src/lib/parse/literal/LibParseLiteralString.parseString.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/literal/LibParseLiteralSubParseable.parseSubParseable.t.sol b/test/src/lib/parse/literal/LibParseLiteralSubParseable.parseSubParseable.t.sol index 2acfaadca..863f608c9 100644 --- a/test/src/lib/parse/literal/LibParseLiteralSubParseable.parseSubParseable.t.sol +++ b/test/src/lib/parse/literal/LibParseLiteralSubParseable.parseSubParseable.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {Test, console2} from "forge-std/Test.sol"; diff --git a/test/src/lib/state/LibInterpreterStateNP.stackTrace.t.sol b/test/src/lib/state/LibInterpreterStateNP.stackTrace.t.sol index bbac72681..40800e91c 100644 --- a/test/src/lib/state/LibInterpreterStateNP.stackTrace.t.sol +++ b/test/src/lib/state/LibInterpreterStateNP.stackTrace.t.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity ^0.8.18; import {LibUint256Array} from "rain.solmem/lib/LibUint256Array.sol"; diff --git a/test/utils/TestERC20.sol b/test/utils/TestERC20.sol index dfd880f0f..97f7fbe3f 100644 --- a/test/utils/TestERC20.sol +++ b/test/utils/TestERC20.sol @@ -1,4 +1,5 @@ -// SPDX-License-Identifier: CAL +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister pragma solidity =0.8.25; import {ERC20} from "openzeppelin-contracts/contracts/token/ERC20/ERC20.sol"; From 7bcca91d0529607cc30e59e2c13520f77cbc5490 Mon Sep 17 00:00:00 2001 From: thedavidmeister Date: Mon, 21 Oct 2024 21:47:57 +0400 Subject: [PATCH 24/62] legal --- REUSE.toml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/REUSE.toml b/REUSE.toml index 91221b6ad..08e4a693a 100644 --- a/REUSE.toml +++ b/REUSE.toml @@ -5,6 +5,9 @@ path = [ ".gas-snapshot", ".github/workflows/**/", "crates/**/", + ".vscode/**/", + "Cargo.lock", + "Cargo.toml", ".gitignore", ".gitmodules", "README.md", From 46edf7a5b7cca651aeae0e94c7dd19bd567fcfef Mon Sep 17 00:00:00 2001 From: thedavidmeister Date: Mon, 21 Oct 2024 21:49:31 +0400 Subject: [PATCH 25/62] legal ci --- .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 9124547c2..7edb49761 100644 --- a/.github/workflows/rainix.yaml +++ b/.github/workflows/rainix.yaml @@ -6,7 +6,7 @@ jobs: strategy: matrix: os: [ubuntu-latest, macos-latest] - task: [rainix-rs-test, rainix-rs-artifacts] + task: [rainix-rs-test, rainix-rs-artifacts, rainix-sol-legal] include: # Solidity doesn't need to be tested on multiple platforms - os: ubuntu-latest From f61fec9f7903653ccd26a896806147be5c6ff497 Mon Sep 17 00:00:00 2001 From: thedavidmeister Date: Wed, 23 Oct 2024 21:06:05 +0400 Subject: [PATCH 26/62] add interface --- .gitmodules | 6 +++--- lib/rain.interpreter.interface | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.gitmodules b/.gitmodules index e04e09cb6..621c38ac4 100644 --- a/.gitmodules +++ b/.gitmodules @@ -19,9 +19,9 @@ [submodule "lib/rain.sol.codegen"] path = lib/rain.sol.codegen url = https://github.com/rainlanguage/rain.sol.codegen -[submodule "lib/rain.interpreter.interface"] - path = lib/rain.interpreter.interface - url = https://github.com/rainlanguage/rain.interpreter.interface [submodule "lib/rain.sol.binmaskflag"] path = lib/rain.sol.binmaskflag url = https://github.com/rainlanguage/rain.sol.binmaskflag +[submodule "lib/rain.interpreter.interface"] + path = lib/rain.interpreter.interface + url = https://github.com/rainlanguage/rain.interpreter.interface diff --git a/lib/rain.interpreter.interface b/lib/rain.interpreter.interface index e40abd293..dbed6e8a9 160000 --- a/lib/rain.interpreter.interface +++ b/lib/rain.interpreter.interface @@ -1 +1 @@ -Subproject commit e40abd293f8a6ddb1f4a5824537b76037797b2ff +Subproject commit dbed6e8a9c7ddac5ba4d58928ab7c1d4ea1e5bdd From e45f3a1987e8f659fb1606d74d7d4737418b08da Mon Sep 17 00:00:00 2001 From: thedavidmeister Date: Thu, 24 Oct 2024 00:29:52 +0400 Subject: [PATCH 27/62] readme --- README.md | 46 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 9adaa2219..63e22c957 100644 --- a/README.md +++ b/README.md @@ -87,4 +87,48 @@ There are some branches that were forked from `main` for historical reasons, tha MAY be of interest situationally, but otherwise should be ignored. - `main-np`: Forked from the last commit using `eval` before `eval2` was the - primary interface into the interpreter. No longer actively developed. \ No newline at end of file + primary interface into the interpreter. No longer actively developed. + +## Dev stuff + +### Local environment & CI + +Uses nixos. + +Install `nix develop` - https://nixos.org/download.html. + +Run `nix develop` in this repo to drop into the shell. Please ONLY use the nix +version of `foundry` for development, to ensure versions are all compatible. + +Read the `flake.nix` file to find some additional commands included for dev and +CI usage. + +## Legal stuff + +Everything is under DecentraLicense 1.0 (DCL-1.0) which can be found in `LICENSES/`. + +This is basically `CAL-1.0` which is an open source license +https://opensource.org/license/cal-1-0 + +The non-legal summary of DCL-1.0 is that the source is open, as expected, but +also user data in the systems that this code runs on must also be made available +to those users as relevant, and that private keys remain private. + +Roughly it's "not your keys, not your coins" aware, as close as we could get in +legalese. + +This is the default situation on permissionless blockchains, so shouldn't require +any additional effort by dev-users to adhere to the license terms. + +This repo is REUSE 3.2 compliant https://reuse.software/spec-3.2/ and compatible +with `reuse` tooling (also available in the nix shell here). + +``` +nix develop -c rainix-sol-legal +``` + +## Contributions + +Contributions are welcome **under the same license** as above. + +Contributors agree and warrant that their contributions are compliant. \ No newline at end of file From 7556aa7c52949cf154dad812ecf282d4a78d189a Mon Sep 17 00:00:00 2001 From: thedavidmeister Date: Thu, 24 Oct 2024 14:31:35 +0400 Subject: [PATCH 28/62] update metadata --- lib/rain.metadata | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/rain.metadata b/lib/rain.metadata index 779f563bb..40fee2d2c 160000 --- a/lib/rain.metadata +++ b/lib/rain.metadata @@ -1 +1 @@ -Subproject commit 779f563bb6068b747d3029b384e0fceca9a7b697 +Subproject commit 40fee2d2cbf91666b4d6c488201702046e3dce3b From 8415f9d09a685fd3ed84ba017d91c67fa44dba2c Mon Sep 17 00:00:00 2001 From: Josh Date: Fri, 25 Oct 2024 12:23:29 +0100 Subject: [PATCH 29/62] Update manual-sol-artifacts.yaml --- .github/workflows/manual-sol-artifacts.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/manual-sol-artifacts.yaml b/.github/workflows/manual-sol-artifacts.yaml index 1507fbae6..e0841c3ef 100644 --- a/.github/workflows/manual-sol-artifacts.yaml +++ b/.github/workflows/manual-sol-artifacts.yaml @@ -49,7 +49,7 @@ jobs: run: nix develop --command rainix-sol-artifacts env: DEPLOY_BROADCAST: "1" - DEPLOYMENT_KEY: ${{ github.ref == 'refs/heads/main' && secrets.PRIVATE_KEY || secrets.PRIVATE_KEY_DEV }} + DEPLOYMENT_KEY: ${{ (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/3.x') && secrets.PRIVATE_KEY || secrets.PRIVATE_KEY_DEV }} ETH_RPC_URL: ${{ secrets[env.rpc_secret_name] || vars[env.rpc_secret_name] || '' }} ETHERSCAN_API_KEY: ${{ secrets[env.etherscan_api_key_secret_name] || vars[env.etherscan_api_key_secret_name] || ''}} DEPLOY_VERIFY: ${{ secrets[env.verify_secret_name] || vars[env.verify_secret_name] || '' }} From ac310c1af3a5d9f580264e38f9d540d5dd3f6776 Mon Sep 17 00:00:00 2001 From: rouzwelt Date: Sat, 30 Nov 2024 21:39:51 +0000 Subject: [PATCH 30/62] init --- Cargo.lock | 2 +- Cargo.toml | 2 +- lib/rain.metadata | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0eb7cedd2..53c216143 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -201,7 +201,7 @@ dependencies = [ [[package]] name = "alloy-ethers-typecast" version = "0.2.0" -source = "git+https://github.com/rainlanguage/alloy-ethers-typecast?rev=0881930a22e84db49ba955c5b88e790e1266ac66#0881930a22e84db49ba955c5b88e790e1266ac66" +source = "git+https://github.com/rainlanguage/alloy-ethers-typecast?rev=0e636d2bc865a49c6eaea95ab139465708a65698#0e636d2bc865a49c6eaea95ab139465708a65698" dependencies = [ "alloy", "async-trait", diff --git a/Cargo.toml b/Cargo.toml index c90141aa4..0946e4e3f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -33,7 +33,7 @@ tracing = "0.1.37" tracing-subscriber = "0.3.17" reqwest = { version = "0.11.17", features = ["json"] } once_cell = "1.17.1" -alloy-ethers-typecast = { git = "https://github.com/rainlanguage/alloy-ethers-typecast", rev = "0881930a22e84db49ba955c5b88e790e1266ac66" } +alloy-ethers-typecast = { git = "https://github.com/rainlanguage/alloy-ethers-typecast", rev = "0e636d2bc865a49c6eaea95ab139465708a65698" } eyre = "0.6" rain-error-decoding = { git = "https://github.com/rainlanguage/rain.error", rev = "72d9577fdaf7135113847027ba951f9a43b41827" } typeshare = { git = "https://github.com/tomjw64/typeshare", rev = "556b44aafd5304eedf17206800f69834e3820b7c" } diff --git a/lib/rain.metadata b/lib/rain.metadata index 40fee2d2c..77c2f63ae 160000 --- a/lib/rain.metadata +++ b/lib/rain.metadata @@ -1 +1 @@ -Subproject commit 40fee2d2cbf91666b4d6c488201702046e3dce3b +Subproject commit 77c2f63aef13b9701fcf376da1828db57de1d350 From 52759d16177eaeb81472cdf9617eed7100c9b1db Mon Sep 17 00:00:00 2001 From: rouzwelt Date: Mon, 2 Dec 2024 23:55:34 +0000 Subject: [PATCH 31/62] init --- Cargo.lock | 2 +- Cargo.toml | 2 +- lib/rain.metadata | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 53c216143..634bc9ef1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -201,7 +201,7 @@ dependencies = [ [[package]] name = "alloy-ethers-typecast" version = "0.2.0" -source = "git+https://github.com/rainlanguage/alloy-ethers-typecast?rev=0e636d2bc865a49c6eaea95ab139465708a65698#0e636d2bc865a49c6eaea95ab139465708a65698" +source = "git+https://github.com/rainlanguage/alloy-ethers-typecast?rev=65a68f207287d024cba934bf1e3c8b3f63d2834a#65a68f207287d024cba934bf1e3c8b3f63d2834a" dependencies = [ "alloy", "async-trait", diff --git a/Cargo.toml b/Cargo.toml index 0946e4e3f..f7596a2d5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -33,7 +33,7 @@ tracing = "0.1.37" tracing-subscriber = "0.3.17" reqwest = { version = "0.11.17", features = ["json"] } once_cell = "1.17.1" -alloy-ethers-typecast = { git = "https://github.com/rainlanguage/alloy-ethers-typecast", rev = "0e636d2bc865a49c6eaea95ab139465708a65698" } +alloy-ethers-typecast = { git = "https://github.com/rainlanguage/alloy-ethers-typecast", rev = "65a68f207287d024cba934bf1e3c8b3f63d2834a" } eyre = "0.6" rain-error-decoding = { git = "https://github.com/rainlanguage/rain.error", rev = "72d9577fdaf7135113847027ba951f9a43b41827" } typeshare = { git = "https://github.com/tomjw64/typeshare", rev = "556b44aafd5304eedf17206800f69834e3820b7c" } diff --git a/lib/rain.metadata b/lib/rain.metadata index 77c2f63ae..8731757b2 160000 --- a/lib/rain.metadata +++ b/lib/rain.metadata @@ -1 +1 @@ -Subproject commit 77c2f63aef13b9701fcf376da1828db57de1d350 +Subproject commit 8731757b2e34f5fcdea1692fbdbe8cde24e802ec From 9e3ce76abb64499092b0b232512872bf62c3b16b Mon Sep 17 00:00:00 2001 From: thedavidmeister Date: Sat, 7 Dec 2024 15:10:29 +0400 Subject: [PATCH 32/62] update datacontract --- lib/rain.datacontract | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/rain.datacontract b/lib/rain.datacontract index 918a0bbe4..7faea1765 160000 --- a/lib/rain.datacontract +++ b/lib/rain.datacontract @@ -1 +1 @@ -Subproject commit 918a0bbe4942d44c2a4d48227bf21d42b2531ca3 +Subproject commit 7faea1765475b0dc253155850c88ab1046bc794a From 6d8bf2a1a320944dae7f005b3e83b97178f4704e Mon Sep 17 00:00:00 2001 From: thedavidmeister Date: Sat, 7 Dec 2024 16:26:05 +0400 Subject: [PATCH 33/62] bump dep --- lib/rain.interpreter.interface | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/rain.interpreter.interface b/lib/rain.interpreter.interface index dbed6e8a9..28a5e0fc8 160000 --- a/lib/rain.interpreter.interface +++ b/lib/rain.interpreter.interface @@ -1 +1 @@ -Subproject commit dbed6e8a9c7ddac5ba4d58928ab7c1d4ea1e5bdd +Subproject commit 28a5e0fc8df0f12f9fbe43c41e126a017cd3bbc6 From a3e15173e84ccfafba86e570636909daff87b296 Mon Sep 17 00:00:00 2001 From: thedavidmeister Date: Sat, 7 Dec 2024 16:28:59 +0400 Subject: [PATCH 34/62] upddate deps --- lib/rain.intorastring | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/rain.intorastring b/lib/rain.intorastring index 41a0b725b..6a715b645 160000 --- a/lib/rain.intorastring +++ b/lib/rain.intorastring @@ -1 +1 @@ -Subproject commit 41a0b725be1f846e567bf193e4c52e074ac73e60 +Subproject commit 6a715b64534f41b9fefce09fdf47d24c1771c008 From e1a1e69eb8a16d2b6a21ad985b9967f4c8259f06 Mon Sep 17 00:00:00 2001 From: thedavidmeister Date: Sat, 7 Dec 2024 16:36:10 +0400 Subject: [PATCH 35/62] update dep --- lib/rain.lib.memkv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/rain.lib.memkv b/lib/rain.lib.memkv index fe2ba3a59..c713a7334 160000 --- a/lib/rain.lib.memkv +++ b/lib/rain.lib.memkv @@ -1 +1 @@ -Subproject commit fe2ba3a59cbf180dc7bd42e6830fdb3942cd1472 +Subproject commit c713a7334b3e51cd4b18a2a8a5d5987f6912bc7f From 440e0e9165d847ae6d8d63154129c4e6f604615e Mon Sep 17 00:00:00 2001 From: thedavidmeister Date: Sat, 7 Dec 2024 17:26:00 +0400 Subject: [PATCH 36/62] update deps --- lib/rain.math.fixedpoint | 2 +- lib/rain.metadata | 2 +- lib/rain.sol.binmaskflag | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/rain.math.fixedpoint b/lib/rain.math.fixedpoint index 7d4d41f6b..6f8f7f8c7 160000 --- a/lib/rain.math.fixedpoint +++ b/lib/rain.math.fixedpoint @@ -1 +1 @@ -Subproject commit 7d4d41f6b779a4465993ef23b349203edf917f56 +Subproject commit 6f8f7f8c79fd23b00aa5b9bda1171712e200023c diff --git a/lib/rain.metadata b/lib/rain.metadata index 8731757b2..653c6bc26 160000 --- a/lib/rain.metadata +++ b/lib/rain.metadata @@ -1 +1 @@ -Subproject commit 8731757b2e34f5fcdea1692fbdbe8cde24e802ec +Subproject commit 653c6bc26e582596e9972bc09138a8d452f37b7e diff --git a/lib/rain.sol.binmaskflag b/lib/rain.sol.binmaskflag index 58b5c1338..ff4a939d6 160000 --- a/lib/rain.sol.binmaskflag +++ b/lib/rain.sol.binmaskflag @@ -1 +1 @@ -Subproject commit 58b5c13389c14e6f8238514762c0a6a611fd8280 +Subproject commit ff4a939d67601de150842f427472f508cd6ceac5 From 99469514fa71d70f023c85241bb6506527e72bf6 Mon Sep 17 00:00:00 2001 From: thedavidmeister Date: Sat, 7 Dec 2024 17:26:55 +0400 Subject: [PATCH 37/62] update dep --- lib/rain.sol.codegen | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/rain.sol.codegen b/lib/rain.sol.codegen index a2fbf7ec8..6769b168d 160000 --- a/lib/rain.sol.codegen +++ b/lib/rain.sol.codegen @@ -1 +1 @@ -Subproject commit a2fbf7ec81cedc606976f8e624bec5d496c8e219 +Subproject commit 6769b168d4f3d4316d1c142a1a6a38460bcbab7e From 3fa11be11877d2f434d6c88fdfc9f109534ebc26 Mon Sep 17 00:00:00 2001 From: thedavidmeister Date: Sat, 7 Dec 2024 17:29:10 +0400 Subject: [PATCH 38/62] legal --- REUSE.toml | 2 +- script/BuildAuthoringMeta.sol | 2 +- script/BuildPointers.sol | 2 +- script/Deploy.sol | 2 +- src/abstract/BaseRainterpreterExternNPE2.sol | 2 +- src/abstract/BaseRainterpreterSubParserNPE2.sol | 2 +- src/concrete/RainterpreterExpressionDeployerNPE2.sol | 2 +- src/concrete/RainterpreterNPE2.sol | 2 +- src/concrete/RainterpreterParserNPE2.sol | 2 +- src/concrete/RainterpreterStoreNPE2.sol | 2 +- src/concrete/extern/RainterpreterReferenceExternNPE2.sol | 2 +- src/error/ErrBitwise.sol | 2 +- src/error/ErrDeploy.sol | 2 +- src/error/ErrExtern.sol | 2 +- src/error/ErrIntegrity.sol | 2 +- src/error/ErrOpList.sol | 2 +- src/error/ErrParse.sol | 2 +- src/error/ErrSubParse.sol | 2 +- src/generated/RainterpreterExpressionDeployerNPE2.pointers.sol | 2 +- src/generated/RainterpreterNPE2.pointers.sol | 2 +- src/generated/RainterpreterParserNPE2.pointers.sol | 2 +- src/generated/RainterpreterReferenceExternNPE2.pointers.sol | 2 +- src/generated/RainterpreterStoreNPE2.pointers.sol | 2 +- src/lib/constants/ExpressionDeployerNPConstants.sol | 2 +- src/lib/eval/LibEvalNP.sol | 2 +- src/lib/extern/LibExtern.sol | 2 +- src/lib/extern/reference/literal/LibParseLiteralRepeat.sol | 2 +- .../reference/op/LibExternOpContextCallingContractNPE2.sol | 2 +- src/lib/extern/reference/op/LibExternOpContextRainlenNPE2.sol | 2 +- src/lib/extern/reference/op/LibExternOpContextSenderNPE2.sol | 2 +- src/lib/extern/reference/op/LibExternOpIntIncNPE2.sol | 2 +- src/lib/extern/reference/op/LibExternOpStackOperandNPE2.sol | 2 +- src/lib/integrity/LibIntegrityCheckNP.sol | 2 +- src/lib/op/00/LibOpConstantNP.sol | 2 +- src/lib/op/00/LibOpContextNP.sol | 2 +- src/lib/op/00/LibOpExternNP.sol | 2 +- src/lib/op/00/LibOpStackNP.sol | 2 +- src/lib/op/LibAllStandardOpsNP.sol | 2 +- src/lib/op/bitwise/LibOpBitwiseAndNP.sol | 2 +- src/lib/op/bitwise/LibOpBitwiseOrNP.sol | 2 +- src/lib/op/bitwise/LibOpCtPopNP.sol | 2 +- src/lib/op/bitwise/LibOpDecodeBitsNP.sol | 2 +- src/lib/op/bitwise/LibOpEncodeBitsNP.sol | 2 +- src/lib/op/bitwise/LibOpShiftBitsLeftNP.sol | 2 +- src/lib/op/bitwise/LibOpShiftBitsRightNP.sol | 2 +- src/lib/op/call/LibOpCallNP.sol | 2 +- src/lib/op/crypto/LibOpHashNP.sol | 2 +- src/lib/op/erc20/LibOpERC20Allowance.sol | 2 +- src/lib/op/erc20/LibOpERC20BalanceOf.sol | 2 +- src/lib/op/erc20/LibOpERC20TotalSupply.sol | 2 +- src/lib/op/erc20/uint256/LibOpUint256ERC20Allowance.sol | 2 +- src/lib/op/erc20/uint256/LibOpUint256ERC20BalanceOf.sol | 2 +- src/lib/op/erc20/uint256/LibOpUint256ERC20TotalSupply.sol | 2 +- src/lib/op/erc5313/LibOpERC5313OwnerNP.sol | 2 +- src/lib/op/erc721/LibOpERC721OwnerOf.sol | 2 +- src/lib/op/erc721/uint256/LibOpUint256ERC721BalanceOf.sol | 2 +- src/lib/op/evm/LibOpBlockNumberNP.sol | 2 +- src/lib/op/evm/LibOpChainIdNP.sol | 2 +- src/lib/op/evm/LibOpMaxUint256NP.sol | 2 +- src/lib/op/evm/LibOpTimestampNP.sol | 2 +- src/lib/op/logic/LibOpAnyNP.sol | 2 +- src/lib/op/logic/LibOpConditionsNP.sol | 2 +- src/lib/op/logic/LibOpEnsureNP.sol | 2 +- src/lib/op/logic/LibOpEqualToNP.sol | 2 +- src/lib/op/logic/LibOpEveryNP.sol | 2 +- src/lib/op/logic/LibOpGreaterThanNP.sol | 2 +- src/lib/op/logic/LibOpGreaterThanOrEqualToNP.sol | 2 +- src/lib/op/logic/LibOpIfNP.sol | 2 +- src/lib/op/logic/LibOpIsZeroNP.sol | 2 +- src/lib/op/logic/LibOpLessThanNP.sol | 2 +- src/lib/op/logic/LibOpLessThanOrEqualToNP.sol | 2 +- src/lib/op/math/LibOpAdd.sol | 2 +- src/lib/op/math/LibOpAvg.sol | 2 +- src/lib/op/math/LibOpCeil.sol | 2 +- src/lib/op/math/LibOpDiv.sol | 2 +- src/lib/op/math/LibOpE.sol | 2 +- src/lib/op/math/LibOpExp.sol | 2 +- src/lib/op/math/LibOpExp2.sol | 2 +- src/lib/op/math/LibOpFloor.sol | 2 +- src/lib/op/math/LibOpFrac.sol | 2 +- src/lib/op/math/LibOpGm.sol | 2 +- src/lib/op/math/LibOpHeadroom.sol | 2 +- src/lib/op/math/LibOpInv.sol | 2 +- src/lib/op/math/LibOpLn.sol | 2 +- src/lib/op/math/LibOpLog10.sol | 2 +- src/lib/op/math/LibOpLog2.sol | 2 +- src/lib/op/math/LibOpMax.sol | 2 +- src/lib/op/math/LibOpMin.sol | 2 +- src/lib/op/math/LibOpMod.sol | 2 +- src/lib/op/math/LibOpMul.sol | 2 +- src/lib/op/math/LibOpPow.sol | 2 +- src/lib/op/math/LibOpScale18.sol | 2 +- src/lib/op/math/LibOpScale18Dynamic.sol | 2 +- src/lib/op/math/LibOpScaleN.sol | 2 +- src/lib/op/math/LibOpScaleNDynamic.sol | 2 +- src/lib/op/math/LibOpSnapToUnit.sol | 2 +- src/lib/op/math/LibOpSqrt.sol | 2 +- src/lib/op/math/LibOpSub.sol | 2 +- src/lib/op/math/growth/LibOpExponentialGrowth.sol | 2 +- src/lib/op/math/growth/LibOpLinearGrowth.sol | 2 +- src/lib/op/math/uint256/LibOpUint256Div.sol | 2 +- src/lib/op/math/uint256/LibOpUint256Mul.sol | 2 +- src/lib/op/math/uint256/LibOpUint256Pow.sol | 2 +- src/lib/op/store/LibOpGetNP.sol | 2 +- src/lib/op/store/LibOpSetNP.sol | 2 +- src/lib/parse/LibParse.sol | 2 +- src/lib/parse/LibParseCMask.sol | 2 +- src/lib/parse/LibParseError.sol | 2 +- src/lib/parse/LibParseInterstitial.sol | 2 +- src/lib/parse/LibParseOperand.sol | 2 +- src/lib/parse/LibParsePragma.sol | 2 +- src/lib/parse/LibParseStackName.sol | 2 +- src/lib/parse/LibParseStackTracker.sol | 2 +- src/lib/parse/LibParseState.sol | 2 +- src/lib/parse/LibSubParse.sol | 2 +- src/lib/parse/literal/LibParseLiteral.sol | 2 +- src/lib/parse/literal/LibParseLiteralDecimal.sol | 2 +- src/lib/parse/literal/LibParseLiteralHex.sol | 2 +- src/lib/parse/literal/LibParseLiteralString.sol | 2 +- src/lib/parse/literal/LibParseLiteralSubParseable.sol | 2 +- src/lib/state/LibInterpreterStateDataContractNP.sol | 2 +- src/lib/state/LibInterpreterStateNP.sol | 2 +- test/abstract/OpTest.sol | 2 +- test/abstract/OperandTest.sol | 2 +- test/abstract/ParseLiteralTest.sol | 2 +- .../RainterpreterExpressionDeployerNPE2DeploymentTest.sol | 2 +- test/lib/etch/LibEtch.sol | 2 +- test/lib/integrity/LibIntegrityFnPointers.sol | 2 +- test/lib/literal/LibLiteralString.sol | 2 +- test/lib/operand/LibOperand.sol | 2 +- test/lib/parse/LibMetaFixture.sol | 2 +- test/src/abstract/BaseRainterpreterExternNPE2.ierc165.t.sol | 2 +- .../abstract/BaseRainterpreterSubParserNPE2.compatibility.t.sol | 2 +- test/src/abstract/BaseRainterpreterSubParserNPE2.ierc165.t.sol | 2 +- .../RainterpreterExpressionDeployerNPE2.deployCheck.t.sol | 2 +- .../RainterpreterExpressionDeployerNPE2.describedByMetaV1.t.sol | 2 +- .../concrete/RainterpreterExpressionDeployerNPE2.ierc165.t.sol | 2 +- .../src/concrete/RainterpreterExpressionDeployerNPE2.meta.t.sol | 2 +- test/src/concrete/RainterpreterNPE2.ierc165.t.sol | 2 +- test/src/concrete/RainterpreterNPE2.pointers.t.sol | 2 +- test/src/concrete/RainterpreterNPE2.t.sol | 2 +- test/src/concrete/RainterpreterParserNPE2.ierc165.t.sol | 2 +- test/src/concrete/RainterpreterParserNPE2.parserPragma.t.sol | 2 +- test/src/concrete/RainterpreterParserNPE2.pointers.t.sol | 2 +- ...ainterpreterReferenceExternNPE2.contextCallingContract.t.sol | 2 +- .../RainterpreterReferenceExternNPE2.contextRainlen.t.sol | 2 +- .../RainterpreterReferenceExternNPE2.contextSender.t.sol | 2 +- .../RainterpreterReferenceExternNPE2.describedByMetaV1.t.sol | 2 +- .../src/concrete/RainterpreterReferenceExternNPE2.ierc165.t.sol | 2 +- test/src/concrete/RainterpreterReferenceExternNPE2.intInc.t.sol | 2 +- .../concrete/RainterpreterReferenceExternNPE2.pointers.t.sol | 2 +- test/src/concrete/RainterpreterReferenceExternNPE2.repeat.t.sol | 2 +- .../RainterpreterReferenceExternNPE2.stackOperand.t.sol | 2 +- .../concrete/RainterpreterReferenceExternNPE2.unknownWord.t.sol | 2 +- test/src/concrete/RainterpreterStoreNPE2.ierc165.t.sol | 2 +- test/src/concrete/RainterpreterStoreNPE2.t.sol | 2 +- test/src/lib/eval/LibEvalNP.fBounds.t.sol | 2 +- test/src/lib/extern/LibExtern.codec.t.sol | 2 +- test/src/lib/op/00/LibOpConstantNP.t.sol | 2 +- test/src/lib/op/00/LibOpContextNP.t.sol | 2 +- test/src/lib/op/00/LibOpExternNP.t.sol | 2 +- test/src/lib/op/00/LibOpStackNP.t.sol | 2 +- test/src/lib/op/LibAllStandardOpsNP.t.sol | 2 +- test/src/lib/op/bitwise/LibOpBitwiseAndNP.t.sol | 2 +- test/src/lib/op/bitwise/LibOpBitwiseOrNP.t.sol | 2 +- test/src/lib/op/bitwise/LibOpCtPopNP.t.sol | 2 +- test/src/lib/op/bitwise/LibOpDecodeBitsNP.t.sol | 2 +- test/src/lib/op/bitwise/LibOpEncodeBitsNP.t.sol | 2 +- test/src/lib/op/bitwise/LibOpShiftBitsLeftNP.t.sol | 2 +- test/src/lib/op/bitwise/LibOpShiftBitsRightNP.t.sol | 2 +- test/src/lib/op/call/LibOpCallNP.t.sol | 2 +- test/src/lib/op/crypto/LibOpHashNP.t.sol | 2 +- test/src/lib/op/erc20/LibOpERC20Allowance.t.sol | 2 +- test/src/lib/op/erc20/LibOpERC20BalanceOf.t.sol | 2 +- test/src/lib/op/erc20/LibOpERC20TotalSupply.t.sol | 2 +- test/src/lib/op/erc20/uint256/LibOpUint256ERC20Allowance.t.sol | 2 +- test/src/lib/op/erc20/uint256/LibOpUint256ERC20BalanceOf.t.sol | 2 +- .../src/lib/op/erc20/uint256/LibOpUint256ERC20TotalSupply.t.sol | 2 +- test/src/lib/op/erc5313/LibOpERC5313OwnerNP.t.sol | 2 +- test/src/lib/op/erc721/LibOpERC721OwnerOf.t.sol | 2 +- .../src/lib/op/erc721/uint256/LibOpUint256ERC721BalanceOf.t.sol | 2 +- test/src/lib/op/evm/LibOpBlockNumberNP.t.sol | 2 +- test/src/lib/op/evm/LibOpChainIdNP.t.sol | 2 +- test/src/lib/op/evm/LibOpMaxUint256NP.t.sol | 2 +- test/src/lib/op/evm/LibOpTimestampNP.t.sol | 2 +- test/src/lib/op/logic/LibOpAnyNP.t.sol | 2 +- test/src/lib/op/logic/LibOpConditionsNP.t.sol | 2 +- test/src/lib/op/logic/LibOpEnsureNP.t.sol | 2 +- test/src/lib/op/logic/LibOpEqualToNP.t.sol | 2 +- test/src/lib/op/logic/LibOpEveryNP.t.sol | 2 +- test/src/lib/op/logic/LibOpGreaterThanNP.t.sol | 2 +- test/src/lib/op/logic/LibOpGreaterThanOrEqualToNP.t.sol | 2 +- test/src/lib/op/logic/LibOpIfNP.t.sol | 2 +- test/src/lib/op/logic/LibOpIsZeroNP.t.sol | 2 +- test/src/lib/op/logic/LibOpLessThanNP.t.sol | 2 +- test/src/lib/op/logic/LibOpLessThanOrEqualToNP.t.sol | 2 +- test/src/lib/op/math/LibOpAvg.t.sol | 2 +- test/src/lib/op/math/LibOpCeil.t.sol | 2 +- test/src/lib/op/math/LibOpDiv.t.sol | 2 +- test/src/lib/op/math/LibOpE.t.sol | 2 +- test/src/lib/op/math/LibOpExp.t.sol | 2 +- test/src/lib/op/math/LibOpExp2.t.sol | 2 +- test/src/lib/op/math/LibOpFloor.t.sol | 2 +- test/src/lib/op/math/LibOpFrac.t.sol | 2 +- test/src/lib/op/math/LibOpGm.t.sol | 2 +- test/src/lib/op/math/LibOpHeadroom.t.sol | 2 +- test/src/lib/op/math/LibOpIntAddNP.t.sol | 2 +- test/src/lib/op/math/LibOpInv.t.sol | 2 +- test/src/lib/op/math/LibOpLn.t.sol | 2 +- test/src/lib/op/math/LibOpLog10.t.sol | 2 +- test/src/lib/op/math/LibOpLog2.t.sol | 2 +- test/src/lib/op/math/LibOpMax.t.sol | 2 +- test/src/lib/op/math/LibOpMin.t.sol | 2 +- test/src/lib/op/math/LibOpMod.t.sol | 2 +- test/src/lib/op/math/LibOpMul.t.sol | 2 +- test/src/lib/op/math/LibOpPow.t.sol | 2 +- test/src/lib/op/math/LibOpScale18.t.sol | 2 +- test/src/lib/op/math/LibOpScale18Dynamic.t.sol | 2 +- test/src/lib/op/math/LibOpScaleN.t.sol | 2 +- test/src/lib/op/math/LibOpScaleNDynamic.t.sol | 2 +- test/src/lib/op/math/LibOpSnapToUnit.t.sol | 2 +- test/src/lib/op/math/LibOpSqrt.t.sol | 2 +- test/src/lib/op/math/LibOpSub.t.sol | 2 +- test/src/lib/op/math/growth/LibOpExponentialGrowth.t.sol | 2 +- test/src/lib/op/math/growth/LibOpLinearGrowth.t.sol | 2 +- test/src/lib/op/math/int/LibOpUint256Div.t.sol | 2 +- test/src/lib/op/math/int/LibOpUint256Mul.t.sol | 2 +- test/src/lib/op/math/int/LibOpUint256Pow.t.sol | 2 +- test/src/lib/op/store/LibOpGetNP.t.sol | 2 +- test/src/lib/op/store/LibOpSetNP.t.sol | 2 +- test/src/lib/parse/LibParse.comments.t.sol | 2 +- test/src/lib/parse/LibParse.empty.gas.t.sol | 2 +- test/src/lib/parse/LibParse.empty.t.sol | 2 +- test/src/lib/parse/LibParse.ignoredLHS.t.sol | 2 +- test/src/lib/parse/LibParse.inputsOnly.gas.t.sol | 2 +- test/src/lib/parse/LibParse.inputsOnly.t.sol | 2 +- test/src/lib/parse/LibParse.isMask.t.sol | 2 +- test/src/lib/parse/LibParse.literalIntegerDecimal.t.sol | 2 +- test/src/lib/parse/LibParse.literalIntegerHex.t.sol | 2 +- test/src/lib/parse/LibParse.literalString.t.sol | 2 +- test/src/lib/parse/LibParse.missingFinalSemi.t.sol | 2 +- test/src/lib/parse/LibParse.nOutput.t.sol | 2 +- test/src/lib/parse/LibParse.namedLHS.t.sol | 2 +- test/src/lib/parse/LibParse.operand8M1M1.t.sol | 2 +- test/src/lib/parse/LibParse.operandDisallowed.t.sol | 2 +- test/src/lib/parse/LibParse.operandDoublePerByteNoDefault.t.sol | 2 +- test/src/lib/parse/LibParse.operandM1M1.t.sol | 2 +- test/src/lib/parse/LibParse.operandSingleFull.t.sol | 2 +- test/src/lib/parse/LibParse.parseWord.t.sol | 2 +- test/src/lib/parse/LibParse.singleIgnored.gas.t.sol | 2 +- test/src/lib/parse/LibParse.singleLHSNamed.gas.t.sol | 2 +- test/src/lib/parse/LibParse.singleRHSNamed.gas.t.sol | 2 +- test/src/lib/parse/LibParse.sourceInputs.t.sol | 2 +- test/src/lib/parse/LibParse.unclosedLeftParen.t.sol | 2 +- test/src/lib/parse/LibParse.unexpectedLHS.t.sol | 2 +- test/src/lib/parse/LibParse.unexpectedRHS.t.sol | 2 +- test/src/lib/parse/LibParse.unexpectedRightParen.t.sol | 2 +- test/src/lib/parse/LibParse.wordsRHS.t.sol | 2 +- test/src/lib/parse/LibParseOperand.handleOperand8M1M1.t.sol | 2 +- .../src/lib/parse/LibParseOperand.handleOperandDisallowed.t.sol | 2 +- .../LibParseOperand.handleOperandDoublePerByteNoDefault.t.sol | 2 +- test/src/lib/parse/LibParseOperand.handleOperandM1M1.t.sol | 2 +- .../src/lib/parse/LibParseOperand.handleOperandSingleFull.t.sol | 2 +- .../LibParseOperand.handleOperandSingleFullNoDefault.t.sol | 2 +- test/src/lib/parse/LibParseOperand.parseOperand.t.sol | 2 +- test/src/lib/parse/LibParsePragma.keyword.t.sol | 2 +- test/src/lib/parse/LibParseSlow.sol | 2 +- test/src/lib/parse/LibParseStackName.t.sol | 2 +- test/src/lib/parse/LibParseState.constantValueBloom.t.sol | 2 +- test/src/lib/parse/LibParseState.exportSubParsers.t.sol | 2 +- test/src/lib/parse/LibParseState.newActiveSourcePointer.t.sol | 2 +- test/src/lib/parse/LibParseState.pushConstantValue.t.sol | 2 +- test/src/lib/parse/LibParseState.pushSubParser.t.sol | 2 +- test/src/lib/parse/LibSubParse.subParserExtern.t.sol | 2 +- .../lib/parse/literal/LibParseLiteralDecimal.parseDecimal.t.sol | 2 +- .../literal/LibParseLiteralDecimal.parseDecimalFloat.t.sol | 2 +- .../parse/literal/LibParseLiteralDecimal.unsafeStrToInt.t.sol | 2 +- .../literal/LibParseLiteralDecimal.unsafeStrToSignedInt.t.sol | 2 +- test/src/lib/parse/literal/LibParseLiteralHex.boundHex.t.sol | 2 +- test/src/lib/parse/literal/LibParseLiteralHex.parseHex.t.sol | 2 +- .../lib/parse/literal/LibParseLiteralString.boundString.t.sol | 2 +- .../lib/parse/literal/LibParseLiteralString.parseString.t.sol | 2 +- .../literal/LibParseLiteralSubParseable.parseSubParseable.t.sol | 2 +- test/src/lib/state/LibInterpreterStateNP.stackTrace.t.sol | 2 +- test/utils/TestERC20.sol | 2 +- 285 files changed, 285 insertions(+), 285 deletions(-) diff --git a/REUSE.toml b/REUSE.toml index 08e4a693a..80fac5bc2 100644 --- a/REUSE.toml +++ b/REUSE.toml @@ -17,5 +17,5 @@ path = [ "slither.config.json", "REUSE.toml" ] -SPDX-FileCopyrightText = "Copyright (c) 2020 thedavidmeister" +SPDX-FileCopyrightText = "Copyright (c) 2020 Rain Open Source Software Ltd" SPDX-License-Identifier = "LicenseRef-DCL-1.0" diff --git a/script/BuildAuthoringMeta.sol b/script/BuildAuthoringMeta.sol index c6202ecb5..1ac067305 100644 --- a/script/BuildAuthoringMeta.sol +++ b/script/BuildAuthoringMeta.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Script} from "forge-std/Script.sol"; diff --git a/script/BuildPointers.sol b/script/BuildPointers.sol index cf881ff00..a74b07e83 100644 --- a/script/BuildPointers.sol +++ b/script/BuildPointers.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Script} from "forge-std/Script.sol"; diff --git a/script/Deploy.sol b/script/Deploy.sol index 0a69a9e58..509969cca 100644 --- a/script/Deploy.sol +++ b/script/Deploy.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Script} from "forge-std/Script.sol"; diff --git a/src/abstract/BaseRainterpreterExternNPE2.sol b/src/abstract/BaseRainterpreterExternNPE2.sol index ed2a79b59..6762e9dd5 100644 --- a/src/abstract/BaseRainterpreterExternNPE2.sol +++ b/src/abstract/BaseRainterpreterExternNPE2.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {ERC165} from "openzeppelin-contracts/contracts/utils/introspection/ERC165.sol"; diff --git a/src/abstract/BaseRainterpreterSubParserNPE2.sol b/src/abstract/BaseRainterpreterSubParserNPE2.sol index 3718231bd..5ae3faad6 100644 --- a/src/abstract/BaseRainterpreterSubParserNPE2.sol +++ b/src/abstract/BaseRainterpreterSubParserNPE2.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {ERC165} from "openzeppelin-contracts/contracts/utils/introspection/ERC165.sol"; diff --git a/src/concrete/RainterpreterExpressionDeployerNPE2.sol b/src/concrete/RainterpreterExpressionDeployerNPE2.sol index 77394565e..e7c393fea 100644 --- a/src/concrete/RainterpreterExpressionDeployerNPE2.sol +++ b/src/concrete/RainterpreterExpressionDeployerNPE2.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {ERC165, IERC165} from "openzeppelin-contracts/contracts/utils/introspection/ERC165.sol"; diff --git a/src/concrete/RainterpreterNPE2.sol b/src/concrete/RainterpreterNPE2.sol index d09df9ec3..796b66a2d 100644 --- a/src/concrete/RainterpreterNPE2.sol +++ b/src/concrete/RainterpreterNPE2.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {ERC165} from "openzeppelin-contracts/contracts/utils/introspection/ERC165.sol"; diff --git a/src/concrete/RainterpreterParserNPE2.sol b/src/concrete/RainterpreterParserNPE2.sol index 089f5e4c8..dddd8cd11 100644 --- a/src/concrete/RainterpreterParserNPE2.sol +++ b/src/concrete/RainterpreterParserNPE2.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {IERC165, ERC165} from "openzeppelin-contracts/contracts/utils/introspection/ERC165.sol"; diff --git a/src/concrete/RainterpreterStoreNPE2.sol b/src/concrete/RainterpreterStoreNPE2.sol index 03ced915f..e579acc1f 100644 --- a/src/concrete/RainterpreterStoreNPE2.sol +++ b/src/concrete/RainterpreterStoreNPE2.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {ERC165} from "openzeppelin-contracts/contracts/utils/introspection/ERC165.sol"; diff --git a/src/concrete/extern/RainterpreterReferenceExternNPE2.sol b/src/concrete/extern/RainterpreterReferenceExternNPE2.sol index 018db81f5..0567faae7 100644 --- a/src/concrete/extern/RainterpreterReferenceExternNPE2.sol +++ b/src/concrete/extern/RainterpreterReferenceExternNPE2.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {LibConvert} from "rain.lib.typecast/LibConvert.sol"; diff --git a/src/error/ErrBitwise.sol b/src/error/ErrBitwise.sol index fcd647df2..d8e66d8cf 100644 --- a/src/error/ErrBitwise.sol +++ b/src/error/ErrBitwise.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; /// @dev Workaround for https://github.com/foundry-rs/foundry/issues/6572 diff --git a/src/error/ErrDeploy.sol b/src/error/ErrDeploy.sol index 80cbdb465..e0c280aa7 100644 --- a/src/error/ErrDeploy.sol +++ b/src/error/ErrDeploy.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.19; /// @dev Workaround for https://github.com/foundry-rs/foundry/issues/6572 diff --git a/src/error/ErrExtern.sol b/src/error/ErrExtern.sol index d698952fa..42c211052 100644 --- a/src/error/ErrExtern.sol +++ b/src/error/ErrExtern.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; /// @dev Workaround for https://github.com/foundry-rs/foundry/issues/6572 diff --git a/src/error/ErrIntegrity.sol b/src/error/ErrIntegrity.sol index a73fe4629..bf34382af 100644 --- a/src/error/ErrIntegrity.sol +++ b/src/error/ErrIntegrity.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.19; /// @dev There are more entrypoints defined by the minimum stack outputs than diff --git a/src/error/ErrOpList.sol b/src/error/ErrOpList.sol index f740e7c81..dfb01374c 100644 --- a/src/error/ErrOpList.sol +++ b/src/error/ErrOpList.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.19; /// @dev Workaround for https://github.com/foundry-rs/foundry/issues/6572 diff --git a/src/error/ErrParse.sol b/src/error/ErrParse.sol index ed1f75bc8..bcb1d836f 100644 --- a/src/error/ErrParse.sol +++ b/src/error/ErrParse.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; /// @dev Workaround for https://github.com/foundry-rs/foundry/issues/6572 diff --git a/src/error/ErrSubParse.sol b/src/error/ErrSubParse.sol index 0c4b67f96..e9ce2e401 100644 --- a/src/error/ErrSubParse.sol +++ b/src/error/ErrSubParse.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; /// @dev When a subparser is not compatible with the main parser it MUST error diff --git a/src/generated/RainterpreterExpressionDeployerNPE2.pointers.sol b/src/generated/RainterpreterExpressionDeployerNPE2.pointers.sol index 5c100eac1..8faf14e83 100644 --- a/src/generated/RainterpreterExpressionDeployerNPE2.pointers.sol +++ b/src/generated/RainterpreterExpressionDeployerNPE2.pointers.sol @@ -6,7 +6,7 @@ // file needs the contract to exist so that it can be compiled. // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; /// @dev Hash of the known bytecode. diff --git a/src/generated/RainterpreterNPE2.pointers.sol b/src/generated/RainterpreterNPE2.pointers.sol index d65c41468..4e68b2c34 100644 --- a/src/generated/RainterpreterNPE2.pointers.sol +++ b/src/generated/RainterpreterNPE2.pointers.sol @@ -6,7 +6,7 @@ // file needs the contract to exist so that it can be compiled. // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; /// @dev Hash of the known bytecode. diff --git a/src/generated/RainterpreterParserNPE2.pointers.sol b/src/generated/RainterpreterParserNPE2.pointers.sol index 7330deefb..2f323cb8c 100644 --- a/src/generated/RainterpreterParserNPE2.pointers.sol +++ b/src/generated/RainterpreterParserNPE2.pointers.sol @@ -6,7 +6,7 @@ // file needs the contract to exist so that it can be compiled. // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; /// @dev Hash of the known bytecode. diff --git a/src/generated/RainterpreterReferenceExternNPE2.pointers.sol b/src/generated/RainterpreterReferenceExternNPE2.pointers.sol index 4f8160cb5..8bf90fb90 100644 --- a/src/generated/RainterpreterReferenceExternNPE2.pointers.sol +++ b/src/generated/RainterpreterReferenceExternNPE2.pointers.sol @@ -6,7 +6,7 @@ // file needs the contract to exist so that it can be compiled. // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; /// @dev Hash of the known bytecode. diff --git a/src/generated/RainterpreterStoreNPE2.pointers.sol b/src/generated/RainterpreterStoreNPE2.pointers.sol index 8d8636cc2..b74f895f5 100644 --- a/src/generated/RainterpreterStoreNPE2.pointers.sol +++ b/src/generated/RainterpreterStoreNPE2.pointers.sol @@ -6,7 +6,7 @@ // file needs the contract to exist so that it can be compiled. // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; /// @dev Hash of the known bytecode. diff --git a/src/lib/constants/ExpressionDeployerNPConstants.sol b/src/lib/constants/ExpressionDeployerNPConstants.sol index 904963ee2..ba2225edd 100644 --- a/src/lib/constants/ExpressionDeployerNPConstants.sol +++ b/src/lib/constants/ExpressionDeployerNPConstants.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; string constant EXPRESSION_DEPLOYER_NP_META_PATH = "meta/RainterpreterExpressionDeployerNPE2.rain.meta"; diff --git a/src/lib/eval/LibEvalNP.sol b/src/lib/eval/LibEvalNP.sol index 1702ea6f1..432cd6c16 100644 --- a/src/lib/eval/LibEvalNP.sol +++ b/src/lib/eval/LibEvalNP.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {LibInterpreterStateNP, InterpreterStateNP} from "../state/LibInterpreterStateNP.sol"; diff --git a/src/lib/extern/LibExtern.sol b/src/lib/extern/LibExtern.sol index f6c221766..dd97f9b64 100644 --- a/src/lib/extern/LibExtern.sol +++ b/src/lib/extern/LibExtern.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; diff --git a/src/lib/extern/reference/literal/LibParseLiteralRepeat.sol b/src/lib/extern/reference/literal/LibParseLiteralRepeat.sol index 0b015dc05..82fa01f48 100644 --- a/src/lib/extern/reference/literal/LibParseLiteralRepeat.sol +++ b/src/lib/extern/reference/literal/LibParseLiteralRepeat.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.25; import {LibParseLiteralDecimal} from "../../../parse/literal/LibParseLiteralDecimal.sol"; diff --git a/src/lib/extern/reference/op/LibExternOpContextCallingContractNPE2.sol b/src/lib/extern/reference/op/LibExternOpContextCallingContractNPE2.sol index fa1a8bf3c..f2bbb2d24 100644 --- a/src/lib/extern/reference/op/LibExternOpContextCallingContractNPE2.sol +++ b/src/lib/extern/reference/op/LibExternOpContextCallingContractNPE2.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.25; import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; diff --git a/src/lib/extern/reference/op/LibExternOpContextRainlenNPE2.sol b/src/lib/extern/reference/op/LibExternOpContextRainlenNPE2.sol index 4634cb5e9..198934749 100644 --- a/src/lib/extern/reference/op/LibExternOpContextRainlenNPE2.sol +++ b/src/lib/extern/reference/op/LibExternOpContextRainlenNPE2.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.25; import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; diff --git a/src/lib/extern/reference/op/LibExternOpContextSenderNPE2.sol b/src/lib/extern/reference/op/LibExternOpContextSenderNPE2.sol index 194e555ed..b8c1f7f7b 100644 --- a/src/lib/extern/reference/op/LibExternOpContextSenderNPE2.sol +++ b/src/lib/extern/reference/op/LibExternOpContextSenderNPE2.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.25; import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; diff --git a/src/lib/extern/reference/op/LibExternOpIntIncNPE2.sol b/src/lib/extern/reference/op/LibExternOpIntIncNPE2.sol index f6972e9a3..3f814a563 100644 --- a/src/lib/extern/reference/op/LibExternOpIntIncNPE2.sol +++ b/src/lib/extern/reference/op/LibExternOpIntIncNPE2.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.25; import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; diff --git a/src/lib/extern/reference/op/LibExternOpStackOperandNPE2.sol b/src/lib/extern/reference/op/LibExternOpStackOperandNPE2.sol index 60ac62b14..7c6a3130e 100644 --- a/src/lib/extern/reference/op/LibExternOpStackOperandNPE2.sol +++ b/src/lib/extern/reference/op/LibExternOpStackOperandNPE2.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.25; import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; diff --git a/src/lib/integrity/LibIntegrityCheckNP.sol b/src/lib/integrity/LibIntegrityCheckNP.sol index d0bd37623..7ebd2fdb3 100644 --- a/src/lib/integrity/LibIntegrityCheckNP.sol +++ b/src/lib/integrity/LibIntegrityCheckNP.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.19; import {Pointer} from "rain.solmem/lib/LibPointer.sol"; diff --git a/src/lib/op/00/LibOpConstantNP.sol b/src/lib/op/00/LibOpConstantNP.sol index c470e0a7e..881abd7d9 100644 --- a/src/lib/op/00/LibOpConstantNP.sol +++ b/src/lib/op/00/LibOpConstantNP.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {IntegrityCheckStateNP} from "../../integrity/LibIntegrityCheckNP.sol"; diff --git a/src/lib/op/00/LibOpContextNP.sol b/src/lib/op/00/LibOpContextNP.sol index 0517f52cc..ab710026c 100644 --- a/src/lib/op/00/LibOpContextNP.sol +++ b/src/lib/op/00/LibOpContextNP.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {Pointer} from "rain.solmem/lib/LibPointer.sol"; diff --git a/src/lib/op/00/LibOpExternNP.sol b/src/lib/op/00/LibOpExternNP.sol index dc0e3185d..f5a9da20f 100644 --- a/src/lib/op/00/LibOpExternNP.sol +++ b/src/lib/op/00/LibOpExternNP.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {NotAnExternContract} from "../../../error/ErrExtern.sol"; diff --git a/src/lib/op/00/LibOpStackNP.sol b/src/lib/op/00/LibOpStackNP.sol index 99043b64d..6f8364201 100644 --- a/src/lib/op/00/LibOpStackNP.sol +++ b/src/lib/op/00/LibOpStackNP.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {Pointer} from "rain.solmem/lib/LibPointer.sol"; diff --git a/src/lib/op/LibAllStandardOpsNP.sol b/src/lib/op/LibAllStandardOpsNP.sol index bf682b0d7..98898c540 100644 --- a/src/lib/op/LibAllStandardOpsNP.sol +++ b/src/lib/op/LibAllStandardOpsNP.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.19; import {BadDynamicLength} from "../../error/ErrOpList.sol"; diff --git a/src/lib/op/bitwise/LibOpBitwiseAndNP.sol b/src/lib/op/bitwise/LibOpBitwiseAndNP.sol index d77c614a0..58b4273b6 100644 --- a/src/lib/op/bitwise/LibOpBitwiseAndNP.sol +++ b/src/lib/op/bitwise/LibOpBitwiseAndNP.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {IntegrityCheckStateNP} from "../../integrity/LibIntegrityCheckNP.sol"; diff --git a/src/lib/op/bitwise/LibOpBitwiseOrNP.sol b/src/lib/op/bitwise/LibOpBitwiseOrNP.sol index 28a705f78..f4373a291 100644 --- a/src/lib/op/bitwise/LibOpBitwiseOrNP.sol +++ b/src/lib/op/bitwise/LibOpBitwiseOrNP.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {IntegrityCheckStateNP} from "../../integrity/LibIntegrityCheckNP.sol"; diff --git a/src/lib/op/bitwise/LibOpCtPopNP.sol b/src/lib/op/bitwise/LibOpCtPopNP.sol index 6f3e88e0b..5bca92a2e 100644 --- a/src/lib/op/bitwise/LibOpCtPopNP.sol +++ b/src/lib/op/bitwise/LibOpCtPopNP.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {Pointer} from "rain.solmem/lib/LibPointer.sol"; diff --git a/src/lib/op/bitwise/LibOpDecodeBitsNP.sol b/src/lib/op/bitwise/LibOpDecodeBitsNP.sol index a414e31e4..f64b83d33 100644 --- a/src/lib/op/bitwise/LibOpDecodeBitsNP.sol +++ b/src/lib/op/bitwise/LibOpDecodeBitsNP.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {IntegrityCheckStateNP} from "../../integrity/LibIntegrityCheckNP.sol"; diff --git a/src/lib/op/bitwise/LibOpEncodeBitsNP.sol b/src/lib/op/bitwise/LibOpEncodeBitsNP.sol index 180e3379a..4b630e066 100644 --- a/src/lib/op/bitwise/LibOpEncodeBitsNP.sol +++ b/src/lib/op/bitwise/LibOpEncodeBitsNP.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {ZeroLengthBitwiseEncoding, TruncatedBitwiseEncoding} from "../../../error/ErrBitwise.sol"; diff --git a/src/lib/op/bitwise/LibOpShiftBitsLeftNP.sol b/src/lib/op/bitwise/LibOpShiftBitsLeftNP.sol index 98033bddc..fa96803b5 100644 --- a/src/lib/op/bitwise/LibOpShiftBitsLeftNP.sol +++ b/src/lib/op/bitwise/LibOpShiftBitsLeftNP.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {IntegrityCheckStateNP} from "../../integrity/LibIntegrityCheckNP.sol"; diff --git a/src/lib/op/bitwise/LibOpShiftBitsRightNP.sol b/src/lib/op/bitwise/LibOpShiftBitsRightNP.sol index 9ede08966..de5625612 100644 --- a/src/lib/op/bitwise/LibOpShiftBitsRightNP.sol +++ b/src/lib/op/bitwise/LibOpShiftBitsRightNP.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {IntegrityCheckStateNP} from "../../integrity/LibIntegrityCheckNP.sol"; diff --git a/src/lib/op/call/LibOpCallNP.sol b/src/lib/op/call/LibOpCallNP.sol index b45d7a3e2..752fd8afd 100644 --- a/src/lib/op/call/LibOpCallNP.sol +++ b/src/lib/op/call/LibOpCallNP.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; diff --git a/src/lib/op/crypto/LibOpHashNP.sol b/src/lib/op/crypto/LibOpHashNP.sol index 19718ddae..a55805cd7 100644 --- a/src/lib/op/crypto/LibOpHashNP.sol +++ b/src/lib/op/crypto/LibOpHashNP.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {Pointer} from "rain.solmem/lib/LibPointer.sol"; diff --git a/src/lib/op/erc20/LibOpERC20Allowance.sol b/src/lib/op/erc20/LibOpERC20Allowance.sol index d5db0f056..a677274a9 100644 --- a/src/lib/op/erc20/LibOpERC20Allowance.sol +++ b/src/lib/op/erc20/LibOpERC20Allowance.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {IERC20} from "openzeppelin-contracts/contracts/token/ERC20/IERC20.sol"; diff --git a/src/lib/op/erc20/LibOpERC20BalanceOf.sol b/src/lib/op/erc20/LibOpERC20BalanceOf.sol index 9b61b755c..26f3a4680 100644 --- a/src/lib/op/erc20/LibOpERC20BalanceOf.sol +++ b/src/lib/op/erc20/LibOpERC20BalanceOf.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {IERC20} from "openzeppelin-contracts/contracts/token/ERC20/IERC20.sol"; diff --git a/src/lib/op/erc20/LibOpERC20TotalSupply.sol b/src/lib/op/erc20/LibOpERC20TotalSupply.sol index acfc4ad06..33b2ed205 100644 --- a/src/lib/op/erc20/LibOpERC20TotalSupply.sol +++ b/src/lib/op/erc20/LibOpERC20TotalSupply.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.25; import {IERC20} from "openzeppelin-contracts/contracts/interfaces/IERC20.sol"; diff --git a/src/lib/op/erc20/uint256/LibOpUint256ERC20Allowance.sol b/src/lib/op/erc20/uint256/LibOpUint256ERC20Allowance.sol index 2fc906aba..0d22f62e7 100644 --- a/src/lib/op/erc20/uint256/LibOpUint256ERC20Allowance.sol +++ b/src/lib/op/erc20/uint256/LibOpUint256ERC20Allowance.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {IERC20} from "openzeppelin-contracts/contracts/token/ERC20/IERC20.sol"; diff --git a/src/lib/op/erc20/uint256/LibOpUint256ERC20BalanceOf.sol b/src/lib/op/erc20/uint256/LibOpUint256ERC20BalanceOf.sol index 121e0f951..be8606424 100644 --- a/src/lib/op/erc20/uint256/LibOpUint256ERC20BalanceOf.sol +++ b/src/lib/op/erc20/uint256/LibOpUint256ERC20BalanceOf.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {IERC20} from "openzeppelin-contracts/contracts/token/ERC20/IERC20.sol"; diff --git a/src/lib/op/erc20/uint256/LibOpUint256ERC20TotalSupply.sol b/src/lib/op/erc20/uint256/LibOpUint256ERC20TotalSupply.sol index 7a05a2927..544e5bf64 100644 --- a/src/lib/op/erc20/uint256/LibOpUint256ERC20TotalSupply.sol +++ b/src/lib/op/erc20/uint256/LibOpUint256ERC20TotalSupply.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.25; import {IERC20} from "openzeppelin-contracts/contracts/interfaces/IERC20.sol"; diff --git a/src/lib/op/erc5313/LibOpERC5313OwnerNP.sol b/src/lib/op/erc5313/LibOpERC5313OwnerNP.sol index ee04f49dd..59638fb70 100644 --- a/src/lib/op/erc5313/LibOpERC5313OwnerNP.sol +++ b/src/lib/op/erc5313/LibOpERC5313OwnerNP.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.25; import {IERC5313} from "openzeppelin-contracts/contracts/interfaces/IERC5313.sol"; diff --git a/src/lib/op/erc721/LibOpERC721OwnerOf.sol b/src/lib/op/erc721/LibOpERC721OwnerOf.sol index f8c220774..9df7b54bd 100644 --- a/src/lib/op/erc721/LibOpERC721OwnerOf.sol +++ b/src/lib/op/erc721/LibOpERC721OwnerOf.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {IERC721} from "openzeppelin-contracts/contracts/token/ERC721/IERC721.sol"; diff --git a/src/lib/op/erc721/uint256/LibOpUint256ERC721BalanceOf.sol b/src/lib/op/erc721/uint256/LibOpUint256ERC721BalanceOf.sol index 57eb46379..b6498da99 100644 --- a/src/lib/op/erc721/uint256/LibOpUint256ERC721BalanceOf.sol +++ b/src/lib/op/erc721/uint256/LibOpUint256ERC721BalanceOf.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {IERC721} from "openzeppelin-contracts/contracts/token/ERC721/IERC721.sol"; diff --git a/src/lib/op/evm/LibOpBlockNumberNP.sol b/src/lib/op/evm/LibOpBlockNumberNP.sol index d6f5ff06d..fdceed0db 100644 --- a/src/lib/op/evm/LibOpBlockNumberNP.sol +++ b/src/lib/op/evm/LibOpBlockNumberNP.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {Pointer} from "rain.solmem/lib/LibPointer.sol"; diff --git a/src/lib/op/evm/LibOpChainIdNP.sol b/src/lib/op/evm/LibOpChainIdNP.sol index d73db3fbe..ad6cb7cf8 100644 --- a/src/lib/op/evm/LibOpChainIdNP.sol +++ b/src/lib/op/evm/LibOpChainIdNP.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {Pointer} from "rain.solmem/lib/LibPointer.sol"; diff --git a/src/lib/op/evm/LibOpMaxUint256NP.sol b/src/lib/op/evm/LibOpMaxUint256NP.sol index 60d3336cd..cd2f4e672 100644 --- a/src/lib/op/evm/LibOpMaxUint256NP.sol +++ b/src/lib/op/evm/LibOpMaxUint256NP.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {IntegrityCheckStateNP} from "../../integrity/LibIntegrityCheckNP.sol"; diff --git a/src/lib/op/evm/LibOpTimestampNP.sol b/src/lib/op/evm/LibOpTimestampNP.sol index d3e41b30f..d6aebc83c 100644 --- a/src/lib/op/evm/LibOpTimestampNP.sol +++ b/src/lib/op/evm/LibOpTimestampNP.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {IntegrityCheckStateNP} from "../../integrity/LibIntegrityCheckNP.sol"; diff --git a/src/lib/op/logic/LibOpAnyNP.sol b/src/lib/op/logic/LibOpAnyNP.sol index 94ce1c921..b4b807b18 100644 --- a/src/lib/op/logic/LibOpAnyNP.sol +++ b/src/lib/op/logic/LibOpAnyNP.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; diff --git a/src/lib/op/logic/LibOpConditionsNP.sol b/src/lib/op/logic/LibOpConditionsNP.sol index 78b19e853..98303051c 100644 --- a/src/lib/op/logic/LibOpConditionsNP.sol +++ b/src/lib/op/logic/LibOpConditionsNP.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; diff --git a/src/lib/op/logic/LibOpEnsureNP.sol b/src/lib/op/logic/LibOpEnsureNP.sol index dfd5ae499..37cd64ea3 100644 --- a/src/lib/op/logic/LibOpEnsureNP.sol +++ b/src/lib/op/logic/LibOpEnsureNP.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {Pointer} from "rain.solmem/lib/LibPointer.sol"; diff --git a/src/lib/op/logic/LibOpEqualToNP.sol b/src/lib/op/logic/LibOpEqualToNP.sol index 23512d166..2cecba012 100644 --- a/src/lib/op/logic/LibOpEqualToNP.sol +++ b/src/lib/op/logic/LibOpEqualToNP.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; diff --git a/src/lib/op/logic/LibOpEveryNP.sol b/src/lib/op/logic/LibOpEveryNP.sol index dfda0fa8e..3c8eed7f7 100644 --- a/src/lib/op/logic/LibOpEveryNP.sol +++ b/src/lib/op/logic/LibOpEveryNP.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {Pointer} from "rain.solmem/lib/LibPointer.sol"; diff --git a/src/lib/op/logic/LibOpGreaterThanNP.sol b/src/lib/op/logic/LibOpGreaterThanNP.sol index d09f9c453..dd71042b8 100644 --- a/src/lib/op/logic/LibOpGreaterThanNP.sol +++ b/src/lib/op/logic/LibOpGreaterThanNP.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; diff --git a/src/lib/op/logic/LibOpGreaterThanOrEqualToNP.sol b/src/lib/op/logic/LibOpGreaterThanOrEqualToNP.sol index 03b451f2a..777edb5d5 100644 --- a/src/lib/op/logic/LibOpGreaterThanOrEqualToNP.sol +++ b/src/lib/op/logic/LibOpGreaterThanOrEqualToNP.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; diff --git a/src/lib/op/logic/LibOpIfNP.sol b/src/lib/op/logic/LibOpIfNP.sol index ee00f9941..844f78edb 100644 --- a/src/lib/op/logic/LibOpIfNP.sol +++ b/src/lib/op/logic/LibOpIfNP.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; diff --git a/src/lib/op/logic/LibOpIsZeroNP.sol b/src/lib/op/logic/LibOpIsZeroNP.sol index 55edfeffa..f942aa3e5 100644 --- a/src/lib/op/logic/LibOpIsZeroNP.sol +++ b/src/lib/op/logic/LibOpIsZeroNP.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; diff --git a/src/lib/op/logic/LibOpLessThanNP.sol b/src/lib/op/logic/LibOpLessThanNP.sol index b0c6c72dc..a19464974 100644 --- a/src/lib/op/logic/LibOpLessThanNP.sol +++ b/src/lib/op/logic/LibOpLessThanNP.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; diff --git a/src/lib/op/logic/LibOpLessThanOrEqualToNP.sol b/src/lib/op/logic/LibOpLessThanOrEqualToNP.sol index 295b4639d..73381d2d9 100644 --- a/src/lib/op/logic/LibOpLessThanOrEqualToNP.sol +++ b/src/lib/op/logic/LibOpLessThanOrEqualToNP.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; diff --git a/src/lib/op/math/LibOpAdd.sol b/src/lib/op/math/LibOpAdd.sol index 46f26c861..aba0154a3 100644 --- a/src/lib/op/math/LibOpAdd.sol +++ b/src/lib/op/math/LibOpAdd.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; diff --git a/src/lib/op/math/LibOpAvg.sol b/src/lib/op/math/LibOpAvg.sol index 68ed2c5d8..0a72ebf2b 100644 --- a/src/lib/op/math/LibOpAvg.sol +++ b/src/lib/op/math/LibOpAvg.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {UD60x18, avg} from "prb-math/UD60x18.sol"; diff --git a/src/lib/op/math/LibOpCeil.sol b/src/lib/op/math/LibOpCeil.sol index 622b826b9..0a9356c79 100644 --- a/src/lib/op/math/LibOpCeil.sol +++ b/src/lib/op/math/LibOpCeil.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {UD60x18, ceil} from "prb-math/UD60x18.sol"; diff --git a/src/lib/op/math/LibOpDiv.sol b/src/lib/op/math/LibOpDiv.sol index 9d901ee3b..0c86d1174 100644 --- a/src/lib/op/math/LibOpDiv.sol +++ b/src/lib/op/math/LibOpDiv.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; /// Used for reference implementation so that we have two independent diff --git a/src/lib/op/math/LibOpE.sol b/src/lib/op/math/LibOpE.sol index 00e157616..ce982722b 100644 --- a/src/lib/op/math/LibOpE.sol +++ b/src/lib/op/math/LibOpE.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {Pointer} from "rain.solmem/lib/LibPointer.sol"; diff --git a/src/lib/op/math/LibOpExp.sol b/src/lib/op/math/LibOpExp.sol index d8f4fac35..1a27d0921 100644 --- a/src/lib/op/math/LibOpExp.sol +++ b/src/lib/op/math/LibOpExp.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {UD60x18, exp} from "prb-math/UD60x18.sol"; diff --git a/src/lib/op/math/LibOpExp2.sol b/src/lib/op/math/LibOpExp2.sol index 14aadc7e3..db882e2c3 100644 --- a/src/lib/op/math/LibOpExp2.sol +++ b/src/lib/op/math/LibOpExp2.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {UD60x18, exp2} from "prb-math/UD60x18.sol"; diff --git a/src/lib/op/math/LibOpFloor.sol b/src/lib/op/math/LibOpFloor.sol index 0a7dcc9ae..77fcbd27a 100644 --- a/src/lib/op/math/LibOpFloor.sol +++ b/src/lib/op/math/LibOpFloor.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {UD60x18, floor} from "prb-math/UD60x18.sol"; diff --git a/src/lib/op/math/LibOpFrac.sol b/src/lib/op/math/LibOpFrac.sol index 234db211f..4aa194bc1 100644 --- a/src/lib/op/math/LibOpFrac.sol +++ b/src/lib/op/math/LibOpFrac.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {UD60x18, frac} from "prb-math/UD60x18.sol"; diff --git a/src/lib/op/math/LibOpGm.sol b/src/lib/op/math/LibOpGm.sol index 63162d585..a7c1795fd 100644 --- a/src/lib/op/math/LibOpGm.sol +++ b/src/lib/op/math/LibOpGm.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {UD60x18, gm} from "prb-math/UD60x18.sol"; diff --git a/src/lib/op/math/LibOpHeadroom.sol b/src/lib/op/math/LibOpHeadroom.sol index 2782e065a..41da4c885 100644 --- a/src/lib/op/math/LibOpHeadroom.sol +++ b/src/lib/op/math/LibOpHeadroom.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {UD60x18, frac} from "prb-math/UD60x18.sol"; diff --git a/src/lib/op/math/LibOpInv.sol b/src/lib/op/math/LibOpInv.sol index 24d56a3b5..6501e730d 100644 --- a/src/lib/op/math/LibOpInv.sol +++ b/src/lib/op/math/LibOpInv.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {UD60x18, inv} from "prb-math/UD60x18.sol"; diff --git a/src/lib/op/math/LibOpLn.sol b/src/lib/op/math/LibOpLn.sol index 5433bae13..74e3e9081 100644 --- a/src/lib/op/math/LibOpLn.sol +++ b/src/lib/op/math/LibOpLn.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {UD60x18, ln} from "prb-math/UD60x18.sol"; diff --git a/src/lib/op/math/LibOpLog10.sol b/src/lib/op/math/LibOpLog10.sol index 45fd11b07..72a48472f 100644 --- a/src/lib/op/math/LibOpLog10.sol +++ b/src/lib/op/math/LibOpLog10.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {UD60x18, log10} from "prb-math/UD60x18.sol"; diff --git a/src/lib/op/math/LibOpLog2.sol b/src/lib/op/math/LibOpLog2.sol index 803b4e3be..757007768 100644 --- a/src/lib/op/math/LibOpLog2.sol +++ b/src/lib/op/math/LibOpLog2.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {UD60x18, log2} from "prb-math/UD60x18.sol"; diff --git a/src/lib/op/math/LibOpMax.sol b/src/lib/op/math/LibOpMax.sol index 48bb2c434..d35b620cf 100644 --- a/src/lib/op/math/LibOpMax.sol +++ b/src/lib/op/math/LibOpMax.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; diff --git a/src/lib/op/math/LibOpMin.sol b/src/lib/op/math/LibOpMin.sol index ca161b8c7..52a6da78a 100644 --- a/src/lib/op/math/LibOpMin.sol +++ b/src/lib/op/math/LibOpMin.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; diff --git a/src/lib/op/math/LibOpMod.sol b/src/lib/op/math/LibOpMod.sol index c3708fc19..97b67124e 100644 --- a/src/lib/op/math/LibOpMod.sol +++ b/src/lib/op/math/LibOpMod.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; diff --git a/src/lib/op/math/LibOpMul.sol b/src/lib/op/math/LibOpMul.sol index 6d94cfaa9..c453efbc7 100644 --- a/src/lib/op/math/LibOpMul.sol +++ b/src/lib/op/math/LibOpMul.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; /// Used for reference implementation so that we have two independent diff --git a/src/lib/op/math/LibOpPow.sol b/src/lib/op/math/LibOpPow.sol index 11850c382..b9b90e837 100644 --- a/src/lib/op/math/LibOpPow.sol +++ b/src/lib/op/math/LibOpPow.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {UD60x18, pow} from "prb-math/UD60x18.sol"; diff --git a/src/lib/op/math/LibOpScale18.sol b/src/lib/op/math/LibOpScale18.sol index a636168d1..1f8c65dab 100644 --- a/src/lib/op/math/LibOpScale18.sol +++ b/src/lib/op/math/LibOpScale18.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {LibFixedPointDecimalScale} from "rain.math.fixedpoint/lib/LibFixedPointDecimalScale.sol"; diff --git a/src/lib/op/math/LibOpScale18Dynamic.sol b/src/lib/op/math/LibOpScale18Dynamic.sol index 4c59f363b..f68d4e852 100644 --- a/src/lib/op/math/LibOpScale18Dynamic.sol +++ b/src/lib/op/math/LibOpScale18Dynamic.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {LibFixedPointDecimalScale, DECIMAL_MAX_SAFE_INT} from "rain.math.fixedpoint/lib/LibFixedPointDecimalScale.sol"; diff --git a/src/lib/op/math/LibOpScaleN.sol b/src/lib/op/math/LibOpScaleN.sol index 99882cf48..f7ab17bae 100644 --- a/src/lib/op/math/LibOpScaleN.sol +++ b/src/lib/op/math/LibOpScaleN.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {LibFixedPointDecimalScale} from "rain.math.fixedpoint/lib/LibFixedPointDecimalScale.sol"; diff --git a/src/lib/op/math/LibOpScaleNDynamic.sol b/src/lib/op/math/LibOpScaleNDynamic.sol index 91acde873..d0349d65a 100644 --- a/src/lib/op/math/LibOpScaleNDynamic.sol +++ b/src/lib/op/math/LibOpScaleNDynamic.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; diff --git a/src/lib/op/math/LibOpSnapToUnit.sol b/src/lib/op/math/LibOpSnapToUnit.sol index c00ef90f3..ac04f7411 100644 --- a/src/lib/op/math/LibOpSnapToUnit.sol +++ b/src/lib/op/math/LibOpSnapToUnit.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {InterpreterStateNP} from "../../state/LibInterpreterStateNP.sol"; diff --git a/src/lib/op/math/LibOpSqrt.sol b/src/lib/op/math/LibOpSqrt.sol index 2c5b39d3e..8e8f8ccc0 100644 --- a/src/lib/op/math/LibOpSqrt.sol +++ b/src/lib/op/math/LibOpSqrt.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {UD60x18, sqrt} from "prb-math/UD60x18.sol"; diff --git a/src/lib/op/math/LibOpSub.sol b/src/lib/op/math/LibOpSub.sol index a52c4ccbc..f6982814e 100644 --- a/src/lib/op/math/LibOpSub.sol +++ b/src/lib/op/math/LibOpSub.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; diff --git a/src/lib/op/math/growth/LibOpExponentialGrowth.sol b/src/lib/op/math/growth/LibOpExponentialGrowth.sol index bfb26658b..afbeca5de 100644 --- a/src/lib/op/math/growth/LibOpExponentialGrowth.sol +++ b/src/lib/op/math/growth/LibOpExponentialGrowth.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {UD60x18, mul, pow} from "prb-math/UD60x18.sol"; diff --git a/src/lib/op/math/growth/LibOpLinearGrowth.sol b/src/lib/op/math/growth/LibOpLinearGrowth.sol index 2d9a4bc08..d3450753c 100644 --- a/src/lib/op/math/growth/LibOpLinearGrowth.sol +++ b/src/lib/op/math/growth/LibOpLinearGrowth.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {UD60x18, mul, add} from "prb-math/UD60x18.sol"; diff --git a/src/lib/op/math/uint256/LibOpUint256Div.sol b/src/lib/op/math/uint256/LibOpUint256Div.sol index 4f1a4e58c..e60a781ed 100644 --- a/src/lib/op/math/uint256/LibOpUint256Div.sol +++ b/src/lib/op/math/uint256/LibOpUint256Div.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; diff --git a/src/lib/op/math/uint256/LibOpUint256Mul.sol b/src/lib/op/math/uint256/LibOpUint256Mul.sol index 20659462c..a6930c6ce 100644 --- a/src/lib/op/math/uint256/LibOpUint256Mul.sol +++ b/src/lib/op/math/uint256/LibOpUint256Mul.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; diff --git a/src/lib/op/math/uint256/LibOpUint256Pow.sol b/src/lib/op/math/uint256/LibOpUint256Pow.sol index 211072178..2fd76c5f7 100644 --- a/src/lib/op/math/uint256/LibOpUint256Pow.sol +++ b/src/lib/op/math/uint256/LibOpUint256Pow.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; diff --git a/src/lib/op/store/LibOpGetNP.sol b/src/lib/op/store/LibOpGetNP.sol index 11df11c4c..39026a294 100644 --- a/src/lib/op/store/LibOpGetNP.sol +++ b/src/lib/op/store/LibOpGetNP.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {MemoryKVKey, MemoryKVVal, MemoryKV, LibMemoryKV} from "rain.lib.memkv/lib/LibMemoryKV.sol"; diff --git a/src/lib/op/store/LibOpSetNP.sol b/src/lib/op/store/LibOpSetNP.sol index cad393fb1..c4f50c8f9 100644 --- a/src/lib/op/store/LibOpSetNP.sol +++ b/src/lib/op/store/LibOpSetNP.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {MemoryKV, MemoryKVKey, MemoryKVVal, LibMemoryKV} from "rain.lib.memkv/lib/LibMemoryKV.sol"; diff --git a/src/lib/parse/LibParse.sol b/src/lib/parse/LibParse.sol index a575c50b4..3cbdb18b9 100644 --- a/src/lib/parse/LibParse.sol +++ b/src/lib/parse/LibParse.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {LibPointer, Pointer} from "rain.solmem/lib/LibPointer.sol"; diff --git a/src/lib/parse/LibParseCMask.sol b/src/lib/parse/LibParseCMask.sol index 6655d4fb4..e9e933a42 100644 --- a/src/lib/parse/LibParseCMask.sol +++ b/src/lib/parse/LibParseCMask.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; /// @dev Workaround for https://github.com/foundry-rs/foundry/issues/6572 diff --git a/src/lib/parse/LibParseError.sol b/src/lib/parse/LibParseError.sol index b7495f878..d2796169e 100644 --- a/src/lib/parse/LibParseError.sol +++ b/src/lib/parse/LibParseError.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {ParseState} from "./LibParseState.sol"; diff --git a/src/lib/parse/LibParseInterstitial.sol b/src/lib/parse/LibParseInterstitial.sol index f418b1918..b9c33135a 100644 --- a/src/lib/parse/LibParseInterstitial.sol +++ b/src/lib/parse/LibParseInterstitial.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {FSM_YANG_MASK, ParseState} from "./LibParseState.sol"; diff --git a/src/lib/parse/LibParseOperand.sol b/src/lib/parse/LibParseOperand.sol index dd79cb25a..f4561ad35 100644 --- a/src/lib/parse/LibParseOperand.sol +++ b/src/lib/parse/LibParseOperand.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import { diff --git a/src/lib/parse/LibParsePragma.sol b/src/lib/parse/LibParsePragma.sol index f27f1143d..796b88ac8 100644 --- a/src/lib/parse/LibParsePragma.sol +++ b/src/lib/parse/LibParsePragma.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {LibParseState, ParseState} from "./LibParseState.sol"; diff --git a/src/lib/parse/LibParseStackName.sol b/src/lib/parse/LibParseStackName.sol index c79ceb688..b8fa2a9b0 100644 --- a/src/lib/parse/LibParseStackName.sol +++ b/src/lib/parse/LibParseStackName.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {ParseState} from "./LibParseState.sol"; diff --git a/src/lib/parse/LibParseStackTracker.sol b/src/lib/parse/LibParseStackTracker.sol index 143216051..858d0ecea 100644 --- a/src/lib/parse/LibParseStackTracker.sol +++ b/src/lib/parse/LibParseStackTracker.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {ParseStackUnderflow} from "../../error/ErrParse.sol"; diff --git a/src/lib/parse/LibParseState.sol b/src/lib/parse/LibParseState.sol index 8dcf9adc0..e6cad6692 100644 --- a/src/lib/parse/LibParseState.sol +++ b/src/lib/parse/LibParseState.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {Operand, OPCODE_CONSTANT} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; diff --git a/src/lib/parse/LibSubParse.sol b/src/lib/parse/LibSubParse.sol index b836eaa5e..c6aec9be9 100644 --- a/src/lib/parse/LibSubParse.sol +++ b/src/lib/parse/LibSubParse.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {LibParseState, ParseState} from "./LibParseState.sol"; diff --git a/src/lib/parse/literal/LibParseLiteral.sol b/src/lib/parse/literal/LibParseLiteral.sol index 7c4a34af8..010a1e934 100644 --- a/src/lib/parse/literal/LibParseLiteral.sol +++ b/src/lib/parse/literal/LibParseLiteral.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import { diff --git a/src/lib/parse/literal/LibParseLiteralDecimal.sol b/src/lib/parse/literal/LibParseLiteralDecimal.sol index 1b37becd2..cb798687a 100644 --- a/src/lib/parse/literal/LibParseLiteralDecimal.sol +++ b/src/lib/parse/literal/LibParseLiteralDecimal.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {ParseState} from "../LibParseState.sol"; diff --git a/src/lib/parse/literal/LibParseLiteralHex.sol b/src/lib/parse/literal/LibParseLiteralHex.sol index 5c3d3fcba..d436344a6 100644 --- a/src/lib/parse/literal/LibParseLiteralHex.sol +++ b/src/lib/parse/literal/LibParseLiteralHex.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {ParseState} from "../LibParseState.sol"; diff --git a/src/lib/parse/literal/LibParseLiteralString.sol b/src/lib/parse/literal/LibParseLiteralString.sol index 810f97a7c..6f15198ff 100644 --- a/src/lib/parse/literal/LibParseLiteralString.sol +++ b/src/lib/parse/literal/LibParseLiteralString.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {ParseState} from "../LibParseState.sol"; diff --git a/src/lib/parse/literal/LibParseLiteralSubParseable.sol b/src/lib/parse/literal/LibParseLiteralSubParseable.sol index 758dd264a..55e11b4af 100644 --- a/src/lib/parse/literal/LibParseLiteralSubParseable.sol +++ b/src/lib/parse/literal/LibParseLiteralSubParseable.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {ParseState} from "../LibParseState.sol"; diff --git a/src/lib/state/LibInterpreterStateDataContractNP.sol b/src/lib/state/LibInterpreterStateDataContractNP.sol index c3e0eea3d..b5aedec12 100644 --- a/src/lib/state/LibInterpreterStateDataContractNP.sol +++ b/src/lib/state/LibInterpreterStateDataContractNP.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {MemoryKV} from "rain.lib.memkv/lib/LibMemoryKV.sol"; diff --git a/src/lib/state/LibInterpreterStateNP.sol b/src/lib/state/LibInterpreterStateNP.sol index 37470c4d3..60b04c391 100644 --- a/src/lib/state/LibInterpreterStateNP.sol +++ b/src/lib/state/LibInterpreterStateNP.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {Pointer} from "rain.solmem/lib/LibPointer.sol"; diff --git a/test/abstract/OpTest.sol b/test/abstract/OpTest.sol index df5f1ebd0..84bf49ca6 100644 --- a/test/abstract/OpTest.sol +++ b/test/abstract/OpTest.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test, stdError} from "forge-std/Test.sol"; diff --git a/test/abstract/OperandTest.sol b/test/abstract/OperandTest.sol index 4c37ef16b..4eca48b2b 100644 --- a/test/abstract/OperandTest.sol +++ b/test/abstract/OperandTest.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/abstract/ParseLiteralTest.sol b/test/abstract/ParseLiteralTest.sol index df0a2cb5f..b9b246f47 100644 --- a/test/abstract/ParseLiteralTest.sol +++ b/test/abstract/ParseLiteralTest.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/abstract/RainterpreterExpressionDeployerNPE2DeploymentTest.sol b/test/abstract/RainterpreterExpressionDeployerNPE2DeploymentTest.sol index aff9cd37e..85cc7a085 100644 --- a/test/abstract/RainterpreterExpressionDeployerNPE2DeploymentTest.sol +++ b/test/abstract/RainterpreterExpressionDeployerNPE2DeploymentTest.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test, console2, stdError} from "forge-std/Test.sol"; diff --git a/test/lib/etch/LibEtch.sol b/test/lib/etch/LibEtch.sol index 8154454ef..7c544387a 100644 --- a/test/lib/etch/LibEtch.sol +++ b/test/lib/etch/LibEtch.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.19; bytes constant INVALID_BYTECODE = hex"FE"; diff --git a/test/lib/integrity/LibIntegrityFnPointers.sol b/test/lib/integrity/LibIntegrityFnPointers.sol index b789457a0..f46d982b9 100644 --- a/test/lib/integrity/LibIntegrityFnPointers.sol +++ b/test/lib/integrity/LibIntegrityFnPointers.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.19; import "rain.lib.typecast/LibConvert.sol"; diff --git a/test/lib/literal/LibLiteralString.sol b/test/lib/literal/LibLiteralString.sol index 156c0f583..517e49751 100644 --- a/test/lib/literal/LibLiteralString.sol +++ b/test/lib/literal/LibLiteralString.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {CMASK_STRING_LITERAL_TAIL, CMASK_HEX, CMASK_WHITESPACE} from "src/lib/parse/LibParseCMask.sol"; diff --git a/test/lib/operand/LibOperand.sol b/test/lib/operand/LibOperand.sol index 1dee7e687..207de6eac 100644 --- a/test/lib/operand/LibOperand.sol +++ b/test/lib/operand/LibOperand.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {Operand} from "rain.interpreter.interface/interface/IInterpreterV3.sol"; diff --git a/test/lib/parse/LibMetaFixture.sol b/test/lib/parse/LibMetaFixture.sol index 99bf07392..70ce888be 100644 --- a/test/lib/parse/LibMetaFixture.sol +++ b/test/lib/parse/LibMetaFixture.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {AuthoringMetaV2} from "rain.interpreter.interface/interface/deprecated/IParserV1View.sol"; diff --git a/test/src/abstract/BaseRainterpreterExternNPE2.ierc165.t.sol b/test/src/abstract/BaseRainterpreterExternNPE2.ierc165.t.sol index d22a33950..9ddf6574a 100644 --- a/test/src/abstract/BaseRainterpreterExternNPE2.ierc165.t.sol +++ b/test/src/abstract/BaseRainterpreterExternNPE2.ierc165.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/abstract/BaseRainterpreterSubParserNPE2.compatibility.t.sol b/test/src/abstract/BaseRainterpreterSubParserNPE2.compatibility.t.sol index 004fcd79c..0c4b49f76 100644 --- a/test/src/abstract/BaseRainterpreterSubParserNPE2.compatibility.t.sol +++ b/test/src/abstract/BaseRainterpreterSubParserNPE2.compatibility.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/abstract/BaseRainterpreterSubParserNPE2.ierc165.t.sol b/test/src/abstract/BaseRainterpreterSubParserNPE2.ierc165.t.sol index 5ebc6723c..90f6ddc92 100644 --- a/test/src/abstract/BaseRainterpreterSubParserNPE2.ierc165.t.sol +++ b/test/src/abstract/BaseRainterpreterSubParserNPE2.ierc165.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/concrete/RainterpreterExpressionDeployerNPE2.deployCheck.t.sol b/test/src/concrete/RainterpreterExpressionDeployerNPE2.deployCheck.t.sol index 7fd3f9927..b43f2caac 100644 --- a/test/src/concrete/RainterpreterExpressionDeployerNPE2.deployCheck.t.sol +++ b/test/src/concrete/RainterpreterExpressionDeployerNPE2.deployCheck.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/concrete/RainterpreterExpressionDeployerNPE2.describedByMetaV1.t.sol b/test/src/concrete/RainterpreterExpressionDeployerNPE2.describedByMetaV1.t.sol index 6edfaa183..3efe00e57 100644 --- a/test/src/concrete/RainterpreterExpressionDeployerNPE2.describedByMetaV1.t.sol +++ b/test/src/concrete/RainterpreterExpressionDeployerNPE2.describedByMetaV1.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/concrete/RainterpreterExpressionDeployerNPE2.ierc165.t.sol b/test/src/concrete/RainterpreterExpressionDeployerNPE2.ierc165.t.sol index 0b4a8ff9b..09e33ded8 100644 --- a/test/src/concrete/RainterpreterExpressionDeployerNPE2.ierc165.t.sol +++ b/test/src/concrete/RainterpreterExpressionDeployerNPE2.ierc165.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/concrete/RainterpreterExpressionDeployerNPE2.meta.t.sol b/test/src/concrete/RainterpreterExpressionDeployerNPE2.meta.t.sol index 136efd475..fb074a435 100644 --- a/test/src/concrete/RainterpreterExpressionDeployerNPE2.meta.t.sol +++ b/test/src/concrete/RainterpreterExpressionDeployerNPE2.meta.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {RainterpreterExpressionDeployerNPE2DeploymentTest} from diff --git a/test/src/concrete/RainterpreterNPE2.ierc165.t.sol b/test/src/concrete/RainterpreterNPE2.ierc165.t.sol index a843cba55..0b1a175a7 100644 --- a/test/src/concrete/RainterpreterNPE2.ierc165.t.sol +++ b/test/src/concrete/RainterpreterNPE2.ierc165.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/concrete/RainterpreterNPE2.pointers.t.sol b/test/src/concrete/RainterpreterNPE2.pointers.t.sol index fac315785..a514a0a51 100644 --- a/test/src/concrete/RainterpreterNPE2.pointers.t.sol +++ b/test/src/concrete/RainterpreterNPE2.pointers.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/concrete/RainterpreterNPE2.t.sol b/test/src/concrete/RainterpreterNPE2.t.sol index 104fd17d9..f19733eaa 100644 --- a/test/src/concrete/RainterpreterNPE2.t.sol +++ b/test/src/concrete/RainterpreterNPE2.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/concrete/RainterpreterParserNPE2.ierc165.t.sol b/test/src/concrete/RainterpreterParserNPE2.ierc165.t.sol index 7e9dfbae5..f3d430e55 100644 --- a/test/src/concrete/RainterpreterParserNPE2.ierc165.t.sol +++ b/test/src/concrete/RainterpreterParserNPE2.ierc165.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/concrete/RainterpreterParserNPE2.parserPragma.t.sol b/test/src/concrete/RainterpreterParserNPE2.parserPragma.t.sol index 446564bda..d1342760a 100644 --- a/test/src/concrete/RainterpreterParserNPE2.parserPragma.t.sol +++ b/test/src/concrete/RainterpreterParserNPE2.parserPragma.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/concrete/RainterpreterParserNPE2.pointers.t.sol b/test/src/concrete/RainterpreterParserNPE2.pointers.t.sol index cac756159..0e6893ed8 100644 --- a/test/src/concrete/RainterpreterParserNPE2.pointers.t.sol +++ b/test/src/concrete/RainterpreterParserNPE2.pointers.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/concrete/RainterpreterReferenceExternNPE2.contextCallingContract.t.sol b/test/src/concrete/RainterpreterReferenceExternNPE2.contextCallingContract.t.sol index b373b83a7..e98d71800 100644 --- a/test/src/concrete/RainterpreterReferenceExternNPE2.contextCallingContract.t.sol +++ b/test/src/concrete/RainterpreterReferenceExternNPE2.contextCallingContract.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/concrete/RainterpreterReferenceExternNPE2.contextRainlen.t.sol b/test/src/concrete/RainterpreterReferenceExternNPE2.contextRainlen.t.sol index ba8e5c18f..61c30cf82 100644 --- a/test/src/concrete/RainterpreterReferenceExternNPE2.contextRainlen.t.sol +++ b/test/src/concrete/RainterpreterReferenceExternNPE2.contextRainlen.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/concrete/RainterpreterReferenceExternNPE2.contextSender.t.sol b/test/src/concrete/RainterpreterReferenceExternNPE2.contextSender.t.sol index deaa7e192..735be1b83 100644 --- a/test/src/concrete/RainterpreterReferenceExternNPE2.contextSender.t.sol +++ b/test/src/concrete/RainterpreterReferenceExternNPE2.contextSender.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/concrete/RainterpreterReferenceExternNPE2.describedByMetaV1.t.sol b/test/src/concrete/RainterpreterReferenceExternNPE2.describedByMetaV1.t.sol index 07642c0cf..0e6d43798 100644 --- a/test/src/concrete/RainterpreterReferenceExternNPE2.describedByMetaV1.t.sol +++ b/test/src/concrete/RainterpreterReferenceExternNPE2.describedByMetaV1.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/concrete/RainterpreterReferenceExternNPE2.ierc165.t.sol b/test/src/concrete/RainterpreterReferenceExternNPE2.ierc165.t.sol index 9d0a9163b..019588b4e 100644 --- a/test/src/concrete/RainterpreterReferenceExternNPE2.ierc165.t.sol +++ b/test/src/concrete/RainterpreterReferenceExternNPE2.ierc165.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/concrete/RainterpreterReferenceExternNPE2.intInc.t.sol b/test/src/concrete/RainterpreterReferenceExternNPE2.intInc.t.sol index d648f82b0..bdbf00240 100644 --- a/test/src/concrete/RainterpreterReferenceExternNPE2.intInc.t.sol +++ b/test/src/concrete/RainterpreterReferenceExternNPE2.intInc.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/concrete/RainterpreterReferenceExternNPE2.pointers.t.sol b/test/src/concrete/RainterpreterReferenceExternNPE2.pointers.t.sol index d41f4fb20..b5440d16c 100644 --- a/test/src/concrete/RainterpreterReferenceExternNPE2.pointers.t.sol +++ b/test/src/concrete/RainterpreterReferenceExternNPE2.pointers.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/concrete/RainterpreterReferenceExternNPE2.repeat.t.sol b/test/src/concrete/RainterpreterReferenceExternNPE2.repeat.t.sol index cdaa0c7db..64e018538 100644 --- a/test/src/concrete/RainterpreterReferenceExternNPE2.repeat.t.sol +++ b/test/src/concrete/RainterpreterReferenceExternNPE2.repeat.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/concrete/RainterpreterReferenceExternNPE2.stackOperand.t.sol b/test/src/concrete/RainterpreterReferenceExternNPE2.stackOperand.t.sol index 287b97d05..7c24c0621 100644 --- a/test/src/concrete/RainterpreterReferenceExternNPE2.stackOperand.t.sol +++ b/test/src/concrete/RainterpreterReferenceExternNPE2.stackOperand.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/concrete/RainterpreterReferenceExternNPE2.unknownWord.t.sol b/test/src/concrete/RainterpreterReferenceExternNPE2.unknownWord.t.sol index fa6e4ab0a..f0c873b53 100644 --- a/test/src/concrete/RainterpreterReferenceExternNPE2.unknownWord.t.sol +++ b/test/src/concrete/RainterpreterReferenceExternNPE2.unknownWord.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/concrete/RainterpreterStoreNPE2.ierc165.t.sol b/test/src/concrete/RainterpreterStoreNPE2.ierc165.t.sol index 8d23986c2..0f34af600 100644 --- a/test/src/concrete/RainterpreterStoreNPE2.ierc165.t.sol +++ b/test/src/concrete/RainterpreterStoreNPE2.ierc165.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/concrete/RainterpreterStoreNPE2.t.sol b/test/src/concrete/RainterpreterStoreNPE2.t.sol index 4172a0175..4734537ea 100644 --- a/test/src/concrete/RainterpreterStoreNPE2.t.sol +++ b/test/src/concrete/RainterpreterStoreNPE2.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/eval/LibEvalNP.fBounds.t.sol b/test/src/lib/eval/LibEvalNP.fBounds.t.sol index 6587e4bb6..f6399ed3f 100644 --- a/test/src/lib/eval/LibEvalNP.fBounds.t.sol +++ b/test/src/lib/eval/LibEvalNP.fBounds.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/extern/LibExtern.codec.t.sol b/test/src/lib/extern/LibExtern.codec.t.sol index b9b03ab50..ae73c7c20 100644 --- a/test/src/lib/extern/LibExtern.codec.t.sol +++ b/test/src/lib/extern/LibExtern.codec.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/op/00/LibOpConstantNP.t.sol b/test/src/lib/op/00/LibOpConstantNP.t.sol index 4aa5f6f24..c66dc9622 100644 --- a/test/src/lib/op/00/LibOpConstantNP.t.sol +++ b/test/src/lib/op/00/LibOpConstantNP.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/00/LibOpContextNP.t.sol b/test/src/lib/op/00/LibOpContextNP.t.sol index 605a78950..8c9d0e015 100644 --- a/test/src/lib/op/00/LibOpContextNP.t.sol +++ b/test/src/lib/op/00/LibOpContextNP.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {stdError} from "forge-std/Test.sol"; diff --git a/test/src/lib/op/00/LibOpExternNP.t.sol b/test/src/lib/op/00/LibOpExternNP.t.sol index 99cddce82..d4744a6b8 100644 --- a/test/src/lib/op/00/LibOpExternNP.t.sol +++ b/test/src/lib/op/00/LibOpExternNP.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/00/LibOpStackNP.t.sol b/test/src/lib/op/00/LibOpStackNP.t.sol index 827990574..813d84bb6 100644 --- a/test/src/lib/op/00/LibOpStackNP.t.sol +++ b/test/src/lib/op/00/LibOpStackNP.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Pointer} from "rain.solmem/lib/LibPointer.sol"; diff --git a/test/src/lib/op/LibAllStandardOpsNP.t.sol b/test/src/lib/op/LibAllStandardOpsNP.t.sol index a034f2201..4b5687acf 100644 --- a/test/src/lib/op/LibAllStandardOpsNP.t.sol +++ b/test/src/lib/op/LibAllStandardOpsNP.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import "forge-std/Test.sol"; diff --git a/test/src/lib/op/bitwise/LibOpBitwiseAndNP.t.sol b/test/src/lib/op/bitwise/LibOpBitwiseAndNP.t.sol index 65f529ee1..d4d12bb1e 100644 --- a/test/src/lib/op/bitwise/LibOpBitwiseAndNP.t.sol +++ b/test/src/lib/op/bitwise/LibOpBitwiseAndNP.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/bitwise/LibOpBitwiseOrNP.t.sol b/test/src/lib/op/bitwise/LibOpBitwiseOrNP.t.sol index 62d6720ec..1ae681bc2 100644 --- a/test/src/lib/op/bitwise/LibOpBitwiseOrNP.t.sol +++ b/test/src/lib/op/bitwise/LibOpBitwiseOrNP.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/bitwise/LibOpCtPopNP.t.sol b/test/src/lib/op/bitwise/LibOpCtPopNP.t.sol index 6fe640bf0..e5a18c3ed 100644 --- a/test/src/lib/op/bitwise/LibOpCtPopNP.t.sol +++ b/test/src/lib/op/bitwise/LibOpCtPopNP.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/bitwise/LibOpDecodeBitsNP.t.sol b/test/src/lib/op/bitwise/LibOpDecodeBitsNP.t.sol index b4d9deca0..c3a6f02c5 100644 --- a/test/src/lib/op/bitwise/LibOpDecodeBitsNP.t.sol +++ b/test/src/lib/op/bitwise/LibOpDecodeBitsNP.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/bitwise/LibOpEncodeBitsNP.t.sol b/test/src/lib/op/bitwise/LibOpEncodeBitsNP.t.sol index 97e8877c1..252cd97c4 100644 --- a/test/src/lib/op/bitwise/LibOpEncodeBitsNP.t.sol +++ b/test/src/lib/op/bitwise/LibOpEncodeBitsNP.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/bitwise/LibOpShiftBitsLeftNP.t.sol b/test/src/lib/op/bitwise/LibOpShiftBitsLeftNP.t.sol index 3c3889c7b..234fb8196 100644 --- a/test/src/lib/op/bitwise/LibOpShiftBitsLeftNP.t.sol +++ b/test/src/lib/op/bitwise/LibOpShiftBitsLeftNP.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/bitwise/LibOpShiftBitsRightNP.t.sol b/test/src/lib/op/bitwise/LibOpShiftBitsRightNP.t.sol index 993622e4d..de1197a58 100644 --- a/test/src/lib/op/bitwise/LibOpShiftBitsRightNP.t.sol +++ b/test/src/lib/op/bitwise/LibOpShiftBitsRightNP.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/call/LibOpCallNP.t.sol b/test/src/lib/op/call/LibOpCallNP.t.sol index f4cdd9c0d..aac61e666 100644 --- a/test/src/lib/op/call/LibOpCallNP.t.sol +++ b/test/src/lib/op/call/LibOpCallNP.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {LibEncodedDispatch} from "rain.interpreter.interface/lib/deprecated/caller/LibEncodedDispatch.sol"; diff --git a/test/src/lib/op/crypto/LibOpHashNP.t.sol b/test/src/lib/op/crypto/LibOpHashNP.t.sol index 8bea46838..bb32cfd5a 100644 --- a/test/src/lib/op/crypto/LibOpHashNP.t.sol +++ b/test/src/lib/op/crypto/LibOpHashNP.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/erc20/LibOpERC20Allowance.t.sol b/test/src/lib/op/erc20/LibOpERC20Allowance.t.sol index f569437e2..4e8bc3f91 100644 --- a/test/src/lib/op/erc20/LibOpERC20Allowance.t.sol +++ b/test/src/lib/op/erc20/LibOpERC20Allowance.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/erc20/LibOpERC20BalanceOf.t.sol b/test/src/lib/op/erc20/LibOpERC20BalanceOf.t.sol index 7b50a1206..54fa317ac 100644 --- a/test/src/lib/op/erc20/LibOpERC20BalanceOf.t.sol +++ b/test/src/lib/op/erc20/LibOpERC20BalanceOf.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {stdError} from "forge-std/Test.sol"; diff --git a/test/src/lib/op/erc20/LibOpERC20TotalSupply.t.sol b/test/src/lib/op/erc20/LibOpERC20TotalSupply.t.sol index 210f9321a..a360fbb63 100644 --- a/test/src/lib/op/erc20/LibOpERC20TotalSupply.t.sol +++ b/test/src/lib/op/erc20/LibOpERC20TotalSupply.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {stdError} from "forge-std/Test.sol"; diff --git a/test/src/lib/op/erc20/uint256/LibOpUint256ERC20Allowance.t.sol b/test/src/lib/op/erc20/uint256/LibOpUint256ERC20Allowance.t.sol index 2b39cf52b..f5e17862c 100644 --- a/test/src/lib/op/erc20/uint256/LibOpUint256ERC20Allowance.t.sol +++ b/test/src/lib/op/erc20/uint256/LibOpUint256ERC20Allowance.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/erc20/uint256/LibOpUint256ERC20BalanceOf.t.sol b/test/src/lib/op/erc20/uint256/LibOpUint256ERC20BalanceOf.t.sol index 5b5d46a07..509a8700b 100644 --- a/test/src/lib/op/erc20/uint256/LibOpUint256ERC20BalanceOf.t.sol +++ b/test/src/lib/op/erc20/uint256/LibOpUint256ERC20BalanceOf.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/erc20/uint256/LibOpUint256ERC20TotalSupply.t.sol b/test/src/lib/op/erc20/uint256/LibOpUint256ERC20TotalSupply.t.sol index 4aee62864..7e4e4932b 100644 --- a/test/src/lib/op/erc20/uint256/LibOpUint256ERC20TotalSupply.t.sol +++ b/test/src/lib/op/erc20/uint256/LibOpUint256ERC20TotalSupply.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/erc5313/LibOpERC5313OwnerNP.t.sol b/test/src/lib/op/erc5313/LibOpERC5313OwnerNP.t.sol index 54bf22076..36219b3a3 100644 --- a/test/src/lib/op/erc5313/LibOpERC5313OwnerNP.t.sol +++ b/test/src/lib/op/erc5313/LibOpERC5313OwnerNP.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/erc721/LibOpERC721OwnerOf.t.sol b/test/src/lib/op/erc721/LibOpERC721OwnerOf.t.sol index 600b1fc27..a09b193cb 100644 --- a/test/src/lib/op/erc721/LibOpERC721OwnerOf.t.sol +++ b/test/src/lib/op/erc721/LibOpERC721OwnerOf.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/erc721/uint256/LibOpUint256ERC721BalanceOf.t.sol b/test/src/lib/op/erc721/uint256/LibOpUint256ERC721BalanceOf.t.sol index 85fc14d2b..f70da9826 100644 --- a/test/src/lib/op/erc721/uint256/LibOpUint256ERC721BalanceOf.t.sol +++ b/test/src/lib/op/erc721/uint256/LibOpUint256ERC721BalanceOf.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/evm/LibOpBlockNumberNP.t.sol b/test/src/lib/op/evm/LibOpBlockNumberNP.t.sol index 6c71c184c..c2b0db178 100644 --- a/test/src/lib/op/evm/LibOpBlockNumberNP.t.sol +++ b/test/src/lib/op/evm/LibOpBlockNumberNP.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/evm/LibOpChainIdNP.t.sol b/test/src/lib/op/evm/LibOpChainIdNP.t.sol index 3947727ab..af5a15f2b 100644 --- a/test/src/lib/op/evm/LibOpChainIdNP.t.sol +++ b/test/src/lib/op/evm/LibOpChainIdNP.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Pointer} from "rain.solmem/lib/LibPointer.sol"; diff --git a/test/src/lib/op/evm/LibOpMaxUint256NP.t.sol b/test/src/lib/op/evm/LibOpMaxUint256NP.t.sol index d510c5bd5..214eb699b 100644 --- a/test/src/lib/op/evm/LibOpMaxUint256NP.t.sol +++ b/test/src/lib/op/evm/LibOpMaxUint256NP.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/evm/LibOpTimestampNP.t.sol b/test/src/lib/op/evm/LibOpTimestampNP.t.sol index c3f97e63b..aa2486294 100644 --- a/test/src/lib/op/evm/LibOpTimestampNP.t.sol +++ b/test/src/lib/op/evm/LibOpTimestampNP.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/logic/LibOpAnyNP.t.sol b/test/src/lib/op/logic/LibOpAnyNP.t.sol index 4f71292ea..62408c6eb 100644 --- a/test/src/lib/op/logic/LibOpAnyNP.t.sol +++ b/test/src/lib/op/logic/LibOpAnyNP.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Pointer} from "rain.solmem/lib/LibPointer.sol"; diff --git a/test/src/lib/op/logic/LibOpConditionsNP.t.sol b/test/src/lib/op/logic/LibOpConditionsNP.t.sol index d87c13bde..f93a01efa 100644 --- a/test/src/lib/op/logic/LibOpConditionsNP.t.sol +++ b/test/src/lib/op/logic/LibOpConditionsNP.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {LibUint256Array} from "rain.solmem/lib/LibUint256Array.sol"; diff --git a/test/src/lib/op/logic/LibOpEnsureNP.t.sol b/test/src/lib/op/logic/LibOpEnsureNP.t.sol index 029466484..591235a92 100644 --- a/test/src/lib/op/logic/LibOpEnsureNP.t.sol +++ b/test/src/lib/op/logic/LibOpEnsureNP.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {OpTest, UnexpectedOperand} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/logic/LibOpEqualToNP.t.sol b/test/src/lib/op/logic/LibOpEqualToNP.t.sol index 934452474..d7ef8b77e 100644 --- a/test/src/lib/op/logic/LibOpEqualToNP.t.sol +++ b/test/src/lib/op/logic/LibOpEqualToNP.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/logic/LibOpEveryNP.t.sol b/test/src/lib/op/logic/LibOpEveryNP.t.sol index d71680fe8..69dab718e 100644 --- a/test/src/lib/op/logic/LibOpEveryNP.t.sol +++ b/test/src/lib/op/logic/LibOpEveryNP.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/logic/LibOpGreaterThanNP.t.sol b/test/src/lib/op/logic/LibOpGreaterThanNP.t.sol index 93cc2bbdb..2280672f1 100644 --- a/test/src/lib/op/logic/LibOpGreaterThanNP.t.sol +++ b/test/src/lib/op/logic/LibOpGreaterThanNP.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/logic/LibOpGreaterThanOrEqualToNP.t.sol b/test/src/lib/op/logic/LibOpGreaterThanOrEqualToNP.t.sol index d71364af2..c07705ac6 100644 --- a/test/src/lib/op/logic/LibOpGreaterThanOrEqualToNP.t.sol +++ b/test/src/lib/op/logic/LibOpGreaterThanOrEqualToNP.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/logic/LibOpIfNP.t.sol b/test/src/lib/op/logic/LibOpIfNP.t.sol index 15ea29b45..8341b2bae 100644 --- a/test/src/lib/op/logic/LibOpIfNP.t.sol +++ b/test/src/lib/op/logic/LibOpIfNP.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/logic/LibOpIsZeroNP.t.sol b/test/src/lib/op/logic/LibOpIsZeroNP.t.sol index d3831c3e8..afeb67392 100644 --- a/test/src/lib/op/logic/LibOpIsZeroNP.t.sol +++ b/test/src/lib/op/logic/LibOpIsZeroNP.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/logic/LibOpLessThanNP.t.sol b/test/src/lib/op/logic/LibOpLessThanNP.t.sol index 8aba768ce..64b4c3117 100644 --- a/test/src/lib/op/logic/LibOpLessThanNP.t.sol +++ b/test/src/lib/op/logic/LibOpLessThanNP.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/logic/LibOpLessThanOrEqualToNP.t.sol b/test/src/lib/op/logic/LibOpLessThanOrEqualToNP.t.sol index 1a21f6d71..a29db4176 100644 --- a/test/src/lib/op/logic/LibOpLessThanOrEqualToNP.t.sol +++ b/test/src/lib/op/logic/LibOpLessThanOrEqualToNP.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/math/LibOpAvg.t.sol b/test/src/lib/op/math/LibOpAvg.t.sol index af55be7b2..ea33847e3 100644 --- a/test/src/lib/op/math/LibOpAvg.t.sol +++ b/test/src/lib/op/math/LibOpAvg.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {OpTest, IntegrityCheckStateNP, Operand, InterpreterStateNP, UnexpectedOperand} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/math/LibOpCeil.t.sol b/test/src/lib/op/math/LibOpCeil.t.sol index 9fcd2e110..cdfc70fc7 100644 --- a/test/src/lib/op/math/LibOpCeil.t.sol +++ b/test/src/lib/op/math/LibOpCeil.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {OpTest, IntegrityCheckStateNP, Operand, InterpreterStateNP, UnexpectedOperand} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/math/LibOpDiv.t.sol b/test/src/lib/op/math/LibOpDiv.t.sol index ac6be3a60..477d12777 100644 --- a/test/src/lib/op/math/LibOpDiv.t.sol +++ b/test/src/lib/op/math/LibOpDiv.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {LibPointer} from "rain.solmem/lib/LibPointer.sol"; diff --git a/test/src/lib/op/math/LibOpE.t.sol b/test/src/lib/op/math/LibOpE.t.sol index c0c8fde06..b14bb1e87 100644 --- a/test/src/lib/op/math/LibOpE.t.sol +++ b/test/src/lib/op/math/LibOpE.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {OpTest} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/math/LibOpExp.t.sol b/test/src/lib/op/math/LibOpExp.t.sol index f9e0fc1df..708e374fa 100644 --- a/test/src/lib/op/math/LibOpExp.t.sol +++ b/test/src/lib/op/math/LibOpExp.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {OpTest, IntegrityCheckStateNP, Operand, InterpreterStateNP, UnexpectedOperand} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/math/LibOpExp2.t.sol b/test/src/lib/op/math/LibOpExp2.t.sol index ea64c8394..910411284 100644 --- a/test/src/lib/op/math/LibOpExp2.t.sol +++ b/test/src/lib/op/math/LibOpExp2.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {OpTest, IntegrityCheckStateNP, Operand, InterpreterStateNP, UnexpectedOperand} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/math/LibOpFloor.t.sol b/test/src/lib/op/math/LibOpFloor.t.sol index be1ff0674..78ba72390 100644 --- a/test/src/lib/op/math/LibOpFloor.t.sol +++ b/test/src/lib/op/math/LibOpFloor.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {OpTest, IntegrityCheckStateNP, Operand, InterpreterStateNP, UnexpectedOperand} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/math/LibOpFrac.t.sol b/test/src/lib/op/math/LibOpFrac.t.sol index c00270c06..a710f225c 100644 --- a/test/src/lib/op/math/LibOpFrac.t.sol +++ b/test/src/lib/op/math/LibOpFrac.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {OpTest, IntegrityCheckStateNP, Operand, InterpreterStateNP, UnexpectedOperand} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/math/LibOpGm.t.sol b/test/src/lib/op/math/LibOpGm.t.sol index cc29b034d..0493250e5 100644 --- a/test/src/lib/op/math/LibOpGm.t.sol +++ b/test/src/lib/op/math/LibOpGm.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {OpTest, IntegrityCheckStateNP, Operand, InterpreterStateNP, UnexpectedOperand} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/math/LibOpHeadroom.t.sol b/test/src/lib/op/math/LibOpHeadroom.t.sol index 21165e763..3165f9428 100644 --- a/test/src/lib/op/math/LibOpHeadroom.t.sol +++ b/test/src/lib/op/math/LibOpHeadroom.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {OpTest, IntegrityCheckStateNP, Operand, InterpreterStateNP, UnexpectedOperand} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/math/LibOpIntAddNP.t.sol b/test/src/lib/op/math/LibOpIntAddNP.t.sol index aac53675b..7c522a8ad 100644 --- a/test/src/lib/op/math/LibOpIntAddNP.t.sol +++ b/test/src/lib/op/math/LibOpIntAddNP.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {stdError} from "forge-std/Test.sol"; diff --git a/test/src/lib/op/math/LibOpInv.t.sol b/test/src/lib/op/math/LibOpInv.t.sol index d60dc85f8..dcc166cd2 100644 --- a/test/src/lib/op/math/LibOpInv.t.sol +++ b/test/src/lib/op/math/LibOpInv.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {OpTest, IntegrityCheckStateNP, Operand, InterpreterStateNP, UnexpectedOperand} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/math/LibOpLn.t.sol b/test/src/lib/op/math/LibOpLn.t.sol index 49ee275cc..ac4e5f185 100644 --- a/test/src/lib/op/math/LibOpLn.t.sol +++ b/test/src/lib/op/math/LibOpLn.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {OpTest, IntegrityCheckStateNP, Operand, InterpreterStateNP, UnexpectedOperand} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/math/LibOpLog10.t.sol b/test/src/lib/op/math/LibOpLog10.t.sol index d5e025e76..5c53ec33b 100644 --- a/test/src/lib/op/math/LibOpLog10.t.sol +++ b/test/src/lib/op/math/LibOpLog10.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {OpTest, IntegrityCheckStateNP, Operand, InterpreterStateNP, UnexpectedOperand} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/math/LibOpLog2.t.sol b/test/src/lib/op/math/LibOpLog2.t.sol index 7e1a46497..bb8ca4d34 100644 --- a/test/src/lib/op/math/LibOpLog2.t.sol +++ b/test/src/lib/op/math/LibOpLog2.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {OpTest, IntegrityCheckStateNP, Operand, InterpreterStateNP, UnexpectedOperand} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/math/LibOpMax.t.sol b/test/src/lib/op/math/LibOpMax.t.sol index 7b416f140..e27ae8e5e 100644 --- a/test/src/lib/op/math/LibOpMax.t.sol +++ b/test/src/lib/op/math/LibOpMax.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {LibUint256Array} from "rain.solmem/lib/LibUint256Array.sol"; diff --git a/test/src/lib/op/math/LibOpMin.t.sol b/test/src/lib/op/math/LibOpMin.t.sol index 6164b82cc..3ebaf7121 100644 --- a/test/src/lib/op/math/LibOpMin.t.sol +++ b/test/src/lib/op/math/LibOpMin.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {LibUint256Array} from "rain.solmem/lib/LibUint256Array.sol"; diff --git a/test/src/lib/op/math/LibOpMod.t.sol b/test/src/lib/op/math/LibOpMod.t.sol index cbc03375c..2d74235d2 100644 --- a/test/src/lib/op/math/LibOpMod.t.sol +++ b/test/src/lib/op/math/LibOpMod.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {LibUint256Array} from "rain.solmem/lib/LibUint256Array.sol"; diff --git a/test/src/lib/op/math/LibOpMul.t.sol b/test/src/lib/op/math/LibOpMul.t.sol index 4acf0afb3..3724fca09 100644 --- a/test/src/lib/op/math/LibOpMul.t.sol +++ b/test/src/lib/op/math/LibOpMul.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {LibPointer} from "rain.solmem/lib/LibPointer.sol"; diff --git a/test/src/lib/op/math/LibOpPow.t.sol b/test/src/lib/op/math/LibOpPow.t.sol index 7204a2ce2..bf109eed3 100644 --- a/test/src/lib/op/math/LibOpPow.t.sol +++ b/test/src/lib/op/math/LibOpPow.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {OpTest, IntegrityCheckStateNP, Operand, InterpreterStateNP, UnexpectedOperand} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/math/LibOpScale18.t.sol b/test/src/lib/op/math/LibOpScale18.t.sol index 3046e0125..b393dbbc2 100644 --- a/test/src/lib/op/math/LibOpScale18.t.sol +++ b/test/src/lib/op/math/LibOpScale18.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {OpTest, IntegrityCheckStateNP, InterpreterStateNP, Operand, stdError} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/math/LibOpScale18Dynamic.t.sol b/test/src/lib/op/math/LibOpScale18Dynamic.t.sol index db6f1229f..28ba6c1fe 100644 --- a/test/src/lib/op/math/LibOpScale18Dynamic.t.sol +++ b/test/src/lib/op/math/LibOpScale18Dynamic.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {OpTest, IntegrityCheckStateNP, InterpreterStateNP, Operand, stdError} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/math/LibOpScaleN.t.sol b/test/src/lib/op/math/LibOpScaleN.t.sol index f3eb2f779..5db96181e 100644 --- a/test/src/lib/op/math/LibOpScaleN.t.sol +++ b/test/src/lib/op/math/LibOpScaleN.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {OpTest, IntegrityCheckStateNP, InterpreterStateNP, Operand, stdError} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/math/LibOpScaleNDynamic.t.sol b/test/src/lib/op/math/LibOpScaleNDynamic.t.sol index 84fde974c..774920ba8 100644 --- a/test/src/lib/op/math/LibOpScaleNDynamic.t.sol +++ b/test/src/lib/op/math/LibOpScaleNDynamic.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {OpTest, IntegrityCheckStateNP, InterpreterStateNP, Operand, stdError} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/math/LibOpSnapToUnit.t.sol b/test/src/lib/op/math/LibOpSnapToUnit.t.sol index 933758b49..4227149ba 100644 --- a/test/src/lib/op/math/LibOpSnapToUnit.t.sol +++ b/test/src/lib/op/math/LibOpSnapToUnit.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {OpTest, IntegrityCheckStateNP, Operand, InterpreterStateNP, UnexpectedOperand} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/math/LibOpSqrt.t.sol b/test/src/lib/op/math/LibOpSqrt.t.sol index 87ded07ce..b5ac6e357 100644 --- a/test/src/lib/op/math/LibOpSqrt.t.sol +++ b/test/src/lib/op/math/LibOpSqrt.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {OpTest, IntegrityCheckStateNP, Operand, InterpreterStateNP, UnexpectedOperand} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/math/LibOpSub.t.sol b/test/src/lib/op/math/LibOpSub.t.sol index 23147b45a..147cf35ad 100644 --- a/test/src/lib/op/math/LibOpSub.t.sol +++ b/test/src/lib/op/math/LibOpSub.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {OpTest, IntegrityCheckStateNP, InterpreterStateNP, Operand, stdError} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/math/growth/LibOpExponentialGrowth.t.sol b/test/src/lib/op/math/growth/LibOpExponentialGrowth.t.sol index 6a6bbb8c6..737fca55e 100644 --- a/test/src/lib/op/math/growth/LibOpExponentialGrowth.t.sol +++ b/test/src/lib/op/math/growth/LibOpExponentialGrowth.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {OpTest, IntegrityCheckStateNP, Operand, InterpreterStateNP, UnexpectedOperand} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/math/growth/LibOpLinearGrowth.t.sol b/test/src/lib/op/math/growth/LibOpLinearGrowth.t.sol index 3d1f5d54a..28be689d4 100644 --- a/test/src/lib/op/math/growth/LibOpLinearGrowth.t.sol +++ b/test/src/lib/op/math/growth/LibOpLinearGrowth.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {OpTest, IntegrityCheckStateNP, Operand, InterpreterStateNP, UnexpectedOperand} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/math/int/LibOpUint256Div.t.sol b/test/src/lib/op/math/int/LibOpUint256Div.t.sol index 9de3ac47a..c525ab5e3 100644 --- a/test/src/lib/op/math/int/LibOpUint256Div.t.sol +++ b/test/src/lib/op/math/int/LibOpUint256Div.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {OpTest, IntegrityCheckStateNP, Operand, InterpreterStateNP, stdError} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/math/int/LibOpUint256Mul.t.sol b/test/src/lib/op/math/int/LibOpUint256Mul.t.sol index bf5f5bff4..867d13651 100644 --- a/test/src/lib/op/math/int/LibOpUint256Mul.t.sol +++ b/test/src/lib/op/math/int/LibOpUint256Mul.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {OpTest, IntegrityCheckStateNP, Operand, InterpreterStateNP, stdError} from "test/abstract/OpTest.sol"; diff --git a/test/src/lib/op/math/int/LibOpUint256Pow.t.sol b/test/src/lib/op/math/int/LibOpUint256Pow.t.sol index 793a3b195..fa0db0612 100644 --- a/test/src/lib/op/math/int/LibOpUint256Pow.t.sol +++ b/test/src/lib/op/math/int/LibOpUint256Pow.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {stdError} from "forge-std/Test.sol"; diff --git a/test/src/lib/op/store/LibOpGetNP.t.sol b/test/src/lib/op/store/LibOpGetNP.t.sol index a099d6f89..cfb156743 100644 --- a/test/src/lib/op/store/LibOpGetNP.t.sol +++ b/test/src/lib/op/store/LibOpGetNP.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {LibMemoryKV, MemoryKV, MemoryKVVal, MemoryKVKey} from "rain.lib.memkv/lib/LibMemoryKV.sol"; diff --git a/test/src/lib/op/store/LibOpSetNP.t.sol b/test/src/lib/op/store/LibOpSetNP.t.sol index 0d078e227..7cb20cd1d 100644 --- a/test/src/lib/op/store/LibOpSetNP.t.sol +++ b/test/src/lib/op/store/LibOpSetNP.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {LibMemoryKV, MemoryKV, MemoryKVVal, MemoryKVKey} from "rain.lib.memkv/lib/LibMemoryKV.sol"; diff --git a/test/src/lib/parse/LibParse.comments.t.sol b/test/src/lib/parse/LibParse.comments.t.sol index 44872e2a6..6a6c56cda 100644 --- a/test/src/lib/parse/LibParse.comments.t.sol +++ b/test/src/lib/parse/LibParse.comments.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParse.empty.gas.t.sol b/test/src/lib/parse/LibParse.empty.gas.t.sol index 999cd4d34..42ba8296e 100644 --- a/test/src/lib/parse/LibParse.empty.gas.t.sol +++ b/test/src/lib/parse/LibParse.empty.gas.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParse.empty.t.sol b/test/src/lib/parse/LibParse.empty.t.sol index 651bf591f..7bfb52716 100644 --- a/test/src/lib/parse/LibParse.empty.t.sol +++ b/test/src/lib/parse/LibParse.empty.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParse.ignoredLHS.t.sol b/test/src/lib/parse/LibParse.ignoredLHS.t.sol index b847402ff..69c35f81f 100644 --- a/test/src/lib/parse/LibParse.ignoredLHS.t.sol +++ b/test/src/lib/parse/LibParse.ignoredLHS.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParse.inputsOnly.gas.t.sol b/test/src/lib/parse/LibParse.inputsOnly.gas.t.sol index 706bffd60..0c342f644 100644 --- a/test/src/lib/parse/LibParse.inputsOnly.gas.t.sol +++ b/test/src/lib/parse/LibParse.inputsOnly.gas.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParse.inputsOnly.t.sol b/test/src/lib/parse/LibParse.inputsOnly.t.sol index bfb379244..9c41726af 100644 --- a/test/src/lib/parse/LibParse.inputsOnly.t.sol +++ b/test/src/lib/parse/LibParse.inputsOnly.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParse.isMask.t.sol b/test/src/lib/parse/LibParse.isMask.t.sol index 1689cfcce..43f7243af 100644 --- a/test/src/lib/parse/LibParse.isMask.t.sol +++ b/test/src/lib/parse/LibParse.isMask.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParse.literalIntegerDecimal.t.sol b/test/src/lib/parse/LibParse.literalIntegerDecimal.t.sol index 15467679c..a36a787e7 100644 --- a/test/src/lib/parse/LibParse.literalIntegerDecimal.t.sol +++ b/test/src/lib/parse/LibParse.literalIntegerDecimal.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParse.literalIntegerHex.t.sol b/test/src/lib/parse/LibParse.literalIntegerHex.t.sol index f76c1346c..6d0eb8b69 100644 --- a/test/src/lib/parse/LibParse.literalIntegerHex.t.sol +++ b/test/src/lib/parse/LibParse.literalIntegerHex.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParse.literalString.t.sol b/test/src/lib/parse/LibParse.literalString.t.sol index 2d4455521..3ab3a7e3a 100644 --- a/test/src/lib/parse/LibParse.literalString.t.sol +++ b/test/src/lib/parse/LibParse.literalString.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParse.missingFinalSemi.t.sol b/test/src/lib/parse/LibParse.missingFinalSemi.t.sol index 4a8778f17..abcc56559 100644 --- a/test/src/lib/parse/LibParse.missingFinalSemi.t.sol +++ b/test/src/lib/parse/LibParse.missingFinalSemi.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParse.nOutput.t.sol b/test/src/lib/parse/LibParse.nOutput.t.sol index dcb8683ae..6a36e9dfb 100644 --- a/test/src/lib/parse/LibParse.nOutput.t.sol +++ b/test/src/lib/parse/LibParse.nOutput.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParse.namedLHS.t.sol b/test/src/lib/parse/LibParse.namedLHS.t.sol index f6854f209..7dc773c53 100644 --- a/test/src/lib/parse/LibParse.namedLHS.t.sol +++ b/test/src/lib/parse/LibParse.namedLHS.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParse.operand8M1M1.t.sol b/test/src/lib/parse/LibParse.operand8M1M1.t.sol index e0b636fb3..0e3d3a154 100644 --- a/test/src/lib/parse/LibParse.operand8M1M1.t.sol +++ b/test/src/lib/parse/LibParse.operand8M1M1.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {UnsupportedLiteralType} from "src/lib/parse/literal/LibParseLiteral.sol"; diff --git a/test/src/lib/parse/LibParse.operandDisallowed.t.sol b/test/src/lib/parse/LibParse.operandDisallowed.t.sol index f6a3af7cc..d1a1e0cea 100644 --- a/test/src/lib/parse/LibParse.operandDisallowed.t.sol +++ b/test/src/lib/parse/LibParse.operandDisallowed.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParse.operandDoublePerByteNoDefault.t.sol b/test/src/lib/parse/LibParse.operandDoublePerByteNoDefault.t.sol index d0c7a7c85..786049267 100644 --- a/test/src/lib/parse/LibParse.operandDoublePerByteNoDefault.t.sol +++ b/test/src/lib/parse/LibParse.operandDoublePerByteNoDefault.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParse.operandM1M1.t.sol b/test/src/lib/parse/LibParse.operandM1M1.t.sol index 0ccb571d6..d6767d932 100644 --- a/test/src/lib/parse/LibParse.operandM1M1.t.sol +++ b/test/src/lib/parse/LibParse.operandM1M1.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {UnclosedOperand, UnsupportedLiteralType, UnexpectedOperandValue} from "src/error/ErrParse.sol"; diff --git a/test/src/lib/parse/LibParse.operandSingleFull.t.sol b/test/src/lib/parse/LibParse.operandSingleFull.t.sol index e7537c2d9..ddd3d7a6f 100644 --- a/test/src/lib/parse/LibParse.operandSingleFull.t.sol +++ b/test/src/lib/parse/LibParse.operandSingleFull.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParse.parseWord.t.sol b/test/src/lib/parse/LibParse.parseWord.t.sol index 9debd5c5a..60a5a8859 100644 --- a/test/src/lib/parse/LibParse.parseWord.t.sol +++ b/test/src/lib/parse/LibParse.parseWord.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParse.singleIgnored.gas.t.sol b/test/src/lib/parse/LibParse.singleIgnored.gas.t.sol index a5b382e70..49680662b 100644 --- a/test/src/lib/parse/LibParse.singleIgnored.gas.t.sol +++ b/test/src/lib/parse/LibParse.singleIgnored.gas.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParse.singleLHSNamed.gas.t.sol b/test/src/lib/parse/LibParse.singleLHSNamed.gas.t.sol index 89aad1f49..89bd742f2 100644 --- a/test/src/lib/parse/LibParse.singleLHSNamed.gas.t.sol +++ b/test/src/lib/parse/LibParse.singleLHSNamed.gas.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParse.singleRHSNamed.gas.t.sol b/test/src/lib/parse/LibParse.singleRHSNamed.gas.t.sol index ba875e340..9a77a2a23 100644 --- a/test/src/lib/parse/LibParse.singleRHSNamed.gas.t.sol +++ b/test/src/lib/parse/LibParse.singleRHSNamed.gas.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParse.sourceInputs.t.sol b/test/src/lib/parse/LibParse.sourceInputs.t.sol index 1a79a5d37..d9eefb966 100644 --- a/test/src/lib/parse/LibParse.sourceInputs.t.sol +++ b/test/src/lib/parse/LibParse.sourceInputs.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParse.unclosedLeftParen.t.sol b/test/src/lib/parse/LibParse.unclosedLeftParen.t.sol index 8560babfc..cc02a5754 100644 --- a/test/src/lib/parse/LibParse.unclosedLeftParen.t.sol +++ b/test/src/lib/parse/LibParse.unclosedLeftParen.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParse.unexpectedLHS.t.sol b/test/src/lib/parse/LibParse.unexpectedLHS.t.sol index eb05650b1..69cd65052 100644 --- a/test/src/lib/parse/LibParse.unexpectedLHS.t.sol +++ b/test/src/lib/parse/LibParse.unexpectedLHS.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParse.unexpectedRHS.t.sol b/test/src/lib/parse/LibParse.unexpectedRHS.t.sol index e6fd52e0f..de2f918c7 100644 --- a/test/src/lib/parse/LibParse.unexpectedRHS.t.sol +++ b/test/src/lib/parse/LibParse.unexpectedRHS.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParse.unexpectedRightParen.t.sol b/test/src/lib/parse/LibParse.unexpectedRightParen.t.sol index ee39f7c59..47a81a695 100644 --- a/test/src/lib/parse/LibParse.unexpectedRightParen.t.sol +++ b/test/src/lib/parse/LibParse.unexpectedRightParen.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParse.wordsRHS.t.sol b/test/src/lib/parse/LibParse.wordsRHS.t.sol index d3610b7f8..74e42ac68 100644 --- a/test/src/lib/parse/LibParse.wordsRHS.t.sol +++ b/test/src/lib/parse/LibParse.wordsRHS.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParseOperand.handleOperand8M1M1.t.sol b/test/src/lib/parse/LibParseOperand.handleOperand8M1M1.t.sol index b84b0decf..6851fc7ca 100644 --- a/test/src/lib/parse/LibParseOperand.handleOperand8M1M1.t.sol +++ b/test/src/lib/parse/LibParseOperand.handleOperand8M1M1.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParseOperand.handleOperandDisallowed.t.sol b/test/src/lib/parse/LibParseOperand.handleOperandDisallowed.t.sol index 2a6d501de..fd42c16bc 100644 --- a/test/src/lib/parse/LibParseOperand.handleOperandDisallowed.t.sol +++ b/test/src/lib/parse/LibParseOperand.handleOperandDisallowed.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParseOperand.handleOperandDoublePerByteNoDefault.t.sol b/test/src/lib/parse/LibParseOperand.handleOperandDoublePerByteNoDefault.t.sol index 8ae5670e0..5b05a57ab 100644 --- a/test/src/lib/parse/LibParseOperand.handleOperandDoublePerByteNoDefault.t.sol +++ b/test/src/lib/parse/LibParseOperand.handleOperandDoublePerByteNoDefault.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParseOperand.handleOperandM1M1.t.sol b/test/src/lib/parse/LibParseOperand.handleOperandM1M1.t.sol index 4b3c792d6..9f4a3af23 100644 --- a/test/src/lib/parse/LibParseOperand.handleOperandM1M1.t.sol +++ b/test/src/lib/parse/LibParseOperand.handleOperandM1M1.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParseOperand.handleOperandSingleFull.t.sol b/test/src/lib/parse/LibParseOperand.handleOperandSingleFull.t.sol index b4c05716b..ba83d1cd4 100644 --- a/test/src/lib/parse/LibParseOperand.handleOperandSingleFull.t.sol +++ b/test/src/lib/parse/LibParseOperand.handleOperandSingleFull.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParseOperand.handleOperandSingleFullNoDefault.t.sol b/test/src/lib/parse/LibParseOperand.handleOperandSingleFullNoDefault.t.sol index f4434a823..ce80bf6a3 100644 --- a/test/src/lib/parse/LibParseOperand.handleOperandSingleFullNoDefault.t.sol +++ b/test/src/lib/parse/LibParseOperand.handleOperandSingleFullNoDefault.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParseOperand.parseOperand.t.sol b/test/src/lib/parse/LibParseOperand.parseOperand.t.sol index c509f2308..add15308e 100644 --- a/test/src/lib/parse/LibParseOperand.parseOperand.t.sol +++ b/test/src/lib/parse/LibParseOperand.parseOperand.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParsePragma.keyword.t.sol b/test/src/lib/parse/LibParsePragma.keyword.t.sol index d52fbd135..ab1fc1cc4 100644 --- a/test/src/lib/parse/LibParsePragma.keyword.t.sol +++ b/test/src/lib/parse/LibParsePragma.keyword.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParseSlow.sol b/test/src/lib/parse/LibParseSlow.sol index 9e3eac370..fb5fd8d95 100644 --- a/test/src/lib/parse/LibParseSlow.sol +++ b/test/src/lib/parse/LibParseSlow.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; library LibParseSlow { diff --git a/test/src/lib/parse/LibParseStackName.t.sol b/test/src/lib/parse/LibParseStackName.t.sol index 23c3b464b..df17366d9 100644 --- a/test/src/lib/parse/LibParseStackName.t.sol +++ b/test/src/lib/parse/LibParseStackName.t.sol @@ -1,5 +1,5 @@ //// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParseState.constantValueBloom.t.sol b/test/src/lib/parse/LibParseState.constantValueBloom.t.sol index 5c21fbdb6..81f464edc 100644 --- a/test/src/lib/parse/LibParseState.constantValueBloom.t.sol +++ b/test/src/lib/parse/LibParseState.constantValueBloom.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParseState.exportSubParsers.t.sol b/test/src/lib/parse/LibParseState.exportSubParsers.t.sol index b0aee6593..420314a97 100644 --- a/test/src/lib/parse/LibParseState.exportSubParsers.t.sol +++ b/test/src/lib/parse/LibParseState.exportSubParsers.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParseState.newActiveSourcePointer.t.sol b/test/src/lib/parse/LibParseState.newActiveSourcePointer.t.sol index 97415bf84..759b9a7cc 100644 --- a/test/src/lib/parse/LibParseState.newActiveSourcePointer.t.sol +++ b/test/src/lib/parse/LibParseState.newActiveSourcePointer.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParseState.pushConstantValue.t.sol b/test/src/lib/parse/LibParseState.pushConstantValue.t.sol index a4ae1cfd0..8a2e23055 100644 --- a/test/src/lib/parse/LibParseState.pushConstantValue.t.sol +++ b/test/src/lib/parse/LibParseState.pushConstantValue.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibParseState.pushSubParser.t.sol b/test/src/lib/parse/LibParseState.pushSubParser.t.sol index 802ed337b..7ac3c824b 100644 --- a/test/src/lib/parse/LibParseState.pushSubParser.t.sol +++ b/test/src/lib/parse/LibParseState.pushSubParser.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/LibSubParse.subParserExtern.t.sol b/test/src/lib/parse/LibSubParse.subParserExtern.t.sol index 513609cd8..e4d7fb502 100644 --- a/test/src/lib/parse/LibSubParse.subParserExtern.t.sol +++ b/test/src/lib/parse/LibSubParse.subParserExtern.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/literal/LibParseLiteralDecimal.parseDecimal.t.sol b/test/src/lib/parse/literal/LibParseLiteralDecimal.parseDecimal.t.sol index e17ad390a..83e2eafd0 100644 --- a/test/src/lib/parse/literal/LibParseLiteralDecimal.parseDecimal.t.sol +++ b/test/src/lib/parse/literal/LibParseLiteralDecimal.parseDecimal.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/literal/LibParseLiteralDecimal.parseDecimalFloat.t.sol b/test/src/lib/parse/literal/LibParseLiteralDecimal.parseDecimalFloat.t.sol index ca711be89..f7aa7916d 100644 --- a/test/src/lib/parse/literal/LibParseLiteralDecimal.parseDecimalFloat.t.sol +++ b/test/src/lib/parse/literal/LibParseLiteralDecimal.parseDecimalFloat.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/literal/LibParseLiteralDecimal.unsafeStrToInt.t.sol b/test/src/lib/parse/literal/LibParseLiteralDecimal.unsafeStrToInt.t.sol index 3c61c66e0..fe01b4ff0 100644 --- a/test/src/lib/parse/literal/LibParseLiteralDecimal.unsafeStrToInt.t.sol +++ b/test/src/lib/parse/literal/LibParseLiteralDecimal.unsafeStrToInt.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/literal/LibParseLiteralDecimal.unsafeStrToSignedInt.t.sol b/test/src/lib/parse/literal/LibParseLiteralDecimal.unsafeStrToSignedInt.t.sol index 44c54c387..dd17b2e6d 100644 --- a/test/src/lib/parse/literal/LibParseLiteralDecimal.unsafeStrToSignedInt.t.sol +++ b/test/src/lib/parse/literal/LibParseLiteralDecimal.unsafeStrToSignedInt.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/literal/LibParseLiteralHex.boundHex.t.sol b/test/src/lib/parse/literal/LibParseLiteralHex.boundHex.t.sol index a63e88f6e..0bee58c7f 100644 --- a/test/src/lib/parse/literal/LibParseLiteralHex.boundHex.t.sol +++ b/test/src/lib/parse/literal/LibParseLiteralHex.boundHex.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {ParseLiteralTest} from "test/abstract/ParseLiteralTest.sol"; diff --git a/test/src/lib/parse/literal/LibParseLiteralHex.parseHex.t.sol b/test/src/lib/parse/literal/LibParseLiteralHex.parseHex.t.sol index f5eaf1eb2..40532fa23 100644 --- a/test/src/lib/parse/literal/LibParseLiteralHex.parseHex.t.sol +++ b/test/src/lib/parse/literal/LibParseLiteralHex.parseHex.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/literal/LibParseLiteralString.boundString.t.sol b/test/src/lib/parse/literal/LibParseLiteralString.boundString.t.sol index 571322655..cb47aed58 100644 --- a/test/src/lib/parse/literal/LibParseLiteralString.boundString.t.sol +++ b/test/src/lib/parse/literal/LibParseLiteralString.boundString.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/literal/LibParseLiteralString.parseString.t.sol b/test/src/lib/parse/literal/LibParseLiteralString.parseString.t.sol index d5ee648a0..0f1223975 100644 --- a/test/src/lib/parse/literal/LibParseLiteralString.parseString.t.sol +++ b/test/src/lib/parse/literal/LibParseLiteralString.parseString.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test} from "forge-std/Test.sol"; diff --git a/test/src/lib/parse/literal/LibParseLiteralSubParseable.parseSubParseable.t.sol b/test/src/lib/parse/literal/LibParseLiteralSubParseable.parseSubParseable.t.sol index 863f608c9..8025dbf37 100644 --- a/test/src/lib/parse/literal/LibParseLiteralSubParseable.parseSubParseable.t.sol +++ b/test/src/lib/parse/literal/LibParseLiteralSubParseable.parseSubParseable.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {Test, console2} from "forge-std/Test.sol"; diff --git a/test/src/lib/state/LibInterpreterStateNP.stackTrace.t.sol b/test/src/lib/state/LibInterpreterStateNP.stackTrace.t.sol index 40800e91c..f2bf8af9d 100644 --- a/test/src/lib/state/LibInterpreterStateNP.stackTrace.t.sol +++ b/test/src/lib/state/LibInterpreterStateNP.stackTrace.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.18; import {LibUint256Array} from "rain.solmem/lib/LibUint256Array.sol"; diff --git a/test/utils/TestERC20.sol b/test/utils/TestERC20.sol index 97f7fbe3f..e83f81b31 100644 --- a/test/utils/TestERC20.sol +++ b/test/utils/TestERC20.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 thedavidmeister +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity =0.8.25; import {ERC20} from "openzeppelin-contracts/contracts/token/ERC20/ERC20.sol"; From 85439288691bcfb12a584bac833ff59e7f5d9f02 Mon Sep 17 00:00:00 2001 From: thedavidmeister Date: Sat, 7 Dec 2024 18:19:20 +0400 Subject: [PATCH 39/62] add author to cargo --- Cargo.toml | 1 + crates/bindings/Cargo.toml | 1 + crates/cli/Cargo.toml | 1 + crates/dispair/Cargo.toml | 1 + crates/eval/Cargo.toml | 1 + crates/parser/Cargo.toml | 1 + crates/test_fixtures/Cargo.toml | 1 + 7 files changed, 7 insertions(+) diff --git a/Cargo.toml b/Cargo.toml index f7596a2d5..298014afe 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -6,6 +6,7 @@ resolver = "2" version = "0.0.0-alpha.0" edition = "2021" license = "LicenseRef-DCL-1.0" +author = "Rain Open Source Software Ltd" homepage = "https://github.com/rainlanguage/rain.interpreter" [workspace.dependencies] diff --git a/crates/bindings/Cargo.toml b/crates/bindings/Cargo.toml index 3e6327200..be04bd555 100644 --- a/crates/bindings/Cargo.toml +++ b/crates/bindings/Cargo.toml @@ -3,6 +3,7 @@ name = "rain_interpreter_bindings" version.workspace = true edition.workspace = true license.workspace = true +author.workspace = true homepage.workspace = true # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/crates/cli/Cargo.toml b/crates/cli/Cargo.toml index fc2620e3d..59fa7ec63 100644 --- a/crates/cli/Cargo.toml +++ b/crates/cli/Cargo.toml @@ -4,6 +4,7 @@ description = "Rain Interpreter CLI." version.workspace = true edition.workspace = true license.workspace = true +author.workspace = true homepage.workspace = true # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/crates/dispair/Cargo.toml b/crates/dispair/Cargo.toml index bf312e697..db1debdf6 100644 --- a/crates/dispair/Cargo.toml +++ b/crates/dispair/Cargo.toml @@ -4,6 +4,7 @@ description = "Rain Interpreter Rust Crate." version.workspace = true edition.workspace = true license.workspace = true +author.workspace = true homepage.workspace = true [dependencies] diff --git a/crates/eval/Cargo.toml b/crates/eval/Cargo.toml index ffaa9cc8c..f29c0ad2c 100644 --- a/crates/eval/Cargo.toml +++ b/crates/eval/Cargo.toml @@ -3,6 +3,7 @@ name = "rain-interpreter-eval" version.workspace = true edition.workspace = true license.workspace = true +author.workspace = true homepage.workspace = true [dependencies] diff --git a/crates/parser/Cargo.toml b/crates/parser/Cargo.toml index 8c5c9197c..8c48e9353 100644 --- a/crates/parser/Cargo.toml +++ b/crates/parser/Cargo.toml @@ -4,6 +4,7 @@ description = "Rain Interpreter Parser Rust Crate." version.workspace = true edition.workspace = true license.workspace = true +author.workspace = true homepage.workspace = true [dependencies] diff --git a/crates/test_fixtures/Cargo.toml b/crates/test_fixtures/Cargo.toml index f8c2999dc..a2b999aa2 100644 --- a/crates/test_fixtures/Cargo.toml +++ b/crates/test_fixtures/Cargo.toml @@ -3,6 +3,7 @@ name = "rain_interpreter_test_fixtures" version.workspace = true edition.workspace = true license.workspace = true +author.workspace = true homepage.workspace = true publish = false From efb9f09ff8e2da803c707cff8fc5cb2da5a8d167 Mon Sep 17 00:00:00 2001 From: rouzwelt Date: Wed, 12 Feb 2025 00:39:03 +0000 Subject: [PATCH 40/62] rm typeshare and add wasm bindgen --- Cargo.lock | 110 +++++++++++++++++++++++++++------------ Cargo.toml | 1 - crates/eval/Cargo.toml | 4 +- crates/eval/src/trace.rs | 9 ++-- lib/rain.metadata | 2 +- 5 files changed, 86 insertions(+), 40 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 634bc9ef1..f4c0645da 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1582,9 +1582,7 @@ checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" dependencies = [ "android-tzdata", "iana-time-zone", - "js-sys", "num-traits", - "wasm-bindgen", "windows-targets 0.52.6", ] @@ -5172,7 +5170,7 @@ dependencies = [ "thiserror", "tokio", "tracing", - "typeshare", + "wasm-bindgen-utils", ] [[package]] @@ -6016,6 +6014,17 @@ dependencies = [ "serde_derive", ] +[[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.15" @@ -6036,6 +6045,17 @@ dependencies = [ "syn 2.0.74", ] +[[package]] +name = "serde_derive_internals" +version = "0.29.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.74", +] + [[package]] name = "serde_json" version = "1.0.125" @@ -6867,6 +6887,30 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" +[[package]] +name = "tsify-next" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a8bf7232b89b86f63b5f0ef22c64960f9cf4fb52c6698f1e7f60de93bc3292f" +dependencies = [ + "serde", + "serde-wasm-bindgen", + "tsify-next-macros", + "wasm-bindgen", +] + +[[package]] +name = "tsify-next-macros" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab2d85ebe93eedca20d3fe6d65814c856467a649674aa7763ebd42e3bb815fec" +dependencies = [ + "proc-macro2", + "quote", + "serde_derive_internals", + "syn 2.0.74", +] + [[package]] name = "tungstenite" version = "0.20.1" @@ -6913,26 +6957,6 @@ version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" -[[package]] -name = "typeshare" -version = "1.0.1" -source = "git+https://github.com/tomjw64/typeshare?rev=556b44aafd5304eedf17206800f69834e3820b7c#556b44aafd5304eedf17206800f69834e3820b7c" -dependencies = [ - "chrono", - "serde", - "serde_json", - "typeshare-annotation", -] - -[[package]] -name = "typeshare-annotation" -version = "1.0.2" -source = "git+https://github.com/tomjw64/typeshare?rev=556b44aafd5304eedf17206800f69834e3820b7c#556b44aafd5304eedf17206800f69834e3820b7c" -dependencies = [ - "quote", - "syn 1.0.109", -] - [[package]] name = "ucd-trie" version = "0.1.6" @@ -7120,24 +7144,24 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.93" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5" +checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" dependencies = [ "cfg-if", "once_cell", + "rustversion", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.93" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b" +checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" dependencies = [ "bumpalo", "log", - "once_cell", "proc-macro2", "quote", "syn 2.0.74", @@ -7158,9 +7182,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.93" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf" +checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -7168,9 +7192,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.93" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" +checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", @@ -7181,9 +7205,27 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.93" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "wasm-bindgen-utils" +version = "0.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484" +checksum = "aecd97a6b3b5a0a1119c10896a92c0211136dab9ee0a86094aa2997d1064a8eb" +dependencies = [ + "js-sys", + "paste", + "serde", + "serde-wasm-bindgen", + "tsify-next", + "wasm-bindgen", + "wasm-bindgen-futures", +] [[package]] name = "web-sys" diff --git a/Cargo.toml b/Cargo.toml index 298014afe..9d5645a06 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -37,7 +37,6 @@ once_cell = "1.17.1" alloy-ethers-typecast = { git = "https://github.com/rainlanguage/alloy-ethers-typecast", rev = "65a68f207287d024cba934bf1e3c8b3f63d2834a" } eyre = "0.6" rain-error-decoding = { git = "https://github.com/rainlanguage/rain.error", rev = "72d9577fdaf7135113847027ba951f9a43b41827" } -typeshare = { git = "https://github.com/tomjw64/typeshare", rev = "556b44aafd5304eedf17206800f69834e3820b7c" } [workspace.dependencies.rain_interpreter_parser] path = "crates/parser" diff --git a/crates/eval/Cargo.toml b/crates/eval/Cargo.toml index f29c0ad2c..3d659fc60 100644 --- a/crates/eval/Cargo.toml +++ b/crates/eval/Cargo.toml @@ -16,12 +16,14 @@ reqwest = { workspace = true } once_cell = { workspace = true } eyre = { workspace = true } rain-error-decoding = { workspace = true } -typeshare = { workspace = true } [target.'cfg(not(target_family = "wasm"))'.dependencies] foundry-evm = { workspace = true } revm = { workspace = true } +[target.'cfg(target_family = "wasm")'.dependencies] +wasm-bindgen-utils = "0.0" + [dev-dependencies] tokio = { version = "1.28.0", features = ["full"] } tracing = { workspace = true } diff --git a/crates/eval/src/trace.rs b/crates/eval/src/trace.rs index 6955f022c..2056b6e61 100644 --- a/crates/eval/src/trace.rs +++ b/crates/eval/src/trace.rs @@ -5,7 +5,8 @@ use rain_interpreter_bindings::IInterpreterV3::{eval3Call, eval3Return}; use serde::{Deserialize, Serialize}; use std::ops::{Deref, DerefMut}; use thiserror::Error; -use typeshare::typeshare; +#[cfg(target_family = "wasm")] +use wasm_bindgen_utils::{impl_wasm_traits, prelude::*}; pub const RAIN_TRACER_ADDRESS: &str = "0xF06Cd48c98d7321649dB7D8b2C396A81A2046555"; @@ -15,7 +16,7 @@ pub enum RainEvalResultError { CorruptTraces, } -#[typeshare(serialized_as = "Vec")] +#[cfg_attr(target_family = "wasm", tsify_next::declare(type = "string[]"))] type RainStack = Vec; /// A struct representing a single trace from a Rain source. Intended to be decoded @@ -169,12 +170,14 @@ impl DerefMut for RainEvalResults { } } -#[typeshare] #[derive(Debug, Serialize, Deserialize)] +#[cfg_attr(target_family = "wasm", derive(Tsify))] pub struct RainEvalResultsTable { pub column_names: Vec, pub rows: Vec, } +#[cfg(target_family = "wasm")] +impl_wasm_traits!(RainEvalResultsTable); impl RainEvalResults { pub fn into_flattened_table(&self) -> Result { diff --git a/lib/rain.metadata b/lib/rain.metadata index 653c6bc26..e52b69c78 160000 --- a/lib/rain.metadata +++ b/lib/rain.metadata @@ -1 +1 @@ -Subproject commit 653c6bc26e582596e9972bc09138a8d452f37b7e +Subproject commit e52b69c7875accd62ea24f16e676c063d204e152 From e85e55dc4e4581a601d14444bc4a1163c674948d Mon Sep 17 00:00:00 2001 From: rouzwelt Date: Wed, 12 Feb 2025 02:10:42 +0000 Subject: [PATCH 41/62] update --- Cargo.lock | 4 ++-- crates/eval/src/trace.rs | 2 +- lib/rain.metadata | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index f4c0645da..d579a57c1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -7214,9 +7214,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-utils" -version = "0.0.2" +version = "0.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aecd97a6b3b5a0a1119c10896a92c0211136dab9ee0a86094aa2997d1064a8eb" +checksum = "8e8c58755f5caede0eb15a234026993f4543b2d86a5dbf51050311bc7ed4162d" dependencies = [ "js-sys", "paste", diff --git a/crates/eval/src/trace.rs b/crates/eval/src/trace.rs index 2056b6e61..426b54827 100644 --- a/crates/eval/src/trace.rs +++ b/crates/eval/src/trace.rs @@ -16,7 +16,7 @@ pub enum RainEvalResultError { CorruptTraces, } -#[cfg_attr(target_family = "wasm", tsify_next::declare(type = "string[]"))] +#[cfg_attr(target_family = "wasm", tsify::declare(type = "string[]"))] type RainStack = Vec; /// A struct representing a single trace from a Rain source. Intended to be decoded diff --git a/lib/rain.metadata b/lib/rain.metadata index e52b69c78..50d5f9504 160000 --- a/lib/rain.metadata +++ b/lib/rain.metadata @@ -1 +1 @@ -Subproject commit e52b69c7875accd62ea24f16e676c063d204e152 +Subproject commit 50d5f9504dd5c2f9bc638b2a76ce6ea500548022 From 7e72a1f007435a8b9ed7c61cc9526627707f3ea1 Mon Sep 17 00:00:00 2001 From: rouzwelt Date: Wed, 12 Feb 2025 02:31:48 +0000 Subject: [PATCH 42/62] Update trace.rs --- crates/eval/src/trace.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/crates/eval/src/trace.rs b/crates/eval/src/trace.rs index 426b54827..49f3d94de 100644 --- a/crates/eval/src/trace.rs +++ b/crates/eval/src/trace.rs @@ -171,6 +171,7 @@ impl DerefMut for RainEvalResults { } #[derive(Debug, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] #[cfg_attr(target_family = "wasm", derive(Tsify))] pub struct RainEvalResultsTable { pub column_names: Vec, From 0fa7cd0b54e7ccce75e599cf0f58b138b7e581ae Mon Sep 17 00:00:00 2001 From: rouzwelt Date: Wed, 12 Feb 2025 23:13:00 +0000 Subject: [PATCH 43/62] update --- Cargo.lock | 39 +++++++++++++++++++++++++-------------- lib/rain.metadata | 2 +- 2 files changed, 26 insertions(+), 15 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d579a57c1..11a6afefd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6014,6 +6014,17 @@ 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" @@ -6047,9 +6058,9 @@ dependencies = [ [[package]] name = "serde_derive_internals" -version = "0.29.1" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" +checksum = "e578a843d40b4189a4d66bba51d7684f57da5bd7c304c64e14bd63efbef49509" dependencies = [ "proc-macro2", "quote", @@ -6888,22 +6899,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] -name = "tsify-next" -version = "0.5.5" +name = "tsify" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a8bf7232b89b86f63b5f0ef22c64960f9cf4fb52c6698f1e7f60de93bc3292f" +checksum = "d6b26cf145f2f3b9ff84e182c448eaf05468e247f148cf3d2a7d67d78ff023a0" dependencies = [ "serde", - "serde-wasm-bindgen", - "tsify-next-macros", + "serde-wasm-bindgen 0.5.0", + "tsify-macros", "wasm-bindgen", ] [[package]] -name = "tsify-next-macros" -version = "0.5.5" +name = "tsify-macros" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab2d85ebe93eedca20d3fe6d65814c856467a649674aa7763ebd42e3bb815fec" +checksum = "7a94b0f0954b3e59bfc2c246b4c8574390d94a4ad4ad246aaf2fb07d7dfd3b47" dependencies = [ "proc-macro2", "quote", @@ -7214,15 +7225,15 @@ dependencies = [ [[package]] name = "wasm-bindgen-utils" -version = "0.0.3" +version = "0.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e8c58755f5caede0eb15a234026993f4543b2d86a5dbf51050311bc7ed4162d" +checksum = "237e6e4559e81c2fc316b9b598db1dd706fd035556b227949d055e19f60cc947" dependencies = [ "js-sys", "paste", "serde", - "serde-wasm-bindgen", - "tsify-next", + "serde-wasm-bindgen 0.6.5", + "tsify", "wasm-bindgen", "wasm-bindgen-futures", ] diff --git a/lib/rain.metadata b/lib/rain.metadata index 50d5f9504..a6c290e3d 160000 --- a/lib/rain.metadata +++ b/lib/rain.metadata @@ -1 +1 @@ -Subproject commit 50d5f9504dd5c2f9bc638b2a76ce6ea500548022 +Subproject commit a6c290e3d6b409ed8bbf0bba066ec662e4c0c87a From 8d9d47efe3fa819da52e60985fe2ad214a265f0a Mon Sep 17 00:00:00 2001 From: rouzwelt Date: Mon, 17 Feb 2025 23:09:56 +0000 Subject: [PATCH 44/62] update --- crates/eval/src/trace.rs | 574 +-------------------------------- crates/eval/src/trace/impls.rs | 571 ++++++++++++++++++++++++++++++++ flake.lock | 67 ++-- 3 files changed, 609 insertions(+), 603 deletions(-) create mode 100644 crates/eval/src/trace/impls.rs diff --git a/crates/eval/src/trace.rs b/crates/eval/src/trace.rs index 49f3d94de..6f11bd759 100644 --- a/crates/eval/src/trace.rs +++ b/crates/eval/src/trace.rs @@ -1,175 +1,16 @@ -use crate::fork::ForkTypedReturn; -use alloy::primitives::{Address, U256}; -use foundry_evm::executors::RawCallResult; -use rain_interpreter_bindings::IInterpreterV3::{eval3Call, eval3Return}; +use alloy::primitives::U256; use serde::{Deserialize, Serialize}; -use std::ops::{Deref, DerefMut}; -use thiserror::Error; #[cfg(target_family = "wasm")] use wasm_bindgen_utils::{impl_wasm_traits, prelude::*}; -pub const RAIN_TRACER_ADDRESS: &str = "0xF06Cd48c98d7321649dB7D8b2C396A81A2046555"; - -#[derive(Error, Debug)] -pub enum RainEvalResultError { - #[error("Corrupt traces")] - CorruptTraces, -} +#[cfg(not(target_family = "wasm"))] +mod impls; +#[cfg(not(target_family = "wasm"))] +pub use impls::*; #[cfg_attr(target_family = "wasm", tsify::declare(type = "string[]"))] type RainStack = Vec; -/// A struct representing a single trace from a Rain source. Intended to be decoded -/// from the calldata sent as part of a noop call by the Interpreter to the -/// non-existent tracer contract. -#[derive(Debug, Clone, PartialEq, Eq)] -pub struct RainSourceTrace { - pub parent_source_index: u16, - pub source_index: u16, - pub stack: RainStack, -} - -#[derive(Debug, Clone, PartialEq, Eq)] -pub struct RainSourceTraces { - pub traces: Vec, -} - -impl Deref for RainSourceTraces { - type Target = Vec; - - fn deref(&self) -> &Self::Target { - &self.traces - } -} - -impl DerefMut for RainSourceTraces { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.traces - } -} - -impl FromIterator for RainSourceTraces { - fn from_iter>(iter: I) -> Self { - RainSourceTraces { - traces: iter.into_iter().collect(), - } - } -} - -impl RainSourceTrace { - fn from_data(data: &[u8]) -> Option { - if data.len() < 4 { - return None; - } - - // Parse parent and source indices from the next 4 bytes - let parent_source_index = u16::from_be_bytes([data[0], data[1]]); - let source_index = u16::from_be_bytes([data[2], data[3]]); - - // Initialize the stack vector - let mut stack = Vec::new(); - - // Start reading stack values after the indices, which is 4 bytes in from the current data slice - let mut i = 4; - while i + 32 <= data.len() { - // Parse each 32-byte segment as a U256 value - let value = U256::from_be_slice(&data[i..i + 32]); - stack.push(value); - i += 32; // Move to the next 32-byte segment - } - - Some(RainSourceTrace { - parent_source_index, - source_index, - stack, - }) - } -} - -impl RainSourceTraces { - pub fn flatten(&self) -> RainStack { - let mut flattened_stack: RainStack = vec![]; - for trace in self.traces.iter() { - let mut stack = trace.stack.clone(); - stack.reverse(); - for stack_item in stack.iter() { - flattened_stack.push(*stack_item); - } - } - flattened_stack - } - pub fn flattened_path_names(&self) -> Result, RainEvalResultError> { - let mut path_names: Vec = vec![]; - let mut source_paths: Vec = vec![]; - - for trace in self.iter() { - let current_path = if trace.parent_source_index == trace.source_index { - format!("{}", trace.source_index) - } else { - source_paths - .iter() - .rev() - .find_map(|recent_path| { - recent_path.split('.').last().and_then(|last_part| { - if last_part == trace.parent_source_index.to_string() { - Some(format!("{}.{}", recent_path, trace.source_index)) - } else { - None - } - }) - }) - .unwrap_or(format!( - "{}?.{}", - trace.parent_source_index, trace.source_index - )) - }; - - for (index, _) in trace.stack.iter().enumerate() { - path_names.push(format!("{}.{}", current_path, index)); - } - - source_paths.push(current_path); - } - - Ok(path_names) - } -} - -/// A struct representing the result of a Rain eval call. Contains the stack, -/// writes, and traces. Can be constructed from a `ForkTypedReturn`. -#[derive(Debug, Clone)] -pub struct RainEvalResult { - pub reverted: bool, - pub stack: Vec, - pub writes: Vec, - pub traces: RainSourceTraces, -} - -#[derive(Debug, Clone)] -pub struct RainEvalResults { - pub results: Vec, -} - -impl From> for RainEvalResults { - fn from(results: Vec) -> Self { - RainEvalResults { results } - } -} - -impl Deref for RainEvalResults { - type Target = Vec; - - fn deref(&self) -> &Self::Target { - &self.results - } -} - -impl DerefMut for RainEvalResults { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.results - } -} - #[derive(Debug, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] #[cfg_attr(target_family = "wasm", derive(Tsify))] @@ -179,408 +20,3 @@ pub struct RainEvalResultsTable { } #[cfg(target_family = "wasm")] impl_wasm_traits!(RainEvalResultsTable); - -impl RainEvalResults { - pub fn into_flattened_table(&self) -> Result { - let column_names = &self.results[0].traces.flattened_path_names()?; - let mut rows = Vec::new(); - for result in &self.results { - rows.push(result.traces.flatten()); - } - Ok(RainEvalResultsTable { - column_names: column_names.to_vec(), - rows, - }) - } -} - -impl From for RainEvalResult { - fn from(raw_call_result: RawCallResult) -> Self { - let tracer_address = RAIN_TRACER_ADDRESS.parse::
().unwrap(); - - let mut traces: RainSourceTraces = raw_call_result - .traces - .unwrap() - .to_owned() - .into_nodes() - .iter() - .filter_map(|trace_node| { - if Address::from(trace_node.trace.address.into_array()) == tracer_address { - RainSourceTrace::from_data(&trace_node.trace.data) - } else { - None - } - }) - .collect(); - traces.reverse(); - - RainEvalResult { - reverted: raw_call_result.reverted, - stack: vec![], - writes: vec![], - traces, - } - } -} - -impl From> for RainEvalResult { - fn from(typed_return: ForkTypedReturn) -> Self { - let eval3Return { stack, writes } = typed_return.typed_return; - - let res: RainEvalResult = typed_return.raw.into(); - - RainEvalResult { - reverted: res.reverted, - stack, - writes, - traces: res.traces, - } - } -} - -#[derive(Error, Debug)] -pub enum TraceSearchError { - #[error("Unparseable trace path: {0}")] - BadTracePath(String), - #[error("Trace not found: {0}")] - TraceNotFound(String), -} - -impl RainEvalResult { - pub fn search_trace_by_path(&self, path: &str) -> Result { - let mut parts = path.split('.').collect::>(); - - if parts.len() < 2 { - return Err(TraceSearchError::BadTracePath(path.to_string())); - } - - let stack_index = parts - .pop() - .unwrap() - .parse::() - .map_err(|_| TraceSearchError::BadTracePath(path.to_string()))?; - - let mut current_parent_index = parts[0] - .parse::() - .map_err(|_| TraceSearchError::BadTracePath(path.to_string()))?; - let mut current_source_index = parts[0] - .parse::() - .map_err(|_| TraceSearchError::BadTracePath(path.to_string()))?; - - for part in parts.iter().skip(1) { - let next_source_index = part - .parse::() - .map_err(|_| TraceSearchError::BadTracePath(path.to_string()))?; - - if let Some(trace) = self.traces.iter().find(|t| { - t.parent_source_index == current_parent_index && t.source_index == next_source_index - }) { - current_parent_index = trace.parent_source_index; - current_source_index = trace.source_index; - } else { - return Err(TraceSearchError::TraceNotFound(format!( - "Trace with parent {}.{} not found", - current_parent_index, next_source_index - ))); - } - } - self.traces - .iter() - .find(|t| { - t.parent_source_index == current_parent_index - && t.source_index == current_source_index - }) - .ok_or_else(|| { - TraceSearchError::TraceNotFound(format!( - "Trace with parent {}.{} not found", - current_parent_index, current_source_index - )) - }) - .and_then(|trace| { - // Reverse the stack order to account for the last item being at index 0 - let reversed_stack_index = trace.stack.len().checked_sub(stack_index + 1).ok_or( - TraceSearchError::TraceNotFound(format!( - "Stack index {} out of bounds in trace {}.{}", - stack_index, current_parent_index, current_source_index - )), - )?; - - trace.stack.get(reversed_stack_index).cloned().ok_or( - TraceSearchError::TraceNotFound(format!( - "Reversed stack index {} not found in trace {}.{}", - reversed_stack_index, current_parent_index, current_source_index - )), - ) - }) - } -} - -#[cfg(test)] -mod tests { - use super::*; - use crate::eval::ForkEvalArgs; - use crate::fork::{Forker, NewForkedEvm}; - use alloy::primitives::utils::parse_ether; - use rain_interpreter_bindings::IInterpreterStoreV1::FullyQualifiedNamespace; - use rain_interpreter_test_fixtures::LocalEvm; - - #[tokio::test(flavor = "multi_thread", worker_threads = 1)] - async fn test_fork_trace() { - let local_evm = LocalEvm::new().await; - let deployer = *local_evm.deployer.address(); - let args = NewForkedEvm { - fork_url: local_evm.url(), - fork_block_number: None, - }; - let fork = Forker::new_with_fork(args, None, None).await.unwrap(); - - let res = fork - .fork_eval(ForkEvalArgs { - rainlang_string: r" - a: add(1 2), - b: 2, - c: 4, - _: call<1>(1 2), - :set(1 2), - :set(3 4); - a b:, - c: call<2>(a b), - d: add(a b); - a b:, - c: mul(a b); - " - .into(), - source_index: 0, - deployer, - namespace: FullyQualifiedNamespace::default(), - context: vec![], - decode_errors: true, - }) - .await - .unwrap(); - - let rain_eval_result = RainEvalResult::from(res); - - // reverted - assert!(!rain_eval_result.reverted); - // stack - let expected_stack = vec_i32_to_u256(vec![3, 4, 2, 3]); - assert_eq!(rain_eval_result.stack, expected_stack); - - // storage writes - let expected_writes = vec_i32_to_u256(vec![3, 4, 1, 2]); - assert_eq!(rain_eval_result.writes, expected_writes); - - // stack traces - // 0 0 - let trace_0 = RainSourceTrace { - parent_source_index: 0, - source_index: 0, - stack: vec_i32_to_u256(vec![3, 4, 2, 3]), - }; - assert_eq!(rain_eval_result.traces[0], trace_0); - // 0 1 - let trace_1 = RainSourceTrace { - parent_source_index: 0, - source_index: 1, - stack: vec_i32_to_u256(vec![3, 2, 2, 1]), - }; - assert_eq!(rain_eval_result.traces[1], trace_1); - // 1 2 - let trace_2 = RainSourceTrace { - parent_source_index: 1, - source_index: 2, - stack: vec_i32_to_u256(vec![2, 2, 1]), - }; - assert_eq!(rain_eval_result.traces[2], trace_2); - } - - #[tokio::test(flavor = "multi_thread", worker_threads = 1)] - async fn test_search_trace_by_path() { - let local_evm = LocalEvm::new().await; - let deployer = *local_evm.deployer.address(); - let args = NewForkedEvm { - fork_url: local_evm.url(), - fork_block_number: None, - }; - let fork = Forker::new_with_fork(args, None, None).await.unwrap(); - - let res = fork - .fork_eval(ForkEvalArgs { - rainlang_string: r" - a: add(1 2), - b: 2, - c: 4, - _: call<1>(1 2); - a b:, - c: call<2>(a b), - d: add(a b); - a b:, - c: mul(a b); - " - .into(), - source_index: 0, - deployer, - namespace: FullyQualifiedNamespace::default(), - context: vec![], - decode_errors: true, - }) - .await - .unwrap(); - - let rain_eval_result = RainEvalResult::from(res); - - // search_trace_by_path - let trace_0 = rain_eval_result.search_trace_by_path("0.1").unwrap(); - assert_eq!(trace_0, parse_ether("2").unwrap()); - let trace_1 = rain_eval_result.search_trace_by_path("0.1.3").unwrap(); - assert_eq!(trace_1, parse_ether("3").unwrap()); - let trace_2 = rain_eval_result.search_trace_by_path("0.1.2").unwrap(); - assert_eq!(trace_2, parse_ether("2").unwrap()); - - // test the various errors - // bad trace path - let result = rain_eval_result.search_trace_by_path("0"); - assert!(matches!(result, Err(TraceSearchError::BadTracePath(_)))); - let result = rain_eval_result.search_trace_by_path("0.1."); - assert!(matches!(result, Err(TraceSearchError::BadTracePath(_)))); - - let result = rain_eval_result.search_trace_by_path("0.1.12"); - assert!(matches!(result, Err(TraceSearchError::TraceNotFound(_)))); - } - - #[test] - fn test_rain_source_trace_from_data() { - // stack items are 32 bytes each - let stack_items = [U256::from(1), U256::from(2), U256::from(3)]; - let stack_data: Vec = stack_items - .iter() - .flat_map(|x| x.to_be_bytes_vec()) - .collect(); - - let source_indices = [ - 0x00, 0x01, 0x00, 0x02, // parent_source_index: 1, source_index: 2 - ]; - - // concat source indices and stack data - let data: Vec = source_indices - .iter() - .chain(stack_data.iter()) - .copied() - .collect(); - - let trace = RainSourceTrace::from_data(&data).unwrap(); - - assert_eq!(trace.parent_source_index, 1); - assert_eq!(trace.source_index, 2); - assert_eq!(trace.stack.len(), 3); - assert_eq!(trace.stack[0], U256::from(1)); - } - - #[test] - fn test_rain_source_traces_deref() { - let trace1 = RainSourceTrace { - parent_source_index: 1, - source_index: 1, // Adjusted to have the same parent and source index for consistency - stack: vec![U256::from(1)], - }; - let trace2 = RainSourceTrace { - parent_source_index: 1, // Adjusted to match the parent_source_index - source_index: 2, - stack: vec![U256::from(2)], - }; - - let traces = RainSourceTraces { - traces: vec![trace1.clone(), trace2.clone()], - }; - - assert_eq!(traces[0], trace1); - assert_eq!(traces[1], trace2); - } - - #[test] - fn test_rain_source_traces_flatten() { - let trace1 = RainSourceTrace { - parent_source_index: 1, - source_index: 1, // Adjusted to match the test case - stack: vec![U256::from(1), U256::from(2)], - }; - let trace2 = RainSourceTrace { - parent_source_index: 1, // Adjusted to match the parent_source_index - source_index: 2, - stack: vec![U256::from(3)], - }; - - let traces = RainSourceTraces { - traces: vec![trace1, trace2], - }; - - let flattened_stack = traces.flatten(); - assert_eq!( - flattened_stack, - vec![U256::from(2), U256::from(1), U256::from(3)] - ); - } - - #[test] - fn test_rain_source_traces_flattened_path_names() { - let trace1 = RainSourceTrace { - parent_source_index: 1, - source_index: 1, // Adjusted to match the test case - stack: vec![U256::from(1), U256::from(2)], - }; - let trace2 = RainSourceTrace { - parent_source_index: 1, // Adjusted to match the parent_source_index - source_index: 2, - stack: vec![U256::from(3)], - }; - - let traces = RainSourceTraces { - traces: vec![trace1, trace2], - }; - - let path_names = traces.flattened_path_names().unwrap(); - assert_eq!(path_names, vec!["1.0", "1.1", "1.2.0"]); - } - - #[test] - fn test_rain_eval_result_into_flattened_table() { - let trace1 = RainSourceTrace { - parent_source_index: 1, - source_index: 1, // Adjusted to match the test case - stack: vec![U256::from(1), U256::from(2)], - }; - let trace2 = RainSourceTrace { - parent_source_index: 1, // Adjusted to match the parent_source_index - source_index: 2, - stack: vec![U256::from(3)], - }; - - let rain_eval_result = RainEvalResult { - reverted: false, - stack: vec![], - writes: vec![], - traces: RainSourceTraces { - traces: vec![trace1, trace2], - }, - }; - - let rain_eval_results = RainEvalResults { - results: vec![rain_eval_result], - }; - - let table = rain_eval_results.into_flattened_table().unwrap(); - assert_eq!(table.column_names, vec!["1.0", "1.1", "1.2.0"]); - assert_eq!(table.rows.len(), 1); - assert_eq!( - table.rows[0], - vec![U256::from(2), U256::from(1), U256::from(3)] - ); - } - - fn vec_i32_to_u256(vec: Vec) -> Vec { - vec.iter() - .map(|&x| parse_ether(&x.to_string()).unwrap()) - .collect() - } -} diff --git a/crates/eval/src/trace/impls.rs b/crates/eval/src/trace/impls.rs new file mode 100644 index 000000000..757c4748a --- /dev/null +++ b/crates/eval/src/trace/impls.rs @@ -0,0 +1,571 @@ +use super::*; +use crate::fork::ForkTypedReturn; +use alloy::primitives::{Address, U256}; +use foundry_evm::executors::RawCallResult; +use rain_interpreter_bindings::IInterpreterV3::{eval3Call, eval3Return}; +use std::ops::{Deref, DerefMut}; +use thiserror::Error; + +pub const RAIN_TRACER_ADDRESS: &str = "0xF06Cd48c98d7321649dB7D8b2C396A81A2046555"; + +#[derive(Error, Debug)] +pub enum RainEvalResultError { + #[error("Corrupt traces")] + CorruptTraces, +} + +/// A struct representing a single trace from a Rain source. Intended to be decoded +/// from the calldata sent as part of a noop call by the Interpreter to the +/// non-existent tracer contract. +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct RainSourceTrace { + pub parent_source_index: u16, + pub source_index: u16, + pub stack: RainStack, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct RainSourceTraces { + pub traces: Vec, +} + +impl Deref for RainSourceTraces { + type Target = Vec; + + fn deref(&self) -> &Self::Target { + &self.traces + } +} + +impl DerefMut for RainSourceTraces { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.traces + } +} + +impl FromIterator for RainSourceTraces { + fn from_iter>(iter: I) -> Self { + RainSourceTraces { + traces: iter.into_iter().collect(), + } + } +} + +impl RainSourceTrace { + fn from_data(data: &[u8]) -> Option { + if data.len() < 4 { + return None; + } + + // Parse parent and source indices from the next 4 bytes + let parent_source_index = u16::from_be_bytes([data[0], data[1]]); + let source_index = u16::from_be_bytes([data[2], data[3]]); + + // Initialize the stack vector + let mut stack = Vec::new(); + + // Start reading stack values after the indices, which is 4 bytes in from the current data slice + let mut i = 4; + while i + 32 <= data.len() { + // Parse each 32-byte segment as a U256 value + let value = U256::from_be_slice(&data[i..i + 32]); + stack.push(value); + i += 32; // Move to the next 32-byte segment + } + + Some(RainSourceTrace { + parent_source_index, + source_index, + stack, + }) + } +} + +impl RainSourceTraces { + pub fn flatten(&self) -> RainStack { + let mut flattened_stack: RainStack = vec![]; + for trace in self.traces.iter() { + let mut stack = trace.stack.clone(); + stack.reverse(); + for stack_item in stack.iter() { + flattened_stack.push(*stack_item); + } + } + flattened_stack + } + pub fn flattened_path_names(&self) -> Result, RainEvalResultError> { + let mut path_names: Vec = vec![]; + let mut source_paths: Vec = vec![]; + + for trace in self.iter() { + let current_path = if trace.parent_source_index == trace.source_index { + format!("{}", trace.source_index) + } else { + source_paths + .iter() + .rev() + .find_map(|recent_path| { + recent_path.split('.').last().and_then(|last_part| { + if last_part == trace.parent_source_index.to_string() { + Some(format!("{}.{}", recent_path, trace.source_index)) + } else { + None + } + }) + }) + .unwrap_or(format!( + "{}?.{}", + trace.parent_source_index, trace.source_index + )) + }; + + for (index, _) in trace.stack.iter().enumerate() { + path_names.push(format!("{}.{}", current_path, index)); + } + + source_paths.push(current_path); + } + + Ok(path_names) + } +} + +/// A struct representing the result of a Rain eval call. Contains the stack, +/// writes, and traces. Can be constructed from a `ForkTypedReturn`. +#[derive(Debug, Clone)] +pub struct RainEvalResult { + pub reverted: bool, + pub stack: Vec, + pub writes: Vec, + pub traces: RainSourceTraces, +} + +#[derive(Debug, Clone)] +pub struct RainEvalResults { + pub results: Vec, +} + +impl From> for RainEvalResults { + fn from(results: Vec) -> Self { + RainEvalResults { results } + } +} + +impl Deref for RainEvalResults { + type Target = Vec; + + fn deref(&self) -> &Self::Target { + &self.results + } +} + +impl DerefMut for RainEvalResults { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.results + } +} + +impl RainEvalResults { + pub fn into_flattened_table(&self) -> Result { + let column_names = &self.results[0].traces.flattened_path_names()?; + let mut rows = Vec::new(); + for result in &self.results { + rows.push(result.traces.flatten()); + } + Ok(RainEvalResultsTable { + column_names: column_names.to_vec(), + rows, + }) + } +} + +impl From for RainEvalResult { + fn from(raw_call_result: RawCallResult) -> Self { + let tracer_address = RAIN_TRACER_ADDRESS.parse::
().unwrap(); + + let mut traces: RainSourceTraces = raw_call_result + .traces + .unwrap() + .to_owned() + .into_nodes() + .iter() + .filter_map(|trace_node| { + if Address::from(trace_node.trace.address.into_array()) == tracer_address { + RainSourceTrace::from_data(&trace_node.trace.data) + } else { + None + } + }) + .collect(); + traces.reverse(); + + RainEvalResult { + reverted: raw_call_result.reverted, + stack: vec![], + writes: vec![], + traces, + } + } +} + +impl From> for RainEvalResult { + fn from(typed_return: ForkTypedReturn) -> Self { + let eval3Return { stack, writes } = typed_return.typed_return; + + let res: RainEvalResult = typed_return.raw.into(); + + RainEvalResult { + reverted: res.reverted, + stack, + writes, + traces: res.traces, + } + } +} + +#[derive(Error, Debug)] +pub enum TraceSearchError { + #[error("Unparseable trace path: {0}")] + BadTracePath(String), + #[error("Trace not found: {0}")] + TraceNotFound(String), +} + +impl RainEvalResult { + pub fn search_trace_by_path(&self, path: &str) -> Result { + let mut parts = path.split('.').collect::>(); + + if parts.len() < 2 { + return Err(TraceSearchError::BadTracePath(path.to_string())); + } + + let stack_index = parts + .pop() + .unwrap() + .parse::() + .map_err(|_| TraceSearchError::BadTracePath(path.to_string()))?; + + let mut current_parent_index = parts[0] + .parse::() + .map_err(|_| TraceSearchError::BadTracePath(path.to_string()))?; + let mut current_source_index = parts[0] + .parse::() + .map_err(|_| TraceSearchError::BadTracePath(path.to_string()))?; + + for part in parts.iter().skip(1) { + let next_source_index = part + .parse::() + .map_err(|_| TraceSearchError::BadTracePath(path.to_string()))?; + + if let Some(trace) = self.traces.iter().find(|t| { + t.parent_source_index == current_parent_index && t.source_index == next_source_index + }) { + current_parent_index = trace.parent_source_index; + current_source_index = trace.source_index; + } else { + return Err(TraceSearchError::TraceNotFound(format!( + "Trace with parent {}.{} not found", + current_parent_index, next_source_index + ))); + } + } + self.traces + .iter() + .find(|t| { + t.parent_source_index == current_parent_index + && t.source_index == current_source_index + }) + .ok_or_else(|| { + TraceSearchError::TraceNotFound(format!( + "Trace with parent {}.{} not found", + current_parent_index, current_source_index + )) + }) + .and_then(|trace| { + // Reverse the stack order to account for the last item being at index 0 + let reversed_stack_index = trace.stack.len().checked_sub(stack_index + 1).ok_or( + TraceSearchError::TraceNotFound(format!( + "Stack index {} out of bounds in trace {}.{}", + stack_index, current_parent_index, current_source_index + )), + )?; + + trace.stack.get(reversed_stack_index).cloned().ok_or( + TraceSearchError::TraceNotFound(format!( + "Reversed stack index {} not found in trace {}.{}", + reversed_stack_index, current_parent_index, current_source_index + )), + ) + }) + } +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::eval::ForkEvalArgs; + use crate::fork::{Forker, NewForkedEvm}; + use alloy::primitives::utils::parse_ether; + use rain_interpreter_bindings::IInterpreterStoreV1::FullyQualifiedNamespace; + use rain_interpreter_test_fixtures::LocalEvm; + + #[tokio::test(flavor = "multi_thread", worker_threads = 1)] + async fn test_fork_trace() { + let local_evm = LocalEvm::new().await; + let deployer = *local_evm.deployer.address(); + let args = NewForkedEvm { + fork_url: local_evm.url(), + fork_block_number: None, + }; + let fork = Forker::new_with_fork(args, None, None).await.unwrap(); + + let res = fork + .fork_eval(ForkEvalArgs { + rainlang_string: r" + a: add(1 2), + b: 2, + c: 4, + _: call<1>(1 2), + :set(1 2), + :set(3 4); + a b:, + c: call<2>(a b), + d: add(a b); + a b:, + c: mul(a b); + " + .into(), + source_index: 0, + deployer, + namespace: FullyQualifiedNamespace::default(), + context: vec![], + decode_errors: true, + }) + .await + .unwrap(); + + let rain_eval_result = RainEvalResult::from(res); + + // reverted + assert!(!rain_eval_result.reverted); + // stack + let expected_stack = vec_i32_to_u256(vec![3, 4, 2, 3]); + assert_eq!(rain_eval_result.stack, expected_stack); + + // storage writes + let expected_writes = vec_i32_to_u256(vec![3, 4, 1, 2]); + assert_eq!(rain_eval_result.writes, expected_writes); + + // stack traces + // 0 0 + let trace_0 = RainSourceTrace { + parent_source_index: 0, + source_index: 0, + stack: vec_i32_to_u256(vec![3, 4, 2, 3]), + }; + assert_eq!(rain_eval_result.traces[0], trace_0); + // 0 1 + let trace_1 = RainSourceTrace { + parent_source_index: 0, + source_index: 1, + stack: vec_i32_to_u256(vec![3, 2, 2, 1]), + }; + assert_eq!(rain_eval_result.traces[1], trace_1); + // 1 2 + let trace_2 = RainSourceTrace { + parent_source_index: 1, + source_index: 2, + stack: vec_i32_to_u256(vec![2, 2, 1]), + }; + assert_eq!(rain_eval_result.traces[2], trace_2); + } + + #[tokio::test(flavor = "multi_thread", worker_threads = 1)] + async fn test_search_trace_by_path() { + let local_evm = LocalEvm::new().await; + let deployer = *local_evm.deployer.address(); + let args = NewForkedEvm { + fork_url: local_evm.url(), + fork_block_number: None, + }; + let fork = Forker::new_with_fork(args, None, None).await.unwrap(); + + let res = fork + .fork_eval(ForkEvalArgs { + rainlang_string: r" + a: add(1 2), + b: 2, + c: 4, + _: call<1>(1 2); + a b:, + c: call<2>(a b), + d: add(a b); + a b:, + c: mul(a b); + " + .into(), + source_index: 0, + deployer, + namespace: FullyQualifiedNamespace::default(), + context: vec![], + decode_errors: true, + }) + .await + .unwrap(); + + let rain_eval_result = RainEvalResult::from(res); + + // search_trace_by_path + let trace_0 = rain_eval_result.search_trace_by_path("0.1").unwrap(); + assert_eq!(trace_0, parse_ether("2").unwrap()); + let trace_1 = rain_eval_result.search_trace_by_path("0.1.3").unwrap(); + assert_eq!(trace_1, parse_ether("3").unwrap()); + let trace_2 = rain_eval_result.search_trace_by_path("0.1.2").unwrap(); + assert_eq!(trace_2, parse_ether("2").unwrap()); + + // test the various errors + // bad trace path + let result = rain_eval_result.search_trace_by_path("0"); + assert!(matches!(result, Err(TraceSearchError::BadTracePath(_)))); + let result = rain_eval_result.search_trace_by_path("0.1."); + assert!(matches!(result, Err(TraceSearchError::BadTracePath(_)))); + + let result = rain_eval_result.search_trace_by_path("0.1.12"); + assert!(matches!(result, Err(TraceSearchError::TraceNotFound(_)))); + } + + #[test] + fn test_rain_source_trace_from_data() { + // stack items are 32 bytes each + let stack_items = [U256::from(1), U256::from(2), U256::from(3)]; + let stack_data: Vec = stack_items + .iter() + .flat_map(|x| x.to_be_bytes_vec()) + .collect(); + + let source_indices = [ + 0x00, 0x01, 0x00, 0x02, // parent_source_index: 1, source_index: 2 + ]; + + // concat source indices and stack data + let data: Vec = source_indices + .iter() + .chain(stack_data.iter()) + .copied() + .collect(); + + let trace = RainSourceTrace::from_data(&data).unwrap(); + + assert_eq!(trace.parent_source_index, 1); + assert_eq!(trace.source_index, 2); + assert_eq!(trace.stack.len(), 3); + assert_eq!(trace.stack[0], U256::from(1)); + } + + #[test] + fn test_rain_source_traces_deref() { + let trace1 = RainSourceTrace { + parent_source_index: 1, + source_index: 1, // Adjusted to have the same parent and source index for consistency + stack: vec![U256::from(1)], + }; + let trace2 = RainSourceTrace { + parent_source_index: 1, // Adjusted to match the parent_source_index + source_index: 2, + stack: vec![U256::from(2)], + }; + + let traces = RainSourceTraces { + traces: vec![trace1.clone(), trace2.clone()], + }; + + assert_eq!(traces[0], trace1); + assert_eq!(traces[1], trace2); + } + + #[test] + fn test_rain_source_traces_flatten() { + let trace1 = RainSourceTrace { + parent_source_index: 1, + source_index: 1, // Adjusted to match the test case + stack: vec![U256::from(1), U256::from(2)], + }; + let trace2 = RainSourceTrace { + parent_source_index: 1, // Adjusted to match the parent_source_index + source_index: 2, + stack: vec![U256::from(3)], + }; + + let traces = RainSourceTraces { + traces: vec![trace1, trace2], + }; + + let flattened_stack = traces.flatten(); + assert_eq!( + flattened_stack, + vec![U256::from(2), U256::from(1), U256::from(3)] + ); + } + + #[test] + fn test_rain_source_traces_flattened_path_names() { + let trace1 = RainSourceTrace { + parent_source_index: 1, + source_index: 1, // Adjusted to match the test case + stack: vec![U256::from(1), U256::from(2)], + }; + let trace2 = RainSourceTrace { + parent_source_index: 1, // Adjusted to match the parent_source_index + source_index: 2, + stack: vec![U256::from(3)], + }; + + let traces = RainSourceTraces { + traces: vec![trace1, trace2], + }; + + let path_names = traces.flattened_path_names().unwrap(); + assert_eq!(path_names, vec!["1.0", "1.1", "1.2.0"]); + } + + #[test] + fn test_rain_eval_result_into_flattened_table() { + let trace1 = RainSourceTrace { + parent_source_index: 1, + source_index: 1, // Adjusted to match the test case + stack: vec![U256::from(1), U256::from(2)], + }; + let trace2 = RainSourceTrace { + parent_source_index: 1, // Adjusted to match the parent_source_index + source_index: 2, + stack: vec![U256::from(3)], + }; + + let rain_eval_result = RainEvalResult { + reverted: false, + stack: vec![], + writes: vec![], + traces: RainSourceTraces { + traces: vec![trace1, trace2], + }, + }; + + let rain_eval_results = RainEvalResults { + results: vec![rain_eval_result], + }; + + let table = rain_eval_results.into_flattened_table().unwrap(); + assert_eq!(table.column_names, vec!["1.0", "1.1", "1.2.0"]); + assert_eq!(table.rows.len(), 1); + assert_eq!( + table.rows[0], + vec![U256::from(2), U256::from(1), U256::from(3)] + ); + } + + fn vec_i32_to_u256(vec: Vec) -> Vec { + vec.iter() + .map(|&x| parse_ether(&x.to_string()).unwrap()) + .collect() + } +} diff --git a/flake.lock b/flake.lock index e13e50b58..af82e41c4 100644 --- a/flake.lock +++ b/flake.lock @@ -5,11 +5,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1726560853, - "narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=", + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", "owner": "numtide", "repo": "flake-utils", - "rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", "type": "github" }, "original": { @@ -110,11 +110,11 @@ "systems": "systems_6" }, "locked": { - "lastModified": 1710146030, - "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", "owner": "numtide", "repo": "flake-utils", - "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", "type": "github" }, "original": { @@ -143,11 +143,11 @@ "systems": "systems_7" }, "locked": { - "lastModified": 1710146030, - "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", "owner": "numtide", "repo": "flake-utils", - "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", "type": "github" }, "original": { @@ -182,16 +182,15 @@ "nixpkgs": "nixpkgs_5" }, "locked": { - "lastModified": 1722676286, - "narHash": "sha256-wEDJdvwRZF2ErQ33nQ0Lqn/48XrPbaadv56/bM2MSZU=", + "lastModified": 1737537011, + "narHash": "sha256-yuwV18EzMxc374K76SC7bV+Llbt2Yc+yRpbVKr2kPM0=", "owner": "shazow", "repo": "foundry.nix", - "rev": "d84c83b1c1722c8742b3d2d84c9386814d75384e", + "rev": "d536ce6c6911de5ded748e237f8e0849783fcc3f", "type": "github" }, "original": { "owner": "shazow", - "ref": "monthly", "repo": "foundry.nix", "type": "github" } @@ -273,11 +272,11 @@ }, "nixpkgs_6": { "locked": { - "lastModified": 1723043047, - "narHash": "sha256-s6LBVajxwWulSiFYRmxfGFHTlyiy1+lHGbW0nCOTPRk=", + "lastModified": 1737568451, + "narHash": "sha256-WwrgAkD4oseuPe9zEDto1D1o3nQ+R7vlwWBrUQDu9ds=", "owner": "nixos", "repo": "nixpkgs", - "rev": "4e8f8f13e64d2795384ed17679bf193987a1f731", + "rev": "7081410b9ace94e412bd02e0d9d2f328fde46b1b", "type": "github" }, "original": { @@ -288,11 +287,11 @@ }, "nixpkgs_7": { "locked": { - "lastModified": 1718428119, - "narHash": "sha256-WdWDpNaq6u1IPtxtYHHWpl5BmabtpmLnMAx0RdJ/vo8=", + "lastModified": 1736320768, + "narHash": "sha256-nIYdTAiKIGnFNugbomgBJR+Xv5F1ZQU+HfaBqJKroC0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "e6cea36f83499eb4e9cd184c8a8e823296b50ad5", + "rev": "4bc9c909d9ac828a039f288cf872d16d38185db8", "type": "github" }, "original": { @@ -304,11 +303,11 @@ }, "nixpkgs_8": { "locked": { - "lastModified": 1717112898, - "narHash": "sha256-7R2ZvOnvd9h8fDd65p0JnB7wXfUvreox3xFdYWd1BnY=", + "lastModified": 1731531548, + "narHash": "sha256-sz8/v17enkYmfpgeeuyzniGJU0QQBfmAjlemAUYhfy8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "6132b0f6e344ce2fe34fc051b72fb46e34f668e0", + "rev": "24f0d4acd634792badd6470134c387a3b039dace", "type": "github" }, "original": { @@ -368,11 +367,11 @@ "solc": "solc_2" }, "locked": { - "lastModified": 1728997542, - "narHash": "sha256-D/CtiI2B1GoAkhGc0Bxq0XPZItWSgBhTPlW//kW4Kqw=", + "lastModified": 1737918303, + "narHash": "sha256-GmCajHkqmDWlVOQa8gc5H2aG5NfV7LDbkviILIXkvk8=", "owner": "rainlanguage", "repo": "rainix", - "rev": "b2722bcc1856af6c925128962ff24fda1bbc2c82", + "rev": "92f143a7b67d77a1d829b5943d4921677214eb5d", "type": "github" }, "original": { @@ -412,11 +411,11 @@ "nixpkgs": "nixpkgs_7" }, "locked": { - "lastModified": 1722997267, - "narHash": "sha256-8Pncp8IKd0f0N711CRrCGTC4iLfBE+/5kaMqyWxnYic=", + "lastModified": 1737512878, + "narHash": "sha256-dgF6htdmfNnZzVInifks6npnCAyVsIHWSpWNs10RSW0=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "d720bf3cebac38c2426d77ee2e59943012854cb8", + "rev": "06b8ed0eee289fe94c66f1202ced9a6a2c59a14c", "type": "github" }, "original": { @@ -447,13 +446,13 @@ "solc-macos-amd64-list-json": { "flake": false, "locked": { - "narHash": "sha256-Prwz95BgMHcWd72VwVbcH17LsV9f24K2QMcUiWUQZzI=", + "narHash": "sha256-KBEEpcDeKtVvCeguRP0D499yg9O5Jef9Nxn3yfrmw9g=", "type": "file", - "url": "https://github.com/ethereum/solc-bin/raw/f743ca7/macosx-amd64/list.json" + "url": "https://github.com/ethereum/solc-bin/raw/67f45d8/macosx-amd64/list.json" }, "original": { "type": "file", - "url": "https://github.com/ethereum/solc-bin/raw/f743ca7/macosx-amd64/list.json" + "url": "https://github.com/ethereum/solc-bin/raw/67f45d8/macosx-amd64/list.json" } }, "solc_2": { @@ -463,11 +462,11 @@ "solc-macos-amd64-list-json": "solc-macos-amd64-list-json" }, "locked": { - "lastModified": 1717442267, - "narHash": "sha256-6TnQvA6Q/xC3r1M+wGC5gnDc/5XfOPjC8X6LlGDWDNc=", + "lastModified": 1731758759, + "narHash": "sha256-NX4+V6Q8bwopah0oza/Dpf6UsYNGbokW2kE9qT3wdHY=", "owner": "hellwolf", "repo": "solc.nix", - "rev": "2ac2862f224aa0d67cbc6b3246392489f8a50596", + "rev": "0714c24cd521b9eb3ee435818c5d743ac6179176", "type": "github" }, "original": { From f84f99d6753d79eedd9d74f929f9b22854fc4cce Mon Sep 17 00:00:00 2001 From: rouzwelt Date: Mon, 17 Feb 2025 23:12:22 +0000 Subject: [PATCH 45/62] Update lib.rs --- crates/eval/src/lib.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/crates/eval/src/lib.rs b/crates/eval/src/lib.rs index 56586abd6..8b509c90b 100644 --- a/crates/eval/src/lib.rs +++ b/crates/eval/src/lib.rs @@ -5,5 +5,4 @@ pub mod eval; #[cfg(not(target_family = "wasm"))] pub mod fork; pub mod namespace; -#[cfg(not(target_family = "wasm"))] pub mod trace; From f6ba96d020e05ee5d8def9196da1edac4fbdbbcf Mon Sep 17 00:00:00 2001 From: rouzwelt Date: Tue, 18 Feb 2025 02:04:20 +0000 Subject: [PATCH 46/62] update --- flake.lock | 67 +++++++++++++++++++++++++++--------------------------- 1 file changed, 34 insertions(+), 33 deletions(-) diff --git a/flake.lock b/flake.lock index af82e41c4..e13e50b58 100644 --- a/flake.lock +++ b/flake.lock @@ -5,11 +5,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1731533236, - "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "lastModified": 1726560853, + "narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=", "owner": "numtide", "repo": "flake-utils", - "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a", "type": "github" }, "original": { @@ -110,11 +110,11 @@ "systems": "systems_6" }, "locked": { - "lastModified": 1731533236, - "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", "owner": "numtide", "repo": "flake-utils", - "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", "type": "github" }, "original": { @@ -143,11 +143,11 @@ "systems": "systems_7" }, "locked": { - "lastModified": 1731533236, - "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", "owner": "numtide", "repo": "flake-utils", - "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", "type": "github" }, "original": { @@ -182,15 +182,16 @@ "nixpkgs": "nixpkgs_5" }, "locked": { - "lastModified": 1737537011, - "narHash": "sha256-yuwV18EzMxc374K76SC7bV+Llbt2Yc+yRpbVKr2kPM0=", + "lastModified": 1722676286, + "narHash": "sha256-wEDJdvwRZF2ErQ33nQ0Lqn/48XrPbaadv56/bM2MSZU=", "owner": "shazow", "repo": "foundry.nix", - "rev": "d536ce6c6911de5ded748e237f8e0849783fcc3f", + "rev": "d84c83b1c1722c8742b3d2d84c9386814d75384e", "type": "github" }, "original": { "owner": "shazow", + "ref": "monthly", "repo": "foundry.nix", "type": "github" } @@ -272,11 +273,11 @@ }, "nixpkgs_6": { "locked": { - "lastModified": 1737568451, - "narHash": "sha256-WwrgAkD4oseuPe9zEDto1D1o3nQ+R7vlwWBrUQDu9ds=", + "lastModified": 1723043047, + "narHash": "sha256-s6LBVajxwWulSiFYRmxfGFHTlyiy1+lHGbW0nCOTPRk=", "owner": "nixos", "repo": "nixpkgs", - "rev": "7081410b9ace94e412bd02e0d9d2f328fde46b1b", + "rev": "4e8f8f13e64d2795384ed17679bf193987a1f731", "type": "github" }, "original": { @@ -287,11 +288,11 @@ }, "nixpkgs_7": { "locked": { - "lastModified": 1736320768, - "narHash": "sha256-nIYdTAiKIGnFNugbomgBJR+Xv5F1ZQU+HfaBqJKroC0=", + "lastModified": 1718428119, + "narHash": "sha256-WdWDpNaq6u1IPtxtYHHWpl5BmabtpmLnMAx0RdJ/vo8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "4bc9c909d9ac828a039f288cf872d16d38185db8", + "rev": "e6cea36f83499eb4e9cd184c8a8e823296b50ad5", "type": "github" }, "original": { @@ -303,11 +304,11 @@ }, "nixpkgs_8": { "locked": { - "lastModified": 1731531548, - "narHash": "sha256-sz8/v17enkYmfpgeeuyzniGJU0QQBfmAjlemAUYhfy8=", + "lastModified": 1717112898, + "narHash": "sha256-7R2ZvOnvd9h8fDd65p0JnB7wXfUvreox3xFdYWd1BnY=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "24f0d4acd634792badd6470134c387a3b039dace", + "rev": "6132b0f6e344ce2fe34fc051b72fb46e34f668e0", "type": "github" }, "original": { @@ -367,11 +368,11 @@ "solc": "solc_2" }, "locked": { - "lastModified": 1737918303, - "narHash": "sha256-GmCajHkqmDWlVOQa8gc5H2aG5NfV7LDbkviILIXkvk8=", + "lastModified": 1728997542, + "narHash": "sha256-D/CtiI2B1GoAkhGc0Bxq0XPZItWSgBhTPlW//kW4Kqw=", "owner": "rainlanguage", "repo": "rainix", - "rev": "92f143a7b67d77a1d829b5943d4921677214eb5d", + "rev": "b2722bcc1856af6c925128962ff24fda1bbc2c82", "type": "github" }, "original": { @@ -411,11 +412,11 @@ "nixpkgs": "nixpkgs_7" }, "locked": { - "lastModified": 1737512878, - "narHash": "sha256-dgF6htdmfNnZzVInifks6npnCAyVsIHWSpWNs10RSW0=", + "lastModified": 1722997267, + "narHash": "sha256-8Pncp8IKd0f0N711CRrCGTC4iLfBE+/5kaMqyWxnYic=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "06b8ed0eee289fe94c66f1202ced9a6a2c59a14c", + "rev": "d720bf3cebac38c2426d77ee2e59943012854cb8", "type": "github" }, "original": { @@ -446,13 +447,13 @@ "solc-macos-amd64-list-json": { "flake": false, "locked": { - "narHash": "sha256-KBEEpcDeKtVvCeguRP0D499yg9O5Jef9Nxn3yfrmw9g=", + "narHash": "sha256-Prwz95BgMHcWd72VwVbcH17LsV9f24K2QMcUiWUQZzI=", "type": "file", - "url": "https://github.com/ethereum/solc-bin/raw/67f45d8/macosx-amd64/list.json" + "url": "https://github.com/ethereum/solc-bin/raw/f743ca7/macosx-amd64/list.json" }, "original": { "type": "file", - "url": "https://github.com/ethereum/solc-bin/raw/67f45d8/macosx-amd64/list.json" + "url": "https://github.com/ethereum/solc-bin/raw/f743ca7/macosx-amd64/list.json" } }, "solc_2": { @@ -462,11 +463,11 @@ "solc-macos-amd64-list-json": "solc-macos-amd64-list-json" }, "locked": { - "lastModified": 1731758759, - "narHash": "sha256-NX4+V6Q8bwopah0oza/Dpf6UsYNGbokW2kE9qT3wdHY=", + "lastModified": 1717442267, + "narHash": "sha256-6TnQvA6Q/xC3r1M+wGC5gnDc/5XfOPjC8X6LlGDWDNc=", "owner": "hellwolf", "repo": "solc.nix", - "rev": "0714c24cd521b9eb3ee435818c5d743ac6179176", + "rev": "2ac2862f224aa0d67cbc6b3246392489f8a50596", "type": "github" }, "original": { From 3d9b14e7b17bea0f9347cb4e9a58dd909d434327 Mon Sep 17 00:00:00 2001 From: rouzwelt Date: Tue, 18 Feb 2025 02:08:35 +0000 Subject: [PATCH 47/62] update --- Cargo.lock | 4 ++-- lib/rain.metadata | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 11a6afefd..d11381bd7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -7225,9 +7225,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-utils" -version = "0.0.5" +version = "0.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "237e6e4559e81c2fc316b9b598db1dd706fd035556b227949d055e19f60cc947" +checksum = "04293ba23e84c21b0d42179abedf35e6eb082bd6f06bce7a42a8dd8e0b2b589f" dependencies = [ "js-sys", "paste", diff --git a/lib/rain.metadata b/lib/rain.metadata index a6c290e3d..9b640cbd1 160000 --- a/lib/rain.metadata +++ b/lib/rain.metadata @@ -1 +1 @@ -Subproject commit a6c290e3d6b409ed8bbf0bba066ec662e4c0c87a +Subproject commit 9b640cbd1a286184755f97a47fe41448f91422c2 From ae5a274b0c48168be475360a8adc0df140784613 Mon Sep 17 00:00:00 2001 From: rouzwelt Date: Tue, 18 Feb 2025 02:19:27 +0000 Subject: [PATCH 48/62] Update trace.rs --- crates/eval/src/trace.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/crates/eval/src/trace.rs b/crates/eval/src/trace.rs index 6f11bd759..1c7962d86 100644 --- a/crates/eval/src/trace.rs +++ b/crates/eval/src/trace.rs @@ -16,6 +16,7 @@ type RainStack = Vec; #[cfg_attr(target_family = "wasm", derive(Tsify))] pub struct RainEvalResultsTable { pub column_names: Vec, + #[cfg_attr(target_family = "wasm", tsify(type = "string[][]"))] pub rows: Vec, } #[cfg(target_family = "wasm")] From aa3bad937fa16c65446922e5a0d55b2ec4de0338 Mon Sep 17 00:00:00 2001 From: rouzwelt Date: Tue, 18 Feb 2025 02:35:23 +0000 Subject: [PATCH 49/62] Update trace.rs --- crates/eval/src/trace.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/crates/eval/src/trace.rs b/crates/eval/src/trace.rs index 1c7962d86..d96e61d67 100644 --- a/crates/eval/src/trace.rs +++ b/crates/eval/src/trace.rs @@ -8,7 +8,6 @@ mod impls; #[cfg(not(target_family = "wasm"))] pub use impls::*; -#[cfg_attr(target_family = "wasm", tsify::declare(type = "string[]"))] type RainStack = Vec; #[derive(Debug, Serialize, Deserialize)] From 5bbade6d4c16142da98b9e67d0e8a883c5f0b26e Mon Sep 17 00:00:00 2001 From: rouzwelt Date: Tue, 18 Feb 2025 03:58:06 +0000 Subject: [PATCH 50/62] Update rain.metadata --- lib/rain.metadata | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/rain.metadata b/lib/rain.metadata index 9b640cbd1..f6ef76904 160000 --- a/lib/rain.metadata +++ b/lib/rain.metadata @@ -1 +1 @@ -Subproject commit 9b640cbd1a286184755f97a47fe41448f91422c2 +Subproject commit f6ef76904912cafa936e6d2a36e16e3449d37f07 From 513727c5d0f7f9a48c936eabc3281311bb82eeb9 Mon Sep 17 00:00:00 2001 From: findolor Date: Wed, 28 May 2025 19:31:04 +0300 Subject: [PATCH 51/62] update the dep version --- Cargo.lock | 26 ++++++++++++++++++++++---- Cargo.toml | 2 +- crates/dispair/src/lib.rs | 6 +++++- crates/parser/src/v1.rs | 11 +++++++++-- crates/parser/src/v2.rs | 7 ++++--- 5 files changed, 41 insertions(+), 11 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d11381bd7..1cb545ded 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,6 +1,6 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "Inflector" @@ -201,7 +201,7 @@ dependencies = [ [[package]] name = "alloy-ethers-typecast" version = "0.2.0" -source = "git+https://github.com/rainlanguage/alloy-ethers-typecast?rev=65a68f207287d024cba934bf1e3c8b3f63d2834a#65a68f207287d024cba934bf1e3c8b3f63d2834a" +source = "git+https://github.com/rainlanguage/alloy-ethers-typecast?rev=f2e4fe4f8ba3773e4266c1911b531b0b22214cfb#f2e4fe4f8ba3773e4266c1911b531b0b22214cfb" dependencies = [ "alloy", "async-trait", @@ -209,7 +209,7 @@ dependencies = [ "ethers", "getrandom", "once_cell", - "rain-error-decoding", + "rain-error-decoding 0.1.0 (git+https://github.com/rainlanguage/rain.error?rev=ab987462d37099af7bdab03d9c308032147a9081)", "reqwest 0.11.27", "serde", "serde_json", @@ -5135,6 +5135,24 @@ dependencies = [ "thiserror", ] +[[package]] +name = "rain-error-decoding" +version = "0.1.0" +source = "git+https://github.com/rainlanguage/rain.error?rev=ab987462d37099af7bdab03d9c308032147a9081#ab987462d37099af7bdab03d9c308032147a9081" +dependencies = [ + "alloy-dyn-abi 0.7.7", + "alloy-json-abi 0.7.7", + "alloy-primitives 0.7.7", + "alloy-sol-types 0.7.7", + "ethers", + "getrandom", + "once_cell", + "reqwest 0.11.27", + "serde", + "serde_json", + "thiserror", +] + [[package]] name = "rain-i9r-cli" version = "0.0.0-alpha.0" @@ -5160,7 +5178,7 @@ dependencies = [ "eyre", "foundry-evm", "once_cell", - "rain-error-decoding", + "rain-error-decoding 0.1.0 (git+https://github.com/rainlanguage/rain.error?rev=72d9577fdaf7135113847027ba951f9a43b41827)", "rain_interpreter_bindings", "rain_interpreter_test_fixtures", "reqwest 0.11.27", diff --git a/Cargo.toml b/Cargo.toml index 9d5645a06..f821b4149 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -34,7 +34,7 @@ tracing = "0.1.37" tracing-subscriber = "0.3.17" reqwest = { version = "0.11.17", features = ["json"] } once_cell = "1.17.1" -alloy-ethers-typecast = { git = "https://github.com/rainlanguage/alloy-ethers-typecast", rev = "65a68f207287d024cba934bf1e3c8b3f63d2834a" } +alloy-ethers-typecast = { git = "https://github.com/rainlanguage/alloy-ethers-typecast", rev = "f2e4fe4f8ba3773e4266c1911b531b0b22214cfb" } eyre = "0.6" rain-error-decoding = { git = "https://github.com/rainlanguage/rain.error", rev = "72d9577fdaf7135113847027ba951f9a43b41827" } diff --git a/crates/dispair/src/lib.rs b/crates/dispair/src/lib.rs index 199e93451..92236068f 100644 --- a/crates/dispair/src/lib.rs +++ b/crates/dispair/src/lib.rs @@ -72,6 +72,7 @@ impl DISPair { #[cfg(test)] mod tests { + use std::collections::HashMap; use super::*; use alloy::primitives::Address; use ethers::providers::{MockProvider, MockResponse, Provider}; @@ -108,7 +109,10 @@ mod tests { interpreter_address )))); - let client = ReadableClient::new(Provider::new(transport)); + let client = ReadableClient::new(HashMap::from([( + "provider".to_string(), + Provider::new(transport) + )])); let dispair = DISPair::from_deployer(deployer_address, client) .await .unwrap(); diff --git a/crates/parser/src/v1.rs b/crates/parser/src/v1.rs index ab3db193c..8bd1169e5 100644 --- a/crates/parser/src/v1.rs +++ b/crates/parser/src/v1.rs @@ -87,6 +87,7 @@ impl Parser for ParserV1 { #[cfg(test)] mod tests { + use std::collections::HashMap; use super::*; use alloy::primitives::{Address, U256}; use ethers::providers::{MockProvider, MockResponse, Provider}; @@ -124,7 +125,10 @@ mod tests { .concat(), ))); - let client = ReadableClient::new(Provider::new(transport)); + let client = ReadableClient::new(HashMap::from([( + "provider".to_string(), + Provider::new(transport) + )])); let parser = ParserV1 { address: Address::repeat_byte(0x1), }; @@ -153,7 +157,10 @@ mod tests { .concat(), ))); - let client = ReadableClient::new(Provider::new(transport)); + let client = ReadableClient::new(HashMap::from([( + "provider".to_string(), + Provider::new(transport) + )])); let parser = ParserV1 { address: Address::repeat_byte(0x1), }; diff --git a/crates/parser/src/v2.rs b/crates/parser/src/v2.rs index 167a97aa6..a61f6fdc2 100644 --- a/crates/parser/src/v2.rs +++ b/crates/parser/src/v2.rs @@ -150,6 +150,7 @@ impl ParserV2 { #[cfg(test)] mod tests { + use std::collections::HashMap; use super::*; use alloy::primitives::Address; use ethers::providers::{MockProvider, MockResponse, Provider}; @@ -183,7 +184,7 @@ mod tests { .concat(), ))); - let client = ReadableClient::new(Provider::new(transport)); + let client = ReadableClient::new(HashMap::from([("provider".to_string(), Provider::new(transport))])); let parser = ParserV2 { deployer_address: Address::repeat_byte(0x1), }; @@ -207,7 +208,7 @@ mod tests { .concat(), ))); - let client = ReadableClient::new(Provider::new(transport)); + let client = ReadableClient::new(HashMap::from([("provider".to_string(), Provider::new(transport))])); let parser = ParserV2 { deployer_address: Address::repeat_byte(0x1), }; @@ -236,7 +237,7 @@ mod tests { .concat(), ))); - let client = ReadableClient::new(Provider::new(transport)); + let client = ReadableClient::new(HashMap::from([("provider".to_string(), Provider::new(transport))])); let parser = ParserV2 { deployer_address: Address::repeat_byte(0x1), }; From 84a2f8ca77ad587c722345973c6926e184d7add5 Mon Sep 17 00:00:00 2001 From: findolor Date: Wed, 28 May 2025 19:33:36 +0300 Subject: [PATCH 52/62] update dep --- Cargo.lock | 321 ++++++++++++++++++----------------------------------- Cargo.toml | 2 +- 2 files changed, 107 insertions(+), 216 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1cb545ded..a087093fe 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -107,7 +107,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da374e868f54c7f4ad2ad56829827badca388efd645f8cf5fccc61c2b5343504" dependencies = [ "alloy-eips", - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-rlp", "alloy-serde", "c-kzg", @@ -120,13 +120,13 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7dc6957ff706f9e5f6fd42f52a93e4bce476b726c92d077b348de28c4a76730c" dependencies = [ - "alloy-dyn-abi 0.7.7", - "alloy-json-abi 0.7.7", + "alloy-dyn-abi", + "alloy-json-abi", "alloy-network", - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-provider", "alloy-rpc-types-eth", - "alloy-sol-types 0.7.7", + "alloy-sol-types", "alloy-transport", "futures", "futures-util", @@ -139,27 +139,10 @@ version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "529fc6310dc1126c8de51c376cbc59c79c7f662bd742be7dc67055d5421a81b4" dependencies = [ - "alloy-dyn-abi 0.7.7", - "alloy-json-abi 0.7.7", - "alloy-primitives 0.7.7", - "alloy-sol-types 0.7.7", -] - -[[package]] -name = "alloy-dyn-abi" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2919acdad13336bc5dc26b636cdd6892c2f27fb0d4a58320a00c2713cf6a4e9a" -dependencies = [ - "alloy-json-abi 0.6.4", - "alloy-primitives 0.6.4", - "alloy-sol-type-parser 0.6.4", - "alloy-sol-types 0.6.4", - "const-hex", - "itoa", - "serde", - "serde_json", - "winnow 0.6.18", + "alloy-dyn-abi", + "alloy-json-abi", + "alloy-primitives", + "alloy-sol-types", ] [[package]] @@ -168,10 +151,10 @@ version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "413902aa18a97569e60f679c23f46a18db1656d87ab4d4e49d0e1e52042f66df" dependencies = [ - "alloy-json-abi 0.7.7", - "alloy-primitives 0.7.7", - "alloy-sol-type-parser 0.7.7", - "alloy-sol-types 0.7.7", + "alloy-json-abi", + "alloy-primitives", + "alloy-sol-type-parser", + "alloy-sol-types", "arbitrary", "const-hex", "derive_arbitrary", @@ -189,7 +172,7 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f76ecab54890cdea1e4808fc0891c7e6cfcf71fe1a9fe26810c7280ef768f4ed" dependencies = [ - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-rlp", "alloy-serde", "c-kzg", @@ -224,31 +207,19 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bca15afde1b6d15e3fc1c97421262b1bbb37aee45752e3c8b6d6f13f776554ff" dependencies = [ - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-serde", "serde", ] -[[package]] -name = "alloy-json-abi" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24ed0f2a6c3a1c947b4508522a53a190dba8f94dcd4e3e1a5af945a498e78f2f" -dependencies = [ - "alloy-primitives 0.6.4", - "alloy-sol-type-parser 0.6.4", - "serde", - "serde_json", -] - [[package]] name = "alloy-json-abi" version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc05b04ac331a9f07e3a4036ef7926e49a8bf84a99a1ccfc7e2ab55a5fcbb372" dependencies = [ - "alloy-primitives 0.7.7", - "alloy-sol-type-parser 0.7.7", + "alloy-primitives", + "alloy-sol-type-parser", "serde", "serde_json", ] @@ -259,7 +230,7 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d6f34930b7e3e2744bcc79056c217f00cb2abb33bc5d4ff88da7623c5bb078b" dependencies = [ - "alloy-primitives 0.7.7", + "alloy-primitives", "serde", "serde_json", "thiserror", @@ -275,11 +246,11 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-json-rpc", - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-rpc-types-eth", "alloy-serde", "alloy-signer", - "alloy-sol-types 0.7.7", + "alloy-sol-types", "async-trait", "auto_impl", "futures-utils-wasm", @@ -293,7 +264,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "494b2fb0276a78ec13791446a417c2517eee5c8e8a8c520ae0681975b8056e5c" dependencies = [ "alloy-genesis", - "alloy-primitives 0.7.7", + "alloy-primitives", "k256", "serde_json", "tempfile", @@ -302,29 +273,6 @@ dependencies = [ "url", ] -[[package]] -name = "alloy-primitives" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "600d34d8de81e23b6d909c094e23b3d357e01ca36b78a8c5424c501eedbe86f0" -dependencies = [ - "alloy-rlp", - "bytes", - "cfg-if", - "const-hex", - "derive_more", - "getrandom", - "hex-literal", - "itoa", - "k256", - "keccak-asm", - "proptest", - "rand", - "ruint", - "serde", - "tiny-keccak", -] - [[package]] name = "alloy-primitives" version = "0.7.7" @@ -364,7 +312,7 @@ dependencies = [ "alloy-json-rpc", "alloy-network", "alloy-node-bindings", - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-rpc-client", "alloy-rpc-types-anvil", "alloy-rpc-types-eth", @@ -394,7 +342,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0a7341322d9bc0e49f6e9fd9f2eb8e30f73806f2dd12cbb3d6bab2694c921f87" dependencies = [ "alloy-json-rpc", - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-transport", "bimap", "futures", @@ -467,7 +415,7 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8c7cf4356a9d00df76d6e90d002e2a7b5edc1c8476e90e6f17ab868d99db6435" dependencies = [ - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-serde", "serde", ] @@ -480,7 +428,7 @@ checksum = "6e765962e3b82fd6f276a0873b5bd897e5d75a25f78fa9a6a21bd350d8e98a4e" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-rlp", "alloy-rpc-types-eth", "alloy-serde", @@ -498,10 +446,10 @@ checksum = "ab4123ee21f99ba4bd31bfa36ba89112a18a500f8b452f02b35708b1b951e2b9" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-rlp", "alloy-serde", - "alloy-sol-types 0.7.7", + "alloy-sol-types", "itertools 0.13.0", "serde", "serde_json", @@ -514,7 +462,7 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "567933b1d95fd42cb70b75126e32afec2e5e2c3c16e7100a3f83dc1c80f4dc0e" dependencies = [ - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-rpc-types-eth", "alloy-serde", "serde", @@ -528,7 +476,7 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9416c52959e66ead795a11f4a86c248410e9e368a0765710e57055b8a1774dd6" dependencies = [ - "alloy-primitives 0.7.7", + "alloy-primitives", "serde", "serde_json", ] @@ -539,9 +487,9 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b33753c09fa1ad85e5b092b8dc2372f1e337a42e84b9b4cff9fede75ba4adb32" dependencies = [ - "alloy-dyn-abi 0.7.7", - "alloy-primitives 0.7.7", - "alloy-sol-types 0.7.7", + "alloy-dyn-abi", + "alloy-primitives", + "alloy-sol-types", "async-trait", "auto_impl", "elliptic-curve", @@ -556,11 +504,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "575e4c924b23132234c75bd1f8f3871c1bc12ba462f76af9b59249515a38253e" dependencies = [ "alloy-consensus", - "alloy-dyn-abi 0.7.7", + "alloy-dyn-abi", "alloy-network", - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-signer", - "alloy-sol-types 0.7.7", + "alloy-sol-types", "async-trait", "coins-ledger 0.11.1", "futures-util", @@ -577,7 +525,7 @@ checksum = "6dfc9c26fe6c6f1bad818c9a976de9044dd12e1f75f1f156a801ee3e8148c1b6" dependencies = [ "alloy-consensus", "alloy-network", - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-signer", "async-trait", "coins-bip32 0.11.1", @@ -597,7 +545,7 @@ checksum = "fd82e86e4a6604fd11f84b170638d16dcdac9db6c2b5f5b91a3941b7e7af7f94" dependencies = [ "alloy-consensus", "alloy-network", - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-signer", "async-trait", "semver 1.0.23", @@ -606,24 +554,6 @@ dependencies = [ "trezor-client", ] -[[package]] -name = "alloy-sol-macro" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e86ec0a47740b20bc5613b8712d0d321d031c4efc58e9645af96085d5cccfc27" -dependencies = [ - "const-hex", - "dunce", - "heck 0.4.1", - "indexmap", - "proc-macro-error", - "proc-macro2", - "quote", - "syn 2.0.74", - "syn-solidity 0.6.4", - "tiny-keccak", -] - [[package]] name = "alloy-sol-macro" version = "0.7.7" @@ -644,16 +574,16 @@ version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "867a5469d61480fea08c7333ffeca52d5b621f5ca2e44f271b117ec1fc9a0525" dependencies = [ - "alloy-json-abi 0.7.7", + "alloy-json-abi", "alloy-sol-macro-input", "const-hex", - "heck 0.5.0", + "heck", "indexmap", "proc-macro-error", "proc-macro2", "quote", "syn 2.0.74", - "syn-solidity 0.7.7", + "syn-solidity", "tiny-keccak", ] @@ -663,24 +593,15 @@ version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2e482dc33a32b6fadbc0f599adea520bd3aaa585c141a80b404d0a3e3fa72528" dependencies = [ - "alloy-json-abi 0.7.7", + "alloy-json-abi", "const-hex", "dunce", - "heck 0.5.0", + "heck", "proc-macro2", "quote", "serde_json", "syn 2.0.74", - "syn-solidity 0.7.7", -] - -[[package]] -name = "alloy-sol-type-parser" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0045cc89524e1451ccf33e8581355b6027ac7c6e494bb02959d4213ad0d8e91d" -dependencies = [ - "winnow 0.6.18", + "syn-solidity", ] [[package]] @@ -693,27 +614,15 @@ dependencies = [ "winnow 0.6.18", ] -[[package]] -name = "alloy-sol-types" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad09ec5853fa700d12d778ad224dcdec636af424d29fad84fb9a2f16a5b0ef09" -dependencies = [ - "alloy-primitives 0.6.4", - "alloy-sol-macro 0.6.4", - "const-hex", - "serde", -] - [[package]] name = "alloy-sol-types" version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a91ca40fa20793ae9c3841b83e74569d1cc9af29a2f5237314fd3452d51e38c7" dependencies = [ - "alloy-json-abi 0.7.7", - "alloy-primitives 0.7.7", - "alloy-sol-macro 0.7.7", + "alloy-json-abi", + "alloy-primitives", + "alloy-sol-macro", "const-hex", "serde", ] @@ -1627,7 +1536,7 @@ version = "4.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "501d359d5f3dcaf6ecdeee48833ae73ec6e42723a1e52419c79abf9507eec0a0" dependencies = [ - "heck 0.5.0", + "heck", "proc-macro2", "quote", "syn 2.0.74", @@ -2838,8 +2747,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ecb3c05dbf9454cf58c6c440f84c5d2c8f4e94edb4b16f87cfad9e4d818065a" dependencies = [ "alloy-chains", - "alloy-json-abi 0.7.7", - "alloy-primitives 0.7.7", + "alloy-json-abi", + "alloy-primitives", "foundry-compilers", "reqwest 0.12.5", "semver 1.0.23", @@ -2854,15 +2763,15 @@ name = "foundry-cheatcodes" version = "0.2.0" source = "git+https://github.com/foundry-rs/foundry?rev=72e44fb87c38b2acfa2b0b136fc1bc833f71e674#72e44fb87c38b2acfa2b0b136fc1bc833f71e674" dependencies = [ - "alloy-dyn-abi 0.7.7", + "alloy-dyn-abi", "alloy-genesis", - "alloy-json-abi 0.7.7", - "alloy-primitives 0.7.7", + "alloy-json-abi", + "alloy-primitives", "alloy-provider", "alloy-rpc-types", "alloy-signer", "alloy-signer-local", - "alloy-sol-types 0.7.7", + "alloy-sol-types", "base64 0.22.1", "dialoguer", "eyre", @@ -2894,7 +2803,7 @@ name = "foundry-cheatcodes-spec" version = "0.2.0" source = "git+https://github.com/foundry-rs/foundry?rev=72e44fb87c38b2acfa2b0b136fc1bc833f71e674#72e44fb87c38b2acfa2b0b136fc1bc833f71e674" dependencies = [ - "alloy-sol-types 0.7.7", + "alloy-sol-types", "foundry-macros", "serde", ] @@ -2905,16 +2814,16 @@ version = "0.2.0" source = "git+https://github.com/foundry-rs/foundry?rev=72e44fb87c38b2acfa2b0b136fc1bc833f71e674#72e44fb87c38b2acfa2b0b136fc1bc833f71e674" dependencies = [ "alloy-contract", - "alloy-dyn-abi 0.7.7", - "alloy-json-abi 0.7.7", + "alloy-dyn-abi", + "alloy-json-abi", "alloy-json-rpc", - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-provider", "alloy-pubsub", "alloy-rpc-client", "alloy-rpc-types", "alloy-serde", - "alloy-sol-types 0.7.7", + "alloy-sol-types", "alloy-transport", "alloy-transport-http", "alloy-transport-ipc", @@ -2951,8 +2860,8 @@ version = "0.2.0" source = "git+https://github.com/foundry-rs/foundry?rev=72e44fb87c38b2acfa2b0b136fc1bc833f71e674#72e44fb87c38b2acfa2b0b136fc1bc833f71e674" dependencies = [ "alloy-consensus", - "alloy-dyn-abi 0.7.7", - "alloy-primitives 0.7.7", + "alloy-dyn-abi", + "alloy-primitives", "alloy-rpc-types", "alloy-serde", "chrono", @@ -2967,8 +2876,8 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f506a672502997fbc778f1d30eb4a06a58654049ccc6cd0bdb93a785175f682" dependencies = [ - "alloy-json-abi 0.7.7", - "alloy-primitives 0.7.7", + "alloy-json-abi", + "alloy-primitives", "auto_impl", "derivative", "dirs", @@ -3012,8 +2921,8 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49104d442d6f0266c07edbdd23baa9a1db0f01d04bfdc69b6ac060a57e6f3e27" dependencies = [ - "alloy-json-abi 0.7.7", - "alloy-primitives 0.7.7", + "alloy-json-abi", + "alloy-primitives", "foundry-compilers-core", "futures-util", "md-5", @@ -3035,8 +2944,8 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f012d22d0690ad6b6bbcc8d70467325212ddea3457e8efda6affe17fb5ae938" dependencies = [ - "alloy-json-abi 0.7.7", - "alloy-primitives 0.7.7", + "alloy-json-abi", + "alloy-primitives", "foundry-compilers-artifacts-solc", "foundry-compilers-core", "path-slash", @@ -3049,7 +2958,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23760fd6df67a9878ed0fe91e024bf1ff3b7358369cf54129539a8493177c6e7" dependencies = [ - "alloy-primitives 0.7.7", + "alloy-primitives", "cfg-if", "dunce", "memmap2", @@ -3072,7 +2981,7 @@ source = "git+https://github.com/foundry-rs/foundry?rev=72e44fb87c38b2acfa2b0b13 dependencies = [ "Inflector", "alloy-chains", - "alloy-primitives 0.7.7", + "alloy-primitives", "dirs-next", "dunce", "eyre", @@ -3104,10 +3013,10 @@ name = "foundry-evm" version = "0.2.0" source = "git+https://github.com/foundry-rs/foundry?rev=72e44fb87c38b2acfa2b0b136fc1bc833f71e674#72e44fb87c38b2acfa2b0b136fc1bc833f71e674" dependencies = [ - "alloy-dyn-abi 0.7.7", - "alloy-json-abi 0.7.7", - "alloy-primitives 0.7.7", - "alloy-sol-types 0.7.7", + "alloy-dyn-abi", + "alloy-json-abi", + "alloy-primitives", + "alloy-sol-types", "eyre", "foundry-cheatcodes", "foundry-common", @@ -3131,8 +3040,8 @@ name = "foundry-evm-abi" version = "0.2.0" source = "git+https://github.com/foundry-rs/foundry?rev=72e44fb87c38b2acfa2b0b136fc1bc833f71e674#72e44fb87c38b2acfa2b0b136fc1bc833f71e674" dependencies = [ - "alloy-primitives 0.7.7", - "alloy-sol-types 0.7.7", + "alloy-primitives", + "alloy-sol-types", "derive_more", "foundry-common-fmt", "foundry-macros", @@ -3146,14 +3055,14 @@ name = "foundry-evm-core" version = "0.2.0" source = "git+https://github.com/foundry-rs/foundry?rev=72e44fb87c38b2acfa2b0b136fc1bc833f71e674#72e44fb87c38b2acfa2b0b136fc1bc833f71e674" dependencies = [ - "alloy-dyn-abi 0.7.7", + "alloy-dyn-abi", "alloy-genesis", - "alloy-json-abi 0.7.7", - "alloy-primitives 0.7.7", + "alloy-json-abi", + "alloy-primitives", "alloy-provider", "alloy-rpc-types", "alloy-serde", - "alloy-sol-types 0.7.7", + "alloy-sol-types", "alloy-transport", "auto_impl", "eyre", @@ -3180,7 +3089,7 @@ name = "foundry-evm-coverage" version = "0.2.0" source = "git+https://github.com/foundry-rs/foundry?rev=72e44fb87c38b2acfa2b0b136fc1bc833f71e674#72e44fb87c38b2acfa2b0b136fc1bc833f71e674" dependencies = [ - "alloy-primitives 0.7.7", + "alloy-primitives", "eyre", "foundry-common", "foundry-compilers", @@ -3198,9 +3107,9 @@ version = "0.2.0" source = "git+https://github.com/foundry-rs/foundry?rev=72e44fb87c38b2acfa2b0b136fc1bc833f71e674#72e44fb87c38b2acfa2b0b136fc1bc833f71e674" dependencies = [ "ahash", - "alloy-dyn-abi 0.7.7", - "alloy-json-abi 0.7.7", - "alloy-primitives 0.7.7", + "alloy-dyn-abi", + "alloy-json-abi", + "alloy-primitives", "eyre", "foundry-common", "foundry-compilers", @@ -3224,10 +3133,10 @@ name = "foundry-evm-traces" version = "0.2.0" source = "git+https://github.com/foundry-rs/foundry?rev=72e44fb87c38b2acfa2b0b136fc1bc833f71e674#72e44fb87c38b2acfa2b0b136fc1bc833f71e674" dependencies = [ - "alloy-dyn-abi 0.7.7", - "alloy-json-abi 0.7.7", - "alloy-primitives 0.7.7", - "alloy-sol-types 0.7.7", + "alloy-dyn-abi", + "alloy-json-abi", + "alloy-primitives", + "alloy-sol-types", "eyre", "foundry-block-explorers", "foundry-common", @@ -3251,7 +3160,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba3f9c9e02b19933218eb39c7234dcb0cc20e461258ced030f6fd6ac254a8637" dependencies = [ - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-provider", "alloy-rpc-types", "alloy-serde", @@ -3274,7 +3183,7 @@ name = "foundry-linking" version = "0.2.0" source = "git+https://github.com/foundry-rs/foundry?rev=72e44fb87c38b2acfa2b0b136fc1bc833f71e674#72e44fb87c38b2acfa2b0b136fc1bc833f71e674" dependencies = [ - "alloy-primitives 0.7.7", + "alloy-primitives", "foundry-compilers", "semver 1.0.23", "thiserror", @@ -3297,14 +3206,14 @@ version = "0.2.0" source = "git+https://github.com/foundry-rs/foundry?rev=72e44fb87c38b2acfa2b0b136fc1bc833f71e674#72e44fb87c38b2acfa2b0b136fc1bc833f71e674" dependencies = [ "alloy-consensus", - "alloy-dyn-abi 0.7.7", + "alloy-dyn-abi", "alloy-network", - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-signer", "alloy-signer-ledger", "alloy-signer-local", "alloy-signer-trezor", - "alloy-sol-types 0.7.7", + "alloy-sol-types", "async-trait", "aws-sdk-kms", "clap", @@ -3578,12 +3487,6 @@ dependencies = [ "fxhash", ] -[[package]] -name = "heck" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" - [[package]] name = "heck" version = "0.5.0" @@ -5120,12 +5023,12 @@ checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" [[package]] name = "rain-error-decoding" version = "0.1.0" -source = "git+https://github.com/rainlanguage/rain.error?rev=72d9577fdaf7135113847027ba951f9a43b41827#72d9577fdaf7135113847027ba951f9a43b41827" +source = "git+https://github.com/rainlanguage/rain.error?rev=ab987462d37099af7bdab03d9c308032147a9081#ab987462d37099af7bdab03d9c308032147a9081" dependencies = [ - "alloy-dyn-abi 0.6.4", - "alloy-json-abi 0.6.4", - "alloy-primitives 0.6.4", - "alloy-sol-types 0.6.4", + "alloy-dyn-abi", + "alloy-json-abi", + "alloy-primitives", + "alloy-sol-types", "ethers", "getrandom", "once_cell", @@ -5138,12 +5041,12 @@ dependencies = [ [[package]] name = "rain-error-decoding" version = "0.1.0" -source = "git+https://github.com/rainlanguage/rain.error?rev=ab987462d37099af7bdab03d9c308032147a9081#ab987462d37099af7bdab03d9c308032147a9081" +source = "git+https://github.com/rainlanguage/rain.error?rev=fa0cc05a8dbf0f167a2392255a8b509309e9da46#fa0cc05a8dbf0f167a2392255a8b509309e9da46" dependencies = [ - "alloy-dyn-abi 0.7.7", - "alloy-json-abi 0.7.7", - "alloy-primitives 0.7.7", - "alloy-sol-types 0.7.7", + "alloy-dyn-abi", + "alloy-json-abi", + "alloy-primitives", + "alloy-sol-types", "ethers", "getrandom", "once_cell", @@ -5178,7 +5081,7 @@ dependencies = [ "eyre", "foundry-evm", "once_cell", - "rain-error-decoding 0.1.0 (git+https://github.com/rainlanguage/rain.error?rev=72d9577fdaf7135113847027ba951f9a43b41827)", + "rain-error-decoding 0.1.0 (git+https://github.com/rainlanguage/rain.error?rev=fa0cc05a8dbf0f167a2392255a8b509309e9da46)", "rain_interpreter_bindings", "rain_interpreter_test_fixtures", "reqwest 0.11.27", @@ -5485,9 +5388,9 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3aede4aaaa0c5b446ce1a951629d7929ea48473a0f307bd8d999ecdeb55c420b" dependencies = [ - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-rpc-types", - "alloy-sol-types 0.7.7", + "alloy-sol-types", "anstyle", "colorchoice", "revm", @@ -5531,7 +5434,7 @@ version = "5.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "902184a7a781550858d4b96707098da357429f1e4545806fd5b589f455555cf2" dependencies = [ - "alloy-primitives 0.7.7", + "alloy-primitives", "auto_impl", "bitflags 2.6.0", "bitvec", @@ -6342,7 +6245,7 @@ version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" dependencies = [ - "heck 0.5.0", + "heck", "proc-macro2", "quote", "rustversion", @@ -6443,18 +6346,6 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "syn-solidity" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb3d0961cd53c23ea94eeec56ba940f636f6394788976e9f16ca5ee0aca7464a" -dependencies = [ - "paste", - "proc-macro2", - "quote", - "syn 2.0.74", -] - [[package]] name = "syn-solidity" version = "0.7.7" diff --git a/Cargo.toml b/Cargo.toml index f821b4149..a74578f87 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -36,7 +36,7 @@ reqwest = { version = "0.11.17", features = ["json"] } once_cell = "1.17.1" alloy-ethers-typecast = { git = "https://github.com/rainlanguage/alloy-ethers-typecast", rev = "f2e4fe4f8ba3773e4266c1911b531b0b22214cfb" } eyre = "0.6" -rain-error-decoding = { git = "https://github.com/rainlanguage/rain.error", rev = "72d9577fdaf7135113847027ba951f9a43b41827" } +rain-error-decoding = { git = "https://github.com/rainlanguage/rain.error", rev = "fa0cc05a8dbf0f167a2392255a8b509309e9da46" } [workspace.dependencies.rain_interpreter_parser] path = "crates/parser" From 0c39d7360768937f1787821471474d6d37c4512f Mon Sep 17 00:00:00 2001 From: findolor Date: Thu, 29 May 2025 09:50:07 +0300 Subject: [PATCH 53/62] update dependency --- Cargo.lock | 24 +++--------------------- Cargo.toml | 2 +- 2 files changed, 4 insertions(+), 22 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a087093fe..622b3a4e4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -184,7 +184,7 @@ dependencies = [ [[package]] name = "alloy-ethers-typecast" version = "0.2.0" -source = "git+https://github.com/rainlanguage/alloy-ethers-typecast?rev=f2e4fe4f8ba3773e4266c1911b531b0b22214cfb#f2e4fe4f8ba3773e4266c1911b531b0b22214cfb" +source = "git+https://github.com/rainlanguage/alloy-ethers-typecast?rev=adda117b1f43e1a4dfa012299e71f2b0e73f46f4#adda117b1f43e1a4dfa012299e71f2b0e73f46f4" dependencies = [ "alloy", "async-trait", @@ -192,7 +192,7 @@ dependencies = [ "ethers", "getrandom", "once_cell", - "rain-error-decoding 0.1.0 (git+https://github.com/rainlanguage/rain.error?rev=ab987462d37099af7bdab03d9c308032147a9081)", + "rain-error-decoding", "reqwest 0.11.27", "serde", "serde_json", @@ -5020,24 +5020,6 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" -[[package]] -name = "rain-error-decoding" -version = "0.1.0" -source = "git+https://github.com/rainlanguage/rain.error?rev=ab987462d37099af7bdab03d9c308032147a9081#ab987462d37099af7bdab03d9c308032147a9081" -dependencies = [ - "alloy-dyn-abi", - "alloy-json-abi", - "alloy-primitives", - "alloy-sol-types", - "ethers", - "getrandom", - "once_cell", - "reqwest 0.11.27", - "serde", - "serde_json", - "thiserror", -] - [[package]] name = "rain-error-decoding" version = "0.1.0" @@ -5081,7 +5063,7 @@ dependencies = [ "eyre", "foundry-evm", "once_cell", - "rain-error-decoding 0.1.0 (git+https://github.com/rainlanguage/rain.error?rev=fa0cc05a8dbf0f167a2392255a8b509309e9da46)", + "rain-error-decoding", "rain_interpreter_bindings", "rain_interpreter_test_fixtures", "reqwest 0.11.27", diff --git a/Cargo.toml b/Cargo.toml index a74578f87..aa5cc1f56 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -34,7 +34,7 @@ tracing = "0.1.37" tracing-subscriber = "0.3.17" reqwest = { version = "0.11.17", features = ["json"] } once_cell = "1.17.1" -alloy-ethers-typecast = { git = "https://github.com/rainlanguage/alloy-ethers-typecast", rev = "f2e4fe4f8ba3773e4266c1911b531b0b22214cfb" } +alloy-ethers-typecast = { git = "https://github.com/rainlanguage/alloy-ethers-typecast", rev = "adda117b1f43e1a4dfa012299e71f2b0e73f46f4" } eyre = "0.6" rain-error-decoding = { git = "https://github.com/rainlanguage/rain.error", rev = "fa0cc05a8dbf0f167a2392255a8b509309e9da46" } From 518ec8c1a1ee813653525dd330597541af355a3e Mon Sep 17 00:00:00 2001 From: findolor Date: Thu, 29 May 2025 11:14:26 +0300 Subject: [PATCH 54/62] update version --- crates/test_fixtures/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/test_fixtures/Cargo.toml b/crates/test_fixtures/Cargo.toml index a2b999aa2..c2f1dc023 100644 --- a/crates/test_fixtures/Cargo.toml +++ b/crates/test_fixtures/Cargo.toml @@ -14,4 +14,4 @@ serde_json = { workspace = true } alloy = { workspace = true, features = ["node-bindings", "sol-types", "rpc-types", "provider-http", "network", "contract", "signer-local"] } [target.'cfg(target_family = "wasm")'.dependencies] -getrandom = { version = "0", features = ["js", "js-sys"] } \ No newline at end of file +getrandom = { version = "0.2.15", features = ["js", "js-sys"] } \ No newline at end of file From af338f2d49700f2c4d2dba4fcef154ed3f50a4b8 Mon Sep 17 00:00:00 2001 From: findolor Date: Thu, 29 May 2025 12:37:21 +0300 Subject: [PATCH 55/62] run formatter --- crates/dispair/src/lib.rs | 4 ++-- crates/parser/src/v1.rs | 6 +++--- crates/parser/src/v2.rs | 17 +++++++++++++---- 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/crates/dispair/src/lib.rs b/crates/dispair/src/lib.rs index 92236068f..11d292a1b 100644 --- a/crates/dispair/src/lib.rs +++ b/crates/dispair/src/lib.rs @@ -72,11 +72,11 @@ impl DISPair { #[cfg(test)] mod tests { - use std::collections::HashMap; use super::*; use alloy::primitives::Address; use ethers::providers::{MockProvider, MockResponse, Provider}; use serde_json::json; + use std::collections::HashMap; use tracing_subscriber::FmtSubscriber; #[tokio::test] @@ -111,7 +111,7 @@ mod tests { let client = ReadableClient::new(HashMap::from([( "provider".to_string(), - Provider::new(transport) + Provider::new(transport), )])); let dispair = DISPair::from_deployer(deployer_address, client) .await diff --git a/crates/parser/src/v1.rs b/crates/parser/src/v1.rs index 8bd1169e5..1a534ac78 100644 --- a/crates/parser/src/v1.rs +++ b/crates/parser/src/v1.rs @@ -87,10 +87,10 @@ impl Parser for ParserV1 { #[cfg(test)] mod tests { - use std::collections::HashMap; use super::*; use alloy::primitives::{Address, U256}; use ethers::providers::{MockProvider, MockResponse, Provider}; + use std::collections::HashMap; #[tokio::test] async fn test_from_dispair() { @@ -127,7 +127,7 @@ mod tests { let client = ReadableClient::new(HashMap::from([( "provider".to_string(), - Provider::new(transport) + Provider::new(transport), )])); let parser = ParserV1 { address: Address::repeat_byte(0x1), @@ -159,7 +159,7 @@ mod tests { let client = ReadableClient::new(HashMap::from([( "provider".to_string(), - Provider::new(transport) + Provider::new(transport), )])); let parser = ParserV1 { address: Address::repeat_byte(0x1), diff --git a/crates/parser/src/v2.rs b/crates/parser/src/v2.rs index a61f6fdc2..2878acc3d 100644 --- a/crates/parser/src/v2.rs +++ b/crates/parser/src/v2.rs @@ -150,10 +150,10 @@ impl ParserV2 { #[cfg(test)] mod tests { - use std::collections::HashMap; use super::*; use alloy::primitives::Address; use ethers::providers::{MockProvider, MockResponse, Provider}; + use std::collections::HashMap; #[tokio::test] async fn test_from_dispair() { @@ -184,7 +184,10 @@ mod tests { .concat(), ))); - let client = ReadableClient::new(HashMap::from([("provider".to_string(), Provider::new(transport))])); + let client = ReadableClient::new(HashMap::from([( + "provider".to_string(), + Provider::new(transport), + )])); let parser = ParserV2 { deployer_address: Address::repeat_byte(0x1), }; @@ -208,7 +211,10 @@ mod tests { .concat(), ))); - let client = ReadableClient::new(HashMap::from([("provider".to_string(), Provider::new(transport))])); + let client = ReadableClient::new(HashMap::from([( + "provider".to_string(), + Provider::new(transport), + )])); let parser = ParserV2 { deployer_address: Address::repeat_byte(0x1), }; @@ -237,7 +243,10 @@ mod tests { .concat(), ))); - let client = ReadableClient::new(HashMap::from([("provider".to_string(), Provider::new(transport))])); + let client = ReadableClient::new(HashMap::from([( + "provider".to_string(), + Provider::new(transport), + )])); let parser = ParserV2 { deployer_address: Address::repeat_byte(0x1), }; From 9eb5b6e0b5dcbf7902e90b361aa94394d37f8d14 Mon Sep 17 00:00:00 2001 From: findolor Date: Thu, 29 May 2025 15:30:01 +0300 Subject: [PATCH 56/62] update submodule --- lib/rain.metadata | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/rain.metadata b/lib/rain.metadata index f6ef76904..48083fe49 160000 --- a/lib/rain.metadata +++ b/lib/rain.metadata @@ -1 +1 @@ -Subproject commit f6ef76904912cafa936e6d2a36e16e3449d37f07 +Subproject commit 48083fe492e7a591c672bb23f2d000f88da9d5e4 From 4b88077d1c87f079684e900ba156777b11aae3fe Mon Sep 17 00:00:00 2001 From: findolor Date: Fri, 30 May 2025 08:37:55 +0300 Subject: [PATCH 57/62] fix nix ci --- .github/workflows/rainix.yaml | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/.github/workflows/rainix.yaml b/.github/workflows/rainix.yaml index 7edb49761..90b05430c 100644 --- a/.github/workflows/rainix.yaml +++ b/.github/workflows/rainix.yaml @@ -31,8 +31,23 @@ jobs: submodules: recursive fetch-depth: 0 - - uses: DeterminateSystems/nix-installer-action@main - - uses: DeterminateSystems/magic-nix-cache-action@main + - uses: nixbuild/nix-quick-install-action@v30 + with: + nix_conf: | + keep-env-derivations = true + keep-outputs = true + + - name: Restore and save Nix store + uses: nix-community/cache-nix-action@v6 + with: + # restore and save a cache using this key + primary-key: nix-${{ runner.os }}-${{ hashFiles('**/*.nix', '**/flake.lock') }} + # if there's no cache hit, restore a cache by this prefix + restore-prefixes-first-match: nix-${{ runner.os }}- + # collect garbage until the Nix store size (in bytes) is at most this number + # before trying to save a new cache + # 1G = 1073741824 + gc-max-store-size-linux: 1G - run: nix develop --command rainix-sol-prelude - run: nix develop --command rainix-rs-prelude From dd19a736ff687514ac442878ad3d0ea4b824d708 Mon Sep 17 00:00:00 2001 From: findolor Date: Wed, 4 Jun 2025 07:26:57 +0300 Subject: [PATCH 58/62] fix nix and bump metadata --- .github/workflows/git-clean.yaml | 19 +++++++++++++++++-- .github/workflows/manual-sol-artifacts.yaml | 19 +++++++++++++++++-- lib/rain.metadata | 2 +- 3 files changed, 35 insertions(+), 5 deletions(-) diff --git a/.github/workflows/git-clean.yaml b/.github/workflows/git-clean.yaml index bb78bd710..c38d32289 100644 --- a/.github/workflows/git-clean.yaml +++ b/.github/workflows/git-clean.yaml @@ -10,8 +10,23 @@ jobs: submodules: recursive fetch-depth: 0 - - uses: DeterminateSystems/nix-installer-action@main - - uses: DeterminateSystems/magic-nix-cache-action@main + - uses: nixbuild/nix-quick-install-action@v30 + with: + nix_conf: | + keep-env-derivations = true + keep-outputs = true + + - name: Restore and save Nix store + uses: nix-community/cache-nix-action@v6 + with: + # restore and save a cache using this key + primary-key: nix-${{ runner.os }}-${{ hashFiles('**/*.nix', '**/flake.lock') }} + # if there's no cache hit, restore a cache by this prefix + restore-prefixes-first-match: nix-${{ runner.os }}- + # collect garbage until the Nix store size (in bytes) is at most this number + # before trying to save a new cache + # 1G = 1073741824 + gc-max-store-size-linux: 1G # Build metas etc. required to do a correct pointer build. - run: nix develop -c i9r-prelude diff --git a/.github/workflows/manual-sol-artifacts.yaml b/.github/workflows/manual-sol-artifacts.yaml index e0841c3ef..aad279abf 100644 --- a/.github/workflows/manual-sol-artifacts.yaml +++ b/.github/workflows/manual-sol-artifacts.yaml @@ -39,8 +39,23 @@ jobs: submodules: recursive fetch-depth: 0 - - uses: DeterminateSystems/nix-installer-action@main - - uses: DeterminateSystems/magic-nix-cache-action@main + - uses: nixbuild/nix-quick-install-action@v30 + with: + nix_conf: | + keep-env-derivations = true + keep-outputs = true + + - name: Restore and save Nix store + uses: nix-community/cache-nix-action@v6 + with: + # restore and save a cache using this key + primary-key: nix-${{ runner.os }}-${{ hashFiles('**/*.nix', '**/flake.lock') }} + # if there's no cache hit, restore a cache by this prefix + restore-prefixes-first-match: nix-${{ runner.os }}- + # collect garbage until the Nix store size (in bytes) is at most this number + # before trying to save a new cache + # 1G = 1073741824 + gc-max-store-size-linux: 1G - run: nix develop --command rainix-sol-prelude - run: nix develop --command rainix-rs-prelude diff --git a/lib/rain.metadata b/lib/rain.metadata index 48083fe49..5941940fa 160000 --- a/lib/rain.metadata +++ b/lib/rain.metadata @@ -1 +1 @@ -Subproject commit 48083fe492e7a591c672bb23f2d000f88da9d5e4 +Subproject commit 5941940faea110ba9786fe2f66945aa0d5b66d27 From 3b9bbd387166cb4c24e68fa2298827be37bf967a Mon Sep 17 00:00:00 2001 From: thedavidmeister Date: Wed, 2 Jul 2025 19:05:10 +0400 Subject: [PATCH 59/62] lower optimisations --- foundry.toml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/foundry.toml b/foundry.toml index bc40f6ecc..811621989 100644 --- a/foundry.toml +++ b/foundry.toml @@ -16,7 +16,9 @@ solc = "0.8.25" # These settings should be used for snapshots optimizer = true -optimizer_runs = 1000000 +# this is a bit low, was set to 1000000 previously but this caused deployment +# code size cap to be hit. +optimizer_runs = 9000 bytecode_hash = "none" cbor_metadata = false From 964520d3124d1719b590a32314e3e6be527bcb12 Mon Sep 17 00:00:00 2001 From: thedavidmeister Date: Wed, 2 Jul 2025 19:24:57 +0400 Subject: [PATCH 60/62] pointers --- .../RainterpreterExpressionDeployerNPE2.pointers.sol | 6 +++--- src/generated/RainterpreterNPE2.pointers.sol | 4 ++-- src/generated/RainterpreterParserNPE2.pointers.sol | 6 +++--- src/generated/RainterpreterReferenceExternNPE2.pointers.sol | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/generated/RainterpreterExpressionDeployerNPE2.pointers.sol b/src/generated/RainterpreterExpressionDeployerNPE2.pointers.sol index 8faf14e83..fb6c7ae90 100644 --- a/src/generated/RainterpreterExpressionDeployerNPE2.pointers.sol +++ b/src/generated/RainterpreterExpressionDeployerNPE2.pointers.sol @@ -10,11 +10,11 @@ pragma solidity =0.8.25; /// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x120bb857e25b094e30d19b11f0bf73b80df656781d0e28d7e7150775a3eebdad); +bytes32 constant BYTECODE_HASH = bytes32(0x515936b3359be4085cb3aa55f11ddc6dde7f2e1cdc8ddab9fd8eff6c559cacc8); /// @dev The hash of the meta that describes the contract. -bytes32 constant DESCRIBED_BY_META_HASH = bytes32(0xa06272c146368c8267529773d74e499d3d70b552938f29071e5cb2faf9e3c419); +bytes32 constant DESCRIBED_BY_META_HASH = bytes32(0x4b1c6aaa80d8074ae6f52febc5fe4131b6e522291a1afe2b79d93c67152815ed); /// @dev The function pointers for the integrity check fns. bytes constant INTEGRITY_FUNCTION_POINTERS = - hex"0f4c0fca102f11a911b311b311bd11c611e11287128712e3135d136a11b311bd136a11b311bd11b311b311bd11a911a911a911a911a91374139913b311b3137411b311b3136a11bd11b311b3136a136a13bd13bd13bd13bd11b311bd13bd11a911bd11bd11bd11bd11b311bd11bd11bd11bd11bd13bd13bd13bd13bd11b311bd11bd11b311bd11bd11b311b311bd13bd13bd11bd13b3"; + hex"0f100f8e0ff3116d117711771181118a11a5124b124b12a71321132e11771181132e11771181117711771181116d116d116d116d116d1338135d13771177133811771177132e118111771177132e132e1381138113811381117711811381116d118111811181118111771181118111811181118113811381138113811177118111811177118111811177117711811381138111811377"; diff --git a/src/generated/RainterpreterNPE2.pointers.sol b/src/generated/RainterpreterNPE2.pointers.sol index 4e68b2c34..c21e4355d 100644 --- a/src/generated/RainterpreterNPE2.pointers.sol +++ b/src/generated/RainterpreterNPE2.pointers.sol @@ -10,11 +10,11 @@ pragma solidity =0.8.25; /// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0xfee767105c6c61d954e857509e83c39f1352e9ad804e9e9eb297493462c784ce); +bytes32 constant BYTECODE_HASH = bytes32(0x7894167cd5f4df41bb23f90dee96664c395674acae57aa73134cb62ae468f271); /// @dev The function pointers known to the interpreter for dynamic dispatch. /// By setting these as a constant they can be inlined into the interpreter /// and loaded at eval time for very low gas (~100) due to the compiler /// optimising it to a single `codecopy` to build the in memory bytes array. bytes constant OPCODE_FUNCTION_POINTERS = - hex"077c07cd080f09db0ac20ad40ae60b090b4b0b9d0bae0bbf0c610c9e0d5c0e0c0e900fd310fa0d5c11f6129813101349138213d113d1140a146f1543159615aa16031617162c164616511665167a16b216d9175917a717f51843185b187418c218f91907191519301945195d19761984199219a019ae19fc1a4a1a981ae61afe1afe1b151b431b431b5a1b891bde1bec1bec1c901d77"; + hex"075e079107b509450a0e0a200a320a550a790aad0abe0acf0b710b900c4e0cfe0d820ec50fec0c4e10e8118a1202121d1238124b124b126612ad138113d413e814231437144c146614711485149a14d214f9155b15a915f71645165d167616c416dd16eb16f9171417291741175a176817761784179217e0182e187c18ca18e218e218f919271927193e196d19c219d019d01a561b3d"; diff --git a/src/generated/RainterpreterParserNPE2.pointers.sol b/src/generated/RainterpreterParserNPE2.pointers.sol index 2f323cb8c..baea50327 100644 --- a/src/generated/RainterpreterParserNPE2.pointers.sol +++ b/src/generated/RainterpreterParserNPE2.pointers.sol @@ -10,7 +10,7 @@ pragma solidity =0.8.25; /// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x0913de8e0b36ea4fde9df417b198d01eba3e5cb78da1c5c6bbc50bea09444023); +bytes32 constant BYTECODE_HASH = bytes32(0xfc531ebfacb3a5ed1c077ffaf5858c3f854025359f618c9d1e6778e3caa10331); /// @dev The parse meta that is used to lookup word definitions. /// The structure of the parse meta is: @@ -39,11 +39,11 @@ uint8 constant PARSE_META_BUILD_DEPTH = 2; /// These positional indexes all map to the same indexes looked up in the parse /// meta. bytes constant OPERAND_HANDLER_FUNCTION_POINTERS = - hex"190019001900196519de19de19de1965196519001900190019de19de19de19de19de19de19de19de19de19de19de19de19de19de19de19de19de19de19de19de19de19de19de19de19de19de19de19de19de19de19de19de19de19de19de19de19de19de19de19de19de19de19de19de19de19de19de19de19de19de19de1a2319de1af51a2319de1af519de19de19001b5e19de19de"; + hex"15d615d615d6163b16b416b416b4163b163b15d615d615d616b416b416b416b416b416b416b416b416b416b416b416b416b416b416b416b416b416b416b416b416b416b416b416b416b416b416b416b416b416b416b416b416b416b416b416b416b416b416b416b416b416b416b416b416b416b416b416b416b416b416b416f916b417cb16f916b417cb16b416b415d6183416b416b4"; /// @dev Every two bytes is a function pointer for a literal parser. /// Literal dispatches are determined by the first byte(s) of the literal /// rather than a full word lookup, and are done with simple conditional /// jumps as the possibilities are limited compared to the number of words we /// have. -bytes constant LITERAL_PARSER_FUNCTION_POINTERS = hex"0f76123e1645171f"; +bytes constant LITERAL_PARSER_FUNCTION_POINTERS = hex"0e4a107c13931431"; diff --git a/src/generated/RainterpreterReferenceExternNPE2.pointers.sol b/src/generated/RainterpreterReferenceExternNPE2.pointers.sol index 8bf90fb90..8cb65c2f6 100644 --- a/src/generated/RainterpreterReferenceExternNPE2.pointers.sol +++ b/src/generated/RainterpreterReferenceExternNPE2.pointers.sol @@ -10,7 +10,7 @@ pragma solidity =0.8.25; /// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x4247a5ea9bd8abcbe989b8ae09f2b9b29cafa521add389fc7b6f2b1ca3c49ecc); +bytes32 constant BYTECODE_HASH = bytes32(0x8fe6896679e741ffce41916bf39c9d968ae348b883ab4d241182168aafdb420d); /// @dev The hash of the meta that describes the contract. bytes32 constant DESCRIBED_BY_META_HASH = bytes32(0xadf71693c6ecf3fd560904bc46973d1b6e651440d15366673f9b3984749e7c16); From 71fdf809307058b20c4279af70a55d8bb1244f72 Mon Sep 17 00:00:00 2001 From: thedavidmeister Date: Wed, 2 Jul 2025 19:39:42 +0400 Subject: [PATCH 61/62] pointers --- src/generated/RainterpreterExpressionDeployerNPE2.pointers.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/generated/RainterpreterExpressionDeployerNPE2.pointers.sol b/src/generated/RainterpreterExpressionDeployerNPE2.pointers.sol index fb6c7ae90..ed886436a 100644 --- a/src/generated/RainterpreterExpressionDeployerNPE2.pointers.sol +++ b/src/generated/RainterpreterExpressionDeployerNPE2.pointers.sol @@ -13,7 +13,7 @@ pragma solidity =0.8.25; bytes32 constant BYTECODE_HASH = bytes32(0x515936b3359be4085cb3aa55f11ddc6dde7f2e1cdc8ddab9fd8eff6c559cacc8); /// @dev The hash of the meta that describes the contract. -bytes32 constant DESCRIBED_BY_META_HASH = bytes32(0x4b1c6aaa80d8074ae6f52febc5fe4131b6e522291a1afe2b79d93c67152815ed); +bytes32 constant DESCRIBED_BY_META_HASH = bytes32(0xa06272c146368c8267529773d74e499d3d70b552938f29071e5cb2faf9e3c419); /// @dev The function pointers for the integrity check fns. bytes constant INTEGRITY_FUNCTION_POINTERS = From 3b0acf1e69713ee9e43825923f2bbb5c46334873 Mon Sep 17 00:00:00 2001 From: thedavidmeister Date: Wed, 2 Jul 2025 19:57:32 +0400 Subject: [PATCH 62/62] pointesr --- src/generated/RainterpreterExpressionDeployerNPE2.pointers.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/generated/RainterpreterExpressionDeployerNPE2.pointers.sol b/src/generated/RainterpreterExpressionDeployerNPE2.pointers.sol index ed886436a..0cb256e9f 100644 --- a/src/generated/RainterpreterExpressionDeployerNPE2.pointers.sol +++ b/src/generated/RainterpreterExpressionDeployerNPE2.pointers.sol @@ -10,7 +10,7 @@ pragma solidity =0.8.25; /// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x515936b3359be4085cb3aa55f11ddc6dde7f2e1cdc8ddab9fd8eff6c559cacc8); +bytes32 constant BYTECODE_HASH = bytes32(0xf90ce426fab9ce79f1dbc61fe0ff9d82c643788aedb45cc2d388ca087d238e08); /// @dev The hash of the meta that describes the contract. bytes32 constant DESCRIBED_BY_META_HASH = bytes32(0xa06272c146368c8267529773d74e499d3d70b552938f29071e5cb2faf9e3c419);