From 6adf729cad8b7b32ca0efff71440b5d9b2185513 Mon Sep 17 00:00:00 2001 From: Michael Birch Date: Mon, 18 Sep 2023 08:37:30 -0400 Subject: [PATCH] Feat: Integrate Hashchain into Refiner (#95) --- Cargo.lock | 45 +- Cargo.toml | 15 +- engine/src/lib.rs | 1 - engine/src/sync.rs | 324 +- engine/src/tests.rs | 2 +- engine/src/types.rs | 124 - refiner-lib/Cargo.toml | 1 + refiner-lib/src/hashchain.rs | 273 + refiner-lib/src/legacy.rs | 78 +- refiner-lib/src/lib.rs | 1 + refiner-lib/src/metrics.rs | 82 +- refiner-lib/src/near_stream.rs | 23 +- refiner-lib/src/refiner_inner.rs | 256 +- refiner-lib/tests/res/block-55905793.json | 5525 ++++++++++++++++++++ refiner-types/src/aurora_block.rs | 94 +- refiner-types/src/res/aurora_70077007.json | 1 + refiner-types/src/utils.rs | 67 +- 17 files changed, 6406 insertions(+), 506 deletions(-) delete mode 100644 engine/src/types.rs create mode 100644 refiner-lib/src/hashchain.rs create mode 100644 refiner-lib/tests/res/block-55905793.json diff --git a/Cargo.lock b/Cargo.lock index 190abcb..7e75d1c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -522,8 +522,9 @@ dependencies = [ [[package]] name = "aurora-engine" version = "3.0.0" -source = "git+https://github.com/aurora-is-near/aurora-engine.git?tag=3.0.0#1a2e7c682b199f1c0940fa71109d1cd9f03d0672" +source = "git+https://github.com/aurora-is-near/aurora-engine.git?rev=d573b68e6d8aa455979033fb8cd38f097a8036fa#d573b68e6d8aa455979033fb8cd38f097a8036fa" dependencies = [ + "aurora-engine-hashchain", "aurora-engine-modexp", "aurora-engine-precompiles", "aurora-engine-sdk", @@ -532,6 +533,7 @@ dependencies = [ "bitflags 1.3.2", "ethabi", "evm", + "function_name", "hex", "rlp 0.5.2", "serde", @@ -539,10 +541,21 @@ dependencies = [ "wee_alloc", ] +[[package]] +name = "aurora-engine-hashchain" +version = "1.0.0" +source = "git+https://github.com/aurora-is-near/aurora-engine.git?rev=d573b68e6d8aa455979033fb8cd38f097a8036fa#d573b68e6d8aa455979033fb8cd38f097a8036fa" +dependencies = [ + "aurora-engine-sdk", + "aurora-engine-types", + "fixed-hash 0.8.0", + "impl-serde 0.4.0", +] + [[package]] name = "aurora-engine-modexp" version = "1.0.0" -source = "git+https://github.com/aurora-is-near/aurora-engine.git?tag=3.0.0#1a2e7c682b199f1c0940fa71109d1cd9f03d0672" +source = "git+https://github.com/aurora-is-near/aurora-engine.git?rev=d573b68e6d8aa455979033fb8cd38f097a8036fa#d573b68e6d8aa455979033fb8cd38f097a8036fa" dependencies = [ "hex", "num", @@ -551,7 +564,7 @@ dependencies = [ [[package]] name = "aurora-engine-precompiles" version = "1.0.0" -source = "git+https://github.com/aurora-is-near/aurora-engine.git?tag=3.0.0#1a2e7c682b199f1c0940fa71109d1cd9f03d0672" +source = "git+https://github.com/aurora-is-near/aurora-engine.git?rev=d573b68e6d8aa455979033fb8cd38f097a8036fa#d573b68e6d8aa455979033fb8cd38f097a8036fa" dependencies = [ "aurora-engine-modexp", "aurora-engine-sdk", @@ -570,7 +583,7 @@ dependencies = [ [[package]] name = "aurora-engine-sdk" version = "1.0.0" -source = "git+https://github.com/aurora-is-near/aurora-engine.git?tag=3.0.0#1a2e7c682b199f1c0940fa71109d1cd9f03d0672" +source = "git+https://github.com/aurora-is-near/aurora-engine.git?rev=d573b68e6d8aa455979033fb8cd38f097a8036fa#d573b68e6d8aa455979033fb8cd38f097a8036fa" dependencies = [ "aurora-engine-types", "base64 0.21.2", @@ -581,7 +594,7 @@ dependencies = [ [[package]] name = "aurora-engine-transactions" version = "1.0.0" -source = "git+https://github.com/aurora-is-near/aurora-engine.git?tag=3.0.0#1a2e7c682b199f1c0940fa71109d1cd9f03d0672" +source = "git+https://github.com/aurora-is-near/aurora-engine.git?rev=d573b68e6d8aa455979033fb8cd38f097a8036fa#d573b68e6d8aa455979033fb8cd38f097a8036fa" dependencies = [ "aurora-engine-precompiles", "aurora-engine-sdk", @@ -594,7 +607,7 @@ dependencies = [ [[package]] name = "aurora-engine-types" version = "1.0.0" -source = "git+https://github.com/aurora-is-near/aurora-engine.git?tag=3.0.0#1a2e7c682b199f1c0940fa71109d1cd9f03d0672" +source = "git+https://github.com/aurora-is-near/aurora-engine.git?rev=d573b68e6d8aa455979033fb8cd38f097a8036fa#d573b68e6d8aa455979033fb8cd38f097a8036fa" dependencies = [ "base64 0.21.2", "borsh 0.10.3", @@ -648,6 +661,7 @@ version = "0.23.4" dependencies = [ "anyhow", "aurora-engine", + "aurora-engine-hashchain", "aurora-engine-modexp", "aurora-engine-sdk", "aurora-engine-transactions", @@ -2335,7 +2349,7 @@ dependencies = [ [[package]] name = "engine-standalone-storage" version = "0.1.0" -source = "git+https://github.com/aurora-is-near/aurora-engine.git?tag=3.0.0#1a2e7c682b199f1c0940fa71109d1cd9f03d0672" +source = "git+https://github.com/aurora-is-near/aurora-engine.git?rev=d573b68e6d8aa455979033fb8cd38f097a8036fa#d573b68e6d8aa455979033fb8cd38f097a8036fa" dependencies = [ "aurora-engine", "aurora-engine-modexp", @@ -2355,7 +2369,7 @@ dependencies = [ [[package]] name = "engine-standalone-tracing" version = "0.1.0" -source = "git+https://github.com/aurora-is-near/aurora-engine.git?tag=3.0.0#1a2e7c682b199f1c0940fa71109d1cd9f03d0672" +source = "git+https://github.com/aurora-is-near/aurora-engine.git?rev=d573b68e6d8aa455979033fb8cd38f097a8036fa#d573b68e6d8aa455979033fb8cd38f097a8036fa" dependencies = [ "aurora-engine-types", "evm", @@ -2721,6 +2735,21 @@ dependencies = [ "winapi", ] +[[package]] +name = "function_name" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1ab577a896d09940b5fe12ec5ae71f9d8211fff62c919c03a3750a9901e98a7" +dependencies = [ + "function_name-proc-macro", +] + +[[package]] +name = "function_name-proc-macro" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "673464e1e314dd67a0fd9544abc99e8eb28d0c7e3b69b033bcff9b2d00b87333" + [[package]] name = "funty" version = "2.0.0" diff --git a/Cargo.toml b/Cargo.toml index 418ac95..c2b9794 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -19,17 +19,18 @@ license = "CC0-1.0" [workspace.dependencies] actix = "0.13" anyhow = "1" -aurora-engine = { git = "https://github.com/aurora-is-near/aurora-engine.git", tag = "3.0.0", default-features = false, features = ["std", "tracing", "log", "impl-serde"] } -aurora-engine-transactions = { git = "https://github.com/aurora-is-near/aurora-engine.git", tag = "3.0.0", default-features = false, features = ["std", "impl-serde"] } -aurora-engine-types = { git = "https://github.com/aurora-is-near/aurora-engine.git", tag = "3.0.0", default-features = false, features = ["std", "impl-serde"] } -aurora-engine-sdk = { git = "https://github.com/aurora-is-near/aurora-engine.git", tag = "3.0.0", default-features = false, features = ["std"] } -aurora-engine-modexp = { git = "https://github.com/aurora-is-near/aurora-engine.git", tag = "3.0.0", default-features = false, features = ["std"] } +aurora-engine = { git = "https://github.com/aurora-is-near/aurora-engine.git", rev = "d573b68e6d8aa455979033fb8cd38f097a8036fa", default-features = false, features = ["std", "tracing", "log", "impl-serde"] } +aurora-engine-transactions = { git = "https://github.com/aurora-is-near/aurora-engine.git", rev = "d573b68e6d8aa455979033fb8cd38f097a8036fa", default-features = false, features = ["std", "impl-serde"] } +aurora-engine-types = { git = "https://github.com/aurora-is-near/aurora-engine.git", rev = "d573b68e6d8aa455979033fb8cd38f097a8036fa", default-features = false, features = ["std", "impl-serde"] } +aurora-engine-sdk = { git = "https://github.com/aurora-is-near/aurora-engine.git", rev = "d573b68e6d8aa455979033fb8cd38f097a8036fa", default-features = false, features = ["std"] } +aurora-engine-modexp = { git = "https://github.com/aurora-is-near/aurora-engine.git", rev = "d573b68e6d8aa455979033fb8cd38f097a8036fa", default-features = false, features = ["std"] } +aurora-engine-hashchain = { git = "https://github.com/aurora-is-near/aurora-engine.git", rev = "d573b68e6d8aa455979033fb8cd38f097a8036fa", default-features = false, features = ["std"] } borsh = "0.10" byteorder = "1" clap = { version = "4", features = ["derive"] } derive_builder = "0.12" -engine-standalone-storage = { git = "https://github.com/aurora-is-near/aurora-engine.git", tag = "3.0.0", default-features = false } -engine-standalone-tracing = { git = "https://github.com/aurora-is-near/aurora-engine.git", tag = "3.0.0", default-features = false, features = ["impl-serde"] } +engine-standalone-storage = { git = "https://github.com/aurora-is-near/aurora-engine.git", rev = "d573b68e6d8aa455979033fb8cd38f097a8036fa", default-features = false } +engine-standalone-tracing = { git = "https://github.com/aurora-is-near/aurora-engine.git", rev = "d573b68e6d8aa455979033fb8cd38f097a8036fa", default-features = false, features = ["impl-serde"] } fixed-hash = "0.8" futures = "0.3" hex = "0.4" diff --git a/engine/src/lib.rs b/engine/src/lib.rs index e387dc3..a844f2e 100644 --- a/engine/src/lib.rs +++ b/engine/src/lib.rs @@ -12,7 +12,6 @@ pub mod sync; #[cfg(test)] mod tests; pub mod tracing; -pub mod types; pub type SharedStorage = std::sync::Arc>; diff --git a/engine/src/sync.rs b/engine/src/sync.rs index 3326471..e98f79e 100644 --- a/engine/src/sync.rs +++ b/engine/src/sync.rs @@ -1,8 +1,7 @@ use aurora_engine::parameters; use aurora_engine_modexp::ModExpAlgorithm; use aurora_engine_sdk::env; -use aurora_engine_transactions::EthTransactionKind; -use aurora_engine_types::{account_id::AccountId, types::Address, H256}; +use aurora_engine_types::{account_id::AccountId, H256}; use aurora_refiner_types::near_primitives::{ self, hash::CryptoHash, @@ -19,10 +18,10 @@ use engine_standalone_storage::{ BlockMetadata, Diff, Storage, }; use lru::LruCache; -use std::{cell::RefCell, collections::HashMap, convert::TryFrom, str::FromStr}; +use std::{cell::RefCell, collections::HashMap}; use tracing::{debug, warn}; -use crate::{batch_tx_processing::BatchIO, types::InnerTransactionKind}; +use crate::batch_tx_processing::BatchIO; pub fn consume_near_block( storage: &mut Storage, @@ -131,7 +130,7 @@ pub fn consume_near_block( "Receipt {:?} not parsed as transaction, but has state changes", near_receipt_id, ); - ParsedActions::Single(Box::new(types::TransactionKind::Unknown), 0) + ParsedActions::Single(SingleParsedAction::default()) } else { return None; } @@ -139,7 +138,7 @@ pub fn consume_near_block( }; let transaction_messages = match maybe_batch_actions { - ParsedActions::Single(transaction_kind, attached_near) => { + ParsedActions::Single(parsed_action) => { let transaction_message = types::TransactionMessage { block_hash, near_receipt_id, @@ -147,9 +146,10 @@ pub fn consume_near_block( succeeded: true, // we drop failed transactions above signer, caller, - attached_near, - transaction: *transaction_kind, + attached_near: parsed_action.deposit, + transaction: *parsed_action.transaction_kind, promise_data, + raw_input: parsed_action.raw_input, }; position_counter += 1; @@ -159,7 +159,7 @@ pub fn consume_near_block( ParsedActions::Batch(txs) => { let mut non_last_actions: Vec<_> = txs .into_iter() - .map(|(index, transaction_kind, attached_near)| { + .map(|(index, parsed_action)| { let virtual_receipt_id = match index { BatchIndex::Index(i) => { let mut bytes = [0u8; 36]; @@ -176,9 +176,10 @@ pub fn consume_near_block( succeeded: true, // we drop failed transactions above signer: signer.clone(), caller: caller.clone(), - attached_near, - transaction: transaction_kind, + attached_near: parsed_action.deposit, + transaction: *parsed_action.transaction_kind, promise_data: promise_data.clone(), + raw_input: parsed_action.raw_input, }; position_counter += 1; @@ -333,8 +334,24 @@ enum BatchIndex { /// Most NEAR receipts are not batches, so we want to optimize for the case where there is just one /// action (not allocate a vec every time). This enum enables that optimization. enum ParsedActions { - Single(Box, u128), - Batch(Vec<(BatchIndex, TransactionKind, u128)>), + Single(SingleParsedAction), + Batch(Vec<(BatchIndex, SingleParsedAction)>), +} + +struct SingleParsedAction { + pub transaction_kind: Box, + pub raw_input: Vec, + pub deposit: u128, +} + +impl Default for SingleParsedAction { + fn default() -> Self { + Self { + transaction_kind: Box::new(TransactionKind::Unknown), + raw_input: Vec::new(), + deposit: 0, + } + } } enum TransactionBatch { @@ -404,22 +421,27 @@ impl TransactionBatch { let transaction_position = tx.position; let local_engine_account_id = engine_account_id.clone(); let (tx_hash, diff, result) = storage - .with_engine_access(block_height, transaction_position, &[], |io| { - let local_diff = RefCell::new(Diff::default()); - let batch_io = BatchIO { - fallback: io, - cumulative_diff: &cumulative_diff, - current_diff: &local_diff, - }; - sync::execute_transaction::<_, M, _>( - &tx, - block_height, - &block_metadata, - local_engine_account_id, - batch_io, - |x| x.current_diff.borrow().clone(), - ) - }) + .with_engine_access( + block_height, + transaction_position, + &tx.raw_input, + |io| { + let local_diff = RefCell::new(Diff::default()); + let batch_io = BatchIO { + fallback: io, + cumulative_diff: &cumulative_diff, + current_diff: &local_diff, + }; + sync::execute_transaction::<_, M, _>( + &tx, + block_height, + &block_metadata, + local_engine_account_id, + batch_io, + |x| x.current_diff.borrow().clone(), + ) + }, + ) .result; cumulative_diff.append(diff.clone()); let tx_outcome = TransactionIncludedOutcome { @@ -436,22 +458,27 @@ impl TransactionBatch { Some(tx) => { let transaction_position = tx.position; let (tx_hash, diff, result) = storage - .with_engine_access(block_height, transaction_position, &[], |io| { - let local_diff = RefCell::new(Diff::default()); - let batch_io = BatchIO { - fallback: io, - cumulative_diff: &cumulative_diff, - current_diff: &local_diff, - }; - sync::execute_transaction::<_, M, _>( - &tx, - block_height, - &block_metadata, - engine_account_id, - batch_io, - |x| x.current_diff.borrow().clone(), - ) - }) + .with_engine_access( + block_height, + transaction_position, + &tx.raw_input, + |io| { + let local_diff = RefCell::new(Diff::default()); + let batch_io = BatchIO { + fallback: io, + cumulative_diff: &cumulative_diff, + current_diff: &local_diff, + }; + sync::execute_transaction::<_, M, _>( + &tx, + block_height, + &block_metadata, + engine_account_id, + batch_io, + |x| x.current_diff.borrow().clone(), + ) + }, + ) .result; cumulative_diff.append(diff.clone()); let tx_outcome = TransactionIncludedOutcome { @@ -558,8 +585,13 @@ fn parse_actions( ) -> Option { let num_actions = actions.len(); if num_actions == 1 { - parse_action(&actions[0], promise_data) - .map(|(tx, n)| ParsedActions::Single(Box::new(tx), n)) + parse_action(&actions[0], promise_data).map(|(tx, input, n)| { + ParsedActions::Single(SingleParsedAction { + transaction_kind: Box::new(tx), + raw_input: input, + deposit: n, + }) + }) } else if num_actions == 0 { None } else { @@ -568,14 +600,21 @@ fn parse_actions( .iter() .enumerate() .filter_map(|(i, action)| { - parse_action(action, promise_data).map(|(tx, n)| { + parse_action(action, promise_data).map(|(tx, input, n)| { let index = if i == last_index { BatchIndex::Last } else { BatchIndex::Index(i as u32) }; - (index, tx, n) + ( + index, + SingleParsedAction { + transaction_kind: Box::new(tx), + raw_input: input, + deposit: n, + }, + ) }) }) .collect(); @@ -591,7 +630,7 @@ fn parse_actions( fn parse_action( action: &ActionView, promise_data: &[Option>], -) -> Option<(TransactionKind, u128)> { +) -> Option<(TransactionKind, Vec, u128)> { if let ActionView::FunctionCall { method_name, args, @@ -600,188 +639,9 @@ fn parse_action( } = action { let bytes = args.to_vec(); - - let transaction_kind = if let Ok(raw_tx_kind) = - InnerTransactionKind::from_str(method_name.as_str()) - { - match raw_tx_kind { - InnerTransactionKind::Submit => { - let eth_tx = EthTransactionKind::try_from(bytes.as_slice()).ok()?; - TransactionKind::Submit(eth_tx) - } - InnerTransactionKind::SubmitWithArgs => { - let args = parameters::SubmitArgs::try_from_slice(&bytes).ok()?; - TransactionKind::SubmitWithArgs(args) - } - InnerTransactionKind::Call => { - let call_args = parameters::CallArgs::deserialize(&bytes)?; - TransactionKind::Call(call_args) - } - InnerTransactionKind::PausePrecompiles => { - let args = parameters::PausePrecompilesCallArgs::try_from_slice(&bytes).ok()?; - TransactionKind::PausePrecompiles(args) - } - InnerTransactionKind::ResumePrecompiles => { - let args = parameters::PausePrecompilesCallArgs::try_from_slice(&bytes).ok()?; - TransactionKind::ResumePrecompiles(args) - } - InnerTransactionKind::SetOwner => { - let args = parameters::SetOwnerArgs::try_from_slice(&bytes).ok()?; - TransactionKind::SetOwner(args) - } - InnerTransactionKind::Deploy => TransactionKind::Deploy(bytes), - InnerTransactionKind::DeployErc20 => { - let deploy_args = - parameters::DeployErc20TokenArgs::try_from_slice(&bytes).ok()?; - TransactionKind::DeployErc20(deploy_args) - } - InnerTransactionKind::FtOnTransfer => { - let transfer_args: parameters::NEP141FtOnTransferArgs = - serde_json::from_slice(bytes.as_slice()).ok()?; - - TransactionKind::FtOnTransfer(transfer_args) - } - InnerTransactionKind::Deposit => TransactionKind::Deposit(bytes), - InnerTransactionKind::FtTransferCall => { - let transfer_args: parameters::TransferCallCallArgs = - serde_json::from_slice(bytes.as_slice()).ok()?; - - TransactionKind::FtTransferCall(transfer_args) - } - InnerTransactionKind::FinishDeposit => { - let args = parameters::FinishDepositCallArgs::try_from_slice(&bytes).ok()?; - TransactionKind::FinishDeposit(args) - } - InnerTransactionKind::ResolveTransfer => { - let args = parameters::ResolveTransferCallArgs::try_from_slice(&bytes).ok()?; - let promise_result = match promise_data.first().and_then(|x| x.as_ref()) { - Some(bytes) => { - aurora_engine_types::types::PromiseResult::Successful(bytes.clone()) - } - None => aurora_engine_types::types::PromiseResult::Failed, - }; - TransactionKind::ResolveTransfer(args, promise_result) - } - InnerTransactionKind::FtTransfer => { - let args: parameters::TransferCallArgs = - serde_json::from_slice(bytes.as_slice()).ok()?; - - TransactionKind::FtTransfer(args) - } - InnerTransactionKind::Withdraw => { - let args = - aurora_engine_types::parameters::WithdrawCallArgs::try_from_slice(&bytes) - .ok()?; - TransactionKind::Withdraw(args) - } - InnerTransactionKind::StorageDeposit => { - let args: parameters::StorageDepositCallArgs = - serde_json::from_slice(bytes.as_slice()).ok()?; - - TransactionKind::StorageDeposit(args) - } - InnerTransactionKind::StorageUnregister => { - let json_args: serde_json::Value = - serde_json::from_slice(bytes.as_slice()).ok()?; - let force = json_args - .as_object() - .and_then(|x| x.get("force")) - .and_then(|x| x.as_bool()); - - TransactionKind::StorageUnregister(force) - } - InnerTransactionKind::StorageWithdraw => { - let args: parameters::StorageWithdrawCallArgs = - serde_json::from_slice(bytes.as_slice()).ok()?; - - TransactionKind::StorageWithdraw(args) - } - InnerTransactionKind::SetPausedFlags => { - let args = - parameters::PauseEthConnectorCallArgs::try_from_slice(&bytes).ok()?; - TransactionKind::SetPausedFlags(args) - } - InnerTransactionKind::RegisterRelayer => { - let address = Address::try_from_slice(&bytes).ok()?; - TransactionKind::RegisterRelayer(address) - } - InnerTransactionKind::RefundOnError => match promise_data - .first() - .and_then(|x| x.as_ref()) - { - None => TransactionKind::RefundOnError(None), - Some(_) => { - let args = - aurora_engine_types::parameters::RefundCallArgs::try_from_slice(&bytes) - .ok()?; - TransactionKind::RefundOnError(Some(args)) - } - }, - InnerTransactionKind::SetConnectorData => { - let args = parameters::SetContractDataCallArgs::try_from_slice(&bytes).ok()?; - TransactionKind::SetConnectorData(args) - } - InnerTransactionKind::NewConnector => { - let args = parameters::InitCallArgs::try_from_slice(&bytes).ok()?; - TransactionKind::NewConnector(args) - } - InnerTransactionKind::NewEngine => { - let args = parameters::NewCallArgs::try_from_slice(&bytes).ok()?; - TransactionKind::NewEngine(args) - } - InnerTransactionKind::FactoryUpdate => TransactionKind::FactoryUpdate(bytes), - InnerTransactionKind::FactoryUpdateAddressVersion => { - let args = aurora_engine::xcc::AddressVersionUpdateArgs::try_from_slice(&bytes) - .ok()?; - TransactionKind::FactoryUpdateAddressVersion(args) - } - InnerTransactionKind::FactorySetWNearAddress => { - let address = Address::try_from_slice(&bytes).ok()?; - TransactionKind::FactorySetWNearAddress(address) - } - InnerTransactionKind::SetUpgradeDelayBlocks => { - let args = - aurora_engine::parameters::SetUpgradeDelayBlocksArgs::try_from_slice( - &bytes, - ) - .ok()?; - TransactionKind::SetUpgradeDelayBlocks(args) - } - InnerTransactionKind::FundXccSubAccound => { - let args = aurora_engine::xcc::FundXccArgs::try_from_slice(&bytes).ok()?; - TransactionKind::FundXccSubAccound(args) - } - - InnerTransactionKind::PauseContract => TransactionKind::PauseContract, - InnerTransactionKind::ResumeContract => TransactionKind::ResumeContract, - InnerTransactionKind::SetKeyManager => { - let args = - aurora_engine::parameters::RelayerKeyManagerArgs::try_from_slice(&bytes) - .ok()?; - TransactionKind::SetKeyManager(args) - } - InnerTransactionKind::AddRelayerKey => { - let args = - aurora_engine::parameters::RelayerKeyArgs::try_from_slice(&bytes).ok()?; - TransactionKind::AddRelayerKey(args) - } - InnerTransactionKind::RemoveRelayerKey => { - let args = - aurora_engine::parameters::RelayerKeyArgs::try_from_slice(&bytes).ok()?; - TransactionKind::RemoveRelayerKey(args) - } - - InnerTransactionKind::Unknown => { - warn!("Unknown method name: {}", method_name); - return None; - } - } - } else { - warn!("Unknown method name: {}", method_name); - return None; - }; - - return Some((transaction_kind, *deposit)); + let transaction_kind = + sync::parse_transaction_kind(method_name, bytes.clone(), promise_data).ok()?; + return Some((transaction_kind, bytes, *deposit)); } None diff --git a/engine/src/tests.rs b/engine/src/tests.rs index eb8ffc1..437c779 100644 --- a/engine/src/tests.rs +++ b/engine/src/tests.rs @@ -140,7 +140,7 @@ impl TestContext { let mut storage = Storage::open(storage_path.path()).unwrap(); storage.set_engine_account_id(&engine_account_id).unwrap(); let snapshot = JsonSnapshot::load_from_file(snapshot_path).unwrap(); - json_snapshot::initialize_engine_state(&mut storage, snapshot).unwrap(); + json_snapshot::initialize_engine_state(&storage, snapshot).unwrap(); Self { storage, storage_path, diff --git a/engine/src/types.rs b/engine/src/types.rs deleted file mode 100644 index 269789a..0000000 --- a/engine/src/types.rs +++ /dev/null @@ -1,124 +0,0 @@ -use engine_standalone_storage::sync::types::TransactionKind; -use strum::EnumString; - -#[derive(EnumString)] -pub enum InnerTransactionKind { - #[strum(serialize = "submit")] - Submit, - #[strum(serialize = "call")] - Call, - #[strum(serialize = "pause_precompiles")] - PausePrecompiles, - #[strum(serialize = "resume_precompiles")] - ResumePrecompiles, - #[strum(serialize = "deploy_code")] - Deploy, - #[strum(serialize = "deploy_erc20_token")] - DeployErc20, - #[strum(serialize = "ft_on_transfer")] - FtOnTransfer, - #[strum(serialize = "deposit")] - Deposit, - #[strum(serialize = "ft_transfer_call")] - FtTransferCall, - #[strum(serialize = "finish_deposit")] - FinishDeposit, - #[strum(serialize = "ft_resolve_transfer")] - ResolveTransfer, - #[strum(serialize = "ft_transfer")] - FtTransfer, - #[strum(serialize = "withdraw")] - Withdraw, - #[strum(serialize = "storage_deposit")] - StorageDeposit, - #[strum(serialize = "storage_unregister")] - StorageUnregister, - #[strum(serialize = "storage_withdraw")] - StorageWithdraw, - #[strum(serialize = "set_paused_flags")] - SetPausedFlags, - #[strum(serialize = "register_relayer")] - RegisterRelayer, - #[strum(serialize = "refund_on_error")] - RefundOnError, - #[strum(serialize = "set_eth_connector_contract_data")] - SetConnectorData, - #[strum(serialize = "new_eth_connector")] - NewConnector, - #[strum(serialize = "new")] - NewEngine, - #[strum(serialize = "factory_update")] - FactoryUpdate, - #[strum(serialize = "factory_update_address_version")] - FactoryUpdateAddressVersion, - #[strum(serialize = "factory_set_wnear_address")] - FactorySetWNearAddress, - #[strum(serialize = "set_owner")] - SetOwner, - #[strum(serialize = "submit_with_args")] - SubmitWithArgs, - #[strum(serialize = "set_upgrade_delay_blocks")] - SetUpgradeDelayBlocks, - #[strum(serialize = "fund_xcc_sub_account")] - FundXccSubAccound, - #[strum(serialize = "pause_contract")] - PauseContract, - #[strum(serialize = "resume_contract")] - ResumeContract, - #[strum(serialize = "set_key_manager")] - SetKeyManager, - #[strum(serialize = "add_relayer_key")] - AddRelayerKey, - #[strum(serialize = "remove_relayer_key")] - RemoveRelayerKey, - Unknown, -} - -/// Used to make sure InnerTransactionKind is kept in sync with TransactionKind -impl From for InnerTransactionKind { - fn from(tx: TransactionKind) -> Self { - match tx { - TransactionKind::Submit(_) => InnerTransactionKind::Submit, - TransactionKind::Call(_) => InnerTransactionKind::Call, - TransactionKind::PausePrecompiles(_) => InnerTransactionKind::PausePrecompiles, - TransactionKind::ResumePrecompiles(_) => InnerTransactionKind::ResumePrecompiles, - TransactionKind::Deploy(_) => InnerTransactionKind::Deploy, - TransactionKind::DeployErc20(_) => InnerTransactionKind::DeployErc20, - TransactionKind::FtOnTransfer(_) => InnerTransactionKind::FtOnTransfer, - TransactionKind::Deposit(_) => InnerTransactionKind::Deposit, - TransactionKind::FtTransferCall(_) => InnerTransactionKind::FtTransferCall, - TransactionKind::FinishDeposit(_) => InnerTransactionKind::FinishDeposit, - TransactionKind::ResolveTransfer(_, _) => InnerTransactionKind::ResolveTransfer, - TransactionKind::FtTransfer(_) => InnerTransactionKind::FtTransfer, - TransactionKind::Withdraw(_) => InnerTransactionKind::Withdraw, - TransactionKind::StorageDeposit(_) => InnerTransactionKind::StorageDeposit, - TransactionKind::StorageUnregister(_) => InnerTransactionKind::StorageUnregister, - TransactionKind::StorageWithdraw(_) => InnerTransactionKind::StorageWithdraw, - TransactionKind::SetPausedFlags(_) => InnerTransactionKind::SetPausedFlags, - TransactionKind::RegisterRelayer(_) => InnerTransactionKind::RegisterRelayer, - TransactionKind::RefundOnError(_) => InnerTransactionKind::RefundOnError, - TransactionKind::SetConnectorData(_) => InnerTransactionKind::SetConnectorData, - TransactionKind::NewConnector(_) => InnerTransactionKind::NewConnector, - TransactionKind::NewEngine(_) => InnerTransactionKind::NewEngine, - TransactionKind::FactoryUpdate(_) => InnerTransactionKind::FactoryUpdate, - TransactionKind::FactoryUpdateAddressVersion(_) => { - InnerTransactionKind::FactoryUpdateAddressVersion - } - TransactionKind::FactorySetWNearAddress(_) => { - InnerTransactionKind::FactorySetWNearAddress - } - TransactionKind::SetOwner(_) => InnerTransactionKind::SetOwner, - TransactionKind::SubmitWithArgs(_) => InnerTransactionKind::SubmitWithArgs, - TransactionKind::SetUpgradeDelayBlocks(_) => { - InnerTransactionKind::SetUpgradeDelayBlocks - } - TransactionKind::FundXccSubAccound(_) => InnerTransactionKind::FundXccSubAccound, - TransactionKind::PauseContract => InnerTransactionKind::PauseContract, - TransactionKind::ResumeContract => InnerTransactionKind::ResumeContract, - TransactionKind::SetKeyManager(_) => InnerTransactionKind::SetKeyManager, - TransactionKind::AddRelayerKey(_) => InnerTransactionKind::AddRelayerKey, - TransactionKind::RemoveRelayerKey(_) => InnerTransactionKind::RemoveRelayerKey, - TransactionKind::Unknown => InnerTransactionKind::Unknown, - } - } -} diff --git a/refiner-lib/Cargo.toml b/refiner-lib/Cargo.toml index 3de69c0..95d60f3 100644 --- a/refiner-lib/Cargo.toml +++ b/refiner-lib/Cargo.toml @@ -13,6 +13,7 @@ publish = false [dependencies] aurora-engine.workspace = true aurora-engine-modexp.workspace = true +aurora-engine-hashchain.workspace = true aurora-engine-transactions.workspace = true aurora-engine-types.workspace = true aurora-engine-sdk.workspace = true diff --git a/refiner-lib/src/hashchain.rs b/refiner-lib/src/hashchain.rs new file mode 100644 index 0000000..a97aab4 --- /dev/null +++ b/refiner-lib/src/hashchain.rs @@ -0,0 +1,273 @@ +//! This module contains functions for computing the hashchain value of Aurora Blocks. +//! See [AIP-008](https://github.com/aurora-is-near/AIPs/pull/8) for details. + +use aurora_engine::parameters::{ + CallArgs, FunctionCallArgsV1, FunctionCallArgsV2, SubmitArgs, SubmitResult, TransactionStatus, +}; +use aurora_engine_hashchain::merkle::StreamCompactMerkleTree; +use aurora_engine_transactions::{eip_1559, eip_2930, legacy, EthTransactionKind}; +use aurora_engine_types::{types::u256_to_arr, H256}; +use aurora_refiner_types::aurora_block::{ + AuroraBlock, AuroraTransaction, CallArgsVersion, HashchainInputKind, HashchainOutputKind, + ResultStatusTag, +}; +use borsh::BorshSerialize; +use std::borrow::Cow; + +const MUST_BORSH_SERIALIZE: &str = "Must borsh serialize"; + +pub fn compute_hashchain( + previous_hashchain: H256, + block: &AuroraBlock, +) -> Result { + let chain_id = u256_to_arr(&block.chain_id.into()); + + let mut merkle = StreamCompactMerkleTree::new(); + let tx_hashes = block + .transactions + .iter() + .filter_map(|tx| validate_tx_hashchain(tx).transpose()); + for hash in tx_hashes { + let hash = hash?; + merkle.add(hash.0); + } + let txs_hash = merkle.compute_hash(); + + let data = [ + chain_id.as_slice(), + block.engine_account_id.as_bytes(), + &block.height.to_be_bytes(), + &previous_hashchain.0, + &txs_hash, + block.logs_bloom.as_bytes(), + ] + .concat(); + + Ok(aurora_engine_sdk::keccak(&data)) +} + +pub fn validate_tx_hashchain( + transaction: &AuroraTransaction, +) -> Result, ValidationError> { + let hashchain_metadata = match &transaction.near_metadata.hashchain_metadata { + Some(x) => x, + None => return Ok(None), + }; + + let input = match &hashchain_metadata.input { + HashchainInputKind::Rlp => Cow::Owned(rlp_encode(transaction)?), + HashchainInputKind::CallArgsLegacy => { + let call_args = FunctionCallArgsV1 { + contract: transaction.to.ok_or(ValidationError::MissingToInCallTx)?, + input: transaction.input.clone(), + }; + Cow::Owned(call_args.try_to_vec().expect(MUST_BORSH_SERIALIZE)) + } + HashchainInputKind::CallArgs(CallArgsVersion::V1) => { + let call_args = FunctionCallArgsV1 { + contract: transaction.to.ok_or(ValidationError::MissingToInCallTx)?, + input: transaction.input.clone(), + }; + let call_args = CallArgs::V1(call_args); + Cow::Owned(call_args.try_to_vec().expect(MUST_BORSH_SERIALIZE)) + } + HashchainInputKind::CallArgs(CallArgsVersion::V2) => { + let call_args = FunctionCallArgsV2 { + contract: transaction.to.ok_or(ValidationError::MissingToInCallTx)?, + input: transaction.input.clone(), + value: transaction.value.to_bytes(), + }; + let call_args = CallArgs::V2(call_args); + Cow::Owned(call_args.try_to_vec().expect(MUST_BORSH_SERIALIZE)) + } + HashchainInputKind::SubmitWithArgs(args) => { + let submit_args = SubmitArgs { + tx_data: rlp_encode(transaction)?, + max_gas_price: args.max_gas_price, + gas_token_address: args.gas_token_address, + }; + Cow::Owned(submit_args.try_to_vec().expect(MUST_BORSH_SERIALIZE)) + } + HashchainInputKind::Explicit => Cow::Borrowed(transaction.input.as_slice()), + }; + + let output = match &hashchain_metadata.output { + HashchainOutputKind::SubmitResultLegacyV1(tag) => { + let status = tag_to_status(tag, transaction); + let result = crate::legacy::SubmitResultLegacyV1 { + status, + gas_used: transaction.gas_used, + logs: transaction.logs.clone(), + }; + Cow::Owned(result.try_to_vec().expect(MUST_BORSH_SERIALIZE)) + } + HashchainOutputKind::SubmitResultLegacyV2(tag) => { + let status = tag_to_status(tag, transaction); + let result = crate::legacy::SubmitResultLegacyV2 { + status, + gas_used: transaction.gas_used, + logs: crate::legacy::to_v1_logs(&transaction.logs), + }; + Cow::Owned(result.try_to_vec().expect(MUST_BORSH_SERIALIZE)) + } + HashchainOutputKind::SubmitResultLegacyV3 => { + let result = crate::legacy::SubmitResultLegacyV3 { + status: transaction.status, + gas_used: transaction.gas_used, + result: transaction.output.clone(), + logs: crate::legacy::to_v1_logs(&transaction.logs), + }; + Cow::Owned(result.try_to_vec().expect(MUST_BORSH_SERIALIZE)) + } + HashchainOutputKind::SubmitResultV7(tag) => { + let status = tag_to_status(tag, transaction); + let result = SubmitResult::new(status, transaction.gas_used, transaction.logs.clone()); + Cow::Owned(result.try_to_vec().expect(MUST_BORSH_SERIALIZE)) + } + HashchainOutputKind::Explicit => Cow::Borrowed(transaction.output.as_slice()), + HashchainOutputKind::None => Cow::<'_, [u8]>::Borrowed(&[]), + }; + + let computed_hashchain = compute_tx_hashchain( + &hashchain_metadata.method_name, + input.as_ref(), + output.as_ref(), + ); + + if computed_hashchain.0 != hashchain_metadata.intrinsic_hash.0 { + Err(ValidationError::IncorrectTxHash) + } else { + Ok(Some(computed_hashchain)) + } +} + +pub fn compute_tx_hashchain(method_name: &str, input: &[u8], output: &[u8]) -> H256 { + fn as_u32(x: usize) -> u32 { + x.try_into().unwrap_or(u32::MAX) + } + + let data = [ + &as_u32(method_name.len()).to_be_bytes(), + method_name.as_bytes(), + &as_u32(input.len()).to_be_bytes(), + input, + &as_u32(output.len()).to_be_bytes(), + output, + ] + .concat(); + + aurora_engine_sdk::keccak(&data) +} + +fn tag_to_status(tag: &ResultStatusTag, transaction: &AuroraTransaction) -> TransactionStatus { + match tag { + ResultStatusTag::Success => TransactionStatus::Succeed(transaction.output.clone()), + ResultStatusTag::Revert => TransactionStatus::Revert(transaction.output.clone()), + ResultStatusTag::OutOfGas => TransactionStatus::OutOfGas, + ResultStatusTag::OutOfFund => TransactionStatus::OutOfFund, + ResultStatusTag::OutOfOffset => TransactionStatus::OutOfOffset, + ResultStatusTag::CallTooDeep => TransactionStatus::CallTooDeep, + } +} + +fn rlp_encode(transaction: &AuroraTransaction) -> Result, ValidationError> { + match transaction.tx_type { + 0 => { + let tx = legacy::LegacyEthSignedTransaction { + transaction: legacy::TransactionLegacy { + nonce: transaction.nonce.into(), + gas_price: transaction.gas_price, + gas_limit: transaction.gas_limit.into(), + to: transaction.to, + value: transaction.value, + data: transaction.input.clone(), + }, + v: transaction.v, + r: transaction.r, + s: transaction.s, + }; + let bytes = (&EthTransactionKind::Legacy(tx)).into(); + Ok(bytes) + } + eip_1559::TYPE_BYTE => { + let tx = eip_1559::SignedTransaction1559 { + transaction: eip_1559::Transaction1559 { + chain_id: transaction.chain_id, + nonce: transaction.nonce.into(), + max_priority_fee_per_gas: transaction.max_priority_fee_per_gas, + max_fee_per_gas: transaction.max_fee_per_gas, + gas_limit: transaction.gas_limit.into(), + to: transaction.to, + value: transaction.value, + data: transaction.input.clone(), + access_list: transaction.access_list.clone(), + }, + parity: transaction.v as u8, + r: transaction.r, + s: transaction.s, + }; + let bytes = (&EthTransactionKind::Eip1559(tx)).into(); + Ok(bytes) + } + eip_2930::TYPE_BYTE => { + let tx = eip_2930::SignedTransaction2930 { + transaction: eip_2930::Transaction2930 { + chain_id: transaction.chain_id, + nonce: transaction.nonce.into(), + gas_price: transaction.gas_price, + gas_limit: transaction.gas_limit.into(), + to: transaction.to, + value: transaction.value, + data: transaction.input.clone(), + access_list: transaction.access_list.clone(), + }, + parity: transaction.v as u8, + r: transaction.r, + s: transaction.s, + }; + let bytes = (&EthTransactionKind::Eip2930(tx)).into(); + Ok(bytes) + } + _ => Err(ValidationError::UnknownEthTxType), + } +} + +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub enum ValidationError { + IncorrectTxHash, + UnknownEthTxType, + MissingToInCallTx, +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::near_stream::tests::{read_block, TestContext}; + + // All transactions in test blocks should pass `validate_tx_hashchain`. + // I.e. the method of reproducing the original Near input and output + // should be correct. + #[tokio::test] + async fn test_compute_hashchain() { + let db_dir = tempfile::tempdir().unwrap(); + let test_blocks = [ + "tests/res/block-70834059.json", + "tests/res/block-70834061.json", + "tests/res/block-89402026.json", + "tests/res/block-81206675.json", + // This block contains an EIP-2930 submit transaction + "tests/res/block-55905793.json", + ]; + + for file in test_blocks { + let near_block = read_block(file); + let ctx = TestContext::new(&db_dir); + let mut stream = ctx.create_stream(); + let aurora_blocks = stream.next_block(&near_block).await; + + for block in aurora_blocks { + assert!(compute_hashchain(H256::default(), &block).is_ok()); + } + } + } +} diff --git a/refiner-lib/src/legacy.rs b/refiner-lib/src/legacy.rs index 90a174a..628da43 100644 --- a/refiner-lib/src/legacy.rs +++ b/refiner-lib/src/legacy.rs @@ -1,16 +1,17 @@ use aurora_engine::parameters::{ResultLog, SubmitResult, TransactionStatus}; use aurora_engine_types::types::RawU256; -use borsh::BorshDeserialize; +use aurora_refiner_types::aurora_block::HashchainOutputKind; +use borsh::{BorshDeserialize, BorshSerialize}; use std::io::Result; -#[derive(BorshDeserialize)] +#[derive(BorshSerialize, BorshDeserialize)] pub struct SubmitResultLegacyV1 { pub status: TransactionStatus, pub gas_used: u64, pub logs: Vec, } -#[derive(BorshDeserialize)] +#[derive(BorshSerialize, BorshDeserialize)] pub struct ResultLogV1 { pub topics: Vec, pub data: Vec, @@ -32,7 +33,7 @@ impl From for SubmitResult { } } -#[derive(BorshDeserialize)] +#[derive(BorshSerialize, BorshDeserialize)] pub struct SubmitResultLegacyV2 { pub status: TransactionStatus, pub gas_used: u64, @@ -49,16 +50,79 @@ impl From for SubmitResult { } } -pub fn decode_submit_result(result: &[u8]) -> Result { +#[derive(BorshSerialize, BorshDeserialize)] +pub struct SubmitResultLegacyV3 { + pub status: bool, + pub gas_used: u64, + pub result: Vec, + pub logs: Vec, +} + +impl From for SubmitResult { + fn from(result: SubmitResultLegacyV3) -> Self { + let status = if result.status { + TransactionStatus::Succeed(result.result) + } else if !result.result.is_empty() { + TransactionStatus::Revert(result.result) + } else { + TransactionStatus::OutOfFund + }; + SubmitResult::new( + status, + result.gas_used, + result.logs.into_iter().map(Into::into).collect(), + ) + } +} + +pub fn to_v1_logs(logs: &[ResultLog]) -> Vec { + logs.iter() + .map(|l| ResultLogV1 { + topics: l.topics.clone(), + data: l.data.clone(), + }) + .collect() +} + +pub fn decode_submit_result(result: &[u8]) -> Result<(SubmitResult, HashchainOutputKind)> { SubmitResult::try_from_slice(result) - .or_else(|_| SubmitResultLegacyV1::try_from_slice(result).map(Into::into)) - .or_else(|_| SubmitResultLegacyV2::try_from_slice(result).map(Into::into)) + .map(|x| { + let tag = (&x.status).into(); + (x, HashchainOutputKind::SubmitResultV7(tag)) + }) + .or_else(|_| { + SubmitResultLegacyV1::try_from_slice(result).map(|x| { + let tag = (&x.status).into(); + (x.into(), HashchainOutputKind::SubmitResultLegacyV1(tag)) + }) + }) + .or_else(|_| { + SubmitResultLegacyV2::try_from_slice(result).map(|x| { + let tag = (&x.status).into(); + (x.into(), HashchainOutputKind::SubmitResultLegacyV2(tag)) + }) + }) + .or_else(|_| { + SubmitResultLegacyV3::try_from_slice(result) + .map(|x| (x.into(), HashchainOutputKind::SubmitResultLegacyV3)) + }) } #[cfg(test)] mod tests { use super::decode_submit_result; + #[test] + fn test_legacy_may_2021() { + // `SubmitResult` taken from + // https://explorer.mainnet.near.org/transactions/CeG24XrGneQb3PF5xmgzkPGPcFZ3yDzKJ755ZPdXAT6Q#B36aGoLRkspLkjGPgR13ZqUtR3vK7WftqT6HH2BJu5r2 + let data = hex::decode( + "01b026010000000000140000008a778c47d1d6b4dd5d2cef9881f889c250cd882000000000", + ) + .unwrap(); + decode_submit_result(&data).unwrap(); + } + #[test] fn test_legacy_v2() { let data = vec![ diff --git a/refiner-lib/src/lib.rs b/refiner-lib/src/lib.rs index 54005cf..9de8395 100644 --- a/refiner-lib/src/lib.rs +++ b/refiner-lib/src/lib.rs @@ -1,3 +1,4 @@ +pub mod hashchain; mod metrics; pub mod near_stream; mod refiner; diff --git a/refiner-lib/src/metrics.rs b/refiner-lib/src/metrics.rs index c14e240..1ac4eae 100644 --- a/refiner-lib/src/metrics.rs +++ b/refiner-lib/src/metrics.rs @@ -1,4 +1,4 @@ -use aurora_standalone_engine::types::InnerTransactionKind; +use engine_standalone_storage::sync::types::TransactionKindTag; use lazy_static::lazy_static; use prometheus::{self, register_int_counter, register_int_gauge, IntCounter, IntGauge}; @@ -228,111 +228,119 @@ lazy_static! { "refiner_tx_type_remove_relayer_key", "Number of transactions of type: remove_relayer_key" ).unwrap(); + + pub static ref TRANSACTION_TYPE_START_HASHCHAIN : IntCounter = register_int_counter!( + "refiner_tx_type_start_hashchain", + "Number of transactions of type: start_hashchain" + ).unwrap(); } -pub(crate) fn record_metric(tx_kind: &InnerTransactionKind) { +pub(crate) fn record_metric(tx_kind: &TransactionKindTag) { match tx_kind { - InnerTransactionKind::Submit => { + TransactionKindTag::Submit => { TRANSACTION_TYPE_SUBMIT.inc(); } - InnerTransactionKind::SubmitWithArgs => { + TransactionKindTag::SubmitWithArgs => { TRANSACTION_TYPE_SUBMIT_WITH_ARGS.inc(); } - InnerTransactionKind::Call => { + TransactionKindTag::Call => { TRANSACTION_TYPE_CALL.inc(); } - InnerTransactionKind::PausePrecompiles => { + TransactionKindTag::PausePrecompiles => { TRANSACTION_TYPE_PAUSE_PRECOMPILES.inc(); } - InnerTransactionKind::ResumePrecompiles => { + TransactionKindTag::ResumePrecompiles => { TRANSACTION_TYPE_RESUME_PRECOMPILES.inc(); } - InnerTransactionKind::SetOwner => { + TransactionKindTag::SetOwner => { TRANSACTION_TYPE_SET_OWNER.inc(); } - InnerTransactionKind::Deploy => { + TransactionKindTag::Deploy => { TRANSACTION_TYPE_DEPLOY_CODE.inc(); } - InnerTransactionKind::DeployErc20 => { + TransactionKindTag::DeployErc20 => { TRANSACTION_TYPE_DEPLOY_ERC20_TOKEN.inc(); } - InnerTransactionKind::FtOnTransfer => { + TransactionKindTag::FtOnTransfer => { TRANSACTION_TYPE_FT_ON_TRANSFER.inc(); } - InnerTransactionKind::Deposit => { + TransactionKindTag::Deposit => { TRANSACTION_TYPE_DEPOSIT.inc(); } - InnerTransactionKind::FtTransferCall => { + TransactionKindTag::FtTransferCall => { TRANSACTION_TYPE_FT_TRANSFER_CALL.inc(); } - InnerTransactionKind::FinishDeposit => { + TransactionKindTag::FinishDeposit => { TRANSACTION_TYPE_FINISH_DEPOSIT.inc(); } - InnerTransactionKind::ResolveTransfer => { + TransactionKindTag::ResolveTransfer => { TRANSACTION_TYPE_FT_RESOLVE_TRANSFER.inc(); } - InnerTransactionKind::FtTransfer => { + TransactionKindTag::FtTransfer => { TRANSACTION_TYPE_FT_TRANSFER.inc(); } - InnerTransactionKind::Withdraw => { + TransactionKindTag::Withdraw => { TRANSACTION_TYPE_WITHDRAW.inc(); } - InnerTransactionKind::StorageDeposit => { + TransactionKindTag::StorageDeposit => { TRANSACTION_TYPE_STORAGE_DEPOSIT.inc(); } - InnerTransactionKind::StorageUnregister => { + TransactionKindTag::StorageUnregister => { TRANSACTION_TYPE_STORAGE_UNREGISTER.inc(); } - InnerTransactionKind::StorageWithdraw => { + TransactionKindTag::StorageWithdraw => { TRANSACTION_TYPE_STORAGE_WITHDRAW.inc(); } - InnerTransactionKind::SetPausedFlags => { + TransactionKindTag::SetPausedFlags => { TRANSACTION_TYPE_SET_PAUSED_FLAGS.inc(); } - InnerTransactionKind::RegisterRelayer => { + TransactionKindTag::RegisterRelayer => { TRANSACTION_TYPE_REGISTER_RELAYER.inc(); } - InnerTransactionKind::RefundOnError => { + TransactionKindTag::RefundOnError => { TRANSACTION_TYPE_REFUND_ON_ERROR.inc(); } - InnerTransactionKind::SetConnectorData => { + TransactionKindTag::SetConnectorData => { TRANSACTION_TYPE_SET_CONNECTOR_DATA.inc(); } - InnerTransactionKind::NewConnector => { + TransactionKindTag::NewConnector => { TRANSACTION_TYPE_NEW_CONNECTOR.inc(); } - InnerTransactionKind::NewEngine => { + TransactionKindTag::NewEngine => { TRANSACTION_TYPE_NEW_ENGINE.inc(); } - InnerTransactionKind::FactoryUpdate => { + TransactionKindTag::FactoryUpdate => { TRANSACTION_TYPE_FACTORY_UPDATE.inc(); } - InnerTransactionKind::FactoryUpdateAddressVersion => { + TransactionKindTag::FactoryUpdateAddressVersion => { TRANSACTION_TYPE_FACTORY_UPDATE_ADDRESS_VERSION.inc(); } - InnerTransactionKind::FactorySetWNearAddress => { + TransactionKindTag::FactorySetWNearAddress => { TRANSACTION_TYPE_FACTORY_SET_WNEAR_ADDRESS.inc(); } - InnerTransactionKind::SetUpgradeDelayBlocks => { + TransactionKindTag::SetUpgradeDelayBlocks => { TRANSACTION_TYPE_SET_UPGRADE_DELAY_BLOCKS.inc(); } - InnerTransactionKind::FundXccSubAccound => { + TransactionKindTag::FundXccSubAccound => { TRANSACTION_TYPE_FUND_XCC_SUB_ACCOUNT.inc(); } - InnerTransactionKind::PauseContract => { + TransactionKindTag::PauseContract => { TRANSACTION_TYPE_PAUSE_CONTRACT.inc(); } - InnerTransactionKind::ResumeContract => TRANSACTION_TYPE_RESUME_CONTRACT.inc(), - InnerTransactionKind::SetKeyManager => { + TransactionKindTag::ResumeContract => TRANSACTION_TYPE_RESUME_CONTRACT.inc(), + TransactionKindTag::SetKeyManager => { TRANSACTION_TYPE_SET_KEY_MANAGER.inc(); } - InnerTransactionKind::AddRelayerKey => { + TransactionKindTag::AddRelayerKey => { TRANSACTION_TYPE_ADD_RELAYER_KEY.inc(); } - InnerTransactionKind::RemoveRelayerKey => { + TransactionKindTag::RemoveRelayerKey => { TRANSACTION_TYPE_REMOVE_RELAYER_KEY.inc(); } - InnerTransactionKind::Unknown => { + TransactionKindTag::StartHashchain => { + TRANSACTION_TYPE_START_HASHCHAIN.inc(); + } + TransactionKindTag::Unknown => { TRANSACTION_TYPE_UNKNOWN.inc(); } } diff --git a/refiner-lib/src/near_stream.rs b/refiner-lib/src/near_stream.rs index 8d11275..79eaf41 100644 --- a/refiner-lib/src/near_stream.rs +++ b/refiner-lib/src/near_stream.rs @@ -24,9 +24,14 @@ impl NearStream { context: EngineContext, tx_tracker: TxHashTracker, ) -> Self { + let engine_account_id = context + .engine_account_id + .as_ref() + .parse() + .expect("Engine account ID must be valid"); Self { last_block_height, - handler: Refiner::new(chain_id), + handler: Refiner::new(chain_id, engine_account_id), context, tx_tracker, } @@ -107,7 +112,7 @@ impl NearStream { } #[cfg(test)] -mod tests { +pub mod tests { use aurora_engine_types::account_id::AccountId; use aurora_refiner_types::aurora_block::NearBlock; use engine_standalone_storage::json_snapshot::{initialize_engine_state, types::JsonSnapshot}; @@ -298,19 +303,19 @@ mod tests { )); } - fn read_block(path: &str) -> NEARBlock { + pub fn read_block(path: &str) -> NEARBlock { let data = std::fs::read_to_string(path).unwrap(); serde_json::from_str(&data).unwrap() } - struct TestContext { + pub struct TestContext { chain_id: u64, engine_context: EngineContext, tx_tracker: TxHashTracker, } impl TestContext { - fn new(db_dir: &tempfile::TempDir) -> Self { + pub fn new(db_dir: &tempfile::TempDir) -> Self { let engine_path = db_dir.path().join("engine"); let tracker_path = db_dir.path().join("tracker"); let chain_id = 1313161554_u64; @@ -325,16 +330,16 @@ mod tests { } } - async fn init_with_snapshot(&mut self, snapshot_path: &str) { + pub async fn init_with_snapshot(&mut self, snapshot_path: &str) { let json_snapshot: JsonSnapshot = { let json_snapshot_data = std::fs::read_to_string(snapshot_path).unwrap(); serde_json::from_str(&json_snapshot_data).unwrap() }; - let mut storage = self.engine_context.storage.as_ref().write().await; - initialize_engine_state(&mut storage, json_snapshot).unwrap(); + let storage = self.engine_context.storage.as_ref().write().await; + initialize_engine_state(&storage, json_snapshot).unwrap(); } - fn create_stream(self) -> NearStream { + pub fn create_stream(self) -> NearStream { NearStream::new(self.chain_id, None, self.engine_context, self.tx_tracker) } } diff --git a/refiner-lib/src/refiner_inner.rs b/refiner-lib/src/refiner_inner.rs index 0e60c30..7b60f5e 100644 --- a/refiner-lib/src/refiner_inner.rs +++ b/refiner-lib/src/refiner_inner.rs @@ -2,7 +2,9 @@ use crate::legacy::decode_submit_result; use crate::metrics::{record_metric, LATEST_BLOCK_PROCESSED}; use crate::utils::{as_h256, keccak256, TxMetadata}; use aurora_engine::engine::create_legacy_address; -use aurora_engine::parameters::{CallArgs, ResultLog, SubmitArgs, SubmitResult}; +use aurora_engine::parameters::{ + CallArgs, FunctionCallArgsV1, ResultLog, SubmitArgs, SubmitResult, +}; use aurora_engine_sdk::sha256; use aurora_engine_sdk::types::near_account_to_evm_address; use aurora_engine_transactions::{ @@ -11,8 +13,9 @@ use aurora_engine_transactions::{ use aurora_engine_types::types::{Wei, WeiU256}; use aurora_engine_types::{H256, U256}; use aurora_refiner_types::aurora_block::{ - AuroraBlock, AuroraTransaction, AuroraTransactionBuilder, AuroraTransactionBuilderError, - NearBlock, NearBlockHeader, NearTransaction, + AdditionalSubmitArgs, AuroraBlock, AuroraTransaction, AuroraTransactionBuilder, + AuroraTransactionBuilderError, CallArgsVersion, HashchainInputKind, HashchainMetadata, + HashchainOutputKind, NearBlock, NearBlockHeader, NearTransaction, }; use aurora_refiner_types::bloom::Bloom; use aurora_refiner_types::near_block::{BlockView, ExecutionOutcomeWithReceipt, NEARBlock}; @@ -21,10 +24,11 @@ use aurora_refiner_types::near_primitives::types::{AccountId, BlockHeight}; use aurora_refiner_types::near_primitives::views::{ ActionView, ExecutionStatusView, ReceiptEnumView, }; -use aurora_standalone_engine::types::InnerTransactionKind; use borsh::{BorshDeserialize, BorshSerialize}; use byteorder::{BigEndian, WriteBytesExt}; -use engine_standalone_storage::sync::{TransactionExecutionResult, TransactionIncludedOutcome}; +use engine_standalone_storage::sync::{ + types::TransactionKindTag, TransactionExecutionResult, TransactionIncludedOutcome, +}; use engine_standalone_storage::Storage; use std::collections::{HashMap, HashSet}; use std::convert::{TryFrom, TryInto}; @@ -61,6 +65,8 @@ struct TxExtraData { pub struct Refiner { chain_id: u64, + /// Account id of the engine contract on the chain + engine_account_id: AccountId, /// Constant value of an empty merkle tree root empty_merkle_tree_root: H256, /// Last prev_state_root known (useful to compute state roots on skip blocks) @@ -95,9 +101,10 @@ pub struct RefinerItem { } impl Refiner { - pub fn new(chain_id: u64) -> Self { + pub fn new(chain_id: u64, engine_account_id: AccountId) -> Self { Self { chain_id, + engine_account_id, empty_merkle_tree_root: H256::from( TryInto::<&[u8; 32]>::try_into( &hex::decode( @@ -117,6 +124,7 @@ impl Refiner { pub fn on_block_skip(&mut self, height: u64, next_block: &NEARBlock) -> AuroraBlock { AuroraBlock { chain_id: self.chain_id, + engine_account_id: self.engine_account_id.clone(), hash: compute_block_hash(height, self.chain_id), parent_hash: compute_block_hash(height - 1, self.chain_id), height, @@ -190,6 +198,7 @@ impl Refiner { action_index: index, receipt_hash: execution_outcome.receipt.receipt_id, transaction_hash: near_tx_hash, + hashchain_metadata: None, // Value filled during `build_transaction` }; // The execution outcome only applies to the last action in the batch @@ -296,6 +305,7 @@ impl Refiner { let aurora_block = AuroraBlock { chain_id: self.chain_id, + engine_account_id: self.engine_account_id.clone(), hash: compute_block_hash(block.header.height, self.chain_id), parent_hash: compute_block_hash(block.header.height - 1, self.chain_id), height: block.header.height, @@ -347,10 +357,10 @@ struct BuiltTransaction { /// two raw outcomes match in the case that they are both present. fn normalize_output( receipt_id: &CryptoHash, - tx_kind: InnerTransactionKind, + tx_kind: TransactionKindTag, execution_status: Option<&ExecutionStatusView>, engine_outcome: Option<&TransactionIncludedOutcome>, -) -> Result { +) -> Result<(SubmitResult, HashchainOutputKind, Vec), RefinerError> { let near_output = match execution_status { Some(ExecutionStatusView::Unknown | ExecutionStatusView::Failure(_)) => { // Regardless of anything else, if the transaction failed on Near then we report an error. @@ -365,27 +375,32 @@ fn normalize_output( Some(ExecutionStatusView::SuccessValue(result)) => { let bytes = result.clone(); match tx_kind { - InnerTransactionKind::Submit - | InnerTransactionKind::Call - | InnerTransactionKind::Deploy - | InnerTransactionKind::SubmitWithArgs => { + TransactionKindTag::Submit + | TransactionKindTag::Call + | TransactionKindTag::Deploy + | TransactionKindTag::SubmitWithArgs => { // These transaction kinds should have a `SubmitResult` as an outcome - decode_submit_result(&bytes) - .map_err(|_| { - tracing::warn!( - "Submit Result format unknown for receipt {:?}. (FIX)", - receipt_id - ); - }) - .ok() + let (result, output_kind) = decode_submit_result(&bytes).unwrap_or_else(|_| { + // This is now considered a fatal error because we must know how + // to reproduce the Near output for all transactions + panic!( + "Submit Result format unknown for receipt {:?}. (FIX)", + receipt_id + ); + }); + Some((result, output_kind, bytes)) } _ => { // Everything else we'll just use the bytes directly as the output and // set the other fields with default values. - Some(SubmitResult::new( - aurora_engine::parameters::TransactionStatus::Succeed(bytes), - MIN_EVM_GAS, - Vec::new(), + Some(( + SubmitResult::new( + aurora_engine::parameters::TransactionStatus::Succeed(bytes.clone()), + MIN_EVM_GAS, + Vec::new(), + ), + HashchainOutputKind::Explicit, + bytes, )) } } @@ -394,9 +409,13 @@ fn normalize_output( // No need to check the transaction kind in this case because transactions that // produce a SubmitResult as output do not produce a receipt id. let bytes = result.0.to_vec(); - Some(SubmitResult::new( - aurora_engine::parameters::TransactionStatus::Succeed(bytes), - MIN_EVM_GAS, + Some(( + SubmitResult::new( + aurora_engine::parameters::TransactionStatus::Succeed(bytes), + MIN_EVM_GAS, + Vec::new(), + ), + HashchainOutputKind::None, Vec::new(), )) } @@ -435,7 +454,7 @@ fn normalize_output( (Some(near_output), Some(engine_output)) => { // We have a result from both sources, so we should compare them to // make sure they match. Log a warning and use the Near output if they don't. - if near_output != engine_output { + if near_output.0 != engine_output { tracing::warn!("Mismatch between Near and Engine outputs. The internal Engine instance may not have the correct state."); } Ok(near_output) @@ -444,7 +463,11 @@ fn normalize_output( // No Near outcome to rely on, so we simply have to trust the Borealis Engine // outcome without validation. This case happens for actions in a batch except // for the last one (Near only records the outcome of the last action in a batch). - Ok(output) + let tag = (&output.status).into(); + let bytes = output + .try_to_vec() + .expect("Must be able to serialize Result"); + Ok((output, HashchainOutputKind::SubmitResultV7(tag), bytes)) } (Some(output), None) => { // No engine outcome to use, so can only rely on the NEAR output. @@ -454,15 +477,40 @@ fn normalize_output( } (None, None) => { // if there is no outcome from either source then use a default value - Ok(SubmitResult::new( - aurora_engine::parameters::TransactionStatus::Succeed(Vec::new()), - MIN_EVM_GAS, + Ok(( + SubmitResult::new( + aurora_engine::parameters::TransactionStatus::Succeed(Vec::new()), + MIN_EVM_GAS, + Vec::new(), + ), + HashchainOutputKind::None, Vec::new(), )) } } } +fn fill_hashchain_metadata( + tx: AuroraTransactionBuilder, + mut near_metadata: NearTransaction, + method_name: String, + raw_input: &[u8], + raw_output: &[u8], + input_kind: HashchainInputKind, + output_kind: HashchainOutputKind, +) -> AuroraTransactionBuilder { + let intrinsic_hash = + crate::hashchain::compute_tx_hashchain(&method_name, raw_input, raw_output); + let hashchain_metadata = HashchainMetadata { + method_name, + input: input_kind, + output: output_kind, + intrinsic_hash: CryptoHash(intrinsic_hash.0), + }; + near_metadata.hashchain_metadata = Some(hashchain_metadata); + tx.near_metadata(near_metadata) +} + #[allow(clippy::too_many_arguments)] fn build_transaction( near_block: &BlockView, @@ -486,8 +534,7 @@ fn build_transaction( .block_height(near_block.header.height) .chain_id(chain_id) .transaction_index(transaction_index) - .gas_price(U256::zero()) - .near_metadata(near_metadata); + .gas_price(U256::zero()); // Hash used to build transactions merkle tree let mut transaction_hash = H256::zero(); @@ -496,23 +543,23 @@ fn build_transaction( ActionView::FunctionCall { method_name, args, .. } => { - let bytes = args.to_vec(); + let raw_input = args.to_vec(); - transaction_hash = sha256(bytes.as_slice()); + transaction_hash = sha256(raw_input.as_slice()); - let raw_tx_kind: InnerTransactionKind = - InnerTransactionKind::from_str(method_name.as_str()) - .unwrap_or(InnerTransactionKind::Unknown); + let raw_tx_kind: TransactionKindTag = + TransactionKindTag::from_str(method_name.as_str()) + .unwrap_or(TransactionKindTag::Unknown); record_metric(&raw_tx_kind); - if let InnerTransactionKind::Unknown = raw_tx_kind { + if let TransactionKindTag::Unknown = raw_tx_kind { tracing::warn!("Unknown method: {}", method_name); } tx = match raw_tx_kind { - InnerTransactionKind::SubmitWithArgs => { - match SubmitArgs::try_from_slice(&bytes) { + TransactionKindTag::SubmitWithArgs => { + let input_kind = match SubmitArgs::try_from_slice(&raw_input) { Ok(args) => { let bytes = args.tx_data; @@ -558,34 +605,48 @@ fn build_transaction( create_legacy_address(ð_tx.address, ð_tx.nonce); tx.to(None).contract_address(Some(contract_address)) }; + HashchainInputKind::SubmitWithArgs(AdditionalSubmitArgs { + max_gas_price: args.max_gas_price, + gas_token_address: args.gas_token_address, + }) } Err(_) => { hash = virtual_receipt_id.0.try_into().unwrap(); let from_address = near_account_to_evm_address(predecessor_id.as_bytes()); tx = tx.hash(hash).from(from_address); - tx = fill_tx(tx, "submit_with_args", bytes); + tx = fill_tx(tx, raw_input.clone()); + HashchainInputKind::Explicit } }; - let result = normalize_output( + let (result, output_kind, raw_output) = normalize_output( &receipt_id, raw_tx_kind, execution_status, txs.get(&hash), )?; + tx = fill_hashchain_metadata( + tx, + near_metadata, + method_name.clone(), + &raw_input, + &raw_output, + input_kind, + output_kind, + ); fill_with_submit_result(tx, result, &mut bloom) } - InnerTransactionKind::Submit => { - let tx_metadata = TxMetadata::try_from(bytes.as_slice()) + TransactionKindTag::Submit => { + let tx_metadata = TxMetadata::try_from(raw_input.as_slice()) .map_err(RefinerError::ParseMetadata)?; let eth_tx: NormalizedEthTransaction = - EthTransactionKind::try_from(bytes.as_slice()) + EthTransactionKind::try_from(raw_input.as_slice()) .and_then(TryFrom::try_from) .map_err(RefinerError::ParseTransaction)?; - hash = keccak256(bytes.as_slice()); // https://ethereum.stackexchange.com/a/46579/45323 + hash = keccak256(raw_input.as_slice()); // https://ethereum.stackexchange.com/a/46579/45323 tx = tx .hash(hash) @@ -613,24 +674,46 @@ fn build_transaction( tx.to(None).contract_address(Some(contract_address)) }; - let result = normalize_output( + let (result, output_kind, raw_output) = normalize_output( &receipt_id, raw_tx_kind, execution_status, txs.get(&hash), )?; + tx = fill_hashchain_metadata( + tx, + near_metadata, + method_name.clone(), + &raw_input, + &raw_output, + HashchainInputKind::Rlp, + output_kind, + ); fill_with_submit_result(tx, result, &mut bloom) } - InnerTransactionKind::Call => { + TransactionKindTag::Call => { hash = virtual_receipt_id.0.try_into().unwrap(); let from_address = near_account_to_evm_address(predecessor_id.as_bytes()); tx = tx.hash(hash).from(from_address); - if let Some(call_args) = CallArgs::deserialize(&bytes) { - let (to_address, value, input) = match call_args { - CallArgs::V2(args) => (args.contract, args.value, args.input), - CallArgs::V1(args) => (args.contract, WeiU256::default(), args.input), + let input_kind = if let Some(call_args) = CallArgs::deserialize(&raw_input) { + let (to_address, value, input, input_kind) = match call_args { + CallArgs::V2(args) => ( + args.contract, + args.value, + args.input, + HashchainInputKind::CallArgs(CallArgsVersion::V2), + ), + CallArgs::V1(args) => { + let input_kind = + if FunctionCallArgsV1::try_from_slice(&raw_input).is_err() { + HashchainInputKind::CallArgs(CallArgsVersion::V1) + } else { + HashchainInputKind::CallArgsLegacy + }; + (args.contract, WeiU256::default(), args.input, input_kind) + } }; let nonce = storage @@ -656,19 +739,31 @@ fn build_transaction( .v(0) .r(U256::zero()) .s(U256::zero()); + + input_kind } else { - tx = fill_tx(tx, "call", bytes); - } + tx = fill_tx(tx, raw_input.clone()); + HashchainInputKind::Explicit + }; - let result = normalize_output( + let (result, output_kind, raw_output) = normalize_output( &receipt_id, raw_tx_kind, execution_status, txs.get(&hash), )?; + tx = fill_hashchain_metadata( + tx, + near_metadata, + method_name.clone(), + &raw_input, + &raw_output, + input_kind, + output_kind, + ); fill_with_submit_result(tx, result, &mut bloom) } - InnerTransactionKind::Deploy | InnerTransactionKind::DeployErc20 => { + TransactionKindTag::Deploy | TransactionKindTag::DeployErc20 => { hash = virtual_receipt_id.0.try_into().unwrap(); let from_address = near_account_to_evm_address(predecessor_id.as_bytes()); let nonce = storage @@ -690,7 +785,7 @@ fn build_transaction( .max_priority_fee_per_gas(U256::zero()) .max_fee_per_gas(U256::zero()) .value(Wei::zero()) - .input(vec![]) + .input(raw_input.clone()) .access_list(vec![]) .tx_type(0xff) .contract_address(Some(contract_address)) @@ -698,13 +793,21 @@ fn build_transaction( .r(U256::zero()) .s(U256::zero()); - let result = normalize_output( + let (result, output_kind, raw_output) = normalize_output( &receipt_id, raw_tx_kind, execution_status, txs.get(&hash), )?; - + tx = fill_hashchain_metadata( + tx, + near_metadata, + method_name.clone(), + &raw_input, + &raw_output, + HashchainInputKind::Explicit, + output_kind, + ); fill_with_submit_result(tx, result, &mut bloom) } _ => { @@ -712,14 +815,23 @@ fn build_transaction( tx = tx .hash(hash) .from(near_account_to_evm_address(predecessor_id.as_bytes())); - let result = normalize_output( + let (result, output_kind, raw_output) = normalize_output( &receipt_id, raw_tx_kind, execution_status, txs.get(&hash), )?; + tx = fill_hashchain_metadata( + tx, + near_metadata, + method_name.clone(), + &raw_input, + &raw_output, + HashchainInputKind::Explicit, + output_kind, + ); tx = fill_with_submit_result(tx, result, &mut bloom); - fill_tx(tx, method_name, bytes) + fill_tx(tx, raw_input) } } } @@ -746,7 +858,8 @@ fn build_transaction( .s(U256::zero()) // Type for NEAR custom transactions .tx_type(0xfe) - .access_list(vec![]); + .access_list(vec![]) + .near_metadata(near_metadata); match execution_status { None | Some(ExecutionStatusView::Unknown) => { @@ -794,25 +907,14 @@ fn fill_with_submit_result( } } -fn fill_tx( - tx: AuroraTransactionBuilder, - method_name: &str, - input: Vec, -) -> AuroraTransactionBuilder { +fn fill_tx(tx: AuroraTransactionBuilder, input: Vec) -> AuroraTransactionBuilder { tx.to(None) .nonce(0) .gas_limit(0) .max_priority_fee_per_gas(U256::zero()) .max_fee_per_gas(U256::zero()) .value(Wei::new(U256::zero())) - .input( - vec![ - method_name.to_string().as_bytes().to_vec(), - b":".to_vec(), - input, - ] - .concat(), - ) + .input(input) .access_list(vec![]) .tx_type(0xff) .contract_address(None) diff --git a/refiner-lib/tests/res/block-55905793.json b/refiner-lib/tests/res/block-55905793.json new file mode 100644 index 0000000..2fcdb18 --- /dev/null +++ b/refiner-lib/tests/res/block-55905793.json @@ -0,0 +1,5525 @@ +{ + "block": { + "author": "aurora.poolv1.near", + "header": { + "height": 55905793, + "prev_height": 55905792, + "epoch_id": "8S8NS9vDoGmjVdyCrov9crRQCNboec3ubij638iidrNU", + "next_epoch_id": "BhS8fRpxjUr3P9oiGZRawwDqCfgAtNXUsYk1pt2cRha6", + "hash": "8sFBwYN6VKvnApmuxkTw9xzkiW5cq3VcmmHbZHE8uPUs", + "prev_hash": "DAtx6MYN5Gt9Qd4nc19SrfjUDXz2vHLKoXiyduB9up5A", + "prev_state_root": "GgRUyDPc9JTbtg8vRdXLsxAJ5rycAozPQ4iAN392JemL", + "chunk_receipts_root": "EJsaH6u1gBU8sHQsz8nGfwpZYDoDaGCB4p9HBprQUFsd", + "chunk_headers_root": "EJsaH6u1gBU8sHQsz8nGfwpZYDoDaGCB4p9HBprQUFsd", + "chunk_tx_root": "4LiSzwuMqaLKrX8eJXa4zJuNgRkXWSgy1Gs6LKgraZYv", + "outcome_root": "3khRV8cyBE5xXK9PXV2r5G1db13DmhbnfUn2Yd47MKxD", + "chunks_included": 4, + "challenges_root": "11111111111111111111111111111111", + "timestamp": 1640371535003320178, + "timestamp_nanosec": "1640371535003320178", + "random_value": "3r1pCr38bLBmsEh9ZLxWEsSBgmzFGbwMXT6ankWALGsn", + "validator_proposals": [], + "chunk_mask": [ + true, + true, + true, + true + ], + "gas_price": "100000000", + "block_ordinal": 45947331, + "total_supply": "1059461958801233579298186239187064", + "challenges_result": [], + "last_final_block": "H7qjqw2u9LBpeAmvc4bXKE24bxvZmQhAe93TcQCoo3FU", + "last_ds_final_block": "DAtx6MYN5Gt9Qd4nc19SrfjUDXz2vHLKoXiyduB9up5A", + "next_bp_hash": "Ak327YznF38Ee1ZQfZ5SsR6mmhmJJGksAPMrVvyF9Mjs", + "block_merkle_root": "F3VppPbBCuvEd1zrp668A4Bthw5guGA4hRmrzmCngRKj", + "epoch_sync_data_hash": null, + "approvals": [ + "ed25519:yVRy2MnDPLxbwAyh5HwxVL5HF9CMucbA6TzKQeQJ2jL6S4p6sicErh7hiYb12oN8izRKvt3RJdDQSCnhqv3hPZo", + "ed25519:5QyKeNHmUyCXRT4oMiyYL1JLmDwWtmA8T8LNJC3K9voB8MiUCuE6q2Cy2NgfygDSsqJAmYJSrApeLg9ZQywN1Qn6", + "ed25519:2dKK6mx7spqe66XpHrJWHh8xFfNCC8fiB9VpnJ3YfUY3YQyDKCfSS2AGTkKwDx6peyT82X2askW7VogDfjKct7QR", + "ed25519:2kWusfuYrerMVDCEFu1ftZgDeT6SVbYrvkbqKKp1KjX3mFt92EcV2FZj9cpcD62dH99DPM5w13w2Xyy7RU2rSkxv", + "ed25519:4CzznLSXARcJa11QLzaQiFxQZKWX64BnjQpi5r5Vqufa1qXhdtH5xD8Ygm87UXJ9LBJVNyuJjrwAW4yQdNnq9rRP", + "ed25519:3LM3uuZy2snHR8qUp1JP9o4CjMUWuMLd8rfZxNDfLSwDHGBx7hqvjeoCS2hfJhQUuSRvy4TRHUVgoB6EAWrWw2QF", + "ed25519:jDJyjiWrxFa9MiHiQZUZytd6VeotYAzkTStmTewXjsaNArHivUWoPkadxJY7CvD3R16ejQdtMnGKH9hhszvqkXy", + "ed25519:2sjCGy48Nb9eYruCnQvE47TrEuovpbSyV3QQqkatJQE9Xckrn12rYwUhK7HRR2BReBSHkHsRHLn8AN21im5oNVJP", + "ed25519:4KCoDpA63smGijW7Ahs34dV7pD6D9WsTEqrJFKASBHwDZVJsWPKcptgedjze2Qd7VfPUzSajhYsQU7Ny8XgbmwvG", + "ed25519:5uB2Faoa7XsbtbRtTTywAkS9SMJthKbPWf6WWFznEyuNybzM9QGX56C5zUi2ED639BQJoaWFdq5gpsbW2VNBtkpY", + "ed25519:5Mo9Ma5XtGZEs7acshfFTnpvbTuL7KuoaSmiDiWPju6tFGLLqyxCYcwaRJVF2BHGEKamjNfb3m1zKT53MSuWDcjp", + "ed25519:3GFcQJRFdXjUQWg4XNnt7bqBnkggWMEtr1D38Hm36o4d56ESTVj5vXM3ZU9PfdXVo4XPejtd7WhC4nxVQcvXvGwe", + "ed25519:48msMWeajagPGoP9gZ4akJhCbCyK3ySY9dGNch9F8yV8RLryv7mU3JnyC6s4DBGsvJqk7Jrvv1BACwYMsrrbGBFa", + "ed25519:436SrJkV5anrvLKJoxdwuW35qNHQ9bys896XMG3kUZxWhBaXhJwgAi7BijhQ8rV4V6jJxsrRJgfdrNiLYvbvz6K7", + "ed25519:45ZWoZGUvdnFdGhp3WcQsXeVN5X9iVrNVEsedBFocfQs7ZfHiLQec9vzVkb2Sm7thuQm2jG2LCPedq186e5VdoTG", + "ed25519:38T6Ux3E8tgHqyCVY8qFAogCH9fcxgSAg8ZGjQ7nASX6Dw7PWbhVtJqQufuTH8GgmNPTuTesjoANUEasBi8a5vdM", + null, + "ed25519:5QUyzk3mCbqtzZSg8rmSa6E18LydMxJBFAc6JAtinbTqwpGA9FMjqi1NVjKzXygnAJmT7LJ7c3zCr8jj7rPxT7fP", + "ed25519:5M5jzjjxcwYHEf5LHoAh7TpPRLmKCe8fWuzWtbiwZBRGg2WMP3XFM4EySDf1wsaHb3cX4M8zjB7VfcXxkCnddjpt", + null, + "ed25519:4CnJrP1bX5wigboivGLpnN4S1pGin1QDTQB4ARDxCMVYARLjPCuzBKj9ifADo2UeYEBeG4yTRzdZme3Qj3ALikrh", + "ed25519:3j3ksopaNXrH6WBbz3rMqoPcBTupg5ykcRKTQZgSKY2NTUnDe2YMgt6KUKXsuFmwLqs5pv5v6xaK2msCgLh9WjXL", + "ed25519:RUnZL5b6dL1YtnbqtKsb27P9y4z4t9XFLkzSFaWUwKDBByZejLPQGQ2hdNtumJDk9DUizmakijjBbaeYKKKfqzG", + "ed25519:4VGaAmTaH8zT5Qw8hzQnzTJMvwuZ7pVqzmLyPk6AETkdfq7zN6GutgR9tr8s7wtZSmPBreMU2J8NfeCHVBBnM3qo", + "ed25519:HzHnL18egYU9b4XumeqkHwmbqXtuVuoiGtybnmGxBAAoC7fy8KmXRRLMXswZbVxPaZdqEXMLshx9adPRoT16aXE", + "ed25519:39YWL4tYbBEasSNcx5dkaaNdWietxUuYWG2dJoGVNyxsVBNyF54GvggiFvS8WPFWLy4Q8sJQzyusK2QBj2U9MA9s", + null, + null, + null, + null, + "ed25519:5WTXiwu6YWoczZ24178rhiVGKWpLy2u5bSdV7ApLw77ecGi6NoAixBJgZJhff9upk4ektW2kKo9xTJLt2rnwThAB", + "ed25519:2mgRgZQ4ynoEbme2fCKQFWmAsngvFHFLpNQu5fLrN6M8ZfDDWMC7aEWWX8Di5Dzij6ioTMkFe8cABqaSqLDENsxp", + "ed25519:4Q4ntSXtEa5cqhKaGb58pqRSejcqBDvms78yyZJY7E4q7sHQ3H3ok2KnsgBkQgD3zrYZ1SaJBW86N2yyaHdf7wzq", + null, + null, + null, + null, + "ed25519:436SrJkV5anrvLKJoxdwuW35qNHQ9bys896XMG3kUZxWhBaXhJwgAi7BijhQ8rV4V6jJxsrRJgfdrNiLYvbvz6K7", + "ed25519:335QSE39Su2FjnyZrqq2bDkudU8Zg81D7He3suf7mDuyZTDc55isWn2VsD1kvuPNrpVWuxHxmTmje1QwWCugzH8T", + "ed25519:62SuZbW8LXpRFPBBfVj8X5X2Rif9zvRCez9RvkRcvAuqGsC9hNY8VJ2wvBUBXjLeapwryPNWetikpNo1k7zqzuvh", + "ed25519:5NqctHG1gvsQnwuJbAd1ANmE5PK7Wgii8jMzL8Z9ME1hLf2hHASsB7GhSRQHX5xAvTxmBsB2F4B6cG4sfdR9aGKv", + "ed25519:ASrRbimdFbygMm4TD4gt3pLb5ahBtcMk1UrqQ1ssbBx48DH9FYrzbcrcwVTBQKzXWJRfBVEFDJoQ8u2oVXfQeh7", + "ed25519:3YVtpLnqQdTRub5hVAHX1Wv2ErRJ2yaU98YJG18kKLCHcfrj97dJRVmWinyZeUyktRdMUFpuzsGsBT21tj6M7g24", + "ed25519:33FhsLeXEMTPQ373JaYErUxVVaFKzZVpAVVq8Nziz4uvUSgPjNC151SBHh55fjjjvtyRr8wxLZidGXyydFa1vhTS", + "ed25519:57gvBYkFF8rHMoUoCV2hZR6o8sJonM2aH923QySLTwZgTLcasPSa5U2fEEKd7J4WdJfQxu79JFtsrUx6NXA3rUyi", + "ed25519:4K873ppaSJMVgpW9eiLMnqg4crAkgvHLBNNtc6gTozJCy2BnsHxADMnpj5tVY6Kkum7PtooJszM163cvTFUbJdSd", + "ed25519:gUepAn6CDvAsw4uoazXKx9ZpvGSuARX9UPgcYxrSsVRwrCVMNgYHUvxHTRYicVGiks7afwxQb887S3bHHQBWGBS", + "ed25519:5Gn19RevMftx7KdK7Rzj6gZ9itsKUyQYHX8o4PcVHCGgZLPTyyYppWKueeWategxFui91hRMU8bM86c7F6uweLLi", + null, + "ed25519:2RZcYLbTiq21YbPbj1RR931uciC5kYJVh3wAzdPvEuwz9YSiMeKCSYxvMzLyx4gVBaWZPMqd85CJNzGJF1uaPxUp", + "ed25519:3YxN4SBfhJpyoSHxGZPy4PjuRy6BDFR7brPA4EoSsMpiYk9kxtrtCopSY8TvmN6DtaQhWCKcxzG7BsBnmviyFGQh", + "ed25519:5JrxJgQPMG3FfoEuTgx4C11jkc5KMrQh7AX5xjkekNJpDRL4kX5SALFLvLUsUA9KzmCqBEMdrMwe7RXFfnn85hz8", + "ed25519:3WFNVwWwrUJAoweG55gmPLnK396dQghY1mh2JorBFm7FD98aRA8Gpq6Y9L2YENdn3peaZannxRGrGm28RVSpT2FY", + "ed25519:3cRw1ghWUSyb4mLDmGUNLKfG95ftGSva3gwpxSrB46jfBiJGi5odYjYrUwGLMYT8rqknmvVq2N7rRRA9Y11ujn7F", + null, + "ed25519:5Q1vgauPidGvbsfNEyoHg7umzJYiPP999reHgCucknnMeVUKnqbdRJujtLqcDbWWUY4e4gboguw3MSBC9TfEnhrz", + null, + "ed25519:3UmRbPWsFNTkJK4srZUuMX6bbZX2FMfpMti2YYqDu5MuJycMSSp6Mv7qC5bwB9Ffa8xQXUFQyNcik2bH4Wx4tKUX", + "ed25519:Bsst4sKPu9UFfydDANp5BZtamhAiL66dndiT2cwMfUbYj5B5UNTckgs2ACvMnrVyzVBkgxuheNbvTMKR2PoGeRk", + "ed25519:5wC2nDTsVtyscNkLXofuZ5B2ERNUszme6NXzUgGH7mrg37JT58XT2XJLutTxYteJRtQM5pA3QyWW27sVPhddaQNX", + null, + "ed25519:b2pUfn76cCKme2H1FnZ5NLeBQD2irCz6UvUwhzoDZpvwF3SkqkGuBAF7A7HZMnd91BD9SpCHUcH4sMCc5WQK6io", + "ed25519:52dnNaj6iuMZZB4vCQ3Kd3DQij6kLzxtfxbZU7kHTS8T5uPwZ7x6b3uwr3bHJxV2aVvjbtppqciDa2qiLB86bh7B", + "ed25519:3yrdWosjTdrkBobrmiKwmyDbqzYox8gEqb68GxngEceoGHgLUCL4QmCzRtoFzYX3gN3KcbR7RM23R5rqUff9K15Q", + "ed25519:6APbb4gWaCFhfMoPm8EC39pk4kzknu9F6tHqSes9Jz1rtxpAneh1zCtpEKnLeSehUbzApVC89aW3dG81hYsLkGd", + "ed25519:3kwYAMQUPC9k9hKeq9Cujeg15cTTRsAqNpygHU43mTWcrG4UgF14iFzNvjDocqJrgXLtBSvrYT5QA3UVx3Acyq8c" + ], + "signature": "ed25519:2QUrzYD7xRy7UcQSoEJ5Z3VprLgnAfM3rc3yhbc3qEYycUENLbV3sGPGuvLzXJ44SzHQtxASqBoLA1Y1jd27T6rg", + "latest_protocol_version": 49 + } + }, + "shards": [ + { + "shard_id": 0, + "chunk": { + "author": "everstake.poolv1.near", + "header": { + "chunk_hash": "C4EgLVvXAY5gzaNYpfHewp8KL8jwmU1D3cRugD48VmbC", + "prev_block_hash": "DAtx6MYN5Gt9Qd4nc19SrfjUDXz2vHLKoXiyduB9up5A", + "outcome_root": "5faR8YTaRNXvwKN3fc9dC2FrUfbB4srfVqtjaAVq4Pg8", + "prev_state_root": "8ynbitFJuCK52jnpQe8YuCLErhCQCU2dq5rA64hD5mWZ", + "encoded_merkle_root": "DqkSuVKLVWqZwLcT6u5tuigN32kQVFxPzigkEdmpAvSs", + "encoded_length": 2217, + "height_created": 55905793, + "height_included": 55905793, + "shard_id": 0, + "gas_used": 27619447220815, + "gas_limit": 1000000000000000, + "validator_reward": 0, + "balance_burnt": "2266331532851500000000", + "outgoing_receipts_root": "3GQhGA5Lb5vDAMe43kWL2FthbzwgCeCDfsKEQjzLS7ya", + "tx_root": "ChvYKz9119LK9YPzHGN8gnUgQWVWUJvoLyRcEX2YnShA", + "validator_proposals": [], + "signature": "ed25519:9vc432nSkbuybEeWqLkuqaPterJfqjTVyvWyVAn2hvr5XFEvzRhgyMHbFwtS4U6rPRCPEEGiVkZm95r1dAFHDFh" + }, + "transactions": [ + { + "transaction": { + "signer_id": "app.nearcrowd.near", + "public_key": "ed25519:6j4aNwVBP1TTQxcnM36buQoZs3r7bZ48VpU7K1zRbTZ5", + "nonce": 42863319436492, + "receiver_id": "app.nearcrowd.near", + "actions": [ + { + "FunctionCall": { + "method_name": "return_assignment_admin", + "args": "eyJ0YXNrX29yZGluYWwiOjEsImFjY291bnRfaWQiOiJuZXppa3dvcms1Lm5lYXIifQ==", + "gas": 200000000000000, + "deposit": "0" + } + } + ], + "signature": "ed25519:2qD4HnNEkTUSHUkE3JrSKBwML5KVjpu8oGX8e78zL8Uzan4AYQ9MKzjLD9w9bZRjBvvTLgqTCoVjBb5DVFxpHD18", + "hash": "7prbvoNuQXZAkLaZYdAn3zy1ujWuREDNzR4iLCg392iy" + }, + "outcome": { + "execution_outcome": { + "proof": [ + { + "hash": "E1rty7vV5a4SG3hVYrbQVQtfdRcr9P6ZHW56ZhHVJfED", + "direction": "Right" + }, + { + "hash": "3b28EpxMG9odnkmmFpn9MZgT2cYrnCPLZBAVEzhtGyu3", + "direction": "Right" + }, + { + "hash": "34R2ityr8sGrtiRXFNY5WerG1n7n74GS5vrm6LkA8UhE", + "direction": "Right" + } + ], + "block_hash": "8sFBwYN6VKvnApmuxkTw9xzkiW5cq3VcmmHbZHE8uPUs", + "id": "7prbvoNuQXZAkLaZYdAn3zy1ujWuREDNzR4iLCg392iy", + "outcome": { + "logs": [], + "receipt_ids": [ + "2i5WoQJQuaz4UfBPe2EvEpTR8GS5TTbjciRDyZcQPDVT" + ], + "gas_burnt": 2428081987248, + "tokens_burnt": "242808198724800000000", + "executor_id": "app.nearcrowd.near", + "status": { + "SuccessReceiptId": "2i5WoQJQuaz4UfBPe2EvEpTR8GS5TTbjciRDyZcQPDVT" + }, + "metadata": { + "version": 1, + "gas_profile": null + } + } + }, + "receipt": null + } + }, + { + "transaction": { + "signer_id": "app.nearcrowd.near", + "public_key": "ed25519:AF6pRVbEqTF7aPNxBssgNg44w4Vkm1e5rKg5Ecb1pKUj", + "nonce": 42862381518206, + "receiver_id": "app.nearcrowd.near", + "actions": [ + { + "FunctionCall": { + "method_name": "finalize_task", + "args": "eyJ0YXNrX29yZGluYWwiOjEsImlzX2hvbmV5cG90IjpmYWxzZSwiaG9uZXlwb3RfcHJlaW1hZ2UiOls5NywxMDUsMTE3LDExNiw5Nyw5NywxMDcsMTIwLDEwOCwxMTMsOTksMTIwLDEwOCwxMTUsMTExLDEwN10sInRhc2tfcHJlaW1hZ2UiOlsxMjYsMTcxLDE2Myw0Miw3OSwyMCwzMywyNDIsODMsMTUwLDksMTIyLDE2OCwxNDEsMTMxLDUwLDEzMSwyMDksMTUyLDE4NCwxODAsODUsMTcxLDE2NCwxNzYsMjUzLDE4OCwxMjgsMzMsMTU1LDIzLDIzN119", + "gas": 200000000000000, + "deposit": "0" + } + } + ], + "signature": "ed25519:4JkcVuXfa7ThuzbECk7ar4LjJ2FV6wHQ6zsudGDu43UFGa2JJwowqYJQyWbWjMj4egZg8chWYCaTZGJ4oP3QLPyX", + "hash": "8sEKYLCVYsGjmxmFDLWHp2z3LVVXyb1ecvVNT9tJ9qBj" + }, + "outcome": { + "execution_outcome": { + "proof": [ + { + "hash": "2NZVoo1k5b8m1TQmNTE1yGaTTQY6bZCT5QJVogAtmU7b", + "direction": "Left" + }, + { + "hash": "3b28EpxMG9odnkmmFpn9MZgT2cYrnCPLZBAVEzhtGyu3", + "direction": "Right" + }, + { + "hash": "34R2ityr8sGrtiRXFNY5WerG1n7n74GS5vrm6LkA8UhE", + "direction": "Right" + } + ], + "block_hash": "8sFBwYN6VKvnApmuxkTw9xzkiW5cq3VcmmHbZHE8uPUs", + "id": "8sEKYLCVYsGjmxmFDLWHp2z3LVVXyb1ecvVNT9tJ9qBj", + "outcome": { + "logs": [], + "receipt_ids": [ + "2wq6KcusDe1K7PqJiykmMa3cQ8mdFKogVhDJ1n2tiJyt" + ], + "gas_burnt": 2428520230312, + "tokens_burnt": "242852023031200000000", + "executor_id": "app.nearcrowd.near", + "status": { + "SuccessReceiptId": "2wq6KcusDe1K7PqJiykmMa3cQ8mdFKogVhDJ1n2tiJyt" + }, + "metadata": { + "version": 1, + "gas_profile": null + } + } + }, + "receipt": null + } + }, + { + "transaction": { + "signer_id": "app.nearcrowd.near", + "public_key": "ed25519:6MP4bCPHEud33eKXM9kg7f9fVNhmn97CNUyn5ZwM375U", + "nonce": 42863153931573, + "receiver_id": "app.nearcrowd.near", + "actions": [ + { + "FunctionCall": { + "method_name": "finalize_task", + "args": "eyJ0YXNrX29yZGluYWwiOjEsImlzX2hvbmV5cG90IjpmYWxzZSwiaG9uZXlwb3RfcHJlaW1hZ2UiOlsxMDAsMTE1LDk5LDEwNCwxMTMsMTAzLDEwOCwxMjIsMTA0LDExMSwxMDUsMTEwLDEwMCwxMTUsMTA3LDExNF0sInRhc2tfcHJlaW1hZ2UiOls0NywyMDcsMTAsMTEzLDIzNCwxOTIsMjQxLDIyMCwyNTMsMjA0LDEyMyw4MywxNTAsNzksNzEsMjM3LDcwLDIzOCw4NiwyMywzNiwxNDIsMjE4LDE0Miw0Niw2NSwyMTQsMTA1LDIxMiwxNzUsODQsOTFdfQ==", + "gas": 200000000000000, + "deposit": "0" + } + } + ], + "signature": "ed25519:57HfZZQfSpXvP2A4P9uTVbXeAJXxnSDfV1j9k6vbKLh7hCvKMft5km1TgSFWFGA6XTT2fERSYuRVw9MjsN2g6kT2", + "hash": "6BPEPuWoB6NeezM3z59V4A8TFSJpLrCPhJ5tuekAwkYL" + }, + "outcome": { + "execution_outcome": { + "proof": [ + { + "hash": "DBdQEqjjHsd2zHRTsPHCEvekKyisBNzy6VCpbf7K9FCG", + "direction": "Right" + }, + { + "hash": "HLXLzZiYZ35tBjasjpNBBZdcPKdbzc4bHZFHKp79Mzh7", + "direction": "Left" + }, + { + "hash": "34R2ityr8sGrtiRXFNY5WerG1n7n74GS5vrm6LkA8UhE", + "direction": "Right" + } + ], + "block_hash": "8sFBwYN6VKvnApmuxkTw9xzkiW5cq3VcmmHbZHE8uPUs", + "id": "6BPEPuWoB6NeezM3z59V4A8TFSJpLrCPhJ5tuekAwkYL", + "outcome": { + "logs": [], + "receipt_ids": [ + "AuAJ7Zfvmx8mPfVJ8E9PnZfHgFrYMx9ovQnXh16ukGBR" + ], + "gas_burnt": 2428522466246, + "tokens_burnt": "242852246624600000000", + "executor_id": "app.nearcrowd.near", + "status": { + "SuccessReceiptId": "AuAJ7Zfvmx8mPfVJ8E9PnZfHgFrYMx9ovQnXh16ukGBR" + }, + "metadata": { + "version": 1, + "gas_profile": null + } + } + }, + "receipt": null + } + } + ], + "receipts": [ + { + "predecessor_id": "app.nearcrowd.near", + "receiver_id": "app.nearcrowd.near", + "receipt_id": "2i5WoQJQuaz4UfBPe2EvEpTR8GS5TTbjciRDyZcQPDVT", + "receipt": { + "Action": { + "signer_id": "app.nearcrowd.near", + "signer_public_key": "ed25519:6j4aNwVBP1TTQxcnM36buQoZs3r7bZ48VpU7K1zRbTZ5", + "gas_price": "335989893", + "output_data_receivers": [], + "input_data_ids": [], + "actions": [ + { + "FunctionCall": { + "method_name": "return_assignment_admin", + "args": "eyJ0YXNrX29yZGluYWwiOjEsImFjY291bnRfaWQiOiJuZXppa3dvcms1Lm5lYXIifQ==", + "gas": 200000000000000, + "deposit": "0" + } + } + ] + } + } + }, + { + "predecessor_id": "app.nearcrowd.near", + "receiver_id": "app.nearcrowd.near", + "receipt_id": "2wq6KcusDe1K7PqJiykmMa3cQ8mdFKogVhDJ1n2tiJyt", + "receipt": { + "Action": { + "signer_id": "app.nearcrowd.near", + "signer_public_key": "ed25519:AF6pRVbEqTF7aPNxBssgNg44w4Vkm1e5rKg5Ecb1pKUj", + "gas_price": "335989893", + "output_data_receivers": [], + "input_data_ids": [], + "actions": [ + { + "FunctionCall": { + "method_name": "finalize_task", + "args": "eyJ0YXNrX29yZGluYWwiOjEsImlzX2hvbmV5cG90IjpmYWxzZSwiaG9uZXlwb3RfcHJlaW1hZ2UiOls5NywxMDUsMTE3LDExNiw5Nyw5NywxMDcsMTIwLDEwOCwxMTMsOTksMTIwLDEwOCwxMTUsMTExLDEwN10sInRhc2tfcHJlaW1hZ2UiOlsxMjYsMTcxLDE2Myw0Miw3OSwyMCwzMywyNDIsODMsMTUwLDksMTIyLDE2OCwxNDEsMTMxLDUwLDEzMSwyMDksMTUyLDE4NCwxODAsODUsMTcxLDE2NCwxNzYsMjUzLDE4OCwxMjgsMzMsMTU1LDIzLDIzN119", + "gas": 200000000000000, + "deposit": "0" + } + } + ] + } + } + }, + { + "predecessor_id": "app.nearcrowd.near", + "receiver_id": "app.nearcrowd.near", + "receipt_id": "AuAJ7Zfvmx8mPfVJ8E9PnZfHgFrYMx9ovQnXh16ukGBR", + "receipt": { + "Action": { + "signer_id": "app.nearcrowd.near", + "signer_public_key": "ed25519:6MP4bCPHEud33eKXM9kg7f9fVNhmn97CNUyn5ZwM375U", + "gas_price": "335989893", + "output_data_receivers": [], + "input_data_ids": [], + "actions": [ + { + "FunctionCall": { + "method_name": "finalize_task", + "args": "eyJ0YXNrX29yZGluYWwiOjEsImlzX2hvbmV5cG90IjpmYWxzZSwiaG9uZXlwb3RfcHJlaW1hZ2UiOlsxMDAsMTE1LDk5LDEwNCwxMTMsMTAzLDEwOCwxMjIsMTA0LDExMSwxMDUsMTEwLDEwMCwxMTUsMTA3LDExNF0sInRhc2tfcHJlaW1hZ2UiOls0NywyMDcsMTAsMTEzLDIzNCwxOTIsMjQxLDIyMCwyNTMsMjA0LDEyMyw4MywxNTAsNzksNzEsMjM3LDcwLDIzOCw4NiwyMywzNiwxNDIsMjE4LDE0Miw0Niw2NSwyMTQsMTA1LDIxMiwxNzUsODQsOTFdfQ==", + "gas": 200000000000000, + "deposit": "0" + } + } + ] + } + } + }, + { + "predecessor_id": "5d0a7045473bbbe9a1804a9428dbd2bf5a4363d4d0d065c1c69141c9ed8e54db", + "receiver_id": "app.nearcrowd.near", + "receipt_id": "E4yMytrg8RRuV44QuASYXquziW61Lph36s4oG3RAVk58", + "receipt": { + "Action": { + "signer_id": "5d0a7045473bbbe9a1804a9428dbd2bf5a4363d4d0d065c1c69141c9ed8e54db", + "signer_public_key": "ed25519:Fk3Y93oik8nsTcSowYArraLiYF6NMXiQgzzz76Nbjtgu", + "gas_price": "122987387", + "output_data_receivers": [], + "input_data_ids": [], + "actions": [ + { + "FunctionCall": { + "method_name": "apply_for_assignment", + "args": "eyJ0YXNrX29yZGluYWwiOjF9", + "gas": 30000000000000, + "deposit": "0" + } + } + ] + } + } + }, + { + "predecessor_id": "system", + "receiver_id": "nearmother.near", + "receipt_id": "DdQ5dfKsfRAE7NsZSPEBvif42CYVb8zFLwHzSvuxaiB3", + "receipt": { + "Action": { + "signer_id": "nearmother.near", + "signer_public_key": "ed25519:AQY6EnauhvfF1mxfptbre4dceaDodrLYwUvBWHHWfwHd", + "gas_price": "0", + "output_data_receivers": [], + "input_data_ids": [], + "actions": [ + { + "Transfer": { + "deposit": "3241226521569817854228" + } + } + ] + } + } + }, + { + "predecessor_id": "system", + "receiver_id": "zaxar.near", + "receipt_id": "5EuQG46HpNXBfZeLzmu6P6Kr4R1spMkRxycSZrQNG2k9", + "receipt": { + "Action": { + "signer_id": "zaxar.near", + "signer_public_key": "ed25519:61hWZFgyttWzvBYfmLN3KYUQsX9FCZ7i9iY66vDYHYTy", + "gas_price": "0", + "output_data_receivers": [], + "input_data_ids": [], + "actions": [ + { + "Transfer": { + "deposit": "13110204246850142651168" + } + } + ] + } + } + }, + { + "predecessor_id": "system", + "receiver_id": "workhard3.near", + "receipt_id": "FFcY4v3stWcbW1KN6KUT1RFg7VBwyimUEkLf2Bm14qe5", + "receipt": { + "Action": { + "signer_id": "workhard3.near", + "signer_public_key": "ed25519:Dv2jUEv5vtxGFwXmi75VhwEZ9fsA5euzBMQ7iKxrBsp6", + "gas_price": "0", + "output_data_receivers": [], + "input_data_ids": [], + "actions": [ + { + "Transfer": { + "deposit": "3420385884425575615692" + } + } + ] + } + } + }, + { + "predecessor_id": "system", + "receiver_id": "crow1998.near", + "receipt_id": "A3fDkF5d7c6BGRc1MViaAJxbrsvK3KckxtMgFTiPL6Zt", + "receipt": { + "Action": { + "signer_id": "crow1998.near", + "signer_public_key": "ed25519:5DmenvjjNZznRJ87vwB5fDwrZcHaMyqykvnMyMsrtEz3", + "gas_price": "0", + "output_data_receivers": [], + "input_data_ids": [], + "actions": [ + { + "Transfer": { + "deposit": "3342540290445217854228" + } + } + ] + } + } + } + ] + }, + "receipt_execution_outcomes": [ + { + "execution_outcome": { + "proof": [ + { + "hash": "2N7TwNzQiB5SVk7SDb1tn7uhSi8ZqmM7758G7unnuFEt", + "direction": "Left" + }, + { + "hash": "HLXLzZiYZ35tBjasjpNBBZdcPKdbzc4bHZFHKp79Mzh7", + "direction": "Left" + }, + { + "hash": "34R2ityr8sGrtiRXFNY5WerG1n7n74GS5vrm6LkA8UhE", + "direction": "Right" + } + ], + "block_hash": "8sFBwYN6VKvnApmuxkTw9xzkiW5cq3VcmmHbZHE8uPUs", + "id": "2i5WoQJQuaz4UfBPe2EvEpTR8GS5TTbjciRDyZcQPDVT", + "outcome": { + "logs": [], + "receipt_ids": [ + "8hwJo9myB6CcAsThSaPznFeSBJHJLsBaBq4E4S176DM2" + ], + "gas_burnt": 5631543580848, + "tokens_burnt": "563154358084800000000", + "executor_id": "app.nearcrowd.near", + "status": { + "SuccessValue": "" + }, + "metadata": { + "version": 1, + "gas_profile": [ + { + "cost_category": "WASM_HOST_COST", + "cost": "BASE", + "gas_used": "6619202775" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "CONTRACT_COMPILE_BASE", + "gas_used": "35445963" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "CONTRACT_COMPILE_BYTES", + "gas_used": "85577885250" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "READ_MEMORY_BASE", + "gas_used": "28708495200" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "READ_MEMORY_BYTE", + "gas_used": "1140399900" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "READ_REGISTER_BASE", + "gas_used": "17620156302" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "READ_REGISTER_BYTE", + "gas_used": "51745050" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_READ_BASE", + "gas_used": "169070537250" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_READ_KEY_BYTE", + "gas_used": "1083338655" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_READ_VALUE_BYTE", + "gas_used": "1346641200" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_WRITE_BASE", + "gas_used": "256786944000" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_WRITE_EVICTED_BYTE", + "gas_used": "7708153680" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_WRITE_KEY_BYTE", + "gas_used": "3453660483" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_WRITE_VALUE_BYTE", + "gas_used": "6700004424" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "TOUCHING_TRIE_NODE", + "gas_used": "2511905124456" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "WRITE_MEMORY_BASE", + "gas_used": "22430358888" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "WRITE_MEMORY_BYTE", + "gas_used": "1473560652" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "WRITE_REGISTER_BASE", + "gas_used": "22924179888" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "WRITE_REGISTER_BYTE", + "gas_used": "2079455508" + } + ] + } + } + }, + "receipt": { + "predecessor_id": "app.nearcrowd.near", + "receiver_id": "app.nearcrowd.near", + "receipt_id": "2i5WoQJQuaz4UfBPe2EvEpTR8GS5TTbjciRDyZcQPDVT", + "receipt": { + "Action": { + "signer_id": "app.nearcrowd.near", + "signer_public_key": "ed25519:6j4aNwVBP1TTQxcnM36buQoZs3r7bZ48VpU7K1zRbTZ5", + "gas_price": "335989893", + "output_data_receivers": [], + "input_data_ids": [], + "actions": [ + { + "FunctionCall": { + "method_name": "return_assignment_admin", + "args": "eyJ0YXNrX29yZGluYWwiOjEsImFjY291bnRfaWQiOiJuZXppa3dvcms1Lm5lYXIifQ==", + "gas": 200000000000000, + "deposit": "0" + } + } + ] + } + } + } + }, + { + "execution_outcome": { + "proof": [ + { + "hash": "2Q87AGDinFpV3tyJQkcHBsv68t7m5xXhDAmtEVSC7RdR", + "direction": "Right" + }, + { + "hash": "Btp9aiRKRiUbrDzhiKKK6k7PmD8DVQZhrjn64ctvXuny", + "direction": "Right" + }, + { + "hash": "139tYoVc2cedsMBqVS4USB5qK9YrxJreHHGWk4HPikPR", + "direction": "Left" + } + ], + "block_hash": "8sFBwYN6VKvnApmuxkTw9xzkiW5cq3VcmmHbZHE8uPUs", + "id": "2wq6KcusDe1K7PqJiykmMa3cQ8mdFKogVhDJ1n2tiJyt", + "outcome": { + "logs": [], + "receipt_ids": [ + "9jZ4gJA8WQs4foSMSef2X7qJrhi418VLPpPp2ZfQBDMc" + ], + "gas_burnt": 5746720745383, + "tokens_burnt": "574672074538300000000", + "executor_id": "app.nearcrowd.near", + "status": { + "SuccessValue": "" + }, + "metadata": { + "version": 1, + "gas_profile": [ + { + "cost_category": "WASM_HOST_COST", + "cost": "BASE", + "gas_used": "8472579552" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "CONTRACT_COMPILE_BASE", + "gas_used": "35445963" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "CONTRACT_COMPILE_BYTES", + "gas_used": "85577885250" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "READ_MEMORY_BASE", + "gas_used": "33928221600" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "READ_MEMORY_BYTE", + "gas_used": "2033713155" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "READ_REGISTER_BASE", + "gas_used": "27688817046" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "READ_REGISTER_BYTE", + "gas_used": "100828926" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "SHA256_BASE", + "gas_used": "9081940500" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "SHA256_BYTE", + "gas_used": "1953505431" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_READ_BASE", + "gas_used": "169070537250" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_READ_KEY_BYTE", + "gas_used": "1392863985" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_READ_VALUE_BYTE", + "gas_used": "1615969440" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_REMOVE_BASE", + "gas_used": "106946061000" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_REMOVE_KEY_BYTE", + "gas_used": "2904749184" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_REMOVE_RET_VALUE_BYTE", + "gas_used": "1476039168" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_WRITE_BASE", + "gas_used": "192590208000" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_WRITE_EVICTED_BYTE", + "gas_used": "9249784416" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_WRITE_KEY_BYTE", + "gas_used": "3171729015" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_WRITE_VALUE_BYTE", + "gas_used": "8933339232" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "TOUCHING_TRIE_NODE", + "gas_used": "2447497300752" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "WRITE_MEMORY_BASE", + "gas_used": "33645538332" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "WRITE_MEMORY_BYTE", + "gas_used": "2829999108" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "WRITE_REGISTER_BASE", + "gas_used": "31520747346" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "WRITE_REGISTER_BYTE", + "gas_used": "3888999972" + } + ] + } + } + }, + "receipt": { + "predecessor_id": "app.nearcrowd.near", + "receiver_id": "app.nearcrowd.near", + "receipt_id": "2wq6KcusDe1K7PqJiykmMa3cQ8mdFKogVhDJ1n2tiJyt", + "receipt": { + "Action": { + "signer_id": "app.nearcrowd.near", + "signer_public_key": "ed25519:AF6pRVbEqTF7aPNxBssgNg44w4Vkm1e5rKg5Ecb1pKUj", + "gas_price": "335989893", + "output_data_receivers": [], + "input_data_ids": [], + "actions": [ + { + "FunctionCall": { + "method_name": "finalize_task", + "args": "eyJ0YXNrX29yZGluYWwiOjEsImlzX2hvbmV5cG90IjpmYWxzZSwiaG9uZXlwb3RfcHJlaW1hZ2UiOls5NywxMDUsMTE3LDExNiw5Nyw5NywxMDcsMTIwLDEwOCwxMTMsOTksMTIwLDEwOCwxMTUsMTExLDEwN10sInRhc2tfcHJlaW1hZ2UiOlsxMjYsMTcxLDE2Myw0Miw3OSwyMCwzMywyNDIsODMsMTUwLDksMTIyLDE2OCwxNDEsMTMxLDUwLDEzMSwyMDksMTUyLDE4NCwxODAsODUsMTcxLDE2NCwxNzYsMjUzLDE4OCwxMjgsMzMsMTU1LDIzLDIzN119", + "gas": 200000000000000, + "deposit": "0" + } + } + ] + } + } + } + }, + { + "execution_outcome": { + "proof": [ + { + "hash": "8k2Mh42KVXrszncsyzH9QPcCgY95v3dnbheNDtDt5o7F", + "direction": "Left" + }, + { + "hash": "Btp9aiRKRiUbrDzhiKKK6k7PmD8DVQZhrjn64ctvXuny", + "direction": "Right" + }, + { + "hash": "139tYoVc2cedsMBqVS4USB5qK9YrxJreHHGWk4HPikPR", + "direction": "Left" + } + ], + "block_hash": "8sFBwYN6VKvnApmuxkTw9xzkiW5cq3VcmmHbZHE8uPUs", + "id": "AuAJ7Zfvmx8mPfVJ8E9PnZfHgFrYMx9ovQnXh16ukGBR", + "outcome": { + "logs": [], + "receipt_ids": [ + "7eEeFTKdnyVDwA4F5HWRjRPGWqTv5LQcc3GjVWS4Tk4p" + ], + "gas_burnt": 5875445699147, + "tokens_burnt": "587544569914700000000", + "executor_id": "app.nearcrowd.near", + "status": { + "SuccessValue": "" + }, + "metadata": { + "version": 1, + "gas_profile": [ + { + "cost_category": "WASM_HOST_COST", + "cost": "BASE", + "gas_used": "8472579552" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "CONTRACT_COMPILE_BASE", + "gas_used": "35445963" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "CONTRACT_COMPILE_BYTES", + "gas_used": "85577885250" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "READ_MEMORY_BASE", + "gas_used": "33928221600" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "READ_MEMORY_BYTE", + "gas_used": "2033713155" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "READ_REGISTER_BASE", + "gas_used": "27688817046" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "READ_REGISTER_BYTE", + "gas_used": "100927488" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "SHA256_BASE", + "gas_used": "9081940500" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "SHA256_BYTE", + "gas_used": "1953505431" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_READ_BASE", + "gas_used": "169070537250" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_READ_KEY_BYTE", + "gas_used": "1392863985" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_READ_VALUE_BYTE", + "gas_used": "1615969440" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_REMOVE_BASE", + "gas_used": "106946061000" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_REMOVE_KEY_BYTE", + "gas_used": "2904749184" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_REMOVE_RET_VALUE_BYTE", + "gas_used": "1476039168" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_WRITE_BASE", + "gas_used": "192590208000" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_WRITE_EVICTED_BYTE", + "gas_used": "9249784416" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_WRITE_KEY_BYTE", + "gas_used": "3171729015" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_WRITE_VALUE_BYTE", + "gas_used": "8933339232" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "TOUCHING_TRIE_NODE", + "gas_used": "2576312948160" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "WRITE_MEMORY_BASE", + "gas_used": "33645538332" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "WRITE_MEMORY_BYTE", + "gas_used": "2832722880" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "WRITE_REGISTER_BASE", + "gas_used": "31520747346" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "WRITE_REGISTER_BYTE", + "gas_used": "3892801536" + } + ] + } + } + }, + "receipt": { + "predecessor_id": "app.nearcrowd.near", + "receiver_id": "app.nearcrowd.near", + "receipt_id": "AuAJ7Zfvmx8mPfVJ8E9PnZfHgFrYMx9ovQnXh16ukGBR", + "receipt": { + "Action": { + "signer_id": "app.nearcrowd.near", + "signer_public_key": "ed25519:6MP4bCPHEud33eKXM9kg7f9fVNhmn97CNUyn5ZwM375U", + "gas_price": "335989893", + "output_data_receivers": [], + "input_data_ids": [], + "actions": [ + { + "FunctionCall": { + "method_name": "finalize_task", + "args": "eyJ0YXNrX29yZGluYWwiOjEsImlzX2hvbmV5cG90IjpmYWxzZSwiaG9uZXlwb3RfcHJlaW1hZ2UiOlsxMDAsMTE1LDk5LDEwNCwxMTMsMTAzLDEwOCwxMjIsMTA0LDExMSwxMDUsMTEwLDEwMCwxMTUsMTA3LDExNF0sInRhc2tfcHJlaW1hZ2UiOls0NywyMDcsMTAsMTEzLDIzNCwxOTIsMjQxLDIyMCwyNTMsMjA0LDEyMyw4MywxNTAsNzksNzEsMjM3LDcwLDIzOCw4NiwyMywzNiwxNDIsMjE4LDE0Miw0Niw2NSwyMTQsMTA1LDIxMiwxNzUsODQsOTFdfQ==", + "gas": 200000000000000, + "deposit": "0" + } + } + ] + } + } + } + }, + { + "execution_outcome": { + "proof": [ + { + "hash": "BKifi6gtYunjvtnHnfyw8W11PS9GU7kDGj7rRWz7tncF", + "direction": "Left" + }, + { + "hash": "139tYoVc2cedsMBqVS4USB5qK9YrxJreHHGWk4HPikPR", + "direction": "Left" + } + ], + "block_hash": "8sFBwYN6VKvnApmuxkTw9xzkiW5cq3VcmmHbZHE8uPUs", + "id": "E4yMytrg8RRuV44QuASYXquziW61Lph36s4oG3RAVk58", + "outcome": { + "logs": [], + "receipt_ids": [ + "GHwkdWE8qY8jmJgosfxnmaomN7KA6fgiYCo4GhVDpBP" + ], + "gas_burnt": 3263321025188, + "tokens_burnt": "326332102518800000000", + "executor_id": "app.nearcrowd.near", + "status": { + "SuccessValue": "" + }, + "metadata": { + "version": 1, + "gas_profile": [ + { + "cost_category": "WASM_HOST_COST", + "cost": "BASE", + "gas_used": "4765825998" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "CONTRACT_COMPILE_BASE", + "gas_used": "35445963" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "CONTRACT_COMPILE_BYTES", + "gas_used": "85577885250" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "READ_MEMORY_BASE", + "gas_used": "13049316000" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "READ_MEMORY_BYTE", + "gas_used": "1022558577" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "READ_REGISTER_BASE", + "gas_used": "12585825930" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "READ_REGISTER_BYTE", + "gas_used": "39720486" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_READ_BASE", + "gas_used": "56356845750" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_READ_KEY_BYTE", + "gas_used": "154762665" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_READ_VALUE_BYTE", + "gas_used": "897760800" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_WRITE_BASE", + "gas_used": "128393472000" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_WRITE_EVICTED_BYTE", + "gas_used": "5170886427" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_WRITE_KEY_BYTE", + "gas_used": "5568146493" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_WRITE_VALUE_BYTE", + "gas_used": "5738429715" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "TOUCHING_TRIE_NODE", + "gas_used": "434752810002" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "WRITE_MEMORY_BASE", + "gas_used": "16822769166" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "WRITE_MEMORY_BYTE", + "gas_used": "1141260468" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "WRITE_REGISTER_BASE", + "gas_used": "14327612430" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "WRITE_REGISTER_BYTE", + "gas_used": "1532030292" + } + ] + } + } + }, + "receipt": { + "predecessor_id": "5d0a7045473bbbe9a1804a9428dbd2bf5a4363d4d0d065c1c69141c9ed8e54db", + "receiver_id": "app.nearcrowd.near", + "receipt_id": "E4yMytrg8RRuV44QuASYXquziW61Lph36s4oG3RAVk58", + "receipt": { + "Action": { + "signer_id": "5d0a7045473bbbe9a1804a9428dbd2bf5a4363d4d0d065c1c69141c9ed8e54db", + "signer_public_key": "ed25519:Fk3Y93oik8nsTcSowYArraLiYF6NMXiQgzzz76Nbjtgu", + "gas_price": "122987387", + "output_data_receivers": [], + "input_data_ids": [], + "actions": [ + { + "FunctionCall": { + "method_name": "apply_for_assignment", + "args": "eyJ0YXNrX29yZGluYWwiOjF9", + "gas": 30000000000000, + "deposit": "0" + } + } + ] + } + } + } + } + ], + "state_changes": [ + { + "cause": { + "type": "transaction_processing", + "tx_hash": "7prbvoNuQXZAkLaZYdAn3zy1ujWuREDNzR4iLCg392iy" + }, + "type": "account_update", + "change": { + "account_id": "app.nearcrowd.near", + "amount": "3288945281893168272282439995", + "locked": "0", + "code_hash": "EjKd7zW7GBenMT81ndyiAY8wsvSJBE3i1UMXqqNvyoVn", + "storage_usage": 7602393, + "storage_paid_at": 0 + } + }, + { + "cause": { + "type": "transaction_processing", + "tx_hash": "8sEKYLCVYsGjmxmFDLWHp2z3LVVXyb1ecvVNT9tJ9qBj" + }, + "type": "account_update", + "change": { + "account_id": "app.nearcrowd.near", + "amount": "3288877025104292910218203379", + "locked": "0", + "code_hash": "EjKd7zW7GBenMT81ndyiAY8wsvSJBE3i1UMXqqNvyoVn", + "storage_usage": 7602393, + "storage_paid_at": 0 + } + }, + { + "cause": { + "type": "transaction_processing", + "tx_hash": "6BPEPuWoB6NeezM3z59V4A8TFSJpLrCPhJ5tuekAwkYL" + }, + "type": "account_update", + "change": { + "account_id": "app.nearcrowd.near", + "amount": "3288808768314442703528551701", + "locked": "0", + "code_hash": "EjKd7zW7GBenMT81ndyiAY8wsvSJBE3i1UMXqqNvyoVn", + "storage_usage": 7602393, + "storage_paid_at": 0 + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "2i5WoQJQuaz4UfBPe2EvEpTR8GS5TTbjciRDyZcQPDVT" + }, + "type": "account_update", + "change": { + "account_id": "app.nearcrowd.near", + "amount": "3288808768314442703528551701", + "locked": "0", + "code_hash": "EjKd7zW7GBenMT81ndyiAY8wsvSJBE3i1UMXqqNvyoVn", + "storage_usage": 7602423, + "storage_paid_at": 0 + } + }, + { + "cause": { + "type": "action_receipt_gas_reward", + "receipt_hash": "2i5WoQJQuaz4UfBPe2EvEpTR8GS5TTbjciRDyZcQPDVT" + }, + "type": "account_update", + "change": { + "account_id": "app.nearcrowd.near", + "amount": "3288808864418290511528551701", + "locked": "0", + "code_hash": "EjKd7zW7GBenMT81ndyiAY8wsvSJBE3i1UMXqqNvyoVn", + "storage_usage": 7602423, + "storage_paid_at": 0 + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "2wq6KcusDe1K7PqJiykmMa3cQ8mdFKogVhDJ1n2tiJyt" + }, + "type": "account_update", + "change": { + "account_id": "app.nearcrowd.near", + "amount": "3288808864418290511528551701", + "locked": "0", + "code_hash": "EjKd7zW7GBenMT81ndyiAY8wsvSJBE3i1UMXqqNvyoVn", + "storage_usage": 7602139, + "storage_paid_at": 0 + } + }, + { + "cause": { + "type": "action_receipt_gas_reward", + "receipt_hash": "2wq6KcusDe1K7PqJiykmMa3cQ8mdFKogVhDJ1n2tiJyt" + }, + "type": "account_update", + "change": { + "account_id": "app.nearcrowd.near", + "amount": "3288808963964305963628551701", + "locked": "0", + "code_hash": "EjKd7zW7GBenMT81ndyiAY8wsvSJBE3i1UMXqqNvyoVn", + "storage_usage": 7602139, + "storage_paid_at": 0 + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "AuAJ7Zfvmx8mPfVJ8E9PnZfHgFrYMx9ovQnXh16ukGBR" + }, + "type": "account_update", + "change": { + "account_id": "app.nearcrowd.near", + "amount": "3288808963964305963628551701", + "locked": "0", + "code_hash": "EjKd7zW7GBenMT81ndyiAY8wsvSJBE3i1UMXqqNvyoVn", + "storage_usage": 7601855, + "storage_paid_at": 0 + } + }, + { + "cause": { + "type": "action_receipt_gas_reward", + "receipt_hash": "AuAJ7Zfvmx8mPfVJ8E9PnZfHgFrYMx9ovQnXh16ukGBR" + }, + "type": "account_update", + "change": { + "account_id": "app.nearcrowd.near", + "amount": "3288809067372002950628551701", + "locked": "0", + "code_hash": "EjKd7zW7GBenMT81ndyiAY8wsvSJBE3i1UMXqqNvyoVn", + "storage_usage": 7601855, + "storage_paid_at": 0 + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "E4yMytrg8RRuV44QuASYXquziW61Lph36s4oG3RAVk58" + }, + "type": "account_update", + "change": { + "account_id": "app.nearcrowd.near", + "amount": "3288809067372002950628551701", + "locked": "0", + "code_hash": "EjKd7zW7GBenMT81ndyiAY8wsvSJBE3i1UMXqqNvyoVn", + "storage_usage": 7601879, + "storage_paid_at": 0 + } + }, + { + "cause": { + "type": "action_receipt_gas_reward", + "receipt_hash": "E4yMytrg8RRuV44QuASYXquziW61Lph36s4oG3RAVk58" + }, + "type": "account_update", + "change": { + "account_id": "app.nearcrowd.near", + "amount": "3288809092431454741428551701", + "locked": "0", + "code_hash": "EjKd7zW7GBenMT81ndyiAY8wsvSJBE3i1UMXqqNvyoVn", + "storage_usage": 7601879, + "storage_paid_at": 0 + } + }, + { + "cause": { + "type": "transaction_processing", + "tx_hash": "6BPEPuWoB6NeezM3z59V4A8TFSJpLrCPhJ5tuekAwkYL" + }, + "type": "access_key_update", + "change": { + "account_id": "app.nearcrowd.near", + "public_key": "ed25519:6MP4bCPHEud33eKXM9kg7f9fVNhmn97CNUyn5ZwM375U", + "access_key": { + "nonce": 42863153931573, + "permission": "FullAccess" + } + } + }, + { + "cause": { + "type": "transaction_processing", + "tx_hash": "7prbvoNuQXZAkLaZYdAn3zy1ujWuREDNzR4iLCg392iy" + }, + "type": "access_key_update", + "change": { + "account_id": "app.nearcrowd.near", + "public_key": "ed25519:6j4aNwVBP1TTQxcnM36buQoZs3r7bZ48VpU7K1zRbTZ5", + "access_key": { + "nonce": 42863319436492, + "permission": "FullAccess" + } + } + }, + { + "cause": { + "type": "transaction_processing", + "tx_hash": "8sEKYLCVYsGjmxmFDLWHp2z3LVVXyb1ecvVNT9tJ9qBj" + }, + "type": "access_key_update", + "change": { + "account_id": "app.nearcrowd.near", + "public_key": "ed25519:AF6pRVbEqTF7aPNxBssgNg44w4Vkm1e5rKg5Ecb1pKUj", + "access_key": { + "nonce": 42862381518206, + "permission": "FullAccess" + } + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "AuAJ7Zfvmx8mPfVJ8E9PnZfHgFrYMx9ovQnXh16ukGBR" + }, + "type": "data_update", + "change": { + "account_id": "app.nearcrowd.near", + "key_base64": "UwwAAABuZWFybWlyLm5lYXI=", + "value_base64": "ZA263BJazjRB9AAAAAAAALuilfp1nOTq8R8AAAAAAAAjAAAAAQAAAH8WAABuFgAAVAQEAAAAAAAAAAAAAAAAAA==" + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "2wq6KcusDe1K7PqJiykmMa3cQ8mdFKogVhDJ1n2tiJyt" + }, + "type": "data_update", + "change": { + "account_id": "app.nearcrowd.near", + "key_base64": "Uw4AAABtYWtldHJhc2gubmVhcg==", + "value_base64": "Q5xXOi/fIJqFWgAAAAAAAL2fhEgPO42OYQ0AAAAAAAAOAAAAAAAAANYHAADHBwAAAAARBAAAAAAAAAAAAAAAAA==" + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "2wq6KcusDe1K7PqJiykmMa3cQ8mdFKogVhDJ1n2tiJyt" + }, + "type": "data_update", + "change": { + "account_id": "app.nearcrowd.near", + "key_base64": "UxAAAABrZXJ0eV9rcmljcy5uZWFy", + "value_base64": "C5U564pfcaQBAwAAAAAAAFR9WkIzZ9z7H4QAAAAAAAAAAAAAAgAAAGkgAAA0IAAAVHVVFRBEBQQAAAAAAAAAAA==" + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "AuAJ7Zfvmx8mPfVJ8E9PnZfHgFrYMx9ovQnXh16ukGBR" + }, + "type": "data_update", + "change": { + "account_id": "app.nearcrowd.near", + "key_base64": "UxIAAABhbGVrc2Vldl9pbXAyLm5lYXI=", + "value_base64": "NyUNUMd+C0WRKAAAAAAAAAVMAnNZA0ScHpAAAAAAAAAHAAAAAAAAALgHAACDBwAAFBUVVVQQUVEERAAAAAAAAA==" + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "2i5WoQJQuaz4UfBPe2EvEpTR8GS5TTbjciRDyZcQPDVT" + }, + "type": "data_update", + "change": { + "account_id": "app.nearcrowd.near", + "key_base64": "U1RBVEU=", + "value_base64": "EgAAAGFwcC5uZWFyY3Jvd2QubmVhcg==" + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "2i5WoQJQuaz4UfBPe2EvEpTR8GS5TTbjciRDyZcQPDVT" + }, + "type": "data_update", + "change": { + "account_id": "app.nearcrowd.near", + "key_base64": "cAEAAAA=", + "value_base64": "AADA3xqEJbXSDgAAAAAAAAAAQLK6yeAZHgIAAAAAAADCAQAAAAAAAAFGY2LWXPpqFwoAAAAAAADwHNZePMXDFpOAOAAAAAAABgAAAHQBAAAAYqdEOQAAAAAABgAAAHQBAAAAYo0EAAAAAAAABgAAAHQBAAAAYwYAAAB0AQAAAGUGAAAAdAEAAABmBgAAAHQBAAAAZwEGAAAAdAEAAABtAA==" + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "2wq6KcusDe1K7PqJiykmMa3cQ8mdFKogVhDJ1n2tiJyt" + }, + "type": "data_update", + "change": { + "account_id": "app.nearcrowd.near", + "key_base64": "cAEAAAA=", + "value_base64": "AADA3xqEJbXSDgAAAAAAAAAAQLK6yeAZHgIAAAAAAADCAQAAAAAAAAFGY2LWXPpqFwoAAAAAAADwHNZePMXDFpOAOAAAAAAABgAAAHQBAAAAYqdEOQAAAAAABgAAAHQBAAAAYo0EAAAAAAAABgAAAHQBAAAAYwYAAAB0AQAAAGUGAAAAdAEAAABmBgAAAHQBAAAAZwEGAAAAdAEAAABtAA==" + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "AuAJ7Zfvmx8mPfVJ8E9PnZfHgFrYMx9ovQnXh16ukGBR" + }, + "type": "data_update", + "change": { + "account_id": "app.nearcrowd.near", + "key_base64": "cAEAAAA=", + "value_base64": "AADA3xqEJbXSDgAAAAAAAAAAQLK6yeAZHgIAAAAAAADCAQAAAAAAAAFGY2LWXPpqFwoAAAAAAADwHNZePMXDFpOAOAAAAAAABgAAAHQBAAAAYqdEOQAAAAAABgAAAHQBAAAAYo0EAAAAAAAABgAAAHQBAAAAYwYAAAB0AQAAAGUGAAAAdAEAAABmBgAAAHQBAAAAZwEGAAAAdAEAAABtAA==" + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "E4yMytrg8RRuV44QuASYXquziW61Lph36s4oG3RAVk58" + }, + "type": "data_update", + "change": { + "account_id": "app.nearcrowd.near", + "key_base64": "cAEAAAA=", + "value_base64": "AADA3xqEJbXSDgAAAAAAAAAAQLK6yeAZHgIAAAAAAADCAQAAAAAAAMJWbuwpnURAEgoAAAAAAAC41ue4PMXDFpOAOAAAAAAABgAAAHQBAAAAYqdEOQAAAAAABgAAAHQBAAAAYo0EAAAAAAAABgAAAHQBAAAAYwYAAAB0AQAAAGUGAAAAdAEAAABmBgAAAHQBAAAAZwEGAAAAdAEAAABtAA==" + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "2i5WoQJQuaz4UfBPe2EvEpTR8GS5TTbjciRDyZcQPDVT" + }, + "type": "data_update", + "change": { + "account_id": "app.nearcrowd.near", + "key_base64": "dAEAAABjjAQAAAAAAAA=", + "value_base64": "UUYTRZ6RDpnKUTKWUN6jckrZ/QfduoMsWTzfxonVCNoB" + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "2wq6KcusDe1K7PqJiykmMa3cQ8mdFKogVhDJ1n2tiJyt" + }, + "type": "data_deletion", + "change": { + "account_id": "app.nearcrowd.near", + "key_base64": "dAEAAABlGVm90/4tEN3d3hnsPVuWpXk772b/nbLHm3fhK+O6d1M=" + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "AuAJ7Zfvmx8mPfVJ8E9PnZfHgFrYMx9ovQnXh16ukGBR" + }, + "type": "data_deletion", + "change": { + "account_id": "app.nearcrowd.near", + "key_base64": "dAEAAABl3FnLCNbya5LxZUtQ85Ah6UXGfwTHCGn9o/1tSNW9/TY=" + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "2wq6KcusDe1K7PqJiykmMa3cQ8mdFKogVhDJ1n2tiJyt" + }, + "type": "data_deletion", + "change": { + "account_id": "app.nearcrowd.near", + "key_base64": "dAEAAABmGVm90/4tEN3d3hnsPVuWpXk772b/nbLHm3fhK+O6d1M=" + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "AuAJ7Zfvmx8mPfVJ8E9PnZfHgFrYMx9ovQnXh16ukGBR" + }, + "type": "data_deletion", + "change": { + "account_id": "app.nearcrowd.near", + "key_base64": "dAEAAABm3FnLCNbya5LxZUtQ85Ah6UXGfwTHCGn9o/1tSNW9/TY=" + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "2i5WoQJQuaz4UfBPe2EvEpTR8GS5TTbjciRDyZcQPDVT" + }, + "type": "data_update", + "change": { + "account_id": "app.nearcrowd.near", + "key_base64": "dAEAAABnDwAAAG5lemlrd29yazUubmVhcg==", + "value_base64": "AQ==" + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "E4yMytrg8RRuV44QuASYXquziW61Lph36s4oG3RAVk58" + }, + "type": "data_update", + "change": { + "account_id": "app.nearcrowd.near", + "key_base64": "dAEAAABnQAAAADVkMGE3MDQ1NDczYmJiZTlhMTgwNGE5NDI4ZGJkMmJmNWE0MzYzZDRkMGQwNjVjMWM2OTE0MWM5ZWQ4ZTU0ZGI=", + "value_base64": "ArjW57g8xcMWw1Zu7CmdREASCgAAAAAAAA==" + } + } + ] + }, + { + "shard_id": 1, + "chunk": { + "author": "staked.poolv1.near", + "header": { + "chunk_hash": "6AUkggvMEG7gD4R2a9Ps3mxAXqU1pvXQ3zRqsV4vYuCC", + "prev_block_hash": "DAtx6MYN5Gt9Qd4nc19SrfjUDXz2vHLKoXiyduB9up5A", + "outcome_root": "8LFkBPKYKFHEA19cg4Q5hMz1ZGJL21dDQfTUQyadBw2A", + "prev_state_root": "9rukRgHpMRZx3oQqBwb17fyvZEkweyHcNZB187PanMog", + "encoded_merkle_root": "xVDV15jfoTvSCpxv9Yy3EiUn2X7WGyWXKVUvF7U96K5", + "encoded_length": 467, + "height_created": 55905793, + "height_included": 55905793, + "shard_id": 1, + "gas_used": 93479124695744, + "gas_limit": 1000000000000000, + "validator_reward": 0, + "balance_burnt": "6762104677416000000000", + "outgoing_receipts_root": "88tzXjN8t1WmioTrb45drhNygXA3niCE9ubjjrDGN7r6", + "tx_root": "11111111111111111111111111111111", + "validator_proposals": [], + "signature": "ed25519:2PgXpjrFnMRzgoWPVQ3B9ES93jv4WN6XZscduRh1akbUujpqRe9DGoZhPXidZGKdfQz6bmsDec2HcBxRgjGUgbco" + }, + "transactions": [], + "receipts": [ + { + "predecessor_id": "system", + "receiver_id": "relay.aurora", + "receipt_id": "BUWHe9Kpe2r48CodBmcDV5qcTq3YxwckFZ4NpBMQqCNc", + "receipt": { + "Action": { + "signer_id": "relay.aurora", + "signer_public_key": "ed25519:wopnVsqVvRAp2RdJSbC55Tpv2DFZFuCR6iC6HBhFynR", + "gas_price": "0", + "output_data_receivers": [], + "input_data_ids": [], + "actions": [ + { + "Transfer": { + "deposit": "186488079357848010227336" + } + } + ] + } + } + }, + { + "predecessor_id": "system", + "receiver_id": "relay.aurora", + "receipt_id": "58J9PHs38Sp6Fw5bnB1cM1UEGTf3yPuazU4SRhykQaoQ", + "receipt": { + "Action": { + "signer_id": "relay.aurora", + "signer_public_key": "ed25519:6ZoVzgmKqarYG3NndmMgdLmf97PXJJ6ThAAP5qdqiyHD", + "gas_price": "0", + "output_data_receivers": [], + "input_data_ids": [], + "actions": [ + { + "Transfer": { + "deposit": "188684725371119291029384" + } + } + ] + } + } + }, + { + "predecessor_id": "system", + "receiver_id": "relay.aurora", + "receipt_id": "DVJrvavd5xcXEwj3z5iUXj3nYoF5tuvH6yXA6dWVAtQ1", + "receipt": { + "Action": { + "signer_id": "relay.aurora", + "signer_public_key": "ed25519:GcDgXdokGcPoUs7dqxszGBYpub1tnorjYQ2nPpmSA198", + "gas_price": "0", + "output_data_receivers": [], + "input_data_ids": [], + "actions": [ + { + "Transfer": { + "deposit": "182569189355277003043436" + } + } + ] + } + } + } + ] + }, + "receipt_execution_outcomes": [ + { + "execution_outcome": { + "proof": [ + { + "hash": "F5C1ddH8tsZ8CP3X58cAXRXcjw5LkeMEGKvUZZTeXpvR", + "direction": "Right" + }, + { + "hash": "9aAqVaW1kU4pXpb4hSJzpxizHAjDk4Gxi5LYZMKUT9sz", + "direction": "Right" + } + ], + "block_hash": "8sFBwYN6VKvnApmuxkTw9xzkiW5cq3VcmmHbZHE8uPUs", + "id": "9VZaWnVp6cZQ6wpdkB9g5HDfVTtT5YwuhqjXWKvG8GHy", + "outcome": { + "logs": [ + "signer_address 0xf2cee2ae2ef2e1605d531bfcb1dd9bd1ddf1e5a8", + "total_writes_count 6", + "total_written_bytes 192" + ], + "receipt_ids": [ + "D5BPt9PWLV12BiaKTfk5BXrrKT5q8G4XErtXrFohyquL" + ], + "gas_burnt": 11100664246866, + "tokens_burnt": "1110066424686600000000", + "executor_id": "aurora", + "status": { + "SuccessValue": "BwAAAAAA1r0AAAAAAAABAAAAnIIeOWEDdudV2QOuv7DFcTplFiICAAAAF+q9Cmb6Yx91N8791d9qol1ayQTPdZbpWNQ6daANDWgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQ6kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWgtz4AAAAAAAAAAAAAAAAPLO4q4u8uFgXVMb/LHdm9Hd8eWo" + }, + "metadata": { + "version": 1, + "gas_profile": [ + { + "cost_category": "WASM_HOST_COST", + "cost": "BASE", + "gas_used": "23299593768" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "CONTRACT_COMPILE_BASE", + "gas_used": "35445963" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "CONTRACT_COMPILE_BYTES", + "gas_used": "194494977000" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "ECRECOVER_BASE", + "gas_used": "278821988457" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "KECCAK256_BASE", + "gas_used": "17638473825" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "KECCAK256_BYTE", + "gas_used": "3285079065" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "LOG_BASE", + "gas_used": "10629939150" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "LOG_BYTE", + "gas_used": "1319879100" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "READ_MEMORY_BASE", + "gas_used": "117443844000" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "READ_MEMORY_BYTE", + "gas_used": "5968092810" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "READ_REGISTER_BASE", + "gas_used": "67963460022" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "READ_REGISTER_BYTE", + "gas_used": "464916954" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_READ_BASE", + "gas_used": "1408921143750" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_READ_KEY_BYTE", + "gas_used": "22131061095" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_READ_VALUE_BYTE", + "gas_used": "46649895570" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_WRITE_BASE", + "gas_used": "385180416000" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_WRITE_EVICTED_BYTE", + "gas_used": "5138769120" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_WRITE_KEY_BYTE", + "gas_used": "14378504868" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_WRITE_VALUE_BYTE", + "gas_used": "5955559488" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "TOUCHING_TRIE_NODE", + "gas_used": "5023810248912" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "UTF8_DECODING_BASE", + "gas_used": "9335337183" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "UTF8_DECODING_BYTE", + "gas_used": "29158047900" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "WRITE_MEMORY_BASE", + "gas_used": "72898666386" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "WRITE_MEMORY_BYTE", + "gas_used": "12673711116" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "WRITE_REGISTER_BASE", + "gas_used": "94562242038" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "WRITE_REGISTER_BYTE", + "gas_used": "33404342868" + } + ] + } + } + }, + "receipt": { + "predecessor_id": "relay.aurora", + "receiver_id": "aurora", + "receipt_id": "9VZaWnVp6cZQ6wpdkB9g5HDfVTtT5YwuhqjXWKvG8GHy", + "receipt": { + "Action": { + "signer_id": "relay.aurora", + "signer_public_key": "ed25519:4ejVQCoy3mba1Z8kjhmttnJn46ogvpqUyfSfNXq6wgzt", + "gas_price": "625040174", + "output_data_receivers": [], + "input_data_ids": [], + "actions": [ + { + "FunctionCall": { + "method_name": "submit", + "args": "+IuDAdDqgINmkbeUnIIeOWEDdudV2QOuv7DFcTplFiKApIK468cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWgtz4IScioLHoFk+Y3uN3UsCcAFhLzw6MRH/P6DS+GJ5Np8ryp6T/nERoDwXPRoMPMUhA4L4aTzIMlN65Fa0lrAEMohQlMS5c7Xy", + "gas": 300000000000000, + "deposit": "0" + } + } + ] + } + } + } + }, + { + "execution_outcome": { + "proof": [ + { + "hash": "3GxmCkwGo1XNrAqER7jwr5G4MiUm5GcLrZFX1PhTUd6r", + "direction": "Left" + }, + { + "hash": "9aAqVaW1kU4pXpb4hSJzpxizHAjDk4Gxi5LYZMKUT9sz", + "direction": "Right" + } + ], + "block_hash": "8sFBwYN6VKvnApmuxkTw9xzkiW5cq3VcmmHbZHE8uPUs", + "id": "ERacWbujaHCEwbv6Rhrz1F7DwSn2opXL6SzBQL3sK7Wa", + "outcome": { + "logs": [ + "signer_address 0xb1b2d5befca7e4d2a050bf438824ad4467f0bc9f", + "total_writes_count 2", + "total_written_bytes 64" + ], + "receipt_ids": [ + "2wAQkMRaHDpN2F8jw1qgZ1sXjXvJz1Tx19Nes9jbT7PL" + ], + "gas_burnt": 5005574350319, + "tokens_burnt": "500557435031900000000", + "executor_id": "aurora", + "status": { + "SuccessValue": "BwAAAAAACFIAAAAAAAAAAAAA" + }, + "metadata": { + "version": 1, + "gas_profile": [ + { + "cost_category": "WASM_HOST_COST", + "cost": "BASE", + "gas_used": "7943043330" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "CONTRACT_COMPILE_BASE", + "gas_used": "35445963" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "CONTRACT_COMPILE_BYTES", + "gas_used": "194494977000" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "ECRECOVER_BASE", + "gas_used": "278821988457" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "KECCAK256_BASE", + "gas_used": "17638473825" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "KECCAK256_BYTE", + "gas_used": "2404763760" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "LOG_BASE", + "gas_used": "10629939150" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "LOG_BYTE", + "gas_used": "1306680309" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "READ_MEMORY_BASE", + "gas_used": "54807127200" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "READ_MEMORY_BYTE", + "gas_used": "2098335816" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "READ_REGISTER_BASE", + "gas_used": "22654486674" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "READ_REGISTER_BYTE", + "gas_used": "38833428" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_READ_BASE", + "gas_used": "507211611750" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_READ_KEY_BYTE", + "gas_used": "5664313539" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_READ_VALUE_BYTE", + "gas_used": "662098590" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_WRITE_BASE", + "gas_used": "128393472000" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_WRITE_KEY_BYTE", + "gas_used": "3101246148" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_WRITE_VALUE_BYTE", + "gas_used": "1985186496" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "TOUCHING_TRIE_NODE", + "gas_used": "1111034958894" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "UTF8_DECODING_BASE", + "gas_used": "9335337183" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "UTF8_DECODING_BYTE", + "gas_used": "28866467421" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "WRITE_MEMORY_BASE", + "gas_used": "22430358888" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "WRITE_MEMORY_BYTE", + "gas_used": "898844760" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "WRITE_REGISTER_BASE", + "gas_used": "25789702374" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "WRITE_REGISTER_BYTE", + "gas_used": "1497816216" + } + ] + } + } + }, + "receipt": { + "predecessor_id": "relay.aurora", + "receiver_id": "aurora", + "receipt_id": "ERacWbujaHCEwbv6Rhrz1F7DwSn2opXL6SzBQL3sK7Wa", + "receipt": { + "Action": { + "signer_id": "relay.aurora", + "signer_public_key": "ed25519:6A884F7Yz1URoF4y3c4ZqGNFfYBgAjMHBNnk7uWRR785", + "gas_price": "625040174", + "output_data_receivers": [], + "input_data_ids": [], + "actions": [ + { + "FunctionCall": { + "method_name": "submit", + "args": "AfhlhE5FQVKAgIJSCJSxstW+/Kfk0qBQv0OIJK1EZ/C8n4CAwAGg5rFwI+BHLJu0JVWnx/K4VdBXydnMKvSAIDy12uee0e2gRa3fnruoQrDlqEO28y/1RZ2GgZJHJpf14B8asnvRmOY=", + "gas": 300000000000000, + "deposit": "0" + } + } + ] + } + } + } + }, + { + "execution_outcome": { + "proof": [ + { + "hash": "E3gPym7afh3ngGrDVWpqSU1oeToSYsW9sCEJ1gRGMXQx", + "direction": "Right" + }, + { + "hash": "3ZQApy9iUmeyHeGSLv62nrroNhJX5Gi1B5dVfQvL8KUA", + "direction": "Left" + } + ], + "block_hash": "8sFBwYN6VKvnApmuxkTw9xzkiW5cq3VcmmHbZHE8uPUs", + "id": "32wi2dLDpgPDXsgCQHcCVdvwBdpvhYrHiEwsEQdcA4wJ", + "outcome": { + "logs": [ + "signer_address 0x6ca9c3352ca9f5c9a926f201a3899f02b3c21160", + "total_writes_count 6", + "total_written_bytes 192" + ], + "receipt_ids": [ + "96TgWq8XxBqypJKvUurGqrE6v3JqMdgn6kxNVAeKR5W2" + ], + "gas_burnt": 11051999657472, + "tokens_burnt": "1105199965747200000000", + "executor_id": "aurora", + "status": { + "SuccessValue": "BwAAAAAABr4AAAAAAAABAAAAW+3WHrc+UndQhv5pNToMwX90j0ICAAAAF+q9Cmb6Yx91N8791d9qol1ayQTPdZbpWNQ6daANDWgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGH40AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI41AdrYm4IAAAAAAAAAAAAAAAAAGypwzUsqfXJqSbyAaOJnwKzwhFg" + }, + "metadata": { + "version": 1, + "gas_profile": [ + { + "cost_category": "WASM_HOST_COST", + "cost": "BASE", + "gas_used": "23299593768" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "CONTRACT_COMPILE_BASE", + "gas_used": "35445963" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "CONTRACT_COMPILE_BYTES", + "gas_used": "194494977000" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "ECRECOVER_BASE", + "gas_used": "278821988457" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "KECCAK256_BASE", + "gas_used": "17638473825" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "KECCAK256_BYTE", + "gas_used": "3285079065" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "LOG_BASE", + "gas_used": "10629939150" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "LOG_BYTE", + "gas_used": "1319879100" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "READ_MEMORY_BASE", + "gas_used": "117443844000" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "READ_MEMORY_BYTE", + "gas_used": "5968092810" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "READ_REGISTER_BASE", + "gas_used": "67963460022" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "READ_REGISTER_BYTE", + "gas_used": "464916954" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_READ_BASE", + "gas_used": "1408921143750" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_READ_KEY_BYTE", + "gas_used": "22131061095" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_READ_VALUE_BYTE", + "gas_used": "46649895570" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_WRITE_BASE", + "gas_used": "385180416000" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_WRITE_EVICTED_BYTE", + "gas_used": "5138769120" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_WRITE_KEY_BYTE", + "gas_used": "14378504868" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_WRITE_VALUE_BYTE", + "gas_used": "5955559488" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "TOUCHING_TRIE_NODE", + "gas_used": "4975504381134" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "UTF8_DECODING_BASE", + "gas_used": "9335337183" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "UTF8_DECODING_BYTE", + "gas_used": "29158047900" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "WRITE_MEMORY_BASE", + "gas_used": "72898666386" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "WRITE_MEMORY_BYTE", + "gas_used": "12673711116" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "WRITE_REGISTER_BASE", + "gas_used": "94562242038" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "WRITE_REGISTER_BYTE", + "gas_used": "33404342868" + } + ] + } + } + }, + "receipt": { + "predecessor_id": "relay.aurora", + "receiver_id": "aurora", + "receipt_id": "32wi2dLDpgPDXsgCQHcCVdvwBdpvhYrHiEwsEQdcA4wJ", + "receipt": { + "Action": { + "signer_id": "relay.aurora", + "signer_public_key": "ed25519:GZLnpkFX9vJDptwS6cTi5VyjML2eGDSB6x6wAFuFzeU5", + "gas_price": "625040174", + "output_data_receivers": [], + "input_data_ids": [], + "actions": [ + { + "FunctionCall": { + "method_name": "submit", + "args": "+IuDAZUhgINmkbeUW+3WHrc+UndQhv5pNToMwX90j0KApIK468cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI41AdrYm4IAIScioLIoMRJjnY1EqP8Ib9xtxtFiEfqmPNYY3OVn1aL5XvdMITLoCcQp7fGkJM/XfDinQe9CQs0YXP3/SI4YBi9ii39Hb1i", + "gas": 300000000000000, + "deposit": "0" + } + } + ] + } + } + } + }, + { + "execution_outcome": { + "proof": [ + { + "hash": "F1W1KCYAwpJEgBmrN85bv9Gj8XB5cSxyC3hfEjMQCt7o", + "direction": "Left" + }, + { + "hash": "3ZQApy9iUmeyHeGSLv62nrroNhJX5Gi1B5dVfQvL8KUA", + "direction": "Left" + } + ], + "block_hash": "8sFBwYN6VKvnApmuxkTw9xzkiW5cq3VcmmHbZHE8uPUs", + "id": "FsXb4VFpeQYTcZy9KiVXRt2uPMCX4Pvco6R2YAruDkaW", + "outcome": { + "logs": [ + "signer_address 0xf39fee2fdfe7db022591f4a82e3537fa0b55fb9c" + ], + "receipt_ids": [ + "AQwqbPMvZL5gyjsbKYTZkFLKhJmAkCWYaiC7kyVzQqZA" + ], + "gas_burnt": 3452579214889, + "tokens_burnt": "345257921488900000000", + "executor_id": "aurora", + "status": { + "Failure": { + "ActionError": { + "index": 0, + "kind": { + "FunctionCallError": { + "ExecutionError": "Smart contract panicked: ERR_INCORRECT_NONCE" + } + } + } + } + }, + "metadata": { + "version": 1, + "gas_profile": [ + { + "cost_category": "WASM_HOST_COST", + "cost": "BASE", + "gas_used": "3441985443" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "CONTRACT_COMPILE_BASE", + "gas_used": "35445963" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "CONTRACT_COMPILE_BYTES", + "gas_used": "194494977000" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "ECRECOVER_BASE", + "gas_used": "278821988457" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "KECCAK256_BASE", + "gas_used": "11758982550" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "KECCAK256_BYTE", + "gas_used": "5732785035" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "LOG_BASE", + "gas_used": "3543313050" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "LOG_BYTE", + "gas_used": "752331087" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "READ_MEMORY_BASE", + "gas_used": "18269042400" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "READ_MEMORY_BYTE", + "gas_used": "1535738532" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "READ_REGISTER_BASE", + "gas_used": "15102991116" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "READ_REGISTER_BYTE", + "gas_used": "47506884" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_READ_BASE", + "gas_used": "112713691500" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_READ_KEY_BYTE", + "gas_used": "897623457" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_READ_VALUE_BYTE", + "gas_used": "482546430" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "TOUCHING_TRIE_NODE", + "gas_used": "241529338890" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "UTF8_DECODING_BASE", + "gas_used": "6223558122" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "UTF8_DECODING_BYTE", + "gas_used": "22160116404" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "WRITE_MEMORY_BASE", + "gas_used": "14018974305" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "WRITE_MEMORY_BYTE", + "gas_used": "1138536696" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "WRITE_REGISTER_BASE", + "gas_used": "17193134916" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "WRITE_REGISTER_BYTE", + "gas_used": "1832353848" + } + ] + } + } + }, + "receipt": { + "predecessor_id": "relay.aurora", + "receiver_id": "aurora", + "receipt_id": "FsXb4VFpeQYTcZy9KiVXRt2uPMCX4Pvco6R2YAruDkaW", + "receipt": { + "Action": { + "signer_id": "relay.aurora", + "signer_public_key": "ed25519:AA3WiFNPDkMxPXsv4tcz27zGsWNCdL55BvHzjMfjbEoY", + "gas_price": "625040174", + "output_data_receivers": [], + "input_data_ids": [], + "actions": [ + { + "FunctionCall": { + "method_name": "submit", + "args": "+QEJEICDhVcHlPqTQ8OJcyRJagX8davta6wp+KQPgLikAXWxxIOjXDnI/9LjZPZ0aDprvkqxFSjBGrssGmH3RhQMLmPjAAAAAAAAAAAAAAAAgKFgFsxKLmosrKikpJixaZ/w+EQAAAAAAAAAAAAAAAABDg0gslZiC2q3dynIFSES4LeFYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALGivC7FAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqGqEnIqCyKB1dUDyUtqq4S6Z3UsJLnFN70N0htJ/IsN/AH95dkD7dKAiSp4yRfzhyMJgc8iK/GbqXen7SfgPznQc0NwQdpxBbg==", + "gas": 300000000000000, + "deposit": "0" + } + } + ] + } + } + } + } + ], + "state_changes": [ + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "9VZaWnVp6cZQ6wpdkB9g5HDfVTtT5YwuhqjXWKvG8GHy" + }, + "type": "account_update", + "change": { + "account_id": "aurora", + "amount": "5592097924264840704050166219", + "locked": "0", + "code_hash": "4BUeRD8r31z8T76fuBEKzFU9Vkswm5RR2Bof1QNne3S4", + "storage_usage": 220972518, + "storage_paid_at": 0 + } + }, + { + "cause": { + "type": "action_receipt_gas_reward", + "receipt_hash": "9VZaWnVp6cZQ6wpdkB9g5HDfVTtT5YwuhqjXWKvG8GHy" + }, + "type": "account_update", + "change": { + "account_id": "aurora", + "amount": "5592098184437277641050166219", + "locked": "0", + "code_hash": "4BUeRD8r31z8T76fuBEKzFU9Vkswm5RR2Bof1QNne3S4", + "storage_usage": 220972518, + "storage_paid_at": 0 + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "ERacWbujaHCEwbv6Rhrz1F7DwSn2opXL6SzBQL3sK7Wa" + }, + "type": "account_update", + "change": { + "account_id": "aurora", + "amount": "5592098184437277641050166219", + "locked": "0", + "code_hash": "4BUeRD8r31z8T76fuBEKzFU9Vkswm5RR2Bof1QNne3S4", + "storage_usage": 220972706, + "storage_paid_at": 0 + } + }, + { + "cause": { + "type": "action_receipt_gas_reward", + "receipt_hash": "ERacWbujaHCEwbv6Rhrz1F7DwSn2opXL6SzBQL3sK7Wa" + }, + "type": "account_update", + "change": { + "account_id": "aurora", + "amount": "5592098261759499568350166219", + "locked": "0", + "code_hash": "4BUeRD8r31z8T76fuBEKzFU9Vkswm5RR2Bof1QNne3S4", + "storage_usage": 220972706, + "storage_paid_at": 0 + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "32wi2dLDpgPDXsgCQHcCVdvwBdpvhYrHiEwsEQdcA4wJ" + }, + "type": "account_update", + "change": { + "account_id": "aurora", + "amount": "5592098261759499568350166219", + "locked": "0", + "code_hash": "4BUeRD8r31z8T76fuBEKzFU9Vkswm5RR2Bof1QNne3S4", + "storage_usage": 220972836, + "storage_paid_at": 0 + } + }, + { + "cause": { + "type": "action_receipt_gas_reward", + "receipt_hash": "32wi2dLDpgPDXsgCQHcCVdvwBdpvhYrHiEwsEQdcA4wJ" + }, + "type": "account_update", + "change": { + "account_id": "aurora", + "amount": "5592098520471998823550166219", + "locked": "0", + "code_hash": "4BUeRD8r31z8T76fuBEKzFU9Vkswm5RR2Bof1QNne3S4", + "storage_usage": 220972836, + "storage_paid_at": 0 + } + }, + { + "cause": { + "type": "action_receipt_gas_reward", + "receipt_hash": "FsXb4VFpeQYTcZy9KiVXRt2uPMCX4Pvco6R2YAruDkaW" + }, + "type": "account_update", + "change": { + "account_id": "aurora", + "amount": "5592098551193365892650166219", + "locked": "0", + "code_hash": "4BUeRD8r31z8T76fuBEKzFU9Vkswm5RR2Bof1QNne3S4", + "storage_usage": 220972836, + "storage_paid_at": 0 + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "32wi2dLDpgPDXsgCQHcCVdvwBdpvhYrHiEwsEQdcA4wJ" + }, + "type": "data_update", + "change": { + "account_id": "aurora", + "key_base64": "BwFb7dYetz5Sd1CG/mk1OgzBf3SPQg==", + "value_base64": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE=" + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "32wi2dLDpgPDXsgCQHcCVdvwBdpvhYrHiEwsEQdcA4wJ" + }, + "type": "data_update", + "change": { + "account_id": "aurora", + "key_base64": "BwFsqcM1LKn1yakm8gGjiZ8Cs8IRYA==", + "value_base64": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlSI=" + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "9VZaWnVp6cZQ6wpdkB9g5HDfVTtT5YwuhqjXWKvG8GHy" + }, + "type": "data_update", + "change": { + "account_id": "aurora", + "key_base64": "BwGcgh45YQN251XZA66/sMVxOmUWIg==", + "value_base64": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE=" + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "ERacWbujaHCEwbv6Rhrz1F7DwSn2opXL6SzBQL3sK7Wa" + }, + "type": "data_update", + "change": { + "account_id": "aurora", + "key_base64": "BwGxstW+/Kfk0qBQv0OIJK1EZ/C8nw==", + "value_base64": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE=" + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "9VZaWnVp6cZQ6wpdkB9g5HDfVTtT5YwuhqjXWKvG8GHy" + }, + "type": "data_update", + "change": { + "account_id": "aurora", + "key_base64": "BwHyzuKuLvLhYF1TG/yx3ZvR3fHlqA==", + "value_base64": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0Os=" + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "32wi2dLDpgPDXsgCQHcCVdvwBdpvhYrHiEwsEQdcA4wJ" + }, + "type": "data_update", + "change": { + "account_id": "aurora", + "key_base64": "BwJb7dYetz5Sd1CG/mk1OgzBf3SPQg==", + "value_base64": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "32wi2dLDpgPDXsgCQHcCVdvwBdpvhYrHiEwsEQdcA4wJ" + }, + "type": "data_update", + "change": { + "account_id": "aurora", + "key_base64": "BwJsqcM1LKn1yakm8gGjiZ8Cs8IRYA==", + "value_base64": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "9VZaWnVp6cZQ6wpdkB9g5HDfVTtT5YwuhqjXWKvG8GHy" + }, + "type": "data_update", + "change": { + "account_id": "aurora", + "key_base64": "BwKcgh45YQN251XZA66/sMVxOmUWIg==", + "value_base64": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "ERacWbujaHCEwbv6Rhrz1F7DwSn2opXL6SzBQL3sK7Wa" + }, + "type": "data_update", + "change": { + "account_id": "aurora", + "key_base64": "BwKxstW+/Kfk0qBQv0OIJK1EZ/C8nw==", + "value_base64": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "9VZaWnVp6cZQ6wpdkB9g5HDfVTtT5YwuhqjXWKvG8GHy" + }, + "type": "data_update", + "change": { + "account_id": "aurora", + "key_base64": "BwLyzuKuLvLhYF1TG/yx3ZvR3fHlqA==", + "value_base64": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "32wi2dLDpgPDXsgCQHcCVdvwBdpvhYrHiEwsEQdcA4wJ" + }, + "type": "data_update", + "change": { + "account_id": "aurora", + "key_base64": "BwRb7dYetz5Sd1CG/mk1OgzBf3SPQgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQ==", + "value_base64": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABh+M=" + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "32wi2dLDpgPDXsgCQHcCVdvwBdpvhYrHiEwsEQdcA4wJ" + }, + "type": "data_update", + "change": { + "account_id": "aurora", + "key_base64": "BwRb7dYetz5Sd1CG/mk1OgzBf3SPQgEAAAASYxNe/VbNXGKSAiJPbld7FK/FZw8T2lKLtqYe8Xy+xA==", + "value_base64": "AAAAAGHGFU8AAAAAAAAAAAAAAAAAAAACONQHa2JuCAA=" + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "9VZaWnVp6cZQ6wpdkB9g5HDfVTtT5YwuhqjXWKvG8GHy" + }, + "type": "data_update", + "change": { + "account_id": "aurora", + "key_base64": "BwScgh45YQN251XZA66/sMVxOmUWIgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQ==", + "value_base64": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0Oo=" + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "9VZaWnVp6cZQ6wpdkB9g5HDfVTtT5YwuhqjXWKvG8GHy" + }, + "type": "data_update", + "change": { + "account_id": "aurora", + "key_base64": "BwScgh45YQN251XZA66/sMVxOmUWIgEAAAA9Gf7OvxCPO3vH8kzv2yFjhDGV9nVcE5zX6iQDBeIlyw==", + "value_base64": "AAAAAGHGFU8AAAAAAAAAAAAAAAAAAAAAAAAAAFoLc+A=" + } + } + ] + }, + { + "shard_id": 2, + "chunk": { + "author": "lux.poolv1.near", + "header": { + "chunk_hash": "6PuTtGMGpY2PHV9zjEieKEo4dscugRqifUwryFMb7sqB", + "prev_block_hash": "DAtx6MYN5Gt9Qd4nc19SrfjUDXz2vHLKoXiyduB9up5A", + "outcome_root": "GzQSagKRXrhmcQUW3JSwAkGxdNCvZsyVso12sP7xT6ek", + "prev_state_root": "8Y7gZbkWovGE6a1LoKTeQDFpmtsuC9QCdkHuxrKUcY1q", + "encoded_merkle_root": "AiTUhpCvFXUWcQLgZZAkjZJtbY1xHcqQenuEeHnxWgv6", + "encoded_length": 4312, + "height_created": 55905793, + "height_included": 55905793, + "shard_id": 2, + "gas_used": 5525868177376, + "gas_limit": 1000000000000000, + "validator_reward": 0, + "balance_burnt": "485632048987600000000", + "outgoing_receipts_root": "EGPENL7KbNaaCuqnoSXEPDb6TGw7i6zceNVQjeV6rYhj", + "tx_root": "DZo7rvL9AkY5LFf96mjPTjC5VE8fGoxAYVUMQsi9V4aZ", + "validator_proposals": [], + "signature": "ed25519:5woHQNUTSqnvEkm3Y8tC9Pk3vSefKerEUzTMCRyik8YGzvVFb87a5aodtcLw2GfuqG1Gvmcq2cjscht6pLhe5tWS" + }, + "transactions": [ + { + "transaction": { + "signer_id": "event-relayer.near", + "public_key": "ed25519:6aRk1uFDeonhS5m9iqqSH6WnDXktb2pseqoW7n3GCemb", + "nonce": 40347067022435, + "receiver_id": "aurora", + "actions": [ + { + "FunctionCall": { + "method_name": "deposit", + "args": "AAAAAAAAAAAeAQAA+QEblGv61Cz8TvyW9SnXhtZD/0qLifpS+EKg0UJDnCeOJdrZpQdm8VPQ49LXvyvRb8J4HEvUlLKxWp2gAAAAAAAAAAAAAAAAHuh6qQ3exMt+UIerwDNCMkiog6G4wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEcN5N+CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvYXVyb3JhOjFlZTg3YWE5MGRkZWM0Y2I3ZTUwODdhYmMwMzM0MjMyNDhhODgzYTEAAAAAAAAAAAAAAAAAAAAAAHcAAAAAAAAALQIAAAL5AikBg3oUZbkBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAACAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAACAAAAAAAAAAAAD5AR75ARuUa/rULPxO/Jb1KdeG1kP/SouJ+lL4QqDRQkOcJ44l2tmlB2bxU9Dj0te/K9FvwngcS9SUsrFanaAAAAAAAAAAAAAAAAAe6HqpDd7Ey35Qh6vAM0IySKiDobjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARw3k34IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC9hdXJvcmE6MWVlODdhYTkwZGRlYzRjYjdlNTA4N2FiYzAzMzQyMzI0OGE4ODNhMQAAAAAAAAAAAAAAAAAAAAAAGAIAAPkCFaBlHxF5MjVXhzP5hNJugQOCTeceolbUMBn19RD8+2pDb6AdzE3o3sddequFtWe2zNQa0xJFG5SKdBPwoUL9QNSTR5QtqjWWKm1D61TEg2ezPQs3nJMOXqCQsMWRsPqkntZJwPNcqaGBb8zvHjocm9GGStbqnfJF7qCVKcUMSuyyXe9+ktzw5QMJwbEDxV50olg9wEDQCoFvpqALZTQRSnz3BxJbvqyQK+fDWeBOQMitNa3sSOfQQE/c3bkBACwhGKIgAphDmMon8vyxD+TEiRCMh4QhACYBAGTQIgkDSKwRHMCMKSBYLlEAQmUdRApCgQEIEKlhQjGMYkJgADGQgFBTUKVBKAwyT2oBE0NzhdkqVdtTUEoUQgQTjAHMAT/NBMAjAGYAIBQQA2AxWdAaCOA4QDClkAJkQJYRaAzAtrDtEAOBEQAQSQEQAQrPBBRAoCkRyAycnDiIRQHZiLAjDBIM94I0QluIZ5iuAikxGoMCECiChkkjYToSEIGLd5UoAiqDoSRWNDABgA2aJiChOAArHeAMGAICIQPwSyAIDHT1CYgAoEBCBNIKESGMhVc9YMRh5GNyRKpiCEIAUAGHKgl6JW8kGYPTofKEAclQ2IOPnOaEYcYTfI1nZXRoIjGUAg8R1vt8oCm2fJBifAWmFxG/T6VPqOs/b93GH0Di5ChMemxr9f8riAAJAAAEE9j8hRRPOaRsAwAAADQBAAD5ATGg7nzxSaTHH8HYWby077ohFxwn7G9eD0fnUVQEZ/Uwzbeg9SZKWD/rc/aaFIi3ZgTdIVOVrbw6Ajl8zmmXyPrTs9qgE4glopVuUaXuCHVotcKjHFcHseVnDbSbMd0Q9hlXegugfKd3M1g+iNsW1qWauZC445/cukgStC6t3e1BLhV9WNag4PVbctXjkEmws9LQdlJX0hneREfGzQ8/GGMa/oYtivGgtwUHghK7ioyRUdJ3Y6h6zhzh7O/uOhSsLoZwlCRb+mWgd+LZUVviLtBoy560D9XhaeovsX9TZz/HAKDkQ8aXw5GgI5yzkGayVHvzsDcyR5PziyNAeicI2PvTmWP7ngAldkmgcLTAuYkvKBhFbN3vWpyl1fpieNHkzZWmjfWb6sVQoteAgICAgICAgBQCAAD5AhGg7QEX8ADuCTojAKcU2S2/JOxMnmAw0629mKN8o+KXt9CgSR27LqUj7tba1MjMOqEAx9DBTBdzpji9qzbUqYI/daKgwV8xje0/zBT5Ik45nA5rhIDiitSBM1xxNrbO3+wa38+gl47f3cEOe1pVLnQYoFCAJ+2h6sJS6zf1kzTJvJou34qgcFTldL7mZGiGvTyLRQKK8Q8g4IxpmKPLUYJ09dhR00ugqeNqzQTddPDWei9PeB43dKXcYPG8TfGlUe1l1m0jrxegT4CsfDexe5oTyauvM1UpnDvUXPwXg8IHQozYyLUAr+Kgz+DmzGlv2BjqH7tx1QbE+tR6sH6x+gf4zkp2q2r3LsCgPgDmo4zXu73L59aidv5dHc4/1bcM1HahITW6c9MpwTCgjjPxGdHUs4PwmHkYNTvypTMRlc9N61JMxxmpwlJfdHagOLBkN14GyruwfBWTllzOfRtvuoKixAmNbNYwhrsSkEqgJz5bF1L5Wwx3SvJT+Yp6HPckekgshYQadDyvS80JEnGgFoqFUfqTSHK0hHccm/qXVQ/7bX+pkvWRptt2k23kv0GghiIYXjLAFRLm8oEBBG0hGKYrrbRbbMNHJgDvOlMeiLqgNtip3NrIyth5uj4x0yBCiUknapvaa2g202UXTR6xNgyg2pa929NIyvzy48cU0pbxpnDtIEc2UJk8b0bTFCou1N2ANAIAAPkCMSC5Ai0C+QIpAYN6FGW5AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAgAAAAAAAAAAAAAIAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAgAAAAAAAAAAAA+QEe+QEblGv61Cz8TvyW9SnXhtZD/0qLifpS+EKg0UJDnCeOJdrZpQdm8VPQ49LXvyvRb8J4HEvUlLKxWp2gAAAAAAAAAAAAAAAAHuh6qQ3exMt+UIerwDNCMkiog6G4wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEcN5N+CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvYXVyb3JhOjFlZTg3YWE5MGRkZWM0Y2I3ZTUwODdhYmMwMzM0MjMyNDhhODgzYTEAAAAAAAAAAAAAAAAAAAAAAA==", + "gas": 300000000000000, + "deposit": "60000000000000000000000" + } + } + ], + "signature": "ed25519:47c5EosJJE67yZjunKBNXnVEtaonuNokcupkDGuuJkF6VETWKUMBqBiu5DqL4MPAYJLuJJVBeTJrhcdAeujnjdDd", + "hash": "68MG9iyFC2tjHkbSfaDsCmTcgAkYSP67seBgT9pBUt5j" + }, + "outcome": { + "execution_outcome": { + "proof": [ + { + "hash": "5AtWAvkKS1hdCii2sWtatVbCfNZtfAKKPC8vRKG8QXSw", + "direction": "Right" + }, + { + "hash": "2s6tPLPt9PPTAArrBm7ou3vXudvJPs7h7EPCVxLFrgks", + "direction": "Right" + }, + { + "hash": "H74m3ttLuQShD1fEmWveTeZJsuFvB4trWsoFvozibjjo", + "direction": "Right" + } + ], + "block_hash": "8sFBwYN6VKvnApmuxkTw9xzkiW5cq3VcmmHbZHE8uPUs", + "id": "68MG9iyFC2tjHkbSfaDsCmTcgAkYSP67seBgT9pBUt5j", + "outcome": { + "logs": [], + "receipt_ids": [ + "AtzYHUEqxEwtaimJXF9aW3gVaW2CBFhPmtHDv78fPg1w" + ], + "gas_burnt": 2434257636956, + "tokens_burnt": "243425763695600000000", + "executor_id": "event-relayer.near", + "status": { + "SuccessReceiptId": "AtzYHUEqxEwtaimJXF9aW3gVaW2CBFhPmtHDv78fPg1w" + }, + "metadata": { + "version": 1, + "gas_profile": null + } + } + }, + "receipt": null + } + }, + { + "transaction": { + "signer_id": "dnepr.near", + "public_key": "ed25519:Dz1vsVBo1UavdHrcEhgqeY3g72FLqqiYjGX6A84C2kiJ", + "nonce": 55761361000583, + "receiver_id": "app.nearcrowd.near", + "actions": [ + { + "FunctionCall": { + "method_name": "submit_approved_solution", + "args": "eyJ0YXNrX29yZGluYWwiOjEsInNvbHV0aW9uX2hhc2giOlsyMjAsMTIzLDE0LDEsMTM1LDE0NywyMTksMTE2LDkwLDc1LDU5LDEyNyw0LDIzNCwxNDIsNTAsODIsMTcxLDE2MCwyOCwxMTMsMjIxLDE2NywyMDMsMTkzLDIwMyw1MSwzMywxODMsMjA3LDIyNCwxNjFdfQ==", + "gas": 30000000000000, + "deposit": "0" + } + } + ], + "signature": "ed25519:3RSmdDpWJ9LR8DE8s4vwfPh9SRmJVU6kgZUhBiBQuWEzEmwQhxvXV8qT5FHXW2Lo1Wq28YgKRLujLvL2MnM5jY5v", + "hash": "Fhp6WV83V5oNayhxcsA6NSS9aEzDp5SErYpFVyZdsMNw" + }, + "outcome": { + "execution_outcome": { + "proof": [ + { + "hash": "5xN3WTNSN9ej9PbpE53P2E6GdRApwRnTgeiedjq6URHB", + "direction": "Left" + }, + { + "hash": "2s6tPLPt9PPTAArrBm7ou3vXudvJPs7h7EPCVxLFrgks", + "direction": "Right" + }, + { + "hash": "H74m3ttLuQShD1fEmWveTeZJsuFvB4trWsoFvozibjjo", + "direction": "Right" + } + ], + "block_hash": "8sFBwYN6VKvnApmuxkTw9xzkiW5cq3VcmmHbZHE8uPUs", + "id": "Fhp6WV83V5oNayhxcsA6NSS9aEzDp5SErYpFVyZdsMNw", + "outcome": { + "logs": [], + "receipt_ids": [ + "9CtcQYFQmXa9EdP5384GqpNJiC2rgEJUgnJCxYaFtVLz" + ], + "gas_burnt": 2428312288450, + "tokens_burnt": "242831228845000000000", + "executor_id": "dnepr.near", + "status": { + "SuccessReceiptId": "9CtcQYFQmXa9EdP5384GqpNJiC2rgEJUgnJCxYaFtVLz" + }, + "metadata": { + "version": 1, + "gas_profile": null + } + } + }, + "receipt": null + } + }, + { + "transaction": { + "signer_id": "coin-op.near", + "public_key": "ed25519:4uk8171wfWXmY8dtXEcXzyUcsnLdd282VDWFEbbGUcfU", + "nonce": 1657037, + "receiver_id": "near", + "actions": [ + { + "FunctionCall": { + "method_name": "create_account", + "args": "eyJuZXdfYWNjb3VudF9pZCI6InhhYWE0Lm5lYXIiLCJuZXdfcHVibGljX2tleSI6Imc2SGNnaHAyR295bTFkY2lSRk1CeVZocjh5c3o5RWZYeFZHaXZ3djE1Vk4ifQ==", + "gas": 100000000000000, + "deposit": "6000000000000000000000" + } + } + ], + "signature": "ed25519:HLsHUbtm33sUgWjuKsn1VFavXMyqv8CCFVrk5SBXKT7EeM1Q7xjFtStrpx8cKgKNZP6PKtmyDJTT8gCqX4FsGXL", + "hash": "H4nbx6Z5sEpqwsS9cmAvoE959PtAppmAoUbqGMpvBsJ5" + }, + "outcome": { + "execution_outcome": { + "proof": [ + { + "hash": "DUZxfh9zD3YT24rFwRMBa1ri1VNgRdaeMXSGJFY9fJE9", + "direction": "Right" + }, + { + "hash": "6KG1Ea34cVFqe7KNUkTSbbKMj5KEpQ83K3TA3uBU5Hss", + "direction": "Left" + }, + { + "hash": "H74m3ttLuQShD1fEmWveTeZJsuFvB4trWsoFvozibjjo", + "direction": "Right" + } + ], + "block_hash": "8sFBwYN6VKvnApmuxkTw9xzkiW5cq3VcmmHbZHE8uPUs", + "id": "H4nbx6Z5sEpqwsS9cmAvoE959PtAppmAoUbqGMpvBsJ5", + "outcome": { + "logs": [], + "receipt_ids": [ + "6rHaLMdLUrEBnMusV8N1bpKtMnY9hTXeyMp9jAfDG4YG" + ], + "gas_burnt": 2428162480872, + "tokens_burnt": "242816248087200000000", + "executor_id": "coin-op.near", + "status": { + "SuccessReceiptId": "6rHaLMdLUrEBnMusV8N1bpKtMnY9hTXeyMp9jAfDG4YG" + }, + "metadata": { + "version": 1, + "gas_profile": null + } + } + }, + "receipt": null + } + } + ], + "receipts": [ + { + "predecessor_id": "dill1_1.near", + "receiver_id": "wrap.near", + "receipt_id": "4gTBrrFqhw6NGiHUqVtuocKwzbC4r28WUPJSgno6zRZK", + "receipt": { + "Action": { + "signer_id": "dill1_1.near", + "signer_public_key": "ed25519:E895uyjWj3ncsXmXXRz3WdGwRtwiZ6KtA2oEQiJ5Wb7K", + "gas_price": "346069590", + "output_data_receivers": [], + "input_data_ids": [], + "actions": [ + { + "FunctionCall": { + "method_name": "near_withdraw", + "args": "eyJhbW91bnQiOiIxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAifQ==", + "gas": 200000000000000, + "deposit": "1" + } + } + ] + } + } + }, + { + "predecessor_id": "dogwater.near", + "receiver_id": "v2.ref-finance.near", + "receipt_id": "BKAFrhXEWKRxbsw8sfNDwXp3kiaHuTVjn4dohHaXGmHe", + "receipt": { + "Action": { + "signer_id": "dogwater.near", + "signer_public_key": "ed25519:5DTPy894WZwufcWEAbRwoYwZkyFA6xtu2c7gZSYXktVc", + "gas_price": "186029458", + "output_data_receivers": [], + "input_data_ids": [], + "actions": [ + { + "FunctionCall": { + "method_name": "swap", + "args": "eyJhY3Rpb25zIjpbeyJwb29sX2lkIjoyMDQzLCJ0b2tlbl9pbiI6InYzLm9pbl9maW5hbmNlLm5lYXIiLCJ0b2tlbl9vdXQiOiJ3cmFwLm5lYXIiLCJhbW91bnRfaW4iOiIxNTAwMDAwMDAwMCIsIm1pbl9hbW91bnRfb3V0IjoiOTIxMzc5NjkyOTE5Njk3NTAwMDAwMDAwIn1dfQ==", + "gas": 100000000000000, + "deposit": "1" + } + } + ] + } + } + } + ] + }, + "receipt_execution_outcomes": [ + { + "execution_outcome": { + "proof": [ + { + "hash": "J4KrKrCuZKpRTWFNW14SM4J7CCueRep7LpJmrWS1ijmY", + "direction": "Left" + }, + { + "hash": "6KG1Ea34cVFqe7KNUkTSbbKMj5KEpQ83K3TA3uBU5Hss", + "direction": "Left" + }, + { + "hash": "H74m3ttLuQShD1fEmWveTeZJsuFvB4trWsoFvozibjjo", + "direction": "Right" + } + ], + "block_hash": "8sFBwYN6VKvnApmuxkTw9xzkiW5cq3VcmmHbZHE8uPUs", + "id": "A3fDkF5d7c6BGRc1MViaAJxbrsvK3KckxtMgFTiPL6Zt", + "outcome": { + "logs": [], + "receipt_ids": [], + "gas_burnt": 223182562500, + "tokens_burnt": "0", + "executor_id": "crow1998.near", + "status": { + "SuccessValue": "" + }, + "metadata": { + "version": 1, + "gas_profile": [] + } + } + }, + "receipt": { + "predecessor_id": "system", + "receiver_id": "crow1998.near", + "receipt_id": "A3fDkF5d7c6BGRc1MViaAJxbrsvK3KckxtMgFTiPL6Zt", + "receipt": { + "Action": { + "signer_id": "crow1998.near", + "signer_public_key": "ed25519:5DmenvjjNZznRJ87vwB5fDwrZcHaMyqykvnMyMsrtEz3", + "gas_price": "0", + "output_data_receivers": [], + "input_data_ids": [], + "actions": [ + { + "Transfer": { + "deposit": "3342540290445217854228" + } + } + ] + } + } + } + }, + { + "execution_outcome": { + "proof": [ + { + "hash": "3BhhDLG3MZAovUjSeZ5t3Nz4NZ9MTWDjLCvNB58EF4DT", + "direction": "Right" + }, + { + "hash": "FL4X5iru83HCond4bkAMad3vxpZG5gEeXMEACf7h185k", + "direction": "Left" + } + ], + "block_hash": "8sFBwYN6VKvnApmuxkTw9xzkiW5cq3VcmmHbZHE8uPUs", + "id": "4xUSskEvHmCActqMYusVdnJUm1ALx4MjX3LwxUdTec6U", + "outcome": { + "logs": [], + "receipt_ids": [ + "FHKhaETwPbzEGgk9VC2DJ9zN5hHbBeGiRaLw1zEK4Tre" + ], + "gas_burnt": 424555062500, + "tokens_burnt": "42455506250000000000", + "executor_id": "fyyfv.near", + "status": { + "SuccessValue": "" + }, + "metadata": { + "version": 1, + "gas_profile": [] + } + } + }, + "receipt": { + "predecessor_id": "near", + "receiver_id": "fyyfv.near", + "receipt_id": "4xUSskEvHmCActqMYusVdnJUm1ALx4MjX3LwxUdTec6U", + "receipt": { + "Action": { + "signer_id": "coin-op.near", + "signer_public_key": "ed25519:4uk8171wfWXmY8dtXEcXzyUcsnLdd282VDWFEbbGUcfU", + "gas_price": "186029458", + "output_data_receivers": [ + { + "data_id": "F9yBgHi7tFFFYctGQJb6KkrPyMobHAzkhcLTCQ2vHFr6", + "receiver_id": "near" + } + ], + "input_data_ids": [], + "actions": [ + "CreateAccount", + { + "AddKey": { + "public_key": "ed25519:64UzDuqRVhbt3heXQZGLQG5n8ssjCZWretMejQjdzLAi", + "access_key": { + "nonce": 0, + "permission": "FullAccess" + } + } + }, + { + "Transfer": { + "deposit": "6000000000000000000000" + } + } + ] + } + } + } + }, + { + "execution_outcome": { + "proof": [ + { + "hash": "BhbPtU2gJi9jmNSD5eq2m9U63hhSUj9yZMMHKb2Nroz1", + "direction": "Left" + }, + { + "hash": "FL4X5iru83HCond4bkAMad3vxpZG5gEeXMEACf7h185k", + "direction": "Left" + } + ], + "block_hash": "8sFBwYN6VKvnApmuxkTw9xzkiW5cq3VcmmHbZHE8uPUs", + "id": "31ZVaCp61PV26DYYWWQpi8DxxjFB6mskrAhVGJD1jeyQ", + "outcome": { + "logs": [], + "receipt_ids": [], + "gas_burnt": 223182562500, + "tokens_burnt": "0", + "executor_id": "coin-op.near", + "status": { + "SuccessValue": "" + }, + "metadata": { + "version": 1, + "gas_profile": [] + } + } + }, + "receipt": { + "predecessor_id": "system", + "receiver_id": "coin-op.near", + "receipt_id": "31ZVaCp61PV26DYYWWQpi8DxxjFB6mskrAhVGJD1jeyQ", + "receipt": { + "Action": { + "signer_id": "coin-op.near", + "signer_public_key": "ed25519:4uk8171wfWXmY8dtXEcXzyUcsnLdd282VDWFEbbGUcfU", + "gas_price": "0", + "output_data_receivers": [], + "input_data_ids": [], + "actions": [ + { + "Transfer": { + "deposit": "14192631540051611175352" + } + } + ] + } + } + } + } + ], + "state_changes": [ + { + "cause": { + "type": "transaction_processing", + "tx_hash": "H4nbx6Z5sEpqwsS9cmAvoE959PtAppmAoUbqGMpvBsJ5" + }, + "type": "account_update", + "change": { + "account_id": "coin-op.near", + "amount": "134186218936136739161919459", + "locked": "0", + "code_hash": "11111111111111111111111111111111", + "storage_usage": 346, + "storage_paid_at": 0 + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "31ZVaCp61PV26DYYWWQpi8DxxjFB6mskrAhVGJD1jeyQ" + }, + "type": "account_update", + "change": { + "account_id": "coin-op.near", + "amount": "134200411567676790773094811", + "locked": "0", + "code_hash": "11111111111111111111111111111111", + "storage_usage": 346, + "storage_paid_at": 0 + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "A3fDkF5d7c6BGRc1MViaAJxbrsvK3KckxtMgFTiPL6Zt" + }, + "type": "account_update", + "change": { + "account_id": "crow1998.near", + "amount": "4031728691047802832254835", + "locked": "0", + "code_hash": "55E7imniT2uuYrECn17qJAk9fLcwQW4ftNSwmCJL5Di", + "storage_usage": 379816, + "storage_paid_at": 0 + } + }, + { + "cause": { + "type": "transaction_processing", + "tx_hash": "Fhp6WV83V5oNayhxcsA6NSS9aEzDp5SErYpFVyZdsMNw" + }, + "type": "account_update", + "change": { + "account_id": "dnepr.near", + "amount": "3703615211749261228195598", + "locked": "0", + "code_hash": "55E7imniT2uuYrECn17qJAk9fLcwQW4ftNSwmCJL5Di", + "storage_usage": 360581, + "storage_paid_at": 0 + } + }, + { + "cause": { + "type": "transaction_processing", + "tx_hash": "68MG9iyFC2tjHkbSfaDsCmTcgAkYSP67seBgT9pBUt5j" + }, + "type": "account_update", + "change": { + "account_id": "event-relayer.near", + "amount": "580901446798898163178890217", + "locked": "0", + "code_hash": "11111111111111111111111111111111", + "storage_usage": 842, + "storage_paid_at": 0 + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "4xUSskEvHmCActqMYusVdnJUm1ALx4MjX3LwxUdTec6U" + }, + "type": "account_update", + "change": { + "account_id": "fyyfv.near", + "amount": "6000000000000000000000", + "locked": "0", + "code_hash": "11111111111111111111111111111111", + "storage_usage": 182, + "storage_paid_at": 0 + } + }, + { + "cause": { + "type": "transaction_processing", + "tx_hash": "H4nbx6Z5sEpqwsS9cmAvoE959PtAppmAoUbqGMpvBsJ5" + }, + "type": "access_key_update", + "change": { + "account_id": "coin-op.near", + "public_key": "ed25519:4uk8171wfWXmY8dtXEcXzyUcsnLdd282VDWFEbbGUcfU", + "access_key": { + "nonce": 1657037, + "permission": "FullAccess" + } + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "A3fDkF5d7c6BGRc1MViaAJxbrsvK3KckxtMgFTiPL6Zt" + }, + "type": "access_key_update", + "change": { + "account_id": "crow1998.near", + "public_key": "ed25519:5DmenvjjNZznRJ87vwB5fDwrZcHaMyqykvnMyMsrtEz3", + "access_key": { + "nonce": 55883962000056, + "permission": { + "FunctionCall": { + "allowance": "227490241277121800000000", + "receiver_id": "app.nearcrowd.near", + "method_names": [] + } + } + } + } + }, + { + "cause": { + "type": "transaction_processing", + "tx_hash": "Fhp6WV83V5oNayhxcsA6NSS9aEzDp5SErYpFVyZdsMNw" + }, + "type": "access_key_update", + "change": { + "account_id": "dnepr.near", + "public_key": "ed25519:Dz1vsVBo1UavdHrcEhgqeY3g72FLqqiYjGX6A84C2kiJ", + "access_key": { + "nonce": 55761361000583, + "permission": { + "FunctionCall": { + "allowance": "23464053125596744219850", + "receiver_id": "app.nearcrowd.near", + "method_names": [] + } + } + } + } + }, + { + "cause": { + "type": "transaction_processing", + "tx_hash": "68MG9iyFC2tjHkbSfaDsCmTcgAkYSP67seBgT9pBUt5j" + }, + "type": "access_key_update", + "change": { + "account_id": "event-relayer.near", + "public_key": "ed25519:6aRk1uFDeonhS5m9iqqSH6WnDXktb2pseqoW7n3GCemb", + "access_key": { + "nonce": 40347067022435, + "permission": "FullAccess" + } + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "4xUSskEvHmCActqMYusVdnJUm1ALx4MjX3LwxUdTec6U" + }, + "type": "access_key_update", + "change": { + "account_id": "fyyfv.near", + "public_key": "ed25519:64UzDuqRVhbt3heXQZGLQG5n8ssjCZWretMejQjdzLAi", + "access_key": { + "nonce": 55905792000000, + "permission": "FullAccess" + } + } + } + ] + }, + { + "shard_id": 3, + "chunk": { + "author": "aurora.poolv1.near", + "header": { + "chunk_hash": "CcqdLy3stbLgqvnXNG3MTt2BgiVDX7335ZrkCidu7MEK", + "prev_block_hash": "DAtx6MYN5Gt9Qd4nc19SrfjUDXz2vHLKoXiyduB9up5A", + "outcome_root": "8yAeEPz5ah1WQrGUtrYBHazGfK1Zxqu1o6hxGCksSuAH", + "prev_state_root": "FtuJt1tLwqALDeCwrGRdGVcZ3ZFzyRneBTgKSnuxYJRX", + "encoded_merkle_root": "GCTm2Uxk5bTPCpGQjVt5nvqbxVjUrAesGuBsps8q742H", + "encoded_length": 5935, + "height_created": 55905793, + "height_included": 55905793, + "shard_id": 3, + "gas_used": 19141590404522, + "gas_limit": 1000000000000000, + "validator_reward": 0, + "balance_burnt": "1714505354864300000000", + "outgoing_receipts_root": "GzVCwuJGBPP73wTY26vbuZh8VCWybBbuXofkkSReLPyz", + "tx_root": "HsG28o3f4tr5jNGRCRwi2jSRkWLUFDgtErdUJNXdP75a", + "validator_proposals": [], + "signature": "ed25519:5JQeofqubMYe3uep8wryvCTqYqQy28ujBusbhEcmD1S1BWMznHpHwiuZW2ZrbDxQtQkqmpVbSGF4zo8mAkopQUy9" + }, + "transactions": [ + { + "transaction": { + "signer_id": "relay.aurora", + "public_key": "ed25519:J8gDhP5ChAh94URuqFtGNJEh9RTKMBAQXCMx9jDzYmbg", + "nonce": 52962533057135, + "receiver_id": "aurora", + "actions": [ + { + "FunctionCall": { + "method_name": "submit", + "args": "+QQsggISgINx2hCUgCBFWxTRSlisJ56I72e8aQpU9UiAuQPEyhXENwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAABeX2yxOtUKFflw8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACIAAAAAAAAAAAAAAAAIAgRVsU0UpYrCeeiO9nvGkKVPVIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAMQsMKxswV+sm9k4YYvKoaH66FAdAAAAAAAAAAAAAAAA2iWFQw/vMnrY7kSvjx+YmiqRo9IAAAAAAAAAAAAAAADc1tTis+HR4eb6jCHIoyPcvs/5cAAAAAAAAAAAAAAAAIhfjPbkW90/3NxkTv3NCsk4gMeBAAAAAAAAAAAAAAAAsSv8paVYBqr2TplSGRikvw/ECAIAAAAAAAAAAAAAAADELDCsbMFfrJvZOGGLyqGh+uhQHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAArBh6GPnatQUG/IERqn6G9fVd7+kAAAAAAAAAAAAAAADtTCMbmLR098rsrdJzbl68ZCrXBwAAAAAAAAAAAAAAAMbDzITqvUZDw4LJiPooMGV/xwprAAAAAAAAAAAAAAAAcxVeR21rhX/ncirv661Q+fi9CzgAAAAAAAAAAAAAAAAg+K77Vpe3fgu4NahRi+cHdc2hsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHoScioLIoN722HfElLNFkJBNG8Clwxrip6Y9eM52aRNeypOyGyuZoCIBojN2MTzM1EBOvRjJKthllfDLsrczTOSoS5L6C3ZP", + "gas": 300000000000000, + "deposit": "0" + } + } + ], + "signature": "ed25519:2j4gmPWL1r4AVsK5kr8UtNSnx5TxECSrEHeYWxxyssgfMoYQZV6uc9SAFB83DBo8pdGHxqfizUeSftBWMUH2dgYJ", + "hash": "AX4ZGo5Vk3xN7vhqUUfpuPZbrXkD2AA4znTowhdUsrp5" + }, + "outcome": { + "execution_outcome": { + "proof": [ + { + "hash": "7zzW3wPMWPczcrpqgnWLW5cwpjhL6rSjsFLJYSdzuzNL", + "direction": "Right" + }, + { + "hash": "9wcnSPvAddbNT1p4KDZj11g7fqu4YcfdB15FR66qXGa2", + "direction": "Right" + }, + { + "hash": "6omTvPiv4f1rvteLQVpBKEVGSekxDx8wbPHpAPcFjSnJ", + "direction": "Right" + }, + { + "hash": "D61t2SDyTBpTb8CkMvHFcfF48oUQ62EwbKykEd3rZQ3m", + "direction": "Right" + } + ], + "block_hash": "8sFBwYN6VKvnApmuxkTw9xzkiW5cq3VcmmHbZHE8uPUs", + "id": "AX4ZGo5Vk3xN7vhqUUfpuPZbrXkD2AA4znTowhdUsrp5", + "outcome": { + "logs": [], + "receipt_ids": [ + "85PvhfPLfLLWqt1Ms93nK9J2WbWUbZaZieqhYsgeVG1X" + ], + "gas_burnt": 2430329100918, + "tokens_burnt": "243032910091800000000", + "executor_id": "relay.aurora", + "status": { + "SuccessReceiptId": "85PvhfPLfLLWqt1Ms93nK9J2WbWUbZaZieqhYsgeVG1X" + }, + "metadata": { + "version": 1, + "gas_profile": null + } + } + }, + "receipt": null + } + }, + { + "transaction": { + "signer_id": "lazina.near", + "public_key": "ed25519:2LRV3rtiMw1pjJ5xqSfAEjvufv3WzdsKdbApFrd8JHCL", + "nonce": 55746852000019, + "receiver_id": "app.nearcrowd.near", + "actions": [ + { + "FunctionCall": { + "method_name": "submit_review", + "args": "eyJ0YXNrX29yZGluYWwiOjEsImFwcHJvdmUiOnRydWUsInJlamVjdGlvbl9yZWFzb24iOiIifQ==", + "gas": 80000000000000, + "deposit": "0" + } + } + ], + "signature": "ed25519:xUzvcoWrGp7UwKxbE1cudyGXZAauPP8vTuZxJchikUxA5UCeYQ58N7ejXTSn6u7RD9DPz9n6JUZBNVtjADhAbok", + "hash": "43Z1CGrFdg1Xi49FoEVKnhA8AEXdKP3LGoyP5xoaGKeX" + }, + "outcome": { + "execution_outcome": { + "proof": [ + { + "hash": "2Y7PrhzYkvqJsH187FNzVfVif3T4qkE6FfBv7Pi4WJBq", + "direction": "Left" + }, + { + "hash": "9wcnSPvAddbNT1p4KDZj11g7fqu4YcfdB15FR66qXGa2", + "direction": "Right" + }, + { + "hash": "6omTvPiv4f1rvteLQVpBKEVGSekxDx8wbPHpAPcFjSnJ", + "direction": "Right" + }, + { + "hash": "D61t2SDyTBpTb8CkMvHFcfF48oUQ62EwbKykEd3rZQ3m", + "direction": "Right" + } + ], + "block_hash": "8sFBwYN6VKvnApmuxkTw9xzkiW5cq3VcmmHbZHE8uPUs", + "id": "43Z1CGrFdg1Xi49FoEVKnhA8AEXdKP3LGoyP5xoaGKeX", + "outcome": { + "logs": [], + "receipt_ids": [ + "C2NWDRdwg1NJ8jjgJqb9s4rgzwAPDqaPcWxQupgn61zQ" + ], + "gas_burnt": 2428073043512, + "tokens_burnt": "242807304351200000000", + "executor_id": "lazina.near", + "status": { + "SuccessReceiptId": "C2NWDRdwg1NJ8jjgJqb9s4rgzwAPDqaPcWxQupgn61zQ" + }, + "metadata": { + "version": 1, + "gas_profile": null + } + } + }, + "receipt": null + } + }, + { + "transaction": { + "signer_id": "satoshik.near", + "public_key": "ed25519:9kb3zDchmJ85ZgFFfvo2N9SzuZ5VptPf8PR9EjEBXPuz", + "nonce": 55901331000091, + "receiver_id": "app.nearcrowd.near", + "actions": [ + { + "FunctionCall": { + "method_name": "claim_assignment", + "args": "eyJ0YXNrX29yZGluYWwiOjEsImJpZCI6IjQ4NjY4ODcyNTM2ODE1NjI4MDQ5NTAwIn0=", + "gas": 30000000000000, + "deposit": "0" + } + } + ], + "signature": "ed25519:4pbFhVb3Urk6x8TjrpDZewrCFyaNB9mnrknsysb2YaZ6QTExahdmXKGM2SdjvTzkqNE6eG4AP8nCwEDHFa8zzv7U", + "hash": "H4fZPw6CegV8F8pEeU2crrC7JhtTTARBtPTUQaQep2oS" + }, + "outcome": { + "execution_outcome": { + "proof": [ + { + "hash": "EcKrTRUiZ7PQpYCzDNdWTV1vBPmpuiiFixSxDqu8WZdK", + "direction": "Right" + }, + { + "hash": "FeJg4i7zi6VimrSGrZ2Ri8bcnXu4aKGWaemwceNDEU9v", + "direction": "Left" + }, + { + "hash": "6omTvPiv4f1rvteLQVpBKEVGSekxDx8wbPHpAPcFjSnJ", + "direction": "Right" + }, + { + "hash": "D61t2SDyTBpTb8CkMvHFcfF48oUQ62EwbKykEd3rZQ3m", + "direction": "Right" + } + ], + "block_hash": "8sFBwYN6VKvnApmuxkTw9xzkiW5cq3VcmmHbZHE8uPUs", + "id": "H4fZPw6CegV8F8pEeU2crrC7JhtTTARBtPTUQaQep2oS", + "outcome": { + "logs": [], + "receipt_ids": [ + "Bq6v7LhMX7SZErdowrZ2HHFxaZqyY19jdzgSYCVbiB13" + ], + "gas_burnt": 2428068571644, + "tokens_burnt": "242806857164400000000", + "executor_id": "satoshik.near", + "status": { + "SuccessReceiptId": "Bq6v7LhMX7SZErdowrZ2HHFxaZqyY19jdzgSYCVbiB13" + }, + "metadata": { + "version": 1, + "gas_profile": null + } + } + }, + "receipt": null + } + }, + { + "transaction": { + "signer_id": "ravlik.near", + "public_key": "ed25519:AmMUHMfvZvBZ6vYge6o4T4A38AqEExh8btxGqwymECX", + "nonce": 55686122000193, + "receiver_id": "app.nearcrowd.near", + "actions": [ + { + "FunctionCall": { + "method_name": "claim_assignment", + "args": "eyJ0YXNrX29yZGluYWwiOjEsImJpZCI6IjQ4OTEyMjE2ODk5NDk5NzA2MTg5NzQ2In0=", + "gas": 30000000000000, + "deposit": "0" + } + } + ], + "signature": "ed25519:5BsdkPNVBttUkejadGKbpX7v1yGvuVkeAmtnjEdB7qKwXG1x8eYNob1KjEMnBd1YoXe4J2wix4avJzrmMvUbtfeW", + "hash": "7ar3L123nxc8Pw2dTGeuU2bbyVLzEbH4eiRwV7euWhZD" + }, + "outcome": { + "execution_outcome": { + "proof": [ + { + "hash": "DDTSuLx245d5ySeRAT9zHYm7w3RzR98AJQiwGG7HRmDV", + "direction": "Left" + }, + { + "hash": "FeJg4i7zi6VimrSGrZ2Ri8bcnXu4aKGWaemwceNDEU9v", + "direction": "Left" + }, + { + "hash": "6omTvPiv4f1rvteLQVpBKEVGSekxDx8wbPHpAPcFjSnJ", + "direction": "Right" + }, + { + "hash": "D61t2SDyTBpTb8CkMvHFcfF48oUQ62EwbKykEd3rZQ3m", + "direction": "Right" + } + ], + "block_hash": "8sFBwYN6VKvnApmuxkTw9xzkiW5cq3VcmmHbZHE8uPUs", + "id": "7ar3L123nxc8Pw2dTGeuU2bbyVLzEbH4eiRwV7euWhZD", + "outcome": { + "logs": [], + "receipt_ids": [ + "EgfrWo1QwyR5pprt61cyC1ySWR9LtuNwGqsaEa51BnVF" + ], + "gas_burnt": 2428068571644, + "tokens_burnt": "242806857164400000000", + "executor_id": "ravlik.near", + "status": { + "SuccessReceiptId": "EgfrWo1QwyR5pprt61cyC1ySWR9LtuNwGqsaEa51BnVF" + }, + "metadata": { + "version": 1, + "gas_profile": null + } + } + }, + "receipt": null + } + }, + { + "transaction": { + "signer_id": "yeaj.near", + "public_key": "ed25519:Bdhx7P9ZMrzxRJpHHseeDcK7sMcDCSm4fsk8ewPv3fXy", + "nonce": 49751059000001, + "receiver_id": "wrap.near", + "actions": [ + { + "FunctionCall": { + "method_name": "storage_deposit", + "args": "eyJhY2NvdW50X2lkIjoieWVhai5uZWFyIiwicmVnaXN0cmF0aW9uX29ubHkiOnRydWV9", + "gas": 50000000000000, + "deposit": "1250000000000000000000" + } + }, + { + "FunctionCall": { + "method_name": "near_deposit", + "args": "e30=", + "gas": 30000000000000, + "deposit": "3300000000000000000000000" + } + }, + { + "FunctionCall": { + "method_name": "ft_transfer_call", + "args": "eyJyZWNlaXZlcl9pZCI6ImF1cm9yYSIsImFtb3VudCI6IjMzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCJtZW1vIjpudWxsLCJtc2ciOiI2N2ZmNDFhYmQ5NWJhM2RjNTBiYzk2NzVmM2U3ZGYzYjc2NDQ2ZmI5In0=", + "gas": 70000000000000, + "deposit": "1" + } + } + ], + "signature": "ed25519:3rCDbe6dRDYPBVqcNFMwCVNuaDXPDUaXq9v8qNxFahRkPiZ9Z6zJTEudhF76GMbhDBZP4nKTRzDxTHpvDGBuQ1hW", + "hash": "4EahNP97yvw53UqX4xdzV7AUF19DmX3vLMgpFHiNxYQR" + }, + "outcome": { + "execution_outcome": { + "proof": [ + { + "hash": "EVRYPR8kGusu7jNu7p6NzxSusgrNAHzNp16KByQDA1Ui", + "direction": "Right" + }, + { + "hash": "9TVyQcohGVzaJUXVyoFFA8MDS427cpagA9D3i4gyDrQn", + "direction": "Right" + }, + { + "hash": "fkYKooh8eisVcNfmDW7u7dphVbXxjNYsYJifYNT8799", + "direction": "Left" + }, + { + "hash": "D61t2SDyTBpTb8CkMvHFcfF48oUQ62EwbKykEd3rZQ3m", + "direction": "Right" + } + ], + "block_hash": "8sFBwYN6VKvnApmuxkTw9xzkiW5cq3VcmmHbZHE8uPUs", + "id": "4EahNP97yvw53UqX4xdzV7AUF19DmX3vLMgpFHiNxYQR", + "outcome": { + "logs": [], + "receipt_ids": [ + "GU5gxTHb6Ao5MpadzBd3gAgqqCP7PeujPCYqS5qb6k63" + ], + "gas_burnt": 7068131433612, + "tokens_burnt": "706813143361200000000", + "executor_id": "yeaj.near", + "status": { + "SuccessReceiptId": "GU5gxTHb6Ao5MpadzBd3gAgqqCP7PeujPCYqS5qb6k63" + }, + "metadata": { + "version": 1, + "gas_profile": null + } + } + }, + "receipt": null + } + }, + { + "transaction": { + "signer_id": "relay.aurora", + "public_key": "ed25519:GZLnpkFX9vJDptwS6cTi5VyjML2eGDSB6x6wAFuFzeU5", + "nonce": 52962533057051, + "receiver_id": "aurora", + "actions": [ + { + "FunctionCall": { + "method_name": "submit", + "args": "+IuDAYeDgINmkbeU66Hv8GscJO6eqHXqfnHSEDSH0WKApIK468cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABvVwRAyioPAAIScioLHoMqQGEFxuzDNrssHG6NDRKQ+VkJRbzDBvohzp2EiQXr4oDABprAFC7vWIL2I7uw8N5UYjm/3xU+LY//R2PZat6Lc", + "gas": 300000000000000, + "deposit": "0" + } + } + ], + "signature": "ed25519:4ZQyFbFvfh5oLFexwNFrYzRbNqDx6k4BC9DNWiAaX1YmhmEgCCyHGAxorHKAZc3ZAyCasnqncMsRYb131vfCugSH", + "hash": "FCscvHpSDkhXmbiXb1ZL9yVZbLMjZ3xyoB2iaADj24E3" + }, + "outcome": { + "execution_outcome": { + "proof": [ + { + "hash": "63yomD6kjsDab7y397QmtsyQPRRemdPVZQqoGfnE16dt", + "direction": "Left" + }, + { + "hash": "9TVyQcohGVzaJUXVyoFFA8MDS427cpagA9D3i4gyDrQn", + "direction": "Right" + }, + { + "hash": "fkYKooh8eisVcNfmDW7u7dphVbXxjNYsYJifYNT8799", + "direction": "Left" + }, + { + "hash": "D61t2SDyTBpTb8CkMvHFcfF48oUQ62EwbKykEd3rZQ3m", + "direction": "Right" + } + ], + "block_hash": "8sFBwYN6VKvnApmuxkTw9xzkiW5cq3VcmmHbZHE8uPUs", + "id": "FCscvHpSDkhXmbiXb1ZL9yVZbLMjZ3xyoB2iaADj24E3", + "outcome": { + "logs": [], + "receipt_ids": [ + "4q5x3JoLqAwH7QPnHddmj2b53L1wwN5378sisYzmiC3w" + ], + "gas_burnt": 2428249682298, + "tokens_burnt": "242824968229800000000", + "executor_id": "relay.aurora", + "status": { + "SuccessReceiptId": "4q5x3JoLqAwH7QPnHddmj2b53L1wwN5378sisYzmiC3w" + }, + "metadata": { + "version": 1, + "gas_profile": null + } + } + }, + "receipt": null + } + }, + { + "transaction": { + "signer_id": "relay.aurora", + "public_key": "ed25519:8jFPYGFYgt214uLstYKb4CHPuN2JpSbTYErfArAqdE5n", + "nonce": 52962533057129, + "receiver_id": "aurora", + "actions": [ + { + "FunctionCall": { + "method_name": "submit", + "args": "+QHMgh2IgIMMNQCUHjj5mcEMRcsE05mVF5/zU0KkDxyAuQFkW0KryQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI3205fqcUOdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADxCwwrGzBX6yb2Thhi8qhofroUB0YAAARurXEYfF7+byxK/ylpVgGqvZOmVIZGKS/D8QIAgYARurTfyq095qu4sm97tM80BVB4e7RD5BRnSwG/j/rExurXEYeDBTHhm6pAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO/VgdxtgAqWEd++83Wd0paGUdYeyb8AACN9tOX6nFDnRDAwAC57wG6B9dHNymhnoXom2JGJvwCN9ttIh0g9OhNJW0DYH7uAVa4oquE2h1bKDIZ/pcm9N9tOX6vy1TpCTeEnIqCx6DBCkPeOHwpx48LVRF4lm+T2RILUeaQIdJ8TTHriVpB/aAwiAvD/Wnqc/VS7OYhauJPwcsm+MfRcxmgED2jvuyJHA==", + "gas": 300000000000000, + "deposit": "0" + } + } + ], + "signature": "ed25519:3pRPhE2YGZ47rgzRDUN1AQd8779aeJC53CHXh5BXiPFym5qTqcY8LrZov9piXbSxpnMF1pgr7tMAEZVz1UHtm39S", + "hash": "GEUfWfHKY4CGSzsZLNVmyixzjkiXgnMvX8cbi72FnPZZ" + }, + "outcome": { + "execution_outcome": { + "proof": [ + { + "hash": "9AF8D1hmVbZGypUwww9TtdoUPAMvDHEDBxZAQmVSMHTr", + "direction": "Right" + }, + { + "hash": "6fmtTs2WT9ZHPhRrzowJ7fuzRUfPyucfex2kCd4Bxu2E", + "direction": "Left" + }, + { + "hash": "fkYKooh8eisVcNfmDW7u7dphVbXxjNYsYJifYNT8799", + "direction": "Left" + }, + { + "hash": "D61t2SDyTBpTb8CkMvHFcfF48oUQ62EwbKykEd3rZQ3m", + "direction": "Right" + } + ], + "block_hash": "8sFBwYN6VKvnApmuxkTw9xzkiW5cq3VcmmHbZHE8uPUs", + "id": "GEUfWfHKY4CGSzsZLNVmyixzjkiXgnMvX8cbi72FnPZZ", + "outcome": { + "logs": [], + "receipt_ids": [ + "5vWzi6KcqFL3VMUnp4xUxGfGq1Dongakf5hn5kYZgYkd" + ], + "gas_burnt": 2428969653046, + "tokens_burnt": "242896965304600000000", + "executor_id": "relay.aurora", + "status": { + "SuccessReceiptId": "5vWzi6KcqFL3VMUnp4xUxGfGq1Dongakf5hn5kYZgYkd" + }, + "metadata": { + "version": 1, + "gas_profile": null + } + } + }, + "receipt": null + } + } + ], + "receipts": [ + { + "predecessor_id": "relay.aurora", + "receiver_id": "aurora", + "receipt_id": "9VZaWnVp6cZQ6wpdkB9g5HDfVTtT5YwuhqjXWKvG8GHy", + "receipt": { + "Action": { + "signer_id": "relay.aurora", + "signer_public_key": "ed25519:4ejVQCoy3mba1Z8kjhmttnJn46ogvpqUyfSfNXq6wgzt", + "gas_price": "625040174", + "output_data_receivers": [], + "input_data_ids": [], + "actions": [ + { + "FunctionCall": { + "method_name": "submit", + "args": "+IuDAdDqgINmkbeUnIIeOWEDdudV2QOuv7DFcTplFiKApIK468cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWgtz4IScioLHoFk+Y3uN3UsCcAFhLzw6MRH/P6DS+GJ5Np8ryp6T/nERoDwXPRoMPMUhA4L4aTzIMlN65Fa0lrAEMohQlMS5c7Xy", + "gas": 300000000000000, + "deposit": "0" + } + } + ] + } + } + }, + { + "predecessor_id": "longpan01.near", + "receiver_id": "v2.ref-finance.near", + "receipt_id": "GFmb4dQFMjTzPGBn49UfRrtttYJP3UurauSVjAGTtjfR", + "receipt": { + "Action": { + "signer_id": "longpan01.near", + "signer_public_key": "ed25519:56vkHVseyh68i439cLvZVN8opSc2xtiR9Wn653giJEWg", + "gas_price": "186029458", + "output_data_receivers": [], + "input_data_ids": [], + "actions": [ + { + "FunctionCall": { + "method_name": "add_liquidity", + "args": "eyJwb29sX2lkIjoxOTIzLCJhbW91bnRzIjpbIjM4MTkwMjMwODU1OTkwMTQ0MDAwMDAwMCIsIjExMDg3NTMzMTY0MDk2MjU0MzAzNjY4MTYzMCJdfQ==", + "gas": 100000000000000, + "deposit": "10000000000000000000000" + } + } + ] + } + } + }, + { + "predecessor_id": "relay.aurora", + "receiver_id": "aurora", + "receipt_id": "ERacWbujaHCEwbv6Rhrz1F7DwSn2opXL6SzBQL3sK7Wa", + "receipt": { + "Action": { + "signer_id": "relay.aurora", + "signer_public_key": "ed25519:6A884F7Yz1URoF4y3c4ZqGNFfYBgAjMHBNnk7uWRR785", + "gas_price": "625040174", + "output_data_receivers": [], + "input_data_ids": [], + "actions": [ + { + "FunctionCall": { + "method_name": "submit", + "args": "AfhlhE5FQVKAgIJSCJSxstW+/Kfk0qBQv0OIJK1EZ/C8n4CAwAGg5rFwI+BHLJu0JVWnx/K4VdBXydnMKvSAIDy12uee0e2gRa3fnruoQrDlqEO28y/1RZ2GgZJHJpf14B8asnvRmOY=", + "gas": 300000000000000, + "deposit": "0" + } + } + ] + } + } + }, + { + "predecessor_id": "relay.aurora", + "receiver_id": "aurora", + "receipt_id": "32wi2dLDpgPDXsgCQHcCVdvwBdpvhYrHiEwsEQdcA4wJ", + "receipt": { + "Action": { + "signer_id": "relay.aurora", + "signer_public_key": "ed25519:GZLnpkFX9vJDptwS6cTi5VyjML2eGDSB6x6wAFuFzeU5", + "gas_price": "625040174", + "output_data_receivers": [], + "input_data_ids": [], + "actions": [ + { + "FunctionCall": { + "method_name": "submit", + "args": "+IuDAZUhgINmkbeUW+3WHrc+UndQhv5pNToMwX90j0KApIK468cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI41AdrYm4IAIScioLIoMRJjnY1EqP8Ib9xtxtFiEfqmPNYY3OVn1aL5XvdMITLoCcQp7fGkJM/XfDinQe9CQs0YXP3/SI4YBi9ii39Hb1i", + "gas": 300000000000000, + "deposit": "0" + } + } + ] + } + } + }, + { + "predecessor_id": "relay.aurora", + "receiver_id": "aurora", + "receipt_id": "FsXb4VFpeQYTcZy9KiVXRt2uPMCX4Pvco6R2YAruDkaW", + "receipt": { + "Action": { + "signer_id": "relay.aurora", + "signer_public_key": "ed25519:AA3WiFNPDkMxPXsv4tcz27zGsWNCdL55BvHzjMfjbEoY", + "gas_price": "625040174", + "output_data_receivers": [], + "input_data_ids": [], + "actions": [ + { + "FunctionCall": { + "method_name": "submit", + "args": "+QEJEICDhVcHlPqTQ8OJcyRJagX8davta6wp+KQPgLikAXWxxIOjXDnI/9LjZPZ0aDprvkqxFSjBGrssGmH3RhQMLmPjAAAAAAAAAAAAAAAAgKFgFsxKLmosrKikpJixaZ/w+EQAAAAAAAAAAAAAAAABDg0gslZiC2q3dynIFSES4LeFYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALGivC7FAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqGqEnIqCyKB1dUDyUtqq4S6Z3UsJLnFN70N0htJ/IsN/AH95dkD7dKAiSp4yRfzhyMJgc8iK/GbqXen7SfgPznQc0NwQdpxBbg==", + "gas": 300000000000000, + "deposit": "0" + } + } + ] + } + } + }, + { + "predecessor_id": "near", + "receiver_id": "fyyfv.near", + "receipt_id": "4xUSskEvHmCActqMYusVdnJUm1ALx4MjX3LwxUdTec6U", + "receipt": { + "Action": { + "signer_id": "coin-op.near", + "signer_public_key": "ed25519:4uk8171wfWXmY8dtXEcXzyUcsnLdd282VDWFEbbGUcfU", + "gas_price": "186029458", + "output_data_receivers": [ + { + "data_id": "F9yBgHi7tFFFYctGQJb6KkrPyMobHAzkhcLTCQ2vHFr6", + "receiver_id": "near" + } + ], + "input_data_ids": [], + "actions": [ + "CreateAccount", + { + "AddKey": { + "public_key": "ed25519:64UzDuqRVhbt3heXQZGLQG5n8ssjCZWretMejQjdzLAi", + "access_key": { + "nonce": 0, + "permission": "FullAccess" + } + } + }, + { + "Transfer": { + "deposit": "6000000000000000000000" + } + } + ] + } + } + }, + { + "predecessor_id": "near", + "receiver_id": "near", + "receipt_id": "2GQcm3RJhZ72QANQ9YtS82ZoFybysBGvb2njHarWvKRT", + "receipt": { + "Action": { + "signer_id": "coin-op.near", + "signer_public_key": "ed25519:4uk8171wfWXmY8dtXEcXzyUcsnLdd282VDWFEbbGUcfU", + "gas_price": "186029458", + "output_data_receivers": [], + "input_data_ids": [ + "F9yBgHi7tFFFYctGQJb6KkrPyMobHAzkhcLTCQ2vHFr6" + ], + "actions": [ + { + "FunctionCall": { + "method_name": "on_account_created", + "args": "eyJwcmVkZWNlc3Nvcl9hY2NvdW50X2lkIjoiY29pbi1vcC5uZWFyIiwiYW1vdW50IjoiNjAwMDAwMDAwMDAwMDAwMDAwMDAwMCJ9", + "gas": 20000000000000, + "deposit": "0" + } + } + ] + } + } + }, + { + "predecessor_id": "system", + "receiver_id": "coin-op.near", + "receipt_id": "31ZVaCp61PV26DYYWWQpi8DxxjFB6mskrAhVGJD1jeyQ", + "receipt": { + "Action": { + "signer_id": "coin-op.near", + "signer_public_key": "ed25519:4uk8171wfWXmY8dtXEcXzyUcsnLdd282VDWFEbbGUcfU", + "gas_price": "0", + "output_data_receivers": [], + "input_data_ids": [], + "actions": [ + { + "Transfer": { + "deposit": "14192631540051611175352" + } + } + ] + } + } + } + ] + }, + "receipt_execution_outcomes": [ + { + "execution_outcome": { + "proof": [ + { + "hash": "CaNG9CaBXh9h6gGBuU88ZXYTJZkWHQcWuHK6ezeFcLhH", + "direction": "Left" + }, + { + "hash": "6fmtTs2WT9ZHPhRrzowJ7fuzRUfPyucfex2kCd4Bxu2E", + "direction": "Left" + }, + { + "hash": "fkYKooh8eisVcNfmDW7u7dphVbXxjNYsYJifYNT8799", + "direction": "Left" + }, + { + "hash": "D61t2SDyTBpTb8CkMvHFcfF48oUQ62EwbKykEd3rZQ3m", + "direction": "Right" + } + ], + "block_hash": "8sFBwYN6VKvnApmuxkTw9xzkiW5cq3VcmmHbZHE8uPUs", + "id": "BUWHe9Kpe2r48CodBmcDV5qcTq3YxwckFZ4NpBMQqCNc", + "outcome": { + "logs": [], + "receipt_ids": [], + "gas_burnt": 223182562500, + "tokens_burnt": "0", + "executor_id": "relay.aurora", + "status": { + "SuccessValue": "" + }, + "metadata": { + "version": 1, + "gas_profile": [] + } + } + }, + "receipt": { + "predecessor_id": "system", + "receiver_id": "relay.aurora", + "receipt_id": "BUWHe9Kpe2r48CodBmcDV5qcTq3YxwckFZ4NpBMQqCNc", + "receipt": { + "Action": { + "signer_id": "relay.aurora", + "signer_public_key": "ed25519:wopnVsqVvRAp2RdJSbC55Tpv2DFZFuCR6iC6HBhFynR", + "gas_price": "0", + "output_data_receivers": [], + "input_data_ids": [], + "actions": [ + { + "Transfer": { + "deposit": "186488079357848010227336" + } + } + ] + } + } + } + }, + { + "execution_outcome": { + "proof": [ + { + "hash": "1Ag1q47RLE3g1NXB6t3iCT3Hit1d9sDNy9t3PXT85sK", + "direction": "Right" + }, + { + "hash": "GqkbVDVcAZtGa8Crnbdgu5RttDHXXB2x3cGhTsC8PJek", + "direction": "Right" + }, + { + "hash": "FRb3VoAvNcxAvEcWUe2sdxmQTRuPPWmxZkqXjaNaE1JP", + "direction": "Right" + }, + { + "hash": "CXtHapGhcEHMp1Kvqumai3xRfmL9SZo2D3M24wQrnCCJ", + "direction": "Left" + } + ], + "block_hash": "8sFBwYN6VKvnApmuxkTw9xzkiW5cq3VcmmHbZHE8uPUs", + "id": "58J9PHs38Sp6Fw5bnB1cM1UEGTf3yPuazU4SRhykQaoQ", + "outcome": { + "logs": [], + "receipt_ids": [], + "gas_burnt": 223182562500, + "tokens_burnt": "0", + "executor_id": "relay.aurora", + "status": { + "SuccessValue": "" + }, + "metadata": { + "version": 1, + "gas_profile": [] + } + } + }, + "receipt": { + "predecessor_id": "system", + "receiver_id": "relay.aurora", + "receipt_id": "58J9PHs38Sp6Fw5bnB1cM1UEGTf3yPuazU4SRhykQaoQ", + "receipt": { + "Action": { + "signer_id": "relay.aurora", + "signer_public_key": "ed25519:6ZoVzgmKqarYG3NndmMgdLmf97PXJJ6ThAAP5qdqiyHD", + "gas_price": "0", + "output_data_receivers": [], + "input_data_ids": [], + "actions": [ + { + "Transfer": { + "deposit": "188684725371119291029384" + } + } + ] + } + } + } + }, + { + "execution_outcome": { + "proof": [ + { + "hash": "A5WVR2jnjMS3VYFNe3HWKxFQR5i53XCXK6g7vsUoCCpW", + "direction": "Left" + }, + { + "hash": "GqkbVDVcAZtGa8Crnbdgu5RttDHXXB2x3cGhTsC8PJek", + "direction": "Right" + }, + { + "hash": "FRb3VoAvNcxAvEcWUe2sdxmQTRuPPWmxZkqXjaNaE1JP", + "direction": "Right" + }, + { + "hash": "CXtHapGhcEHMp1Kvqumai3xRfmL9SZo2D3M24wQrnCCJ", + "direction": "Left" + } + ], + "block_hash": "8sFBwYN6VKvnApmuxkTw9xzkiW5cq3VcmmHbZHE8uPUs", + "id": "DVJrvavd5xcXEwj3z5iUXj3nYoF5tuvH6yXA6dWVAtQ1", + "outcome": { + "logs": [], + "receipt_ids": [], + "gas_burnt": 223182562500, + "tokens_burnt": "0", + "executor_id": "relay.aurora", + "status": { + "SuccessValue": "" + }, + "metadata": { + "version": 1, + "gas_profile": [] + } + } + }, + "receipt": { + "predecessor_id": "system", + "receiver_id": "relay.aurora", + "receipt_id": "DVJrvavd5xcXEwj3z5iUXj3nYoF5tuvH6yXA6dWVAtQ1", + "receipt": { + "Action": { + "signer_id": "relay.aurora", + "signer_public_key": "ed25519:GcDgXdokGcPoUs7dqxszGBYpub1tnorjYQ2nPpmSA198", + "gas_price": "0", + "output_data_receivers": [], + "input_data_ids": [], + "actions": [ + { + "Transfer": { + "deposit": "182569189355277003043436" + } + } + ] + } + } + } + }, + { + "execution_outcome": { + "proof": [ + { + "hash": "5bKbB5SLkfZNzr67DnAxw9mQf5fpPFfEkhSc728ze4qS", + "direction": "Right" + }, + { + "hash": "8t6cDF69FPStqmffciWDPaxmKbgQ5EoayJV88Fh3sSfw", + "direction": "Left" + }, + { + "hash": "FRb3VoAvNcxAvEcWUe2sdxmQTRuPPWmxZkqXjaNaE1JP", + "direction": "Right" + }, + { + "hash": "CXtHapGhcEHMp1Kvqumai3xRfmL9SZo2D3M24wQrnCCJ", + "direction": "Left" + } + ], + "block_hash": "8sFBwYN6VKvnApmuxkTw9xzkiW5cq3VcmmHbZHE8uPUs", + "id": "DdQ5dfKsfRAE7NsZSPEBvif42CYVb8zFLwHzSvuxaiB3", + "outcome": { + "logs": [], + "receipt_ids": [], + "gas_burnt": 223182562500, + "tokens_burnt": "0", + "executor_id": "nearmother.near", + "status": { + "SuccessValue": "" + }, + "metadata": { + "version": 1, + "gas_profile": [] + } + } + }, + "receipt": { + "predecessor_id": "system", + "receiver_id": "nearmother.near", + "receipt_id": "DdQ5dfKsfRAE7NsZSPEBvif42CYVb8zFLwHzSvuxaiB3", + "receipt": { + "Action": { + "signer_id": "nearmother.near", + "signer_public_key": "ed25519:AQY6EnauhvfF1mxfptbre4dceaDodrLYwUvBWHHWfwHd", + "gas_price": "0", + "output_data_receivers": [], + "input_data_ids": [], + "actions": [ + { + "Transfer": { + "deposit": "3241226521569817854228" + } + } + ] + } + } + } + }, + { + "execution_outcome": { + "proof": [ + { + "hash": "CLrtPZr6mHfLZRdJu6RhYMB1xnEE8m1Twy9AWXeP4h99", + "direction": "Left" + }, + { + "hash": "8t6cDF69FPStqmffciWDPaxmKbgQ5EoayJV88Fh3sSfw", + "direction": "Left" + }, + { + "hash": "FRb3VoAvNcxAvEcWUe2sdxmQTRuPPWmxZkqXjaNaE1JP", + "direction": "Right" + }, + { + "hash": "CXtHapGhcEHMp1Kvqumai3xRfmL9SZo2D3M24wQrnCCJ", + "direction": "Left" + } + ], + "block_hash": "8sFBwYN6VKvnApmuxkTw9xzkiW5cq3VcmmHbZHE8uPUs", + "id": "5EuQG46HpNXBfZeLzmu6P6Kr4R1spMkRxycSZrQNG2k9", + "outcome": { + "logs": [], + "receipt_ids": [], + "gas_burnt": 223182562500, + "tokens_burnt": "0", + "executor_id": "zaxar.near", + "status": { + "SuccessValue": "" + }, + "metadata": { + "version": 1, + "gas_profile": [] + } + } + }, + "receipt": { + "predecessor_id": "system", + "receiver_id": "zaxar.near", + "receipt_id": "5EuQG46HpNXBfZeLzmu6P6Kr4R1spMkRxycSZrQNG2k9", + "receipt": { + "Action": { + "signer_id": "zaxar.near", + "signer_public_key": "ed25519:61hWZFgyttWzvBYfmLN3KYUQsX9FCZ7i9iY66vDYHYTy", + "gas_price": "0", + "output_data_receivers": [], + "input_data_ids": [], + "actions": [ + { + "Transfer": { + "deposit": "13110204246850142651168" + } + } + ] + } + } + } + }, + { + "execution_outcome": { + "proof": [ + { + "hash": "ET2L9z8ihrSgsM3T7LdtjqxSNvchGSV7wVetS5XN17kJ", + "direction": "Right" + }, + { + "hash": "2AVWk5DCiHJoVENAnCdMyTxSe17KWrLA8YAwmtohPKKv", + "direction": "Right" + }, + { + "hash": "HMWt8zRP2PKzgGTFeKtuKTbwXco6FQFJ6ZjUFUwaxdmu", + "direction": "Left" + }, + { + "hash": "CXtHapGhcEHMp1Kvqumai3xRfmL9SZo2D3M24wQrnCCJ", + "direction": "Left" + } + ], + "block_hash": "8sFBwYN6VKvnApmuxkTw9xzkiW5cq3VcmmHbZHE8uPUs", + "id": "FFcY4v3stWcbW1KN6KUT1RFg7VBwyimUEkLf2Bm14qe5", + "outcome": { + "logs": [], + "receipt_ids": [], + "gas_burnt": 223182562500, + "tokens_burnt": "0", + "executor_id": "workhard3.near", + "status": { + "SuccessValue": "" + }, + "metadata": { + "version": 1, + "gas_profile": [] + } + } + }, + "receipt": { + "predecessor_id": "system", + "receiver_id": "workhard3.near", + "receipt_id": "FFcY4v3stWcbW1KN6KUT1RFg7VBwyimUEkLf2Bm14qe5", + "receipt": { + "Action": { + "signer_id": "workhard3.near", + "signer_public_key": "ed25519:Dv2jUEv5vtxGFwXmi75VhwEZ9fsA5euzBMQ7iKxrBsp6", + "gas_price": "0", + "output_data_receivers": [], + "input_data_ids": [], + "actions": [ + { + "Transfer": { + "deposit": "3420385884425575615692" + } + } + ] + } + } + } + }, + { + "execution_outcome": { + "proof": [ + { + "hash": "YQRrkX3GCGkhvTn4FP5V5UnQuPbbyzPAQ8E8Mot1fDT", + "direction": "Left" + }, + { + "hash": "2AVWk5DCiHJoVENAnCdMyTxSe17KWrLA8YAwmtohPKKv", + "direction": "Right" + }, + { + "hash": "HMWt8zRP2PKzgGTFeKtuKTbwXco6FQFJ6ZjUFUwaxdmu", + "direction": "Left" + }, + { + "hash": "CXtHapGhcEHMp1Kvqumai3xRfmL9SZo2D3M24wQrnCCJ", + "direction": "Left" + } + ], + "block_hash": "8sFBwYN6VKvnApmuxkTw9xzkiW5cq3VcmmHbZHE8uPUs", + "id": "GFmb4dQFMjTzPGBn49UfRrtttYJP3UurauSVjAGTtjfR", + "outcome": { + "logs": [ + "Liquidity added [\"381902308559901398150027 meta-pool.near\", \"110875331640962543036579778 meta-token.near\"], minted 484193404164709297001 shares" + ], + "receipt_ids": [ + "2HgM5nRsEFNGULWaoXMJ7bgUyRottMMqVG7dQFAAbLsG", + "6ynNFXfbKZ2nByHCxqJK2ktwedHhrGR1okbP5dAKJFEh" + ], + "gas_burnt": 10463959103840, + "tokens_burnt": "1046395910384000000000", + "executor_id": "v2.ref-finance.near", + "status": { + "SuccessValue": "" + }, + "metadata": { + "version": 1, + "gas_profile": [ + { + "cost_category": "ACTION_COST", + "cost": "NEW_RECEIPT", + "gas_used": "108059500000" + }, + { + "cost_category": "ACTION_COST", + "cost": "TRANSFER", + "gas_used": "115123062500" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "BASE", + "gas_used": "16680390993" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "CONTRACT_COMPILE_BASE", + "gas_used": "35445963" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "CONTRACT_COMPILE_BYTES", + "gas_used": "126881115000" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "LOG_BASE", + "gas_used": "3543313050" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "LOG_BYTE", + "gas_used": "1887427113" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "READ_MEMORY_BASE", + "gas_used": "65246580000" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "READ_MEMORY_BYTE", + "gas_used": "3793730334" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "READ_REGISTER_BASE", + "gas_used": "45308973348" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "READ_REGISTER_BYTE", + "gas_used": "92648280" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_READ_BASE", + "gas_used": "563568457500" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_READ_KEY_BYTE", + "gas_used": "8233373778" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_READ_VALUE_BYTE", + "gas_used": "2687671395" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_WRITE_BASE", + "gas_used": "385180416000" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_WRITE_EVICTED_BYTE", + "gas_used": "14356436229" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_WRITE_KEY_BYTE", + "gas_used": "7894081104" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_WRITE_VALUE_BYTE", + "gas_used": "13865286933" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "TOUCHING_TRIE_NODE", + "gas_used": "6054335428176" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "UTF8_DECODING_BASE", + "gas_used": "6223558122" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "UTF8_DECODING_BYTE", + "gas_used": "45778135203" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "WRITE_MEMORY_BASE", + "gas_used": "58879692081" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "WRITE_MEMORY_BYTE", + "gas_used": "2691086736" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "WRITE_REGISTER_BASE", + "gas_used": "54444927234" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "WRITE_REGISTER_BYTE", + "gas_used": "3949824996" + } + ] + } + } + }, + "receipt": { + "predecessor_id": "longpan01.near", + "receiver_id": "v2.ref-finance.near", + "receipt_id": "GFmb4dQFMjTzPGBn49UfRrtttYJP3UurauSVjAGTtjfR", + "receipt": { + "Action": { + "signer_id": "longpan01.near", + "signer_public_key": "ed25519:56vkHVseyh68i439cLvZVN8opSc2xtiR9Wn653giJEWg", + "gas_price": "186029458", + "output_data_receivers": [], + "input_data_ids": [], + "actions": [ + { + "FunctionCall": { + "method_name": "add_liquidity", + "args": "eyJwb29sX2lkIjoxOTIzLCJhbW91bnRzIjpbIjM4MTkwMjMwODU1OTkwMTQ0MDAwMDAwMCIsIjExMDg3NTMzMTY0MDk2MjU0MzAzNjY4MTYzMCJdfQ==", + "gas": 100000000000000, + "deposit": "10000000000000000000000" + } + } + ] + } + } + } + }, + { + "execution_outcome": { + "proof": [ + { + "hash": "9rZ8HuVTcVXLVpE9VjaM27gjVz78MXhWLSnEU48Q3xWE", + "direction": "Right" + }, + { + "hash": "EGzHwemG8GDRyJzGgBCWT1ytRqEa4yXER1dngonUgVpN", + "direction": "Left" + }, + { + "hash": "HMWt8zRP2PKzgGTFeKtuKTbwXco6FQFJ6ZjUFUwaxdmu", + "direction": "Left" + }, + { + "hash": "CXtHapGhcEHMp1Kvqumai3xRfmL9SZo2D3M24wQrnCCJ", + "direction": "Left" + } + ], + "block_hash": "8sFBwYN6VKvnApmuxkTw9xzkiW5cq3VcmmHbZHE8uPUs", + "id": "4gTBrrFqhw6NGiHUqVtuocKwzbC4r28WUPJSgno6zRZK", + "outcome": { + "logs": [ + "Withdraw 100000000000000000000000000 NEAR from dill1_1.near" + ], + "receipt_ids": [ + "2dRSHPoNLHCAKF8dEwqvx9NtTvfcEqo1TyB1aXFxi4Mw", + "4VTg7sWvvB5UAPwLpvhYWR8ZZ9k2BQAHkmqpGef3SJzY" + ], + "gas_burnt": 4214412074162, + "tokens_burnt": "421441207416200000000", + "executor_id": "wrap.near", + "status": { + "SuccessReceiptId": "2dRSHPoNLHCAKF8dEwqvx9NtTvfcEqo1TyB1aXFxi4Mw" + }, + "metadata": { + "version": 1, + "gas_profile": [ + { + "cost_category": "ACTION_COST", + "cost": "NEW_RECEIPT", + "gas_used": "108059500000" + }, + { + "cost_category": "ACTION_COST", + "cost": "TRANSFER", + "gas_used": "115123062500" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "BASE", + "gas_used": "5824898442" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "CONTRACT_COMPILE_BASE", + "gas_used": "35445963" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "CONTRACT_COMPILE_BYTES", + "gas_used": "40234218750" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "LOG_BASE", + "gas_used": "3543313050" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "LOG_BYTE", + "gas_used": "778728669" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "PROMISE_RETURN", + "gas_used": "560152386" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "READ_MEMORY_BASE", + "gas_used": "26098632000" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "READ_MEMORY_BYTE", + "gas_used": "684239940" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "READ_REGISTER_BASE", + "gas_used": "12585825930" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "READ_REGISTER_BYTE", + "gas_used": "11137506" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_READ_BASE", + "gas_used": "112713691500" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_READ_KEY_BYTE", + "gas_used": "680955726" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_READ_VALUE_BYTE", + "gas_used": "252495225" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_WRITE_BASE", + "gas_used": "128393472000" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_WRITE_EVICTED_BYTE", + "gas_used": "1445278815" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_WRITE_KEY_BYTE", + "gas_used": "1550623074" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_WRITE_VALUE_BYTE", + "gas_used": "1395834255" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "TOUCHING_TRIE_NODE", + "gas_used": "1127136914820" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "UTF8_DECODING_BASE", + "gas_used": "6223558122" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "UTF8_DECODING_BYTE", + "gas_used": "20702214009" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "WRITE_MEMORY_BASE", + "gas_used": "16822769166" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "WRITE_MEMORY_BYTE", + "gas_used": "351366588" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "WRITE_REGISTER_BASE", + "gas_used": "17193134916" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "WRITE_REGISTER_BYTE", + "gas_used": "539822088" + } + ] + } + } + }, + "receipt": { + "predecessor_id": "dill1_1.near", + "receiver_id": "wrap.near", + "receipt_id": "4gTBrrFqhw6NGiHUqVtuocKwzbC4r28WUPJSgno6zRZK", + "receipt": { + "Action": { + "signer_id": "dill1_1.near", + "signer_public_key": "ed25519:E895uyjWj3ncsXmXXRz3WdGwRtwiZ6KtA2oEQiJ5Wb7K", + "gas_price": "346069590", + "output_data_receivers": [], + "input_data_ids": [], + "actions": [ + { + "FunctionCall": { + "method_name": "near_withdraw", + "args": "eyJhbW91bnQiOiIxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAifQ==", + "gas": 200000000000000, + "deposit": "1" + } + } + ] + } + } + } + }, + { + "execution_outcome": { + "proof": [ + { + "hash": "CYaPwZAsrenjR4d79HmuvroGfb25AgzFxnRDowJFtiTh", + "direction": "Left" + }, + { + "hash": "EGzHwemG8GDRyJzGgBCWT1ytRqEa4yXER1dngonUgVpN", + "direction": "Left" + }, + { + "hash": "HMWt8zRP2PKzgGTFeKtuKTbwXco6FQFJ6ZjUFUwaxdmu", + "direction": "Left" + }, + { + "hash": "CXtHapGhcEHMp1Kvqumai3xRfmL9SZo2D3M24wQrnCCJ", + "direction": "Left" + } + ], + "block_hash": "8sFBwYN6VKvnApmuxkTw9xzkiW5cq3VcmmHbZHE8uPUs", + "id": "BKAFrhXEWKRxbsw8sfNDwXp3kiaHuTVjn4dohHaXGmHe", + "outcome": { + "logs": [ + "Swapped 15000000000 v3.oin_finance.near for 9254425403101710706083291 wrap.near" + ], + "receipt_ids": [ + "Bggfv9a462HzV9Exewy7EYhwuNr8jb3r12CaVEQMGd4f" + ], + "gas_burnt": 10871210808017, + "tokens_burnt": "1087121080801700000000", + "executor_id": "v2.ref-finance.near", + "status": { + "SuccessValue": "IjkyNTQ0MjU0MDMxMDE3MTA3MDYwODMyOTEi" + }, + "metadata": { + "version": 1, + "gas_profile": [ + { + "cost_category": "WASM_HOST_COST", + "cost": "BASE", + "gas_used": "15356550438" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "CONTRACT_COMPILE_BASE", + "gas_used": "35445963" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "CONTRACT_COMPILE_BYTES", + "gas_used": "126881115000" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "LOG_BASE", + "gas_used": "3543313050" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "LOG_BYTE", + "gas_used": "1042704489" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "READ_MEMORY_BASE", + "gas_used": "62636716800" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "READ_MEMORY_BYTE", + "gas_used": "3968591652" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "READ_REGISTER_BASE", + "gas_used": "45308973348" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "READ_REGISTER_BYTE", + "gas_used": "122808252" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_READ_BASE", + "gas_used": "563568457500" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_READ_KEY_BYTE", + "gas_used": "8109563646" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_READ_VALUE_BYTE", + "gas_used": "3332936970" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_WRITE_BASE", + "gas_used": "385180416000" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_WRITE_EVICTED_BYTE", + "gas_used": "18049926534" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_WRITE_KEY_BYTE", + "gas_used": "8035046838" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "STORAGE_WRITE_VALUE_BYTE", + "gas_used": "17432418918" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "TOUCHING_TRIE_NODE", + "gas_used": "5458563058914" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "UTF8_DECODING_BASE", + "gas_used": "3111779061" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "UTF8_DECODING_BYTE", + "gas_used": "23034857841" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "WRITE_MEMORY_BASE", + "gas_used": "53272102359" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "WRITE_MEMORY_BYTE", + "gas_used": "3437400264" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "WRITE_REGISTER_BASE", + "gas_used": "54444927234" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "WRITE_REGISTER_BYTE", + "gas_used": "5113103580" + } + ] + } + } + }, + "receipt": { + "predecessor_id": "dogwater.near", + "receiver_id": "v2.ref-finance.near", + "receipt_id": "BKAFrhXEWKRxbsw8sfNDwXp3kiaHuTVjn4dohHaXGmHe", + "receipt": { + "Action": { + "signer_id": "dogwater.near", + "signer_public_key": "ed25519:5DTPy894WZwufcWEAbRwoYwZkyFA6xtu2c7gZSYXktVc", + "gas_price": "186029458", + "output_data_receivers": [], + "input_data_ids": [], + "actions": [ + { + "FunctionCall": { + "method_name": "swap", + "args": "eyJhY3Rpb25zIjpbeyJwb29sX2lkIjoyMDQzLCJ0b2tlbl9pbiI6InYzLm9pbl9maW5hbmNlLm5lYXIiLCJ0b2tlbl9vdXQiOiJ3cmFwLm5lYXIiLCJhbW91bnRfaW4iOiIxNTAwMDAwMDAwMCIsIm1pbl9hbW91bnRfb3V0IjoiOTIxMzc5NjkyOTE5Njk3NTAwMDAwMDAwIn1dfQ==", + "gas": 100000000000000, + "deposit": "1" + } + } + ] + } + } + } + } + ], + "state_changes": [ + { + "cause": { + "type": "transaction_processing", + "tx_hash": "43Z1CGrFdg1Xi49FoEVKnhA8AEXdKP3LGoyP5xoaGKeX" + }, + "type": "account_update", + "change": { + "account_id": "lazina.near", + "amount": "1522091937286448655385099", + "locked": "0", + "code_hash": "11111111111111111111111111111111", + "storage_usage": 1217, + "storage_paid_at": 0 + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "DdQ5dfKsfRAE7NsZSPEBvif42CYVb8zFLwHzSvuxaiB3" + }, + "type": "account_update", + "change": { + "account_id": "nearmother.near", + "amount": "3583099142759058568532520", + "locked": "0", + "code_hash": "11111111111111111111111111111111", + "storage_usage": 7764, + "storage_paid_at": 0 + } + }, + { + "cause": { + "type": "transaction_processing", + "tx_hash": "7ar3L123nxc8Pw2dTGeuU2bbyVLzEbH4eiRwV7euWhZD" + }, + "type": "account_update", + "change": { + "account_id": "ravlik.near", + "amount": "5120086471016931264776903", + "locked": "0", + "code_hash": "11111111111111111111111111111111", + "storage_usage": 7373, + "storage_paid_at": 0 + } + }, + { + "cause": { + "type": "transaction_processing", + "tx_hash": "AX4ZGo5Vk3xN7vhqUUfpuPZbrXkD2AA4znTowhdUsrp5" + }, + "type": "account_update", + "change": { + "account_id": "relay.aurora", + "amount": "1618037053427334569015197748", + "locked": "0", + "code_hash": "11111111111111111111111111111111", + "storage_usage": 2806, + "storage_paid_at": 0 + } + }, + { + "cause": { + "type": "transaction_processing", + "tx_hash": "FCscvHpSDkhXmbiXb1ZL9yVZbLMjZ3xyoB2iaADj24E3" + }, + "type": "account_update", + "change": { + "account_id": "relay.aurora", + "amount": "1617847780796562400228557896", + "locked": "0", + "code_hash": "11111111111111111111111111111111", + "storage_usage": 2806, + "storage_paid_at": 0 + } + }, + { + "cause": { + "type": "transaction_processing", + "tx_hash": "GEUfWfHKY4CGSzsZLNVmyixzjkiXgnMvX8cbi72FnPZZ" + }, + "type": "account_update", + "change": { + "account_id": "relay.aurora", + "amount": "1617658507643782515037087892", + "locked": "0", + "code_hash": "11111111111111111111111111111111", + "storage_usage": 2806, + "storage_paid_at": 0 + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "BUWHe9Kpe2r48CodBmcDV5qcTq3YxwckFZ4NpBMQqCNc" + }, + "type": "account_update", + "change": { + "account_id": "relay.aurora", + "amount": "1617844995723140363047315228", + "locked": "0", + "code_hash": "11111111111111111111111111111111", + "storage_usage": 2806, + "storage_paid_at": 0 + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "58J9PHs38Sp6Fw5bnB1cM1UEGTf3yPuazU4SRhykQaoQ" + }, + "type": "account_update", + "change": { + "account_id": "relay.aurora", + "amount": "1618033680448511482338344612", + "locked": "0", + "code_hash": "11111111111111111111111111111111", + "storage_usage": 2806, + "storage_paid_at": 0 + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "DVJrvavd5xcXEwj3z5iUXj3nYoF5tuvH6yXA6dWVAtQ1" + }, + "type": "account_update", + "change": { + "account_id": "relay.aurora", + "amount": "1618216249637866759341388048", + "locked": "0", + "code_hash": "11111111111111111111111111111111", + "storage_usage": 2806, + "storage_paid_at": 0 + } + }, + { + "cause": { + "type": "transaction_processing", + "tx_hash": "H4fZPw6CegV8F8pEeU2crrC7JhtTTARBtPTUQaQep2oS" + }, + "type": "account_update", + "change": { + "account_id": "satoshik.near", + "amount": "5325387165457385716777780", + "locked": "0", + "code_hash": "E8jZ1giWcVrps8PcV75ATauu6gFRkcwjNtKp7NKmipZG", + "storage_usage": 54071, + "storage_paid_at": 0 + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "GFmb4dQFMjTzPGBn49UfRrtttYJP3UurauSVjAGTtjfR" + }, + "type": "account_update", + "change": { + "account_id": "v2.ref-finance.near", + "amount": "786187753582816275021554450", + "locked": "0", + "code_hash": "D6JdqJEWHbJGvCad3LM4AQjVBsQZqV6BJV1HoaD47FHg", + "storage_usage": 24986752, + "storage_paid_at": 0 + } + }, + { + "cause": { + "type": "action_receipt_gas_reward", + "receipt_hash": "GFmb4dQFMjTzPGBn49UfRrtttYJP3UurauSVjAGTtjfR" + }, + "type": "account_update", + "change": { + "account_id": "v2.ref-finance.near", + "amount": "786187994657385744221554450", + "locked": "0", + "code_hash": "D6JdqJEWHbJGvCad3LM4AQjVBsQZqV6BJV1HoaD47FHg", + "storage_usage": 24986752, + "storage_paid_at": 0 + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "BKAFrhXEWKRxbsw8sfNDwXp3kiaHuTVjn4dohHaXGmHe" + }, + "type": "account_update", + "change": { + "account_id": "v2.ref-finance.near", + "amount": "786187994657385744221554451", + "locked": "0", + "code_hash": "D6JdqJEWHbJGvCad3LM4AQjVBsQZqV6BJV1HoaD47FHg", + "storage_usage": 24986752, + "storage_paid_at": 0 + } + }, + { + "cause": { + "type": "action_receipt_gas_reward", + "receipt_hash": "BKAFrhXEWKRxbsw8sfNDwXp3kiaHuTVjn4dohHaXGmHe" + }, + "type": "account_update", + "change": { + "account_id": "v2.ref-finance.near", + "amount": "786188247945280423421554451", + "locked": "0", + "code_hash": "D6JdqJEWHbJGvCad3LM4AQjVBsQZqV6BJV1HoaD47FHg", + "storage_usage": 24986752, + "storage_paid_at": 0 + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "FFcY4v3stWcbW1KN6KUT1RFg7VBwyimUEkLf2Bm14qe5" + }, + "type": "account_update", + "change": { + "account_id": "workhard3.near", + "amount": "210665743408245085226739", + "locked": "0", + "code_hash": "11111111111111111111111111111111", + "storage_usage": 5721, + "storage_paid_at": 0 + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "4gTBrrFqhw6NGiHUqVtuocKwzbC4r28WUPJSgno6zRZK" + }, + "type": "account_update", + "change": { + "account_id": "wrap.near", + "amount": "12656159681560043258395965826034", + "locked": "0", + "code_hash": "DL2f5xmZ44cQRP6vBMt94rvseH5d5KKnAGis2WkTAsh1", + "storage_usage": 11068798, + "storage_paid_at": 0 + } + }, + { + "cause": { + "type": "action_receipt_gas_reward", + "receipt_hash": "4gTBrrFqhw6NGiHUqVtuocKwzbC4r28WUPJSgno6zRZK" + }, + "type": "account_update", + "change": { + "account_id": "wrap.near", + "amount": "12656159681613634435485765826034", + "locked": "0", + "code_hash": "DL2f5xmZ44cQRP6vBMt94rvseH5d5KKnAGis2WkTAsh1", + "storage_usage": 11068798, + "storage_paid_at": 0 + } + }, + { + "cause": { + "type": "transaction_processing", + "tx_hash": "4EahNP97yvw53UqX4xdzV7AUF19DmX3vLMgpFHiNxYQR" + }, + "type": "account_update", + "change": { + "account_id": "yeaj.near", + "amount": "54232927030799730927579", + "locked": "0", + "code_hash": "11111111111111111111111111111111", + "storage_usage": 264, + "storage_paid_at": 0 + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "5EuQG46HpNXBfZeLzmu6P6Kr4R1spMkRxycSZrQNG2k9" + }, + "type": "account_update", + "change": { + "account_id": "zaxar.near", + "amount": "360726104680019569368169", + "locked": "0", + "code_hash": "11111111111111111111111111111111", + "storage_usage": 19251, + "storage_paid_at": 0 + } + }, + { + "cause": { + "type": "transaction_processing", + "tx_hash": "43Z1CGrFdg1Xi49FoEVKnhA8AEXdKP3LGoyP5xoaGKeX" + }, + "type": "access_key_update", + "change": { + "account_id": "lazina.near", + "public_key": "ed25519:2LRV3rtiMw1pjJ5xqSfAEjvufv3WzdsKdbApFrd8JHCL", + "access_key": { + "nonce": 55746852000019, + "permission": { + "FunctionCall": { + "allowance": "229974157111132457348832", + "receiver_id": "app.nearcrowd.near", + "method_names": [] + } + } + } + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "DdQ5dfKsfRAE7NsZSPEBvif42CYVb8zFLwHzSvuxaiB3" + }, + "type": "access_key_update", + "change": { + "account_id": "nearmother.near", + "public_key": "ed25519:AQY6EnauhvfF1mxfptbre4dceaDodrLYwUvBWHHWfwHd", + "access_key": { + "nonce": 55846651000090, + "permission": { + "FunctionCall": { + "allowance": "214266081687505700000000", + "receiver_id": "app.nearcrowd.near", + "method_names": [] + } + } + } + } + }, + { + "cause": { + "type": "transaction_processing", + "tx_hash": "7ar3L123nxc8Pw2dTGeuU2bbyVLzEbH4eiRwV7euWhZD" + }, + "type": "access_key_update", + "change": { + "account_id": "ravlik.near", + "public_key": "ed25519:AmMUHMfvZvBZ6vYge6o4T4A38AqEExh8btxGqwymECX", + "access_key": { + "nonce": 55686122000193, + "permission": { + "FunctionCall": { + "allowance": "177896298053414782145772", + "receiver_id": "app.nearcrowd.near", + "method_names": [] + } + } + } + } + }, + { + "cause": { + "type": "transaction_processing", + "tx_hash": "GEUfWfHKY4CGSzsZLNVmyixzjkiXgnMvX8cbi72FnPZZ" + }, + "type": "access_key_update", + "change": { + "account_id": "relay.aurora", + "public_key": "ed25519:8jFPYGFYgt214uLstYKb4CHPuN2JpSbTYErfArAqdE5n", + "access_key": { + "nonce": 52962533057129, + "permission": "FullAccess" + } + } + }, + { + "cause": { + "type": "transaction_processing", + "tx_hash": "FCscvHpSDkhXmbiXb1ZL9yVZbLMjZ3xyoB2iaADj24E3" + }, + "type": "access_key_update", + "change": { + "account_id": "relay.aurora", + "public_key": "ed25519:GZLnpkFX9vJDptwS6cTi5VyjML2eGDSB6x6wAFuFzeU5", + "access_key": { + "nonce": 52962533057051, + "permission": "FullAccess" + } + } + }, + { + "cause": { + "type": "transaction_processing", + "tx_hash": "AX4ZGo5Vk3xN7vhqUUfpuPZbrXkD2AA4znTowhdUsrp5" + }, + "type": "access_key_update", + "change": { + "account_id": "relay.aurora", + "public_key": "ed25519:J8gDhP5ChAh94URuqFtGNJEh9RTKMBAQXCMx9jDzYmbg", + "access_key": { + "nonce": 52962533057135, + "permission": "FullAccess" + } + } + }, + { + "cause": { + "type": "transaction_processing", + "tx_hash": "H4fZPw6CegV8F8pEeU2crrC7JhtTTARBtPTUQaQep2oS" + }, + "type": "access_key_update", + "change": { + "account_id": "satoshik.near", + "public_key": "ed25519:9kb3zDchmJ85ZgFFfvo2N9SzuZ5VptPf8PR9EjEBXPuz", + "access_key": { + "nonce": 55901331000091, + "permission": { + "FunctionCall": { + "allowance": "211905226650673182145772", + "receiver_id": "app.nearcrowd.near", + "method_names": [] + } + } + } + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "FFcY4v3stWcbW1KN6KUT1RFg7VBwyimUEkLf2Bm14qe5" + }, + "type": "access_key_update", + "change": { + "account_id": "workhard3.near", + "public_key": "ed25519:Dv2jUEv5vtxGFwXmi75VhwEZ9fsA5euzBMQ7iKxrBsp6", + "access_key": { + "nonce": 55814479000583, + "permission": { + "FunctionCall": { + "allowance": "33055977155681200000000", + "receiver_id": "app.nearcrowd.near", + "method_names": [] + } + } + } + } + }, + { + "cause": { + "type": "transaction_processing", + "tx_hash": "4EahNP97yvw53UqX4xdzV7AUF19DmX3vLMgpFHiNxYQR" + }, + "type": "access_key_update", + "change": { + "account_id": "yeaj.near", + "public_key": "ed25519:Bdhx7P9ZMrzxRJpHHseeDcK7sMcDCSm4fsk8ewPv3fXy", + "access_key": { + "nonce": 49751059000001, + "permission": "FullAccess" + } + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "5EuQG46HpNXBfZeLzmu6P6Kr4R1spMkRxycSZrQNG2k9" + }, + "type": "access_key_update", + "change": { + "account_id": "zaxar.near", + "public_key": "ed25519:61hWZFgyttWzvBYfmLN3KYUQsX9FCZ7i9iY66vDYHYTy", + "access_key": { + "nonce": 55806061000565, + "permission": { + "FunctionCall": { + "allowance": "30459830947285900000000", + "receiver_id": "app.nearcrowd.near", + "method_names": [] + } + } + } + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "GFmb4dQFMjTzPGBn49UfRrtttYJP3UurauSVjAGTtjfR" + }, + "type": "data_update", + "change": { + "account_id": "v2.ref-finance.near", + "key_base64": "AIMHAAAAAAAA", + "value_base64": "AAIAAAAOAAAAbWV0YS1wb29sLm5lYXIPAAAAbWV0YS10b2tlbi5uZWFyAgAAACFJS+sxFL0jUrWaoAAAAADnYVw5vYOqArqUQiO2AAAAAgAAAIL1l/z7bN2WaWEWRQAAAAC85cr9AQB+6y7DL3Q9AAAAftxFOLkxV+pdmrLKVgAAAEO5xaifgjFzE4UxXwAAAAAeAAAAAAAAAAAAAAAFAAAAAoMHAADev/TxkpHWd4sgNAAAAAAA" + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "BKAFrhXEWKRxbsw8sfNDwXp3kiaHuTVjn4dohHaXGmHe" + }, + "type": "data_update", + "change": { + "account_id": "v2.ref-finance.near", + "key_base64": "APsHAAAAAAAA", + "value_base64": "AAIAAAATAAAAdjMub2luX2ZpbmFuY2UubmVhcgkAAAB3cmFwLm5lYXICAAAA0JGCNfwTAAAAAAAAAAAAACSh63Ik+OGbWTnoKwAAAAACAAAAZLKOiVoJAAAAAAAAAAAAADJ/SfITNPBp/cVKGQAAAABWh3fnMxnBC6XmAxQAAAAAiy4piDAHAAAAAAAAAAAAAB4AAAAAAAAAAAAAAAUAAAAC+wcAAD9gtTrJkroZy08mBgAAAAA=" + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "BKAFrhXEWKRxbsw8sfNDwXp3kiaHuTVjn4dohHaXGmHe" + }, + "type": "data_update", + "change": { + "account_id": "v2.ref-finance.near", + "key_base64": "AQ0AAABkb2d3YXRlci5uZWFy", + "value_base64": "AQAA0P1mIilyZAMAAAAAAAADAAAAEAAAAHRva2VuLnBhcmFzLm5lYXIAAAAAAAAAAAAAAAAAAAAAEgAAAHRva2VuLnNreXdhcmQubmVhcgAAAAAAAAAAAAAAAAAAAAAZAAAAdG9rZW4udjIucmVmLWZpbmFuY2UubmVhcgAAAAAAAAAAAAAAAAAAAAATAAAABQ0AAABkb2d3YXRlci5uZWFyaQQAAAAAAAAAEwAAAAUNAAAAZG9nd2F0ZXIubmVhcmsEAAAAAAAAABMAAAAFDQAAAGRvZ3dhdGVyLm5lYXJ2AAAAAAAAAAA=" + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "GFmb4dQFMjTzPGBn49UfRrtttYJP3UurauSVjAGTtjfR" + }, + "type": "data_update", + "change": { + "account_id": "v2.ref-finance.near", + "key_base64": "AQ4AAABsb25ncGFuMDEubmVhcg==", + "value_base64": "AQAAYAuYLtEmLQMAAAAAAAAAAAAAFAAAAAUOAAAAbG9uZ3BhbjAxLm5lYXJpBQAAAAAAAAAUAAAABQ4AAABsb25ncGFuMDEubmVhcmsFAAAAAAAAABQAAAAFDgAAAGxvbmdwYW4wMS5uZWFydgAAAAAAAAAA" + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "GFmb4dQFMjTzPGBn49UfRrtttYJP3UurauSVjAGTtjfR" + }, + "type": "data_update", + "change": { + "account_id": "v2.ref-finance.near", + "key_base64": "AoMHAAAOAAAAbG9uZ3BhbjAxLm5lYXI=", + "value_base64": "aSukoLiHiD8aAAAAAAAAAA==" + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "BKAFrhXEWKRxbsw8sfNDwXp3kiaHuTVjn4dohHaXGmHe" + }, + "type": "data_update", + "change": { + "account_id": "v2.ref-finance.near", + "key_base64": "AvsHAAATAAAAdjIucmVmLWZpbmFuY2UubmVhcg==", + "value_base64": "03ctnPG0rEgXWAAAAAAAAA==" + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "BKAFrhXEWKRxbsw8sfNDwXp3kiaHuTVjn4dohHaXGmHe" + }, + "type": "data_update", + "change": { + "account_id": "v2.ref-finance.near", + "key_base64": "BQ0AAABkb2d3YXRlci5uZWFydgEAAAAAAAAA", + "value_base64": "2wXBM80JB2izpwcAAAAAAA==" + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "BKAFrhXEWKRxbsw8sfNDwXp3kiaHuTVjn4dohHaXGmHe" + }, + "type": "data_update", + "change": { + "account_id": "v2.ref-finance.near", + "key_base64": "BQ0AAABkb2d3YXRlci5uZWFydgMAAAAAAAAA", + "value_base64": "ANYRfgMAAAAAAAAAAAAAAA==" + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "GFmb4dQFMjTzPGBn49UfRrtttYJP3UurauSVjAGTtjfR" + }, + "type": "data_update", + "change": { + "account_id": "v2.ref-finance.near", + "key_base64": "BQ4AAABsb25ncGFuMDEubmVhcnYDAAAAAAAAAA==", + "value_base64": "6DnfIni61ENEDwAAAAAAAA==" + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "GFmb4dQFMjTzPGBn49UfRrtttYJP3UurauSVjAGTtjfR" + }, + "type": "data_update", + "change": { + "account_id": "v2.ref-finance.near", + "key_base64": "BQ4AAABsb25ncGFuMDEubmVhcnYEAAAAAAAAAA==", + "value_base64": "3I0BAAAAAAAAAAAAAAAAAA==" + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "GFmb4dQFMjTzPGBn49UfRrtttYJP3UurauSVjAGTtjfR" + }, + "type": "data_update", + "change": { + "account_id": "v2.ref-finance.near", + "key_base64": "U1RBVEU=", + "value_base64": "HAAAAHJlZi1maW5hbmNlLnNwdXRuaWstZGFvLm5lYXJABgAAkAEAACQIAAAAAAAAAQAAAAABAAAAAQIAAAADaSIAAAAAAAAAAgAAAANlAgAAAARpBQAAAAAAAAACAAAABGUA" + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "BKAFrhXEWKRxbsw8sfNDwXp3kiaHuTVjn4dohHaXGmHe" + }, + "type": "data_update", + "change": { + "account_id": "v2.ref-finance.near", + "key_base64": "U1RBVEU=", + "value_base64": "HAAAAHJlZi1maW5hbmNlLnNwdXRuaWstZGFvLm5lYXJABgAAkAEAACQIAAAAAAAAAQAAAAABAAAAAQIAAAADaSIAAAAAAAAAAgAAAANlAgAAAARpBQAAAAAAAAACAAAABGUA" + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "4gTBrrFqhw6NGiHUqVtuocKwzbC4r28WUPJSgno6zRZK" + }, + "type": "data_update", + "change": { + "account_id": "wrap.near", + "key_base64": "U1RBVEU=", + "value_base64": "AQAAAGF3tXWplq5rOGBfuryfAAAAfQAAAAAAAAA=" + } + }, + { + "cause": { + "type": "receipt_processing", + "receipt_hash": "4gTBrrFqhw6NGiHUqVtuocKwzbC4r28WUPJSgno6zRZK" + }, + "type": "data_update", + "change": { + "account_id": "wrap.near", + "key_base64": "YQwAAABkaWxsMV8xLm5lYXI=", + "value_base64": "AAAAAAAAAAAAAAAAAAAAAA==" + } + } + ] + } + ] +} \ No newline at end of file diff --git a/refiner-types/src/aurora_block.rs b/refiner-types/src/aurora_block.rs index 904fb88..2d5cf58 100644 --- a/refiner-types/src/aurora_block.rs +++ b/refiner-types/src/aurora_block.rs @@ -1,5 +1,5 @@ -use crate::utils::u64_hex_serde; -use aurora_engine::parameters::ResultLog; +use crate::utils::{u128_dec_serde, u64_hex_serde}; +use aurora_engine::parameters::{ResultLog, TransactionStatus}; use aurora_engine_transactions::eip_2930::AccessTuple; use aurora_engine_types::types::{Address, Wei}; use aurora_engine_types::{H256, U256}; @@ -25,6 +25,8 @@ use crate::bloom::Bloom; pub struct AuroraBlock { /// Chain where this block belongs to pub chain_id: u64, + /// Account id of the engine contract on the chain + pub engine_account_id: AccountId, /// Hash of the block pub hash: H256, /// Hash of the parent block. It is guaranteed that heights from consecutive blocks will be @@ -163,6 +165,94 @@ pub struct NearTransaction { /// expected to be set for call newly produced data. #[serde(default, skip_serializing_if = "Option::is_none")] pub transaction_hash: Option, + /// Transaction metadata which is needed to compute the + /// value this transaction contributes to the overall block hashchain. + /// See [AIP-008](https://github.com/aurora-is-near/AIPs/pull/8) for details. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub hashchain_metadata: Option, +} + +#[derive(Debug, Serialize, Deserialize)] +pub struct HashchainMetadata { + /// Name of the method called on the Engine in the original Near transaction. + pub method_name: String, + /// Tag describing how to compute the original Near input from the data available in `AuroraTransaction`. + pub input: HashchainInputKind, + /// Tag describing how to compute the original Near output from the data available in `AuroraTransaction`. + pub output: HashchainOutputKind, + /// Computed "intrinsic transaction hash" as per + /// [AIP-008](https://github.com/aurora-is-near/AIPs/pull/8) + /// using the transaction data as described in the above fields. + /// This is present as a sort of checksum to ensure the overall `AuroraTransaction` + /// is consistent with what was present in the original Near transaction. + pub intrinsic_hash: CryptoHash, +} + +#[derive(Debug, Serialize, Deserialize)] +pub enum HashchainInputKind { + /// Standard RLP-encoded Ethereum transaction. + Rlp, + /// Legacy version of Borsh-encoded args for `call` function. + CallArgsLegacy, + /// Current version of Borsh-encoded args for `call` function. + CallArgs(CallArgsVersion), + /// The `submit_with_args` function uses a Borsh-encoded struct that has an embedded + /// RLP-encoded Ethereum transaction along with additional parameters. + SubmitWithArgs(AdditionalSubmitArgs), + /// Raw input explicitly given in `AuroraTransaction.input` + Explicit, +} + +#[derive(Debug, Serialize, Deserialize)] +pub enum CallArgsVersion { + V1, + V2, +} + +#[derive(Debug, Serialize, Deserialize)] +pub struct AdditionalSubmitArgs { + #[serde(with = "u128_dec_serde")] + pub max_gas_price: Option, + pub gas_token_address: Option
, +} + +#[derive(Debug, Serialize, Deserialize)] +pub enum HashchainOutputKind { + /// Borsh-encoding of SubmitResultLegacyV1 (fields populated with data from `AuroraTransaction`). + SubmitResultLegacyV1(ResultStatusTag), + /// Borsh-encoding of SubmitResultLegacyV2 (fields populated with data from `AuroraTransaction`). + SubmitResultLegacyV2(ResultStatusTag), + /// Borsh-encoding of SubmitResultLegacyV3 (fields populated with data from `AuroraTransaction`). + SubmitResultLegacyV3, + /// Borsh-encoding of current SubmitResult version (fields populated with data from `AuroraTransaction`). + SubmitResultV7(ResultStatusTag), + /// Raw output explicitly given in `AuroraTransaction.output` + Explicit, + /// No output from this transaction on Near (because another receipt was created instead). + None, +} + +#[derive(Debug, Serialize, Deserialize)] +pub enum ResultStatusTag { + Success, + Revert, + OutOfGas, + OutOfFund, + OutOfOffset, + CallTooDeep, +} + +impl From<&TransactionStatus> for ResultStatusTag { + fn from(value: &TransactionStatus) -> Self { + match value { + TransactionStatus::Succeed(_) => ResultStatusTag::Success, + TransactionStatus::Revert(_) => ResultStatusTag::Revert, + TransactionStatus::OutOfGas => ResultStatusTag::OutOfGas, + TransactionStatus::OutOfFund => ResultStatusTag::OutOfFund, + TransactionStatus::OutOfOffset => ResultStatusTag::OutOfOffset, + TransactionStatus::CallTooDeep => ResultStatusTag::CallTooDeep, + } + } } #[cfg(test)] diff --git a/refiner-types/src/res/aurora_70077007.json b/refiner-types/src/res/aurora_70077007.json index 36748ec..81180bd 100644 --- a/refiner-types/src/res/aurora_70077007.json +++ b/refiner-types/src/res/aurora_70077007.json @@ -1,5 +1,6 @@ { "chain_id": 1313161554, + "engine_account_id": "aurora", "hash": "0x3ec55f7e9728f6d4613baf7b71916af06dac1e0e5581b0e3960b5f60be64cbd0", "parent_hash": "0x0dc96272642311387164195f92bd535fbe5ac8c5c4b9bdfb0e7223ca87d78386", "height": 70077007, diff --git a/refiner-types/src/utils.rs b/refiner-types/src/utils.rs index 8ea3492..e46cf95 100644 --- a/refiner-types/src/utils.rs +++ b/refiner-types/src/utils.rs @@ -36,6 +36,37 @@ pub mod u64_hex_serde { } } +pub mod u128_dec_serde { + //! This module provides serde serialization for optional u128 numbers with base-10 strings. + //! It can be used with the field attribute `#[serde(with = "u128_dec_serde")]` on u128 fields + //! inside structs deriving serde Serialize and Deserialize traits. + + use serde::de::Error; + + pub fn serialize(n: &Option, serializer: S) -> Result + where + S: serde::Serializer, + { + if let Some(n) = n { + let dec_str = format!("{n}"); + serializer.serialize_some(&dec_str) + } else { + serializer.serialize_none() + } + } + + pub fn deserialize<'de, D>(deserializer: D) -> Result, D::Error> + where + D: serde::Deserializer<'de>, + { + let dec_str: Option = serde::Deserialize::deserialize(deserializer)?; + dec_str.map_or(Ok(None), |dec_str| { + let n = dec_str.parse().map_err(D::Error::custom)?; + Ok(Some(n)) + }) + } +} + /// Cast a U256 value down to u64; if the value is too large then return u64::MAX. pub fn saturating_cast(x: U256) -> u64 { if x < U64_MAX { @@ -53,7 +84,7 @@ pub fn keccak256(input: &[u8]) -> H256 { #[cfg(test)] mod tests { - use super::u64_hex_serde; + use super::{u128_dec_serde, u64_hex_serde}; use serde::{Deserialize, Serialize}; #[derive(Debug, Deserialize, Serialize, PartialEq, Eq)] @@ -62,6 +93,12 @@ mod tests { inner: u64, } + #[derive(Debug, Deserialize, Serialize, PartialEq, Eq)] + struct DecU128 { + #[serde(with = "u128_dec_serde")] + inner: Option, + } + #[test] fn test_u64_hex_serde() { let x = HexU64 { inner: 123456 }; @@ -81,4 +118,32 @@ mod tests { assert!(err.is_err()); assert!(format!("{:?}", err).contains("Invalid character 'q'")); } + + #[test] + fn test_u128_dec_serde() { + let x = DecU128 { inner: None }; + let x_ser = serde_json::to_string(&x).unwrap(); + let x_desr: DecU128 = serde_json::from_str(&x_ser).unwrap(); + assert_eq!(x, x_desr); + assert_eq!(x_ser, r#"{"inner":null}"#); + + let x = DecU128 { + inner: Some(123456), + }; + let x_ser = serde_json::to_string(&x).unwrap(); + let x_desr: DecU128 = serde_json::from_str(&x_ser).unwrap(); + assert_eq!(x, x_desr); + assert_eq!(x_ser, r#"{"inner":"123456"}"#); + + let negative_number = r#"{"inner":"-123"}"#; + let invalid_number = r#"{"inner":"123a"}"#; + + let err: Result = serde_json::from_str(negative_number); + assert!(err.is_err()); + assert!(format!("{:?}", err).contains("invalid digit found in string")); + + let err: Result = serde_json::from_str(invalid_number); + assert!(err.is_err()); + assert!(format!("{:?}", err).contains("invalid digit found in string")); + } }