From ff71ca6328ef4af6cd0621e8ff22ec412ec012a6 Mon Sep 17 00:00:00 2001 From: Guoteng Rao <3603304+grao1991@users.noreply.github.com> Date: Mon, 27 Jan 2025 16:00:37 -0800 Subject: [PATCH 01/30] [Indexer-Grpc-V2] Add LiveDataService. (#15802) --- Cargo.lock | 3 +- .../indexer-grpc-data-service-v2/Cargo.toml | 5 +- .../src/config.rs | 69 ++++++- .../src/connection_manager.rs | 9 +- .../indexer-grpc-data-service-v2/src/lib.rs | 2 +- .../src/live_data_service/data_client.rs | 37 ++++ .../src/live_data_service/data_manager.rs | 97 ++++++++++ .../src/live_data_service/fetch_manager.rs | 81 ++++++++ .../src/live_data_service/in_memory_cache.rs | 96 ++++++++++ .../src/live_data_service/mod.rs | 173 ++++++++++++++++++ .../src/service.rs | 9 +- 11 files changed, 565 insertions(+), 16 deletions(-) create mode 100644 ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/live_data_service/data_client.rs create mode 100644 ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/live_data_service/data_manager.rs create mode 100644 ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/live_data_service/fetch_manager.rs create mode 100644 ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/live_data_service/in_memory_cache.rs create mode 100644 ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/live_data_service/mod.rs diff --git a/Cargo.lock b/Cargo.lock index 51f328bea6faf..5e55389a3af62 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2171,7 +2171,6 @@ name = "aptos-indexer-grpc-data-service-v2" version = "1.0.0" dependencies = [ "anyhow", - "aptos-config", "aptos-indexer-grpc-server-framework", "aptos-indexer-grpc-utils", "aptos-protos 1.3.1", @@ -2181,9 +2180,9 @@ dependencies = [ "futures", "jemallocator", "once_cell", + "prost 0.13.4", "rand 0.7.3", "serde", - "serde_json", "tokio", "tokio-scoped", "tokio-stream", diff --git a/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/Cargo.toml b/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/Cargo.toml index b99906a22f78a..20994d619c3e5 100644 --- a/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/Cargo.toml +++ b/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/Cargo.toml @@ -22,6 +22,7 @@ clap = { workspace = true } dashmap = { workspace = true } futures = { workspace = true } once_cell = { workspace = true } +prost = { workspace = true } rand = { workspace = true } serde = { workspace = true } tokio = { workspace = true } @@ -32,9 +33,5 @@ tonic-reflection = { workspace = true } tracing = { workspace = true } uuid = { workspace = true } -[dev-dependencies] -aptos-config = { workspace = true } -serde_json = { workspace = true } - [target.'cfg(unix)'.dependencies] jemallocator = { workspace = true } diff --git a/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/config.rs b/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/config.rs index d554494eda711..d3cfe1fe7088a 100644 --- a/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/config.rs +++ b/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/config.rs @@ -4,6 +4,7 @@ use crate::{ connection_manager::ConnectionManager, historical_data_service::HistoricalDataService, + live_data_service::LiveDataService, service::{DataServiceWrapper, DataServiceWrapperWrapper}, }; use anyhow::Result; @@ -21,6 +22,7 @@ use tokio::task::JoinHandle; use tonic::{codec::CompressionEncoding, transport::Server}; use tracing::info; +pub(crate) static LIVE_DATA_SERVICE: OnceCell> = OnceCell::new(); pub(crate) static HISTORICAL_DATA_SERVICE: OnceCell = OnceCell::new(); pub(crate) const MAX_MESSAGE_SIZE: usize = 256 * (1 << 20); @@ -48,6 +50,26 @@ pub struct ServiceConfig { pub(crate) tls_config: Option, } +#[derive(Clone, Debug, Deserialize, Serialize)] +#[serde(deny_unknown_fields)] +pub struct LiveDataServiceConfig { + pub enabled: bool, + #[serde(default = "LiveDataServiceConfig::default_num_slots")] + pub num_slots: usize, + #[serde(default = "LiveDataServiceConfig::default_size_limit_bytes")] + pub size_limit_bytes: usize, +} + +impl LiveDataServiceConfig { + fn default_num_slots() -> usize { + 5_000_000 + } + + fn default_size_limit_bytes() -> usize { + 10_000_000_000 + } +} + #[derive(Clone, Debug, Deserialize, Serialize)] #[serde(deny_unknown_fields)] pub struct HistoricalDataServiceConfig { @@ -60,6 +82,7 @@ pub struct HistoricalDataServiceConfig { pub struct IndexerGrpcDataServiceConfig { pub(crate) chain_id: u64, pub(crate) service_config: ServiceConfig, + pub(crate) live_data_service_config: LiveDataServiceConfig, pub(crate) historical_data_service_config: HistoricalDataServiceConfig, pub(crate) grpc_manager_addresses: Vec, pub(crate) self_advertised_address: String, @@ -72,6 +95,48 @@ impl IndexerGrpcDataServiceConfig { DEFAULT_MAX_RESPONSE_CHANNEL_SIZE } + async fn create_live_data_service( + &self, + tasks: &mut Vec>>, + ) -> Option { + if !self.live_data_service_config.enabled { + return None; + } + let connection_manager = Arc::new( + ConnectionManager::new( + self.chain_id, + self.grpc_manager_addresses.clone(), + self.self_advertised_address.clone(), + /*is_live_data_service=*/ true, + ) + .await, + ); + let (handler_tx, handler_rx) = tokio::sync::mpsc::channel(10); + let service = DataServiceWrapper::new( + connection_manager.clone(), + handler_tx, + self.data_service_response_channel_size, + /*is_live_data_service=*/ true, + ); + + let connection_manager_clone = connection_manager.clone(); + tasks.push(tokio::task::spawn(async move { + connection_manager_clone.start().await; + Ok(()) + })); + + let chain_id = self.chain_id; + let config = self.live_data_service_config.clone(); + tasks.push(tokio::task::spawn_blocking(move || { + LIVE_DATA_SERVICE + .get_or_init(|| LiveDataService::new(chain_id, config, connection_manager)) + .run(handler_rx); + Ok(()) + })); + + Some(service) + } + async fn create_historical_data_service( &self, tasks: &mut Vec>>, @@ -135,9 +200,7 @@ impl RunnableConfig for IndexerGrpcDataServiceConfig { let mut tasks = vec![]; - // TODO(grao): Implement. - let live_data_service = None; - + let live_data_service = self.create_live_data_service(&mut tasks).await; let historical_data_service = self.create_historical_data_service(&mut tasks).await; let wrapper = Arc::new(DataServiceWrapperWrapper::new( diff --git a/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/connection_manager.rs b/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/connection_manager.rs index ac0168d42f0ac..09acf20ce9e32 100644 --- a/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/connection_manager.rs +++ b/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/connection_manager.rs @@ -1,7 +1,7 @@ // Copyright (c) Aptos Foundation // SPDX-License-Identifier: Apache-2.0 -use crate::config::MAX_MESSAGE_SIZE; +use crate::config::{LIVE_DATA_SERVICE, MAX_MESSAGE_SIZE}; use aptos_indexer_grpc_utils::{system_time_to_proto, timestamp_now_proto}; use aptos_protos::indexer::v1::{ grpc_manager_client::GrpcManagerClient, service_info::Info, ActiveStream, HeartbeatRequest, @@ -239,13 +239,16 @@ impl ConnectionManager { }); let info = if self.is_live_data_service { + let min_servable_version = match LIVE_DATA_SERVICE.get() { + Some(svc) => Some(svc.get_min_servable_version().await), + None => None, + }; Some(Info::LiveDataServiceInfo(LiveDataServiceInfo { chain_id: self.chain_id, timestamp, known_latest_version, stream_info, - // TODO(grao): Populate min_servable_version. - min_servable_version: None, + min_servable_version, })) } else { Some(Info::HistoricalDataServiceInfo(HistoricalDataServiceInfo { diff --git a/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/lib.rs b/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/lib.rs index d94f27926231a..448ab77b5c38b 100644 --- a/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/lib.rs +++ b/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/lib.rs @@ -2,9 +2,9 @@ // SPDX-License-Identifier: Apache-2.0 pub mod config; -#[allow(dead_code)] mod connection_manager; mod historical_data_service; +mod live_data_service; mod service; #[cfg(test)] mod test; diff --git a/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/live_data_service/data_client.rs b/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/live_data_service/data_client.rs new file mode 100644 index 0000000000000..2e1b544fb79d6 --- /dev/null +++ b/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/live_data_service/data_client.rs @@ -0,0 +1,37 @@ +// Copyright (c) Aptos Foundation +// SPDX-License-Identifier: Apache-2.0 + +use crate::connection_manager::ConnectionManager; +use aptos_protos::{indexer::v1::GetTransactionsRequest, transaction::v1::Transaction}; +use std::sync::Arc; +use tracing::trace; + +pub(super) struct DataClient { + connection_manager: Arc, +} + +impl DataClient { + pub(super) fn new(connection_manager: Arc) -> Self { + Self { connection_manager } + } + + pub(super) async fn fetch_transactions(&self, starting_version: u64) -> Vec { + trace!("Fetching transactions from GrpcManager, start_version: {starting_version}."); + + let request = GetTransactionsRequest { + starting_version: Some(starting_version), + transactions_count: None, + batch_size: None, + }; + loop { + let mut client = self + .connection_manager + .get_grpc_manager_client_for_request(); + let response = client.get_transactions(request).await; + if let Ok(response) = response { + return response.into_inner().transactions; + } + // TODO(grao): Error handling. + } + } +} diff --git a/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/live_data_service/data_manager.rs b/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/live_data_service/data_manager.rs new file mode 100644 index 0000000000000..dde3af0b157d0 --- /dev/null +++ b/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/live_data_service/data_manager.rs @@ -0,0 +1,97 @@ +// Copyright (c) Aptos Foundation +// SPDX-License-Identifier: Apache-2.0 + +use aptos_protos::transaction::v1::Transaction; +use prost::Message; +use tracing::trace; + +// TODO(grao): Naive implementation for now. This can be replaced by a more performant +// implementation in the future. +pub(super) struct DataManager { + pub(super) start_version: u64, + pub(super) end_version: u64, + data: Vec>>, + num_slots: usize, + + size_limit_bytes: usize, + eviction_target: usize, + total_size: usize, +} + +impl DataManager { + pub(super) fn new(end_version: u64, num_slots: usize, size_limit_bytes: usize) -> Self { + Self { + start_version: end_version.saturating_sub(num_slots as u64), + end_version, + data: vec![None; num_slots], + num_slots, + size_limit_bytes, + eviction_target: size_limit_bytes, + total_size: 0, + } + } + + pub(super) fn get_data(&self, version: u64) -> &Option> { + &self.data[version as usize % self.num_slots] + } + + pub(super) fn update_data(&mut self, start_version: u64, transactions: Vec) { + let end_version = start_version + transactions.len() as u64; + + trace!( + "Updating data for {} transactions in range [{start_version}, {end_version}).", + transactions.len(), + ); + if start_version > self.end_version { + // TODO(grao): unexpected + return; + } + + if end_version <= self.start_version { + // TODO(grao): Log and counter. + return; + } + + let num_to_skip = self.start_version.saturating_sub(start_version); + let start_version = start_version.max(self.start_version); + + let mut size_increased = 0; + let mut size_decreased = 0; + + for (i, transaction) in transactions + .into_iter() + .enumerate() + .skip(num_to_skip as usize) + { + let version = start_version + i as u64; + let slot_index = version as usize % self.num_slots; + if let Some(transaction) = self.data[slot_index].take() { + size_decreased += transaction.encoded_len(); + } + size_increased += transaction.encoded_len(); + self.data[version as usize % self.num_slots] = Some(Box::new(transaction)); + } + + if end_version > self.end_version { + self.end_version = end_version; + if self.start_version + (self.num_slots as u64) < end_version { + self.start_version = end_version - self.num_slots as u64; + } + } + + self.total_size += size_increased; + self.total_size -= size_decreased; + + if self.total_size >= self.size_limit_bytes { + while self.total_size >= self.eviction_target { + if let Some(transaction) = + self.data[self.start_version as usize % self.num_slots].take() + { + self.total_size -= transaction.encoded_len(); + drop(transaction); + } + self.start_version += 1; + } + } + } +} diff --git a/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/live_data_service/fetch_manager.rs b/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/live_data_service/fetch_manager.rs new file mode 100644 index 0000000000000..657760b857767 --- /dev/null +++ b/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/live_data_service/fetch_manager.rs @@ -0,0 +1,81 @@ +// Copyright (c) Aptos Foundation +// SPDX-License-Identifier: Apache-2.0 + +use crate::{ + connection_manager::ConnectionManager, + live_data_service::{data_client::DataClient, data_manager::DataManager}, +}; +use futures::future::{BoxFuture, FutureExt, Shared}; +use std::{sync::Arc, time::Duration}; +use tokio::sync::RwLock; +use tracing::info; + +type FetchTask<'a> = Shared>; + +pub(super) struct FetchManager<'a> { + data_manager: Arc>, + data_client: Arc, + pub(super) fetching_latest_data_task: RwLock>>, +} + +impl<'a> FetchManager<'a> { + pub(super) fn new( + data_manager: Arc>, + connection_manager: Arc, + ) -> Self { + Self { + data_manager, + data_client: Arc::new(DataClient::new(connection_manager)), + fetching_latest_data_task: RwLock::new(None), + } + } + + pub(super) async fn fetch_past_data(&self, version: u64) -> usize { + Self::fetch_and_update_cache(self.data_client.clone(), self.data_manager.clone(), version) + .await + } + + pub(super) async fn continuously_fetch_latest_data(&'a self) { + loop { + let task = self.fetch_latest_data().boxed().shared(); + *self.fetching_latest_data_task.write().await = Some(task.clone()); + let _ = task.await; + } + } + + async fn fetch_and_update_cache( + data_client: Arc, + data_manager: Arc>, + version: u64, + ) -> usize { + let transactions = data_client.fetch_transactions(version).await; + let len = transactions.len(); + + if len > 0 { + data_manager + .write() + .await + .update_data(version, transactions); + } + + len + } + + async fn fetch_latest_data(&'a self) -> usize { + let version = self.data_manager.read().await.end_version; + info!("Fetching latest data starting from version {version}."); + loop { + let num_transactions = Self::fetch_and_update_cache( + self.data_client.clone(), + self.data_manager.clone(), + version, + ) + .await; + if num_transactions != 0 { + info!("Finished fetching latest data, got {num_transactions} num_transactions starting from version {version}."); + return num_transactions; + } + tokio::time::sleep(Duration::from_millis(200)).await; + } + } +} diff --git a/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/live_data_service/in_memory_cache.rs b/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/live_data_service/in_memory_cache.rs new file mode 100644 index 0000000000000..d72059333326e --- /dev/null +++ b/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/live_data_service/in_memory_cache.rs @@ -0,0 +1,96 @@ +// Copyright (c) Aptos Foundation +// SPDX-License-Identifier: Apache-2.0 + +use crate::{ + connection_manager::ConnectionManager, + live_data_service::{data_manager::DataManager, fetch_manager::FetchManager}, +}; +use aptos_protos::transaction::v1::Transaction; +use prost::Message; +use std::sync::Arc; +use tokio::sync::RwLock; +use tracing::trace; + +pub(super) struct InMemoryCache<'a> { + pub(super) data_manager: Arc>, + pub(super) fetch_manager: Arc>, +} + +impl<'a> InMemoryCache<'a> { + pub(super) fn new( + connection_manager: Arc, + known_latest_version: u64, + num_slots: usize, + size_limit_bytes: usize, + ) -> Self { + let data_manager = Arc::new(RwLock::new(DataManager::new( + known_latest_version + 1, + num_slots, + size_limit_bytes, + ))); + let fetch_manager = Arc::new(FetchManager::new(data_manager.clone(), connection_manager)); + Self { + data_manager, + fetch_manager, + } + } + + pub(super) async fn get_data( + &'a self, + starting_version: u64, + ending_version: u64, + max_num_transactions_per_batch: usize, + max_bytes_per_batch: usize, + ) -> Option<(Vec, usize)> { + while starting_version >= self.data_manager.read().await.end_version { + trace!("Reached head, wait..."); + let num_transactions = self + .fetch_manager + .fetching_latest_data_task + .read() + .await + .as_ref() + .unwrap() + .clone() + .await; + + trace!("Done waiting, got {num_transactions} transactions at head."); + } + + loop { + let data_manager = self.data_manager.read().await; + + trace!("Getting data from cache, requested_version: {starting_version}, oldest available version: {}.", data_manager.start_version); + if starting_version < data_manager.start_version { + return None; + } + + if data_manager.get_data(starting_version).is_none() { + drop(data_manager); + self.fetch_manager.fetch_past_data(starting_version).await; + continue; + } + + let mut total_bytes = 0; + let mut version = starting_version; + let ending_version = ending_version.min(data_manager.end_version); + + let mut result = Vec::new(); + while version < ending_version + && total_bytes < max_bytes_per_batch + && result.len() < max_num_transactions_per_batch + { + if let Some(transaction) = data_manager.get_data(version).as_ref() { + // NOTE: We allow 1 more txn beyond the size limit here, for simplicity. + total_bytes += transaction.encoded_len(); + result.push(transaction.as_ref().clone()); + version += 1; + } else { + break; + } + } + trace!("Data was sent from cache, last version: {}.", version - 1); + return Some((result, total_bytes)); + } + } +} diff --git a/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/live_data_service/mod.rs b/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/live_data_service/mod.rs new file mode 100644 index 0000000000000..57a15bace0dcc --- /dev/null +++ b/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/live_data_service/mod.rs @@ -0,0 +1,173 @@ +// Copyright (c) Aptos Foundation +// SPDX-License-Identifier: Apache-2.0 + +mod data_client; +mod data_manager; +mod fetch_manager; +mod in_memory_cache; + +use crate::{ + config::LiveDataServiceConfig, connection_manager::ConnectionManager, + live_data_service::in_memory_cache::InMemoryCache, +}; +use aptos_protos::indexer::v1::{GetTransactionsRequest, TransactionsResponse}; +use std::{sync::Arc, time::Duration}; +use tokio::sync::mpsc::{Receiver, Sender}; +use tonic::{Request, Status}; +use tracing::info; +use uuid::Uuid; + +static MAX_BYTES_PER_BATCH: usize = 20 * (1 << 20); + +pub struct LiveDataService<'a> { + chain_id: u64, + in_memory_cache: InMemoryCache<'a>, + connection_manager: Arc, +} + +impl<'a> LiveDataService<'a> { + pub fn new( + chain_id: u64, + config: LiveDataServiceConfig, + connection_manager: Arc, + ) -> Self { + let known_latest_version = connection_manager.known_latest_version(); + Self { + chain_id, + connection_manager: connection_manager.clone(), + in_memory_cache: InMemoryCache::new( + connection_manager, + known_latest_version, + config.num_slots, + config.size_limit_bytes, + ), + } + } + + pub fn run( + &'a self, + mut handler_rx: Receiver<( + Request, + Sender>, + )>, + ) { + info!("Running LiveDataService..."); + tokio_scoped::scope(|scope| { + scope.spawn(async move { + let _ = self + .in_memory_cache + .fetch_manager + .continuously_fetch_latest_data() + .await; + }); + while let Some((request, response_sender)) = handler_rx.blocking_recv() { + // TODO(grao): Store request metadata. + let request = request.into_inner(); + let id = Uuid::new_v4().to_string(); + let known_latest_version = self.get_known_latest_version(); + let starting_version = request.starting_version.unwrap_or(known_latest_version); + + info!("Received request: {request:?}."); + if starting_version > known_latest_version + 10000 { + let err = Err(Status::failed_precondition( + "starting_version cannot be set to a far future version.", + )); + info!("Client error: {err:?}."); + let _ = response_sender.blocking_send(err); + continue; + } + + let max_num_transactions_per_batch = if let Some(batch_size) = request.batch_size { + batch_size as usize + } else { + 10000 + }; + + let ending_version = request + .transactions_count + .map(|count| starting_version + count); + + scope.spawn(async move { + self.start_streaming( + id, + starting_version, + ending_version, + max_num_transactions_per_batch, + MAX_BYTES_PER_BATCH, + response_sender, + ) + .await + }); + } + }); + } + + pub(crate) async fn get_min_servable_version(&self) -> u64 { + self.in_memory_cache.data_manager.read().await.start_version + } + + async fn start_streaming( + &'a self, + id: String, + starting_version: u64, + ending_version: Option, + max_num_transactions_per_batch: usize, + max_bytes_per_batch: usize, + response_sender: tokio::sync::mpsc::Sender>, + ) { + info!(stream_id = id, "Start streaming, starting_version: {starting_version}, ending_version: {ending_version:?}."); + self.connection_manager + .insert_active_stream(&id, starting_version, ending_version); + let mut next_version = starting_version; + let mut size_bytes = 0; + let ending_version = ending_version.unwrap_or(u64::MAX); + loop { + if next_version >= ending_version { + break; + } + self.connection_manager + .update_stream_progress(&id, next_version, size_bytes); + let known_latest_version = self.get_known_latest_version(); + if next_version > known_latest_version { + info!(stream_id = id, "next_version {next_version} is larger than known_latest_version {known_latest_version}"); + tokio::time::sleep(Duration::from_millis(100)).await; + continue; + } + + if let Some((transactions, batch_size_bytes)) = self + .in_memory_cache + .get_data( + next_version, + ending_version, + max_num_transactions_per_batch, + max_bytes_per_batch, + ) + .await + { + next_version += transactions.len() as u64; + size_bytes += batch_size_bytes as u64; + let response = TransactionsResponse { + transactions, + chain_id: Some(self.chain_id), + }; + if response_sender.send(Ok(response)).await.is_err() { + info!(stream_id = id, "Client dropped."); + break; + } + } else { + let err = Err(Status::not_found("Requested data is too old.")); + info!(stream_id = id, "Client error: {err:?}."); + let _ = response_sender.send(err).await; + break; + } + } + + self.connection_manager + .update_stream_progress(&id, next_version, size_bytes); + self.connection_manager.remove_active_stream(&id); + } + + fn get_known_latest_version(&self) -> u64 { + self.connection_manager.known_latest_version() + } +} diff --git a/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/service.rs b/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/service.rs index 9154ce9f33968..7a1b719cd4cce 100644 --- a/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/service.rs +++ b/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/service.rs @@ -1,7 +1,7 @@ // Copyright © Aptos Foundation // SPDX-License-Identifier: Apache-2.0 -use crate::connection_manager::ConnectionManager; +use crate::{config::LIVE_DATA_SERVICE, connection_manager::ConnectionManager}; use anyhow::Result; use aptos_indexer_grpc_utils::timestamp_now_proto; use aptos_protos::indexer::v1::{ @@ -169,13 +169,16 @@ impl DataService for DataServiceWrapper { }; let response = if self.is_live_data_service { + let min_servable_version = match LIVE_DATA_SERVICE.get() { + Some(svc) => Some(svc.get_min_servable_version().await), + None => None, + }; let info = LiveDataServiceInfo { chain_id: self.connection_manager.chain_id(), timestamp: Some(timestamp_now_proto()), known_latest_version: Some(known_latest_version), stream_info: Some(stream_info), - // TODO(grao): Populate min_servable_version. - min_servable_version: None, + min_servable_version, }; PingDataServiceResponse { info: Some(Info::LiveDataServiceInfo(info)), From 54dc19cb15401b58e195a0172fa3ee1f4c237bbc Mon Sep 17 00:00:00 2001 From: Bo Wu Date: Mon, 27 Jan 2025 11:08:04 -0800 Subject: [PATCH 02/30] update the testnet disk size to 10Ti --- testsuite/replay-verify/archive_disk_utils.py | 3 +- testsuite/replay-verify/main.py | 45 ++++++++++++------- 2 files changed, 31 insertions(+), 17 deletions(-) diff --git a/testsuite/replay-verify/archive_disk_utils.py b/testsuite/replay-verify/archive_disk_utils.py index 0e02c04497f6f..ba309d2c40dfe 100644 --- a/testsuite/replay-verify/archive_disk_utils.py +++ b/testsuite/replay-verify/archive_disk_utils.py @@ -506,7 +506,8 @@ def create_one_pvc_from_snapshot( ) -> str: config.load_kube_config() api_instance = client.CoreV1Api() - storage_size = "10Ti" if TESTNET_SNAPSHOT_NAME in snapshot_name else "8Ti" + # testnet and mainnet disk size could be different + storage_size = "10Ti" if TESTNET_SNAPSHOT_NAME in snapshot_name else "10Ti" # Define the PVC manifest pvc_manifest = { "apiVersion": "v1", diff --git a/testsuite/replay-verify/main.py b/testsuite/replay-verify/main.py index 4feac00629234..ed3ad8bd4a924 100644 --- a/testsuite/replay-verify/main.py +++ b/testsuite/replay-verify/main.py @@ -139,11 +139,13 @@ def update_status(self) -> None: self.status = self.get_pod_status() def is_completed(self) -> bool: - self.update_status() - if self.status and self.status.status.phase in ["Succeeded", "Failed"]: - return True - return False - + try: + self.update_status() + if self.status and self.status.status.phase in ["Succeeded", "Failed"]: + return True + except Exception as e: + logger.error(f"Failed to get pod status: {e}") + return False def is_failed(self) -> bool: self.update_status() if self.status and self.status.status.phase == "Failed": @@ -252,13 +254,20 @@ def start(self) -> None: ), ) def delete_pod(self): - response = self.client.delete_namespaced_pod( - name=self.name, - namespace=self.namespace, - body=client.V1DeleteOptions( - propagation_policy="Foreground", grace_period_seconds=0 - ), - ) + try: + response = self.client.delete_namespaced_pod( + name=self.name, + namespace=self.namespace, + body=client.V1DeleteOptions( + propagation_policy="Foreground", grace_period_seconds=0 + ), + ) + return response + except ApiException as e: + if e.status == 404: # Pod not found + logger.info(f"Pod {self.name} already deleted or doesn't exist") + return None # Consider this a success + raise # Re-raise other API exceptions for retry def get_pod_exit_code(self): # Check the status of the pod containers @@ -457,10 +466,14 @@ def schedule(self, from_scratch: bool = False) -> None: self.task_stats[worker_pod.name] = TaskStats(worker_pod.name) if self.current_workers[i] is not None: - phase = self.current_workers[i].get_phase() - logger.info( - f"Checking worker {i}: {self.current_workers[i].name}: {phase}" - ) + try: + phase = self.current_workers[i].get_phase() + logger.info( + f"Checking worker {i}: {self.current_workers[i].name}: {phase}" + ) + except Exception as e: + logger.error(f"Failed to get pod status: {e}") + self.reschedule_pod(self.current_workers[i], i) time.sleep(QUERY_DELAY) logger.info("All tasks have been scheduled") From be7358f9037d06154443512a836d3a34606fe27a Mon Sep 17 00:00:00 2001 From: Greg Nazario Date: Wed, 11 Dec 2024 23:09:55 -0500 Subject: [PATCH 03/30] [cli] Add MacOS and generic Linux release We've been naming it "Ubuntu", when we should just call it Linux, and let people deal with mismatched GlibC and OpenSSL. Additionally, add back MacOS for ARM and for x86. --- .github/actions/rust-setup-mac/action.yaml | 44 ++++++++++++++++++ .github/workflows/cli-release.yaml | 53 ++++++++++++++++++++++ 2 files changed, 97 insertions(+) create mode 100644 .github/actions/rust-setup-mac/action.yaml diff --git a/.github/actions/rust-setup-mac/action.yaml b/.github/actions/rust-setup-mac/action.yaml new file mode 100644 index 0000000000000..99bdd4b2c9bf5 --- /dev/null +++ b/.github/actions/rust-setup-mac/action.yaml @@ -0,0 +1,44 @@ +name: "Rust Setup" +description: "Setup the rust toolchain and cache" +inputs: + GIT_CREDENTIALS: + description: "Optional credentials to pass to git" + required: false + ADDITIONAL_KEY: + description: "An optional additional key to pass to rust-cache" + required: false + default: "" + +runs: + using: composite + steps: + #- run: sudo apt-get update && sudo apt-get install build-essential ca-certificates clang curl git libpq-dev libssl-dev pkg-config lsof lld --no-install-recommends --assume-yes + # shell: bash + + - uses: dsherret/rust-toolchain-file@v1 + + # rust-cache action will cache ~/.cargo and ./target + # https://github.com/Swatinem/rust-cache#cache-details + - name: Run cargo cache + uses: Swatinem/rust-cache@23bce251a8cd2ffc3c1075eaa2367cf899916d84 # pin@v2.7.3 + with: + key: ${{ inputs.ADDITIONAL_KEY }} + + - name: install protoc and related tools + shell: bash + run: scripts/dev_setup.sh -b -t -k + + - run: echo "/home/runner/.cargo/bin" | tee -a $GITHUB_PATH + shell: bash + + - name: Setup git credentials + if: inputs.GIT_CREDENTIALS != '' + shell: bash + run: | + git config --global credential.helper store + echo "${{ inputs.GIT_CREDENTIALS }}" > ~/.git-credentials + + # Display the rust toolchain version being installed + - name: Setup rust toolchain + shell: bash + run: rustup show diff --git a/.github/workflows/cli-release.yaml b/.github/workflows/cli-release.yaml index 6a30afa496070..4ed9e0e2ca1bf 100644 --- a/.github/workflows/cli-release.yaml +++ b/.github/workflows/cli-release.yaml @@ -21,6 +21,7 @@ on: description: "Dry run - If checked, the release will not be created" jobs: + # TODO: Deprecated, only supports OpenSSL v1, which is deprecated. build-ubuntu20-binary: name: "Build Ubuntu 20.04 binary" runs-on: ubuntu-20.04 @@ -37,6 +38,7 @@ jobs: name: cli-builds-ubuntu-20.04 path: aptos-cli-*.zip + # TODO: Deprecated, please use "Linux" instead as it's more straightforwardly named build-ubuntu22-binary: name: "Build Ubuntu 22.04 binary" runs-on: ubuntu-22.04 @@ -53,6 +55,54 @@ jobs: name: cli-builds-ubuntu-22.04 path: aptos-cli-*.zip + build-linux-binary: + name: "Build Linux binary" + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ github.event.inputs.source_git_ref_override }} + - uses: aptos-labs/aptos-core/.github/actions/rust-setup@main + - name: Build CLI + run: scripts/cli/build_cli_release.sh "Linux" "${{inputs.release_version}}" + - name: Upload Binary + uses: actions/upload-artifact@v4 + with: + name: cli-builds-linux + path: aptos-cli-*.zip + + build-macos-x86_64-binary: + name: "Build MacOS x86_64 binary" + runs-on: macos-13 + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ github.event.inputs.source_git_ref_override }} + - uses: gregnazario/aptos-core/.github/actions/rust-setup-mac@main + - name: Build CLI + run: scripts/cli/build_cli_release.sh "macOS" "${{inputs.release_version}}" + - name: Upload Binary + uses: actions/upload-artifact@v4 + with: + name: cli-builds-macos-x86-64 + path: aptos-cli-*.zip + + build-macos-arm-binary: + name: "Build MacOS ARM binary" + runs-on: macos-latest + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ github.event.inputs.source_git_ref_override }} + - uses: gregnazario/aptos-core/.github/actions/rust-setup-mac@main + - name: Build CLI + run: scripts/cli/build_cli_release.sh "macOS" "${{inputs.release_version}}" + - name: Upload Binary + uses: actions/upload-artifact@v4 + with: + name: cli-builds-macos-arm + path: aptos-cli-*.zip + build-windows-binary: name: "Build Windows binary" runs-on: windows-latest @@ -74,6 +124,9 @@ jobs: - build-ubuntu20-binary - build-ubuntu22-binary - build-windows-binary + - build-linux-binary + - build-macos-arm-binary + - build-macos-x86_64-binary runs-on: ubuntu-latest permissions: contents: "write" From 3e046ceee78839b646ca85dc33426a12cf17a57a Mon Sep 17 00:00:00 2001 From: Greg Nazario Date: Wed, 22 Jan 2025 00:38:57 -0500 Subject: [PATCH 04/30] [.github] Add Linux ARM build --- .github/workflows/cli-release.yaml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/.github/workflows/cli-release.yaml b/.github/workflows/cli-release.yaml index 4ed9e0e2ca1bf..3c151b3e4b3e9 100644 --- a/.github/workflows/cli-release.yaml +++ b/.github/workflows/cli-release.yaml @@ -71,6 +71,22 @@ jobs: name: cli-builds-linux path: aptos-cli-*.zip + build-linux-arm-binary: + name: "Build Linux ARM binary" + runs-on: ubuntu-24.04-arm + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ github.event.inputs.source_git_ref_override }} + - uses: aptos-labs/aptos-core/.github/actions/rust-setup@main + - name: Build CLI + run: scripts/cli/build_cli_release.sh "Linux" "${{inputs.release_version}}" + - name: Upload Binary + uses: actions/upload-artifact@v4 + with: + name: cli-builds-linux-arm + path: aptos-cli-*.zip + build-macos-x86_64-binary: name: "Build MacOS x86_64 binary" runs-on: macos-13 @@ -125,6 +141,7 @@ jobs: - build-ubuntu22-binary - build-windows-binary - build-linux-binary + - build-linux-arm-binary - build-macos-arm-binary - build-macos-x86_64-binary runs-on: ubuntu-latest From f87eff525e4f649e4a4286c097392cbc8006f232 Mon Sep 17 00:00:00 2001 From: Greg Nazario Date: Thu, 23 Jan 2025 23:10:44 -0500 Subject: [PATCH 05/30] [deps] Update indexer processors to ensure ARM build works --- Cargo.lock | 10 +++++----- Cargo.toml | 6 +++--- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5e55389a3af62..d6f1e9051f822 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2949,7 +2949,7 @@ dependencies = [ [[package]] name = "aptos-moving-average" version = "0.1.0" -source = "git+https://github.com/aptos-labs/aptos-indexer-processors.git?rev=3064a075e1abc06c60363f3f2551cc41f5c091de#3064a075e1abc06c60363f3f2551cc41f5c091de" +source = "git+https://github.com/aptos-labs/aptos-indexer-processors.git?rev=bf4dd89677e6929ef21f898a7a4176514e606ebd#bf4dd89677e6929ef21f898a7a4176514e606ebd" dependencies = [ "chrono", ] @@ -3467,7 +3467,7 @@ dependencies = [ [[package]] name = "aptos-protos" version = "1.3.1" -source = "git+https://github.com/aptos-labs/aptos-core.git?rev=6116af69aa173ca49e1761daabd6fe103fe2c65e#6116af69aa173ca49e1761daabd6fe103fe2c65e" +source = "git+https://github.com/aptos-labs/aptos-core.git?rev=1d8460a995503574ec4e9699d3442d0150d7f3b9#1d8460a995503574ec4e9699d3442d0150d7f3b9" dependencies = [ "pbjson", "prost 0.13.4", @@ -13695,14 +13695,14 @@ dependencies = [ [[package]] name = "processor" version = "1.0.0" -source = "git+https://github.com/aptos-labs/aptos-indexer-processors.git?rev=3064a075e1abc06c60363f3f2551cc41f5c091de#3064a075e1abc06c60363f3f2551cc41f5c091de" +source = "git+https://github.com/aptos-labs/aptos-indexer-processors.git?rev=bf4dd89677e6929ef21f898a7a4176514e606ebd#bf4dd89677e6929ef21f898a7a4176514e606ebd" dependencies = [ "ahash 0.8.11", "allocative", "allocative_derive", "anyhow", "aptos-moving-average", - "aptos-protos 1.3.1 (git+https://github.com/aptos-labs/aptos-core.git?rev=6116af69aa173ca49e1761daabd6fe103fe2c65e)", + "aptos-protos 1.3.1 (git+https://github.com/aptos-labs/aptos-core.git?rev=1d8460a995503574ec4e9699d3442d0150d7f3b9)", "async-trait", "bcs 0.1.4", "bigdecimal", @@ -15489,7 +15489,7 @@ dependencies = [ [[package]] name = "server-framework" version = "1.0.0" -source = "git+https://github.com/aptos-labs/aptos-indexer-processors.git?rev=3064a075e1abc06c60363f3f2551cc41f5c091de#3064a075e1abc06c60363f3f2551cc41f5c091de" +source = "git+https://github.com/aptos-labs/aptos-indexer-processors.git?rev=bf4dd89677e6929ef21f898a7a4176514e606ebd#bf4dd89677e6929ef21f898a7a4176514e606ebd" dependencies = [ "anyhow", "aptos-system-utils 0.1.0 (git+https://github.com/aptos-labs/aptos-core.git?rev=202bdccff2b2d333a385ae86a4fcf23e89da9f62)", diff --git a/Cargo.toml b/Cargo.toml index d70df5de06172..de8c6d41264e6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -498,7 +498,7 @@ ark-groth16 = "0.4.0" ark-relations = "0.4.0" ark-serialize = "0.4.0" ark-std = { version = "0.4.0", features = ["getrandom"] } -aptos-moving-average = { git = "https://github.com/aptos-labs/aptos-indexer-processors.git", rev = "3064a075e1abc06c60363f3f2551cc41f5c091de" } +aptos-moving-average = { git = "https://github.com/aptos-labs/aptos-indexer-processors.git", rev = "bf4dd89677e6929ef21f898a7a4176514e606ebd" } assert_approx_eq = "1.1.0" async-channel = "1.7.1" async-mutex = "1.4.0" @@ -695,7 +695,7 @@ pretty = "0.10.0" pretty_assertions = "1.2.1" # We set default-features to false so we don't onboard the libpq dep. See more here: # https://github.com/aptos-labs/aptos-core/pull/12568 -processor = { git = "https://github.com/aptos-labs/aptos-indexer-processors.git", rev = "3064a075e1abc06c60363f3f2551cc41f5c091de", default-features = false } +processor = { git = "https://github.com/aptos-labs/aptos-indexer-processors.git", rev = "bf4dd89677e6929ef21f898a7a4176514e606ebd", default-features = false } procfs = "0.14.1" proc-macro2 = "1.0.38" project-root = "0.2.2" @@ -758,7 +758,7 @@ serde-generate = { git = "https://github.com/aptos-labs/serde-reflection", rev = serde-reflection = { git = "https://github.com/aptos-labs/serde-reflection", rev = "73b6bbf748334b71ff6d7d09d06a29e3062ca075" } serde_with = "3.4.0" serde_yaml = "0.8.24" -server-framework = { git = "https://github.com/aptos-labs/aptos-indexer-processors.git", rev = "3064a075e1abc06c60363f3f2551cc41f5c091de" } +server-framework = { git = "https://github.com/aptos-labs/aptos-indexer-processors.git", rev = "bf4dd89677e6929ef21f898a7a4176514e606ebd" } set_env = "1.3.4" shadow-rs = "0.16.2" simplelog = "0.9.0" From 991051a932ee351597400409f5a489fa13100aea Mon Sep 17 00:00:00 2001 From: Greg Nazario Date: Mon, 27 Jan 2025 11:05:53 -0500 Subject: [PATCH 06/30] [.github] Use a combined rust setup instead of two actions --- .github/actions/rust-setup-mac/action.yaml | 44 ---------------------- .github/actions/rust-setup/action.yaml | 16 +++++++- .github/workflows/cli-release.yaml | 8 +++- 3 files changed, 20 insertions(+), 48 deletions(-) delete mode 100644 .github/actions/rust-setup-mac/action.yaml diff --git a/.github/actions/rust-setup-mac/action.yaml b/.github/actions/rust-setup-mac/action.yaml deleted file mode 100644 index 99bdd4b2c9bf5..0000000000000 --- a/.github/actions/rust-setup-mac/action.yaml +++ /dev/null @@ -1,44 +0,0 @@ -name: "Rust Setup" -description: "Setup the rust toolchain and cache" -inputs: - GIT_CREDENTIALS: - description: "Optional credentials to pass to git" - required: false - ADDITIONAL_KEY: - description: "An optional additional key to pass to rust-cache" - required: false - default: "" - -runs: - using: composite - steps: - #- run: sudo apt-get update && sudo apt-get install build-essential ca-certificates clang curl git libpq-dev libssl-dev pkg-config lsof lld --no-install-recommends --assume-yes - # shell: bash - - - uses: dsherret/rust-toolchain-file@v1 - - # rust-cache action will cache ~/.cargo and ./target - # https://github.com/Swatinem/rust-cache#cache-details - - name: Run cargo cache - uses: Swatinem/rust-cache@23bce251a8cd2ffc3c1075eaa2367cf899916d84 # pin@v2.7.3 - with: - key: ${{ inputs.ADDITIONAL_KEY }} - - - name: install protoc and related tools - shell: bash - run: scripts/dev_setup.sh -b -t -k - - - run: echo "/home/runner/.cargo/bin" | tee -a $GITHUB_PATH - shell: bash - - - name: Setup git credentials - if: inputs.GIT_CREDENTIALS != '' - shell: bash - run: | - git config --global credential.helper store - echo "${{ inputs.GIT_CREDENTIALS }}" > ~/.git-credentials - - # Display the rust toolchain version being installed - - name: Setup rust toolchain - shell: bash - run: rustup show diff --git a/.github/actions/rust-setup/action.yaml b/.github/actions/rust-setup/action.yaml index acc81bf4bf0be..9d4b58cd6d6a7 100644 --- a/.github/actions/rust-setup/action.yaml +++ b/.github/actions/rust-setup/action.yaml @@ -8,11 +8,17 @@ inputs: description: "An optional additional key to pass to rust-cache" required: false default: "" + macos: + description: "If the machine is using macOS" + required: false + default: false runs: using: composite steps: - - run: sudo apt-get update && sudo apt-get install build-essential ca-certificates clang curl git libpq-dev libssl-dev pkg-config lsof lld --no-install-recommends --assume-yes + - if: ${{inputs.macos != 'true'}} + name: Linux - Setup dependencies + run: sudo apt-get update && sudo apt-get install build-essential ca-certificates clang curl git libpq-dev libssl-dev pkg-config lsof lld --no-install-recommends --assume-yes shell: bash - uses: dsherret/rust-toolchain-file@v1 @@ -24,10 +30,16 @@ runs: with: key: ${{ inputs.ADDITIONAL_KEY }} - - name: install protoc and related tools + - if: ${{inputs.macos != 'true'}} + name: Linux - install protoc and related tools shell: bash run: scripts/dev_setup.sh -b -r -y -P -J -t + - if: ${{inputs.macos == 'true'}} + name: Mac - install protoc and related tools + shell: bash + run: scripts/dev_setup.sh -b -t -k + - run: echo "/home/runner/.cargo/bin" | tee -a $GITHUB_PATH shell: bash diff --git a/.github/workflows/cli-release.yaml b/.github/workflows/cli-release.yaml index 3c151b3e4b3e9..05829fd043d6a 100644 --- a/.github/workflows/cli-release.yaml +++ b/.github/workflows/cli-release.yaml @@ -94,7 +94,9 @@ jobs: - uses: actions/checkout@v4 with: ref: ${{ github.event.inputs.source_git_ref_override }} - - uses: gregnazario/aptos-core/.github/actions/rust-setup-mac@main + - uses: aptos-labs/aptos-core/.github/actions/rust-setup@main + with: + macos: true - name: Build CLI run: scripts/cli/build_cli_release.sh "macOS" "${{inputs.release_version}}" - name: Upload Binary @@ -110,7 +112,9 @@ jobs: - uses: actions/checkout@v4 with: ref: ${{ github.event.inputs.source_git_ref_override }} - - uses: gregnazario/aptos-core/.github/actions/rust-setup-mac@main + - uses: aptos-labs/aptos-core/.github/actions/rust-setup@main + with: + macos: true - name: Build CLI run: scripts/cli/build_cli_release.sh "macOS" "${{inputs.release_version}}" - name: Upload Binary From 703ecfb9d89b318997c9fa05bf2c4070bfeb48d4 Mon Sep 17 00:00:00 2001 From: Greg Nazario Date: Mon, 27 Jan 2025 10:47:35 -0500 Subject: [PATCH 07/30] [prover] Fix warnings for windows --- crates/aptos/src/update/prover_dependencies.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/crates/aptos/src/update/prover_dependencies.rs b/crates/aptos/src/update/prover_dependencies.rs index 7c3e24c9d72d0..5ee0dd67c444a 100644 --- a/crates/aptos/src/update/prover_dependencies.rs +++ b/crates/aptos/src/update/prover_dependencies.rs @@ -43,9 +43,12 @@ const Z3_EXE: &str = "z3.exe"; #[cfg(not(target_os = "windows"))] const Z3_EXE: &str = "z3"; +#[cfg(not(target_os = "windows"))] const CVC5_BINARY_NAME: &str = "cvc5"; +#[cfg(not(target_os = "windows"))] const TARGET_CVC5_VERSION: &str = "0.0.3"; +#[cfg(not(target_os = "windows"))] const CVC5_EXE_ENV: &str = "CVC5_EXE"; #[cfg(target_os = "windows")] const CVC5_EXE: &str = "cvc5.exe"; From 162f7bedf821fffd87c6b5f758a39a5863f18fb5 Mon Sep 17 00:00:00 2001 From: larry-aptos <112209412+larry-aptos@users.noreply.github.com> Date: Mon, 27 Jan 2025 21:58:12 -0800 Subject: [PATCH 08/30] Bump CLI to 6.0.3 to include new processors. (#15830) --- Cargo.lock | 2 +- crates/aptos/CHANGELOG.md | 4 ++++ crates/aptos/Cargo.toml | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d6f1e9051f822..7b76ccacbd579 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -290,7 +290,7 @@ dependencies = [ [[package]] name = "aptos" -version = "6.0.2" +version = "6.0.3" dependencies = [ "anyhow", "aptos-api-types", diff --git a/crates/aptos/CHANGELOG.md b/crates/aptos/CHANGELOG.md index 0e623a19405e0..4738d2b5b04d6 100644 --- a/crates/aptos/CHANGELOG.md +++ b/crates/aptos/CHANGELOG.md @@ -4,6 +4,10 @@ All notable changes to the Aptos CLI will be captured in this file. This project # Unreleased + +## [6.0.3] - 2025/01/27 +- Update the processors used by localnet to 1.26. + ## [6.0.2] - 2025/01/24 - Fix `aptos workspace run` so it does not panic when writing to closed stdout/stderr, allowing it to finish its graceful shutdown sequence when used as a child process. diff --git a/crates/aptos/Cargo.toml b/crates/aptos/Cargo.toml index 5c2ec8715558f..0542954715a88 100644 --- a/crates/aptos/Cargo.toml +++ b/crates/aptos/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "aptos" description = "Aptos tool for management of nodes and interacting with the blockchain" -version = "6.0.2" +version = "6.0.3" # Workspace inherited keys authors = { workspace = true } From 39ef093b3fccb12dd069a9bdc4745e4bb37cefc9 Mon Sep 17 00:00:00 2001 From: Teng Zhang Date: Tue, 28 Jan 2025 19:24:55 +0000 Subject: [PATCH 09/30] [spec] use opaque in the spec of check_permission_exists (#15829) * use opaque in spec of permissioned-signer * add todo --- .../doc/permissioned_signer.md | 23 +++------- .../sources/permissioned_signer.spec.move | 43 +++++++++++-------- 2 files changed, 30 insertions(+), 36 deletions(-) diff --git a/aptos-move/framework/aptos-framework/doc/permissioned_signer.md b/aptos-move/framework/aptos-framework/doc/permissioned_signer.md index dc2b749182e19..309dcb57f1fb4 100644 --- a/aptos-move/framework/aptos-framework/doc/permissioned_signer.md +++ b/aptos-move/framework/aptos-framework/doc/permissioned_signer.md @@ -1808,6 +1808,9 @@ signer::address_of(master) == signer::address_of(signer_from_permissioned_handle
pragma verify = false;
+pragma opaque;
+modifies global<PermissionStorage>(spec_permission_address(s));
+ensures [abstract] result == spec_check_permission_exists(s, perm);
 
@@ -1816,22 +1819,7 @@ signer::address_of(master) == signer::address_of(signer_from_permissioned_handle -
fun spec_check_permission_exists<PermKey: copy + drop + store>(s: signer, perm: PermKey): bool {
-   use aptos_std::type_info;
-   use std::bcs;
-   let addr = spec_permission_address(s);
-   let key = Any {
-       type_name: type_info::type_name<PermKey>(),
-       data: bcs::serialize(perm)
-   };
-   if (!spec_is_permissioned_signer(s)) { true }
-   else if (!exists<PermissionStorage>(addr)) { false }
-   else {
-       // ordered_map::spec_contains_key(global<PermissionStorage>(addr).perms, key)
-       // FIXME: ordered map spec doesn't exist yet.
-       true
-   }
-}
+
fun spec_check_permission_exists<PermKey: copy + drop + store>(s: signer, perm: PermKey): bool;
 
@@ -1847,7 +1835,8 @@ signer::address_of(master) == signer::address_of(signer_from_permissioned_handle -
let permissioned_signer_addr = spec_permission_address(s);
+
modifies global<PermissionStorage>(spec_permission_address(s));
+let permissioned_signer_addr = spec_permission_address(s);
 ensures !spec_is_permissioned_signer(s) ==> result == true;
 ensures (
     spec_is_permissioned_signer(s)
diff --git a/aptos-move/framework/aptos-framework/sources/permissioned_signer.spec.move b/aptos-move/framework/aptos-framework/sources/permissioned_signer.spec.move
index 9e94c8952bccc..f09c836c66774 100644
--- a/aptos-move/framework/aptos-framework/sources/permissioned_signer.spec.move
+++ b/aptos-move/framework/aptos-framework/sources/permissioned_signer.spec.move
@@ -113,31 +113,36 @@ spec aptos_framework::permissioned_signer {
 
     spec check_permission_exists(s: &signer, perm: PermKey): bool {
         pragma verify = false;
-        // pragma opaque;
-        // aborts_if false;
-        // ensures [abstract] result == spec_check_permission_exists(s, perm);
+        pragma opaque;
+        modifies global(spec_permission_address(s));
+        ensures [abstract] result == spec_check_permission_exists(s, perm);
     }
 
-    spec fun spec_check_permission_exists(s: signer, perm: PermKey): bool {
-        use aptos_std::type_info;
-        use std::bcs;
-        let addr = spec_permission_address(s);
-        let key = Any {
-            type_name: type_info::type_name(),
-            data: bcs::serialize(perm)
-        };
-        if (!spec_is_permissioned_signer(s)) { true }
-        else if (!exists(addr)) { false }
-        else {
-            // ordered_map::spec_contains_key(global(addr).perms, key)
-            // FIXME: ordered map spec doesn't exist yet.
-            true
-        }
-    }
+    spec fun spec_check_permission_exists(s: signer, perm: PermKey): bool;
+
+
+    // TODO(teng): add this back later
+    // spec fun spec_check_permission_exists(s: signer, perm: PermKey): bool {
+    //     use aptos_std::type_info;
+    //     use std::bcs;
+    //     let addr = spec_permission_address(s);
+    //     let key = Any {
+    //         type_name: type_info::type_name(),
+    //         data: bcs::serialize(perm)
+    //     };
+    //     if (!spec_is_permissioned_signer(s)) { true }
+    //     else if (!exists(addr)) { false }
+    //     else {
+    //         // ordered_map::spec_contains_key(global(addr).perms, key)
+    //         // FIXME: ordered map spec doesn't exist yet.
+    //         true
+    //     }
+    // }
 
     spec check_permission_capacity_above(
         s: &signer, threshold: u256, perm: PermKey
     ): bool {
+        modifies global(spec_permission_address(s));
         let permissioned_signer_addr = spec_permission_address(s);
         ensures !spec_is_permissioned_signer(s) ==> result == true;
         ensures (

From cbb92f049aff4a1dbad8be77f23d0541ddbad32b Mon Sep 17 00:00:00 2001
From: Perry Randall 
Date: Thu, 16 Jan 2025 13:19:12 -1000
Subject: [PATCH 10/30] [devtools] Enable the framework upgrade test again

Previously we disabled this because it was broken on PR

Now that it is fixed on PR enable again to make sure it doesnt break!

Test Plan: add label, should be triggered on PR
---
 devtools/aptos-cargo-cli/src/lib.rs | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/devtools/aptos-cargo-cli/src/lib.rs b/devtools/aptos-cargo-cli/src/lib.rs
index 0ec428e0a8483..27854ddb91232 100644
--- a/devtools/aptos-cargo-cli/src/lib.rs
+++ b/devtools/aptos-cargo-cli/src/lib.rs
@@ -272,17 +272,13 @@ impl AptosCargoCommand {
 
                 // Determine if any relevant files or packages were changed
                 #[allow(unused_assignments)]
-                let mut relevant_changes_detected = detect_relevant_changes(
+                let relevant_changes_detected = detect_relevant_changes(
                     RELEVANT_FILE_PATHS_FOR_FRAMEWORK_UPGRADE_TESTS.to_vec(),
                     RELEVANT_PACKAGES_FOR_FRAMEWORK_UPGRADE_TESTS.to_vec(),
                     changed_files,
                     affected_package_paths,
                 );
 
-                // TODO: remove this! This is a temporary fix to disable
-                // the framework upgrade test while we debug the failures.
-                relevant_changes_detected = false;
-
                 // Output if relevant changes were detected that require the framework upgrade
                 // test. This will be consumed by Github Actions and used to run the test.
                 println!(

From 4e1eb2d8c4262b29aff56c8cae37e18f9bf04cb2 Mon Sep 17 00:00:00 2001
From: Andrew Hariri 
Date: Tue, 28 Jan 2025 13:39:42 -0800
Subject: [PATCH 11/30] [execution-pool] BlockRetrievalRequest struct -> enum
 (#15812)

* [execution-pool] BlockRetrievalRequest deprecation

* [execution-pool] BlockRetrievalRequest consensus.yaml

* [exec-pool] BlockRetrievalRequest address Balaji comments

* [exec-pool] Add a TODO for process_block_retrieval_v2
---
 .../consensus-types/src/block_retrieval.rs    | 67 +++++++++++++-
 consensus/src/block_storage/sync_manager.rs   | 27 +++++-
 consensus/src/epoch_manager.rs                | 88 +++++++++++++++----
 consensus/src/network.rs                      | 44 +++++++---
 consensus/src/network_interface.rs            | 14 ++-
 consensus/src/network_tests.rs                | 11 +--
 consensus/src/round_manager_test.rs           | 59 ++++++++++---
 testsuite/generate-format/src/consensus.rs    |  1 +
 .../tests/staged/consensus.yaml               | 24 ++++-
 9 files changed, 279 insertions(+), 56 deletions(-)

diff --git a/consensus/consensus-types/src/block_retrieval.rs b/consensus/consensus-types/src/block_retrieval.rs
index f773a92d9e9a0..bbde941976099 100644
--- a/consensus/consensus-types/src/block_retrieval.rs
+++ b/consensus/consensus-types/src/block_retrieval.rs
@@ -15,15 +15,31 @@ pub const NUM_PEERS_PER_RETRY: usize = 3;
 pub const RETRY_INTERVAL_MSEC: u64 = 500;
 pub const RPC_TIMEOUT_MSEC: u64 = 5000;
 
+#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq)]
+pub enum BlockRetrievalRequest {
+    V1(BlockRetrievalRequestV1),
+    V2(BlockRetrievalRequestV2),
+}
+
 /// RPC to get a chain of block of the given length starting from the given block id.
+/// TODO @bchocho @hariria fix comment after all nodes upgrade to release with enum BlockRetrievalRequest (not struct)
+///
+/// NOTE:
+/// 1. The [`BlockRetrievalRequest`](BlockRetrievalRequest) struct was renamed to
+///    [`BlockRetrievalRequestV1`](BlockRetrievalRequestV1) and deprecated
+/// 2. [`BlockRetrievalRequest`](BlockRetrievalRequest) enum was introduced to replace the old
+///    [`BlockRetrievalRequest`](BlockRetrievalRequest) struct
+///
+/// Please use the [`BlockRetrievalRequest`](BlockRetrievalRequest) enum going forward once this enum
+/// is introduced in the next release
 #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq)]
-pub struct BlockRetrievalRequest {
+pub struct BlockRetrievalRequestV1 {
     block_id: HashValue,
     num_blocks: u64,
     target_block_id: Option,
 }
 
-impl BlockRetrievalRequest {
+impl BlockRetrievalRequestV1 {
     pub fn new(block_id: HashValue, num_blocks: u64) -> Self {
         Self {
             block_id,
@@ -61,7 +77,7 @@ impl BlockRetrievalRequest {
     }
 }
 
-impl fmt::Display for BlockRetrievalRequest {
+impl fmt::Display for BlockRetrievalRequestV1 {
     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
         write!(
             f,
@@ -71,6 +87,48 @@ impl fmt::Display for BlockRetrievalRequest {
     }
 }
 
+/// RPC to get a chain of block of the given length starting from the given block id.
+#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq)]
+pub struct BlockRetrievalRequestV2 {
+    block_id: HashValue,
+    num_blocks: u64,
+    target_round: u64,
+}
+
+impl BlockRetrievalRequestV2 {
+    pub fn new(block_id: HashValue, num_blocks: u64, target_round: u64) -> Self {
+        BlockRetrievalRequestV2 {
+            block_id,
+            num_blocks,
+            target_round,
+        }
+    }
+
+    pub fn new_with_target_round(block_id: HashValue, num_blocks: u64, target_round: u64) -> Self {
+        BlockRetrievalRequestV2 {
+            block_id,
+            num_blocks,
+            target_round,
+        }
+    }
+
+    pub fn block_id(&self) -> HashValue {
+        self.block_id
+    }
+
+    pub fn num_blocks(&self) -> u64 {
+        self.num_blocks
+    }
+
+    pub fn target_round(&self) -> u64 {
+        self.target_round
+    }
+
+    pub fn match_target_round(&self, round: u64) -> bool {
+        round <= self.target_round()
+    }
+}
+
 #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq)]
 pub enum BlockRetrievalStatus {
     // Successfully fill in the request.
@@ -103,9 +161,10 @@ impl BlockRetrievalResponse {
         &self.blocks
     }
 
+    /// TODO @bchocho @hariria change `retrieval_request` after all nodes upgrade to release with enum BlockRetrievalRequest (not struct)
     pub fn verify(
         &self,
-        retrieval_request: BlockRetrievalRequest,
+        retrieval_request: BlockRetrievalRequestV1,
         sig_verifier: &ValidatorVerifier,
     ) -> anyhow::Result<()> {
         ensure!(
diff --git a/consensus/src/block_storage/sync_manager.rs b/consensus/src/block_storage/sync_manager.rs
index 07b20edf8a922..1edbe1e91a953 100644
--- a/consensus/src/block_storage/sync_manager.rs
+++ b/consensus/src/block_storage/sync_manager.rs
@@ -17,7 +17,9 @@ use crate::{
     epoch_manager::LivenessStorageData,
     logging::{LogEvent, LogSchema},
     monitor,
-    network::{IncomingBlockRetrievalRequest, NetworkSender},
+    network::{
+        DeprecatedIncomingBlockRetrievalRequest, IncomingBlockRetrievalRequest, NetworkSender,
+    },
     network_interface::ConsensusMsg,
     payload_manager::TPayloadManager,
     persistent_liveness_storage::{LedgerRecoveryData, PersistentLivenessStorage, RecoveryData},
@@ -27,7 +29,7 @@ use anyhow::{anyhow, bail, Context};
 use aptos_consensus_types::{
     block::Block,
     block_retrieval::{
-        BlockRetrievalRequest, BlockRetrievalResponse, BlockRetrievalStatus, NUM_PEERS_PER_RETRY,
+        BlockRetrievalRequestV1, BlockRetrievalResponse, BlockRetrievalStatus, NUM_PEERS_PER_RETRY,
         NUM_RETRIES, RETRY_INTERVAL_MSEC, RPC_TIMEOUT_MSEC,
     },
     common::Author,
@@ -470,7 +472,7 @@ impl BlockStore {
     /// future possible changes.
     pub async fn process_block_retrieval(
         &self,
-        request: IncomingBlockRetrievalRequest,
+        request: DeprecatedIncomingBlockRetrievalRequest,
     ) -> anyhow::Result<()> {
         fail_point!("consensus::process_block_retrieval", |_| {
             Err(anyhow::anyhow!("Injected error in process_block_retrieval"))
@@ -505,6 +507,23 @@ impl BlockStore {
             .send(Ok(response_bytes.into()))
             .map_err(|_| anyhow::anyhow!("Failed to send block retrieval response"))
     }
+
+    /// TODO @bchocho @hariria to implement in upcoming PR
+    /// Retrieve a n chained blocks from the block store starting from
+    /// an initial parent id, returning with  anyhow::Result<()> {
+        bail!(
+            "Unexpected request {:?} for process_block_retrieval_v2",
+            request.req
+        )
+    }
 }
 
 /// BlockRetriever is used internally to retrieve blocks
@@ -576,7 +595,7 @@ impl BlockRetriever {
                     .boxed(),
                 )
             }
-            let request = BlockRetrievalRequest::new_with_target_block_id(
+            let request = BlockRetrievalRequestV1::new_with_target_block_id(
                 block_id,
                 retrieve_batch_size,
                 target_block_id,
diff --git a/consensus/src/epoch_manager.rs b/consensus/src/epoch_manager.rs
index 14ed035334525..fd7bb6ba40404 100644
--- a/consensus/src/epoch_manager.rs
+++ b/consensus/src/epoch_manager.rs
@@ -31,8 +31,9 @@ use crate::{
     metrics_safety_rules::MetricsSafetyRules,
     monitor,
     network::{
-        IncomingBatchRetrievalRequest, IncomingBlockRetrievalRequest, IncomingDAGRequest,
-        IncomingRandGenRequest, IncomingRpcRequest, NetworkReceivers, NetworkSender,
+        DeprecatedIncomingBlockRetrievalRequest, IncomingBatchRetrievalRequest,
+        IncomingBlockRetrievalRequest, IncomingDAGRequest, IncomingRandGenRequest,
+        IncomingRpcRequest, NetworkReceivers, NetworkSender,
     },
     network_interface::{ConsensusMsg, ConsensusNetworkClient},
     payload_client::{
@@ -59,6 +60,7 @@ use aptos_bounded_executor::BoundedExecutor;
 use aptos_channels::{aptos_channel, message_queues::QueueStyle};
 use aptos_config::config::{ConsensusConfig, DagConsensusConfig, ExecutionConfig, NodeConfig};
 use aptos_consensus_types::{
+    block_retrieval::BlockRetrievalRequest,
     common::{Author, Round},
     epoch_retrieval::EpochRetrievalRequest,
     proof_of_store::ProofCache,
@@ -569,18 +571,50 @@ impl EpochManager

{ let task = async move { info!(epoch = epoch, "Block retrieval task starts"); while let Some(request) = request_rx.next().await { - if request.req.num_blocks() > max_blocks_allowed { - warn!( - "Ignore block retrieval with too many blocks: {}", - request.req.num_blocks() - ); - continue; - } - if let Err(e) = monitor!( - "process_block_retrieval", - block_store.process_block_retrieval(request).await - ) { - warn!(epoch = epoch, error = ?e, kind = error_kind(&e)); + match request.req { + // TODO @bchocho @hariria deprecate once BlockRetrievalRequest enum release is complete + BlockRetrievalRequest::V1(v1) => { + if v1.num_blocks() > max_blocks_allowed { + warn!( + "Ignore block retrieval with too many blocks: {}", + v1.num_blocks() + ); + continue; + } + if let Err(e) = monitor!( + "process_block_retrieval", + block_store + .process_block_retrieval(DeprecatedIncomingBlockRetrievalRequest { + req: v1, + protocol: request.protocol, + response_sender: request.response_sender, + }) + .await + ) { + warn!(epoch = epoch, error = ?e, kind = error_kind(&e)); + } + }, + BlockRetrievalRequest::V2(v2) => { + if v2.num_blocks() > max_blocks_allowed { + warn!( + "Ignore block retrieval with too many blocks: {}", + v2.num_blocks() + ); + continue; + } + if let Err(e) = monitor!( + "process_block_retrieval_v2", + block_store + .process_block_retrieval_v2(IncomingBlockRetrievalRequest { + req: BlockRetrievalRequest::V2(v2), + protocol: request.protocol, + response_sender: request.response_sender, + }) + .await + ) { + warn!(epoch = epoch, error = ?e, kind = error_kind(&e)); + } + }, } } info!(epoch = epoch, "Block retrieval task stops"); @@ -1666,6 +1700,7 @@ impl EpochManager

{ } } + /// TODO: @bchocho @hariria can change after all nodes upgrade to release with enum BlockRetrievalRequest (not struct) fn process_rpc_request( &mut self, peer_id: Author, @@ -1684,15 +1719,26 @@ impl EpochManager

{ return Ok(()); }, None => { - ensure!(matches!(request, IncomingRpcRequest::BlockRetrieval(_))); + // TODO: @bchocho @hariria can change after all nodes upgrade to release with enum BlockRetrievalRequest (not struct) + ensure!(matches!( + request, + IncomingRpcRequest::DeprecatedBlockRetrieval(_) + | IncomingRpcRequest::BlockRetrieval(_) + )); }, _ => {}, } match request { - IncomingRpcRequest::BlockRetrieval(request) => { + // TODO @bchocho @hariria can remove after all nodes upgrade to release with enum BlockRetrievalRequest (not struct) + IncomingRpcRequest::DeprecatedBlockRetrieval(request) => { if let Some(tx) = &self.block_retrieval_tx { - tx.push(peer_id, request) + let incoming_block_retrieval_request = IncomingBlockRetrievalRequest { + req: BlockRetrievalRequest::V1(request.req), + protocol: request.protocol, + response_sender: request.response_sender, + }; + tx.push(peer_id, incoming_block_retrieval_request) } else { error!("Round manager not started"); Ok(()) @@ -1722,6 +1768,14 @@ impl EpochManager

{ bail!("Rand manager not started"); } }, + IncomingRpcRequest::BlockRetrieval(request) => { + if let Some(tx) = &self.block_retrieval_tx { + tx.push(peer_id, request) + } else { + error!("Round manager not started"); + Ok(()) + } + }, } } diff --git a/consensus/src/network.rs b/consensus/src/network.rs index 99b437f69c957..2d91327e84856 100644 --- a/consensus/src/network.rs +++ b/consensus/src/network.rs @@ -23,7 +23,7 @@ use anyhow::{anyhow, bail, ensure}; use aptos_channels::{self, aptos_channel, message_queues::QueueStyle}; use aptos_config::network_id::NetworkId; use aptos_consensus_types::{ - block_retrieval::{BlockRetrievalRequest, BlockRetrievalResponse}, + block_retrieval::{BlockRetrievalRequest, BlockRetrievalRequestV1, BlockRetrievalResponse}, common::Author, order_vote_msg::OrderVoteMsg, pipeline::{commit_decision::CommitDecision, commit_vote::CommitVote}, @@ -92,6 +92,22 @@ impl RpcResponder { } } +/// NOTE: +/// 1. [`IncomingBlockRetrievalRequest`](DeprecatedIncomingBlockRetrievalRequest) struct was +/// renamed to `DeprecatedIncomingBlockRetrievalRequest`. +/// 2. `DeprecatedIncomingBlockRetrievalRequest` is being deprecated in favor of a new [`IncomingBlockRetrievalRequest`](IncomingBlockRetrievalRequest) +/// struct which supports the new [`BlockRetrievalRequest`](BlockRetrievalRequest) enum for the `req` field +/// +/// Going forward, please use [`IncomingBlockRetrievalRequest`](IncomingBlockRetrievalRequest) +/// For more details, see comments above [`BlockRetrievalRequestV1`](BlockRetrievalRequestV1) +/// TODO @bchocho @hariria can remove after all nodes upgrade to release with enum BlockRetrievalRequest (not struct) +#[derive(Debug)] +pub struct DeprecatedIncomingBlockRetrievalRequest { + pub req: BlockRetrievalRequestV1, + pub protocol: ProtocolId, + pub response_sender: oneshot::Sender>, +} + /// The block retrieval request is used internally for implementing RPC: the callback is executed /// for carrying the response #[derive(Debug)] @@ -132,20 +148,25 @@ pub struct IncomingRandGenRequest { #[derive(Debug)] pub enum IncomingRpcRequest { - BlockRetrieval(IncomingBlockRetrievalRequest), + /// NOTE: This is being phased out in two releases to accommodate `IncomingBlockRetrievalRequestV2` + /// TODO @bchocho @hariria can remove after all nodes upgrade to release with enum BlockRetrievalRequest (not struct) + DeprecatedBlockRetrieval(DeprecatedIncomingBlockRetrievalRequest), BatchRetrieval(IncomingBatchRetrievalRequest), DAGRequest(IncomingDAGRequest), CommitRequest(IncomingCommitRequest), RandGenRequest(IncomingRandGenRequest), + BlockRetrieval(IncomingBlockRetrievalRequest), } impl IncomingRpcRequest { + /// TODO @bchocho @hariria can remove after all nodes upgrade to release with enum BlockRetrievalRequest (not struct) pub fn epoch(&self) -> Option { match self { IncomingRpcRequest::BatchRetrieval(req) => Some(req.req.epoch()), IncomingRpcRequest::DAGRequest(req) => Some(req.req.epoch()), IncomingRpcRequest::RandGenRequest(req) => Some(req.req.epoch()), IncomingRpcRequest::CommitRequest(req) => req.req.epoch(), + IncomingRpcRequest::DeprecatedBlockRetrieval(_) => None, IncomingRpcRequest::BlockRetrieval(_) => None, } } @@ -223,7 +244,7 @@ impl NetworkSender { /// returns a future that is fulfilled with BlockRetrievalResponse. pub async fn request_block( &self, - retrieval_request: BlockRetrievalRequest, + retrieval_request: BlockRetrievalRequestV1, from: Author, timeout: Duration, ) -> anyhow::Result { @@ -235,7 +256,8 @@ impl NetworkSender { }); ensure!(from != self.author, "Retrieve block from self"); - let msg = ConsensusMsg::BlockRetrievalRequest(Box::new(retrieval_request.clone())); + let msg = + ConsensusMsg::DeprecatedBlockRetrievalRequest(Box::new(retrieval_request.clone())); counters::CONSENSUS_SENT_MSGS .with_label_values(&[msg.name()]) .inc(); @@ -805,18 +827,20 @@ impl NetworkTask { .with_label_values(&[msg.name()]) .inc(); let req = match msg { - ConsensusMsg::BlockRetrievalRequest(request) => { + ConsensusMsg::DeprecatedBlockRetrievalRequest(request) => { debug!( remote_peer = peer_id, event = LogEvent::ReceiveBlockRetrieval, "{}", request ); - IncomingRpcRequest::BlockRetrieval(IncomingBlockRetrievalRequest { - req: *request, - protocol, - response_sender: callback, - }) + IncomingRpcRequest::DeprecatedBlockRetrieval( + DeprecatedIncomingBlockRetrievalRequest { + req: *request, + protocol, + response_sender: callback, + }, + ) }, ConsensusMsg::BatchRequestMsg(request) => { debug!( diff --git a/consensus/src/network_interface.rs b/consensus/src/network_interface.rs index 297b66ea7cfaf..e7d351895bd13 100644 --- a/consensus/src/network_interface.rs +++ b/consensus/src/network_interface.rs @@ -12,7 +12,7 @@ use crate::{ }; use aptos_config::network_id::{NetworkId, PeerNetworkId}; use aptos_consensus_types::{ - block_retrieval::{BlockRetrievalRequest, BlockRetrievalResponse}, + block_retrieval::{BlockRetrievalRequest, BlockRetrievalRequestV1, BlockRetrievalResponse}, epoch_retrieval::EpochRetrievalRequest, order_vote_msg::OrderVoteMsg, pipeline::{commit_decision::CommitDecision, commit_vote::CommitVote}, @@ -35,8 +35,11 @@ use std::{collections::HashMap, time::Duration}; /// Network type for consensus #[derive(Clone, Debug, Deserialize, Serialize)] pub enum ConsensusMsg { + /// DEPRECATED: Once this is introduced in the next release, please use + /// [`ConsensusMsg::BlockRetrievalRequest`](ConsensusMsg::BlockRetrievalRequest) going forward + /// This variant was renamed from `BlockRetrievalRequest` to `DeprecatedBlockRetrievalRequest` /// RPC to get a chain of block of the given length starting from the given block id. - BlockRetrievalRequest(Box), + DeprecatedBlockRetrievalRequest(Box), /// Carries the returned blocks and the retrieval status. BlockRetrievalResponse(Box), /// Request to get a EpochChangeProof from current_epoch to target_epoch @@ -83,15 +86,17 @@ pub enum ConsensusMsg { OrderVoteMsg(Box), /// RoundTimeoutMsg is broadcasted by a validator once it decides to timeout the current round. RoundTimeoutMsg(Box), + /// RPC to get a chain of block of the given length starting from the given block id, using epoch and round. + BlockRetrievalRequest(Box), } /// Network type for consensus impl ConsensusMsg { /// ConsensusMsg type in string - /// + /// TODO @bchocho @hariria can remove after all nodes upgrade to release with enum BlockRetrievalRequest (not struct) pub fn name(&self) -> &str { match self { - ConsensusMsg::BlockRetrievalRequest(_) => "BlockRetrievalRequest", + ConsensusMsg::DeprecatedBlockRetrievalRequest(_) => "DeprecatedBlockRetrievalRequest", ConsensusMsg::BlockRetrievalResponse(_) => "BlockRetrievalResponse", ConsensusMsg::EpochRetrievalRequest(_) => "EpochRetrievalRequest", ConsensusMsg::ProposalMsg(_) => "ProposalMsg", @@ -111,6 +116,7 @@ impl ConsensusMsg { ConsensusMsg::RandGenMessage(_) => "RandGenMessage", ConsensusMsg::BatchResponseV2(_) => "BatchResponseV2", ConsensusMsg::RoundTimeoutMsg(_) => "RoundTimeoutV2", + ConsensusMsg::BlockRetrievalRequest(_) => "BlockRetrievalRequest", } } } diff --git a/consensus/src/network_tests.rs b/consensus/src/network_tests.rs index 10d33f3b87a63..96950120d1217 100644 --- a/consensus/src/network_tests.rs +++ b/consensus/src/network_tests.rs @@ -535,7 +535,7 @@ mod tests { }; use aptos_config::network_id::{NetworkId, PeerNetworkId}; use aptos_consensus_types::{ - block_retrieval::{BlockRetrievalRequest, BlockRetrievalResponse, BlockRetrievalStatus}, + block_retrieval::{BlockRetrievalRequestV1, BlockRetrievalResponse, BlockRetrievalStatus}, common::Payload, }; use aptos_crypto::HashValue; @@ -824,8 +824,9 @@ mod tests { BlockRetrievalResponse::new(BlockRetrievalStatus::IdNotFound, vec![]); let response = ConsensusMsg::BlockRetrievalResponse(Box::new(response)); let bytes = Bytes::from(serde_json::to_vec(&response).unwrap()); + // TODO: @bchocho @hariria can change after all nodes upgrade to release with enum BlockRetrievalRequest (not struct) match request { - IncomingRpcRequest::BlockRetrieval(request) => { + IncomingRpcRequest::DeprecatedBlockRetrieval(request) => { request.response_sender.send(Ok(bytes)).unwrap() }, _ => panic!("unexpected message"), @@ -837,7 +838,7 @@ mod tests { timed_block_on(&runtime, async { let response = nodes[0] .request_block( - BlockRetrievalRequest::new(HashValue::zero(), 1), + BlockRetrievalRequestV1::new(HashValue::zero(), 1), peer, Duration::from_secs(5), ) @@ -879,8 +880,8 @@ mod tests { .push((peer_id, protocol_id), bad_msg) .unwrap(); - let liveness_check_msg = ConsensusMsg::BlockRetrievalRequest(Box::new( - BlockRetrievalRequest::new(HashValue::random(), 1), + let liveness_check_msg = ConsensusMsg::DeprecatedBlockRetrievalRequest(Box::new( + BlockRetrievalRequestV1::new(HashValue::random(), 1), )); let protocol_id = ProtocolId::ConsensusRpcJson; diff --git a/consensus/src/round_manager_test.rs b/consensus/src/round_manager_test.rs index 292ddfe269ea8..3fe18787a8cfe 100644 --- a/consensus/src/round_manager_test.rs +++ b/consensus/src/round_manager_test.rs @@ -14,7 +14,9 @@ use crate::{ round_state::{ExponentialTimeInterval, RoundState}, }, metrics_safety_rules::MetricsSafetyRules, - network::{IncomingBlockRetrievalRequest, NetworkSender}, + network::{ + DeprecatedIncomingBlockRetrievalRequest, IncomingBlockRetrievalRequest, NetworkSender, + }, network_interface::{CommitMessage, ConsensusMsg, ConsensusNetworkClient, DIRECT_SEND, RPC}, network_tests::{NetworkPlayground, TwinId}, payload_manager::DirectMempoolPayloadManager, @@ -38,7 +40,7 @@ use aptos_consensus_types::{ block_test_utils::{certificate_for_genesis, gen_test_certificate}, Block, }, - block_retrieval::{BlockRetrievalRequest, BlockRetrievalStatus}, + block_retrieval::{BlockRetrievalRequest, BlockRetrievalRequestV1, BlockRetrievalStatus}, common::{Author, Payload, Round}, order_vote_msg::OrderVoteMsg, pipeline::commit_decision::CommitDecision, @@ -504,9 +506,46 @@ impl NodeSetup { self.commit_decision_queue.pop_front().unwrap() } - pub async fn poll_block_retreival(&mut self) -> Option { + /// SOON TO BE DEPRECATED: Please use [`poll_block_retrieval_v2`](NodeSetup::poll_block_retrieval_v2) going forward + /// NOTE: [`IncomingBlockRetrievalRequest`](DeprecatedIncomingBlockRetrievalRequest) is being phased out over two releases + /// After the first release, this can be deleted + pub async fn poll_block_retrieval( + &mut self, + ) -> Option { + match self.poll_next_network_event() { + Some(Event::RpcRequest(_, msg, protocol, response_sender)) => match msg { + ConsensusMsg::DeprecatedBlockRetrievalRequest(v) => { + Some(DeprecatedIncomingBlockRetrievalRequest { + req: *v, + protocol, + response_sender, + }) + }, + msg => panic!( + "Unexpected Consensus Message: {:?} on node {}", + msg, + self.identity_desc() + ), + }, + Some(Event::Message(_, msg)) => panic!( + "Unexpected Consensus Message: {:?} on node {}", + msg, + self.identity_desc() + ), + None => None, + } + } + + pub async fn poll_block_retrieval_v2(&mut self) -> Option { match self.poll_next_network_event() { Some(Event::RpcRequest(_, msg, protocol, response_sender)) => match msg { + ConsensusMsg::DeprecatedBlockRetrievalRequest(v) => { + Some(IncomingBlockRetrievalRequest { + req: BlockRetrievalRequest::V1(*v), + protocol, + response_sender, + }) + }, ConsensusMsg::BlockRetrievalRequest(v) => Some(IncomingBlockRetrievalRequest { req: *v, protocol, @@ -569,7 +608,7 @@ fn start_replying_to_block_retreival(nodes: Vec) -> ReplyingRPCHandle handles.push(tokio::spawn(async move { while !done_clone.load(Ordering::Relaxed) { info!("Asking for RPC request on {:?}", node.identity_desc()); - let maybe_request = node.poll_block_retreival().await; + let maybe_request = node.poll_block_retrieval().await; if let Some(request) = maybe_request { info!( "RPC request received: {:?} on {:?}", @@ -1337,8 +1376,8 @@ fn response_on_block_retrieval() { // first verify that we can retrieve the block if it's in the tree let (tx1, rx1) = oneshot::channel(); - let single_block_request = IncomingBlockRetrievalRequest { - req: BlockRetrievalRequest::new(block_id, 1), + let single_block_request = DeprecatedIncomingBlockRetrievalRequest { + req: BlockRetrievalRequestV1::new(block_id, 1), protocol: ProtocolId::ConsensusRpcBcs, response_sender: tx1, }; @@ -1360,8 +1399,8 @@ fn response_on_block_retrieval() { // verify that if a block is not there, return ID_NOT_FOUND let (tx2, rx2) = oneshot::channel(); - let missing_block_request = IncomingBlockRetrievalRequest { - req: BlockRetrievalRequest::new(HashValue::random(), 1), + let missing_block_request = DeprecatedIncomingBlockRetrievalRequest { + req: BlockRetrievalRequestV1::new(HashValue::random(), 1), protocol: ProtocolId::ConsensusRpcBcs, response_sender: tx2, }; @@ -1384,8 +1423,8 @@ fn response_on_block_retrieval() { // if asked for many blocks, return NOT_ENOUGH_BLOCKS let (tx3, rx3) = oneshot::channel(); - let many_block_request = IncomingBlockRetrievalRequest { - req: BlockRetrievalRequest::new(block_id, 3), + let many_block_request = DeprecatedIncomingBlockRetrievalRequest { + req: BlockRetrievalRequestV1::new(block_id, 3), protocol: ProtocolId::ConsensusRpcBcs, response_sender: tx3, }; diff --git a/testsuite/generate-format/src/consensus.rs b/testsuite/generate-format/src/consensus.rs index 17c079dfcbbfc..719f823bc953c 100644 --- a/testsuite/generate-format/src/consensus.rs +++ b/testsuite/generate-format/src/consensus.rs @@ -117,6 +117,7 @@ pub fn get_registry() -> Result { tracer.trace_type::(&samples)?; tracer.trace_type::(&samples)?; tracer.trace_type::(&samples)?; + tracer.trace_type::(&samples)?; // aliases within StructTag tracer.ignore_aliases("StructTag", &["type_params"])?; diff --git a/testsuite/generate-format/tests/staged/consensus.yaml b/testsuite/generate-format/tests/staged/consensus.yaml index 193d04823025c..02aef37aade9e 100644 --- a/testsuite/generate-format/tests/staged/consensus.yaml +++ b/testsuite/generate-format/tests/staged/consensus.yaml @@ -269,6 +269,16 @@ BlockMetadataWithRandomness: OPTION: TYPENAME: Randomness BlockRetrievalRequest: + ENUM: + 0: + V1: + NEWTYPE: + TYPENAME: BlockRetrievalRequestV1 + 1: + V2: + NEWTYPE: + TYPENAME: BlockRetrievalRequestV2 +BlockRetrievalRequestV1: STRUCT: - block_id: TYPENAME: HashValue @@ -276,6 +286,12 @@ BlockRetrievalRequest: - target_block_id: OPTION: TYPENAME: HashValue +BlockRetrievalRequestV2: + STRUCT: + - block_id: + TYPENAME: HashValue + - num_blocks: U64 + - target_round: U64 BlockRetrievalResponse: STRUCT: - status: @@ -360,9 +376,9 @@ CommitVote: ConsensusMsg: ENUM: 0: - BlockRetrievalRequest: + DeprecatedBlockRetrievalRequest: NEWTYPE: - TYPENAME: BlockRetrievalRequest + TYPENAME: BlockRetrievalRequestV1 1: BlockRetrievalResponse: NEWTYPE: @@ -439,6 +455,10 @@ ConsensusMsg: RoundTimeoutMsg: NEWTYPE: TYPENAME: RoundTimeoutMsg + 20: + BlockRetrievalRequest: + NEWTYPE: + TYPENAME: BlockRetrievalRequest ContractEvent: ENUM: 0: From 9c7d21b04053297bf0687e3c69f54240538ed9fd Mon Sep 17 00:00:00 2001 From: Vineeth Kashyap Date: Tue, 28 Jan 2025 19:37:54 -0500 Subject: [PATCH 12/30] Fix compile error (#15834) Fix a compile error in move-vm-runtime tests --- third_party/move/move-vm/runtime/Cargo.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/third_party/move/move-vm/runtime/Cargo.toml b/third_party/move/move-vm/runtime/Cargo.toml index 4b20b934b638c..a092fdf43db9d 100644 --- a/third_party/move/move-vm/runtime/Cargo.toml +++ b/third_party/move/move-vm/runtime/Cargo.toml @@ -38,6 +38,7 @@ move-binary-format = { workspace = true, features = ["fuzzing"] } move-compiler = { workspace = true } move-ir-compiler = { workspace = true } move-vm-test-utils ={ workspace = true } +move-vm-types = { workspace = true, features = ["testing"] } proptest = { workspace = true } [features] From b4c4e9601f14ee6ace5e599cd7e176b98a0abd03 Mon Sep 17 00:00:00 2001 From: igor-aptos <110557261+igor-aptos@users.noreply.github.com> Date: Tue, 28 Jan 2025 17:17:40 -0800 Subject: [PATCH 13/30] Fix not emitting fungible_asset::Withdraw event when paying gas (#15835) Co-authored-by: Igor --- .../framework/aptos-framework/doc/coin.md | 67 ++++++++++++++++--- .../doc/primary_fungible_store.md | 28 -------- .../aptos-framework/doc/transaction_fee.md | 4 +- .../aptos-framework/sources/coin.move | 56 ++++++++++++++-- .../aptos-framework/sources/coin.spec.move | 2 +- .../sources/primary_fungible_store.move | 7 -- .../sources/transaction_fee.move | 4 +- 7 files changed, 114 insertions(+), 54 deletions(-) diff --git a/aptos-move/framework/aptos-framework/doc/coin.md b/aptos-move/framework/aptos-framework/doc/coin.md index 5ff8a32e7e2b0..cd129502aab9e 100644 --- a/aptos-move/framework/aptos-framework/doc/coin.md +++ b/aptos-move/framework/aptos-framework/doc/coin.md @@ -74,10 +74,11 @@ This module provides the foundation for typesafe Coins. - [Function `coin_supply`](#0x1_coin_coin_supply) - [Function `burn`](#0x1_coin_burn) - [Function `burn_from`](#0x1_coin_burn_from) +- [Function `burn_from_for_gas`](#0x1_coin_burn_from_for_gas) - [Function `deposit`](#0x1_coin_deposit) - [Function `deposit_with_signer`](#0x1_coin_deposit_with_signer) - [Function `can_receive_paired_fungible_asset`](#0x1_coin_can_receive_paired_fungible_asset) -- [Function `force_deposit`](#0x1_coin_force_deposit) +- [Function `deposit_for_gas_fee`](#0x1_coin_deposit_for_gas_fee) - [Function `destroy_zero`](#0x1_coin_destroy_zero) - [Function `extract`](#0x1_coin_extract) - [Function `extract_all`](#0x1_coin_extract_all) @@ -119,7 +120,7 @@ This module provides the foundation for typesafe Coins. - [Function `burn`](#@Specification_1_burn) - [Function `burn_from`](#@Specification_1_burn_from) - [Function `deposit`](#@Specification_1_deposit) - - [Function `force_deposit`](#@Specification_1_force_deposit) + - [Function `deposit_for_gas_fee`](#@Specification_1_deposit_for_gas_fee) - [Function `destroy_zero`](#@Specification_1_destroy_zero) - [Function `extract`](#@Specification_1_extract) - [Function `extract_all`](#@Specification_1_extract_all) @@ -2672,6 +2673,54 @@ Note: This bypasses CoinStore::frozen -- coins within a frozen CoinStore can be + + + + +## Function `burn_from_for_gas` + + + +

public(friend) fun burn_from_for_gas<CoinType>(account_addr: address, amount: u64, burn_cap: &coin::BurnCapability<CoinType>)
+
+ + + +
+Implementation + + +
public(friend) fun burn_from_for_gas<CoinType>(
+    account_addr: address,
+    amount: u64,
+    burn_cap: &BurnCapability<CoinType>,
+) acquires CoinInfo, CoinStore, CoinConversionMap, PairedFungibleAssetRefs {
+    // Skip burning if amount is zero. This shouldn't error out as it's called as part of transaction fee burning.
+    if (amount == 0) {
+        return
+    };
+
+    let (coin_amount_to_burn, fa_amount_to_burn) = calculate_amount_to_withdraw<CoinType>(
+        account_addr,
+        amount
+    );
+    if (coin_amount_to_burn > 0) {
+        let coin_store = borrow_global_mut<CoinStore<CoinType>>(account_addr);
+        let coin_to_burn = extract(&mut coin_store.coin, coin_amount_to_burn);
+        burn(coin_to_burn, burn_cap);
+    };
+    if (fa_amount_to_burn > 0) {
+        fungible_asset::address_burn_from_for_gas(
+            borrow_paired_burn_ref(burn_cap),
+            primary_fungible_store::primary_store_address(account_addr, option::destroy_some(paired_metadata<CoinType>())),
+            fa_amount_to_burn
+        );
+    };
+}
+
+ + +
@@ -2797,15 +2846,15 @@ Deposit the coin balance into the recipient's account and emit an event. - + -## Function `force_deposit` +## Function `deposit_for_gas_fee` Deposit the coin balance into the recipient's account without checking if the account is frozen. This is for internal use only and doesn't emit an DepositEvent. -
public(friend) fun force_deposit<CoinType>(account_addr: address, coin: coin::Coin<CoinType>)
+
public(friend) fun deposit_for_gas_fee<CoinType>(account_addr: address, coin: coin::Coin<CoinType>)
 
@@ -2814,7 +2863,7 @@ This is for internal use only and doesn't emit an DepositEvent. Implementation -
public(friend) fun force_deposit<CoinType>(
+
public(friend) fun deposit_for_gas_fee<CoinType>(
     account_addr: address,
     coin: Coin<CoinType>
 ) acquires CoinStore, CoinConversionMap, CoinInfo {
@@ -4191,12 +4240,12 @@ Get address by reflection.
 
 
 
-
+
 
-### Function `force_deposit`
+### Function `deposit_for_gas_fee`
 
 
-
public(friend) fun force_deposit<CoinType>(account_addr: address, coin: coin::Coin<CoinType>)
+
public(friend) fun deposit_for_gas_fee<CoinType>(account_addr: address, coin: coin::Coin<CoinType>)
 
diff --git a/aptos-move/framework/aptos-framework/doc/primary_fungible_store.md b/aptos-move/framework/aptos-framework/doc/primary_fungible_store.md index fdc63ca6edf5a..0975d0cc739f3 100644 --- a/aptos-move/framework/aptos-framework/doc/primary_fungible_store.md +++ b/aptos-move/framework/aptos-framework/doc/primary_fungible_store.md @@ -36,7 +36,6 @@ fungible asset to it. This emits an deposit event. - [Function `withdraw`](#0x1_primary_fungible_store_withdraw) - [Function `deposit`](#0x1_primary_fungible_store_deposit) - [Function `deposit_with_signer`](#0x1_primary_fungible_store_deposit_with_signer) -- [Function `force_deposit`](#0x1_primary_fungible_store_force_deposit) - [Function `transfer`](#0x1_primary_fungible_store_transfer) - [Function `transfer_assert_minimum_deposit`](#0x1_primary_fungible_store_transfer_assert_minimum_deposit) - [Function `mint`](#0x1_primary_fungible_store_mint) @@ -615,33 +614,6 @@ the same amount of fund in the future. - - - - -## Function `force_deposit` - -Deposit fungible asset fa to the given account's primary store. - - -
public(friend) fun force_deposit(owner: address, fa: fungible_asset::FungibleAsset)
-
- - - -
-Implementation - - -
public(friend) fun force_deposit(owner: address, fa: FungibleAsset) acquires DeriveRefPod {
-    let metadata = fungible_asset::asset_metadata(&fa);
-    let store = ensure_primary_store_exists(owner, metadata);
-    fungible_asset::unchecked_deposit(object::object_address(&store), fa);
-}
-
- - -
diff --git a/aptos-move/framework/aptos-framework/doc/transaction_fee.md b/aptos-move/framework/aptos-framework/doc/transaction_fee.md index 80cd7e93360be..2c774797fda2c 100644 --- a/aptos-move/framework/aptos-framework/doc/transaction_fee.md +++ b/aptos-move/framework/aptos-framework/doc/transaction_fee.md @@ -317,7 +317,7 @@ Burn transaction fees in epilogue. aptos_account::burn_from_fungible_store_for_gas(&burn_ref, account, fee); coin::return_paired_burn_ref(burn_ref, burn_receipt); } else { - coin::burn_from<AptosCoin>( + coin::burn_from_for_gas<AptosCoin>( account, fee, burn_cap, @@ -350,7 +350,7 @@ Mint refund in epilogue.
public(friend) fun mint_and_refund(account: address, refund: u64) acquires AptosCoinMintCapability {
     let mint_cap = &borrow_global<AptosCoinMintCapability>(@aptos_framework).mint_cap;
     let refund_coin = coin::mint(refund, mint_cap);
-    coin::force_deposit(account, refund_coin);
+    coin::deposit_for_gas_fee(account, refund_coin);
 }
 
diff --git a/aptos-move/framework/aptos-framework/sources/coin.move b/aptos-move/framework/aptos-framework/sources/coin.move index 159ae64b7207d..ef2c1137dc1eb 100644 --- a/aptos-move/framework/aptos-framework/sources/coin.move +++ b/aptos-move/framework/aptos-framework/sources/coin.move @@ -823,6 +823,34 @@ module aptos_framework::coin { }; } + public(friend) fun burn_from_for_gas( + account_addr: address, + amount: u64, + burn_cap: &BurnCapability, + ) acquires CoinInfo, CoinStore, CoinConversionMap, PairedFungibleAssetRefs { + // Skip burning if amount is zero. This shouldn't error out as it's called as part of transaction fee burning. + if (amount == 0) { + return + }; + + let (coin_amount_to_burn, fa_amount_to_burn) = calculate_amount_to_withdraw( + account_addr, + amount + ); + if (coin_amount_to_burn > 0) { + let coin_store = borrow_global_mut>(account_addr); + let coin_to_burn = extract(&mut coin_store.coin, coin_amount_to_burn); + burn(coin_to_burn, burn_cap); + }; + if (fa_amount_to_burn > 0) { + fungible_asset::address_burn_from_for_gas( + borrow_paired_burn_ref(burn_cap), + primary_fungible_store::primary_store_address(account_addr, option::destroy_some(paired_metadata())), + fa_amount_to_burn + ); + }; + } + /// Deposit the coin balance into the recipient's account and emit an event. public fun deposit( account_addr: address, @@ -888,7 +916,7 @@ module aptos_framework::coin { /// Deposit the coin balance into the recipient's account without checking if the account is frozen. /// This is for internal use only and doesn't emit an DepositEvent. - public(friend) fun force_deposit( + public(friend) fun deposit_for_gas_fee( account_addr: address, coin: Coin ) acquires CoinStore, CoinConversionMap, CoinInfo { @@ -1977,7 +2005,7 @@ module aptos_framework::coin { account: &signer, aaron: &signer, bob: &signer - ) acquires CoinConversionMap, CoinInfo, CoinStore { + ) acquires CoinConversionMap, CoinInfo, CoinStore, PairedFungibleAssetRefs { let account_addr = signer::address_of(account); let aaron_addr = signer::address_of(aaron); let bob_addr = signer::address_of(bob); @@ -1985,17 +2013,35 @@ module aptos_framework::coin { account::create_account_for_test(aaron_addr); account::create_account_for_test(bob_addr); let (burn_cap, freeze_cap, mint_cap) = initialize_and_register_fake_money(account, 1, true); + + assert!(event::emitted_events().length() == 0, 10); + assert!(event::emitted_events().length() == 0, 10); + maybe_convert_to_fungible_store(aaron_addr); + + assert!(event::emitted_events().length() == 0, 10); deposit(aaron_addr, mint(1, &mint_cap)); + assert!(event::emitted_events().length() == 1, 10); + + deposit_for_gas_fee(account_addr, mint(100, &mint_cap)); + assert!(event::emitted_events().length() == 1, 10); - force_deposit(account_addr, mint(100, &mint_cap)); - force_deposit(aaron_addr, mint(50, &mint_cap)); + deposit_for_gas_fee(aaron_addr, mint(50, &mint_cap)); + assert!(event::emitted_events().length() == 1, 10); assert!( primary_fungible_store::balance(aaron_addr, option::extract(&mut paired_metadata())) == 51, 0 ); assert!(coin_balance(account_addr) == 100, 0); - force_deposit(bob_addr, mint(1, &mint_cap)); + deposit_for_gas_fee(bob_addr, mint(1, &mint_cap)); + assert!(event::emitted_events().length() == 1, 10); + + assert!(event::emitted_events().length() == 0, 10); + burn_from_for_gas(aaron_addr, 1, &burn_cap); + assert!(event::emitted_events().length() == 0, 10); + burn_from(aaron_addr, 1, &burn_cap); + assert!(event::emitted_events().length() == 1, 10); + move_to(account, FakeMoneyCapabilities { burn_cap, freeze_cap, diff --git a/aptos-move/framework/aptos-framework/sources/coin.spec.move b/aptos-move/framework/aptos-framework/sources/coin.spec.move index 0ccf01d2dd194..ae2dc1f35d225 100644 --- a/aptos-move/framework/aptos-framework/sources/coin.spec.move +++ b/aptos-move/framework/aptos-framework/sources/coin.spec.move @@ -325,7 +325,7 @@ spec aptos_framework::coin { aborts_if coin_store.frozen; } - spec force_deposit(account_addr: address, coin: Coin) { + spec deposit_for_gas_fee(account_addr: address, coin: Coin) { // TODO(fa_migration) pragma verify = false; modifies global>(account_addr); diff --git a/aptos-move/framework/aptos-framework/sources/primary_fungible_store.move b/aptos-move/framework/aptos-framework/sources/primary_fungible_store.move index 2fc6ae2b27d7b..2327e50ddfbf1 100644 --- a/aptos-move/framework/aptos-framework/sources/primary_fungible_store.move +++ b/aptos-move/framework/aptos-framework/sources/primary_fungible_store.move @@ -216,13 +216,6 @@ module aptos_framework::primary_fungible_store { dispatchable_fungible_asset::deposit(store, fa); } - /// Deposit fungible asset `fa` to the given account's primary store. - public(friend) fun force_deposit(owner: address, fa: FungibleAsset) acquires DeriveRefPod { - let metadata = fungible_asset::asset_metadata(&fa); - let store = ensure_primary_store_exists(owner, metadata); - fungible_asset::unchecked_deposit(object::object_address(&store), fa); - } - /// Transfer `amount` of fungible asset from sender's primary store to receiver's primary store. public entry fun transfer( sender: &signer, diff --git a/aptos-move/framework/aptos-framework/sources/transaction_fee.move b/aptos-move/framework/aptos-framework/sources/transaction_fee.move index a00823de05003..8f71490025af4 100644 --- a/aptos-move/framework/aptos-framework/sources/transaction_fee.move +++ b/aptos-move/framework/aptos-framework/sources/transaction_fee.move @@ -88,7 +88,7 @@ module aptos_framework::transaction_fee { aptos_account::burn_from_fungible_store_for_gas(&burn_ref, account, fee); coin::return_paired_burn_ref(burn_ref, burn_receipt); } else { - coin::burn_from( + coin::burn_from_for_gas( account, fee, burn_cap, @@ -101,7 +101,7 @@ module aptos_framework::transaction_fee { public(friend) fun mint_and_refund(account: address, refund: u64) acquires AptosCoinMintCapability { let mint_cap = &borrow_global(@aptos_framework).mint_cap; let refund_coin = coin::mint(refund, mint_cap); - coin::force_deposit(account, refund_coin); + coin::deposit_for_gas_fee(account, refund_coin); } /// Only called during genesis. From 4f8c3007bb3300a5c993773810bf501c13756eef Mon Sep 17 00:00:00 2001 From: Greg Nazario Date: Wed, 29 Jan 2025 00:21:51 -0500 Subject: [PATCH 14/30] Remove unnecessary code (#15731) * [cleanup] Remove developer docs folder * [cleanup] Remove Typescript SDKs These have been moved to other repositories accordingly. SDK v1 is fully deprecated. * [cleanup] Remove python SDK * [cleanup] Remove FFI from Aptos CLI --- crates/aptos/CHANGELOG.md | 1 + crates/aptos/src/ffi.rs | 84 - crates/aptos/src/lib.rs | 1 - developer-docs-site/README.md | 3 - ecosystem/python/sdk/README.md | 1 - .../typescript/aptos-client/.eslintignore | 2 - .../typescript/aptos-client/.eslintrc.js | 36 - ecosystem/typescript/aptos-client/.gitignore | 1 - ecosystem/typescript/aptos-client/.npmignore | 6 - .../typescript/aptos-client/.prettierignore | 1 - .../typescript/aptos-client/CHANGELOG.md | 14 - ecosystem/typescript/aptos-client/LICENSE | 201 -- ecosystem/typescript/aptos-client/README.md | 48 - .../typescript/aptos-client/package.json | 75 - .../typescript/aptos-client/pnpm-lock.yaml | 3211 ----------------- .../typescript/aptos-client/src/cookieJar.ts | 84 - .../aptos-client/src/index.browser.ts | 31 - .../typescript/aptos-client/src/index.node.ts | 92 - .../typescript/aptos-client/src/types.ts | 18 - .../typescript/aptos-client/tsconfig.json | 20 - .../typescript/aptos-client/tsup.config.js | 8 - ecosystem/typescript/sdk/README.md | 3 - ecosystem/typescript/sdk/package.json | 11 - ecosystem/typescript/sdk_v2/README.md | 3 - 24 files changed, 1 insertion(+), 3954 deletions(-) delete mode 100644 crates/aptos/src/ffi.rs delete mode 100644 developer-docs-site/README.md delete mode 100644 ecosystem/python/sdk/README.md delete mode 100644 ecosystem/typescript/aptos-client/.eslintignore delete mode 100644 ecosystem/typescript/aptos-client/.eslintrc.js delete mode 100644 ecosystem/typescript/aptos-client/.gitignore delete mode 100644 ecosystem/typescript/aptos-client/.npmignore delete mode 100644 ecosystem/typescript/aptos-client/.prettierignore delete mode 100644 ecosystem/typescript/aptos-client/CHANGELOG.md delete mode 100644 ecosystem/typescript/aptos-client/LICENSE delete mode 100644 ecosystem/typescript/aptos-client/README.md delete mode 100644 ecosystem/typescript/aptos-client/package.json delete mode 100644 ecosystem/typescript/aptos-client/pnpm-lock.yaml delete mode 100644 ecosystem/typescript/aptos-client/src/cookieJar.ts delete mode 100644 ecosystem/typescript/aptos-client/src/index.browser.ts delete mode 100644 ecosystem/typescript/aptos-client/src/index.node.ts delete mode 100644 ecosystem/typescript/aptos-client/src/types.ts delete mode 100644 ecosystem/typescript/aptos-client/tsconfig.json delete mode 100644 ecosystem/typescript/aptos-client/tsup.config.js delete mode 100644 ecosystem/typescript/sdk/README.md delete mode 100644 ecosystem/typescript/sdk/package.json delete mode 100644 ecosystem/typescript/sdk_v2/README.md diff --git a/crates/aptos/CHANGELOG.md b/crates/aptos/CHANGELOG.md index 4738d2b5b04d6..5e6a19d74c9ef 100644 --- a/crates/aptos/CHANGELOG.md +++ b/crates/aptos/CHANGELOG.md @@ -4,6 +4,7 @@ All notable changes to the Aptos CLI will be captured in this file. This project # Unreleased +- Remove FFI support from Aptos CLI ## [6.0.3] - 2025/01/27 - Update the processors used by localnet to 1.26. diff --git a/crates/aptos/src/ffi.rs b/crates/aptos/src/ffi.rs deleted file mode 100644 index 41964747f5149..0000000000000 --- a/crates/aptos/src/ffi.rs +++ /dev/null @@ -1,84 +0,0 @@ -// Copyright © Aptos Foundation -// SPDX-License-Identifier: Apache-2.0 - -#![allow(unsafe_code)] - -use crate::Tool; -use clap::Parser; -use std::{ - ffi::{c_char, CStr, CString}, - thread, -}; -use tokio::runtime::Runtime; - -/// # Safety -/// -/// Run the aptos CLI synchronously -/// Note: This function should only be called from other SDK (i.g Typescript) -/// -/// Return: the pointer to CLIResult c string -#[no_mangle] -pub unsafe extern "C" fn run_aptos_sync(s: *const c_char) -> *const c_char { - let c_str = unsafe { - assert!(!s.is_null()); - CStr::from_ptr(s) - }; - - // split string by spaces - let input_string = c_str.to_str().unwrap().split_whitespace(); - - // Create a new Tokio runtime and block on the execution of `cli.execute()` - let result_string = Runtime::new().unwrap().block_on(async move { - let cli = Tool::parse_from(input_string); - cli.execute().await - }); - - let res_cstr = CString::new(result_string.unwrap()).unwrap(); - - // Return a pointer to the C string - res_cstr.into_raw() -} - -/// # Safety -/// -/// Run the aptos CLI async; Use this function if you are expecting the aptos CLI command -/// to run in the background, or different thread -/// Note: This function should only be called from other SDK (i.g Typescript) -/// -/// Return: the pointer to c string: 'true' -#[no_mangle] -pub unsafe extern "C" fn run_aptos_async(s: *mut c_char) -> *mut c_char { - println!("Running aptos..."); - let c_str = unsafe { - assert!(!s.is_null()); - CStr::from_ptr(s) - }; - - // Spawn a new thread to run the CLI - thread::spawn(move || { - let rt = Runtime::new().unwrap(); - let input_string = c_str.to_str().unwrap().split_whitespace(); - let cli = Tool::parse_from(input_string); - - // Run the CLI once - rt.block_on(async { cli.execute().await }) - .expect("Failed to run CLI"); - }); - - // Return pointer - CString::new("true").unwrap().into_raw() -} - -/// # Safety -/// -/// After running the aptos CLI using FFI. Make sure to invoke this method to free up or -/// deallocate the memory -#[no_mangle] -pub unsafe extern "C" fn free_cstring(s: *mut c_char) { - unsafe { - if s.is_null() { - return; - } - let _ = CString::from_raw(s); - }; -} diff --git a/crates/aptos/src/lib.rs b/crates/aptos/src/lib.rs index 073993c4096c0..5f34e863afc64 100644 --- a/crates/aptos/src/lib.rs +++ b/crates/aptos/src/lib.rs @@ -6,7 +6,6 @@ pub mod account; pub mod common; pub mod config; -pub mod ffi; pub mod genesis; pub mod governance; pub mod move_tool; diff --git a/developer-docs-site/README.md b/developer-docs-site/README.md deleted file mode 100644 index 2d2afc9cd6bed..0000000000000 --- a/developer-docs-site/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Developer Documentation - -This has been moved to https://github.com/aptos-labs/developer-docs \ No newline at end of file diff --git a/ecosystem/python/sdk/README.md b/ecosystem/python/sdk/README.md deleted file mode 100644 index 8f2bd0a69bcd6..0000000000000 --- a/ecosystem/python/sdk/README.md +++ /dev/null @@ -1 +0,0 @@ -The contents of this directory have been moved to the following repository: https://github.com/aptos-labs/aptos-python-sdk diff --git a/ecosystem/typescript/aptos-client/.eslintignore b/ecosystem/typescript/aptos-client/.eslintignore deleted file mode 100644 index 44d646d5880a5..0000000000000 --- a/ecosystem/typescript/aptos-client/.eslintignore +++ /dev/null @@ -1,2 +0,0 @@ -node_modules -dist/ diff --git a/ecosystem/typescript/aptos-client/.eslintrc.js b/ecosystem/typescript/aptos-client/.eslintrc.js deleted file mode 100644 index 33af8722bf258..0000000000000 --- a/ecosystem/typescript/aptos-client/.eslintrc.js +++ /dev/null @@ -1,36 +0,0 @@ -module.exports = { - env: { - browser: true, - es2021: true, - node: true, - }, - ignorePatterns: ["*.js"], - extends: ["airbnb-base", "airbnb-typescript/base", "prettier"], - parser: "@typescript-eslint/parser", - parserOptions: { - tsconfigRootDir: __dirname, - project: ["tsconfig.json"], - ecmaVersion: "latest", - sourceType: "module", - }, - plugins: ["@typescript-eslint"], - rules: { - quotes: ["error", "double"], - "max-len": ["error", 120], - "import/extensions": ["error", "never"], - "max-classes-per-file": ["error", 10], - "import/prefer-default-export": "off", - "object-curly-newline": "off", - "no-use-before-define": "off", - "no-unused-vars": "off", - "@typescript-eslint/no-use-before-define": ["error", { functions: false, classes: false }], - "@typescript-eslint/no-unused-vars": ["error"], - }, - settings: { - "import/resolver": { - node: { - extensions: [".js", ".jsx", ".ts", ".tsx"], - }, - }, - }, -}; diff --git a/ecosystem/typescript/aptos-client/.gitignore b/ecosystem/typescript/aptos-client/.gitignore deleted file mode 100644 index 849ddff3b7ec9..0000000000000 --- a/ecosystem/typescript/aptos-client/.gitignore +++ /dev/null @@ -1 +0,0 @@ -dist/ diff --git a/ecosystem/typescript/aptos-client/.npmignore b/ecosystem/typescript/aptos-client/.npmignore deleted file mode 100644 index e4e04ff4d555f..0000000000000 --- a/ecosystem/typescript/aptos-client/.npmignore +++ /dev/null @@ -1,6 +0,0 @@ -node_modules -tsconfig.json -tsup.config.js -.prettierignore -.gitignore -.eslintignore \ No newline at end of file diff --git a/ecosystem/typescript/aptos-client/.prettierignore b/ecosystem/typescript/aptos-client/.prettierignore deleted file mode 100644 index 849ddff3b7ec9..0000000000000 --- a/ecosystem/typescript/aptos-client/.prettierignore +++ /dev/null @@ -1 +0,0 @@ -dist/ diff --git a/ecosystem/typescript/aptos-client/CHANGELOG.md b/ecosystem/typescript/aptos-client/CHANGELOG.md deleted file mode 100644 index 9884c8b4568b4..0000000000000 --- a/ecosystem/typescript/aptos-client/CHANGELOG.md +++ /dev/null @@ -1,14 +0,0 @@ -# Aptos Client Changelog - -All notable changes to the Aptos client will be captured in this file. This changelog is written by hand for now. It -adheres to the format set out by [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - -# Unreleased - -# 0.1.1 - -- Update axios to 1.7.4 due to issue on https://github.com/advisories/GHSA-8hc4-vh64-cxmj - -# 0.1.0 - -- Update to Axios v1.6.2, and other dev dependencies diff --git a/ecosystem/typescript/aptos-client/LICENSE b/ecosystem/typescript/aptos-client/LICENSE deleted file mode 100644 index c61b66391a3c1..0000000000000 --- a/ecosystem/typescript/aptos-client/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - -2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - -3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - -4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - -5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - -6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - -8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS - -APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - -Copyright [yyyy] [name of copyright owner] - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. diff --git a/ecosystem/typescript/aptos-client/README.md b/ecosystem/typescript/aptos-client/README.md deleted file mode 100644 index e8524dc4549f2..0000000000000 --- a/ecosystem/typescript/aptos-client/README.md +++ /dev/null @@ -1,48 +0,0 @@ -# @aptos-labs/aptos-client - -This package implements a client with which you can interact with the Aptos network. It can be used standalone, and it is the client package used by the Aptos TypeScript SDK. - -#### Implementation - -The `@aptos-labs/aptos-client` package supports http2 protocol and implements 2 clients environment based: - -1. [axios](https://github.com/axios/axios) - implemented in `index.browser.ts` to use in `browser` environment (in a browser env it is up to the browser and the server to negotiate http2 connection) -2. [got](https://github.com/sindresorhus/got) - implemented in `index.node.ts` to use in `node` environment (to support http2 in node environment, still the server must support http2 also) - -#### Function signature - -```ts -async function aptosClient(requestOptions: AptosClientRequest): Promise>; -``` - -#### Types - -```ts -type AptosClientResponse = { - status: number; - statusText: string; - data: Res; - config?: any; - request?: any; - response?: any; - headers?: any; -}; - -type AptosClientRequest = { - url: string; - method: "GET" | "POST"; - body?: any; - params?: any; - headers?: any; - overrides?: any; -}; -``` - -#### Usage - -```ts -import aptosClient from "@aptos-labs/aptos-client"; - -const response = await aptosClient({ url, method, body, params, headers, overrides }); -return response; -``` diff --git a/ecosystem/typescript/aptos-client/package.json b/ecosystem/typescript/aptos-client/package.json deleted file mode 100644 index 83d8669e1b19d..0000000000000 --- a/ecosystem/typescript/aptos-client/package.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "name": "@aptos-labs/aptos-client", - "description": "client package for accessing the Aptos network API", - "packageManager": "pnpm@8.3.1", - "license": "Apache-2.0", - "engines": { - "node": ">=15.10.0" - }, - "exports": { - "browser": { - "import": "./dist/browser/index.browser.mjs", - "require": "./dist/browser/index.browser.js", - "types": "./dist/browser/index.browser.d.ts" - }, - "node": { - "import": "./dist/node/index.node.mjs", - "require": "./dist/node/index.node.js", - "types": "./dist/node/index.node.d.ts" - } - }, - "browser": { - "./dist/node/index.node.mjs": "./dist/browser/index.browser.mjs", - "./dist/node/index.node.js": "./dist/browser/index.browser.js" - }, - "main": "./dist/node/index.node.js", - "module": "./dist/node/index.node.mjs", - "types": "./dist/types/index.node.d.ts", - "files": [ - "./dist/" - ], - "scripts": { - "build:clean": "rm -rf dist", - "build": "pnpm build:clean && pnpm run _build:types && pnpm _build:node && pnpm _build:browser", - "_build:browser": "tsup src/index.browser.ts --format cjs,esm --dts --out-dir dist/browser", - "_build:node": "tsup src/index.node.ts --format cjs,esm --dts --out-dir dist/node", - "_build:types": "tsc src/types.ts src/index.node.ts --outDir dist/types --declaration", - "lint": "eslint \"**/*.ts\"", - "fmt": "pnpm _fmt --write", - "_fmt": "prettier 'src/**/*.ts' '.eslintrc.js' '*.md'" - }, - "repository": { - "type": "git", - "url": "https://github.com/aptos-labs/aptos-core.git" - }, - "homepage": "https://github.com/aptos-labs/aptos-core", - "bugs": { - "url": "https://github.com/aptos-labs/aptos-core/issues" - }, - "author": "aptoslabs.com", - "keywords": [ - "Aptos", - "Aptos Labs", - "Aptos SDK" - ], - "dependencies": { - "axios": "1.7.4", - "got": "^11.8.6" - }, - "devDependencies": { - "@types/node": "20.10.4", - "@typescript-eslint/eslint-plugin": "6.13.2", - "@typescript-eslint/parser": "6.13.2", - "eslint": "8.55.0", - "eslint-config-prettier": "9.1.0", - "eslint-config-airbnb-base": "15.0.0", - "eslint-config-airbnb-typescript": "17.1.0", - "eslint-plugin-import": "2.29.0", - "prettier": "3.1.0", - "semver": "6.3.1", - "ts-node": "10.9.2", - "tsup": "8.0.1", - "typescript": "5.3.3" - }, - "version": "0.1.1" -} diff --git a/ecosystem/typescript/aptos-client/pnpm-lock.yaml b/ecosystem/typescript/aptos-client/pnpm-lock.yaml deleted file mode 100644 index b1f480f4b2634..0000000000000 --- a/ecosystem/typescript/aptos-client/pnpm-lock.yaml +++ /dev/null @@ -1,3211 +0,0 @@ -lockfileVersion: '9.0' - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - -importers: - - .: - dependencies: - axios: - specifier: 1.7.4 - version: 1.7.4 - got: - specifier: ^11.8.6 - version: 11.8.6 - devDependencies: - '@types/node': - specifier: 20.10.4 - version: 20.10.4 - '@typescript-eslint/eslint-plugin': - specifier: 6.13.2 - version: 6.13.2(@typescript-eslint/parser@6.13.2(eslint@8.55.0)(typescript@5.3.3))(eslint@8.55.0)(typescript@5.3.3) - '@typescript-eslint/parser': - specifier: 6.13.2 - version: 6.13.2(eslint@8.55.0)(typescript@5.3.3) - eslint: - specifier: 8.55.0 - version: 8.55.0 - eslint-config-airbnb-base: - specifier: 15.0.0 - version: 15.0.0(eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.13.2(eslint@8.55.0)(typescript@5.3.3))(eslint@8.55.0))(eslint@8.55.0) - eslint-config-airbnb-typescript: - specifier: 17.1.0 - version: 17.1.0(@typescript-eslint/eslint-plugin@6.13.2(@typescript-eslint/parser@6.13.2(eslint@8.55.0)(typescript@5.3.3))(eslint@8.55.0)(typescript@5.3.3))(@typescript-eslint/parser@6.13.2(eslint@8.55.0)(typescript@5.3.3))(eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.13.2(eslint@8.55.0)(typescript@5.3.3))(eslint@8.55.0))(eslint@8.55.0) - eslint-config-prettier: - specifier: 9.1.0 - version: 9.1.0(eslint@8.55.0) - eslint-plugin-import: - specifier: 2.29.0 - version: 2.29.0(@typescript-eslint/parser@6.13.2(eslint@8.55.0)(typescript@5.3.3))(eslint@8.55.0) - prettier: - specifier: 3.1.0 - version: 3.1.0 - semver: - specifier: 6.3.1 - version: 6.3.1 - ts-node: - specifier: 10.9.2 - version: 10.9.2(@types/node@20.10.4)(typescript@5.3.3) - tsup: - specifier: 8.0.1 - version: 8.0.1(ts-node@10.9.2(@types/node@20.10.4)(typescript@5.3.3))(typescript@5.3.3) - typescript: - specifier: 5.3.3 - version: 5.3.3 - -packages: - - '@aashutoshrathi/word-wrap@1.2.6': - resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} - engines: {node: '>=0.10.0'} - - '@cspotcode/source-map-support@0.8.1': - resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} - engines: {node: '>=12'} - - '@esbuild/android-arm64@0.19.8': - resolution: {integrity: sha512-B8JbS61bEunhfx8kasogFENgQfr/dIp+ggYXwTqdbMAgGDhRa3AaPpQMuQU0rNxDLECj6FhDzk1cF9WHMVwrtA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - - '@esbuild/android-arm@0.19.8': - resolution: {integrity: sha512-31E2lxlGM1KEfivQl8Yf5aYU/mflz9g06H6S15ITUFQueMFtFjESRMoDSkvMo8thYvLBax+VKTPlpnx+sPicOA==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - - '@esbuild/android-x64@0.19.8': - resolution: {integrity: sha512-rdqqYfRIn4jWOp+lzQttYMa2Xar3OK9Yt2fhOhzFXqg0rVWEfSclJvZq5fZslnz6ypHvVf3CT7qyf0A5pM682A==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - - '@esbuild/darwin-arm64@0.19.8': - resolution: {integrity: sha512-RQw9DemMbIq35Bprbboyf8SmOr4UXsRVxJ97LgB55VKKeJOOdvsIPy0nFyF2l8U+h4PtBx/1kRf0BelOYCiQcw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-x64@0.19.8': - resolution: {integrity: sha512-3sur80OT9YdeZwIVgERAysAbwncom7b4bCI2XKLjMfPymTud7e/oY4y+ci1XVp5TfQp/bppn7xLw1n/oSQY3/Q==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - - '@esbuild/freebsd-arm64@0.19.8': - resolution: {integrity: sha512-WAnPJSDattvS/XtPCTj1tPoTxERjcTpH6HsMr6ujTT+X6rylVe8ggxk8pVxzf5U1wh5sPODpawNicF5ta/9Tmw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.19.8': - resolution: {integrity: sha512-ICvZyOplIjmmhjd6mxi+zxSdpPTKFfyPPQMQTK/w+8eNK6WV01AjIztJALDtwNNfFhfZLux0tZLC+U9nSyA5Zg==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - - '@esbuild/linux-arm64@0.19.8': - resolution: {integrity: sha512-z1zMZivxDLHWnyGOctT9JP70h0beY54xDDDJt4VpTX+iwA77IFsE1vCXWmprajJGa+ZYSqkSbRQ4eyLCpCmiCQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm@0.19.8': - resolution: {integrity: sha512-H4vmI5PYqSvosPaTJuEppU9oz1dq2A7Mr2vyg5TF9Ga+3+MGgBdGzcyBP7qK9MrwFQZlvNyJrvz6GuCaj3OukQ==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-ia32@0.19.8': - resolution: {integrity: sha512-1a8suQiFJmZz1khm/rDglOc8lavtzEMRo0v6WhPgxkrjcU0LkHj+TwBrALwoz/OtMExvsqbbMI0ChyelKabSvQ==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-loong64@0.19.8': - resolution: {integrity: sha512-fHZWS2JJxnXt1uYJsDv9+b60WCc2RlvVAy1F76qOLtXRO+H4mjt3Tr6MJ5l7Q78X8KgCFudnTuiQRBhULUyBKQ==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-mips64el@0.19.8': - resolution: {integrity: sha512-Wy/z0EL5qZYLX66dVnEg9riiwls5IYnziwuju2oUiuxVc+/edvqXa04qNtbrs0Ukatg5HEzqT94Zs7J207dN5Q==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - - '@esbuild/linux-ppc64@0.19.8': - resolution: {integrity: sha512-ETaW6245wK23YIEufhMQ3HSeHO7NgsLx8gygBVldRHKhOlD1oNeNy/P67mIh1zPn2Hr2HLieQrt6tWrVwuqrxg==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - - '@esbuild/linux-riscv64@0.19.8': - resolution: {integrity: sha512-T2DRQk55SgoleTP+DtPlMrxi/5r9AeFgkhkZ/B0ap99zmxtxdOixOMI570VjdRCs9pE4Wdkz7JYrsPvsl7eESg==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-s390x@0.19.8': - resolution: {integrity: sha512-NPxbdmmo3Bk7mbNeHmcCd7R7fptJaczPYBaELk6NcXxy7HLNyWwCyDJ/Xx+/YcNH7Im5dHdx9gZ5xIwyliQCbg==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-x64@0.19.8': - resolution: {integrity: sha512-lytMAVOM3b1gPypL2TRmZ5rnXl7+6IIk8uB3eLsV1JwcizuolblXRrc5ShPrO9ls/b+RTp+E6gbsuLWHWi2zGg==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - - '@esbuild/netbsd-x64@0.19.8': - resolution: {integrity: sha512-hvWVo2VsXz/8NVt1UhLzxwAfo5sioj92uo0bCfLibB0xlOmimU/DeAEsQILlBQvkhrGjamP0/el5HU76HAitGw==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - - '@esbuild/openbsd-x64@0.19.8': - resolution: {integrity: sha512-/7Y7u77rdvmGTxR83PgaSvSBJCC2L3Kb1M/+dmSIvRvQPXXCuC97QAwMugBNG0yGcbEGfFBH7ojPzAOxfGNkwQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - - '@esbuild/sunos-x64@0.19.8': - resolution: {integrity: sha512-9Lc4s7Oi98GqFA4HzA/W2JHIYfnXbUYgekUP/Sm4BG9sfLjyv6GKKHKKVs83SMicBF2JwAX6A1PuOLMqpD001w==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - - '@esbuild/win32-arm64@0.19.8': - resolution: {integrity: sha512-rq6WzBGjSzihI9deW3fC2Gqiak68+b7qo5/3kmB6Gvbh/NYPA0sJhrnp7wgV4bNwjqM+R2AApXGxMO7ZoGhIJg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-ia32@0.19.8': - resolution: {integrity: sha512-AIAbverbg5jMvJznYiGhrd3sumfwWs8572mIJL5NQjJa06P8KfCPWZQ0NwZbPQnbQi9OWSZhFVSUWjjIrn4hSw==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-x64@0.19.8': - resolution: {integrity: sha512-bfZ0cQ1uZs2PqpulNL5j/3w+GDhP36k1K5c38QdQg+Swy51jFZWWeIkteNsufkQxp986wnqRRsb/bHbY1WQ7TA==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - - '@eslint-community/eslint-utils@4.4.0': - resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - - '@eslint-community/regexpp@4.10.0': - resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - - '@eslint/eslintrc@2.1.4': - resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@eslint/js@8.55.0': - resolution: {integrity: sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@humanwhocodes/config-array@0.11.13': - resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==} - engines: {node: '>=10.10.0'} - - '@humanwhocodes/module-importer@1.0.1': - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} - engines: {node: '>=12.22'} - - '@humanwhocodes/object-schema@2.0.1': - resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==} - - '@jridgewell/gen-mapping@0.3.3': - resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} - engines: {node: '>=6.0.0'} - - '@jridgewell/resolve-uri@3.1.1': - resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} - engines: {node: '>=6.0.0'} - - '@jridgewell/set-array@1.1.2': - resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} - engines: {node: '>=6.0.0'} - - '@jridgewell/sourcemap-codec@1.4.15': - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - - '@jridgewell/trace-mapping@0.3.9': - resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} - - '@nodelib/fs.scandir@2.1.5': - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - - '@nodelib/fs.stat@2.0.5': - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - - '@nodelib/fs.walk@1.2.8': - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - - '@rollup/rollup-android-arm-eabi@4.7.0': - resolution: {integrity: sha512-rGku10pL1StFlFvXX5pEv88KdGW6DHUghsxyP/aRYb9eH+74jTGJ3U0S/rtlsQ4yYq1Hcc7AMkoJOb1xu29Fxw==} - cpu: [arm] - os: [android] - - '@rollup/rollup-android-arm64@4.7.0': - resolution: {integrity: sha512-/EBw0cuJ/KVHiU2qyVYUhogXz7W2vXxBzeE9xtVIMC+RyitlY2vvaoysMUqASpkUtoNIHlnKTu/l7mXOPgnKOA==} - cpu: [arm64] - os: [android] - - '@rollup/rollup-darwin-arm64@4.7.0': - resolution: {integrity: sha512-4VXG1bgvClJdbEYYjQ85RkOtwN8sqI3uCxH0HC5w9fKdqzRzgG39K7GAehATGS8jghA7zNoS5CjSKkDEqWmNZg==} - cpu: [arm64] - os: [darwin] - - '@rollup/rollup-darwin-x64@4.7.0': - resolution: {integrity: sha512-/ImhO+T/RWJ96hUbxiCn2yWI0/MeQZV/aeukQQfhxiSXuZJfyqtdHPUPrc84jxCfXTxbJLmg4q+GBETeb61aNw==} - cpu: [x64] - os: [darwin] - - '@rollup/rollup-linux-arm-gnueabihf@4.7.0': - resolution: {integrity: sha512-zhye8POvTyUXlKbfPBVqoHy3t43gIgffY+7qBFqFxNqVtltQLtWeHNAbrMnXiLIfYmxcoL/feuLDote2tx+Qbg==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm64-gnu@4.7.0': - resolution: {integrity: sha512-RAdr3OJnUum6Vs83cQmKjxdTg31zJnLLTkjhcFt0auxM6jw00GD6IPFF42uasYPr/wGC6TRm7FsQiJyk0qIEfg==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-arm64-musl@4.7.0': - resolution: {integrity: sha512-nhWwYsiJwZGq7SyR3afS3EekEOsEAlrNMpPC4ZDKn5ooYSEjDLe9W/xGvoIV8/F/+HNIY6jY8lIdXjjxfxopXw==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-riscv64-gnu@4.7.0': - resolution: {integrity: sha512-rlfy5RnQG1aop1BL/gjdH42M2geMUyVQqd52GJVirqYc787A/XVvl3kQ5NG/43KXgOgE9HXgCaEH05kzQ+hLoA==} - cpu: [riscv64] - os: [linux] - - '@rollup/rollup-linux-x64-gnu@4.7.0': - resolution: {integrity: sha512-cCkoGlGWfBobdDtiiypxf79q6k3/iRVGu1HVLbD92gWV5WZbmuWJCgRM4x2N6i7ljGn1cGytPn9ZAfS8UwF6vg==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-linux-x64-musl@4.7.0': - resolution: {integrity: sha512-R2oBf2p/Arc1m+tWmiWbpHBjEcJnHVnv6bsypu4tcKdrYTpDfl1UT9qTyfkIL1iiii5D4WHxUHCg5X0pzqmxFg==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-win32-arm64-msvc@4.7.0': - resolution: {integrity: sha512-CPtgaQL1aaPc80m8SCVEoxFGHxKYIt3zQYC3AccL/SqqiWXblo3pgToHuBwR8eCP2Toa+X1WmTR/QKFMykws7g==} - cpu: [arm64] - os: [win32] - - '@rollup/rollup-win32-ia32-msvc@4.7.0': - resolution: {integrity: sha512-pmioUlttNh9GXF5x2CzNa7Z8kmRTyhEzzAC+2WOOapjewMbl+3tGuAnxbwc5JyG8Jsz2+hf/QD/n5VjimOZ63g==} - cpu: [ia32] - os: [win32] - - '@rollup/rollup-win32-x64-msvc@4.7.0': - resolution: {integrity: sha512-SeZzC2QhhdBQUm3U0c8+c/P6UlRyBcLL2Xp5KX7z46WXZxzR8RJSIWL9wSUeBTgxog5LTPJuPj0WOT9lvrtP7Q==} - cpu: [x64] - os: [win32] - - '@sindresorhus/is@4.6.0': - resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} - engines: {node: '>=10'} - - '@szmarczak/http-timer@4.0.6': - resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} - engines: {node: '>=10'} - - '@tsconfig/node10@1.0.9': - resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==} - - '@tsconfig/node12@1.0.11': - resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} - - '@tsconfig/node14@1.0.3': - resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} - - '@tsconfig/node16@1.0.4': - resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} - - '@types/cacheable-request@6.0.3': - resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} - - '@types/http-cache-semantics@4.0.4': - resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} - - '@types/json-schema@7.0.12': - resolution: {integrity: sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==} - - '@types/json5@0.0.29': - resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - - '@types/keyv@3.1.4': - resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} - - '@types/node@20.10.4': - resolution: {integrity: sha512-D08YG6rr8X90YB56tSIuBaddy/UXAA9RKJoFvrsnogAum/0pmjkgi4+2nx96A330FmioegBWmEYQ+syqCFaveg==} - - '@types/responselike@1.0.3': - resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} - - '@types/semver@7.5.6': - resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} - - '@typescript-eslint/eslint-plugin@6.13.2': - resolution: {integrity: sha512-3+9OGAWHhk4O1LlcwLBONbdXsAhLjyCFogJY/cWy2lxdVJ2JrcTF2pTGMaLl2AE7U1l31n8Py4a8bx5DLf/0dQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/parser@6.13.2': - resolution: {integrity: sha512-MUkcC+7Wt/QOGeVlM8aGGJZy1XV5YKjTpq9jK6r6/iLsGXhBVaGP5N0UYvFsu9BFlSpwY9kMretzdBH01rkRXg==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/scope-manager@6.13.2': - resolution: {integrity: sha512-CXQA0xo7z6x13FeDYCgBkjWzNqzBn8RXaE3QVQVIUm74fWJLkJkaHmHdKStrxQllGh6Q4eUGyNpMe0b1hMkXFA==} - engines: {node: ^16.0.0 || >=18.0.0} - - '@typescript-eslint/type-utils@6.13.2': - resolution: {integrity: sha512-Qr6ssS1GFongzH2qfnWKkAQmMUyZSyOr0W54nZNU1MDfo+U4Mv3XveeLZzadc/yq8iYhQZHYT+eoXJqnACM1tw==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/types@6.13.2': - resolution: {integrity: sha512-7sxbQ+EMRubQc3wTfTsycgYpSujyVbI1xw+3UMRUcrhSy+pN09y/lWzeKDbvhoqcRbHdc+APLs/PWYi/cisLPg==} - engines: {node: ^16.0.0 || >=18.0.0} - - '@typescript-eslint/typescript-estree@6.13.2': - resolution: {integrity: sha512-SuD8YLQv6WHnOEtKv8D6HZUzOub855cfPnPMKvdM/Bh1plv1f7Q/0iFUDLKKlxHcEstQnaUU4QZskgQq74t+3w==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/utils@6.13.2': - resolution: {integrity: sha512-b9Ptq4eAZUym4idijCRzl61oPCwwREcfDI8xGk751Vhzig5fFZR9CyzDz4Sp/nxSLBYxUPyh4QdIDqWykFhNmQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - - '@typescript-eslint/visitor-keys@6.13.2': - resolution: {integrity: sha512-OGznFs0eAQXJsp+xSd6k/O1UbFi/K/L7WjqeRoFE7vadjAF9y0uppXhYNQNEqygjou782maGClOoZwPqF0Drlw==} - engines: {node: ^16.0.0 || >=18.0.0} - - '@ungap/structured-clone@1.2.0': - resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - - acorn-jsx@5.3.2: - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - - acorn-walk@8.2.0: - resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} - engines: {node: '>=0.4.0'} - - acorn@8.10.0: - resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} - engines: {node: '>=0.4.0'} - hasBin: true - - ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - - ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} - - ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} - - any-promise@1.3.0: - resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} - - anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} - - arg@4.1.3: - resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} - - argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - - array-buffer-byte-length@1.0.0: - resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} - - array-includes@3.1.7: - resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} - engines: {node: '>= 0.4'} - - array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} - - array.prototype.findlastindex@1.2.3: - resolution: {integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==} - engines: {node: '>= 0.4'} - - array.prototype.flat@1.3.2: - resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} - engines: {node: '>= 0.4'} - - array.prototype.flatmap@1.3.2: - resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} - engines: {node: '>= 0.4'} - - arraybuffer.prototype.slice@1.0.2: - resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} - engines: {node: '>= 0.4'} - - asynckit@0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - - available-typed-arrays@1.0.5: - resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} - engines: {node: '>= 0.4'} - - axios@1.7.4: - resolution: {integrity: sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw==} - - balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - - binary-extensions@2.2.0: - resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} - engines: {node: '>=8'} - - brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - - braces@3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} - engines: {node: '>=8'} - - bundle-require@4.0.2: - resolution: {integrity: sha512-jwzPOChofl67PSTW2SGubV9HBQAhhR2i6nskiOThauo9dzwDUgOWQScFVaJkjEfYX+UXiD+LEx8EblQMc2wIag==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - peerDependencies: - esbuild: '>=0.17' - - cac@6.7.14: - resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} - engines: {node: '>=8'} - - cacheable-lookup@5.0.4: - resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==} - engines: {node: '>=10.6.0'} - - cacheable-request@7.0.4: - resolution: {integrity: sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==} - engines: {node: '>=8'} - - call-bind@1.0.2: - resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} - - call-bind@1.0.5: - resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} - - callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} - - chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} - - chokidar@3.5.3: - resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} - engines: {node: '>= 8.10.0'} - - clone-response@1.0.3: - resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} - - color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} - - color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - - combined-stream@1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} - engines: {node: '>= 0.8'} - - commander@4.1.1: - resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} - engines: {node: '>= 6'} - - concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - - confusing-browser-globals@1.0.11: - resolution: {integrity: sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==} - - create-require@1.1.1: - resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} - - cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} - - debug@3.2.7: - resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - decompress-response@6.0.0: - resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} - engines: {node: '>=10'} - - deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - - defer-to-connect@2.0.1: - resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} - engines: {node: '>=10'} - - define-data-property@1.1.1: - resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} - engines: {node: '>= 0.4'} - - define-properties@1.2.0: - resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} - engines: {node: '>= 0.4'} - - delayed-stream@1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} - engines: {node: '>=0.4.0'} - - diff@4.0.2: - resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} - engines: {node: '>=0.3.1'} - - dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} - - doctrine@2.1.0: - resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} - engines: {node: '>=0.10.0'} - - doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} - - end-of-stream@1.4.4: - resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} - - es-abstract@1.21.2: - resolution: {integrity: sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==} - engines: {node: '>= 0.4'} - - es-abstract@1.22.3: - resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==} - engines: {node: '>= 0.4'} - - es-set-tostringtag@2.0.1: - resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} - engines: {node: '>= 0.4'} - - es-shim-unscopables@1.0.0: - resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} - - es-to-primitive@1.2.1: - resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} - engines: {node: '>= 0.4'} - - esbuild@0.19.8: - resolution: {integrity: sha512-l7iffQpT2OrZfH2rXIp7/FkmaeZM0vxbxN9KfiCwGYuZqzMg/JdvX26R31Zxn/Pxvsrg3Y9N6XTcnknqDyyv4w==} - engines: {node: '>=12'} - hasBin: true - - escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} - - eslint-config-airbnb-base@15.0.0: - resolution: {integrity: sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==} - engines: {node: ^10.12.0 || >=12.0.0} - peerDependencies: - eslint: ^7.32.0 || ^8.2.0 - eslint-plugin-import: ^2.25.2 - - eslint-config-airbnb-typescript@17.1.0: - resolution: {integrity: sha512-GPxI5URre6dDpJ0CtcthSZVBAfI+Uw7un5OYNVxP2EYi3H81Jw701yFP7AU+/vCE7xBtFmjge7kfhhk4+RAiig==} - peerDependencies: - '@typescript-eslint/eslint-plugin': ^5.13.0 || ^6.0.0 - '@typescript-eslint/parser': ^5.0.0 || ^6.0.0 - eslint: ^7.32.0 || ^8.2.0 - eslint-plugin-import: ^2.25.3 - - eslint-config-prettier@9.1.0: - resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} - hasBin: true - peerDependencies: - eslint: '>=7.0.0' - - eslint-import-resolver-node@0.3.9: - resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} - - eslint-module-utils@2.8.0: - resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: '*' - eslint-import-resolver-node: '*' - eslint-import-resolver-typescript: '*' - eslint-import-resolver-webpack: '*' - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - eslint: - optional: true - eslint-import-resolver-node: - optional: true - eslint-import-resolver-typescript: - optional: true - eslint-import-resolver-webpack: - optional: true - - eslint-plugin-import@2.29.0: - resolution: {integrity: sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - - eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - eslint-visitor-keys@3.4.1: - resolution: {integrity: sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - eslint-visitor-keys@3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - eslint@8.55.0: - resolution: {integrity: sha512-iyUUAM0PCKj5QpwGfmCAG9XXbZCWsqP/eWAWrG/W0umvjuLRBECwSFdt+rCntju0xEH7teIABPwXpahftIaTdA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - hasBin: true - - espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - esquery@1.5.0: - resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} - engines: {node: '>=0.10'} - - esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} - - estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} - - esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} - - execa@5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} - - fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - - fast-glob@3.3.0: - resolution: {integrity: sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==} - engines: {node: '>=8.6.0'} - - fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - - fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - - fastq@1.15.0: - resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} - - file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} - - fill-range@7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} - engines: {node: '>=8'} - - find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} - - flat-cache@3.0.4: - resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} - engines: {node: ^10.12.0 || >=12.0.0} - - flatted@3.2.7: - resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} - - follow-redirects@1.15.6: - resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} - engines: {node: '>=4.0'} - peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true - - for-each@0.3.3: - resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} - - form-data@4.0.0: - resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} - engines: {node: '>= 6'} - - fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - - fsevents@2.3.2: - resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - - function-bind@1.1.1: - resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} - - function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - - function.prototype.name@1.1.5: - resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} - engines: {node: '>= 0.4'} - - function.prototype.name@1.1.6: - resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} - engines: {node: '>= 0.4'} - - functions-have-names@1.2.3: - resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - - get-intrinsic@1.2.1: - resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==} - - get-intrinsic@1.2.2: - resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} - - get-stream@5.2.0: - resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} - engines: {node: '>=8'} - - get-stream@6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} - - get-symbol-description@1.0.0: - resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} - engines: {node: '>= 0.4'} - - glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} - - glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} - - glob@7.1.6: - resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} - - globals@13.20.0: - resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==} - engines: {node: '>=8'} - - globalthis@1.0.3: - resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} - engines: {node: '>= 0.4'} - - globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} - - gopd@1.0.1: - resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} - - got@11.8.6: - resolution: {integrity: sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==} - engines: {node: '>=10.19.0'} - - graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - - has-bigints@1.0.2: - resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} - - has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} - - has-property-descriptors@1.0.0: - resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} - - has-proto@1.0.1: - resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} - engines: {node: '>= 0.4'} - - has-symbols@1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} - engines: {node: '>= 0.4'} - - has-tostringtag@1.0.0: - resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} - engines: {node: '>= 0.4'} - - has@1.0.3: - resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} - engines: {node: '>= 0.4.0'} - - hasown@2.0.0: - resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} - engines: {node: '>= 0.4'} - - http-cache-semantics@4.1.1: - resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} - - http2-wrapper@1.0.3: - resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==} - engines: {node: '>=10.19.0'} - - human-signals@2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} - - ignore@5.2.4: - resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} - engines: {node: '>= 4'} - - import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} - engines: {node: '>=6'} - - imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} - - inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} - - inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - - internal-slot@1.0.5: - resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} - engines: {node: '>= 0.4'} - - is-array-buffer@3.0.2: - resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} - - is-bigint@1.0.4: - resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} - - is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} - - is-boolean-object@1.1.2: - resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} - engines: {node: '>= 0.4'} - - is-callable@1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} - engines: {node: '>= 0.4'} - - is-core-module@2.13.1: - resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} - - is-date-object@1.0.5: - resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} - engines: {node: '>= 0.4'} - - is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - - is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} - - is-negative-zero@2.0.2: - resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} - engines: {node: '>= 0.4'} - - is-number-object@1.0.7: - resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} - engines: {node: '>= 0.4'} - - is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - - is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} - - is-regex@1.1.4: - resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} - engines: {node: '>= 0.4'} - - is-shared-array-buffer@1.0.2: - resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} - - is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} - - is-string@1.0.7: - resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} - engines: {node: '>= 0.4'} - - is-symbol@1.0.4: - resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} - engines: {node: '>= 0.4'} - - is-typed-array@1.1.10: - resolution: {integrity: sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==} - engines: {node: '>= 0.4'} - - is-typed-array@1.1.12: - resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} - engines: {node: '>= 0.4'} - - is-weakref@1.0.2: - resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} - - isarray@2.0.5: - resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} - - isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - - joycon@3.1.1: - resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} - engines: {node: '>=10'} - - js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true - - json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - - json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - - json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - - json5@1.0.2: - resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} - hasBin: true - - keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - - levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} - - lilconfig@3.0.0: - resolution: {integrity: sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==} - engines: {node: '>=14'} - - lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - - load-tsconfig@0.2.5: - resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} - - lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - - lodash.sortby@4.7.0: - resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} - - lowercase-keys@2.0.0: - resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} - engines: {node: '>=8'} - - lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} - - make-error@1.3.6: - resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} - - merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - - merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - - micromatch@4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} - engines: {node: '>=8.6'} - - mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} - - mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} - - mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - - mimic-response@1.0.1: - resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} - engines: {node: '>=4'} - - mimic-response@3.1.0: - resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} - engines: {node: '>=10'} - - minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - - minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - - ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - - mz@2.7.0: - resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} - - natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - - normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} - - normalize-url@6.1.0: - resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} - engines: {node: '>=10'} - - npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} - - object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} - - object-inspect@1.12.3: - resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} - - object-inspect@1.13.1: - resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} - - object-keys@1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} - engines: {node: '>= 0.4'} - - object.assign@4.1.4: - resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} - engines: {node: '>= 0.4'} - - object.entries@1.1.6: - resolution: {integrity: sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==} - engines: {node: '>= 0.4'} - - object.fromentries@2.0.7: - resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} - engines: {node: '>= 0.4'} - - object.groupby@1.0.1: - resolution: {integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==} - - object.values@1.1.7: - resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} - engines: {node: '>= 0.4'} - - once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - - onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} - - optionator@0.9.3: - resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} - engines: {node: '>= 0.8.0'} - - p-cancelable@2.1.1: - resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} - engines: {node: '>=8'} - - p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} - - p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} - - parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} - - path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} - - path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} - - path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - - path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - - path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} - - picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - - pirates@4.0.6: - resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} - engines: {node: '>= 6'} - - postcss-load-config@4.0.2: - resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} - engines: {node: '>= 14'} - peerDependencies: - postcss: '>=8.0.9' - ts-node: '>=9.0.0' - peerDependenciesMeta: - postcss: - optional: true - ts-node: - optional: true - - prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} - - prettier@3.1.0: - resolution: {integrity: sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==} - engines: {node: '>=14'} - hasBin: true - - proxy-from-env@1.1.0: - resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} - - pump@3.0.0: - resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} - - punycode@2.3.0: - resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} - engines: {node: '>=6'} - - queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - - quick-lru@5.1.1: - resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} - engines: {node: '>=10'} - - readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} - - regexp.prototype.flags@1.5.0: - resolution: {integrity: sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==} - engines: {node: '>= 0.4'} - - regexp.prototype.flags@1.5.1: - resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} - engines: {node: '>= 0.4'} - - resolve-alpn@1.2.1: - resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} - - resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} - - resolve-from@5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} - - resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} - hasBin: true - - responselike@2.0.1: - resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==} - - reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - - rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - hasBin: true - - rollup@4.7.0: - resolution: {integrity: sha512-7Kw0dUP4BWH78zaZCqF1rPyQ8D5DSU6URG45v1dqS/faNsx9WXyess00uTOZxKr7oR/4TOjO1CPudT8L1UsEgw==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - - run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - - safe-array-concat@1.0.1: - resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} - engines: {node: '>=0.4'} - - safe-regex-test@1.0.0: - resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} - - semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} - hasBin: true - - semver@7.5.4: - resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} - engines: {node: '>=10'} - hasBin: true - - set-function-length@1.1.1: - resolution: {integrity: sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==} - engines: {node: '>= 0.4'} - - set-function-name@2.0.1: - resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} - engines: {node: '>= 0.4'} - - shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} - - shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - - side-channel@1.0.4: - resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} - - signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - - slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} - - source-map@0.8.0-beta.0: - resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} - engines: {node: '>= 8'} - - string.prototype.trim@1.2.7: - resolution: {integrity: sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==} - engines: {node: '>= 0.4'} - - string.prototype.trim@1.2.8: - resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} - engines: {node: '>= 0.4'} - - string.prototype.trimend@1.0.6: - resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==} - - string.prototype.trimend@1.0.7: - resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} - - string.prototype.trimstart@1.0.6: - resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==} - - string.prototype.trimstart@1.0.7: - resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} - - strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} - - strip-bom@3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} - engines: {node: '>=4'} - - strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} - - strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} - - sucrase@3.32.0: - resolution: {integrity: sha512-ydQOU34rpSyj2TGyz4D2p8rbktIOZ8QY9s+DGLvFU1i5pWJE8vkpruCjGCMHsdXwnD7JDcS+noSwM/a7zyNFDQ==} - engines: {node: '>=8'} - hasBin: true - - supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} - - supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - - text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - - thenify-all@1.6.0: - resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} - engines: {node: '>=0.8'} - - thenify@3.3.1: - resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} - - to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - - tr46@1.0.1: - resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} - - tree-kill@1.2.2: - resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} - hasBin: true - - ts-api-utils@1.0.3: - resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} - engines: {node: '>=16.13.0'} - peerDependencies: - typescript: '>=4.2.0' - - ts-interface-checker@0.1.13: - resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - - ts-node@10.9.2: - resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} - hasBin: true - peerDependencies: - '@swc/core': '>=1.2.50' - '@swc/wasm': '>=1.2.50' - '@types/node': '*' - typescript: '>=2.7' - peerDependenciesMeta: - '@swc/core': - optional: true - '@swc/wasm': - optional: true - - tsconfig-paths@3.14.2: - resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==} - - tsup@8.0.1: - resolution: {integrity: sha512-hvW7gUSG96j53ZTSlT4j/KL0q1Q2l6TqGBFc6/mu/L46IoNWqLLUzLRLP1R8Q7xrJTmkDxxDoojV5uCVs1sVOg==} - engines: {node: '>=18'} - hasBin: true - peerDependencies: - '@microsoft/api-extractor': ^7.36.0 - '@swc/core': ^1 - postcss: ^8.4.12 - typescript: '>=4.5.0' - peerDependenciesMeta: - '@microsoft/api-extractor': - optional: true - '@swc/core': - optional: true - postcss: - optional: true - typescript: - optional: true - - type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} - - type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - - typed-array-buffer@1.0.0: - resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} - engines: {node: '>= 0.4'} - - typed-array-byte-length@1.0.0: - resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} - engines: {node: '>= 0.4'} - - typed-array-byte-offset@1.0.0: - resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} - engines: {node: '>= 0.4'} - - typed-array-length@1.0.4: - resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} - - typescript@5.3.3: - resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} - engines: {node: '>=14.17'} - hasBin: true - - unbox-primitive@1.0.2: - resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} - - undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - - uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - - v8-compile-cache-lib@3.0.1: - resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} - - webidl-conversions@4.0.2: - resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} - - whatwg-url@7.1.0: - resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} - - which-boxed-primitive@1.0.2: - resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} - - which-typed-array@1.1.13: - resolution: {integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==} - engines: {node: '>= 0.4'} - - which-typed-array@1.1.9: - resolution: {integrity: sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==} - engines: {node: '>= 0.4'} - - which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true - - wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - - yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - - yaml@2.3.4: - resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==} - engines: {node: '>= 14'} - - yn@3.1.1: - resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} - engines: {node: '>=6'} - - yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} - -snapshots: - - '@aashutoshrathi/word-wrap@1.2.6': {} - - '@cspotcode/source-map-support@0.8.1': - dependencies: - '@jridgewell/trace-mapping': 0.3.9 - - '@esbuild/android-arm64@0.19.8': - optional: true - - '@esbuild/android-arm@0.19.8': - optional: true - - '@esbuild/android-x64@0.19.8': - optional: true - - '@esbuild/darwin-arm64@0.19.8': - optional: true - - '@esbuild/darwin-x64@0.19.8': - optional: true - - '@esbuild/freebsd-arm64@0.19.8': - optional: true - - '@esbuild/freebsd-x64@0.19.8': - optional: true - - '@esbuild/linux-arm64@0.19.8': - optional: true - - '@esbuild/linux-arm@0.19.8': - optional: true - - '@esbuild/linux-ia32@0.19.8': - optional: true - - '@esbuild/linux-loong64@0.19.8': - optional: true - - '@esbuild/linux-mips64el@0.19.8': - optional: true - - '@esbuild/linux-ppc64@0.19.8': - optional: true - - '@esbuild/linux-riscv64@0.19.8': - optional: true - - '@esbuild/linux-s390x@0.19.8': - optional: true - - '@esbuild/linux-x64@0.19.8': - optional: true - - '@esbuild/netbsd-x64@0.19.8': - optional: true - - '@esbuild/openbsd-x64@0.19.8': - optional: true - - '@esbuild/sunos-x64@0.19.8': - optional: true - - '@esbuild/win32-arm64@0.19.8': - optional: true - - '@esbuild/win32-ia32@0.19.8': - optional: true - - '@esbuild/win32-x64@0.19.8': - optional: true - - '@eslint-community/eslint-utils@4.4.0(eslint@8.55.0)': - dependencies: - eslint: 8.55.0 - eslint-visitor-keys: 3.4.3 - - '@eslint-community/regexpp@4.10.0': {} - - '@eslint/eslintrc@2.1.4': - dependencies: - ajv: 6.12.6 - debug: 4.3.4 - espree: 9.6.1 - globals: 13.20.0 - ignore: 5.2.4 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - - '@eslint/js@8.55.0': {} - - '@humanwhocodes/config-array@0.11.13': - dependencies: - '@humanwhocodes/object-schema': 2.0.1 - debug: 4.3.4 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - - '@humanwhocodes/module-importer@1.0.1': {} - - '@humanwhocodes/object-schema@2.0.1': {} - - '@jridgewell/gen-mapping@0.3.3': - dependencies: - '@jridgewell/set-array': 1.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.9 - - '@jridgewell/resolve-uri@3.1.1': {} - - '@jridgewell/set-array@1.1.2': {} - - '@jridgewell/sourcemap-codec@1.4.15': {} - - '@jridgewell/trace-mapping@0.3.9': - dependencies: - '@jridgewell/resolve-uri': 3.1.1 - '@jridgewell/sourcemap-codec': 1.4.15 - - '@nodelib/fs.scandir@2.1.5': - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - - '@nodelib/fs.stat@2.0.5': {} - - '@nodelib/fs.walk@1.2.8': - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.15.0 - - '@rollup/rollup-android-arm-eabi@4.7.0': - optional: true - - '@rollup/rollup-android-arm64@4.7.0': - optional: true - - '@rollup/rollup-darwin-arm64@4.7.0': - optional: true - - '@rollup/rollup-darwin-x64@4.7.0': - optional: true - - '@rollup/rollup-linux-arm-gnueabihf@4.7.0': - optional: true - - '@rollup/rollup-linux-arm64-gnu@4.7.0': - optional: true - - '@rollup/rollup-linux-arm64-musl@4.7.0': - optional: true - - '@rollup/rollup-linux-riscv64-gnu@4.7.0': - optional: true - - '@rollup/rollup-linux-x64-gnu@4.7.0': - optional: true - - '@rollup/rollup-linux-x64-musl@4.7.0': - optional: true - - '@rollup/rollup-win32-arm64-msvc@4.7.0': - optional: true - - '@rollup/rollup-win32-ia32-msvc@4.7.0': - optional: true - - '@rollup/rollup-win32-x64-msvc@4.7.0': - optional: true - - '@sindresorhus/is@4.6.0': {} - - '@szmarczak/http-timer@4.0.6': - dependencies: - defer-to-connect: 2.0.1 - - '@tsconfig/node10@1.0.9': {} - - '@tsconfig/node12@1.0.11': {} - - '@tsconfig/node14@1.0.3': {} - - '@tsconfig/node16@1.0.4': {} - - '@types/cacheable-request@6.0.3': - dependencies: - '@types/http-cache-semantics': 4.0.4 - '@types/keyv': 3.1.4 - '@types/node': 20.10.4 - '@types/responselike': 1.0.3 - - '@types/http-cache-semantics@4.0.4': {} - - '@types/json-schema@7.0.12': {} - - '@types/json5@0.0.29': {} - - '@types/keyv@3.1.4': - dependencies: - '@types/node': 20.10.4 - - '@types/node@20.10.4': - dependencies: - undici-types: 5.26.5 - - '@types/responselike@1.0.3': - dependencies: - '@types/node': 20.10.4 - - '@types/semver@7.5.6': {} - - '@typescript-eslint/eslint-plugin@6.13.2(@typescript-eslint/parser@6.13.2(eslint@8.55.0)(typescript@5.3.3))(eslint@8.55.0)(typescript@5.3.3)': - dependencies: - '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.13.2(eslint@8.55.0)(typescript@5.3.3) - '@typescript-eslint/scope-manager': 6.13.2 - '@typescript-eslint/type-utils': 6.13.2(eslint@8.55.0)(typescript@5.3.3) - '@typescript-eslint/utils': 6.13.2(eslint@8.55.0)(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.13.2 - debug: 4.3.4 - eslint: 8.55.0 - graphemer: 1.4.0 - ignore: 5.2.4 - natural-compare: 1.4.0 - semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@5.3.3) - optionalDependencies: - typescript: 5.3.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/parser@6.13.2(eslint@8.55.0)(typescript@5.3.3)': - dependencies: - '@typescript-eslint/scope-manager': 6.13.2 - '@typescript-eslint/types': 6.13.2 - '@typescript-eslint/typescript-estree': 6.13.2(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.13.2 - debug: 4.3.4 - eslint: 8.55.0 - optionalDependencies: - typescript: 5.3.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/scope-manager@6.13.2': - dependencies: - '@typescript-eslint/types': 6.13.2 - '@typescript-eslint/visitor-keys': 6.13.2 - - '@typescript-eslint/type-utils@6.13.2(eslint@8.55.0)(typescript@5.3.3)': - dependencies: - '@typescript-eslint/typescript-estree': 6.13.2(typescript@5.3.3) - '@typescript-eslint/utils': 6.13.2(eslint@8.55.0)(typescript@5.3.3) - debug: 4.3.4 - eslint: 8.55.0 - ts-api-utils: 1.0.3(typescript@5.3.3) - optionalDependencies: - typescript: 5.3.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/types@6.13.2': {} - - '@typescript-eslint/typescript-estree@6.13.2(typescript@5.3.3)': - dependencies: - '@typescript-eslint/types': 6.13.2 - '@typescript-eslint/visitor-keys': 6.13.2 - debug: 4.3.4 - globby: 11.1.0 - is-glob: 4.0.3 - semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@5.3.3) - optionalDependencies: - typescript: 5.3.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/utils@6.13.2(eslint@8.55.0)(typescript@5.3.3)': - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) - '@types/json-schema': 7.0.12 - '@types/semver': 7.5.6 - '@typescript-eslint/scope-manager': 6.13.2 - '@typescript-eslint/types': 6.13.2 - '@typescript-eslint/typescript-estree': 6.13.2(typescript@5.3.3) - eslint: 8.55.0 - semver: 7.5.4 - transitivePeerDependencies: - - supports-color - - typescript - - '@typescript-eslint/visitor-keys@6.13.2': - dependencies: - '@typescript-eslint/types': 6.13.2 - eslint-visitor-keys: 3.4.1 - - '@ungap/structured-clone@1.2.0': {} - - acorn-jsx@5.3.2(acorn@8.10.0): - dependencies: - acorn: 8.10.0 - - acorn-walk@8.2.0: {} - - acorn@8.10.0: {} - - ajv@6.12.6: - dependencies: - fast-deep-equal: 3.1.3 - fast-json-stable-stringify: 2.1.0 - json-schema-traverse: 0.4.1 - uri-js: 4.4.1 - - ansi-regex@5.0.1: {} - - ansi-styles@4.3.0: - dependencies: - color-convert: 2.0.1 - - any-promise@1.3.0: {} - - anymatch@3.1.3: - dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.1 - - arg@4.1.3: {} - - argparse@2.0.1: {} - - array-buffer-byte-length@1.0.0: - dependencies: - call-bind: 1.0.2 - is-array-buffer: 3.0.2 - - array-includes@3.1.7: - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.22.3 - get-intrinsic: 1.2.1 - is-string: 1.0.7 - - array-union@2.1.0: {} - - array.prototype.findlastindex@1.2.3: - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.22.3 - es-shim-unscopables: 1.0.0 - get-intrinsic: 1.2.1 - - array.prototype.flat@1.3.2: - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.22.3 - es-shim-unscopables: 1.0.0 - - array.prototype.flatmap@1.3.2: - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.22.3 - es-shim-unscopables: 1.0.0 - - arraybuffer.prototype.slice@1.0.2: - dependencies: - array-buffer-byte-length: 1.0.0 - call-bind: 1.0.5 - define-properties: 1.2.0 - es-abstract: 1.22.3 - get-intrinsic: 1.2.2 - is-array-buffer: 3.0.2 - is-shared-array-buffer: 1.0.2 - - asynckit@0.4.0: {} - - available-typed-arrays@1.0.5: {} - - axios@1.7.4: - dependencies: - follow-redirects: 1.15.6 - form-data: 4.0.0 - proxy-from-env: 1.1.0 - transitivePeerDependencies: - - debug - - balanced-match@1.0.2: {} - - binary-extensions@2.2.0: {} - - brace-expansion@1.1.11: - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - - braces@3.0.2: - dependencies: - fill-range: 7.0.1 - - bundle-require@4.0.2(esbuild@0.19.8): - dependencies: - esbuild: 0.19.8 - load-tsconfig: 0.2.5 - - cac@6.7.14: {} - - cacheable-lookup@5.0.4: {} - - cacheable-request@7.0.4: - dependencies: - clone-response: 1.0.3 - get-stream: 5.2.0 - http-cache-semantics: 4.1.1 - keyv: 4.5.4 - lowercase-keys: 2.0.0 - normalize-url: 6.1.0 - responselike: 2.0.1 - - call-bind@1.0.2: - dependencies: - function-bind: 1.1.1 - get-intrinsic: 1.2.1 - - call-bind@1.0.5: - dependencies: - function-bind: 1.1.2 - get-intrinsic: 1.2.2 - set-function-length: 1.1.1 - - callsites@3.1.0: {} - - chalk@4.1.2: - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - - chokidar@3.5.3: - dependencies: - anymatch: 3.1.3 - braces: 3.0.2 - glob-parent: 5.1.2 - is-binary-path: 2.1.0 - is-glob: 4.0.3 - normalize-path: 3.0.0 - readdirp: 3.6.0 - optionalDependencies: - fsevents: 2.3.2 - - clone-response@1.0.3: - dependencies: - mimic-response: 1.0.1 - - color-convert@2.0.1: - dependencies: - color-name: 1.1.4 - - color-name@1.1.4: {} - - combined-stream@1.0.8: - dependencies: - delayed-stream: 1.0.0 - - commander@4.1.1: {} - - concat-map@0.0.1: {} - - confusing-browser-globals@1.0.11: {} - - create-require@1.1.1: {} - - cross-spawn@7.0.3: - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - - debug@3.2.7: - dependencies: - ms: 2.1.2 - - debug@4.3.4: - dependencies: - ms: 2.1.2 - - decompress-response@6.0.0: - dependencies: - mimic-response: 3.1.0 - - deep-is@0.1.4: {} - - defer-to-connect@2.0.1: {} - - define-data-property@1.1.1: - dependencies: - get-intrinsic: 1.2.2 - gopd: 1.0.1 - has-property-descriptors: 1.0.0 - - define-properties@1.2.0: - dependencies: - has-property-descriptors: 1.0.0 - object-keys: 1.1.1 - - delayed-stream@1.0.0: {} - - diff@4.0.2: {} - - dir-glob@3.0.1: - dependencies: - path-type: 4.0.0 - - doctrine@2.1.0: - dependencies: - esutils: 2.0.3 - - doctrine@3.0.0: - dependencies: - esutils: 2.0.3 - - end-of-stream@1.4.4: - dependencies: - once: 1.4.0 - - es-abstract@1.21.2: - dependencies: - array-buffer-byte-length: 1.0.0 - available-typed-arrays: 1.0.5 - call-bind: 1.0.2 - es-set-tostringtag: 2.0.1 - es-to-primitive: 1.2.1 - function.prototype.name: 1.1.5 - get-intrinsic: 1.2.1 - get-symbol-description: 1.0.0 - globalthis: 1.0.3 - gopd: 1.0.1 - has: 1.0.3 - has-property-descriptors: 1.0.0 - has-proto: 1.0.1 - has-symbols: 1.0.3 - internal-slot: 1.0.5 - is-array-buffer: 3.0.2 - is-callable: 1.2.7 - is-negative-zero: 2.0.2 - is-regex: 1.1.4 - is-shared-array-buffer: 1.0.2 - is-string: 1.0.7 - is-typed-array: 1.1.10 - is-weakref: 1.0.2 - object-inspect: 1.12.3 - object-keys: 1.1.1 - object.assign: 4.1.4 - regexp.prototype.flags: 1.5.0 - safe-regex-test: 1.0.0 - string.prototype.trim: 1.2.7 - string.prototype.trimend: 1.0.6 - string.prototype.trimstart: 1.0.6 - typed-array-length: 1.0.4 - unbox-primitive: 1.0.2 - which-typed-array: 1.1.9 - - es-abstract@1.22.3: - dependencies: - array-buffer-byte-length: 1.0.0 - arraybuffer.prototype.slice: 1.0.2 - available-typed-arrays: 1.0.5 - call-bind: 1.0.5 - es-set-tostringtag: 2.0.1 - es-to-primitive: 1.2.1 - function.prototype.name: 1.1.6 - get-intrinsic: 1.2.2 - get-symbol-description: 1.0.0 - globalthis: 1.0.3 - gopd: 1.0.1 - has-property-descriptors: 1.0.0 - has-proto: 1.0.1 - has-symbols: 1.0.3 - hasown: 2.0.0 - internal-slot: 1.0.5 - is-array-buffer: 3.0.2 - is-callable: 1.2.7 - is-negative-zero: 2.0.2 - is-regex: 1.1.4 - is-shared-array-buffer: 1.0.2 - is-string: 1.0.7 - is-typed-array: 1.1.12 - is-weakref: 1.0.2 - object-inspect: 1.13.1 - object-keys: 1.1.1 - object.assign: 4.1.4 - regexp.prototype.flags: 1.5.1 - safe-array-concat: 1.0.1 - safe-regex-test: 1.0.0 - string.prototype.trim: 1.2.8 - string.prototype.trimend: 1.0.7 - string.prototype.trimstart: 1.0.7 - typed-array-buffer: 1.0.0 - typed-array-byte-length: 1.0.0 - typed-array-byte-offset: 1.0.0 - typed-array-length: 1.0.4 - unbox-primitive: 1.0.2 - which-typed-array: 1.1.13 - - es-set-tostringtag@2.0.1: - dependencies: - get-intrinsic: 1.2.1 - has: 1.0.3 - has-tostringtag: 1.0.0 - - es-shim-unscopables@1.0.0: - dependencies: - has: 1.0.3 - - es-to-primitive@1.2.1: - dependencies: - is-callable: 1.2.7 - is-date-object: 1.0.5 - is-symbol: 1.0.4 - - esbuild@0.19.8: - optionalDependencies: - '@esbuild/android-arm': 0.19.8 - '@esbuild/android-arm64': 0.19.8 - '@esbuild/android-x64': 0.19.8 - '@esbuild/darwin-arm64': 0.19.8 - '@esbuild/darwin-x64': 0.19.8 - '@esbuild/freebsd-arm64': 0.19.8 - '@esbuild/freebsd-x64': 0.19.8 - '@esbuild/linux-arm': 0.19.8 - '@esbuild/linux-arm64': 0.19.8 - '@esbuild/linux-ia32': 0.19.8 - '@esbuild/linux-loong64': 0.19.8 - '@esbuild/linux-mips64el': 0.19.8 - '@esbuild/linux-ppc64': 0.19.8 - '@esbuild/linux-riscv64': 0.19.8 - '@esbuild/linux-s390x': 0.19.8 - '@esbuild/linux-x64': 0.19.8 - '@esbuild/netbsd-x64': 0.19.8 - '@esbuild/openbsd-x64': 0.19.8 - '@esbuild/sunos-x64': 0.19.8 - '@esbuild/win32-arm64': 0.19.8 - '@esbuild/win32-ia32': 0.19.8 - '@esbuild/win32-x64': 0.19.8 - - escape-string-regexp@4.0.0: {} - - eslint-config-airbnb-base@15.0.0(eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.13.2(eslint@8.55.0)(typescript@5.3.3))(eslint@8.55.0))(eslint@8.55.0): - dependencies: - confusing-browser-globals: 1.0.11 - eslint: 8.55.0 - eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.13.2(eslint@8.55.0)(typescript@5.3.3))(eslint@8.55.0) - object.assign: 4.1.4 - object.entries: 1.1.6 - semver: 6.3.1 - - eslint-config-airbnb-typescript@17.1.0(@typescript-eslint/eslint-plugin@6.13.2(@typescript-eslint/parser@6.13.2(eslint@8.55.0)(typescript@5.3.3))(eslint@8.55.0)(typescript@5.3.3))(@typescript-eslint/parser@6.13.2(eslint@8.55.0)(typescript@5.3.3))(eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.13.2(eslint@8.55.0)(typescript@5.3.3))(eslint@8.55.0))(eslint@8.55.0): - dependencies: - '@typescript-eslint/eslint-plugin': 6.13.2(@typescript-eslint/parser@6.13.2(eslint@8.55.0)(typescript@5.3.3))(eslint@8.55.0)(typescript@5.3.3) - '@typescript-eslint/parser': 6.13.2(eslint@8.55.0)(typescript@5.3.3) - eslint: 8.55.0 - eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.13.2(eslint@8.55.0)(typescript@5.3.3))(eslint@8.55.0))(eslint@8.55.0) - eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.13.2(eslint@8.55.0)(typescript@5.3.3))(eslint@8.55.0) - - eslint-config-prettier@9.1.0(eslint@8.55.0): - dependencies: - eslint: 8.55.0 - - eslint-import-resolver-node@0.3.9: - dependencies: - debug: 3.2.7 - is-core-module: 2.13.1 - resolve: 1.22.8 - transitivePeerDependencies: - - supports-color - - eslint-module-utils@2.8.0(@typescript-eslint/parser@6.13.2(eslint@8.55.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint@8.55.0): - dependencies: - debug: 3.2.7 - optionalDependencies: - '@typescript-eslint/parser': 6.13.2(eslint@8.55.0)(typescript@5.3.3) - eslint: 8.55.0 - eslint-import-resolver-node: 0.3.9 - transitivePeerDependencies: - - supports-color - - eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.13.2(eslint@8.55.0)(typescript@5.3.3))(eslint@8.55.0): - dependencies: - array-includes: 3.1.7 - array.prototype.findlastindex: 1.2.3 - array.prototype.flat: 1.3.2 - array.prototype.flatmap: 1.3.2 - debug: 3.2.7 - doctrine: 2.1.0 - eslint: 8.55.0 - eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.13.2(eslint@8.55.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint@8.55.0) - hasown: 2.0.0 - is-core-module: 2.13.1 - is-glob: 4.0.3 - minimatch: 3.1.2 - object.fromentries: 2.0.7 - object.groupby: 1.0.1 - object.values: 1.1.7 - semver: 6.3.1 - tsconfig-paths: 3.14.2 - optionalDependencies: - '@typescript-eslint/parser': 6.13.2(eslint@8.55.0)(typescript@5.3.3) - transitivePeerDependencies: - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - supports-color - - eslint-scope@7.2.2: - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 - - eslint-visitor-keys@3.4.1: {} - - eslint-visitor-keys@3.4.3: {} - - eslint@8.55.0: - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) - '@eslint-community/regexpp': 4.10.0 - '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.55.0 - '@humanwhocodes/config-array': 0.11.13 - '@humanwhocodes/module-importer': 1.0.1 - '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.2.0 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.3 - debug: 4.3.4 - doctrine: 3.0.0 - escape-string-regexp: 4.0.0 - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 - esquery: 1.5.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 - find-up: 5.0.0 - glob-parent: 6.0.2 - globals: 13.20.0 - graphemer: 1.4.0 - ignore: 5.2.4 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - is-path-inside: 3.0.3 - js-yaml: 4.1.0 - json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.3 - strip-ansi: 6.0.1 - text-table: 0.2.0 - transitivePeerDependencies: - - supports-color - - espree@9.6.1: - dependencies: - acorn: 8.10.0 - acorn-jsx: 5.3.2(acorn@8.10.0) - eslint-visitor-keys: 3.4.3 - - esquery@1.5.0: - dependencies: - estraverse: 5.3.0 - - esrecurse@4.3.0: - dependencies: - estraverse: 5.3.0 - - estraverse@5.3.0: {} - - esutils@2.0.3: {} - - execa@5.1.1: - dependencies: - cross-spawn: 7.0.3 - get-stream: 6.0.1 - human-signals: 2.1.0 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - signal-exit: 3.0.7 - strip-final-newline: 2.0.0 - - fast-deep-equal@3.1.3: {} - - fast-glob@3.3.0: - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.5 - - fast-json-stable-stringify@2.1.0: {} - - fast-levenshtein@2.0.6: {} - - fastq@1.15.0: - dependencies: - reusify: 1.0.4 - - file-entry-cache@6.0.1: - dependencies: - flat-cache: 3.0.4 - - fill-range@7.0.1: - dependencies: - to-regex-range: 5.0.1 - - find-up@5.0.0: - dependencies: - locate-path: 6.0.0 - path-exists: 4.0.0 - - flat-cache@3.0.4: - dependencies: - flatted: 3.2.7 - rimraf: 3.0.2 - - flatted@3.2.7: {} - - follow-redirects@1.15.6: {} - - for-each@0.3.3: - dependencies: - is-callable: 1.2.7 - - form-data@4.0.0: - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - mime-types: 2.1.35 - - fs.realpath@1.0.0: {} - - fsevents@2.3.2: - optional: true - - function-bind@1.1.1: {} - - function-bind@1.1.2: {} - - function.prototype.name@1.1.5: - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.2 - functions-have-names: 1.2.3 - - function.prototype.name@1.1.6: - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.0 - es-abstract: 1.22.3 - functions-have-names: 1.2.3 - - functions-have-names@1.2.3: {} - - get-intrinsic@1.2.1: - dependencies: - function-bind: 1.1.1 - has: 1.0.3 - has-proto: 1.0.1 - has-symbols: 1.0.3 - - get-intrinsic@1.2.2: - dependencies: - function-bind: 1.1.2 - has-proto: 1.0.1 - has-symbols: 1.0.3 - hasown: 2.0.0 - - get-stream@5.2.0: - dependencies: - pump: 3.0.0 - - get-stream@6.0.1: {} - - get-symbol-description@1.0.0: - dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 - - glob-parent@5.1.2: - dependencies: - is-glob: 4.0.3 - - glob-parent@6.0.2: - dependencies: - is-glob: 4.0.3 - - glob@7.1.6: - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - - globals@13.20.0: - dependencies: - type-fest: 0.20.2 - - globalthis@1.0.3: - dependencies: - define-properties: 1.2.0 - - globby@11.1.0: - dependencies: - array-union: 2.1.0 - dir-glob: 3.0.1 - fast-glob: 3.3.0 - ignore: 5.2.4 - merge2: 1.4.1 - slash: 3.0.0 - - gopd@1.0.1: - dependencies: - get-intrinsic: 1.2.1 - - got@11.8.6: - dependencies: - '@sindresorhus/is': 4.6.0 - '@szmarczak/http-timer': 4.0.6 - '@types/cacheable-request': 6.0.3 - '@types/responselike': 1.0.3 - cacheable-lookup: 5.0.4 - cacheable-request: 7.0.4 - decompress-response: 6.0.0 - http2-wrapper: 1.0.3 - lowercase-keys: 2.0.0 - p-cancelable: 2.1.1 - responselike: 2.0.1 - - graphemer@1.4.0: {} - - has-bigints@1.0.2: {} - - has-flag@4.0.0: {} - - has-property-descriptors@1.0.0: - dependencies: - get-intrinsic: 1.2.1 - - has-proto@1.0.1: {} - - has-symbols@1.0.3: {} - - has-tostringtag@1.0.0: - dependencies: - has-symbols: 1.0.3 - - has@1.0.3: - dependencies: - function-bind: 1.1.1 - - hasown@2.0.0: - dependencies: - function-bind: 1.1.2 - - http-cache-semantics@4.1.1: {} - - http2-wrapper@1.0.3: - dependencies: - quick-lru: 5.1.1 - resolve-alpn: 1.2.1 - - human-signals@2.1.0: {} - - ignore@5.2.4: {} - - import-fresh@3.3.0: - dependencies: - parent-module: 1.0.1 - resolve-from: 4.0.0 - - imurmurhash@0.1.4: {} - - inflight@1.0.6: - dependencies: - once: 1.4.0 - wrappy: 1.0.2 - - inherits@2.0.4: {} - - internal-slot@1.0.5: - dependencies: - get-intrinsic: 1.2.1 - has: 1.0.3 - side-channel: 1.0.4 - - is-array-buffer@3.0.2: - dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 - is-typed-array: 1.1.10 - - is-bigint@1.0.4: - dependencies: - has-bigints: 1.0.2 - - is-binary-path@2.1.0: - dependencies: - binary-extensions: 2.2.0 - - is-boolean-object@1.1.2: - dependencies: - call-bind: 1.0.2 - has-tostringtag: 1.0.0 - - is-callable@1.2.7: {} - - is-core-module@2.13.1: - dependencies: - hasown: 2.0.0 - - is-date-object@1.0.5: - dependencies: - has-tostringtag: 1.0.0 - - is-extglob@2.1.1: {} - - is-glob@4.0.3: - dependencies: - is-extglob: 2.1.1 - - is-negative-zero@2.0.2: {} - - is-number-object@1.0.7: - dependencies: - has-tostringtag: 1.0.0 - - is-number@7.0.0: {} - - is-path-inside@3.0.3: {} - - is-regex@1.1.4: - dependencies: - call-bind: 1.0.2 - has-tostringtag: 1.0.0 - - is-shared-array-buffer@1.0.2: - dependencies: - call-bind: 1.0.2 - - is-stream@2.0.1: {} - - is-string@1.0.7: - dependencies: - has-tostringtag: 1.0.0 - - is-symbol@1.0.4: - dependencies: - has-symbols: 1.0.3 - - is-typed-array@1.1.10: - dependencies: - available-typed-arrays: 1.0.5 - call-bind: 1.0.2 - for-each: 0.3.3 - gopd: 1.0.1 - has-tostringtag: 1.0.0 - - is-typed-array@1.1.12: - dependencies: - which-typed-array: 1.1.13 - - is-weakref@1.0.2: - dependencies: - call-bind: 1.0.2 - - isarray@2.0.5: {} - - isexe@2.0.0: {} - - joycon@3.1.1: {} - - js-yaml@4.1.0: - dependencies: - argparse: 2.0.1 - - json-buffer@3.0.1: {} - - json-schema-traverse@0.4.1: {} - - json-stable-stringify-without-jsonify@1.0.1: {} - - json5@1.0.2: - dependencies: - minimist: 1.2.8 - - keyv@4.5.4: - dependencies: - json-buffer: 3.0.1 - - levn@0.4.1: - dependencies: - prelude-ls: 1.2.1 - type-check: 0.4.0 - - lilconfig@3.0.0: {} - - lines-and-columns@1.2.4: {} - - load-tsconfig@0.2.5: {} - - locate-path@6.0.0: - dependencies: - p-locate: 5.0.0 - - lodash.merge@4.6.2: {} - - lodash.sortby@4.7.0: {} - - lowercase-keys@2.0.0: {} - - lru-cache@6.0.0: - dependencies: - yallist: 4.0.0 - - make-error@1.3.6: {} - - merge-stream@2.0.0: {} - - merge2@1.4.1: {} - - micromatch@4.0.5: - dependencies: - braces: 3.0.2 - picomatch: 2.3.1 - - mime-db@1.52.0: {} - - mime-types@2.1.35: - dependencies: - mime-db: 1.52.0 - - mimic-fn@2.1.0: {} - - mimic-response@1.0.1: {} - - mimic-response@3.1.0: {} - - minimatch@3.1.2: - dependencies: - brace-expansion: 1.1.11 - - minimist@1.2.8: {} - - ms@2.1.2: {} - - mz@2.7.0: - dependencies: - any-promise: 1.3.0 - object-assign: 4.1.1 - thenify-all: 1.6.0 - - natural-compare@1.4.0: {} - - normalize-path@3.0.0: {} - - normalize-url@6.1.0: {} - - npm-run-path@4.0.1: - dependencies: - path-key: 3.1.1 - - object-assign@4.1.1: {} - - object-inspect@1.12.3: {} - - object-inspect@1.13.1: {} - - object-keys@1.1.1: {} - - object.assign@4.1.4: - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - has-symbols: 1.0.3 - object-keys: 1.1.1 - - object.entries@1.1.6: - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.2 - - object.fromentries@2.0.7: - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.22.3 - - object.groupby@1.0.1: - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.22.3 - get-intrinsic: 1.2.1 - - object.values@1.1.7: - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.22.3 - - once@1.4.0: - dependencies: - wrappy: 1.0.2 - - onetime@5.1.2: - dependencies: - mimic-fn: 2.1.0 - - optionator@0.9.3: - dependencies: - '@aashutoshrathi/word-wrap': 1.2.6 - deep-is: 0.1.4 - fast-levenshtein: 2.0.6 - levn: 0.4.1 - prelude-ls: 1.2.1 - type-check: 0.4.0 - - p-cancelable@2.1.1: {} - - p-limit@3.1.0: - dependencies: - yocto-queue: 0.1.0 - - p-locate@5.0.0: - dependencies: - p-limit: 3.1.0 - - parent-module@1.0.1: - dependencies: - callsites: 3.1.0 - - path-exists@4.0.0: {} - - path-is-absolute@1.0.1: {} - - path-key@3.1.1: {} - - path-parse@1.0.7: {} - - path-type@4.0.0: {} - - picomatch@2.3.1: {} - - pirates@4.0.6: {} - - postcss-load-config@4.0.2(ts-node@10.9.2(@types/node@20.10.4)(typescript@5.3.3)): - dependencies: - lilconfig: 3.0.0 - yaml: 2.3.4 - optionalDependencies: - ts-node: 10.9.2(@types/node@20.10.4)(typescript@5.3.3) - - prelude-ls@1.2.1: {} - - prettier@3.1.0: {} - - proxy-from-env@1.1.0: {} - - pump@3.0.0: - dependencies: - end-of-stream: 1.4.4 - once: 1.4.0 - - punycode@2.3.0: {} - - queue-microtask@1.2.3: {} - - quick-lru@5.1.1: {} - - readdirp@3.6.0: - dependencies: - picomatch: 2.3.1 - - regexp.prototype.flags@1.5.0: - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - functions-have-names: 1.2.3 - - regexp.prototype.flags@1.5.1: - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.0 - set-function-name: 2.0.1 - - resolve-alpn@1.2.1: {} - - resolve-from@4.0.0: {} - - resolve-from@5.0.0: {} - - resolve@1.22.8: - dependencies: - is-core-module: 2.13.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - - responselike@2.0.1: - dependencies: - lowercase-keys: 2.0.0 - - reusify@1.0.4: {} - - rimraf@3.0.2: - dependencies: - glob: 7.1.6 - - rollup@4.7.0: - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.7.0 - '@rollup/rollup-android-arm64': 4.7.0 - '@rollup/rollup-darwin-arm64': 4.7.0 - '@rollup/rollup-darwin-x64': 4.7.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.7.0 - '@rollup/rollup-linux-arm64-gnu': 4.7.0 - '@rollup/rollup-linux-arm64-musl': 4.7.0 - '@rollup/rollup-linux-riscv64-gnu': 4.7.0 - '@rollup/rollup-linux-x64-gnu': 4.7.0 - '@rollup/rollup-linux-x64-musl': 4.7.0 - '@rollup/rollup-win32-arm64-msvc': 4.7.0 - '@rollup/rollup-win32-ia32-msvc': 4.7.0 - '@rollup/rollup-win32-x64-msvc': 4.7.0 - fsevents: 2.3.2 - - run-parallel@1.2.0: - dependencies: - queue-microtask: 1.2.3 - - safe-array-concat@1.0.1: - dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 - has-symbols: 1.0.3 - isarray: 2.0.5 - - safe-regex-test@1.0.0: - dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 - is-regex: 1.1.4 - - semver@6.3.1: {} - - semver@7.5.4: - dependencies: - lru-cache: 6.0.0 - - set-function-length@1.1.1: - dependencies: - define-data-property: 1.1.1 - get-intrinsic: 1.2.2 - gopd: 1.0.1 - has-property-descriptors: 1.0.0 - - set-function-name@2.0.1: - dependencies: - define-data-property: 1.1.1 - functions-have-names: 1.2.3 - has-property-descriptors: 1.0.0 - - shebang-command@2.0.0: - dependencies: - shebang-regex: 3.0.0 - - shebang-regex@3.0.0: {} - - side-channel@1.0.4: - dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 - object-inspect: 1.12.3 - - signal-exit@3.0.7: {} - - slash@3.0.0: {} - - source-map@0.8.0-beta.0: - dependencies: - whatwg-url: 7.1.0 - - string.prototype.trim@1.2.7: - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.2 - - string.prototype.trim@1.2.8: - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.0 - es-abstract: 1.22.3 - - string.prototype.trimend@1.0.6: - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.2 - - string.prototype.trimend@1.0.7: - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.0 - es-abstract: 1.22.3 - - string.prototype.trimstart@1.0.6: - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.2 - - string.prototype.trimstart@1.0.7: - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.0 - es-abstract: 1.22.3 - - strip-ansi@6.0.1: - dependencies: - ansi-regex: 5.0.1 - - strip-bom@3.0.0: {} - - strip-final-newline@2.0.0: {} - - strip-json-comments@3.1.1: {} - - sucrase@3.32.0: - dependencies: - '@jridgewell/gen-mapping': 0.3.3 - commander: 4.1.1 - glob: 7.1.6 - lines-and-columns: 1.2.4 - mz: 2.7.0 - pirates: 4.0.6 - ts-interface-checker: 0.1.13 - - supports-color@7.2.0: - dependencies: - has-flag: 4.0.0 - - supports-preserve-symlinks-flag@1.0.0: {} - - text-table@0.2.0: {} - - thenify-all@1.6.0: - dependencies: - thenify: 3.3.1 - - thenify@3.3.1: - dependencies: - any-promise: 1.3.0 - - to-regex-range@5.0.1: - dependencies: - is-number: 7.0.0 - - tr46@1.0.1: - dependencies: - punycode: 2.3.0 - - tree-kill@1.2.2: {} - - ts-api-utils@1.0.3(typescript@5.3.3): - dependencies: - typescript: 5.3.3 - - ts-interface-checker@0.1.13: {} - - ts-node@10.9.2(@types/node@20.10.4)(typescript@5.3.3): - dependencies: - '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.9 - '@tsconfig/node12': 1.0.11 - '@tsconfig/node14': 1.0.3 - '@tsconfig/node16': 1.0.4 - '@types/node': 20.10.4 - acorn: 8.10.0 - acorn-walk: 8.2.0 - arg: 4.1.3 - create-require: 1.1.1 - diff: 4.0.2 - make-error: 1.3.6 - typescript: 5.3.3 - v8-compile-cache-lib: 3.0.1 - yn: 3.1.1 - - tsconfig-paths@3.14.2: - dependencies: - '@types/json5': 0.0.29 - json5: 1.0.2 - minimist: 1.2.8 - strip-bom: 3.0.0 - - tsup@8.0.1(ts-node@10.9.2(@types/node@20.10.4)(typescript@5.3.3))(typescript@5.3.3): - dependencies: - bundle-require: 4.0.2(esbuild@0.19.8) - cac: 6.7.14 - chokidar: 3.5.3 - debug: 4.3.4 - esbuild: 0.19.8 - execa: 5.1.1 - globby: 11.1.0 - joycon: 3.1.1 - postcss-load-config: 4.0.2(ts-node@10.9.2(@types/node@20.10.4)(typescript@5.3.3)) - resolve-from: 5.0.0 - rollup: 4.7.0 - source-map: 0.8.0-beta.0 - sucrase: 3.32.0 - tree-kill: 1.2.2 - optionalDependencies: - typescript: 5.3.3 - transitivePeerDependencies: - - supports-color - - ts-node - - type-check@0.4.0: - dependencies: - prelude-ls: 1.2.1 - - type-fest@0.20.2: {} - - typed-array-buffer@1.0.0: - dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 - is-typed-array: 1.1.12 - - typed-array-byte-length@1.0.0: - dependencies: - call-bind: 1.0.5 - for-each: 0.3.3 - has-proto: 1.0.1 - is-typed-array: 1.1.12 - - typed-array-byte-offset@1.0.0: - dependencies: - available-typed-arrays: 1.0.5 - call-bind: 1.0.5 - for-each: 0.3.3 - has-proto: 1.0.1 - is-typed-array: 1.1.12 - - typed-array-length@1.0.4: - dependencies: - call-bind: 1.0.2 - for-each: 0.3.3 - is-typed-array: 1.1.10 - - typescript@5.3.3: {} - - unbox-primitive@1.0.2: - dependencies: - call-bind: 1.0.2 - has-bigints: 1.0.2 - has-symbols: 1.0.3 - which-boxed-primitive: 1.0.2 - - undici-types@5.26.5: {} - - uri-js@4.4.1: - dependencies: - punycode: 2.3.0 - - v8-compile-cache-lib@3.0.1: {} - - webidl-conversions@4.0.2: {} - - whatwg-url@7.1.0: - dependencies: - lodash.sortby: 4.7.0 - tr46: 1.0.1 - webidl-conversions: 4.0.2 - - which-boxed-primitive@1.0.2: - dependencies: - is-bigint: 1.0.4 - is-boolean-object: 1.1.2 - is-number-object: 1.0.7 - is-string: 1.0.7 - is-symbol: 1.0.4 - - which-typed-array@1.1.13: - dependencies: - available-typed-arrays: 1.0.5 - call-bind: 1.0.5 - for-each: 0.3.3 - gopd: 1.0.1 - has-tostringtag: 1.0.0 - - which-typed-array@1.1.9: - dependencies: - available-typed-arrays: 1.0.5 - call-bind: 1.0.2 - for-each: 0.3.3 - gopd: 1.0.1 - has-tostringtag: 1.0.0 - is-typed-array: 1.1.10 - - which@2.0.2: - dependencies: - isexe: 2.0.0 - - wrappy@1.0.2: {} - - yallist@4.0.0: {} - - yaml@2.3.4: {} - - yn@3.1.1: {} - - yocto-queue@0.1.0: {} diff --git a/ecosystem/typescript/aptos-client/src/cookieJar.ts b/ecosystem/typescript/aptos-client/src/cookieJar.ts deleted file mode 100644 index f45c46868bc07..0000000000000 --- a/ecosystem/typescript/aptos-client/src/cookieJar.ts +++ /dev/null @@ -1,84 +0,0 @@ -interface Cookie { - name: string; - value: string; - expires?: Date; - path?: string; - sameSite?: "Lax" | "None" | "Strict"; - secure?: boolean; -} - -export class CookieJar { - constructor(private jar = new Map()) {} - - setCookie(url: URL, cookieStr: string) { - const key = url.origin.toLowerCase(); - if (!this.jar.has(key)) { - this.jar.set(key, []); - } - - const cookie = CookieJar.parse(cookieStr); - this.jar.set(key, [...(this.jar.get(key)?.filter((c) => c.name !== cookie.name) || []), cookie]); - } - - getCookies(url: URL): Cookie[] { - const key = url.origin.toLowerCase(); - if (!this.jar.get(key)) { - return []; - } - - // Filter out expired cookies - return this.jar.get(key)?.filter((cookie) => !cookie.expires || cookie.expires > new Date()) || []; - } - - static parse(str: string): Cookie { - if (typeof str !== "string") { - throw new Error("argument str must be a string"); - } - - const parts = str.split(";").map((part) => part.trim()); - - let cookie: Cookie; - - if (parts.length > 0) { - const [name, value] = parts[0].split("="); - if (!name || !value) { - throw new Error("Invalid cookie"); - } - - cookie = { - name, - value, - }; - } else { - throw new Error("Invalid cookie"); - } - - parts.slice(1).forEach((part) => { - const [name, value] = part.split("="); - if (!name.trim()) { - throw new Error("Invalid cookie"); - } - - const nameLow = name.toLowerCase(); - // eslint-disable-next-line quotes - const val = value?.charAt(0) === "'" || value?.charAt(0) === '"' ? value?.slice(1, -1) : value; - if (nameLow === "expires") { - cookie.expires = new Date(val); - } - if (nameLow === "path") { - cookie.path = val; - } - if (nameLow === "samesite") { - if (val !== "Lax" && val !== "None" && val !== "Strict") { - throw new Error("Invalid cookie SameSite value"); - } - cookie.sameSite = val; - } - if (nameLow === "secure") { - cookie.secure = true; - } - }); - - return cookie; - } -} diff --git a/ecosystem/typescript/aptos-client/src/index.browser.ts b/ecosystem/typescript/aptos-client/src/index.browser.ts deleted file mode 100644 index 79c8d747d62d7..0000000000000 --- a/ecosystem/typescript/aptos-client/src/index.browser.ts +++ /dev/null @@ -1,31 +0,0 @@ -import axios, { AxiosRequestConfig, AxiosError } from "axios"; -import { AptosClientRequest, AptosClientResponse } from "./types"; - -export default async function aptosClient(options: AptosClientRequest): Promise> { - const { params, method, url, headers, body, overrides } = options; - const requestConfig: AxiosRequestConfig = { - headers, - method, - url, - params, - data: body, - withCredentials: overrides?.WITH_CREDENTIALS ?? true, - }; - - try { - const response = await axios(requestConfig); - return { - status: response.status, - statusText: response.statusText!, - data: response.data, - headers: response.headers, - config: response.config, - }; - } catch (error) { - const axiosError = error as AxiosError; - if (axiosError.response) { - return axiosError.response; - } - throw error; - } -} diff --git a/ecosystem/typescript/aptos-client/src/index.node.ts b/ecosystem/typescript/aptos-client/src/index.node.ts deleted file mode 100644 index 5353bc9f783be..0000000000000 --- a/ecosystem/typescript/aptos-client/src/index.node.ts +++ /dev/null @@ -1,92 +0,0 @@ -import got, { OptionsOfJSONResponseBody, RequestError, Response } from "got"; -import { CookieJar } from "./cookieJar"; -import { AptosClientRequest, AptosClientResponse } from "./types"; - -const cookieJar = new CookieJar(); - -export default async function aptosClient(requestOptions: AptosClientRequest): Promise> { - const { params, method, url, headers, body } = requestOptions; - - const request: OptionsOfJSONResponseBody = { - http2: true, - searchParams: convertBigIntToString(params), - method, - url, - responseType: "json", - headers, - hooks: { - beforeRequest: [ - (options) => { - const cookies = cookieJar.getCookies(new URL(options.url!)); - - if (cookies?.length > 0 && options.headers) { - /* eslint-disable no-param-reassign */ - options.headers.cookie = cookies.map((cookie: any) => `${cookie.name}=${cookie.value}`).join("; "); - } - }, - ], - afterResponse: [ - (response) => { - if (Array.isArray(response.headers["set-cookie"])) { - response.headers["set-cookie"].forEach((c) => { - cookieJar.setCookie(new URL(response.url!), c); - }); - } - return response; - }, - ], - }, - }; - - if (body) { - if (body instanceof Uint8Array) { - request.body = Buffer.from(body); - } else { - request.body = Buffer.from(JSON.stringify(body)); - } - } - - try { - const response = await got(request); - return parseResponse(response); - } catch (error) { - const gotError = error as RequestError; - if (gotError.response) { - return parseResponse(gotError.response as Response); - } - throw error; - } -} - -function parseResponse(response: Response): AptosClientResponse { - return { - status: response.statusCode, - statusText: response.statusMessage || "", - data: response.body, - config: response.request.options, - request: response.request, - response, - headers: response.headers, - }; -} - -/** - * got supports only - string | number | boolean | null | undefined as searchParam value, - * so if we have bigint type, convert it to string - */ -function convertBigIntToString(obj: any): any { - const result: any = {}; - if (!obj) return result; - - Object.entries(obj).forEach(([key, value]) => { - if (Object.prototype.hasOwnProperty.call(obj, key)) { - if (typeof value === "bigint") { - result[key] = String(value); - } else { - result[key] = value; - } - } - }); - - return result; -} diff --git a/ecosystem/typescript/aptos-client/src/types.ts b/ecosystem/typescript/aptos-client/src/types.ts deleted file mode 100644 index 9fedae816f554..0000000000000 --- a/ecosystem/typescript/aptos-client/src/types.ts +++ /dev/null @@ -1,18 +0,0 @@ -export type AptosClientResponse = { - status: number; - statusText: string; - data: Res; - config?: any; - request?: any; - response?: any; - headers?: any; -}; - -export type AptosClientRequest = { - url: string; - method: "GET" | "POST"; - body?: any; - params?: any; - headers?: any; - overrides?: any; -}; diff --git a/ecosystem/typescript/aptos-client/tsconfig.json b/ecosystem/typescript/aptos-client/tsconfig.json deleted file mode 100644 index c94ee627ddd23..0000000000000 --- a/ecosystem/typescript/aptos-client/tsconfig.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "display": "Client Implementation", - "compilerOptions": { - "allowSyntheticDefaultImports": true, - "allowJs": true, - "declaration": true, - "declarationMap": true, - "esModuleInterop": true, - "experimentalDecorators": true, - "module": "esnext", - "moduleResolution": "node", - "noImplicitAny": true, - "outDir": "./dist", - "sourceMap": true, - "strict": true, - "target": "es2020", - "pretty": true - }, - "include": ["src"] -} diff --git a/ecosystem/typescript/aptos-client/tsup.config.js b/ecosystem/typescript/aptos-client/tsup.config.js deleted file mode 100644 index 32b8e83f9de96..0000000000000 --- a/ecosystem/typescript/aptos-client/tsup.config.js +++ /dev/null @@ -1,8 +0,0 @@ -import { defineConfig } from "tsup"; - -export default defineConfig({ - entry: ["src"], - splitting: false, - sourcemap: true, - target: "es2018", -}); diff --git a/ecosystem/typescript/sdk/README.md b/ecosystem/typescript/sdk/README.md deleted file mode 100644 index 79556a11ed00f..0000000000000 --- a/ecosystem/typescript/sdk/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# TypeScript SDK - -The npm package `aptos` is now deprecated, please use the npm package `@aptos-labs/ts-sdk` instead. diff --git a/ecosystem/typescript/sdk/package.json b/ecosystem/typescript/sdk/package.json deleted file mode 100644 index e9234aa4f6a85..0000000000000 --- a/ecosystem/typescript/sdk/package.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "aptos", - "version": "0.0.0", - "description": "Placeholder", - "main": "index.js", - "scripts": { - "generate-client": "echo \"Generate client is disabled, skipping\"" - }, - "author": "", - "license": "ISC" -} diff --git a/ecosystem/typescript/sdk_v2/README.md b/ecosystem/typescript/sdk_v2/README.md deleted file mode 100644 index c11258dbec251..0000000000000 --- a/ecosystem/typescript/sdk_v2/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## SDK V2 moved - -The SDK V2 has been moved to https://github.com/aptos-labs/aptos-ts-sdk From dfc34440b2f8c03dc386c694b2a34540ec70822a Mon Sep 17 00:00:00 2001 From: Vineeth Kashyap Date: Wed, 29 Jan 2025 12:26:18 -0500 Subject: [PATCH 15/30] [compiler-v2] Improved flush writes optimization (#15718) --- .../function_generator.rs | 67 +- .../src/pipeline/dead_store_elimination.rs | 33 +- .../src/pipeline/flush_writes_processor.rs | 459 ++++++++++---- .../ability-transform/destroy_after_call.exp | 4 +- .../foreach_mut_expanded.exp | 7 +- .../bytecode-generator/conditional_borrow.exp | 56 +- .../tests/bytecode-generator/fields.exp | 7 +- .../bytecode-generator/freeze_mut_ref.exp | 37 +- .../tests/bytecode-generator/inline_specs.exp | 16 +- .../tests/bytecode-generator/pack_unpack.exp | 2 + .../eager-pushes/framework_reduced_06.exp | 4 +- .../eager-pushes/framework_reduced_07.exp | 4 +- .../eager-pushes/framework_reduced_08.exp | 4 +- .../eager-pushes/framework_reduced_09.exp | 4 +- .../framework_reduced_06.opt.exp | 25 +- .../file-format-generator/opt_load_05.opt.exp | 1 - .../file-format-generator/pack_unpack.opt.exp | 2 + .../struct_variants.opt.exp | 2 + .../tests/flush-writes/def_use_01.on.exp | 6 +- .../tests/flush-writes/def_use_02.on.exp | 6 +- .../tests/flush-writes/def_use_05.on.exp | 3 +- .../tests/flush-writes/def_use_08.on.exp | 10 +- .../flush-writes/framework_reduced_11.move | 17 + .../flush-writes/framework_reduced_11.off.exp | 58 ++ .../flush-writes/framework_reduced_11.on.exp | 142 +++++ .../flush-writes/framework_reduced_12.move | 57 ++ .../flush-writes/framework_reduced_12.off.exp | 112 ++++ .../flush-writes/framework_reduced_12.on.exp | 261 ++++++++ .../flush-writes/in_order_use_01.off.exp | 7 + .../tests/flush-writes/in_order_use_01.on.exp | 23 +- .../tests/flush-writes/in_order_use_02.move | 12 + .../flush-writes/in_order_use_02.off.exp | 32 + .../tests/flush-writes/in_order_use_02.on.exp | 90 +++ .../tests/flush-writes/in_order_use_03.move | 20 + .../flush-writes/in_order_use_03.off.exp | 39 ++ .../tests/flush-writes/in_order_use_03.on.exp | 105 ++++ .../tests/flush-writes/in_order_use_04.move | 20 + .../flush-writes/in_order_use_04.off.exp | 44 ++ .../tests/flush-writes/in_order_use_04.on.exp | 124 ++++ .../tests/flush-writes/in_order_use_05.move | 16 + .../flush-writes/in_order_use_05.off.exp | 31 + .../tests/flush-writes/in_order_use_05.on.exp | 78 +++ .../tests/flush-writes/loop_01.off.exp | 1 - .../tests/flush-writes/loop_01.on.exp | 24 +- .../flush-writes/out_of_order_use_01.on.exp | 22 +- .../flush-writes/out_of_order_use_02.on.exp | 8 +- .../flush-writes/out_of_order_use_03.on.exp | 8 +- .../flush-writes/out_of_order_use_04.on.exp | 6 +- .../flush-writes/out_of_order_use_05.move | 12 + .../flush-writes/out_of_order_use_05.off.exp | 46 ++ .../flush-writes/out_of_order_use_05.on.exp | 80 +++ .../flush-writes/out_of_order_use_06.move | 17 + .../flush-writes/out_of_order_use_06.off.exp | 61 ++ .../flush-writes/out_of_order_use_06.on.exp | 125 ++++ .../flush-writes/out_of_order_use_07.move | 20 + .../flush-writes/out_of_order_use_07.off.exp | 43 ++ .../flush-writes/out_of_order_use_07.on.exp | 109 ++++ .../flush-writes/out_of_order_use_08.move | 20 + .../flush-writes/out_of_order_use_08.off.exp | 48 ++ .../flush-writes/out_of_order_use_08.on.exp | 128 ++++ .../flush-writes/out_of_order_use_09.move | 20 + .../flush-writes/out_of_order_use_09.off.exp | 49 ++ .../flush-writes/out_of_order_use_09.on.exp | 108 ++++ .../flush-writes/out_of_order_use_10.move | 17 + .../flush-writes/out_of_order_use_10.off.exp | 37 ++ .../flush-writes/out_of_order_use_10.on.exp | 84 +++ .../flush-writes/out_of_order_use_11.move | 14 + .../flush-writes/out_of_order_use_11.off.exp | 31 + .../flush-writes/out_of_order_use_11.on.exp | 77 +++ .../flush-writes/out_of_order_use_12.move | 16 + .../flush-writes/out_of_order_use_12.off.exp | 40 ++ .../flush-writes/out_of_order_use_12.on.exp | 90 +++ .../flush-writes/out_of_order_use_13.move | 17 + .../flush-writes/out_of_order_use_13.off.exp | 35 ++ .../flush-writes/out_of_order_use_13.on.exp | 84 +++ .../flush-writes/out_of_order_use_14.move | 16 + .../flush-writes/out_of_order_use_14.off.exp | 36 ++ .../flush-writes/out_of_order_use_14.on.exp | 79 +++ .../flush-writes/out_of_order_use_15.move | 16 + .../flush-writes/out_of_order_use_15.off.exp | 32 + .../flush-writes/out_of_order_use_15.on.exp | 77 +++ .../flush-writes/tuples_in_order_use_01.move | 12 + .../tuples_in_order_use_01.off.exp | 32 + .../tuples_in_order_use_01.on.exp | 90 +++ .../flush-writes/unused_flush_early_01.on.exp | 16 +- .../unused_flush_early_02.off.exp | 17 +- .../flush-writes/unused_flush_early_02.on.exp | 22 +- .../unused_flush_early_03.off.exp | 9 +- .../flush-writes/unused_flush_early_03.on.exp | 56 +- .../tests/flush-writes/write_ref_01.on.exp | 9 +- .../tests/variable-coalescing/branch_1.exp | 23 +- .../variable-coalescing/branch_1.opt.exp | 23 +- .../tests/variable-coalescing/call_1.exp | 8 +- .../tests/variable-coalescing/call_1.opt.exp | 8 +- .../tests/variable-coalescing/call_2.exp | 13 +- .../tests/variable-coalescing/call_2.opt.exp | 13 +- .../cant_copy_propagate.exp | 21 +- .../cant_copy_propagate.opt.exp | 21 +- .../tests/variable-coalescing/consume_2.exp | 10 +- .../variable-coalescing/consume_2.opt.exp | 10 +- .../variable-coalescing/dead_assignment_1.exp | 3 +- .../dead_assignment_1.opt.exp | 3 +- .../variable-coalescing/dead_assignment_2.exp | 3 +- .../dead_assignment_2.opt.exp | 3 +- .../variable-coalescing/dead_assignment_4.exp | 3 +- .../dead_assignment_4.opt.exp | 3 +- .../variable-coalescing/intermingled_1.exp | 10 +- .../intermingled_1.opt.exp | 9 +- .../variable-coalescing/intermingled_2.exp | 18 +- .../variable-coalescing/intermingled_3.exp | 16 +- .../intermingled_3.opt.exp | 9 +- .../tests/variable-coalescing/loop_1.exp | 3 +- .../tests/variable-coalescing/loop_1.opt.exp | 3 +- .../tests/variable-coalescing/loop_2.exp | 3 +- .../tests/variable-coalescing/loop_2.opt.exp | 3 +- .../tests/variable-coalescing/mut_refs_1.exp | 7 +- .../variable-coalescing/mut_refs_1.opt.exp | 7 +- .../tests/variable-coalescing/mut_refs_2.exp | 7 +- .../variable-coalescing/mut_refs_2.opt.exp | 7 +- .../non_overlapping_vars1.exp | 14 +- .../non_overlapping_vars1.opt.exp | 14 +- .../non_overlapping_vars_diff_type.exp | 14 +- .../non_overlapping_vars_diff_type.opt.exp | 14 +- .../variable-coalescing/overlapping_vars.exp | 9 +- .../variable-coalescing/reassigned_var.exp | 5 +- .../reassigned_var.opt.exp | 7 +- .../variable-coalescing/self_assigns.exp | 9 +- .../variable-coalescing/self_assigns.opt.exp | 9 +- .../tests/variable-coalescing/seq_kills_1.exp | 5 +- .../variable-coalescing/seq_kills_1.opt.exp | 5 +- .../tests/variable-coalescing/seq_kills_2.exp | 5 +- .../variable-coalescing/seq_kills_2.opt.exp | 5 +- .../sequential_assign_struct.exp | 3 +- .../sequential_assign_struct.opt.exp | 3 +- .../simple_sequential_assign.exp | 3 +- .../simple_sequential_assign.opt.exp | 3 +- .../straight_line_kills.exp | 5 +- .../straight_line_kills.opt.exp | 5 +- .../tests/variable-coalescing/swap.exp | 13 +- .../tests/variable-coalescing/swap.opt.exp | 13 +- .../variable-coalescing/swap_in_a_loop.exp | 3 +- .../swap_in_a_loop.opt.exp | 3 +- .../tests/variable-coalescing/unused_add.exp | 7 +- .../src/source_map.rs | 4 +- .../tests/bit_vector_loop_example.exp | 591 +++++++++--------- .../tests/sources/functional/enum.v2_exp | 2 +- .../tests/sources/functional/enum_self.v2_exp | 2 +- .../sources/functional/invariants.v2_exp | 2 +- .../tests/sources/functional/mut_ref.v2_exp | 2 +- .../sources/functional/strong_edges.v2_exp | 2 +- .../move-decompiler/tests/simple_map.exp | 8 +- 151 files changed, 4252 insertions(+), 870 deletions(-) create mode 100644 third_party/move/move-compiler-v2/tests/flush-writes/framework_reduced_11.move create mode 100644 third_party/move/move-compiler-v2/tests/flush-writes/framework_reduced_11.off.exp create mode 100644 third_party/move/move-compiler-v2/tests/flush-writes/framework_reduced_11.on.exp create mode 100644 third_party/move/move-compiler-v2/tests/flush-writes/framework_reduced_12.move create mode 100644 third_party/move/move-compiler-v2/tests/flush-writes/framework_reduced_12.off.exp create mode 100644 third_party/move/move-compiler-v2/tests/flush-writes/framework_reduced_12.on.exp create mode 100644 third_party/move/move-compiler-v2/tests/flush-writes/in_order_use_02.move create mode 100644 third_party/move/move-compiler-v2/tests/flush-writes/in_order_use_02.off.exp create mode 100644 third_party/move/move-compiler-v2/tests/flush-writes/in_order_use_02.on.exp create mode 100644 third_party/move/move-compiler-v2/tests/flush-writes/in_order_use_03.move create mode 100644 third_party/move/move-compiler-v2/tests/flush-writes/in_order_use_03.off.exp create mode 100644 third_party/move/move-compiler-v2/tests/flush-writes/in_order_use_03.on.exp create mode 100644 third_party/move/move-compiler-v2/tests/flush-writes/in_order_use_04.move create mode 100644 third_party/move/move-compiler-v2/tests/flush-writes/in_order_use_04.off.exp create mode 100644 third_party/move/move-compiler-v2/tests/flush-writes/in_order_use_04.on.exp create mode 100644 third_party/move/move-compiler-v2/tests/flush-writes/in_order_use_05.move create mode 100644 third_party/move/move-compiler-v2/tests/flush-writes/in_order_use_05.off.exp create mode 100644 third_party/move/move-compiler-v2/tests/flush-writes/in_order_use_05.on.exp create mode 100644 third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_05.move create mode 100644 third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_05.off.exp create mode 100644 third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_05.on.exp create mode 100644 third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_06.move create mode 100644 third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_06.off.exp create mode 100644 third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_06.on.exp create mode 100644 third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_07.move create mode 100644 third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_07.off.exp create mode 100644 third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_07.on.exp create mode 100644 third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_08.move create mode 100644 third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_08.off.exp create mode 100644 third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_08.on.exp create mode 100644 third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_09.move create mode 100644 third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_09.off.exp create mode 100644 third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_09.on.exp create mode 100644 third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_10.move create mode 100644 third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_10.off.exp create mode 100644 third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_10.on.exp create mode 100644 third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_11.move create mode 100644 third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_11.off.exp create mode 100644 third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_11.on.exp create mode 100644 third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_12.move create mode 100644 third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_12.off.exp create mode 100644 third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_12.on.exp create mode 100644 third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_13.move create mode 100644 third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_13.off.exp create mode 100644 third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_13.on.exp create mode 100644 third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_14.move create mode 100644 third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_14.off.exp create mode 100644 third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_14.on.exp create mode 100644 third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_15.move create mode 100644 third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_15.off.exp create mode 100644 third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_15.on.exp create mode 100644 third_party/move/move-compiler-v2/tests/flush-writes/tuples_in_order_use_01.move create mode 100644 third_party/move/move-compiler-v2/tests/flush-writes/tuples_in_order_use_01.off.exp create mode 100644 third_party/move/move-compiler-v2/tests/flush-writes/tuples_in_order_use_01.on.exp diff --git a/third_party/move/move-compiler-v2/src/file_format_generator/function_generator.rs b/third_party/move/move-compiler-v2/src/file_format_generator/function_generator.rs index 904e88de4914b..0a8bd83507019 100644 --- a/third_party/move/move-compiler-v2/src/file_format_generator/function_generator.rs +++ b/third_party/move/move-compiler-v2/src/file_format_generator/function_generator.rs @@ -151,27 +151,24 @@ impl<'a> FunctionGenerator<'a> { type_parameters: fun_env.get_type_parameters(), def_idx, }); - if fun_gen.spec_blocks.is_empty() { - // Currently, peephole optimizations require that there are no inline spec blocks. - // This is to ensure that spec-related data structures do not refer to code - // offsets which could be changed by the peephole optimizer. - let options = ctx - .env - .get_extension::() - .expect("Options is available"); - if options.experiment_on(Experiment::PEEPHOLE_OPTIMIZATION) { - let transformed_code_chunk = peephole_optimizer::optimize(&code.code); - // Fix the source map for the optimized code. - fun_gen - .gen - .source_map - .remap_code_map(def_idx, transformed_code_chunk.original_offsets) - .expect(SOURCE_MAP_OK); - // Replace the code with the optimized one. - code.code = transformed_code_chunk.code; - } - } else { - // Write the spec block table back to the environment. + let options = ctx + .env + .get_extension::() + .expect("Options is available"); + if options.experiment_on(Experiment::PEEPHOLE_OPTIMIZATION) { + let transformed_code_chunk = peephole_optimizer::optimize(&code.code); + // Fix the source map for the optimized code. + fun_gen + .gen + .source_map + .remap_code_map(def_idx, &transformed_code_chunk.original_offsets) + .expect(SOURCE_MAP_OK); + // Replace the code with the optimized one. + code.code = transformed_code_chunk.code; + // Remap the spec blocks to the new code offsets. + fun_gen.remap_spec_blocks(&transformed_code_chunk.original_offsets); + } + if !fun_gen.spec_blocks.is_empty() { fun_env.get_mut_spec().on_impl = fun_gen.spec_blocks; } (fun_gen.gen, Some(code)) @@ -913,6 +910,34 @@ impl<'a> FunctionGenerator<'a> { self.emit(FF::Bytecode::Nop) } + /// Remap the spec blocks, given the mapping of new offsets to original offsets. + fn remap_spec_blocks(&mut self, new_to_original_offsets: &[CodeOffset]) { + if new_to_original_offsets.is_empty() { + return; + } + let old_to_new = new_to_original_offsets + .iter() + .enumerate() + .map(|(new_offset, old_offset)| (*old_offset, new_offset as CodeOffset)) + .collect::>(); + let largest_offset = (new_to_original_offsets.len() - 1) as CodeOffset; + + // Rewrite the spec blocks mapping. + self.spec_blocks = std::mem::take(&mut self.spec_blocks) + .into_iter() + .map(|(old_offset, spec)| { + // If there is no mapping found for the old offset, then we use the next largest + // offset. If there is no such offset, then we use the overall largest offset. + let new_offset = old_to_new + .range(old_offset..) + .next() + .map(|(_, v)| *v) + .unwrap_or(largest_offset); + (new_offset, spec) + }) + .collect::>(); + } + /// Emits a file-format bytecode. fn emit(&mut self, bc: FF::Bytecode) { self.code.push(bc) diff --git a/third_party/move/move-compiler-v2/src/pipeline/dead_store_elimination.rs b/third_party/move/move-compiler-v2/src/pipeline/dead_store_elimination.rs index 62d336cf064cb..58a2e06d60392 100644 --- a/third_party/move/move-compiler-v2/src/pipeline/dead_store_elimination.rs +++ b/third_party/move/move-compiler-v2/src/pipeline/dead_store_elimination.rs @@ -24,7 +24,6 @@ use move_stackless_bytecode::{ function_target::{FunctionData, FunctionTarget}, function_target_pipeline::{FunctionTargetProcessor, FunctionTargetsHolder}, stackless_bytecode::Bytecode, - stackless_control_flow_graph::StacklessControlFlowGraph, }; use std::collections::{BTreeMap, BTreeSet}; @@ -81,7 +80,6 @@ impl ReducedDefUseGraph { eliminate_all_self_assigns: bool, ) -> BTreeSet { let code = target.get_bytecode(); - let cfg = StacklessControlFlowGraph::new_forward(code); let live_vars = target .get_annotations() .get::() @@ -113,7 +111,6 @@ impl ReducedDefUseGraph { let eliminate_this_self_assign = Self::should_eliminate_given_self_assign( self_assign, code, - &cfg, live_vars, eliminate_all_self_assigns, ); @@ -232,27 +229,29 @@ impl ReducedDefUseGraph { /// Should `self_assign` be eliminated? fn should_eliminate_given_self_assign( - self_assign: CodeOffset, + self_assign_offset: CodeOffset, code: &[Bytecode], - cfg: &StacklessControlFlowGraph, live_vars: &LiveVarAnnotation, eliminate_all_self_assigns: bool, ) -> bool { if !eliminate_all_self_assigns { - // Eliminate this self assign if the definition for this self-assign is in the same block - // before the self assign. - let block = cfg.enclosing_block(self_assign); - let block_begin_offset = cfg.code_range(block).start; - let self_assign_instr = &code[self_assign as usize]; + // Eliminate this self assign if each of its uses are the last sources of their instructions. + let self_assign_instr = &code[self_assign_offset as usize]; let self_assign_temp = self_assign_instr.dests()[0]; - // Is `self_assign_temp` live before this block? - let info = live_vars - .get_info_at(block_begin_offset as CodeOffset) - .before + let live_info_after = live_vars + .get_info_at(self_assign_offset) + .after .get(&self_assign_temp); - match info { - None => true, // must be defined in the block - Some(live) => !live.usage_offsets().contains(&self_assign), + match live_info_after { + None => true, + Some(live) => live.usage_offsets().iter().all(|use_offset| { + let use_instr = &code[*use_offset as usize]; + let sources = use_instr.sources(); + sources + .iter() + .position(|source| *source == self_assign_temp) + .is_some_and(|pos| pos == sources.len() - 1) + }), } } else { true diff --git a/third_party/move/move-compiler-v2/src/pipeline/flush_writes_processor.rs b/third_party/move/move-compiler-v2/src/pipeline/flush_writes_processor.rs index 23c748713d8be..f2f9a93d57507 100644 --- a/third_party/move/move-compiler-v2/src/pipeline/flush_writes_processor.rs +++ b/third_party/move/move-compiler-v2/src/pipeline/flush_writes_processor.rs @@ -28,7 +28,7 @@ //! getting consumed anyway at the end of the block. //! 2. Used multiple times. Before getting consumed, these have to be flushed to local //! memory anyway. -//! 3. Used in the wrong order in an instruction, than they are put on the stack. +//! 3. Used in the wrong order than they are put on the stack. //! In such a case, they would be flushed before getting consumed anyway. //! For example, in the code below: //! ```move @@ -54,7 +54,7 @@ use move_stackless_bytecode::{ }; use std::{ collections::{BTreeMap, BTreeSet}, - ops::RangeInclusive, + ops::{Range, RangeInclusive}, }; /// For a given code offset, tracks which temporaries written at the code offset @@ -207,36 +207,50 @@ impl FlushWritesProcessor { flush_writes: &mut BTreeMap>, ) { let upper = *block_range.end(); - // Traverse the block in reverse order: for each definition starting from the - // latest in a block, we compute whether is should be flushed away. This - // information is available for subsequent definitions processed. - for offset in block_range.rev() { + for offset in block_range.clone() { let instr = &code[offset as usize]; use Bytecode::{Assign, Call, Load}; // Only `Assign`, `Call`, and `Load` instructions push temps to the stack. // We need to find if any of these temps are better flushed right away. if matches!(instr, Assign(..) | Call(..) | Load(..)) { - for (dest_index, dest) in instr.dests().into_iter().enumerate().rev() { + for (dest_index, dest) in instr.dests().into_iter().enumerate() { let def = DefOrUsePoint { offset, index: dest_index, }; - if Self::could_flush_right_away(def, upper, code, use_def_links, flush_writes) { + if Self::better_flushed_right_away(def, upper, use_def_links) { flush_writes.entry(offset).or_default().insert(dest); } } } } + // We have identified some of the temps that are better flushed right away. + // We identity more based on their usage order below. + for offset in block_range.clone() { + Self::process_out_of_order_uses_in_same_instruction( + code, + offset, + *block_range.start(), + use_def_links, + flush_writes, + ); + Self::process_out_of_order_uses_in_different_instructions( + code, + offset, + *block_range.start(), + use_def_links, + flush_writes, + ); + } } /// Is the `def` better flushed right away? + /// If there more than one use or the use is outside the block, then it is better flushed right away. /// `block_end` is the end of the block that has `def`. - fn could_flush_right_away( + fn better_flushed_right_away( def: DefOrUsePoint, block_end: CodeOffset, - code: &[Bytecode], use_def_links: &UseDefLinks, - flush_writes: &BTreeMap>, ) -> bool { use_def_links.def_to_use.get(&def).map_or(true, |uses| { let exactly_one_use = uses.len() == 1; @@ -250,78 +264,298 @@ impl FlushWritesProcessor { // If used outside the basic block, flush right away. return true; } - // If has intervening definitions, flush right away. - // The first call checks the definitions of preceding uses in the same instruction. - // The second call checks definitions between `def` and `use_`. - Self::has_intervening_def(&def, use_, use_def_links) - || Self::has_flush_causing_defs_in_between( - &def, - use_, - code, - use_def_links, - flush_writes, - ) + false }) } - /// Given the `use_` of `def`, is there a previous use of any temp at the same - /// instruction as `use_`, which has a definition after `def` and before - /// the `use_` instruction? - fn has_intervening_def( - def: &DefOrUsePoint, - use_: &DefOrUsePoint, + /// Given an instruction at `offset` of `code`, check if there are uses of temporaries in the + /// wrong order, and if so, mark the corresponding temporaries for flushing. + /// `block_start` is the start of the block that has the instruction at `offset`. + /// + /// Example of a wrong order use in the same instruction: + /// ```move + /// let a = some_integer(); // stack: [`a`] + /// let b = some_integer(); // stack: [`a`, `b`] + /// let c = some_integer(); // stack: [`a`, `b`, `c`] + /// let d = some_integer(); // stack: [`a`, `b`, `c`, `d`] + /// consume(a, c, b, d); + /// ``` + /// In the above code, the stack should be [`a`, `c`, `b`, `d`] before the `consume` call. + /// However, as it stands, the stack is [`a`, `b`, `c`, `d`]. Thus, the top 3 temps on the + /// stack have to be flushed and re-loaded in the right order. + /// Instead, because we know the (`c`, `b`) pair is used in the wrong order, we can flush `b` + /// right away. With this, we only flush and re-load one temp instead of three. This function + /// accomplishes this behavior by marking `b` for flushing right away. + fn process_out_of_order_uses_in_same_instruction( + code: &[Bytecode], + offset: CodeOffset, + block_start: CodeOffset, use_def_links: &UseDefLinks, - ) -> bool { - let DefOrUsePoint { - offset: use_offset, - index: use_index, - } = use_; - (0..*use_index).any(|prev| { - let prev_use_at_usage_instr = DefOrUsePoint { - offset: *use_offset, - index: prev, - }; - use_def_links - .use_to_def - .get(&prev_use_at_usage_instr) - .map_or(false, |defs| { - defs.iter().any(|defs_of_prev_use| { - defs_of_prev_use > def && defs_of_prev_use.offset < *use_offset - }) - }) - }) + flush_writes: &mut BTreeMap>, + ) { + let instr = &code[offset as usize]; + // We are only interested in `Call` and `Ret` instructions, which have multiple sources, + // and therefore can have uses in the wrong order compared to their definitions. + if !matches!(instr, Bytecode::Call(..) | Bytecode::Ret(..)) { + return; + } + let offset_range = block_start..offset; + let sources = instr.sources(); + for pair in (0..sources.len()).combinations(2) { + Self::flush_out_of_order_uses_in_same_instruction( + pair[0], + pair[1], + offset, + code, + use_def_links, + &offset_range, + &sources, + flush_writes, + ); + } } - /// Check for various conditions where between a `def` and its `use_`, there are other - /// definitions that could cause `def` to be flushed before its `use_`. - fn has_flush_causing_defs_in_between( - def: &DefOrUsePoint, - use_: &DefOrUsePoint, + /// Given two use indices `use_index_1` and `use_index_2` in the same instruction, such that + /// `use_index_1 < use_index_2`, check if the uses are in the wrong order compared to their + /// definition. If so, mark the corresponding temporary for flushing. + /// See `process_out_of_order_uses_in_same_instruction` for an example. + fn flush_out_of_order_uses_in_same_instruction( + use_index_1: usize, + use_index_2: usize, + offset: CodeOffset, code: &[Bytecode], use_def_links: &UseDefLinks, - flush_writes: &BTreeMap>, - ) -> bool { - // For each definition in between `def` and `use_`, is there at least one that is: - // 1. not marked to be flushed right away? - // 2. not consumed before `use_`? - // 3. not used in the same offset as `use_`? - // If so, `def` could be flushed before its `use_`, so we should suggest flush it - // right after definition. - // Note that we expect the code in the block to be processed in the reverse order. - let defs_in_between = Self::get_defs_between(def, use_, use_def_links); - for def_in_between in defs_in_between { - if Self::is_def_flushed_away(&def_in_between, code, flush_writes) { - continue; + offset_range: &Range, + sources: &[TempIndex], + flush_writes: &mut BTreeMap>, + ) { + let use_1 = DefOrUsePoint { + offset, + index: use_index_1, + }; + let use_2 = DefOrUsePoint { + offset, + index: use_index_2, + }; + let def_set_1 = use_def_links.use_to_def.get(&use_1); + let def_set_2 = use_def_links.use_to_def.get(&use_2); + match (def_set_1, def_set_2) { + (None, None) => { + // nothing to be done, both definitions are not within this block + }, + (_, None) => { + // nothing to be done, the second definition is not within this block + }, + (None, Some(defs_2)) => { + // Is the `def_2` within this block (and the only definition)? If so, it must be flushed. + if defs_2.len() == 1 { + let def_2_offset = defs_2 + .first() + .expect("there must be at least one def") + .offset; + if offset_range.contains(&def_2_offset) { + flush_writes + .entry(def_2_offset) + .or_default() + .insert(sources[use_index_2]); + } + } + }, + (Some(defs_1), Some(defs_2)) => { + if defs_1.len() == 1 && defs_2.len() == 1 { + let def_1 = defs_1.first().expect("there must be at least one def"); + let def_2 = defs_2.first().expect("there must be at least one def"); + let def_1_actual = Self::get_def_skipping_self_assigns( + def_1, + code, + offset_range, + use_def_links, + ); + let def_2_actual = Self::get_def_skipping_self_assigns( + def_2, + code, + offset_range, + use_def_links, + ); + if offset_range.contains(&def_1_actual.offset) + && offset_range.contains(&def_2_actual.offset) + && def_1_actual > def_2_actual + { + flush_writes + .entry(def_2_actual.offset) + .or_default() + .insert(sources[use_index_2]); + } + } + }, + } + } + + /// Given an instruction at `offset` of `code`, check if there are uses of temporaries in the + /// wrong order when looking at uses at this instruction and other instructions. If so, mark + /// the corresponding temporaries for flushing. + /// `block_start` is the start of the block that has the instruction at `offset`. + /// + /// Example of a wrong order use within different instructions: + /// ```move + /// let a = some_integer(); // stack: [`a`] + /// let b = some_integer(); // stack: [`a`, `b`] + /// let c = some_integer(); // stack: [`a`, `b`, `c`] + /// consume_2(a, c); + /// consume_1(b); + /// ``` + /// In the above code, the stack should be [`a`, `c`] before the `consume_2` call. + /// However, as it stands, the stack is [`a`, `b`, `c`]. Thus, the top 2 temps on the + /// stack have to be flushed and re-loaded in the right order. + /// Instead, because we know the (`c`, `b`) pair is used in the wrong order, we can + /// flush `b` right away. With this, we only flush and re-load one temp instead of two. + fn process_out_of_order_uses_in_different_instructions( + code: &[Bytecode], + offset: CodeOffset, + block_start: CodeOffset, + use_def_links: &UseDefLinks, + flush_writes: &mut BTreeMap>, + ) { + // We are only interested in the uses in `Call` and `Ret` instructions. + let instr = &code[offset as usize]; + if !matches!(instr, Bytecode::Call(..) | Bytecode::Ret(..)) { + return; + } + if matches!(instr, Bytecode::Call(_, _, Operation::BorrowLoc, ..)) { + // `BorrowLoc` does not require its operands to be on the stack. + return; + } + let sources = instr.sources(); + for (use_index, use_temp) in sources.into_iter().enumerate() { + Self::flush_out_of_order_uses_in_different_instructions( + use_index, + use_temp, + offset, + block_start, + code, + use_def_links, + flush_writes, + ); + } + } + + /// Given a `use_index` at instruction `offset` of `code`, check if there are uses of temps + /// in other previous instructions that are in the wrong order compared to their definition. + /// If so, mark the corresponding temp for flushing. + /// See `process_out_of_order_uses_in_different_instructions` for an example. + fn flush_out_of_order_uses_in_different_instructions( + use_index: usize, + use_temp: TempIndex, + offset: CodeOffset, + block_start: CodeOffset, + code: &[Bytecode], + use_def_links: &UseDefLinks, + flush_writes: &mut BTreeMap>, + ) { + let this_use_point = DefOrUsePoint { + offset, + index: use_index, + }; + if let Some(this_uses_actual_def) = Self::get_singular_actual_def_in_range( + &this_use_point, + use_def_links, + code, + block_start..offset, + ) { + if Self::is_def_flushed_away(&this_uses_actual_def, code, flush_writes) { + return; } - if Self::consumed_before(&def_in_between, use_, use_def_links) { - continue; + let other_uses = + Self::get_uses_in_between(this_uses_actual_def.offset + 1..offset, code); + // Compare this use with all other uses that may conflict with this use. + for other_use in other_uses { + if let Some(other_uses_actual_def) = Self::get_singular_actual_def_in_range( + &other_use, + use_def_links, + code, + block_start..other_use.offset, + ) { + if other_uses_actual_def < this_uses_actual_def + && !Self::is_def_flushed_away(&other_uses_actual_def, code, flush_writes) + { + // Flush the use that is the only use, to minimize flushes. + // TODO: This heuristic could be improved by considering multiple uses in two (or more) + // conflicting instructions at the same time. + if Self::is_only_use_in_instr(&this_use_point, code) { + flush_writes + .entry(this_uses_actual_def.offset) + .or_default() + .insert(use_temp); + } else if Self::is_only_use_in_instr(&other_use, code) { + flush_writes + .entry(other_uses_actual_def.offset) + .or_default() + .insert(Self::get_temp_from_def_point( + &other_uses_actual_def, + code, + )); + } + } + } } - if Self::consumed_at(&def_in_between, use_, use_def_links) { - continue; + } + } + + /// Get the temporary corresponding to `def_point`. + fn get_temp_from_def_point(def_point: &DefOrUsePoint, code: &[Bytecode]) -> TempIndex { + let instr = &code[def_point.offset as usize]; + instr.dests()[def_point.index] + } + + /// Is `use_point` the only use in that instruction? + fn is_only_use_in_instr(use_point: &DefOrUsePoint, code: &[Bytecode]) -> bool { + let instr = &code[use_point.offset as usize]; + let sources = instr.sources(); + sources.len() == 1 && use_point.index == 0 + } + + /// Get all the use points in the `offset_range`. + fn get_uses_in_between( + offset_range: Range, + code: &[Bytecode], + ) -> Vec { + let mut uses = vec![]; + for offset in offset_range { + let instr = &code[offset as usize]; + if let Bytecode::Call(_, _, op, sources, _) = instr { + if *op == Operation::BorrowLoc { + continue; + } + for use_index in 0..sources.len() { + uses.push(DefOrUsePoint { + offset, + index: use_index, + }); + } } - return true; } - false + uses + } + + /// Get the actual definition (the definition obtained by skipping self-assigns) of `use_point`. + /// Is this the only definition and is it within the `range`? + fn get_singular_actual_def_in_range( + use_point: &DefOrUsePoint, + use_def_links: &UseDefLinks, + code: &[Bytecode], + range: Range, + ) -> Option { + let def_set = use_def_links.use_to_def.get(use_point)?; + if def_set.len() != 1 { + return None; + } + let def = def_set.first().expect("there is at least one def"); + let actual_def = Self::get_def_skipping_self_assigns(def, code, &range, use_def_links); + if range.contains(&def.offset) { + Some(actual_def) + } else { + None + } } /// Has `def` been marked to be flushed right away? @@ -340,66 +574,39 @@ impl FlushWritesProcessor { false } - /// Is `def` consumed before `use_`? - fn consumed_before( + /// Trace `def` to the actual definition by skipping self-assigns in the `offset_range`. + fn get_def_skipping_self_assigns( def: &DefOrUsePoint, - use_: &DefOrUsePoint, - use_def_links: &UseDefLinks, - ) -> bool { - use_def_links - .def_to_use - .get(def) - .map_or(false, |uses| uses.iter().all(|u| u.offset < use_.offset)) - } - - /// Is `def` consumed at `use_`'s offset? - fn consumed_at(def: &DefOrUsePoint, use_: &DefOrUsePoint, use_def_links: &UseDefLinks) -> bool { - let use_offset = use_.offset; - use_def_links - .def_to_use - .get(def) - .map_or(false, |uses| uses.iter().all(|u| u.offset == use_offset)) - } - - /// Get all the definitions between `def` and `use_`. - fn get_defs_between( - def: &DefOrUsePoint, - use_: &DefOrUsePoint, + code: &[Bytecode], + offset_range: &Range, use_def_links: &UseDefLinks, - ) -> Vec { - let DefOrUsePoint { - offset: def_offset, - index: def_index, - } = def; - let use_offset = use_.offset; - let mut defs = vec![]; - if *def_offset == use_offset { - return defs; - } - // Are there defs at def_offset with index > def_index? - for index in def_index + 1.. { - let potential_def = DefOrUsePoint { - offset: *def_offset, - index, - }; - if use_def_links.def_to_use.contains_key(&potential_def) { - defs.push(potential_def); - } else { - break; - } - } - // Are there defs after def_offset and before use_offset? - for offset in (*def_offset + 1)..use_offset { - for index in 0.. { - let potential_def = DefOrUsePoint { offset, index }; - if use_def_links.def_to_use.contains_key(&potential_def) { - defs.push(potential_def); - } else { - break; + ) -> DefOrUsePoint { + let mut actual_def = def.clone(); + // Only get defs within the same block. + while offset_range.contains(&actual_def.offset) { + let instr = &code[actual_def.offset as usize]; + let mut changed = false; + if let Bytecode::Assign(_, dest, src, _) = instr { + if *dest == *src { + // This is a self assign, skip it and get the actual def. + let self_use = DefOrUsePoint { + offset: actual_def.offset, + index: 0, + }; + if let Some(new_def) = use_def_links.use_to_def.get(&self_use) { + if new_def.len() == 1 { + actual_def = + new_def.first().expect("there is at least one def").clone(); + changed = true; + } + } } } + if !changed { + break; + } } - defs + actual_def } /// Registers annotation formatter at the given function target. diff --git a/third_party/move/move-compiler-v2/tests/ability-transform/destroy_after_call.exp b/third_party/move/move-compiler-v2/tests/ability-transform/destroy_after_call.exp index 28989b60c87a0..57006b13af531 100644 --- a/third_party/move/move-compiler-v2/tests/ability-transform/destroy_after_call.exp +++ b/third_party/move/move-compiler-v2/tests/ability-transform/destroy_after_call.exp @@ -370,9 +370,7 @@ fun m::g() { fun m::f($t0: &mut u64): &mut u64 { var $t1: &mut u64 [unused] # live vars: $t0 - 0: $t0 := move($t0) - # live vars: $t0 - 1: return $t0 + 0: return $t0 } diff --git a/third_party/move/move-compiler-v2/tests/ability-transform/foreach_mut_expanded.exp b/third_party/move/move-compiler-v2/tests/ability-transform/foreach_mut_expanded.exp index 4b6ab45471a9d..da0c4f780f630 100644 --- a/third_party/move/move-compiler-v2/tests/ability-transform/foreach_mut_expanded.exp +++ b/third_party/move/move-compiler-v2/tests/ability-transform/foreach_mut_expanded.exp @@ -1161,7 +1161,8 @@ L0: loc0: vector L1: loc1: u64 L2: loc2: u64 L3: loc3: &mut vector -L4: loc4: &mut u64 +L4: loc4: u64 +L5: loc5: &mut u64 B0: 0: LdConst[0](Vector(U64): [3, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0]) 1: StLoc[0](loc0: vector) @@ -1181,9 +1182,9 @@ B2: 13: CopyLoc[3](loc3: &mut vector) 14: CopyLoc[1](loc1: u64) 15: VecMutBorrow(1) - 16: StLoc[4](loc4: &mut u64) + 16: StLoc[5](loc5: &mut u64) 17: LdU64(2) - 18: MoveLoc[4](loc4: &mut u64) + 18: MoveLoc[5](loc5: &mut u64) 19: WriteRef 20: MoveLoc[1](loc1: u64) 21: LdU64(1) diff --git a/third_party/move/move-compiler-v2/tests/bytecode-generator/conditional_borrow.exp b/third_party/move/move-compiler-v2/tests/bytecode-generator/conditional_borrow.exp index 556bc35ef880d..fe541e00f0afc 100644 --- a/third_party/move/move-compiler-v2/tests/bytecode-generator/conditional_borrow.exp +++ b/third_party/move/move-compiler-v2/tests/bytecode-generator/conditional_borrow.exp @@ -430,8 +430,8 @@ B0: } test1(Arg0: u64): u64 /* def_idx: 1 */ { L1: loc0: u64 -L2: loc1: &mut u64 -L3: loc2: u64 +L2: loc1: u64 +L3: loc2: &mut u64 L4: loc3: u64 L5: loc4: u64 L6: loc5: u64 @@ -447,65 +447,65 @@ B1: 5: StLoc[1](loc0: u64) B2: 6: MutBorrowLoc[1](loc0: u64) - 7: StLoc[2](loc1: &mut u64) + 7: StLoc[3](loc2: &mut u64) 8: LdU64(10) - 9: MoveLoc[2](loc1: &mut u64) + 9: MoveLoc[3](loc2: &mut u64) 10: WriteRef 11: MoveLoc[0](Arg0: u64) - 12: StLoc[3](loc2: u64) - 13: MutBorrowLoc[3](loc2: u64) - 14: StLoc[2](loc1: &mut u64) - 15: CopyLoc[2](loc1: &mut u64) + 12: StLoc[4](loc3: u64) + 13: MutBorrowLoc[4](loc3: u64) + 14: StLoc[3](loc2: &mut u64) + 15: CopyLoc[3](loc2: &mut u64) 16: ReadRef 17: LdU64(1) 18: Add - 19: MoveLoc[2](loc1: &mut u64) + 19: MoveLoc[3](loc2: &mut u64) 20: WriteRef - 21: MoveLoc[3](loc2: u64) - 22: StLoc[4](loc3: u64) - 23: CopyLoc[4](loc3: u64) + 21: MoveLoc[4](loc3: u64) + 22: StLoc[2](loc1: u64) + 23: CopyLoc[2](loc1: u64) 24: LdU64(0) 25: Add 26: StLoc[5](loc4: u64) 27: MutBorrowLoc[5](loc4: u64) - 28: StLoc[2](loc1: &mut u64) - 29: CopyLoc[2](loc1: &mut u64) + 28: StLoc[3](loc2: &mut u64) + 29: CopyLoc[3](loc2: &mut u64) 30: ReadRef 31: LdU64(2) 32: Add - 33: MoveLoc[2](loc1: &mut u64) + 33: MoveLoc[3](loc2: &mut u64) 34: WriteRef - 35: CopyLoc[4](loc3: u64) + 35: CopyLoc[2](loc1: u64) 36: StLoc[6](loc5: u64) 37: MutBorrowLoc[6](loc5: u64) - 38: StLoc[2](loc1: &mut u64) - 39: CopyLoc[2](loc1: &mut u64) + 38: StLoc[3](loc2: &mut u64) + 39: CopyLoc[3](loc2: &mut u64) 40: ReadRef 41: LdU64(4) 42: Add - 43: MoveLoc[2](loc1: &mut u64) + 43: MoveLoc[3](loc2: &mut u64) 44: WriteRef - 45: CopyLoc[4](loc3: u64) + 45: CopyLoc[2](loc1: u64) 46: StLoc[7](loc6: u64) 47: MutBorrowLoc[7](loc6: u64) - 48: StLoc[2](loc1: &mut u64) - 49: CopyLoc[2](loc1: &mut u64) + 48: StLoc[3](loc2: &mut u64) + 49: CopyLoc[3](loc2: &mut u64) 50: ReadRef 51: LdU64(8) 52: Add - 53: MoveLoc[2](loc1: &mut u64) + 53: MoveLoc[3](loc2: &mut u64) 54: WriteRef - 55: CopyLoc[4](loc3: u64) + 55: CopyLoc[2](loc1: u64) 56: StLoc[8](loc7: u64) 57: MutBorrowLoc[8](loc7: u64) - 58: StLoc[2](loc1: &mut u64) - 59: CopyLoc[2](loc1: &mut u64) + 58: StLoc[3](loc2: &mut u64) + 59: CopyLoc[3](loc2: &mut u64) 60: ReadRef 61: LdU64(16) 62: Add - 63: MoveLoc[2](loc1: &mut u64) + 63: MoveLoc[3](loc2: &mut u64) 64: WriteRef - 65: MoveLoc[4](loc3: u64) + 65: MoveLoc[2](loc1: u64) 66: Ret B3: 67: LdU64(3) diff --git a/third_party/move/move-compiler-v2/tests/bytecode-generator/fields.exp b/third_party/move/move-compiler-v2/tests/bytecode-generator/fields.exp index f3ff487814513..658b767172dee 100644 --- a/third_party/move/move-compiler-v2/tests/bytecode-generator/fields.exp +++ b/third_party/move/move-compiler-v2/tests/bytecode-generator/fields.exp @@ -348,7 +348,8 @@ B0: } write_local_via_ref_2(): S /* def_idx: 6 */ { L0: loc0: S -L1: loc1: &mut u64 +L1: loc1: u64 +L2: loc2: &mut u64 B0: 0: LdU64(0) 1: LdU64(0) @@ -358,9 +359,9 @@ B0: 5: MutBorrowLoc[0](loc0: S) 6: MutBorrowField[1](S.g: T) 7: MutBorrowField[2](T.h: u64) - 8: StLoc[1](loc1: &mut u64) + 8: StLoc[2](loc2: &mut u64) 9: LdU64(42) - 10: MoveLoc[1](loc1: &mut u64) + 10: MoveLoc[2](loc2: &mut u64) 11: WriteRef 12: MoveLoc[0](loc0: S) 13: Ret diff --git a/third_party/move/move-compiler-v2/tests/bytecode-generator/freeze_mut_ref.exp b/third_party/move/move-compiler-v2/tests/bytecode-generator/freeze_mut_ref.exp index 734e7667cfc63..1ad27dd46da9d 100644 --- a/third_party/move/move-compiler-v2/tests/bytecode-generator/freeze_mut_ref.exp +++ b/third_party/move/move-compiler-v2/tests/bytecode-generator/freeze_mut_ref.exp @@ -469,6 +469,7 @@ B0: 2: Ret } t2(Arg0: &mut u64, Arg1: &mut u64): &u64 * &mut u64 /* def_idx: 6 */ { +L2: loc0: &u64 B0: 0: MoveLoc[0](Arg0: &mut u64) 1: FreezeRef @@ -494,10 +495,12 @@ B0: } public t5(Arg0: &mut G) /* def_idx: 8 */ { L1: loc0: &mut u64 -L2: loc1: &mut u64 +L2: loc1: u64 L3: loc2: u64 L4: loc3: &mut u64 L5: loc4: &u64 +L6: loc5: u64 +L7: loc6: &mut u64 B0: 0: LdU64(0) 1: LdU64(1) @@ -510,21 +513,23 @@ B0: 8: Pop 9: MoveLoc[0](Arg0: &mut G) 10: MutBorrowField[0](G.f: u64) - 11: StLoc[2](loc1: &mut u64) - 12: LdU64(2) - 13: StLoc[3](loc2: u64) - 14: MutBorrowLoc[3](loc2: u64) - 15: StLoc[4](loc3: &mut u64) - 16: LdU64(2) - 17: LdU64(0) - 18: MoveLoc[1](loc0: &mut u64) - 19: WriteRef - 20: MoveLoc[4](loc3: &mut u64) - 21: FreezeRef - 22: Pop - 23: MoveLoc[2](loc1: &mut u64) - 24: WriteRef - 25: Ret + 11: LdU64(2) + 12: StLoc[3](loc2: u64) + 13: MutBorrowLoc[3](loc2: u64) + 14: StLoc[4](loc3: &mut u64) + 15: LdU64(2) + 16: LdU64(0) + 17: MoveLoc[1](loc0: &mut u64) + 18: WriteRef + 19: MoveLoc[4](loc3: &mut u64) + 20: FreezeRef + 21: Pop + 22: StLoc[6](loc5: u64) + 23: StLoc[7](loc6: &mut u64) + 24: MoveLoc[6](loc5: u64) + 25: MoveLoc[7](loc6: &mut u64) + 26: WriteRef + 27: Ret } t6(Arg0: bool, Arg1: &mut S, Arg2: &S) /* def_idx: 9 */ { L3: loc0: &S diff --git a/third_party/move/move-compiler-v2/tests/bytecode-generator/inline_specs.exp b/third_party/move/move-compiler-v2/tests/bytecode-generator/inline_specs.exp index a17c8ced9927e..397b2d775dac3 100644 --- a/third_party/move/move-compiler-v2/tests/bytecode-generator/inline_specs.exp +++ b/third_party/move/move-compiler-v2/tests/bytecode-generator/inline_specs.exp @@ -87,15 +87,13 @@ module 42.inline_specs { specs(): u64 /* def_idx: 0 */ { L0: loc0: u64 B0: - 0: LdU64(0) - 1: StLoc[0](loc0: u64) - 2: Nop - 3: MoveLoc[0](loc0: u64) - 4: Call succ(u64): u64 - 5: StLoc[0](loc0: u64) - 6: Nop - 7: MoveLoc[0](loc0: u64) - 8: Ret + 0: Nop + 1: LdU64(0) + 2: Call succ(u64): u64 + 3: StLoc[0](loc0: u64) + 4: Nop + 5: MoveLoc[0](loc0: u64) + 6: Ret } succ(Arg0: u64): u64 /* def_idx: 1 */ { B0: diff --git a/third_party/move/move-compiler-v2/tests/bytecode-generator/pack_unpack.exp b/third_party/move/move-compiler-v2/tests/bytecode-generator/pack_unpack.exp index 5cdfcc682917e..5792041151ffe 100644 --- a/third_party/move/move-compiler-v2/tests/bytecode-generator/pack_unpack.exp +++ b/third_party/move/move-compiler-v2/tests/bytecode-generator/pack_unpack.exp @@ -85,6 +85,8 @@ B0: 4: Ret } unpack(Arg0: S): u64 * u64 /* def_idx: 1 */ { +L1: loc0: u64 +L2: loc1: u64 B0: 0: MoveLoc[0](Arg0: S) 1: Unpack[1](S) diff --git a/third_party/move/move-compiler-v2/tests/eager-pushes/framework_reduced_06.exp b/third_party/move/move-compiler-v2/tests/eager-pushes/framework_reduced_06.exp index 280e224e41e66..49a51d377d18c 100644 --- a/third_party/move/move-compiler-v2/tests/eager-pushes/framework_reduced_06.exp +++ b/third_party/move/move-compiler-v2/tests/eager-pushes/framework_reduced_06.exp @@ -76,9 +76,7 @@ fun m::bar($t0: &mut 0xc0ffee::m::S, $t1: u64): u64 { # live vars: $t1, $t3 1: write_ref($t3, $t1) # live vars: $t1 - 2: $t1 := move($t1) - # live vars: $t1 - 3: return $t1 + 2: return $t1 } diff --git a/third_party/move/move-compiler-v2/tests/eager-pushes/framework_reduced_07.exp b/third_party/move/move-compiler-v2/tests/eager-pushes/framework_reduced_07.exp index c8eca1b327793..437b80736c3dc 100644 --- a/third_party/move/move-compiler-v2/tests/eager-pushes/framework_reduced_07.exp +++ b/third_party/move/move-compiler-v2/tests/eager-pushes/framework_reduced_07.exp @@ -59,9 +59,7 @@ fun m::foo($t0: &mut u64, $t1: u64): &mut u64 { # live vars: $t0, $t1 0: write_ref($t0, $t1) # live vars: $t0 - 1: $t0 := move($t0) - # live vars: $t0 - 2: return $t0 + 1: return $t0 } diff --git a/third_party/move/move-compiler-v2/tests/eager-pushes/framework_reduced_08.exp b/third_party/move/move-compiler-v2/tests/eager-pushes/framework_reduced_08.exp index 0ba77f3e40d87..e78651e90f36e 100644 --- a/third_party/move/move-compiler-v2/tests/eager-pushes/framework_reduced_08.exp +++ b/third_party/move/move-compiler-v2/tests/eager-pushes/framework_reduced_08.exp @@ -55,9 +55,7 @@ fun m::bar($t0: &u64, $t1: u64) { fun m::foo($t0: &u64, $t1: u64): &u64 { var $t2: &u64 [unused] # live vars: $t0, $t1 - 0: $t0 := move($t0) - # live vars: $t0 - 1: return $t0 + 0: return $t0 } diff --git a/third_party/move/move-compiler-v2/tests/eager-pushes/framework_reduced_09.exp b/third_party/move/move-compiler-v2/tests/eager-pushes/framework_reduced_09.exp index 1011e6826b7d0..749118228690d 100644 --- a/third_party/move/move-compiler-v2/tests/eager-pushes/framework_reduced_09.exp +++ b/third_party/move/move-compiler-v2/tests/eager-pushes/framework_reduced_09.exp @@ -65,9 +65,7 @@ fun m::bar($t0: &mut u64, $t1: u64): &mut u64 { # live vars: $t0, $t1 0: write_ref($t0, $t1) # live vars: $t0 - 1: $t0 := move($t0) - # live vars: $t0 - 2: return $t0 + 1: return $t0 } diff --git a/third_party/move/move-compiler-v2/tests/file-format-generator/framework_reduced_06.opt.exp b/third_party/move/move-compiler-v2/tests/file-format-generator/framework_reduced_06.opt.exp index 66710764d3088..8d7d87b60c1ae 100644 --- a/third_party/move/move-compiler-v2/tests/file-format-generator/framework_reduced_06.opt.exp +++ b/third_party/move/move-compiler-v2/tests/file-format-generator/framework_reduced_06.opt.exp @@ -38,9 +38,6 @@ B0: } foo(Arg0: address, Arg1: &mut S, Arg2: &mut S): u64 /* def_idx: 4 */ { L3: loc0: u64 -L4: loc1: u64 -L5: loc2: &mut S -L6: loc3: address B0: 0: MoveLoc[1](Arg1: &mut S) 1: LdU64(1) @@ -51,18 +48,16 @@ B0: 6: StLoc[1](Arg1: &mut S) 7: CopyLoc[0](Arg0: address) 8: CopyLoc[1](Arg1: &mut S) - 9: CopyLoc[3](loc0: u64) - 10: StLoc[4](loc1: u64) - 11: MoveLoc[0](Arg0: address) - 12: MoveLoc[4](loc1: u64) - 13: MoveLoc[2](Arg2: &mut S) - 14: Call f2(address, &mut S, address, u64, &mut S) - 15: CopyLoc[3](loc0: u64) - 16: MoveLoc[1](Arg1: &mut S) - 17: ImmBorrowField[0](S.g: u64) - 18: Call f3(u64, &u64) - 19: MoveLoc[3](loc0: u64) - 20: Ret + 9: MoveLoc[0](Arg0: address) + 10: CopyLoc[3](loc0: u64) + 11: MoveLoc[2](Arg2: &mut S) + 12: Call f2(address, &mut S, address, u64, &mut S) + 13: CopyLoc[3](loc0: u64) + 14: MoveLoc[1](Arg1: &mut S) + 15: ImmBorrowField[0](S.g: u64) + 16: Call f3(u64, &u64) + 17: MoveLoc[3](loc0: u64) + 18: Ret } } ============ bytecode verification succeeded ======== diff --git a/third_party/move/move-compiler-v2/tests/file-format-generator/opt_load_05.opt.exp b/third_party/move/move-compiler-v2/tests/file-format-generator/opt_load_05.opt.exp index a0d0bb9f292c7..d1313596adbab 100644 --- a/third_party/move/move-compiler-v2/tests/file-format-generator/opt_load_05.opt.exp +++ b/third_party/move/move-compiler-v2/tests/file-format-generator/opt_load_05.opt.exp @@ -31,7 +31,6 @@ B0: } public test3(Arg0: u64) /* def_idx: 4 */ { L1: loc0: u64 -L2: loc1: u64 B0: 0: Call one(): u64 1: StLoc[1](loc0: u64) diff --git a/third_party/move/move-compiler-v2/tests/file-format-generator/pack_unpack.opt.exp b/third_party/move/move-compiler-v2/tests/file-format-generator/pack_unpack.opt.exp index b1263d5089755..54242e8716e6d 100644 --- a/third_party/move/move-compiler-v2/tests/file-format-generator/pack_unpack.opt.exp +++ b/third_party/move/move-compiler-v2/tests/file-format-generator/pack_unpack.opt.exp @@ -19,6 +19,8 @@ B0: 4: Ret } unpack(Arg0: S): u64 * u64 /* def_idx: 1 */ { +L1: loc0: u64 +L2: loc1: u64 B0: 0: MoveLoc[0](Arg0: S) 1: Unpack[1](S) diff --git a/third_party/move/move-compiler-v2/tests/file-format-generator/struct_variants.opt.exp b/third_party/move/move-compiler-v2/tests/file-format-generator/struct_variants.opt.exp index 0a38b33ad65b2..91c6546a8b356 100644 --- a/third_party/move/move-compiler-v2/tests/file-format-generator/struct_variants.opt.exp +++ b/third_party/move/move-compiler-v2/tests/file-format-generator/struct_variants.opt.exp @@ -65,6 +65,8 @@ enum Outer { public inner_value(Arg0: Inner): u64 /* def_idx: 0 */ { L1: loc0: &Inner L2: loc1: u64 +L3: loc2: u64 +L4: loc3: u64 B0: 0: ImmBorrowLoc[0](Arg0: Inner) 1: StLoc[1](loc0: &Inner) diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/def_use_01.on.exp b/third_party/move/move-compiler-v2/tests/flush-writes/def_use_01.on.exp index 612ad7279fadd..8cb774900a663 100644 --- a/third_party/move/move-compiler-v2/tests/flush-writes/def_use_01.on.exp +++ b/third_party/move/move-compiler-v2/tests/flush-writes/def_use_01.on.exp @@ -38,9 +38,11 @@ public fun m::test() { # live vars: $t0, $t1 1: m::take1($t1) # live vars: $t0, $t1 - 2: m::take2($t0, $t1) + 2: $t0 := move($t0) + # live vars: $t0, $t1 + 3: m::take2($t0, $t1) # live vars: - 3: return () + 4: return () } diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/def_use_02.on.exp b/third_party/move/move-compiler-v2/tests/flush-writes/def_use_02.on.exp index 5a68ae7e6cf9f..44af7ea1b0c1b 100644 --- a/third_party/move/move-compiler-v2/tests/flush-writes/def_use_02.on.exp +++ b/third_party/move/move-compiler-v2/tests/flush-writes/def_use_02.on.exp @@ -38,9 +38,11 @@ public fun m::test() { # live vars: $t0, $t1 1: m::take1($t1) # live vars: $t0, $t1 - 2: m::take2($t1, $t0) + 2: $t1 := move($t1) + # live vars: $t0, $t1 + 3: m::take2($t1, $t0) # live vars: - 3: return () + 4: return () } diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/def_use_05.on.exp b/third_party/move/move-compiler-v2/tests/flush-writes/def_use_05.on.exp index f88bc7bdfeec9..09f07ac515fca 100644 --- a/third_party/move/move-compiler-v2/tests/flush-writes/def_use_05.on.exp +++ b/third_party/move/move-compiler-v2/tests/flush-writes/def_use_05.on.exp @@ -31,7 +31,7 @@ fun m::take2($t0: u64, $t1: u64) { public fun m::test() { var $t0: u64 var $t1: u64 - # flush: $t0 + # flush: $t1 # live vars: 0: ($t0, $t1) := m::one_one() # live vars: $t0, $t1 @@ -64,7 +64,6 @@ B0: } public test() /* def_idx: 3 */ { L0: loc0: u64 -L1: loc1: u64 B0: 0: Call one_one(): u64 * u64 1: StLoc[0](loc0: u64) diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/def_use_08.on.exp b/third_party/move/move-compiler-v2/tests/flush-writes/def_use_08.on.exp index bd4686eb0dd2d..9f95fb97c4a1a 100644 --- a/third_party/move/move-compiler-v2/tests/flush-writes/def_use_08.on.exp +++ b/third_party/move/move-compiler-v2/tests/flush-writes/def_use_08.on.exp @@ -39,9 +39,15 @@ public fun m::test() { # live vars: 0: ($t0, $t1, $t2, $t3) := m::foo() # live vars: $t0, $t1, $t2, $t3 - 1: m::take($t1, $t2, $t3, $t0) + 1: $t1 := move($t1) + # live vars: $t0, $t1, $t2, $t3 + 2: $t2 := move($t2) + # live vars: $t0, $t1, $t2, $t3 + 3: $t3 := move($t3) + # live vars: $t0, $t1, $t2, $t3 + 4: m::take($t1, $t2, $t3, $t0) # live vars: - 2: return () + 5: return () } diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/framework_reduced_11.move b/third_party/move/move-compiler-v2/tests/flush-writes/framework_reduced_11.move new file mode 100644 index 0000000000000..baee8c1a45fd1 --- /dev/null +++ b/third_party/move/move-compiler-v2/tests/flush-writes/framework_reduced_11.move @@ -0,0 +1,17 @@ +module 0xc0ffee::m { + use std::vector; + + fun one(): u64 { + 1 + } + + fun consume(_a: u64, _b: &u64) {} + + public fun test(v: vector) { + let x = one(); + vector::for_each_ref(&v, |e| { + let e1 = e; + consume(x, e1); + }); + } +} diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/framework_reduced_11.off.exp b/third_party/move/move-compiler-v2/tests/flush-writes/framework_reduced_11.off.exp new file mode 100644 index 0000000000000..6b71771f5b7fe --- /dev/null +++ b/third_party/move/move-compiler-v2/tests/flush-writes/framework_reduced_11.off.exp @@ -0,0 +1,58 @@ + +============ disassembled file-format ================== +// Move bytecode v8 +module c0ffee.m { + + +consume(Arg0: u64, Arg1: &u64) /* def_idx: 0 */ { +B0: + 0: MoveLoc[1](Arg1: &u64) + 1: Pop + 2: Ret +} +one(): u64 /* def_idx: 1 */ { +B0: + 0: LdU64(1) + 1: Ret +} +public test(Arg0: vector) /* def_idx: 2 */ { +L1: loc0: &vector +L2: loc1: u64 +L3: loc2: u64 +L4: loc3: u64 +L5: loc4: &u64 +B0: + 0: Call one(): u64 + 1: ImmBorrowLoc[0](Arg0: vector) + 2: StLoc[1](loc0: &vector) + 3: LdU64(0) + 4: StLoc[2](loc1: u64) + 5: StLoc[3](loc2: u64) +B1: + 6: CopyLoc[2](loc1: u64) + 7: CopyLoc[1](loc0: &vector) + 8: VecLen(2) + 9: Lt + 10: BrFalse(25) +B2: + 11: CopyLoc[1](loc0: &vector) + 12: CopyLoc[2](loc1: u64) + 13: VecImmBorrow(2) + 14: CopyLoc[3](loc2: u64) + 15: StLoc[4](loc3: u64) + 16: StLoc[5](loc4: &u64) + 17: MoveLoc[4](loc3: u64) + 18: MoveLoc[5](loc4: &u64) + 19: Call consume(u64, &u64) + 20: MoveLoc[2](loc1: u64) + 21: LdU64(1) + 22: Add + 23: StLoc[2](loc1: u64) + 24: Branch(6) +B3: + 25: MoveLoc[1](loc0: &vector) + 26: Pop + 27: Ret +} +} +============ bytecode verification succeeded ======== diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/framework_reduced_11.on.exp b/third_party/move/move-compiler-v2/tests/flush-writes/framework_reduced_11.on.exp new file mode 100644 index 0000000000000..ed90266339ce5 --- /dev/null +++ b/third_party/move/move-compiler-v2/tests/flush-writes/framework_reduced_11.on.exp @@ -0,0 +1,142 @@ +============ after FlushWritesProcessor: ================ + +[variant baseline] +fun m::consume($t0: u64, $t1: &u64) { + # live vars: $t0, $t1 + 0: drop($t1) + # live vars: + 1: return () +} + + +[variant baseline] +fun m::one(): u64 { + var $t0: u64 + # live vars: + 0: $t0 := 1 + # live vars: $t0 + 1: return $t0 +} + + +[variant baseline] +public fun m::test($t0: vector) { + var $t1: u64 + var $t2: &vector [unused] + var $t3: &vector + var $t4: u64 + var $t5: bool + var $t6: u64 + var $t7: u64 + var $t8: &u64 [unused] + var $t9: &u64 + var $t10: &vector + var $t11: &u64 [unused] + var $t12: u64 [unused] + var $t13: u64 [unused] + var $t14: u64 [unused] + var $t15: u64 [unused] + # flush: $t1 + # live vars: $t0 + 0: $t1 := m::one() + # flush: $t3 + # live vars: $t0, $t1 + 1: $t3 := borrow_local($t0) + # flush: $t4 + # live vars: $t1, $t3 + 2: $t4 := 0 + # live vars: $t1, $t3, $t4 + 3: label L0 + # live vars: $t1, $t3, $t4 + 4: $t6 := copy($t4) + # live vars: $t1, $t3, $t4, $t6 + 5: $t7 := vector::length($t3) + # live vars: $t1, $t3, $t4, $t6, $t7 + 6: $t5 := <($t6, $t7) + # live vars: $t1, $t3, $t4, $t5 + 7: if ($t5) goto 8 else goto 18 + # live vars: $t1, $t3, $t4 + 8: label L2 + # live vars: $t1, $t3, $t4 + 9: $t10 := copy($t3) + # flush: $t9 + # live vars: $t1, $t3, $t4, $t10 + 10: $t9 := vector::borrow($t10, $t4) + # live vars: $t1, $t3, $t4, $t9 + 11: $t6 := copy($t1) + # live vars: $t1, $t3, $t4, $t6, $t9 + 12: m::consume($t6, $t9) + # live vars: $t1, $t3, $t4 + 13: $t6 := move($t4) + # live vars: $t1, $t3, $t6 + 14: $t7 := 1 + # live vars: $t1, $t3, $t6, $t7 + 15: $t6 := +($t6, $t7) + # flush: $t4 + # live vars: $t1, $t3, $t6 + 16: $t4 := move($t6) + # live vars: $t1, $t3, $t4 + 17: goto 3 + # live vars: $t1, $t3, $t4 + 18: label L3 + # live vars: $t3 + 19: drop($t3) + # live vars: + 20: return () +} + + +============ disassembled file-format ================== +// Move bytecode v8 +module c0ffee.m { + + +consume(Arg0: u64, Arg1: &u64) /* def_idx: 0 */ { +B0: + 0: MoveLoc[1](Arg1: &u64) + 1: Pop + 2: Ret +} +one(): u64 /* def_idx: 1 */ { +B0: + 0: LdU64(1) + 1: Ret +} +public test(Arg0: vector) /* def_idx: 2 */ { +L1: loc0: u64 +L2: loc1: &vector +L3: loc2: u64 +L4: loc3: &u64 +B0: + 0: Call one(): u64 + 1: StLoc[1](loc0: u64) + 2: ImmBorrowLoc[0](Arg0: vector) + 3: StLoc[2](loc1: &vector) + 4: LdU64(0) + 5: StLoc[3](loc2: u64) +B1: + 6: CopyLoc[3](loc2: u64) + 7: CopyLoc[2](loc1: &vector) + 8: VecLen(2) + 9: Lt + 10: BrFalse(23) +B2: + 11: CopyLoc[2](loc1: &vector) + 12: CopyLoc[3](loc2: u64) + 13: VecImmBorrow(2) + 14: StLoc[4](loc3: &u64) + 15: CopyLoc[1](loc0: u64) + 16: MoveLoc[4](loc3: &u64) + 17: Call consume(u64, &u64) + 18: MoveLoc[3](loc2: u64) + 19: LdU64(1) + 20: Add + 21: StLoc[3](loc2: u64) + 22: Branch(6) +B3: + 23: MoveLoc[2](loc1: &vector) + 24: Pop + 25: Ret +} +} +============ bytecode verification succeeded ======== diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/framework_reduced_12.move b/third_party/move/move-compiler-v2/tests/flush-writes/framework_reduced_12.move new file mode 100644 index 0000000000000..20d7070cd5f78 --- /dev/null +++ b/third_party/move/move-compiler-v2/tests/flush-writes/framework_reduced_12.move @@ -0,0 +1,57 @@ +module 0xc0ffee::m { + use std::vector; + + fun id(x: u64): u64 { + x + } + + fun bytes(_x: &u64): vector { + vector[1u8, 2u8] + } + + fun cons_2(x: u64, _y: &mut u64): u64 { + x + } + + fun one(): u64 { + 1 + } + + fun cons_7(_x: vector, _a: u64, _b: u64, _c: u64, _d: u64, _e: u64, _f: u64): u64 { + 0 + } + + fun cons_2_another(_x: &u64, _y: u64) {} + + fun test(new_address: u64): u64 { + let new_account = id(new_address); + let authentication_key = bytes(&new_address); + assert!( + vector::length(&authentication_key) == 2, + 42 + ); + + let guid_creation_num = 0; + + let guid_for_coin = cons_2(new_address, &mut guid_creation_num); + let coin_register_events = id(guid_for_coin); + + let guid_for_rotation = cons_2(new_address, &mut guid_creation_num); + let key_rotation_events = id(guid_for_rotation); + + cons_2_another( + &new_account, + cons_7( + authentication_key, + 0, + guid_creation_num, + coin_register_events, + key_rotation_events, + id(one()), + id(one()), + ) + ); + + new_account + } +} diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/framework_reduced_12.off.exp b/third_party/move/move-compiler-v2/tests/flush-writes/framework_reduced_12.off.exp new file mode 100644 index 0000000000000..3ead2ca389a85 --- /dev/null +++ b/third_party/move/move-compiler-v2/tests/flush-writes/framework_reduced_12.off.exp @@ -0,0 +1,112 @@ + +============ disassembled file-format ================== +// Move bytecode v8 +module c0ffee.m { + + +bytes(Arg0: &u64): vector /* def_idx: 0 */ { +B0: + 0: LdConst[0](Vector(U8): [2, 1, 2]) + 1: MoveLoc[0](Arg0: &u64) + 2: Pop + 3: Ret +} +cons_2(Arg0: u64, Arg1: &mut u64): u64 /* def_idx: 1 */ { +B0: + 0: MoveLoc[1](Arg1: &mut u64) + 1: Pop + 2: MoveLoc[0](Arg0: u64) + 3: Ret +} +cons_2_another(Arg0: &u64, Arg1: u64) /* def_idx: 2 */ { +B0: + 0: MoveLoc[0](Arg0: &u64) + 1: Pop + 2: Ret +} +cons_7(Arg0: vector, Arg1: u64, Arg2: u64, Arg3: u64, Arg4: u64, Arg5: u64, Arg6: u64): u64 /* def_idx: 3 */ { +B0: + 0: LdU64(0) + 1: Ret +} +id(Arg0: u64): u64 /* def_idx: 4 */ { +B0: + 0: MoveLoc[0](Arg0: u64) + 1: Ret +} +one(): u64 /* def_idx: 5 */ { +B0: + 0: LdU64(1) + 1: Ret +} +test(Arg0: u64): u64 /* def_idx: 6 */ { +L1: loc0: u64 +L2: loc1: vector +L3: loc2: u64 +L4: loc3: u64 +L5: loc4: u64 +L6: loc5: vector +L7: loc6: &u64 +L8: loc7: u64 +L9: loc8: u64 +L10: loc9: u64 +L11: loc10: u64 +B0: + 0: CopyLoc[0](Arg0: u64) + 1: Call id(u64): u64 + 2: StLoc[1](loc0: u64) + 3: ImmBorrowLoc[0](Arg0: u64) + 4: Call bytes(&u64): vector + 5: StLoc[2](loc1: vector) + 6: ImmBorrowLoc[2](loc1: vector) + 7: VecLen(7) + 8: LdU64(2) + 9: Eq + 10: BrFalse(51) +B1: + 11: LdU64(0) + 12: StLoc[3](loc2: u64) + 13: CopyLoc[0](Arg0: u64) + 14: MutBorrowLoc[3](loc2: u64) + 15: Call cons_2(u64, &mut u64): u64 + 16: Call id(u64): u64 + 17: MoveLoc[0](Arg0: u64) + 18: MutBorrowLoc[3](loc2: u64) + 19: Call cons_2(u64, &mut u64): u64 + 20: Call id(u64): u64 + 21: ImmBorrowLoc[1](loc0: u64) + 22: MoveLoc[2](loc1: vector) + 23: LdU64(0) + 24: MoveLoc[3](loc2: u64) + 25: StLoc[4](loc3: u64) + 26: StLoc[5](loc4: u64) + 27: StLoc[6](loc5: vector) + 28: StLoc[7](loc6: &u64) + 29: Call one(): u64 + 30: Call id(u64): u64 + 31: Call one(): u64 + 32: Call id(u64): u64 + 33: StLoc[10](loc9: u64) + 34: StLoc[11](loc10: u64) + 35: StLoc[8](loc7: u64) + 36: StLoc[9](loc8: u64) + 37: MoveLoc[6](loc5: vector) + 38: MoveLoc[5](loc4: u64) + 39: MoveLoc[4](loc3: u64) + 40: MoveLoc[9](loc8: u64) + 41: MoveLoc[8](loc7: u64) + 42: MoveLoc[11](loc10: u64) + 43: MoveLoc[10](loc9: u64) + 44: Call cons_7(vector, u64, u64, u64, u64, u64, u64): u64 + 45: StLoc[9](loc8: u64) + 46: MoveLoc[7](loc6: &u64) + 47: MoveLoc[9](loc8: u64) + 48: Call cons_2_another(&u64, u64) + 49: MoveLoc[1](loc0: u64) + 50: Ret +B2: + 51: LdU64(42) + 52: Abort +} +} +============ bytecode verification succeeded ======== diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/framework_reduced_12.on.exp b/third_party/move/move-compiler-v2/tests/flush-writes/framework_reduced_12.on.exp new file mode 100644 index 0000000000000..54e6283f42e06 --- /dev/null +++ b/third_party/move/move-compiler-v2/tests/flush-writes/framework_reduced_12.on.exp @@ -0,0 +1,261 @@ +============ after FlushWritesProcessor: ================ + +[variant baseline] +fun m::bytes($t0: &u64): vector { + var $t1: vector + # live vars: $t0 + 0: $t1 := ["1", "2"] + # live vars: $t0, $t1 + 1: drop($t0) + # live vars: $t1 + 2: return $t1 +} + + +[variant baseline] +fun m::cons_2($t0: u64, $t1: &mut u64): u64 { + var $t2: u64 [unused] + # live vars: $t0, $t1 + 0: drop($t1) + # live vars: $t0 + 1: return $t0 +} + + +[variant baseline] +fun m::cons_2_another($t0: &u64, $t1: u64) { + # live vars: $t0, $t1 + 0: drop($t0) + # live vars: + 1: return () +} + + +[variant baseline] +fun m::cons_7($t0: vector, $t1: u64, $t2: u64, $t3: u64, $t4: u64, $t5: u64, $t6: u64): u64 { + var $t7: u64 [unused] + # live vars: $t0, $t1, $t2, $t3, $t4, $t5, $t6 + 0: $t1 := 0 + # live vars: $t1 + 1: return $t1 +} + + +[variant baseline] +fun m::id($t0: u64): u64 { + var $t1: u64 [unused] + # live vars: $t0 + 0: return $t0 +} + + +[variant baseline] +fun m::one(): u64 { + var $t0: u64 + # live vars: + 0: $t0 := 1 + # live vars: $t0 + 1: return $t0 +} + + +[variant baseline] +fun m::test($t0: u64): u64 { + var $t1: u64 [unused] + var $t2: u64 + var $t3: vector + var $t4: &u64 + var $t5: bool + var $t6: u64 + var $t7: &vector + var $t8: u64 + var $t9: u64 [unused] + var $t10: u64 + var $t11: u64 [unused] + var $t12: u64 [unused] + var $t13: &mut u64 + var $t14: u64 [unused] + var $t15: u64 [unused] + var $t16: u64 [unused] + var $t17: &mut u64 [unused] + var $t18: u64 [unused] + var $t19: &u64 [unused] + var $t20: u64 [unused] + var $t21: vector + var $t22: u64 + var $t23: u64 + var $t24: u64 [unused] + var $t25: u64 [unused] + var $t26: u64 [unused] + var $t27: u64 + var $t28: u64 [unused] + var $t29: u64 + # flush: $t2 + # live vars: $t0 + 0: $t2 := m::id($t0) + # live vars: $t0, $t2 + 1: $t4 := borrow_local($t0) + # flush: $t3 + # live vars: $t0, $t2, $t4 + 2: $t3 := m::bytes($t4) + # live vars: $t0, $t2, $t3 + 3: $t7 := borrow_local($t3) + # live vars: $t0, $t2, $t3, $t7 + 4: $t6 := vector::length($t7) + # live vars: $t0, $t2, $t3, $t6 + 5: $t8 := 2 + # live vars: $t0, $t2, $t3, $t6, $t8 + 6: $t5 := ==($t6, $t8) + # live vars: $t0, $t2, $t3, $t5 + 7: if ($t5) goto 8 else goto 32 + # live vars: $t0, $t2, $t3 + 8: label L0 + # flush: $t10 + # live vars: $t0, $t2, $t3 + 9: $t10 := 0 + # live vars: $t0, $t2, $t3, $t10 + 10: $t6 := copy($t0) + # live vars: $t0, $t2, $t3, $t6, $t10 + 11: $t13 := borrow_local($t10) + # live vars: $t0, $t2, $t3, $t6, $t10, $t13 + 12: $t6 := m::cons_2($t6, $t13) + # flush: $t6 + # live vars: $t0, $t2, $t3, $t6, $t10 + 13: $t6 := m::id($t6) + # live vars: $t0, $t2, $t3, $t6, $t10 + 14: $t8 := move($t0) + # live vars: $t2, $t3, $t6, $t8, $t10 + 15: $t13 := borrow_local($t10) + # live vars: $t2, $t3, $t6, $t8, $t10, $t13 + 16: $t8 := m::cons_2($t8, $t13) + # flush: $t8 + # live vars: $t2, $t3, $t6, $t8, $t10 + 17: $t8 := m::id($t8) + # live vars: $t2, $t3, $t6, $t8, $t10 + 18: $t4 := borrow_local($t2) + # live vars: $t2, $t3, $t4, $t6, $t8, $t10 + 19: $t21 := move($t3) + # live vars: $t2, $t4, $t6, $t8, $t10, $t21 + 20: $t22 := 0 + # live vars: $t2, $t4, $t6, $t8, $t10, $t21, $t22 + 21: $t23 := move($t10) + # live vars: $t2, $t4, $t6, $t8, $t21, $t22, $t23 + 22: $t6 := move($t6) + # live vars: $t2, $t4, $t6, $t8, $t21, $t22, $t23 + 23: $t8 := move($t8) + # live vars: $t2, $t4, $t6, $t8, $t21, $t22, $t23 + 24: $t27 := m::one() + # live vars: $t2, $t4, $t6, $t8, $t21, $t22, $t23, $t27 + 25: $t27 := m::id($t27) + # live vars: $t2, $t4, $t6, $t8, $t21, $t22, $t23, $t27 + 26: $t29 := m::one() + # live vars: $t2, $t4, $t6, $t8, $t21, $t22, $t23, $t27, $t29 + 27: $t29 := m::id($t29) + # live vars: $t2, $t4, $t6, $t8, $t21, $t22, $t23, $t27, $t29 + 28: $t6 := m::cons_7($t21, $t22, $t23, $t6, $t8, $t27, $t29) + # live vars: $t2, $t4, $t6 + 29: m::cons_2_another($t4, $t6) + # live vars: $t2 + 30: $t6 := move($t2) + # live vars: $t6 + 31: return $t6 + # live vars: $t0, $t2, $t3 + 32: label L1 + # live vars: + 33: $t6 := 42 + # live vars: $t6 + 34: abort($t6) +} + + +============ disassembled file-format ================== +// Move bytecode v8 +module c0ffee.m { + + +bytes(Arg0: &u64): vector /* def_idx: 0 */ { +B0: + 0: LdConst[0](Vector(U8): [2, 1, 2]) + 1: MoveLoc[0](Arg0: &u64) + 2: Pop + 3: Ret +} +cons_2(Arg0: u64, Arg1: &mut u64): u64 /* def_idx: 1 */ { +B0: + 0: MoveLoc[1](Arg1: &mut u64) + 1: Pop + 2: MoveLoc[0](Arg0: u64) + 3: Ret +} +cons_2_another(Arg0: &u64, Arg1: u64) /* def_idx: 2 */ { +B0: + 0: MoveLoc[0](Arg0: &u64) + 1: Pop + 2: Ret +} +cons_7(Arg0: vector, Arg1: u64, Arg2: u64, Arg3: u64, Arg4: u64, Arg5: u64, Arg6: u64): u64 /* def_idx: 3 */ { +B0: + 0: LdU64(0) + 1: Ret +} +id(Arg0: u64): u64 /* def_idx: 4 */ { +B0: + 0: MoveLoc[0](Arg0: u64) + 1: Ret +} +one(): u64 /* def_idx: 5 */ { +B0: + 0: LdU64(1) + 1: Ret +} +test(Arg0: u64): u64 /* def_idx: 6 */ { +L1: loc0: u64 +L2: loc1: vector +L3: loc2: u64 +L4: loc3: u64 +L5: loc4: u64 +B0: + 0: CopyLoc[0](Arg0: u64) + 1: Call id(u64): u64 + 2: StLoc[1](loc0: u64) + 3: ImmBorrowLoc[0](Arg0: u64) + 4: Call bytes(&u64): vector + 5: StLoc[2](loc1: vector) + 6: ImmBorrowLoc[2](loc1: vector) + 7: VecLen(7) + 8: LdU64(2) + 9: Eq + 10: BrFalse(37) +B1: + 11: LdU64(0) + 12: StLoc[3](loc2: u64) + 13: CopyLoc[0](Arg0: u64) + 14: MutBorrowLoc[3](loc2: u64) + 15: Call cons_2(u64, &mut u64): u64 + 16: Call id(u64): u64 + 17: StLoc[4](loc3: u64) + 18: MoveLoc[0](Arg0: u64) + 19: MutBorrowLoc[3](loc2: u64) + 20: Call cons_2(u64, &mut u64): u64 + 21: Call id(u64): u64 + 22: StLoc[5](loc4: u64) + 23: ImmBorrowLoc[1](loc0: u64) + 24: MoveLoc[2](loc1: vector) + 25: LdU64(0) + 26: MoveLoc[3](loc2: u64) + 27: MoveLoc[4](loc3: u64) + 28: MoveLoc[5](loc4: u64) + 29: Call one(): u64 + 30: Call id(u64): u64 + 31: Call one(): u64 + 32: Call id(u64): u64 + 33: Call cons_7(vector, u64, u64, u64, u64, u64, u64): u64 + 34: Call cons_2_another(&u64, u64) + 35: MoveLoc[1](loc0: u64) + 36: Ret +B2: + 37: LdU64(42) + 38: Abort +} +} +============ bytecode verification succeeded ======== diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/in_order_use_01.off.exp b/third_party/move/move-compiler-v2/tests/flush-writes/in_order_use_01.off.exp index fd1d67a0bace5..ac86b11f5356a 100644 --- a/third_party/move/move-compiler-v2/tests/flush-writes/in_order_use_01.off.exp +++ b/third_party/move/move-compiler-v2/tests/flush-writes/in_order_use_01.off.exp @@ -14,6 +14,13 @@ B0: 1: Ret } public test() /* def_idx: 2 */ { +L0: loc0: u64 +L1: loc1: u64 +L2: loc2: u64 +L3: loc3: u64 +L4: loc4: u64 +L5: loc5: u64 +L6: loc6: u64 B0: 0: Call one(): u64 1: Call one(): u64 diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/in_order_use_01.on.exp b/third_party/move/move-compiler-v2/tests/flush-writes/in_order_use_01.on.exp index a56b53ebf5f68..6e552832eec84 100644 --- a/third_party/move/move-compiler-v2/tests/flush-writes/in_order_use_01.on.exp +++ b/third_party/move/move-compiler-v2/tests/flush-writes/in_order_use_01.on.exp @@ -47,9 +47,21 @@ public fun m::test() { # live vars: $t0, $t1, $t2, $t3, $t4, $t5 6: $t6 := m::one() # live vars: $t0, $t1, $t2, $t3, $t4, $t5, $t6 - 7: m::consume($t0, $t1, $t2, $t3, $t4, $t5, $t6) + 7: $t0 := move($t0) + # live vars: $t0, $t1, $t2, $t3, $t4, $t5, $t6 + 8: $t1 := move($t1) + # live vars: $t0, $t1, $t2, $t3, $t4, $t5, $t6 + 9: $t2 := move($t2) + # live vars: $t0, $t1, $t2, $t3, $t4, $t5, $t6 + 10: $t3 := move($t3) + # live vars: $t0, $t1, $t2, $t3, $t4, $t5, $t6 + 11: $t4 := move($t4) + # live vars: $t0, $t1, $t2, $t3, $t4, $t5, $t6 + 12: $t5 := move($t5) + # live vars: $t0, $t1, $t2, $t3, $t4, $t5, $t6 + 13: m::consume($t0, $t1, $t2, $t3, $t4, $t5, $t6) # live vars: - 8: return () + 14: return () } @@ -68,6 +80,13 @@ B0: 1: Ret } public test() /* def_idx: 2 */ { +L0: loc0: u64 +L1: loc1: u64 +L2: loc2: u64 +L3: loc3: u64 +L4: loc4: u64 +L5: loc5: u64 +L6: loc6: u64 B0: 0: Call one(): u64 1: Call one(): u64 diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/in_order_use_02.move b/third_party/move/move-compiler-v2/tests/flush-writes/in_order_use_02.move new file mode 100644 index 0000000000000..24cc6772def53 --- /dev/null +++ b/third_party/move/move-compiler-v2/tests/flush-writes/in_order_use_02.move @@ -0,0 +1,12 @@ +module 0xc0ffee::m { + fun foo(): (u64, u64, u64, u64, u64) { + (1, 2, 3, 4, 5) + } + + fun consume(_a: u64, _b: u64, _c: u64, _d: u64, _e: u64) {} + + public fun test() { + let (a, b, c, d, e) = foo(); + consume(a, b, c, d, e); + } +} diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/in_order_use_02.off.exp b/third_party/move/move-compiler-v2/tests/flush-writes/in_order_use_02.off.exp new file mode 100644 index 0000000000000..249f372aff360 --- /dev/null +++ b/third_party/move/move-compiler-v2/tests/flush-writes/in_order_use_02.off.exp @@ -0,0 +1,32 @@ + +============ disassembled file-format ================== +// Move bytecode v8 +module c0ffee.m { + + +consume(Arg0: u64, Arg1: u64, Arg2: u64, Arg3: u64, Arg4: u64) /* def_idx: 0 */ { +B0: + 0: Ret +} +foo(): u64 * u64 * u64 * u64 * u64 /* def_idx: 1 */ { +B0: + 0: LdU64(1) + 1: LdU64(2) + 2: LdU64(3) + 3: LdU64(4) + 4: LdU64(5) + 5: Ret +} +public test() /* def_idx: 2 */ { +L0: loc0: u64 +L1: loc1: u64 +L2: loc2: u64 +L3: loc3: u64 +L4: loc4: u64 +B0: + 0: Call foo(): u64 * u64 * u64 * u64 * u64 + 1: Call consume(u64, u64, u64, u64, u64) + 2: Ret +} +} +============ bytecode verification succeeded ======== diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/in_order_use_02.on.exp b/third_party/move/move-compiler-v2/tests/flush-writes/in_order_use_02.on.exp new file mode 100644 index 0000000000000..32b4c53436a38 --- /dev/null +++ b/third_party/move/move-compiler-v2/tests/flush-writes/in_order_use_02.on.exp @@ -0,0 +1,90 @@ +============ after FlushWritesProcessor: ================ + +[variant baseline] +fun m::consume($t0: u64, $t1: u64, $t2: u64, $t3: u64, $t4: u64) { + # live vars: $t0, $t1, $t2, $t3, $t4 + 0: return () +} + + +[variant baseline] +fun m::foo(): (u64, u64, u64, u64, u64) { + var $t0: u64 + var $t1: u64 + var $t2: u64 + var $t3: u64 + var $t4: u64 + # live vars: + 0: $t0 := 1 + # live vars: $t0 + 1: $t1 := 2 + # live vars: $t0, $t1 + 2: $t2 := 3 + # live vars: $t0, $t1, $t2 + 3: $t3 := 4 + # live vars: $t0, $t1, $t2, $t3 + 4: $t4 := 5 + # live vars: $t0, $t1, $t2, $t3, $t4 + 5: return ($t0, $t1, $t2, $t3, $t4) +} + + +[variant baseline] +public fun m::test() { + var $t0: u64 + var $t1: u64 + var $t2: u64 + var $t3: u64 + var $t4: u64 + var $t5: u64 [unused] + var $t6: u64 [unused] + var $t7: u64 [unused] + var $t8: u64 [unused] + # live vars: + 0: ($t0, $t1, $t2, $t3, $t4) := m::foo() + # live vars: $t0, $t1, $t2, $t3, $t4 + 1: $t0 := move($t0) + # live vars: $t0, $t1, $t2, $t3, $t4 + 2: $t1 := move($t1) + # live vars: $t0, $t1, $t2, $t3, $t4 + 3: $t2 := move($t2) + # live vars: $t0, $t1, $t2, $t3, $t4 + 4: $t3 := move($t3) + # live vars: $t0, $t1, $t2, $t3, $t4 + 5: m::consume($t0, $t1, $t2, $t3, $t4) + # live vars: + 6: return () +} + + +============ disassembled file-format ================== +// Move bytecode v8 +module c0ffee.m { + + +consume(Arg0: u64, Arg1: u64, Arg2: u64, Arg3: u64, Arg4: u64) /* def_idx: 0 */ { +B0: + 0: Ret +} +foo(): u64 * u64 * u64 * u64 * u64 /* def_idx: 1 */ { +B0: + 0: LdU64(1) + 1: LdU64(2) + 2: LdU64(3) + 3: LdU64(4) + 4: LdU64(5) + 5: Ret +} +public test() /* def_idx: 2 */ { +L0: loc0: u64 +L1: loc1: u64 +L2: loc2: u64 +L3: loc3: u64 +L4: loc4: u64 +B0: + 0: Call foo(): u64 * u64 * u64 * u64 * u64 + 1: Call consume(u64, u64, u64, u64, u64) + 2: Ret +} +} +============ bytecode verification succeeded ======== diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/in_order_use_03.move b/third_party/move/move-compiler-v2/tests/flush-writes/in_order_use_03.move new file mode 100644 index 0000000000000..27a29c7cd1cd6 --- /dev/null +++ b/third_party/move/move-compiler-v2/tests/flush-writes/in_order_use_03.move @@ -0,0 +1,20 @@ +module 0xc0ffee::m { + fun one(): u64 { + 1 + } + + fun consume_4(_a: u64, _b: u64, _c: u64, _d: u64) {} + + fun consume_2(_a: u64, _b: u64) {} + + public fun test() { + let a = one(); + let b = one(); + let c = one(); + let d = one(); + let e = one(); + let f = one(); + consume_2(e, f); + consume_4(a, b, c, d); + } +} diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/in_order_use_03.off.exp b/third_party/move/move-compiler-v2/tests/flush-writes/in_order_use_03.off.exp new file mode 100644 index 0000000000000..20c9ee4c47c48 --- /dev/null +++ b/third_party/move/move-compiler-v2/tests/flush-writes/in_order_use_03.off.exp @@ -0,0 +1,39 @@ + +============ disassembled file-format ================== +// Move bytecode v8 +module c0ffee.m { + + +consume_2(Arg0: u64, Arg1: u64) /* def_idx: 0 */ { +B0: + 0: Ret +} +consume_4(Arg0: u64, Arg1: u64, Arg2: u64, Arg3: u64) /* def_idx: 1 */ { +B0: + 0: Ret +} +one(): u64 /* def_idx: 2 */ { +B0: + 0: LdU64(1) + 1: Ret +} +public test() /* def_idx: 3 */ { +L0: loc0: u64 +L1: loc1: u64 +L2: loc2: u64 +L3: loc3: u64 +L4: loc4: u64 +L5: loc5: u64 +B0: + 0: Call one(): u64 + 1: Call one(): u64 + 2: Call one(): u64 + 3: Call one(): u64 + 4: Call one(): u64 + 5: Call one(): u64 + 6: Call consume_2(u64, u64) + 7: Call consume_4(u64, u64, u64, u64) + 8: Ret +} +} +============ bytecode verification succeeded ======== diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/in_order_use_03.on.exp b/third_party/move/move-compiler-v2/tests/flush-writes/in_order_use_03.on.exp new file mode 100644 index 0000000000000..364c7bb1bca0e --- /dev/null +++ b/third_party/move/move-compiler-v2/tests/flush-writes/in_order_use_03.on.exp @@ -0,0 +1,105 @@ +============ after FlushWritesProcessor: ================ + +[variant baseline] +fun m::consume_2($t0: u64, $t1: u64) { + # live vars: $t0, $t1 + 0: return () +} + + +[variant baseline] +fun m::consume_4($t0: u64, $t1: u64, $t2: u64, $t3: u64) { + # live vars: $t0, $t1, $t2, $t3 + 0: return () +} + + +[variant baseline] +fun m::one(): u64 { + var $t0: u64 + # live vars: + 0: $t0 := 1 + # live vars: $t0 + 1: return $t0 +} + + +[variant baseline] +public fun m::test() { + var $t0: u64 + var $t1: u64 + var $t2: u64 + var $t3: u64 + var $t4: u64 + var $t5: u64 + var $t6: u64 [unused] + var $t7: u64 [unused] + var $t8: u64 [unused] + var $t9: u64 [unused] + # live vars: + 0: $t0 := m::one() + # live vars: $t0 + 1: $t1 := m::one() + # live vars: $t0, $t1 + 2: $t2 := m::one() + # live vars: $t0, $t1, $t2 + 3: $t3 := m::one() + # live vars: $t0, $t1, $t2, $t3 + 4: $t4 := m::one() + # live vars: $t0, $t1, $t2, $t3, $t4 + 5: $t5 := m::one() + # live vars: $t0, $t1, $t2, $t3, $t4, $t5 + 6: $t4 := move($t4) + # live vars: $t0, $t1, $t2, $t3, $t4, $t5 + 7: m::consume_2($t4, $t5) + # live vars: $t0, $t1, $t2, $t3 + 8: $t0 := move($t0) + # live vars: $t0, $t1, $t2, $t3 + 9: $t1 := move($t1) + # live vars: $t0, $t1, $t2, $t3 + 10: $t2 := move($t2) + # live vars: $t0, $t1, $t2, $t3 + 11: m::consume_4($t0, $t1, $t2, $t3) + # live vars: + 12: return () +} + + +============ disassembled file-format ================== +// Move bytecode v8 +module c0ffee.m { + + +consume_2(Arg0: u64, Arg1: u64) /* def_idx: 0 */ { +B0: + 0: Ret +} +consume_4(Arg0: u64, Arg1: u64, Arg2: u64, Arg3: u64) /* def_idx: 1 */ { +B0: + 0: Ret +} +one(): u64 /* def_idx: 2 */ { +B0: + 0: LdU64(1) + 1: Ret +} +public test() /* def_idx: 3 */ { +L0: loc0: u64 +L1: loc1: u64 +L2: loc2: u64 +L3: loc3: u64 +L4: loc4: u64 +L5: loc5: u64 +B0: + 0: Call one(): u64 + 1: Call one(): u64 + 2: Call one(): u64 + 3: Call one(): u64 + 4: Call one(): u64 + 5: Call one(): u64 + 6: Call consume_2(u64, u64) + 7: Call consume_4(u64, u64, u64, u64) + 8: Ret +} +} +============ bytecode verification succeeded ======== diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/in_order_use_04.move b/third_party/move/move-compiler-v2/tests/flush-writes/in_order_use_04.move new file mode 100644 index 0000000000000..375d799080fa8 --- /dev/null +++ b/third_party/move/move-compiler-v2/tests/flush-writes/in_order_use_04.move @@ -0,0 +1,20 @@ +module 0xc0ffee::m { + fun four(): (u64, u64, u64, u64) { + (1, 2, 3, 4) + } + + fun two(): (u64, u64) { + (5, 6) + } + + fun consume_4(_a: u64, _b: u64, _c: u64, _d: u64) {} + + fun consume_2(_a: u64, _b: u64) {} + + public fun test() { + let (a, b, c, d) = four(); + let (e, f) = two(); + consume_2(e, f); + consume_4(a, b, c, d); + } +} diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/in_order_use_04.off.exp b/third_party/move/move-compiler-v2/tests/flush-writes/in_order_use_04.off.exp new file mode 100644 index 0000000000000..46c7bf5fcc507 --- /dev/null +++ b/third_party/move/move-compiler-v2/tests/flush-writes/in_order_use_04.off.exp @@ -0,0 +1,44 @@ + +============ disassembled file-format ================== +// Move bytecode v8 +module c0ffee.m { + + +consume_2(Arg0: u64, Arg1: u64) /* def_idx: 0 */ { +B0: + 0: Ret +} +consume_4(Arg0: u64, Arg1: u64, Arg2: u64, Arg3: u64) /* def_idx: 1 */ { +B0: + 0: Ret +} +four(): u64 * u64 * u64 * u64 /* def_idx: 2 */ { +B0: + 0: LdU64(1) + 1: LdU64(2) + 2: LdU64(3) + 3: LdU64(4) + 4: Ret +} +public test() /* def_idx: 3 */ { +L0: loc0: u64 +L1: loc1: u64 +L2: loc2: u64 +L3: loc3: u64 +L4: loc4: u64 +L5: loc5: u64 +B0: + 0: Call four(): u64 * u64 * u64 * u64 + 1: Call two(): u64 * u64 + 2: Call consume_2(u64, u64) + 3: Call consume_4(u64, u64, u64, u64) + 4: Ret +} +two(): u64 * u64 /* def_idx: 4 */ { +B0: + 0: LdU64(5) + 1: LdU64(6) + 2: Ret +} +} +============ bytecode verification succeeded ======== diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/in_order_use_04.on.exp b/third_party/move/move-compiler-v2/tests/flush-writes/in_order_use_04.on.exp new file mode 100644 index 0000000000000..370d185ab5701 --- /dev/null +++ b/third_party/move/move-compiler-v2/tests/flush-writes/in_order_use_04.on.exp @@ -0,0 +1,124 @@ +============ after FlushWritesProcessor: ================ + +[variant baseline] +fun m::consume_2($t0: u64, $t1: u64) { + # live vars: $t0, $t1 + 0: return () +} + + +[variant baseline] +fun m::consume_4($t0: u64, $t1: u64, $t2: u64, $t3: u64) { + # live vars: $t0, $t1, $t2, $t3 + 0: return () +} + + +[variant baseline] +fun m::four(): (u64, u64, u64, u64) { + var $t0: u64 + var $t1: u64 + var $t2: u64 + var $t3: u64 + # live vars: + 0: $t0 := 1 + # live vars: $t0 + 1: $t1 := 2 + # live vars: $t0, $t1 + 2: $t2 := 3 + # live vars: $t0, $t1, $t2 + 3: $t3 := 4 + # live vars: $t0, $t1, $t2, $t3 + 4: return ($t0, $t1, $t2, $t3) +} + + +[variant baseline] +public fun m::test() { + var $t0: u64 + var $t1: u64 + var $t2: u64 + var $t3: u64 + var $t4: u64 + var $t5: u64 + var $t6: u64 [unused] + var $t7: u64 [unused] + var $t8: u64 [unused] + var $t9: u64 [unused] + # live vars: + 0: ($t0, $t1, $t2, $t3) := m::four() + # live vars: $t0, $t1, $t2, $t3 + 1: ($t4, $t5) := m::two() + # live vars: $t0, $t1, $t2, $t3, $t4, $t5 + 2: $t4 := move($t4) + # live vars: $t0, $t1, $t2, $t3, $t4, $t5 + 3: m::consume_2($t4, $t5) + # live vars: $t0, $t1, $t2, $t3 + 4: $t0 := move($t0) + # live vars: $t0, $t1, $t2, $t3 + 5: $t1 := move($t1) + # live vars: $t0, $t1, $t2, $t3 + 6: $t2 := move($t2) + # live vars: $t0, $t1, $t2, $t3 + 7: m::consume_4($t0, $t1, $t2, $t3) + # live vars: + 8: return () +} + + +[variant baseline] +fun m::two(): (u64, u64) { + var $t0: u64 + var $t1: u64 + # live vars: + 0: $t0 := 5 + # live vars: $t0 + 1: $t1 := 6 + # live vars: $t0, $t1 + 2: return ($t0, $t1) +} + + +============ disassembled file-format ================== +// Move bytecode v8 +module c0ffee.m { + + +consume_2(Arg0: u64, Arg1: u64) /* def_idx: 0 */ { +B0: + 0: Ret +} +consume_4(Arg0: u64, Arg1: u64, Arg2: u64, Arg3: u64) /* def_idx: 1 */ { +B0: + 0: Ret +} +four(): u64 * u64 * u64 * u64 /* def_idx: 2 */ { +B0: + 0: LdU64(1) + 1: LdU64(2) + 2: LdU64(3) + 3: LdU64(4) + 4: Ret +} +public test() /* def_idx: 3 */ { +L0: loc0: u64 +L1: loc1: u64 +L2: loc2: u64 +L3: loc3: u64 +L4: loc4: u64 +L5: loc5: u64 +B0: + 0: Call four(): u64 * u64 * u64 * u64 + 1: Call two(): u64 * u64 + 2: Call consume_2(u64, u64) + 3: Call consume_4(u64, u64, u64, u64) + 4: Ret +} +two(): u64 * u64 /* def_idx: 4 */ { +B0: + 0: LdU64(5) + 1: LdU64(6) + 2: Ret +} +} +============ bytecode verification succeeded ======== diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/in_order_use_05.move b/third_party/move/move-compiler-v2/tests/flush-writes/in_order_use_05.move new file mode 100644 index 0000000000000..b22966f0c263e --- /dev/null +++ b/third_party/move/move-compiler-v2/tests/flush-writes/in_order_use_05.move @@ -0,0 +1,16 @@ +module 0xc0ffee::m { + fun one(): u64 { + 1 + } + + fun consume_2(_a: u64, _b: u64) {} + + public fun test() { + let a = one(); + let b = one(); + let c = one(); + let d = one(); + consume_2(c, d); + consume_2(a, b); + } +} diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/in_order_use_05.off.exp b/third_party/move/move-compiler-v2/tests/flush-writes/in_order_use_05.off.exp new file mode 100644 index 0000000000000..adaaa69807a96 --- /dev/null +++ b/third_party/move/move-compiler-v2/tests/flush-writes/in_order_use_05.off.exp @@ -0,0 +1,31 @@ + +============ disassembled file-format ================== +// Move bytecode v8 +module c0ffee.m { + + +consume_2(Arg0: u64, Arg1: u64) /* def_idx: 0 */ { +B0: + 0: Ret +} +one(): u64 /* def_idx: 1 */ { +B0: + 0: LdU64(1) + 1: Ret +} +public test() /* def_idx: 2 */ { +L0: loc0: u64 +L1: loc1: u64 +L2: loc2: u64 +L3: loc3: u64 +B0: + 0: Call one(): u64 + 1: Call one(): u64 + 2: Call one(): u64 + 3: Call one(): u64 + 4: Call consume_2(u64, u64) + 5: Call consume_2(u64, u64) + 6: Ret +} +} +============ bytecode verification succeeded ======== diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/in_order_use_05.on.exp b/third_party/move/move-compiler-v2/tests/flush-writes/in_order_use_05.on.exp new file mode 100644 index 0000000000000..67d329497cd94 --- /dev/null +++ b/third_party/move/move-compiler-v2/tests/flush-writes/in_order_use_05.on.exp @@ -0,0 +1,78 @@ +============ after FlushWritesProcessor: ================ + +[variant baseline] +fun m::consume_2($t0: u64, $t1: u64) { + # live vars: $t0, $t1 + 0: return () +} + + +[variant baseline] +fun m::one(): u64 { + var $t0: u64 + # live vars: + 0: $t0 := 1 + # live vars: $t0 + 1: return $t0 +} + + +[variant baseline] +public fun m::test() { + var $t0: u64 + var $t1: u64 + var $t2: u64 + var $t3: u64 + var $t4: u64 [unused] + var $t5: u64 [unused] + # live vars: + 0: $t0 := m::one() + # live vars: $t0 + 1: $t1 := m::one() + # live vars: $t0, $t1 + 2: $t2 := m::one() + # live vars: $t0, $t1, $t2 + 3: $t3 := m::one() + # live vars: $t0, $t1, $t2, $t3 + 4: $t2 := move($t2) + # live vars: $t0, $t1, $t2, $t3 + 5: m::consume_2($t2, $t3) + # live vars: $t0, $t1 + 6: $t0 := move($t0) + # live vars: $t0, $t1 + 7: m::consume_2($t0, $t1) + # live vars: + 8: return () +} + + +============ disassembled file-format ================== +// Move bytecode v8 +module c0ffee.m { + + +consume_2(Arg0: u64, Arg1: u64) /* def_idx: 0 */ { +B0: + 0: Ret +} +one(): u64 /* def_idx: 1 */ { +B0: + 0: LdU64(1) + 1: Ret +} +public test() /* def_idx: 2 */ { +L0: loc0: u64 +L1: loc1: u64 +L2: loc2: u64 +L3: loc3: u64 +B0: + 0: Call one(): u64 + 1: Call one(): u64 + 2: Call one(): u64 + 3: Call one(): u64 + 4: Call consume_2(u64, u64) + 5: Call consume_2(u64, u64) + 6: Ret +} +} +============ bytecode verification succeeded ======== diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/loop_01.off.exp b/third_party/move/move-compiler-v2/tests/flush-writes/loop_01.off.exp index 3973407c4006f..332dc444699aa 100644 --- a/third_party/move/move-compiler-v2/tests/flush-writes/loop_01.off.exp +++ b/third_party/move/move-compiler-v2/tests/flush-writes/loop_01.off.exp @@ -14,7 +14,6 @@ B0: } public test1(Arg0: u64) /* def_idx: 1 */ { L1: loc0: u64 -L2: loc1: u64 B0: 0: MoveLoc[0](Arg0: u64) 1: Call foo(u64): u64 * u64 diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/loop_01.on.exp b/third_party/move/move-compiler-v2/tests/flush-writes/loop_01.on.exp index 9cbe17fd83e31..46fb670fc5c47 100644 --- a/third_party/move/move-compiler-v2/tests/flush-writes/loop_01.on.exp +++ b/third_party/move/move-compiler-v2/tests/flush-writes/loop_01.on.exp @@ -31,15 +31,17 @@ public fun m::test1($t0: u64) { # live vars: $t0 1: ($t1, $t0) := m::foo($t0) # live vars: $t0, $t1 - 2: $t4 := 0 + 2: $t1 := move($t1) + # live vars: $t0, $t1 + 3: $t4 := 0 # live vars: $t0, $t1, $t4 - 3: $t2 := ==($t1, $t4) + 4: $t2 := ==($t1, $t4) # live vars: $t0, $t2 - 4: if ($t2) goto 5 else goto 0 + 5: if ($t2) goto 6 else goto 0 # live vars: $t0 - 5: label L2 + 6: label L2 # live vars: - 6: return () + 7: return () } @@ -55,15 +57,17 @@ public fun m::test2($t0: u64) { # live vars: $t0 1: ($t0, $t1) := m::foo($t0) # live vars: $t0, $t1 - 2: $t4 := 0 + 2: $t1 := move($t1) + # live vars: $t0, $t1 + 3: $t4 := 0 # live vars: $t0, $t1, $t4 - 3: $t2 := ==($t1, $t4) + 4: $t2 := ==($t1, $t4) # live vars: $t0, $t2 - 4: if ($t2) goto 5 else goto 0 + 5: if ($t2) goto 6 else goto 0 # live vars: $t0 - 5: label L2 + 6: label L2 # live vars: - 6: return () + 7: return () } diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_01.on.exp b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_01.on.exp index beaa1a23f6fae..a0801cee7bced 100644 --- a/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_01.on.exp +++ b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_01.on.exp @@ -48,9 +48,21 @@ public fun m::test() { # live vars: $t0, $t1, $t2, $t3, $t4, $t5 6: $t6 := m::one() # live vars: $t0, $t1, $t2, $t3, $t4, $t5, $t6 - 7: m::consume($t1, $t2, $t3, $t4, $t5, $t6, $t0) + 7: $t1 := move($t1) + # live vars: $t0, $t1, $t2, $t3, $t4, $t5, $t6 + 8: $t2 := move($t2) + # live vars: $t0, $t1, $t2, $t3, $t4, $t5, $t6 + 9: $t3 := move($t3) + # live vars: $t0, $t1, $t2, $t3, $t4, $t5, $t6 + 10: $t4 := move($t4) + # live vars: $t0, $t1, $t2, $t3, $t4, $t5, $t6 + 11: $t5 := move($t5) + # live vars: $t0, $t1, $t2, $t3, $t4, $t5, $t6 + 12: $t6 := move($t6) + # live vars: $t0, $t1, $t2, $t3, $t4, $t5, $t6 + 13: m::consume($t1, $t2, $t3, $t4, $t5, $t6, $t0) # live vars: - 8: return () + 14: return () } @@ -70,6 +82,12 @@ B0: } public test() /* def_idx: 2 */ { L0: loc0: u64 +L1: loc1: u64 +L2: loc2: u64 +L3: loc3: u64 +L4: loc4: u64 +L5: loc5: u64 +L6: loc6: u64 B0: 0: Call one(): u64 1: StLoc[0](loc0: u64) diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_02.on.exp b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_02.on.exp index 57467a8403c5f..18fb0681de07d 100644 --- a/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_02.on.exp +++ b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_02.on.exp @@ -29,11 +29,13 @@ public fun m::test() { # live vars: $t0 1: $t1 := m::one() # live vars: $t0, $t1 - 2: $t3 := copy($t0) + 2: $t1 := move($t1) + # live vars: $t0, $t1 + 3: $t3 := copy($t0) # live vars: $t0, $t1, $t3 - 3: m::consume($t1, $t3, $t0) + 4: m::consume($t1, $t3, $t0) # live vars: - 4: return () + 5: return () } diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_03.on.exp b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_03.on.exp index 5d14ab4849a09..7aedbcdd189f0 100644 --- a/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_03.on.exp +++ b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_03.on.exp @@ -30,11 +30,13 @@ public fun m::test() { # live vars: 0: ($t0, $t1) := m::one_one() # live vars: $t0, $t1 - 1: $t3 := copy($t0) + 1: $t1 := move($t1) + # live vars: $t0, $t1 + 2: $t3 := copy($t0) # live vars: $t0, $t1, $t3 - 2: m::consume($t1, $t3, $t0) + 3: m::consume($t1, $t3, $t0) # live vars: - 3: return () + 4: return () } diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_04.on.exp b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_04.on.exp index a0242ca717e5d..1585a3a38f117 100644 --- a/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_04.on.exp +++ b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_04.on.exp @@ -32,9 +32,11 @@ public fun m::test() { # live vars: $t0, $t1 2: $t2 := copy($t0) # live vars: $t0, $t1, $t2 - 3: m::consume($t2, $t1, $t0) + 3: $t1 := move($t1) + # live vars: $t0, $t1, $t2 + 4: m::consume($t2, $t1, $t0) # live vars: - 4: return () + 5: return () } diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_05.move b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_05.move new file mode 100644 index 0000000000000..c58318af7fa8f --- /dev/null +++ b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_05.move @@ -0,0 +1,12 @@ +module 0xc0ffee::m { + fun one(): u64 { + 1 + } + + fun consume(_a: u64, _b: u64, _c: u64, _d: u64, _e: u64, _f: u64) {} + + fun test() { + let a = one(); + consume(one(), a, one(), one(), one(), one()); + } +} diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_05.off.exp b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_05.off.exp new file mode 100644 index 0000000000000..6a1af98be1263 --- /dev/null +++ b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_05.off.exp @@ -0,0 +1,46 @@ + +============ disassembled file-format ================== +// Move bytecode v8 +module c0ffee.m { + + +consume(Arg0: u64, Arg1: u64, Arg2: u64, Arg3: u64, Arg4: u64, Arg5: u64) /* def_idx: 0 */ { +B0: + 0: Ret +} +one(): u64 /* def_idx: 1 */ { +B0: + 0: LdU64(1) + 1: Ret +} +test() /* def_idx: 2 */ { +L0: loc0: u64 +L1: loc1: u64 +L2: loc2: u64 +L3: loc3: u64 +L4: loc4: u64 +L5: loc5: u64 +B0: + 0: Call one(): u64 + 1: Call one(): u64 + 2: StLoc[0](loc0: u64) + 3: Call one(): u64 + 4: Call one(): u64 + 5: Call one(): u64 + 6: Call one(): u64 + 7: StLoc[2](loc2: u64) + 8: StLoc[3](loc3: u64) + 9: StLoc[4](loc4: u64) + 10: StLoc[5](loc5: u64) + 11: StLoc[1](loc1: u64) + 12: MoveLoc[0](loc0: u64) + 13: MoveLoc[1](loc1: u64) + 14: MoveLoc[5](loc5: u64) + 15: MoveLoc[4](loc4: u64) + 16: MoveLoc[3](loc3: u64) + 17: MoveLoc[2](loc2: u64) + 18: Call consume(u64, u64, u64, u64, u64, u64) + 19: Ret +} +} +============ bytecode verification succeeded ======== diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_05.on.exp b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_05.on.exp new file mode 100644 index 0000000000000..ab65189fed4db --- /dev/null +++ b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_05.on.exp @@ -0,0 +1,80 @@ +============ after FlushWritesProcessor: ================ + +[variant baseline] +fun m::consume($t0: u64, $t1: u64, $t2: u64, $t3: u64, $t4: u64, $t5: u64) { + # live vars: $t0, $t1, $t2, $t3, $t4, $t5 + 0: return () +} + + +[variant baseline] +fun m::one(): u64 { + var $t0: u64 + # live vars: + 0: $t0 := 1 + # live vars: $t0 + 1: return $t0 +} + + +[variant baseline] +fun m::test() { + var $t0: u64 + var $t1: u64 + var $t2: u64 [unused] + var $t3: u64 + var $t4: u64 + var $t5: u64 + var $t6: u64 + # flush: $t0 + # live vars: + 0: $t0 := m::one() + # live vars: $t0 + 1: $t1 := m::one() + # live vars: $t0, $t1 + 2: $t0 := move($t0) + # live vars: $t0, $t1 + 3: $t3 := m::one() + # live vars: $t0, $t1, $t3 + 4: $t4 := m::one() + # live vars: $t0, $t1, $t3, $t4 + 5: $t5 := m::one() + # live vars: $t0, $t1, $t3, $t4, $t5 + 6: $t6 := m::one() + # live vars: $t0, $t1, $t3, $t4, $t5, $t6 + 7: m::consume($t1, $t0, $t3, $t4, $t5, $t6) + # live vars: + 8: return () +} + + +============ disassembled file-format ================== +// Move bytecode v8 +module c0ffee.m { + + +consume(Arg0: u64, Arg1: u64, Arg2: u64, Arg3: u64, Arg4: u64, Arg5: u64) /* def_idx: 0 */ { +B0: + 0: Ret +} +one(): u64 /* def_idx: 1 */ { +B0: + 0: LdU64(1) + 1: Ret +} +test() /* def_idx: 2 */ { +L0: loc0: u64 +B0: + 0: Call one(): u64 + 1: StLoc[0](loc0: u64) + 2: Call one(): u64 + 3: MoveLoc[0](loc0: u64) + 4: Call one(): u64 + 5: Call one(): u64 + 6: Call one(): u64 + 7: Call one(): u64 + 8: Call consume(u64, u64, u64, u64, u64, u64) + 9: Ret +} +} +============ bytecode verification succeeded ======== diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_06.move b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_06.move new file mode 100644 index 0000000000000..29c7ea29c4794 --- /dev/null +++ b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_06.move @@ -0,0 +1,17 @@ +module 0xc0ffee::m { + fun one(): u64 { + 1 + } + + fun multi(): (u64, u64, u64, u64, u64, u64) { + (one(), one(), one(), one(), one(), one()) + } + + fun consume(_a: u64, _b: u64, _c: u64, _d: u64, _e: u64, _f: u64) {} + + fun test() { + let (a, _, _, _, _, _) = multi(); + consume(one(), a, one(), one(), one(), one()); + } + +} diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_06.off.exp b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_06.off.exp new file mode 100644 index 0000000000000..9f2742cf0f927 --- /dev/null +++ b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_06.off.exp @@ -0,0 +1,61 @@ + +============ disassembled file-format ================== +// Move bytecode v8 +module c0ffee.m { + + +consume(Arg0: u64, Arg1: u64, Arg2: u64, Arg3: u64, Arg4: u64, Arg5: u64) /* def_idx: 0 */ { +B0: + 0: Ret +} +multi(): u64 * u64 * u64 * u64 * u64 * u64 /* def_idx: 1 */ { +B0: + 0: Call one(): u64 + 1: Call one(): u64 + 2: Call one(): u64 + 3: Call one(): u64 + 4: Call one(): u64 + 5: Call one(): u64 + 6: Ret +} +one(): u64 /* def_idx: 2 */ { +B0: + 0: LdU64(1) + 1: Ret +} +test() /* def_idx: 3 */ { +L0: loc0: u64 +L1: loc1: u64 +L2: loc2: u64 +L3: loc3: u64 +L4: loc4: u64 +L5: loc5: u64 +B0: + 0: Call multi(): u64 * u64 * u64 * u64 * u64 * u64 + 1: Call one(): u64 + 2: StLoc[0](loc0: u64) + 3: Pop + 4: Pop + 5: Pop + 6: Pop + 7: Pop + 8: Call one(): u64 + 9: Call one(): u64 + 10: Call one(): u64 + 11: Call one(): u64 + 12: StLoc[2](loc2: u64) + 13: StLoc[3](loc3: u64) + 14: StLoc[4](loc4: u64) + 15: StLoc[5](loc5: u64) + 16: StLoc[1](loc1: u64) + 17: MoveLoc[0](loc0: u64) + 18: MoveLoc[1](loc1: u64) + 19: MoveLoc[5](loc5: u64) + 20: MoveLoc[4](loc4: u64) + 21: MoveLoc[3](loc3: u64) + 22: MoveLoc[2](loc2: u64) + 23: Call consume(u64, u64, u64, u64, u64, u64) + 24: Ret +} +} +============ bytecode verification succeeded ======== diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_06.on.exp b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_06.on.exp new file mode 100644 index 0000000000000..24a550fdd557b --- /dev/null +++ b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_06.on.exp @@ -0,0 +1,125 @@ +============ after FlushWritesProcessor: ================ + +[variant baseline] +fun m::consume($t0: u64, $t1: u64, $t2: u64, $t3: u64, $t4: u64, $t5: u64) { + # live vars: $t0, $t1, $t2, $t3, $t4, $t5 + 0: return () +} + + +[variant baseline] +fun m::multi(): (u64, u64, u64, u64, u64, u64) { + var $t0: u64 + var $t1: u64 + var $t2: u64 + var $t3: u64 + var $t4: u64 + var $t5: u64 + # live vars: + 0: $t0 := m::one() + # live vars: $t0 + 1: $t1 := m::one() + # live vars: $t0, $t1 + 2: $t2 := m::one() + # live vars: $t0, $t1, $t2 + 3: $t3 := m::one() + # live vars: $t0, $t1, $t2, $t3 + 4: $t4 := m::one() + # live vars: $t0, $t1, $t2, $t3, $t4 + 5: $t5 := m::one() + # live vars: $t0, $t1, $t2, $t3, $t4, $t5 + 6: return ($t0, $t1, $t2, $t3, $t4, $t5) +} + + +[variant baseline] +fun m::one(): u64 { + var $t0: u64 + # live vars: + 0: $t0 := 1 + # live vars: $t0 + 1: return $t0 +} + + +[variant baseline] +fun m::test() { + var $t0: u64 + var $t1: u64 + var $t2: u64 + var $t3: u64 + var $t4: u64 + var $t5: u64 + var $t6: u64 + var $t7: u64 [unused] + var $t8: u64 + var $t9: u64 + var $t10: u64 + var $t11: u64 + # flush: $t0, $t1, $t2, $t3, $t4, $t5 + # live vars: + 0: ($t0, $t1, $t2, $t3, $t4, $t5) := m::multi() + # live vars: $t0 + 1: $t6 := m::one() + # live vars: $t0, $t6 + 2: $t0 := move($t0) + # live vars: $t0, $t6 + 3: $t8 := m::one() + # live vars: $t0, $t6, $t8 + 4: $t9 := m::one() + # live vars: $t0, $t6, $t8, $t9 + 5: $t10 := m::one() + # live vars: $t0, $t6, $t8, $t9, $t10 + 6: $t11 := m::one() + # live vars: $t0, $t6, $t8, $t9, $t10, $t11 + 7: m::consume($t6, $t0, $t8, $t9, $t10, $t11) + # live vars: + 8: return () +} + + +============ disassembled file-format ================== +// Move bytecode v8 +module c0ffee.m { + + +consume(Arg0: u64, Arg1: u64, Arg2: u64, Arg3: u64, Arg4: u64, Arg5: u64) /* def_idx: 0 */ { +B0: + 0: Ret +} +multi(): u64 * u64 * u64 * u64 * u64 * u64 /* def_idx: 1 */ { +B0: + 0: Call one(): u64 + 1: Call one(): u64 + 2: Call one(): u64 + 3: Call one(): u64 + 4: Call one(): u64 + 5: Call one(): u64 + 6: Ret +} +one(): u64 /* def_idx: 2 */ { +B0: + 0: LdU64(1) + 1: Ret +} +test() /* def_idx: 3 */ { +L0: loc0: u64 +B0: + 0: Call multi(): u64 * u64 * u64 * u64 * u64 * u64 + 1: Pop + 2: Pop + 3: Pop + 4: Pop + 5: Pop + 6: StLoc[0](loc0: u64) + 7: Call one(): u64 + 8: MoveLoc[0](loc0: u64) + 9: Call one(): u64 + 10: Call one(): u64 + 11: Call one(): u64 + 12: Call one(): u64 + 13: Call consume(u64, u64, u64, u64, u64, u64) + 14: Ret +} +} +============ bytecode verification succeeded ======== diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_07.move b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_07.move new file mode 100644 index 0000000000000..d62db319beca5 --- /dev/null +++ b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_07.move @@ -0,0 +1,20 @@ +module 0xc0ffee::m { + fun one(): u64 { + 1 + } + + fun consume_4(_a: u64, _b: u64, _c: u64, _d: u64) {} + + fun consume_2(_a: u64, _b: u64) {} + + public fun test() { + let a = one(); + let b = one(); + let c = one(); + let d = one(); + let e = one(); + let f = one(); + consume_4(a, b, c, d); + consume_2(e, f); + } +} diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_07.off.exp b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_07.off.exp new file mode 100644 index 0000000000000..d63b91d766514 --- /dev/null +++ b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_07.off.exp @@ -0,0 +1,43 @@ + +============ disassembled file-format ================== +// Move bytecode v8 +module c0ffee.m { + + +consume_2(Arg0: u64, Arg1: u64) /* def_idx: 0 */ { +B0: + 0: Ret +} +consume_4(Arg0: u64, Arg1: u64, Arg2: u64, Arg3: u64) /* def_idx: 1 */ { +B0: + 0: Ret +} +one(): u64 /* def_idx: 2 */ { +B0: + 0: LdU64(1) + 1: Ret +} +public test() /* def_idx: 3 */ { +L0: loc0: u64 +L1: loc1: u64 +L2: loc2: u64 +L3: loc3: u64 +L4: loc4: u64 +L5: loc5: u64 +B0: + 0: Call one(): u64 + 1: Call one(): u64 + 2: Call one(): u64 + 3: Call one(): u64 + 4: Call one(): u64 + 5: Call one(): u64 + 6: StLoc[0](loc0: u64) + 7: StLoc[1](loc1: u64) + 8: Call consume_4(u64, u64, u64, u64) + 9: MoveLoc[1](loc1: u64) + 10: MoveLoc[0](loc0: u64) + 11: Call consume_2(u64, u64) + 12: Ret +} +} +============ bytecode verification succeeded ======== diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_07.on.exp b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_07.on.exp new file mode 100644 index 0000000000000..1df16be00b82b --- /dev/null +++ b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_07.on.exp @@ -0,0 +1,109 @@ +============ after FlushWritesProcessor: ================ + +[variant baseline] +fun m::consume_2($t0: u64, $t1: u64) { + # live vars: $t0, $t1 + 0: return () +} + + +[variant baseline] +fun m::consume_4($t0: u64, $t1: u64, $t2: u64, $t3: u64) { + # live vars: $t0, $t1, $t2, $t3 + 0: return () +} + + +[variant baseline] +fun m::one(): u64 { + var $t0: u64 + # live vars: + 0: $t0 := 1 + # live vars: $t0 + 1: return $t0 +} + + +[variant baseline] +public fun m::test() { + var $t0: u64 + var $t1: u64 + var $t2: u64 + var $t3: u64 + var $t4: u64 + var $t5: u64 + var $t6: u64 [unused] + var $t7: u64 [unused] + var $t8: u64 [unused] + var $t9: u64 [unused] + # live vars: + 0: $t0 := m::one() + # live vars: $t0 + 1: $t1 := m::one() + # live vars: $t0, $t1 + 2: $t2 := m::one() + # live vars: $t0, $t1, $t2 + 3: $t3 := m::one() + # live vars: $t0, $t1, $t2, $t3 + 4: $t4 := m::one() + # live vars: $t0, $t1, $t2, $t3, $t4 + 5: $t5 := m::one() + # live vars: $t0, $t1, $t2, $t3, $t4, $t5 + 6: $t0 := move($t0) + # live vars: $t0, $t1, $t2, $t3, $t4, $t5 + 7: $t1 := move($t1) + # live vars: $t0, $t1, $t2, $t3, $t4, $t5 + 8: $t2 := move($t2) + # live vars: $t0, $t1, $t2, $t3, $t4, $t5 + 9: m::consume_4($t0, $t1, $t2, $t3) + # live vars: $t4, $t5 + 10: $t4 := move($t4) + # live vars: $t4, $t5 + 11: m::consume_2($t4, $t5) + # live vars: + 12: return () +} + + +============ disassembled file-format ================== +// Move bytecode v8 +module c0ffee.m { + + +consume_2(Arg0: u64, Arg1: u64) /* def_idx: 0 */ { +B0: + 0: Ret +} +consume_4(Arg0: u64, Arg1: u64, Arg2: u64, Arg3: u64) /* def_idx: 1 */ { +B0: + 0: Ret +} +one(): u64 /* def_idx: 2 */ { +B0: + 0: LdU64(1) + 1: Ret +} +public test() /* def_idx: 3 */ { +L0: loc0: u64 +L1: loc1: u64 +L2: loc2: u64 +L3: loc3: u64 +L4: loc4: u64 +L5: loc5: u64 +B0: + 0: Call one(): u64 + 1: Call one(): u64 + 2: Call one(): u64 + 3: Call one(): u64 + 4: Call one(): u64 + 5: Call one(): u64 + 6: StLoc[0](loc0: u64) + 7: StLoc[1](loc1: u64) + 8: Call consume_4(u64, u64, u64, u64) + 9: MoveLoc[1](loc1: u64) + 10: MoveLoc[0](loc0: u64) + 11: Call consume_2(u64, u64) + 12: Ret +} +} +============ bytecode verification succeeded ======== diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_08.move b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_08.move new file mode 100644 index 0000000000000..2eb816707f27d --- /dev/null +++ b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_08.move @@ -0,0 +1,20 @@ +module 0xc0ffee::m { + fun four(): (u64, u64, u64, u64) { + (1, 2, 3, 4) + } + + fun two(): (u64, u64) { + (5, 6) + } + + fun consume_4(_a: u64, _b: u64, _c: u64, _d: u64) {} + + fun consume_2(_a: u64, _b: u64) {} + + public fun test() { + let (a, b, c, d) = four(); + let (e, f) = two(); + consume_4(a, b, c, d); + consume_2(e, f); + } +} diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_08.off.exp b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_08.off.exp new file mode 100644 index 0000000000000..22c7c8a2ddccd --- /dev/null +++ b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_08.off.exp @@ -0,0 +1,48 @@ + +============ disassembled file-format ================== +// Move bytecode v8 +module c0ffee.m { + + +consume_2(Arg0: u64, Arg1: u64) /* def_idx: 0 */ { +B0: + 0: Ret +} +consume_4(Arg0: u64, Arg1: u64, Arg2: u64, Arg3: u64) /* def_idx: 1 */ { +B0: + 0: Ret +} +four(): u64 * u64 * u64 * u64 /* def_idx: 2 */ { +B0: + 0: LdU64(1) + 1: LdU64(2) + 2: LdU64(3) + 3: LdU64(4) + 4: Ret +} +public test() /* def_idx: 3 */ { +L0: loc0: u64 +L1: loc1: u64 +L2: loc2: u64 +L3: loc3: u64 +L4: loc4: u64 +L5: loc5: u64 +B0: + 0: Call four(): u64 * u64 * u64 * u64 + 1: Call two(): u64 * u64 + 2: StLoc[0](loc0: u64) + 3: StLoc[1](loc1: u64) + 4: Call consume_4(u64, u64, u64, u64) + 5: MoveLoc[1](loc1: u64) + 6: MoveLoc[0](loc0: u64) + 7: Call consume_2(u64, u64) + 8: Ret +} +two(): u64 * u64 /* def_idx: 4 */ { +B0: + 0: LdU64(5) + 1: LdU64(6) + 2: Ret +} +} +============ bytecode verification succeeded ======== diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_08.on.exp b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_08.on.exp new file mode 100644 index 0000000000000..0f19b30d3a6e9 --- /dev/null +++ b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_08.on.exp @@ -0,0 +1,128 @@ +============ after FlushWritesProcessor: ================ + +[variant baseline] +fun m::consume_2($t0: u64, $t1: u64) { + # live vars: $t0, $t1 + 0: return () +} + + +[variant baseline] +fun m::consume_4($t0: u64, $t1: u64, $t2: u64, $t3: u64) { + # live vars: $t0, $t1, $t2, $t3 + 0: return () +} + + +[variant baseline] +fun m::four(): (u64, u64, u64, u64) { + var $t0: u64 + var $t1: u64 + var $t2: u64 + var $t3: u64 + # live vars: + 0: $t0 := 1 + # live vars: $t0 + 1: $t1 := 2 + # live vars: $t0, $t1 + 2: $t2 := 3 + # live vars: $t0, $t1, $t2 + 3: $t3 := 4 + # live vars: $t0, $t1, $t2, $t3 + 4: return ($t0, $t1, $t2, $t3) +} + + +[variant baseline] +public fun m::test() { + var $t0: u64 + var $t1: u64 + var $t2: u64 + var $t3: u64 + var $t4: u64 + var $t5: u64 + var $t6: u64 [unused] + var $t7: u64 [unused] + var $t8: u64 [unused] + var $t9: u64 [unused] + # live vars: + 0: ($t0, $t1, $t2, $t3) := m::four() + # live vars: $t0, $t1, $t2, $t3 + 1: ($t4, $t5) := m::two() + # live vars: $t0, $t1, $t2, $t3, $t4, $t5 + 2: $t0 := move($t0) + # live vars: $t0, $t1, $t2, $t3, $t4, $t5 + 3: $t1 := move($t1) + # live vars: $t0, $t1, $t2, $t3, $t4, $t5 + 4: $t2 := move($t2) + # live vars: $t0, $t1, $t2, $t3, $t4, $t5 + 5: m::consume_4($t0, $t1, $t2, $t3) + # live vars: $t4, $t5 + 6: $t4 := move($t4) + # live vars: $t4, $t5 + 7: m::consume_2($t4, $t5) + # live vars: + 8: return () +} + + +[variant baseline] +fun m::two(): (u64, u64) { + var $t0: u64 + var $t1: u64 + # live vars: + 0: $t0 := 5 + # live vars: $t0 + 1: $t1 := 6 + # live vars: $t0, $t1 + 2: return ($t0, $t1) +} + + +============ disassembled file-format ================== +// Move bytecode v8 +module c0ffee.m { + + +consume_2(Arg0: u64, Arg1: u64) /* def_idx: 0 */ { +B0: + 0: Ret +} +consume_4(Arg0: u64, Arg1: u64, Arg2: u64, Arg3: u64) /* def_idx: 1 */ { +B0: + 0: Ret +} +four(): u64 * u64 * u64 * u64 /* def_idx: 2 */ { +B0: + 0: LdU64(1) + 1: LdU64(2) + 2: LdU64(3) + 3: LdU64(4) + 4: Ret +} +public test() /* def_idx: 3 */ { +L0: loc0: u64 +L1: loc1: u64 +L2: loc2: u64 +L3: loc3: u64 +L4: loc4: u64 +L5: loc5: u64 +B0: + 0: Call four(): u64 * u64 * u64 * u64 + 1: Call two(): u64 * u64 + 2: StLoc[0](loc0: u64) + 3: StLoc[1](loc1: u64) + 4: Call consume_4(u64, u64, u64, u64) + 5: MoveLoc[1](loc1: u64) + 6: MoveLoc[0](loc0: u64) + 7: Call consume_2(u64, u64) + 8: Ret +} +two(): u64 * u64 /* def_idx: 4 */ { +B0: + 0: LdU64(5) + 1: LdU64(6) + 2: Ret +} +} +============ bytecode verification succeeded ======== diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_09.move b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_09.move new file mode 100644 index 0000000000000..86945bdc17486 --- /dev/null +++ b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_09.move @@ -0,0 +1,20 @@ +module 0xc0ffee::m { + fun one(): u64 { + 1 + } + + fun consume_5(_a: u64, _b: u64, _c: u64, _d: u64, _e: u64) {} + + fun consume_1(_a: u64) {} + + public fun test() { + let a = one(); + let b = one(); + let c = one(); + let d = one(); + let e = one(); + let f = one(); + consume_5(a, c, d, e, f); + consume_1(b); + } +} diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_09.off.exp b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_09.off.exp new file mode 100644 index 0000000000000..0ca184f2da5ed --- /dev/null +++ b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_09.off.exp @@ -0,0 +1,49 @@ + +============ disassembled file-format ================== +// Move bytecode v8 +module c0ffee.m { + + +consume_1(Arg0: u64) /* def_idx: 0 */ { +B0: + 0: Ret +} +consume_5(Arg0: u64, Arg1: u64, Arg2: u64, Arg3: u64, Arg4: u64) /* def_idx: 1 */ { +B0: + 0: Ret +} +one(): u64 /* def_idx: 2 */ { +B0: + 0: LdU64(1) + 1: Ret +} +public test() /* def_idx: 3 */ { +L0: loc0: u64 +L1: loc1: u64 +L2: loc2: u64 +L3: loc3: u64 +L4: loc4: u64 +L5: loc5: u64 +B0: + 0: Call one(): u64 + 1: Call one(): u64 + 2: Call one(): u64 + 3: Call one(): u64 + 4: Call one(): u64 + 5: Call one(): u64 + 6: StLoc[0](loc0: u64) + 7: StLoc[1](loc1: u64) + 8: StLoc[2](loc2: u64) + 9: StLoc[3](loc3: u64) + 10: StLoc[4](loc4: u64) + 11: MoveLoc[3](loc3: u64) + 12: MoveLoc[2](loc2: u64) + 13: MoveLoc[1](loc1: u64) + 14: MoveLoc[0](loc0: u64) + 15: Call consume_5(u64, u64, u64, u64, u64) + 16: MoveLoc[4](loc4: u64) + 17: Call consume_1(u64) + 18: Ret +} +} +============ bytecode verification succeeded ======== diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_09.on.exp b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_09.on.exp new file mode 100644 index 0000000000000..401a796eaaa51 --- /dev/null +++ b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_09.on.exp @@ -0,0 +1,108 @@ +============ after FlushWritesProcessor: ================ + +[variant baseline] +fun m::consume_1($t0: u64) { + # live vars: $t0 + 0: return () +} + + +[variant baseline] +fun m::consume_5($t0: u64, $t1: u64, $t2: u64, $t3: u64, $t4: u64) { + # live vars: $t0, $t1, $t2, $t3, $t4 + 0: return () +} + + +[variant baseline] +fun m::one(): u64 { + var $t0: u64 + # live vars: + 0: $t0 := 1 + # live vars: $t0 + 1: return $t0 +} + + +[variant baseline] +public fun m::test() { + var $t0: u64 + var $t1: u64 + var $t2: u64 + var $t3: u64 + var $t4: u64 + var $t5: u64 + var $t6: u64 [unused] + var $t7: u64 [unused] + var $t8: u64 [unused] + var $t9: u64 [unused] + # live vars: + 0: $t0 := m::one() + # flush: $t1 + # live vars: $t0 + 1: $t1 := m::one() + # live vars: $t0, $t1 + 2: $t2 := m::one() + # live vars: $t0, $t1, $t2 + 3: $t3 := m::one() + # live vars: $t0, $t1, $t2, $t3 + 4: $t4 := m::one() + # live vars: $t0, $t1, $t2, $t3, $t4 + 5: $t5 := m::one() + # live vars: $t0, $t1, $t2, $t3, $t4, $t5 + 6: $t0 := move($t0) + # live vars: $t0, $t1, $t2, $t3, $t4, $t5 + 7: $t2 := move($t2) + # live vars: $t0, $t1, $t2, $t3, $t4, $t5 + 8: $t3 := move($t3) + # live vars: $t0, $t1, $t2, $t3, $t4, $t5 + 9: $t4 := move($t4) + # live vars: $t0, $t1, $t2, $t3, $t4, $t5 + 10: m::consume_5($t0, $t2, $t3, $t4, $t5) + # live vars: $t1 + 11: m::consume_1($t1) + # live vars: + 12: return () +} + + +============ disassembled file-format ================== +// Move bytecode v8 +module c0ffee.m { + + +consume_1(Arg0: u64) /* def_idx: 0 */ { +B0: + 0: Ret +} +consume_5(Arg0: u64, Arg1: u64, Arg2: u64, Arg3: u64, Arg4: u64) /* def_idx: 1 */ { +B0: + 0: Ret +} +one(): u64 /* def_idx: 2 */ { +B0: + 0: LdU64(1) + 1: Ret +} +public test() /* def_idx: 3 */ { +L0: loc0: u64 +L1: loc1: u64 +L2: loc2: u64 +L3: loc3: u64 +L4: loc4: u64 +L5: loc5: u64 +B0: + 0: Call one(): u64 + 1: Call one(): u64 + 2: StLoc[0](loc0: u64) + 3: Call one(): u64 + 4: Call one(): u64 + 5: Call one(): u64 + 6: Call one(): u64 + 7: Call consume_5(u64, u64, u64, u64, u64) + 8: MoveLoc[0](loc0: u64) + 9: Call consume_1(u64) + 10: Ret +} +} +============ bytecode verification succeeded ======== diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_10.move b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_10.move new file mode 100644 index 0000000000000..11032f93f7807 --- /dev/null +++ b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_10.move @@ -0,0 +1,17 @@ +module 0xc0ffee::m { + fun one(): u64 { + 1 + } + + fun consume_1(_a: u64) {} + + fun consume_2(_a: u64, _b: u64) {} + + public fun test() { + let a = one(); + let b = one(); + let c = one(); + consume_1(a); + consume_2(b, c); + } +} diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_10.off.exp b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_10.off.exp new file mode 100644 index 0000000000000..4602125e99d23 --- /dev/null +++ b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_10.off.exp @@ -0,0 +1,37 @@ + +============ disassembled file-format ================== +// Move bytecode v8 +module c0ffee.m { + + +consume_1(Arg0: u64) /* def_idx: 0 */ { +B0: + 0: Ret +} +consume_2(Arg0: u64, Arg1: u64) /* def_idx: 1 */ { +B0: + 0: Ret +} +one(): u64 /* def_idx: 2 */ { +B0: + 0: LdU64(1) + 1: Ret +} +public test() /* def_idx: 3 */ { +L0: loc0: u64 +L1: loc1: u64 +L2: loc2: u64 +B0: + 0: Call one(): u64 + 1: Call one(): u64 + 2: Call one(): u64 + 3: StLoc[0](loc0: u64) + 4: StLoc[1](loc1: u64) + 5: Call consume_1(u64) + 6: MoveLoc[1](loc1: u64) + 7: MoveLoc[0](loc0: u64) + 8: Call consume_2(u64, u64) + 9: Ret +} +} +============ bytecode verification succeeded ======== diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_10.on.exp b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_10.on.exp new file mode 100644 index 0000000000000..f9e9151c181a1 --- /dev/null +++ b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_10.on.exp @@ -0,0 +1,84 @@ +============ after FlushWritesProcessor: ================ + +[variant baseline] +fun m::consume_1($t0: u64) { + # live vars: $t0 + 0: return () +} + + +[variant baseline] +fun m::consume_2($t0: u64, $t1: u64) { + # live vars: $t0, $t1 + 0: return () +} + + +[variant baseline] +fun m::one(): u64 { + var $t0: u64 + # live vars: + 0: $t0 := 1 + # live vars: $t0 + 1: return $t0 +} + + +[variant baseline] +public fun m::test() { + var $t0: u64 + var $t1: u64 + var $t2: u64 + var $t3: u64 [unused] + # flush: $t0 + # live vars: + 0: $t0 := m::one() + # live vars: $t0 + 1: $t1 := m::one() + # live vars: $t0, $t1 + 2: $t2 := m::one() + # live vars: $t0, $t1, $t2 + 3: m::consume_1($t0) + # live vars: $t1, $t2 + 4: $t1 := move($t1) + # live vars: $t1, $t2 + 5: m::consume_2($t1, $t2) + # live vars: + 6: return () +} + + +============ disassembled file-format ================== +// Move bytecode v8 +module c0ffee.m { + + +consume_1(Arg0: u64) /* def_idx: 0 */ { +B0: + 0: Ret +} +consume_2(Arg0: u64, Arg1: u64) /* def_idx: 1 */ { +B0: + 0: Ret +} +one(): u64 /* def_idx: 2 */ { +B0: + 0: LdU64(1) + 1: Ret +} +public test() /* def_idx: 3 */ { +L0: loc0: u64 +L1: loc1: u64 +L2: loc2: u64 +B0: + 0: Call one(): u64 + 1: StLoc[0](loc0: u64) + 2: Call one(): u64 + 3: Call one(): u64 + 4: MoveLoc[0](loc0: u64) + 5: Call consume_1(u64) + 6: Call consume_2(u64, u64) + 7: Ret +} +} +============ bytecode verification succeeded ======== diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_11.move b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_11.move new file mode 100644 index 0000000000000..44cde4f898c6e --- /dev/null +++ b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_11.move @@ -0,0 +1,14 @@ +module 0xc0ffee::m { + fun one_one(): (u64, u64) { + (1, 1) + } + + fun consume_2(_a: u64, _b: u64) {} + + public fun test() { + let (a, b) = one_one(); + let (c, d) = one_one(); + consume_2(b, c); + consume_2(a, d); + } +} diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_11.off.exp b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_11.off.exp new file mode 100644 index 0000000000000..442054aba4067 --- /dev/null +++ b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_11.off.exp @@ -0,0 +1,31 @@ + +============ disassembled file-format ================== +// Move bytecode v8 +module c0ffee.m { + + +consume_2(Arg0: u64, Arg1: u64) /* def_idx: 0 */ { +B0: + 0: Ret +} +one_one(): u64 * u64 /* def_idx: 1 */ { +B0: + 0: LdU64(1) + 1: LdU64(1) + 2: Ret +} +public test() /* def_idx: 2 */ { +L0: loc0: u64 +L1: loc1: u64 +L2: loc2: u64 +B0: + 0: Call one_one(): u64 * u64 + 1: Call one_one(): u64 * u64 + 2: StLoc[0](loc0: u64) + 3: Call consume_2(u64, u64) + 4: MoveLoc[0](loc0: u64) + 5: Call consume_2(u64, u64) + 6: Ret +} +} +============ bytecode verification succeeded ======== diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_11.on.exp b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_11.on.exp new file mode 100644 index 0000000000000..ffd0d924d6c96 --- /dev/null +++ b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_11.on.exp @@ -0,0 +1,77 @@ +============ after FlushWritesProcessor: ================ + +[variant baseline] +fun m::consume_2($t0: u64, $t1: u64) { + # live vars: $t0, $t1 + 0: return () +} + + +[variant baseline] +fun m::one_one(): (u64, u64) { + var $t0: u64 + var $t1: u64 + # live vars: + 0: $t0 := 1 + # live vars: $t0 + 1: $t1 := 1 + # live vars: $t0, $t1 + 2: return ($t0, $t1) +} + + +[variant baseline] +public fun m::test() { + var $t0: u64 + var $t1: u64 + var $t2: u64 + var $t3: u64 + var $t4: u64 [unused] + var $t5: u64 [unused] + # live vars: + 0: ($t0, $t1) := m::one_one() + # live vars: $t0, $t1 + 1: ($t2, $t3) := m::one_one() + # live vars: $t0, $t1, $t2, $t3 + 2: $t1 := move($t1) + # live vars: $t0, $t1, $t2, $t3 + 3: m::consume_2($t1, $t2) + # live vars: $t0, $t3 + 4: $t0 := move($t0) + # live vars: $t0, $t3 + 5: m::consume_2($t0, $t3) + # live vars: + 6: return () +} + + +============ disassembled file-format ================== +// Move bytecode v8 +module c0ffee.m { + + +consume_2(Arg0: u64, Arg1: u64) /* def_idx: 0 */ { +B0: + 0: Ret +} +one_one(): u64 * u64 /* def_idx: 1 */ { +B0: + 0: LdU64(1) + 1: LdU64(1) + 2: Ret +} +public test() /* def_idx: 2 */ { +L0: loc0: u64 +L1: loc1: u64 +L2: loc2: u64 +B0: + 0: Call one_one(): u64 * u64 + 1: Call one_one(): u64 * u64 + 2: StLoc[0](loc0: u64) + 3: Call consume_2(u64, u64) + 4: MoveLoc[0](loc0: u64) + 5: Call consume_2(u64, u64) + 6: Ret +} +} +============ bytecode verification succeeded ======== diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_12.move b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_12.move new file mode 100644 index 0000000000000..2c7907bfad8d7 --- /dev/null +++ b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_12.move @@ -0,0 +1,16 @@ +module 0xc0ffee::m { + fun one_one(): (u64, u64) { + (1, 1) + } + + fun consume_3(_a: u64, _b: u64, _c: u64) {} + + fun consume_1(_a: u64) {} + + public fun test() { + let (a, b) = one_one(); + let (c, d) = one_one(); + consume_3(a, c, d); + consume_1(b); + } +} diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_12.off.exp b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_12.off.exp new file mode 100644 index 0000000000000..bce0e4f95c483 --- /dev/null +++ b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_12.off.exp @@ -0,0 +1,40 @@ + +============ disassembled file-format ================== +// Move bytecode v8 +module c0ffee.m { + + +consume_1(Arg0: u64) /* def_idx: 0 */ { +B0: + 0: Ret +} +consume_3(Arg0: u64, Arg1: u64, Arg2: u64) /* def_idx: 1 */ { +B0: + 0: Ret +} +one_one(): u64 * u64 /* def_idx: 2 */ { +B0: + 0: LdU64(1) + 1: LdU64(1) + 2: Ret +} +public test() /* def_idx: 3 */ { +L0: loc0: u64 +L1: loc1: u64 +L2: loc2: u64 +L3: loc3: u64 +B0: + 0: Call one_one(): u64 * u64 + 1: Call one_one(): u64 * u64 + 2: StLoc[0](loc0: u64) + 3: StLoc[1](loc1: u64) + 4: StLoc[2](loc2: u64) + 5: MoveLoc[1](loc1: u64) + 6: MoveLoc[0](loc0: u64) + 7: Call consume_3(u64, u64, u64) + 8: MoveLoc[2](loc2: u64) + 9: Call consume_1(u64) + 10: Ret +} +} +============ bytecode verification succeeded ======== diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_12.on.exp b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_12.on.exp new file mode 100644 index 0000000000000..4dd31916ff1d9 --- /dev/null +++ b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_12.on.exp @@ -0,0 +1,90 @@ +============ after FlushWritesProcessor: ================ + +[variant baseline] +fun m::consume_1($t0: u64) { + # live vars: $t0 + 0: return () +} + + +[variant baseline] +fun m::consume_3($t0: u64, $t1: u64, $t2: u64) { + # live vars: $t0, $t1, $t2 + 0: return () +} + + +[variant baseline] +fun m::one_one(): (u64, u64) { + var $t0: u64 + var $t1: u64 + # live vars: + 0: $t0 := 1 + # live vars: $t0 + 1: $t1 := 1 + # live vars: $t0, $t1 + 2: return ($t0, $t1) +} + + +[variant baseline] +public fun m::test() { + var $t0: u64 + var $t1: u64 + var $t2: u64 + var $t3: u64 + var $t4: u64 [unused] + var $t5: u64 [unused] + # flush: $t1 + # live vars: + 0: ($t0, $t1) := m::one_one() + # live vars: $t0, $t1 + 1: ($t2, $t3) := m::one_one() + # live vars: $t0, $t1, $t2, $t3 + 2: $t0 := move($t0) + # live vars: $t0, $t1, $t2, $t3 + 3: $t2 := move($t2) + # live vars: $t0, $t1, $t2, $t3 + 4: m::consume_3($t0, $t2, $t3) + # live vars: $t1 + 5: m::consume_1($t1) + # live vars: + 6: return () +} + + +============ disassembled file-format ================== +// Move bytecode v8 +module c0ffee.m { + + +consume_1(Arg0: u64) /* def_idx: 0 */ { +B0: + 0: Ret +} +consume_3(Arg0: u64, Arg1: u64, Arg2: u64) /* def_idx: 1 */ { +B0: + 0: Ret +} +one_one(): u64 * u64 /* def_idx: 2 */ { +B0: + 0: LdU64(1) + 1: LdU64(1) + 2: Ret +} +public test() /* def_idx: 3 */ { +L0: loc0: u64 +L1: loc1: u64 +L2: loc2: u64 +L3: loc3: u64 +B0: + 0: Call one_one(): u64 * u64 + 1: StLoc[0](loc0: u64) + 2: Call one_one(): u64 * u64 + 3: Call consume_3(u64, u64, u64) + 4: MoveLoc[0](loc0: u64) + 5: Call consume_1(u64) + 6: Ret +} +} +============ bytecode verification succeeded ======== diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_13.move b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_13.move new file mode 100644 index 0000000000000..c03fefbf8c543 --- /dev/null +++ b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_13.move @@ -0,0 +1,17 @@ +module 0xc0ffee::m { + fun one(): u64 { + 1 + } + + fun consume_1(_a: u64) {} + + fun consume_2(_a: u64, _b: u64) {} + + public fun test() { + let a = one(); + let b = one(); + let c = one(); + consume_2(a, b); + consume_1(c); + } +} diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_13.off.exp b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_13.off.exp new file mode 100644 index 0000000000000..f368f1cc006aa --- /dev/null +++ b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_13.off.exp @@ -0,0 +1,35 @@ + +============ disassembled file-format ================== +// Move bytecode v8 +module c0ffee.m { + + +consume_1(Arg0: u64) /* def_idx: 0 */ { +B0: + 0: Ret +} +consume_2(Arg0: u64, Arg1: u64) /* def_idx: 1 */ { +B0: + 0: Ret +} +one(): u64 /* def_idx: 2 */ { +B0: + 0: LdU64(1) + 1: Ret +} +public test() /* def_idx: 3 */ { +L0: loc0: u64 +L1: loc1: u64 +L2: loc2: u64 +B0: + 0: Call one(): u64 + 1: Call one(): u64 + 2: Call one(): u64 + 3: StLoc[0](loc0: u64) + 4: Call consume_2(u64, u64) + 5: MoveLoc[0](loc0: u64) + 6: Call consume_1(u64) + 7: Ret +} +} +============ bytecode verification succeeded ======== diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_13.on.exp b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_13.on.exp new file mode 100644 index 0000000000000..b16ecb68430dd --- /dev/null +++ b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_13.on.exp @@ -0,0 +1,84 @@ +============ after FlushWritesProcessor: ================ + +[variant baseline] +fun m::consume_1($t0: u64) { + # live vars: $t0 + 0: return () +} + + +[variant baseline] +fun m::consume_2($t0: u64, $t1: u64) { + # live vars: $t0, $t1 + 0: return () +} + + +[variant baseline] +fun m::one(): u64 { + var $t0: u64 + # live vars: + 0: $t0 := 1 + # live vars: $t0 + 1: return $t0 +} + + +[variant baseline] +public fun m::test() { + var $t0: u64 + var $t1: u64 + var $t2: u64 + var $t3: u64 [unused] + # live vars: + 0: $t0 := m::one() + # live vars: $t0 + 1: $t1 := m::one() + # flush: $t2 + # live vars: $t0, $t1 + 2: $t2 := m::one() + # live vars: $t0, $t1, $t2 + 3: $t0 := move($t0) + # live vars: $t0, $t1, $t2 + 4: m::consume_2($t0, $t1) + # live vars: $t2 + 5: m::consume_1($t2) + # live vars: + 6: return () +} + + +============ disassembled file-format ================== +// Move bytecode v8 +module c0ffee.m { + + +consume_1(Arg0: u64) /* def_idx: 0 */ { +B0: + 0: Ret +} +consume_2(Arg0: u64, Arg1: u64) /* def_idx: 1 */ { +B0: + 0: Ret +} +one(): u64 /* def_idx: 2 */ { +B0: + 0: LdU64(1) + 1: Ret +} +public test() /* def_idx: 3 */ { +L0: loc0: u64 +L1: loc1: u64 +L2: loc2: u64 +B0: + 0: Call one(): u64 + 1: Call one(): u64 + 2: Call one(): u64 + 3: StLoc[0](loc0: u64) + 4: Call consume_2(u64, u64) + 5: MoveLoc[0](loc0: u64) + 6: Call consume_1(u64) + 7: Ret +} +} +============ bytecode verification succeeded ======== diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_14.move b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_14.move new file mode 100644 index 0000000000000..e281816343b18 --- /dev/null +++ b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_14.move @@ -0,0 +1,16 @@ +module 0xc0ffee::m { + fun one(): u64 { + 1 + } + + fun consume_1(_a: u64) {} + + fun consume_2(_a: u64, _b: u64) {} + + public fun test(a: u64) { + let b = one(); + let c = one(); + consume_2(a, b); + consume_1(c); + } +} diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_14.off.exp b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_14.off.exp new file mode 100644 index 0000000000000..20243548f05d2 --- /dev/null +++ b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_14.off.exp @@ -0,0 +1,36 @@ + +============ disassembled file-format ================== +// Move bytecode v8 +module c0ffee.m { + + +consume_1(Arg0: u64) /* def_idx: 0 */ { +B0: + 0: Ret +} +consume_2(Arg0: u64, Arg1: u64) /* def_idx: 1 */ { +B0: + 0: Ret +} +one(): u64 /* def_idx: 2 */ { +B0: + 0: LdU64(1) + 1: Ret +} +public test(Arg0: u64) /* def_idx: 3 */ { +L1: loc0: u64 +L2: loc1: u64 +B0: + 0: Call one(): u64 + 1: Call one(): u64 + 2: StLoc[1](loc0: u64) + 3: StLoc[2](loc1: u64) + 4: MoveLoc[0](Arg0: u64) + 5: MoveLoc[2](loc1: u64) + 6: Call consume_2(u64, u64) + 7: MoveLoc[1](loc0: u64) + 8: Call consume_1(u64) + 9: Ret +} +} +============ bytecode verification succeeded ======== diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_14.on.exp b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_14.on.exp new file mode 100644 index 0000000000000..e5b3207e2c775 --- /dev/null +++ b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_14.on.exp @@ -0,0 +1,79 @@ +============ after FlushWritesProcessor: ================ + +[variant baseline] +fun m::consume_1($t0: u64) { + # live vars: $t0 + 0: return () +} + + +[variant baseline] +fun m::consume_2($t0: u64, $t1: u64) { + # live vars: $t0, $t1 + 0: return () +} + + +[variant baseline] +fun m::one(): u64 { + var $t0: u64 + # live vars: + 0: $t0 := 1 + # live vars: $t0 + 1: return $t0 +} + + +[variant baseline] +public fun m::test($t0: u64) { + var $t1: u64 + var $t2: u64 + var $t3: u64 [unused] + # flush: $t1 + # live vars: $t0 + 0: $t1 := m::one() + # live vars: $t0, $t1 + 1: $t2 := m::one() + # live vars: $t0, $t1, $t2 + 2: $t0 := move($t0) + # live vars: $t0, $t1, $t2 + 3: m::consume_2($t0, $t1) + # live vars: $t2 + 4: m::consume_1($t2) + # live vars: + 5: return () +} + + +============ disassembled file-format ================== +// Move bytecode v8 +module c0ffee.m { + + +consume_1(Arg0: u64) /* def_idx: 0 */ { +B0: + 0: Ret +} +consume_2(Arg0: u64, Arg1: u64) /* def_idx: 1 */ { +B0: + 0: Ret +} +one(): u64 /* def_idx: 2 */ { +B0: + 0: LdU64(1) + 1: Ret +} +public test(Arg0: u64) /* def_idx: 3 */ { +L1: loc0: u64 +B0: + 0: Call one(): u64 + 1: StLoc[1](loc0: u64) + 2: Call one(): u64 + 3: MoveLoc[0](Arg0: u64) + 4: MoveLoc[1](loc0: u64) + 5: Call consume_2(u64, u64) + 6: Call consume_1(u64) + 7: Ret +} +} +============ bytecode verification succeeded ======== diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_15.move b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_15.move new file mode 100644 index 0000000000000..5db396c348240 --- /dev/null +++ b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_15.move @@ -0,0 +1,16 @@ +module 0xc0ffee::m { + fun one(): u64 { + 1 + } + + fun consume_1(_a: u64) {} + + fun consume_2(_a: u64, _b: u64) {} + + public fun test(a: u64) { + let b = one(); + let c = one(); + consume_1(a); + consume_2(b, c); + } +} diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_15.off.exp b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_15.off.exp new file mode 100644 index 0000000000000..6cb9e30e4d6c3 --- /dev/null +++ b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_15.off.exp @@ -0,0 +1,32 @@ + +============ disassembled file-format ================== +// Move bytecode v8 +module c0ffee.m { + + +consume_1(Arg0: u64) /* def_idx: 0 */ { +B0: + 0: Ret +} +consume_2(Arg0: u64, Arg1: u64) /* def_idx: 1 */ { +B0: + 0: Ret +} +one(): u64 /* def_idx: 2 */ { +B0: + 0: LdU64(1) + 1: Ret +} +public test(Arg0: u64) /* def_idx: 3 */ { +L1: loc0: u64 +L2: loc1: u64 +B0: + 0: Call one(): u64 + 1: Call one(): u64 + 2: MoveLoc[0](Arg0: u64) + 3: Call consume_1(u64) + 4: Call consume_2(u64, u64) + 5: Ret +} +} +============ bytecode verification succeeded ======== diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_15.on.exp b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_15.on.exp new file mode 100644 index 0000000000000..402ef1b36188b --- /dev/null +++ b/third_party/move/move-compiler-v2/tests/flush-writes/out_of_order_use_15.on.exp @@ -0,0 +1,77 @@ +============ after FlushWritesProcessor: ================ + +[variant baseline] +fun m::consume_1($t0: u64) { + # live vars: $t0 + 0: return () +} + + +[variant baseline] +fun m::consume_2($t0: u64, $t1: u64) { + # live vars: $t0, $t1 + 0: return () +} + + +[variant baseline] +fun m::one(): u64 { + var $t0: u64 + # live vars: + 0: $t0 := 1 + # live vars: $t0 + 1: return $t0 +} + + +[variant baseline] +public fun m::test($t0: u64) { + var $t1: u64 + var $t2: u64 + var $t3: u64 [unused] + # live vars: $t0 + 0: $t1 := m::one() + # live vars: $t0, $t1 + 1: $t2 := m::one() + # live vars: $t0, $t1, $t2 + 2: m::consume_1($t0) + # live vars: $t1, $t2 + 3: $t1 := move($t1) + # live vars: $t1, $t2 + 4: m::consume_2($t1, $t2) + # live vars: + 5: return () +} + + +============ disassembled file-format ================== +// Move bytecode v8 +module c0ffee.m { + + +consume_1(Arg0: u64) /* def_idx: 0 */ { +B0: + 0: Ret +} +consume_2(Arg0: u64, Arg1: u64) /* def_idx: 1 */ { +B0: + 0: Ret +} +one(): u64 /* def_idx: 2 */ { +B0: + 0: LdU64(1) + 1: Ret +} +public test(Arg0: u64) /* def_idx: 3 */ { +L1: loc0: u64 +L2: loc1: u64 +B0: + 0: Call one(): u64 + 1: Call one(): u64 + 2: MoveLoc[0](Arg0: u64) + 3: Call consume_1(u64) + 4: Call consume_2(u64, u64) + 5: Ret +} +} +============ bytecode verification succeeded ======== diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/tuples_in_order_use_01.move b/third_party/move/move-compiler-v2/tests/flush-writes/tuples_in_order_use_01.move new file mode 100644 index 0000000000000..24cc6772def53 --- /dev/null +++ b/third_party/move/move-compiler-v2/tests/flush-writes/tuples_in_order_use_01.move @@ -0,0 +1,12 @@ +module 0xc0ffee::m { + fun foo(): (u64, u64, u64, u64, u64) { + (1, 2, 3, 4, 5) + } + + fun consume(_a: u64, _b: u64, _c: u64, _d: u64, _e: u64) {} + + public fun test() { + let (a, b, c, d, e) = foo(); + consume(a, b, c, d, e); + } +} diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/tuples_in_order_use_01.off.exp b/third_party/move/move-compiler-v2/tests/flush-writes/tuples_in_order_use_01.off.exp new file mode 100644 index 0000000000000..249f372aff360 --- /dev/null +++ b/third_party/move/move-compiler-v2/tests/flush-writes/tuples_in_order_use_01.off.exp @@ -0,0 +1,32 @@ + +============ disassembled file-format ================== +// Move bytecode v8 +module c0ffee.m { + + +consume(Arg0: u64, Arg1: u64, Arg2: u64, Arg3: u64, Arg4: u64) /* def_idx: 0 */ { +B0: + 0: Ret +} +foo(): u64 * u64 * u64 * u64 * u64 /* def_idx: 1 */ { +B0: + 0: LdU64(1) + 1: LdU64(2) + 2: LdU64(3) + 3: LdU64(4) + 4: LdU64(5) + 5: Ret +} +public test() /* def_idx: 2 */ { +L0: loc0: u64 +L1: loc1: u64 +L2: loc2: u64 +L3: loc3: u64 +L4: loc4: u64 +B0: + 0: Call foo(): u64 * u64 * u64 * u64 * u64 + 1: Call consume(u64, u64, u64, u64, u64) + 2: Ret +} +} +============ bytecode verification succeeded ======== diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/tuples_in_order_use_01.on.exp b/third_party/move/move-compiler-v2/tests/flush-writes/tuples_in_order_use_01.on.exp new file mode 100644 index 0000000000000..32b4c53436a38 --- /dev/null +++ b/third_party/move/move-compiler-v2/tests/flush-writes/tuples_in_order_use_01.on.exp @@ -0,0 +1,90 @@ +============ after FlushWritesProcessor: ================ + +[variant baseline] +fun m::consume($t0: u64, $t1: u64, $t2: u64, $t3: u64, $t4: u64) { + # live vars: $t0, $t1, $t2, $t3, $t4 + 0: return () +} + + +[variant baseline] +fun m::foo(): (u64, u64, u64, u64, u64) { + var $t0: u64 + var $t1: u64 + var $t2: u64 + var $t3: u64 + var $t4: u64 + # live vars: + 0: $t0 := 1 + # live vars: $t0 + 1: $t1 := 2 + # live vars: $t0, $t1 + 2: $t2 := 3 + # live vars: $t0, $t1, $t2 + 3: $t3 := 4 + # live vars: $t0, $t1, $t2, $t3 + 4: $t4 := 5 + # live vars: $t0, $t1, $t2, $t3, $t4 + 5: return ($t0, $t1, $t2, $t3, $t4) +} + + +[variant baseline] +public fun m::test() { + var $t0: u64 + var $t1: u64 + var $t2: u64 + var $t3: u64 + var $t4: u64 + var $t5: u64 [unused] + var $t6: u64 [unused] + var $t7: u64 [unused] + var $t8: u64 [unused] + # live vars: + 0: ($t0, $t1, $t2, $t3, $t4) := m::foo() + # live vars: $t0, $t1, $t2, $t3, $t4 + 1: $t0 := move($t0) + # live vars: $t0, $t1, $t2, $t3, $t4 + 2: $t1 := move($t1) + # live vars: $t0, $t1, $t2, $t3, $t4 + 3: $t2 := move($t2) + # live vars: $t0, $t1, $t2, $t3, $t4 + 4: $t3 := move($t3) + # live vars: $t0, $t1, $t2, $t3, $t4 + 5: m::consume($t0, $t1, $t2, $t3, $t4) + # live vars: + 6: return () +} + + +============ disassembled file-format ================== +// Move bytecode v8 +module c0ffee.m { + + +consume(Arg0: u64, Arg1: u64, Arg2: u64, Arg3: u64, Arg4: u64) /* def_idx: 0 */ { +B0: + 0: Ret +} +foo(): u64 * u64 * u64 * u64 * u64 /* def_idx: 1 */ { +B0: + 0: LdU64(1) + 1: LdU64(2) + 2: LdU64(3) + 3: LdU64(4) + 4: LdU64(5) + 5: Ret +} +public test() /* def_idx: 2 */ { +L0: loc0: u64 +L1: loc1: u64 +L2: loc2: u64 +L3: loc3: u64 +L4: loc4: u64 +B0: + 0: Call foo(): u64 * u64 * u64 * u64 * u64 + 1: Call consume(u64, u64, u64, u64, u64) + 2: Ret +} +} +============ bytecode verification succeeded ======== diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/unused_flush_early_01.on.exp b/third_party/move/move-compiler-v2/tests/flush-writes/unused_flush_early_01.on.exp index c9d248f08dca0..f97a7d11693dc 100644 --- a/third_party/move/move-compiler-v2/tests/flush-writes/unused_flush_early_01.on.exp +++ b/third_party/move/move-compiler-v2/tests/flush-writes/unused_flush_early_01.on.exp @@ -25,7 +25,9 @@ public fun m::test1(): (u64, u64) { # live vars: $t3 2: $t4 := m::one() # live vars: $t3, $t4 - 3: return ($t3, $t4) + 3: $t3 := move($t3) + # live vars: $t3, $t4 + 4: return ($t3, $t4) } @@ -44,7 +46,9 @@ public fun m::test2(): (u64, u64) { # live vars: $t2 2: $t4 := m::one() # live vars: $t2, $t4 - 3: return ($t2, $t4) + 3: $t2 := move($t2) + # live vars: $t2, $t4 + 4: return ($t2, $t4) } @@ -64,7 +68,9 @@ public fun m::test3(): (u64, u64) { # live vars: $t2 2: $t4 := m::one() # live vars: $t2, $t4 - 3: return ($t4, $t2) + 3: $t4 := move($t4) + # live vars: $t2, $t4 + 4: return ($t4, $t2) } @@ -79,6 +85,8 @@ B0: 1: Ret } public test1(): u64 * u64 /* def_idx: 1 */ { +L0: loc0: u64 +L1: loc1: u64 B0: 0: Call one(): u64 1: Pop @@ -87,6 +95,8 @@ B0: 4: Ret } public test2(): u64 * u64 /* def_idx: 2 */ { +L0: loc0: u64 +L1: loc1: u64 B0: 0: Call one(): u64 1: Call one(): u64 diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/unused_flush_early_02.off.exp b/third_party/move/move-compiler-v2/tests/flush-writes/unused_flush_early_02.off.exp index 4058648feefbf..b419aa2dd397a 100644 --- a/third_party/move/move-compiler-v2/tests/flush-writes/unused_flush_early_02.off.exp +++ b/third_party/move/move-compiler-v2/tests/flush-writes/unused_flush_early_02.off.exp @@ -16,27 +16,26 @@ B0: public test(): u64 * u64 /* def_idx: 2 */ { L0: loc0: u64 L1: loc1: u64 -L2: loc2: u64 -L3: loc3: bool -L4: loc4: u64 +L2: loc2: bool +L3: loc3: u64 B0: 0: Call one(): u64 1: Call one(): u64 2: Call one(): u64 - 3: StLoc[1](loc1: u64) + 3: StLoc[0](loc0: u64) 4: LdU64(0) 5: Eq - 6: StLoc[3](loc3: bool) - 7: StLoc[4](loc4: u64) - 8: MoveLoc[3](loc3: bool) + 6: StLoc[2](loc2: bool) + 7: StLoc[3](loc3: u64) + 8: MoveLoc[2](loc2: bool) 9: BrTrue(11) B1: 10: Branch(12) B2: 11: Call bar() B3: - 12: MoveLoc[4](loc4: u64) - 13: MoveLoc[1](loc1: u64) + 12: MoveLoc[3](loc3: u64) + 13: MoveLoc[0](loc0: u64) 14: Ret } } diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/unused_flush_early_02.on.exp b/third_party/move/move-compiler-v2/tests/flush-writes/unused_flush_early_02.on.exp index ea75eda12850a..ba2457bd04348 100644 --- a/third_party/move/move-compiler-v2/tests/flush-writes/unused_flush_early_02.on.exp +++ b/third_party/move/move-compiler-v2/tests/flush-writes/unused_flush_early_02.on.exp @@ -36,25 +36,25 @@ public fun m::test(): (u64, u64) { # live vars: $t2, $t3 2: $t4 := m::one() # live vars: $t2, $t3, $t4 - 3: $t7 := 0 + 3: $t3 := move($t3) + # live vars: $t2, $t3, $t4 + 4: $t7 := 0 # live vars: $t2, $t3, $t4, $t7 - 4: $t5 := ==($t3, $t7) + 5: $t5 := ==($t3, $t7) # live vars: $t2, $t4, $t5 - 5: if ($t5) goto 8 else goto 6 - # live vars: $t2, $t4 - 6: label L3 + 6: if ($t5) goto 9 else goto 7 # live vars: $t2, $t4 - 7: goto 10 + 7: label L3 # live vars: $t2, $t4 - 8: label L0 + 8: goto 11 # live vars: $t2, $t4 - 9: m::bar() + 9: label L0 # live vars: $t2, $t4 - 10: label L2 + 10: m::bar() # live vars: $t2, $t4 - 11: $t2 := move($t2) + 11: label L2 # live vars: $t2, $t4 - 12: $t4 := move($t4) + 12: $t2 := move($t2) # live vars: $t2, $t4 13: return ($t2, $t4) } diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/unused_flush_early_03.off.exp b/third_party/move/move-compiler-v2/tests/flush-writes/unused_flush_early_03.off.exp index 4391ac5b2a293..d7e68815531cc 100644 --- a/third_party/move/move-compiler-v2/tests/flush-writes/unused_flush_early_03.off.exp +++ b/third_party/move/move-compiler-v2/tests/flush-writes/unused_flush_early_03.off.exp @@ -19,11 +19,10 @@ public test1() /* def_idx: 2 */ { L0: loc0: u64 L1: loc1: u64 L2: loc2: u64 -L3: loc3: u64 B0: 0: Call foo(): u64 * u64 * u64 - 1: StLoc[1](loc1: u64) - 2: StLoc[2](loc2: u64) + 1: StLoc[0](loc0: u64) + 2: StLoc[1](loc1: u64) 3: LdU64(0) 4: Eq 5: BrTrue(7) @@ -32,7 +31,7 @@ B1: B2: 7: Call bar() B3: - 8: MoveLoc[2](loc2: u64) + 8: MoveLoc[1](loc1: u64) 9: LdU64(0) 10: Eq 11: BrTrue(13) @@ -41,7 +40,7 @@ B4: B5: 13: Call bar() B6: - 14: MoveLoc[1](loc1: u64) + 14: MoveLoc[0](loc0: u64) 15: LdU64(0) 16: Eq 17: BrTrue(19) diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/unused_flush_early_03.on.exp b/third_party/move/move-compiler-v2/tests/flush-writes/unused_flush_early_03.on.exp index 3191cdbd8a588..2e3176d611f29 100644 --- a/third_party/move/move-compiler-v2/tests/flush-writes/unused_flush_early_03.on.exp +++ b/third_party/move/move-compiler-v2/tests/flush-writes/unused_flush_early_03.on.exp @@ -41,59 +41,61 @@ public fun m::test1() { # live vars: 0: ($t0, $t1, $t2) := m::foo() # live vars: $t0, $t1, $t2 - 1: $t5 := 0 + 1: $t0 := move($t0) + # live vars: $t0, $t1, $t2 + 2: $t5 := 0 # live vars: $t0, $t1, $t2, $t5 - 2: $t3 := ==($t0, $t5) + 3: $t3 := ==($t0, $t5) # live vars: $t1, $t2, $t3 - 3: if ($t3) goto 6 else goto 4 + 4: if ($t3) goto 7 else goto 5 # live vars: $t1, $t2 - 4: label L9 + 5: label L9 # live vars: $t1, $t2 - 5: goto 8 + 6: goto 9 # live vars: $t1, $t2 - 6: label L0 + 7: label L0 # live vars: $t1, $t2 - 7: m::bar() + 8: m::bar() # live vars: $t1, $t2 - 8: label L2 + 9: label L2 # live vars: $t1, $t2 - 9: $t1 := move($t1) + 10: $t1 := move($t1) # live vars: $t1, $t2 - 10: $t0 := 0 + 11: $t0 := 0 # live vars: $t0, $t1, $t2 - 11: $t3 := ==($t1, $t0) + 12: $t3 := ==($t1, $t0) # live vars: $t2, $t3 - 12: if ($t3) goto 15 else goto 13 + 13: if ($t3) goto 16 else goto 14 # live vars: $t2 - 13: label L10 + 14: label L10 # live vars: $t2 - 14: goto 17 + 15: goto 18 # live vars: $t2 - 15: label L3 + 16: label L3 # live vars: $t2 - 16: m::bar() + 17: m::bar() # live vars: $t2 - 17: label L5 + 18: label L5 # live vars: $t2 - 18: $t2 := move($t2) + 19: $t2 := move($t2) # live vars: $t2 - 19: $t0 := 0 + 20: $t0 := 0 # live vars: $t0, $t2 - 20: $t3 := ==($t2, $t0) + 21: $t3 := ==($t2, $t0) # live vars: $t3 - 21: if ($t3) goto 24 else goto 22 + 22: if ($t3) goto 25 else goto 23 # live vars: - 22: label L11 + 23: label L11 # live vars: - 23: goto 26 + 24: goto 27 # live vars: - 24: label L6 + 25: label L6 # live vars: - 25: m::bar() + 26: m::bar() # live vars: - 26: label L8 + 27: label L8 # live vars: - 27: return () + 28: return () } diff --git a/third_party/move/move-compiler-v2/tests/flush-writes/write_ref_01.on.exp b/third_party/move/move-compiler-v2/tests/flush-writes/write_ref_01.on.exp index 7f51244bae81b..f5c87396dc563 100644 --- a/third_party/move/move-compiler-v2/tests/flush-writes/write_ref_01.on.exp +++ b/third_party/move/move-compiler-v2/tests/flush-writes/write_ref_01.on.exp @@ -4,7 +4,7 @@ public fun m::test($t0: u64) { var $t1: &mut u64 var $t2: u64 - # flush: $t1 + # flush: $t2 # live vars: $t0 0: $t1 := borrow_local($t0) # live vars: $t1 @@ -22,12 +22,13 @@ module c0ffee.m { public test(Arg0: u64) /* def_idx: 0 */ { -L1: loc0: &mut u64 +L1: loc0: u64 +L2: loc1: &mut u64 B0: 0: MutBorrowLoc[0](Arg0: u64) - 1: StLoc[1](loc0: &mut u64) + 1: StLoc[2](loc1: &mut u64) 2: LdU64(42) - 3: MoveLoc[1](loc0: &mut u64) + 3: MoveLoc[2](loc1: &mut u64) 4: WriteRef 5: Ret } diff --git a/third_party/move/move-compiler-v2/tests/variable-coalescing/branch_1.exp b/third_party/move/move-compiler-v2/tests/variable-coalescing/branch_1.exp index 9aa28b9c4aad4..237e4e168e5c1 100644 --- a/third_party/move/move-compiler-v2/tests/variable-coalescing/branch_1.exp +++ b/third_party/move/move-compiler-v2/tests/variable-coalescing/branch_1.exp @@ -119,18 +119,17 @@ fun m::foo($t0: bool, $t1: u64): u64 { var $t4: u64 var $t5: u64 [unused] var $t6: u64 [unused] - 0: $t1 := move($t1) - 1: if ($t0) goto 4 else goto 2 - 2: label L3 - 3: goto 7 - 4: label L0 - 5: $t4 := 0 - 6: $t1 := move($t4) - 7: label L2 - 8: $t1 := move($t1) - 9: $t4 := 1 - 10: $t1 := +($t1, $t4) - 11: return $t1 + 0: if ($t0) goto 3 else goto 1 + 1: label L3 + 2: goto 6 + 3: label L0 + 4: $t4 := 0 + 5: $t1 := move($t4) + 6: label L2 + 7: $t1 := move($t1) + 8: $t4 := 1 + 9: $t1 := +($t1, $t4) + 10: return $t1 } diff --git a/third_party/move/move-compiler-v2/tests/variable-coalescing/branch_1.opt.exp b/third_party/move/move-compiler-v2/tests/variable-coalescing/branch_1.opt.exp index 9aa28b9c4aad4..237e4e168e5c1 100644 --- a/third_party/move/move-compiler-v2/tests/variable-coalescing/branch_1.opt.exp +++ b/third_party/move/move-compiler-v2/tests/variable-coalescing/branch_1.opt.exp @@ -119,18 +119,17 @@ fun m::foo($t0: bool, $t1: u64): u64 { var $t4: u64 var $t5: u64 [unused] var $t6: u64 [unused] - 0: $t1 := move($t1) - 1: if ($t0) goto 4 else goto 2 - 2: label L3 - 3: goto 7 - 4: label L0 - 5: $t4 := 0 - 6: $t1 := move($t4) - 7: label L2 - 8: $t1 := move($t1) - 9: $t4 := 1 - 10: $t1 := +($t1, $t4) - 11: return $t1 + 0: if ($t0) goto 3 else goto 1 + 1: label L3 + 2: goto 6 + 3: label L0 + 4: $t4 := 0 + 5: $t1 := move($t4) + 6: label L2 + 7: $t1 := move($t1) + 8: $t4 := 1 + 9: $t1 := +($t1, $t4) + 10: return $t1 } diff --git a/third_party/move/move-compiler-v2/tests/variable-coalescing/call_1.exp b/third_party/move/move-compiler-v2/tests/variable-coalescing/call_1.exp index 039723aa6b3e0..d76c6aad706a8 100644 --- a/third_party/move/move-compiler-v2/tests/variable-coalescing/call_1.exp +++ b/third_party/move/move-compiler-v2/tests/variable-coalescing/call_1.exp @@ -140,8 +140,7 @@ fun m::test($t0: u64): u64 { [variant baseline] fun m::id($t0: u64): u64 { var $t1: u64 [unused] - 0: $t0 := move($t0) - 1: return $t0 + 0: return $t0 } @@ -153,11 +152,10 @@ fun m::test($t0: u64): u64 { var $t4: u64 [unused] var $t5: u64 [unused] var $t6: u64 [unused] - 0: $t0 := move($t0) + 0: $t0 := m::id($t0) 1: $t0 := m::id($t0) 2: $t0 := m::id($t0) - 3: $t0 := m::id($t0) - 4: return $t0 + 3: return $t0 } diff --git a/third_party/move/move-compiler-v2/tests/variable-coalescing/call_1.opt.exp b/third_party/move/move-compiler-v2/tests/variable-coalescing/call_1.opt.exp index 039723aa6b3e0..d76c6aad706a8 100644 --- a/third_party/move/move-compiler-v2/tests/variable-coalescing/call_1.opt.exp +++ b/third_party/move/move-compiler-v2/tests/variable-coalescing/call_1.opt.exp @@ -140,8 +140,7 @@ fun m::test($t0: u64): u64 { [variant baseline] fun m::id($t0: u64): u64 { var $t1: u64 [unused] - 0: $t0 := move($t0) - 1: return $t0 + 0: return $t0 } @@ -153,11 +152,10 @@ fun m::test($t0: u64): u64 { var $t4: u64 [unused] var $t5: u64 [unused] var $t6: u64 [unused] - 0: $t0 := move($t0) + 0: $t0 := m::id($t0) 1: $t0 := m::id($t0) 2: $t0 := m::id($t0) - 3: $t0 := m::id($t0) - 4: return $t0 + 3: return $t0 } diff --git a/third_party/move/move-compiler-v2/tests/variable-coalescing/call_2.exp b/third_party/move/move-compiler-v2/tests/variable-coalescing/call_2.exp index 70ac5f53b5889..d6ed0da58a74c 100644 --- a/third_party/move/move-compiler-v2/tests/variable-coalescing/call_2.exp +++ b/third_party/move/move-compiler-v2/tests/variable-coalescing/call_2.exp @@ -144,10 +144,9 @@ fun m::test($t0: u64): u64 { var $t4: u64 [unused] var $t5: &mut u64 0: $t2 := copy($t0) - 1: $t0 := move($t0) - 2: $t5 := borrow_local($t2) - 3: m::update($t5) - 4: return $t0 + 1: $t5 := borrow_local($t2) + 2: m::update($t5) + 3: return $t0 } @@ -168,9 +167,9 @@ L1: loc0: u64 B0: 0: CopyLoc[0](Arg0: u64) 1: StLoc[1](loc0: u64) - 2: MoveLoc[0](Arg0: u64) - 3: MutBorrowLoc[1](loc0: u64) - 4: Call update(&mut u64) + 2: MutBorrowLoc[1](loc0: u64) + 3: Call update(&mut u64) + 4: MoveLoc[0](Arg0: u64) 5: Ret } } diff --git a/third_party/move/move-compiler-v2/tests/variable-coalescing/call_2.opt.exp b/third_party/move/move-compiler-v2/tests/variable-coalescing/call_2.opt.exp index 70ac5f53b5889..d6ed0da58a74c 100644 --- a/third_party/move/move-compiler-v2/tests/variable-coalescing/call_2.opt.exp +++ b/third_party/move/move-compiler-v2/tests/variable-coalescing/call_2.opt.exp @@ -144,10 +144,9 @@ fun m::test($t0: u64): u64 { var $t4: u64 [unused] var $t5: &mut u64 0: $t2 := copy($t0) - 1: $t0 := move($t0) - 2: $t5 := borrow_local($t2) - 3: m::update($t5) - 4: return $t0 + 1: $t5 := borrow_local($t2) + 2: m::update($t5) + 3: return $t0 } @@ -168,9 +167,9 @@ L1: loc0: u64 B0: 0: CopyLoc[0](Arg0: u64) 1: StLoc[1](loc0: u64) - 2: MoveLoc[0](Arg0: u64) - 3: MutBorrowLoc[1](loc0: u64) - 4: Call update(&mut u64) + 2: MutBorrowLoc[1](loc0: u64) + 3: Call update(&mut u64) + 4: MoveLoc[0](Arg0: u64) 5: Ret } } diff --git a/third_party/move/move-compiler-v2/tests/variable-coalescing/cant_copy_propagate.exp b/third_party/move/move-compiler-v2/tests/variable-coalescing/cant_copy_propagate.exp index e82f7f8a3a62a..c8a7565b458fe 100644 --- a/third_party/move/move-compiler-v2/tests/variable-coalescing/cant_copy_propagate.exp +++ b/third_party/move/move-compiler-v2/tests/variable-coalescing/cant_copy_propagate.exp @@ -177,17 +177,16 @@ fun m::test($t0: u64, $t1: bool) { var $t5: u64 [unused] var $t6: u64 [unused] var $t7: u64 - 0: $t0 := move($t0) - 1: if ($t1) goto 2 else goto 6 - 2: label L0 - 3: m::consume($t0) - 4: label L2 - 5: return () - 6: label L1 - 7: $t0 := move($t0) - 8: $t7 := 1 - 9: $t0 := +($t0, $t7) - 10: goto 4 + 0: if ($t1) goto 1 else goto 5 + 1: label L0 + 2: m::consume($t0) + 3: label L2 + 4: return () + 5: label L1 + 6: $t0 := move($t0) + 7: $t7 := 1 + 8: $t0 := +($t0, $t7) + 9: goto 3 } diff --git a/third_party/move/move-compiler-v2/tests/variable-coalescing/cant_copy_propagate.opt.exp b/third_party/move/move-compiler-v2/tests/variable-coalescing/cant_copy_propagate.opt.exp index e82f7f8a3a62a..c8a7565b458fe 100644 --- a/third_party/move/move-compiler-v2/tests/variable-coalescing/cant_copy_propagate.opt.exp +++ b/third_party/move/move-compiler-v2/tests/variable-coalescing/cant_copy_propagate.opt.exp @@ -177,17 +177,16 @@ fun m::test($t0: u64, $t1: bool) { var $t5: u64 [unused] var $t6: u64 [unused] var $t7: u64 - 0: $t0 := move($t0) - 1: if ($t1) goto 2 else goto 6 - 2: label L0 - 3: m::consume($t0) - 4: label L2 - 5: return () - 6: label L1 - 7: $t0 := move($t0) - 8: $t7 := 1 - 9: $t0 := +($t0, $t7) - 10: goto 4 + 0: if ($t1) goto 1 else goto 5 + 1: label L0 + 2: m::consume($t0) + 3: label L2 + 4: return () + 5: label L1 + 6: $t0 := move($t0) + 7: $t7 := 1 + 8: $t0 := +($t0, $t7) + 9: goto 3 } diff --git a/third_party/move/move-compiler-v2/tests/variable-coalescing/consume_2.exp b/third_party/move/move-compiler-v2/tests/variable-coalescing/consume_2.exp index 079a92befc295..463e923348a88 100644 --- a/third_party/move/move-compiler-v2/tests/variable-coalescing/consume_2.exp +++ b/third_party/move/move-compiler-v2/tests/variable-coalescing/consume_2.exp @@ -163,20 +163,18 @@ fun m::consume_($t0: 0xc0ffee::m::W) { [variant baseline] public fun m::test1($t0: u64) { var $t1: u64 [unused] - 0: $t0 := move($t0) + 0: m::consume($t0) 1: m::consume($t0) - 2: m::consume($t0) - 3: return () + 2: return () } [variant baseline] public fun m::test2($t0: 0xc0ffee::m::W) { var $t1: 0xc0ffee::m::W [unused] - 0: $t0 := move($t0) + 0: m::consume_($t0) 1: m::consume_($t0) - 2: m::consume_($t0) - 3: return () + 2: return () } diff --git a/third_party/move/move-compiler-v2/tests/variable-coalescing/consume_2.opt.exp b/third_party/move/move-compiler-v2/tests/variable-coalescing/consume_2.opt.exp index 079a92befc295..463e923348a88 100644 --- a/third_party/move/move-compiler-v2/tests/variable-coalescing/consume_2.opt.exp +++ b/third_party/move/move-compiler-v2/tests/variable-coalescing/consume_2.opt.exp @@ -163,20 +163,18 @@ fun m::consume_($t0: 0xc0ffee::m::W) { [variant baseline] public fun m::test1($t0: u64) { var $t1: u64 [unused] - 0: $t0 := move($t0) + 0: m::consume($t0) 1: m::consume($t0) - 2: m::consume($t0) - 3: return () + 2: return () } [variant baseline] public fun m::test2($t0: 0xc0ffee::m::W) { var $t1: 0xc0ffee::m::W [unused] - 0: $t0 := move($t0) + 0: m::consume_($t0) 1: m::consume_($t0) - 2: m::consume_($t0) - 3: return () + 2: return () } diff --git a/third_party/move/move-compiler-v2/tests/variable-coalescing/dead_assignment_1.exp b/third_party/move/move-compiler-v2/tests/variable-coalescing/dead_assignment_1.exp index c283de390ca0d..1a3cf0b4e3711 100644 --- a/third_party/move/move-compiler-v2/tests/variable-coalescing/dead_assignment_1.exp +++ b/third_party/move/move-compiler-v2/tests/variable-coalescing/dead_assignment_1.exp @@ -65,8 +65,7 @@ fun m::dead($t0: u64): u64 { var $t1: u64 [unused] var $t2: u64 [unused] var $t3: u64 [unused] - 0: $t0 := move($t0) - 1: return $t0 + 0: return $t0 } diff --git a/third_party/move/move-compiler-v2/tests/variable-coalescing/dead_assignment_1.opt.exp b/third_party/move/move-compiler-v2/tests/variable-coalescing/dead_assignment_1.opt.exp index c283de390ca0d..1a3cf0b4e3711 100644 --- a/third_party/move/move-compiler-v2/tests/variable-coalescing/dead_assignment_1.opt.exp +++ b/third_party/move/move-compiler-v2/tests/variable-coalescing/dead_assignment_1.opt.exp @@ -65,8 +65,7 @@ fun m::dead($t0: u64): u64 { var $t1: u64 [unused] var $t2: u64 [unused] var $t3: u64 [unused] - 0: $t0 := move($t0) - 1: return $t0 + 0: return $t0 } diff --git a/third_party/move/move-compiler-v2/tests/variable-coalescing/dead_assignment_2.exp b/third_party/move/move-compiler-v2/tests/variable-coalescing/dead_assignment_2.exp index dc5c1d71c5fa6..986f606835706 100644 --- a/third_party/move/move-compiler-v2/tests/variable-coalescing/dead_assignment_2.exp +++ b/third_party/move/move-compiler-v2/tests/variable-coalescing/dead_assignment_2.exp @@ -44,8 +44,7 @@ fun m::dead($t0: u64): u64 { [variant baseline] fun m::dead($t0: u64): u64 { var $t1: u64 [unused] - 0: $t0 := move($t0) - 1: return $t0 + 0: return $t0 } diff --git a/third_party/move/move-compiler-v2/tests/variable-coalescing/dead_assignment_2.opt.exp b/third_party/move/move-compiler-v2/tests/variable-coalescing/dead_assignment_2.opt.exp index dc5c1d71c5fa6..986f606835706 100644 --- a/third_party/move/move-compiler-v2/tests/variable-coalescing/dead_assignment_2.opt.exp +++ b/third_party/move/move-compiler-v2/tests/variable-coalescing/dead_assignment_2.opt.exp @@ -44,8 +44,7 @@ fun m::dead($t0: u64): u64 { [variant baseline] fun m::dead($t0: u64): u64 { var $t1: u64 [unused] - 0: $t0 := move($t0) - 1: return $t0 + 0: return $t0 } diff --git a/third_party/move/move-compiler-v2/tests/variable-coalescing/dead_assignment_4.exp b/third_party/move/move-compiler-v2/tests/variable-coalescing/dead_assignment_4.exp index 59dc55044d55a..a1aff35d88e3a 100644 --- a/third_party/move/move-compiler-v2/tests/variable-coalescing/dead_assignment_4.exp +++ b/third_party/move/move-compiler-v2/tests/variable-coalescing/dead_assignment_4.exp @@ -243,8 +243,7 @@ public fun m::test1(): u64 { public fun m::test2($t0: u64): u64 { var $t1: u64 [unused] var $t2: u64 [unused] - 0: $t0 := move($t0) - 1: return $t0 + 0: return $t0 } diff --git a/third_party/move/move-compiler-v2/tests/variable-coalescing/dead_assignment_4.opt.exp b/third_party/move/move-compiler-v2/tests/variable-coalescing/dead_assignment_4.opt.exp index 9ccca5d4a98e3..47249d4c20b13 100644 --- a/third_party/move/move-compiler-v2/tests/variable-coalescing/dead_assignment_4.opt.exp +++ b/third_party/move/move-compiler-v2/tests/variable-coalescing/dead_assignment_4.opt.exp @@ -210,8 +210,7 @@ public fun m::test1(): u64 { public fun m::test2($t0: u64): u64 { var $t1: u64 [unused] var $t2: u64 [unused] - 0: $t0 := move($t0) - 1: return $t0 + 0: return $t0 } diff --git a/third_party/move/move-compiler-v2/tests/variable-coalescing/intermingled_1.exp b/third_party/move/move-compiler-v2/tests/variable-coalescing/intermingled_1.exp index 820445f101d4d..9f869f4392801 100644 --- a/third_party/move/move-compiler-v2/tests/variable-coalescing/intermingled_1.exp +++ b/third_party/move/move-compiler-v2/tests/variable-coalescing/intermingled_1.exp @@ -120,10 +120,12 @@ fun m::test(): u64 { var $t6: u64 [unused] 0: $t1 := 1 1: $t2 := 2 - 2: $t1 := +($t1, $t2) - 3: $t3 := copy($t2) - 4: $t2 := +($t3, $t2) - 5: return $t2 + 2: $t1 := move($t1) + 3: $t1 := +($t1, $t2) + 4: $t3 := copy($t2) + 5: $t3 := move($t3) + 6: $t2 := +($t3, $t2) + 7: return $t2 } diff --git a/third_party/move/move-compiler-v2/tests/variable-coalescing/intermingled_1.opt.exp b/third_party/move/move-compiler-v2/tests/variable-coalescing/intermingled_1.opt.exp index ba52516f4ec58..dd0a16aff1184 100644 --- a/third_party/move/move-compiler-v2/tests/variable-coalescing/intermingled_1.opt.exp +++ b/third_party/move/move-compiler-v2/tests/variable-coalescing/intermingled_1.opt.exp @@ -97,10 +97,11 @@ fun m::test(): u64 { var $t3: u64 [unused] var $t4: u64 0: $t1 := 1 - 1: $t4 := 2 - 2: $t1 := +($t1, $t4) - 3: $t2 := 4 - 4: return $t2 + 1: $t1 := move($t1) + 2: $t4 := 2 + 3: $t1 := +($t1, $t4) + 4: $t2 := 4 + 5: return $t2 } diff --git a/third_party/move/move-compiler-v2/tests/variable-coalescing/intermingled_2.exp b/third_party/move/move-compiler-v2/tests/variable-coalescing/intermingled_2.exp index 28f27885ba9c9..544d778e3cdc6 100644 --- a/third_party/move/move-compiler-v2/tests/variable-coalescing/intermingled_2.exp +++ b/third_party/move/move-compiler-v2/tests/variable-coalescing/intermingled_2.exp @@ -132,8 +132,9 @@ fun m::test(): u64 { 3: $t5 := 1 4: $t4 := +($t4, $t5) 5: $t1 := move($t4) - 6: $t1 := +($t2, $t1) - 7: return $t1 + 6: $t2 := move($t2) + 7: $t1 := +($t2, $t1) + 8: return $t1 } @@ -144,13 +145,16 @@ module c0ffee.m { test(): u64 /* def_idx: 0 */ { L0: loc0: u64 +L1: loc1: u64 B0: - 0: LdU64(2) + 0: LdU64(1) 1: LdU64(1) - 2: LdU64(1) - 3: Add - 4: Add - 5: Ret + 2: Add + 3: StLoc[1](loc1: u64) + 4: LdU64(2) + 5: MoveLoc[1](loc1: u64) + 6: Add + 7: Ret } } ============ bytecode verification succeeded ======== diff --git a/third_party/move/move-compiler-v2/tests/variable-coalescing/intermingled_3.exp b/third_party/move/move-compiler-v2/tests/variable-coalescing/intermingled_3.exp index 16d4c4d51862a..96c02ac0157a9 100644 --- a/third_party/move/move-compiler-v2/tests/variable-coalescing/intermingled_3.exp +++ b/third_party/move/move-compiler-v2/tests/variable-coalescing/intermingled_3.exp @@ -120,9 +120,10 @@ fun m::test(): u64 { var $t6: u64 [unused] 0: $t1 := 1 1: $t2 := 2 - 2: $t5 := 1 - 3: $t1 := +($t1, $t5) - 4: return $t2 + 2: $t1 := move($t1) + 3: $t5 := 1 + 4: $t1 := +($t1, $t5) + 5: return $t2 } @@ -133,13 +134,12 @@ module c0ffee.m { test(): u64 /* def_idx: 0 */ { L0: loc0: u64 -L1: loc1: u64 B0: - 0: LdU64(2) + 0: LdU64(1) 1: LdU64(1) - 2: LdU64(1) - 3: Add - 4: Pop + 2: Add + 3: Pop + 4: LdU64(2) 5: Ret } } diff --git a/third_party/move/move-compiler-v2/tests/variable-coalescing/intermingled_3.opt.exp b/third_party/move/move-compiler-v2/tests/variable-coalescing/intermingled_3.opt.exp index 8aecac891a811..446dbdd3c3aee 100644 --- a/third_party/move/move-compiler-v2/tests/variable-coalescing/intermingled_3.opt.exp +++ b/third_party/move/move-compiler-v2/tests/variable-coalescing/intermingled_3.opt.exp @@ -97,10 +97,11 @@ fun m::test(): u64 { var $t3: u64 [unused] var $t4: u64 0: $t1 := 1 - 1: $t4 := 1 - 2: $t1 := +($t1, $t4) - 3: $t2 := 2 - 4: return $t2 + 1: $t1 := move($t1) + 2: $t4 := 1 + 3: $t1 := +($t1, $t4) + 4: $t2 := 2 + 5: return $t2 } diff --git a/third_party/move/move-compiler-v2/tests/variable-coalescing/loop_1.exp b/third_party/move/move-compiler-v2/tests/variable-coalescing/loop_1.exp index d390c313f9361..1dc5675c93b04 100644 --- a/third_party/move/move-compiler-v2/tests/variable-coalescing/loop_1.exp +++ b/third_party/move/move-compiler-v2/tests/variable-coalescing/loop_1.exp @@ -188,8 +188,7 @@ fun m::test($t0: u64): u64 { 12: $t3 := move($t5) 13: goto 2 14: label L3 - 15: $t2 := move($t2) - 16: return $t2 + 15: return $t2 } diff --git a/third_party/move/move-compiler-v2/tests/variable-coalescing/loop_1.opt.exp b/third_party/move/move-compiler-v2/tests/variable-coalescing/loop_1.opt.exp index d390c313f9361..1dc5675c93b04 100644 --- a/third_party/move/move-compiler-v2/tests/variable-coalescing/loop_1.opt.exp +++ b/third_party/move/move-compiler-v2/tests/variable-coalescing/loop_1.opt.exp @@ -188,8 +188,7 @@ fun m::test($t0: u64): u64 { 12: $t3 := move($t5) 13: goto 2 14: label L3 - 15: $t2 := move($t2) - 16: return $t2 + 15: return $t2 } diff --git a/third_party/move/move-compiler-v2/tests/variable-coalescing/loop_2.exp b/third_party/move/move-compiler-v2/tests/variable-coalescing/loop_2.exp index 79557cdcc0bc2..c0ef785d3f874 100644 --- a/third_party/move/move-compiler-v2/tests/variable-coalescing/loop_2.exp +++ b/third_party/move/move-compiler-v2/tests/variable-coalescing/loop_2.exp @@ -188,8 +188,7 @@ fun m::test($t0: u64): u64 { 12: $t3 := move($t5) 13: goto 2 14: label L3 - 15: $t2 := move($t2) - 16: return $t2 + 15: return $t2 } diff --git a/third_party/move/move-compiler-v2/tests/variable-coalescing/loop_2.opt.exp b/third_party/move/move-compiler-v2/tests/variable-coalescing/loop_2.opt.exp index 79557cdcc0bc2..c0ef785d3f874 100644 --- a/third_party/move/move-compiler-v2/tests/variable-coalescing/loop_2.opt.exp +++ b/third_party/move/move-compiler-v2/tests/variable-coalescing/loop_2.opt.exp @@ -188,8 +188,7 @@ fun m::test($t0: u64): u64 { 12: $t3 := move($t5) 13: goto 2 14: label L3 - 15: $t2 := move($t2) - 16: return $t2 + 15: return $t2 } diff --git a/third_party/move/move-compiler-v2/tests/variable-coalescing/mut_refs_1.exp b/third_party/move/move-compiler-v2/tests/variable-coalescing/mut_refs_1.exp index fc0721f97ebdf..8ad3351fea3f1 100644 --- a/third_party/move/move-compiler-v2/tests/variable-coalescing/mut_refs_1.exp +++ b/third_party/move/move-compiler-v2/tests/variable-coalescing/mut_refs_1.exp @@ -96,13 +96,14 @@ module c0ffee.m { test(Arg0: u64): u64 /* def_idx: 0 */ { -L1: loc0: &mut u64 +L1: loc0: u64 +L2: loc1: &mut u64 B0: 0: CopyLoc[0](Arg0: u64) 1: MutBorrowLoc[0](Arg0: u64) - 2: StLoc[1](loc0: &mut u64) + 2: StLoc[2](loc1: &mut u64) 3: LdU64(1) - 4: MoveLoc[1](loc0: &mut u64) + 4: MoveLoc[2](loc1: &mut u64) 5: WriteRef 6: Ret } diff --git a/third_party/move/move-compiler-v2/tests/variable-coalescing/mut_refs_1.opt.exp b/third_party/move/move-compiler-v2/tests/variable-coalescing/mut_refs_1.opt.exp index fc0721f97ebdf..8ad3351fea3f1 100644 --- a/third_party/move/move-compiler-v2/tests/variable-coalescing/mut_refs_1.opt.exp +++ b/third_party/move/move-compiler-v2/tests/variable-coalescing/mut_refs_1.opt.exp @@ -96,13 +96,14 @@ module c0ffee.m { test(Arg0: u64): u64 /* def_idx: 0 */ { -L1: loc0: &mut u64 +L1: loc0: u64 +L2: loc1: &mut u64 B0: 0: CopyLoc[0](Arg0: u64) 1: MutBorrowLoc[0](Arg0: u64) - 2: StLoc[1](loc0: &mut u64) + 2: StLoc[2](loc1: &mut u64) 3: LdU64(1) - 4: MoveLoc[1](loc0: &mut u64) + 4: MoveLoc[2](loc1: &mut u64) 5: WriteRef 6: Ret } diff --git a/third_party/move/move-compiler-v2/tests/variable-coalescing/mut_refs_2.exp b/third_party/move/move-compiler-v2/tests/variable-coalescing/mut_refs_2.exp index bbc91150e8a27..ee1e8880b64bf 100644 --- a/third_party/move/move-compiler-v2/tests/variable-coalescing/mut_refs_2.exp +++ b/third_party/move/move-compiler-v2/tests/variable-coalescing/mut_refs_2.exp @@ -149,7 +149,8 @@ struct S has copy, drop { test(Arg0: S): u64 /* def_idx: 0 */ { L1: loc0: S L2: loc1: S -L3: loc2: &mut u64 +L3: loc2: u64 +L4: loc3: &mut u64 B0: 0: MoveLoc[0](Arg0: S) 1: StLoc[1](loc0: S) @@ -157,9 +158,9 @@ B0: 3: StLoc[2](loc1: S) 4: MutBorrowLoc[1](loc0: S) 5: MutBorrowField[0](S.a: u64) - 6: StLoc[3](loc2: &mut u64) + 6: StLoc[4](loc3: &mut u64) 7: LdU64(0) - 8: MoveLoc[3](loc2: &mut u64) + 8: MoveLoc[4](loc3: &mut u64) 9: WriteRef 10: ImmBorrowLoc[2](loc1: S) 11: ImmBorrowField[0](S.a: u64) diff --git a/third_party/move/move-compiler-v2/tests/variable-coalescing/mut_refs_2.opt.exp b/third_party/move/move-compiler-v2/tests/variable-coalescing/mut_refs_2.opt.exp index bbc91150e8a27..ee1e8880b64bf 100644 --- a/third_party/move/move-compiler-v2/tests/variable-coalescing/mut_refs_2.opt.exp +++ b/third_party/move/move-compiler-v2/tests/variable-coalescing/mut_refs_2.opt.exp @@ -149,7 +149,8 @@ struct S has copy, drop { test(Arg0: S): u64 /* def_idx: 0 */ { L1: loc0: S L2: loc1: S -L3: loc2: &mut u64 +L3: loc2: u64 +L4: loc3: &mut u64 B0: 0: MoveLoc[0](Arg0: S) 1: StLoc[1](loc0: S) @@ -157,9 +158,9 @@ B0: 3: StLoc[2](loc1: S) 4: MutBorrowLoc[1](loc0: S) 5: MutBorrowField[0](S.a: u64) - 6: StLoc[3](loc2: &mut u64) + 6: StLoc[4](loc3: &mut u64) 7: LdU64(0) - 8: MoveLoc[3](loc2: &mut u64) + 8: MoveLoc[4](loc3: &mut u64) 9: WriteRef 10: ImmBorrowLoc[2](loc1: S) 11: ImmBorrowField[0](S.a: u64) diff --git a/third_party/move/move-compiler-v2/tests/variable-coalescing/non_overlapping_vars1.exp b/third_party/move/move-compiler-v2/tests/variable-coalescing/non_overlapping_vars1.exp index 1950f688d5d3b..c5aa3f01d69ad 100644 --- a/third_party/move/move-compiler-v2/tests/variable-coalescing/non_overlapping_vars1.exp +++ b/third_party/move/move-compiler-v2/tests/variable-coalescing/non_overlapping_vars1.exp @@ -136,12 +136,14 @@ fun m::test() { var $t6: u64 [unused] var $t7: u64 [unused] 0: $t0 := 1 - 1: $t3 := 1 - 2: $t0 := +($t0, $t3) - 3: $t1 := 2 - 4: $t3 := 1 - 5: $t1 := +($t1, $t3) - 6: return () + 1: $t0 := move($t0) + 2: $t3 := 1 + 3: $t0 := +($t0, $t3) + 4: $t1 := 2 + 5: $t1 := move($t1) + 6: $t3 := 1 + 7: $t1 := +($t1, $t3) + 8: return () } diff --git a/third_party/move/move-compiler-v2/tests/variable-coalescing/non_overlapping_vars1.opt.exp b/third_party/move/move-compiler-v2/tests/variable-coalescing/non_overlapping_vars1.opt.exp index 1950f688d5d3b..c5aa3f01d69ad 100644 --- a/third_party/move/move-compiler-v2/tests/variable-coalescing/non_overlapping_vars1.opt.exp +++ b/third_party/move/move-compiler-v2/tests/variable-coalescing/non_overlapping_vars1.opt.exp @@ -136,12 +136,14 @@ fun m::test() { var $t6: u64 [unused] var $t7: u64 [unused] 0: $t0 := 1 - 1: $t3 := 1 - 2: $t0 := +($t0, $t3) - 3: $t1 := 2 - 4: $t3 := 1 - 5: $t1 := +($t1, $t3) - 6: return () + 1: $t0 := move($t0) + 2: $t3 := 1 + 3: $t0 := +($t0, $t3) + 4: $t1 := 2 + 5: $t1 := move($t1) + 6: $t3 := 1 + 7: $t1 := +($t1, $t3) + 8: return () } diff --git a/third_party/move/move-compiler-v2/tests/variable-coalescing/non_overlapping_vars_diff_type.exp b/third_party/move/move-compiler-v2/tests/variable-coalescing/non_overlapping_vars_diff_type.exp index 59e9927e0fc3b..1361eabb8991d 100644 --- a/third_party/move/move-compiler-v2/tests/variable-coalescing/non_overlapping_vars_diff_type.exp +++ b/third_party/move/move-compiler-v2/tests/variable-coalescing/non_overlapping_vars_diff_type.exp @@ -136,12 +136,14 @@ fun m::test() { var $t6: u64 [unused] var $t7: u64 0: $t0 := 1 - 1: $t3 := 1 - 2: $t0 := +($t0, $t3) - 3: $t4 := 2 - 4: $t7 := 1 - 5: $t4 := +($t4, $t7) - 6: return () + 1: $t0 := move($t0) + 2: $t3 := 1 + 3: $t0 := +($t0, $t3) + 4: $t4 := 2 + 5: $t4 := move($t4) + 6: $t7 := 1 + 7: $t4 := +($t4, $t7) + 8: return () } diff --git a/third_party/move/move-compiler-v2/tests/variable-coalescing/non_overlapping_vars_diff_type.opt.exp b/third_party/move/move-compiler-v2/tests/variable-coalescing/non_overlapping_vars_diff_type.opt.exp index 59e9927e0fc3b..1361eabb8991d 100644 --- a/third_party/move/move-compiler-v2/tests/variable-coalescing/non_overlapping_vars_diff_type.opt.exp +++ b/third_party/move/move-compiler-v2/tests/variable-coalescing/non_overlapping_vars_diff_type.opt.exp @@ -136,12 +136,14 @@ fun m::test() { var $t6: u64 [unused] var $t7: u64 0: $t0 := 1 - 1: $t3 := 1 - 2: $t0 := +($t0, $t3) - 3: $t4 := 2 - 4: $t7 := 1 - 5: $t4 := +($t4, $t7) - 6: return () + 1: $t0 := move($t0) + 2: $t3 := 1 + 3: $t0 := +($t0, $t3) + 4: $t4 := 2 + 5: $t4 := move($t4) + 6: $t7 := 1 + 7: $t4 := +($t4, $t7) + 8: return () } diff --git a/third_party/move/move-compiler-v2/tests/variable-coalescing/overlapping_vars.exp b/third_party/move/move-compiler-v2/tests/variable-coalescing/overlapping_vars.exp index 7c7343d42833b..3dbf2f51b7139 100644 --- a/third_party/move/move-compiler-v2/tests/variable-coalescing/overlapping_vars.exp +++ b/third_party/move/move-compiler-v2/tests/variable-coalescing/overlapping_vars.exp @@ -101,9 +101,10 @@ fun m::test(): u64 { 0: $t1 := 1 1: $t2 := 2 2: $t3 := 3 - 3: $t1 := +($t1, $t2) - 4: $t1 := +($t1, $t3) - 5: return $t1 + 3: $t1 := move($t1) + 4: $t1 := +($t1, $t2) + 5: $t1 := +($t1, $t3) + 6: return $t1 } @@ -114,6 +115,8 @@ module c0ffee.m { test(): u64 /* def_idx: 0 */ { L0: loc0: u64 +L1: loc1: u64 +L2: loc2: u64 B0: 0: LdU64(1) 1: LdU64(2) diff --git a/third_party/move/move-compiler-v2/tests/variable-coalescing/reassigned_var.exp b/third_party/move/move-compiler-v2/tests/variable-coalescing/reassigned_var.exp index 83ed3028842de..872232853fdc4 100644 --- a/third_party/move/move-compiler-v2/tests/variable-coalescing/reassigned_var.exp +++ b/third_party/move/move-compiler-v2/tests/variable-coalescing/reassigned_var.exp @@ -98,8 +98,9 @@ fun m::test(): u64 { var $t4: u64 [unused] 0: $t2 := 2 1: $t3 := 9 - 2: $t2 := +($t3, $t2) - 3: return $t2 + 2: $t3 := move($t3) + 3: $t2 := +($t3, $t2) + 4: return $t2 } diff --git a/third_party/move/move-compiler-v2/tests/variable-coalescing/reassigned_var.opt.exp b/third_party/move/move-compiler-v2/tests/variable-coalescing/reassigned_var.opt.exp index c862a8614e6ac..ade21b3784dc0 100644 --- a/third_party/move/move-compiler-v2/tests/variable-coalescing/reassigned_var.opt.exp +++ b/third_party/move/move-compiler-v2/tests/variable-coalescing/reassigned_var.opt.exp @@ -97,9 +97,10 @@ fun m::test(): u64 { var $t3: u64 [unused] var $t4: u64 0: $t2 := 9 - 1: $t4 := 2 - 2: $t2 := +($t2, $t4) - 3: return $t2 + 1: $t2 := move($t2) + 2: $t4 := 2 + 3: $t2 := +($t2, $t4) + 4: return $t2 } diff --git a/third_party/move/move-compiler-v2/tests/variable-coalescing/self_assigns.exp b/third_party/move/move-compiler-v2/tests/variable-coalescing/self_assigns.exp index 1265101037e93..a77112bd8eaf8 100644 --- a/third_party/move/move-compiler-v2/tests/variable-coalescing/self_assigns.exp +++ b/third_party/move/move-compiler-v2/tests/variable-coalescing/self_assigns.exp @@ -383,8 +383,7 @@ public fun m::test1($t0: u64) { [variant baseline] public fun m::test2($t0: u64): u64 { var $t1: u64 [unused] - 0: $t0 := move($t0) - 1: return $t0 + 0: return $t0 } @@ -413,8 +412,7 @@ public fun m::test3(): u64 { 11: $t1 := move($t4) 12: goto 2 13: label L3 - 14: $t2 := move($t2) - 15: return $t2 + 14: return $t2 } @@ -441,8 +439,7 @@ public fun m::test4($t0: u64): u64 { 10: $t2 := move($t4) 11: goto 1 12: label L3 - 13: $t0 := move($t0) - 14: return $t0 + 13: return $t0 } diff --git a/third_party/move/move-compiler-v2/tests/variable-coalescing/self_assigns.opt.exp b/third_party/move/move-compiler-v2/tests/variable-coalescing/self_assigns.opt.exp index 1265101037e93..a77112bd8eaf8 100644 --- a/third_party/move/move-compiler-v2/tests/variable-coalescing/self_assigns.opt.exp +++ b/third_party/move/move-compiler-v2/tests/variable-coalescing/self_assigns.opt.exp @@ -383,8 +383,7 @@ public fun m::test1($t0: u64) { [variant baseline] public fun m::test2($t0: u64): u64 { var $t1: u64 [unused] - 0: $t0 := move($t0) - 1: return $t0 + 0: return $t0 } @@ -413,8 +412,7 @@ public fun m::test3(): u64 { 11: $t1 := move($t4) 12: goto 2 13: label L3 - 14: $t2 := move($t2) - 15: return $t2 + 14: return $t2 } @@ -441,8 +439,7 @@ public fun m::test4($t0: u64): u64 { 10: $t2 := move($t4) 11: goto 1 12: label L3 - 13: $t0 := move($t0) - 14: return $t0 + 13: return $t0 } diff --git a/third_party/move/move-compiler-v2/tests/variable-coalescing/seq_kills_1.exp b/third_party/move/move-compiler-v2/tests/variable-coalescing/seq_kills_1.exp index 598c94372c3b7..12a1de76e241b 100644 --- a/third_party/move/move-compiler-v2/tests/variable-coalescing/seq_kills_1.exp +++ b/third_party/move/move-compiler-v2/tests/variable-coalescing/seq_kills_1.exp @@ -134,8 +134,9 @@ fun m::test($t0: u64): bool { 2: $t0 := move($t0) 3: $t7 := 1 4: $t0 := +($t0, $t7) - 5: $t1 := ==($t2, $t3) - 6: return $t1 + 5: $t2 := move($t2) + 6: $t1 := ==($t2, $t3) + 7: return $t1 } diff --git a/third_party/move/move-compiler-v2/tests/variable-coalescing/seq_kills_1.opt.exp b/third_party/move/move-compiler-v2/tests/variable-coalescing/seq_kills_1.opt.exp index 598c94372c3b7..12a1de76e241b 100644 --- a/third_party/move/move-compiler-v2/tests/variable-coalescing/seq_kills_1.opt.exp +++ b/third_party/move/move-compiler-v2/tests/variable-coalescing/seq_kills_1.opt.exp @@ -134,8 +134,9 @@ fun m::test($t0: u64): bool { 2: $t0 := move($t0) 3: $t7 := 1 4: $t0 := +($t0, $t7) - 5: $t1 := ==($t2, $t3) - 6: return $t1 + 5: $t2 := move($t2) + 6: $t1 := ==($t2, $t3) + 7: return $t1 } diff --git a/third_party/move/move-compiler-v2/tests/variable-coalescing/seq_kills_2.exp b/third_party/move/move-compiler-v2/tests/variable-coalescing/seq_kills_2.exp index 01550498bd5b4..be460b9ed9318 100644 --- a/third_party/move/move-compiler-v2/tests/variable-coalescing/seq_kills_2.exp +++ b/third_party/move/move-compiler-v2/tests/variable-coalescing/seq_kills_2.exp @@ -134,8 +134,9 @@ fun m::test($t0: u64): bool { 2: $t0 := move($t0) 3: $t7 := 1 4: $t0 := +($t0, $t7) - 5: $t1 := ==($t2, $t4) - 6: return $t1 + 5: $t2 := move($t2) + 6: $t1 := ==($t2, $t4) + 7: return $t1 } diff --git a/third_party/move/move-compiler-v2/tests/variable-coalescing/seq_kills_2.opt.exp b/third_party/move/move-compiler-v2/tests/variable-coalescing/seq_kills_2.opt.exp index 01550498bd5b4..be460b9ed9318 100644 --- a/third_party/move/move-compiler-v2/tests/variable-coalescing/seq_kills_2.opt.exp +++ b/third_party/move/move-compiler-v2/tests/variable-coalescing/seq_kills_2.opt.exp @@ -134,8 +134,9 @@ fun m::test($t0: u64): bool { 2: $t0 := move($t0) 3: $t7 := 1 4: $t0 := +($t0, $t7) - 5: $t1 := ==($t2, $t4) - 6: return $t1 + 5: $t2 := move($t2) + 6: $t1 := ==($t2, $t4) + 7: return $t1 } diff --git a/third_party/move/move-compiler-v2/tests/variable-coalescing/sequential_assign_struct.exp b/third_party/move/move-compiler-v2/tests/variable-coalescing/sequential_assign_struct.exp index 6f00d7f3720e6..22d56c2c67a3a 100644 --- a/third_party/move/move-compiler-v2/tests/variable-coalescing/sequential_assign_struct.exp +++ b/third_party/move/move-compiler-v2/tests/variable-coalescing/sequential_assign_struct.exp @@ -98,8 +98,7 @@ fun m::sequential($t0: 0xc0ffee::m::Foo): 0xc0ffee::m::Foo { var $t4: 0xc0ffee::m::Foo [unused] var $t5: 0xc0ffee::m::Foo [unused] var $t6: 0xc0ffee::m::Foo [unused] - 0: $t0 := move($t0) - 1: return $t0 + 0: return $t0 } diff --git a/third_party/move/move-compiler-v2/tests/variable-coalescing/sequential_assign_struct.opt.exp b/third_party/move/move-compiler-v2/tests/variable-coalescing/sequential_assign_struct.opt.exp index 6f00d7f3720e6..22d56c2c67a3a 100644 --- a/third_party/move/move-compiler-v2/tests/variable-coalescing/sequential_assign_struct.opt.exp +++ b/third_party/move/move-compiler-v2/tests/variable-coalescing/sequential_assign_struct.opt.exp @@ -98,8 +98,7 @@ fun m::sequential($t0: 0xc0ffee::m::Foo): 0xc0ffee::m::Foo { var $t4: 0xc0ffee::m::Foo [unused] var $t5: 0xc0ffee::m::Foo [unused] var $t6: 0xc0ffee::m::Foo [unused] - 0: $t0 := move($t0) - 1: return $t0 + 0: return $t0 } diff --git a/third_party/move/move-compiler-v2/tests/variable-coalescing/simple_sequential_assign.exp b/third_party/move/move-compiler-v2/tests/variable-coalescing/simple_sequential_assign.exp index 7d0f64a2a3ebd..a839f4cafad8d 100644 --- a/third_party/move/move-compiler-v2/tests/variable-coalescing/simple_sequential_assign.exp +++ b/third_party/move/move-compiler-v2/tests/variable-coalescing/simple_sequential_assign.exp @@ -98,8 +98,7 @@ fun m::sequential($t0: u64): u64 { var $t4: u64 [unused] var $t5: u64 [unused] var $t6: u64 [unused] - 0: $t0 := move($t0) - 1: return $t0 + 0: return $t0 } diff --git a/third_party/move/move-compiler-v2/tests/variable-coalescing/simple_sequential_assign.opt.exp b/third_party/move/move-compiler-v2/tests/variable-coalescing/simple_sequential_assign.opt.exp index 7d0f64a2a3ebd..a839f4cafad8d 100644 --- a/third_party/move/move-compiler-v2/tests/variable-coalescing/simple_sequential_assign.opt.exp +++ b/third_party/move/move-compiler-v2/tests/variable-coalescing/simple_sequential_assign.opt.exp @@ -98,8 +98,7 @@ fun m::sequential($t0: u64): u64 { var $t4: u64 [unused] var $t5: u64 [unused] var $t6: u64 [unused] - 0: $t0 := move($t0) - 1: return $t0 + 0: return $t0 } diff --git a/third_party/move/move-compiler-v2/tests/variable-coalescing/straight_line_kills.exp b/third_party/move/move-compiler-v2/tests/variable-coalescing/straight_line_kills.exp index 952adc3ca50e8..156750a589bc2 100644 --- a/third_party/move/move-compiler-v2/tests/variable-coalescing/straight_line_kills.exp +++ b/third_party/move/move-compiler-v2/tests/variable-coalescing/straight_line_kills.exp @@ -123,8 +123,9 @@ fun m::copy_kill($t0: u64): u64 { 2: $t0 := move($t0) 3: $t6 := 1 4: $t0 := +($t0, $t6) - 5: $t2 := +($t3, $t2) - 6: return $t2 + 5: $t3 := move($t3) + 6: $t2 := +($t3, $t2) + 7: return $t2 } diff --git a/third_party/move/move-compiler-v2/tests/variable-coalescing/straight_line_kills.opt.exp b/third_party/move/move-compiler-v2/tests/variable-coalescing/straight_line_kills.opt.exp index 952adc3ca50e8..156750a589bc2 100644 --- a/third_party/move/move-compiler-v2/tests/variable-coalescing/straight_line_kills.opt.exp +++ b/third_party/move/move-compiler-v2/tests/variable-coalescing/straight_line_kills.opt.exp @@ -123,8 +123,9 @@ fun m::copy_kill($t0: u64): u64 { 2: $t0 := move($t0) 3: $t6 := 1 4: $t0 := +($t0, $t6) - 5: $t2 := +($t3, $t2) - 6: return $t2 + 5: $t3 := move($t3) + 6: $t2 := +($t3, $t2) + 7: return $t2 } diff --git a/third_party/move/move-compiler-v2/tests/variable-coalescing/swap.exp b/third_party/move/move-compiler-v2/tests/variable-coalescing/swap.exp index b546a583a4056..32a6fa7788cd5 100644 --- a/third_party/move/move-compiler-v2/tests/variable-coalescing/swap.exp +++ b/third_party/move/move-compiler-v2/tests/variable-coalescing/swap.exp @@ -79,7 +79,8 @@ public fun m::test($t0: u64, $t1: u64): (u64, u64) { 0: $t4 := move($t0) 1: $t0 := move($t1) 2: $t1 := move($t4) - 3: return ($t0, $t1) + 3: $t0 := move($t0) + 4: return ($t0, $t1) } @@ -92,10 +93,12 @@ public test(Arg0: u64, Arg1: u64): u64 * u64 /* def_idx: 0 */ { L2: loc0: u64 B0: 0: MoveLoc[0](Arg0: u64) - 1: StLoc[2](loc0: u64) - 2: MoveLoc[1](Arg1: u64) - 3: MoveLoc[2](loc0: u64) - 4: Ret + 1: MoveLoc[1](Arg1: u64) + 2: StLoc[0](Arg0: u64) + 3: StLoc[1](Arg1: u64) + 4: MoveLoc[0](Arg0: u64) + 5: MoveLoc[1](Arg1: u64) + 6: Ret } } ============ bytecode verification succeeded ======== diff --git a/third_party/move/move-compiler-v2/tests/variable-coalescing/swap.opt.exp b/third_party/move/move-compiler-v2/tests/variable-coalescing/swap.opt.exp index b546a583a4056..32a6fa7788cd5 100644 --- a/third_party/move/move-compiler-v2/tests/variable-coalescing/swap.opt.exp +++ b/third_party/move/move-compiler-v2/tests/variable-coalescing/swap.opt.exp @@ -79,7 +79,8 @@ public fun m::test($t0: u64, $t1: u64): (u64, u64) { 0: $t4 := move($t0) 1: $t0 := move($t1) 2: $t1 := move($t4) - 3: return ($t0, $t1) + 3: $t0 := move($t0) + 4: return ($t0, $t1) } @@ -92,10 +93,12 @@ public test(Arg0: u64, Arg1: u64): u64 * u64 /* def_idx: 0 */ { L2: loc0: u64 B0: 0: MoveLoc[0](Arg0: u64) - 1: StLoc[2](loc0: u64) - 2: MoveLoc[1](Arg1: u64) - 3: MoveLoc[2](loc0: u64) - 4: Ret + 1: MoveLoc[1](Arg1: u64) + 2: StLoc[0](Arg0: u64) + 3: StLoc[1](Arg1: u64) + 4: MoveLoc[0](Arg0: u64) + 5: MoveLoc[1](Arg1: u64) + 6: Ret } } ============ bytecode verification succeeded ======== diff --git a/third_party/move/move-compiler-v2/tests/variable-coalescing/swap_in_a_loop.exp b/third_party/move/move-compiler-v2/tests/variable-coalescing/swap_in_a_loop.exp index ee572dd1f670e..d4ea1e75d5c1b 100644 --- a/third_party/move/move-compiler-v2/tests/variable-coalescing/swap_in_a_loop.exp +++ b/third_party/move/move-compiler-v2/tests/variable-coalescing/swap_in_a_loop.exp @@ -207,8 +207,7 @@ public fun m::test($t0: u64, $t1: u64): (u64, u64) { 14: goto 1 15: label L3 16: $t0 := move($t0) - 17: $t1 := move($t1) - 18: return ($t0, $t1) + 17: return ($t0, $t1) } diff --git a/third_party/move/move-compiler-v2/tests/variable-coalescing/swap_in_a_loop.opt.exp b/third_party/move/move-compiler-v2/tests/variable-coalescing/swap_in_a_loop.opt.exp index ee572dd1f670e..d4ea1e75d5c1b 100644 --- a/third_party/move/move-compiler-v2/tests/variable-coalescing/swap_in_a_loop.opt.exp +++ b/third_party/move/move-compiler-v2/tests/variable-coalescing/swap_in_a_loop.opt.exp @@ -207,8 +207,7 @@ public fun m::test($t0: u64, $t1: u64): (u64, u64) { 14: goto 1 15: label L3 16: $t0 := move($t0) - 17: $t1 := move($t1) - 18: return ($t0, $t1) + 17: return ($t0, $t1) } diff --git a/third_party/move/move-compiler-v2/tests/variable-coalescing/unused_add.exp b/third_party/move/move-compiler-v2/tests/variable-coalescing/unused_add.exp index 722471aa28a29..ed021a0424d52 100644 --- a/third_party/move/move-compiler-v2/tests/variable-coalescing/unused_add.exp +++ b/third_party/move/move-compiler-v2/tests/variable-coalescing/unused_add.exp @@ -93,8 +93,9 @@ public fun m::test() { var $t3: u64 [unused] 0: $t0 := 1 1: $t1 := 2 - 2: $t0 := +($t0, $t1) - 3: return () + 2: $t0 := move($t0) + 3: $t0 := +($t0, $t1) + 4: return () } @@ -104,6 +105,8 @@ module c0ffee.m { public test() /* def_idx: 0 */ { +L0: loc0: u64 +L1: loc1: u64 B0: 0: LdU64(1) 1: LdU64(2) diff --git a/third_party/move/move-ir-compiler/move-bytecode-source-map/src/source_map.rs b/third_party/move/move-ir-compiler/move-bytecode-source-map/src/source_map.rs index dd52da7ebd5f8..97718c6016e3e 100644 --- a/third_party/move/move-ir-compiler/move-bytecode-source-map/src/source_map.rs +++ b/third_party/move/move-ir-compiler/move-bytecode-source-map/src/source_map.rs @@ -207,7 +207,7 @@ impl FunctionSourceMap { /// Remap the code map based on the given `remap`. /// If `remap[i] == j`, then the code location associated with code offset `j` /// will now be associated with code offset `i`. - pub fn remap_code_map(&mut self, remap: Vec) { + pub fn remap_code_map(&mut self, remap: &[CodeOffset]) { let mut prev_loc = None; let new_code_map = remap .iter() @@ -395,7 +395,7 @@ impl SourceMap { pub fn remap_code_map( &mut self, fdef_idx: FunctionDefinitionIndex, - remap: Vec, + remap: &[CodeOffset], ) -> Result<()> { let func_entry = self .function_map diff --git a/third_party/move/move-model/bytecode/ast-generator-tests/tests/bit_vector_loop_example.exp b/third_party/move/move-model/bytecode/ast-generator-tests/tests/bit_vector_loop_example.exp index 0d69bba7b69b8..381f6d03f0ce8 100644 --- a/third_party/move/move-model/bytecode/ast-generator-tests/tests/bit_vector_loop_example.exp +++ b/third_party/move/move-model/bytecode/ast-generator-tests/tests/bit_vector_loop_example.exp @@ -85,63 +85,64 @@ public fun set(self: &mut BitVector, bit_index: u64) { --- Stackless Bytecode public fun m::set($t0|self: &mut 0x1::m::BitVector, $t1|bit_index: u64) { - var $t2|x: &mut bool - var $t3: u64 - var $t4: &mut 0x1::m::BitVector - var $t5: &vector - var $t6: u64 - var $t7: bool - var $t8: &mut 0x1::m::BitVector - var $t9: &mut vector - var $t10: u64 - var $t11: &mut bool - var $t12: bool - var $t13: &mut bool - var $t14: &mut 0x1::m::BitVector - var $t15: u64 - 0: $t3 := copy($t1) - 1: $t4 := copy($t0) - 2: $t5 := borrow_field<0x1::m::BitVector>.bit_field($t4) - 3: $t6 := vector::length($t5) - 4: $t7 := <($t3, $t6) - 5: if ($t7) goto 6 else goto 16 + var $t2|$t2: bool [unused] + var $t3|x: &mut bool + var $t4: u64 + var $t5: &mut 0x1::m::BitVector + var $t6: &vector + var $t7: u64 + var $t8: bool + var $t9: &mut 0x1::m::BitVector + var $t10: &mut vector + var $t11: u64 + var $t12: &mut bool + var $t13: bool + var $t14: &mut bool + var $t15: &mut 0x1::m::BitVector + var $t16: u64 + 0: $t4 := copy($t1) + 1: $t5 := copy($t0) + 2: $t6 := borrow_field<0x1::m::BitVector>.bit_field($t5) + 3: $t7 := vector::length($t6) + 4: $t8 := <($t4, $t7) + 5: if ($t8) goto 6 else goto 16 6: label L1 - 7: $t8 := move($t0) - 8: $t9 := borrow_field<0x1::m::BitVector>.bit_field($t8) - 9: $t10 := move($t1) - 10: $t11 := vector::borrow_mut($t9, $t10) - 11: $t2 := $t11 - 12: $t12 := true - 13: $t13 := move($t2) - 14: write_ref($t13, $t12) + 7: $t9 := move($t0) + 8: $t10 := borrow_field<0x1::m::BitVector>.bit_field($t9) + 9: $t11 := move($t1) + 10: $t12 := vector::borrow_mut($t10, $t11) + 11: $t3 := $t12 + 12: $t13 := true + 13: $t14 := move($t3) + 14: write_ref($t14, $t13) 15: return () 16: label L0 - 17: $t14 := move($t0) - 18: drop($t14) - 19: $t15 := 131072 - 20: abort($t15) + 17: $t15 := move($t0) + 18: drop($t15) + 19: $t16 := 131072 + 20: abort($t16) } --- Raw Generated AST -_t3: u64 = bit_index; -_t4: &mut BitVector = self; -_t5: &vector = select m::BitVector.bit_field(_t4); -_t6: u64 = vector::length(_t5); -_t7: bool = Lt(_t3, _t6); +_t4: u64 = bit_index; +_t5: &mut BitVector = self; +_t6: &vector = select m::BitVector.bit_field(_t5); +_t7: u64 = vector::length(_t6); +_t8: bool = Lt(_t4, _t7); loop { - if (_t7) break; - _t14: &mut BitVector = self; - _t15: u64 = 131072; - Abort(_t15) + if (_t8) break; + _t15: &mut BitVector = self; + _t16: u64 = 131072; + Abort(_t16) }; -_t8: &mut BitVector = self; -_t9: &mut vector = select m::BitVector.bit_field(_t8); -_t10: u64 = bit_index; -_t11: &mut bool = vector::borrow_mut(_t9, _t10); -_t2: &mut bool = _t11; -_t12: bool = true; -_t13: &mut bool = _t2; -_t13 = _t12; +_t9: &mut BitVector = self; +_t10: &mut vector = select m::BitVector.bit_field(_t9); +_t11: u64 = bit_index; +_t12: &mut bool = vector::borrow_mut(_t10, _t11); +_t3: &mut bool = _t12; +_t13: bool = true; +_t14: &mut bool = _t3; +_t14 = _t13; return Tuple() --- Assign-Transformed Generated AST @@ -192,274 +193,275 @@ public fun shift_left(self: &mut BitVector, amount: u64) { public fun m::shift_left($t0|self: &mut 0x1::m::BitVector, $t1|amount: u64) { var $t2|$t7: &mut vector var $t3|$t3: u64 - var $t4|$t14: &mut bool - var $t5: u64 - var $t6: &mut 0x1::m::BitVector - var $t7: &u64 - var $t8: u64 - var $t9: bool - var $t10: &mut 0x1::m::BitVector - var $t11: &mut vector - var $t12: u64 + var $t4|$t2: bool [unused] + var $t5|$t14: &mut bool + var $t6: u64 + var $t7: &mut 0x1::m::BitVector + var $t8: &u64 + var $t9: u64 + var $t10: bool + var $t11: &mut 0x1::m::BitVector + var $t12: &mut vector var $t13: u64 - var $t14: &mut vector - var $t15: &vector - var $t16: u64 - var $t17: bool - var $t18: &mut vector - var $t19: u64 - var $t20: &mut bool - var $t21: bool - var $t22: &mut bool - var $t23: u64 + var $t14: u64 + var $t15: &mut vector + var $t16: &vector + var $t17: u64 + var $t18: bool + var $t19: &mut vector + var $t20: u64 + var $t21: &mut bool + var $t22: bool + var $t23: &mut bool var $t24: u64 var $t25: u64 - var $t26: &mut vector - var $t27: u64 + var $t26: u64 + var $t27: &mut vector var $t28: u64 - var $t29: &mut 0x1::m::BitVector - var $t30: &u64 - var $t31: u64 - var $t32: bool - var $t33: &mut 0x1::m::BitVector - var $t34: &0x1::m::BitVector - var $t35: u64 - var $t36: bool - var $t37: &mut 0x1::m::BitVector - var $t38: u64 + var $t29: u64 + var $t30: &mut 0x1::m::BitVector + var $t31: &u64 + var $t32: u64 + var $t33: bool + var $t34: &mut 0x1::m::BitVector + var $t35: &0x1::m::BitVector + var $t36: u64 + var $t37: bool + var $t38: &mut 0x1::m::BitVector var $t39: u64 var $t40: u64 var $t41: u64 var $t42: u64 var $t43: u64 - var $t44: &mut 0x1::m::BitVector - var $t45: u64 + var $t44: u64 + var $t45: &mut 0x1::m::BitVector var $t46: u64 var $t47: u64 - var $t48: &mut 0x1::m::BitVector - var $t49: &u64 - var $t50: u64 + var $t48: u64 + var $t49: &mut 0x1::m::BitVector + var $t50: &u64 var $t51: u64 var $t52: u64 var $t53: u64 - var $t54: &mut 0x1::m::BitVector - var $t55: &u64 - var $t56: u64 - var $t57: bool - var $t58: &mut 0x1::m::BitVector - var $t59: u64 + var $t54: u64 + var $t55: &mut 0x1::m::BitVector + var $t56: &u64 + var $t57: u64 + var $t58: bool + var $t59: &mut 0x1::m::BitVector var $t60: u64 var $t61: u64 var $t62: u64 - var $t63: &mut 0x1::m::BitVector - 0: $t5 := copy($t1) - 1: $t6 := copy($t0) - 2: $t7 := borrow_field<0x1::m::BitVector>.length($t6) - 3: $t8 := read_ref($t7) - 4: $t9 := >=($t5, $t8) - 5: if ($t9) goto 6 else goto 39 + var $t63: u64 + var $t64: &mut 0x1::m::BitVector + 0: $t6 := copy($t1) + 1: $t7 := copy($t0) + 2: $t8 := borrow_field<0x1::m::BitVector>.length($t7) + 3: $t9 := read_ref($t8) + 4: $t10 := >=($t6, $t9) + 5: if ($t10) goto 6 else goto 39 6: label L1 - 7: $t10 := move($t0) - 8: $t11 := borrow_field<0x1::m::BitVector>.bit_field($t10) - 9: $t2 := $t11 - 10: $t12 := 0 - 11: $t3 := $t12 + 7: $t11 := move($t0) + 8: $t12 := borrow_field<0x1::m::BitVector>.bit_field($t11) + 9: $t2 := $t12 + 10: $t13 := 0 + 11: $t3 := $t13 12: goto 13 13: label L4 - 14: $t13 := copy($t3) - 15: $t14 := copy($t2) - 16: $t15 := freeze_ref($t14) - 17: $t16 := vector::length($t15) - 18: $t17 := <($t13, $t16) - 19: if ($t17) goto 20 else goto 33 + 14: $t14 := copy($t3) + 15: $t15 := copy($t2) + 16: $t16 := freeze_ref($t15) + 17: $t17 := vector::length($t16) + 18: $t18 := <($t14, $t17) + 19: if ($t18) goto 20 else goto 33 20: label L3 - 21: $t18 := copy($t2) - 22: $t19 := copy($t3) - 23: $t20 := vector::borrow_mut($t18, $t19) - 24: $t4 := $t20 - 25: $t21 := false - 26: $t22 := move($t4) - 27: write_ref($t22, $t21) - 28: $t23 := move($t3) - 29: $t24 := 1 - 30: $t25 := +($t23, $t24) - 31: $t3 := $t25 + 21: $t19 := copy($t2) + 22: $t20 := copy($t3) + 23: $t21 := vector::borrow_mut($t19, $t20) + 24: $t5 := $t21 + 25: $t22 := false + 26: $t23 := move($t5) + 27: write_ref($t23, $t22) + 28: $t24 := move($t3) + 29: $t25 := 1 + 30: $t26 := +($t24, $t25) + 31: $t3 := $t26 32: goto 13 33: label L2 - 34: $t26 := move($t2) - 35: drop($t26) + 34: $t27 := move($t2) + 35: drop($t27) 36: goto 37 37: label L14 38: return () 39: label L0 - 40: $t27 := copy($t1) - 41: $t3 := $t27 + 40: $t28 := copy($t1) + 41: $t3 := $t28 42: goto 43 43: label L9 - 44: $t28 := copy($t3) - 45: $t29 := copy($t0) - 46: $t30 := borrow_field<0x1::m::BitVector>.length($t29) - 47: $t31 := read_ref($t30) - 48: $t32 := <($t28, $t31) - 49: if ($t32) goto 50 else goto 76 + 44: $t29 := copy($t3) + 45: $t30 := copy($t0) + 46: $t31 := borrow_field<0x1::m::BitVector>.length($t30) + 47: $t32 := read_ref($t31) + 48: $t33 := <($t29, $t32) + 49: if ($t33) goto 50 else goto 76 50: label L6 - 51: $t33 := copy($t0) - 52: $t34 := freeze_ref($t33) - 53: $t35 := copy($t3) - 54: $t36 := m::is_index_set($t34, $t35) - 55: if ($t36) goto 56 else goto 69 + 51: $t34 := copy($t0) + 52: $t35 := freeze_ref($t34) + 53: $t36 := copy($t3) + 54: $t37 := m::is_index_set($t35, $t36) + 55: if ($t37) goto 56 else goto 69 56: label L8 - 57: $t37 := copy($t0) - 58: $t38 := copy($t3) - 59: $t39 := copy($t1) - 60: $t40 := -($t38, $t39) - 61: m::set($t37, $t40) + 57: $t38 := copy($t0) + 58: $t39 := copy($t3) + 59: $t40 := copy($t1) + 60: $t41 := -($t39, $t40) + 61: m::set($t38, $t41) 62: goto 63 63: label L10 - 64: $t41 := move($t3) - 65: $t42 := 1 - 66: $t43 := +($t41, $t42) - 67: $t3 := $t43 + 64: $t42 := move($t3) + 65: $t43 := 1 + 66: $t44 := +($t42, $t43) + 67: $t3 := $t44 68: goto 43 69: label L7 - 70: $t44 := copy($t0) - 71: $t45 := copy($t3) - 72: $t46 := copy($t1) - 73: $t47 := -($t45, $t46) - 74: m::unset($t44, $t47) + 70: $t45 := copy($t0) + 71: $t46 := copy($t3) + 72: $t47 := copy($t1) + 73: $t48 := -($t46, $t47) + 74: m::unset($t45, $t48) 75: goto 63 76: label L5 - 77: $t48 := copy($t0) - 78: $t49 := borrow_field<0x1::m::BitVector>.length($t48) - 79: $t50 := read_ref($t49) - 80: $t51 := move($t1) - 81: $t52 := -($t50, $t51) - 82: $t3 := $t52 + 77: $t49 := copy($t0) + 78: $t50 := borrow_field<0x1::m::BitVector>.length($t49) + 79: $t51 := read_ref($t50) + 80: $t52 := move($t1) + 81: $t53 := -($t51, $t52) + 82: $t3 := $t53 83: goto 84 84: label L13 - 85: $t53 := copy($t3) - 86: $t54 := copy($t0) - 87: $t55 := borrow_field<0x1::m::BitVector>.length($t54) - 88: $t56 := read_ref($t55) - 89: $t57 := <($t53, $t56) - 90: if ($t57) goto 91 else goto 100 + 85: $t54 := copy($t3) + 86: $t55 := copy($t0) + 87: $t56 := borrow_field<0x1::m::BitVector>.length($t55) + 88: $t57 := read_ref($t56) + 89: $t58 := <($t54, $t57) + 90: if ($t58) goto 91 else goto 100 91: label L12 - 92: $t58 := copy($t0) - 93: $t59 := copy($t3) - 94: m::unset($t58, $t59) - 95: $t60 := move($t3) - 96: $t61 := 1 - 97: $t62 := +($t60, $t61) - 98: $t3 := $t62 + 92: $t59 := copy($t0) + 93: $t60 := copy($t3) + 94: m::unset($t59, $t60) + 95: $t61 := move($t3) + 96: $t62 := 1 + 97: $t63 := +($t61, $t62) + 98: $t3 := $t63 99: goto 84 100: label L11 -101: $t63 := move($t0) -102: drop($t63) +101: $t64 := move($t0) +102: drop($t64) 103: goto 37 } --- Raw Generated AST -_t5: u64 = amount; -_t6: &mut BitVector = self; -_t7: &u64 = select m::BitVector.length(_t6); -_t8: u64 = Deref(_t7); -_t9: bool = Ge(_t5, _t8); +_t6: u64 = amount; +_t7: &mut BitVector = self; +_t8: &u64 = select m::BitVector.length(_t7); +_t9: u64 = Deref(_t8); +_t10: bool = Ge(_t6, _t9); loop { loop { loop { loop { - if (Not(_t9)) break; - _t10: &mut BitVector = self; - _t11: &mut vector = select m::BitVector.bit_field(_t10); - _t2: &mut vector = _t11; - _t12: u64 = 0; - _t3: u64 = _t12; + if (Not(_t10)) break; + _t11: &mut BitVector = self; + _t12: &mut vector = select m::BitVector.bit_field(_t11); + _t2: &mut vector = _t12; + _t13: u64 = 0; + _t3: u64 = _t13; break[1] }; - _t27: u64 = amount; - _t3: u64 = _t27; + _t28: u64 = amount; + _t3: u64 = _t28; break[1] }; loop { - _t13: u64 = _t3; - _t14: &mut vector = _t2; - _t15: &vector = Freeze(true)(_t14); - _t16: u64 = vector::length(_t15); - _t17: bool = Lt(_t13, _t16); - if (Not(_t17)) break; - _t18: &mut vector = _t2; - _t19: u64 = _t3; - _t20: &mut bool = vector::borrow_mut(_t18, _t19); - _t4: &mut bool = _t20; - _t21: bool = false; - _t22: &mut bool = _t4; - _t22 = _t21; - _t23: u64 = _t3; - _t24: u64 = 1; - _t25: u64 = Add(_t23, _t24); - _t3: u64 = _t25; + _t14: u64 = _t3; + _t15: &mut vector = _t2; + _t16: &vector = Freeze(true)(_t15); + _t17: u64 = vector::length(_t16); + _t18: bool = Lt(_t14, _t17); + if (Not(_t18)) break; + _t19: &mut vector = _t2; + _t20: u64 = _t3; + _t21: &mut bool = vector::borrow_mut(_t19, _t20); + _t5: &mut bool = _t21; + _t22: bool = false; + _t23: &mut bool = _t5; + _t23 = _t22; + _t24: u64 = _t3; + _t25: u64 = 1; + _t26: u64 = Add(_t24, _t25); + _t3: u64 = _t26; continue }; - _t26: &mut vector = _t2; + _t27: &mut vector = _t2; break[1] }; loop { - _t28: u64 = _t3; - _t29: &mut BitVector = self; - _t30: &u64 = select m::BitVector.length(_t29); - _t31: u64 = Deref(_t30); - _t32: bool = Lt(_t28, _t31); - if (Not(_t32)) break; - _t33: &mut BitVector = self; - _t34: &BitVector = Freeze(true)(_t33); - _t35: u64 = _t3; - _t36: bool = m::is_index_set(_t34, _t35); + _t29: u64 = _t3; + _t30: &mut BitVector = self; + _t31: &u64 = select m::BitVector.length(_t30); + _t32: u64 = Deref(_t31); + _t33: bool = Lt(_t29, _t32); + if (Not(_t33)) break; + _t34: &mut BitVector = self; + _t35: &BitVector = Freeze(true)(_t34); + _t36: u64 = _t3; + _t37: bool = m::is_index_set(_t35, _t36); loop { loop { - if (Not(_t36)) break; - _t37: &mut BitVector = self; - _t38: u64 = _t3; - _t39: u64 = amount; - _t40: u64 = Sub(_t38, _t39); - m::set(_t37, _t40); + if (Not(_t37)) break; + _t38: &mut BitVector = self; + _t39: u64 = _t3; + _t40: u64 = amount; + _t41: u64 = Sub(_t39, _t40); + m::set(_t38, _t41); break[1] }; - _t44: &mut BitVector = self; - _t45: u64 = _t3; - _t46: u64 = amount; - _t47: u64 = Sub(_t45, _t46); - m::unset(_t44, _t47); + _t45: &mut BitVector = self; + _t46: u64 = _t3; + _t47: u64 = amount; + _t48: u64 = Sub(_t46, _t47); + m::unset(_t45, _t48); break }; - _t41: u64 = _t3; - _t42: u64 = 1; - _t43: u64 = Add(_t41, _t42); - _t3: u64 = _t43; + _t42: u64 = _t3; + _t43: u64 = 1; + _t44: u64 = Add(_t42, _t43); + _t3: u64 = _t44; continue }; - _t48: &mut BitVector = self; - _t49: &u64 = select m::BitVector.length(_t48); - _t50: u64 = Deref(_t49); - _t51: u64 = amount; - _t52: u64 = Sub(_t50, _t51); - _t3: u64 = _t52; + _t49: &mut BitVector = self; + _t50: &u64 = select m::BitVector.length(_t49); + _t51: u64 = Deref(_t50); + _t52: u64 = amount; + _t53: u64 = Sub(_t51, _t52); + _t3: u64 = _t53; loop { - _t53: u64 = _t3; - _t54: &mut BitVector = self; - _t55: &u64 = select m::BitVector.length(_t54); - _t56: u64 = Deref(_t55); - _t57: bool = Lt(_t53, _t56); - if (Not(_t57)) break; - _t58: &mut BitVector = self; - _t59: u64 = _t3; - m::unset(_t58, _t59); + _t54: u64 = _t3; + _t55: &mut BitVector = self; + _t56: &u64 = select m::BitVector.length(_t55); + _t57: u64 = Deref(_t56); + _t58: bool = Lt(_t54, _t57); + if (Not(_t58)) break; + _t59: &mut BitVector = self; _t60: u64 = _t3; - _t61: u64 = 1; - _t62: u64 = Add(_t60, _t61); - _t3: u64 = _t62; + m::unset(_t59, _t60); + _t61: u64 = _t3; + _t62: u64 = 1; + _t63: u64 = Add(_t61, _t62); + _t3: u64 = _t63; continue }; - _t63: &mut BitVector = self; + _t64: &mut BitVector = self; break }; return Tuple() @@ -605,63 +607,64 @@ public fun unset(self: &mut BitVector, bit_index: u64) { --- Stackless Bytecode public fun m::unset($t0|self: &mut 0x1::m::BitVector, $t1|bit_index: u64) { - var $t2|x: &mut bool - var $t3: u64 - var $t4: &mut 0x1::m::BitVector - var $t5: &vector - var $t6: u64 - var $t7: bool - var $t8: &mut 0x1::m::BitVector - var $t9: &mut vector - var $t10: u64 - var $t11: &mut bool - var $t12: bool - var $t13: &mut bool - var $t14: &mut 0x1::m::BitVector - var $t15: u64 - 0: $t3 := copy($t1) - 1: $t4 := copy($t0) - 2: $t5 := borrow_field<0x1::m::BitVector>.bit_field($t4) - 3: $t6 := vector::length($t5) - 4: $t7 := <($t3, $t6) - 5: if ($t7) goto 6 else goto 16 + var $t2|$t2: bool [unused] + var $t3|x: &mut bool + var $t4: u64 + var $t5: &mut 0x1::m::BitVector + var $t6: &vector + var $t7: u64 + var $t8: bool + var $t9: &mut 0x1::m::BitVector + var $t10: &mut vector + var $t11: u64 + var $t12: &mut bool + var $t13: bool + var $t14: &mut bool + var $t15: &mut 0x1::m::BitVector + var $t16: u64 + 0: $t4 := copy($t1) + 1: $t5 := copy($t0) + 2: $t6 := borrow_field<0x1::m::BitVector>.bit_field($t5) + 3: $t7 := vector::length($t6) + 4: $t8 := <($t4, $t7) + 5: if ($t8) goto 6 else goto 16 6: label L1 - 7: $t8 := move($t0) - 8: $t9 := borrow_field<0x1::m::BitVector>.bit_field($t8) - 9: $t10 := move($t1) - 10: $t11 := vector::borrow_mut($t9, $t10) - 11: $t2 := $t11 - 12: $t12 := false - 13: $t13 := move($t2) - 14: write_ref($t13, $t12) + 7: $t9 := move($t0) + 8: $t10 := borrow_field<0x1::m::BitVector>.bit_field($t9) + 9: $t11 := move($t1) + 10: $t12 := vector::borrow_mut($t10, $t11) + 11: $t3 := $t12 + 12: $t13 := false + 13: $t14 := move($t3) + 14: write_ref($t14, $t13) 15: return () 16: label L0 - 17: $t14 := move($t0) - 18: drop($t14) - 19: $t15 := 131072 - 20: abort($t15) + 17: $t15 := move($t0) + 18: drop($t15) + 19: $t16 := 131072 + 20: abort($t16) } --- Raw Generated AST -_t3: u64 = bit_index; -_t4: &mut BitVector = self; -_t5: &vector = select m::BitVector.bit_field(_t4); -_t6: u64 = vector::length(_t5); -_t7: bool = Lt(_t3, _t6); +_t4: u64 = bit_index; +_t5: &mut BitVector = self; +_t6: &vector = select m::BitVector.bit_field(_t5); +_t7: u64 = vector::length(_t6); +_t8: bool = Lt(_t4, _t7); loop { - if (_t7) break; - _t14: &mut BitVector = self; - _t15: u64 = 131072; - Abort(_t15) + if (_t8) break; + _t15: &mut BitVector = self; + _t16: u64 = 131072; + Abort(_t16) }; -_t8: &mut BitVector = self; -_t9: &mut vector = select m::BitVector.bit_field(_t8); -_t10: u64 = bit_index; -_t11: &mut bool = vector::borrow_mut(_t9, _t10); -_t2: &mut bool = _t11; -_t12: bool = false; -_t13: &mut bool = _t2; -_t13 = _t12; +_t9: &mut BitVector = self; +_t10: &mut vector = select m::BitVector.bit_field(_t9); +_t11: u64 = bit_index; +_t12: &mut bool = vector::borrow_mut(_t10, _t11); +_t3: &mut bool = _t12; +_t13: bool = false; +_t14: &mut bool = _t3; +_t14 = _t13; return Tuple() --- Assign-Transformed Generated AST diff --git a/third_party/move/move-prover/tests/sources/functional/enum.v2_exp b/third_party/move/move-prover/tests/sources/functional/enum.v2_exp index 9a4eed455c87b..222a6c41b27d1 100644 --- a/third_party/move/move-prover/tests/sources/functional/enum.v2_exp +++ b/third_party/move/move-prover/tests/sources/functional/enum.v2_exp @@ -32,8 +32,8 @@ error: data invariant does not hold = common = = at tests/sources/functional/enum.move:37: test_data_invariant = = - = z = = at tests/sources/functional/enum.move:38: test_data_invariant + = z = = at tests/sources/functional/enum.move:17 = at tests/sources/functional/enum.move:18 diff --git a/third_party/move/move-prover/tests/sources/functional/enum_self.v2_exp b/third_party/move/move-prover/tests/sources/functional/enum_self.v2_exp index d8d994257ea57..b242d492fda7c 100644 --- a/third_party/move/move-prover/tests/sources/functional/enum_self.v2_exp +++ b/third_party/move/move-prover/tests/sources/functional/enum_self.v2_exp @@ -12,6 +12,6 @@ error: data invariant does not hold = at tests/sources/functional/enum_self.move:19: test_enum_self = self_s = = at tests/sources/functional/enum_self.move:22: test_enum_self - = self = = at tests/sources/functional/enum_self.move:23: test_enum_self + = self = = at tests/sources/functional/enum_self.move:12 diff --git a/third_party/move/move-prover/tests/sources/functional/invariants.v2_exp b/third_party/move/move-prover/tests/sources/functional/invariants.v2_exp index fd831907a889c..01a2cd1aa10a1 100644 --- a/third_party/move/move-prover/tests/sources/functional/invariants.v2_exp +++ b/third_party/move/move-prover/tests/sources/functional/invariants.v2_exp @@ -20,8 +20,8 @@ error: data invariant does not hold = r = = at tests/sources/functional/invariants.move:114: lifetime_invalid_R = at tests/sources/functional/invariants.move:115: lifetime_invalid_R - = x_ref = = at tests/sources/functional/invariants.move:116: lifetime_invalid_R + = x_ref = = at tests/sources/functional/invariants.move:15 error: data invariant does not hold diff --git a/third_party/move/move-prover/tests/sources/functional/mut_ref.v2_exp b/third_party/move/move-prover/tests/sources/functional/mut_ref.v2_exp index d0db7fb4ce3c1..75804ab3c4042 100644 --- a/third_party/move/move-prover/tests/sources/functional/mut_ref.v2_exp +++ b/third_party/move/move-prover/tests/sources/functional/mut_ref.v2_exp @@ -39,6 +39,6 @@ error: data invariant does not hold = result = = x = = at tests/sources/functional/mut_ref.move:92: return_ref_different_path_vec2 - = r = = at tests/sources/functional/mut_ref.move:122: call_return_ref_different_path_vec2_incorrect + = r = = at tests/sources/functional/mut_ref.move:8 diff --git a/third_party/move/move-prover/tests/sources/functional/strong_edges.v2_exp b/third_party/move/move-prover/tests/sources/functional/strong_edges.v2_exp index 33c9f0347305e..b5276c3d47324 100644 --- a/third_party/move/move-prover/tests/sources/functional/strong_edges.v2_exp +++ b/third_party/move/move-prover/tests/sources/functional/strong_edges.v2_exp @@ -25,7 +25,7 @@ error: unknown assertion failed = at tests/sources/functional/strong_edges.move:60: loc__edge_incorrect = r = = at tests/sources/functional/strong_edges.move:61: loc__edge_incorrect - = r_ref = = at tests/sources/functional/strong_edges.move:62: loc__edge_incorrect + = r_ref = = r = = at tests/sources/functional/strong_edges.move:64: loc__edge_incorrect diff --git a/third_party/move/tools/move-decompiler/tests/simple_map.exp b/third_party/move/tools/move-decompiler/tests/simple_map.exp index fc003d61fd8b1..82afda47093de 100644 --- a/third_party/move/tools/move-decompiler/tests/simple_map.exp +++ b/third_party/move/tools/move-decompiler/tests/simple_map.exp @@ -40,13 +40,13 @@ module 0x1::simple_map { option::none() } public fun remove(self: &mut SimpleMap, key: &Key): (Key, Value) { - let _t17; - let _t16; + let _t19; + let _t18; let _t2; _t2 = find(/*freeze*/self, key); if (!option::is_some(&_t2)) abort error::invalid_argument(2); - Element{key: _t16,value: _t17} = vector::swap_remove>(&mut self.data, option::extract(&mut _t2)); - (_t16, _t17) + Element{key: _t18,value: _t19} = vector::swap_remove>(&mut self.data, option::extract(&mut _t2)); + (_t18, _t19) } public fun add(self: &mut SimpleMap, key: Key, value: Value) { if (!option::is_none(&find(/*freeze*/self, &key))) abort error::invalid_argument(1); From 9986c83912eb1dbf183c0a5a8766e7a018afa6a6 Mon Sep 17 00:00:00 2001 From: George Mitenkov Date: Wed, 29 Jan 2025 17:59:11 +0000 Subject: [PATCH 16/30] [move] Avoid double hashing in favour of equivalent keys for type tag cache (#15740) Instead of using a pair of hashmaps, and separately hashing keys, use hashbrown's Equivalent trait to use a pair of references as keys. --- Cargo.lock | 1 + third_party/move/move-vm/runtime/Cargo.toml | 1 + .../runtime/src/storage/ty_tag_converter.rs | 138 ++++++++++++++++-- 3 files changed, 129 insertions(+), 11 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7b76ccacbd579..c0184afb7d33a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -11952,6 +11952,7 @@ dependencies = [ "proptest", "serde", "sha3 0.9.1", + "smallbitvec", "triomphe", "typed-arena", ] diff --git a/third_party/move/move-vm/runtime/Cargo.toml b/third_party/move/move-vm/runtime/Cargo.toml index a092fdf43db9d..7000cebb75eb4 100644 --- a/third_party/move/move-vm/runtime/Cargo.toml +++ b/third_party/move/move-vm/runtime/Cargo.toml @@ -40,6 +40,7 @@ move-ir-compiler = { workspace = true } move-vm-test-utils ={ workspace = true } move-vm-types = { workspace = true, features = ["testing"] } proptest = { workspace = true } +smallbitvec = { workspace = true } [features] default = [] diff --git a/third_party/move/move-vm/runtime/src/storage/ty_tag_converter.rs b/third_party/move/move-vm/runtime/src/storage/ty_tag_converter.rs index 00d502aec39d3..881c87b285a8a 100644 --- a/third_party/move/move-vm/runtime/src/storage/ty_tag_converter.rs +++ b/third_party/move/move-vm/runtime/src/storage/ty_tag_converter.rs @@ -2,6 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 use crate::{loader::PseudoGasContext, RuntimeEnvironment}; +use hashbrown::{hash_map::Entry, HashMap}; use move_binary_format::errors::{PartialVMError, PartialVMResult}; use move_core_types::{ language_storage::{StructTag, TypeTag}, @@ -9,7 +10,58 @@ use move_core_types::{ }; use move_vm_types::loaded_data::{runtime_types::Type, struct_name_indexing::StructNameIndex}; use parking_lot::RwLock; -use std::collections::{hash_map::Entry, HashMap}; +use std::hash::{Hash, Hasher}; + +/// Key type for [TypeTagCache] that corresponds to a fully-instantiated struct. +#[derive(Clone, Eq, PartialEq)] +struct StructKey { + idx: StructNameIndex, + ty_args: Vec, +} + +#[derive(Eq, PartialEq)] +struct StructKeyRef<'a> { + idx: &'a StructNameIndex, + ty_args: &'a [Type], +} + +impl StructKey { + #[cfg(test)] + fn as_ref(&self) -> StructKeyRef { + StructKeyRef { + idx: &self.idx, + ty_args: self.ty_args.as_slice(), + } + } +} + +impl<'a> hashbrown::Equivalent> for StructKey { + fn equivalent(&self, other: &StructKeyRef<'a>) -> bool { + &self.idx == other.idx && self.ty_args.as_slice() == other.ty_args + } +} + +impl<'a> hashbrown::Equivalent for StructKeyRef<'a> { + fn equivalent(&self, other: &StructKey) -> bool { + self.idx == &other.idx && self.ty_args == other.ty_args.as_slice() + } +} + +// Ensure hash is the same as for StructKeyRef. +impl Hash for StructKey { + fn hash(&self, state: &mut H) { + self.idx.hash(state); + self.ty_args.hash(state); + } +} + +// Ensure hash is the same as for StructKey. +impl<'a> Hash for StructKeyRef<'a> { + fn hash(&self, state: &mut H) { + self.idx.hash(state); + self.ty_args.hash(state); + } +} /// An entry in [TypeTagCache] that also stores a "cost" of the tag. The cost is proportional to /// the size of the tag, which includes the number of inner nodes and the sum of the sizes in bytes @@ -46,7 +98,7 @@ pub(crate) struct PricedStructTag { /// If thread 3 reads the tag of this enum, the read result is always **deterministic** for the /// fixed type parameters used by thread 3. pub(crate) struct TypeTagCache { - cache: RwLock, PricedStructTag>>>, + cache: RwLock>, } impl TypeTagCache { @@ -68,7 +120,10 @@ impl TypeTagCache { idx: &StructNameIndex, ty_args: &[Type], ) -> Option { - self.cache.read().get(idx)?.get(ty_args).cloned() + self.cache + .read() + .get(&StructKeyRef { idx, ty_args }) + .cloned() } /// Inserts the struct tag and its pseudo-gas cost ([PricedStructTag]) into the cache. Returns @@ -80,19 +135,24 @@ impl TypeTagCache { priced_struct_tag: &PricedStructTag, ) -> bool { // Check if already cached. - if let Some(inner_cache) = self.cache.read().get(idx) { - if inner_cache.contains_key(ty_args) { - return false; - } + if self + .cache + .read() + .contains_key(&StructKeyRef { idx, ty_args }) + { + return false; } + let key = StructKey { + idx: *idx, + ty_args: ty_args.to_vec(), + }; let priced_struct_tag = priced_struct_tag.clone(); - let ty_args = ty_args.to_vec(); // Otherwise, we need to insert. We did the clones outside the lock, and also avoid the // double insertion. let mut cache = self.cache.write(); - if let Entry::Vacant(entry) = cache.entry(*idx).or_default().entry(ty_args) { + if let Entry::Vacant(entry) = cache.entry(key) { entry.insert(priced_struct_tag); true } else { @@ -225,15 +285,71 @@ mod tests { use super::*; use crate::config::VMConfig; use claims::{assert_err, assert_none, assert_ok, assert_ok_eq, assert_some}; + use hashbrown::Equivalent; use move_binary_format::file_format::StructTypeParameter; use move_core_types::{ - ability::AbilitySet, account_address::AccountAddress, identifier::Identifier, + ability::{Ability, AbilitySet}, + account_address::AccountAddress, + identifier::Identifier, language_storage::ModuleId, }; use move_vm_types::loaded_data::runtime_types::{ AbilityInfo, StructIdentifier, StructLayout, StructType, TypeBuilder, }; - use std::str::FromStr; + use smallbitvec::SmallBitVec; + use std::{collections::hash_map::DefaultHasher, str::FromStr}; + use triomphe::Arc; + + fn calculate_hash(t: &T) -> u64 { + let mut s = DefaultHasher::new(); + t.hash(&mut s); + s.finish() + } + + #[test] + fn test_struct_key_equivalence_and_hash() { + let struct_keys = [ + StructKey { + idx: StructNameIndex::new(0), + ty_args: vec![], + }, + StructKey { + idx: StructNameIndex::new(1), + ty_args: vec![Type::U8], + }, + StructKey { + idx: StructNameIndex::new(2), + ty_args: vec![Type::Bool, Type::Vector(Arc::new(Type::Bool))], + }, + StructKey { + idx: StructNameIndex::new(3), + ty_args: vec![ + Type::Struct { + idx: StructNameIndex::new(0), + ability: AbilityInfo::struct_(AbilitySet::singleton(Ability::Key)), + }, + Type::StructInstantiation { + idx: StructNameIndex::new(1), + ty_args: Arc::new(vec![Type::Address, Type::Struct { + idx: StructNameIndex::new(2), + ability: AbilityInfo::struct_(AbilitySet::singleton(Ability::Copy)), + }]), + ability: AbilityInfo::generic_struct( + AbilitySet::singleton(Ability::Drop), + SmallBitVec::new(), + ), + }, + ], + }, + ]; + + for struct_key in struct_keys { + let struct_key_ref = struct_key.as_ref(); + assert!(struct_key.equivalent(&struct_key_ref)); + assert!(struct_key_ref.equivalent(&struct_key)); + assert_eq!(calculate_hash(&struct_key), calculate_hash(&struct_key_ref)); + } + } #[test] fn test_type_tag_cache() { From 85f04177234806baea024569b880b302cfb0cbba Mon Sep 17 00:00:00 2001 From: Greg Nazario Date: Wed, 29 Jan 2025 15:25:26 -0500 Subject: [PATCH 17/30] [cli] Allow long paths in windows CLI build (#15840) --- .github/workflows/cli-release.yaml | 4 ++++ .github/workflows/windows-build.yaml | 9 +++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/.github/workflows/cli-release.yaml b/.github/workflows/cli-release.yaml index 05829fd043d6a..5faba316897fb 100644 --- a/.github/workflows/cli-release.yaml +++ b/.github/workflows/cli-release.yaml @@ -130,6 +130,10 @@ jobs: - uses: actions/checkout@v4 with: ref: ${{ github.event.inputs.source_git_ref_override }} + # Ensure that long paths work + - name: Ensure long paths work + run: git config --system core.longpaths true + shell: bash - name: Build CLI run: scripts\cli\build_cli_release.ps1 - name: Upload Binary diff --git a/.github/workflows/windows-build.yaml b/.github/workflows/windows-build.yaml index 43cdc00fc8ed3..7e0ec9663a5da 100644 --- a/.github/workflows/windows-build.yaml +++ b/.github/workflows/windows-build.yaml @@ -4,8 +4,8 @@ name: "Windows CLI Build" on: workflow_dispatch: pull_request: - types: [labeled, opened, synchronize, reopened, auto_merge_enabled] - schedule: + types: [ labeled, opened, synchronize, reopened, auto_merge_enabled ] + schedule: # Run twice a day at 12PM PT and 8PM PT Monday through Friday - cron: "0 19,3 * * 1-5" # Run once a day at 12PM PT on Saturday and Sunday @@ -32,6 +32,11 @@ jobs: - name: Set up WinGet run: Set-Variable ProgressPreference SilentlyContinue ; PowerShell -ExecutionPolicy Bypass -File scripts/windows_dev_setup.ps1 + # Ensure that long paths work + - name: Ensure long paths work + run: git config --system core.longpaths true + shell: bash + # This action will cache ~/.cargo and ./target (or the equivalent on Windows in # this case). See more here: # https://github.com/Swatinem/rust-cache#cache-details From 43f03ce03a399a911e917caf2f712072e2bbc09e Mon Sep 17 00:00:00 2001 From: George Mitenkov Date: Thu, 30 Jan 2025 17:13:07 +0000 Subject: [PATCH 18/30] [move] Enable call tree caches (#15843) --- .../e2e-benchmark/data/calibration_values.tsv | 84 +++++++-------- testsuite/single_node_performance_values.tsv | 100 +++++++++--------- types/src/on_chain_config/aptos_features.rs | 2 +- 3 files changed, 93 insertions(+), 93 deletions(-) diff --git a/aptos-move/e2e-benchmark/data/calibration_values.tsv b/aptos-move/e2e-benchmark/data/calibration_values.tsv index 4de2f769a6872..3704a9746ed99 100644 --- a/aptos-move/e2e-benchmark/data/calibration_values.tsv +++ b/aptos-move/e2e-benchmark/data/calibration_values.tsv @@ -1,42 +1,42 @@ -Loop { loop_count: Some(100000), loop_type: NoOp } 59 0.972 1.144 42352.5 -Loop { loop_count: Some(10000), loop_type: Arithmetic } 59 0.966 1.176 26666.4 -CreateObjects { num_objects: 10, object_payload_size: 0 } 59 0.920 1.346 164.2 -CreateObjects { num_objects: 10, object_payload_size: 10240 } 59 0.916 1.218 9840.3 -CreateObjects { num_objects: 100, object_payload_size: 0 } 59 0.940 1.074 1593.9 -CreateObjects { num_objects: 100, object_payload_size: 10240 } 59 0.933 1.136 11960.6 -InitializeVectorPicture { length: 128 } 59 0.950 1.195 171.5 -VectorPicture { length: 128 } 59 0.925 1.356 49.9 -VectorPictureRead { length: 128 } 59 0.919 1.233 48.4 -InitializeVectorPicture { length: 30720 } 59 0.950 1.143 28769.8 -VectorPicture { length: 30720 } 59 0.936 1.102 7062.4 -VectorPictureRead { length: 30720 } 59 0.931 1.135 7062.4 -SmartTablePicture { length: 30720, num_points_per_txn: 200 } 59 0.957 1.154 43673.3 -SmartTablePicture { length: 1048576, num_points_per_txn: 300 } 59 0.963 1.113 74426.8 -ResourceGroupsSenderWriteTag { string_length: 1024 } 59 0.911 1.108 16.6 -ResourceGroupsSenderMultiChange { string_length: 1024 } 59 0.921 1.147 33.9 -TokenV1MintAndTransferFT 59 0.949 1.137 401.3 -TokenV1MintAndTransferNFTSequential 59 0.952 1.090 602.6 -TokenV2AmbassadorMint { numbered: true } 59 0.969 1.174 461.3 -LiquidityPoolSwap { is_stable: true } 59 0.957 1.088 708.6 -LiquidityPoolSwap { is_stable: false } 59 0.945 1.095 664.2 -CoinInitAndMint 59 0.952 1.127 222.3 -FungibleAssetMint 59 0.941 1.125 240.8 -IncGlobalMilestoneAggV2 { milestone_every: 1 } 59 0.908 1.151 34.6 -IncGlobalMilestoneAggV2 { milestone_every: 2 } 59 0.904 1.131 19.7 -EmitEvents { count: 1000 } 59 0.959 1.197 10093.8 -APTTransferWithPermissionedSigner 34 0.946 1.091 1068.0 -APTTransferWithMasterSigner 34 0.946 1.091 185.0 -VectorTrimAppend { vec_len: 3000, element_len: 1, index: 0, repeats: 0 } 59 0.937 1.134 6387.1 -VectorTrimAppend { vec_len: 3000, element_len: 1, index: 100, repeats: 1000 } 59 0.953 1.639 30997.6 -VectorTrimAppend { vec_len: 3000, element_len: 1, index: 2990, repeats: 1000 } 59 0.966 1.125 18606.7 -VectorRemoveInsert { vec_len: 3000, element_len: 1, index: 100, repeats: 1000 } 59 0.953 1.085 26954.7 -VectorRemoveInsert { vec_len: 3000, element_len: 1, index: 2998, repeats: 1000 } 59 0.968 1.120 17739.8 -VectorRangeMove { vec_len: 3000, element_len: 1, index: 1000, move_len: 500, repeats: 1000 } 59 0.910 1.372 32540.5 -VectorTrimAppend { vec_len: 100, element_len: 100, index: 0, repeats: 0 } 59 0.949 1.251 288.0 -VectorTrimAppend { vec_len: 100, element_len: 100, index: 10, repeats: 1000 } 59 0.946 1.100 13721.8 -VectorRangeMove { vec_len: 100, element_len: 100, index: 50, move_len: 10, repeats: 1000 } 59 0.945 1.078 5740.2 -MapInsertRemove { len: 100, repeats: 100, map_type: OrderedMap } 59 0.947 1.132 16205.9 -MapInsertRemove { len: 100, repeats: 100, map_type: SimpleMap } 59 0.954 1.118 38134.7 -MapInsertRemove { len: 100, repeats: 100, map_type: BigOrderedMap { inner_max_degree: 4, leaf_max_degree: 4 } } 15 0.962 1.052 174389.4 -MapInsertRemove { len: 100, repeats: 100, map_type: BigOrderedMap { inner_max_degree: 1024, leaf_max_degree: 1024 } } 15 0.962 1.052 30644.0 -MapInsertRemove { len: 1000, repeats: 100, map_type: OrderedMap } 59 0.957 1.175 77706.0 +Loop { loop_count: Some(100000), loop_type: NoOp } 10 0.975 1.147 42199.1 +Loop { loop_count: Some(10000), loop_type: Arithmetic } 10 0.980 1.163 27003.1 +CreateObjects { num_objects: 10, object_payload_size: 0 } 10 0.960 1.183 132.5 +CreateObjects { num_objects: 10, object_payload_size: 10240 } 10 0.945 1.063 9895.0 +CreateObjects { num_objects: 100, object_payload_size: 0 } 10 0.983 1.088 1207.4 +CreateObjects { num_objects: 100, object_payload_size: 10240 } 10 0.960 1.116 11541.9 +InitializeVectorPicture { length: 128 } 10 0.922 1.053 182.6 +VectorPicture { length: 128 } 10 0.943 1.072 48.6 +VectorPictureRead { length: 128 } 10 0.956 1.077 47.6 +InitializeVectorPicture { length: 30720 } 10 0.966 1.137 27792.6 +VectorPicture { length: 30720 } 10 0.942 1.117 6898.1 +VectorPictureRead { length: 30720 } 10 0.944 1.114 6873.3 +SmartTablePicture { length: 30720, num_points_per_txn: 200 } 10 0.977 1.081 35753.8 +SmartTablePicture { length: 1048576, num_points_per_txn: 300 } 10 0.976 1.088 62351.5 +ResourceGroupsSenderWriteTag { string_length: 1024 } 10 0.944 1.084 18.2 +ResourceGroupsSenderMultiChange { string_length: 1024 } 10 0.930 1.028 34.4 +TokenV1MintAndTransferFT 10 0.967 1.113 449.5 +TokenV1MintAndTransferNFTSequential 10 0.983 1.177 671.4 +TokenV2AmbassadorMint { numbered: true } 10 0.980 1.100 519.7 +LiquidityPoolSwap { is_stable: true } 10 0.978 1.096 730.4 +LiquidityPoolSwap { is_stable: false } 10 0.989 1.117 678.7 +CoinInitAndMint 10 0.942 1.129 264.0 +FungibleAssetMint 10 0.970 1.044 272.9 +IncGlobalMilestoneAggV2 { milestone_every: 1 } 10 0.971 1.073 34.4 +IncGlobalMilestoneAggV2 { milestone_every: 2 } 10 0.943 1.047 21.1 +EmitEvents { count: 1000 } 10 0.969 1.105 6387.1 +APTTransferWithPermissionedSigner 10 0.979 1.083 1196.2 +APTTransferWithMasterSigner 10 0.968 1.098 187.6 +VectorTrimAppend { vec_len: 3000, element_len: 1, index: 0, repeats: 0 } 10 0.966 1.055 6409.9 +VectorTrimAppend { vec_len: 3000, element_len: 1, index: 100, repeats: 1000 } 10 0.984 1.072 27842.9 +VectorTrimAppend { vec_len: 3000, element_len: 1, index: 2990, repeats: 1000 } 10 0.986 1.064 16499.0 +VectorRemoveInsert { vec_len: 3000, element_len: 1, index: 100, repeats: 1000 } 10 0.988 1.084 23793.9 +VectorRemoveInsert { vec_len: 3000, element_len: 1, index: 2998, repeats: 1000 } 10 0.928 1.010 17096.6 +VectorRangeMove { vec_len: 3000, element_len: 1, index: 1000, move_len: 500, repeats: 1000 } 10 0.925 1.333 31116.2 +VectorTrimAppend { vec_len: 100, element_len: 100, index: 0, repeats: 0 } 10 0.967 1.079 289.6 +VectorTrimAppend { vec_len: 100, element_len: 100, index: 10, repeats: 1000 } 10 0.976 1.057 11707.8 +VectorRangeMove { vec_len: 100, element_len: 100, index: 50, move_len: 10, repeats: 1000 } 10 0.984 1.067 4757.9 +MapInsertRemove { len: 100, repeats: 100, map_type: OrderedMap } 10 0.976 1.058 11398.6 +MapInsertRemove { len: 100, repeats: 100, map_type: SimpleMap } 10 0.955 1.070 34260.4 +MapInsertRemove { len: 100, repeats: 100, map_type: BigOrderedMap { inner_max_degree: 4, leaf_max_degree: 4 } } 10 0.980 1.085 104588.7 +MapInsertRemove { len: 100, repeats: 100, map_type: BigOrderedMap { inner_max_degree: 1024, leaf_max_degree: 1024 } } 10 0.964 1.054 18257.0 +MapInsertRemove { len: 1000, repeats: 100, map_type: OrderedMap } 10 0.948 1.042 57016.3 diff --git a/testsuite/single_node_performance_values.tsv b/testsuite/single_node_performance_values.tsv index b1276920f7334..3f6f4a35bbe06 100644 --- a/testsuite/single_node_performance_values.tsv +++ b/testsuite/single_node_performance_values.tsv @@ -1,50 +1,50 @@ -no-op 1 VM 59 0.757 1.057 38134.7 -no-op 1000 VM 59 0.710 1.057 36583.6 -apt-fa-transfer 1 VM 59 0.864 1.048 26428.9 -apt-fa-transfer 1 NativeVM 59 0.882 1.122 33526.5 -account-generation 1 VM 59 0.838 1.045 21407.5 -account-generation 1 NativeVM 59 0.857 1.154 29907.3 -account-resource32-b 1 VM 59 0.815 1.059 34126.3 -modify-global-resource 1 VM 59 0.782 1.057 2162.3 -modify-global-resource 100 VM 59 0.865 1.082 32031.7 -publish-package 1 VM 59 0.876 1.020 1165.1 -mix_publish_transfer 1 VM 59 0.845 1.043 20381.3 -batch100-transfer 1 VM 59 0.833 1.043 682.4 -batch100-transfer 1 NativeVM 59 0.822 1.122 1382.1 -vector-picture30k 1 VM 59 0.881 1.032 99.6 -vector-picture30k 100 VM 59 0.688 1.092 1709.1 -smart-table-picture30-k-with200-change 1 VM 59 0.945 1.048 16.1 -smart-table-picture30-k-with200-change 100 VM 59 0.876 1.050 204.3 -modify-global-resource-agg-v2 1 VM 59 0.787 1.042 35479.7 -modify-global-flag-agg-v2 1 VM 59 0.916 1.082 3766.5 -modify-global-bounded-agg-v2 1 VM 59 0.887 1.113 6960.7 -modify-global-milestone-agg-v2 1 VM 59 0.851 1.063 24875.5 -resource-groups-global-write-tag1-kb 1 VM 59 0.859 1.059 8531.6 -resource-groups-global-write-and-read-tag1-kb 1 VM 59 0.898 1.056 5371.3 -resource-groups-sender-write-tag1-kb 1 VM 59 0.854 1.119 17637.4 -resource-groups-sender-multi-change1-kb 1 VM 59 0.615 1.139 14358.6 -token-v1ft-mint-and-transfer 1 VM 59 0.832 1.037 1130.2 -token-v1ft-mint-and-transfer 100 VM 59 0.841 1.041 18222.3 -token-v1nft-mint-and-transfer-sequential 1 VM 59 0.812 1.038 751.5 -token-v1nft-mint-and-transfer-sequential 100 VM 59 0.856 1.039 13261.8 -coin-init-and-mint 1 VM 59 0.845 1.049 26287.6 -coin-init-and-mint 100 VM 59 0.862 1.050 21994.4 -fungible-asset-mint 1 VM 59 0.795 1.047 22878.7 -fungible-asset-mint 100 VM 59 0.823 1.052 19826.7 -no-op5-signers 1 VM 59 0.824 1.063 38277.6 -token-v2-ambassador-mint 1 VM 59 0.851 1.036 15439.9 -token-v2-ambassador-mint 100 VM 59 0.826 1.031 15294.2 -liquidity-pool-swap 1 VM 59 0.853 1.028 731.7 -liquidity-pool-swap 100 VM 59 0.873 1.024 10723.1 -liquidity-pool-swap-stable 1 VM 59 0.874 1.024 697.3 -liquidity-pool-swap-stable 100 VM 59 0.876 1.023 10303.1 -deserialize-u256 1 VM 59 0.839 1.062 36444.6 -no-op-fee-payer 1 VM 59 0.842 1.054 1858.8 -no-op-fee-payer 100 VM 59 0.857 1.045 31721.2 -simple-script 1 VM 59 0.786 1.061 37143.1 -vector-trim-append-len3000-size1 1 VM 59 0.880 1.055 548.0 -vector-remove-insert-len3000-size1 1 VM 59 0.932 1.040 568.4 -no_commit_apt-fa-transfer 1 VM 59 0.909 1.045 27943.9 -no_commit_apt-fa-transfer 1 NativeVM 59 0.820 1.018 48355.8 -no_commit_apt-fa-transfer 1 AptosVMSpeculative 59 0.912 1.009 1185.0 -no_commit_apt-fa-transfer 1 NativeSpeculative 59 0.845 1.014 95855.3 +no-op 1 VM 10 0.876 1.023 37002.8 +no-op 1000 VM 10 0.857 1.020 35548.1 +apt-fa-transfer 1 VM 10 0.890 1.015 25776.8 +apt-fa-transfer 1 NativeVM 10 0.917 1.115 34059.4 +account-generation 1 VM 10 0.870 1.009 20908.8 +account-generation 1 NativeVM 10 0.874 1.168 29303.3 +account-resource32-b 1 VM 10 0.861 1.017 33129.7 +modify-global-resource 1 VM 10 0.885 1.007 2087.1 +modify-global-resource 100 VM 10 0.880 1.014 31175.8 +publish-package 1 VM 10 0.870 1.015 1147.6 +mix_publish_transfer 1 VM 10 0.867 1.019 19680.5 +batch100-transfer 1 VM 10 0.818 1.024 740.9 +batch100-transfer 1 NativeVM 10 0.824 1.146 1417.2 +vector-picture30k 1 VM 10 0.922 1.019 105.3 +vector-picture30k 100 VM 10 0.778 1.098 1672.6 +smart-table-picture30-k-with200-change 1 VM 10 0.929 1.031 17.8 +smart-table-picture30-k-with200-change 100 VM 10 0.957 1.098 216.0 +modify-global-resource-agg-v2 1 VM 10 0.848 1.024 34731.8 +modify-global-flag-agg-v2 1 VM 10 0.943 1.013 3616.0 +modify-global-bounded-agg-v2 1 VM 10 0.986 1.075 6583.6 +modify-global-milestone-agg-v2 1 VM 10 0.852 1.026 24307.2 +resource-groups-global-write-tag1-kb 1 VM 10 0.921 1.054 8183.9 +resource-groups-global-write-and-read-tag1-kb 1 VM 10 0.901 1.010 5161.0 +resource-groups-sender-write-tag1-kb 1 VM 10 0.929 1.119 17842.6 +resource-groups-sender-multi-change1-kb 1 VM 10 0.903 1.070 14544.1 +token-v1ft-mint-and-transfer 1 VM 10 0.845 1.005 1062.3 +token-v1ft-mint-and-transfer 100 VM 10 0.848 1.010 17535.3 +token-v1nft-mint-and-transfer-sequential 1 VM 10 0.838 1.015 711.1 +token-v1nft-mint-and-transfer-sequential 100 VM 10 0.862 1.019 12683.5 +coin-init-and-mint 1 VM 10 0.890 1.018 25457.5 +coin-init-and-mint 100 VM 10 0.871 1.019 21099.6 +fungible-asset-mint 1 VM 10 0.853 1.018 22312.6 +fungible-asset-mint 100 VM 10 0.877 1.029 18960.4 +no-op5-signers 1 VM 10 0.863 1.008 37213.4 +token-v2-ambassador-mint 1 VM 10 0.855 1.011 15207.9 +token-v2-ambassador-mint 100 VM 10 0.859 1.014 15065.8 +liquidity-pool-swap 1 VM 10 0.823 1.020 708.6 +liquidity-pool-swap 100 VM 10 0.857 1.005 10530.6 +liquidity-pool-swap-stable 1 VM 10 0.831 1.008 678.7 +liquidity-pool-swap-stable 100 VM 10 0.853 1.026 10042.1 +deserialize-u256 1 VM 10 0.868 1.015 35002.7 +no-op-fee-payer 1 VM 10 0.858 1.026 1737.0 +no-op-fee-payer 100 VM 10 0.848 1.007 30704.4 +simple-script 1 VM 10 0.863 1.020 36375.2 +vector-trim-append-len3000-size1 1 VM 10 0.955 1.086 608.2 +vector-remove-insert-len3000-size1 1 VM 10 0.958 1.028 669.0 +no_commit_apt-fa-transfer 1 VM 10 0.900 1.018 27149.0 +no_commit_apt-fa-transfer 1 NativeVM 10 0.871 1.013 48269.8 +no_commit_apt-fa-transfer 1 AptosVMSpeculative 10 0.902 1.013 1165.1 +no_commit_apt-fa-transfer 1 NativeSpeculative 10 0.876 1.022 95345.0 diff --git a/types/src/on_chain_config/aptos_features.rs b/types/src/on_chain_config/aptos_features.rs index cb2668ee3e72f..a7b627e41d07e 100644 --- a/types/src/on_chain_config/aptos_features.rs +++ b/types/src/on_chain_config/aptos_features.rs @@ -203,7 +203,7 @@ impl FeatureFlag { FeatureFlag::ENABLE_LOADER_V2, FeatureFlag::DISALLOW_INIT_MODULE_TO_PUBLISH_MODULES, FeatureFlag::PERMISSIONED_SIGNER, - // FeatureFlag::ENABLE_CALL_TREE_AND_INSTRUCTION_VM_CACHE, + FeatureFlag::ENABLE_CALL_TREE_AND_INSTRUCTION_VM_CACHE, FeatureFlag::ACCOUNT_ABSTRACTION, ] } From 00ac087a8675ae6552625e49550fcf8c76b86ccb Mon Sep 17 00:00:00 2001 From: Aaron Date: Fri, 31 Jan 2025 02:23:19 +0800 Subject: [PATCH 19/30] [hotfix] fix the fee payer txn simulation error (#15844) --- api/src/tests/simulation_test.rs | 20 ++++++++++++++++--- .../doc/transaction_validation.md | 11 ++++++---- .../sources/transaction_validation.move | 11 ++++++---- 3 files changed, 31 insertions(+), 11 deletions(-) diff --git a/api/src/tests/simulation_test.rs b/api/src/tests/simulation_test.rs index 7f2623e1f028e..a39fc887f530b 100644 --- a/api/src/tests/simulation_test.rs +++ b/api/src/tests/simulation_test.rs @@ -14,6 +14,7 @@ use aptos_types::{ use move_core_types::{ident_str, language_storage::ModuleId}; use serde_json::json; use std::path::PathBuf; +const ACCOUNT_ABSTRACTION: u64 = 85; async fn simulate_aptos_transfer( context: &mut TestContext, @@ -104,6 +105,21 @@ async fn test_simulate_transaction_with_insufficient_balance() { assert!(!resp[0]["success"].as_bool().is_some_and(|v| v)); } +#[tokio::test(flavor = "multi_thread", worker_threads = 2)] +async fn test_bcs_simulate_fee_payer_transaction_without_gas_fee_check_with_aa_disabled() { + let mut context = new_test_context(current_function_name!()); + context.disable_feature(ACCOUNT_ABSTRACTION).await; + bcs_simulate_fee_payer_transaction_without_gas_fee_check(&mut context).await; +} + +#[tokio::test(flavor = "multi_thread", worker_threads = 2)] +async fn test_bcs_simulate_fee_payer_transaction_without_gas_fee_check() { + let mut context = new_test_context(current_function_name!()); + context.disable_feature(ACCOUNT_ABSTRACTION).await; + bcs_simulate_fee_payer_transaction_without_gas_fee_check(&mut context).await; +} + +// Enable the MODULE_EVENT_MIGRATION feature #[tokio::test(flavor = "multi_thread", worker_threads = 2)] async fn test_simulate_txn_with_aggregator() { let mut context = new_test_context(current_function_name!()); @@ -234,9 +250,7 @@ async fn test_bcs_simulate_without_auth_key_check() { assert!(resp[0]["success"].as_bool().unwrap(), "{}", pretty(&resp)); } -#[tokio::test(flavor = "multi_thread", worker_threads = 2)] -async fn test_bcs_simulate_fee_payer_transaction_without_gas_fee_check() { - let mut context = new_test_context(current_function_name!()); +async fn bcs_simulate_fee_payer_transaction_without_gas_fee_check(context: &mut TestContext) { let alice = &mut context.gen_account(); let bob = &mut context.gen_account(); let txn = context.mint_user_account(alice).await; diff --git a/aptos-move/framework/aptos-framework/doc/transaction_validation.md b/aptos-move/framework/aptos-framework/doc/transaction_validation.md index 77c61310c5150..44c88dd519cee 100644 --- a/aptos-move/framework/aptos-framework/doc/transaction_validation.md +++ b/aptos-move/framework/aptos-framework/doc/transaction_validation.md @@ -889,10 +889,13 @@ Only called during genesis to initialize system resources for this module. vector::map(secondary_signer_public_key_hashes, |x| option::some(x)), is_simulation ); - assert!( - fee_payer_public_key_hash == account::get_authentication_key(fee_payer_address), - error::invalid_argument(PROLOGUE_EINVALID_ACCOUNT_AUTH_KEY), - ) + if (!features::transaction_simulation_enhancement_enabled() || + !skip_auth_key_check(is_simulation, &option::some(fee_payer_public_key_hash))) { + assert!( + fee_payer_public_key_hash == account::get_authentication_key(fee_payer_address), + error::invalid_argument(PROLOGUE_EINVALID_ACCOUNT_AUTH_KEY), + ) + } }
diff --git a/aptos-move/framework/aptos-framework/sources/transaction_validation.move b/aptos-move/framework/aptos-framework/sources/transaction_validation.move index 87c06a9113431..4202a488b88f3 100644 --- a/aptos-move/framework/aptos-framework/sources/transaction_validation.move +++ b/aptos-move/framework/aptos-framework/sources/transaction_validation.move @@ -454,10 +454,13 @@ module aptos_framework::transaction_validation { vector::map(secondary_signer_public_key_hashes, |x| option::some(x)), is_simulation ); - assert!( - fee_payer_public_key_hash == account::get_authentication_key(fee_payer_address), - error::invalid_argument(PROLOGUE_EINVALID_ACCOUNT_AUTH_KEY), - ) + if (!features::transaction_simulation_enhancement_enabled() || + !skip_auth_key_check(is_simulation, &option::some(fee_payer_public_key_hash))) { + assert!( + fee_payer_public_key_hash == account::get_authentication_key(fee_payer_address), + error::invalid_argument(PROLOGUE_EINVALID_ACCOUNT_AUTH_KEY), + ) + } } /// Epilogue function is run after a transaction is successfully executed. From d949a8fb6fe64e5da8f672be52a148f105bbe0cf Mon Sep 17 00:00:00 2001 From: rtso <8248583+rtso@users.noreply.github.com> Date: Thu, 30 Jan 2025 14:30:48 -0500 Subject: [PATCH 20/30] add txn with no events --- .../generated_transactions.rs | 3 + ...229017_events_with_no_event_size_info.json | 68 ++++++++++++++++++ .../fa_double_transfer.json | 22 +++--- .../fa_mint_transfer_burn.json | 22 +++--- .../simple_user_script1.json | 18 ++--- .../simple_user_script2.json | 18 ++--- .../simple_user_script3.json | 18 ++--- .../simple_user_script4.json | 18 ++--- .../imported_transactions.yaml | 5 +- .../fa_double_transfer/script.mv | Bin 1109 -> 1105 bytes .../fa_mint_transfer_burn/script.mv | Bin 1028 -> 1024 bytes 11 files changed, 133 insertions(+), 59 deletions(-) create mode 100644 ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/imported_mainnet_txns/554229017_events_with_no_event_size_info.json diff --git a/ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/generated_transactions.rs b/ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/generated_transactions.rs index 96400c84efc73..61d86faa9fa6e 100644 --- a/ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/generated_transactions.rs +++ b/ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/generated_transactions.rs @@ -97,6 +97,8 @@ pub const IMPORTED_MAINNET_TXNS_999930475_TOKEN_V2_CONCURRENT_MINT: &[u8] = "/src/json_transactions/imported_mainnet_txns/999930475_token_v2_concurrent_mint.json" )); +pub const IMPORTED_MAINNET_TXNS_554229017_EVENTS_WITH_NO_EVENT_SIZE_INFO: &[u8] = include_bytes!(concat!(env!("CARGO_MANIFEST_DIR"), "/src/json_transactions/imported_mainnet_txns/554229017_events_with_no_event_size_info.json")); + pub const IMPORTED_MAINNET_TXNS_124094774_DELEGATED_POOL_BALANCE: &[u8] = include_bytes!(concat!( env!("CARGO_MANIFEST_DIR"), "/src/json_transactions/imported_mainnet_txns/124094774_delegated_pool_balance.json" @@ -257,6 +259,7 @@ pub const ALL_IMPORTED_MAINNET_TXNS: &[&[u8]] = &[ IMPORTED_MAINNET_TXNS_438536688_ANS_CURRENT_ANS_LOOKUP_V2, IMPORTED_MAINNET_TXNS_578318306_OBJECTS_WRITE_RESOURCE, IMPORTED_MAINNET_TXNS_999930475_TOKEN_V2_CONCURRENT_MINT, + IMPORTED_MAINNET_TXNS_554229017_EVENTS_WITH_NO_EVENT_SIZE_INFO, IMPORTED_MAINNET_TXNS_124094774_DELEGATED_POOL_BALANCE, IMPORTED_MAINNET_TXNS_97963136_TOKEN_V2_CANCEL_OFFER, IMPORTED_MAINNET_TXNS_152449628_COIN_INFO_WRITE, diff --git a/ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/imported_mainnet_txns/554229017_events_with_no_event_size_info.json b/ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/imported_mainnet_txns/554229017_events_with_no_event_size_info.json new file mode 100644 index 0000000000000..4de398ce46956 --- /dev/null +++ b/ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/imported_mainnet_txns/554229017_events_with_no_event_size_info.json @@ -0,0 +1,68 @@ +{ + "timestamp": { + "seconds": "1713197793", + "nanos": 921133000 + }, + "version": "554229017", + "info": { + "hash": "j7YbX8BOUzINvwkg95mz2ZwjDFLuw45j1fSyNVSCPTA=", + "stateChangeHash": "vVC7bUyeTJiRtSB2Nkv9i4G+oejvvKnz1JI4EUXL2vA=", + "eventRootHash": "i30xttgQOC+AiJvvJwUjnT0cl+zQL3hfd/VNIExeDo8=", + "success": true, + "vmStatus": "Executed successfully", + "accumulatorRootHash": "UEmKTAI3YAPrcpOgvG6PmexKMG1mmdvP4oFhQyEIhnc=", + "changes": [ + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x1", + "stateKeyHash": "UFeK2m6H9Dz4aTuQTikfmktF492Lp2/XpbbP4rBNsRY=", + "type": { + "address": "0x1", + "module": "jwks", + "name": "PatchedJWKs" + }, + "typeStr": "0x1::jwks::PatchedJWKs", + "data": "{\"jwks\":{\"entries\":[{\"issuer\":\"0x68747470733a2f2f6163636f756e74732e676f6f676c652e636f6d\",\"jwks\":[{\"variant\":{\"data\":\"0x2836636531316165636639656231343032346134346262666431626366386233326131323238376661035253410552533235360441514142d6027731546f6e7031456b705966545459524f4b6166786171516a5a5848656d366b4d4834672d416751764849477a39315844346a345744497877696b394668526e5947396e5671625956384c49355a37635a726d5778383955566c2d4e3573767a4746416458315f364641516e6331456a76616161553076425155365a4f7573574e44345946672d62395435756b34703172495477765f72436749713354533576412d45754552474f6d6646664e6473524336464e315737666a314c42326d53417a67657a655353716e5039426c6972766739397a4e6843426c6c74577653306158736d4375566e31332d78646e6d51623057397342316c367646736f356a435470556a4458337431566c485964714253786179684d475733414b334f346b557259504d4b3643364f2d5847676377774c6359417737306679746d2d596e77585576784274616171387767737545376a50636156795077\",\"type_name\":\"0x1::jwks::RSA_JWK\"}},{\"variant\":{\"data\":\"0x2839336234393531363261663063383763633761353136383632393430393730343064616633623433035253410552533235360441514142d602334e587741534e665f372d39684f57444b795a333971677a2d796c5f6e707549734267786e684e6f4537577951516c2d6d75616a507351526446714d2d485773414162535f57744c726d66326152536d6a58426d3877584849654a6a63725a695765556e5379665a4c447231336a7858684e3072447664695a4573416c614b75682d69436777435f705864305474577061596c763546466775755369744b544f694452367a3365535a556430584e787238504f43445137566c475f3448797a68734f376e4f776769764f2d507a656b444562636f4c4939335538757a4b5a5859485352785957686f5370343750624d394435576275775871626d58527039546a694a5579364771454f4a344b32464e7671652d67364333426e70505675485a4e615666385147503830367257725750644a306972474268672d456173432d736446537248336b784d784246665673756a3639552d3751\",\"type_name\":\"0x1::jwks::RSA_JWK\"}}],\"version\":\"1\"}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x1", + "stateKeyHash": "XEKFpby/sHlxTKJLqcdmMFs9GuCT2jvObFwyqqf2ysA=", + "type": { + "address": "0x1", + "module": "jwks", + "name": "ObservedJWKs" + }, + "typeStr": "0x1::jwks::ObservedJWKs", + "data": "{\"jwks\":{\"entries\":[{\"issuer\":\"0x68747470733a2f2f6163636f756e74732e676f6f676c652e636f6d\",\"jwks\":[{\"variant\":{\"data\":\"0x2836636531316165636639656231343032346134346262666431626366386233326131323238376661035253410552533235360441514142d6027731546f6e7031456b705966545459524f4b6166786171516a5a5848656d366b4d4834672d416751764849477a39315844346a345744497877696b394668526e5947396e5671625956384c49355a37635a726d5778383955566c2d4e3573767a4746416458315f364641516e6331456a76616161553076425155365a4f7573574e44345946672d62395435756b34703172495477765f72436749713354533576412d45754552474f6d6646664e6473524336464e315737666a314c42326d53417a67657a655353716e5039426c6972766739397a4e6843426c6c74577653306158736d4375566e31332d78646e6d51623057397342316c367646736f356a435470556a4458337431566c485964714253786179684d475733414b334f346b557259504d4b3643364f2d5847676377774c6359417737306679746d2d596e77585576784274616171387767737545376a50636156795077\",\"type_name\":\"0x1::jwks::RSA_JWK\"}},{\"variant\":{\"data\":\"0x2839336234393531363261663063383763633761353136383632393430393730343064616633623433035253410552533235360441514142d602334e587741534e665f372d39684f57444b795a333971677a2d796c5f6e707549734267786e684e6f4537577951516c2d6d75616a507351526446714d2d485773414162535f57744c726d66326152536d6a58426d3877584849654a6a63725a695765556e5379665a4c447231336a7858684e3072447664695a4573416c614b75682d69436777435f705864305474577061596c763546466775755369744b544f694452367a3365535a556430584e787238504f43445137566c475f3448797a68734f376e4f776769764f2d507a656b444562636f4c4939335538757a4b5a5859485352785957686f5370343750624d394435576275775871626d58527039546a694a5579364771454f4a344b32464e7671652d67364333426e70505675485a4e615666385147503830367257725750644a306972474268672d456173432d736446537248336b784d784246665673756a3639552d3751\",\"type_name\":\"0x1::jwks::RSA_JWK\"}}],\"version\":\"1\"}]}}" + } + } + ] + }, + "epoch": "6644", + "blockHeight": "169399655", + "type": "TRANSACTION_TYPE_VALIDATOR", + "sizeInfo": { + "transactionBytes": 997, + "eventSizeInfo": [ + { + "typeTagBytes": 59, + "totalBytes": 947 + } + ], + "writeOpSizeInfo": [ + { + "keyBytes": 85, + "valueBytes": 880 + }, + { + "keyBytes": 86, + "valueBytes": 880 + } + ] + }, + "validator": {} +} \ No newline at end of file diff --git a/ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/scripted_transactions/fa_double_transfer.json b/ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/scripted_transactions/fa_double_transfer.json index 797d2277e3788..2703d04da5a1b 100644 --- a/ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/scripted_transactions/fa_double_transfer.json +++ b/ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/scripted_transactions/fa_double_transfer.json @@ -1,17 +1,17 @@ { "timestamp": { - "seconds": "1737064521", - "nanos": 815047000 + "seconds": "1738275564", + "nanos": 757863000 }, - "version": "99", + "version": "87", "info": { - "hash": "OjbUG7KkW06pvhI1BtyvKo3L+29OMZNY6Yg8h+Goo5w=", - "stateChangeHash": "FJadYIIeBuFu4+VUMly0rI7FB/kTnAHfXOcPW6Jaqls=", + "hash": "HODpp8JtY5Za0yNFquLqa5lmht9bojfyp+qLiniFIbU=", + "stateChangeHash": "sYnpClnPe7WbqcF12w1VM5Tbknn2+wMiCNOIxsZERVY=", "eventRootHash": "FmWvL7p7CNYdF2eb/mjbz8+qRiRO70XR0GQsuHS1nuk=", "gasUsed": "2230", "success": true, "vmStatus": "Executed successfully", - "accumulatorRootHash": "1oPG7Z3Mkeq4ycpqaQ5EAXhUYiwe6eavCqb+T/idMkY=", + "accumulatorRootHash": "VdlNm6AQKo28TidibfiqBzPls55urqaxhbWtjVN0ZSk=", "changes": [ { "type": "TYPE_WRITE_RESOURCE", @@ -208,10 +208,10 @@ ] }, "epoch": "2", - "blockHeight": "48", + "blockHeight": "42", "type": "TRANSACTION_TYPE_USER", "sizeInfo": { - "transactionBytes": 1279, + "transactionBytes": 1275, "eventSizeInfo": [ { "typeTagBytes": 57, @@ -275,13 +275,13 @@ "maxGasAmount": "3345", "gasUnitPrice": "100", "expirationTimestampSecs": { - "seconds": "1737064552" + "seconds": "1738275595" }, "payload": { "type": "TYPE_SCRIPT_PAYLOAD", "scriptPayload": { "code": { - "bytecode": "oRzrCwcAAAoJAQAMAgwoAzRNBIEBCgWLAYcBB5ICigMInAVABtwFjwEQ6wYfAQIBBQEIAQsBDgEXAAQCAAEHBwEAAAIKBwAEDQsAABAHAQABBBIGAAQUBgAEFgAABBoIAAADAgMAAQEGAQUBAAECCQYHAAEDDAgBAAEADwoLAQgBBBEKDAABBBMKDQABBBUODwABBRgAEAABAxkREgEIAQQbFAEBCAEEHBUPAQgBAQQECQkJChMLEwEGDAACBgwKAgEIAAEEAQsBAQkAAQoCAQgCBwYIAAsBAQQIAggCAggCCAIBCAMBBggAAQsEAQkAAQgFAQgGAgYIBQMBCAcBBQIFCwQBCQABCwQBCAgBCAgDBggGCwQBCQAIBwMGCAYLBAEJAAMJCAAGCAALBAEIAwgFCAYIBwsEAQgIAwYIBgg8U0VMRj5fMARtYWluBm9iamVjdBNjcmVhdGVfbmFtZWRfb2JqZWN0DkNvbnN0cnVjdG9yUmVmBm9wdGlvbgRub25lBk9wdGlvbgZzdHJpbmcEdXRmOAZTdHJpbmcWcHJpbWFyeV9mdW5naWJsZV9zdG9yZStjcmVhdGVfcHJpbWFyeV9zdG9yZV9lbmFibGVkX2Z1bmdpYmxlX2Fzc2V0CE1ldGFkYXRhDmZ1bmdpYmxlX2Fzc2V0G29iamVjdF9mcm9tX2NvbnN0cnVjdG9yX3JlZgZPYmplY3QRZ2VuZXJhdGVfbWludF9yZWYHTWludFJlZhVnZW5lcmF0ZV90cmFuc2Zlcl9yZWYLVHJhbnNmZXJSZWYEbWludA1GdW5naWJsZUFzc2V0BnNpZ25lcgphZGRyZXNzX29mG2Vuc3VyZV9wcmltYXJ5X3N0b3JlX2V4aXN0cw1GdW5naWJsZVN0b3JlEGRlcG9zaXRfd2l0aF9yZWYRd2l0aGRyYXdfd2l0aF9yZWb//////////////////////////////////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCgIDAkZBCgIIB0ZBIENvaW4KAiAfaHR0cHM6Ly9leGFtcGxlLmNvbS9mYXZpY29uLmljbwoCFBNodHRwczovL2V4YW1wbGUuY29tBSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADK/gUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAur4UY29tcGlsYXRpb25fbWV0YWRhdGEJAAMyLjADMi4xAAAWQwoABwARAAwBDgEMAgoCOAAHARECBwARAjEIBwIRAgcDEQIRAwoCOAEMAwoCEQUMBAsCEQYMBQ4EBkBCDwAAAAAAEQcMBgsAEQgKAzgCDAcOBQoHCwY4Aw4FCwcGQEIPAAAAAAA4BAwGBwQKAzgCDAcOBQoHCwY4Aw4FCwcGQEIPAAAAAAA4BAwGBwULAzgCDAcOBQsHCwY4AwI=", + "bytecode": "oRzrCwcAAAoJAQAMAgwoAzRNBIEBCgWLAYMBB44CigMImAVABtgFjwEQ5wYfAQIBBQEIAQsBDgEXAAQCAAEHBwEAAAIKBwAEDQsAABAHAQABBBIGAAQUBgAEFgAABBoIAAADAgMAAQEGAQUBAAECCQYHAAEDDAgBAAEADwoLAQgBBBEKDAABBBMKDQABBBUODwABBRgAEAABAxkREgEIAQQbFAEBCAEEHBUPAQgBAQQECQkJChMLEwEGDAACBgwKAgEIAAEEAQsBAQkAAQoCAQgCBwYIAAsBAQQIAggCAggCCAIBCAMBBggAAQsEAQkAAQgFAQgGAgYIBQMBCAcBBQIFCwQBCQABCwQBCAgBCAgDBggGCwQBCQAIBwMGCAYLBAEJAAMHCAAGCAALBAEIAwgFCAYIBwsEAQgICDxTRUxGPl8wBG1haW4Gb2JqZWN0E2NyZWF0ZV9uYW1lZF9vYmplY3QOQ29uc3RydWN0b3JSZWYGb3B0aW9uBG5vbmUGT3B0aW9uBnN0cmluZwR1dGY4BlN0cmluZxZwcmltYXJ5X2Z1bmdpYmxlX3N0b3JlK2NyZWF0ZV9wcmltYXJ5X3N0b3JlX2VuYWJsZWRfZnVuZ2libGVfYXNzZXQITWV0YWRhdGEOZnVuZ2libGVfYXNzZXQbb2JqZWN0X2Zyb21fY29uc3RydWN0b3JfcmVmBk9iamVjdBFnZW5lcmF0ZV9taW50X3JlZgdNaW50UmVmFWdlbmVyYXRlX3RyYW5zZmVyX3JlZgtUcmFuc2ZlclJlZgRtaW50DUZ1bmdpYmxlQXNzZXQGc2lnbmVyCmFkZHJlc3Nfb2YbZW5zdXJlX3ByaW1hcnlfc3RvcmVfZXhpc3RzDUZ1bmdpYmxlU3RvcmUQZGVwb3NpdF93aXRoX3JlZhF3aXRoZHJhd193aXRoX3JlZv//////////////////////////////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEKAgMCRkEKAggHRkEgQ29pbgoCIB9odHRwczovL2V4YW1wbGUuY29tL2Zhdmljb24uaWNvCgIUE2h0dHBzOi8vZXhhbXBsZS5jb20FIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMr+BSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC6vhRjb21waWxhdGlvbl9tZXRhZGF0YQkAAzIuMAMyLjEAABZDCgAHABEADAEOAQwCCgI4AAcBEQIHABECMQgHAhECBwMRAhEDCgI4AQwDCgIRBQwECwIRBgwFDgQGQEIPAAAAAAARBwwGCwARCAoDOAIMBw4FCgcLBjgDDgULBwZAQg8AAAAAADgEDAYHBAoDOAIMBw4FCgcLBjgDDgULBwZAQg8AAAAAADgEDAYHBQsDOAIMBw4FCwcLBjgDAg==", "abi": { "name": "main", "visibility": "VISIBILITY_PUBLIC", @@ -304,7 +304,7 @@ "type": "TYPE_ED25519", "ed25519": { "publicKey": "X3dtn8+5n300isDheC1WwnuA6rUEP5ShsSfvipASLUM=", - "signature": "3Dm5YP1TtKMzsyRLzwocKb4DBLwfnFWh7YlVQez9PYffhbc8wksWCaFaw7KrT/U5JCdGnaRm94F85QHhNVYhDQ==" + "signature": "QUAUOjBMZdUyhaZO/wxfEXeuiU29fnmkIRjAayJnkr00owqdndx3r1iMD4zuAedmnxG8wnRpHQTgcW3ChspWAA==" } } }, diff --git a/ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/scripted_transactions/fa_mint_transfer_burn.json b/ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/scripted_transactions/fa_mint_transfer_burn.json index 98500ac7eea4b..8bf4cf89b9049 100644 --- a/ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/scripted_transactions/fa_mint_transfer_burn.json +++ b/ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/scripted_transactions/fa_mint_transfer_burn.json @@ -1,17 +1,17 @@ { "timestamp": { - "seconds": "1737064501", - "nanos": 903460000 + "seconds": "1738275547", + "nanos": 103060000 }, - "version": "53", + "version": "45", "info": { - "hash": "NUjEd4fE2wqjM8r3rN50izKN4rjDKNXDH16Ie5iwUPc=", - "stateChangeHash": "iJ0OTUI3wtrBSMOjR2T75iRNFjxNYUdeXK5DN949eow=", + "hash": "UuBC4HSKWgm5jxMdAdMI5CI+7+v1ODcP+8VgihrrH8k=", + "stateChangeHash": "nvp/2a7LeNACfCi4itNdYQNwWhVxqglpCuhxDK2mxco=", "eventRootHash": "zguCQh0yktZ64gFcK3ArJOOrDjHPVhTjf/pYU5fhJdc=", "gasUsed": "1161", "success": true, "vmStatus": "Executed successfully", - "accumulatorRootHash": "93phBJ70b4Uamv/WYTWO4e8x8eSWpqoE5uCrkb+4y6U=", + "accumulatorRootHash": "Jw/iXEk+TpO3+3nqVR6S1Op/HyBWVp+vzUa4DthbfAg=", "changes": [ { "type": "TYPE_WRITE_RESOURCE", @@ -152,10 +152,10 @@ ] }, "epoch": "2", - "blockHeight": "26", + "blockHeight": "22", "type": "TRANSACTION_TYPE_USER", "sizeInfo": { - "transactionBytes": 1198, + "transactionBytes": 1194, "eventSizeInfo": [ { "typeTagBytes": 57, @@ -199,13 +199,13 @@ "maxGasAmount": "1741", "gasUnitPrice": "100", "expirationTimestampSecs": { - "seconds": "1737064531" + "seconds": "1738275577" }, "payload": { "type": "TYPE_SCRIPT_PAYLOAD", "scriptPayload": { "code": { - "bytecode": "oRzrCwcAAAoJAQAMAgwsAzhTBIsBCgWVAYwBB6ECnAMIvQVABv0FSxDIBh8BAgEFAQgBCwEOARkABAIAAQcHAQAAAgoHAAQNCwAAEAcBAAEEEgYABBQGAAQWBgAEGAAABBwIAAADAgMAAQEGAQUBAAECCQYHAAEDDAgBAAEADwoLAQgBBBEKDAABBBMKDQABBBUKDgABBBcPEAABBRoAEQABAxsSEwEIAQQdFQEBCAEEHhYBAQgBAQQECQoJCxQMFAEGDAACBgwKAgEIAAEEAQsBAQkAAQoCAQgCBwYIAAsBAQQIAggCAggCCAIBCAMBBggAAQsEAQkAAQgFAQgGAQgHAgYIBQMBCAgBBQIFCwQBCQABCwQBCAkBCAkDBggHCwQBCQAICAMGCAYLBAEJAAMKCAAGCAALBAEIAwgFCAYIBwgICwQBCAkDBggGCDxTRUxGPl8wBG1haW4Gb2JqZWN0E2NyZWF0ZV9uYW1lZF9vYmplY3QOQ29uc3RydWN0b3JSZWYGb3B0aW9uBG5vbmUGT3B0aW9uBnN0cmluZwR1dGY4BlN0cmluZxZwcmltYXJ5X2Z1bmdpYmxlX3N0b3JlK2NyZWF0ZV9wcmltYXJ5X3N0b3JlX2VuYWJsZWRfZnVuZ2libGVfYXNzZXQITWV0YWRhdGEOZnVuZ2libGVfYXNzZXQbb2JqZWN0X2Zyb21fY29uc3RydWN0b3JfcmVmBk9iamVjdBFnZW5lcmF0ZV9taW50X3JlZgdNaW50UmVmEWdlbmVyYXRlX2J1cm5fcmVmB0J1cm5SZWYVZ2VuZXJhdGVfdHJhbnNmZXJfcmVmC1RyYW5zZmVyUmVmBG1pbnQNRnVuZ2libGVBc3NldAZzaWduZXIKYWRkcmVzc19vZhtlbnN1cmVfcHJpbWFyeV9zdG9yZV9leGlzdHMNRnVuZ2libGVTdG9yZRBkZXBvc2l0X3dpdGhfcmVmCWJ1cm5fZnJvbf//////////////////////////////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEKAgMCRkEKAggHRkEgQ29pbgoCIB9odHRwczovL2V4YW1wbGUuY29tL2Zhdmljb24uaWNvCgIUE2h0dHBzOi8vZXhhbXBsZS5jb20UY29tcGlsYXRpb25fbWV0YWRhdGEJAAMyLjADMi4xAAAXMAoABwARAAwBDgEMAgoCOAAHARECBwARAjEIBwIRAgcDEQIRAwoCOAEMAwoCEQUMBAoCEQYMBQsCEQcMBg4EBkBCDwAAAAAAEQgMBwsAEQkLAzgCDAgOBgoICwc4Aw4FCwgGQEIPAAAAAAA4BAI=", + "bytecode": "oRzrCwcAAAoJAQAMAgwsAzhTBIsBCgWVAYgBB50CnAMIuQVABvkFSxDEBh8BAgEFAQgBCwEOARkABAIAAQcHAQAAAgoHAAQNCwAAEAcBAAEEEgYABBQGAAQWBgAEGAAABBwIAAADAgMAAQEGAQUBAAECCQYHAAEDDAgBAAEADwoLAQgBBBEKDAABBBMKDQABBBUKDgABBBcPEAABBRoAEQABAxsSEwEIAQQdFQEBCAEEHhYBAQgBAQQECQoJCxQMFAEGDAACBgwKAgEIAAEEAQsBAQkAAQoCAQgCBwYIAAsBAQQIAggCAggCCAIBCAMBBggAAQsEAQkAAQgFAQgGAQgHAgYIBQMBCAgBBQIFCwQBCQABCwQBCAkBCAkDBggHCwQBCQAICAMGCAYLBAEJAAMICAAGCAALBAEIAwgFCAYIBwgICwQBCAkIPFNFTEY+XzAEbWFpbgZvYmplY3QTY3JlYXRlX25hbWVkX29iamVjdA5Db25zdHJ1Y3RvclJlZgZvcHRpb24Ebm9uZQZPcHRpb24Gc3RyaW5nBHV0ZjgGU3RyaW5nFnByaW1hcnlfZnVuZ2libGVfc3RvcmUrY3JlYXRlX3ByaW1hcnlfc3RvcmVfZW5hYmxlZF9mdW5naWJsZV9hc3NldAhNZXRhZGF0YQ5mdW5naWJsZV9hc3NldBtvYmplY3RfZnJvbV9jb25zdHJ1Y3Rvcl9yZWYGT2JqZWN0EWdlbmVyYXRlX21pbnRfcmVmB01pbnRSZWYRZ2VuZXJhdGVfYnVybl9yZWYHQnVyblJlZhVnZW5lcmF0ZV90cmFuc2Zlcl9yZWYLVHJhbnNmZXJSZWYEbWludA1GdW5naWJsZUFzc2V0BnNpZ25lcgphZGRyZXNzX29mG2Vuc3VyZV9wcmltYXJ5X3N0b3JlX2V4aXN0cw1GdW5naWJsZVN0b3JlEGRlcG9zaXRfd2l0aF9yZWYJYnVybl9mcm9t//////////////////////////////////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQoCAwJGQQoCCAdGQSBDb2luCgIgH2h0dHBzOi8vZXhhbXBsZS5jb20vZmF2aWNvbi5pY28KAhQTaHR0cHM6Ly9leGFtcGxlLmNvbRRjb21waWxhdGlvbl9tZXRhZGF0YQkAAzIuMAMyLjEAABcwCgAHABEADAEOAQwCCgI4AAcBEQIHABECMQgHAhECBwMRAhEDCgI4AQwDCgIRBQwECgIRBgwFCwIRBwwGDgQGQEIPAAAAAAARCAwHCwARCQsDOAIMCA4GCggLBzgDDgULCAZAQg8AAAAAADgEAg==", "abi": { "name": "main", "visibility": "VISIBILITY_PUBLIC", @@ -228,7 +228,7 @@ "type": "TYPE_ED25519", "ed25519": { "publicKey": "KU08yl94iErSCo4VhF6tGWQYqvSaK1IjTD/4i/uoPSI=", - "signature": "Mk7QW4J1+RcAz61QMThGjn4sI6kbHXdvmEOPBXGhx8NtyL0jC+IFIfkiERIkK3ZYVLs5Lqiqnsw5jTIRwRApCg==" + "signature": "aUSZ9wsvCYvVQ4sCfni+UoUPbGH8CK0EwuCpTm6j+htWHiIboVyVcfb68UR/E0uk86Fy2SKO0xjP20lqLjWzBA==" } } }, diff --git a/ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/scripted_transactions/simple_user_script1.json b/ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/scripted_transactions/simple_user_script1.json index de02c06bbd815..9cbe412f0c3f5 100644 --- a/ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/scripted_transactions/simple_user_script1.json +++ b/ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/scripted_transactions/simple_user_script1.json @@ -1,17 +1,17 @@ { "timestamp": { - "seconds": "1737064572", - "nanos": 758978000 + "seconds": "1738275607", + "nanos": 421582000 }, - "version": "219", + "version": "193", "info": { - "hash": "2bz8FjyWxds3UjlX+5c07twTfFa3/+7wPQHdc9oY6B8=", - "stateChangeHash": "5SrNqse3ohrxqjBBNUER/Jfh63zz70I2b/+Lx8VKWzY=", + "hash": "kL94S3zy4IbtrJf4LWzck9NrKXrNZda9QAYW0nBx06k=", + "stateChangeHash": "ZvhmAFmQZEd4c9bXpF8Tn7yAtkAHLjJh/2I/kyNaDkg=", "eventRootHash": "J/kCueHhHqJXi8MVudrh82sOQ/pqY9TJ9VjLOdgel6I=", "gasUsed": "3", "success": true, "vmStatus": "Executed successfully", - "accumulatorRootHash": "WKD4zhKlQROJdi6jp+Z022ZQsp81zQAfrszTIQ6ur2I=", + "accumulatorRootHash": "5B32tEZGi0IVMCyxHtOVZvSICGJmTfOJweoRRyyZsUM=", "changes": [ { "type": "TYPE_WRITE_RESOURCE", @@ -68,7 +68,7 @@ ] }, "epoch": "3", - "blockHeight": "105", + "blockHeight": "92", "type": "TRANSACTION_TYPE_USER", "sizeInfo": { "transactionBytes": 279, @@ -99,7 +99,7 @@ "maxGasAmount": "4", "gasUnitPrice": "100", "expirationTimestampSecs": { - "seconds": "1737064603" + "seconds": "1738275637" }, "payload": { "type": "TYPE_SCRIPT_PAYLOAD", @@ -128,7 +128,7 @@ "type": "TYPE_ED25519", "ed25519": { "publicKey": "spiXXSfb/zAg5e5/27rYqWnU8qLVKG4JfR25dg0E3TE=", - "signature": "l3L1AxJogZc1uzH0uhpvydsBiXjYswlzdtU0/S90QyqDk1iq5n6PPwBhH/z/F/OI3KkovGxF8MPRxxrMf8JRBA==" + "signature": "n5u0DUhUCBC678OmHU+fcIvP7mzp04zXiOTRPK8f8EqV7Vy2uP0kAtzw9Ef5+l0G6n7T98UqeF2GL+1sZnSkCQ==" } } }, diff --git a/ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/scripted_transactions/simple_user_script2.json b/ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/scripted_transactions/simple_user_script2.json index a3aad42caede5..32c0dc24d5cce 100644 --- a/ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/scripted_transactions/simple_user_script2.json +++ b/ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/scripted_transactions/simple_user_script2.json @@ -1,17 +1,17 @@ { "timestamp": { - "seconds": "1737064588", - "nanos": 849799000 + "seconds": "1738275621", + "nanos": 304471000 }, - "version": "257", + "version": "227", "info": { - "hash": "n7kE3VaF1Mg+Q48JozggJzlpaxwD+xX3X+Qu4eCmyk0=", - "stateChangeHash": "o0ljf0k5tCRO1MwFkiiGVJNASqT2hgPZs6/qmXlmfi4=", + "hash": "9+iIDyUAf83ChAnwZFFU2U0V/Q/xmBSHDOu9YM1BKYE=", + "stateChangeHash": "u/QsEn0ws1rCGxMhQeCsoX5Emtg1qq4CzrNyP5RbuPo=", "eventRootHash": "J/kCueHhHqJXi8MVudrh82sOQ/pqY9TJ9VjLOdgel6I=", "gasUsed": "3", "success": true, "vmStatus": "Executed successfully", - "accumulatorRootHash": "mCBnBBkZ0b40LUlXgbqGKYycc8IiFTZtlGjjslFRHbQ=", + "accumulatorRootHash": "twXgvEgQpDOsT8cS8lbG/7lTnXRSUA1BbjIJ/G5dNLs=", "changes": [ { "type": "TYPE_WRITE_RESOURCE", @@ -68,7 +68,7 @@ ] }, "epoch": "3", - "blockHeight": "123", + "blockHeight": "108", "type": "TRANSACTION_TYPE_USER", "sizeInfo": { "transactionBytes": 279, @@ -100,7 +100,7 @@ "maxGasAmount": "4", "gasUnitPrice": "100", "expirationTimestampSecs": { - "seconds": "1737064619" + "seconds": "1738275651" }, "payload": { "type": "TYPE_SCRIPT_PAYLOAD", @@ -129,7 +129,7 @@ "type": "TYPE_ED25519", "ed25519": { "publicKey": "spiXXSfb/zAg5e5/27rYqWnU8qLVKG4JfR25dg0E3TE=", - "signature": "2Dxk9+YIK0w8UuF0Wf5g1hxt9atJeR8u4BecNBPSj/Mf02o560g+4eFJpOkS5Tsqs/WEc2ZM5yxVgcAcFJBYCQ==" + "signature": "4UZDteJKOnPUC2iLphJdD5uumNgSMZcATWSpnJFVoRK6hzpBF3NRcAN0LJ3wy7BrGcYN5zKfHiRnzVVEgmLbAw==" } } }, diff --git a/ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/scripted_transactions/simple_user_script3.json b/ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/scripted_transactions/simple_user_script3.json index 9114d2eb82aef..c803a7f9b6440 100644 --- a/ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/scripted_transactions/simple_user_script3.json +++ b/ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/scripted_transactions/simple_user_script3.json @@ -1,17 +1,17 @@ { "timestamp": { - "seconds": "1737064539", - "nanos": 789509000 + "seconds": "1738275579", + "nanos": 534321000 }, - "version": "141", + "version": "123", "info": { - "hash": "dnofXFDUunfWKjUKzjJSQYmMblCRSYfT42h03gjkWrs=", - "stateChangeHash": "Jb2ck2h6PXF3nlU4lOqv9GDInP2100rC3YayI3vxAI4=", + "hash": "nTODKMawnxn/Zz1WwOc7Cq1PiUQkHz+zs6a79D6eRyE=", + "stateChangeHash": "TYBafwCni/dXXYJ/YALbyDi/fYMAW6KzUpms2+zeQ5Y=", "eventRootHash": "J/kCueHhHqJXi8MVudrh82sOQ/pqY9TJ9VjLOdgel6I=", "gasUsed": "3", "success": true, "vmStatus": "Executed successfully", - "accumulatorRootHash": "/s+cU+SLKtmRA/sHuS4t9qHIsoF+rL7BIhboxRq+AOI=", + "accumulatorRootHash": "u/P/OmBxaGBSRMkzE86KJNEGL07R7rT+A4Ga+HA+BGo=", "changes": [ { "type": "TYPE_WRITE_RESOURCE", @@ -68,7 +68,7 @@ ] }, "epoch": "2", - "blockHeight": "68", + "blockHeight": "59", "type": "TRANSACTION_TYPE_USER", "sizeInfo": { "transactionBytes": 279, @@ -99,7 +99,7 @@ "maxGasAmount": "4", "gasUnitPrice": "100", "expirationTimestampSecs": { - "seconds": "1737064569" + "seconds": "1738275610" }, "payload": { "type": "TYPE_SCRIPT_PAYLOAD", @@ -128,7 +128,7 @@ "type": "TYPE_ED25519", "ed25519": { "publicKey": "ySyOe0Rn5inKjNIBohVk3jnup8vkW1m/038QtW4Kcow=", - "signature": "Rmu0epS1Vzlix74H7OTOfitI03m+H0AipkkE8le4iZrzlxJDb0E6cSANOeniRUAx/DoWUrHbtXNZdAI9AUkfBw==" + "signature": "QtzA7o2pbLAP30Zv5cSZuQlTUzadRURmgEs5GmbHRQ3N0ckFkCf31f2jUhzNso13x+a/jRdilpvYsn4OVxQRDg==" } } }, diff --git a/ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/scripted_transactions/simple_user_script4.json b/ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/scripted_transactions/simple_user_script4.json index 829f5ab10fcd4..cdfa3926b66ae 100644 --- a/ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/scripted_transactions/simple_user_script4.json +++ b/ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/scripted_transactions/simple_user_script4.json @@ -1,17 +1,17 @@ { "timestamp": { - "seconds": "1737064556", - "nanos": 708247000 + "seconds": "1738275593", + "nanos": 411387000 }, - "version": "181", + "version": "157", "info": { - "hash": "ub+aovjUFlh7ax9fj8RiGrz+KAnuOqqifHYq5IrdFiw=", - "stateChangeHash": "A00hAZ/Z/BIj28eNt1WXBu4zQ7tl8vHcYWox2neYVOA=", + "hash": "YHyOF+opW9CVXTLhxsAt3/ttzx2sdKumXTYFi5HeC4w=", + "stateChangeHash": "j+Ot+xnOaHnFab+aEiF7iV1bxP8F4poEeB5wb1kjpCw=", "eventRootHash": "J/kCueHhHqJXi8MVudrh82sOQ/pqY9TJ9VjLOdgel6I=", "gasUsed": "3", "success": true, "vmStatus": "Executed successfully", - "accumulatorRootHash": "aS6o0R209AyKHCNL1/2xEDynsQ224RfYKDIFGZ4NwNw=", + "accumulatorRootHash": "yCriHCi0o0JXy7DOXmmJOrPwrO8AqMnt+YlJXWi22xY=", "changes": [ { "type": "TYPE_WRITE_RESOURCE", @@ -68,7 +68,7 @@ ] }, "epoch": "3", - "blockHeight": "87", + "blockHeight": "75", "type": "TRANSACTION_TYPE_USER", "sizeInfo": { "transactionBytes": 279, @@ -99,7 +99,7 @@ "maxGasAmount": "4", "gasUnitPrice": "100", "expirationTimestampSecs": { - "seconds": "1737064587" + "seconds": "1738275623" }, "payload": { "type": "TYPE_SCRIPT_PAYLOAD", @@ -128,7 +128,7 @@ "type": "TYPE_ED25519", "ed25519": { "publicKey": "7wW+3hX0IuFsAALjzui01DQVGNmcRpU1KhhpsHeYZPs=", - "signature": "S3ZH56GcKPRlWec79GmC/SsXuwnicPmT7R4J/cqBkHoeAlfTIrr6HjzQ+ts0tZT6Fhzvlcn+jWZMcf9xC0hjAw==" + "signature": "8Ixsp3gNk7N9lEV2qzFqHcYR2IzTzQg4BkPkuZRm3y/zOVaV6kQUSxdQg1fSv4acO+Y4Maidvc6H3VfYolQfDw==" } } }, diff --git a/ecosystem/indexer-grpc/indexer-transaction-generator/imported_transactions/imported_transactions.yaml b/ecosystem/indexer-grpc/indexer-transaction-generator/imported_transactions/imported_transactions.yaml index 6f9f617ef0454..49b756e6c1f3f 100644 --- a/ecosystem/indexer-grpc/indexer-transaction-generator/imported_transactions/imported_transactions.yaml +++ b/ecosystem/indexer-grpc/indexer-transaction-generator/imported_transactions/imported_transactions.yaml @@ -94,4 +94,7 @@ mainnet: # account restoration processor 2200077591: 2200077591_account_restoration_single_ed25519 2200077877: 2200077877_account_restoration_rotated_to_single_secp256k1 - 2200077800: 2200077800_account_restoration_rotated_to_multi_key \ No newline at end of file + 2200077800: 2200077800_account_restoration_rotated_to_multi_key + + # events processor + 554229017: 554229017_events_with_no_event_size_info \ No newline at end of file diff --git a/ecosystem/indexer-grpc/indexer-transaction-generator/imported_transactions/move_fixtures/fa_double_transfer/script.mv b/ecosystem/indexer-grpc/indexer-transaction-generator/imported_transactions/move_fixtures/fa_double_transfer/script.mv index 62b6d0db00bac2a274e09f6b8689653a779e0713..431de5c35416937f9f50bac2adb1aa305efc7890 100644 GIT binary patch delta 56 zcmcc0agk$!q);;>dmmF5Gsg^82euom{fq+7Cu;u^W9MLC<6z)sVdP-uVC7)rU Date: Thu, 30 Jan 2025 23:05:26 -0800 Subject: [PATCH 21/30] add edge cases for indexer fa and token-v2 tests (#15782) ## Description ## How Has This Been Tested? ## Key Areas to Review ## Type of Change - [ ] New feature - [ ] Bug fix - [ ] Breaking change - [ ] Performance improvement - [ ] Refactoring - [ ] Dependency update - [ ] Documentation update - [ ] Tests ## Which Components or Systems Does This Change Impact? - [ ] Validator Node - [ ] Full Node (API, Indexer, etc.) - [ ] Move/Aptos Virtual Machine - [ ] Aptos Framework - [ ] Aptos CLI/SDK - [ ] Developer Infrastructure - [ ] Move Compiler - [ ] Other (specify) ## Checklist - [ ] I have read and followed the [CONTRIBUTING](https://github.com/aptos-labs/aptos-core/blob/main/CONTRIBUTING.md) doc - [ ] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I identified and added all stakeholders and component owners affected by this change as reviewers - [ ] I tested both happy and unhappy path of the functionality - [ ] I have made corresponding changes to the documentation --- .../generated_transactions.rs | 32 + .../144201980_multiple_transfer_event.json | 289 + .../1737056775_coin_transfer_burn_event.json | 1794 ++ .../255894550_storage_refund.json | 23 + .../445585423_token_mint_and_burn_event.json | 24125 ++++++++++++++++ .../550582915_multiple_transfer_event.json | 684 + .../imported_transactions.yaml | 4 + 7 files changed, 26951 insertions(+) create mode 100644 ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/imported_mainnet_txns/144201980_multiple_transfer_event.json create mode 100644 ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/imported_mainnet_txns/1737056775_coin_transfer_burn_event.json create mode 100644 ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/imported_mainnet_txns/255894550_storage_refund.json create mode 100644 ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/imported_mainnet_txns/445585423_token_mint_and_burn_event.json create mode 100644 ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/imported_mainnet_txns/550582915_multiple_transfer_event.json diff --git a/ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/generated_transactions.rs b/ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/generated_transactions.rs index 61d86faa9fa6e..f9aa396cd2fbe 100644 --- a/ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/generated_transactions.rs +++ b/ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/generated_transactions.rs @@ -74,6 +74,11 @@ pub const IMPORTED_MAINNET_TXNS_2212040150_TRANSACTION_WITHOUT_EVENTS: &[u8] = "/src/json_transactions/imported_mainnet_txns/2212040150_transaction_without_events.json" )); +pub const IMPORTED_MAINNET_TXNS_550582915_MULTIPLE_TRANSFER_EVENT: &[u8] = include_bytes!(concat!( + env!("CARGO_MANIFEST_DIR"), + "/src/json_transactions/imported_mainnet_txns/550582915_multiple_transfer_event.json" +)); + pub const IMPORTED_MAINNET_TXNS_464961735_USER_TXN_SINGLE_KEY_ED25519: &[u8] = include_bytes!(concat!( env!("CARGO_MANIFEST_DIR"), @@ -104,6 +109,11 @@ pub const IMPORTED_MAINNET_TXNS_124094774_DELEGATED_POOL_BALANCE: &[u8] = includ "/src/json_transactions/imported_mainnet_txns/124094774_delegated_pool_balance.json" )); +pub const IMPORTED_MAINNET_TXNS_144201980_MULTIPLE_TRANSFER_EVENT: &[u8] = include_bytes!(concat!( + env!("CARGO_MANIFEST_DIR"), + "/src/json_transactions/imported_mainnet_txns/144201980_multiple_transfer_event.json" +)); + pub const IMPORTED_MAINNET_TXNS_97963136_TOKEN_V2_CANCEL_OFFER: &[u8] = include_bytes!(concat!( env!("CARGO_MANIFEST_DIR"), "/src/json_transactions/imported_mainnet_txns/97963136_token_v2_cancel_offer.json" @@ -162,6 +172,11 @@ pub const IMPORTED_MAINNET_TXNS_578366445_TOKEN_V2_BURN_EVENT_V2: &[u8] = includ pub const IMPORTED_MAINNET_TXNS_325355235_TOKEN_V2_UNLIMITED_SUPPLY_MINT: &[u8] = include_bytes!(concat!(env!("CARGO_MANIFEST_DIR"), "/src/json_transactions/imported_mainnet_txns/325355235_token_v2_unlimited_supply_mint.json")); +pub const IMPORTED_MAINNET_TXNS_255894550_STORAGE_REFUND: &[u8] = include_bytes!(concat!( + env!("CARGO_MANIFEST_DIR"), + "/src/json_transactions/imported_mainnet_txns/255894550_storage_refund.json" +)); + pub const IMPORTED_MAINNET_TXNS_551057865_USER_TXN_SINGLE_SENDER_WEBAUTH: &[u8] = include_bytes!(concat!(env!("CARGO_MANIFEST_DIR"), "/src/json_transactions/imported_mainnet_txns/551057865_user_txn_single_sender_webauth.json")); pub const IMPORTED_MAINNET_TXNS_84023785_TOKEN_V2_CLAIM_OFFER: &[u8] = include_bytes!(concat!( @@ -176,6 +191,12 @@ pub const IMPORTED_MAINNET_TXNS_141135867_TOKEN_V1_OFFER: &[u8] = include_bytes! pub const IMPORTED_MAINNET_TXNS_976087151_USER_TXN_SINGLE_SENDER_KEYLESS: &[u8] = include_bytes!(concat!(env!("CARGO_MANIFEST_DIR"), "/src/json_transactions/imported_mainnet_txns/976087151_user_txn_single_sender_keyless.json")); +pub const IMPORTED_MAINNET_TXNS_1737056775_COIN_TRANSFER_BURN_EVENT: &[u8] = + include_bytes!(concat!( + env!("CARGO_MANIFEST_DIR"), + "/src/json_transactions/imported_mainnet_txns/1737056775_coin_transfer_burn_event.json" + )); + pub const IMPORTED_MAINNET_TXNS_2080538_ANS_LOOKUP_V1: &[u8] = include_bytes!(concat!( env!("CARGO_MANIFEST_DIR"), "/src/json_transactions/imported_mainnet_txns/2080538_ans_lookup_v1.json" @@ -204,6 +225,12 @@ pub const IMPORTED_MAINNET_TXNS_1080786089_TOKEN_V2_BURN_EVENT_V1: &[u8] = inclu "/src/json_transactions/imported_mainnet_txns/1080786089_token_v2_burn_event_v1.json" )); +pub const IMPORTED_MAINNET_TXNS_445585423_TOKEN_MINT_AND_BURN_EVENT: &[u8] = + include_bytes!(concat!( + env!("CARGO_MANIFEST_DIR"), + "/src/json_transactions/imported_mainnet_txns/445585423_token_mint_and_burn_event.json" + )); + pub const IMPORTED_MAINNET_TXNS_967255533_TOKEN_V2_MUTATION_EVENT: &[u8] = include_bytes!(concat!( env!("CARGO_MANIFEST_DIR"), "/src/json_transactions/imported_mainnet_txns/967255533_token_v2_mutation_event.json" @@ -255,12 +282,14 @@ pub const ALL_IMPORTED_MAINNET_TXNS: &[&[u8]] = &[ IMPORTED_MAINNET_TXNS_1056780409_ANS_CURRENT_ANS_PRIMARY_NAME_V2, IMPORTED_MAINNET_TXNS_2200077591_ACCOUNT_RESTORATION_SINGLE_ED25519, IMPORTED_MAINNET_TXNS_2212040150_TRANSACTION_WITHOUT_EVENTS, + IMPORTED_MAINNET_TXNS_550582915_MULTIPLE_TRANSFER_EVENT, IMPORTED_MAINNET_TXNS_464961735_USER_TXN_SINGLE_KEY_ED25519, IMPORTED_MAINNET_TXNS_438536688_ANS_CURRENT_ANS_LOOKUP_V2, IMPORTED_MAINNET_TXNS_578318306_OBJECTS_WRITE_RESOURCE, IMPORTED_MAINNET_TXNS_999930475_TOKEN_V2_CONCURRENT_MINT, IMPORTED_MAINNET_TXNS_554229017_EVENTS_WITH_NO_EVENT_SIZE_INFO, IMPORTED_MAINNET_TXNS_124094774_DELEGATED_POOL_BALANCE, + IMPORTED_MAINNET_TXNS_144201980_MULTIPLE_TRANSFER_EVENT, IMPORTED_MAINNET_TXNS_97963136_TOKEN_V2_CANCEL_OFFER, IMPORTED_MAINNET_TXNS_152449628_COIN_INFO_WRITE, IMPORTED_MAINNET_TXNS_602320562_TOKEN_V2_APTOS_TOKEN_MINT, @@ -273,16 +302,19 @@ pub const ALL_IMPORTED_MAINNET_TXNS: &[&[u8]] = &[ IMPORTED_MAINNET_TXNS_1806220919_OBJECT_UNTRANSFERABLE, IMPORTED_MAINNET_TXNS_578366445_TOKEN_V2_BURN_EVENT_V2, IMPORTED_MAINNET_TXNS_325355235_TOKEN_V2_UNLIMITED_SUPPLY_MINT, + IMPORTED_MAINNET_TXNS_255894550_STORAGE_REFUND, IMPORTED_MAINNET_TXNS_551057865_USER_TXN_SINGLE_SENDER_WEBAUTH, IMPORTED_MAINNET_TXNS_84023785_TOKEN_V2_CLAIM_OFFER, IMPORTED_MAINNET_TXNS_141135867_TOKEN_V1_OFFER, IMPORTED_MAINNET_TXNS_976087151_USER_TXN_SINGLE_SENDER_KEYLESS, + IMPORTED_MAINNET_TXNS_1737056775_COIN_TRANSFER_BURN_EVENT, IMPORTED_MAINNET_TXNS_2080538_ANS_LOOKUP_V1, IMPORTED_MAINNET_TXNS_139449359_STAKE_REACTIVATE, IMPORTED_MAINNET_TXNS_308783012_FA_TRANSFER, IMPORTED_MAINNET_TXNS_2186504987_COIN_STORE_DELETION_NO_EVENT, IMPORTED_MAINNET_TXNS_453498957_TOKEN_V2_MINT_AND_TRANSFER_EVENT_V1, IMPORTED_MAINNET_TXNS_1080786089_TOKEN_V2_BURN_EVENT_V1, + IMPORTED_MAINNET_TXNS_445585423_TOKEN_MINT_AND_BURN_EVENT, IMPORTED_MAINNET_TXNS_967255533_TOKEN_V2_MUTATION_EVENT, IMPORTED_MAINNET_TXNS_407418623_USER_TXN_SINGLE_KEY_SECP256K1_ECDSA, IMPORTED_MAINNET_TXNS_537250181_TOKEN_V2_FIXED_SUPPLY_MINT, diff --git a/ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/imported_mainnet_txns/144201980_multiple_transfer_event.json b/ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/imported_mainnet_txns/144201980_multiple_transfer_event.json new file mode 100644 index 0000000000000..f9696bb3f6a8c --- /dev/null +++ b/ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/imported_mainnet_txns/144201980_multiple_transfer_event.json @@ -0,0 +1,289 @@ +{ + "timestamp": { + "seconds": "1684512029", + "nanos": 792806000 + }, + "version": "144201980", + "info": { + "hash": "6Y8fhGO0E/Dech2Gl2dz7Ls7rDyXMblMsh3vkcWl6XM=", + "stateChangeHash": "eBKQ8xRnOjMvxu/cBrfwsdO9zXAVQGpfaQpsJeliw4c=", + "eventRootHash": "59VkKYjbPJ90LTB8+BIWMj0X1Gp4Bla0tlElsZhUL9Q=", + "gasUsed": "519", + "success": true, + "vmStatus": "Executed successfully", + "accumulatorRootHash": "g7r6eVIWwdr6AHRdL27LP+aMJE4AHW6nbORMzAkTFVM=", + "changes": [ + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x139e21974cb4ee185b95708bebd571d77cec25e51df5ebd242712ed09bda8ca4", + "stateKeyHash": "0fqoHjpri2GVyqdXW3M7JE7QxDLnmJbI/Ygji1uj/Eg=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":false,\"guid_creation_num\":\"1125899906842628\",\"owner\":\"0x239589c5cfb0cc96f76fa59165a7cbb6ef99ad50d0acc34cf3a2585d861511be\",\"transfer_events\":{\"counter\":\"0\",\"guid\":{\"id\":{\"addr\":\"0x139e21974cb4ee185b95708bebd571d77cec25e51df5ebd242712ed09bda8ca4\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x139e21974cb4ee185b95708bebd571d77cec25e51df5ebd242712ed09bda8ca4", + "stateKeyHash": "0fqoHjpri2GVyqdXW3M7JE7QxDLnmJbI/Ygji1uj/Eg=", + "type": { + "address": "0x4", + "module": "aptos_token", + "name": "AptosCollection" + }, + "typeStr": "0x4::aptos_token::AptosCollection", + "data": "{\"mutable_description\":true,\"mutable_token_description\":true,\"mutable_token_name\":true,\"mutable_token_properties\":true,\"mutable_token_uri\":true,\"mutable_uri\":true,\"mutator_ref\":{\"vec\":[{\"self\":\"0x139e21974cb4ee185b95708bebd571d77cec25e51df5ebd242712ed09bda8ca4\"}]},\"royalty_mutator_ref\":{\"vec\":[{\"inner\":{\"self\":\"0x139e21974cb4ee185b95708bebd571d77cec25e51df5ebd242712ed09bda8ca4\"}}]},\"tokens_burnable_by_creator\":true,\"tokens_freezable_by_creator\":true}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x139e21974cb4ee185b95708bebd571d77cec25e51df5ebd242712ed09bda8ca4", + "stateKeyHash": "0fqoHjpri2GVyqdXW3M7JE7QxDLnmJbI/Ygji1uj/Eg=", + "type": { + "address": "0x4", + "module": "collection", + "name": "Collection" + }, + "typeStr": "0x4::collection::Collection", + "data": "{\"creator\":\"0x239589c5cfb0cc96f76fa59165a7cbb6ef99ad50d0acc34cf3a2585d861511be\",\"description\":\"A collection of explorers looking to have fun and make an impact in Web3\",\"mutation_events\":{\"counter\":\"0\",\"guid\":{\"id\":{\"addr\":\"0x139e21974cb4ee185b95708bebd571d77cec25e51df5ebd242712ed09bda8ca4\",\"creation_num\":\"1125899906842627\"}}},\"name\":\"inAptos\",\"uri\":\"https://aptoslabs.com\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x139e21974cb4ee185b95708bebd571d77cec25e51df5ebd242712ed09bda8ca4", + "stateKeyHash": "0fqoHjpri2GVyqdXW3M7JE7QxDLnmJbI/Ygji1uj/Eg=", + "type": { + "address": "0x4", + "module": "collection", + "name": "FixedSupply" + }, + "typeStr": "0x4::collection::FixedSupply", + "data": "{\"burn_events\":{\"counter\":\"0\",\"guid\":{\"id\":{\"addr\":\"0x139e21974cb4ee185b95708bebd571d77cec25e51df5ebd242712ed09bda8ca4\",\"creation_num\":\"1125899906842625\"}}},\"current_supply\":\"25\",\"max_supply\":\"250\",\"mint_events\":{\"counter\":\"25\",\"guid\":{\"id\":{\"addr\":\"0x139e21974cb4ee185b95708bebd571d77cec25e51df5ebd242712ed09bda8ca4\",\"creation_num\":\"1125899906842626\"}}},\"total_minted\":\"25\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x139e21974cb4ee185b95708bebd571d77cec25e51df5ebd242712ed09bda8ca4", + "stateKeyHash": "0fqoHjpri2GVyqdXW3M7JE7QxDLnmJbI/Ygji1uj/Eg=", + "type": { + "address": "0x4", + "module": "royalty", + "name": "Royalty" + }, + "typeStr": "0x4::royalty::Royalty", + "data": "{\"denominator\":\"1\",\"numerator\":\"0\",\"payee_address\":\"0x239589c5cfb0cc96f76fa59165a7cbb6ef99ad50d0acc34cf3a2585d861511be\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x239589c5cfb0cc96f76fa59165a7cbb6ef99ad50d0acc34cf3a2585d861511be", + "stateKeyHash": "rclYQmiV4FSml86GY2XcHPHdIr20Er+HAZU9y70cCQ4=", + "type": { + "address": "0x1", + "module": "coin", + "name": "CoinStore", + "genericTypeParams": [ + { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "aptos_coin", + "name": "AptosCoin" + } + } + ] + }, + "typeStr": "0x1::coin::CoinStore<0x1::aptos_coin::AptosCoin>", + "data": "{\"coin\":{\"value\":\"49668276091\"},\"deposit_events\":{\"counter\":\"51\",\"guid\":{\"id\":{\"addr\":\"0x239589c5cfb0cc96f76fa59165a7cbb6ef99ad50d0acc34cf3a2585d861511be\",\"creation_num\":\"2\"}}},\"frozen\":false,\"withdraw_events\":{\"counter\":\"1472\",\"guid\":{\"id\":{\"addr\":\"0x239589c5cfb0cc96f76fa59165a7cbb6ef99ad50d0acc34cf3a2585d861511be\",\"creation_num\":\"3\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x239589c5cfb0cc96f76fa59165a7cbb6ef99ad50d0acc34cf3a2585d861511be", + "stateKeyHash": "aIi4RE1qHalCgB7I8U0scp14QU4cCHcVP7g8OIuKR+M=", + "type": { + "address": "0x1", + "module": "account", + "name": "Account" + }, + "typeStr": "0x1::account::Account", + "data": "{\"authentication_key\":\"0x239589c5cfb0cc96f76fa59165a7cbb6ef99ad50d0acc34cf3a2585d861511be\",\"coin_register_events\":{\"counter\":\"7\",\"guid\":{\"id\":{\"addr\":\"0x239589c5cfb0cc96f76fa59165a7cbb6ef99ad50d0acc34cf3a2585d861511be\",\"creation_num\":\"0\"}}},\"guid_creation_num\":\"127\",\"key_rotation_events\":{\"counter\":\"0\",\"guid\":{\"id\":{\"addr\":\"0x239589c5cfb0cc96f76fa59165a7cbb6ef99ad50d0acc34cf3a2585d861511be\",\"creation_num\":\"1\"}}},\"rotation_capability_offer\":{\"for\":{\"vec\":[]}},\"sequence_number\":\"1407\",\"signer_capability_offer\":{\"for\":{\"vec\":[]}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x6dcf114ade1d8b9b813295783ac3cb379ec73406f54f5fa1b7086ebdf9748010", + "stateKeyHash": "xxZxedMTCZkucuspOLVj1qbTGJKVNpcx3pg9+pB/2Lo=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0x239589c5cfb0cc96f76fa59165a7cbb6ef99ad50d0acc34cf3a2585d861511be\",\"transfer_events\":{\"counter\":\"0\",\"guid\":{\"id\":{\"addr\":\"0x6dcf114ade1d8b9b813295783ac3cb379ec73406f54f5fa1b7086ebdf9748010\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x6dcf114ade1d8b9b813295783ac3cb379ec73406f54f5fa1b7086ebdf9748010", + "stateKeyHash": "xxZxedMTCZkucuspOLVj1qbTGJKVNpcx3pg9+pB/2Lo=", + "type": { + "address": "0x4", + "module": "aptos_token", + "name": "AptosToken" + }, + "typeStr": "0x4::aptos_token::AptosToken", + "data": "{\"burn_ref\":{\"vec\":[{\"inner\":{\"vec\":[{\"self\":\"0x6dcf114ade1d8b9b813295783ac3cb379ec73406f54f5fa1b7086ebdf9748010\"}]},\"self\":{\"vec\":[]}}]},\"mutator_ref\":{\"vec\":[{\"self\":\"0x6dcf114ade1d8b9b813295783ac3cb379ec73406f54f5fa1b7086ebdf9748010\"}]},\"property_mutator_ref\":{\"self\":\"0x6dcf114ade1d8b9b813295783ac3cb379ec73406f54f5fa1b7086ebdf9748010\"},\"transfer_ref\":{\"vec\":[{\"self\":\"0x6dcf114ade1d8b9b813295783ac3cb379ec73406f54f5fa1b7086ebdf9748010\"}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x6dcf114ade1d8b9b813295783ac3cb379ec73406f54f5fa1b7086ebdf9748010", + "stateKeyHash": "xxZxedMTCZkucuspOLVj1qbTGJKVNpcx3pg9+pB/2Lo=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x6dcf114ade1d8b9b813295783ac3cb379ec73406f54f5fa1b7086ebdf9748010", + "stateKeyHash": "xxZxedMTCZkucuspOLVj1qbTGJKVNpcx3pg9+pB/2Lo=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0x139e21974cb4ee185b95708bebd571d77cec25e51df5ebd242712ed09bda8ca4\"},\"description\":\"Undefined\",\"index\":\"25\",\"mutation_events\":{\"counter\":\"0\",\"guid\":{\"id\":{\"addr\":\"0x6dcf114ade1d8b9b813295783ac3cb379ec73406f54f5fa1b7086ebdf9748010\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"Brian M\",\"uri\":\"https://slack-files.com/T032LMSJ0T0-F058LQWHE68-e0e180126f\"}" + } + }, + { + "type": "TYPE_WRITE_TABLE_ITEM", + "writeTableItem": { + "stateKeyHash": "bkso1A+YoQamUWNTCSTA3LQME0nTqpFdEItNbPwd2xk=", + "handle": "0x1b854694ae746cdbd8d44186ca4929b2b337df21d1c74633be19b2710552fdca", + "key": "0x0619dc29a0aac8fa146714058e8dd6d2d0f3bdf5f6331907bf91f3acd81e6935", + "data": { + "key": "\"0x619dc29a0aac8fa146714058e8dd6d2d0f3bdf5f6331907bf91f3acd81e6935\"", + "keyType": "address", + "value": "\"103518140538888838\"", + "valueType": "u128" + } + } + } + ] + }, + "epoch": "2631", + "blockHeight": "56059806", + "type": "TRANSACTION_TYPE_USER", + "sizeInfo": { + "transactionBytes": 312, + "eventSizeInfo": [ + { + "typeTagBytes": 55, + "totalBytes": 143 + } + ], + "writeOpSizeInfo": [ + { + "keyBytes": 87, + "valueBytes": 793 + }, + { + "keyBytes": 138, + "valueBytes": 105 + }, + { + "keyBytes": 84, + "valueBytes": 147 + }, + { + "keyBytes": 87, + "valueBytes": 605 + }, + { + "keyBytes": 66, + "valueBytes": 16 + } + ] + }, + "user": { + "request": { + "sender": "0x239589c5cfb0cc96f76fa59165a7cbb6ef99ad50d0acc34cf3a2585d861511be", + "sequenceNumber": "1406", + "maxGasAmount": "100000", + "gasUnitPrice": "100", + "expirationTimestampSecs": { + "seconds": "1684512628" + }, + "payload": { + "type": "TYPE_ENTRY_FUNCTION_PAYLOAD", + "entryFunctionPayload": { + "function": { + "module": { + "address": "0x4", + "name": "aptos_token" + }, + "name": "mint" + }, + "arguments": [ + "\"inAptos\"", + "\"Undefined\"", + "\"Brian M\"", + "\"https://slack-files.com/T032LMSJ0T0-F058LQWHE68-e0e180126f\"", + "[]", + "[]", + "[]" + ], + "entryFunctionIdStr": "0x4::aptos_token::mint" + } + }, + "signature": { + "type": "TYPE_ED25519", + "ed25519": { + "publicKey": "Y1C/ur0fC4p72zXGiBgZ2eAObAywaypZmO42BRbCSXU=", + "signature": "xZ3+elgu0E/ACiNwgNmk16yc3zOwl/uuXzoUD7znaLwNxgGxlX8txy3WqUPBF5CbxqXlqVOklUy+IOD6+MaqBw==" + } + } + }, + "events": [ + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0x139e21974cb4ee185b95708bebd571d77cec25e51df5ebd242712ed09bda8ca4" + }, + "sequenceNumber": "24", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"25\",\"token\":\"0x6dcf114ade1d8b9b813295783ac3cb379ec73406f54f5fa1b7086ebdf9748010\"}" + } + ] + } +} \ No newline at end of file diff --git a/ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/imported_mainnet_txns/1737056775_coin_transfer_burn_event.json b/ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/imported_mainnet_txns/1737056775_coin_transfer_burn_event.json new file mode 100644 index 0000000000000..6f4116246e34c --- /dev/null +++ b/ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/imported_mainnet_txns/1737056775_coin_transfer_burn_event.json @@ -0,0 +1,1794 @@ +{ + "timestamp": { + "seconds": "1727585548", + "nanos": 455357000 + }, + "version": "1737056775", + "info": { + "hash": "5zU/2fOguaG85Hu47/n+vO24MHcWfzEM46lkDplxf9o=", + "stateChangeHash": "lNqS1Zp6gwkHnXa4m9J4tfa35CfwV7NzrqpjGPzIHzU=", + "eventRootHash": "6GB3cD/dt2+wsHv5CH9E3K+AhwzZquASd7rSS5AvRf8=", + "gasUsed": "7742", + "success": true, + "vmStatus": "Executed successfully", + "accumulatorRootHash": "vAYX9PoMYeKsYoaIzc4p2vFitiGdX1jpdj1ezmJntWc=", + "changes": [ + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x23f012877d031cb49f2ef943e982fd92b9ca442e767755565af35174c42c7576", + "stateKeyHash": "+lC7Dkdio6XOhDolxmE6qFUfjCMv3mw5haUtMJI63u4=", + "type": { + "address": "0x1", + "module": "coin", + "name": "CoinStore", + "genericTypeParams": [ + { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "aptos_coin", + "name": "AptosCoin" + } + } + ] + }, + "typeStr": "0x1::coin::CoinStore<0x1::aptos_coin::AptosCoin>", + "data": "{\"coin\":{\"value\":\"108852914\"},\"deposit_events\":{\"counter\":\"14\",\"guid\":{\"id\":{\"addr\":\"0x23f012877d031cb49f2ef943e982fd92b9ca442e767755565af35174c42c7576\",\"creation_num\":\"2\"}}},\"frozen\":false,\"withdraw_events\":{\"counter\":\"18\",\"guid\":{\"id\":{\"addr\":\"0x23f012877d031cb49f2ef943e982fd92b9ca442e767755565af35174c42c7576\",\"creation_num\":\"3\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x23f012877d031cb49f2ef943e982fd92b9ca442e767755565af35174c42c7576", + "stateKeyHash": "smymGqtTnIAaEAcbvKDDX57S2ePi6uSN5I8OwFfKRn0=", + "type": { + "address": "0x1", + "module": "account", + "name": "Account" + }, + "typeStr": "0x1::account::Account", + "data": "{\"authentication_key\":\"0x23f012877d031cb49f2ef943e982fd92b9ca442e767755565af35174c42c7576\",\"coin_register_events\":{\"counter\":\"6\",\"guid\":{\"id\":{\"addr\":\"0x23f012877d031cb49f2ef943e982fd92b9ca442e767755565af35174c42c7576\",\"creation_num\":\"0\"}}},\"guid_creation_num\":\"27\",\"key_rotation_events\":{\"counter\":\"0\",\"guid\":{\"id\":{\"addr\":\"0x23f012877d031cb49f2ef943e982fd92b9ca442e767755565af35174c42c7576\",\"creation_num\":\"1\"}}},\"rotation_capability_offer\":{\"for\":{\"vec\":[]}},\"sequence_number\":\"49\",\"signer_capability_offer\":{\"for\":{\"vec\":[]}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x2745a79598f1994359c876b889f0bc2d9f4f067598fb38fcb87c6f29bf353c4e", + "stateKeyHash": "bJYjI/oO3XFwED/WAcYnjzNnK7nlLI0tXR2M3ANE9u4=", + "type": { + "address": "0xd85adb3c424c398d5017ad1d20b63ce8b3373a651a484ff2b473aa93d3357296", + "module": "studio", + "name": "Type" + }, + "typeStr": "0xd85adb3c424c398d5017ad1d20b63ce8b3373a651a484ff2b473aa93d3357296::studio::Type", + "data": "{\"name\":\"Badge\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x2745a79598f1994359c876b889f0bc2d9f4f067598fb38fcb87c6f29bf353c4e", + "stateKeyHash": "r1TEzb2gTE2O4ygeqjTCbiIsM3UZf8h01Q5+cGxJscE=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0x23f012877d031cb49f2ef943e982fd92b9ca442e767755565af35174c42c7576\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0x2745a79598f1994359c876b889f0bc2d9f4f067598fb38fcb87c6f29bf353c4e\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x2745a79598f1994359c876b889f0bc2d9f4f067598fb38fcb87c6f29bf353c4e", + "stateKeyHash": "r1TEzb2gTE2O4ygeqjTCbiIsM3UZf8h01Q5+cGxJscE=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x2745a79598f1994359c876b889f0bc2d9f4f067598fb38fcb87c6f29bf353c4e", + "stateKeyHash": "r1TEzb2gTE2O4ygeqjTCbiIsM3UZf8h01Q5+cGxJscE=", + "type": { + "address": "0x4", + "module": "royalty", + "name": "Royalty" + }, + "typeStr": "0x4::royalty::Royalty", + "data": "{\"denominator\":\"20\",\"numerator\":\"1\",\"payee_address\":\"0x7bc33fea1f7f5e7dc023c5cb041d0aadd664c8f738f619829095c19a9cc34e0\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x2745a79598f1994359c876b889f0bc2d9f4f067598fb38fcb87c6f29bf353c4e", + "stateKeyHash": "r1TEzb2gTE2O4ygeqjTCbiIsM3UZf8h01Q5+cGxJscE=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xd82f5841196bf66232316dc61188947583f418346b72758c0f45827cc5838617\"},\"description\":\"CTO badge\",\"index\":\"0\",\"mutation_events\":{\"counter\":\"0\",\"guid\":{\"id\":{\"addr\":\"0x2745a79598f1994359c876b889f0bc2d9f4f067598fb38fcb87c6f29bf353c4e\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"\",\"uri\":\"https://bafybeidczv6obpjiky2iircpdpqa4jqn3flzjfbf454in6abmjrnlyekdm.ipfs.w3s.link/CTO%20badge.png\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x2745a79598f1994359c876b889f0bc2d9f4f067598fb38fcb87c6f29bf353c4e", + "stateKeyHash": "r1TEzb2gTE2O4ygeqjTCbiIsM3UZf8h01Q5+cGxJscE=", + "type": { + "address": "0x4", + "module": "token", + "name": "TokenIdentifiers" + }, + "typeStr": "0x4::token::TokenIdentifiers", + "data": "{\"index\":{\"value\":\"18220\"},\"name\":{\"padding\":\"0x000000000000\",\"value\":\"CTO badge #190\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x2745a79598f1994359c876b889f0bc2d9f4f067598fb38fcb87c6f29bf353c4e", + "stateKeyHash": "r1TEzb2gTE2O4ygeqjTCbiIsM3UZf8h01Q5+cGxJscE=", + "type": { + "address": "0x5ca749c835f44a9a9ff3fb0bec1f8e4f25ee09b424f62058c561ca41ec6bb146", + "module": "token_components", + "name": "TokenRefs" + }, + "typeStr": "0x5ca749c835f44a9a9ff3fb0bec1f8e4f25ee09b424f62058c561ca41ec6bb146::token_components::TokenRefs", + "data": "{\"burn_ref\":{\"vec\":[{\"inner\":{\"vec\":[]},\"self\":{\"vec\":[\"0x2745a79598f1994359c876b889f0bc2d9f4f067598fb38fcb87c6f29bf353c4e\"]}}]},\"extend_ref\":{\"vec\":[{\"self\":\"0x2745a79598f1994359c876b889f0bc2d9f4f067598fb38fcb87c6f29bf353c4e\"}]},\"mutator_ref\":{\"vec\":[{\"self\":\"0x2745a79598f1994359c876b889f0bc2d9f4f067598fb38fcb87c6f29bf353c4e\"}]},\"property_mutator_ref\":{\"vec\":[{\"self\":\"0x2745a79598f1994359c876b889f0bc2d9f4f067598fb38fcb87c6f29bf353c4e\"}]},\"transfer_ref\":{\"vec\":[{\"self\":\"0x2745a79598f1994359c876b889f0bc2d9f4f067598fb38fcb87c6f29bf353c4e\"}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x2745a79598f1994359c876b889f0bc2d9f4f067598fb38fcb87c6f29bf353c4e", + "stateKeyHash": "r1TEzb2gTE2O4ygeqjTCbiIsM3UZf8h01Q5+cGxJscE=", + "type": { + "address": "0xd758b832d4d8fcad58ac7363a6b87af342a6e0dfd25897aa65233c606526e8f4", + "module": "composable_token", + "name": "Trait" + }, + "typeStr": "0xd758b832d4d8fcad58ac7363a6b87af342a6e0dfd25897aa65233c606526e8f4::composable_token::Trait", + "data": "{\"digital_assets\":[],\"index\":\"0\",\"mutator_ref\":{\"self\":\"0x2745a79598f1994359c876b889f0bc2d9f4f067598fb38fcb87c6f29bf353c4e\"},\"parent\":{\"vec\":[]},\"transfer_ref\":{\"self\":\"0x2745a79598f1994359c876b889f0bc2d9f4f067598fb38fcb87c6f29bf353c4e\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x3e283e49688122126bc25b2c643f4fd31bf63b23d8bebd305c2366e9cd450219", + "stateKeyHash": "OCVL2orKLVuj2YHACEN2ZcFaFA1ITymLvDayn8fmtjw=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0x23f012877d031cb49f2ef943e982fd92b9ca442e767755565af35174c42c7576\",\"transfer_events\":{\"counter\":\"5\",\"guid\":{\"id\":{\"addr\":\"0x3e283e49688122126bc25b2c643f4fd31bf63b23d8bebd305c2366e9cd450219\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x53858a7a4b6faf7cb2d198efe80351abc658d9cefcd2e95587f3d473cc90a041", + "stateKeyHash": "q/80RI2NzVC9N0hKO9BJn+vhpm3+zluvig5Rj8wUc8w=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":false,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0x7bc33fea1f7f5e7dc023c5cb041d0aadd664c8f738f619829095c19a9cc34e0\",\"transfer_events\":{\"counter\":\"0\",\"guid\":{\"id\":{\"addr\":\"0x53858a7a4b6faf7cb2d198efe80351abc658d9cefcd2e95587f3d473cc90a041\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x53858a7a4b6faf7cb2d198efe80351abc658d9cefcd2e95587f3d473cc90a041", + "stateKeyHash": "q/80RI2NzVC9N0hKO9BJn+vhpm3+zluvig5Rj8wUc8w=", + "type": { + "address": "0x4", + "module": "collection", + "name": "Collection" + }, + "typeStr": "0x4::collection::Collection", + "data": "{\"creator\":\"0x7bc33fea1f7f5e7dc023c5cb041d0aadd664c8f738f619829095c19a9cc34e0\",\"description\":\"Sloth Balls that give birth to Cool Sloths\",\"mutation_events\":{\"counter\":\"0\",\"guid\":{\"id\":{\"addr\":\"0x53858a7a4b6faf7cb2d198efe80351abc658d9cefcd2e95587f3d473cc90a041\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"Sloth balls\",\"uri\":\"https://bafkreihthrkgjbniyvuxywens6ka3pun3khk534cywofnubkg3vdtjyomy.ipfs.w3s.link/\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x53858a7a4b6faf7cb2d198efe80351abc658d9cefcd2e95587f3d473cc90a041", + "stateKeyHash": "q/80RI2NzVC9N0hKO9BJn+vhpm3+zluvig5Rj8wUc8w=", + "type": { + "address": "0x4", + "module": "collection", + "name": "ConcurrentSupply" + }, + "typeStr": "0x4::collection::ConcurrentSupply", + "data": "{\"current_supply\":{\"max_value\":\"18446744073709551615\",\"value\":\"1374\"},\"total_minted\":{\"max_value\":\"18446744073709551615\",\"value\":\"3307\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x53858a7a4b6faf7cb2d198efe80351abc658d9cefcd2e95587f3d473cc90a041", + "stateKeyHash": "q/80RI2NzVC9N0hKO9BJn+vhpm3+zluvig5Rj8wUc8w=", + "type": { + "address": "0x4", + "module": "royalty", + "name": "Royalty" + }, + "typeStr": "0x4::royalty::Royalty", + "data": "{\"denominator\":\"20\",\"numerator\":\"1\",\"payee_address\":\"0x7bc33fea1f7f5e7dc023c5cb041d0aadd664c8f738f619829095c19a9cc34e0\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x53858a7a4b6faf7cb2d198efe80351abc658d9cefcd2e95587f3d473cc90a041", + "stateKeyHash": "q/80RI2NzVC9N0hKO9BJn+vhpm3+zluvig5Rj8wUc8w=", + "type": { + "address": "0x5ca749c835f44a9a9ff3fb0bec1f8e4f25ee09b424f62058c561ca41ec6bb146", + "module": "collection_components", + "name": "CollectionRefs" + }, + "typeStr": "0x5ca749c835f44a9a9ff3fb0bec1f8e4f25ee09b424f62058c561ca41ec6bb146::collection_components::CollectionRefs", + "data": "{\"extend_ref\":{\"vec\":[{\"self\":\"0x53858a7a4b6faf7cb2d198efe80351abc658d9cefcd2e95587f3d473cc90a041\"}]},\"mutator_ref\":{\"vec\":[{\"self\":\"0x53858a7a4b6faf7cb2d198efe80351abc658d9cefcd2e95587f3d473cc90a041\"}]},\"property_mutator_ref\":{\"vec\":[{\"self\":\"0x53858a7a4b6faf7cb2d198efe80351abc658d9cefcd2e95587f3d473cc90a041\"}]},\"royalty_mutator_ref\":{\"vec\":[{\"inner\":{\"self\":\"0x53858a7a4b6faf7cb2d198efe80351abc658d9cefcd2e95587f3d473cc90a041\"}}]},\"transfer_ref\":{\"vec\":[{\"self\":\"0x53858a7a4b6faf7cb2d198efe80351abc658d9cefcd2e95587f3d473cc90a041\"}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x53858a7a4b6faf7cb2d198efe80351abc658d9cefcd2e95587f3d473cc90a041", + "stateKeyHash": "q/80RI2NzVC9N0hKO9BJn+vhpm3+zluvig5Rj8wUc8w=", + "type": { + "address": "0x5ca749c835f44a9a9ff3fb0bec1f8e4f25ee09b424f62058c561ca41ec6bb146", + "module": "collection_properties", + "name": "CollectionProperties" + }, + "typeStr": "0x5ca749c835f44a9a9ff3fb0bec1f8e4f25ee09b424f62058c561ca41ec6bb146::collection_properties::CollectionProperties", + "data": "{\"mutable_description\":{\"initialized\":true,\"value\":true},\"mutable_max_supply\":{\"initialized\":false,\"value\":true},\"mutable_name\":{\"initialized\":false,\"value\":true},\"mutable_properties\":{\"initialized\":false,\"value\":true},\"mutable_royalty\":{\"initialized\":true,\"value\":true},\"mutable_token_description\":{\"initialized\":true,\"value\":true},\"mutable_token_name\":{\"initialized\":true,\"value\":true},\"mutable_token_properties\":{\"initialized\":true,\"value\":true},\"mutable_token_uri\":{\"initialized\":true,\"value\":true},\"mutable_uri\":{\"initialized\":true,\"value\":true},\"tokens_burnable_by_collection_owner\":{\"initialized\":true,\"value\":true},\"tokens_transferable_by_collection_owner\":{\"initialized\":true,\"value\":true}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x53858a7a4b6faf7cb2d198efe80351abc658d9cefcd2e95587f3d473cc90a041", + "stateKeyHash": "q/80RI2NzVC9N0hKO9BJn+vhpm3+zluvig5Rj8wUc8w=", + "type": { + "address": "0xd758b832d4d8fcad58ac7363a6b87af342a6e0dfd25897aa65233c606526e8f4", + "module": "composable_token", + "name": "Collection" + }, + "typeStr": "0xd758b832d4d8fcad58ac7363a6b87af342a6e0dfd25897aa65233c606526e8f4::composable_token::Collection", + "data": "{\"name\":\"Sloth balls\",\"supply_type\":\"0x4::collection::UnlimitedSupply\",\"symbol\":\"SB\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x53858a7a4b6faf7cb2d198efe80351abc658d9cefcd2e95587f3d473cc90a041", + "stateKeyHash": "q/80RI2NzVC9N0hKO9BJn+vhpm3+zluvig5Rj8wUc8w=", + "type": { + "address": "0xd85adb3c424c398d5017ad1d20b63ce8b3373a651a484ff2b473aa93d3357296", + "module": "studio", + "name": "Tracker" + }, + "typeStr": "0xd85adb3c424c398d5017ad1d20b63ce8b3373a651a484ff2b473aa93d3357296::studio::Tracker", + "data": "{\"collection_obj\":{\"inner\":\"0x53858a7a4b6faf7cb2d198efe80351abc658d9cefcd2e95587f3d473cc90a041\"},\"table\":{\"buckets\":{\"inner\":{\"handle\":\"0x9afee30633cb4f9c0bae3c32b91d60abccb14d9923b08a6bfc94c8ab6ee476e2\"},\"length\":\"2\"},\"level\":1,\"num_buckets\":\"2\",\"size\":\"1\",\"split_load_threshold\":75,\"target_bucket_size\":\"51\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x6b9356f75527bcaa4ba1b072c60a209c3dd656c561f437f4500d06ebc7ad1da6", + "stateKeyHash": "2Fn/xoXdw8iqQTRnXdLlPFbUQaudcHeAB990X1FXDL4=", + "type": { + "address": "0xd85adb3c424c398d5017ad1d20b63ce8b3373a651a484ff2b473aa93d3357296", + "module": "studio", + "name": "Type" + }, + "typeStr": "0xd85adb3c424c398d5017ad1d20b63ce8b3373a651a484ff2b473aa93d3357296::studio::Type", + "data": "{\"name\":\"Eyes\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x6b9356f75527bcaa4ba1b072c60a209c3dd656c561f437f4500d06ebc7ad1da6", + "stateKeyHash": "Yu/MBXD3upEPFT05Gw1GXJOPi7nzH1pvN/pWrJCMtek=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0x23f012877d031cb49f2ef943e982fd92b9ca442e767755565af35174c42c7576\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0x6b9356f75527bcaa4ba1b072c60a209c3dd656c561f437f4500d06ebc7ad1da6\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x6b9356f75527bcaa4ba1b072c60a209c3dd656c561f437f4500d06ebc7ad1da6", + "stateKeyHash": "Yu/MBXD3upEPFT05Gw1GXJOPi7nzH1pvN/pWrJCMtek=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x6b9356f75527bcaa4ba1b072c60a209c3dd656c561f437f4500d06ebc7ad1da6", + "stateKeyHash": "Yu/MBXD3upEPFT05Gw1GXJOPi7nzH1pvN/pWrJCMtek=", + "type": { + "address": "0x4", + "module": "royalty", + "name": "Royalty" + }, + "typeStr": "0x4::royalty::Royalty", + "data": "{\"denominator\":\"20\",\"numerator\":\"1\",\"payee_address\":\"0x7bc33fea1f7f5e7dc023c5cb041d0aadd664c8f738f619829095c19a9cc34e0\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x6b9356f75527bcaa4ba1b072c60a209c3dd656c561f437f4500d06ebc7ad1da6", + "stateKeyHash": "Yu/MBXD3upEPFT05Gw1GXJOPi7nzH1pvN/pWrJCMtek=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xd82f5841196bf66232316dc61188947583f418346b72758c0f45827cc5838617\"},\"description\":\"Between the two ferns gum\",\"index\":\"0\",\"mutation_events\":{\"counter\":\"0\",\"guid\":{\"id\":{\"addr\":\"0x6b9356f75527bcaa4ba1b072c60a209c3dd656c561f437f4500d06ebc7ad1da6\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"\",\"uri\":\"https://bafybeidczv6obpjiky2iircpdpqa4jqn3flzjfbf454in6abmjrnlyekdm.ipfs.w3s.link/Between%20the%20two%20ferns%20gum.png\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x6b9356f75527bcaa4ba1b072c60a209c3dd656c561f437f4500d06ebc7ad1da6", + "stateKeyHash": "Yu/MBXD3upEPFT05Gw1GXJOPi7nzH1pvN/pWrJCMtek=", + "type": { + "address": "0x4", + "module": "token", + "name": "TokenIdentifiers" + }, + "typeStr": "0x4::token::TokenIdentifiers", + "data": "{\"index\":{\"value\":\"18222\"},\"name\":{\"padding\":\"0x\",\"value\":\"Between the two ferns gum #232\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x6b9356f75527bcaa4ba1b072c60a209c3dd656c561f437f4500d06ebc7ad1da6", + "stateKeyHash": "Yu/MBXD3upEPFT05Gw1GXJOPi7nzH1pvN/pWrJCMtek=", + "type": { + "address": "0x5ca749c835f44a9a9ff3fb0bec1f8e4f25ee09b424f62058c561ca41ec6bb146", + "module": "token_components", + "name": "TokenRefs" + }, + "typeStr": "0x5ca749c835f44a9a9ff3fb0bec1f8e4f25ee09b424f62058c561ca41ec6bb146::token_components::TokenRefs", + "data": "{\"burn_ref\":{\"vec\":[{\"inner\":{\"vec\":[]},\"self\":{\"vec\":[\"0x6b9356f75527bcaa4ba1b072c60a209c3dd656c561f437f4500d06ebc7ad1da6\"]}}]},\"extend_ref\":{\"vec\":[{\"self\":\"0x6b9356f75527bcaa4ba1b072c60a209c3dd656c561f437f4500d06ebc7ad1da6\"}]},\"mutator_ref\":{\"vec\":[{\"self\":\"0x6b9356f75527bcaa4ba1b072c60a209c3dd656c561f437f4500d06ebc7ad1da6\"}]},\"property_mutator_ref\":{\"vec\":[{\"self\":\"0x6b9356f75527bcaa4ba1b072c60a209c3dd656c561f437f4500d06ebc7ad1da6\"}]},\"transfer_ref\":{\"vec\":[{\"self\":\"0x6b9356f75527bcaa4ba1b072c60a209c3dd656c561f437f4500d06ebc7ad1da6\"}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x6b9356f75527bcaa4ba1b072c60a209c3dd656c561f437f4500d06ebc7ad1da6", + "stateKeyHash": "Yu/MBXD3upEPFT05Gw1GXJOPi7nzH1pvN/pWrJCMtek=", + "type": { + "address": "0xd758b832d4d8fcad58ac7363a6b87af342a6e0dfd25897aa65233c606526e8f4", + "module": "composable_token", + "name": "Trait" + }, + "typeStr": "0xd758b832d4d8fcad58ac7363a6b87af342a6e0dfd25897aa65233c606526e8f4::composable_token::Trait", + "data": "{\"digital_assets\":[],\"index\":\"0\",\"mutator_ref\":{\"self\":\"0x6b9356f75527bcaa4ba1b072c60a209c3dd656c561f437f4500d06ebc7ad1da6\"},\"parent\":{\"vec\":[]},\"transfer_ref\":{\"self\":\"0x6b9356f75527bcaa4ba1b072c60a209c3dd656c561f437f4500d06ebc7ad1da6\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x87506b7ede0b6b789b846ed4efba7a2a88d942cb0767132c126a442cc5727614", + "stateKeyHash": "Hhxi1niYCtIucdyraZNvTLSftFDB/elhokKj9tdIelc=", + "type": { + "address": "0xd85adb3c424c398d5017ad1d20b63ce8b3373a651a484ff2b473aa93d3357296", + "module": "studio", + "name": "Type" + }, + "typeStr": "0xd85adb3c424c398d5017ad1d20b63ce8b3373a651a484ff2b473aa93d3357296::studio::Type", + "data": "{\"name\":\"Clothing\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x87506b7ede0b6b789b846ed4efba7a2a88d942cb0767132c126a442cc5727614", + "stateKeyHash": "ASNRGWhHnCFjsDAKaWxSS1qqyk+yz7FdSad9WViLO7k=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0x23f012877d031cb49f2ef943e982fd92b9ca442e767755565af35174c42c7576\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0x87506b7ede0b6b789b846ed4efba7a2a88d942cb0767132c126a442cc5727614\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x87506b7ede0b6b789b846ed4efba7a2a88d942cb0767132c126a442cc5727614", + "stateKeyHash": "ASNRGWhHnCFjsDAKaWxSS1qqyk+yz7FdSad9WViLO7k=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x87506b7ede0b6b789b846ed4efba7a2a88d942cb0767132c126a442cc5727614", + "stateKeyHash": "ASNRGWhHnCFjsDAKaWxSS1qqyk+yz7FdSad9WViLO7k=", + "type": { + "address": "0x4", + "module": "royalty", + "name": "Royalty" + }, + "typeStr": "0x4::royalty::Royalty", + "data": "{\"denominator\":\"20\",\"numerator\":\"1\",\"payee_address\":\"0x7bc33fea1f7f5e7dc023c5cb041d0aadd664c8f738f619829095c19a9cc34e0\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x87506b7ede0b6b789b846ed4efba7a2a88d942cb0767132c126a442cc5727614", + "stateKeyHash": "ASNRGWhHnCFjsDAKaWxSS1qqyk+yz7FdSad9WViLO7k=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xd82f5841196bf66232316dc61188947583f418346b72758c0f45827cc5838617\"},\"description\":\"Latex belts\",\"index\":\"0\",\"mutation_events\":{\"counter\":\"0\",\"guid\":{\"id\":{\"addr\":\"0x87506b7ede0b6b789b846ed4efba7a2a88d942cb0767132c126a442cc5727614\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"\",\"uri\":\"https://bafybeidczv6obpjiky2iircpdpqa4jqn3flzjfbf454in6abmjrnlyekdm.ipfs.w3s.link/Latex%20belts.png\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x87506b7ede0b6b789b846ed4efba7a2a88d942cb0767132c126a442cc5727614", + "stateKeyHash": "ASNRGWhHnCFjsDAKaWxSS1qqyk+yz7FdSad9WViLO7k=", + "type": { + "address": "0x4", + "module": "token", + "name": "TokenIdentifiers" + }, + "typeStr": "0x4::token::TokenIdentifiers", + "data": "{\"index\":{\"value\":\"18221\"},\"name\":{\"padding\":\"0x00000000\",\"value\":\"Latex belts #183\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x87506b7ede0b6b789b846ed4efba7a2a88d942cb0767132c126a442cc5727614", + "stateKeyHash": "ASNRGWhHnCFjsDAKaWxSS1qqyk+yz7FdSad9WViLO7k=", + "type": { + "address": "0x5ca749c835f44a9a9ff3fb0bec1f8e4f25ee09b424f62058c561ca41ec6bb146", + "module": "token_components", + "name": "TokenRefs" + }, + "typeStr": "0x5ca749c835f44a9a9ff3fb0bec1f8e4f25ee09b424f62058c561ca41ec6bb146::token_components::TokenRefs", + "data": "{\"burn_ref\":{\"vec\":[{\"inner\":{\"vec\":[]},\"self\":{\"vec\":[\"0x87506b7ede0b6b789b846ed4efba7a2a88d942cb0767132c126a442cc5727614\"]}}]},\"extend_ref\":{\"vec\":[{\"self\":\"0x87506b7ede0b6b789b846ed4efba7a2a88d942cb0767132c126a442cc5727614\"}]},\"mutator_ref\":{\"vec\":[{\"self\":\"0x87506b7ede0b6b789b846ed4efba7a2a88d942cb0767132c126a442cc5727614\"}]},\"property_mutator_ref\":{\"vec\":[{\"self\":\"0x87506b7ede0b6b789b846ed4efba7a2a88d942cb0767132c126a442cc5727614\"}]},\"transfer_ref\":{\"vec\":[{\"self\":\"0x87506b7ede0b6b789b846ed4efba7a2a88d942cb0767132c126a442cc5727614\"}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x87506b7ede0b6b789b846ed4efba7a2a88d942cb0767132c126a442cc5727614", + "stateKeyHash": "ASNRGWhHnCFjsDAKaWxSS1qqyk+yz7FdSad9WViLO7k=", + "type": { + "address": "0xd758b832d4d8fcad58ac7363a6b87af342a6e0dfd25897aa65233c606526e8f4", + "module": "composable_token", + "name": "Trait" + }, + "typeStr": "0xd758b832d4d8fcad58ac7363a6b87af342a6e0dfd25897aa65233c606526e8f4::composable_token::Trait", + "data": "{\"digital_assets\":[],\"index\":\"0\",\"mutator_ref\":{\"self\":\"0x87506b7ede0b6b789b846ed4efba7a2a88d942cb0767132c126a442cc5727614\"},\"parent\":{\"vec\":[]},\"transfer_ref\":{\"self\":\"0x87506b7ede0b6b789b846ed4efba7a2a88d942cb0767132c126a442cc5727614\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xb3d0919e44131593a5a30a96ac52c3ffbad58cee217a99c9ad0516effdb65bdb", + "stateKeyHash": "3di0Vc0vAry+ZXWTSA7TFky8yAEHwwPpwOXh14oVaDc=", + "type": { + "address": "0xd85adb3c424c398d5017ad1d20b63ce8b3373a651a484ff2b473aa93d3357296", + "module": "studio", + "name": "Type" + }, + "typeStr": "0xd85adb3c424c398d5017ad1d20b63ce8b3373a651a484ff2b473aa93d3357296::studio::Type", + "data": "{\"name\":\"Background\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xb3d0919e44131593a5a30a96ac52c3ffbad58cee217a99c9ad0516effdb65bdb", + "stateKeyHash": "1L0LZ1f6JiR/sQ4aydqFgcwx5h4+hz3BZ7Y8KAzLm0k=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0x23f012877d031cb49f2ef943e982fd92b9ca442e767755565af35174c42c7576\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0xb3d0919e44131593a5a30a96ac52c3ffbad58cee217a99c9ad0516effdb65bdb\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xb3d0919e44131593a5a30a96ac52c3ffbad58cee217a99c9ad0516effdb65bdb", + "stateKeyHash": "1L0LZ1f6JiR/sQ4aydqFgcwx5h4+hz3BZ7Y8KAzLm0k=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xb3d0919e44131593a5a30a96ac52c3ffbad58cee217a99c9ad0516effdb65bdb", + "stateKeyHash": "1L0LZ1f6JiR/sQ4aydqFgcwx5h4+hz3BZ7Y8KAzLm0k=", + "type": { + "address": "0x4", + "module": "royalty", + "name": "Royalty" + }, + "typeStr": "0x4::royalty::Royalty", + "data": "{\"denominator\":\"20\",\"numerator\":\"1\",\"payee_address\":\"0x7bc33fea1f7f5e7dc023c5cb041d0aadd664c8f738f619829095c19a9cc34e0\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xb3d0919e44131593a5a30a96ac52c3ffbad58cee217a99c9ad0516effdb65bdb", + "stateKeyHash": "1L0LZ1f6JiR/sQ4aydqFgcwx5h4+hz3BZ7Y8KAzLm0k=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xd82f5841196bf66232316dc61188947583f418346b72758c0f45827cc5838617\"},\"description\":\"Presidential Debate\",\"index\":\"0\",\"mutation_events\":{\"counter\":\"0\",\"guid\":{\"id\":{\"addr\":\"0xb3d0919e44131593a5a30a96ac52c3ffbad58cee217a99c9ad0516effdb65bdb\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"\",\"uri\":\"https://bafybeidczv6obpjiky2iircpdpqa4jqn3flzjfbf454in6abmjrnlyekdm.ipfs.w3s.link/Presidential%20Debate.png\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xb3d0919e44131593a5a30a96ac52c3ffbad58cee217a99c9ad0516effdb65bdb", + "stateKeyHash": "1L0LZ1f6JiR/sQ4aydqFgcwx5h4+hz3BZ7Y8KAzLm0k=", + "type": { + "address": "0x4", + "module": "token", + "name": "TokenIdentifiers" + }, + "typeStr": "0x4::token::TokenIdentifiers", + "data": "{\"index\":{\"value\":\"18219\"},\"name\":{\"padding\":\"0x\",\"value\":\"Presidential Debate #177\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xb3d0919e44131593a5a30a96ac52c3ffbad58cee217a99c9ad0516effdb65bdb", + "stateKeyHash": "1L0LZ1f6JiR/sQ4aydqFgcwx5h4+hz3BZ7Y8KAzLm0k=", + "type": { + "address": "0x5ca749c835f44a9a9ff3fb0bec1f8e4f25ee09b424f62058c561ca41ec6bb146", + "module": "token_components", + "name": "TokenRefs" + }, + "typeStr": "0x5ca749c835f44a9a9ff3fb0bec1f8e4f25ee09b424f62058c561ca41ec6bb146::token_components::TokenRefs", + "data": "{\"burn_ref\":{\"vec\":[{\"inner\":{\"vec\":[]},\"self\":{\"vec\":[\"0xb3d0919e44131593a5a30a96ac52c3ffbad58cee217a99c9ad0516effdb65bdb\"]}}]},\"extend_ref\":{\"vec\":[{\"self\":\"0xb3d0919e44131593a5a30a96ac52c3ffbad58cee217a99c9ad0516effdb65bdb\"}]},\"mutator_ref\":{\"vec\":[{\"self\":\"0xb3d0919e44131593a5a30a96ac52c3ffbad58cee217a99c9ad0516effdb65bdb\"}]},\"property_mutator_ref\":{\"vec\":[{\"self\":\"0xb3d0919e44131593a5a30a96ac52c3ffbad58cee217a99c9ad0516effdb65bdb\"}]},\"transfer_ref\":{\"vec\":[{\"self\":\"0xb3d0919e44131593a5a30a96ac52c3ffbad58cee217a99c9ad0516effdb65bdb\"}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xb3d0919e44131593a5a30a96ac52c3ffbad58cee217a99c9ad0516effdb65bdb", + "stateKeyHash": "1L0LZ1f6JiR/sQ4aydqFgcwx5h4+hz3BZ7Y8KAzLm0k=", + "type": { + "address": "0xd758b832d4d8fcad58ac7363a6b87af342a6e0dfd25897aa65233c606526e8f4", + "module": "composable_token", + "name": "Trait" + }, + "typeStr": "0xd758b832d4d8fcad58ac7363a6b87af342a6e0dfd25897aa65233c606526e8f4::composable_token::Trait", + "data": "{\"digital_assets\":[],\"index\":\"0\",\"mutator_ref\":{\"self\":\"0xb3d0919e44131593a5a30a96ac52c3ffbad58cee217a99c9ad0516effdb65bdb\"},\"parent\":{\"vec\":[]},\"transfer_ref\":{\"self\":\"0xb3d0919e44131593a5a30a96ac52c3ffbad58cee217a99c9ad0516effdb65bdb\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xc2698511578ed66c31dfd68d0c18dd98745dd3210b7f75476f485c1e7a75454e", + "stateKeyHash": "j1MKOY/HlLvHtbLWPq4b6aSCR8zZWCuhnSz9OVG7t6I=", + "type": { + "address": "0xd85adb3c424c398d5017ad1d20b63ce8b3373a651a484ff2b473aa93d3357296", + "module": "studio", + "name": "Type" + }, + "typeStr": "0xd85adb3c424c398d5017ad1d20b63ce8b3373a651a484ff2b473aa93d3357296::studio::Type", + "data": "{\"name\":\"Mouth\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xc2698511578ed66c31dfd68d0c18dd98745dd3210b7f75476f485c1e7a75454e", + "stateKeyHash": "CPooija+TX6fwnJBK+2/pK2+17UaITVDuIaaw5VhlSE=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0x23f012877d031cb49f2ef943e982fd92b9ca442e767755565af35174c42c7576\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0xc2698511578ed66c31dfd68d0c18dd98745dd3210b7f75476f485c1e7a75454e\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xc2698511578ed66c31dfd68d0c18dd98745dd3210b7f75476f485c1e7a75454e", + "stateKeyHash": "CPooija+TX6fwnJBK+2/pK2+17UaITVDuIaaw5VhlSE=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xc2698511578ed66c31dfd68d0c18dd98745dd3210b7f75476f485c1e7a75454e", + "stateKeyHash": "CPooija+TX6fwnJBK+2/pK2+17UaITVDuIaaw5VhlSE=", + "type": { + "address": "0x4", + "module": "royalty", + "name": "Royalty" + }, + "typeStr": "0x4::royalty::Royalty", + "data": "{\"denominator\":\"20\",\"numerator\":\"1\",\"payee_address\":\"0x7bc33fea1f7f5e7dc023c5cb041d0aadd664c8f738f619829095c19a9cc34e0\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xc2698511578ed66c31dfd68d0c18dd98745dd3210b7f75476f485c1e7a75454e", + "stateKeyHash": "CPooija+TX6fwnJBK+2/pK2+17UaITVDuIaaw5VhlSE=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xd82f5841196bf66232316dc61188947583f418346b72758c0f45827cc5838617\"},\"description\":\"Cigar\",\"index\":\"0\",\"mutation_events\":{\"counter\":\"0\",\"guid\":{\"id\":{\"addr\":\"0xc2698511578ed66c31dfd68d0c18dd98745dd3210b7f75476f485c1e7a75454e\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"\",\"uri\":\"https://bafybeidczv6obpjiky2iircpdpqa4jqn3flzjfbf454in6abmjrnlyekdm.ipfs.w3s.link/Cigar.png\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xc2698511578ed66c31dfd68d0c18dd98745dd3210b7f75476f485c1e7a75454e", + "stateKeyHash": "CPooija+TX6fwnJBK+2/pK2+17UaITVDuIaaw5VhlSE=", + "type": { + "address": "0x4", + "module": "token", + "name": "TokenIdentifiers" + }, + "typeStr": "0x4::token::TokenIdentifiers", + "data": "{\"index\":{\"value\":\"18224\"},\"name\":{\"padding\":\"0x00000000000000000000\",\"value\":\"Cigar #208\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xc2698511578ed66c31dfd68d0c18dd98745dd3210b7f75476f485c1e7a75454e", + "stateKeyHash": "CPooija+TX6fwnJBK+2/pK2+17UaITVDuIaaw5VhlSE=", + "type": { + "address": "0x5ca749c835f44a9a9ff3fb0bec1f8e4f25ee09b424f62058c561ca41ec6bb146", + "module": "token_components", + "name": "TokenRefs" + }, + "typeStr": "0x5ca749c835f44a9a9ff3fb0bec1f8e4f25ee09b424f62058c561ca41ec6bb146::token_components::TokenRefs", + "data": "{\"burn_ref\":{\"vec\":[{\"inner\":{\"vec\":[]},\"self\":{\"vec\":[\"0xc2698511578ed66c31dfd68d0c18dd98745dd3210b7f75476f485c1e7a75454e\"]}}]},\"extend_ref\":{\"vec\":[{\"self\":\"0xc2698511578ed66c31dfd68d0c18dd98745dd3210b7f75476f485c1e7a75454e\"}]},\"mutator_ref\":{\"vec\":[{\"self\":\"0xc2698511578ed66c31dfd68d0c18dd98745dd3210b7f75476f485c1e7a75454e\"}]},\"property_mutator_ref\":{\"vec\":[{\"self\":\"0xc2698511578ed66c31dfd68d0c18dd98745dd3210b7f75476f485c1e7a75454e\"}]},\"transfer_ref\":{\"vec\":[{\"self\":\"0xc2698511578ed66c31dfd68d0c18dd98745dd3210b7f75476f485c1e7a75454e\"}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xc2698511578ed66c31dfd68d0c18dd98745dd3210b7f75476f485c1e7a75454e", + "stateKeyHash": "CPooija+TX6fwnJBK+2/pK2+17UaITVDuIaaw5VhlSE=", + "type": { + "address": "0xd758b832d4d8fcad58ac7363a6b87af342a6e0dfd25897aa65233c606526e8f4", + "module": "composable_token", + "name": "Trait" + }, + "typeStr": "0xd758b832d4d8fcad58ac7363a6b87af342a6e0dfd25897aa65233c606526e8f4::composable_token::Trait", + "data": "{\"digital_assets\":[],\"index\":\"0\",\"mutator_ref\":{\"self\":\"0xc2698511578ed66c31dfd68d0c18dd98745dd3210b7f75476f485c1e7a75454e\"},\"parent\":{\"vec\":[]},\"transfer_ref\":{\"self\":\"0xc2698511578ed66c31dfd68d0c18dd98745dd3210b7f75476f485c1e7a75454e\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xd82f5841196bf66232316dc61188947583f418346b72758c0f45827cc5838617", + "stateKeyHash": "L4M1L/hQD58oNqZaXlsGY/uAiwMuL8Nx0DFDGuiETnY=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":false,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0x7bc33fea1f7f5e7dc023c5cb041d0aadd664c8f738f619829095c19a9cc34e0\",\"transfer_events\":{\"counter\":\"0\",\"guid\":{\"id\":{\"addr\":\"0xd82f5841196bf66232316dc61188947583f418346b72758c0f45827cc5838617\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xd82f5841196bf66232316dc61188947583f418346b72758c0f45827cc5838617", + "stateKeyHash": "L4M1L/hQD58oNqZaXlsGY/uAiwMuL8Nx0DFDGuiETnY=", + "type": { + "address": "0x4", + "module": "collection", + "name": "Collection" + }, + "typeStr": "0x4::collection::Collection", + "data": "{\"creator\":\"0x7bc33fea1f7f5e7dc023c5cb041d0aadd664c8f738f619829095c19a9cc34e0\",\"description\":\"Cool Sloths are the 1st cNFT collection, powered by AIP-76, consisting of 7,000 composable Cool Sloths that can wear different traits\",\"mutation_events\":{\"counter\":\"0\",\"guid\":{\"id\":{\"addr\":\"0xd82f5841196bf66232316dc61188947583f418346b72758c0f45827cc5838617\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"Cool Sloths\",\"uri\":\"https://bafybeifx7f65ozwnbozihoiqkpmioy7f725ni6do7s5wkkc3rpshwhz7lu.ipfs.w3s.link/cool-sloths-collection.png\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xd82f5841196bf66232316dc61188947583f418346b72758c0f45827cc5838617", + "stateKeyHash": "L4M1L/hQD58oNqZaXlsGY/uAiwMuL8Nx0DFDGuiETnY=", + "type": { + "address": "0x4", + "module": "collection", + "name": "ConcurrentSupply" + }, + "typeStr": "0x4::collection::ConcurrentSupply", + "data": "{\"current_supply\":{\"max_value\":\"18446744073709551615\",\"value\":\"18224\"},\"total_minted\":{\"max_value\":\"18446744073709551615\",\"value\":\"18224\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xd82f5841196bf66232316dc61188947583f418346b72758c0f45827cc5838617", + "stateKeyHash": "L4M1L/hQD58oNqZaXlsGY/uAiwMuL8Nx0DFDGuiETnY=", + "type": { + "address": "0x4", + "module": "royalty", + "name": "Royalty" + }, + "typeStr": "0x4::royalty::Royalty", + "data": "{\"denominator\":\"20\",\"numerator\":\"1\",\"payee_address\":\"0x7bc33fea1f7f5e7dc023c5cb041d0aadd664c8f738f619829095c19a9cc34e0\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xd82f5841196bf66232316dc61188947583f418346b72758c0f45827cc5838617", + "stateKeyHash": "L4M1L/hQD58oNqZaXlsGY/uAiwMuL8Nx0DFDGuiETnY=", + "type": { + "address": "0x5ca749c835f44a9a9ff3fb0bec1f8e4f25ee09b424f62058c561ca41ec6bb146", + "module": "collection_components", + "name": "CollectionRefs" + }, + "typeStr": "0x5ca749c835f44a9a9ff3fb0bec1f8e4f25ee09b424f62058c561ca41ec6bb146::collection_components::CollectionRefs", + "data": "{\"extend_ref\":{\"vec\":[{\"self\":\"0xd82f5841196bf66232316dc61188947583f418346b72758c0f45827cc5838617\"}]},\"mutator_ref\":{\"vec\":[{\"self\":\"0xd82f5841196bf66232316dc61188947583f418346b72758c0f45827cc5838617\"}]},\"property_mutator_ref\":{\"vec\":[{\"self\":\"0xd82f5841196bf66232316dc61188947583f418346b72758c0f45827cc5838617\"}]},\"royalty_mutator_ref\":{\"vec\":[{\"inner\":{\"self\":\"0xd82f5841196bf66232316dc61188947583f418346b72758c0f45827cc5838617\"}}]},\"transfer_ref\":{\"vec\":[{\"self\":\"0xd82f5841196bf66232316dc61188947583f418346b72758c0f45827cc5838617\"}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xd82f5841196bf66232316dc61188947583f418346b72758c0f45827cc5838617", + "stateKeyHash": "L4M1L/hQD58oNqZaXlsGY/uAiwMuL8Nx0DFDGuiETnY=", + "type": { + "address": "0x5ca749c835f44a9a9ff3fb0bec1f8e4f25ee09b424f62058c561ca41ec6bb146", + "module": "collection_properties", + "name": "CollectionProperties" + }, + "typeStr": "0x5ca749c835f44a9a9ff3fb0bec1f8e4f25ee09b424f62058c561ca41ec6bb146::collection_properties::CollectionProperties", + "data": "{\"mutable_description\":{\"initialized\":true,\"value\":true},\"mutable_max_supply\":{\"initialized\":false,\"value\":true},\"mutable_name\":{\"initialized\":false,\"value\":true},\"mutable_properties\":{\"initialized\":false,\"value\":true},\"mutable_royalty\":{\"initialized\":true,\"value\":true},\"mutable_token_description\":{\"initialized\":true,\"value\":true},\"mutable_token_name\":{\"initialized\":true,\"value\":true},\"mutable_token_properties\":{\"initialized\":true,\"value\":true},\"mutable_token_uri\":{\"initialized\":true,\"value\":true},\"mutable_uri\":{\"initialized\":true,\"value\":true},\"tokens_burnable_by_collection_owner\":{\"initialized\":true,\"value\":true},\"tokens_transferable_by_collection_owner\":{\"initialized\":true,\"value\":true}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xd82f5841196bf66232316dc61188947583f418346b72758c0f45827cc5838617", + "stateKeyHash": "L4M1L/hQD58oNqZaXlsGY/uAiwMuL8Nx0DFDGuiETnY=", + "type": { + "address": "0xd758b832d4d8fcad58ac7363a6b87af342a6e0dfd25897aa65233c606526e8f4", + "module": "composable_token", + "name": "Collection" + }, + "typeStr": "0xd758b832d4d8fcad58ac7363a6b87af342a6e0dfd25897aa65233c606526e8f4::composable_token::Collection", + "data": "{\"name\":\"Cool Sloths\",\"supply_type\":\"0x4::collection::UnlimitedSupply\",\"symbol\":\"CS\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xd82f5841196bf66232316dc61188947583f418346b72758c0f45827cc5838617", + "stateKeyHash": "L4M1L/hQD58oNqZaXlsGY/uAiwMuL8Nx0DFDGuiETnY=", + "type": { + "address": "0xd85adb3c424c398d5017ad1d20b63ce8b3373a651a484ff2b473aa93d3357296", + "module": "studio", + "name": "Tracker" + }, + "typeStr": "0xd85adb3c424c398d5017ad1d20b63ce8b3373a651a484ff2b473aa93d3357296::studio::Tracker", + "data": "{\"collection_obj\":{\"inner\":\"0xd82f5841196bf66232316dc61188947583f418346b72758c0f45827cc5838617\"},\"table\":{\"buckets\":{\"inner\":{\"handle\":\"0x9abe7b26ba4b96928b7659a1d6f9549230763780ff61033d9f400c36cd8aa27\"},\"length\":\"2\"},\"level\":1,\"num_buckets\":\"2\",\"size\":\"8\",\"split_load_threshold\":75,\"target_bucket_size\":\"51\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xf3c591391f979146a1500bea12d334c71b69815c47d586b141f7146bcbd7582e", + "stateKeyHash": "pLz7hHCLZllmIQ8fNMJZ68awFa8D4hysLnkP9qttd+w=", + "type": { + "address": "0xd85adb3c424c398d5017ad1d20b63ce8b3373a651a484ff2b473aa93d3357296", + "module": "studio", + "name": "Type" + }, + "typeStr": "0xd85adb3c424c398d5017ad1d20b63ce8b3373a651a484ff2b473aa93d3357296::studio::Type", + "data": "{\"name\":\"Hat\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xf3c591391f979146a1500bea12d334c71b69815c47d586b141f7146bcbd7582e", + "stateKeyHash": "ngzHazgOvG/gK9nNSl1U2bjYzB994bfc0OSYhGSpP9k=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0x23f012877d031cb49f2ef943e982fd92b9ca442e767755565af35174c42c7576\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0xf3c591391f979146a1500bea12d334c71b69815c47d586b141f7146bcbd7582e\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xf3c591391f979146a1500bea12d334c71b69815c47d586b141f7146bcbd7582e", + "stateKeyHash": "ngzHazgOvG/gK9nNSl1U2bjYzB994bfc0OSYhGSpP9k=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xf3c591391f979146a1500bea12d334c71b69815c47d586b141f7146bcbd7582e", + "stateKeyHash": "ngzHazgOvG/gK9nNSl1U2bjYzB994bfc0OSYhGSpP9k=", + "type": { + "address": "0x4", + "module": "royalty", + "name": "Royalty" + }, + "typeStr": "0x4::royalty::Royalty", + "data": "{\"denominator\":\"20\",\"numerator\":\"1\",\"payee_address\":\"0x7bc33fea1f7f5e7dc023c5cb041d0aadd664c8f738f619829095c19a9cc34e0\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xf3c591391f979146a1500bea12d334c71b69815c47d586b141f7146bcbd7582e", + "stateKeyHash": "ngzHazgOvG/gK9nNSl1U2bjYzB994bfc0OSYhGSpP9k=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xd82f5841196bf66232316dc61188947583f418346b72758c0f45827cc5838617\"},\"description\":\"Pharaoh hat\",\"index\":\"0\",\"mutation_events\":{\"counter\":\"0\",\"guid\":{\"id\":{\"addr\":\"0xf3c591391f979146a1500bea12d334c71b69815c47d586b141f7146bcbd7582e\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"\",\"uri\":\"https://bafybeidczv6obpjiky2iircpdpqa4jqn3flzjfbf454in6abmjrnlyekdm.ipfs.w3s.link/Pharaoh%20hat.png\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xf3c591391f979146a1500bea12d334c71b69815c47d586b141f7146bcbd7582e", + "stateKeyHash": "ngzHazgOvG/gK9nNSl1U2bjYzB994bfc0OSYhGSpP9k=", + "type": { + "address": "0x4", + "module": "token", + "name": "TokenIdentifiers" + }, + "typeStr": "0x4::token::TokenIdentifiers", + "data": "{\"index\":{\"value\":\"18223\"},\"name\":{\"padding\":\"0x00000000\",\"value\":\"Pharaoh hat #205\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xf3c591391f979146a1500bea12d334c71b69815c47d586b141f7146bcbd7582e", + "stateKeyHash": "ngzHazgOvG/gK9nNSl1U2bjYzB994bfc0OSYhGSpP9k=", + "type": { + "address": "0x5ca749c835f44a9a9ff3fb0bec1f8e4f25ee09b424f62058c561ca41ec6bb146", + "module": "token_components", + "name": "TokenRefs" + }, + "typeStr": "0x5ca749c835f44a9a9ff3fb0bec1f8e4f25ee09b424f62058c561ca41ec6bb146::token_components::TokenRefs", + "data": "{\"burn_ref\":{\"vec\":[{\"inner\":{\"vec\":[]},\"self\":{\"vec\":[\"0xf3c591391f979146a1500bea12d334c71b69815c47d586b141f7146bcbd7582e\"]}}]},\"extend_ref\":{\"vec\":[{\"self\":\"0xf3c591391f979146a1500bea12d334c71b69815c47d586b141f7146bcbd7582e\"}]},\"mutator_ref\":{\"vec\":[{\"self\":\"0xf3c591391f979146a1500bea12d334c71b69815c47d586b141f7146bcbd7582e\"}]},\"property_mutator_ref\":{\"vec\":[{\"self\":\"0xf3c591391f979146a1500bea12d334c71b69815c47d586b141f7146bcbd7582e\"}]},\"transfer_ref\":{\"vec\":[{\"self\":\"0xf3c591391f979146a1500bea12d334c71b69815c47d586b141f7146bcbd7582e\"}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xf3c591391f979146a1500bea12d334c71b69815c47d586b141f7146bcbd7582e", + "stateKeyHash": "ngzHazgOvG/gK9nNSl1U2bjYzB994bfc0OSYhGSpP9k=", + "type": { + "address": "0xd758b832d4d8fcad58ac7363a6b87af342a6e0dfd25897aa65233c606526e8f4", + "module": "composable_token", + "name": "Trait" + }, + "typeStr": "0xd758b832d4d8fcad58ac7363a6b87af342a6e0dfd25897aa65233c606526e8f4::composable_token::Trait", + "data": "{\"digital_assets\":[],\"index\":\"0\",\"mutator_ref\":{\"self\":\"0xf3c591391f979146a1500bea12d334c71b69815c47d586b141f7146bcbd7582e\"},\"parent\":{\"vec\":[]},\"transfer_ref\":{\"self\":\"0xf3c591391f979146a1500bea12d334c71b69815c47d586b141f7146bcbd7582e\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xf8766b420ce5d2a6c2016368e58d6b13df6cc19a4c8d2a19e8696ecdf0e9907d", + "stateKeyHash": "mWBjaRakNDf7+1R72G2B556H7486N44ThldHm/uReGw=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0x23f012877d031cb49f2ef943e982fd92b9ca442e767755565af35174c42c7576\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0xf8766b420ce5d2a6c2016368e58d6b13df6cc19a4c8d2a19e8696ecdf0e9907d\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xf8766b420ce5d2a6c2016368e58d6b13df6cc19a4c8d2a19e8696ecdf0e9907d", + "stateKeyHash": "mWBjaRakNDf7+1R72G2B556H7486N44ThldHm/uReGw=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xf8766b420ce5d2a6c2016368e58d6b13df6cc19a4c8d2a19e8696ecdf0e9907d", + "stateKeyHash": "mWBjaRakNDf7+1R72G2B556H7486N44ThldHm/uReGw=", + "type": { + "address": "0x4", + "module": "royalty", + "name": "Royalty" + }, + "typeStr": "0x4::royalty::Royalty", + "data": "{\"denominator\":\"20\",\"numerator\":\"1\",\"payee_address\":\"0x7bc33fea1f7f5e7dc023c5cb041d0aadd664c8f738f619829095c19a9cc34e0\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xf8766b420ce5d2a6c2016368e58d6b13df6cc19a4c8d2a19e8696ecdf0e9907d", + "stateKeyHash": "mWBjaRakNDf7+1R72G2B556H7486N44ThldHm/uReGw=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xd82f5841196bf66232316dc61188947583f418346b72758c0f45827cc5838617\"},\"description\":\"Cool Sloth cNFT wrapper\",\"index\":\"0\",\"mutation_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0xf8766b420ce5d2a6c2016368e58d6b13df6cc19a4c8d2a19e8696ecdf0e9907d\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"\",\"uri\":\"https://bafybeidczv6obpjiky2iircpdpqa4jqn3flzjfbf454in6abmjrnlyekdm.ipfs.w3s.link/Panda.png\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xf8766b420ce5d2a6c2016368e58d6b13df6cc19a4c8d2a19e8696ecdf0e9907d", + "stateKeyHash": "mWBjaRakNDf7+1R72G2B556H7486N44ThldHm/uReGw=", + "type": { + "address": "0x4", + "module": "token", + "name": "TokenIdentifiers" + }, + "typeStr": "0x4::token::TokenIdentifiers", + "data": "{\"index\":{\"value\":\"4563\"},\"name\":{\"padding\":\"0x00000000\",\"value\":\"Cool Sloth #2276\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xf8766b420ce5d2a6c2016368e58d6b13df6cc19a4c8d2a19e8696ecdf0e9907d", + "stateKeyHash": "mWBjaRakNDf7+1R72G2B556H7486N44ThldHm/uReGw=", + "type": { + "address": "0x5ca749c835f44a9a9ff3fb0bec1f8e4f25ee09b424f62058c561ca41ec6bb146", + "module": "token_components", + "name": "TokenRefs" + }, + "typeStr": "0x5ca749c835f44a9a9ff3fb0bec1f8e4f25ee09b424f62058c561ca41ec6bb146::token_components::TokenRefs", + "data": "{\"burn_ref\":{\"vec\":[{\"inner\":{\"vec\":[]},\"self\":{\"vec\":[\"0xf8766b420ce5d2a6c2016368e58d6b13df6cc19a4c8d2a19e8696ecdf0e9907d\"]}}]},\"extend_ref\":{\"vec\":[{\"self\":\"0xf8766b420ce5d2a6c2016368e58d6b13df6cc19a4c8d2a19e8696ecdf0e9907d\"}]},\"mutator_ref\":{\"vec\":[{\"self\":\"0xf8766b420ce5d2a6c2016368e58d6b13df6cc19a4c8d2a19e8696ecdf0e9907d\"}]},\"property_mutator_ref\":{\"vec\":[{\"self\":\"0xf8766b420ce5d2a6c2016368e58d6b13df6cc19a4c8d2a19e8696ecdf0e9907d\"}]},\"transfer_ref\":{\"vec\":[{\"self\":\"0xf8766b420ce5d2a6c2016368e58d6b13df6cc19a4c8d2a19e8696ecdf0e9907d\"}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xf8766b420ce5d2a6c2016368e58d6b13df6cc19a4c8d2a19e8696ecdf0e9907d", + "stateKeyHash": "mWBjaRakNDf7+1R72G2B556H7486N44ThldHm/uReGw=", + "type": { + "address": "0xd758b832d4d8fcad58ac7363a6b87af342a6e0dfd25897aa65233c606526e8f4", + "module": "composable_token", + "name": "Composable" + }, + "typeStr": "0xd758b832d4d8fcad58ac7363a6b87af342a6e0dfd25897aa65233c606526e8f4::composable_token::Composable", + "data": "{\"digital_assets\":[],\"mutator_ref\":{\"self\":\"0xf8766b420ce5d2a6c2016368e58d6b13df6cc19a4c8d2a19e8696ecdf0e9907d\"},\"traits\":[{\"inner\":\"0x165ebae990cc8f07b97a8c252e5901a6898a39993778de698ac946648cd45bb4\"}]}" + } + }, + { + "type": "TYPE_WRITE_TABLE_ITEM", + "writeTableItem": { + "stateKeyHash": "1cnZyUx34Wu2iGUgnMJQbpyy/3Fv8fDVQid3RMw34nU=", + "handle": "0x09abe7b26ba4b96928b7659a1d6f9549230763780ff61033d9f400c36cd8aa27", + "key": "0x0000000000000000", + "data": { + "key": "\"0\"", + "keyType": "u64", + "value": "[{\"hash\":\"15404979362684702172\",\"key\":\"Hat\",\"value\":[{\"max_supply\":\"322\",\"name\":\"Apple pods\",\"total_minted\":\"0\"},{\"max_supply\":\"329\",\"name\":\"Aptos cap\",\"total_minted\":\"198\"},{\"max_supply\":\"224\",\"name\":\"Aptos umbrella hat\",\"total_minted\":\"0\"},{\"max_supply\":\"301\",\"name\":\"Bike helmet\",\"total_minted\":\"0\"},{\"max_supply\":\"308\",\"name\":\"Buidl Stickers\",\"total_minted\":\"183\"},{\"max_supply\":\"420\",\"name\":\"Cowboy\",\"total_minted\":\"207\"},{\"max_supply\":\"427\",\"name\":\"Donut\",\"total_minted\":\"0\"},{\"max_supply\":\"196\",\"name\":\"Doodoo\",\"total_minted\":\"0\"},{\"max_supply\":\"98\",\"name\":\"Fire\",\"total_minted\":\"204\"},{\"max_supply\":\"343\",\"name\":\"Fly hat\",\"total_minted\":\"193\"},{\"max_supply\":\"371\",\"name\":\"Hodl headband\",\"total_minted\":\"177\"},{\"max_supply\":\"301\",\"name\":\"Ice hair\",\"total_minted\":\"0\"},{\"max_supply\":\"420\",\"name\":\"Irish hat\",\"total_minted\":\"196\"},{\"max_supply\":\"420\",\"name\":\"Laurel crown\",\"total_minted\":\"184\"},{\"max_supply\":\"224\",\"name\":\"Mingos crown\",\"total_minted\":\"188\"},{\"max_supply\":\"420\",\"name\":\"Pencilhead\",\"total_minted\":\"0\"},{\"max_supply\":\"301\",\"name\":\"Pharaoh hat\",\"total_minted\":\"205\"},{\"max_supply\":\"434\",\"name\":\"Shrimp\",\"total_minted\":\"0\"},{\"max_supply\":\"413\",\"name\":\"Sorting hat\",\"total_minted\":\"0\"},{\"max_supply\":\"105\",\"name\":\"The crown\",\"total_minted\":\"0\"},{\"max_supply\":\"336\",\"name\":\"Trump hair\",\"total_minted\":\"0\"},{\"max_supply\":\"287\",\"name\":\"WAGMI bandana\",\"total_minted\":\"0\"}]},{\"hash\":\"12198817008046105328\",\"key\":\"Cool Sloth\",\"value\":[{\"max_supply\":\"7000\",\"name\":\"Cool Sloth\",\"total_minted\":\"3307\"}]}]", + "valueType": "vector<0x1::smart_table::Entry<0x1::string::String, vector<0xd85adb3c424c398d5017ad1d20b63ce8b3373a651a484ff2b473aa93d3357296::studio::Variant>>>" + } + } + }, + { + "type": "TYPE_WRITE_TABLE_ITEM", + "writeTableItem": { + "stateKeyHash": "jhRjYUExbBqORJ0+rYGW/EF79hD1RZmero9zFR8/V+A=", + "handle": "0x09abe7b26ba4b96928b7659a1d6f9549230763780ff61033d9f400c36cd8aa27", + "key": "0x0100000000000000", + "data": { + "key": "\"1\"", + "keyType": "u64", + "value": "[{\"hash\":\"13538017775806722007\",\"key\":\"Background\",\"value\":[{\"max_supply\":\"357\",\"name\":\"Aptos\",\"total_minted\":\"206\"},{\"max_supply\":\"714\",\"name\":\"Blue\",\"total_minted\":\"209\"},{\"max_supply\":\"182\",\"name\":\"Candyland\",\"total_minted\":\"191\"},{\"max_supply\":\"735\",\"name\":\"Green\",\"total_minted\":\"0\"},{\"max_supply\":\"182\",\"name\":\"Interstellar\",\"total_minted\":\"199\"},{\"max_supply\":\"378\",\"name\":\"Mars\",\"total_minted\":\"187\"},{\"max_supply\":\"735\",\"name\":\"Pink\",\"total_minted\":\"213\"},{\"max_supply\":\"378\",\"name\":\"Presidential Debate\",\"total_minted\":\"177\"},{\"max_supply\":\"770\",\"name\":\"Red\",\"total_minted\":\"175\"},{\"max_supply\":\"371\",\"name\":\"Space Station\",\"total_minted\":\"0\"},{\"max_supply\":\"357\",\"name\":\"Striptease bar\",\"total_minted\":\"193\"},{\"max_supply\":\"742\",\"name\":\"Teal\",\"total_minted\":\"185\"},{\"max_supply\":\"364\",\"name\":\"Under the sea\",\"total_minted\":\"0\"},{\"max_supply\":\"735\",\"name\":\"Yellow\",\"total_minted\":\"0\"}]},{\"hash\":\"14844124005448250155\",\"key\":\"Badge\",\"value\":[{\"max_supply\":\"413\",\"name\":\"Aptos badge\",\"total_minted\":\"198\"},{\"max_supply\":\"371\",\"name\":\"Artist badge\",\"total_minted\":\"196\"},{\"max_supply\":\"406\",\"name\":\"Buidler badge\",\"total_minted\":\"188\"},{\"max_supply\":\"399\",\"name\":\"CEO badge\",\"total_minted\":\"0\"},{\"max_supply\":\"441\",\"name\":\"CRED badge\",\"total_minted\":\"178\"},{\"max_supply\":\"406\",\"name\":\"CTO badge\",\"total_minted\":\"190\"},{\"max_supply\":\"392\",\"name\":\"Degen badge\",\"total_minted\":\"192\"},{\"max_supply\":\"406\",\"name\":\"Diamond hands badge\",\"total_minted\":\"210\"},{\"max_supply\":\"448\",\"name\":\"Engineer badge\",\"total_minted\":\"199\"},{\"max_supply\":\"448\",\"name\":\"Flipper badge\",\"total_minted\":\"172\"},{\"max_supply\":\"406\",\"name\":\"Fudder badge\",\"total_minted\":\"212\"},{\"max_supply\":\"413\",\"name\":\"Growth badge\",\"total_minted\":\"0\"},{\"max_supply\":\"392\",\"name\":\"OG badge\",\"total_minted\":\"0\"},{\"max_supply\":\"448\",\"name\":\"Shiller badge\",\"total_minted\":\"0\"},{\"max_supply\":\"399\",\"name\":\"Staker badge\",\"total_minted\":\"0\"},{\"max_supply\":\"420\",\"name\":\"TowneSquare badge\",\"total_minted\":\"0\"},{\"max_supply\":\"392\",\"name\":\"Whale badge\",\"total_minted\":\"0\"}]},{\"hash\":\"4637345496242374709\",\"key\":\"Clothing\",\"value\":[{\"max_supply\":\"266\",\"name\":\"Admiral\",\"total_minted\":\"0\"},{\"max_supply\":\"91\",\"name\":\"Aligator suit\",\"total_minted\":\"198\"},{\"max_supply\":\"182\",\"name\":\"Aptos 2023 World Tour t-shirt\",\"total_minted\":\"211\"},{\"max_supply\":\"161\",\"name\":\"Aptos 2024 Ecosystem Summit Hoodie\",\"total_minted\":\"0\"},{\"max_supply\":\"175\",\"name\":\"Aptos HK t-shirt\",\"total_minted\":\"0\"},{\"max_supply\":\"189\",\"name\":\"Aptos Hack Holland t-shirt\",\"total_minted\":\"0\"},{\"max_supply\":\"175\",\"name\":\"Aptos Hack Singapore t-shirt\",\"total_minted\":\"205\"},{\"max_supply\":\"175\",\"name\":\"Aptos hoodie\",\"total_minted\":\"0\"},{\"max_supply\":\"168\",\"name\":\"Aptos shirt\",\"total_minted\":\"0\"},{\"max_supply\":\"84\",\"name\":\"Bee robot suit\",\"total_minted\":\"0\"},{\"max_supply\":\"266\",\"name\":\"Bread neckless\",\"total_minted\":\"0\"},{\"max_supply\":\"161\",\"name\":\"Cyber rebel\",\"total_minted\":\"198\"},{\"max_supply\":\"350\",\"name\":\"Equalizer t-shirt\",\"total_minted\":\"0\"},{\"max_supply\":\"182\",\"name\":\"Inu hoodie\",\"total_minted\":\"0\"},{\"max_supply\":\"189\",\"name\":\"Johnny Silverhand vest\",\"total_minted\":\"0\"},{\"max_supply\":\"70\",\"name\":\"Latex belts\",\"total_minted\":\"183\"},{\"max_supply\":\"329\",\"name\":\"Mandarin shirt\",\"total_minted\":\"0\"},{\"max_supply\":\"343\",\"name\":\"Maori cloak\",\"total_minted\":\"202\"},{\"max_supply\":\"168\",\"name\":\"Mingos feather boa\",\"total_minted\":\"166\"},{\"max_supply\":\"154\",\"name\":\"Monkey suit\",\"total_minted\":\"203\"},{\"max_supply\":\"308\",\"name\":\"Pimp\",\"total_minted\":\"180\"},{\"max_supply\":\"322\",\"name\":\"Ripped shirt\",\"total_minted\":\"189\"},{\"max_supply\":\"322\",\"name\":\"Roman toga\",\"total_minted\":\"0\"},{\"max_supply\":\"266\",\"name\":\"Samurai\",\"total_minted\":\"0\"},{\"max_supply\":\"175\",\"name\":\"Snowboard jacket\",\"total_minted\":\"0\"},{\"max_supply\":\"329\",\"name\":\"Space suit\",\"total_minted\":\"0\"},{\"max_supply\":\"350\",\"name\":\"Terminator\",\"total_minted\":\"0\"},{\"max_supply\":\"175\",\"name\":\"Terracotta armor\",\"total_minted\":\"0\"},{\"max_supply\":\"350\",\"name\":\"Top gun t-shirt\",\"total_minted\":\"0\"},{\"max_supply\":\"273\",\"name\":\"Turtleneck\",\"total_minted\":\"0\"},{\"max_supply\":\"252\",\"name\":\"WWI trench coat\",\"total_minted\":\"0\"}]},{\"hash\":\"3384708879960920081\",\"key\":\"Eyes\",\"value\":[{\"max_supply\":\"504\",\"name\":\"Anxious\",\"total_minted\":\"0\"},{\"max_supply\":\"210\",\"name\":\"Apple Vision pro\",\"total_minted\":\"0\"},{\"max_supply\":\"231\",\"name\":\"Aptos glasses\",\"total_minted\":\"170\"},{\"max_supply\":\"434\",\"name\":\"Aviator sunglasses\",\"total_minted\":\"189\"},{\"max_supply\":\"399\",\"name\":\"Between the two ferns gum\",\"total_minted\":\"232\"},{\"max_supply\":\"329\",\"name\":\"Crying rainbows\",\"total_minted\":\"0\"},{\"max_supply\":\"238\",\"name\":\"Diving mask\",\"total_minted\":\"0\"},{\"max_supply\":\"504\",\"name\":\"Who cares\",\"total_minted\":\"0\"},{\"max_supply\":\"504\",\"name\":\"Doubtful\",\"total_minted\":\"185\"},{\"max_supply\":\"147\",\"name\":\"Gansta sunglasses\",\"total_minted\":\"190\"},{\"max_supply\":\"434\",\"name\":\"Google glasses\",\"total_minted\":\"177\"},{\"max_supply\":\"91\",\"name\":\"Laser eyes\",\"total_minted\":\"206\"},{\"max_supply\":\"210\",\"name\":\"Night goggles\",\"total_minted\":\"202\"},{\"max_supply\":\"350\",\"name\":\"Noggles\",\"total_minted\":\"0\"},{\"max_supply\":\"238\",\"name\":\"Checkered sunglasses\",\"total_minted\":\"193\"},{\"max_supply\":\"266\",\"name\":\"Pirate patch\",\"total_minted\":\"0\"},{\"max_supply\":\"357\",\"name\":\"Red mirrored sunglasses\",\"total_minted\":\"0\"},{\"max_supply\":\"504\",\"name\":\"Sleepy\",\"total_minted\":\"0\"},{\"max_supply\":\"357\",\"name\":\"Steve Jobs glasses\",\"total_minted\":\"0\"},{\"max_supply\":\"238\",\"name\":\"Sunglasses\",\"total_minted\":\"191\"},{\"max_supply\":\"455\",\"name\":\"Valve eye\",\"total_minted\":\"0\"}]},{\"hash\":\"10856691383664395181\",\"key\":\"Mouth\",\"value\":[{\"max_supply\":\"336\",\"name\":\"Aptos bandana\",\"total_minted\":\"194\"},{\"max_supply\":\"602\",\"name\":\"Band aid\",\"total_minted\":\"173\"},{\"max_supply\":\"154\",\"name\":\"Bubble gum\",\"total_minted\":\"220\"},{\"max_supply\":\"308\",\"name\":\"Carrot lover\",\"total_minted\":\"209\"},{\"max_supply\":\"133\",\"name\":\"Cigar\",\"total_minted\":\"208\"},{\"max_supply\":\"441\",\"name\":\"Ciggy\",\"total_minted\":\"0\"},{\"max_supply\":\"469\",\"name\":\"Covid cough\",\"total_minted\":\"0\"},{\"max_supply\":\"595\",\"name\":\"Drooling\",\"total_minted\":\"0\"},{\"max_supply\":\"567\",\"name\":\"Evil smile\",\"total_minted\":\"0\"},{\"max_supply\":\"147\",\"name\":\"Godzilla fire\",\"total_minted\":\"0\"},{\"max_supply\":\"644\",\"name\":\"Humpf\",\"total_minted\":\"196\"},{\"max_supply\":\"595\",\"name\":\"Lip biting\",\"total_minted\":\"177\"},{\"max_supply\":\"448\",\"name\":\"Nah\",\"total_minted\":\"203\"},{\"max_supply\":\"329\",\"name\":\"Santa beard\",\"total_minted\":\"180\"},{\"max_supply\":\"336\",\"name\":\"Uneaten leaves\",\"total_minted\":\"175\"},{\"max_supply\":\"448\",\"name\":\"Vape\",\"total_minted\":\"0\"},{\"max_supply\":\"448\",\"name\":\"Yelling\",\"total_minted\":\"0\"}]},{\"hash\":\"16341955814830689751\",\"key\":\"Body\",\"value\":[{\"max_supply\":\"994\",\"name\":\"Beetroot\",\"total_minted\":\"667\"},{\"max_supply\":\"231\",\"name\":\"Ghost\",\"total_minted\":\"327\"},{\"max_supply\":\"238\",\"name\":\"Golden\",\"total_minted\":\"317\"},{\"max_supply\":\"952\",\"name\":\"Hazelnut\",\"total_minted\":\"340\"},{\"max_supply\":\"938\",\"name\":\"Marshmallow\",\"total_minted\":\"0\"},{\"max_supply\":\"1008\",\"name\":\"OG\",\"total_minted\":\"306\"},{\"max_supply\":\"490\",\"name\":\"Panda\",\"total_minted\":\"353\"},{\"max_supply\":\"742\",\"name\":\"Solar Spiral\",\"total_minted\":\"325\"},{\"max_supply\":\"910\",\"name\":\"Wheat\",\"total_minted\":\"353\"},{\"max_supply\":\"497\",\"name\":\"Zombie\",\"total_minted\":\"319\"}]}]", + "valueType": "vector<0x1::smart_table::Entry<0x1::string::String, vector<0xd85adb3c424c398d5017ad1d20b63ce8b3373a651a484ff2b473aa93d3357296::studio::Variant>>>" + } + } + }, + { + "type": "TYPE_WRITE_TABLE_ITEM", + "writeTableItem": { + "stateKeyHash": "bkso1A+YoQamUWNTCSTA3LQME0nTqpFdEItNbPwd2xk=", + "handle": "0x1b854694ae746cdbd8d44186ca4929b2b337df21d1c74633be19b2710552fdca", + "key": "0x0619dc29a0aac8fa146714058e8dd6d2d0f3bdf5f6331907bf91f3acd81e6935", + "data": { + "key": "\"0x619dc29a0aac8fa146714058e8dd6d2d0f3bdf5f6331907bf91f3acd81e6935\"", + "keyType": "address", + "value": "\"111828164763274232\"", + "valueType": "u128" + } + } + } + ] + }, + "epoch": "8658", + "blockHeight": "232618353", + "type": "TRANSACTION_TYPE_USER", + "sizeInfo": { + "transactionBytes": 248, + "eventSizeInfo": [ + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 70, + "totalBytes": 71 + }, + { + "typeTagBytes": 50, + "totalBytes": 122 + }, + { + "typeTagBytes": 69, + "totalBytes": 272 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 70, + "totalBytes": 71 + }, + { + "typeTagBytes": 50, + "totalBytes": 122 + }, + { + "typeTagBytes": 69, + "totalBytes": 252 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 70, + "totalBytes": 71 + }, + { + "typeTagBytes": 50, + "totalBytes": 122 + }, + { + "typeTagBytes": 69, + "totalBytes": 256 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 70, + "totalBytes": 71 + }, + { + "typeTagBytes": 50, + "totalBytes": 122 + }, + { + "typeTagBytes": 69, + "totalBytes": 290 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 70, + "totalBytes": 71 + }, + { + "typeTagBytes": 50, + "totalBytes": 122 + }, + { + "typeTagBytes": 69, + "totalBytes": 256 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 70, + "totalBytes": 71 + }, + { + "typeTagBytes": 50, + "totalBytes": 122 + }, + { + "typeTagBytes": 69, + "totalBytes": 242 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 68, + "totalBytes": 192 + }, + { + "typeTagBytes": 50, + "totalBytes": 154 + }, + { + "typeTagBytes": 50, + "totalBytes": 314 + }, + { + "typeTagBytes": 63, + "totalBytes": 103 + } + ], + "writeOpSizeInfo": [ + { + "keyBytes": 138, + "valueBytes": 105 + }, + { + "keyBytes": 84, + "valueBytes": 147 + }, + { + "keyBytes": 80, + "valueBytes": 6 + }, + { + "keyBytes": 87, + "valueBytes": 991 + }, + { + "keyBytes": 87, + "valueBytes": 142 + }, + { + "keyBytes": 87, + "valueBytes": 1204 + }, + { + "keyBytes": 80, + "valueBytes": 5 + }, + { + "keyBytes": 87, + "valueBytes": 1039 + }, + { + "keyBytes": 80, + "valueBytes": 9 + }, + { + "keyBytes": 87, + "valueBytes": 995 + }, + { + "keyBytes": 80, + "valueBytes": 11 + }, + { + "keyBytes": 87, + "valueBytes": 1015 + }, + { + "keyBytes": 80, + "valueBytes": 6 + }, + { + "keyBytes": 87, + "valueBytes": 981 + }, + { + "keyBytes": 87, + "valueBytes": 1322 + }, + { + "keyBytes": 80, + "valueBytes": 4 + }, + { + "keyBytes": 87, + "valueBytes": 995 + }, + { + "keyBytes": 87, + "valueBytes": 996 + }, + { + "keyBytes": 42, + "valueBytes": 649 + }, + { + "keyBytes": 42, + "valueBytes": 3240 + }, + { + "keyBytes": 66, + "valueBytes": 16 + } + ] + }, + "user": { + "request": { + "sender": "0x23f012877d031cb49f2ef943e982fd92b9ca442e767755565af35174c42c7576", + "sequenceNumber": "48", + "maxGasAmount": "15470", + "gasUnitPrice": "100", + "expirationTimestampSecs": { + "seconds": "1727585638" + }, + "payload": { + "type": "TYPE_ENTRY_FUNCTION_PAYLOAD", + "entryFunctionPayload": { + "function": { + "module": { + "address": "0xca4118f383cfdea6132bd4017b01fcc21362dc2fd6181855cd1e737b3fc5af19", + "name": "unveil" + }, + "name": "unveil" + }, + "arguments": [ + "[\"0x3e283e49688122126bc25b2c643f4fd31bf63b23d8bebd305c2366e9cd450219\"]" + ], + "entryFunctionIdStr": "0xca4118f383cfdea6132bd4017b01fcc21362dc2fd6181855cd1e737b3fc5af19::unveil::unveil" + } + }, + "signature": { + "type": "TYPE_ED25519", + "ed25519": { + "publicKey": "j39af8CwJXyeeLwvO50mnvH4KGQ9S8d5qZgZbea9pLA=", + "signature": "YbLpFSjckXszZQ7TdNf/kQxHC+d/gABdMgFq4NkacxeznGH9+TU8KdLOOHfcKYrjzyc2Ms5+riaWvRL+JqehBw==" + } + } + }, + "events": [ + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0xf8766b420ce5d2a6c2016368e58d6b13df6cc19a4c8d2a19e8696ecdf0e9907d" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0x7bc33fea1f7f5e7dc023c5cb041d0aadd664c8f738f619829095c19a9cc34e0\",\"object\":\"0xf8766b420ce5d2a6c2016368e58d6b13df6cc19a4c8d2a19e8696ecdf0e9907d\",\"to\":\"0x23f012877d031cb49f2ef943e982fd92b9ca442e767755565af35174c42c7576\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "randomness", + "name": "RandomnessGeneratedEvent" + } + }, + "typeStr": "0x1::randomness::RandomnessGeneratedEvent", + "data": "{\"dummy_field\":false}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "Mint" + } + }, + "typeStr": "0x4::collection::Mint", + "data": "{\"collection\":\"0xd82f5841196bf66232316dc61188947583f418346b72758c0f45827cc5838617\",\"index\":{\"value\":\"18219\"},\"token\":\"0xb3d0919e44131593a5a30a96ac52c3ffbad58cee217a99c9ad0516effdb65bdb\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0xd758b832d4d8fcad58ac7363a6b87af342a6e0dfd25897aa65233c606526e8f4", + "module": "composable_token", + "name": "TraitCreatedEvent" + } + }, + "typeStr": "0xd758b832d4d8fcad58ac7363a6b87af342a6e0dfd25897aa65233c606526e8f4::composable_token::TraitCreatedEvent", + "data": "{\"metadata\":{\"burnable\":true,\"creator\":\"0x7bc33fea1f7f5e7dc023c5cb041d0aadd664c8f738f619829095c19a9cc34e0\",\"mutable_description\":true,\"mutable_name\":true,\"mutable_properties\":true,\"mutable_uri\":true,\"name\":\"Presidential Debate #177\",\"token_address\":\"0xb3d0919e44131593a5a30a96ac52c3ffbad58cee217a99c9ad0516effdb65bdb\",\"transferable\":true,\"uri\":\"https://bafybeidczv6obpjiky2iircpdpqa4jqn3flzjfbf454in6abmjrnlyekdm.ipfs.w3s.link/Presidential%20Debate.png\"}}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0xb3d0919e44131593a5a30a96ac52c3ffbad58cee217a99c9ad0516effdb65bdb" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0x7bc33fea1f7f5e7dc023c5cb041d0aadd664c8f738f619829095c19a9cc34e0\",\"object\":\"0xb3d0919e44131593a5a30a96ac52c3ffbad58cee217a99c9ad0516effdb65bdb\",\"to\":\"0x23f012877d031cb49f2ef943e982fd92b9ca442e767755565af35174c42c7576\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "randomness", + "name": "RandomnessGeneratedEvent" + } + }, + "typeStr": "0x1::randomness::RandomnessGeneratedEvent", + "data": "{\"dummy_field\":false}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "Mint" + } + }, + "typeStr": "0x4::collection::Mint", + "data": "{\"collection\":\"0xd82f5841196bf66232316dc61188947583f418346b72758c0f45827cc5838617\",\"index\":{\"value\":\"18220\"},\"token\":\"0x2745a79598f1994359c876b889f0bc2d9f4f067598fb38fcb87c6f29bf353c4e\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0xd758b832d4d8fcad58ac7363a6b87af342a6e0dfd25897aa65233c606526e8f4", + "module": "composable_token", + "name": "TraitCreatedEvent" + } + }, + "typeStr": "0xd758b832d4d8fcad58ac7363a6b87af342a6e0dfd25897aa65233c606526e8f4::composable_token::TraitCreatedEvent", + "data": "{\"metadata\":{\"burnable\":true,\"creator\":\"0x7bc33fea1f7f5e7dc023c5cb041d0aadd664c8f738f619829095c19a9cc34e0\",\"mutable_description\":true,\"mutable_name\":true,\"mutable_properties\":true,\"mutable_uri\":true,\"name\":\"CTO badge #190\",\"token_address\":\"0x2745a79598f1994359c876b889f0bc2d9f4f067598fb38fcb87c6f29bf353c4e\",\"transferable\":true,\"uri\":\"https://bafybeidczv6obpjiky2iircpdpqa4jqn3flzjfbf454in6abmjrnlyekdm.ipfs.w3s.link/CTO%20badge.png\"}}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x2745a79598f1994359c876b889f0bc2d9f4f067598fb38fcb87c6f29bf353c4e" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0x7bc33fea1f7f5e7dc023c5cb041d0aadd664c8f738f619829095c19a9cc34e0\",\"object\":\"0x2745a79598f1994359c876b889f0bc2d9f4f067598fb38fcb87c6f29bf353c4e\",\"to\":\"0x23f012877d031cb49f2ef943e982fd92b9ca442e767755565af35174c42c7576\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "randomness", + "name": "RandomnessGeneratedEvent" + } + }, + "typeStr": "0x1::randomness::RandomnessGeneratedEvent", + "data": "{\"dummy_field\":false}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "Mint" + } + }, + "typeStr": "0x4::collection::Mint", + "data": "{\"collection\":\"0xd82f5841196bf66232316dc61188947583f418346b72758c0f45827cc5838617\",\"index\":{\"value\":\"18221\"},\"token\":\"0x87506b7ede0b6b789b846ed4efba7a2a88d942cb0767132c126a442cc5727614\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0xd758b832d4d8fcad58ac7363a6b87af342a6e0dfd25897aa65233c606526e8f4", + "module": "composable_token", + "name": "TraitCreatedEvent" + } + }, + "typeStr": "0xd758b832d4d8fcad58ac7363a6b87af342a6e0dfd25897aa65233c606526e8f4::composable_token::TraitCreatedEvent", + "data": "{\"metadata\":{\"burnable\":true,\"creator\":\"0x7bc33fea1f7f5e7dc023c5cb041d0aadd664c8f738f619829095c19a9cc34e0\",\"mutable_description\":true,\"mutable_name\":true,\"mutable_properties\":true,\"mutable_uri\":true,\"name\":\"Latex belts #183\",\"token_address\":\"0x87506b7ede0b6b789b846ed4efba7a2a88d942cb0767132c126a442cc5727614\",\"transferable\":true,\"uri\":\"https://bafybeidczv6obpjiky2iircpdpqa4jqn3flzjfbf454in6abmjrnlyekdm.ipfs.w3s.link/Latex%20belts.png\"}}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x87506b7ede0b6b789b846ed4efba7a2a88d942cb0767132c126a442cc5727614" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0x7bc33fea1f7f5e7dc023c5cb041d0aadd664c8f738f619829095c19a9cc34e0\",\"object\":\"0x87506b7ede0b6b789b846ed4efba7a2a88d942cb0767132c126a442cc5727614\",\"to\":\"0x23f012877d031cb49f2ef943e982fd92b9ca442e767755565af35174c42c7576\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "randomness", + "name": "RandomnessGeneratedEvent" + } + }, + "typeStr": "0x1::randomness::RandomnessGeneratedEvent", + "data": "{\"dummy_field\":false}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "Mint" + } + }, + "typeStr": "0x4::collection::Mint", + "data": "{\"collection\":\"0xd82f5841196bf66232316dc61188947583f418346b72758c0f45827cc5838617\",\"index\":{\"value\":\"18222\"},\"token\":\"0x6b9356f75527bcaa4ba1b072c60a209c3dd656c561f437f4500d06ebc7ad1da6\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0xd758b832d4d8fcad58ac7363a6b87af342a6e0dfd25897aa65233c606526e8f4", + "module": "composable_token", + "name": "TraitCreatedEvent" + } + }, + "typeStr": "0xd758b832d4d8fcad58ac7363a6b87af342a6e0dfd25897aa65233c606526e8f4::composable_token::TraitCreatedEvent", + "data": "{\"metadata\":{\"burnable\":true,\"creator\":\"0x7bc33fea1f7f5e7dc023c5cb041d0aadd664c8f738f619829095c19a9cc34e0\",\"mutable_description\":true,\"mutable_name\":true,\"mutable_properties\":true,\"mutable_uri\":true,\"name\":\"Between the two ferns gum #232\",\"token_address\":\"0x6b9356f75527bcaa4ba1b072c60a209c3dd656c561f437f4500d06ebc7ad1da6\",\"transferable\":true,\"uri\":\"https://bafybeidczv6obpjiky2iircpdpqa4jqn3flzjfbf454in6abmjrnlyekdm.ipfs.w3s.link/Between%20the%20two%20ferns%20gum.png\"}}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x6b9356f75527bcaa4ba1b072c60a209c3dd656c561f437f4500d06ebc7ad1da6" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0x7bc33fea1f7f5e7dc023c5cb041d0aadd664c8f738f619829095c19a9cc34e0\",\"object\":\"0x6b9356f75527bcaa4ba1b072c60a209c3dd656c561f437f4500d06ebc7ad1da6\",\"to\":\"0x23f012877d031cb49f2ef943e982fd92b9ca442e767755565af35174c42c7576\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "randomness", + "name": "RandomnessGeneratedEvent" + } + }, + "typeStr": "0x1::randomness::RandomnessGeneratedEvent", + "data": "{\"dummy_field\":false}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "Mint" + } + }, + "typeStr": "0x4::collection::Mint", + "data": "{\"collection\":\"0xd82f5841196bf66232316dc61188947583f418346b72758c0f45827cc5838617\",\"index\":{\"value\":\"18223\"},\"token\":\"0xf3c591391f979146a1500bea12d334c71b69815c47d586b141f7146bcbd7582e\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0xd758b832d4d8fcad58ac7363a6b87af342a6e0dfd25897aa65233c606526e8f4", + "module": "composable_token", + "name": "TraitCreatedEvent" + } + }, + "typeStr": "0xd758b832d4d8fcad58ac7363a6b87af342a6e0dfd25897aa65233c606526e8f4::composable_token::TraitCreatedEvent", + "data": "{\"metadata\":{\"burnable\":true,\"creator\":\"0x7bc33fea1f7f5e7dc023c5cb041d0aadd664c8f738f619829095c19a9cc34e0\",\"mutable_description\":true,\"mutable_name\":true,\"mutable_properties\":true,\"mutable_uri\":true,\"name\":\"Pharaoh hat #205\",\"token_address\":\"0xf3c591391f979146a1500bea12d334c71b69815c47d586b141f7146bcbd7582e\",\"transferable\":true,\"uri\":\"https://bafybeidczv6obpjiky2iircpdpqa4jqn3flzjfbf454in6abmjrnlyekdm.ipfs.w3s.link/Pharaoh%20hat.png\"}}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0xf3c591391f979146a1500bea12d334c71b69815c47d586b141f7146bcbd7582e" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0x7bc33fea1f7f5e7dc023c5cb041d0aadd664c8f738f619829095c19a9cc34e0\",\"object\":\"0xf3c591391f979146a1500bea12d334c71b69815c47d586b141f7146bcbd7582e\",\"to\":\"0x23f012877d031cb49f2ef943e982fd92b9ca442e767755565af35174c42c7576\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "randomness", + "name": "RandomnessGeneratedEvent" + } + }, + "typeStr": "0x1::randomness::RandomnessGeneratedEvent", + "data": "{\"dummy_field\":false}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "Mint" + } + }, + "typeStr": "0x4::collection::Mint", + "data": "{\"collection\":\"0xd82f5841196bf66232316dc61188947583f418346b72758c0f45827cc5838617\",\"index\":{\"value\":\"18224\"},\"token\":\"0xc2698511578ed66c31dfd68d0c18dd98745dd3210b7f75476f485c1e7a75454e\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0xd758b832d4d8fcad58ac7363a6b87af342a6e0dfd25897aa65233c606526e8f4", + "module": "composable_token", + "name": "TraitCreatedEvent" + } + }, + "typeStr": "0xd758b832d4d8fcad58ac7363a6b87af342a6e0dfd25897aa65233c606526e8f4::composable_token::TraitCreatedEvent", + "data": "{\"metadata\":{\"burnable\":true,\"creator\":\"0x7bc33fea1f7f5e7dc023c5cb041d0aadd664c8f738f619829095c19a9cc34e0\",\"mutable_description\":true,\"mutable_name\":true,\"mutable_properties\":true,\"mutable_uri\":true,\"name\":\"Cigar #208\",\"token_address\":\"0xc2698511578ed66c31dfd68d0c18dd98745dd3210b7f75476f485c1e7a75454e\",\"transferable\":true,\"uri\":\"https://bafybeidczv6obpjiky2iircpdpqa4jqn3flzjfbf454in6abmjrnlyekdm.ipfs.w3s.link/Cigar.png\"}}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0xc2698511578ed66c31dfd68d0c18dd98745dd3210b7f75476f485c1e7a75454e" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0x7bc33fea1f7f5e7dc023c5cb041d0aadd664c8f738f619829095c19a9cc34e0\",\"object\":\"0xc2698511578ed66c31dfd68d0c18dd98745dd3210b7f75476f485c1e7a75454e\",\"to\":\"0x23f012877d031cb49f2ef943e982fd92b9ca442e767755565af35174c42c7576\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0xd758b832d4d8fcad58ac7363a6b87af342a6e0dfd25897aa65233c606526e8f4", + "module": "composable_token", + "name": "TokenBurnedEvent" + } + }, + "typeStr": "0xd758b832d4d8fcad58ac7363a6b87af342a6e0dfd25897aa65233c606526e8f4::composable_token::TokenBurnedEvent", + "data": "{\"token_addr\":\"0x3e283e49688122126bc25b2c643f4fd31bf63b23d8bebd305c2366e9cd450219\",\"token_type\":\"0xd758b832d4d8fcad58ac7363a6b87af342a6e0dfd25897aa65233c606526e8f4::composable_token::Trait\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "Burn" + } + }, + "typeStr": "0x4::collection::Burn", + "data": "{\"collection\":\"0x53858a7a4b6faf7cb2d198efe80351abc658d9cefcd2e95587f3d473cc90a041\",\"index\":\"2276\",\"previous_owner\":\"0x23f012877d031cb49f2ef943e982fd92b9ca442e767755565af35174c42c7576\",\"token\":\"0x3e283e49688122126bc25b2c643f4fd31bf63b23d8bebd305c2366e9cd450219\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0xca4118f383cfdea6132bd4017b01fcc21362dc2fd6181855cd1e737b3fc5af19", + "module": "unveil", + "name": "Unveiled" + } + }, + "typeStr": "0xca4118f383cfdea6132bd4017b01fcc21362dc2fd6181855cd1e737b3fc5af19::unveil::Unveiled", + "data": "{\"backgrounds\":[\"0xb3d0919e44131593a5a30a96ac52c3ffbad58cee217a99c9ad0516effdb65bdb\"],\"badges\":[\"0x2745a79598f1994359c876b889f0bc2d9f4f067598fb38fcb87c6f29bf353c4e\"],\"clothings\":[\"0x87506b7ede0b6b789b846ed4efba7a2a88d942cb0767132c126a442cc5727614\"],\"cool_sloths\":[\"0xf8766b420ce5d2a6c2016368e58d6b13df6cc19a4c8d2a19e8696ecdf0e9907d\"],\"eyes\":[\"0x6b9356f75527bcaa4ba1b072c60a209c3dd656c561f437f4500d06ebc7ad1da6\"],\"hats\":[\"0xf3c591391f979146a1500bea12d334c71b69815c47d586b141f7146bcbd7582e\"],\"mouths\":[\"0xc2698511578ed66c31dfd68d0c18dd98745dd3210b7f75476f485c1e7a75454e\"],\"sloth_balls\":[\"0x3e283e49688122126bc25b2c643f4fd31bf63b23d8bebd305c2366e9cd450219\"]}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "transaction_fee", + "name": "FeeStatement" + } + }, + "typeStr": "0x1::transaction_fee::FeeStatement", + "data": "{\"execution_gas_units\":\"92\",\"io_gas_units\":\"37\",\"storage_fee_octas\":\"761400\",\"storage_fee_refund_octas\":\"0\",\"total_charge_gas_units\":\"7742\"}" + } + ] + } +} \ No newline at end of file diff --git a/ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/imported_mainnet_txns/255894550_storage_refund.json b/ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/imported_mainnet_txns/255894550_storage_refund.json new file mode 100644 index 0000000000000..da3e3b75ebfdf --- /dev/null +++ b/ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/imported_mainnet_txns/255894550_storage_refund.json @@ -0,0 +1,23 @@ +{ + "timestamp": { + "seconds": "1694228455", + "nanos": 473723000 + }, + "version": "255894550", + "info": { + "hash": "GXSBkig3KghxKseuY0k30xLD2f5A9F+yf0abUBNkw1w=", + "stateChangeHash": "r7bhT+R9hQ/Qpzlbz7mX/6z0cV4PiVzBYsIY5KdWS8Y=", + "eventRootHash": "QUNDVU1VTEFUT1JfUExBQ0VIT0xERVJfSEFTSAAAAAA=", + "stateCheckpointHash": "wkbg6jY5H79os91pqlJy1HDLVC58GMKtisx7u8dH8TE=", + "success": true, + "vmStatus": "Executed successfully", + "accumulatorRootHash": "i/yenPYCAqcYwZUBzJUsk5W9fEoqSvoSI8gpOxhZwAo=" + }, + "epoch": "3986", + "blockHeight": "90298837", + "type": "TRANSACTION_TYPE_STATE_CHECKPOINT", + "sizeInfo": { + "transactionBytes": 33 + }, + "stateCheckpoint": {} +} \ No newline at end of file diff --git a/ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/imported_mainnet_txns/445585423_token_mint_and_burn_event.json b/ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/imported_mainnet_txns/445585423_token_mint_and_burn_event.json new file mode 100644 index 0000000000000..0b06cfd7ec54d --- /dev/null +++ b/ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/imported_mainnet_txns/445585423_token_mint_and_burn_event.json @@ -0,0 +1,24125 @@ +{ + "timestamp": { + "seconds": "1707555280", + "nanos": 450699000 + }, + "version": "445585423", + "info": { + "hash": "HUr+WFJYiXxxo9TMvVlhBqFIZ8j7QvR2ZMs4goqu9bw=", + "stateChangeHash": "i5uE1tqwi+pE6esrR4fmIsruWf8SQ3njyVhxBSFnFTI=", + "eventRootHash": "H0y37Szkig+DCqjqsHIK02X+HP1ai/FFoptKC06r4Wc=", + "gasUsed": "135236", + "success": true, + "vmStatus": "Executed successfully", + "accumulatorRootHash": "V81u9FM+CJ1ANZM0OsUxTSvZ1StYlVWp9og5Le0uua0=", + "changes": [ + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x6129475c1b93fbd5d1416a65544c289fda4b8027785d8d3017f00a882e5a7a", + "stateKeyHash": "1i6zRL45hmSIBkLkL71P239j9REEXTDH/abCAlz4Znk=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231039\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x3b82687f5e8900b38b2c122ea1711f73938c8ed46fe5fb081019b288fb6bb4c", + "stateKeyHash": "4qU7+kxRTdKROATOlzrwxRhMjx6l9/h5Oe0/flPPDUE=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230987\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x95f24cad84a6c1968c55f174413f948a03f36791498ba16b916a5e83512f239", + "stateKeyHash": "pFzaccOZ38dtfK/odIAx2pXalD0hdnaEz2rV26Z7mRE=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0x95f24cad84a6c1968c55f174413f948a03f36791498ba16b916a5e83512f239\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0x95f24cad84a6c1968c55f174413f948a03f36791498ba16b916a5e83512f239\"},\"mutator\":{\"self\":\"0x95f24cad84a6c1968c55f174413f948a03f36791498ba16b916a5e83512f239\"},\"name\":\"APTS #1230972\",\"propertyMutatorRef\":{\"self\":\"0x95f24cad84a6c1968c55f174413f948a03f36791498ba16b916a5e83512f239\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x95f24cad84a6c1968c55f174413f948a03f36791498ba16b916a5e83512f239", + "stateKeyHash": "AseEAy6zVM5f8tiubwUI2iSr9a2nGQroYLMuOzT91PE=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0x86e1c5e7fa0fbd64cec5b3cadc3af1fba59573c9150941dc864894c021360669\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0x95f24cad84a6c1968c55f174413f948a03f36791498ba16b916a5e83512f239\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x95f24cad84a6c1968c55f174413f948a03f36791498ba16b916a5e83512f239", + "stateKeyHash": "AseEAy6zVM5f8tiubwUI2iSr9a2nGQroYLMuOzT91PE=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x95f24cad84a6c1968c55f174413f948a03f36791498ba16b916a5e83512f239", + "stateKeyHash": "AseEAy6zVM5f8tiubwUI2iSr9a2nGQroYLMuOzT91PE=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026222\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0x95f24cad84a6c1968c55f174413f948a03f36791498ba16b916a5e83512f239\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1230972\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x95f24cad84a6c1968c55f174413f948a03f36791498ba16b916a5e83512f239", + "stateKeyHash": "AseEAy6zVM5f8tiubwUI2iSr9a2nGQroYLMuOzT91PE=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230972\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xb8e17eb44ed8289d72af3f474f32c3882c108c93f40f7e744473ecf3511162c", + "stateKeyHash": "WxNNevNzjGRgAUXEq6NS3idvK6OoVWbz4eRC7d4Qto0=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0xb8e17eb44ed8289d72af3f474f32c3882c108c93f40f7e744473ecf3511162c\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0xb8e17eb44ed8289d72af3f474f32c3882c108c93f40f7e744473ecf3511162c\"},\"mutator\":{\"self\":\"0xb8e17eb44ed8289d72af3f474f32c3882c108c93f40f7e744473ecf3511162c\"},\"name\":\"APTS #1231032\",\"propertyMutatorRef\":{\"self\":\"0xb8e17eb44ed8289d72af3f474f32c3882c108c93f40f7e744473ecf3511162c\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xb8e17eb44ed8289d72af3f474f32c3882c108c93f40f7e744473ecf3511162c", + "stateKeyHash": "M0of5IUfWfenHWVdU/AISjMDvYKvnxfVGNEqIT59D7o=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0x2cbbc3d50a6cdbffbcad8429068af937f82476908a55bba7e512fd61e351bcc0\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0xb8e17eb44ed8289d72af3f474f32c3882c108c93f40f7e744473ecf3511162c\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xb8e17eb44ed8289d72af3f474f32c3882c108c93f40f7e744473ecf3511162c", + "stateKeyHash": "M0of5IUfWfenHWVdU/AISjMDvYKvnxfVGNEqIT59D7o=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xb8e17eb44ed8289d72af3f474f32c3882c108c93f40f7e744473ecf3511162c", + "stateKeyHash": "M0of5IUfWfenHWVdU/AISjMDvYKvnxfVGNEqIT59D7o=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026282\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0xb8e17eb44ed8289d72af3f474f32c3882c108c93f40f7e744473ecf3511162c\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1231032\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xb8e17eb44ed8289d72af3f474f32c3882c108c93f40f7e744473ecf3511162c", + "stateKeyHash": "M0of5IUfWfenHWVdU/AISjMDvYKvnxfVGNEqIT59D7o=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231032\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xceb2d925dc0eb685954398093930d3980b40db650833dbe10c54614832d71c8", + "stateKeyHash": "ytEIbopxFYmNZn1aIQRZDMzMPJJlNR/jWFmOOwE5e1g=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0xceb2d925dc0eb685954398093930d3980b40db650833dbe10c54614832d71c8\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0xceb2d925dc0eb685954398093930d3980b40db650833dbe10c54614832d71c8\"},\"mutator\":{\"self\":\"0xceb2d925dc0eb685954398093930d3980b40db650833dbe10c54614832d71c8\"},\"name\":\"APTS #1231014\",\"propertyMutatorRef\":{\"self\":\"0xceb2d925dc0eb685954398093930d3980b40db650833dbe10c54614832d71c8\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xceb2d925dc0eb685954398093930d3980b40db650833dbe10c54614832d71c8", + "stateKeyHash": "bJx5nOsT6lB6vyc+YgG8blCq+XeIOafLLH1xuUe6mTI=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0x2eb29ae570cbcb6d502cd1d74c9a9091a673e1cbe049fc4fccda3fdd9b6c2205\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0xceb2d925dc0eb685954398093930d3980b40db650833dbe10c54614832d71c8\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xceb2d925dc0eb685954398093930d3980b40db650833dbe10c54614832d71c8", + "stateKeyHash": "bJx5nOsT6lB6vyc+YgG8blCq+XeIOafLLH1xuUe6mTI=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xceb2d925dc0eb685954398093930d3980b40db650833dbe10c54614832d71c8", + "stateKeyHash": "bJx5nOsT6lB6vyc+YgG8blCq+XeIOafLLH1xuUe6mTI=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026264\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0xceb2d925dc0eb685954398093930d3980b40db650833dbe10c54614832d71c8\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1231014\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xceb2d925dc0eb685954398093930d3980b40db650833dbe10c54614832d71c8", + "stateKeyHash": "bJx5nOsT6lB6vyc+YgG8blCq+XeIOafLLH1xuUe6mTI=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231014\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x10c7ea1c24afe6354c7145976fe26d98be8fb052c8d3ddbfb49205a2b2684a16", + "stateKeyHash": "1ltZUnaF+URV2fJ39+j4jr042Q4RZSJd+pqqfD4COAk=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230955\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x13c0af471aa39752bb4422b1a82fa631c73e32b6c3ee34818d4fb6377dfd85e0", + "stateKeyHash": "OScajnHmYSw+L/U/t0GOW2SPNi5cyadgnKa9+iqSfa8=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0x13c0af471aa39752bb4422b1a82fa631c73e32b6c3ee34818d4fb6377dfd85e0\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0x13c0af471aa39752bb4422b1a82fa631c73e32b6c3ee34818d4fb6377dfd85e0\"},\"mutator\":{\"self\":\"0x13c0af471aa39752bb4422b1a82fa631c73e32b6c3ee34818d4fb6377dfd85e0\"},\"name\":\"APTS #1231006\",\"propertyMutatorRef\":{\"self\":\"0x13c0af471aa39752bb4422b1a82fa631c73e32b6c3ee34818d4fb6377dfd85e0\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x13c0af471aa39752bb4422b1a82fa631c73e32b6c3ee34818d4fb6377dfd85e0", + "stateKeyHash": "rPYWzRDjhPe6NhUN+YtfoFERrBLp/OZR65SkTHnx54k=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0x49ea037d742dc2e5095dac4f4b0cecb1ce50d7483849f6c35f84deab611381bc\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0x13c0af471aa39752bb4422b1a82fa631c73e32b6c3ee34818d4fb6377dfd85e0\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x13c0af471aa39752bb4422b1a82fa631c73e32b6c3ee34818d4fb6377dfd85e0", + "stateKeyHash": "rPYWzRDjhPe6NhUN+YtfoFERrBLp/OZR65SkTHnx54k=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x13c0af471aa39752bb4422b1a82fa631c73e32b6c3ee34818d4fb6377dfd85e0", + "stateKeyHash": "rPYWzRDjhPe6NhUN+YtfoFERrBLp/OZR65SkTHnx54k=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026256\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0x13c0af471aa39752bb4422b1a82fa631c73e32b6c3ee34818d4fb6377dfd85e0\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1231006\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x13c0af471aa39752bb4422b1a82fa631c73e32b6c3ee34818d4fb6377dfd85e0", + "stateKeyHash": "rPYWzRDjhPe6NhUN+YtfoFERrBLp/OZR65SkTHnx54k=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231006\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x13d007e71290aba96133fe1f78f2dad54a5582322754082d9e4cf455a72de0f6", + "stateKeyHash": "as3p7pHem3WmzK+/OtD3hHWHJxIXLykws4NrFHDDzmc=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230961\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x14a94efe40cf9ecc0e760ef4b3cb3ce42e56f9e0d437a9a6d612f894e583c810", + "stateKeyHash": "lrvJX8d0JvIPAMFEbdAFRMmmQOI2s7O7E1Lphy562UQ=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0x14a94efe40cf9ecc0e760ef4b3cb3ce42e56f9e0d437a9a6d612f894e583c810\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0x14a94efe40cf9ecc0e760ef4b3cb3ce42e56f9e0d437a9a6d612f894e583c810\"},\"mutator\":{\"self\":\"0x14a94efe40cf9ecc0e760ef4b3cb3ce42e56f9e0d437a9a6d612f894e583c810\"},\"name\":\"APTS #1230948\",\"propertyMutatorRef\":{\"self\":\"0x14a94efe40cf9ecc0e760ef4b3cb3ce42e56f9e0d437a9a6d612f894e583c810\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x14a94efe40cf9ecc0e760ef4b3cb3ce42e56f9e0d437a9a6d612f894e583c810", + "stateKeyHash": "hQq6uHMjUXFDshMtC30XnDV/zlQxfmaiBbDFcG3QNW0=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0x588d5a95e2b2296b9bd70f2e4f0ad25cd51b4b0ac98ddf2b9c97ba54cbf7ce35\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0x14a94efe40cf9ecc0e760ef4b3cb3ce42e56f9e0d437a9a6d612f894e583c810\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x14a94efe40cf9ecc0e760ef4b3cb3ce42e56f9e0d437a9a6d612f894e583c810", + "stateKeyHash": "hQq6uHMjUXFDshMtC30XnDV/zlQxfmaiBbDFcG3QNW0=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x14a94efe40cf9ecc0e760ef4b3cb3ce42e56f9e0d437a9a6d612f894e583c810", + "stateKeyHash": "hQq6uHMjUXFDshMtC30XnDV/zlQxfmaiBbDFcG3QNW0=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026198\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0x14a94efe40cf9ecc0e760ef4b3cb3ce42e56f9e0d437a9a6d612f894e583c810\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1230948\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x14a94efe40cf9ecc0e760ef4b3cb3ce42e56f9e0d437a9a6d612f894e583c810", + "stateKeyHash": "hQq6uHMjUXFDshMtC30XnDV/zlQxfmaiBbDFcG3QNW0=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230948\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x154d3a84d47a26f2b38bf23e7b37628ebaddc39acb4bf4283dbeb9a545d9d539", + "stateKeyHash": "uwhUMzSJ+4DUYbpZdI+QiM30MTShLtH3HjguvEwU94c=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230957\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x1585f38615ba78d34792c1ec743c7e65fd384c3a09392bb2b4ee3d47856adf12", + "stateKeyHash": "gVBPqwsDe4PXMBN3EPgNgvcaWrpJnTXUyJ0YKuRITWM=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0x1585f38615ba78d34792c1ec743c7e65fd384c3a09392bb2b4ee3d47856adf12\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0x1585f38615ba78d34792c1ec743c7e65fd384c3a09392bb2b4ee3d47856adf12\"},\"mutator\":{\"self\":\"0x1585f38615ba78d34792c1ec743c7e65fd384c3a09392bb2b4ee3d47856adf12\"},\"name\":\"APTS #1230960\",\"propertyMutatorRef\":{\"self\":\"0x1585f38615ba78d34792c1ec743c7e65fd384c3a09392bb2b4ee3d47856adf12\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x1585f38615ba78d34792c1ec743c7e65fd384c3a09392bb2b4ee3d47856adf12", + "stateKeyHash": "8mHBelBDf1I6XnifKjdZLJotyojZZ6vA4GojGNIcq0k=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0xe9822d70a4155f83dad846e84fa8852f2e9055cea1c704b8399e291999dcc3cc\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0x1585f38615ba78d34792c1ec743c7e65fd384c3a09392bb2b4ee3d47856adf12\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x1585f38615ba78d34792c1ec743c7e65fd384c3a09392bb2b4ee3d47856adf12", + "stateKeyHash": "8mHBelBDf1I6XnifKjdZLJotyojZZ6vA4GojGNIcq0k=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x1585f38615ba78d34792c1ec743c7e65fd384c3a09392bb2b4ee3d47856adf12", + "stateKeyHash": "8mHBelBDf1I6XnifKjdZLJotyojZZ6vA4GojGNIcq0k=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026210\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0x1585f38615ba78d34792c1ec743c7e65fd384c3a09392bb2b4ee3d47856adf12\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1230960\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x1585f38615ba78d34792c1ec743c7e65fd384c3a09392bb2b4ee3d47856adf12", + "stateKeyHash": "8mHBelBDf1I6XnifKjdZLJotyojZZ6vA4GojGNIcq0k=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230960\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x15dbfe329ab3aa71377fde4cfe71277a56e1b1555a1bc28ff695fac9724845db", + "stateKeyHash": "c6LgXQDX+SsYDrR5HDowZEnKlCSBJ4frKrxMAN4q8Oo=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231001\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x1846f25bc3769b4d5bb697656edb09da274563b24cf25d2d4542b4773a091e69", + "stateKeyHash": "sncE2LHEP235bjA+YCetdrTrrFldHsy7vLigffAR2J8=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0x1846f25bc3769b4d5bb697656edb09da274563b24cf25d2d4542b4773a091e69\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0x1846f25bc3769b4d5bb697656edb09da274563b24cf25d2d4542b4773a091e69\"},\"mutator\":{\"self\":\"0x1846f25bc3769b4d5bb697656edb09da274563b24cf25d2d4542b4773a091e69\"},\"name\":\"APTS #1231074\",\"propertyMutatorRef\":{\"self\":\"0x1846f25bc3769b4d5bb697656edb09da274563b24cf25d2d4542b4773a091e69\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x1846f25bc3769b4d5bb697656edb09da274563b24cf25d2d4542b4773a091e69", + "stateKeyHash": "Q+UCqFrwMhfxyUOHhNFWgmzkHVsMhxMrD7cSR0b20w0=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0xd093332d8c44ca57111b2de0935e121d88d4faf83808fe5041d00f2d7ecc1284\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0x1846f25bc3769b4d5bb697656edb09da274563b24cf25d2d4542b4773a091e69\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x1846f25bc3769b4d5bb697656edb09da274563b24cf25d2d4542b4773a091e69", + "stateKeyHash": "Q+UCqFrwMhfxyUOHhNFWgmzkHVsMhxMrD7cSR0b20w0=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x1846f25bc3769b4d5bb697656edb09da274563b24cf25d2d4542b4773a091e69", + "stateKeyHash": "Q+UCqFrwMhfxyUOHhNFWgmzkHVsMhxMrD7cSR0b20w0=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026324\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0x1846f25bc3769b4d5bb697656edb09da274563b24cf25d2d4542b4773a091e69\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1231074\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x1846f25bc3769b4d5bb697656edb09da274563b24cf25d2d4542b4773a091e69", + "stateKeyHash": "Q+UCqFrwMhfxyUOHhNFWgmzkHVsMhxMrD7cSR0b20w0=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231074\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x19ac50c70ea6a015c4413091d4ba5107b40f2ad1b671df0037d11eac8e618ff1", + "stateKeyHash": "qoOFInlw0xmFvCNqt/p/tbK4rAHlfU6V8duqAhivos0=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231031\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x1a1b7865ecc3c0a024e2014ecc36fa912ec044f3b47dc17a788f3ba915d6da5c", + "stateKeyHash": "TAUWl4+RFnTCuYrHlJ50DwsMYBonKURXeSeXbylBg64=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0x1a1b7865ecc3c0a024e2014ecc36fa912ec044f3b47dc17a788f3ba915d6da5c\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0x1a1b7865ecc3c0a024e2014ecc36fa912ec044f3b47dc17a788f3ba915d6da5c\"},\"mutator\":{\"self\":\"0x1a1b7865ecc3c0a024e2014ecc36fa912ec044f3b47dc17a788f3ba915d6da5c\"},\"name\":\"APTS #1230984\",\"propertyMutatorRef\":{\"self\":\"0x1a1b7865ecc3c0a024e2014ecc36fa912ec044f3b47dc17a788f3ba915d6da5c\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x1a1b7865ecc3c0a024e2014ecc36fa912ec044f3b47dc17a788f3ba915d6da5c", + "stateKeyHash": "W1n3EvaXhZ15UdPKON0ruD4HkUCyxuOL5QQ6wwXThK4=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0x865543e0879b471e3885502f99a7cda946bebdeb357f2b983271428678d1a974\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0x1a1b7865ecc3c0a024e2014ecc36fa912ec044f3b47dc17a788f3ba915d6da5c\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x1a1b7865ecc3c0a024e2014ecc36fa912ec044f3b47dc17a788f3ba915d6da5c", + "stateKeyHash": "W1n3EvaXhZ15UdPKON0ruD4HkUCyxuOL5QQ6wwXThK4=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x1a1b7865ecc3c0a024e2014ecc36fa912ec044f3b47dc17a788f3ba915d6da5c", + "stateKeyHash": "W1n3EvaXhZ15UdPKON0ruD4HkUCyxuOL5QQ6wwXThK4=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026234\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0x1a1b7865ecc3c0a024e2014ecc36fa912ec044f3b47dc17a788f3ba915d6da5c\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1230984\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x1a1b7865ecc3c0a024e2014ecc36fa912ec044f3b47dc17a788f3ba915d6da5c", + "stateKeyHash": "W1n3EvaXhZ15UdPKON0ruD4HkUCyxuOL5QQ6wwXThK4=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230984\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x1a91863a266e7b797caa39f5f2e49d41db075551e057932dc3f3e176a04f6177", + "stateKeyHash": "mxjIApVztPwykMsi3XGvz21i1gyNQMrl0+14L6dkhcA=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231055\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x1df7c6dd02885b9e9fe7795dbb6904288e5cc16b65ab05d1c3d3c782dcca8d6f", + "stateKeyHash": "c2Z0N0iwQ1y+irxjIFFT4PQZOf4iwkMqPyPku95vpDM=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230943\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x1e148cab705b3c7f816ab8e82a7a728bed1aae03ccb6ddf0c33071142ed197c6", + "stateKeyHash": "RIn5qkvxHerb7+Ma+2fv3G1DuXDffn0Tlre4T+IpY7I=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0x1e148cab705b3c7f816ab8e82a7a728bed1aae03ccb6ddf0c33071142ed197c6\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0x1e148cab705b3c7f816ab8e82a7a728bed1aae03ccb6ddf0c33071142ed197c6\"},\"mutator\":{\"self\":\"0x1e148cab705b3c7f816ab8e82a7a728bed1aae03ccb6ddf0c33071142ed197c6\"},\"name\":\"APTS #1230956\",\"propertyMutatorRef\":{\"self\":\"0x1e148cab705b3c7f816ab8e82a7a728bed1aae03ccb6ddf0c33071142ed197c6\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x1e148cab705b3c7f816ab8e82a7a728bed1aae03ccb6ddf0c33071142ed197c6", + "stateKeyHash": "jA/ZCCjoxQPxCZx+dCkzc47BwyTjV5Mx+JsxIsS/2FQ=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0x9bcbcaf1e974bb0f36954d4241b9561fc01e4e72e8428aaf8b029a6e15ba15ce\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0x1e148cab705b3c7f816ab8e82a7a728bed1aae03ccb6ddf0c33071142ed197c6\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x1e148cab705b3c7f816ab8e82a7a728bed1aae03ccb6ddf0c33071142ed197c6", + "stateKeyHash": "jA/ZCCjoxQPxCZx+dCkzc47BwyTjV5Mx+JsxIsS/2FQ=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x1e148cab705b3c7f816ab8e82a7a728bed1aae03ccb6ddf0c33071142ed197c6", + "stateKeyHash": "jA/ZCCjoxQPxCZx+dCkzc47BwyTjV5Mx+JsxIsS/2FQ=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026206\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0x1e148cab705b3c7f816ab8e82a7a728bed1aae03ccb6ddf0c33071142ed197c6\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1230956\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x1e148cab705b3c7f816ab8e82a7a728bed1aae03ccb6ddf0c33071142ed197c6", + "stateKeyHash": "jA/ZCCjoxQPxCZx+dCkzc47BwyTjV5Mx+JsxIsS/2FQ=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230956\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "stateKeyHash": "9WUOkDynngNIWIlxbIrfV9bBI9/427pIH4SQjb0kjzU=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionState" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionState", + "data": "{\"next_inscription_id\":\"1231079\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x22b5600da82dc819f289bce7f14d839ebdce4d569b1d60dbc54065bab2849730", + "stateKeyHash": "/H05BKyr7RnXGZyPH8GfThAFXttG3usl0FZP8p4v2Zw=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230939\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x234ff1e27d419efbea7c5e3de452e374c5a087da980757546144ca0c75a81994", + "stateKeyHash": "LvaCgAmWPIRcfq2TuArDwYGcft2zpgjijz8VCE+ZGuI=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231029\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x23b2e4860cfbce78c2a41a4578568bcd04d0bd61d717be6f9ef2af44222a8895", + "stateKeyHash": "gYyxJIom7uQOgssRqg9xJnV8dg9m64VUj/r2soYWMlU=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0x23b2e4860cfbce78c2a41a4578568bcd04d0bd61d717be6f9ef2af44222a8895\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0x23b2e4860cfbce78c2a41a4578568bcd04d0bd61d717be6f9ef2af44222a8895\"},\"mutator\":{\"self\":\"0x23b2e4860cfbce78c2a41a4578568bcd04d0bd61d717be6f9ef2af44222a8895\"},\"name\":\"APTS #1231038\",\"propertyMutatorRef\":{\"self\":\"0x23b2e4860cfbce78c2a41a4578568bcd04d0bd61d717be6f9ef2af44222a8895\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x23b2e4860cfbce78c2a41a4578568bcd04d0bd61d717be6f9ef2af44222a8895", + "stateKeyHash": "6cMzdox3uB2Zo8VBk+X9Hr9qLH4v7m+blS/EBltcPCM=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0xa9c9e6f8c15f2aee66071d9040b93e29589556f8dbef9218756d2c60173844a3\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0x23b2e4860cfbce78c2a41a4578568bcd04d0bd61d717be6f9ef2af44222a8895\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x23b2e4860cfbce78c2a41a4578568bcd04d0bd61d717be6f9ef2af44222a8895", + "stateKeyHash": "6cMzdox3uB2Zo8VBk+X9Hr9qLH4v7m+blS/EBltcPCM=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x23b2e4860cfbce78c2a41a4578568bcd04d0bd61d717be6f9ef2af44222a8895", + "stateKeyHash": "6cMzdox3uB2Zo8VBk+X9Hr9qLH4v7m+blS/EBltcPCM=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026288\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0x23b2e4860cfbce78c2a41a4578568bcd04d0bd61d717be6f9ef2af44222a8895\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1231038\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x23b2e4860cfbce78c2a41a4578568bcd04d0bd61d717be6f9ef2af44222a8895", + "stateKeyHash": "6cMzdox3uB2Zo8VBk+X9Hr9qLH4v7m+blS/EBltcPCM=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231038\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x263788c1574a928046eadb49a867748f2756812877a8dba5f47dfed811d1826e", + "stateKeyHash": "VC8b9Ovi+iEoENoIp4Cf4u4dEeWGl9xDmTuQzZ5JajQ=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231019\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x288324a7edae3242caf98fd51be03c0a304214374ec6cd81119c89a4471ea602", + "stateKeyHash": "kxErU5PJVFXD3oXbsuduW4Zr/jF0jnrgLIIxpuTEFAY=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230995\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x294ce847b0a225a40367e991195a65c17993279b3b8535e6b3297baf1a2ea454", + "stateKeyHash": "B5Ob8NYA4+FZMj9tLMRbnOO6cOJGJ6wWgpXo00DgkfU=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231073\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x2cef0ed3c2c5289ce1051f329bcab3d30092fd5cb3c723278b5f58871cb5a5dc", + "stateKeyHash": "+Szpkepd1u6BfKWWCr8WI1MWn6lPc5HThQ/jcY6oatY=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230941\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x2de578b3717151696d36fdfa82ee10cecb05ce0d9ed7cb75163b6945bc86fe73", + "stateKeyHash": "DG30htKDo4ZzJotDpM6uOgRcI2bbpdaot9EwAls//Ns=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0x2de578b3717151696d36fdfa82ee10cecb05ce0d9ed7cb75163b6945bc86fe73\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0x2de578b3717151696d36fdfa82ee10cecb05ce0d9ed7cb75163b6945bc86fe73\"},\"mutator\":{\"self\":\"0x2de578b3717151696d36fdfa82ee10cecb05ce0d9ed7cb75163b6945bc86fe73\"},\"name\":\"APTS #1231056\",\"propertyMutatorRef\":{\"self\":\"0x2de578b3717151696d36fdfa82ee10cecb05ce0d9ed7cb75163b6945bc86fe73\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x2de578b3717151696d36fdfa82ee10cecb05ce0d9ed7cb75163b6945bc86fe73", + "stateKeyHash": "ZWB+WSDtpR/xCIaV7R3z/WNv5FoVG00maAIuHT19Wfg=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0xd72aba750652fb2703d3d38d358f3a82a0aa507d582202b62d87806b0f925cb6\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0x2de578b3717151696d36fdfa82ee10cecb05ce0d9ed7cb75163b6945bc86fe73\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x2de578b3717151696d36fdfa82ee10cecb05ce0d9ed7cb75163b6945bc86fe73", + "stateKeyHash": "ZWB+WSDtpR/xCIaV7R3z/WNv5FoVG00maAIuHT19Wfg=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x2de578b3717151696d36fdfa82ee10cecb05ce0d9ed7cb75163b6945bc86fe73", + "stateKeyHash": "ZWB+WSDtpR/xCIaV7R3z/WNv5FoVG00maAIuHT19Wfg=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026306\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0x2de578b3717151696d36fdfa82ee10cecb05ce0d9ed7cb75163b6945bc86fe73\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1231056\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x2de578b3717151696d36fdfa82ee10cecb05ce0d9ed7cb75163b6945bc86fe73", + "stateKeyHash": "ZWB+WSDtpR/xCIaV7R3z/WNv5FoVG00maAIuHT19Wfg=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231056\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x2f91df9e7cd443e23ebdd3f9644fb30cc7caf0d12cb9784be1eca1bbc133ea39", + "stateKeyHash": "M8q2QMzNoFRh/hevqDPQyq6Xz1XsbRLldFmO32fSUHM=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230967\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x30ef2779dacb1f7673a6b8cc89df126dd4f89cb0ca5f0c8f88af98c4e2cfd83e", + "stateKeyHash": "uC22iHx8/6ncfQvOwZrF4gDR0PU1ovBBKfMNLZiOHIE=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0x30ef2779dacb1f7673a6b8cc89df126dd4f89cb0ca5f0c8f88af98c4e2cfd83e\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0x30ef2779dacb1f7673a6b8cc89df126dd4f89cb0ca5f0c8f88af98c4e2cfd83e\"},\"mutator\":{\"self\":\"0x30ef2779dacb1f7673a6b8cc89df126dd4f89cb0ca5f0c8f88af98c4e2cfd83e\"},\"name\":\"APTS #1231048\",\"propertyMutatorRef\":{\"self\":\"0x30ef2779dacb1f7673a6b8cc89df126dd4f89cb0ca5f0c8f88af98c4e2cfd83e\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x30ef2779dacb1f7673a6b8cc89df126dd4f89cb0ca5f0c8f88af98c4e2cfd83e", + "stateKeyHash": "93wtPl5EQjL1fNTiCLqi9rC7n/n00ajLl/M0rKJXuxo=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0xd877e40a8aa4741b71d8d753239484c81a274bb6d843d31e69752d111636f83\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0x30ef2779dacb1f7673a6b8cc89df126dd4f89cb0ca5f0c8f88af98c4e2cfd83e\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x30ef2779dacb1f7673a6b8cc89df126dd4f89cb0ca5f0c8f88af98c4e2cfd83e", + "stateKeyHash": "93wtPl5EQjL1fNTiCLqi9rC7n/n00ajLl/M0rKJXuxo=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x30ef2779dacb1f7673a6b8cc89df126dd4f89cb0ca5f0c8f88af98c4e2cfd83e", + "stateKeyHash": "93wtPl5EQjL1fNTiCLqi9rC7n/n00ajLl/M0rKJXuxo=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026298\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0x30ef2779dacb1f7673a6b8cc89df126dd4f89cb0ca5f0c8f88af98c4e2cfd83e\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1231048\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x30ef2779dacb1f7673a6b8cc89df126dd4f89cb0ca5f0c8f88af98c4e2cfd83e", + "stateKeyHash": "93wtPl5EQjL1fNTiCLqi9rC7n/n00ajLl/M0rKJXuxo=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231048\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x30fd46660f51b10d72f518031b617fd426e0c74c3b8d1bddb083dfa6f248e431", + "stateKeyHash": "hyen910QQknq+g+s5FTvIs1fw8ZXp6QuZHXW/52t9Ks=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0x30fd46660f51b10d72f518031b617fd426e0c74c3b8d1bddb083dfa6f248e431\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0x30fd46660f51b10d72f518031b617fd426e0c74c3b8d1bddb083dfa6f248e431\"},\"mutator\":{\"self\":\"0x30fd46660f51b10d72f518031b617fd426e0c74c3b8d1bddb083dfa6f248e431\"},\"name\":\"APTS #1230946\",\"propertyMutatorRef\":{\"self\":\"0x30fd46660f51b10d72f518031b617fd426e0c74c3b8d1bddb083dfa6f248e431\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x30fd46660f51b10d72f518031b617fd426e0c74c3b8d1bddb083dfa6f248e431", + "stateKeyHash": "reaMBnvyhZYZhjR5ef007EKZQT0VUcdOo2nqGRMgB0o=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0xa2b5427063ea2fe338d724a7c538e7e187b26d7d330a0b79b96c53a1bd5edee1\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0x30fd46660f51b10d72f518031b617fd426e0c74c3b8d1bddb083dfa6f248e431\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x30fd46660f51b10d72f518031b617fd426e0c74c3b8d1bddb083dfa6f248e431", + "stateKeyHash": "reaMBnvyhZYZhjR5ef007EKZQT0VUcdOo2nqGRMgB0o=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x30fd46660f51b10d72f518031b617fd426e0c74c3b8d1bddb083dfa6f248e431", + "stateKeyHash": "reaMBnvyhZYZhjR5ef007EKZQT0VUcdOo2nqGRMgB0o=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026196\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0x30fd46660f51b10d72f518031b617fd426e0c74c3b8d1bddb083dfa6f248e431\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1230946\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x30fd46660f51b10d72f518031b617fd426e0c74c3b8d1bddb083dfa6f248e431", + "stateKeyHash": "reaMBnvyhZYZhjR5ef007EKZQT0VUcdOo2nqGRMgB0o=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230946\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x32003eccb92de1d5aed4aec625037f4464cff162610ecdcd86b74132800d57e9", + "stateKeyHash": "BEPHvO13N98D71FH1iSjRlnrm83Qq/sRl50k1yGKMPg=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231011\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x337ca4e0fd01b954ae811f72631e71779e58e7f8ed3a72f23da99a112af0499f", + "stateKeyHash": "OhEXjD336MbCy7yJC4JeHWnhnLLeH/E78Xv1+X53VRQ=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0x337ca4e0fd01b954ae811f72631e71779e58e7f8ed3a72f23da99a112af0499f\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0x337ca4e0fd01b954ae811f72631e71779e58e7f8ed3a72f23da99a112af0499f\"},\"mutator\":{\"self\":\"0x337ca4e0fd01b954ae811f72631e71779e58e7f8ed3a72f23da99a112af0499f\"},\"name\":\"APTS #1231034\",\"propertyMutatorRef\":{\"self\":\"0x337ca4e0fd01b954ae811f72631e71779e58e7f8ed3a72f23da99a112af0499f\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x337ca4e0fd01b954ae811f72631e71779e58e7f8ed3a72f23da99a112af0499f", + "stateKeyHash": "RWrwR9nHbv6zKav9FRPc78cHgL4rzfhgWARIHfEYItc=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0xe9a2a9eba047a17ed7aea2b9a73ddaa065716e5a690c26c8728481de757a960f\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0x337ca4e0fd01b954ae811f72631e71779e58e7f8ed3a72f23da99a112af0499f\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x337ca4e0fd01b954ae811f72631e71779e58e7f8ed3a72f23da99a112af0499f", + "stateKeyHash": "RWrwR9nHbv6zKav9FRPc78cHgL4rzfhgWARIHfEYItc=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x337ca4e0fd01b954ae811f72631e71779e58e7f8ed3a72f23da99a112af0499f", + "stateKeyHash": "RWrwR9nHbv6zKav9FRPc78cHgL4rzfhgWARIHfEYItc=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026284\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0x337ca4e0fd01b954ae811f72631e71779e58e7f8ed3a72f23da99a112af0499f\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1231034\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x337ca4e0fd01b954ae811f72631e71779e58e7f8ed3a72f23da99a112af0499f", + "stateKeyHash": "RWrwR9nHbv6zKav9FRPc78cHgL4rzfhgWARIHfEYItc=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231034\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x34138e0f0e44d72c9454b4cba53d353bf4b77b3fa0fa0cc3b7d553fff60260bc", + "stateKeyHash": "RKNzEG61tawyRSNKs5h6P8q1DL1RZcyhOTmjNyprtd4=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0x34138e0f0e44d72c9454b4cba53d353bf4b77b3fa0fa0cc3b7d553fff60260bc\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0x34138e0f0e44d72c9454b4cba53d353bf4b77b3fa0fa0cc3b7d553fff60260bc\"},\"mutator\":{\"self\":\"0x34138e0f0e44d72c9454b4cba53d353bf4b77b3fa0fa0cc3b7d553fff60260bc\"},\"name\":\"APTS #1231016\",\"propertyMutatorRef\":{\"self\":\"0x34138e0f0e44d72c9454b4cba53d353bf4b77b3fa0fa0cc3b7d553fff60260bc\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x34138e0f0e44d72c9454b4cba53d353bf4b77b3fa0fa0cc3b7d553fff60260bc", + "stateKeyHash": "0wx5lxqmn2e0JM/b5k22uifGBvtGxDxFXOjFJsROvFw=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0x542d652ea6c66c22c6de862dc1df05407598b85d3c798c2c7527f71ae1b53e05\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0x34138e0f0e44d72c9454b4cba53d353bf4b77b3fa0fa0cc3b7d553fff60260bc\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x34138e0f0e44d72c9454b4cba53d353bf4b77b3fa0fa0cc3b7d553fff60260bc", + "stateKeyHash": "0wx5lxqmn2e0JM/b5k22uifGBvtGxDxFXOjFJsROvFw=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x34138e0f0e44d72c9454b4cba53d353bf4b77b3fa0fa0cc3b7d553fff60260bc", + "stateKeyHash": "0wx5lxqmn2e0JM/b5k22uifGBvtGxDxFXOjFJsROvFw=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026266\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0x34138e0f0e44d72c9454b4cba53d353bf4b77b3fa0fa0cc3b7d553fff60260bc\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1231016\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x34138e0f0e44d72c9454b4cba53d353bf4b77b3fa0fa0cc3b7d553fff60260bc", + "stateKeyHash": "0wx5lxqmn2e0JM/b5k22uifGBvtGxDxFXOjFJsROvFw=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231016\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x34cf105f118a9a93f4bacc5c39da9c99c0b2f75717535ed438b3784319ec4b0d", + "stateKeyHash": "yfZB9fPlETVNtrZQ+odaRH6p2f4zcbSVontI+sLosBA=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231053\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x35f76413efd334f72b68868fe41a9cea784ce1523b0fb8561da2bed3f5f742c0", + "stateKeyHash": "BYGwV4ZImc9U9W0surMY1wjZsuu/+MitEatgIaaBKSg=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0x35f76413efd334f72b68868fe41a9cea784ce1523b0fb8561da2bed3f5f742c0\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0x35f76413efd334f72b68868fe41a9cea784ce1523b0fb8561da2bed3f5f742c0\"},\"mutator\":{\"self\":\"0x35f76413efd334f72b68868fe41a9cea784ce1523b0fb8561da2bed3f5f742c0\"},\"name\":\"APTS #1230954\",\"propertyMutatorRef\":{\"self\":\"0x35f76413efd334f72b68868fe41a9cea784ce1523b0fb8561da2bed3f5f742c0\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x35f76413efd334f72b68868fe41a9cea784ce1523b0fb8561da2bed3f5f742c0", + "stateKeyHash": "lvopb0i5Ji3dwCppdhb+XUvbCpmfx3ATvFWev3kzOsg=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0xd2c483af92c8a390509c7478f498589ec342060125d23e1cf38a92c77163a6e2\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0x35f76413efd334f72b68868fe41a9cea784ce1523b0fb8561da2bed3f5f742c0\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x35f76413efd334f72b68868fe41a9cea784ce1523b0fb8561da2bed3f5f742c0", + "stateKeyHash": "lvopb0i5Ji3dwCppdhb+XUvbCpmfx3ATvFWev3kzOsg=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x35f76413efd334f72b68868fe41a9cea784ce1523b0fb8561da2bed3f5f742c0", + "stateKeyHash": "lvopb0i5Ji3dwCppdhb+XUvbCpmfx3ATvFWev3kzOsg=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026204\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0x35f76413efd334f72b68868fe41a9cea784ce1523b0fb8561da2bed3f5f742c0\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1230954\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x35f76413efd334f72b68868fe41a9cea784ce1523b0fb8561da2bed3f5f742c0", + "stateKeyHash": "lvopb0i5Ji3dwCppdhb+XUvbCpmfx3ATvFWev3kzOsg=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230954\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x3793b5be1bfcd86f66262c6c9a9bbb1ac41ab8700c1767bf11a6986160272469", + "stateKeyHash": "BuuVeO1pSX1BYq3ycV0P91tiT5Hq60na6J99aiZHPZs=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230971\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x3cb7020178c50606311c9d6b3ff5c3a5ed6ebba6299dd8ca8be81384cc650d68", + "stateKeyHash": "dpudxPimcbJ7/oSfwHbD7WLcqpU284xcK6coJNx/jYw=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0x3cb7020178c50606311c9d6b3ff5c3a5ed6ebba6299dd8ca8be81384cc650d68\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0x3cb7020178c50606311c9d6b3ff5c3a5ed6ebba6299dd8ca8be81384cc650d68\"},\"mutator\":{\"self\":\"0x3cb7020178c50606311c9d6b3ff5c3a5ed6ebba6299dd8ca8be81384cc650d68\"},\"name\":\"APTS #1231040\",\"propertyMutatorRef\":{\"self\":\"0x3cb7020178c50606311c9d6b3ff5c3a5ed6ebba6299dd8ca8be81384cc650d68\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x3cb7020178c50606311c9d6b3ff5c3a5ed6ebba6299dd8ca8be81384cc650d68", + "stateKeyHash": "Sz3NS4TMGYjmJRSXoSkQ2416SiyGkjLviRJqeYmkd9c=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0x4f4920eeb3335c5e0cc676fe81f20600921378dd335804ba80fde3a01e5ff24d\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0x3cb7020178c50606311c9d6b3ff5c3a5ed6ebba6299dd8ca8be81384cc650d68\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x3cb7020178c50606311c9d6b3ff5c3a5ed6ebba6299dd8ca8be81384cc650d68", + "stateKeyHash": "Sz3NS4TMGYjmJRSXoSkQ2416SiyGkjLviRJqeYmkd9c=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x3cb7020178c50606311c9d6b3ff5c3a5ed6ebba6299dd8ca8be81384cc650d68", + "stateKeyHash": "Sz3NS4TMGYjmJRSXoSkQ2416SiyGkjLviRJqeYmkd9c=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026290\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0x3cb7020178c50606311c9d6b3ff5c3a5ed6ebba6299dd8ca8be81384cc650d68\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1231040\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x3cb7020178c50606311c9d6b3ff5c3a5ed6ebba6299dd8ca8be81384cc650d68", + "stateKeyHash": "Sz3NS4TMGYjmJRSXoSkQ2416SiyGkjLviRJqeYmkd9c=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231040\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x46e85bb0af9710277ec1115ea000bbf433aad94da2202bd30f7fa9697f44d03c", + "stateKeyHash": "aHCv6pEK1nbna7Fey6wDdLe1tDqANWgAbmHGyud3QxI=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0x46e85bb0af9710277ec1115ea000bbf433aad94da2202bd30f7fa9697f44d03c\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0x46e85bb0af9710277ec1115ea000bbf433aad94da2202bd30f7fa9697f44d03c\"},\"mutator\":{\"self\":\"0x46e85bb0af9710277ec1115ea000bbf433aad94da2202bd30f7fa9697f44d03c\"},\"name\":\"APTS #1231012\",\"propertyMutatorRef\":{\"self\":\"0x46e85bb0af9710277ec1115ea000bbf433aad94da2202bd30f7fa9697f44d03c\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x46e85bb0af9710277ec1115ea000bbf433aad94da2202bd30f7fa9697f44d03c", + "stateKeyHash": "4ug6NATj6jeOJ3tdaPzDleifUGU2d+ihVGnUcVyuviY=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0xb29d0ee19271066ec0ecaac0878904cdb1521b8f3cbf323bce7aabfc17ac1145\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0x46e85bb0af9710277ec1115ea000bbf433aad94da2202bd30f7fa9697f44d03c\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x46e85bb0af9710277ec1115ea000bbf433aad94da2202bd30f7fa9697f44d03c", + "stateKeyHash": "4ug6NATj6jeOJ3tdaPzDleifUGU2d+ihVGnUcVyuviY=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x46e85bb0af9710277ec1115ea000bbf433aad94da2202bd30f7fa9697f44d03c", + "stateKeyHash": "4ug6NATj6jeOJ3tdaPzDleifUGU2d+ihVGnUcVyuviY=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026262\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0x46e85bb0af9710277ec1115ea000bbf433aad94da2202bd30f7fa9697f44d03c\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1231012\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x46e85bb0af9710277ec1115ea000bbf433aad94da2202bd30f7fa9697f44d03c", + "stateKeyHash": "4ug6NATj6jeOJ3tdaPzDleifUGU2d+ihVGnUcVyuviY=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231012\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x4a54629ef9fdcd2616c346c43fb5c8c18fde7f7bdf4abd728f46b8ae4aaf0644", + "stateKeyHash": "PW5yKx/U4at7WYh1ksgb8SxgO6+dkK+Pw/GLaw2IqaA=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231059\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x4b3bfae405b2c0af206e7fe0ea4678cc848dcb66917f75b7ecd42a5368b18237", + "stateKeyHash": "19JkeI0oo4EQ0iHCP+iQSSJkvgpGGIa09ndvG7gK5j8=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230963\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x4b8a580545a071f8b1f978b412b0ea093a440777dd6fb7e3035c6a01d7c874d4", + "stateKeyHash": "Huz2k8sLV80Ru1ZF3RjoKk0JP+3SJ/LMIf0V884ixRc=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0x4b8a580545a071f8b1f978b412b0ea093a440777dd6fb7e3035c6a01d7c874d4\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0x4b8a580545a071f8b1f978b412b0ea093a440777dd6fb7e3035c6a01d7c874d4\"},\"mutator\":{\"self\":\"0x4b8a580545a071f8b1f978b412b0ea093a440777dd6fb7e3035c6a01d7c874d4\"},\"name\":\"APTS #1230958\",\"propertyMutatorRef\":{\"self\":\"0x4b8a580545a071f8b1f978b412b0ea093a440777dd6fb7e3035c6a01d7c874d4\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x4b8a580545a071f8b1f978b412b0ea093a440777dd6fb7e3035c6a01d7c874d4", + "stateKeyHash": "a9CZDZGmkjpLuWm3mypzdPbDiBHIGBimamxpe1S0c6o=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0xc1e86547bbd9fe7bbf9ce27cd75f29c8590aae6930ce9164d047cb335b7286b\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0x4b8a580545a071f8b1f978b412b0ea093a440777dd6fb7e3035c6a01d7c874d4\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x4b8a580545a071f8b1f978b412b0ea093a440777dd6fb7e3035c6a01d7c874d4", + "stateKeyHash": "a9CZDZGmkjpLuWm3mypzdPbDiBHIGBimamxpe1S0c6o=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x4b8a580545a071f8b1f978b412b0ea093a440777dd6fb7e3035c6a01d7c874d4", + "stateKeyHash": "a9CZDZGmkjpLuWm3mypzdPbDiBHIGBimamxpe1S0c6o=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026208\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0x4b8a580545a071f8b1f978b412b0ea093a440777dd6fb7e3035c6a01d7c874d4\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1230958\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x4b8a580545a071f8b1f978b412b0ea093a440777dd6fb7e3035c6a01d7c874d4", + "stateKeyHash": "a9CZDZGmkjpLuWm3mypzdPbDiBHIGBimamxpe1S0c6o=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230958\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x4bfadc9c7a8bdb83d86f335be34dd5175007e7f74a1c025b78ea1d4c9ffed539", + "stateKeyHash": "ylKDyhNogP4lv+GW6b6TI7RWILxRhEhFQ30C6VXo/yA=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0x4bfadc9c7a8bdb83d86f335be34dd5175007e7f74a1c025b78ea1d4c9ffed539\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0x4bfadc9c7a8bdb83d86f335be34dd5175007e7f74a1c025b78ea1d4c9ffed539\"},\"mutator\":{\"self\":\"0x4bfadc9c7a8bdb83d86f335be34dd5175007e7f74a1c025b78ea1d4c9ffed539\"},\"name\":\"APTS #1230952\",\"propertyMutatorRef\":{\"self\":\"0x4bfadc9c7a8bdb83d86f335be34dd5175007e7f74a1c025b78ea1d4c9ffed539\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x4bfadc9c7a8bdb83d86f335be34dd5175007e7f74a1c025b78ea1d4c9ffed539", + "stateKeyHash": "ACKqjENLjV3+BQGUfrJw7N/RmXRj+eA0TCteGTd75b0=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0x182ec132245821093a14a327b65ce3bcd2042e36c1cdcc72ee9b45357033516e\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0x4bfadc9c7a8bdb83d86f335be34dd5175007e7f74a1c025b78ea1d4c9ffed539\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x4bfadc9c7a8bdb83d86f335be34dd5175007e7f74a1c025b78ea1d4c9ffed539", + "stateKeyHash": "ACKqjENLjV3+BQGUfrJw7N/RmXRj+eA0TCteGTd75b0=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x4bfadc9c7a8bdb83d86f335be34dd5175007e7f74a1c025b78ea1d4c9ffed539", + "stateKeyHash": "ACKqjENLjV3+BQGUfrJw7N/RmXRj+eA0TCteGTd75b0=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026202\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0x4bfadc9c7a8bdb83d86f335be34dd5175007e7f74a1c025b78ea1d4c9ffed539\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1230952\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x4bfadc9c7a8bdb83d86f335be34dd5175007e7f74a1c025b78ea1d4c9ffed539", + "stateKeyHash": "ACKqjENLjV3+BQGUfrJw7N/RmXRj+eA0TCteGTd75b0=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230952\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x50d32dfbc4400097b91fe45eede91eebd6ed402eb56b69fa10d3a3aaf8415cfe", + "stateKeyHash": "VdncXwY0kWfahhhWaMeQUTt077dlhPhkYSqW/6rkStQ=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0x50d32dfbc4400097b91fe45eede91eebd6ed402eb56b69fa10d3a3aaf8415cfe\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0x50d32dfbc4400097b91fe45eede91eebd6ed402eb56b69fa10d3a3aaf8415cfe\"},\"mutator\":{\"self\":\"0x50d32dfbc4400097b91fe45eede91eebd6ed402eb56b69fa10d3a3aaf8415cfe\"},\"name\":\"APTS #1230942\",\"propertyMutatorRef\":{\"self\":\"0x50d32dfbc4400097b91fe45eede91eebd6ed402eb56b69fa10d3a3aaf8415cfe\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x50d32dfbc4400097b91fe45eede91eebd6ed402eb56b69fa10d3a3aaf8415cfe", + "stateKeyHash": "cv8+m/pP2uYqhW9QPVwfX2ujznLW8czjDUQa1K6r7M8=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0xa8444ba61ed1f4c909348f4cb03ea60085c0a46cee47c95c8c762f47b714e587\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0x50d32dfbc4400097b91fe45eede91eebd6ed402eb56b69fa10d3a3aaf8415cfe\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x50d32dfbc4400097b91fe45eede91eebd6ed402eb56b69fa10d3a3aaf8415cfe", + "stateKeyHash": "cv8+m/pP2uYqhW9QPVwfX2ujznLW8czjDUQa1K6r7M8=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x50d32dfbc4400097b91fe45eede91eebd6ed402eb56b69fa10d3a3aaf8415cfe", + "stateKeyHash": "cv8+m/pP2uYqhW9QPVwfX2ujznLW8czjDUQa1K6r7M8=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026192\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0x50d32dfbc4400097b91fe45eede91eebd6ed402eb56b69fa10d3a3aaf8415cfe\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1230942\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x50d32dfbc4400097b91fe45eede91eebd6ed402eb56b69fa10d3a3aaf8415cfe", + "stateKeyHash": "cv8+m/pP2uYqhW9QPVwfX2ujznLW8czjDUQa1K6r7M8=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230942\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x5223ba920a1faf0c8a55cd1fb27c968dc090324c2de5d0d839a2aee7a73cd0a8", + "stateKeyHash": "KvHGYba8U8aGA/LNbonzcJ9hcw0Wd3lZFFf88b+kJ3c=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0x5223ba920a1faf0c8a55cd1fb27c968dc090324c2de5d0d839a2aee7a73cd0a8\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0x5223ba920a1faf0c8a55cd1fb27c968dc090324c2de5d0d839a2aee7a73cd0a8\"},\"mutator\":{\"self\":\"0x5223ba920a1faf0c8a55cd1fb27c968dc090324c2de5d0d839a2aee7a73cd0a8\"},\"name\":\"APTS #1231022\",\"propertyMutatorRef\":{\"self\":\"0x5223ba920a1faf0c8a55cd1fb27c968dc090324c2de5d0d839a2aee7a73cd0a8\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x5223ba920a1faf0c8a55cd1fb27c968dc090324c2de5d0d839a2aee7a73cd0a8", + "stateKeyHash": "/hbGhlevHK9Tg10mpYLQx53zFVh1pM3sT0gCO+dnlaU=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0x4000743592308691850cb40d2d0a0667f1d4e97e22acad70c6744fb2f4742c4e\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0x5223ba920a1faf0c8a55cd1fb27c968dc090324c2de5d0d839a2aee7a73cd0a8\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x5223ba920a1faf0c8a55cd1fb27c968dc090324c2de5d0d839a2aee7a73cd0a8", + "stateKeyHash": "/hbGhlevHK9Tg10mpYLQx53zFVh1pM3sT0gCO+dnlaU=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x5223ba920a1faf0c8a55cd1fb27c968dc090324c2de5d0d839a2aee7a73cd0a8", + "stateKeyHash": "/hbGhlevHK9Tg10mpYLQx53zFVh1pM3sT0gCO+dnlaU=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026272\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0x5223ba920a1faf0c8a55cd1fb27c968dc090324c2de5d0d839a2aee7a73cd0a8\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1231022\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x5223ba920a1faf0c8a55cd1fb27c968dc090324c2de5d0d839a2aee7a73cd0a8", + "stateKeyHash": "/hbGhlevHK9Tg10mpYLQx53zFVh1pM3sT0gCO+dnlaU=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231022\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x525120cb1c3bedc064e9339a241b5760a834133074bb12f9f652884af2665590", + "stateKeyHash": "dUqaYqni1wagfAqbIVPOMkBZvT1gKbVPYMQprFO+USk=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0x525120cb1c3bedc064e9339a241b5760a834133074bb12f9f652884af2665590\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0x525120cb1c3bedc064e9339a241b5760a834133074bb12f9f652884af2665590\"},\"mutator\":{\"self\":\"0x525120cb1c3bedc064e9339a241b5760a834133074bb12f9f652884af2665590\"},\"name\":\"APTS #1231020\",\"propertyMutatorRef\":{\"self\":\"0x525120cb1c3bedc064e9339a241b5760a834133074bb12f9f652884af2665590\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x525120cb1c3bedc064e9339a241b5760a834133074bb12f9f652884af2665590", + "stateKeyHash": "xXO/xkhFB9qX9IdlnLIoQlyZtleyJRCp+204512/QGc=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0x22e1b108b92d05d4b3a5feb255f67529425ad29149e75da5b327ca95d0007f16\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0x525120cb1c3bedc064e9339a241b5760a834133074bb12f9f652884af2665590\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x525120cb1c3bedc064e9339a241b5760a834133074bb12f9f652884af2665590", + "stateKeyHash": "xXO/xkhFB9qX9IdlnLIoQlyZtleyJRCp+204512/QGc=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x525120cb1c3bedc064e9339a241b5760a834133074bb12f9f652884af2665590", + "stateKeyHash": "xXO/xkhFB9qX9IdlnLIoQlyZtleyJRCp+204512/QGc=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026270\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0x525120cb1c3bedc064e9339a241b5760a834133074bb12f9f652884af2665590\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1231020\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x525120cb1c3bedc064e9339a241b5760a834133074bb12f9f652884af2665590", + "stateKeyHash": "xXO/xkhFB9qX9IdlnLIoQlyZtleyJRCp+204512/QGc=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231020\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x557b4129606cc2b79607ef21c86388a96055877f34fa9a2d873f00391f177082", + "stateKeyHash": "lmLmCNbxlZkN0A5Roi2vAazdygOyXXCC87Aiv+KNbGk=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0x557b4129606cc2b79607ef21c86388a96055877f34fa9a2d873f00391f177082\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0x557b4129606cc2b79607ef21c86388a96055877f34fa9a2d873f00391f177082\"},\"mutator\":{\"self\":\"0x557b4129606cc2b79607ef21c86388a96055877f34fa9a2d873f00391f177082\"},\"name\":\"APTS #1231026\",\"propertyMutatorRef\":{\"self\":\"0x557b4129606cc2b79607ef21c86388a96055877f34fa9a2d873f00391f177082\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x557b4129606cc2b79607ef21c86388a96055877f34fa9a2d873f00391f177082", + "stateKeyHash": "1Q4twfZ76rFrDC7Ezt2AVqCeMN43o0rnxlkJ1CzPBPY=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0xcc368d4ab6a0352ea3bb656870f3e94499a09b18ce276635d455b0a8882ee1f0\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0x557b4129606cc2b79607ef21c86388a96055877f34fa9a2d873f00391f177082\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x557b4129606cc2b79607ef21c86388a96055877f34fa9a2d873f00391f177082", + "stateKeyHash": "1Q4twfZ76rFrDC7Ezt2AVqCeMN43o0rnxlkJ1CzPBPY=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x557b4129606cc2b79607ef21c86388a96055877f34fa9a2d873f00391f177082", + "stateKeyHash": "1Q4twfZ76rFrDC7Ezt2AVqCeMN43o0rnxlkJ1CzPBPY=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026276\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0x557b4129606cc2b79607ef21c86388a96055877f34fa9a2d873f00391f177082\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1231026\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x557b4129606cc2b79607ef21c86388a96055877f34fa9a2d873f00391f177082", + "stateKeyHash": "1Q4twfZ76rFrDC7Ezt2AVqCeMN43o0rnxlkJ1CzPBPY=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231026\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x56990b119164212a3d7c378a6e52d313bbd1ae296b65294e81bad879b5353ab7", + "stateKeyHash": "JPIQbLbWOO9VOKBtzB9yRwK9UOIK8RzCc/TZ9A5Px9o=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231027\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x573956f7b59bfc88d437287714b9e71d0d5f360d1c03b5fc3efaba81f21fba57", + "stateKeyHash": "SUS4HS564zIxMGpPjJY/u/eeLtfW3WDjkh76N6y+fZM=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0x573956f7b59bfc88d437287714b9e71d0d5f360d1c03b5fc3efaba81f21fba57\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0x573956f7b59bfc88d437287714b9e71d0d5f360d1c03b5fc3efaba81f21fba57\"},\"mutator\":{\"self\":\"0x573956f7b59bfc88d437287714b9e71d0d5f360d1c03b5fc3efaba81f21fba57\"},\"name\":\"APTS #1231076\",\"propertyMutatorRef\":{\"self\":\"0x573956f7b59bfc88d437287714b9e71d0d5f360d1c03b5fc3efaba81f21fba57\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x573956f7b59bfc88d437287714b9e71d0d5f360d1c03b5fc3efaba81f21fba57", + "stateKeyHash": "6bWyotMa9q/gAU2NfFJMm0gd+EcROFiNqYXkdEPVOso=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0x5f7adb5adcc2654dca23f66566391972501a08237500b389adf1c5b3d8f4a311\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0x573956f7b59bfc88d437287714b9e71d0d5f360d1c03b5fc3efaba81f21fba57\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x573956f7b59bfc88d437287714b9e71d0d5f360d1c03b5fc3efaba81f21fba57", + "stateKeyHash": "6bWyotMa9q/gAU2NfFJMm0gd+EcROFiNqYXkdEPVOso=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x573956f7b59bfc88d437287714b9e71d0d5f360d1c03b5fc3efaba81f21fba57", + "stateKeyHash": "6bWyotMa9q/gAU2NfFJMm0gd+EcROFiNqYXkdEPVOso=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026326\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0x573956f7b59bfc88d437287714b9e71d0d5f360d1c03b5fc3efaba81f21fba57\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1231076\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x573956f7b59bfc88d437287714b9e71d0d5f360d1c03b5fc3efaba81f21fba57", + "stateKeyHash": "6bWyotMa9q/gAU2NfFJMm0gd+EcROFiNqYXkdEPVOso=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231076\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x59c0df926dda458b0af08b9bc78dc79593e907e757db490c757841c5622bd2ef", + "stateKeyHash": "jyqNQzPem7z7xR6aV1Nft3Iy/TFWRxpaYN1C1TpN44o=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230953\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x5b8d201dbd40b64e1906a76d3e9c0c9dce73fbb120c13387899d9dca1ee3cad4", + "stateKeyHash": "bCOC9d1YjQlYn+9T6Wjfsfx8f02LRRSX9yi7f8FMcvw=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0x5b8d201dbd40b64e1906a76d3e9c0c9dce73fbb120c13387899d9dca1ee3cad4\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0x5b8d201dbd40b64e1906a76d3e9c0c9dce73fbb120c13387899d9dca1ee3cad4\"},\"mutator\":{\"self\":\"0x5b8d201dbd40b64e1906a76d3e9c0c9dce73fbb120c13387899d9dca1ee3cad4\"},\"name\":\"APTS #1231054\",\"propertyMutatorRef\":{\"self\":\"0x5b8d201dbd40b64e1906a76d3e9c0c9dce73fbb120c13387899d9dca1ee3cad4\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x5b8d201dbd40b64e1906a76d3e9c0c9dce73fbb120c13387899d9dca1ee3cad4", + "stateKeyHash": "lAX8BJI5a+7oTCZbrhlRXHNLAFAvnUT3BEId1EasRiU=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0x639bdd0d959eb5d993dca7368e553144d3e169e233fd22253e15755413e1a90d\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0x5b8d201dbd40b64e1906a76d3e9c0c9dce73fbb120c13387899d9dca1ee3cad4\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x5b8d201dbd40b64e1906a76d3e9c0c9dce73fbb120c13387899d9dca1ee3cad4", + "stateKeyHash": "lAX8BJI5a+7oTCZbrhlRXHNLAFAvnUT3BEId1EasRiU=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x5b8d201dbd40b64e1906a76d3e9c0c9dce73fbb120c13387899d9dca1ee3cad4", + "stateKeyHash": "lAX8BJI5a+7oTCZbrhlRXHNLAFAvnUT3BEId1EasRiU=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026304\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0x5b8d201dbd40b64e1906a76d3e9c0c9dce73fbb120c13387899d9dca1ee3cad4\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1231054\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x5b8d201dbd40b64e1906a76d3e9c0c9dce73fbb120c13387899d9dca1ee3cad4", + "stateKeyHash": "lAX8BJI5a+7oTCZbrhlRXHNLAFAvnUT3BEId1EasRiU=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231054\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x60589b828bd27e56da68eb08145a36f53f537d776b2846e8430a73aec0f94908", + "stateKeyHash": "HBLOa++ZtwmEOY7OgcStGgDg74bTTrhDkpNLflz/mIw=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231003\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x60fa0e822402e60ae482aa1dc6e9030e43e89d05601c536199ffcc45dfd881cd", + "stateKeyHash": "eO556T7R2901EVG2r3XwzQSrKjDedA9DURXIirDY+I4=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231009\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x6107815767181eed615e04d0d154331dd4018a6e55bb25d42279a6198f908045", + "stateKeyHash": "u1g3VZRzo77YYf1E2JHa8iw8iDURcr8wz9FBBEobSfs=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0x6107815767181eed615e04d0d154331dd4018a6e55bb25d42279a6198f908045\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0x6107815767181eed615e04d0d154331dd4018a6e55bb25d42279a6198f908045\"},\"mutator\":{\"self\":\"0x6107815767181eed615e04d0d154331dd4018a6e55bb25d42279a6198f908045\"},\"name\":\"APTS #1230966\",\"propertyMutatorRef\":{\"self\":\"0x6107815767181eed615e04d0d154331dd4018a6e55bb25d42279a6198f908045\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x6107815767181eed615e04d0d154331dd4018a6e55bb25d42279a6198f908045", + "stateKeyHash": "aFMVCqm3yneaJu+gpHZ0eBUvKZykIl6doGez/shKmtQ=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0xca0313221e1df20dafc13e69620f3ee13aa0c57d67900e719a50df61ad83276e\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0x6107815767181eed615e04d0d154331dd4018a6e55bb25d42279a6198f908045\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x6107815767181eed615e04d0d154331dd4018a6e55bb25d42279a6198f908045", + "stateKeyHash": "aFMVCqm3yneaJu+gpHZ0eBUvKZykIl6doGez/shKmtQ=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x6107815767181eed615e04d0d154331dd4018a6e55bb25d42279a6198f908045", + "stateKeyHash": "aFMVCqm3yneaJu+gpHZ0eBUvKZykIl6doGez/shKmtQ=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026216\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0x6107815767181eed615e04d0d154331dd4018a6e55bb25d42279a6198f908045\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1230966\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x6107815767181eed615e04d0d154331dd4018a6e55bb25d42279a6198f908045", + "stateKeyHash": "aFMVCqm3yneaJu+gpHZ0eBUvKZykIl6doGez/shKmtQ=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230966\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x612236a78c4ad668ee39349700800d044543d5a133bca2bc8a819d87cb78e431", + "stateKeyHash": "otOvODQmlEi+lQTFHkr3J59nc/XiuuYJeWD+b5/5uUI=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231041\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x62234b497f4c8232d63111ff6cf18923c8637ffc66f604f121af10678db0c472", + "stateKeyHash": "mTUC3jWof/FgtuWqL0DPXJpxgVcneW7BLCBLuO50Cog=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0x62234b497f4c8232d63111ff6cf18923c8637ffc66f604f121af10678db0c472\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0x62234b497f4c8232d63111ff6cf18923c8637ffc66f604f121af10678db0c472\"},\"mutator\":{\"self\":\"0x62234b497f4c8232d63111ff6cf18923c8637ffc66f604f121af10678db0c472\"},\"name\":\"APTS #1230988\",\"propertyMutatorRef\":{\"self\":\"0x62234b497f4c8232d63111ff6cf18923c8637ffc66f604f121af10678db0c472\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x62234b497f4c8232d63111ff6cf18923c8637ffc66f604f121af10678db0c472", + "stateKeyHash": "NKEgMLn8IRmvddCitxOl8Mt8dJaZSvT10JNPjr/tPUs=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0x4a14463ae4aa63544b4ce9ac493c4f71332264952ce33124f8c871fddce6420d\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0x62234b497f4c8232d63111ff6cf18923c8637ffc66f604f121af10678db0c472\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x62234b497f4c8232d63111ff6cf18923c8637ffc66f604f121af10678db0c472", + "stateKeyHash": "NKEgMLn8IRmvddCitxOl8Mt8dJaZSvT10JNPjr/tPUs=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x62234b497f4c8232d63111ff6cf18923c8637ffc66f604f121af10678db0c472", + "stateKeyHash": "NKEgMLn8IRmvddCitxOl8Mt8dJaZSvT10JNPjr/tPUs=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026238\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0x62234b497f4c8232d63111ff6cf18923c8637ffc66f604f121af10678db0c472\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1230988\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x62234b497f4c8232d63111ff6cf18923c8637ffc66f604f121af10678db0c472", + "stateKeyHash": "NKEgMLn8IRmvddCitxOl8Mt8dJaZSvT10JNPjr/tPUs=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230988\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x65622f2cd70fca4926355abd514b5d5476947de61ec85894547cbef85c8a6431", + "stateKeyHash": "s7GTzfxJpbY+JGgUw+yYalev/tz6AFvm7uXGYdAkKdQ=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231035\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x69e8f7e8be00e6008f9ab677ce6451ed8294317bc1d26d966e966c9cdd25ac8e", + "stateKeyHash": "EPPmkb9uLG1mWKwcsdeK4pqfQnfKO7LoY9xw8+MXUQQ=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230999\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x6b00cc59039388ca6aa34218d9bea8330545f23504dfcc616fef6af1b669931b", + "stateKeyHash": "Fi1DQgkzTUVLn+kaG8Y18ieC0X6M3ocfuGnrw1lqtlk=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231051\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x6b17d32d01aeaaf0402482e19af92c9988586ed3869357a7c19cd88d91401839", + "stateKeyHash": "t6Rix9redfL5LlYKnQNpZCLFK7cIa1t2qd7SedhpBes=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231049\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x7055022905880c734be9b7eee836e88997c0cf340fb832d281a4c0a887e1d0ca", + "stateKeyHash": "2dnrGXhpTDIREYq/jBlK7J4g4eRUcUZujHra44kvk0c=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231071\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x70f18757e5191aba271b977058261cfe444b2112e8e0d81d918e19eeacb7eca1", + "stateKeyHash": "vZifwdqb5wVocdeidrX3jDWeD9BDh9pOxuv+D+CecOQ=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230949\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x72c00857d4f03c91f14a552dd0fc28f804cb639b369e10fafa522c95e38041ed", + "stateKeyHash": "fk1ElkNL7Ukx4O8HDnfGS54GrhY+xhXyrOhrSbPfCWc=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230997\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x734281aee1c5404e013afcd0b87d5f3817a3b75ab063db2f09ebb6179c56f8ec", + "stateKeyHash": "19gaqqGIZ1xLKv5T9iPKTJLlOf5G+9rj9DC+BuxNYxE=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0x734281aee1c5404e013afcd0b87d5f3817a3b75ab063db2f09ebb6179c56f8ec\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0x734281aee1c5404e013afcd0b87d5f3817a3b75ab063db2f09ebb6179c56f8ec\"},\"mutator\":{\"self\":\"0x734281aee1c5404e013afcd0b87d5f3817a3b75ab063db2f09ebb6179c56f8ec\"},\"name\":\"APTS #1230986\",\"propertyMutatorRef\":{\"self\":\"0x734281aee1c5404e013afcd0b87d5f3817a3b75ab063db2f09ebb6179c56f8ec\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x734281aee1c5404e013afcd0b87d5f3817a3b75ab063db2f09ebb6179c56f8ec", + "stateKeyHash": "xanUUaF/jlJWSKVoNW1S6xZxOFOpasMMZyJlulePoww=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0x71668083d2f250af2b55a91ab6878c2cf0d0fd987d4cffe43271f9d8c5002af0\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0x734281aee1c5404e013afcd0b87d5f3817a3b75ab063db2f09ebb6179c56f8ec\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x734281aee1c5404e013afcd0b87d5f3817a3b75ab063db2f09ebb6179c56f8ec", + "stateKeyHash": "xanUUaF/jlJWSKVoNW1S6xZxOFOpasMMZyJlulePoww=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x734281aee1c5404e013afcd0b87d5f3817a3b75ab063db2f09ebb6179c56f8ec", + "stateKeyHash": "xanUUaF/jlJWSKVoNW1S6xZxOFOpasMMZyJlulePoww=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026236\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0x734281aee1c5404e013afcd0b87d5f3817a3b75ab063db2f09ebb6179c56f8ec\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1230986\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x734281aee1c5404e013afcd0b87d5f3817a3b75ab063db2f09ebb6179c56f8ec", + "stateKeyHash": "xanUUaF/jlJWSKVoNW1S6xZxOFOpasMMZyJlulePoww=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230986\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x74ea805ec266e5f6eba981b3c9d0386d3621e733806cf40bb5435690ba6962e2", + "stateKeyHash": "XG5vDO9gIpbBbHvcckV78EIDRh97jBEDYlQCf5wc2nk=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0x74ea805ec266e5f6eba981b3c9d0386d3621e733806cf40bb5435690ba6962e2\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0x74ea805ec266e5f6eba981b3c9d0386d3621e733806cf40bb5435690ba6962e2\"},\"mutator\":{\"self\":\"0x74ea805ec266e5f6eba981b3c9d0386d3621e733806cf40bb5435690ba6962e2\"},\"name\":\"APTS #1230940\",\"propertyMutatorRef\":{\"self\":\"0x74ea805ec266e5f6eba981b3c9d0386d3621e733806cf40bb5435690ba6962e2\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x74ea805ec266e5f6eba981b3c9d0386d3621e733806cf40bb5435690ba6962e2", + "stateKeyHash": "HmUmYhUxL69yMnX73mkXcqMzsORHzPYC44bfV8oLs30=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0xcfee13421fadecb08845b584539f763bd7432ef2c8ea09fe670a0ae95df87369\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0x74ea805ec266e5f6eba981b3c9d0386d3621e733806cf40bb5435690ba6962e2\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x74ea805ec266e5f6eba981b3c9d0386d3621e733806cf40bb5435690ba6962e2", + "stateKeyHash": "HmUmYhUxL69yMnX73mkXcqMzsORHzPYC44bfV8oLs30=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x74ea805ec266e5f6eba981b3c9d0386d3621e733806cf40bb5435690ba6962e2", + "stateKeyHash": "HmUmYhUxL69yMnX73mkXcqMzsORHzPYC44bfV8oLs30=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026190\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0x74ea805ec266e5f6eba981b3c9d0386d3621e733806cf40bb5435690ba6962e2\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1230940\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x74ea805ec266e5f6eba981b3c9d0386d3621e733806cf40bb5435690ba6962e2", + "stateKeyHash": "HmUmYhUxL69yMnX73mkXcqMzsORHzPYC44bfV8oLs30=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230940\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x74ecf059b5d9220267d34441b27c8d10ef22aff50e513565e8a3421aa82b2de8", + "stateKeyHash": "eHkzQgoyuO2f8X0mt8Om8mb2/FELD9KXMd3bYoW0VAs=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0x74ecf059b5d9220267d34441b27c8d10ef22aff50e513565e8a3421aa82b2de8\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0x74ecf059b5d9220267d34441b27c8d10ef22aff50e513565e8a3421aa82b2de8\"},\"mutator\":{\"self\":\"0x74ecf059b5d9220267d34441b27c8d10ef22aff50e513565e8a3421aa82b2de8\"},\"name\":\"APTS #1230944\",\"propertyMutatorRef\":{\"self\":\"0x74ecf059b5d9220267d34441b27c8d10ef22aff50e513565e8a3421aa82b2de8\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x74ecf059b5d9220267d34441b27c8d10ef22aff50e513565e8a3421aa82b2de8", + "stateKeyHash": "R6cUD00w8hft9Q7YWcdBfg7hzKR9/ZqyCoNKhzfdBdM=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0x384ea8a9fa725dd6c53acb885b76921402501dcb0e10da3afe11c455416e20bd\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0x74ecf059b5d9220267d34441b27c8d10ef22aff50e513565e8a3421aa82b2de8\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x74ecf059b5d9220267d34441b27c8d10ef22aff50e513565e8a3421aa82b2de8", + "stateKeyHash": "R6cUD00w8hft9Q7YWcdBfg7hzKR9/ZqyCoNKhzfdBdM=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x74ecf059b5d9220267d34441b27c8d10ef22aff50e513565e8a3421aa82b2de8", + "stateKeyHash": "R6cUD00w8hft9Q7YWcdBfg7hzKR9/ZqyCoNKhzfdBdM=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026194\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0x74ecf059b5d9220267d34441b27c8d10ef22aff50e513565e8a3421aa82b2de8\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1230944\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x74ecf059b5d9220267d34441b27c8d10ef22aff50e513565e8a3421aa82b2de8", + "stateKeyHash": "R6cUD00w8hft9Q7YWcdBfg7hzKR9/ZqyCoNKhzfdBdM=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230944\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x757001cff04fd6aceac7ceb32bcd2b759bf371e85fe1b94ed0d245ced5a49fd9", + "stateKeyHash": "dCrhmnptV9KbLIQ6h/VipjeULT8O7ZHIW/W5xtzKQXg=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230938\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x78896c69ba2cce22da89e60dc9d890e21cf20b931d756357304700c4ce74ab91", + "stateKeyHash": "kcIQXpJKBNpQ/VQ2wO97iVSACJ9ZfipLdp8TsdHhWzw=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0x78896c69ba2cce22da89e60dc9d890e21cf20b931d756357304700c4ce74ab91\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0x78896c69ba2cce22da89e60dc9d890e21cf20b931d756357304700c4ce74ab91\"},\"mutator\":{\"self\":\"0x78896c69ba2cce22da89e60dc9d890e21cf20b931d756357304700c4ce74ab91\"},\"name\":\"APTS #1231066\",\"propertyMutatorRef\":{\"self\":\"0x78896c69ba2cce22da89e60dc9d890e21cf20b931d756357304700c4ce74ab91\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x78896c69ba2cce22da89e60dc9d890e21cf20b931d756357304700c4ce74ab91", + "stateKeyHash": "COa9vigYW+QlkpA4Xq/RRYKLDEcLJaTQGixiTsC0hc4=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0xd6953a965b2d98f274597512e47023340d1728c39cadd949899133a840bd552e\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0x78896c69ba2cce22da89e60dc9d890e21cf20b931d756357304700c4ce74ab91\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x78896c69ba2cce22da89e60dc9d890e21cf20b931d756357304700c4ce74ab91", + "stateKeyHash": "COa9vigYW+QlkpA4Xq/RRYKLDEcLJaTQGixiTsC0hc4=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x78896c69ba2cce22da89e60dc9d890e21cf20b931d756357304700c4ce74ab91", + "stateKeyHash": "COa9vigYW+QlkpA4Xq/RRYKLDEcLJaTQGixiTsC0hc4=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026316\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0x78896c69ba2cce22da89e60dc9d890e21cf20b931d756357304700c4ce74ab91\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1231066\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x78896c69ba2cce22da89e60dc9d890e21cf20b931d756357304700c4ce74ab91", + "stateKeyHash": "COa9vigYW+QlkpA4Xq/RRYKLDEcLJaTQGixiTsC0hc4=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231066\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x7a0fff5033b84c23ffd178eee1213025d4243aadde67be005bca25925da6f6b2", + "stateKeyHash": "xdeUJmAXzrIKTNHBkv/pRJbWk0FTcqbh37HY1zCjso8=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0x7a0fff5033b84c23ffd178eee1213025d4243aadde67be005bca25925da6f6b2\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0x7a0fff5033b84c23ffd178eee1213025d4243aadde67be005bca25925da6f6b2\"},\"mutator\":{\"self\":\"0x7a0fff5033b84c23ffd178eee1213025d4243aadde67be005bca25925da6f6b2\"},\"name\":\"APTS #1230962\",\"propertyMutatorRef\":{\"self\":\"0x7a0fff5033b84c23ffd178eee1213025d4243aadde67be005bca25925da6f6b2\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x7a0fff5033b84c23ffd178eee1213025d4243aadde67be005bca25925da6f6b2", + "stateKeyHash": "go+IvQkYScgeIHG90Cit86PW6z6AkR6vYidO6EX97PQ=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0xf8fab4f100d98be8c4e0622bca842ae9cb21bbdf66657b7d74f0fece2a81c8cc\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0x7a0fff5033b84c23ffd178eee1213025d4243aadde67be005bca25925da6f6b2\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x7a0fff5033b84c23ffd178eee1213025d4243aadde67be005bca25925da6f6b2", + "stateKeyHash": "go+IvQkYScgeIHG90Cit86PW6z6AkR6vYidO6EX97PQ=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x7a0fff5033b84c23ffd178eee1213025d4243aadde67be005bca25925da6f6b2", + "stateKeyHash": "go+IvQkYScgeIHG90Cit86PW6z6AkR6vYidO6EX97PQ=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026212\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0x7a0fff5033b84c23ffd178eee1213025d4243aadde67be005bca25925da6f6b2\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1230962\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x7a0fff5033b84c23ffd178eee1213025d4243aadde67be005bca25925da6f6b2", + "stateKeyHash": "go+IvQkYScgeIHG90Cit86PW6z6AkR6vYidO6EX97PQ=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230962\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x7a2674c1d5d805d6b5ec3bba3686d187dde762ce876a474d45b6a99c7830bdfb", + "stateKeyHash": "OuetoDYmwUCI3LfOyQxK3EGEStyXN3rVf/3mQYP+o6w=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230991\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x7aeff332c688fd60c5e049af98026468b0712f823051b54ae82624dac2b987d6", + "stateKeyHash": "94gYOFg+HNQLqM/5INpOZsMwNLieHzz78RWPLutTZLM=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230993\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x7b3a9da1e0e789b3825a5ca91816b47e136b43dab9ff225d27595374598085dc", + "stateKeyHash": "qd/Xuf80lwWKfnuPw1OHLUAZxBETH+SoD4/sulfUeGY=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0x7b3a9da1e0e789b3825a5ca91816b47e136b43dab9ff225d27595374598085dc\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0x7b3a9da1e0e789b3825a5ca91816b47e136b43dab9ff225d27595374598085dc\"},\"mutator\":{\"self\":\"0x7b3a9da1e0e789b3825a5ca91816b47e136b43dab9ff225d27595374598085dc\"},\"name\":\"APTS #1231000\",\"propertyMutatorRef\":{\"self\":\"0x7b3a9da1e0e789b3825a5ca91816b47e136b43dab9ff225d27595374598085dc\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x7b3a9da1e0e789b3825a5ca91816b47e136b43dab9ff225d27595374598085dc", + "stateKeyHash": "/qdX2hn+OR6CKlZqNfeUlRKVbFiaH6P2y2zxVvtNeQw=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0x6b578b8e73b5a263a3e93cdbc37b52ca3faad034d595b058a4015cb5fefe894e\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0x7b3a9da1e0e789b3825a5ca91816b47e136b43dab9ff225d27595374598085dc\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x7b3a9da1e0e789b3825a5ca91816b47e136b43dab9ff225d27595374598085dc", + "stateKeyHash": "/qdX2hn+OR6CKlZqNfeUlRKVbFiaH6P2y2zxVvtNeQw=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x7b3a9da1e0e789b3825a5ca91816b47e136b43dab9ff225d27595374598085dc", + "stateKeyHash": "/qdX2hn+OR6CKlZqNfeUlRKVbFiaH6P2y2zxVvtNeQw=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026250\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0x7b3a9da1e0e789b3825a5ca91816b47e136b43dab9ff225d27595374598085dc\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1231000\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x7b3a9da1e0e789b3825a5ca91816b47e136b43dab9ff225d27595374598085dc", + "stateKeyHash": "/qdX2hn+OR6CKlZqNfeUlRKVbFiaH6P2y2zxVvtNeQw=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x7faac939ad46da09daad786f1a1e3f4cdcee5d60e78b70293ae0c208ee6fbb10", + "stateKeyHash": "5lD5zJPW25/v8Qv8kKK036AnGD4CNi5R+3yHT8nAeOM=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231057\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x82820295707248917c6a030f78166c3c0e27db52f995790be543e3a97d405986", + "stateKeyHash": "1brdM/ruTI7UDmMixnxGr6kI0kMiO3qNMMvJm1aMAP0=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230973\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x844ced43be60f0f4e6183936d48adc9da46275c6896a6680d7106985b5f34fea", + "stateKeyHash": "xoPwwr+Wy/ZYMXzXgTY8poT5wykUglYPVTWNSRouMfw=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231025\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x85d0948491e7ec44c6f3bfce1df3f12069a650ef0bee665fa649b9838719288e", + "stateKeyHash": "83opOTiFw/gAUQueEZdduNMyZPv/FHXwQ34nd9uAnBk=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0x85d0948491e7ec44c6f3bfce1df3f12069a650ef0bee665fa649b9838719288e\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0x85d0948491e7ec44c6f3bfce1df3f12069a650ef0bee665fa649b9838719288e\"},\"mutator\":{\"self\":\"0x85d0948491e7ec44c6f3bfce1df3f12069a650ef0bee665fa649b9838719288e\"},\"name\":\"APTS #1231052\",\"propertyMutatorRef\":{\"self\":\"0x85d0948491e7ec44c6f3bfce1df3f12069a650ef0bee665fa649b9838719288e\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x85d0948491e7ec44c6f3bfce1df3f12069a650ef0bee665fa649b9838719288e", + "stateKeyHash": "9h8xqwarQiRH7AzssMJD2fK68gWu2KV3d0PR6YO0DIQ=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0xc4bd716406a7002047449d9db8d92c2376abc06ce42c08482d99c5f0bf2baef9\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0x85d0948491e7ec44c6f3bfce1df3f12069a650ef0bee665fa649b9838719288e\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x85d0948491e7ec44c6f3bfce1df3f12069a650ef0bee665fa649b9838719288e", + "stateKeyHash": "9h8xqwarQiRH7AzssMJD2fK68gWu2KV3d0PR6YO0DIQ=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x85d0948491e7ec44c6f3bfce1df3f12069a650ef0bee665fa649b9838719288e", + "stateKeyHash": "9h8xqwarQiRH7AzssMJD2fK68gWu2KV3d0PR6YO0DIQ=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026302\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0x85d0948491e7ec44c6f3bfce1df3f12069a650ef0bee665fa649b9838719288e\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1231052\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x85d0948491e7ec44c6f3bfce1df3f12069a650ef0bee665fa649b9838719288e", + "stateKeyHash": "9h8xqwarQiRH7AzssMJD2fK68gWu2KV3d0PR6YO0DIQ=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231052\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x874ac0e3c97fbc78a04820077d11d72162c4fe9ceb3aa5951292504b1bb21f6a", + "stateKeyHash": "G0OVPwhqQTRfWozzAcb6zUtJOiZApxBSL/xZTLz3LeI=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0x874ac0e3c97fbc78a04820077d11d72162c4fe9ceb3aa5951292504b1bb21f6a\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0x874ac0e3c97fbc78a04820077d11d72162c4fe9ceb3aa5951292504b1bb21f6a\"},\"mutator\":{\"self\":\"0x874ac0e3c97fbc78a04820077d11d72162c4fe9ceb3aa5951292504b1bb21f6a\"},\"name\":\"APTS #1231002\",\"propertyMutatorRef\":{\"self\":\"0x874ac0e3c97fbc78a04820077d11d72162c4fe9ceb3aa5951292504b1bb21f6a\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x874ac0e3c97fbc78a04820077d11d72162c4fe9ceb3aa5951292504b1bb21f6a", + "stateKeyHash": "BqMxMOzLlpwmujdvURPf9tIJkUq9Jo+dGSwdaS3cIAY=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0xcb3be355cc841558e455dc17fd5505ba56f2473bbbadc6a218ec350ba0037b68\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0x874ac0e3c97fbc78a04820077d11d72162c4fe9ceb3aa5951292504b1bb21f6a\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x874ac0e3c97fbc78a04820077d11d72162c4fe9ceb3aa5951292504b1bb21f6a", + "stateKeyHash": "BqMxMOzLlpwmujdvURPf9tIJkUq9Jo+dGSwdaS3cIAY=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x874ac0e3c97fbc78a04820077d11d72162c4fe9ceb3aa5951292504b1bb21f6a", + "stateKeyHash": "BqMxMOzLlpwmujdvURPf9tIJkUq9Jo+dGSwdaS3cIAY=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026252\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0x874ac0e3c97fbc78a04820077d11d72162c4fe9ceb3aa5951292504b1bb21f6a\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1231002\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x874ac0e3c97fbc78a04820077d11d72162c4fe9ceb3aa5951292504b1bb21f6a", + "stateKeyHash": "BqMxMOzLlpwmujdvURPf9tIJkUq9Jo+dGSwdaS3cIAY=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231002\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x87e6185e650e6e399959aa732b1165821de468407027207f9d36bbc9b65652a5", + "stateKeyHash": "J0i+eIb3XgbZSltfYYuF3F8Sm3upwNPPhRDz2ZORxZM=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0x87e6185e650e6e399959aa732b1165821de468407027207f9d36bbc9b65652a5\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0x87e6185e650e6e399959aa732b1165821de468407027207f9d36bbc9b65652a5\"},\"mutator\":{\"self\":\"0x87e6185e650e6e399959aa732b1165821de468407027207f9d36bbc9b65652a5\"},\"name\":\"APTS #1231008\",\"propertyMutatorRef\":{\"self\":\"0x87e6185e650e6e399959aa732b1165821de468407027207f9d36bbc9b65652a5\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x87e6185e650e6e399959aa732b1165821de468407027207f9d36bbc9b65652a5", + "stateKeyHash": "zxMjIuGCMzdyyraE/ywYRIqWHKEwyE9jeaAQpShKToQ=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0x7e9bebf86ba23f20d2cc50db10be58aa60c8cc1fef32437f340f61d0a7d27b04\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0x87e6185e650e6e399959aa732b1165821de468407027207f9d36bbc9b65652a5\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x87e6185e650e6e399959aa732b1165821de468407027207f9d36bbc9b65652a5", + "stateKeyHash": "zxMjIuGCMzdyyraE/ywYRIqWHKEwyE9jeaAQpShKToQ=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x87e6185e650e6e399959aa732b1165821de468407027207f9d36bbc9b65652a5", + "stateKeyHash": "zxMjIuGCMzdyyraE/ywYRIqWHKEwyE9jeaAQpShKToQ=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026258\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0x87e6185e650e6e399959aa732b1165821de468407027207f9d36bbc9b65652a5\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1231008\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x87e6185e650e6e399959aa732b1165821de468407027207f9d36bbc9b65652a5", + "stateKeyHash": "zxMjIuGCMzdyyraE/ywYRIqWHKEwyE9jeaAQpShKToQ=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231008\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x8a863471ae57edd3e40db29266ae76700d5357707c94602449e36d617a254821", + "stateKeyHash": "at4jA8wDu3qhtb7p4CXggJbRsBHYSoCl9tbt2tX2R6M=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231017\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x8ae00aacf74d0e3a3fbc5d732442a646402bfaa558d5cef1c09b1dd0305147d2", + "stateKeyHash": "sVcAS109oalsjACbKkQGPLYrhwSqp43xWSXRMjMl0oQ=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0x8ae00aacf74d0e3a3fbc5d732442a646402bfaa558d5cef1c09b1dd0305147d2\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0x8ae00aacf74d0e3a3fbc5d732442a646402bfaa558d5cef1c09b1dd0305147d2\"},\"mutator\":{\"self\":\"0x8ae00aacf74d0e3a3fbc5d732442a646402bfaa558d5cef1c09b1dd0305147d2\"},\"name\":\"APTS #1231018\",\"propertyMutatorRef\":{\"self\":\"0x8ae00aacf74d0e3a3fbc5d732442a646402bfaa558d5cef1c09b1dd0305147d2\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x8ae00aacf74d0e3a3fbc5d732442a646402bfaa558d5cef1c09b1dd0305147d2", + "stateKeyHash": "lBpYUjqHcuqXW+ZCRRYLLCcs2RDzyJU4YLF3pyGIJyw=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0x6407331f7383631915f94ad2ce1251665d3d5a145945904f3035d871bfddef0a\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0x8ae00aacf74d0e3a3fbc5d732442a646402bfaa558d5cef1c09b1dd0305147d2\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x8ae00aacf74d0e3a3fbc5d732442a646402bfaa558d5cef1c09b1dd0305147d2", + "stateKeyHash": "lBpYUjqHcuqXW+ZCRRYLLCcs2RDzyJU4YLF3pyGIJyw=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x8ae00aacf74d0e3a3fbc5d732442a646402bfaa558d5cef1c09b1dd0305147d2", + "stateKeyHash": "lBpYUjqHcuqXW+ZCRRYLLCcs2RDzyJU4YLF3pyGIJyw=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026268\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0x8ae00aacf74d0e3a3fbc5d732442a646402bfaa558d5cef1c09b1dd0305147d2\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1231018\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x8ae00aacf74d0e3a3fbc5d732442a646402bfaa558d5cef1c09b1dd0305147d2", + "stateKeyHash": "lBpYUjqHcuqXW+ZCRRYLLCcs2RDzyJU4YLF3pyGIJyw=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231018\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x8b3eea43ba12c88a95b2dd8322cdb4f9366c8a38c2fc9b65bc2e663383e3b365", + "stateKeyHash": "/PYnMC2x/4cq0zZ6Fuos+lrXs0LDbYuHhyo8dub5oho=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231047\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x8fd1b847669d00b505041727e3339ddec30e1cfa1fd527350e8cf6aaa74e3627", + "stateKeyHash": "73QDw2hSH/PaGH5L+p5KZp9xmOFEKjMrgDQi991s7w0=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0x8fd1b847669d00b505041727e3339ddec30e1cfa1fd527350e8cf6aaa74e3627\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0x8fd1b847669d00b505041727e3339ddec30e1cfa1fd527350e8cf6aaa74e3627\"},\"mutator\":{\"self\":\"0x8fd1b847669d00b505041727e3339ddec30e1cfa1fd527350e8cf6aaa74e3627\"},\"name\":\"APTS #1231028\",\"propertyMutatorRef\":{\"self\":\"0x8fd1b847669d00b505041727e3339ddec30e1cfa1fd527350e8cf6aaa74e3627\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x8fd1b847669d00b505041727e3339ddec30e1cfa1fd527350e8cf6aaa74e3627", + "stateKeyHash": "iUCZxmoMYtfevHoio1Gz/DDYcjz8s/E9+aWsI08v0BI=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0x3adf023110ab268f8bb0b8a19baecbc7bca0121faabd64712c6a48de13a99246\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0x8fd1b847669d00b505041727e3339ddec30e1cfa1fd527350e8cf6aaa74e3627\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x8fd1b847669d00b505041727e3339ddec30e1cfa1fd527350e8cf6aaa74e3627", + "stateKeyHash": "iUCZxmoMYtfevHoio1Gz/DDYcjz8s/E9+aWsI08v0BI=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x8fd1b847669d00b505041727e3339ddec30e1cfa1fd527350e8cf6aaa74e3627", + "stateKeyHash": "iUCZxmoMYtfevHoio1Gz/DDYcjz8s/E9+aWsI08v0BI=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026278\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0x8fd1b847669d00b505041727e3339ddec30e1cfa1fd527350e8cf6aaa74e3627\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1231028\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x8fd1b847669d00b505041727e3339ddec30e1cfa1fd527350e8cf6aaa74e3627", + "stateKeyHash": "iUCZxmoMYtfevHoio1Gz/DDYcjz8s/E9+aWsI08v0BI=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231028\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x92320ef4cc26268c52448ed13f80902c7420295a582f9d8353a639efab4a98fe", + "stateKeyHash": "t+bHz9p/kK+f1/bx2Jr8M9xBcJe3rZcjKmRjLIanNNY=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231065\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x9479e890f4e55363aecf2981fcc7d97e565c6015d05cea5e0a9dc5d7909dd21d", + "stateKeyHash": "yGjVnQOzCcJZzKhu7HTgbBqykhwywSxSrJgIHOPFPz0=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0x9479e890f4e55363aecf2981fcc7d97e565c6015d05cea5e0a9dc5d7909dd21d\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0x9479e890f4e55363aecf2981fcc7d97e565c6015d05cea5e0a9dc5d7909dd21d\"},\"mutator\":{\"self\":\"0x9479e890f4e55363aecf2981fcc7d97e565c6015d05cea5e0a9dc5d7909dd21d\"},\"name\":\"APTS #1231044\",\"propertyMutatorRef\":{\"self\":\"0x9479e890f4e55363aecf2981fcc7d97e565c6015d05cea5e0a9dc5d7909dd21d\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x9479e890f4e55363aecf2981fcc7d97e565c6015d05cea5e0a9dc5d7909dd21d", + "stateKeyHash": "r7RYyFvqswsDVPFvBXRn6B43W8p3Q5mVQxS1b6M+9hU=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0x45f9d8ceb64213cc524905f550db59a55be9df8d4bcc918c96b786f0f59cf94d\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0x9479e890f4e55363aecf2981fcc7d97e565c6015d05cea5e0a9dc5d7909dd21d\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x9479e890f4e55363aecf2981fcc7d97e565c6015d05cea5e0a9dc5d7909dd21d", + "stateKeyHash": "r7RYyFvqswsDVPFvBXRn6B43W8p3Q5mVQxS1b6M+9hU=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x9479e890f4e55363aecf2981fcc7d97e565c6015d05cea5e0a9dc5d7909dd21d", + "stateKeyHash": "r7RYyFvqswsDVPFvBXRn6B43W8p3Q5mVQxS1b6M+9hU=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026294\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0x9479e890f4e55363aecf2981fcc7d97e565c6015d05cea5e0a9dc5d7909dd21d\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1231044\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x9479e890f4e55363aecf2981fcc7d97e565c6015d05cea5e0a9dc5d7909dd21d", + "stateKeyHash": "r7RYyFvqswsDVPFvBXRn6B43W8p3Q5mVQxS1b6M+9hU=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231044\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x9715f6e240aea8741bca1e91ea6cf87f4dc9ba5025d06a09b85146b55ec13c9f", + "stateKeyHash": "T0BeLBR5r3kfuXkmSH5MvcNbQKOpFa1ScKVpZA8VBPU=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0x9715f6e240aea8741bca1e91ea6cf87f4dc9ba5025d06a09b85146b55ec13c9f\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0x9715f6e240aea8741bca1e91ea6cf87f4dc9ba5025d06a09b85146b55ec13c9f\"},\"mutator\":{\"self\":\"0x9715f6e240aea8741bca1e91ea6cf87f4dc9ba5025d06a09b85146b55ec13c9f\"},\"name\":\"APTS #1230980\",\"propertyMutatorRef\":{\"self\":\"0x9715f6e240aea8741bca1e91ea6cf87f4dc9ba5025d06a09b85146b55ec13c9f\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x9715f6e240aea8741bca1e91ea6cf87f4dc9ba5025d06a09b85146b55ec13c9f", + "stateKeyHash": "eCKIxhFkXh8PwffmYOjHSVPiKBmav07I6rcFyORqUlg=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0xcef26d0b17c49b68c8ef10fad67035866fa0c8daa31b03b902b455c5784bd73c\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0x9715f6e240aea8741bca1e91ea6cf87f4dc9ba5025d06a09b85146b55ec13c9f\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x9715f6e240aea8741bca1e91ea6cf87f4dc9ba5025d06a09b85146b55ec13c9f", + "stateKeyHash": "eCKIxhFkXh8PwffmYOjHSVPiKBmav07I6rcFyORqUlg=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x9715f6e240aea8741bca1e91ea6cf87f4dc9ba5025d06a09b85146b55ec13c9f", + "stateKeyHash": "eCKIxhFkXh8PwffmYOjHSVPiKBmav07I6rcFyORqUlg=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026230\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0x9715f6e240aea8741bca1e91ea6cf87f4dc9ba5025d06a09b85146b55ec13c9f\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1230980\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x9715f6e240aea8741bca1e91ea6cf87f4dc9ba5025d06a09b85146b55ec13c9f", + "stateKeyHash": "eCKIxhFkXh8PwffmYOjHSVPiKBmav07I6rcFyORqUlg=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230980\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x97ecb34ec29e14647badc8e1b478d1a61f0272e3ad9cefc05534ad69a47c54aa", + "stateKeyHash": "56ZCxrUHNYhHqIJUura701eSm9JDWklPJg0qZFqeOUg=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0x97ecb34ec29e14647badc8e1b478d1a61f0272e3ad9cefc05534ad69a47c54aa\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0x97ecb34ec29e14647badc8e1b478d1a61f0272e3ad9cefc05534ad69a47c54aa\"},\"mutator\":{\"self\":\"0x97ecb34ec29e14647badc8e1b478d1a61f0272e3ad9cefc05534ad69a47c54aa\"},\"name\":\"APTS #1231064\",\"propertyMutatorRef\":{\"self\":\"0x97ecb34ec29e14647badc8e1b478d1a61f0272e3ad9cefc05534ad69a47c54aa\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x97ecb34ec29e14647badc8e1b478d1a61f0272e3ad9cefc05534ad69a47c54aa", + "stateKeyHash": "gUyvWA9KcXH/cxrcgD1bQPJpAcjr1z/19zQJBmnpM/0=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0x8aa5f576f02e267ffde7066bac4c0d9a1f1b1095c24813bf9dedcb4d3aaa9805\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0x97ecb34ec29e14647badc8e1b478d1a61f0272e3ad9cefc05534ad69a47c54aa\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x97ecb34ec29e14647badc8e1b478d1a61f0272e3ad9cefc05534ad69a47c54aa", + "stateKeyHash": "gUyvWA9KcXH/cxrcgD1bQPJpAcjr1z/19zQJBmnpM/0=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x97ecb34ec29e14647badc8e1b478d1a61f0272e3ad9cefc05534ad69a47c54aa", + "stateKeyHash": "gUyvWA9KcXH/cxrcgD1bQPJpAcjr1z/19zQJBmnpM/0=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026314\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0x97ecb34ec29e14647badc8e1b478d1a61f0272e3ad9cefc05534ad69a47c54aa\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1231064\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x97ecb34ec29e14647badc8e1b478d1a61f0272e3ad9cefc05534ad69a47c54aa", + "stateKeyHash": "gUyvWA9KcXH/cxrcgD1bQPJpAcjr1z/19zQJBmnpM/0=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231064\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x9a775284b82888f1496293ad8ba7f249a868b9ae5c2c2af5907b11fa777980b6", + "stateKeyHash": "ZCqLeiHtkTDFv+ImLf3500Bqy1kBysFDV4tLwFrYyk4=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231067\"}" + } + }, + { + "type": "TYPE_DELETE_RESOURCE", + "deleteResource": { + "address": "0x9b114c68380752852889ce37415c1ccb62667da677ddcf15923657c7a89027d4", + "stateKeyHash": "7MuVcPFFY5P06tefx2mmyjfChAFBDari6AClLBAVJDI=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x9b114c68380752852889ce37415c1ccb62667da677ddcf15923657c7a89027d4", + "stateKeyHash": "jVi+sR6VQCzklzWff3V8/Wn7VHE2xeEKYRqk/4rwd78=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230936\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x9c9c31d0af1c1e04506d5fdc6baf36db61150d037326fb587b842013fe266ab3", + "stateKeyHash": "Km5kYNZ4EmEV3tUcvP0OtQH/CpZcWpIagFEdh/piE7I=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0x9c9c31d0af1c1e04506d5fdc6baf36db61150d037326fb587b842013fe266ab3\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0x9c9c31d0af1c1e04506d5fdc6baf36db61150d037326fb587b842013fe266ab3\"},\"mutator\":{\"self\":\"0x9c9c31d0af1c1e04506d5fdc6baf36db61150d037326fb587b842013fe266ab3\"},\"name\":\"APTS #1231068\",\"propertyMutatorRef\":{\"self\":\"0x9c9c31d0af1c1e04506d5fdc6baf36db61150d037326fb587b842013fe266ab3\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x9c9c31d0af1c1e04506d5fdc6baf36db61150d037326fb587b842013fe266ab3", + "stateKeyHash": "o1Rrs5y/QT8BzwXp1uWRSzddGPH3aoAEWD7ajcxGA68=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0xb4221289ce8afca35c00b8599bdaf52d95357e9dc48020ac0cc00d53a3ef47b7\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0x9c9c31d0af1c1e04506d5fdc6baf36db61150d037326fb587b842013fe266ab3\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x9c9c31d0af1c1e04506d5fdc6baf36db61150d037326fb587b842013fe266ab3", + "stateKeyHash": "o1Rrs5y/QT8BzwXp1uWRSzddGPH3aoAEWD7ajcxGA68=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x9c9c31d0af1c1e04506d5fdc6baf36db61150d037326fb587b842013fe266ab3", + "stateKeyHash": "o1Rrs5y/QT8BzwXp1uWRSzddGPH3aoAEWD7ajcxGA68=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026318\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0x9c9c31d0af1c1e04506d5fdc6baf36db61150d037326fb587b842013fe266ab3\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1231068\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x9c9c31d0af1c1e04506d5fdc6baf36db61150d037326fb587b842013fe266ab3", + "stateKeyHash": "o1Rrs5y/QT8BzwXp1uWRSzddGPH3aoAEWD7ajcxGA68=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231068\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x9cda50a39b007ce651233294963523153c8c7bb0b05a342b1c8d9271da1f4555", + "stateKeyHash": "KczR0ueXbThmzrEe0hfY3Q1sABP5P1FtqnAMS6vhLGc=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0x9cda50a39b007ce651233294963523153c8c7bb0b05a342b1c8d9271da1f4555\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0x9cda50a39b007ce651233294963523153c8c7bb0b05a342b1c8d9271da1f4555\"},\"mutator\":{\"self\":\"0x9cda50a39b007ce651233294963523153c8c7bb0b05a342b1c8d9271da1f4555\"},\"name\":\"APTS #1231072\",\"propertyMutatorRef\":{\"self\":\"0x9cda50a39b007ce651233294963523153c8c7bb0b05a342b1c8d9271da1f4555\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x9cda50a39b007ce651233294963523153c8c7bb0b05a342b1c8d9271da1f4555", + "stateKeyHash": "wsqe+O9yrNbJXIDfvY9gv1ubcJba0XUXanKkfqqhJsM=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0x3e7ac727239e79143d789771e2225bef7657be200a319d6010702e6881b01c61\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0x9cda50a39b007ce651233294963523153c8c7bb0b05a342b1c8d9271da1f4555\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x9cda50a39b007ce651233294963523153c8c7bb0b05a342b1c8d9271da1f4555", + "stateKeyHash": "wsqe+O9yrNbJXIDfvY9gv1ubcJba0XUXanKkfqqhJsM=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x9cda50a39b007ce651233294963523153c8c7bb0b05a342b1c8d9271da1f4555", + "stateKeyHash": "wsqe+O9yrNbJXIDfvY9gv1ubcJba0XUXanKkfqqhJsM=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026322\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0x9cda50a39b007ce651233294963523153c8c7bb0b05a342b1c8d9271da1f4555\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1231072\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x9cda50a39b007ce651233294963523153c8c7bb0b05a342b1c8d9271da1f4555", + "stateKeyHash": "wsqe+O9yrNbJXIDfvY9gv1ubcJba0XUXanKkfqqhJsM=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231072\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x9ed7b1196bbbc8e0815d72c7dbe93d396e237fb57a98fabbe6cd2f83db354316", + "stateKeyHash": "nNwns115SrXQYXA+fQzUe1w7KtPU1Qu/bhxL1G8NqRo=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0x9ed7b1196bbbc8e0815d72c7dbe93d396e237fb57a98fabbe6cd2f83db354316\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0x9ed7b1196bbbc8e0815d72c7dbe93d396e237fb57a98fabbe6cd2f83db354316\"},\"mutator\":{\"self\":\"0x9ed7b1196bbbc8e0815d72c7dbe93d396e237fb57a98fabbe6cd2f83db354316\"},\"name\":\"APTS #1230976\",\"propertyMutatorRef\":{\"self\":\"0x9ed7b1196bbbc8e0815d72c7dbe93d396e237fb57a98fabbe6cd2f83db354316\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x9ed7b1196bbbc8e0815d72c7dbe93d396e237fb57a98fabbe6cd2f83db354316", + "stateKeyHash": "ZJlmEyRFe3hf8lPREjRbLEA/tlpptEXCYeyAptoXtf4=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0xacf0abaeace749e6f1ecbc51ca44f990e700dad43decd207177ece212384afb3\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0x9ed7b1196bbbc8e0815d72c7dbe93d396e237fb57a98fabbe6cd2f83db354316\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x9ed7b1196bbbc8e0815d72c7dbe93d396e237fb57a98fabbe6cd2f83db354316", + "stateKeyHash": "ZJlmEyRFe3hf8lPREjRbLEA/tlpptEXCYeyAptoXtf4=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x9ed7b1196bbbc8e0815d72c7dbe93d396e237fb57a98fabbe6cd2f83db354316", + "stateKeyHash": "ZJlmEyRFe3hf8lPREjRbLEA/tlpptEXCYeyAptoXtf4=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026226\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0x9ed7b1196bbbc8e0815d72c7dbe93d396e237fb57a98fabbe6cd2f83db354316\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1230976\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x9ed7b1196bbbc8e0815d72c7dbe93d396e237fb57a98fabbe6cd2f83db354316", + "stateKeyHash": "ZJlmEyRFe3hf8lPREjRbLEA/tlpptEXCYeyAptoXtf4=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230976\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x9edbcd641bd0e75b1c0ecb1bbc457c781390aaad97cab52d9f84148429b2905c", + "stateKeyHash": "qhu7juTA8LNE1IYZsZKp10AG7jSAMECO0yatHLY3zjU=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230947\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x9fbba0f26d168e68a961b90375131b2e93df06e346c8ea2aaea6d13d27600393", + "stateKeyHash": "xT82aY7caR3StQwh70mgkGcA+NCjAw2C5Hw5QfuFDfU=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230945\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xa1f52634442a2dd0fd5eaf11428217ffefaae638ddb1a68d457fccb0760e48bb", + "stateKeyHash": "Q+4W+ReCc3lkZlxkCR0t0XQScXnt5HNCZLm8d6NMu7Y=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0xa1f52634442a2dd0fd5eaf11428217ffefaae638ddb1a68d457fccb0760e48bb\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0xa1f52634442a2dd0fd5eaf11428217ffefaae638ddb1a68d457fccb0760e48bb\"},\"mutator\":{\"self\":\"0xa1f52634442a2dd0fd5eaf11428217ffefaae638ddb1a68d457fccb0760e48bb\"},\"name\":\"APTS #1231058\",\"propertyMutatorRef\":{\"self\":\"0xa1f52634442a2dd0fd5eaf11428217ffefaae638ddb1a68d457fccb0760e48bb\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xa1f52634442a2dd0fd5eaf11428217ffefaae638ddb1a68d457fccb0760e48bb", + "stateKeyHash": "DXpL1TK8cdf4qYHCT4qm1pJSQ3wN2ZxKTkoPDRtgvd4=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0xabc30cdd4f37a2e1ec28639d4cf8d71b97dfff0ac7784363db4f3feac82b27fd\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0xa1f52634442a2dd0fd5eaf11428217ffefaae638ddb1a68d457fccb0760e48bb\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xa1f52634442a2dd0fd5eaf11428217ffefaae638ddb1a68d457fccb0760e48bb", + "stateKeyHash": "DXpL1TK8cdf4qYHCT4qm1pJSQ3wN2ZxKTkoPDRtgvd4=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xa1f52634442a2dd0fd5eaf11428217ffefaae638ddb1a68d457fccb0760e48bb", + "stateKeyHash": "DXpL1TK8cdf4qYHCT4qm1pJSQ3wN2ZxKTkoPDRtgvd4=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026308\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0xa1f52634442a2dd0fd5eaf11428217ffefaae638ddb1a68d457fccb0760e48bb\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1231058\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xa1f52634442a2dd0fd5eaf11428217ffefaae638ddb1a68d457fccb0760e48bb", + "stateKeyHash": "DXpL1TK8cdf4qYHCT4qm1pJSQ3wN2ZxKTkoPDRtgvd4=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231058\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f", + "stateKeyHash": "dtjoihxrKHfzNiwTdQ/3yu1yOKqoqiMm+RDpvcRoLxg=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":false,\"guid_creation_num\":\"1125899906842628\",\"owner\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"transfer_events\":{\"counter\":\"0\",\"guid\":{\"id\":{\"addr\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f", + "stateKeyHash": "dtjoihxrKHfzNiwTdQ/3yu1yOKqoqiMm+RDpvcRoLxg=", + "type": { + "address": "0x4", + "module": "collection", + "name": "Collection" + }, + "typeStr": "0x4::collection::Collection", + "data": "{\"creator\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"description\":\"\",\"mutation_events\":{\"counter\":\"0\",\"guid\":{\"id\":{\"addr\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\",\"creation_num\":\"1125899906842627\"}}},\"name\":\"APTS\",\"uri\":\"https://img.apt-20.com/?tick=APTS\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f", + "stateKeyHash": "dtjoihxrKHfzNiwTdQ/3yu1yOKqoqiMm+RDpvcRoLxg=", + "type": { + "address": "0x4", + "module": "collection", + "name": "UnlimitedSupply" + }, + "typeStr": "0x4::collection::UnlimitedSupply", + "data": "{\"burn_events\":{\"counter\":\"661470\",\"guid\":{\"id\":{\"addr\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\",\"creation_num\":\"1125899906842625\"}}},\"current_supply\":\"364858\",\"mint_events\":{\"counter\":\"1026328\",\"guid\":{\"id\":{\"addr\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\",\"creation_num\":\"1125899906842626\"}}},\"total_minted\":\"1026328\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xa5093bae06b13ab6738c8238cef2e702675b3be2f964fdc9829410dc177481ef", + "stateKeyHash": "ZJ5451Kbahl678lDmjqu9LYskEoYmXw2Xlz4h62Anyw=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0xa5093bae06b13ab6738c8238cef2e702675b3be2f964fdc9829410dc177481ef\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0xa5093bae06b13ab6738c8238cef2e702675b3be2f964fdc9829410dc177481ef\"},\"mutator\":{\"self\":\"0xa5093bae06b13ab6738c8238cef2e702675b3be2f964fdc9829410dc177481ef\"},\"name\":\"APTS #1231050\",\"propertyMutatorRef\":{\"self\":\"0xa5093bae06b13ab6738c8238cef2e702675b3be2f964fdc9829410dc177481ef\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xa5093bae06b13ab6738c8238cef2e702675b3be2f964fdc9829410dc177481ef", + "stateKeyHash": "yTGjfDmWnWpAgIGfV5MIRMQ387LSlYgllK4z8KO6rFM=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0x4c5f2a9dea3cd0af36495a9390efa6d362700d459f4ba2569c4c06addde36aff\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0xa5093bae06b13ab6738c8238cef2e702675b3be2f964fdc9829410dc177481ef\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xa5093bae06b13ab6738c8238cef2e702675b3be2f964fdc9829410dc177481ef", + "stateKeyHash": "yTGjfDmWnWpAgIGfV5MIRMQ387LSlYgllK4z8KO6rFM=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xa5093bae06b13ab6738c8238cef2e702675b3be2f964fdc9829410dc177481ef", + "stateKeyHash": "yTGjfDmWnWpAgIGfV5MIRMQ387LSlYgllK4z8KO6rFM=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026300\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0xa5093bae06b13ab6738c8238cef2e702675b3be2f964fdc9829410dc177481ef\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1231050\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xa5093bae06b13ab6738c8238cef2e702675b3be2f964fdc9829410dc177481ef", + "stateKeyHash": "yTGjfDmWnWpAgIGfV5MIRMQ387LSlYgllK4z8KO6rFM=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231050\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xabb748253637f38481112e13129d2f3aafb7c97082452b1f07b8c4edd265f8eb", + "stateKeyHash": "s8eYkpsZmXLhCjL+tpv85vDb4vf270edjbPVq8rbe2E=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0xabb748253637f38481112e13129d2f3aafb7c97082452b1f07b8c4edd265f8eb\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0xabb748253637f38481112e13129d2f3aafb7c97082452b1f07b8c4edd265f8eb\"},\"mutator\":{\"self\":\"0xabb748253637f38481112e13129d2f3aafb7c97082452b1f07b8c4edd265f8eb\"},\"name\":\"APTS #1231010\",\"propertyMutatorRef\":{\"self\":\"0xabb748253637f38481112e13129d2f3aafb7c97082452b1f07b8c4edd265f8eb\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xabb748253637f38481112e13129d2f3aafb7c97082452b1f07b8c4edd265f8eb", + "stateKeyHash": "7W+gu+6c+ej2jl+lZyPZ1KmI94dhGAgve2QQo7rdIZ0=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0x560420d549ea03b5d5b937164088ce0dad500c4caab7c1c991a20d8ea2d49c0b\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0xabb748253637f38481112e13129d2f3aafb7c97082452b1f07b8c4edd265f8eb\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xabb748253637f38481112e13129d2f3aafb7c97082452b1f07b8c4edd265f8eb", + "stateKeyHash": "7W+gu+6c+ej2jl+lZyPZ1KmI94dhGAgve2QQo7rdIZ0=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xabb748253637f38481112e13129d2f3aafb7c97082452b1f07b8c4edd265f8eb", + "stateKeyHash": "7W+gu+6c+ej2jl+lZyPZ1KmI94dhGAgve2QQo7rdIZ0=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026260\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0xabb748253637f38481112e13129d2f3aafb7c97082452b1f07b8c4edd265f8eb\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1231010\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xabb748253637f38481112e13129d2f3aafb7c97082452b1f07b8c4edd265f8eb", + "stateKeyHash": "7W+gu+6c+ej2jl+lZyPZ1KmI94dhGAgve2QQo7rdIZ0=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231010\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xabc9859915076dd5ce1f967541ef3a5cd70c202ea951f63e0f9c649f915a3f06", + "stateKeyHash": "f9u19vnopDHDP6JtLgLF0XssgIRt4gFY7DJ2VS/C6tg=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231069\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xac13e19e96d920dfb36b0639f9961f5870dc4d6e15d9672d70ab7a9875107fcc", + "stateKeyHash": "Pjh12SEUYgFqDHbgJYdUlsEGUAn84pwIVRYKG6axEi0=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0xac13e19e96d920dfb36b0639f9961f5870dc4d6e15d9672d70ab7a9875107fcc\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0xac13e19e96d920dfb36b0639f9961f5870dc4d6e15d9672d70ab7a9875107fcc\"},\"mutator\":{\"self\":\"0xac13e19e96d920dfb36b0639f9961f5870dc4d6e15d9672d70ab7a9875107fcc\"},\"name\":\"APTS #1230970\",\"propertyMutatorRef\":{\"self\":\"0xac13e19e96d920dfb36b0639f9961f5870dc4d6e15d9672d70ab7a9875107fcc\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xac13e19e96d920dfb36b0639f9961f5870dc4d6e15d9672d70ab7a9875107fcc", + "stateKeyHash": "NY6lXcV9CyGW7uBuhJCEG5P4uWBBa9yYjpO964kYNaE=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0x55d4203c0f4bd0145a6ad43d00f8b381c08be08137932854433b69a1bd6cd3da\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0xac13e19e96d920dfb36b0639f9961f5870dc4d6e15d9672d70ab7a9875107fcc\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xac13e19e96d920dfb36b0639f9961f5870dc4d6e15d9672d70ab7a9875107fcc", + "stateKeyHash": "NY6lXcV9CyGW7uBuhJCEG5P4uWBBa9yYjpO964kYNaE=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xac13e19e96d920dfb36b0639f9961f5870dc4d6e15d9672d70ab7a9875107fcc", + "stateKeyHash": "NY6lXcV9CyGW7uBuhJCEG5P4uWBBa9yYjpO964kYNaE=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026220\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0xac13e19e96d920dfb36b0639f9961f5870dc4d6e15d9672d70ab7a9875107fcc\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1230970\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xac13e19e96d920dfb36b0639f9961f5870dc4d6e15d9672d70ab7a9875107fcc", + "stateKeyHash": "NY6lXcV9CyGW7uBuhJCEG5P4uWBBa9yYjpO964kYNaE=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230970\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xae179ffaeac0374a65dba2aab0f0f78120797c43d68b8d6bddcac49f3ef719fe", + "stateKeyHash": "5qpWefPW5qtEMs211nPnDxSjoPqE0fZwVXwYTWFFNKk=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230989\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xb13d2df4409afc6b24fb43c8046692568a6384b9645a4288d2e6d6fbc840d81f", + "stateKeyHash": "luTju6OHgqZHXD8oO7jBSBDdk76J0XbFGRdk4IitBHs=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0xb13d2df4409afc6b24fb43c8046692568a6384b9645a4288d2e6d6fbc840d81f\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0xb13d2df4409afc6b24fb43c8046692568a6384b9645a4288d2e6d6fbc840d81f\"},\"mutator\":{\"self\":\"0xb13d2df4409afc6b24fb43c8046692568a6384b9645a4288d2e6d6fbc840d81f\"},\"name\":\"APTS #1230950\",\"propertyMutatorRef\":{\"self\":\"0xb13d2df4409afc6b24fb43c8046692568a6384b9645a4288d2e6d6fbc840d81f\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xb13d2df4409afc6b24fb43c8046692568a6384b9645a4288d2e6d6fbc840d81f", + "stateKeyHash": "vsQ2YZl/pYjOFvd7dg+ILcxnF8CV0a3ZzsJBfw4ELKw=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0x4206de6c89de6803261617a1e564b22e06e4d24184e9f0d6d9bf02690a88628\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0xb13d2df4409afc6b24fb43c8046692568a6384b9645a4288d2e6d6fbc840d81f\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xb13d2df4409afc6b24fb43c8046692568a6384b9645a4288d2e6d6fbc840d81f", + "stateKeyHash": "vsQ2YZl/pYjOFvd7dg+ILcxnF8CV0a3ZzsJBfw4ELKw=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xb13d2df4409afc6b24fb43c8046692568a6384b9645a4288d2e6d6fbc840d81f", + "stateKeyHash": "vsQ2YZl/pYjOFvd7dg+ILcxnF8CV0a3ZzsJBfw4ELKw=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026200\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0xb13d2df4409afc6b24fb43c8046692568a6384b9645a4288d2e6d6fbc840d81f\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1230950\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xb13d2df4409afc6b24fb43c8046692568a6384b9645a4288d2e6d6fbc840d81f", + "stateKeyHash": "vsQ2YZl/pYjOFvd7dg+ILcxnF8CV0a3ZzsJBfw4ELKw=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230950\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xb3c7ba022da0a8d2246493a0dd6d056413eb170d45aa3abfacf362ec5de0489b", + "stateKeyHash": "YTxWi2LcYH9gs9AuPqnmKY01vnup4Ugoxm9va8hGZrM=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231015\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xb3fe7273d809a4ef2dab423dc922ec0dbe70c32518c97a0acf3822db67a7ea54", + "stateKeyHash": "bqE0SDg7F1mHMchngbkn7Ao/itZDALU4lEN7nYpyV0k=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0xb3fe7273d809a4ef2dab423dc922ec0dbe70c32518c97a0acf3822db67a7ea54\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0xb3fe7273d809a4ef2dab423dc922ec0dbe70c32518c97a0acf3822db67a7ea54\"},\"mutator\":{\"self\":\"0xb3fe7273d809a4ef2dab423dc922ec0dbe70c32518c97a0acf3822db67a7ea54\"},\"name\":\"APTS #1230992\",\"propertyMutatorRef\":{\"self\":\"0xb3fe7273d809a4ef2dab423dc922ec0dbe70c32518c97a0acf3822db67a7ea54\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xb3fe7273d809a4ef2dab423dc922ec0dbe70c32518c97a0acf3822db67a7ea54", + "stateKeyHash": "v2CRiilTsN88bhuWGFiZygyhX+XFmTwAghNxThAU6JM=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0x691de42dcba524d7f66dd256a1beabdb6b7ffbba3af499fdf86fb42e6c5c1f17\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0xb3fe7273d809a4ef2dab423dc922ec0dbe70c32518c97a0acf3822db67a7ea54\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xb3fe7273d809a4ef2dab423dc922ec0dbe70c32518c97a0acf3822db67a7ea54", + "stateKeyHash": "v2CRiilTsN88bhuWGFiZygyhX+XFmTwAghNxThAU6JM=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xb3fe7273d809a4ef2dab423dc922ec0dbe70c32518c97a0acf3822db67a7ea54", + "stateKeyHash": "v2CRiilTsN88bhuWGFiZygyhX+XFmTwAghNxThAU6JM=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026242\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0xb3fe7273d809a4ef2dab423dc922ec0dbe70c32518c97a0acf3822db67a7ea54\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1230992\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xb3fe7273d809a4ef2dab423dc922ec0dbe70c32518c97a0acf3822db67a7ea54", + "stateKeyHash": "v2CRiilTsN88bhuWGFiZygyhX+XFmTwAghNxThAU6JM=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230992\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xb6706d72132f702c167edc08a91742024ead546067ce49ee4ad61b98d405435c", + "stateKeyHash": "EPO3GxmNL4mxxluJUPLi38lPfmnnjqasIx3ubXindoc=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230951\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xb6d1165b4d4041e338303347d2736d5096c051d4574ff373b8f1e53218d595a1", + "stateKeyHash": "ZKciXjoMmnPnsKrsvnxMmfQoUW9ORqkuTI1vJU1/Ya0=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0xb6d1165b4d4041e338303347d2736d5096c051d4574ff373b8f1e53218d595a1\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0xb6d1165b4d4041e338303347d2736d5096c051d4574ff373b8f1e53218d595a1\"},\"mutator\":{\"self\":\"0xb6d1165b4d4041e338303347d2736d5096c051d4574ff373b8f1e53218d595a1\"},\"name\":\"APTS #1230974\",\"propertyMutatorRef\":{\"self\":\"0xb6d1165b4d4041e338303347d2736d5096c051d4574ff373b8f1e53218d595a1\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xb6d1165b4d4041e338303347d2736d5096c051d4574ff373b8f1e53218d595a1", + "stateKeyHash": "oyhzeD0BfX3kpuz7JQIe4lX9rK1mMFzl4KKyuleEYeY=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0x994d35ea34d3c335f3accc4c6bd665da7af62f805e4eb0e4e1eeef8ec99389cd\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0xb6d1165b4d4041e338303347d2736d5096c051d4574ff373b8f1e53218d595a1\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xb6d1165b4d4041e338303347d2736d5096c051d4574ff373b8f1e53218d595a1", + "stateKeyHash": "oyhzeD0BfX3kpuz7JQIe4lX9rK1mMFzl4KKyuleEYeY=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xb6d1165b4d4041e338303347d2736d5096c051d4574ff373b8f1e53218d595a1", + "stateKeyHash": "oyhzeD0BfX3kpuz7JQIe4lX9rK1mMFzl4KKyuleEYeY=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026224\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0xb6d1165b4d4041e338303347d2736d5096c051d4574ff373b8f1e53218d595a1\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1230974\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xb6d1165b4d4041e338303347d2736d5096c051d4574ff373b8f1e53218d595a1", + "stateKeyHash": "oyhzeD0BfX3kpuz7JQIe4lX9rK1mMFzl4KKyuleEYeY=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230974\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xba1586cfe6b7393f233b138a53d60ea62a5b183e72ca6667717944b0d3b70eb0", + "stateKeyHash": "XrU7gRl+isBGTTQJW9rMFf4RGZQOzWxnIniJMPAcr/s=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0xba1586cfe6b7393f233b138a53d60ea62a5b183e72ca6667717944b0d3b70eb0\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0xba1586cfe6b7393f233b138a53d60ea62a5b183e72ca6667717944b0d3b70eb0\"},\"mutator\":{\"self\":\"0xba1586cfe6b7393f233b138a53d60ea62a5b183e72ca6667717944b0d3b70eb0\"},\"name\":\"APTS #1230998\",\"propertyMutatorRef\":{\"self\":\"0xba1586cfe6b7393f233b138a53d60ea62a5b183e72ca6667717944b0d3b70eb0\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xba1586cfe6b7393f233b138a53d60ea62a5b183e72ca6667717944b0d3b70eb0", + "stateKeyHash": "++lQOytQkvhCVq+CUCTVBqAi1sxZEV/CmiVh0pCWgDk=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0xc437f2272d5bee2d37ed5e29bcd321fdff6edf239e967a2c75cf4f52aaddf6ac\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0xba1586cfe6b7393f233b138a53d60ea62a5b183e72ca6667717944b0d3b70eb0\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xba1586cfe6b7393f233b138a53d60ea62a5b183e72ca6667717944b0d3b70eb0", + "stateKeyHash": "++lQOytQkvhCVq+CUCTVBqAi1sxZEV/CmiVh0pCWgDk=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xba1586cfe6b7393f233b138a53d60ea62a5b183e72ca6667717944b0d3b70eb0", + "stateKeyHash": "++lQOytQkvhCVq+CUCTVBqAi1sxZEV/CmiVh0pCWgDk=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026248\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0xba1586cfe6b7393f233b138a53d60ea62a5b183e72ca6667717944b0d3b70eb0\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1230998\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xba1586cfe6b7393f233b138a53d60ea62a5b183e72ca6667717944b0d3b70eb0", + "stateKeyHash": "++lQOytQkvhCVq+CUCTVBqAi1sxZEV/CmiVh0pCWgDk=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230998\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xbdba8dfd81e111dd3af2ce1ca5548efc2441e94737441b3758b508ae0579c26f", + "stateKeyHash": "PQ7glBOIC81vaWLUjFL4jzCoDXnYudSdjniuxYSAOks=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231021\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xbff3785a30eb6bdf752c7c91812a3275784ec2c5c1758a51b0e80a1b4518c731", + "stateKeyHash": "YEab2GM26b4NuQGi8DJ3XXfxz9aqRNH2SYwr+7IQr68=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0xbff3785a30eb6bdf752c7c91812a3275784ec2c5c1758a51b0e80a1b4518c731\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0xbff3785a30eb6bdf752c7c91812a3275784ec2c5c1758a51b0e80a1b4518c731\"},\"mutator\":{\"self\":\"0xbff3785a30eb6bdf752c7c91812a3275784ec2c5c1758a51b0e80a1b4518c731\"},\"name\":\"APTS #1231078\",\"propertyMutatorRef\":{\"self\":\"0xbff3785a30eb6bdf752c7c91812a3275784ec2c5c1758a51b0e80a1b4518c731\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xbff3785a30eb6bdf752c7c91812a3275784ec2c5c1758a51b0e80a1b4518c731", + "stateKeyHash": "aSeQhBsvmetgaEFzmhfLUt1BH4Sx5kfIyynchgBD7Ts=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0x9755b4a688c632dab562bef97854e07ed281992cb2547dec4dca7daa0061f0dc\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0xbff3785a30eb6bdf752c7c91812a3275784ec2c5c1758a51b0e80a1b4518c731\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xbff3785a30eb6bdf752c7c91812a3275784ec2c5c1758a51b0e80a1b4518c731", + "stateKeyHash": "aSeQhBsvmetgaEFzmhfLUt1BH4Sx5kfIyynchgBD7Ts=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xbff3785a30eb6bdf752c7c91812a3275784ec2c5c1758a51b0e80a1b4518c731", + "stateKeyHash": "aSeQhBsvmetgaEFzmhfLUt1BH4Sx5kfIyynchgBD7Ts=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026328\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0xbff3785a30eb6bdf752c7c91812a3275784ec2c5c1758a51b0e80a1b4518c731\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1231078\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xbff3785a30eb6bdf752c7c91812a3275784ec2c5c1758a51b0e80a1b4518c731", + "stateKeyHash": "aSeQhBsvmetgaEFzmhfLUt1BH4Sx5kfIyynchgBD7Ts=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231078\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xc2d6bd4ac2da00b4af10fe0c27d6bac634d334150c6d4adfef10da312762a0c0", + "stateKeyHash": "xF9HblaKtqeBJGTNHDJ/7LjydZ41nljN01DR0AjNA/I=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231043\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xc5063efd6a1c0bb8e77fd6d7734803608092bdb1a94e785a77415574c98344de", + "stateKeyHash": "/kZxxqxVB19VvAJ9DXUhnge8tAs0NcPIYHQDApHM5H8=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231007\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xc585e059688aefdf88e2cba4a559455c2cd9d73bbd4de9da903e64dcfa6eac57", + "stateKeyHash": "EdNQpDsdrDHku15KXdkEiPtKK4DMzVT8XBSeNLkxBcc=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230959\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xc7d06edb39c322cf18cdc5d3c3e465d5252bfc855bbb75eb368018dfa5e99799", + "stateKeyHash": "DDcfCNZCnj9IjJPdcaIwPxDcUejK20V8TZ6FvL0a8gU=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230977\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xc7f1baeb3aaf93f484140333ad81bed10bf83dd0384ddaf9121c5d3d5762d69a", + "stateKeyHash": "QreISK0+PIX8CQR2+2ylti57eEiXQyU30ivT5//PQ0w=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"5479749\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0xc7f1baeb3aaf93f484140333ad81bed10bf83dd0384ddaf9121c5d3d5762d69a\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0xc7f1baeb3aaf93f484140333ad81bed10bf83dd0384ddaf9121c5d3d5762d69a\"},\"mutator\":{\"self\":\"0xc7f1baeb3aaf93f484140333ad81bed10bf83dd0384ddaf9121c5d3d5762d69a\"},\"name\":\"APTS #1231077\",\"propertyMutatorRef\":{\"self\":\"0xc7f1baeb3aaf93f484140333ad81bed10bf83dd0384ddaf9121c5d3d5762d69a\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xc7f1baeb3aaf93f484140333ad81bed10bf83dd0384ddaf9121c5d3d5762d69a", + "stateKeyHash": "D8GWA6Z0lScTk3ffrzPJUItyc/yoizKk+OEM1gdm/HI=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0xc7f1baeb3aaf93f484140333ad81bed10bf83dd0384ddaf9121c5d3d5762d69a\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xc7f1baeb3aaf93f484140333ad81bed10bf83dd0384ddaf9121c5d3d5762d69a", + "stateKeyHash": "D8GWA6Z0lScTk3ffrzPJUItyc/yoizKk+OEM1gdm/HI=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0735343739373439\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xc7f1baeb3aaf93f484140333ad81bed10bf83dd0384ddaf9121c5d3d5762d69a", + "stateKeyHash": "D8GWA6Z0lScTk3ffrzPJUItyc/yoizKk+OEM1gdm/HI=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026327\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0xc7f1baeb3aaf93f484140333ad81bed10bf83dd0384ddaf9121c5d3d5762d69a\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1231077\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=5479749\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xc7f1baeb3aaf93f484140333ad81bed10bf83dd0384ddaf9121c5d3d5762d69a", + "stateKeyHash": "D8GWA6Z0lScTk3ffrzPJUItyc/yoizKk+OEM1gdm/HI=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231077\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xc960abce41b6a3afb136f2b412520766000129d3825b5d6d017ee8f37957a865", + "stateKeyHash": "YVvblF9zmQzH2Hr1wxVUGJ6Pge/d81xtzOyPLGHDEWY=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230981\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xccb58fafde587d161f5dc6f8477f03d5bf5275c8beb462341ffdb1fc8e0c86a4", + "stateKeyHash": "dg30huJYH9tsGUrxJto9dsu3CMEP/AoyRI73Wk1HU3E=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0xccb58fafde587d161f5dc6f8477f03d5bf5275c8beb462341ffdb1fc8e0c86a4\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0xccb58fafde587d161f5dc6f8477f03d5bf5275c8beb462341ffdb1fc8e0c86a4\"},\"mutator\":{\"self\":\"0xccb58fafde587d161f5dc6f8477f03d5bf5275c8beb462341ffdb1fc8e0c86a4\"},\"name\":\"APTS #1230990\",\"propertyMutatorRef\":{\"self\":\"0xccb58fafde587d161f5dc6f8477f03d5bf5275c8beb462341ffdb1fc8e0c86a4\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xccb58fafde587d161f5dc6f8477f03d5bf5275c8beb462341ffdb1fc8e0c86a4", + "stateKeyHash": "73MkPoNh2yMORu40IEROJko13NzpnDXROjffUzYOeoU=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0x9f1ea0ebb5906ff67df134a977d0cbbcf5a4d5b61aefa581cb9e774f4bbbfae\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0xccb58fafde587d161f5dc6f8477f03d5bf5275c8beb462341ffdb1fc8e0c86a4\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xccb58fafde587d161f5dc6f8477f03d5bf5275c8beb462341ffdb1fc8e0c86a4", + "stateKeyHash": "73MkPoNh2yMORu40IEROJko13NzpnDXROjffUzYOeoU=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xccb58fafde587d161f5dc6f8477f03d5bf5275c8beb462341ffdb1fc8e0c86a4", + "stateKeyHash": "73MkPoNh2yMORu40IEROJko13NzpnDXROjffUzYOeoU=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026240\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0xccb58fafde587d161f5dc6f8477f03d5bf5275c8beb462341ffdb1fc8e0c86a4\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1230990\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xccb58fafde587d161f5dc6f8477f03d5bf5275c8beb462341ffdb1fc8e0c86a4", + "stateKeyHash": "73MkPoNh2yMORu40IEROJko13NzpnDXROjffUzYOeoU=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230990\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xce68cc6319ecea91ee4a6e6290fa6110685eb593a70b3d08a7de8500b757e97e", + "stateKeyHash": "ioS7+Ulkg/sqBPAzMScQYSAOi61gOHQzTL34cPLzBY0=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0xce68cc6319ecea91ee4a6e6290fa6110685eb593a70b3d08a7de8500b757e97e\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0xce68cc6319ecea91ee4a6e6290fa6110685eb593a70b3d08a7de8500b757e97e\"},\"mutator\":{\"self\":\"0xce68cc6319ecea91ee4a6e6290fa6110685eb593a70b3d08a7de8500b757e97e\"},\"name\":\"APTS #1230968\",\"propertyMutatorRef\":{\"self\":\"0xce68cc6319ecea91ee4a6e6290fa6110685eb593a70b3d08a7de8500b757e97e\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xce68cc6319ecea91ee4a6e6290fa6110685eb593a70b3d08a7de8500b757e97e", + "stateKeyHash": "M2zwnBho7hbToJYypQh7iPqHClOnn1aAuvYpU/OsG4o=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0x8f113c2fb78932ed824b8fada40d6b48d3fe8ab88da0f3620db9b9ae9c410bd0\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0xce68cc6319ecea91ee4a6e6290fa6110685eb593a70b3d08a7de8500b757e97e\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xce68cc6319ecea91ee4a6e6290fa6110685eb593a70b3d08a7de8500b757e97e", + "stateKeyHash": "M2zwnBho7hbToJYypQh7iPqHClOnn1aAuvYpU/OsG4o=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xce68cc6319ecea91ee4a6e6290fa6110685eb593a70b3d08a7de8500b757e97e", + "stateKeyHash": "M2zwnBho7hbToJYypQh7iPqHClOnn1aAuvYpU/OsG4o=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026218\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0xce68cc6319ecea91ee4a6e6290fa6110685eb593a70b3d08a7de8500b757e97e\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1230968\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xce68cc6319ecea91ee4a6e6290fa6110685eb593a70b3d08a7de8500b757e97e", + "stateKeyHash": "M2zwnBho7hbToJYypQh7iPqHClOnn1aAuvYpU/OsG4o=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230968\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977", + "stateKeyHash": "Umz/Kzybkjy0spzgNX4kZUQf2335pMpuTlb7bW1/B5M=", + "type": { + "address": "0x1", + "module": "coin", + "name": "CoinStore", + "genericTypeParams": [ + { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "aptos_coin", + "name": "AptosCoin" + } + } + ] + }, + "typeStr": "0x1::coin::CoinStore<0x1::aptos_coin::AptosCoin>", + "data": "{\"coin\":{\"value\":\"96617925694\"},\"deposit_events\":{\"counter\":\"234\",\"guid\":{\"id\":{\"addr\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"creation_num\":\"2\"}}},\"frozen\":false,\"withdraw_events\":{\"counter\":\"8867\",\"guid\":{\"id\":{\"addr\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"creation_num\":\"3\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977", + "stateKeyHash": "MhK38lDzRzZsazPVxPoMQYnvLzYWrjQpsCsdGGBbu54=", + "type": { + "address": "0x1", + "module": "account", + "name": "Account" + }, + "typeStr": "0x1::account::Account", + "data": "{\"authentication_key\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"coin_register_events\":{\"counter\":\"3\",\"guid\":{\"id\":{\"addr\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"creation_num\":\"0\"}}},\"guid_creation_num\":\"8\",\"key_rotation_events\":{\"counter\":\"0\",\"guid\":{\"id\":{\"addr\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"creation_num\":\"1\"}}},\"rotation_capability_offer\":{\"for\":{\"vec\":[]}},\"sequence_number\":\"89\",\"signer_capability_offer\":{\"for\":{\"vec\":[]}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xcfc73dc96b3a6762c4ac7ade3e4c8ff11bf1ab10bcd97719145666f97176a87c", + "stateKeyHash": "xD1PvZhpoqX1IIBB0Jo9gJnRzeVtOO2forBS7jZZKGo=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230975\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xd24cba9f9804dc945f1331499337a69ff2e9d44d97740630b619bdea01d27551", + "stateKeyHash": "FuR8s0/lRh0TlvLMA0/ag5SgJbbK9Pars6+ZxEkKKx4=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0xd24cba9f9804dc945f1331499337a69ff2e9d44d97740630b619bdea01d27551\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0xd24cba9f9804dc945f1331499337a69ff2e9d44d97740630b619bdea01d27551\"},\"mutator\":{\"self\":\"0xd24cba9f9804dc945f1331499337a69ff2e9d44d97740630b619bdea01d27551\"},\"name\":\"APTS #1230982\",\"propertyMutatorRef\":{\"self\":\"0xd24cba9f9804dc945f1331499337a69ff2e9d44d97740630b619bdea01d27551\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xd24cba9f9804dc945f1331499337a69ff2e9d44d97740630b619bdea01d27551", + "stateKeyHash": "g7oTKHbq7f/8Nj1YzQlJoViwyZqbkiIoMaFWc+pEZ74=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0xf1ef8cee4952c48fcfd69a7b61e410352070e8847d24891aa964b18c6fd355f\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0xd24cba9f9804dc945f1331499337a69ff2e9d44d97740630b619bdea01d27551\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xd24cba9f9804dc945f1331499337a69ff2e9d44d97740630b619bdea01d27551", + "stateKeyHash": "g7oTKHbq7f/8Nj1YzQlJoViwyZqbkiIoMaFWc+pEZ74=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xd24cba9f9804dc945f1331499337a69ff2e9d44d97740630b619bdea01d27551", + "stateKeyHash": "g7oTKHbq7f/8Nj1YzQlJoViwyZqbkiIoMaFWc+pEZ74=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026232\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0xd24cba9f9804dc945f1331499337a69ff2e9d44d97740630b619bdea01d27551\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1230982\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xd24cba9f9804dc945f1331499337a69ff2e9d44d97740630b619bdea01d27551", + "stateKeyHash": "g7oTKHbq7f/8Nj1YzQlJoViwyZqbkiIoMaFWc+pEZ74=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230982\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xd2ae41f8ea029c8db7f23cc3095ef3868be7aaed3a661b7f95c82e9eaef0ba0d", + "stateKeyHash": "V1/T6vJSutDHyU+2N1ylIriju2WkhaFtk32LLFF0kHM=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230985\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xd2f9efe43f54baf581e8466954381fcec4dc234aa930312e0074be5d520bc6ba", + "stateKeyHash": "K+UsrnhzS/0zg77z51BUhHmmk6Kbpj7IztYGEWs1om8=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0xd2f9efe43f54baf581e8466954381fcec4dc234aa930312e0074be5d520bc6ba\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0xd2f9efe43f54baf581e8466954381fcec4dc234aa930312e0074be5d520bc6ba\"},\"mutator\":{\"self\":\"0xd2f9efe43f54baf581e8466954381fcec4dc234aa930312e0074be5d520bc6ba\"},\"name\":\"APTS #1231060\",\"propertyMutatorRef\":{\"self\":\"0xd2f9efe43f54baf581e8466954381fcec4dc234aa930312e0074be5d520bc6ba\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xd2f9efe43f54baf581e8466954381fcec4dc234aa930312e0074be5d520bc6ba", + "stateKeyHash": "QW8SAyZFN2zLO7A8rwTO0enUjMmjaCfVdZQOA07SDuY=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0xc0658b27babc2bbe1005ee6e759fe8aabc8991e9fa7d5fa8cbcf0d5abbf26edf\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0xd2f9efe43f54baf581e8466954381fcec4dc234aa930312e0074be5d520bc6ba\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xd2f9efe43f54baf581e8466954381fcec4dc234aa930312e0074be5d520bc6ba", + "stateKeyHash": "QW8SAyZFN2zLO7A8rwTO0enUjMmjaCfVdZQOA07SDuY=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xd2f9efe43f54baf581e8466954381fcec4dc234aa930312e0074be5d520bc6ba", + "stateKeyHash": "QW8SAyZFN2zLO7A8rwTO0enUjMmjaCfVdZQOA07SDuY=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026310\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0xd2f9efe43f54baf581e8466954381fcec4dc234aa930312e0074be5d520bc6ba\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1231060\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xd2f9efe43f54baf581e8466954381fcec4dc234aa930312e0074be5d520bc6ba", + "stateKeyHash": "QW8SAyZFN2zLO7A8rwTO0enUjMmjaCfVdZQOA07SDuY=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231060\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xd498af12ac8828becad680e66d321e1579fb2252439438797cc442322d19a382", + "stateKeyHash": "tBQIQDE02OtmhLHItdu5p3oPkENadu5gxOUznAlsUXc=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231033\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xd7fa256353031284250611f14a349e8a7aa2907f4f6812ff89f68297c94b1589", + "stateKeyHash": "WGr+RCvfmBOTb+XrvEPYfi3lVrPoobkEmT0DMdJYi6s=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231045\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xd931f672347c9f958f70d28e9437975c1c72e65892f50190a9a3ee5aeb4563cd", + "stateKeyHash": "PhgtPUXoxtWIibtn1uOf9VDGw10ZipjeoWjn6bmzV3c=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0xd931f672347c9f958f70d28e9437975c1c72e65892f50190a9a3ee5aeb4563cd\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0xd931f672347c9f958f70d28e9437975c1c72e65892f50190a9a3ee5aeb4563cd\"},\"mutator\":{\"self\":\"0xd931f672347c9f958f70d28e9437975c1c72e65892f50190a9a3ee5aeb4563cd\"},\"name\":\"APTS #1231070\",\"propertyMutatorRef\":{\"self\":\"0xd931f672347c9f958f70d28e9437975c1c72e65892f50190a9a3ee5aeb4563cd\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xd931f672347c9f958f70d28e9437975c1c72e65892f50190a9a3ee5aeb4563cd", + "stateKeyHash": "dY+d4YhG7MU0Wr+xvkowDL9UmQclvjNhZP1yM/QoBLo=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0xc518191dd78f4148e02de3b088ef5d58b2f78b59ab0650fbad15d4980cd2e817\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0xd931f672347c9f958f70d28e9437975c1c72e65892f50190a9a3ee5aeb4563cd\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xd931f672347c9f958f70d28e9437975c1c72e65892f50190a9a3ee5aeb4563cd", + "stateKeyHash": "dY+d4YhG7MU0Wr+xvkowDL9UmQclvjNhZP1yM/QoBLo=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xd931f672347c9f958f70d28e9437975c1c72e65892f50190a9a3ee5aeb4563cd", + "stateKeyHash": "dY+d4YhG7MU0Wr+xvkowDL9UmQclvjNhZP1yM/QoBLo=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026320\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0xd931f672347c9f958f70d28e9437975c1c72e65892f50190a9a3ee5aeb4563cd\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1231070\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xd931f672347c9f958f70d28e9437975c1c72e65892f50190a9a3ee5aeb4563cd", + "stateKeyHash": "dY+d4YhG7MU0Wr+xvkowDL9UmQclvjNhZP1yM/QoBLo=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231070\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xdb8b24260c793665c7fbc1c1d0a3d18d14a937550d8c4154217f804a9519f62f", + "stateKeyHash": "Gegcyc2xHeIBtoGI9I62OxRigKMXc3MzRxAAJWBjRmo=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0xdb8b24260c793665c7fbc1c1d0a3d18d14a937550d8c4154217f804a9519f62f\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0xdb8b24260c793665c7fbc1c1d0a3d18d14a937550d8c4154217f804a9519f62f\"},\"mutator\":{\"self\":\"0xdb8b24260c793665c7fbc1c1d0a3d18d14a937550d8c4154217f804a9519f62f\"},\"name\":\"APTS #1231030\",\"propertyMutatorRef\":{\"self\":\"0xdb8b24260c793665c7fbc1c1d0a3d18d14a937550d8c4154217f804a9519f62f\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xdb8b24260c793665c7fbc1c1d0a3d18d14a937550d8c4154217f804a9519f62f", + "stateKeyHash": "67aEKpx17uKk2Py8BBy9Q4r8nsPyHkc5oAlfNW9sYs8=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0x6d2d0d956f10351c230e5cb8386c0c77f6af9666f9f04e23db564c492b3edf7e\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0xdb8b24260c793665c7fbc1c1d0a3d18d14a937550d8c4154217f804a9519f62f\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xdb8b24260c793665c7fbc1c1d0a3d18d14a937550d8c4154217f804a9519f62f", + "stateKeyHash": "67aEKpx17uKk2Py8BBy9Q4r8nsPyHkc5oAlfNW9sYs8=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xdb8b24260c793665c7fbc1c1d0a3d18d14a937550d8c4154217f804a9519f62f", + "stateKeyHash": "67aEKpx17uKk2Py8BBy9Q4r8nsPyHkc5oAlfNW9sYs8=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026280\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0xdb8b24260c793665c7fbc1c1d0a3d18d14a937550d8c4154217f804a9519f62f\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1231030\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xdb8b24260c793665c7fbc1c1d0a3d18d14a937550d8c4154217f804a9519f62f", + "stateKeyHash": "67aEKpx17uKk2Py8BBy9Q4r8nsPyHkc5oAlfNW9sYs8=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231030\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xdc322c2ee3bc6b506edeefc13ecae253c89805351bfe32628209171aa6ea37ad", + "stateKeyHash": "v21uNjYzpV78KHElsK/xbQrHYonvMO56LTdXwx3tOBM=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230983\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xe1485a72101dbac9d03035622e2876d12c6931fd7a5b7ace1338e2d71a46b9d3", + "stateKeyHash": "Aot9PdjRUJCmx5a/V0dbGR0l2UL+9YFhgqZU3MqSsSc=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231037\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xe3c4557be5a0ea8373fa2a6aee773cb7ee6a56f757bb85e21bea9c1ee7d67be6", + "stateKeyHash": "pKA/0Ni1q2eLna7iAvu+A/gkez7wWVX1+FWR2IccoOA=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0xe3c4557be5a0ea8373fa2a6aee773cb7ee6a56f757bb85e21bea9c1ee7d67be6\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0xe3c4557be5a0ea8373fa2a6aee773cb7ee6a56f757bb85e21bea9c1ee7d67be6\"},\"mutator\":{\"self\":\"0xe3c4557be5a0ea8373fa2a6aee773cb7ee6a56f757bb85e21bea9c1ee7d67be6\"},\"name\":\"APTS #1230994\",\"propertyMutatorRef\":{\"self\":\"0xe3c4557be5a0ea8373fa2a6aee773cb7ee6a56f757bb85e21bea9c1ee7d67be6\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xe3c4557be5a0ea8373fa2a6aee773cb7ee6a56f757bb85e21bea9c1ee7d67be6", + "stateKeyHash": "AODCEMxB/E+gg1SgPNmryoqChdYr4J1IphbtONRnQqY=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0x24269eb33d6105a5574677cb122038188277fd70b3025463514467273ef23bc9\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0xe3c4557be5a0ea8373fa2a6aee773cb7ee6a56f757bb85e21bea9c1ee7d67be6\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xe3c4557be5a0ea8373fa2a6aee773cb7ee6a56f757bb85e21bea9c1ee7d67be6", + "stateKeyHash": "AODCEMxB/E+gg1SgPNmryoqChdYr4J1IphbtONRnQqY=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xe3c4557be5a0ea8373fa2a6aee773cb7ee6a56f757bb85e21bea9c1ee7d67be6", + "stateKeyHash": "AODCEMxB/E+gg1SgPNmryoqChdYr4J1IphbtONRnQqY=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026244\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0xe3c4557be5a0ea8373fa2a6aee773cb7ee6a56f757bb85e21bea9c1ee7d67be6\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1230994\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xe3c4557be5a0ea8373fa2a6aee773cb7ee6a56f757bb85e21bea9c1ee7d67be6", + "stateKeyHash": "AODCEMxB/E+gg1SgPNmryoqChdYr4J1IphbtONRnQqY=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230994\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xe3cdc482f81cb84ef13809c17d1fcc5b005d0d653a77da1698b393f1aecd6f6e", + "stateKeyHash": "eR5IB4m1To+C88BUlnyo5FHKvH2hDITKo490mbvcxqM=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0xe3cdc482f81cb84ef13809c17d1fcc5b005d0d653a77da1698b393f1aecd6f6e\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0xe3cdc482f81cb84ef13809c17d1fcc5b005d0d653a77da1698b393f1aecd6f6e\"},\"mutator\":{\"self\":\"0xe3cdc482f81cb84ef13809c17d1fcc5b005d0d653a77da1698b393f1aecd6f6e\"},\"name\":\"APTS #1230964\",\"propertyMutatorRef\":{\"self\":\"0xe3cdc482f81cb84ef13809c17d1fcc5b005d0d653a77da1698b393f1aecd6f6e\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xe3cdc482f81cb84ef13809c17d1fcc5b005d0d653a77da1698b393f1aecd6f6e", + "stateKeyHash": "k8B0vCB6kMc9E6sYaC+oKOF2bYm129DIXX5Ee6MarpE=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0x1a55e8e5189e2e78f75b24c4cf20bb4af23bac2661615ce751484f0b876b84e4\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0xe3cdc482f81cb84ef13809c17d1fcc5b005d0d653a77da1698b393f1aecd6f6e\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xe3cdc482f81cb84ef13809c17d1fcc5b005d0d653a77da1698b393f1aecd6f6e", + "stateKeyHash": "k8B0vCB6kMc9E6sYaC+oKOF2bYm129DIXX5Ee6MarpE=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xe3cdc482f81cb84ef13809c17d1fcc5b005d0d653a77da1698b393f1aecd6f6e", + "stateKeyHash": "k8B0vCB6kMc9E6sYaC+oKOF2bYm129DIXX5Ee6MarpE=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026214\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0xe3cdc482f81cb84ef13809c17d1fcc5b005d0d653a77da1698b393f1aecd6f6e\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1230964\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xe3cdc482f81cb84ef13809c17d1fcc5b005d0d653a77da1698b393f1aecd6f6e", + "stateKeyHash": "k8B0vCB6kMc9E6sYaC+oKOF2bYm129DIXX5Ee6MarpE=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230964\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xe4dad714367d088c407cf57e70e46a0bd452f4e92963af0bb2ac9ebdb7247ef3", + "stateKeyHash": "ePC5AjN45o5emEr7t0WZqmjJg1/kRHAL+6aB/WpAMY0=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0xe4dad714367d088c407cf57e70e46a0bd452f4e92963af0bb2ac9ebdb7247ef3\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0xe4dad714367d088c407cf57e70e46a0bd452f4e92963af0bb2ac9ebdb7247ef3\"},\"mutator\":{\"self\":\"0xe4dad714367d088c407cf57e70e46a0bd452f4e92963af0bb2ac9ebdb7247ef3\"},\"name\":\"APTS #1231062\",\"propertyMutatorRef\":{\"self\":\"0xe4dad714367d088c407cf57e70e46a0bd452f4e92963af0bb2ac9ebdb7247ef3\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xe4dad714367d088c407cf57e70e46a0bd452f4e92963af0bb2ac9ebdb7247ef3", + "stateKeyHash": "HHeZkiAwGbc+sqMTh7eqnMXtM6VDMJrb5dmnkf1z1qU=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0x8ef7225b94b2fda8c1216ff6308cddd2ee0f1acd2b1e46c1f29f91130a24e6f6\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0xe4dad714367d088c407cf57e70e46a0bd452f4e92963af0bb2ac9ebdb7247ef3\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xe4dad714367d088c407cf57e70e46a0bd452f4e92963af0bb2ac9ebdb7247ef3", + "stateKeyHash": "HHeZkiAwGbc+sqMTh7eqnMXtM6VDMJrb5dmnkf1z1qU=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xe4dad714367d088c407cf57e70e46a0bd452f4e92963af0bb2ac9ebdb7247ef3", + "stateKeyHash": "HHeZkiAwGbc+sqMTh7eqnMXtM6VDMJrb5dmnkf1z1qU=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026312\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0xe4dad714367d088c407cf57e70e46a0bd452f4e92963af0bb2ac9ebdb7247ef3\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1231062\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xe4dad714367d088c407cf57e70e46a0bd452f4e92963af0bb2ac9ebdb7247ef3", + "stateKeyHash": "HHeZkiAwGbc+sqMTh7eqnMXtM6VDMJrb5dmnkf1z1qU=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231062\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xe65de917adebec0e097c88f018814002d387860feba6f5936bad729f70540e7d", + "stateKeyHash": "nN/rI/quLTYpO8/K9J+KNqLrH8U1anUDAYv0ymXpdVU=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231063\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xe76459c990f1e8919920ca5cfdbd418a0da4910899e83eeb9bd462ce8d61253e", + "stateKeyHash": "+CO8IDb1faPOVDDRLd2eIPxDNgZgkbetWUvf5F1uT0s=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0xe76459c990f1e8919920ca5cfdbd418a0da4910899e83eeb9bd462ce8d61253e\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0xe76459c990f1e8919920ca5cfdbd418a0da4910899e83eeb9bd462ce8d61253e\"},\"mutator\":{\"self\":\"0xe76459c990f1e8919920ca5cfdbd418a0da4910899e83eeb9bd462ce8d61253e\"},\"name\":\"APTS #1231004\",\"propertyMutatorRef\":{\"self\":\"0xe76459c990f1e8919920ca5cfdbd418a0da4910899e83eeb9bd462ce8d61253e\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xe76459c990f1e8919920ca5cfdbd418a0da4910899e83eeb9bd462ce8d61253e", + "stateKeyHash": "OAuRWwBs1R0y4IvBAXcEZch/FHPZKDGPHxNdyCmGS6k=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0x867a55eaadbb8fe42721e51cdec85e134bd9061f0e85d76d35a5149164c19df\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0xe76459c990f1e8919920ca5cfdbd418a0da4910899e83eeb9bd462ce8d61253e\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xe76459c990f1e8919920ca5cfdbd418a0da4910899e83eeb9bd462ce8d61253e", + "stateKeyHash": "OAuRWwBs1R0y4IvBAXcEZch/FHPZKDGPHxNdyCmGS6k=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xe76459c990f1e8919920ca5cfdbd418a0da4910899e83eeb9bd462ce8d61253e", + "stateKeyHash": "OAuRWwBs1R0y4IvBAXcEZch/FHPZKDGPHxNdyCmGS6k=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026254\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0xe76459c990f1e8919920ca5cfdbd418a0da4910899e83eeb9bd462ce8d61253e\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1231004\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xe76459c990f1e8919920ca5cfdbd418a0da4910899e83eeb9bd462ce8d61253e", + "stateKeyHash": "OAuRWwBs1R0y4IvBAXcEZch/FHPZKDGPHxNdyCmGS6k=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231004\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xe78f658055fdcc77b22cc2a062456823267644938f502e4942f44ff125113016", + "stateKeyHash": "6yusC0vzkRWopeOMp87uZb2oG1Avp3JexxhneguB3fY=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231013\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xe816d7f8438a3a0ebd6fbc68e734adabfc09c109b95f315a0b213875248862ef", + "stateKeyHash": "j3IQxQCVuJz3X9iSOt+y8BVfVEko9PFMVymbklH05Ss=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231023\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xe90653f8bb341aa971c0a427cf9c66ac9b5674b9e36f8cfa94a9f6e90524170d", + "stateKeyHash": "e8Jm66qT5/pctJOZvhMkLwUNYr0cBsagCjIhcYOgay8=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230969\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xee17d361a3561c4d805167562cd2fe058d3c184fd2dcb026e06f928bdba921a1", + "stateKeyHash": "DVF0MDnbd+BAd6q7xiWQEaTr2cbhjNUfP790g14mHP8=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230965\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xeeacee78de43b94dd676a66612e9dc10091646ec5f0bd5f7979f8ca3cf295f8d", + "stateKeyHash": "V9Sm9afKo74KyEcmISqvzjQP7sKbwkfe5yB+LlLoSKE=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0xeeacee78de43b94dd676a66612e9dc10091646ec5f0bd5f7979f8ca3cf295f8d\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0xeeacee78de43b94dd676a66612e9dc10091646ec5f0bd5f7979f8ca3cf295f8d\"},\"mutator\":{\"self\":\"0xeeacee78de43b94dd676a66612e9dc10091646ec5f0bd5f7979f8ca3cf295f8d\"},\"name\":\"APTS #1230978\",\"propertyMutatorRef\":{\"self\":\"0xeeacee78de43b94dd676a66612e9dc10091646ec5f0bd5f7979f8ca3cf295f8d\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xeeacee78de43b94dd676a66612e9dc10091646ec5f0bd5f7979f8ca3cf295f8d", + "stateKeyHash": "L2iUkNtzPeZMgTFZmg4oCys+MKoykQ8zwEenCawVur0=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0x5f1da08fcfc8ab1127b4f5b276392cf5509742a26fd30bc8fbb84e094c9b5385\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0xeeacee78de43b94dd676a66612e9dc10091646ec5f0bd5f7979f8ca3cf295f8d\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xeeacee78de43b94dd676a66612e9dc10091646ec5f0bd5f7979f8ca3cf295f8d", + "stateKeyHash": "L2iUkNtzPeZMgTFZmg4oCys+MKoykQ8zwEenCawVur0=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xeeacee78de43b94dd676a66612e9dc10091646ec5f0bd5f7979f8ca3cf295f8d", + "stateKeyHash": "L2iUkNtzPeZMgTFZmg4oCys+MKoykQ8zwEenCawVur0=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026228\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0xeeacee78de43b94dd676a66612e9dc10091646ec5f0bd5f7979f8ca3cf295f8d\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1230978\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xeeacee78de43b94dd676a66612e9dc10091646ec5f0bd5f7979f8ca3cf295f8d", + "stateKeyHash": "L2iUkNtzPeZMgTFZmg4oCys+MKoykQ8zwEenCawVur0=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230978\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xf04a886d0cf4b853e8ebfc1ecd9f9a223235cf5fc9ea96f99b98a12bb782fbf4", + "stateKeyHash": "iLF0N8TYSmAefO8Q8tEsx9jhjU+hRl4tDxHBinzqWPY=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231005\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xf10f94e28626986da118788660b2152d00084f1a56c92c4b81625130fed86b92", + "stateKeyHash": "G5JZ8Gf38MtITKW8ibvIUP+aGjapLLzFP2TFJIQsn8U=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0xf10f94e28626986da118788660b2152d00084f1a56c92c4b81625130fed86b92\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0xf10f94e28626986da118788660b2152d00084f1a56c92c4b81625130fed86b92\"},\"mutator\":{\"self\":\"0xf10f94e28626986da118788660b2152d00084f1a56c92c4b81625130fed86b92\"},\"name\":\"APTS #1231024\",\"propertyMutatorRef\":{\"self\":\"0xf10f94e28626986da118788660b2152d00084f1a56c92c4b81625130fed86b92\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xf10f94e28626986da118788660b2152d00084f1a56c92c4b81625130fed86b92", + "stateKeyHash": "u6b4vJ3e2/tIXE+q+p3yCBMngj76DBqqX91zEAzZZTw=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0xd55040c9e32f871e8f8e4d71d06e17d373a894f312f49e75d90b6db22129971c\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0xf10f94e28626986da118788660b2152d00084f1a56c92c4b81625130fed86b92\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xf10f94e28626986da118788660b2152d00084f1a56c92c4b81625130fed86b92", + "stateKeyHash": "u6b4vJ3e2/tIXE+q+p3yCBMngj76DBqqX91zEAzZZTw=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xf10f94e28626986da118788660b2152d00084f1a56c92c4b81625130fed86b92", + "stateKeyHash": "u6b4vJ3e2/tIXE+q+p3yCBMngj76DBqqX91zEAzZZTw=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026274\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0xf10f94e28626986da118788660b2152d00084f1a56c92c4b81625130fed86b92\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1231024\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xf10f94e28626986da118788660b2152d00084f1a56c92c4b81625130fed86b92", + "stateKeyHash": "u6b4vJ3e2/tIXE+q+p3yCBMngj76DBqqX91zEAzZZTw=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231024\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xf3a7f8cea94a594d64f9789fb3dbc5befe934edba0460745fb4b9bdac1dc4f25", + "stateKeyHash": "yCzD5BjQd9z7/ji64w71pDM+lRfxsh+DMG6vmIGG2kg=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230979\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xf58ba0d5c82b58923be5c8254bf3e410c6684d6b1b8b61e09f0db0605ef4c1b9", + "stateKeyHash": "2dT9OLw090R++KmQkQ1C4tqHg1FI/12QEWKbwvoBkIg=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231075\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xf5dbf004c5a427991063ca20ad9922e0ed9da1a2295cb59b6dee977bd4888dcb", + "stateKeyHash": "5z44dRo2rp8qHmW1Sma+6bRGHwFQ1JKKWiUhFQO2qCY=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0xf5dbf004c5a427991063ca20ad9922e0ed9da1a2295cb59b6dee977bd4888dcb\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0xf5dbf004c5a427991063ca20ad9922e0ed9da1a2295cb59b6dee977bd4888dcb\"},\"mutator\":{\"self\":\"0xf5dbf004c5a427991063ca20ad9922e0ed9da1a2295cb59b6dee977bd4888dcb\"},\"name\":\"APTS #1231046\",\"propertyMutatorRef\":{\"self\":\"0xf5dbf004c5a427991063ca20ad9922e0ed9da1a2295cb59b6dee977bd4888dcb\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xf5dbf004c5a427991063ca20ad9922e0ed9da1a2295cb59b6dee977bd4888dcb", + "stateKeyHash": "b+e2L1gCPLEMJPSJgwSyRPCcyEMMhQY/L3QoIVuWtug=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0x73f0392087e47883cc3a0cab6ad383ba83c576015f6cf9d80f8a2947a653854e\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0xf5dbf004c5a427991063ca20ad9922e0ed9da1a2295cb59b6dee977bd4888dcb\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xf5dbf004c5a427991063ca20ad9922e0ed9da1a2295cb59b6dee977bd4888dcb", + "stateKeyHash": "b+e2L1gCPLEMJPSJgwSyRPCcyEMMhQY/L3QoIVuWtug=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xf5dbf004c5a427991063ca20ad9922e0ed9da1a2295cb59b6dee977bd4888dcb", + "stateKeyHash": "b+e2L1gCPLEMJPSJgwSyRPCcyEMMhQY/L3QoIVuWtug=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026296\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0xf5dbf004c5a427991063ca20ad9922e0ed9da1a2295cb59b6dee977bd4888dcb\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1231046\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xf5dbf004c5a427991063ca20ad9922e0ed9da1a2295cb59b6dee977bd4888dcb", + "stateKeyHash": "b+e2L1gCPLEMJPSJgwSyRPCcyEMMhQY/L3QoIVuWtug=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231046\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xf8eac41d734d6525fa756ed371e22ed003861494d021da756847b4dafe102c75", + "stateKeyHash": "zzuNcLNXrVwAL4eOMcdS5soXTM914kAv81uQH7Qd0BI=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0xf8eac41d734d6525fa756ed371e22ed003861494d021da756847b4dafe102c75\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0xf8eac41d734d6525fa756ed371e22ed003861494d021da756847b4dafe102c75\"},\"mutator\":{\"self\":\"0xf8eac41d734d6525fa756ed371e22ed003861494d021da756847b4dafe102c75\"},\"name\":\"APTS #1231036\",\"propertyMutatorRef\":{\"self\":\"0xf8eac41d734d6525fa756ed371e22ed003861494d021da756847b4dafe102c75\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xf8eac41d734d6525fa756ed371e22ed003861494d021da756847b4dafe102c75", + "stateKeyHash": "9XBLV9G71YRxdYxMShPkVZSwX4FqRb3KLmfF+qv79kg=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0xf6e395f467f378f1ef9a70850ae3bbe9a6d2f988ebf5f84e818ffe81655f0708\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0xf8eac41d734d6525fa756ed371e22ed003861494d021da756847b4dafe102c75\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xf8eac41d734d6525fa756ed371e22ed003861494d021da756847b4dafe102c75", + "stateKeyHash": "9XBLV9G71YRxdYxMShPkVZSwX4FqRb3KLmfF+qv79kg=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xf8eac41d734d6525fa756ed371e22ed003861494d021da756847b4dafe102c75", + "stateKeyHash": "9XBLV9G71YRxdYxMShPkVZSwX4FqRb3KLmfF+qv79kg=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026286\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0xf8eac41d734d6525fa756ed371e22ed003861494d021da756847b4dafe102c75\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1231036\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xf8eac41d734d6525fa756ed371e22ed003861494d021da756847b4dafe102c75", + "stateKeyHash": "9XBLV9G71YRxdYxMShPkVZSwX4FqRb3KLmfF+qv79kg=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231036\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xfa46fdae40be6a1656d6bff531ae1c1b856032af7cb1fd019339bb42ec05f3cc", + "stateKeyHash": "5HsAO7bdaBX8Jh0j9Gb+SRKZmxwJ3047s257R1RqEZE=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0xfa46fdae40be6a1656d6bff531ae1c1b856032af7cb1fd019339bb42ec05f3cc\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0xfa46fdae40be6a1656d6bff531ae1c1b856032af7cb1fd019339bb42ec05f3cc\"},\"mutator\":{\"self\":\"0xfa46fdae40be6a1656d6bff531ae1c1b856032af7cb1fd019339bb42ec05f3cc\"},\"name\":\"APTS #1230996\",\"propertyMutatorRef\":{\"self\":\"0xfa46fdae40be6a1656d6bff531ae1c1b856032af7cb1fd019339bb42ec05f3cc\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xfa46fdae40be6a1656d6bff531ae1c1b856032af7cb1fd019339bb42ec05f3cc", + "stateKeyHash": "9c6UhTEFpKELaBvPfbi9hT/OYzpID2ac9UaXPRoGfeU=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0x729874141d8373532e028260a3c5633c6f4e7fc3176785c87b78b6f8203dc1fc\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0xfa46fdae40be6a1656d6bff531ae1c1b856032af7cb1fd019339bb42ec05f3cc\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xfa46fdae40be6a1656d6bff531ae1c1b856032af7cb1fd019339bb42ec05f3cc", + "stateKeyHash": "9c6UhTEFpKELaBvPfbi9hT/OYzpID2ac9UaXPRoGfeU=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xfa46fdae40be6a1656d6bff531ae1c1b856032af7cb1fd019339bb42ec05f3cc", + "stateKeyHash": "9c6UhTEFpKELaBvPfbi9hT/OYzpID2ac9UaXPRoGfeU=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026246\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0xfa46fdae40be6a1656d6bff531ae1c1b856032af7cb1fd019339bb42ec05f3cc\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1230996\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xfa46fdae40be6a1656d6bff531ae1c1b856032af7cb1fd019339bb42ec05f3cc", + "stateKeyHash": "9c6UhTEFpKELaBvPfbi9hT/OYzpID2ac9UaXPRoGfeU=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1230996\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xfe51e2d795f56beea67c72d505d60403bf2a272ffbe33f67454b57abc24a9a04", + "stateKeyHash": "y9pqLjDSitNNPc8exllG2KMK0VPm3HFqj7rAVO4NJto=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "Inscription" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::Inscription", + "data": "{\"amount\":\"1000\",\"burn\":{\"inner\":{\"vec\":[{\"self\":\"0xfe51e2d795f56beea67c72d505d60403bf2a272ffbe33f67454b57abc24a9a04\"}]},\"self\":{\"vec\":[]}},\"extend\":{\"self\":\"0xfe51e2d795f56beea67c72d505d60403bf2a272ffbe33f67454b57abc24a9a04\"},\"mutator\":{\"self\":\"0xfe51e2d795f56beea67c72d505d60403bf2a272ffbe33f67454b57abc24a9a04\"},\"name\":\"APTS #1231042\",\"propertyMutatorRef\":{\"self\":\"0xfe51e2d795f56beea67c72d505d60403bf2a272ffbe33f67454b57abc24a9a04\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xfe51e2d795f56beea67c72d505d60403bf2a272ffbe33f67454b57abc24a9a04", + "stateKeyHash": "I+plq0fzCjCFa+dR8WXSi2MPdtLzxRXkFw/wXg+NWlI=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0xe2ca02a4db5ec55bace80cf032ecffcb8d1b084a117f223b3b64be1ec8a821e2\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0xfe51e2d795f56beea67c72d505d60403bf2a272ffbe33f67454b57abc24a9a04\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xfe51e2d795f56beea67c72d505d60403bf2a272ffbe33f67454b57abc24a9a04", + "stateKeyHash": "I+plq0fzCjCFa+dR8WXSi2MPdtLzxRXkFw/wXg+NWlI=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[{\"key\":\"amt\",\"value\":{\"type\":9,\"value\":\"0x0431303030\"}},{\"key\":\"tick\",\"value\":{\"type\":9,\"value\":\"0x0441505453\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xfe51e2d795f56beea67c72d505d60403bf2a272ffbe33f67454b57abc24a9a04", + "stateKeyHash": "I+plq0fzCjCFa+dR8WXSi2MPdtLzxRXkFw/wXg+NWlI=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f\"},\"description\":\"\",\"index\":\"1026292\",\"mutation_events\":{\"counter\":\"2\",\"guid\":{\"id\":{\"addr\":\"0xfe51e2d795f56beea67c72d505d60403bf2a272ffbe33f67454b57abc24a9a04\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"APTS #1231042\",\"uri\":\"https://img.apt-20.com/?tick=APTS&amt=1000\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xfe51e2d795f56beea67c72d505d60403bf2a272ffbe33f67454b57abc24a9a04", + "stateKeyHash": "I+plq0fzCjCFa+dR8WXSi2MPdtLzxRXkFw/wXg+NWlI=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231042\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xffdb425c9ea9cf7d3cb084f796879b3dd5bb24828f36bbae859e883fd3c81497", + "stateKeyHash": "hsVyhykaT0NzD4ZSFtyibDeDi3FujRwj4SATJdPjR10=", + "type": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionMetadata" + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionMetadata", + "data": "{\"inscription_id\":\"1231061\"}" + } + }, + { + "type": "TYPE_WRITE_TABLE_ITEM", + "writeTableItem": { + "stateKeyHash": "bkso1A+YoQamUWNTCSTA3LQME0nTqpFdEItNbPwd2xk=", + "handle": "0x1b854694ae746cdbd8d44186ca4929b2b337df21d1c74633be19b2710552fdca", + "key": "0x0619dc29a0aac8fa146714058e8dd6d2d0f3bdf5f6331907bf91f3acd81e6935", + "data": { + "key": "\"0x619dc29a0aac8fa146714058e8dd6d2d0f3bdf5f6331907bf91f3acd81e6935\"", + "keyType": "address", + "value": "\"108030846522105306\"", + "valueType": "u128" + } + } + } + ] + }, + "epoch": "5850", + "blockHeight": "144146396", + "type": "TRANSACTION_TYPE_USER", + "sizeInfo": { + "transactionBytes": 3724, + "eventSizeInfo": [ + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 127 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 153 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 62, + "totalBytes": 124 + }, + { + "typeTagBytes": 54, + "totalBytes": 126 + }, + { + "typeTagBytes": 54, + "totalBytes": 150 + }, + { + "typeTagBytes": 50, + "totalBytes": 339 + }, + { + "typeTagBytes": 63, + "totalBytes": 103 + } + ], + "writeOpSizeInfo": [ + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 97, + "valueBytes": 8 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 85 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 87, + "valueBytes": 491 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 498 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 138, + "valueBytes": 105 + }, + { + "keyBytes": 84, + "valueBytes": 147 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 85, + "valueBytes": 176 + }, + { + "keyBytes": 87, + "valueBytes": 492 + }, + { + "keyBytes": 87, + "valueBytes": 75 + }, + { + "keyBytes": 66, + "valueBytes": 16 + } + ] + }, + "user": { + "request": { + "sender": "0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977", + "sequenceNumber": "88", + "maxGasAmount": "2000000", + "gasUnitPrice": "100", + "expirationTimestampSecs": { + "seconds": "1707555299" + }, + "payload": { + "type": "TYPE_ENTRY_FUNCTION_PAYLOAD", + "entryFunctionPayload": { + "function": { + "module": { + "address": "0xa087b0c709f74e94ba74f3b99d5a03273a302981974d214ba7a6be1bfed01640", + "name": "router" + }, + "name": "swap_exact_onput" + }, + "typeArguments": [ + { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "aptos_coin", + "name": "AptosCoin" + } + }, + { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0xf22bede237a07e121b56d91a491eb7bcdfd1f5907926a9e58338f964a01b17fa", + "module": "asset", + "name": "USDT" + } + } + ], + "arguments": [ + "[\"0x9b114c68380752852889ce37415c1ccb62667da677ddcf15923657c7a89027d4\"]", + "[\"0xcfee13421fadecb08845b584539f763bd7432ef2c8ea09fe670a0ae95df87369\",\"0xa8444ba61ed1f4c909348f4cb03ea60085c0a46cee47c95c8c762f47b714e587\",\"0x384ea8a9fa725dd6c53acb885b76921402501dcb0e10da3afe11c455416e20bd\",\"0xa2b5427063ea2fe338d724a7c538e7e187b26d7d330a0b79b96c53a1bd5edee1\",\"0x588d5a95e2b2296b9bd70f2e4f0ad25cd51b4b0ac98ddf2b9c97ba54cbf7ce35\",\"0x4206de6c89de6803261617a1e564b22e06e4d24184e9f0d6d9bf02690a88628\",\"0x182ec132245821093a14a327b65ce3bcd2042e36c1cdcc72ee9b45357033516e\",\"0xd2c483af92c8a390509c7478f498589ec342060125d23e1cf38a92c77163a6e2\",\"0x9bcbcaf1e974bb0f36954d4241b9561fc01e4e72e8428aaf8b029a6e15ba15ce\",\"0xc1e86547bbd9fe7bbf9ce27cd75f29c8590aae6930ce9164d047cb335b7286b\",\"0xe9822d70a4155f83dad846e84fa8852f2e9055cea1c704b8399e291999dcc3cc\",\"0xf8fab4f100d98be8c4e0622bca842ae9cb21bbdf66657b7d74f0fece2a81c8cc\",\"0x1a55e8e5189e2e78f75b24c4cf20bb4af23bac2661615ce751484f0b876b84e4\",\"0xca0313221e1df20dafc13e69620f3ee13aa0c57d67900e719a50df61ad83276e\",\"0x8f113c2fb78932ed824b8fada40d6b48d3fe8ab88da0f3620db9b9ae9c410bd0\",\"0x55d4203c0f4bd0145a6ad43d00f8b381c08be08137932854433b69a1bd6cd3da\",\"0x86e1c5e7fa0fbd64cec5b3cadc3af1fba59573c9150941dc864894c021360669\",\"0x994d35ea34d3c335f3accc4c6bd665da7af62f805e4eb0e4e1eeef8ec99389cd\",\"0xacf0abaeace749e6f1ecbc51ca44f990e700dad43decd207177ece212384afb3\",\"0x5f1da08fcfc8ab1127b4f5b276392cf5509742a26fd30bc8fbb84e094c9b5385\",\"0xcef26d0b17c49b68c8ef10fad67035866fa0c8daa31b03b902b455c5784bd73c\",\"0xf1ef8cee4952c48fcfd69a7b61e410352070e8847d24891aa964b18c6fd355f\",\"0x865543e0879b471e3885502f99a7cda946bebdeb357f2b983271428678d1a974\",\"0x71668083d2f250af2b55a91ab6878c2cf0d0fd987d4cffe43271f9d8c5002af0\",\"0x4a14463ae4aa63544b4ce9ac493c4f71332264952ce33124f8c871fddce6420d\",\"0x9f1ea0ebb5906ff67df134a977d0cbbcf5a4d5b61aefa581cb9e774f4bbbfae\",\"0x691de42dcba524d7f66dd256a1beabdb6b7ffbba3af499fdf86fb42e6c5c1f17\",\"0x24269eb33d6105a5574677cb122038188277fd70b3025463514467273ef23bc9\",\"0x729874141d8373532e028260a3c5633c6f4e7fc3176785c87b78b6f8203dc1fc\",\"0xc437f2272d5bee2d37ed5e29bcd321fdff6edf239e967a2c75cf4f52aaddf6ac\",\"0x6b578b8e73b5a263a3e93cdbc37b52ca3faad034d595b058a4015cb5fefe894e\",\"0xcb3be355cc841558e455dc17fd5505ba56f2473bbbadc6a218ec350ba0037b68\",\"0x867a55eaadbb8fe42721e51cdec85e134bd9061f0e85d76d35a5149164c19df\",\"0x49ea037d742dc2e5095dac4f4b0cecb1ce50d7483849f6c35f84deab611381bc\",\"0x7e9bebf86ba23f20d2cc50db10be58aa60c8cc1fef32437f340f61d0a7d27b04\",\"0x560420d549ea03b5d5b937164088ce0dad500c4caab7c1c991a20d8ea2d49c0b\",\"0xb29d0ee19271066ec0ecaac0878904cdb1521b8f3cbf323bce7aabfc17ac1145\",\"0x2eb29ae570cbcb6d502cd1d74c9a9091a673e1cbe049fc4fccda3fdd9b6c2205\",\"0x542d652ea6c66c22c6de862dc1df05407598b85d3c798c2c7527f71ae1b53e05\",\"0x6407331f7383631915f94ad2ce1251665d3d5a145945904f3035d871bfddef0a\",\"0x22e1b108b92d05d4b3a5feb255f67529425ad29149e75da5b327ca95d0007f16\",\"0x4000743592308691850cb40d2d0a0667f1d4e97e22acad70c6744fb2f4742c4e\",\"0xd55040c9e32f871e8f8e4d71d06e17d373a894f312f49e75d90b6db22129971c\",\"0xcc368d4ab6a0352ea3bb656870f3e94499a09b18ce276635d455b0a8882ee1f0\",\"0x3adf023110ab268f8bb0b8a19baecbc7bca0121faabd64712c6a48de13a99246\",\"0x6d2d0d956f10351c230e5cb8386c0c77f6af9666f9f04e23db564c492b3edf7e\",\"0x2cbbc3d50a6cdbffbcad8429068af937f82476908a55bba7e512fd61e351bcc0\",\"0xe9a2a9eba047a17ed7aea2b9a73ddaa065716e5a690c26c8728481de757a960f\",\"0xf6e395f467f378f1ef9a70850ae3bbe9a6d2f988ebf5f84e818ffe81655f0708\",\"0xa9c9e6f8c15f2aee66071d9040b93e29589556f8dbef9218756d2c60173844a3\",\"0x4f4920eeb3335c5e0cc676fe81f20600921378dd335804ba80fde3a01e5ff24d\",\"0xe2ca02a4db5ec55bace80cf032ecffcb8d1b084a117f223b3b64be1ec8a821e2\",\"0x45f9d8ceb64213cc524905f550db59a55be9df8d4bcc918c96b786f0f59cf94d\",\"0x73f0392087e47883cc3a0cab6ad383ba83c576015f6cf9d80f8a2947a653854e\",\"0xd877e40a8aa4741b71d8d753239484c81a274bb6d843d31e69752d111636f83\",\"0x4c5f2a9dea3cd0af36495a9390efa6d362700d459f4ba2569c4c06addde36aff\",\"0xc4bd716406a7002047449d9db8d92c2376abc06ce42c08482d99c5f0bf2baef9\",\"0x639bdd0d959eb5d993dca7368e553144d3e169e233fd22253e15755413e1a90d\",\"0xd72aba750652fb2703d3d38d358f3a82a0aa507d582202b62d87806b0f925cb6\",\"0xabc30cdd4f37a2e1ec28639d4cf8d71b97dfff0ac7784363db4f3feac82b27fd\",\"0xc0658b27babc2bbe1005ee6e759fe8aabc8991e9fa7d5fa8cbcf0d5abbf26edf\",\"0x8ef7225b94b2fda8c1216ff6308cddd2ee0f1acd2b1e46c1f29f91130a24e6f6\",\"0x8aa5f576f02e267ffde7066bac4c0d9a1f1b1095c24813bf9dedcb4d3aaa9805\",\"0xd6953a965b2d98f274597512e47023340d1728c39cadd949899133a840bd552e\",\"0xb4221289ce8afca35c00b8599bdaf52d95357e9dc48020ac0cc00d53a3ef47b7\",\"0xc518191dd78f4148e02de3b088ef5d58b2f78b59ab0650fbad15d4980cd2e817\",\"0x3e7ac727239e79143d789771e2225bef7657be200a319d6010702e6881b01c61\",\"0xd093332d8c44ca57111b2de0935e121d88d4faf83808fe5041d00f2d7ecc1284\",\"0x5f7adb5adcc2654dca23f66566391972501a08237500b389adf1c5b3d8f4a311\",\"0x9755b4a688c632dab562bef97854e07ed281992cb2547dec4dca7daa0061f0dc\"]", + "[\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\",\"1000\"]" + ], + "entryFunctionIdStr": "0xa087b0c709f74e94ba74f3b99d5a03273a302981974d214ba7a6be1bfed01640::router::swap_exact_onput" + } + }, + "signature": { + "type": "TYPE_ED25519", + "ed25519": { + "publicKey": "lFXqZxj5CsiuB4i4btZp4f5yCLerqtYC9yecKC2nNg4=", + "signature": "FiCm42qKkRFB8eFITjxmNrfMcWmPcTwCgFVeCvdyX5519+nVEPCJx1ksOreoHY+myiUgexO8hCEdkv/dJoPQBg==" + } + } + }, + "events": [ + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661399", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026186\",\"token\":\"0x9b114c68380752852889ce37415c1ccb62667da677ddcf15923657c7a89027d4\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026187", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026188\",\"token\":\"0x757001cff04fd6aceac7ceb32bcd2b759bf371e85fe1b94ed0d245ced5a49fd9\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x757001cff04fd6aceac7ceb32bcd2b759bf371e85fe1b94ed0d245ced5a49fd9" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x757001cff04fd6aceac7ceb32bcd2b759bf371e85fe1b94ed0d245ced5a49fd9\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235353439373439227d\",\"inscription_id\":\"1230938\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x757001cff04fd6aceac7ceb32bcd2b759bf371e85fe1b94ed0d245ced5a49fd9" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230938\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x757001cff04fd6aceac7ceb32bcd2b759bf371e85fe1b94ed0d245ced5a49fd9" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5549749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661400", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026188\",\"token\":\"0x757001cff04fd6aceac7ceb32bcd2b759bf371e85fe1b94ed0d245ced5a49fd9\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026188", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026189\",\"token\":\"0x22b5600da82dc819f289bce7f14d839ebdce4d569b1d60dbc54065bab2849730\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x22b5600da82dc819f289bce7f14d839ebdce4d569b1d60dbc54065bab2849730" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x22b5600da82dc819f289bce7f14d839ebdce4d569b1d60dbc54065bab2849730\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235353438373439227d\",\"inscription_id\":\"1230939\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x22b5600da82dc819f289bce7f14d839ebdce4d569b1d60dbc54065bab2849730" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230939\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x22b5600da82dc819f289bce7f14d839ebdce4d569b1d60dbc54065bab2849730" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5548749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026189", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026190\",\"token\":\"0x74ea805ec266e5f6eba981b3c9d0386d3621e733806cf40bb5435690ba6962e2\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x74ea805ec266e5f6eba981b3c9d0386d3621e733806cf40bb5435690ba6962e2" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x74ea805ec266e5f6eba981b3c9d0386d3621e733806cf40bb5435690ba6962e2\",\"to\":\"0xcfee13421fadecb08845b584539f763bd7432ef2c8ea09fe670a0ae95df87369\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1230940\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x74ea805ec266e5f6eba981b3c9d0386d3621e733806cf40bb5435690ba6962e2" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230940\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x74ea805ec266e5f6eba981b3c9d0386d3621e733806cf40bb5435690ba6962e2" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0x22b5600da82dc819f289bce7f14d839ebdce4d569b1d60dbc54065bab2849730\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0x757001cff04fd6aceac7ceb32bcd2b759bf371e85fe1b94ed0d245ced5a49fd9\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0x74ea805ec266e5f6eba981b3c9d0386d3621e733806cf40bb5435690ba6962e2\"},\"secondObjectOwner\":\"0xcfee13421fadecb08845b584539f763bd7432ef2c8ea09fe670a0ae95df87369\",\"splitAmount\":\"5549749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5549749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661401", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026189\",\"token\":\"0x22b5600da82dc819f289bce7f14d839ebdce4d569b1d60dbc54065bab2849730\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026190", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026191\",\"token\":\"0x2cef0ed3c2c5289ce1051f329bcab3d30092fd5cb3c723278b5f58871cb5a5dc\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x2cef0ed3c2c5289ce1051f329bcab3d30092fd5cb3c723278b5f58871cb5a5dc" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x2cef0ed3c2c5289ce1051f329bcab3d30092fd5cb3c723278b5f58871cb5a5dc\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235353437373439227d\",\"inscription_id\":\"1230941\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x2cef0ed3c2c5289ce1051f329bcab3d30092fd5cb3c723278b5f58871cb5a5dc" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230941\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x2cef0ed3c2c5289ce1051f329bcab3d30092fd5cb3c723278b5f58871cb5a5dc" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5547749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026191", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026192\",\"token\":\"0x50d32dfbc4400097b91fe45eede91eebd6ed402eb56b69fa10d3a3aaf8415cfe\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x50d32dfbc4400097b91fe45eede91eebd6ed402eb56b69fa10d3a3aaf8415cfe" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x50d32dfbc4400097b91fe45eede91eebd6ed402eb56b69fa10d3a3aaf8415cfe\",\"to\":\"0xa8444ba61ed1f4c909348f4cb03ea60085c0a46cee47c95c8c762f47b714e587\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1230942\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x50d32dfbc4400097b91fe45eede91eebd6ed402eb56b69fa10d3a3aaf8415cfe" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230942\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x50d32dfbc4400097b91fe45eede91eebd6ed402eb56b69fa10d3a3aaf8415cfe" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0x2cef0ed3c2c5289ce1051f329bcab3d30092fd5cb3c723278b5f58871cb5a5dc\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0x22b5600da82dc819f289bce7f14d839ebdce4d569b1d60dbc54065bab2849730\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0x50d32dfbc4400097b91fe45eede91eebd6ed402eb56b69fa10d3a3aaf8415cfe\"},\"secondObjectOwner\":\"0xa8444ba61ed1f4c909348f4cb03ea60085c0a46cee47c95c8c762f47b714e587\",\"splitAmount\":\"5548749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5548749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661402", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026191\",\"token\":\"0x2cef0ed3c2c5289ce1051f329bcab3d30092fd5cb3c723278b5f58871cb5a5dc\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026192", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026193\",\"token\":\"0x1df7c6dd02885b9e9fe7795dbb6904288e5cc16b65ab05d1c3d3c782dcca8d6f\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x1df7c6dd02885b9e9fe7795dbb6904288e5cc16b65ab05d1c3d3c782dcca8d6f" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x1df7c6dd02885b9e9fe7795dbb6904288e5cc16b65ab05d1c3d3c782dcca8d6f\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235353436373439227d\",\"inscription_id\":\"1230943\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x1df7c6dd02885b9e9fe7795dbb6904288e5cc16b65ab05d1c3d3c782dcca8d6f" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230943\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x1df7c6dd02885b9e9fe7795dbb6904288e5cc16b65ab05d1c3d3c782dcca8d6f" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5546749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026193", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026194\",\"token\":\"0x74ecf059b5d9220267d34441b27c8d10ef22aff50e513565e8a3421aa82b2de8\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x74ecf059b5d9220267d34441b27c8d10ef22aff50e513565e8a3421aa82b2de8" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x74ecf059b5d9220267d34441b27c8d10ef22aff50e513565e8a3421aa82b2de8\",\"to\":\"0x384ea8a9fa725dd6c53acb885b76921402501dcb0e10da3afe11c455416e20bd\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1230944\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x74ecf059b5d9220267d34441b27c8d10ef22aff50e513565e8a3421aa82b2de8" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230944\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x74ecf059b5d9220267d34441b27c8d10ef22aff50e513565e8a3421aa82b2de8" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0x1df7c6dd02885b9e9fe7795dbb6904288e5cc16b65ab05d1c3d3c782dcca8d6f\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0x2cef0ed3c2c5289ce1051f329bcab3d30092fd5cb3c723278b5f58871cb5a5dc\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0x74ecf059b5d9220267d34441b27c8d10ef22aff50e513565e8a3421aa82b2de8\"},\"secondObjectOwner\":\"0x384ea8a9fa725dd6c53acb885b76921402501dcb0e10da3afe11c455416e20bd\",\"splitAmount\":\"5547749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5547749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661403", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026193\",\"token\":\"0x1df7c6dd02885b9e9fe7795dbb6904288e5cc16b65ab05d1c3d3c782dcca8d6f\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026194", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026195\",\"token\":\"0x9fbba0f26d168e68a961b90375131b2e93df06e346c8ea2aaea6d13d27600393\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x9fbba0f26d168e68a961b90375131b2e93df06e346c8ea2aaea6d13d27600393" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x9fbba0f26d168e68a961b90375131b2e93df06e346c8ea2aaea6d13d27600393\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235353435373439227d\",\"inscription_id\":\"1230945\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x9fbba0f26d168e68a961b90375131b2e93df06e346c8ea2aaea6d13d27600393" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230945\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x9fbba0f26d168e68a961b90375131b2e93df06e346c8ea2aaea6d13d27600393" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5545749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026195", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026196\",\"token\":\"0x30fd46660f51b10d72f518031b617fd426e0c74c3b8d1bddb083dfa6f248e431\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x30fd46660f51b10d72f518031b617fd426e0c74c3b8d1bddb083dfa6f248e431" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x30fd46660f51b10d72f518031b617fd426e0c74c3b8d1bddb083dfa6f248e431\",\"to\":\"0xa2b5427063ea2fe338d724a7c538e7e187b26d7d330a0b79b96c53a1bd5edee1\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1230946\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x30fd46660f51b10d72f518031b617fd426e0c74c3b8d1bddb083dfa6f248e431" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230946\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x30fd46660f51b10d72f518031b617fd426e0c74c3b8d1bddb083dfa6f248e431" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0x9fbba0f26d168e68a961b90375131b2e93df06e346c8ea2aaea6d13d27600393\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0x1df7c6dd02885b9e9fe7795dbb6904288e5cc16b65ab05d1c3d3c782dcca8d6f\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0x30fd46660f51b10d72f518031b617fd426e0c74c3b8d1bddb083dfa6f248e431\"},\"secondObjectOwner\":\"0xa2b5427063ea2fe338d724a7c538e7e187b26d7d330a0b79b96c53a1bd5edee1\",\"splitAmount\":\"5546749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5546749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661404", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026195\",\"token\":\"0x9fbba0f26d168e68a961b90375131b2e93df06e346c8ea2aaea6d13d27600393\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026196", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026197\",\"token\":\"0x9edbcd641bd0e75b1c0ecb1bbc457c781390aaad97cab52d9f84148429b2905c\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x9edbcd641bd0e75b1c0ecb1bbc457c781390aaad97cab52d9f84148429b2905c" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x9edbcd641bd0e75b1c0ecb1bbc457c781390aaad97cab52d9f84148429b2905c\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235353434373439227d\",\"inscription_id\":\"1230947\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x9edbcd641bd0e75b1c0ecb1bbc457c781390aaad97cab52d9f84148429b2905c" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230947\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x9edbcd641bd0e75b1c0ecb1bbc457c781390aaad97cab52d9f84148429b2905c" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5544749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026197", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026198\",\"token\":\"0x14a94efe40cf9ecc0e760ef4b3cb3ce42e56f9e0d437a9a6d612f894e583c810\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x14a94efe40cf9ecc0e760ef4b3cb3ce42e56f9e0d437a9a6d612f894e583c810" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x14a94efe40cf9ecc0e760ef4b3cb3ce42e56f9e0d437a9a6d612f894e583c810\",\"to\":\"0x588d5a95e2b2296b9bd70f2e4f0ad25cd51b4b0ac98ddf2b9c97ba54cbf7ce35\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1230948\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x14a94efe40cf9ecc0e760ef4b3cb3ce42e56f9e0d437a9a6d612f894e583c810" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230948\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x14a94efe40cf9ecc0e760ef4b3cb3ce42e56f9e0d437a9a6d612f894e583c810" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0x9edbcd641bd0e75b1c0ecb1bbc457c781390aaad97cab52d9f84148429b2905c\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0x9fbba0f26d168e68a961b90375131b2e93df06e346c8ea2aaea6d13d27600393\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0x14a94efe40cf9ecc0e760ef4b3cb3ce42e56f9e0d437a9a6d612f894e583c810\"},\"secondObjectOwner\":\"0x588d5a95e2b2296b9bd70f2e4f0ad25cd51b4b0ac98ddf2b9c97ba54cbf7ce35\",\"splitAmount\":\"5545749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5545749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661405", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026197\",\"token\":\"0x9edbcd641bd0e75b1c0ecb1bbc457c781390aaad97cab52d9f84148429b2905c\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026198", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026199\",\"token\":\"0x70f18757e5191aba271b977058261cfe444b2112e8e0d81d918e19eeacb7eca1\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x70f18757e5191aba271b977058261cfe444b2112e8e0d81d918e19eeacb7eca1" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x70f18757e5191aba271b977058261cfe444b2112e8e0d81d918e19eeacb7eca1\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235353433373439227d\",\"inscription_id\":\"1230949\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x70f18757e5191aba271b977058261cfe444b2112e8e0d81d918e19eeacb7eca1" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230949\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x70f18757e5191aba271b977058261cfe444b2112e8e0d81d918e19eeacb7eca1" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5543749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026199", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026200\",\"token\":\"0xb13d2df4409afc6b24fb43c8046692568a6384b9645a4288d2e6d6fbc840d81f\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0xb13d2df4409afc6b24fb43c8046692568a6384b9645a4288d2e6d6fbc840d81f" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0xb13d2df4409afc6b24fb43c8046692568a6384b9645a4288d2e6d6fbc840d81f\",\"to\":\"0x4206de6c89de6803261617a1e564b22e06e4d24184e9f0d6d9bf02690a88628\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1230950\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xb13d2df4409afc6b24fb43c8046692568a6384b9645a4288d2e6d6fbc840d81f" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230950\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xb13d2df4409afc6b24fb43c8046692568a6384b9645a4288d2e6d6fbc840d81f" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0x70f18757e5191aba271b977058261cfe444b2112e8e0d81d918e19eeacb7eca1\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0x9edbcd641bd0e75b1c0ecb1bbc457c781390aaad97cab52d9f84148429b2905c\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0xb13d2df4409afc6b24fb43c8046692568a6384b9645a4288d2e6d6fbc840d81f\"},\"secondObjectOwner\":\"0x4206de6c89de6803261617a1e564b22e06e4d24184e9f0d6d9bf02690a88628\",\"splitAmount\":\"5544749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5544749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661406", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026199\",\"token\":\"0x70f18757e5191aba271b977058261cfe444b2112e8e0d81d918e19eeacb7eca1\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026200", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026201\",\"token\":\"0xb6706d72132f702c167edc08a91742024ead546067ce49ee4ad61b98d405435c\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0xb6706d72132f702c167edc08a91742024ead546067ce49ee4ad61b98d405435c" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0xb6706d72132f702c167edc08a91742024ead546067ce49ee4ad61b98d405435c\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235353432373439227d\",\"inscription_id\":\"1230951\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xb6706d72132f702c167edc08a91742024ead546067ce49ee4ad61b98d405435c" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230951\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xb6706d72132f702c167edc08a91742024ead546067ce49ee4ad61b98d405435c" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5542749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026201", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026202\",\"token\":\"0x4bfadc9c7a8bdb83d86f335be34dd5175007e7f74a1c025b78ea1d4c9ffed539\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x4bfadc9c7a8bdb83d86f335be34dd5175007e7f74a1c025b78ea1d4c9ffed539" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x4bfadc9c7a8bdb83d86f335be34dd5175007e7f74a1c025b78ea1d4c9ffed539\",\"to\":\"0x182ec132245821093a14a327b65ce3bcd2042e36c1cdcc72ee9b45357033516e\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1230952\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x4bfadc9c7a8bdb83d86f335be34dd5175007e7f74a1c025b78ea1d4c9ffed539" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230952\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x4bfadc9c7a8bdb83d86f335be34dd5175007e7f74a1c025b78ea1d4c9ffed539" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0xb6706d72132f702c167edc08a91742024ead546067ce49ee4ad61b98d405435c\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0x70f18757e5191aba271b977058261cfe444b2112e8e0d81d918e19eeacb7eca1\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0x4bfadc9c7a8bdb83d86f335be34dd5175007e7f74a1c025b78ea1d4c9ffed539\"},\"secondObjectOwner\":\"0x182ec132245821093a14a327b65ce3bcd2042e36c1cdcc72ee9b45357033516e\",\"splitAmount\":\"5543749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5543749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661407", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026201\",\"token\":\"0xb6706d72132f702c167edc08a91742024ead546067ce49ee4ad61b98d405435c\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026202", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026203\",\"token\":\"0x59c0df926dda458b0af08b9bc78dc79593e907e757db490c757841c5622bd2ef\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x59c0df926dda458b0af08b9bc78dc79593e907e757db490c757841c5622bd2ef" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x59c0df926dda458b0af08b9bc78dc79593e907e757db490c757841c5622bd2ef\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235353431373439227d\",\"inscription_id\":\"1230953\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x59c0df926dda458b0af08b9bc78dc79593e907e757db490c757841c5622bd2ef" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230953\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x59c0df926dda458b0af08b9bc78dc79593e907e757db490c757841c5622bd2ef" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5541749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026203", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026204\",\"token\":\"0x35f76413efd334f72b68868fe41a9cea784ce1523b0fb8561da2bed3f5f742c0\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x35f76413efd334f72b68868fe41a9cea784ce1523b0fb8561da2bed3f5f742c0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x35f76413efd334f72b68868fe41a9cea784ce1523b0fb8561da2bed3f5f742c0\",\"to\":\"0xd2c483af92c8a390509c7478f498589ec342060125d23e1cf38a92c77163a6e2\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1230954\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x35f76413efd334f72b68868fe41a9cea784ce1523b0fb8561da2bed3f5f742c0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230954\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x35f76413efd334f72b68868fe41a9cea784ce1523b0fb8561da2bed3f5f742c0" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0x59c0df926dda458b0af08b9bc78dc79593e907e757db490c757841c5622bd2ef\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0xb6706d72132f702c167edc08a91742024ead546067ce49ee4ad61b98d405435c\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0x35f76413efd334f72b68868fe41a9cea784ce1523b0fb8561da2bed3f5f742c0\"},\"secondObjectOwner\":\"0xd2c483af92c8a390509c7478f498589ec342060125d23e1cf38a92c77163a6e2\",\"splitAmount\":\"5542749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5542749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661408", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026203\",\"token\":\"0x59c0df926dda458b0af08b9bc78dc79593e907e757db490c757841c5622bd2ef\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026204", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026205\",\"token\":\"0x10c7ea1c24afe6354c7145976fe26d98be8fb052c8d3ddbfb49205a2b2684a16\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x10c7ea1c24afe6354c7145976fe26d98be8fb052c8d3ddbfb49205a2b2684a16" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x10c7ea1c24afe6354c7145976fe26d98be8fb052c8d3ddbfb49205a2b2684a16\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235353430373439227d\",\"inscription_id\":\"1230955\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x10c7ea1c24afe6354c7145976fe26d98be8fb052c8d3ddbfb49205a2b2684a16" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230955\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x10c7ea1c24afe6354c7145976fe26d98be8fb052c8d3ddbfb49205a2b2684a16" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5540749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026205", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026206\",\"token\":\"0x1e148cab705b3c7f816ab8e82a7a728bed1aae03ccb6ddf0c33071142ed197c6\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x1e148cab705b3c7f816ab8e82a7a728bed1aae03ccb6ddf0c33071142ed197c6" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x1e148cab705b3c7f816ab8e82a7a728bed1aae03ccb6ddf0c33071142ed197c6\",\"to\":\"0x9bcbcaf1e974bb0f36954d4241b9561fc01e4e72e8428aaf8b029a6e15ba15ce\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1230956\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x1e148cab705b3c7f816ab8e82a7a728bed1aae03ccb6ddf0c33071142ed197c6" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230956\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x1e148cab705b3c7f816ab8e82a7a728bed1aae03ccb6ddf0c33071142ed197c6" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0x10c7ea1c24afe6354c7145976fe26d98be8fb052c8d3ddbfb49205a2b2684a16\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0x59c0df926dda458b0af08b9bc78dc79593e907e757db490c757841c5622bd2ef\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0x1e148cab705b3c7f816ab8e82a7a728bed1aae03ccb6ddf0c33071142ed197c6\"},\"secondObjectOwner\":\"0x9bcbcaf1e974bb0f36954d4241b9561fc01e4e72e8428aaf8b029a6e15ba15ce\",\"splitAmount\":\"5541749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5541749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661409", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026205\",\"token\":\"0x10c7ea1c24afe6354c7145976fe26d98be8fb052c8d3ddbfb49205a2b2684a16\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026206", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026207\",\"token\":\"0x154d3a84d47a26f2b38bf23e7b37628ebaddc39acb4bf4283dbeb9a545d9d539\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x154d3a84d47a26f2b38bf23e7b37628ebaddc39acb4bf4283dbeb9a545d9d539" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x154d3a84d47a26f2b38bf23e7b37628ebaddc39acb4bf4283dbeb9a545d9d539\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235353339373439227d\",\"inscription_id\":\"1230957\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x154d3a84d47a26f2b38bf23e7b37628ebaddc39acb4bf4283dbeb9a545d9d539" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230957\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x154d3a84d47a26f2b38bf23e7b37628ebaddc39acb4bf4283dbeb9a545d9d539" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5539749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026207", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026208\",\"token\":\"0x4b8a580545a071f8b1f978b412b0ea093a440777dd6fb7e3035c6a01d7c874d4\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x4b8a580545a071f8b1f978b412b0ea093a440777dd6fb7e3035c6a01d7c874d4" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x4b8a580545a071f8b1f978b412b0ea093a440777dd6fb7e3035c6a01d7c874d4\",\"to\":\"0xc1e86547bbd9fe7bbf9ce27cd75f29c8590aae6930ce9164d047cb335b7286b\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1230958\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x4b8a580545a071f8b1f978b412b0ea093a440777dd6fb7e3035c6a01d7c874d4" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230958\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x4b8a580545a071f8b1f978b412b0ea093a440777dd6fb7e3035c6a01d7c874d4" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0x154d3a84d47a26f2b38bf23e7b37628ebaddc39acb4bf4283dbeb9a545d9d539\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0x10c7ea1c24afe6354c7145976fe26d98be8fb052c8d3ddbfb49205a2b2684a16\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0x4b8a580545a071f8b1f978b412b0ea093a440777dd6fb7e3035c6a01d7c874d4\"},\"secondObjectOwner\":\"0xc1e86547bbd9fe7bbf9ce27cd75f29c8590aae6930ce9164d047cb335b7286b\",\"splitAmount\":\"5540749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5540749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661410", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026207\",\"token\":\"0x154d3a84d47a26f2b38bf23e7b37628ebaddc39acb4bf4283dbeb9a545d9d539\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026208", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026209\",\"token\":\"0xc585e059688aefdf88e2cba4a559455c2cd9d73bbd4de9da903e64dcfa6eac57\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0xc585e059688aefdf88e2cba4a559455c2cd9d73bbd4de9da903e64dcfa6eac57" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0xc585e059688aefdf88e2cba4a559455c2cd9d73bbd4de9da903e64dcfa6eac57\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235353338373439227d\",\"inscription_id\":\"1230959\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xc585e059688aefdf88e2cba4a559455c2cd9d73bbd4de9da903e64dcfa6eac57" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230959\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xc585e059688aefdf88e2cba4a559455c2cd9d73bbd4de9da903e64dcfa6eac57" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5538749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026209", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026210\",\"token\":\"0x1585f38615ba78d34792c1ec743c7e65fd384c3a09392bb2b4ee3d47856adf12\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x1585f38615ba78d34792c1ec743c7e65fd384c3a09392bb2b4ee3d47856adf12" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x1585f38615ba78d34792c1ec743c7e65fd384c3a09392bb2b4ee3d47856adf12\",\"to\":\"0xe9822d70a4155f83dad846e84fa8852f2e9055cea1c704b8399e291999dcc3cc\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1230960\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x1585f38615ba78d34792c1ec743c7e65fd384c3a09392bb2b4ee3d47856adf12" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230960\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x1585f38615ba78d34792c1ec743c7e65fd384c3a09392bb2b4ee3d47856adf12" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0xc585e059688aefdf88e2cba4a559455c2cd9d73bbd4de9da903e64dcfa6eac57\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0x154d3a84d47a26f2b38bf23e7b37628ebaddc39acb4bf4283dbeb9a545d9d539\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0x1585f38615ba78d34792c1ec743c7e65fd384c3a09392bb2b4ee3d47856adf12\"},\"secondObjectOwner\":\"0xe9822d70a4155f83dad846e84fa8852f2e9055cea1c704b8399e291999dcc3cc\",\"splitAmount\":\"5539749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5539749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661411", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026209\",\"token\":\"0xc585e059688aefdf88e2cba4a559455c2cd9d73bbd4de9da903e64dcfa6eac57\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026210", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026211\",\"token\":\"0x13d007e71290aba96133fe1f78f2dad54a5582322754082d9e4cf455a72de0f6\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x13d007e71290aba96133fe1f78f2dad54a5582322754082d9e4cf455a72de0f6" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x13d007e71290aba96133fe1f78f2dad54a5582322754082d9e4cf455a72de0f6\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235353337373439227d\",\"inscription_id\":\"1230961\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x13d007e71290aba96133fe1f78f2dad54a5582322754082d9e4cf455a72de0f6" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230961\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x13d007e71290aba96133fe1f78f2dad54a5582322754082d9e4cf455a72de0f6" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5537749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026211", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026212\",\"token\":\"0x7a0fff5033b84c23ffd178eee1213025d4243aadde67be005bca25925da6f6b2\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x7a0fff5033b84c23ffd178eee1213025d4243aadde67be005bca25925da6f6b2" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x7a0fff5033b84c23ffd178eee1213025d4243aadde67be005bca25925da6f6b2\",\"to\":\"0xf8fab4f100d98be8c4e0622bca842ae9cb21bbdf66657b7d74f0fece2a81c8cc\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1230962\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x7a0fff5033b84c23ffd178eee1213025d4243aadde67be005bca25925da6f6b2" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230962\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x7a0fff5033b84c23ffd178eee1213025d4243aadde67be005bca25925da6f6b2" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0x13d007e71290aba96133fe1f78f2dad54a5582322754082d9e4cf455a72de0f6\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0xc585e059688aefdf88e2cba4a559455c2cd9d73bbd4de9da903e64dcfa6eac57\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0x7a0fff5033b84c23ffd178eee1213025d4243aadde67be005bca25925da6f6b2\"},\"secondObjectOwner\":\"0xf8fab4f100d98be8c4e0622bca842ae9cb21bbdf66657b7d74f0fece2a81c8cc\",\"splitAmount\":\"5538749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5538749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661412", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026211\",\"token\":\"0x13d007e71290aba96133fe1f78f2dad54a5582322754082d9e4cf455a72de0f6\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026212", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026213\",\"token\":\"0x4b3bfae405b2c0af206e7fe0ea4678cc848dcb66917f75b7ecd42a5368b18237\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x4b3bfae405b2c0af206e7fe0ea4678cc848dcb66917f75b7ecd42a5368b18237" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x4b3bfae405b2c0af206e7fe0ea4678cc848dcb66917f75b7ecd42a5368b18237\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235353336373439227d\",\"inscription_id\":\"1230963\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x4b3bfae405b2c0af206e7fe0ea4678cc848dcb66917f75b7ecd42a5368b18237" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230963\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x4b3bfae405b2c0af206e7fe0ea4678cc848dcb66917f75b7ecd42a5368b18237" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5536749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026213", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026214\",\"token\":\"0xe3cdc482f81cb84ef13809c17d1fcc5b005d0d653a77da1698b393f1aecd6f6e\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0xe3cdc482f81cb84ef13809c17d1fcc5b005d0d653a77da1698b393f1aecd6f6e" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0xe3cdc482f81cb84ef13809c17d1fcc5b005d0d653a77da1698b393f1aecd6f6e\",\"to\":\"0x1a55e8e5189e2e78f75b24c4cf20bb4af23bac2661615ce751484f0b876b84e4\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1230964\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xe3cdc482f81cb84ef13809c17d1fcc5b005d0d653a77da1698b393f1aecd6f6e" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230964\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xe3cdc482f81cb84ef13809c17d1fcc5b005d0d653a77da1698b393f1aecd6f6e" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0x4b3bfae405b2c0af206e7fe0ea4678cc848dcb66917f75b7ecd42a5368b18237\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0x13d007e71290aba96133fe1f78f2dad54a5582322754082d9e4cf455a72de0f6\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0xe3cdc482f81cb84ef13809c17d1fcc5b005d0d653a77da1698b393f1aecd6f6e\"},\"secondObjectOwner\":\"0x1a55e8e5189e2e78f75b24c4cf20bb4af23bac2661615ce751484f0b876b84e4\",\"splitAmount\":\"5537749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5537749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661413", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026213\",\"token\":\"0x4b3bfae405b2c0af206e7fe0ea4678cc848dcb66917f75b7ecd42a5368b18237\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026214", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026215\",\"token\":\"0xee17d361a3561c4d805167562cd2fe058d3c184fd2dcb026e06f928bdba921a1\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0xee17d361a3561c4d805167562cd2fe058d3c184fd2dcb026e06f928bdba921a1" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0xee17d361a3561c4d805167562cd2fe058d3c184fd2dcb026e06f928bdba921a1\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235353335373439227d\",\"inscription_id\":\"1230965\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xee17d361a3561c4d805167562cd2fe058d3c184fd2dcb026e06f928bdba921a1" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230965\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xee17d361a3561c4d805167562cd2fe058d3c184fd2dcb026e06f928bdba921a1" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5535749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026215", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026216\",\"token\":\"0x6107815767181eed615e04d0d154331dd4018a6e55bb25d42279a6198f908045\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x6107815767181eed615e04d0d154331dd4018a6e55bb25d42279a6198f908045" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x6107815767181eed615e04d0d154331dd4018a6e55bb25d42279a6198f908045\",\"to\":\"0xca0313221e1df20dafc13e69620f3ee13aa0c57d67900e719a50df61ad83276e\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1230966\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x6107815767181eed615e04d0d154331dd4018a6e55bb25d42279a6198f908045" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230966\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x6107815767181eed615e04d0d154331dd4018a6e55bb25d42279a6198f908045" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0xee17d361a3561c4d805167562cd2fe058d3c184fd2dcb026e06f928bdba921a1\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0x4b3bfae405b2c0af206e7fe0ea4678cc848dcb66917f75b7ecd42a5368b18237\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0x6107815767181eed615e04d0d154331dd4018a6e55bb25d42279a6198f908045\"},\"secondObjectOwner\":\"0xca0313221e1df20dafc13e69620f3ee13aa0c57d67900e719a50df61ad83276e\",\"splitAmount\":\"5536749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5536749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661414", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026215\",\"token\":\"0xee17d361a3561c4d805167562cd2fe058d3c184fd2dcb026e06f928bdba921a1\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026216", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026217\",\"token\":\"0x2f91df9e7cd443e23ebdd3f9644fb30cc7caf0d12cb9784be1eca1bbc133ea39\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x2f91df9e7cd443e23ebdd3f9644fb30cc7caf0d12cb9784be1eca1bbc133ea39" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x2f91df9e7cd443e23ebdd3f9644fb30cc7caf0d12cb9784be1eca1bbc133ea39\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235353334373439227d\",\"inscription_id\":\"1230967\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x2f91df9e7cd443e23ebdd3f9644fb30cc7caf0d12cb9784be1eca1bbc133ea39" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230967\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x2f91df9e7cd443e23ebdd3f9644fb30cc7caf0d12cb9784be1eca1bbc133ea39" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5534749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026217", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026218\",\"token\":\"0xce68cc6319ecea91ee4a6e6290fa6110685eb593a70b3d08a7de8500b757e97e\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0xce68cc6319ecea91ee4a6e6290fa6110685eb593a70b3d08a7de8500b757e97e" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0xce68cc6319ecea91ee4a6e6290fa6110685eb593a70b3d08a7de8500b757e97e\",\"to\":\"0x8f113c2fb78932ed824b8fada40d6b48d3fe8ab88da0f3620db9b9ae9c410bd0\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1230968\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xce68cc6319ecea91ee4a6e6290fa6110685eb593a70b3d08a7de8500b757e97e" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230968\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xce68cc6319ecea91ee4a6e6290fa6110685eb593a70b3d08a7de8500b757e97e" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0x2f91df9e7cd443e23ebdd3f9644fb30cc7caf0d12cb9784be1eca1bbc133ea39\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0xee17d361a3561c4d805167562cd2fe058d3c184fd2dcb026e06f928bdba921a1\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0xce68cc6319ecea91ee4a6e6290fa6110685eb593a70b3d08a7de8500b757e97e\"},\"secondObjectOwner\":\"0x8f113c2fb78932ed824b8fada40d6b48d3fe8ab88da0f3620db9b9ae9c410bd0\",\"splitAmount\":\"5535749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5535749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661415", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026217\",\"token\":\"0x2f91df9e7cd443e23ebdd3f9644fb30cc7caf0d12cb9784be1eca1bbc133ea39\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026218", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026219\",\"token\":\"0xe90653f8bb341aa971c0a427cf9c66ac9b5674b9e36f8cfa94a9f6e90524170d\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0xe90653f8bb341aa971c0a427cf9c66ac9b5674b9e36f8cfa94a9f6e90524170d" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0xe90653f8bb341aa971c0a427cf9c66ac9b5674b9e36f8cfa94a9f6e90524170d\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235353333373439227d\",\"inscription_id\":\"1230969\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xe90653f8bb341aa971c0a427cf9c66ac9b5674b9e36f8cfa94a9f6e90524170d" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230969\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xe90653f8bb341aa971c0a427cf9c66ac9b5674b9e36f8cfa94a9f6e90524170d" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5533749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026219", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026220\",\"token\":\"0xac13e19e96d920dfb36b0639f9961f5870dc4d6e15d9672d70ab7a9875107fcc\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0xac13e19e96d920dfb36b0639f9961f5870dc4d6e15d9672d70ab7a9875107fcc" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0xac13e19e96d920dfb36b0639f9961f5870dc4d6e15d9672d70ab7a9875107fcc\",\"to\":\"0x55d4203c0f4bd0145a6ad43d00f8b381c08be08137932854433b69a1bd6cd3da\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1230970\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xac13e19e96d920dfb36b0639f9961f5870dc4d6e15d9672d70ab7a9875107fcc" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230970\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xac13e19e96d920dfb36b0639f9961f5870dc4d6e15d9672d70ab7a9875107fcc" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0xe90653f8bb341aa971c0a427cf9c66ac9b5674b9e36f8cfa94a9f6e90524170d\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0x2f91df9e7cd443e23ebdd3f9644fb30cc7caf0d12cb9784be1eca1bbc133ea39\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0xac13e19e96d920dfb36b0639f9961f5870dc4d6e15d9672d70ab7a9875107fcc\"},\"secondObjectOwner\":\"0x55d4203c0f4bd0145a6ad43d00f8b381c08be08137932854433b69a1bd6cd3da\",\"splitAmount\":\"5534749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5534749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661416", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026219\",\"token\":\"0xe90653f8bb341aa971c0a427cf9c66ac9b5674b9e36f8cfa94a9f6e90524170d\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026220", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026221\",\"token\":\"0x3793b5be1bfcd86f66262c6c9a9bbb1ac41ab8700c1767bf11a6986160272469\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x3793b5be1bfcd86f66262c6c9a9bbb1ac41ab8700c1767bf11a6986160272469" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x3793b5be1bfcd86f66262c6c9a9bbb1ac41ab8700c1767bf11a6986160272469\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235353332373439227d\",\"inscription_id\":\"1230971\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x3793b5be1bfcd86f66262c6c9a9bbb1ac41ab8700c1767bf11a6986160272469" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230971\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x3793b5be1bfcd86f66262c6c9a9bbb1ac41ab8700c1767bf11a6986160272469" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5532749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026221", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026222\",\"token\":\"0x95f24cad84a6c1968c55f174413f948a03f36791498ba16b916a5e83512f239\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x095f24cad84a6c1968c55f174413f948a03f36791498ba16b916a5e83512f239" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x95f24cad84a6c1968c55f174413f948a03f36791498ba16b916a5e83512f239\",\"to\":\"0x86e1c5e7fa0fbd64cec5b3cadc3af1fba59573c9150941dc864894c021360669\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1230972\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x095f24cad84a6c1968c55f174413f948a03f36791498ba16b916a5e83512f239" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230972\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x095f24cad84a6c1968c55f174413f948a03f36791498ba16b916a5e83512f239" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0x3793b5be1bfcd86f66262c6c9a9bbb1ac41ab8700c1767bf11a6986160272469\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0xe90653f8bb341aa971c0a427cf9c66ac9b5674b9e36f8cfa94a9f6e90524170d\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0x95f24cad84a6c1968c55f174413f948a03f36791498ba16b916a5e83512f239\"},\"secondObjectOwner\":\"0x86e1c5e7fa0fbd64cec5b3cadc3af1fba59573c9150941dc864894c021360669\",\"splitAmount\":\"5533749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5533749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661417", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026221\",\"token\":\"0x3793b5be1bfcd86f66262c6c9a9bbb1ac41ab8700c1767bf11a6986160272469\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026222", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026223\",\"token\":\"0x82820295707248917c6a030f78166c3c0e27db52f995790be543e3a97d405986\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x82820295707248917c6a030f78166c3c0e27db52f995790be543e3a97d405986" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x82820295707248917c6a030f78166c3c0e27db52f995790be543e3a97d405986\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235353331373439227d\",\"inscription_id\":\"1230973\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x82820295707248917c6a030f78166c3c0e27db52f995790be543e3a97d405986" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230973\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x82820295707248917c6a030f78166c3c0e27db52f995790be543e3a97d405986" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5531749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026223", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026224\",\"token\":\"0xb6d1165b4d4041e338303347d2736d5096c051d4574ff373b8f1e53218d595a1\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0xb6d1165b4d4041e338303347d2736d5096c051d4574ff373b8f1e53218d595a1" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0xb6d1165b4d4041e338303347d2736d5096c051d4574ff373b8f1e53218d595a1\",\"to\":\"0x994d35ea34d3c335f3accc4c6bd665da7af62f805e4eb0e4e1eeef8ec99389cd\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1230974\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xb6d1165b4d4041e338303347d2736d5096c051d4574ff373b8f1e53218d595a1" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230974\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xb6d1165b4d4041e338303347d2736d5096c051d4574ff373b8f1e53218d595a1" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0x82820295707248917c6a030f78166c3c0e27db52f995790be543e3a97d405986\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0x3793b5be1bfcd86f66262c6c9a9bbb1ac41ab8700c1767bf11a6986160272469\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0xb6d1165b4d4041e338303347d2736d5096c051d4574ff373b8f1e53218d595a1\"},\"secondObjectOwner\":\"0x994d35ea34d3c335f3accc4c6bd665da7af62f805e4eb0e4e1eeef8ec99389cd\",\"splitAmount\":\"5532749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5532749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661418", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026223\",\"token\":\"0x82820295707248917c6a030f78166c3c0e27db52f995790be543e3a97d405986\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026224", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026225\",\"token\":\"0xcfc73dc96b3a6762c4ac7ade3e4c8ff11bf1ab10bcd97719145666f97176a87c\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0xcfc73dc96b3a6762c4ac7ade3e4c8ff11bf1ab10bcd97719145666f97176a87c" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0xcfc73dc96b3a6762c4ac7ade3e4c8ff11bf1ab10bcd97719145666f97176a87c\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235353330373439227d\",\"inscription_id\":\"1230975\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xcfc73dc96b3a6762c4ac7ade3e4c8ff11bf1ab10bcd97719145666f97176a87c" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230975\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xcfc73dc96b3a6762c4ac7ade3e4c8ff11bf1ab10bcd97719145666f97176a87c" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5530749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026225", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026226\",\"token\":\"0x9ed7b1196bbbc8e0815d72c7dbe93d396e237fb57a98fabbe6cd2f83db354316\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x9ed7b1196bbbc8e0815d72c7dbe93d396e237fb57a98fabbe6cd2f83db354316" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x9ed7b1196bbbc8e0815d72c7dbe93d396e237fb57a98fabbe6cd2f83db354316\",\"to\":\"0xacf0abaeace749e6f1ecbc51ca44f990e700dad43decd207177ece212384afb3\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1230976\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x9ed7b1196bbbc8e0815d72c7dbe93d396e237fb57a98fabbe6cd2f83db354316" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230976\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x9ed7b1196bbbc8e0815d72c7dbe93d396e237fb57a98fabbe6cd2f83db354316" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0xcfc73dc96b3a6762c4ac7ade3e4c8ff11bf1ab10bcd97719145666f97176a87c\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0x82820295707248917c6a030f78166c3c0e27db52f995790be543e3a97d405986\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0x9ed7b1196bbbc8e0815d72c7dbe93d396e237fb57a98fabbe6cd2f83db354316\"},\"secondObjectOwner\":\"0xacf0abaeace749e6f1ecbc51ca44f990e700dad43decd207177ece212384afb3\",\"splitAmount\":\"5531749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5531749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661419", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026225\",\"token\":\"0xcfc73dc96b3a6762c4ac7ade3e4c8ff11bf1ab10bcd97719145666f97176a87c\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026226", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026227\",\"token\":\"0xc7d06edb39c322cf18cdc5d3c3e465d5252bfc855bbb75eb368018dfa5e99799\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0xc7d06edb39c322cf18cdc5d3c3e465d5252bfc855bbb75eb368018dfa5e99799" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0xc7d06edb39c322cf18cdc5d3c3e465d5252bfc855bbb75eb368018dfa5e99799\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235353239373439227d\",\"inscription_id\":\"1230977\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xc7d06edb39c322cf18cdc5d3c3e465d5252bfc855bbb75eb368018dfa5e99799" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230977\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xc7d06edb39c322cf18cdc5d3c3e465d5252bfc855bbb75eb368018dfa5e99799" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5529749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026227", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026228\",\"token\":\"0xeeacee78de43b94dd676a66612e9dc10091646ec5f0bd5f7979f8ca3cf295f8d\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0xeeacee78de43b94dd676a66612e9dc10091646ec5f0bd5f7979f8ca3cf295f8d" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0xeeacee78de43b94dd676a66612e9dc10091646ec5f0bd5f7979f8ca3cf295f8d\",\"to\":\"0x5f1da08fcfc8ab1127b4f5b276392cf5509742a26fd30bc8fbb84e094c9b5385\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1230978\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xeeacee78de43b94dd676a66612e9dc10091646ec5f0bd5f7979f8ca3cf295f8d" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230978\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xeeacee78de43b94dd676a66612e9dc10091646ec5f0bd5f7979f8ca3cf295f8d" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0xc7d06edb39c322cf18cdc5d3c3e465d5252bfc855bbb75eb368018dfa5e99799\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0xcfc73dc96b3a6762c4ac7ade3e4c8ff11bf1ab10bcd97719145666f97176a87c\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0xeeacee78de43b94dd676a66612e9dc10091646ec5f0bd5f7979f8ca3cf295f8d\"},\"secondObjectOwner\":\"0x5f1da08fcfc8ab1127b4f5b276392cf5509742a26fd30bc8fbb84e094c9b5385\",\"splitAmount\":\"5530749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5530749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661420", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026227\",\"token\":\"0xc7d06edb39c322cf18cdc5d3c3e465d5252bfc855bbb75eb368018dfa5e99799\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026228", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026229\",\"token\":\"0xf3a7f8cea94a594d64f9789fb3dbc5befe934edba0460745fb4b9bdac1dc4f25\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0xf3a7f8cea94a594d64f9789fb3dbc5befe934edba0460745fb4b9bdac1dc4f25" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0xf3a7f8cea94a594d64f9789fb3dbc5befe934edba0460745fb4b9bdac1dc4f25\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235353238373439227d\",\"inscription_id\":\"1230979\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xf3a7f8cea94a594d64f9789fb3dbc5befe934edba0460745fb4b9bdac1dc4f25" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230979\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xf3a7f8cea94a594d64f9789fb3dbc5befe934edba0460745fb4b9bdac1dc4f25" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5528749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026229", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026230\",\"token\":\"0x9715f6e240aea8741bca1e91ea6cf87f4dc9ba5025d06a09b85146b55ec13c9f\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x9715f6e240aea8741bca1e91ea6cf87f4dc9ba5025d06a09b85146b55ec13c9f" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x9715f6e240aea8741bca1e91ea6cf87f4dc9ba5025d06a09b85146b55ec13c9f\",\"to\":\"0xcef26d0b17c49b68c8ef10fad67035866fa0c8daa31b03b902b455c5784bd73c\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1230980\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x9715f6e240aea8741bca1e91ea6cf87f4dc9ba5025d06a09b85146b55ec13c9f" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230980\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x9715f6e240aea8741bca1e91ea6cf87f4dc9ba5025d06a09b85146b55ec13c9f" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0xf3a7f8cea94a594d64f9789fb3dbc5befe934edba0460745fb4b9bdac1dc4f25\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0xc7d06edb39c322cf18cdc5d3c3e465d5252bfc855bbb75eb368018dfa5e99799\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0x9715f6e240aea8741bca1e91ea6cf87f4dc9ba5025d06a09b85146b55ec13c9f\"},\"secondObjectOwner\":\"0xcef26d0b17c49b68c8ef10fad67035866fa0c8daa31b03b902b455c5784bd73c\",\"splitAmount\":\"5529749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5529749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661421", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026229\",\"token\":\"0xf3a7f8cea94a594d64f9789fb3dbc5befe934edba0460745fb4b9bdac1dc4f25\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026230", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026231\",\"token\":\"0xc960abce41b6a3afb136f2b412520766000129d3825b5d6d017ee8f37957a865\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0xc960abce41b6a3afb136f2b412520766000129d3825b5d6d017ee8f37957a865" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0xc960abce41b6a3afb136f2b412520766000129d3825b5d6d017ee8f37957a865\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235353237373439227d\",\"inscription_id\":\"1230981\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xc960abce41b6a3afb136f2b412520766000129d3825b5d6d017ee8f37957a865" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230981\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xc960abce41b6a3afb136f2b412520766000129d3825b5d6d017ee8f37957a865" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5527749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026231", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026232\",\"token\":\"0xd24cba9f9804dc945f1331499337a69ff2e9d44d97740630b619bdea01d27551\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0xd24cba9f9804dc945f1331499337a69ff2e9d44d97740630b619bdea01d27551" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0xd24cba9f9804dc945f1331499337a69ff2e9d44d97740630b619bdea01d27551\",\"to\":\"0xf1ef8cee4952c48fcfd69a7b61e410352070e8847d24891aa964b18c6fd355f\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1230982\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xd24cba9f9804dc945f1331499337a69ff2e9d44d97740630b619bdea01d27551" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230982\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xd24cba9f9804dc945f1331499337a69ff2e9d44d97740630b619bdea01d27551" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0xc960abce41b6a3afb136f2b412520766000129d3825b5d6d017ee8f37957a865\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0xf3a7f8cea94a594d64f9789fb3dbc5befe934edba0460745fb4b9bdac1dc4f25\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0xd24cba9f9804dc945f1331499337a69ff2e9d44d97740630b619bdea01d27551\"},\"secondObjectOwner\":\"0xf1ef8cee4952c48fcfd69a7b61e410352070e8847d24891aa964b18c6fd355f\",\"splitAmount\":\"5528749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5528749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661422", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026231\",\"token\":\"0xc960abce41b6a3afb136f2b412520766000129d3825b5d6d017ee8f37957a865\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026232", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026233\",\"token\":\"0xdc322c2ee3bc6b506edeefc13ecae253c89805351bfe32628209171aa6ea37ad\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0xdc322c2ee3bc6b506edeefc13ecae253c89805351bfe32628209171aa6ea37ad" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0xdc322c2ee3bc6b506edeefc13ecae253c89805351bfe32628209171aa6ea37ad\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235353236373439227d\",\"inscription_id\":\"1230983\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xdc322c2ee3bc6b506edeefc13ecae253c89805351bfe32628209171aa6ea37ad" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230983\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xdc322c2ee3bc6b506edeefc13ecae253c89805351bfe32628209171aa6ea37ad" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5526749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026233", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026234\",\"token\":\"0x1a1b7865ecc3c0a024e2014ecc36fa912ec044f3b47dc17a788f3ba915d6da5c\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x1a1b7865ecc3c0a024e2014ecc36fa912ec044f3b47dc17a788f3ba915d6da5c" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x1a1b7865ecc3c0a024e2014ecc36fa912ec044f3b47dc17a788f3ba915d6da5c\",\"to\":\"0x865543e0879b471e3885502f99a7cda946bebdeb357f2b983271428678d1a974\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1230984\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x1a1b7865ecc3c0a024e2014ecc36fa912ec044f3b47dc17a788f3ba915d6da5c" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230984\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x1a1b7865ecc3c0a024e2014ecc36fa912ec044f3b47dc17a788f3ba915d6da5c" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0xdc322c2ee3bc6b506edeefc13ecae253c89805351bfe32628209171aa6ea37ad\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0xc960abce41b6a3afb136f2b412520766000129d3825b5d6d017ee8f37957a865\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0x1a1b7865ecc3c0a024e2014ecc36fa912ec044f3b47dc17a788f3ba915d6da5c\"},\"secondObjectOwner\":\"0x865543e0879b471e3885502f99a7cda946bebdeb357f2b983271428678d1a974\",\"splitAmount\":\"5527749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5527749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661423", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026233\",\"token\":\"0xdc322c2ee3bc6b506edeefc13ecae253c89805351bfe32628209171aa6ea37ad\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026234", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026235\",\"token\":\"0xd2ae41f8ea029c8db7f23cc3095ef3868be7aaed3a661b7f95c82e9eaef0ba0d\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0xd2ae41f8ea029c8db7f23cc3095ef3868be7aaed3a661b7f95c82e9eaef0ba0d" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0xd2ae41f8ea029c8db7f23cc3095ef3868be7aaed3a661b7f95c82e9eaef0ba0d\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235353235373439227d\",\"inscription_id\":\"1230985\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xd2ae41f8ea029c8db7f23cc3095ef3868be7aaed3a661b7f95c82e9eaef0ba0d" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230985\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xd2ae41f8ea029c8db7f23cc3095ef3868be7aaed3a661b7f95c82e9eaef0ba0d" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5525749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026235", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026236\",\"token\":\"0x734281aee1c5404e013afcd0b87d5f3817a3b75ab063db2f09ebb6179c56f8ec\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x734281aee1c5404e013afcd0b87d5f3817a3b75ab063db2f09ebb6179c56f8ec" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x734281aee1c5404e013afcd0b87d5f3817a3b75ab063db2f09ebb6179c56f8ec\",\"to\":\"0x71668083d2f250af2b55a91ab6878c2cf0d0fd987d4cffe43271f9d8c5002af0\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1230986\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x734281aee1c5404e013afcd0b87d5f3817a3b75ab063db2f09ebb6179c56f8ec" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230986\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x734281aee1c5404e013afcd0b87d5f3817a3b75ab063db2f09ebb6179c56f8ec" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0xd2ae41f8ea029c8db7f23cc3095ef3868be7aaed3a661b7f95c82e9eaef0ba0d\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0xdc322c2ee3bc6b506edeefc13ecae253c89805351bfe32628209171aa6ea37ad\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0x734281aee1c5404e013afcd0b87d5f3817a3b75ab063db2f09ebb6179c56f8ec\"},\"secondObjectOwner\":\"0x71668083d2f250af2b55a91ab6878c2cf0d0fd987d4cffe43271f9d8c5002af0\",\"splitAmount\":\"5526749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5526749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661424", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026235\",\"token\":\"0xd2ae41f8ea029c8db7f23cc3095ef3868be7aaed3a661b7f95c82e9eaef0ba0d\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026236", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026237\",\"token\":\"0x3b82687f5e8900b38b2c122ea1711f73938c8ed46fe5fb081019b288fb6bb4c\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x03b82687f5e8900b38b2c122ea1711f73938c8ed46fe5fb081019b288fb6bb4c" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x3b82687f5e8900b38b2c122ea1711f73938c8ed46fe5fb081019b288fb6bb4c\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235353234373439227d\",\"inscription_id\":\"1230987\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x03b82687f5e8900b38b2c122ea1711f73938c8ed46fe5fb081019b288fb6bb4c" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230987\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x03b82687f5e8900b38b2c122ea1711f73938c8ed46fe5fb081019b288fb6bb4c" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5524749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026237", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026238\",\"token\":\"0x62234b497f4c8232d63111ff6cf18923c8637ffc66f604f121af10678db0c472\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x62234b497f4c8232d63111ff6cf18923c8637ffc66f604f121af10678db0c472" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x62234b497f4c8232d63111ff6cf18923c8637ffc66f604f121af10678db0c472\",\"to\":\"0x4a14463ae4aa63544b4ce9ac493c4f71332264952ce33124f8c871fddce6420d\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1230988\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x62234b497f4c8232d63111ff6cf18923c8637ffc66f604f121af10678db0c472" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230988\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x62234b497f4c8232d63111ff6cf18923c8637ffc66f604f121af10678db0c472" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0x3b82687f5e8900b38b2c122ea1711f73938c8ed46fe5fb081019b288fb6bb4c\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0xd2ae41f8ea029c8db7f23cc3095ef3868be7aaed3a661b7f95c82e9eaef0ba0d\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0x62234b497f4c8232d63111ff6cf18923c8637ffc66f604f121af10678db0c472\"},\"secondObjectOwner\":\"0x4a14463ae4aa63544b4ce9ac493c4f71332264952ce33124f8c871fddce6420d\",\"splitAmount\":\"5525749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5525749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661425", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026237\",\"token\":\"0x3b82687f5e8900b38b2c122ea1711f73938c8ed46fe5fb081019b288fb6bb4c\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026238", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026239\",\"token\":\"0xae179ffaeac0374a65dba2aab0f0f78120797c43d68b8d6bddcac49f3ef719fe\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0xae179ffaeac0374a65dba2aab0f0f78120797c43d68b8d6bddcac49f3ef719fe" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0xae179ffaeac0374a65dba2aab0f0f78120797c43d68b8d6bddcac49f3ef719fe\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235353233373439227d\",\"inscription_id\":\"1230989\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xae179ffaeac0374a65dba2aab0f0f78120797c43d68b8d6bddcac49f3ef719fe" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230989\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xae179ffaeac0374a65dba2aab0f0f78120797c43d68b8d6bddcac49f3ef719fe" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5523749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026239", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026240\",\"token\":\"0xccb58fafde587d161f5dc6f8477f03d5bf5275c8beb462341ffdb1fc8e0c86a4\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0xccb58fafde587d161f5dc6f8477f03d5bf5275c8beb462341ffdb1fc8e0c86a4" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0xccb58fafde587d161f5dc6f8477f03d5bf5275c8beb462341ffdb1fc8e0c86a4\",\"to\":\"0x9f1ea0ebb5906ff67df134a977d0cbbcf5a4d5b61aefa581cb9e774f4bbbfae\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1230990\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xccb58fafde587d161f5dc6f8477f03d5bf5275c8beb462341ffdb1fc8e0c86a4" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230990\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xccb58fafde587d161f5dc6f8477f03d5bf5275c8beb462341ffdb1fc8e0c86a4" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0xae179ffaeac0374a65dba2aab0f0f78120797c43d68b8d6bddcac49f3ef719fe\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0x3b82687f5e8900b38b2c122ea1711f73938c8ed46fe5fb081019b288fb6bb4c\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0xccb58fafde587d161f5dc6f8477f03d5bf5275c8beb462341ffdb1fc8e0c86a4\"},\"secondObjectOwner\":\"0x9f1ea0ebb5906ff67df134a977d0cbbcf5a4d5b61aefa581cb9e774f4bbbfae\",\"splitAmount\":\"5524749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5524749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661426", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026239\",\"token\":\"0xae179ffaeac0374a65dba2aab0f0f78120797c43d68b8d6bddcac49f3ef719fe\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026240", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026241\",\"token\":\"0x7a2674c1d5d805d6b5ec3bba3686d187dde762ce876a474d45b6a99c7830bdfb\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x7a2674c1d5d805d6b5ec3bba3686d187dde762ce876a474d45b6a99c7830bdfb" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x7a2674c1d5d805d6b5ec3bba3686d187dde762ce876a474d45b6a99c7830bdfb\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235353232373439227d\",\"inscription_id\":\"1230991\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x7a2674c1d5d805d6b5ec3bba3686d187dde762ce876a474d45b6a99c7830bdfb" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230991\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x7a2674c1d5d805d6b5ec3bba3686d187dde762ce876a474d45b6a99c7830bdfb" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5522749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026241", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026242\",\"token\":\"0xb3fe7273d809a4ef2dab423dc922ec0dbe70c32518c97a0acf3822db67a7ea54\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0xb3fe7273d809a4ef2dab423dc922ec0dbe70c32518c97a0acf3822db67a7ea54" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0xb3fe7273d809a4ef2dab423dc922ec0dbe70c32518c97a0acf3822db67a7ea54\",\"to\":\"0x691de42dcba524d7f66dd256a1beabdb6b7ffbba3af499fdf86fb42e6c5c1f17\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1230992\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xb3fe7273d809a4ef2dab423dc922ec0dbe70c32518c97a0acf3822db67a7ea54" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230992\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xb3fe7273d809a4ef2dab423dc922ec0dbe70c32518c97a0acf3822db67a7ea54" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0x7a2674c1d5d805d6b5ec3bba3686d187dde762ce876a474d45b6a99c7830bdfb\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0xae179ffaeac0374a65dba2aab0f0f78120797c43d68b8d6bddcac49f3ef719fe\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0xb3fe7273d809a4ef2dab423dc922ec0dbe70c32518c97a0acf3822db67a7ea54\"},\"secondObjectOwner\":\"0x691de42dcba524d7f66dd256a1beabdb6b7ffbba3af499fdf86fb42e6c5c1f17\",\"splitAmount\":\"5523749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5523749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661427", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026241\",\"token\":\"0x7a2674c1d5d805d6b5ec3bba3686d187dde762ce876a474d45b6a99c7830bdfb\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026242", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026243\",\"token\":\"0x7aeff332c688fd60c5e049af98026468b0712f823051b54ae82624dac2b987d6\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x7aeff332c688fd60c5e049af98026468b0712f823051b54ae82624dac2b987d6" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x7aeff332c688fd60c5e049af98026468b0712f823051b54ae82624dac2b987d6\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235353231373439227d\",\"inscription_id\":\"1230993\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x7aeff332c688fd60c5e049af98026468b0712f823051b54ae82624dac2b987d6" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230993\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x7aeff332c688fd60c5e049af98026468b0712f823051b54ae82624dac2b987d6" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5521749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026243", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026244\",\"token\":\"0xe3c4557be5a0ea8373fa2a6aee773cb7ee6a56f757bb85e21bea9c1ee7d67be6\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0xe3c4557be5a0ea8373fa2a6aee773cb7ee6a56f757bb85e21bea9c1ee7d67be6" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0xe3c4557be5a0ea8373fa2a6aee773cb7ee6a56f757bb85e21bea9c1ee7d67be6\",\"to\":\"0x24269eb33d6105a5574677cb122038188277fd70b3025463514467273ef23bc9\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1230994\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xe3c4557be5a0ea8373fa2a6aee773cb7ee6a56f757bb85e21bea9c1ee7d67be6" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230994\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xe3c4557be5a0ea8373fa2a6aee773cb7ee6a56f757bb85e21bea9c1ee7d67be6" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0x7aeff332c688fd60c5e049af98026468b0712f823051b54ae82624dac2b987d6\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0x7a2674c1d5d805d6b5ec3bba3686d187dde762ce876a474d45b6a99c7830bdfb\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0xe3c4557be5a0ea8373fa2a6aee773cb7ee6a56f757bb85e21bea9c1ee7d67be6\"},\"secondObjectOwner\":\"0x24269eb33d6105a5574677cb122038188277fd70b3025463514467273ef23bc9\",\"splitAmount\":\"5522749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5522749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661428", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026243\",\"token\":\"0x7aeff332c688fd60c5e049af98026468b0712f823051b54ae82624dac2b987d6\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026244", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026245\",\"token\":\"0x288324a7edae3242caf98fd51be03c0a304214374ec6cd81119c89a4471ea602\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x288324a7edae3242caf98fd51be03c0a304214374ec6cd81119c89a4471ea602" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x288324a7edae3242caf98fd51be03c0a304214374ec6cd81119c89a4471ea602\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235353230373439227d\",\"inscription_id\":\"1230995\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x288324a7edae3242caf98fd51be03c0a304214374ec6cd81119c89a4471ea602" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230995\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x288324a7edae3242caf98fd51be03c0a304214374ec6cd81119c89a4471ea602" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5520749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026245", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026246\",\"token\":\"0xfa46fdae40be6a1656d6bff531ae1c1b856032af7cb1fd019339bb42ec05f3cc\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0xfa46fdae40be6a1656d6bff531ae1c1b856032af7cb1fd019339bb42ec05f3cc" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0xfa46fdae40be6a1656d6bff531ae1c1b856032af7cb1fd019339bb42ec05f3cc\",\"to\":\"0x729874141d8373532e028260a3c5633c6f4e7fc3176785c87b78b6f8203dc1fc\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1230996\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xfa46fdae40be6a1656d6bff531ae1c1b856032af7cb1fd019339bb42ec05f3cc" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230996\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xfa46fdae40be6a1656d6bff531ae1c1b856032af7cb1fd019339bb42ec05f3cc" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0x288324a7edae3242caf98fd51be03c0a304214374ec6cd81119c89a4471ea602\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0x7aeff332c688fd60c5e049af98026468b0712f823051b54ae82624dac2b987d6\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0xfa46fdae40be6a1656d6bff531ae1c1b856032af7cb1fd019339bb42ec05f3cc\"},\"secondObjectOwner\":\"0x729874141d8373532e028260a3c5633c6f4e7fc3176785c87b78b6f8203dc1fc\",\"splitAmount\":\"5521749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5521749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661429", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026245\",\"token\":\"0x288324a7edae3242caf98fd51be03c0a304214374ec6cd81119c89a4471ea602\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026246", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026247\",\"token\":\"0x72c00857d4f03c91f14a552dd0fc28f804cb639b369e10fafa522c95e38041ed\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x72c00857d4f03c91f14a552dd0fc28f804cb639b369e10fafa522c95e38041ed" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x72c00857d4f03c91f14a552dd0fc28f804cb639b369e10fafa522c95e38041ed\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235353139373439227d\",\"inscription_id\":\"1230997\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x72c00857d4f03c91f14a552dd0fc28f804cb639b369e10fafa522c95e38041ed" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230997\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x72c00857d4f03c91f14a552dd0fc28f804cb639b369e10fafa522c95e38041ed" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5519749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026247", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026248\",\"token\":\"0xba1586cfe6b7393f233b138a53d60ea62a5b183e72ca6667717944b0d3b70eb0\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0xba1586cfe6b7393f233b138a53d60ea62a5b183e72ca6667717944b0d3b70eb0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0xba1586cfe6b7393f233b138a53d60ea62a5b183e72ca6667717944b0d3b70eb0\",\"to\":\"0xc437f2272d5bee2d37ed5e29bcd321fdff6edf239e967a2c75cf4f52aaddf6ac\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1230998\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xba1586cfe6b7393f233b138a53d60ea62a5b183e72ca6667717944b0d3b70eb0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230998\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xba1586cfe6b7393f233b138a53d60ea62a5b183e72ca6667717944b0d3b70eb0" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0x72c00857d4f03c91f14a552dd0fc28f804cb639b369e10fafa522c95e38041ed\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0x288324a7edae3242caf98fd51be03c0a304214374ec6cd81119c89a4471ea602\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0xba1586cfe6b7393f233b138a53d60ea62a5b183e72ca6667717944b0d3b70eb0\"},\"secondObjectOwner\":\"0xc437f2272d5bee2d37ed5e29bcd321fdff6edf239e967a2c75cf4f52aaddf6ac\",\"splitAmount\":\"5520749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5520749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661430", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026247\",\"token\":\"0x72c00857d4f03c91f14a552dd0fc28f804cb639b369e10fafa522c95e38041ed\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026248", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026249\",\"token\":\"0x69e8f7e8be00e6008f9ab677ce6451ed8294317bc1d26d966e966c9cdd25ac8e\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x69e8f7e8be00e6008f9ab677ce6451ed8294317bc1d26d966e966c9cdd25ac8e" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x69e8f7e8be00e6008f9ab677ce6451ed8294317bc1d26d966e966c9cdd25ac8e\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235353138373439227d\",\"inscription_id\":\"1230999\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x69e8f7e8be00e6008f9ab677ce6451ed8294317bc1d26d966e966c9cdd25ac8e" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1230999\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x69e8f7e8be00e6008f9ab677ce6451ed8294317bc1d26d966e966c9cdd25ac8e" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5518749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026249", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026250\",\"token\":\"0x7b3a9da1e0e789b3825a5ca91816b47e136b43dab9ff225d27595374598085dc\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x7b3a9da1e0e789b3825a5ca91816b47e136b43dab9ff225d27595374598085dc" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x7b3a9da1e0e789b3825a5ca91816b47e136b43dab9ff225d27595374598085dc\",\"to\":\"0x6b578b8e73b5a263a3e93cdbc37b52ca3faad034d595b058a4015cb5fefe894e\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1231000\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x7b3a9da1e0e789b3825a5ca91816b47e136b43dab9ff225d27595374598085dc" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231000\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x7b3a9da1e0e789b3825a5ca91816b47e136b43dab9ff225d27595374598085dc" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0x69e8f7e8be00e6008f9ab677ce6451ed8294317bc1d26d966e966c9cdd25ac8e\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0x72c00857d4f03c91f14a552dd0fc28f804cb639b369e10fafa522c95e38041ed\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0x7b3a9da1e0e789b3825a5ca91816b47e136b43dab9ff225d27595374598085dc\"},\"secondObjectOwner\":\"0x6b578b8e73b5a263a3e93cdbc37b52ca3faad034d595b058a4015cb5fefe894e\",\"splitAmount\":\"5519749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5519749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661431", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026249\",\"token\":\"0x69e8f7e8be00e6008f9ab677ce6451ed8294317bc1d26d966e966c9cdd25ac8e\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026250", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026251\",\"token\":\"0x15dbfe329ab3aa71377fde4cfe71277a56e1b1555a1bc28ff695fac9724845db\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x15dbfe329ab3aa71377fde4cfe71277a56e1b1555a1bc28ff695fac9724845db" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x15dbfe329ab3aa71377fde4cfe71277a56e1b1555a1bc28ff695fac9724845db\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235353137373439227d\",\"inscription_id\":\"1231001\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x15dbfe329ab3aa71377fde4cfe71277a56e1b1555a1bc28ff695fac9724845db" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231001\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x15dbfe329ab3aa71377fde4cfe71277a56e1b1555a1bc28ff695fac9724845db" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5517749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026251", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026252\",\"token\":\"0x874ac0e3c97fbc78a04820077d11d72162c4fe9ceb3aa5951292504b1bb21f6a\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x874ac0e3c97fbc78a04820077d11d72162c4fe9ceb3aa5951292504b1bb21f6a" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x874ac0e3c97fbc78a04820077d11d72162c4fe9ceb3aa5951292504b1bb21f6a\",\"to\":\"0xcb3be355cc841558e455dc17fd5505ba56f2473bbbadc6a218ec350ba0037b68\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1231002\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x874ac0e3c97fbc78a04820077d11d72162c4fe9ceb3aa5951292504b1bb21f6a" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231002\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x874ac0e3c97fbc78a04820077d11d72162c4fe9ceb3aa5951292504b1bb21f6a" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0x15dbfe329ab3aa71377fde4cfe71277a56e1b1555a1bc28ff695fac9724845db\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0x69e8f7e8be00e6008f9ab677ce6451ed8294317bc1d26d966e966c9cdd25ac8e\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0x874ac0e3c97fbc78a04820077d11d72162c4fe9ceb3aa5951292504b1bb21f6a\"},\"secondObjectOwner\":\"0xcb3be355cc841558e455dc17fd5505ba56f2473bbbadc6a218ec350ba0037b68\",\"splitAmount\":\"5518749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5518749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661432", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026251\",\"token\":\"0x15dbfe329ab3aa71377fde4cfe71277a56e1b1555a1bc28ff695fac9724845db\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026252", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026253\",\"token\":\"0x60589b828bd27e56da68eb08145a36f53f537d776b2846e8430a73aec0f94908\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x60589b828bd27e56da68eb08145a36f53f537d776b2846e8430a73aec0f94908" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x60589b828bd27e56da68eb08145a36f53f537d776b2846e8430a73aec0f94908\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235353136373439227d\",\"inscription_id\":\"1231003\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x60589b828bd27e56da68eb08145a36f53f537d776b2846e8430a73aec0f94908" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231003\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x60589b828bd27e56da68eb08145a36f53f537d776b2846e8430a73aec0f94908" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5516749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026253", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026254\",\"token\":\"0xe76459c990f1e8919920ca5cfdbd418a0da4910899e83eeb9bd462ce8d61253e\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0xe76459c990f1e8919920ca5cfdbd418a0da4910899e83eeb9bd462ce8d61253e" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0xe76459c990f1e8919920ca5cfdbd418a0da4910899e83eeb9bd462ce8d61253e\",\"to\":\"0x867a55eaadbb8fe42721e51cdec85e134bd9061f0e85d76d35a5149164c19df\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1231004\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xe76459c990f1e8919920ca5cfdbd418a0da4910899e83eeb9bd462ce8d61253e" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231004\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xe76459c990f1e8919920ca5cfdbd418a0da4910899e83eeb9bd462ce8d61253e" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0x60589b828bd27e56da68eb08145a36f53f537d776b2846e8430a73aec0f94908\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0x15dbfe329ab3aa71377fde4cfe71277a56e1b1555a1bc28ff695fac9724845db\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0xe76459c990f1e8919920ca5cfdbd418a0da4910899e83eeb9bd462ce8d61253e\"},\"secondObjectOwner\":\"0x867a55eaadbb8fe42721e51cdec85e134bd9061f0e85d76d35a5149164c19df\",\"splitAmount\":\"5517749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5517749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661433", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026253\",\"token\":\"0x60589b828bd27e56da68eb08145a36f53f537d776b2846e8430a73aec0f94908\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026254", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026255\",\"token\":\"0xf04a886d0cf4b853e8ebfc1ecd9f9a223235cf5fc9ea96f99b98a12bb782fbf4\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0xf04a886d0cf4b853e8ebfc1ecd9f9a223235cf5fc9ea96f99b98a12bb782fbf4" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0xf04a886d0cf4b853e8ebfc1ecd9f9a223235cf5fc9ea96f99b98a12bb782fbf4\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235353135373439227d\",\"inscription_id\":\"1231005\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xf04a886d0cf4b853e8ebfc1ecd9f9a223235cf5fc9ea96f99b98a12bb782fbf4" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231005\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xf04a886d0cf4b853e8ebfc1ecd9f9a223235cf5fc9ea96f99b98a12bb782fbf4" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5515749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026255", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026256\",\"token\":\"0x13c0af471aa39752bb4422b1a82fa631c73e32b6c3ee34818d4fb6377dfd85e0\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x13c0af471aa39752bb4422b1a82fa631c73e32b6c3ee34818d4fb6377dfd85e0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x13c0af471aa39752bb4422b1a82fa631c73e32b6c3ee34818d4fb6377dfd85e0\",\"to\":\"0x49ea037d742dc2e5095dac4f4b0cecb1ce50d7483849f6c35f84deab611381bc\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1231006\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x13c0af471aa39752bb4422b1a82fa631c73e32b6c3ee34818d4fb6377dfd85e0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231006\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x13c0af471aa39752bb4422b1a82fa631c73e32b6c3ee34818d4fb6377dfd85e0" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0xf04a886d0cf4b853e8ebfc1ecd9f9a223235cf5fc9ea96f99b98a12bb782fbf4\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0x60589b828bd27e56da68eb08145a36f53f537d776b2846e8430a73aec0f94908\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0x13c0af471aa39752bb4422b1a82fa631c73e32b6c3ee34818d4fb6377dfd85e0\"},\"secondObjectOwner\":\"0x49ea037d742dc2e5095dac4f4b0cecb1ce50d7483849f6c35f84deab611381bc\",\"splitAmount\":\"5516749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5516749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661434", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026255\",\"token\":\"0xf04a886d0cf4b853e8ebfc1ecd9f9a223235cf5fc9ea96f99b98a12bb782fbf4\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026256", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026257\",\"token\":\"0xc5063efd6a1c0bb8e77fd6d7734803608092bdb1a94e785a77415574c98344de\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0xc5063efd6a1c0bb8e77fd6d7734803608092bdb1a94e785a77415574c98344de" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0xc5063efd6a1c0bb8e77fd6d7734803608092bdb1a94e785a77415574c98344de\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235353134373439227d\",\"inscription_id\":\"1231007\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xc5063efd6a1c0bb8e77fd6d7734803608092bdb1a94e785a77415574c98344de" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231007\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xc5063efd6a1c0bb8e77fd6d7734803608092bdb1a94e785a77415574c98344de" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5514749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026257", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026258\",\"token\":\"0x87e6185e650e6e399959aa732b1165821de468407027207f9d36bbc9b65652a5\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x87e6185e650e6e399959aa732b1165821de468407027207f9d36bbc9b65652a5" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x87e6185e650e6e399959aa732b1165821de468407027207f9d36bbc9b65652a5\",\"to\":\"0x7e9bebf86ba23f20d2cc50db10be58aa60c8cc1fef32437f340f61d0a7d27b04\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1231008\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x87e6185e650e6e399959aa732b1165821de468407027207f9d36bbc9b65652a5" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231008\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x87e6185e650e6e399959aa732b1165821de468407027207f9d36bbc9b65652a5" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0xc5063efd6a1c0bb8e77fd6d7734803608092bdb1a94e785a77415574c98344de\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0xf04a886d0cf4b853e8ebfc1ecd9f9a223235cf5fc9ea96f99b98a12bb782fbf4\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0x87e6185e650e6e399959aa732b1165821de468407027207f9d36bbc9b65652a5\"},\"secondObjectOwner\":\"0x7e9bebf86ba23f20d2cc50db10be58aa60c8cc1fef32437f340f61d0a7d27b04\",\"splitAmount\":\"5515749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5515749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661435", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026257\",\"token\":\"0xc5063efd6a1c0bb8e77fd6d7734803608092bdb1a94e785a77415574c98344de\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026258", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026259\",\"token\":\"0x60fa0e822402e60ae482aa1dc6e9030e43e89d05601c536199ffcc45dfd881cd\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x60fa0e822402e60ae482aa1dc6e9030e43e89d05601c536199ffcc45dfd881cd" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x60fa0e822402e60ae482aa1dc6e9030e43e89d05601c536199ffcc45dfd881cd\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235353133373439227d\",\"inscription_id\":\"1231009\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x60fa0e822402e60ae482aa1dc6e9030e43e89d05601c536199ffcc45dfd881cd" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231009\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x60fa0e822402e60ae482aa1dc6e9030e43e89d05601c536199ffcc45dfd881cd" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5513749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026259", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026260\",\"token\":\"0xabb748253637f38481112e13129d2f3aafb7c97082452b1f07b8c4edd265f8eb\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0xabb748253637f38481112e13129d2f3aafb7c97082452b1f07b8c4edd265f8eb" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0xabb748253637f38481112e13129d2f3aafb7c97082452b1f07b8c4edd265f8eb\",\"to\":\"0x560420d549ea03b5d5b937164088ce0dad500c4caab7c1c991a20d8ea2d49c0b\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1231010\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xabb748253637f38481112e13129d2f3aafb7c97082452b1f07b8c4edd265f8eb" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231010\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xabb748253637f38481112e13129d2f3aafb7c97082452b1f07b8c4edd265f8eb" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0x60fa0e822402e60ae482aa1dc6e9030e43e89d05601c536199ffcc45dfd881cd\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0xc5063efd6a1c0bb8e77fd6d7734803608092bdb1a94e785a77415574c98344de\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0xabb748253637f38481112e13129d2f3aafb7c97082452b1f07b8c4edd265f8eb\"},\"secondObjectOwner\":\"0x560420d549ea03b5d5b937164088ce0dad500c4caab7c1c991a20d8ea2d49c0b\",\"splitAmount\":\"5514749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5514749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661436", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026259\",\"token\":\"0x60fa0e822402e60ae482aa1dc6e9030e43e89d05601c536199ffcc45dfd881cd\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026260", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026261\",\"token\":\"0x32003eccb92de1d5aed4aec625037f4464cff162610ecdcd86b74132800d57e9\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x32003eccb92de1d5aed4aec625037f4464cff162610ecdcd86b74132800d57e9" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x32003eccb92de1d5aed4aec625037f4464cff162610ecdcd86b74132800d57e9\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235353132373439227d\",\"inscription_id\":\"1231011\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x32003eccb92de1d5aed4aec625037f4464cff162610ecdcd86b74132800d57e9" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231011\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x32003eccb92de1d5aed4aec625037f4464cff162610ecdcd86b74132800d57e9" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5512749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026261", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026262\",\"token\":\"0x46e85bb0af9710277ec1115ea000bbf433aad94da2202bd30f7fa9697f44d03c\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x46e85bb0af9710277ec1115ea000bbf433aad94da2202bd30f7fa9697f44d03c" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x46e85bb0af9710277ec1115ea000bbf433aad94da2202bd30f7fa9697f44d03c\",\"to\":\"0xb29d0ee19271066ec0ecaac0878904cdb1521b8f3cbf323bce7aabfc17ac1145\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1231012\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x46e85bb0af9710277ec1115ea000bbf433aad94da2202bd30f7fa9697f44d03c" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231012\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x46e85bb0af9710277ec1115ea000bbf433aad94da2202bd30f7fa9697f44d03c" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0x32003eccb92de1d5aed4aec625037f4464cff162610ecdcd86b74132800d57e9\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0x60fa0e822402e60ae482aa1dc6e9030e43e89d05601c536199ffcc45dfd881cd\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0x46e85bb0af9710277ec1115ea000bbf433aad94da2202bd30f7fa9697f44d03c\"},\"secondObjectOwner\":\"0xb29d0ee19271066ec0ecaac0878904cdb1521b8f3cbf323bce7aabfc17ac1145\",\"splitAmount\":\"5513749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5513749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661437", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026261\",\"token\":\"0x32003eccb92de1d5aed4aec625037f4464cff162610ecdcd86b74132800d57e9\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026262", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026263\",\"token\":\"0xe78f658055fdcc77b22cc2a062456823267644938f502e4942f44ff125113016\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0xe78f658055fdcc77b22cc2a062456823267644938f502e4942f44ff125113016" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0xe78f658055fdcc77b22cc2a062456823267644938f502e4942f44ff125113016\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235353131373439227d\",\"inscription_id\":\"1231013\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xe78f658055fdcc77b22cc2a062456823267644938f502e4942f44ff125113016" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231013\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xe78f658055fdcc77b22cc2a062456823267644938f502e4942f44ff125113016" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5511749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026263", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026264\",\"token\":\"0xceb2d925dc0eb685954398093930d3980b40db650833dbe10c54614832d71c8\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x0ceb2d925dc0eb685954398093930d3980b40db650833dbe10c54614832d71c8" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0xceb2d925dc0eb685954398093930d3980b40db650833dbe10c54614832d71c8\",\"to\":\"0x2eb29ae570cbcb6d502cd1d74c9a9091a673e1cbe049fc4fccda3fdd9b6c2205\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1231014\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x0ceb2d925dc0eb685954398093930d3980b40db650833dbe10c54614832d71c8" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231014\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x0ceb2d925dc0eb685954398093930d3980b40db650833dbe10c54614832d71c8" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0xe78f658055fdcc77b22cc2a062456823267644938f502e4942f44ff125113016\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0x32003eccb92de1d5aed4aec625037f4464cff162610ecdcd86b74132800d57e9\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0xceb2d925dc0eb685954398093930d3980b40db650833dbe10c54614832d71c8\"},\"secondObjectOwner\":\"0x2eb29ae570cbcb6d502cd1d74c9a9091a673e1cbe049fc4fccda3fdd9b6c2205\",\"splitAmount\":\"5512749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5512749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661438", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026263\",\"token\":\"0xe78f658055fdcc77b22cc2a062456823267644938f502e4942f44ff125113016\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026264", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026265\",\"token\":\"0xb3c7ba022da0a8d2246493a0dd6d056413eb170d45aa3abfacf362ec5de0489b\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0xb3c7ba022da0a8d2246493a0dd6d056413eb170d45aa3abfacf362ec5de0489b" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0xb3c7ba022da0a8d2246493a0dd6d056413eb170d45aa3abfacf362ec5de0489b\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235353130373439227d\",\"inscription_id\":\"1231015\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xb3c7ba022da0a8d2246493a0dd6d056413eb170d45aa3abfacf362ec5de0489b" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231015\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xb3c7ba022da0a8d2246493a0dd6d056413eb170d45aa3abfacf362ec5de0489b" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5510749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026265", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026266\",\"token\":\"0x34138e0f0e44d72c9454b4cba53d353bf4b77b3fa0fa0cc3b7d553fff60260bc\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x34138e0f0e44d72c9454b4cba53d353bf4b77b3fa0fa0cc3b7d553fff60260bc" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x34138e0f0e44d72c9454b4cba53d353bf4b77b3fa0fa0cc3b7d553fff60260bc\",\"to\":\"0x542d652ea6c66c22c6de862dc1df05407598b85d3c798c2c7527f71ae1b53e05\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1231016\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x34138e0f0e44d72c9454b4cba53d353bf4b77b3fa0fa0cc3b7d553fff60260bc" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231016\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x34138e0f0e44d72c9454b4cba53d353bf4b77b3fa0fa0cc3b7d553fff60260bc" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0xb3c7ba022da0a8d2246493a0dd6d056413eb170d45aa3abfacf362ec5de0489b\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0xe78f658055fdcc77b22cc2a062456823267644938f502e4942f44ff125113016\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0x34138e0f0e44d72c9454b4cba53d353bf4b77b3fa0fa0cc3b7d553fff60260bc\"},\"secondObjectOwner\":\"0x542d652ea6c66c22c6de862dc1df05407598b85d3c798c2c7527f71ae1b53e05\",\"splitAmount\":\"5511749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5511749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661439", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026265\",\"token\":\"0xb3c7ba022da0a8d2246493a0dd6d056413eb170d45aa3abfacf362ec5de0489b\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026266", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026267\",\"token\":\"0x8a863471ae57edd3e40db29266ae76700d5357707c94602449e36d617a254821\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x8a863471ae57edd3e40db29266ae76700d5357707c94602449e36d617a254821" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x8a863471ae57edd3e40db29266ae76700d5357707c94602449e36d617a254821\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235353039373439227d\",\"inscription_id\":\"1231017\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x8a863471ae57edd3e40db29266ae76700d5357707c94602449e36d617a254821" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231017\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x8a863471ae57edd3e40db29266ae76700d5357707c94602449e36d617a254821" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5509749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026267", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026268\",\"token\":\"0x8ae00aacf74d0e3a3fbc5d732442a646402bfaa558d5cef1c09b1dd0305147d2\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x8ae00aacf74d0e3a3fbc5d732442a646402bfaa558d5cef1c09b1dd0305147d2" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x8ae00aacf74d0e3a3fbc5d732442a646402bfaa558d5cef1c09b1dd0305147d2\",\"to\":\"0x6407331f7383631915f94ad2ce1251665d3d5a145945904f3035d871bfddef0a\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1231018\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x8ae00aacf74d0e3a3fbc5d732442a646402bfaa558d5cef1c09b1dd0305147d2" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231018\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x8ae00aacf74d0e3a3fbc5d732442a646402bfaa558d5cef1c09b1dd0305147d2" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0x8a863471ae57edd3e40db29266ae76700d5357707c94602449e36d617a254821\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0xb3c7ba022da0a8d2246493a0dd6d056413eb170d45aa3abfacf362ec5de0489b\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0x8ae00aacf74d0e3a3fbc5d732442a646402bfaa558d5cef1c09b1dd0305147d2\"},\"secondObjectOwner\":\"0x6407331f7383631915f94ad2ce1251665d3d5a145945904f3035d871bfddef0a\",\"splitAmount\":\"5510749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5510749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661440", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026267\",\"token\":\"0x8a863471ae57edd3e40db29266ae76700d5357707c94602449e36d617a254821\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026268", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026269\",\"token\":\"0x263788c1574a928046eadb49a867748f2756812877a8dba5f47dfed811d1826e\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x263788c1574a928046eadb49a867748f2756812877a8dba5f47dfed811d1826e" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x263788c1574a928046eadb49a867748f2756812877a8dba5f47dfed811d1826e\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235353038373439227d\",\"inscription_id\":\"1231019\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x263788c1574a928046eadb49a867748f2756812877a8dba5f47dfed811d1826e" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231019\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x263788c1574a928046eadb49a867748f2756812877a8dba5f47dfed811d1826e" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5508749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026269", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026270\",\"token\":\"0x525120cb1c3bedc064e9339a241b5760a834133074bb12f9f652884af2665590\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x525120cb1c3bedc064e9339a241b5760a834133074bb12f9f652884af2665590" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x525120cb1c3bedc064e9339a241b5760a834133074bb12f9f652884af2665590\",\"to\":\"0x22e1b108b92d05d4b3a5feb255f67529425ad29149e75da5b327ca95d0007f16\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1231020\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x525120cb1c3bedc064e9339a241b5760a834133074bb12f9f652884af2665590" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231020\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x525120cb1c3bedc064e9339a241b5760a834133074bb12f9f652884af2665590" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0x263788c1574a928046eadb49a867748f2756812877a8dba5f47dfed811d1826e\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0x8a863471ae57edd3e40db29266ae76700d5357707c94602449e36d617a254821\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0x525120cb1c3bedc064e9339a241b5760a834133074bb12f9f652884af2665590\"},\"secondObjectOwner\":\"0x22e1b108b92d05d4b3a5feb255f67529425ad29149e75da5b327ca95d0007f16\",\"splitAmount\":\"5509749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5509749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661441", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026269\",\"token\":\"0x263788c1574a928046eadb49a867748f2756812877a8dba5f47dfed811d1826e\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026270", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026271\",\"token\":\"0xbdba8dfd81e111dd3af2ce1ca5548efc2441e94737441b3758b508ae0579c26f\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0xbdba8dfd81e111dd3af2ce1ca5548efc2441e94737441b3758b508ae0579c26f" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0xbdba8dfd81e111dd3af2ce1ca5548efc2441e94737441b3758b508ae0579c26f\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235353037373439227d\",\"inscription_id\":\"1231021\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xbdba8dfd81e111dd3af2ce1ca5548efc2441e94737441b3758b508ae0579c26f" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231021\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xbdba8dfd81e111dd3af2ce1ca5548efc2441e94737441b3758b508ae0579c26f" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5507749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026271", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026272\",\"token\":\"0x5223ba920a1faf0c8a55cd1fb27c968dc090324c2de5d0d839a2aee7a73cd0a8\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x5223ba920a1faf0c8a55cd1fb27c968dc090324c2de5d0d839a2aee7a73cd0a8" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x5223ba920a1faf0c8a55cd1fb27c968dc090324c2de5d0d839a2aee7a73cd0a8\",\"to\":\"0x4000743592308691850cb40d2d0a0667f1d4e97e22acad70c6744fb2f4742c4e\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1231022\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x5223ba920a1faf0c8a55cd1fb27c968dc090324c2de5d0d839a2aee7a73cd0a8" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231022\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x5223ba920a1faf0c8a55cd1fb27c968dc090324c2de5d0d839a2aee7a73cd0a8" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0xbdba8dfd81e111dd3af2ce1ca5548efc2441e94737441b3758b508ae0579c26f\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0x263788c1574a928046eadb49a867748f2756812877a8dba5f47dfed811d1826e\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0x5223ba920a1faf0c8a55cd1fb27c968dc090324c2de5d0d839a2aee7a73cd0a8\"},\"secondObjectOwner\":\"0x4000743592308691850cb40d2d0a0667f1d4e97e22acad70c6744fb2f4742c4e\",\"splitAmount\":\"5508749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5508749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661442", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026271\",\"token\":\"0xbdba8dfd81e111dd3af2ce1ca5548efc2441e94737441b3758b508ae0579c26f\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026272", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026273\",\"token\":\"0xe816d7f8438a3a0ebd6fbc68e734adabfc09c109b95f315a0b213875248862ef\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0xe816d7f8438a3a0ebd6fbc68e734adabfc09c109b95f315a0b213875248862ef" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0xe816d7f8438a3a0ebd6fbc68e734adabfc09c109b95f315a0b213875248862ef\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235353036373439227d\",\"inscription_id\":\"1231023\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xe816d7f8438a3a0ebd6fbc68e734adabfc09c109b95f315a0b213875248862ef" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231023\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xe816d7f8438a3a0ebd6fbc68e734adabfc09c109b95f315a0b213875248862ef" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5506749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026273", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026274\",\"token\":\"0xf10f94e28626986da118788660b2152d00084f1a56c92c4b81625130fed86b92\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0xf10f94e28626986da118788660b2152d00084f1a56c92c4b81625130fed86b92" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0xf10f94e28626986da118788660b2152d00084f1a56c92c4b81625130fed86b92\",\"to\":\"0xd55040c9e32f871e8f8e4d71d06e17d373a894f312f49e75d90b6db22129971c\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1231024\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xf10f94e28626986da118788660b2152d00084f1a56c92c4b81625130fed86b92" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231024\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xf10f94e28626986da118788660b2152d00084f1a56c92c4b81625130fed86b92" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0xe816d7f8438a3a0ebd6fbc68e734adabfc09c109b95f315a0b213875248862ef\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0xbdba8dfd81e111dd3af2ce1ca5548efc2441e94737441b3758b508ae0579c26f\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0xf10f94e28626986da118788660b2152d00084f1a56c92c4b81625130fed86b92\"},\"secondObjectOwner\":\"0xd55040c9e32f871e8f8e4d71d06e17d373a894f312f49e75d90b6db22129971c\",\"splitAmount\":\"5507749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5507749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661443", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026273\",\"token\":\"0xe816d7f8438a3a0ebd6fbc68e734adabfc09c109b95f315a0b213875248862ef\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026274", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026275\",\"token\":\"0x844ced43be60f0f4e6183936d48adc9da46275c6896a6680d7106985b5f34fea\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x844ced43be60f0f4e6183936d48adc9da46275c6896a6680d7106985b5f34fea" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x844ced43be60f0f4e6183936d48adc9da46275c6896a6680d7106985b5f34fea\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235353035373439227d\",\"inscription_id\":\"1231025\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x844ced43be60f0f4e6183936d48adc9da46275c6896a6680d7106985b5f34fea" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231025\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x844ced43be60f0f4e6183936d48adc9da46275c6896a6680d7106985b5f34fea" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5505749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026275", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026276\",\"token\":\"0x557b4129606cc2b79607ef21c86388a96055877f34fa9a2d873f00391f177082\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x557b4129606cc2b79607ef21c86388a96055877f34fa9a2d873f00391f177082" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x557b4129606cc2b79607ef21c86388a96055877f34fa9a2d873f00391f177082\",\"to\":\"0xcc368d4ab6a0352ea3bb656870f3e94499a09b18ce276635d455b0a8882ee1f0\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1231026\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x557b4129606cc2b79607ef21c86388a96055877f34fa9a2d873f00391f177082" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231026\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x557b4129606cc2b79607ef21c86388a96055877f34fa9a2d873f00391f177082" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0x844ced43be60f0f4e6183936d48adc9da46275c6896a6680d7106985b5f34fea\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0xe816d7f8438a3a0ebd6fbc68e734adabfc09c109b95f315a0b213875248862ef\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0x557b4129606cc2b79607ef21c86388a96055877f34fa9a2d873f00391f177082\"},\"secondObjectOwner\":\"0xcc368d4ab6a0352ea3bb656870f3e94499a09b18ce276635d455b0a8882ee1f0\",\"splitAmount\":\"5506749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5506749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661444", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026275\",\"token\":\"0x844ced43be60f0f4e6183936d48adc9da46275c6896a6680d7106985b5f34fea\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026276", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026277\",\"token\":\"0x56990b119164212a3d7c378a6e52d313bbd1ae296b65294e81bad879b5353ab7\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x56990b119164212a3d7c378a6e52d313bbd1ae296b65294e81bad879b5353ab7" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x56990b119164212a3d7c378a6e52d313bbd1ae296b65294e81bad879b5353ab7\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235353034373439227d\",\"inscription_id\":\"1231027\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x56990b119164212a3d7c378a6e52d313bbd1ae296b65294e81bad879b5353ab7" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231027\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x56990b119164212a3d7c378a6e52d313bbd1ae296b65294e81bad879b5353ab7" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5504749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026277", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026278\",\"token\":\"0x8fd1b847669d00b505041727e3339ddec30e1cfa1fd527350e8cf6aaa74e3627\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x8fd1b847669d00b505041727e3339ddec30e1cfa1fd527350e8cf6aaa74e3627" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x8fd1b847669d00b505041727e3339ddec30e1cfa1fd527350e8cf6aaa74e3627\",\"to\":\"0x3adf023110ab268f8bb0b8a19baecbc7bca0121faabd64712c6a48de13a99246\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1231028\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x8fd1b847669d00b505041727e3339ddec30e1cfa1fd527350e8cf6aaa74e3627" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231028\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x8fd1b847669d00b505041727e3339ddec30e1cfa1fd527350e8cf6aaa74e3627" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0x56990b119164212a3d7c378a6e52d313bbd1ae296b65294e81bad879b5353ab7\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0x844ced43be60f0f4e6183936d48adc9da46275c6896a6680d7106985b5f34fea\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0x8fd1b847669d00b505041727e3339ddec30e1cfa1fd527350e8cf6aaa74e3627\"},\"secondObjectOwner\":\"0x3adf023110ab268f8bb0b8a19baecbc7bca0121faabd64712c6a48de13a99246\",\"splitAmount\":\"5505749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5505749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661445", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026277\",\"token\":\"0x56990b119164212a3d7c378a6e52d313bbd1ae296b65294e81bad879b5353ab7\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026278", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026279\",\"token\":\"0x234ff1e27d419efbea7c5e3de452e374c5a087da980757546144ca0c75a81994\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x234ff1e27d419efbea7c5e3de452e374c5a087da980757546144ca0c75a81994" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x234ff1e27d419efbea7c5e3de452e374c5a087da980757546144ca0c75a81994\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235353033373439227d\",\"inscription_id\":\"1231029\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x234ff1e27d419efbea7c5e3de452e374c5a087da980757546144ca0c75a81994" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231029\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x234ff1e27d419efbea7c5e3de452e374c5a087da980757546144ca0c75a81994" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5503749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026279", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026280\",\"token\":\"0xdb8b24260c793665c7fbc1c1d0a3d18d14a937550d8c4154217f804a9519f62f\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0xdb8b24260c793665c7fbc1c1d0a3d18d14a937550d8c4154217f804a9519f62f" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0xdb8b24260c793665c7fbc1c1d0a3d18d14a937550d8c4154217f804a9519f62f\",\"to\":\"0x6d2d0d956f10351c230e5cb8386c0c77f6af9666f9f04e23db564c492b3edf7e\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1231030\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xdb8b24260c793665c7fbc1c1d0a3d18d14a937550d8c4154217f804a9519f62f" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231030\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xdb8b24260c793665c7fbc1c1d0a3d18d14a937550d8c4154217f804a9519f62f" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0x234ff1e27d419efbea7c5e3de452e374c5a087da980757546144ca0c75a81994\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0x56990b119164212a3d7c378a6e52d313bbd1ae296b65294e81bad879b5353ab7\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0xdb8b24260c793665c7fbc1c1d0a3d18d14a937550d8c4154217f804a9519f62f\"},\"secondObjectOwner\":\"0x6d2d0d956f10351c230e5cb8386c0c77f6af9666f9f04e23db564c492b3edf7e\",\"splitAmount\":\"5504749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5504749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661446", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026279\",\"token\":\"0x234ff1e27d419efbea7c5e3de452e374c5a087da980757546144ca0c75a81994\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026280", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026281\",\"token\":\"0x19ac50c70ea6a015c4413091d4ba5107b40f2ad1b671df0037d11eac8e618ff1\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x19ac50c70ea6a015c4413091d4ba5107b40f2ad1b671df0037d11eac8e618ff1" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x19ac50c70ea6a015c4413091d4ba5107b40f2ad1b671df0037d11eac8e618ff1\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235353032373439227d\",\"inscription_id\":\"1231031\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x19ac50c70ea6a015c4413091d4ba5107b40f2ad1b671df0037d11eac8e618ff1" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231031\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x19ac50c70ea6a015c4413091d4ba5107b40f2ad1b671df0037d11eac8e618ff1" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5502749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026281", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026282\",\"token\":\"0xb8e17eb44ed8289d72af3f474f32c3882c108c93f40f7e744473ecf3511162c\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x0b8e17eb44ed8289d72af3f474f32c3882c108c93f40f7e744473ecf3511162c" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0xb8e17eb44ed8289d72af3f474f32c3882c108c93f40f7e744473ecf3511162c\",\"to\":\"0x2cbbc3d50a6cdbffbcad8429068af937f82476908a55bba7e512fd61e351bcc0\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1231032\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x0b8e17eb44ed8289d72af3f474f32c3882c108c93f40f7e744473ecf3511162c" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231032\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x0b8e17eb44ed8289d72af3f474f32c3882c108c93f40f7e744473ecf3511162c" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0x19ac50c70ea6a015c4413091d4ba5107b40f2ad1b671df0037d11eac8e618ff1\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0x234ff1e27d419efbea7c5e3de452e374c5a087da980757546144ca0c75a81994\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0xb8e17eb44ed8289d72af3f474f32c3882c108c93f40f7e744473ecf3511162c\"},\"secondObjectOwner\":\"0x2cbbc3d50a6cdbffbcad8429068af937f82476908a55bba7e512fd61e351bcc0\",\"splitAmount\":\"5503749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5503749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661447", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026281\",\"token\":\"0x19ac50c70ea6a015c4413091d4ba5107b40f2ad1b671df0037d11eac8e618ff1\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026282", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026283\",\"token\":\"0xd498af12ac8828becad680e66d321e1579fb2252439438797cc442322d19a382\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0xd498af12ac8828becad680e66d321e1579fb2252439438797cc442322d19a382" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0xd498af12ac8828becad680e66d321e1579fb2252439438797cc442322d19a382\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235353031373439227d\",\"inscription_id\":\"1231033\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xd498af12ac8828becad680e66d321e1579fb2252439438797cc442322d19a382" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231033\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xd498af12ac8828becad680e66d321e1579fb2252439438797cc442322d19a382" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5501749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026283", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026284\",\"token\":\"0x337ca4e0fd01b954ae811f72631e71779e58e7f8ed3a72f23da99a112af0499f\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x337ca4e0fd01b954ae811f72631e71779e58e7f8ed3a72f23da99a112af0499f" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x337ca4e0fd01b954ae811f72631e71779e58e7f8ed3a72f23da99a112af0499f\",\"to\":\"0xe9a2a9eba047a17ed7aea2b9a73ddaa065716e5a690c26c8728481de757a960f\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1231034\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x337ca4e0fd01b954ae811f72631e71779e58e7f8ed3a72f23da99a112af0499f" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231034\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x337ca4e0fd01b954ae811f72631e71779e58e7f8ed3a72f23da99a112af0499f" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0xd498af12ac8828becad680e66d321e1579fb2252439438797cc442322d19a382\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0x19ac50c70ea6a015c4413091d4ba5107b40f2ad1b671df0037d11eac8e618ff1\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0x337ca4e0fd01b954ae811f72631e71779e58e7f8ed3a72f23da99a112af0499f\"},\"secondObjectOwner\":\"0xe9a2a9eba047a17ed7aea2b9a73ddaa065716e5a690c26c8728481de757a960f\",\"splitAmount\":\"5502749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5502749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661448", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026283\",\"token\":\"0xd498af12ac8828becad680e66d321e1579fb2252439438797cc442322d19a382\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026284", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026285\",\"token\":\"0x65622f2cd70fca4926355abd514b5d5476947de61ec85894547cbef85c8a6431\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x65622f2cd70fca4926355abd514b5d5476947de61ec85894547cbef85c8a6431" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x65622f2cd70fca4926355abd514b5d5476947de61ec85894547cbef85c8a6431\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235353030373439227d\",\"inscription_id\":\"1231035\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x65622f2cd70fca4926355abd514b5d5476947de61ec85894547cbef85c8a6431" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231035\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x65622f2cd70fca4926355abd514b5d5476947de61ec85894547cbef85c8a6431" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5500749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026285", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026286\",\"token\":\"0xf8eac41d734d6525fa756ed371e22ed003861494d021da756847b4dafe102c75\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0xf8eac41d734d6525fa756ed371e22ed003861494d021da756847b4dafe102c75" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0xf8eac41d734d6525fa756ed371e22ed003861494d021da756847b4dafe102c75\",\"to\":\"0xf6e395f467f378f1ef9a70850ae3bbe9a6d2f988ebf5f84e818ffe81655f0708\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1231036\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xf8eac41d734d6525fa756ed371e22ed003861494d021da756847b4dafe102c75" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231036\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xf8eac41d734d6525fa756ed371e22ed003861494d021da756847b4dafe102c75" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0x65622f2cd70fca4926355abd514b5d5476947de61ec85894547cbef85c8a6431\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0xd498af12ac8828becad680e66d321e1579fb2252439438797cc442322d19a382\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0xf8eac41d734d6525fa756ed371e22ed003861494d021da756847b4dafe102c75\"},\"secondObjectOwner\":\"0xf6e395f467f378f1ef9a70850ae3bbe9a6d2f988ebf5f84e818ffe81655f0708\",\"splitAmount\":\"5501749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5501749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661449", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026285\",\"token\":\"0x65622f2cd70fca4926355abd514b5d5476947de61ec85894547cbef85c8a6431\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026286", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026287\",\"token\":\"0xe1485a72101dbac9d03035622e2876d12c6931fd7a5b7ace1338e2d71a46b9d3\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0xe1485a72101dbac9d03035622e2876d12c6931fd7a5b7ace1338e2d71a46b9d3" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0xe1485a72101dbac9d03035622e2876d12c6931fd7a5b7ace1338e2d71a46b9d3\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235343939373439227d\",\"inscription_id\":\"1231037\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xe1485a72101dbac9d03035622e2876d12c6931fd7a5b7ace1338e2d71a46b9d3" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231037\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xe1485a72101dbac9d03035622e2876d12c6931fd7a5b7ace1338e2d71a46b9d3" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5499749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026287", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026288\",\"token\":\"0x23b2e4860cfbce78c2a41a4578568bcd04d0bd61d717be6f9ef2af44222a8895\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x23b2e4860cfbce78c2a41a4578568bcd04d0bd61d717be6f9ef2af44222a8895" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x23b2e4860cfbce78c2a41a4578568bcd04d0bd61d717be6f9ef2af44222a8895\",\"to\":\"0xa9c9e6f8c15f2aee66071d9040b93e29589556f8dbef9218756d2c60173844a3\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1231038\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x23b2e4860cfbce78c2a41a4578568bcd04d0bd61d717be6f9ef2af44222a8895" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231038\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x23b2e4860cfbce78c2a41a4578568bcd04d0bd61d717be6f9ef2af44222a8895" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0xe1485a72101dbac9d03035622e2876d12c6931fd7a5b7ace1338e2d71a46b9d3\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0x65622f2cd70fca4926355abd514b5d5476947de61ec85894547cbef85c8a6431\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0x23b2e4860cfbce78c2a41a4578568bcd04d0bd61d717be6f9ef2af44222a8895\"},\"secondObjectOwner\":\"0xa9c9e6f8c15f2aee66071d9040b93e29589556f8dbef9218756d2c60173844a3\",\"splitAmount\":\"5500749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5500749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661450", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026287\",\"token\":\"0xe1485a72101dbac9d03035622e2876d12c6931fd7a5b7ace1338e2d71a46b9d3\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026288", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026289\",\"token\":\"0x6129475c1b93fbd5d1416a65544c289fda4b8027785d8d3017f00a882e5a7a\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x006129475c1b93fbd5d1416a65544c289fda4b8027785d8d3017f00a882e5a7a" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x6129475c1b93fbd5d1416a65544c289fda4b8027785d8d3017f00a882e5a7a\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235343938373439227d\",\"inscription_id\":\"1231039\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x006129475c1b93fbd5d1416a65544c289fda4b8027785d8d3017f00a882e5a7a" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231039\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x006129475c1b93fbd5d1416a65544c289fda4b8027785d8d3017f00a882e5a7a" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5498749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026289", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026290\",\"token\":\"0x3cb7020178c50606311c9d6b3ff5c3a5ed6ebba6299dd8ca8be81384cc650d68\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x3cb7020178c50606311c9d6b3ff5c3a5ed6ebba6299dd8ca8be81384cc650d68" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x3cb7020178c50606311c9d6b3ff5c3a5ed6ebba6299dd8ca8be81384cc650d68\",\"to\":\"0x4f4920eeb3335c5e0cc676fe81f20600921378dd335804ba80fde3a01e5ff24d\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1231040\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x3cb7020178c50606311c9d6b3ff5c3a5ed6ebba6299dd8ca8be81384cc650d68" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231040\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x3cb7020178c50606311c9d6b3ff5c3a5ed6ebba6299dd8ca8be81384cc650d68" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0x6129475c1b93fbd5d1416a65544c289fda4b8027785d8d3017f00a882e5a7a\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0xe1485a72101dbac9d03035622e2876d12c6931fd7a5b7ace1338e2d71a46b9d3\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0x3cb7020178c50606311c9d6b3ff5c3a5ed6ebba6299dd8ca8be81384cc650d68\"},\"secondObjectOwner\":\"0x4f4920eeb3335c5e0cc676fe81f20600921378dd335804ba80fde3a01e5ff24d\",\"splitAmount\":\"5499749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5499749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661451", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026289\",\"token\":\"0x6129475c1b93fbd5d1416a65544c289fda4b8027785d8d3017f00a882e5a7a\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026290", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026291\",\"token\":\"0x612236a78c4ad668ee39349700800d044543d5a133bca2bc8a819d87cb78e431\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x612236a78c4ad668ee39349700800d044543d5a133bca2bc8a819d87cb78e431" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x612236a78c4ad668ee39349700800d044543d5a133bca2bc8a819d87cb78e431\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235343937373439227d\",\"inscription_id\":\"1231041\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x612236a78c4ad668ee39349700800d044543d5a133bca2bc8a819d87cb78e431" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231041\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x612236a78c4ad668ee39349700800d044543d5a133bca2bc8a819d87cb78e431" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5497749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026291", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026292\",\"token\":\"0xfe51e2d795f56beea67c72d505d60403bf2a272ffbe33f67454b57abc24a9a04\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0xfe51e2d795f56beea67c72d505d60403bf2a272ffbe33f67454b57abc24a9a04" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0xfe51e2d795f56beea67c72d505d60403bf2a272ffbe33f67454b57abc24a9a04\",\"to\":\"0xe2ca02a4db5ec55bace80cf032ecffcb8d1b084a117f223b3b64be1ec8a821e2\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1231042\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xfe51e2d795f56beea67c72d505d60403bf2a272ffbe33f67454b57abc24a9a04" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231042\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xfe51e2d795f56beea67c72d505d60403bf2a272ffbe33f67454b57abc24a9a04" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0x612236a78c4ad668ee39349700800d044543d5a133bca2bc8a819d87cb78e431\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0x6129475c1b93fbd5d1416a65544c289fda4b8027785d8d3017f00a882e5a7a\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0xfe51e2d795f56beea67c72d505d60403bf2a272ffbe33f67454b57abc24a9a04\"},\"secondObjectOwner\":\"0xe2ca02a4db5ec55bace80cf032ecffcb8d1b084a117f223b3b64be1ec8a821e2\",\"splitAmount\":\"5498749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5498749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661452", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026291\",\"token\":\"0x612236a78c4ad668ee39349700800d044543d5a133bca2bc8a819d87cb78e431\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026292", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026293\",\"token\":\"0xc2d6bd4ac2da00b4af10fe0c27d6bac634d334150c6d4adfef10da312762a0c0\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0xc2d6bd4ac2da00b4af10fe0c27d6bac634d334150c6d4adfef10da312762a0c0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0xc2d6bd4ac2da00b4af10fe0c27d6bac634d334150c6d4adfef10da312762a0c0\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235343936373439227d\",\"inscription_id\":\"1231043\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xc2d6bd4ac2da00b4af10fe0c27d6bac634d334150c6d4adfef10da312762a0c0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231043\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xc2d6bd4ac2da00b4af10fe0c27d6bac634d334150c6d4adfef10da312762a0c0" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5496749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026293", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026294\",\"token\":\"0x9479e890f4e55363aecf2981fcc7d97e565c6015d05cea5e0a9dc5d7909dd21d\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x9479e890f4e55363aecf2981fcc7d97e565c6015d05cea5e0a9dc5d7909dd21d" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x9479e890f4e55363aecf2981fcc7d97e565c6015d05cea5e0a9dc5d7909dd21d\",\"to\":\"0x45f9d8ceb64213cc524905f550db59a55be9df8d4bcc918c96b786f0f59cf94d\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1231044\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x9479e890f4e55363aecf2981fcc7d97e565c6015d05cea5e0a9dc5d7909dd21d" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231044\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x9479e890f4e55363aecf2981fcc7d97e565c6015d05cea5e0a9dc5d7909dd21d" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0xc2d6bd4ac2da00b4af10fe0c27d6bac634d334150c6d4adfef10da312762a0c0\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0x612236a78c4ad668ee39349700800d044543d5a133bca2bc8a819d87cb78e431\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0x9479e890f4e55363aecf2981fcc7d97e565c6015d05cea5e0a9dc5d7909dd21d\"},\"secondObjectOwner\":\"0x45f9d8ceb64213cc524905f550db59a55be9df8d4bcc918c96b786f0f59cf94d\",\"splitAmount\":\"5497749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5497749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661453", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026293\",\"token\":\"0xc2d6bd4ac2da00b4af10fe0c27d6bac634d334150c6d4adfef10da312762a0c0\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026294", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026295\",\"token\":\"0xd7fa256353031284250611f14a349e8a7aa2907f4f6812ff89f68297c94b1589\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0xd7fa256353031284250611f14a349e8a7aa2907f4f6812ff89f68297c94b1589" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0xd7fa256353031284250611f14a349e8a7aa2907f4f6812ff89f68297c94b1589\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235343935373439227d\",\"inscription_id\":\"1231045\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xd7fa256353031284250611f14a349e8a7aa2907f4f6812ff89f68297c94b1589" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231045\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xd7fa256353031284250611f14a349e8a7aa2907f4f6812ff89f68297c94b1589" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5495749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026295", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026296\",\"token\":\"0xf5dbf004c5a427991063ca20ad9922e0ed9da1a2295cb59b6dee977bd4888dcb\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0xf5dbf004c5a427991063ca20ad9922e0ed9da1a2295cb59b6dee977bd4888dcb" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0xf5dbf004c5a427991063ca20ad9922e0ed9da1a2295cb59b6dee977bd4888dcb\",\"to\":\"0x73f0392087e47883cc3a0cab6ad383ba83c576015f6cf9d80f8a2947a653854e\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1231046\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xf5dbf004c5a427991063ca20ad9922e0ed9da1a2295cb59b6dee977bd4888dcb" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231046\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xf5dbf004c5a427991063ca20ad9922e0ed9da1a2295cb59b6dee977bd4888dcb" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0xd7fa256353031284250611f14a349e8a7aa2907f4f6812ff89f68297c94b1589\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0xc2d6bd4ac2da00b4af10fe0c27d6bac634d334150c6d4adfef10da312762a0c0\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0xf5dbf004c5a427991063ca20ad9922e0ed9da1a2295cb59b6dee977bd4888dcb\"},\"secondObjectOwner\":\"0x73f0392087e47883cc3a0cab6ad383ba83c576015f6cf9d80f8a2947a653854e\",\"splitAmount\":\"5496749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5496749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661454", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026295\",\"token\":\"0xd7fa256353031284250611f14a349e8a7aa2907f4f6812ff89f68297c94b1589\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026296", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026297\",\"token\":\"0x8b3eea43ba12c88a95b2dd8322cdb4f9366c8a38c2fc9b65bc2e663383e3b365\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x8b3eea43ba12c88a95b2dd8322cdb4f9366c8a38c2fc9b65bc2e663383e3b365" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x8b3eea43ba12c88a95b2dd8322cdb4f9366c8a38c2fc9b65bc2e663383e3b365\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235343934373439227d\",\"inscription_id\":\"1231047\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x8b3eea43ba12c88a95b2dd8322cdb4f9366c8a38c2fc9b65bc2e663383e3b365" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231047\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x8b3eea43ba12c88a95b2dd8322cdb4f9366c8a38c2fc9b65bc2e663383e3b365" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5494749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026297", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026298\",\"token\":\"0x30ef2779dacb1f7673a6b8cc89df126dd4f89cb0ca5f0c8f88af98c4e2cfd83e\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x30ef2779dacb1f7673a6b8cc89df126dd4f89cb0ca5f0c8f88af98c4e2cfd83e" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x30ef2779dacb1f7673a6b8cc89df126dd4f89cb0ca5f0c8f88af98c4e2cfd83e\",\"to\":\"0xd877e40a8aa4741b71d8d753239484c81a274bb6d843d31e69752d111636f83\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1231048\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x30ef2779dacb1f7673a6b8cc89df126dd4f89cb0ca5f0c8f88af98c4e2cfd83e" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231048\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x30ef2779dacb1f7673a6b8cc89df126dd4f89cb0ca5f0c8f88af98c4e2cfd83e" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0x8b3eea43ba12c88a95b2dd8322cdb4f9366c8a38c2fc9b65bc2e663383e3b365\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0xd7fa256353031284250611f14a349e8a7aa2907f4f6812ff89f68297c94b1589\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0x30ef2779dacb1f7673a6b8cc89df126dd4f89cb0ca5f0c8f88af98c4e2cfd83e\"},\"secondObjectOwner\":\"0xd877e40a8aa4741b71d8d753239484c81a274bb6d843d31e69752d111636f83\",\"splitAmount\":\"5495749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5495749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661455", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026297\",\"token\":\"0x8b3eea43ba12c88a95b2dd8322cdb4f9366c8a38c2fc9b65bc2e663383e3b365\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026298", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026299\",\"token\":\"0x6b17d32d01aeaaf0402482e19af92c9988586ed3869357a7c19cd88d91401839\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x6b17d32d01aeaaf0402482e19af92c9988586ed3869357a7c19cd88d91401839" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x6b17d32d01aeaaf0402482e19af92c9988586ed3869357a7c19cd88d91401839\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235343933373439227d\",\"inscription_id\":\"1231049\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x6b17d32d01aeaaf0402482e19af92c9988586ed3869357a7c19cd88d91401839" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231049\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x6b17d32d01aeaaf0402482e19af92c9988586ed3869357a7c19cd88d91401839" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5493749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026299", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026300\",\"token\":\"0xa5093bae06b13ab6738c8238cef2e702675b3be2f964fdc9829410dc177481ef\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0xa5093bae06b13ab6738c8238cef2e702675b3be2f964fdc9829410dc177481ef" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0xa5093bae06b13ab6738c8238cef2e702675b3be2f964fdc9829410dc177481ef\",\"to\":\"0x4c5f2a9dea3cd0af36495a9390efa6d362700d459f4ba2569c4c06addde36aff\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1231050\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa5093bae06b13ab6738c8238cef2e702675b3be2f964fdc9829410dc177481ef" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231050\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa5093bae06b13ab6738c8238cef2e702675b3be2f964fdc9829410dc177481ef" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0x6b17d32d01aeaaf0402482e19af92c9988586ed3869357a7c19cd88d91401839\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0x8b3eea43ba12c88a95b2dd8322cdb4f9366c8a38c2fc9b65bc2e663383e3b365\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0xa5093bae06b13ab6738c8238cef2e702675b3be2f964fdc9829410dc177481ef\"},\"secondObjectOwner\":\"0x4c5f2a9dea3cd0af36495a9390efa6d362700d459f4ba2569c4c06addde36aff\",\"splitAmount\":\"5494749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5494749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661456", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026299\",\"token\":\"0x6b17d32d01aeaaf0402482e19af92c9988586ed3869357a7c19cd88d91401839\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026300", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026301\",\"token\":\"0x6b00cc59039388ca6aa34218d9bea8330545f23504dfcc616fef6af1b669931b\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x6b00cc59039388ca6aa34218d9bea8330545f23504dfcc616fef6af1b669931b" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x6b00cc59039388ca6aa34218d9bea8330545f23504dfcc616fef6af1b669931b\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235343932373439227d\",\"inscription_id\":\"1231051\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x6b00cc59039388ca6aa34218d9bea8330545f23504dfcc616fef6af1b669931b" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231051\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x6b00cc59039388ca6aa34218d9bea8330545f23504dfcc616fef6af1b669931b" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5492749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026301", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026302\",\"token\":\"0x85d0948491e7ec44c6f3bfce1df3f12069a650ef0bee665fa649b9838719288e\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x85d0948491e7ec44c6f3bfce1df3f12069a650ef0bee665fa649b9838719288e" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x85d0948491e7ec44c6f3bfce1df3f12069a650ef0bee665fa649b9838719288e\",\"to\":\"0xc4bd716406a7002047449d9db8d92c2376abc06ce42c08482d99c5f0bf2baef9\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1231052\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x85d0948491e7ec44c6f3bfce1df3f12069a650ef0bee665fa649b9838719288e" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231052\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x85d0948491e7ec44c6f3bfce1df3f12069a650ef0bee665fa649b9838719288e" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0x6b00cc59039388ca6aa34218d9bea8330545f23504dfcc616fef6af1b669931b\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0x6b17d32d01aeaaf0402482e19af92c9988586ed3869357a7c19cd88d91401839\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0x85d0948491e7ec44c6f3bfce1df3f12069a650ef0bee665fa649b9838719288e\"},\"secondObjectOwner\":\"0xc4bd716406a7002047449d9db8d92c2376abc06ce42c08482d99c5f0bf2baef9\",\"splitAmount\":\"5493749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5493749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661457", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026301\",\"token\":\"0x6b00cc59039388ca6aa34218d9bea8330545f23504dfcc616fef6af1b669931b\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026302", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026303\",\"token\":\"0x34cf105f118a9a93f4bacc5c39da9c99c0b2f75717535ed438b3784319ec4b0d\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x34cf105f118a9a93f4bacc5c39da9c99c0b2f75717535ed438b3784319ec4b0d" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x34cf105f118a9a93f4bacc5c39da9c99c0b2f75717535ed438b3784319ec4b0d\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235343931373439227d\",\"inscription_id\":\"1231053\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x34cf105f118a9a93f4bacc5c39da9c99c0b2f75717535ed438b3784319ec4b0d" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231053\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x34cf105f118a9a93f4bacc5c39da9c99c0b2f75717535ed438b3784319ec4b0d" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5491749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026303", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026304\",\"token\":\"0x5b8d201dbd40b64e1906a76d3e9c0c9dce73fbb120c13387899d9dca1ee3cad4\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x5b8d201dbd40b64e1906a76d3e9c0c9dce73fbb120c13387899d9dca1ee3cad4" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x5b8d201dbd40b64e1906a76d3e9c0c9dce73fbb120c13387899d9dca1ee3cad4\",\"to\":\"0x639bdd0d959eb5d993dca7368e553144d3e169e233fd22253e15755413e1a90d\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1231054\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x5b8d201dbd40b64e1906a76d3e9c0c9dce73fbb120c13387899d9dca1ee3cad4" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231054\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x5b8d201dbd40b64e1906a76d3e9c0c9dce73fbb120c13387899d9dca1ee3cad4" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0x34cf105f118a9a93f4bacc5c39da9c99c0b2f75717535ed438b3784319ec4b0d\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0x6b00cc59039388ca6aa34218d9bea8330545f23504dfcc616fef6af1b669931b\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0x5b8d201dbd40b64e1906a76d3e9c0c9dce73fbb120c13387899d9dca1ee3cad4\"},\"secondObjectOwner\":\"0x639bdd0d959eb5d993dca7368e553144d3e169e233fd22253e15755413e1a90d\",\"splitAmount\":\"5492749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5492749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661458", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026303\",\"token\":\"0x34cf105f118a9a93f4bacc5c39da9c99c0b2f75717535ed438b3784319ec4b0d\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026304", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026305\",\"token\":\"0x1a91863a266e7b797caa39f5f2e49d41db075551e057932dc3f3e176a04f6177\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x1a91863a266e7b797caa39f5f2e49d41db075551e057932dc3f3e176a04f6177" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x1a91863a266e7b797caa39f5f2e49d41db075551e057932dc3f3e176a04f6177\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235343930373439227d\",\"inscription_id\":\"1231055\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x1a91863a266e7b797caa39f5f2e49d41db075551e057932dc3f3e176a04f6177" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231055\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x1a91863a266e7b797caa39f5f2e49d41db075551e057932dc3f3e176a04f6177" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5490749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026305", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026306\",\"token\":\"0x2de578b3717151696d36fdfa82ee10cecb05ce0d9ed7cb75163b6945bc86fe73\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x2de578b3717151696d36fdfa82ee10cecb05ce0d9ed7cb75163b6945bc86fe73" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x2de578b3717151696d36fdfa82ee10cecb05ce0d9ed7cb75163b6945bc86fe73\",\"to\":\"0xd72aba750652fb2703d3d38d358f3a82a0aa507d582202b62d87806b0f925cb6\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1231056\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x2de578b3717151696d36fdfa82ee10cecb05ce0d9ed7cb75163b6945bc86fe73" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231056\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x2de578b3717151696d36fdfa82ee10cecb05ce0d9ed7cb75163b6945bc86fe73" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0x1a91863a266e7b797caa39f5f2e49d41db075551e057932dc3f3e176a04f6177\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0x34cf105f118a9a93f4bacc5c39da9c99c0b2f75717535ed438b3784319ec4b0d\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0x2de578b3717151696d36fdfa82ee10cecb05ce0d9ed7cb75163b6945bc86fe73\"},\"secondObjectOwner\":\"0xd72aba750652fb2703d3d38d358f3a82a0aa507d582202b62d87806b0f925cb6\",\"splitAmount\":\"5491749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5491749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661459", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026305\",\"token\":\"0x1a91863a266e7b797caa39f5f2e49d41db075551e057932dc3f3e176a04f6177\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026306", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026307\",\"token\":\"0x7faac939ad46da09daad786f1a1e3f4cdcee5d60e78b70293ae0c208ee6fbb10\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x7faac939ad46da09daad786f1a1e3f4cdcee5d60e78b70293ae0c208ee6fbb10" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x7faac939ad46da09daad786f1a1e3f4cdcee5d60e78b70293ae0c208ee6fbb10\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235343839373439227d\",\"inscription_id\":\"1231057\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x7faac939ad46da09daad786f1a1e3f4cdcee5d60e78b70293ae0c208ee6fbb10" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231057\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x7faac939ad46da09daad786f1a1e3f4cdcee5d60e78b70293ae0c208ee6fbb10" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5489749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026307", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026308\",\"token\":\"0xa1f52634442a2dd0fd5eaf11428217ffefaae638ddb1a68d457fccb0760e48bb\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0xa1f52634442a2dd0fd5eaf11428217ffefaae638ddb1a68d457fccb0760e48bb" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0xa1f52634442a2dd0fd5eaf11428217ffefaae638ddb1a68d457fccb0760e48bb\",\"to\":\"0xabc30cdd4f37a2e1ec28639d4cf8d71b97dfff0ac7784363db4f3feac82b27fd\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1231058\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa1f52634442a2dd0fd5eaf11428217ffefaae638ddb1a68d457fccb0760e48bb" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231058\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa1f52634442a2dd0fd5eaf11428217ffefaae638ddb1a68d457fccb0760e48bb" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0x7faac939ad46da09daad786f1a1e3f4cdcee5d60e78b70293ae0c208ee6fbb10\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0x1a91863a266e7b797caa39f5f2e49d41db075551e057932dc3f3e176a04f6177\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0xa1f52634442a2dd0fd5eaf11428217ffefaae638ddb1a68d457fccb0760e48bb\"},\"secondObjectOwner\":\"0xabc30cdd4f37a2e1ec28639d4cf8d71b97dfff0ac7784363db4f3feac82b27fd\",\"splitAmount\":\"5490749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5490749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661460", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026307\",\"token\":\"0x7faac939ad46da09daad786f1a1e3f4cdcee5d60e78b70293ae0c208ee6fbb10\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026308", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026309\",\"token\":\"0x4a54629ef9fdcd2616c346c43fb5c8c18fde7f7bdf4abd728f46b8ae4aaf0644\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x4a54629ef9fdcd2616c346c43fb5c8c18fde7f7bdf4abd728f46b8ae4aaf0644" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x4a54629ef9fdcd2616c346c43fb5c8c18fde7f7bdf4abd728f46b8ae4aaf0644\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235343838373439227d\",\"inscription_id\":\"1231059\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x4a54629ef9fdcd2616c346c43fb5c8c18fde7f7bdf4abd728f46b8ae4aaf0644" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231059\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x4a54629ef9fdcd2616c346c43fb5c8c18fde7f7bdf4abd728f46b8ae4aaf0644" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5488749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026309", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026310\",\"token\":\"0xd2f9efe43f54baf581e8466954381fcec4dc234aa930312e0074be5d520bc6ba\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0xd2f9efe43f54baf581e8466954381fcec4dc234aa930312e0074be5d520bc6ba" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0xd2f9efe43f54baf581e8466954381fcec4dc234aa930312e0074be5d520bc6ba\",\"to\":\"0xc0658b27babc2bbe1005ee6e759fe8aabc8991e9fa7d5fa8cbcf0d5abbf26edf\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1231060\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xd2f9efe43f54baf581e8466954381fcec4dc234aa930312e0074be5d520bc6ba" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231060\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xd2f9efe43f54baf581e8466954381fcec4dc234aa930312e0074be5d520bc6ba" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0x4a54629ef9fdcd2616c346c43fb5c8c18fde7f7bdf4abd728f46b8ae4aaf0644\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0x7faac939ad46da09daad786f1a1e3f4cdcee5d60e78b70293ae0c208ee6fbb10\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0xd2f9efe43f54baf581e8466954381fcec4dc234aa930312e0074be5d520bc6ba\"},\"secondObjectOwner\":\"0xc0658b27babc2bbe1005ee6e759fe8aabc8991e9fa7d5fa8cbcf0d5abbf26edf\",\"splitAmount\":\"5489749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5489749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661461", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026309\",\"token\":\"0x4a54629ef9fdcd2616c346c43fb5c8c18fde7f7bdf4abd728f46b8ae4aaf0644\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026310", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026311\",\"token\":\"0xffdb425c9ea9cf7d3cb084f796879b3dd5bb24828f36bbae859e883fd3c81497\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0xffdb425c9ea9cf7d3cb084f796879b3dd5bb24828f36bbae859e883fd3c81497" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0xffdb425c9ea9cf7d3cb084f796879b3dd5bb24828f36bbae859e883fd3c81497\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235343837373439227d\",\"inscription_id\":\"1231061\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xffdb425c9ea9cf7d3cb084f796879b3dd5bb24828f36bbae859e883fd3c81497" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231061\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xffdb425c9ea9cf7d3cb084f796879b3dd5bb24828f36bbae859e883fd3c81497" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5487749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026311", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026312\",\"token\":\"0xe4dad714367d088c407cf57e70e46a0bd452f4e92963af0bb2ac9ebdb7247ef3\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0xe4dad714367d088c407cf57e70e46a0bd452f4e92963af0bb2ac9ebdb7247ef3" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0xe4dad714367d088c407cf57e70e46a0bd452f4e92963af0bb2ac9ebdb7247ef3\",\"to\":\"0x8ef7225b94b2fda8c1216ff6308cddd2ee0f1acd2b1e46c1f29f91130a24e6f6\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1231062\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xe4dad714367d088c407cf57e70e46a0bd452f4e92963af0bb2ac9ebdb7247ef3" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231062\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xe4dad714367d088c407cf57e70e46a0bd452f4e92963af0bb2ac9ebdb7247ef3" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0xffdb425c9ea9cf7d3cb084f796879b3dd5bb24828f36bbae859e883fd3c81497\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0x4a54629ef9fdcd2616c346c43fb5c8c18fde7f7bdf4abd728f46b8ae4aaf0644\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0xe4dad714367d088c407cf57e70e46a0bd452f4e92963af0bb2ac9ebdb7247ef3\"},\"secondObjectOwner\":\"0x8ef7225b94b2fda8c1216ff6308cddd2ee0f1acd2b1e46c1f29f91130a24e6f6\",\"splitAmount\":\"5488749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5488749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661462", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026311\",\"token\":\"0xffdb425c9ea9cf7d3cb084f796879b3dd5bb24828f36bbae859e883fd3c81497\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026312", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026313\",\"token\":\"0xe65de917adebec0e097c88f018814002d387860feba6f5936bad729f70540e7d\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0xe65de917adebec0e097c88f018814002d387860feba6f5936bad729f70540e7d" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0xe65de917adebec0e097c88f018814002d387860feba6f5936bad729f70540e7d\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235343836373439227d\",\"inscription_id\":\"1231063\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xe65de917adebec0e097c88f018814002d387860feba6f5936bad729f70540e7d" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231063\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xe65de917adebec0e097c88f018814002d387860feba6f5936bad729f70540e7d" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5486749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026313", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026314\",\"token\":\"0x97ecb34ec29e14647badc8e1b478d1a61f0272e3ad9cefc05534ad69a47c54aa\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x97ecb34ec29e14647badc8e1b478d1a61f0272e3ad9cefc05534ad69a47c54aa" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x97ecb34ec29e14647badc8e1b478d1a61f0272e3ad9cefc05534ad69a47c54aa\",\"to\":\"0x8aa5f576f02e267ffde7066bac4c0d9a1f1b1095c24813bf9dedcb4d3aaa9805\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1231064\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x97ecb34ec29e14647badc8e1b478d1a61f0272e3ad9cefc05534ad69a47c54aa" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231064\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x97ecb34ec29e14647badc8e1b478d1a61f0272e3ad9cefc05534ad69a47c54aa" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0xe65de917adebec0e097c88f018814002d387860feba6f5936bad729f70540e7d\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0xffdb425c9ea9cf7d3cb084f796879b3dd5bb24828f36bbae859e883fd3c81497\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0x97ecb34ec29e14647badc8e1b478d1a61f0272e3ad9cefc05534ad69a47c54aa\"},\"secondObjectOwner\":\"0x8aa5f576f02e267ffde7066bac4c0d9a1f1b1095c24813bf9dedcb4d3aaa9805\",\"splitAmount\":\"5487749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5487749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661463", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026313\",\"token\":\"0xe65de917adebec0e097c88f018814002d387860feba6f5936bad729f70540e7d\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026314", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026315\",\"token\":\"0x92320ef4cc26268c52448ed13f80902c7420295a582f9d8353a639efab4a98fe\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x92320ef4cc26268c52448ed13f80902c7420295a582f9d8353a639efab4a98fe" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x92320ef4cc26268c52448ed13f80902c7420295a582f9d8353a639efab4a98fe\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235343835373439227d\",\"inscription_id\":\"1231065\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x92320ef4cc26268c52448ed13f80902c7420295a582f9d8353a639efab4a98fe" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231065\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x92320ef4cc26268c52448ed13f80902c7420295a582f9d8353a639efab4a98fe" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5485749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026315", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026316\",\"token\":\"0x78896c69ba2cce22da89e60dc9d890e21cf20b931d756357304700c4ce74ab91\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x78896c69ba2cce22da89e60dc9d890e21cf20b931d756357304700c4ce74ab91" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x78896c69ba2cce22da89e60dc9d890e21cf20b931d756357304700c4ce74ab91\",\"to\":\"0xd6953a965b2d98f274597512e47023340d1728c39cadd949899133a840bd552e\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1231066\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x78896c69ba2cce22da89e60dc9d890e21cf20b931d756357304700c4ce74ab91" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231066\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x78896c69ba2cce22da89e60dc9d890e21cf20b931d756357304700c4ce74ab91" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0x92320ef4cc26268c52448ed13f80902c7420295a582f9d8353a639efab4a98fe\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0xe65de917adebec0e097c88f018814002d387860feba6f5936bad729f70540e7d\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0x78896c69ba2cce22da89e60dc9d890e21cf20b931d756357304700c4ce74ab91\"},\"secondObjectOwner\":\"0xd6953a965b2d98f274597512e47023340d1728c39cadd949899133a840bd552e\",\"splitAmount\":\"5486749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5486749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661464", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026315\",\"token\":\"0x92320ef4cc26268c52448ed13f80902c7420295a582f9d8353a639efab4a98fe\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026316", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026317\",\"token\":\"0x9a775284b82888f1496293ad8ba7f249a868b9ae5c2c2af5907b11fa777980b6\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x9a775284b82888f1496293ad8ba7f249a868b9ae5c2c2af5907b11fa777980b6" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x9a775284b82888f1496293ad8ba7f249a868b9ae5c2c2af5907b11fa777980b6\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235343834373439227d\",\"inscription_id\":\"1231067\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x9a775284b82888f1496293ad8ba7f249a868b9ae5c2c2af5907b11fa777980b6" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231067\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x9a775284b82888f1496293ad8ba7f249a868b9ae5c2c2af5907b11fa777980b6" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5484749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026317", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026318\",\"token\":\"0x9c9c31d0af1c1e04506d5fdc6baf36db61150d037326fb587b842013fe266ab3\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x9c9c31d0af1c1e04506d5fdc6baf36db61150d037326fb587b842013fe266ab3" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x9c9c31d0af1c1e04506d5fdc6baf36db61150d037326fb587b842013fe266ab3\",\"to\":\"0xb4221289ce8afca35c00b8599bdaf52d95357e9dc48020ac0cc00d53a3ef47b7\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1231068\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x9c9c31d0af1c1e04506d5fdc6baf36db61150d037326fb587b842013fe266ab3" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231068\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x9c9c31d0af1c1e04506d5fdc6baf36db61150d037326fb587b842013fe266ab3" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0x9a775284b82888f1496293ad8ba7f249a868b9ae5c2c2af5907b11fa777980b6\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0x92320ef4cc26268c52448ed13f80902c7420295a582f9d8353a639efab4a98fe\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0x9c9c31d0af1c1e04506d5fdc6baf36db61150d037326fb587b842013fe266ab3\"},\"secondObjectOwner\":\"0xb4221289ce8afca35c00b8599bdaf52d95357e9dc48020ac0cc00d53a3ef47b7\",\"splitAmount\":\"5485749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5485749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661465", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026317\",\"token\":\"0x9a775284b82888f1496293ad8ba7f249a868b9ae5c2c2af5907b11fa777980b6\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026318", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026319\",\"token\":\"0xabc9859915076dd5ce1f967541ef3a5cd70c202ea951f63e0f9c649f915a3f06\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0xabc9859915076dd5ce1f967541ef3a5cd70c202ea951f63e0f9c649f915a3f06" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0xabc9859915076dd5ce1f967541ef3a5cd70c202ea951f63e0f9c649f915a3f06\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235343833373439227d\",\"inscription_id\":\"1231069\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xabc9859915076dd5ce1f967541ef3a5cd70c202ea951f63e0f9c649f915a3f06" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231069\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xabc9859915076dd5ce1f967541ef3a5cd70c202ea951f63e0f9c649f915a3f06" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5483749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026319", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026320\",\"token\":\"0xd931f672347c9f958f70d28e9437975c1c72e65892f50190a9a3ee5aeb4563cd\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0xd931f672347c9f958f70d28e9437975c1c72e65892f50190a9a3ee5aeb4563cd" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0xd931f672347c9f958f70d28e9437975c1c72e65892f50190a9a3ee5aeb4563cd\",\"to\":\"0xc518191dd78f4148e02de3b088ef5d58b2f78b59ab0650fbad15d4980cd2e817\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1231070\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xd931f672347c9f958f70d28e9437975c1c72e65892f50190a9a3ee5aeb4563cd" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231070\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xd931f672347c9f958f70d28e9437975c1c72e65892f50190a9a3ee5aeb4563cd" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0xabc9859915076dd5ce1f967541ef3a5cd70c202ea951f63e0f9c649f915a3f06\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0x9a775284b82888f1496293ad8ba7f249a868b9ae5c2c2af5907b11fa777980b6\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0xd931f672347c9f958f70d28e9437975c1c72e65892f50190a9a3ee5aeb4563cd\"},\"secondObjectOwner\":\"0xc518191dd78f4148e02de3b088ef5d58b2f78b59ab0650fbad15d4980cd2e817\",\"splitAmount\":\"5484749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5484749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661466", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026319\",\"token\":\"0xabc9859915076dd5ce1f967541ef3a5cd70c202ea951f63e0f9c649f915a3f06\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026320", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026321\",\"token\":\"0x7055022905880c734be9b7eee836e88997c0cf340fb832d281a4c0a887e1d0ca\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x7055022905880c734be9b7eee836e88997c0cf340fb832d281a4c0a887e1d0ca" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x7055022905880c734be9b7eee836e88997c0cf340fb832d281a4c0a887e1d0ca\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235343832373439227d\",\"inscription_id\":\"1231071\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x7055022905880c734be9b7eee836e88997c0cf340fb832d281a4c0a887e1d0ca" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231071\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x7055022905880c734be9b7eee836e88997c0cf340fb832d281a4c0a887e1d0ca" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5482749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026321", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026322\",\"token\":\"0x9cda50a39b007ce651233294963523153c8c7bb0b05a342b1c8d9271da1f4555\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x9cda50a39b007ce651233294963523153c8c7bb0b05a342b1c8d9271da1f4555" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x9cda50a39b007ce651233294963523153c8c7bb0b05a342b1c8d9271da1f4555\",\"to\":\"0x3e7ac727239e79143d789771e2225bef7657be200a319d6010702e6881b01c61\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1231072\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x9cda50a39b007ce651233294963523153c8c7bb0b05a342b1c8d9271da1f4555" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231072\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x9cda50a39b007ce651233294963523153c8c7bb0b05a342b1c8d9271da1f4555" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0x7055022905880c734be9b7eee836e88997c0cf340fb832d281a4c0a887e1d0ca\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0xabc9859915076dd5ce1f967541ef3a5cd70c202ea951f63e0f9c649f915a3f06\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0x9cda50a39b007ce651233294963523153c8c7bb0b05a342b1c8d9271da1f4555\"},\"secondObjectOwner\":\"0x3e7ac727239e79143d789771e2225bef7657be200a319d6010702e6881b01c61\",\"splitAmount\":\"5483749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5483749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661467", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026321\",\"token\":\"0x7055022905880c734be9b7eee836e88997c0cf340fb832d281a4c0a887e1d0ca\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026322", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026323\",\"token\":\"0x294ce847b0a225a40367e991195a65c17993279b3b8535e6b3297baf1a2ea454\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x294ce847b0a225a40367e991195a65c17993279b3b8535e6b3297baf1a2ea454" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x294ce847b0a225a40367e991195a65c17993279b3b8535e6b3297baf1a2ea454\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235343831373439227d\",\"inscription_id\":\"1231073\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x294ce847b0a225a40367e991195a65c17993279b3b8535e6b3297baf1a2ea454" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231073\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x294ce847b0a225a40367e991195a65c17993279b3b8535e6b3297baf1a2ea454" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5481749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026323", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026324\",\"token\":\"0x1846f25bc3769b4d5bb697656edb09da274563b24cf25d2d4542b4773a091e69\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x1846f25bc3769b4d5bb697656edb09da274563b24cf25d2d4542b4773a091e69" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x1846f25bc3769b4d5bb697656edb09da274563b24cf25d2d4542b4773a091e69\",\"to\":\"0xd093332d8c44ca57111b2de0935e121d88d4faf83808fe5041d00f2d7ecc1284\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1231074\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x1846f25bc3769b4d5bb697656edb09da274563b24cf25d2d4542b4773a091e69" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231074\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x1846f25bc3769b4d5bb697656edb09da274563b24cf25d2d4542b4773a091e69" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0x294ce847b0a225a40367e991195a65c17993279b3b8535e6b3297baf1a2ea454\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0x7055022905880c734be9b7eee836e88997c0cf340fb832d281a4c0a887e1d0ca\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0x1846f25bc3769b4d5bb697656edb09da274563b24cf25d2d4542b4773a091e69\"},\"secondObjectOwner\":\"0xd093332d8c44ca57111b2de0935e121d88d4faf83808fe5041d00f2d7ecc1284\",\"splitAmount\":\"5482749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5482749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661468", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026323\",\"token\":\"0x294ce847b0a225a40367e991195a65c17993279b3b8535e6b3297baf1a2ea454\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026324", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026325\",\"token\":\"0xf58ba0d5c82b58923be5c8254bf3e410c6684d6b1b8b61e09f0db0605ef4c1b9\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0xf58ba0d5c82b58923be5c8254bf3e410c6684d6b1b8b61e09f0db0605ef4c1b9" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0xf58ba0d5c82b58923be5c8254bf3e410c6684d6b1b8b61e09f0db0605ef4c1b9\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235343830373439227d\",\"inscription_id\":\"1231075\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xf58ba0d5c82b58923be5c8254bf3e410c6684d6b1b8b61e09f0db0605ef4c1b9" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231075\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xf58ba0d5c82b58923be5c8254bf3e410c6684d6b1b8b61e09f0db0605ef4c1b9" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5480749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026325", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026326\",\"token\":\"0x573956f7b59bfc88d437287714b9e71d0d5f360d1c03b5fc3efaba81f21fba57\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x573956f7b59bfc88d437287714b9e71d0d5f360d1c03b5fc3efaba81f21fba57" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0x573956f7b59bfc88d437287714b9e71d0d5f360d1c03b5fc3efaba81f21fba57\",\"to\":\"0x5f7adb5adcc2654dca23f66566391972501a08237500b389adf1c5b3d8f4a311\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1231076\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x573956f7b59bfc88d437287714b9e71d0d5f360d1c03b5fc3efaba81f21fba57" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231076\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0x573956f7b59bfc88d437287714b9e71d0d5f360d1c03b5fc3efaba81f21fba57" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0xf58ba0d5c82b58923be5c8254bf3e410c6684d6b1b8b61e09f0db0605ef4c1b9\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0x294ce847b0a225a40367e991195a65c17993279b3b8535e6b3297baf1a2ea454\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0x573956f7b59bfc88d437287714b9e71d0d5f360d1c03b5fc3efaba81f21fba57\"},\"secondObjectOwner\":\"0x5f7adb5adcc2654dca23f66566391972501a08237500b389adf1c5b3d8f4a311\",\"splitAmount\":\"5481749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5481749\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "661469", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "BurnEvent" + } + }, + "typeStr": "0x4::collection::BurnEvent", + "data": "{\"index\":\"1026325\",\"token\":\"0xf58ba0d5c82b58923be5c8254bf3e410c6684d6b1b8b61e09f0db0605ef4c1b9\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026326", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026327\",\"token\":\"0xc7f1baeb3aaf93f484140333ad81bed10bf83dd0384ddaf9121c5d3d5762d69a\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0xc7f1baeb3aaf93f484140333ad81bed10bf83dd0384ddaf9121c5d3d5762d69a" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0xc7f1baeb3aaf93f484140333ad81bed10bf83dd0384ddaf9121c5d3d5762d69a\",\"to\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2235343739373439227d\",\"inscription_id\":\"1231077\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xc7f1baeb3aaf93f484140333ad81bed10bf83dd0384ddaf9121c5d3d5762d69a" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231077\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xc7f1baeb3aaf93f484140333ad81bed10bf83dd0384ddaf9121c5d3d5762d69a" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=5479749\",\"old_value\":\"\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0xa3d9ad08adf8af8dc3bd6a4bdd910d2a1cc88bd5fbedae0ddaa3e89b260a785f" + }, + "sequenceNumber": "1026327", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"1026328\",\"token\":\"0xbff3785a30eb6bdf752c7c91812a3275784ec2c5c1758a51b0e80a1b4518c731\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0xbff3785a30eb6bdf752c7c91812a3275784ec2c5c1758a51b0e80a1b4518c731" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0xadeb45c274f9f4f535afe8957a8cf9ffecbd2b79026fba6c207111136d963f14\",\"object\":\"0xbff3785a30eb6bdf752c7c91812a3275784ec2c5c1758a51b0e80a1b4518c731\",\"to\":\"0x9755b4a688c632dab562bef97854e07ed281992cb2547dec4dca7daa0061f0dc\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "inscription", + "name": "InscriptionData" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::inscription::InscriptionData", + "data": "{\"data\":\"0x7b2270223a226170742d3230222c226f70223a226d696e74222c227469636b223a2241505453222c22616d74223a2231303030227d\",\"inscription_id\":\"1231078\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xbff3785a30eb6bdf752c7c91812a3275784ec2c5c1758a51b0e80a1b4518c731" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"name\",\"new_value\":\"APTS #1231078\",\"old_value\":\"APTS\"}" + }, + { + "key": { + "creationNumber": "1125899906842625", + "accountAddress": "0xbff3785a30eb6bdf752c7c91812a3275784ec2c5c1758a51b0e80a1b4518c731" + }, + "sequenceNumber": "1", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "token", + "name": "MutationEvent" + } + }, + "typeStr": "0x4::token::MutationEvent", + "data": "{\"mutated_field_name\":\"uri\",\"new_value\":\"https://img.apt-20.com/?tick=APTS&amt=1000\",\"old_value\":\"\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d", + "module": "apts", + "name": "SplitEvent" + } + }, + "typeStr": "0x1fc2f33ab6b624e3e632ba861b755fd8e61d2c2e6cf8292e415880b4c198224d::apts::SplitEvent", + "data": "{\"firstObject\":{\"inner\":\"0xc7f1baeb3aaf93f484140333ad81bed10bf83dd0384ddaf9121c5d3d5762d69a\"},\"firstObjectOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"objects\":[{\"inner\":\"0xf58ba0d5c82b58923be5c8254bf3e410c6684d6b1b8b61e09f0db0605ef4c1b9\"}],\"objectsOwner\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"secondObject\":{\"inner\":\"0xbff3785a30eb6bdf752c7c91812a3275784ec2c5c1758a51b0e80a1b4518c731\"},\"secondObjectOwner\":\"0x9755b4a688c632dab562bef97854e07ed281992cb2547dec4dca7daa0061f0dc\",\"splitAmount\":\"5480749\",\"splitter\":\"0xceaa2564a3afa34ef1106e1576364fc5f89c96593cf939240de995d7e9fb3977\",\"totalAmount\":\"5480749\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "transaction_fee", + "name": "FeeStatement" + } + }, + "typeStr": "0x1::transaction_fee::FeeStatement", + "data": "{\"execution_gas_units\":\"738\",\"io_gas_units\":\"313\",\"storage_fee_octas\":\"13418620\",\"storage_fee_refund_octas\":\"50000\",\"total_charge_gas_units\":\"135236\"}" + } + ] + } +} \ No newline at end of file diff --git a/ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/imported_mainnet_txns/550582915_multiple_transfer_event.json b/ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/imported_mainnet_txns/550582915_multiple_transfer_event.json new file mode 100644 index 0000000000000..19553fd931b1f --- /dev/null +++ b/ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/imported_mainnet_txns/550582915_multiple_transfer_event.json @@ -0,0 +1,684 @@ +{ + "timestamp": { + "seconds": "1713006073", + "nanos": 392195000 + }, + "version": "550582915", + "info": { + "hash": "Y8sSsdDoUhRI06rYDJc4mNp+hqb3/H66esTx/OVDS/k=", + "stateChangeHash": "Q7/yfYbUuVFO6R25D+TNJD/rL8+gjvOWyL4SJIZtpw4=", + "eventRootHash": "Xuty3xKBPiRePBoPVU/13PR7BQOprs/h5ncJhL5tWzs=", + "gasUsed": "1129", + "success": true, + "vmStatus": "Executed successfully", + "accumulatorRootHash": "vYYQPG75A76TDBC2rc7gN1PaV5CI2e6xyGbhjB039WI=", + "changes": [ + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xa29064debdf40962abec633e081e173978994005b263bfd1b077052f693f5dd", + "stateKeyHash": "/9ZAn6dPJmyhtLndaQfHEWU2VzDQd4q76rc2HFpUzxU=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0x494690aa79cb6a257f55969e2a91f63c03d2dd98501b7498389bdfad6cefa5b2\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0xa29064debdf40962abec633e081e173978994005b263bfd1b077052f693f5dd\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xa29064debdf40962abec633e081e173978994005b263bfd1b077052f693f5dd", + "stateKeyHash": "/9ZAn6dPJmyhtLndaQfHEWU2VzDQd4q76rc2HFpUzxU=", + "type": { + "address": "0x4", + "module": "aptos_token", + "name": "AptosToken" + }, + "typeStr": "0x4::aptos_token::AptosToken", + "data": "{\"burn_ref\":{\"vec\":[{\"inner\":{\"vec\":[{\"self\":\"0xa29064debdf40962abec633e081e173978994005b263bfd1b077052f693f5dd\"}]},\"self\":{\"vec\":[]}}]},\"mutator_ref\":{\"vec\":[{\"self\":\"0xa29064debdf40962abec633e081e173978994005b263bfd1b077052f693f5dd\"}]},\"property_mutator_ref\":{\"self\":\"0xa29064debdf40962abec633e081e173978994005b263bfd1b077052f693f5dd\"},\"transfer_ref\":{\"vec\":[{\"self\":\"0xa29064debdf40962abec633e081e173978994005b263bfd1b077052f693f5dd\"}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xa29064debdf40962abec633e081e173978994005b263bfd1b077052f693f5dd", + "stateKeyHash": "/9ZAn6dPJmyhtLndaQfHEWU2VzDQd4q76rc2HFpUzxU=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xa29064debdf40962abec633e081e173978994005b263bfd1b077052f693f5dd", + "stateKeyHash": "/9ZAn6dPJmyhtLndaQfHEWU2VzDQd4q76rc2HFpUzxU=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0x39b61bdc5088c71bc496103af399ff79be45b9974cfd234a69beb726dd720df3\"},\"description\":\"A Commemorative NFT: Wapal X Aptos Galxe Campaign.\",\"index\":\"603559\",\"mutation_events\":{\"counter\":\"0\",\"guid\":{\"id\":{\"addr\":\"0xa29064debdf40962abec633e081e173978994005b263bfd1b077052f693f5dd\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"Make Every M🌐ve Count. #603558\",\"uri\":\"https://arweave.net/M0qCJ4i07oQli5hoq1MRBkvvwz6dGBTt4r6Wp3RhuLI/\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x305d730682a5311fbfc729a51b8eec73924b40849bff25cf9fdb4348cc0a719a", + "stateKeyHash": "HekGdoecZZ3+664GjaiK35n+1tiUAhuRe3/FwefIgfw=", + "type": { + "address": "0x1", + "module": "coin", + "name": "CoinStore", + "genericTypeParams": [ + { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "aptos_coin", + "name": "AptosCoin" + } + } + ] + }, + "typeStr": "0x1::coin::CoinStore<0x1::aptos_coin::AptosCoin>", + "data": "{\"coin\":{\"value\":\"41047895432\"},\"deposit_events\":{\"counter\":\"961313\",\"guid\":{\"id\":{\"addr\":\"0x305d730682a5311fbfc729a51b8eec73924b40849bff25cf9fdb4348cc0a719a\",\"creation_num\":\"2\"}}},\"frozen\":false,\"withdraw_events\":{\"counter\":\"13\",\"guid\":{\"id\":{\"addr\":\"0x305d730682a5311fbfc729a51b8eec73924b40849bff25cf9fdb4348cc0a719a\",\"creation_num\":\"3\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x39b61bdc5088c71bc496103af399ff79be45b9974cfd234a69beb726dd720df3", + "stateKeyHash": "T9IPmgM4xvwF4DG6KTVwnE1nysscfay1e2vVlfq2qFI=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":false,\"guid_creation_num\":\"1125899906842628\",\"owner\":\"0x810222769c2b5598e28203359d51211a895636b3c10232364d8a142400fe71a4\",\"transfer_events\":{\"counter\":\"0\",\"guid\":{\"id\":{\"addr\":\"0x39b61bdc5088c71bc496103af399ff79be45b9974cfd234a69beb726dd720df3\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x39b61bdc5088c71bc496103af399ff79be45b9974cfd234a69beb726dd720df3", + "stateKeyHash": "T9IPmgM4xvwF4DG6KTVwnE1nysscfay1e2vVlfq2qFI=", + "type": { + "address": "0x4", + "module": "aptos_token", + "name": "AptosCollection" + }, + "typeStr": "0x4::aptos_token::AptosCollection", + "data": "{\"mutable_description\":true,\"mutable_token_description\":true,\"mutable_token_name\":true,\"mutable_token_properties\":true,\"mutable_token_uri\":true,\"mutable_uri\":true,\"mutator_ref\":{\"vec\":[{\"self\":\"0x39b61bdc5088c71bc496103af399ff79be45b9974cfd234a69beb726dd720df3\"}]},\"royalty_mutator_ref\":{\"vec\":[{\"inner\":{\"self\":\"0x39b61bdc5088c71bc496103af399ff79be45b9974cfd234a69beb726dd720df3\"}}]},\"tokens_burnable_by_creator\":true,\"tokens_freezable_by_creator\":true}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x39b61bdc5088c71bc496103af399ff79be45b9974cfd234a69beb726dd720df3", + "stateKeyHash": "T9IPmgM4xvwF4DG6KTVwnE1nysscfay1e2vVlfq2qFI=", + "type": { + "address": "0x4", + "module": "collection", + "name": "Collection" + }, + "typeStr": "0x4::collection::Collection", + "data": "{\"creator\":\"0x810222769c2b5598e28203359d51211a895636b3c10232364d8a142400fe71a4\",\"description\":\"A Commemorative NFT: Wapal X Aptos Galxe Campaign.\",\"mutation_events\":{\"counter\":\"0\",\"guid\":{\"id\":{\"addr\":\"0x39b61bdc5088c71bc496103af399ff79be45b9974cfd234a69beb726dd720df3\",\"creation_num\":\"1125899906842627\"}}},\"name\":\"Make Every M🌐ve Count.\",\"uri\":\"https://arweave.net/M0qCJ4i07oQli5hoq1MRBkvvwz6dGBTt4r6Wp3RhuLI/\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x39b61bdc5088c71bc496103af399ff79be45b9974cfd234a69beb726dd720df3", + "stateKeyHash": "T9IPmgM4xvwF4DG6KTVwnE1nysscfay1e2vVlfq2qFI=", + "type": { + "address": "0x4", + "module": "collection", + "name": "FixedSupply" + }, + "typeStr": "0x4::collection::FixedSupply", + "data": "{\"burn_events\":{\"counter\":\"0\",\"guid\":{\"id\":{\"addr\":\"0x39b61bdc5088c71bc496103af399ff79be45b9974cfd234a69beb726dd720df3\",\"creation_num\":\"1125899906842625\"}}},\"current_supply\":\"603560\",\"max_supply\":\"100000000\",\"mint_events\":{\"counter\":\"603560\",\"guid\":{\"id\":{\"addr\":\"0x39b61bdc5088c71bc496103af399ff79be45b9974cfd234a69beb726dd720df3\",\"creation_num\":\"1125899906842626\"}}},\"total_minted\":\"603560\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x39b61bdc5088c71bc496103af399ff79be45b9974cfd234a69beb726dd720df3", + "stateKeyHash": "T9IPmgM4xvwF4DG6KTVwnE1nysscfay1e2vVlfq2qFI=", + "type": { + "address": "0x4", + "module": "royalty", + "name": "Royalty" + }, + "typeStr": "0x4::royalty::Royalty", + "data": "{\"denominator\":\"1000\",\"numerator\":\"40\",\"payee_address\":\"0x4973fca13d1a759ed91dbeb468975d74749eb8c5aaf7d21d67c7ea8889084ec2\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x494690aa79cb6a257f55969e2a91f63c03d2dd98501b7498389bdfad6cefa5b2", + "stateKeyHash": "BW8twoROMynZBSMbN/XZrIsIjXPTOgMk0MmjbT45sYI=", + "type": { + "address": "0x1", + "module": "coin", + "name": "CoinStore", + "genericTypeParams": [ + { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "aptos_coin", + "name": "AptosCoin" + } + } + ] + }, + "typeStr": "0x1::coin::CoinStore<0x1::aptos_coin::AptosCoin>", + "data": "{\"coin\":{\"value\":\"9859700\"},\"deposit_events\":{\"counter\":\"28\",\"guid\":{\"id\":{\"addr\":\"0x494690aa79cb6a257f55969e2a91f63c03d2dd98501b7498389bdfad6cefa5b2\",\"creation_num\":\"2\"}}},\"frozen\":false,\"withdraw_events\":{\"counter\":\"76\",\"guid\":{\"id\":{\"addr\":\"0x494690aa79cb6a257f55969e2a91f63c03d2dd98501b7498389bdfad6cefa5b2\",\"creation_num\":\"3\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x494690aa79cb6a257f55969e2a91f63c03d2dd98501b7498389bdfad6cefa5b2", + "stateKeyHash": "NjB4Y+UT3lMbQ9aJ2IjmYsvXywFjQwbXAkPcN2y3JvU=", + "type": { + "address": "0x1", + "module": "account", + "name": "Account" + }, + "typeStr": "0x1::account::Account", + "data": "{\"authentication_key\":\"0x494690aa79cb6a257f55969e2a91f63c03d2dd98501b7498389bdfad6cefa5b2\",\"coin_register_events\":{\"counter\":\"3\",\"guid\":{\"id\":{\"addr\":\"0x494690aa79cb6a257f55969e2a91f63c03d2dd98501b7498389bdfad6cefa5b2\",\"creation_num\":\"0\"}}},\"guid_creation_num\":\"17\",\"key_rotation_events\":{\"counter\":\"0\",\"guid\":{\"id\":{\"addr\":\"0x494690aa79cb6a257f55969e2a91f63c03d2dd98501b7498389bdfad6cefa5b2\",\"creation_num\":\"1\"}}},\"rotation_capability_offer\":{\"for\":{\"vec\":[]}},\"sequence_number\":\"99\",\"signer_capability_offer\":{\"for\":{\"vec\":[]}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x4973fca13d1a759ed91dbeb468975d74749eb8c5aaf7d21d67c7ea8889084ec2", + "stateKeyHash": "Q357xtB2pUfoWQH8VwLZSbcV9XhrajybRvXX0PIeW8Y=", + "type": { + "address": "0x1", + "module": "coin", + "name": "CoinStore", + "genericTypeParams": [ + { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "aptos_coin", + "name": "AptosCoin" + } + } + ] + }, + "typeStr": "0x1::coin::CoinStore<0x1::aptos_coin::AptosCoin>", + "data": "{\"coin\":{\"value\":\"1697778\"},\"deposit_events\":{\"counter\":\"829384\",\"guid\":{\"id\":{\"addr\":\"0x4973fca13d1a759ed91dbeb468975d74749eb8c5aaf7d21d67c7ea8889084ec2\",\"creation_num\":\"2\"}}},\"frozen\":false,\"withdraw_events\":{\"counter\":\"8\",\"guid\":{\"id\":{\"addr\":\"0x4973fca13d1a759ed91dbeb468975d74749eb8c5aaf7d21d67c7ea8889084ec2\",\"creation_num\":\"3\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x6547d9f1d481fdc21cd38c730c07974f2f61adb7063e76f9d9522ab91f090dac", + "stateKeyHash": "iVe8x5YvLZhhcPqtLqAtq6Rh0kYrd+cnWXM7FjIIpWc=", + "type": { + "address": "0x6547d9f1d481fdc21cd38c730c07974f2f61adb7063e76f9d9522ab91f090dac", + "module": "candymachine", + "name": "MintData" + }, + "typeStr": "0x6547d9f1d481fdc21cd38c730c07974f2f61adb7063e76f9d9522ab91f090dac::candymachine::MintData", + "data": "{\"total_apt\":\"682451987010\",\"total_mints\":\"897223\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xa79267255727285e55bc42d34134ffa2133b6983391846810d39f094fb5f1c87", + "stateKeyHash": "WPpAg+YQbThT9lgY4nOBBNXui/poc7eSGM5RP4YshW0=", + "type": { + "address": "0x6547d9f1d481fdc21cd38c730c07974f2f61adb7063e76f9d9522ab91f090dac", + "module": "candymachine", + "name": "CandyMachine" + }, + "typeStr": "0x6547d9f1d481fdc21cd38c730c07974f2f61adb7063e76f9d9522ab91f090dac::candymachine::CandyMachine", + "data": "{\"baseuri\":\"https://arweave.net/M0qCJ4i07oQli5hoq1MRBkvvwz6dGBTt4r6Wp3RhuLI/\",\"candies\":{\"bit_field\":[false],\"length\":\"1\"},\"collection_description\":\"A Commemorative NFT: Wapal X Aptos Galxe Campaign.\",\"collection_name\":\"Make Every M🌐ve Count.\",\"is_openedition\":true,\"is_sbt\":false,\"merkle_root\":\"0x\",\"minted\":\"603560\",\"paused\":false,\"presale_mint_price\":\"0\",\"presale_mint_time\":\"1706184900\",\"public_mint_limit\":\"0\",\"public_sale_mint_price\":\"0\",\"public_sale_mint_time\":\"1706184901\",\"royalty_payee_address\":\"0x4973fca13d1a759ed91dbeb468975d74749eb8c5aaf7d21d67c7ea8889084ec2\",\"royalty_points_denominator\":\"1000\",\"royalty_points_numerator\":\"40\",\"token_mutate_setting\":[false,false,false,false,false],\"total_supply\":\"100000000\",\"update_event\":{\"counter\":\"0\",\"guid\":{\"id\":{\"addr\":\"0x810222769c2b5598e28203359d51211a895636b3c10232364d8a142400fe71a4\",\"creation_num\":\"2\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xf3f53aef6048b8871a90a5ffdb29018cea3e52b10369527b7dc90461c9f25b9e", + "stateKeyHash": "9fpM3tdEU2nug+APGyd6Pk4KtROLy1W1ju0lH1Y48Ck=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842626\",\"owner\":\"0x494690aa79cb6a257f55969e2a91f63c03d2dd98501b7498389bdfad6cefa5b2\",\"transfer_events\":{\"counter\":\"1\",\"guid\":{\"id\":{\"addr\":\"0xf3f53aef6048b8871a90a5ffdb29018cea3e52b10369527b7dc90461c9f25b9e\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xf3f53aef6048b8871a90a5ffdb29018cea3e52b10369527b7dc90461c9f25b9e", + "stateKeyHash": "9fpM3tdEU2nug+APGyd6Pk4KtROLy1W1ju0lH1Y48Ck=", + "type": { + "address": "0x4", + "module": "aptos_token", + "name": "AptosToken" + }, + "typeStr": "0x4::aptos_token::AptosToken", + "data": "{\"burn_ref\":{\"vec\":[{\"inner\":{\"vec\":[{\"self\":\"0xf3f53aef6048b8871a90a5ffdb29018cea3e52b10369527b7dc90461c9f25b9e\"}]},\"self\":{\"vec\":[]}}]},\"mutator_ref\":{\"vec\":[{\"self\":\"0xf3f53aef6048b8871a90a5ffdb29018cea3e52b10369527b7dc90461c9f25b9e\"}]},\"property_mutator_ref\":{\"self\":\"0xf3f53aef6048b8871a90a5ffdb29018cea3e52b10369527b7dc90461c9f25b9e\"},\"transfer_ref\":{\"vec\":[{\"self\":\"0xf3f53aef6048b8871a90a5ffdb29018cea3e52b10369527b7dc90461c9f25b9e\"}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xf3f53aef6048b8871a90a5ffdb29018cea3e52b10369527b7dc90461c9f25b9e", + "stateKeyHash": "9fpM3tdEU2nug+APGyd6Pk4KtROLy1W1ju0lH1Y48Ck=", + "type": { + "address": "0x4", + "module": "property_map", + "name": "PropertyMap" + }, + "typeStr": "0x4::property_map::PropertyMap", + "data": "{\"inner\":{\"data\":[]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xf3f53aef6048b8871a90a5ffdb29018cea3e52b10369527b7dc90461c9f25b9e", + "stateKeyHash": "9fpM3tdEU2nug+APGyd6Pk4KtROLy1W1ju0lH1Y48Ck=", + "type": { + "address": "0x4", + "module": "token", + "name": "Token" + }, + "typeStr": "0x4::token::Token", + "data": "{\"collection\":{\"inner\":\"0x39b61bdc5088c71bc496103af399ff79be45b9974cfd234a69beb726dd720df3\"},\"description\":\"A Commemorative NFT: Wapal X Aptos Galxe Campaign.\",\"index\":\"603560\",\"mutation_events\":{\"counter\":\"0\",\"guid\":{\"id\":{\"addr\":\"0xf3f53aef6048b8871a90a5ffdb29018cea3e52b10369527b7dc90461c9f25b9e\",\"creation_num\":\"1125899906842625\"}}},\"name\":\"Make Every M🌐ve Count. #603559\",\"uri\":\"https://arweave.net/M0qCJ4i07oQli5hoq1MRBkvvwz6dGBTt4r6Wp3RhuLI/\"}" + } + }, + { + "type": "TYPE_WRITE_TABLE_ITEM", + "writeTableItem": { + "stateKeyHash": "bkso1A+YoQamUWNTCSTA3LQME0nTqpFdEItNbPwd2xk=", + "handle": "0x1b854694ae746cdbd8d44186ca4929b2b337df21d1c74633be19b2710552fdca", + "key": "0x0619dc29a0aac8fa146714058e8dd6d2d0f3bdf5f6331907bf91f3acd81e6935", + "data": { + "key": "\"0x619dc29a0aac8fa146714058e8dd6d2d0f3bdf5f6331907bf91f3acd81e6935\"", + "keyType": "address", + "value": "\"109067588981422916\"", + "valueType": "u128" + } + } + } + ] + }, + "epoch": "6609", + "blockHeight": "168569488", + "type": "TRANSACTION_TYPE_USER", + "sizeInfo": { + "transactionBytes": 272, + "eventSizeInfo": [ + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 53, + "totalBytes": 109 + }, + { + "typeTagBytes": 52, + "totalBytes": 108 + }, + { + "typeTagBytes": 53, + "totalBytes": 109 + }, + { + "typeTagBytes": 52, + "totalBytes": 108 + }, + { + "typeTagBytes": 55, + "totalBytes": 143 + }, + { + "typeTagBytes": 55, + "totalBytes": 199 + }, + { + "typeTagBytes": 53, + "totalBytes": 109 + }, + { + "typeTagBytes": 52, + "totalBytes": 108 + }, + { + "typeTagBytes": 53, + "totalBytes": 109 + }, + { + "typeTagBytes": 52, + "totalBytes": 108 + }, + { + "typeTagBytes": 63, + "totalBytes": 103 + } + ], + "writeOpSizeInfo": [ + { + "keyBytes": 87, + "valueBytes": 678 + }, + { + "keyBytes": 138, + "valueBytes": 105 + }, + { + "keyBytes": 87, + "valueBytes": 832 + }, + { + "keyBytes": 138, + "valueBytes": 105 + }, + { + "keyBytes": 84, + "valueBytes": 147 + }, + { + "keyBytes": 138, + "valueBytes": 105 + }, + { + "keyBytes": 90, + "valueBytes": 16 + }, + { + "keyBytes": 94, + "valueBytes": 314 + }, + { + "keyBytes": 87, + "valueBytes": 678 + }, + { + "keyBytes": 66, + "valueBytes": 16 + } + ] + }, + "user": { + "request": { + "sender": "0x494690aa79cb6a257f55969e2a91f63c03d2dd98501b7498389bdfad6cefa5b2", + "sequenceNumber": "98", + "maxGasAmount": "5000", + "gasUnitPrice": "100", + "expirationTimestampSecs": { + "seconds": "1713006672" + }, + "payload": { + "type": "TYPE_ENTRY_FUNCTION_PAYLOAD", + "entryFunctionPayload": { + "function": { + "module": { + "address": "0x6547d9f1d481fdc21cd38c730c07974f2f61adb7063e76f9d9522ab91f090dac", + "name": "candymachine" + }, + "name": "mint_script_many" + }, + "arguments": [ + "\"0xa79267255727285e55bc42d34134ffa2133b6983391846810d39f094fb5f1c87\"", + "\"2\"" + ], + "entryFunctionIdStr": "0x6547d9f1d481fdc21cd38c730c07974f2f61adb7063e76f9d9522ab91f090dac::candymachine::mint_script_many" + } + }, + "signature": { + "type": "TYPE_ED25519", + "ed25519": { + "publicKey": "NULQCDZGu0VJYhwRhAfeAet2CUtvXRk4HOKFAwjQYaw=", + "signature": "rvZnnIOnN2kz3HYipLBXpPJVEexdDfxGC5xLQMXcCuXzbXt1HQzF6030fMllmJNBy3LfqP59N9l8n6ROCx2YDA==" + } + } + }, + "events": [ + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0x39b61bdc5088c71bc496103af399ff79be45b9974cfd234a69beb726dd720df3" + }, + "sequenceNumber": "603558", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"603559\",\"token\":\"0xa29064debdf40962abec633e081e173978994005b263bfd1b077052f693f5dd\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0x0a29064debdf40962abec633e081e173978994005b263bfd1b077052f693f5dd" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0x810222769c2b5598e28203359d51211a895636b3c10232364d8a142400fe71a4\",\"object\":\"0xa29064debdf40962abec633e081e173978994005b263bfd1b077052f693f5dd\",\"to\":\"0x494690aa79cb6a257f55969e2a91f63c03d2dd98501b7498389bdfad6cefa5b2\"}" + }, + { + "key": { + "creationNumber": "3", + "accountAddress": "0x494690aa79cb6a257f55969e2a91f63c03d2dd98501b7498389bdfad6cefa5b2" + }, + "sequenceNumber": "72", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "coin", + "name": "WithdrawEvent" + } + }, + "typeStr": "0x1::coin::WithdrawEvent", + "data": "{\"amount\":\"0\"}" + }, + { + "key": { + "creationNumber": "2", + "accountAddress": "0x305d730682a5311fbfc729a51b8eec73924b40849bff25cf9fdb4348cc0a719a" + }, + "sequenceNumber": "961311", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "coin", + "name": "DepositEvent" + } + }, + "typeStr": "0x1::coin::DepositEvent", + "data": "{\"amount\":\"0\"}" + }, + { + "key": { + "creationNumber": "3", + "accountAddress": "0x494690aa79cb6a257f55969e2a91f63c03d2dd98501b7498389bdfad6cefa5b2" + }, + "sequenceNumber": "73", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "coin", + "name": "WithdrawEvent" + } + }, + "typeStr": "0x1::coin::WithdrawEvent", + "data": "{\"amount\":\"0\"}" + }, + { + "key": { + "creationNumber": "2", + "accountAddress": "0x4973fca13d1a759ed91dbeb468975d74749eb8c5aaf7d21d67c7ea8889084ec2" + }, + "sequenceNumber": "829382", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "coin", + "name": "DepositEvent" + } + }, + "typeStr": "0x1::coin::DepositEvent", + "data": "{\"amount\":\"0\"}" + }, + { + "key": { + "creationNumber": "1125899906842626", + "accountAddress": "0x39b61bdc5088c71bc496103af399ff79be45b9974cfd234a69beb726dd720df3" + }, + "sequenceNumber": "603559", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x4", + "module": "collection", + "name": "MintEvent" + } + }, + "typeStr": "0x4::collection::MintEvent", + "data": "{\"index\":\"603560\",\"token\":\"0xf3f53aef6048b8871a90a5ffdb29018cea3e52b10369527b7dc90461c9f25b9e\"}" + }, + { + "key": { + "creationNumber": "1125899906842624", + "accountAddress": "0xf3f53aef6048b8871a90a5ffdb29018cea3e52b10369527b7dc90461c9f25b9e" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "object", + "name": "TransferEvent" + } + }, + "typeStr": "0x1::object::TransferEvent", + "data": "{\"from\":\"0x810222769c2b5598e28203359d51211a895636b3c10232364d8a142400fe71a4\",\"object\":\"0xf3f53aef6048b8871a90a5ffdb29018cea3e52b10369527b7dc90461c9f25b9e\",\"to\":\"0x494690aa79cb6a257f55969e2a91f63c03d2dd98501b7498389bdfad6cefa5b2\"}" + }, + { + "key": { + "creationNumber": "3", + "accountAddress": "0x494690aa79cb6a257f55969e2a91f63c03d2dd98501b7498389bdfad6cefa5b2" + }, + "sequenceNumber": "74", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "coin", + "name": "WithdrawEvent" + } + }, + "typeStr": "0x1::coin::WithdrawEvent", + "data": "{\"amount\":\"0\"}" + }, + { + "key": { + "creationNumber": "2", + "accountAddress": "0x305d730682a5311fbfc729a51b8eec73924b40849bff25cf9fdb4348cc0a719a" + }, + "sequenceNumber": "961312", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "coin", + "name": "DepositEvent" + } + }, + "typeStr": "0x1::coin::DepositEvent", + "data": "{\"amount\":\"0\"}" + }, + { + "key": { + "creationNumber": "3", + "accountAddress": "0x494690aa79cb6a257f55969e2a91f63c03d2dd98501b7498389bdfad6cefa5b2" + }, + "sequenceNumber": "75", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "coin", + "name": "WithdrawEvent" + } + }, + "typeStr": "0x1::coin::WithdrawEvent", + "data": "{\"amount\":\"0\"}" + }, + { + "key": { + "creationNumber": "2", + "accountAddress": "0x4973fca13d1a759ed91dbeb468975d74749eb8c5aaf7d21d67c7ea8889084ec2" + }, + "sequenceNumber": "829383", + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "coin", + "name": "DepositEvent" + } + }, + "typeStr": "0x1::coin::DepositEvent", + "data": "{\"amount\":\"0\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "transaction_fee", + "name": "FeeStatement" + } + }, + "typeStr": "0x1::transaction_fee::FeeStatement", + "data": "{\"execution_gas_units\":\"10\",\"io_gas_units\":\"13\",\"storage_fee_octas\":\"110560\",\"storage_fee_refund_octas\":\"0\",\"total_charge_gas_units\":\"1129\"}" + } + ] + } +} \ No newline at end of file diff --git a/ecosystem/indexer-grpc/indexer-transaction-generator/imported_transactions/imported_transactions.yaml b/ecosystem/indexer-grpc/indexer-transaction-generator/imported_transactions/imported_transactions.yaml index 49b756e6c1f3f..c293dd8fd6bb6 100644 --- a/ecosystem/indexer-grpc/indexer-transaction-generator/imported_transactions/imported_transactions.yaml +++ b/ecosystem/indexer-grpc/indexer-transaction-generator/imported_transactions/imported_transactions.yaml @@ -32,6 +32,9 @@ mainnet: 999929475: 999929475_coin_and_fa_transfers 508365567: 508365567_fa_v1_events 2186504987: 2186504987_coin_store_deletion_no_event + 255894550: 255894550_storage_refund + 1737056775: 1737056775_coin_transfer_burn_event + 550582915: 550582915_multiple_transfer_event # token v2 processor 1058723093: 1058723093_token_v1_mint_withdraw_deposit_events @@ -48,6 +51,7 @@ mainnet: 967255533: 967255533_token_v2_mutation_event 578366445: 578366445_token_v2_burn_event_v2 1080786089: 1080786089_token_v2_burn_event_v1 + 445585423: 445585423_token_mint_and_burn_event # default processor 1845035942: 1845035942_default_current_table_items From 0eb273d7bbb9c55aa216bd764d512deab618b1af Mon Sep 17 00:00:00 2001 From: Teng Zhang Date: Fri, 31 Jan 2025 19:18:36 +0000 Subject: [PATCH 22/30] clean spec (#15850) --- .../doc/permissioned_signer.md | 80 ++++++++++++++++--- .../sources/permissioned_signer.spec.move | 59 +++++++------- 2 files changed, 97 insertions(+), 42 deletions(-) diff --git a/aptos-move/framework/aptos-framework/doc/permissioned_signer.md b/aptos-move/framework/aptos-framework/doc/permissioned_signer.md index 309dcb57f1fb4..8413ec1ee603c 100644 --- a/aptos-move/framework/aptos-framework/doc/permissioned_signer.md +++ b/aptos-move/framework/aptos-framework/doc/permissioned_signer.md @@ -71,6 +71,7 @@ for blind signing. - [Function `check_permission_capacity_above`](#@Specification_1_check_permission_capacity_above) - [Function `check_permission_consume`](#@Specification_1_check_permission_consume) - [Function `capacity`](#@Specification_1_capacity) + - [Function `is_permissioned_signer_impl`](#@Specification_1_is_permissioned_signer_impl) - [Function `permission_address`](#@Specification_1_permission_address) - [Function `signer_from_permissioned_handle_impl`](#@Specification_1_signer_from_permissioned_handle_impl) @@ -1629,7 +1630,7 @@ signer::address_of(master) == signer::address_of(signer_from_permissioned_handle -
pragma verify = false;
+
pragma verify = true;
 axiom forall a: GrantedPermissionHandles:
     (
         forall i in 0..len(a.active_handles):
@@ -1642,10 +1643,10 @@ signer::address_of(master) == signer::address_of(signer_from_permissioned_handle
 
 
 
-
+
 
 
-
fun spec_is_permissioned_signer(s: signer): bool;
+
fun spec_is_permissioned_signer_impl(s: signer): bool;
 
@@ -1807,8 +1808,7 @@ signer::address_of(master) == signer::address_of(signer_from_permissioned_handle -
pragma verify = false;
-pragma opaque;
+
pragma opaque;
 modifies global<PermissionStorage>(spec_permission_address(s));
 ensures [abstract] result == spec_check_permission_exists(s, perm);
 
@@ -1857,12 +1857,19 @@ signer::address_of(master) == signer::address_of(signer_from_permissioned_handle -
let permissioned_signer_addr = spec_permission_address(s);
-ensures !spec_is_permissioned_signer(s) ==> result == true;
-ensures (
-    spec_is_permissioned_signer(s)
-        && !exists<PermissionStorage>(permissioned_signer_addr)
-) ==> result == false;
+
pragma opaque;
+let permissioned_signer_addr = spec_permission_address(s);
+modifies global<PermissionStorage>(spec_permission_address(s));
+ensures [abstract] result == spec_check_permission_consume(s, threshold, perm);
+
+ + + + + + + +
fun spec_check_permission_consume<PermKey: copy + drop + store>(s: signer, threshold: u256, perm: PermKey): bool;
 
@@ -1878,6 +1885,57 @@ signer::address_of(master) == signer::address_of(signer_from_permissioned_handle +
pragma opaque;
+let permissioned_signer_addr = spec_permission_address(s);
+modifies global<PermissionStorage>(spec_permission_address(s));
+ensures [abstract] result == spec_capacity(s, perm);
+
+ + + + + + + +
fun spec_capacity<PermKey: copy + drop + store>(s: signer, perm: PermKey): Option<u256>;
+
+ + + + + +### Function `is_permissioned_signer_impl` + + +
fun is_permissioned_signer_impl(s: &signer): bool
+
+ + + + +
pragma opaque;
+ensures [abstract] result == spec_is_permissioned_signer_impl(s);
+
+ + + + + + + +
fun spec_is_permissioned_signer(s: signer): bool {
+   use std::features;
+   use std::features::PERMISSIONED_SIGNER;
+   if (!features::spec_is_enabled(PERMISSIONED_SIGNER)) {
+       false
+   } else {
+       spec_is_permissioned_signer_impl(s)
+   }
+}
+
+ + + ### Function `permission_address` diff --git a/aptos-move/framework/aptos-framework/sources/permissioned_signer.spec.move b/aptos-move/framework/aptos-framework/sources/permissioned_signer.spec.move index f09c836c66774..32a3f7fb0395a 100644 --- a/aptos-move/framework/aptos-framework/sources/permissioned_signer.spec.move +++ b/aptos-move/framework/aptos-framework/sources/permissioned_signer.spec.move @@ -1,7 +1,7 @@ spec aptos_framework::permissioned_signer { spec module { - pragma verify = false; + pragma verify = true; axiom forall a: GrantedPermissionHandles: ( forall i in 0..len(a.active_handles): @@ -11,7 +11,22 @@ spec aptos_framework::permissioned_signer { ); } - spec fun spec_is_permissioned_signer(s: signer): bool; + spec fun spec_is_permissioned_signer_impl(s: signer): bool; + + spec is_permissioned_signer_impl(s: &signer): bool { + pragma opaque; + ensures [abstract] result == spec_is_permissioned_signer_impl(s); + } + + spec fun spec_is_permissioned_signer(s: signer): bool { + use std::features; + use std::features::PERMISSIONED_SIGNER; + if (!features::spec_is_enabled(PERMISSIONED_SIGNER)) { + false + } else { + spec_is_permissioned_signer_impl(s) + } + } spec is_permissioned_signer(s: &signer): bool { pragma opaque; @@ -79,7 +94,6 @@ spec aptos_framework::permissioned_signer { let post granted_permissions = global( p.master_account_addr ); - // ensures [abstract] !vector::spec_contains(granted_permissions.active_handles, p.permissions_storage_addr); } spec revoke_permission_storage_address(s: &signer, permissions_storage_addr: address) { @@ -89,9 +103,6 @@ spec aptos_framework::permissioned_signer { spec authorize_increase( master: &signer, permissioned: &signer, capacity: u256, perm: PermKey ) { - - // use aptos_std::type_info; - // use std::bcs; pragma aborts_if_is_partial; aborts_if !spec_is_permissioned_signer(permissioned); aborts_if spec_is_permissioned_signer(master); @@ -99,20 +110,9 @@ spec aptos_framework::permissioned_signer { ensures exists( spec_permission_address(permissioned) ); - // let perms = global(permission_signer_addr).perms; - // let post post_perms = global(permission_signer_addr).perms; - // let key = Any { - // type_name: type_info::type_name>(), - // data: bcs::serialize(perm) - // }; - // ensures smart_table::spec_contains(perms, key) ==> - // smart_table::spec_get(post_perms, key) == old(smart_table::spec_get(perms, key)) + capacity; - // ensures !smart_table::spec_contains(perms, key) ==> - // smart_table::spec_get(post_perms, key) == capacity; } spec check_permission_exists(s: &signer, perm: PermKey): bool { - pragma verify = false; pragma opaque; modifies global(spec_permission_address(s)); ensures [abstract] result == spec_check_permission_exists(s, perm); @@ -120,7 +120,6 @@ spec aptos_framework::permissioned_signer { spec fun spec_check_permission_exists(s: signer, perm: PermKey): bool; - // TODO(teng): add this back later // spec fun spec_check_permission_exists(s: signer, perm: PermKey): bool { // use aptos_std::type_info; @@ -149,27 +148,25 @@ spec aptos_framework::permissioned_signer { spec_is_permissioned_signer(s) && !exists(permissioned_signer_addr) ) ==> result == false; - // ensures (spec_is_permissioned_signer(s) && exists(permissioned_signer_addr) && !smart_table::spec_contains(global(permissioned_signer_addr).perms, key)) ==> - // result == false; - // ensures (spec_is_permissioned_signer(s) && exists(permissioned_signer_addr) && smart_table::spec_contains(global(permissioned_signer_addr).perms, key)) ==> - // result == (smart_table::spec_get(global(permissioned_signer_addr).perms, key) > threshold); } spec check_permission_consume( s: &signer, threshold: u256, perm: PermKey ): bool { + pragma opaque; let permissioned_signer_addr = spec_permission_address(s); - ensures !spec_is_permissioned_signer(s) ==> result == true; - ensures ( - spec_is_permissioned_signer(s) - && !exists(permissioned_signer_addr) - ) ==> result == false; - + modifies global(spec_permission_address(s)); + ensures [abstract] result == spec_check_permission_consume(s, threshold, perm); } + spec fun spec_check_permission_consume(s: signer, threshold: u256, perm: PermKey): bool; + spec capacity(s: &signer, perm: PermKey): Option { - // let permissioned_signer_addr = signer::address_of(spec_permission_address(s)); - // ensures !exists(permissioned_signer_addr) ==> - // option::is_none(result); + pragma opaque; + let permissioned_signer_addr = spec_permission_address(s); + modifies global(spec_permission_address(s)); + ensures [abstract] result == spec_capacity(s, perm); } + + spec fun spec_capacity(s: signer, perm: PermKey): Option; } From d9655ac7ebb70bae9a280bc8335760229b0cc45f Mon Sep 17 00:00:00 2001 From: igor-aptos <110557261+igor-aptos@users.noreply.github.com> Date: Fri, 31 Jan 2025 11:20:56 -0800 Subject: [PATCH 23/30] Bump gas version on main (#15826) and update release.yaml template closer to what is used in the release, and add more details on release folder issues. Co-authored-by: Igor --- aptos-move/aptos-gas-schedule/src/ver.rs | 2 +- .../aptos-release-builder/data/release.yaml | 15 ++--- .../src/components/mod.rs | 61 +++++++++++++++---- 3 files changed, 58 insertions(+), 20 deletions(-) diff --git a/aptos-move/aptos-gas-schedule/src/ver.rs b/aptos-move/aptos-gas-schedule/src/ver.rs index 41a42ce3cbcbb..ad23e4d850b8f 100644 --- a/aptos-move/aptos-gas-schedule/src/ver.rs +++ b/aptos-move/aptos-gas-schedule/src/ver.rs @@ -72,7 +72,7 @@ /// global operations. /// - V1 /// - TBA -pub const LATEST_GAS_FEATURE_VERSION: u64 = gas_feature_versions::RELEASE_V1_26; +pub const LATEST_GAS_FEATURE_VERSION: u64 = gas_feature_versions::RELEASE_V1_27; pub mod gas_feature_versions { pub const RELEASE_V1_8: u64 = 11; diff --git a/aptos-move/aptos-release-builder/data/release.yaml b/aptos-move/aptos-release-builder/data/release.yaml index 891bece480d33..90d6dbf99dcbc 100644 --- a/aptos-move/aptos-release-builder/data/release.yaml +++ b/aptos-move/aptos-release-builder/data/release.yaml @@ -1,19 +1,20 @@ --- remote_endpoint: https://fullnode.mainnet.aptoslabs.com -name: "TBD" +# replace with below for actual release, compat test needs concrete URL above: +# remote_endpoint: ~ +name: "vX.YY.Z" proposals: - name: proposal_1_upgrade_framework metadata: - title: "Multi-step proposal to upgrade mainnet framework, version TBD" - description: "This includes changes in (TBA: URL to changes)" + title: "Multi-step proposal to upgrade mainnet framework, version vX.YY.Z" + description: "This includes changes in https://github.com/aptos-labs/aptos-core/releases/tag/aptos-node-vX.YY.Z" execution_mode: MultiStep update_sequence: - Gas: new: current + # replace with below for actual release, above "current" is needed for compat tests: + # old: https://raw.githubusercontent.com/aptos-labs/aptos-networks/main/gas/vX.WW.Z.json + # new: https://raw.githubusercontent.com/aptos-labs/aptos-networks/main/gas/vX.YY.Z.json - Framework: bytecode_version: 7 git_hash: ~ - - FeatureFlag: - enabled: - - allow_serialized_script_args - diff --git a/aptos-move/aptos-release-builder/src/components/mod.rs b/aptos-move/aptos-release-builder/src/components/mod.rs index 745125cde95e3..1ecfdd4125ed3 100644 --- a/aptos-move/aptos-release-builder/src/components/mod.rs +++ b/aptos-move/aptos-release-builder/src/components/mod.rs @@ -599,21 +599,41 @@ impl ReleaseConfig { source_dir.push("sources"); - std::fs::create_dir(source_dir.as_path()) - .map_err(|err| anyhow!("Fail to create folder for source: {:?}", err))?; + std::fs::create_dir(source_dir.as_path()).map_err(|err| { + anyhow!( + "Fail to create folder for source {}: {:?}", + source_dir.display(), + err + ) + })?; source_dir.push(&self.name); - std::fs::create_dir(source_dir.as_path()) - .map_err(|err| anyhow!("Fail to create folder for source: {:?}", err))?; + std::fs::create_dir(source_dir.as_path()).map_err(|err| { + anyhow!( + "Fail to create folder for source {}: {:?}", + source_dir.display(), + err + ) + })?; let mut metadata_dir = base_path.to_path_buf(); metadata_dir.push("metadata"); - std::fs::create_dir(metadata_dir.as_path()) - .map_err(|err| anyhow!("Fail to create folder for metadata: {:?}", err))?; + std::fs::create_dir(metadata_dir.as_path()).map_err(|err| { + anyhow!( + "Fail to create folder for metadata {}: {:?}", + metadata_dir.display(), + err + ) + })?; metadata_dir.push(&self.name); - std::fs::create_dir(metadata_dir.as_path()) - .map_err(|err| anyhow!("Fail to create folder for metadata: {:?}", err))?; + std::fs::create_dir(metadata_dir.as_path()).map_err(|err| { + anyhow!( + "Fail to create folder for metadata {}: {:?}", + metadata_dir.display(), + err + ) + })?; // If we are generating multi-step proposal files, we generate the files in reverse order, // since we need to pass in the hash of the next file to the previous file. @@ -623,8 +643,13 @@ impl ReleaseConfig { proposal_dir.push(&self.name); proposal_dir.push(proposal.name.as_str()); - std::fs::create_dir(proposal_dir.as_path()) - .map_err(|err| anyhow!("Fail to create folder for proposal: {:?}", err))?; + std::fs::create_dir(proposal_dir.as_path()).map_err(|err| { + anyhow!( + "Fail to create folder for proposal {}: {:?}", + proposal_dir.display(), + err + ) + })?; let mut result: Vec<(String, String)> = vec![]; if let ExecutionMode::MultiStep = &proposal.execution_mode { @@ -657,7 +682,13 @@ impl ReleaseConfig { script_path.set_extension("move"); std::fs::write(script_path.as_path(), append_script_hash(script).as_bytes()) - .map_err(|err| anyhow!("Failed to write to file: {:?}", err))?; + .map_err(|err| { + anyhow!( + "Failed to write to file {}: {:?}", + script_path.display(), + err + ) + })?; } let mut metadata_path = base_path.to_path_buf(); @@ -669,7 +700,13 @@ impl ReleaseConfig { metadata_path.as_path(), serde_json::to_string_pretty(&proposal.metadata)?, ) - .map_err(|err| anyhow!("Failed to write to file: {:?}", err))?; + .map_err(|err| { + anyhow!( + "Failed to write to file {}: {:?}", + metadata_path.display(), + err + ) + })?; } Ok(()) From fc4ae470d5f9f437aba2f485dc8f8005cb908c33 Mon Sep 17 00:00:00 2001 From: "Brian (Sunghoon) Cho" Date: Fri, 31 Jan 2025 12:19:56 -0800 Subject: [PATCH 24/30] [consensus observer] add new BlockTransactionPayload variants to prepare for block gas limit override on blocks (#15848) ## Description These are the consensus observer message-side changes needed to support blocks having a block gas limit override. Once these messages are deployed, they can be used. ## How Has This Been Tested? Existing unit tests. --- .../network/observer_message.rs | 158 ++++++++++++++---- consensus/src/payload_manager.rs | 4 +- 2 files changed, 126 insertions(+), 36 deletions(-) diff --git a/consensus/src/consensus_observer/network/observer_message.rs b/consensus/src/consensus_observer/network/observer_message.rs index d72397fc4fb17..eea363a37e4ea 100644 --- a/consensus/src/consensus_observer/network/observer_message.rs +++ b/consensus/src/consensus_observer/network/observer_message.rs @@ -159,7 +159,7 @@ impl Display for ConsensusObserverDirectSend { "BlockPayload: {}. Number of transactions: {}, limit: {:?}, proofs: {:?}", block_payload.block, block_payload.transaction_payload.transactions().len(), - block_payload.transaction_payload.limit(), + block_payload.transaction_payload.transaction_limit(), block_payload.transaction_payload.payload_proofs(), ) }, @@ -361,16 +361,87 @@ impl PayloadWithProofAndLimit { } } +#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)] +pub enum TransactionsWithProof { + TransactionsWithProofAndLimits(TransactionsWithProofAndLimits), +} + +impl TransactionsWithProof { + pub fn transactions(&self) -> Vec { + match self { + TransactionsWithProof::TransactionsWithProofAndLimits(payload) => { + payload.payload_with_proof.transactions.clone() + }, + } + } + + pub fn proofs(&self) -> Vec { + match self { + TransactionsWithProof::TransactionsWithProofAndLimits(payload) => { + payload.payload_with_proof.proofs.clone() + }, + } + } + + pub fn transaction_limit(&self) -> Option { + match self { + TransactionsWithProof::TransactionsWithProofAndLimits(payload) => { + payload.transaction_limit + }, + } + } + + pub fn gas_limit(&self) -> Option { + match self { + TransactionsWithProof::TransactionsWithProofAndLimits(payload) => payload.gas_limit, + } + } +} + +/// The transaction payload and proof of each block with a transaction and block gas limit +#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)] +pub struct TransactionsWithProofAndLimits { + payload_with_proof: PayloadWithProof, + transaction_limit: Option, + gas_limit: Option, +} + +impl TransactionsWithProofAndLimits { + pub fn new( + payload_with_proof: PayloadWithProof, + transaction_limit: Option, + gas_limit: Option, + ) -> Self { + Self { + payload_with_proof, + transaction_limit, + gas_limit, + } + } + + #[cfg(test)] + /// Returns an empty payload with proof and limit (for testing) + pub fn empty() -> Self { + Self { + payload_with_proof: PayloadWithProof::empty(), + transaction_limit: None, + gas_limit: None, + } + } +} + /// The transaction payload of each block #[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)] pub enum BlockTransactionPayload { - InQuorumStore(PayloadWithProof), - InQuorumStoreWithLimit(PayloadWithProofAndLimit), + // TODO: deprecate InQuorumStore* variants + DeprecatedInQuorumStore(PayloadWithProof), + DeprecatedInQuorumStoreWithLimit(PayloadWithProofAndLimit), QuorumStoreInlineHybrid(PayloadWithProofAndLimit, Vec), OptQuorumStore( - PayloadWithProofAndLimit, + TransactionsWithProof, /* OptQS and Inline Batches */ Vec, ), + QuorumStoreInlineHybridV2(TransactionsWithProof, Vec), } impl BlockTransactionPayload { @@ -380,7 +451,7 @@ impl BlockTransactionPayload { proofs: Vec, ) -> Self { let payload_with_proof = PayloadWithProof::new(transactions, proofs); - Self::InQuorumStore(payload_with_proof) + Self::DeprecatedInQuorumStore(payload_with_proof) } /// Creates a returns a new InQuorumStoreWithLimit transaction payload @@ -391,7 +462,7 @@ impl BlockTransactionPayload { ) -> Self { let payload_with_proof = PayloadWithProof::new(transactions, proofs); let proof_with_limit = PayloadWithProofAndLimit::new(payload_with_proof, limit); - Self::InQuorumStoreWithLimit(proof_with_limit) + Self::DeprecatedInQuorumStoreWithLimit(proof_with_limit) } /// Creates a returns a new QuorumStoreInlineHybrid transaction payload @@ -413,8 +484,10 @@ impl BlockTransactionPayload { batch_infos: Vec, ) -> Self { let payload_with_proof = PayloadWithProof::new(transactions, proofs); - let proof_with_limit = PayloadWithProofAndLimit::new(payload_with_proof, limit); - Self::OptQuorumStore(proof_with_limit, batch_infos) + let proof_with_limits = TransactionsWithProof::TransactionsWithProofAndLimits( + TransactionsWithProofAndLimits::new(payload_with_proof, limit, None), + ); + Self::OptQuorumStore(proof_with_limits, batch_infos) } #[cfg(test)] @@ -426,55 +499,69 @@ impl BlockTransactionPayload { /// Returns the list of inline batches and optimistic batches in the transaction payload pub fn optqs_and_inline_batches(&self) -> &[BatchInfo] { match self { - BlockTransactionPayload::QuorumStoreInlineHybrid(_, inline_batches) => inline_batches, - BlockTransactionPayload::OptQuorumStore(_, optqs_and_inline_batches) => { - optqs_and_inline_batches - }, - _ => &[], + BlockTransactionPayload::DeprecatedInQuorumStore(_) + | BlockTransactionPayload::DeprecatedInQuorumStoreWithLimit(_) => &[], + BlockTransactionPayload::QuorumStoreInlineHybrid(_, inline_batches) + | BlockTransactionPayload::QuorumStoreInlineHybridV2(_, inline_batches) + | BlockTransactionPayload::OptQuorumStore(_, inline_batches) => inline_batches, } } - /// Returns the limit of the transaction payload - pub fn limit(&self) -> Option { + /// Returns the transaction limit of the payload + pub fn transaction_limit(&self) -> Option { match self { - BlockTransactionPayload::InQuorumStore(_) => None, - BlockTransactionPayload::InQuorumStoreWithLimit(payload) => payload.transaction_limit, + BlockTransactionPayload::DeprecatedInQuorumStore(_) => None, + BlockTransactionPayload::DeprecatedInQuorumStoreWithLimit(payload) => { + payload.transaction_limit + }, BlockTransactionPayload::QuorumStoreInlineHybrid(payload, _) => { payload.transaction_limit }, - BlockTransactionPayload::OptQuorumStore(payload, _) => payload.transaction_limit, + BlockTransactionPayload::QuorumStoreInlineHybridV2(payload, _) + | BlockTransactionPayload::OptQuorumStore(payload, _) => payload.transaction_limit(), + } + } + + /// Returns the block gas limit of the payload + pub fn gas_limit(&self) -> Option { + match self { + BlockTransactionPayload::DeprecatedInQuorumStore(_) + | BlockTransactionPayload::DeprecatedInQuorumStoreWithLimit(_) + | BlockTransactionPayload::QuorumStoreInlineHybrid(_, _) => None, + BlockTransactionPayload::QuorumStoreInlineHybridV2(payload, _) + | BlockTransactionPayload::OptQuorumStore(payload, _) => payload.gas_limit(), } } /// Returns the proofs of the transaction payload pub fn payload_proofs(&self) -> Vec { match self { - BlockTransactionPayload::InQuorumStore(payload) => payload.proofs.clone(), - BlockTransactionPayload::InQuorumStoreWithLimit(payload) => { + BlockTransactionPayload::DeprecatedInQuorumStore(payload) => payload.proofs.clone(), + BlockTransactionPayload::DeprecatedInQuorumStoreWithLimit(payload) => { payload.payload_with_proof.proofs.clone() }, BlockTransactionPayload::QuorumStoreInlineHybrid(payload, _) => { payload.payload_with_proof.proofs.clone() }, - BlockTransactionPayload::OptQuorumStore(payload, _) => { - payload.payload_with_proof.proofs.clone() - }, + BlockTransactionPayload::QuorumStoreInlineHybridV2(payload, _) + | BlockTransactionPayload::OptQuorumStore(payload, _) => payload.proofs(), } } /// Returns the transactions in the payload pub fn transactions(&self) -> Vec { match self { - BlockTransactionPayload::InQuorumStore(payload) => payload.transactions.clone(), - BlockTransactionPayload::InQuorumStoreWithLimit(payload) => { - payload.payload_with_proof.transactions.clone() + BlockTransactionPayload::DeprecatedInQuorumStore(payload) => { + payload.transactions.clone() }, - BlockTransactionPayload::QuorumStoreInlineHybrid(payload, _) => { + BlockTransactionPayload::DeprecatedInQuorumStoreWithLimit(payload) => { payload.payload_with_proof.transactions.clone() }, - BlockTransactionPayload::OptQuorumStore(payload, _) => { + BlockTransactionPayload::QuorumStoreInlineHybrid(payload, _) => { payload.payload_with_proof.transactions.clone() }, + BlockTransactionPayload::QuorumStoreInlineHybridV2(payload, _) + | BlockTransactionPayload::OptQuorumStore(payload, _) => payload.transactions(), } } @@ -624,16 +711,19 @@ impl BlockTransactionPayload { ) -> Result<(), Error> { // Get the payload limit let limit = match self { - BlockTransactionPayload::InQuorumStoreWithLimit(payload) => payload.transaction_limit, - BlockTransactionPayload::QuorumStoreInlineHybrid(payload, _) => { - payload.transaction_limit - }, - BlockTransactionPayload::OptQuorumStore(payload, _) => payload.transaction_limit, - _ => { + BlockTransactionPayload::DeprecatedInQuorumStore(_) => { return Err(Error::InvalidMessageError( "Transaction payload does not contain a limit!".to_string(), )) }, + BlockTransactionPayload::DeprecatedInQuorumStoreWithLimit(payload) => { + payload.transaction_limit + }, + BlockTransactionPayload::QuorumStoreInlineHybrid(payload, _) => { + payload.transaction_limit + }, + BlockTransactionPayload::QuorumStoreInlineHybridV2(payload, _) + | BlockTransactionPayload::OptQuorumStore(payload, _) => payload.transaction_limit(), }; // Compare the expected limit against the payload limit diff --git a/consensus/src/payload_manager.rs b/consensus/src/payload_manager.rs index 86a537edb940b..7b2df91e2dadf 100644 --- a/consensus/src/payload_manager.rs +++ b/consensus/src/payload_manager.rs @@ -504,7 +504,7 @@ impl TPayloadManager for QuorumStorePayloadManager { Ok(( transaction_payload.transactions(), - transaction_payload.limit(), + transaction_payload.transaction_limit(), )) } } @@ -554,7 +554,7 @@ async fn get_transactions_for_observer( // Return the transactions and the transaction limit Ok(( transaction_payload.transactions(), - transaction_payload.limit(), + transaction_payload.transaction_limit(), )) } From b91d6bfe955e0df12927ae06f44c9763f5f016d3 Mon Sep 17 00:00:00 2001 From: bowenyang007 Date: Fri, 31 Jan 2025 12:43:23 -0800 Subject: [PATCH 25/30] [indexer] add transactions to test with indexer (#15853) * add edge cases for indexer fa and token-v2 tests * rebase * add transactions to test with indexer * rebase * generate code --------- Co-authored-by: yuunlimm --- .../generated_transactions.rs | 13 + .../1680592683_fa_migration_coin_info.json | 331 ++++++++++++++++ ...1957950162_fa_migration_v2_store_only.json | 362 ++++++++++++++++++ .../imported_transactions/README.md | 1 - .../imported_transactions.yaml | 6 +- 5 files changed, 711 insertions(+), 2 deletions(-) create mode 100644 ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/imported_mainnet_txns/1680592683_fa_migration_coin_info.json create mode 100644 ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/imported_mainnet_txns/1957950162_fa_migration_v2_store_only.json delete mode 100644 ecosystem/indexer-grpc/indexer-transaction-generator/imported_transactions/README.md diff --git a/ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/generated_transactions.rs b/ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/generated_transactions.rs index f9aa396cd2fbe..5a141e68a0dd8 100644 --- a/ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/generated_transactions.rs +++ b/ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/generated_transactions.rs @@ -189,6 +189,12 @@ pub const IMPORTED_MAINNET_TXNS_141135867_TOKEN_V1_OFFER: &[u8] = include_bytes! "/src/json_transactions/imported_mainnet_txns/141135867_token_v1_offer.json" )); +pub const IMPORTED_MAINNET_TXNS_1957950162_FA_MIGRATION_V2_STORE_ONLY: &[u8] = + include_bytes!(concat!( + env!("CARGO_MANIFEST_DIR"), + "/src/json_transactions/imported_mainnet_txns/1957950162_fa_migration_v2_store_only.json" + )); + pub const IMPORTED_MAINNET_TXNS_976087151_USER_TXN_SINGLE_SENDER_KEYLESS: &[u8] = include_bytes!(concat!(env!("CARGO_MANIFEST_DIR"), "/src/json_transactions/imported_mainnet_txns/976087151_user_txn_single_sender_keyless.json")); pub const IMPORTED_MAINNET_TXNS_1737056775_COIN_TRANSFER_BURN_EVENT: &[u8] = @@ -218,6 +224,11 @@ pub const IMPORTED_MAINNET_TXNS_2186504987_COIN_STORE_DELETION_NO_EVENT: &[u8] = "/src/json_transactions/imported_mainnet_txns/2186504987_coin_store_deletion_no_event.json" )); +pub const IMPORTED_MAINNET_TXNS_1680592683_FA_MIGRATION_COIN_INFO: &[u8] = include_bytes!(concat!( + env!("CARGO_MANIFEST_DIR"), + "/src/json_transactions/imported_mainnet_txns/1680592683_fa_migration_coin_info.json" +)); + pub const IMPORTED_MAINNET_TXNS_453498957_TOKEN_V2_MINT_AND_TRANSFER_EVENT_V1: &[u8] = include_bytes!(concat!(env!("CARGO_MANIFEST_DIR"), "/src/json_transactions/imported_mainnet_txns/453498957_token_v2_mint_and_transfer_event_v1.json")); pub const IMPORTED_MAINNET_TXNS_1080786089_TOKEN_V2_BURN_EVENT_V1: &[u8] = include_bytes!(concat!( @@ -306,12 +317,14 @@ pub const ALL_IMPORTED_MAINNET_TXNS: &[&[u8]] = &[ IMPORTED_MAINNET_TXNS_551057865_USER_TXN_SINGLE_SENDER_WEBAUTH, IMPORTED_MAINNET_TXNS_84023785_TOKEN_V2_CLAIM_OFFER, IMPORTED_MAINNET_TXNS_141135867_TOKEN_V1_OFFER, + IMPORTED_MAINNET_TXNS_1957950162_FA_MIGRATION_V2_STORE_ONLY, IMPORTED_MAINNET_TXNS_976087151_USER_TXN_SINGLE_SENDER_KEYLESS, IMPORTED_MAINNET_TXNS_1737056775_COIN_TRANSFER_BURN_EVENT, IMPORTED_MAINNET_TXNS_2080538_ANS_LOOKUP_V1, IMPORTED_MAINNET_TXNS_139449359_STAKE_REACTIVATE, IMPORTED_MAINNET_TXNS_308783012_FA_TRANSFER, IMPORTED_MAINNET_TXNS_2186504987_COIN_STORE_DELETION_NO_EVENT, + IMPORTED_MAINNET_TXNS_1680592683_FA_MIGRATION_COIN_INFO, IMPORTED_MAINNET_TXNS_453498957_TOKEN_V2_MINT_AND_TRANSFER_EVENT_V1, IMPORTED_MAINNET_TXNS_1080786089_TOKEN_V2_BURN_EVENT_V1, IMPORTED_MAINNET_TXNS_445585423_TOKEN_MINT_AND_BURN_EVENT, diff --git a/ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/imported_mainnet_txns/1680592683_fa_migration_coin_info.json b/ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/imported_mainnet_txns/1680592683_fa_migration_coin_info.json new file mode 100644 index 0000000000000..4df1ecfbc2746 --- /dev/null +++ b/ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/imported_mainnet_txns/1680592683_fa_migration_coin_info.json @@ -0,0 +1,331 @@ +{ + "timestamp": { + "seconds": "1725537136", + "nanos": 706977000 + }, + "version": "1680592683", + "info": { + "hash": "TihwZqh2dgEyKBR6awCVQ2h13xXmjfzRyVLN0tt6boo=", + "stateChangeHash": "Xxu25O33KxT3/RiWwV9dJy9I10BIDDjcF8wznxaqn0M=", + "eventRootHash": "8/xIuK85jskWEKmgNAoQnLvQJ/lXOC3VA6G8W/DcH54=", + "gasUsed": "2057", + "success": true, + "vmStatus": "Executed successfully", + "accumulatorRootHash": "gs6UqRPsKkbiHbUcFQgh7sa0whxQCSFSlITZLSRx+/Y=", + "changes": [ + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x5ae6789dd2fec1a9ec9cccfb3acaf12e93d432f0a3a42c92fe1a9d490b7bbc06", + "stateKeyHash": "rXPnD8WITqsA/lXj5mKOIwUuT1dhfw4ilEvddTIh8Og=", + "type": { + "address": "0x1", + "module": "coin", + "name": "CoinInfo", + "genericTypeParams": [ + { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x5ae6789dd2fec1a9ec9cccfb3acaf12e93d432f0a3a42c92fe1a9d490b7bbc06", + "module": "mkl_token", + "name": "MKL" + } + } + ] + }, + "typeStr": "0x1::coin::CoinInfo<0x5ae6789dd2fec1a9ec9cccfb3acaf12e93d432f0a3a42c92fe1a9d490b7bbc06::mkl_token::MKL>", + "data": "{\"decimals\":6,\"name\":\"MKL\",\"supply\":{\"vec\":[]},\"symbol\":\"MKL\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x5ae6789dd2fec1a9ec9cccfb3acaf12e93d432f0a3a42c92fe1a9d490b7bbc06", + "stateKeyHash": "Da1LgMTmCCb4Zl1/UGADdchVthOtllUnLEN9Trpmeus=", + "type": { + "address": "0x1", + "module": "coin", + "name": "CoinStore", + "genericTypeParams": [ + { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "aptos_coin", + "name": "AptosCoin" + } + } + ] + }, + "typeStr": "0x1::coin::CoinStore<0x1::aptos_coin::AptosCoin>", + "data": "{\"coin\":{\"value\":\"997323833\"},\"deposit_events\":{\"counter\":\"4231\",\"guid\":{\"id\":{\"addr\":\"0x5ae6789dd2fec1a9ec9cccfb3acaf12e93d432f0a3a42c92fe1a9d490b7bbc06\",\"creation_num\":\"2\"}}},\"frozen\":false,\"withdraw_events\":{\"counter\":\"42\",\"guid\":{\"id\":{\"addr\":\"0x5ae6789dd2fec1a9ec9cccfb3acaf12e93d432f0a3a42c92fe1a9d490b7bbc06\",\"creation_num\":\"3\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x5ae6789dd2fec1a9ec9cccfb3acaf12e93d432f0a3a42c92fe1a9d490b7bbc06", + "stateKeyHash": "wzfZTrGA8nYssw++wbpc4hrzRoN0nR+OZSXEe4S0mns=", + "type": { + "address": "0x1", + "module": "account", + "name": "Account" + }, + "typeStr": "0x1::account::Account", + "data": "{\"authentication_key\":\"0x5ae6789dd2fec1a9ec9cccfb3acaf12e93d432f0a3a42c92fe1a9d490b7bbc06\",\"coin_register_events\":{\"counter\":\"8\",\"guid\":{\"id\":{\"addr\":\"0x5ae6789dd2fec1a9ec9cccfb3acaf12e93d432f0a3a42c92fe1a9d490b7bbc06\",\"creation_num\":\"0\"}}},\"guid_creation_num\":\"60\",\"key_rotation_events\":{\"counter\":\"0\",\"guid\":{\"id\":{\"addr\":\"0x5ae6789dd2fec1a9ec9cccfb3acaf12e93d432f0a3a42c92fe1a9d490b7bbc06\",\"creation_num\":\"1\"}}},\"rotation_capability_offer\":{\"for\":{\"vec\":[]}},\"sequence_number\":\"14488\",\"signer_capability_offer\":{\"for\":{\"vec\":[]}}}" + } + }, + { + "type": "TYPE_DELETE_RESOURCE", + "deleteResource": { + "address": "0x5ae6789dd2fec1a9ec9cccfb3acaf12e93d432f0a3a42c92fe1a9d490b7bbc06", + "stateKeyHash": "tnDOQkZReju8ezWw/BnCx66Twh4yP19hcKDzgAgsKZw=", + "type": { + "address": "0x5ae6789dd2fec1a9ec9cccfb3acaf12e93d432f0a3a42c92fe1a9d490b7bbc06", + "module": "mkl_token", + "name": "MklConfig" + }, + "typeStr": "0x5ae6789dd2fec1a9ec9cccfb3acaf12e93d432f0a3a42c92fe1a9d490b7bbc06::mkl_token::MklConfig" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x5ae6789dd2fec1a9ec9cccfb3acaf12e93d432f0a3a42c92fe1a9d490b7bbc06", + "stateKeyHash": "v7DkEKDrSsbJ9xvqbmIOpYS9quqqXcl89Ri8+6pJD7c=", + "type": { + "address": "0x5ae6789dd2fec1a9ec9cccfb3acaf12e93d432f0a3a42c92fe1a9d490b7bbc06", + "module": "mkl_token", + "name": "MklCoinConfig" + }, + "typeStr": "0x5ae6789dd2fec1a9ec9cccfb3acaf12e93d432f0a3a42c92fe1a9d490b7bbc06::mkl_token::MklCoinConfig", + "data": "{\"bc\":{\"dummy_field\":false},\"fc\":{\"dummy_field\":false},\"mc\":{\"dummy_field\":false}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x878370592f9129e14b76558689a4b570ad22678111df775befbfcbc9fb3d90ab", + "stateKeyHash": "BuabPwLExTuQHJ+6EQEFkV7RPiQjCaFhz9jDuC+6/eA=", + "type": { + "address": "0x1", + "module": "coin", + "name": "PairedCoinType" + }, + "typeStr": "0x1::coin::PairedCoinType", + "data": "{\"type\":{\"account_address\":\"0x5ae6789dd2fec1a9ec9cccfb3acaf12e93d432f0a3a42c92fe1a9d490b7bbc06\",\"module_name\":\"0x6d6b6c5f746f6b656e\",\"struct_name\":\"0x4d4b4c\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x878370592f9129e14b76558689a4b570ad22678111df775befbfcbc9fb3d90ab", + "stateKeyHash": "BuabPwLExTuQHJ+6EQEFkV7RPiQjCaFhz9jDuC+6/eA=", + "type": { + "address": "0x1", + "module": "coin", + "name": "PairedFungibleAssetRefs" + }, + "typeStr": "0x1::coin::PairedFungibleAssetRefs", + "data": "{\"burn_ref_opt\":{\"vec\":[{\"metadata\":{\"inner\":\"0x878370592f9129e14b76558689a4b570ad22678111df775befbfcbc9fb3d90ab\"}}]},\"mint_ref_opt\":{\"vec\":[{\"metadata\":{\"inner\":\"0x878370592f9129e14b76558689a4b570ad22678111df775befbfcbc9fb3d90ab\"}}]},\"transfer_ref_opt\":{\"vec\":[{\"metadata\":{\"inner\":\"0x878370592f9129e14b76558689a4b570ad22678111df775befbfcbc9fb3d90ab\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x878370592f9129e14b76558689a4b570ad22678111df775befbfcbc9fb3d90ab", + "stateKeyHash": "BuabPwLExTuQHJ+6EQEFkV7RPiQjCaFhz9jDuC+6/eA=", + "type": { + "address": "0x1", + "module": "fungible_asset", + "name": "ConcurrentSupply" + }, + "typeStr": "0x1::fungible_asset::ConcurrentSupply", + "data": "{\"current\":{\"max_value\":\"340282366920938463463374607431768211455\",\"value\":\"0\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x878370592f9129e14b76558689a4b570ad22678111df775befbfcbc9fb3d90ab", + "stateKeyHash": "BuabPwLExTuQHJ+6EQEFkV7RPiQjCaFhz9jDuC+6/eA=", + "type": { + "address": "0x1", + "module": "fungible_asset", + "name": "Metadata" + }, + "typeStr": "0x1::fungible_asset::Metadata", + "data": "{\"decimals\":6,\"icon_uri\":\"\",\"name\":\"MKL\",\"project_uri\":\"\",\"symbol\":\"MKL\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x878370592f9129e14b76558689a4b570ad22678111df775befbfcbc9fb3d90ab", + "stateKeyHash": "BuabPwLExTuQHJ+6EQEFkV7RPiQjCaFhz9jDuC+6/eA=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842625\",\"owner\":\"0xa\",\"transfer_events\":{\"counter\":\"0\",\"guid\":{\"id\":{\"addr\":\"0x878370592f9129e14b76558689a4b570ad22678111df775befbfcbc9fb3d90ab\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x878370592f9129e14b76558689a4b570ad22678111df775befbfcbc9fb3d90ab", + "stateKeyHash": "BuabPwLExTuQHJ+6EQEFkV7RPiQjCaFhz9jDuC+6/eA=", + "type": { + "address": "0x1", + "module": "primary_fungible_store", + "name": "DeriveRefPod" + }, + "typeStr": "0x1::primary_fungible_store::DeriveRefPod", + "data": "{\"metadata_derive_ref\":{\"self\":\"0x878370592f9129e14b76558689a4b570ad22678111df775befbfcbc9fb3d90ab\"}}" + } + }, + { + "type": "TYPE_WRITE_TABLE_ITEM", + "writeTableItem": { + "stateKeyHash": "bkso1A+YoQamUWNTCSTA3LQME0nTqpFdEItNbPwd2xk=", + "handle": "0x1b854694ae746cdbd8d44186ca4929b2b337df21d1c74633be19b2710552fdca", + "key": "0x0619dc29a0aac8fa146714058e8dd6d2d0f3bdf5f6331907bf91f3acd81e6935", + "data": { + "key": "\"0x619dc29a0aac8fa146714058e8dd6d2d0f3bdf5f6331907bf91f3acd81e6935\"", + "keyType": "address", + "value": "\"111442820397688086\"", + "valueType": "u128" + } + } + }, + { + "type": "TYPE_WRITE_TABLE_ITEM", + "writeTableItem": { + "stateKeyHash": "skryzHblk41cRgcGtZKztMPzDhFIHHHoPmcaPEMqkQQ=", + "handle": "0x7d7561f38ada5eb9066f05c6e80df069208c4de472d6414482016d38448d1a7d", + "key": "0x5ae6789dd2fec1a9ec9cccfb3acaf12e93d432f0a3a42c92fe1a9d490b7bbc06096d6b6c5f746f6b656e034d4b4c", + "data": { + "key": "{\"account_address\":\"0x5ae6789dd2fec1a9ec9cccfb3acaf12e93d432f0a3a42c92fe1a9d490b7bbc06\",\"module_name\":\"0x6d6b6c5f746f6b656e\",\"struct_name\":\"0x4d4b4c\"}", + "keyType": "0x1::type_info::TypeInfo", + "value": "{\"inner\":\"0x878370592f9129e14b76558689a4b570ad22678111df775befbfcbc9fb3d90ab\"}", + "valueType": "0x1::object::Object<0x1::fungible_asset::Metadata>" + } + } + } + ] + }, + "epoch": "8371", + "blockHeight": "222731447", + "type": "TRANSACTION_TYPE_USER", + "sizeInfo": { + "transactionBytes": 236, + "eventSizeInfo": [ + { + "typeTagBytes": 52, + "totalBytes": 130 + }, + { + "typeTagBytes": 63, + "totalBytes": 103 + } + ], + "writeOpSizeInfo": [ + { + "keyBytes": 130, + "valueBytes": 10 + }, + { + "keyBytes": 138, + "valueBytes": 105 + }, + { + "keyBytes": 84, + "valueBytes": 147 + }, + { + "keyBytes": 88 + }, + { + "keyBytes": 92, + "valueBytes": 3 + }, + { + "keyBytes": 87, + "valueBytes": 673 + }, + { + "keyBytes": 66, + "valueBytes": 16 + }, + { + "keyBytes": 80, + "valueBytes": 32 + } + ] + }, + "user": { + "request": { + "sender": "0x5ae6789dd2fec1a9ec9cccfb3acaf12e93d432f0a3a42c92fe1a9d490b7bbc06", + "sequenceNumber": "14487", + "maxGasAmount": "4114", + "gasUnitPrice": "100", + "expirationTimestampSecs": { + "seconds": "1725537226" + }, + "payload": { + "type": "TYPE_ENTRY_FUNCTION_PAYLOAD", + "entryFunctionPayload": { + "function": { + "module": { + "address": "0x5ae6789dd2fec1a9ec9cccfb3acaf12e93d432f0a3a42c92fe1a9d490b7bbc06", + "name": "managed_mkl_token" + }, + "name": "initialize_module" + }, + "entryFunctionIdStr": "0x5ae6789dd2fec1a9ec9cccfb3acaf12e93d432f0a3a42c92fe1a9d490b7bbc06::managed_mkl_token::initialize_module" + } + }, + "signature": { + "type": "TYPE_ED25519", + "ed25519": { + "publicKey": "AJndots4YBVnqlVUl9Phvg1/GwH1Z9NgDbBzKz9uiho=", + "signature": "5nFN98hPRHv8vCzNQukbfhLkz1WKgv8i5RQyUWsyORxwVtTOK1evmAkOyB2btnqC3dyAna41zkYmmu53qmbyDQ==" + } + } + }, + "events": [ + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "coin", + "name": "PairCreation" + } + }, + "typeStr": "0x1::coin::PairCreation", + "data": "{\"coin_type\":{\"account_address\":\"0x5ae6789dd2fec1a9ec9cccfb3acaf12e93d432f0a3a42c92fe1a9d490b7bbc06\",\"module_name\":\"0x6d6b6c5f746f6b656e\",\"struct_name\":\"0x4d4b4c\"},\"fungible_asset_metadata_address\":\"0x878370592f9129e14b76558689a4b570ad22678111df775befbfcbc9fb3d90ab\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "transaction_fee", + "name": "FeeStatement" + } + }, + "typeStr": "0x1::transaction_fee::FeeStatement", + "data": "{\"execution_gas_units\":\"11\",\"io_gas_units\":\"7\",\"storage_fee_octas\":\"203960\",\"storage_fee_refund_octas\":\"47280\",\"total_charge_gas_units\":\"2057\"}" + } + ] + } +} \ No newline at end of file diff --git a/ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/imported_mainnet_txns/1957950162_fa_migration_v2_store_only.json b/ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/imported_mainnet_txns/1957950162_fa_migration_v2_store_only.json new file mode 100644 index 0000000000000..3b97fb3e96713 --- /dev/null +++ b/ecosystem/indexer-grpc/indexer-test-transactions/src/json_transactions/imported_mainnet_txns/1957950162_fa_migration_v2_store_only.json @@ -0,0 +1,362 @@ +{ + "timestamp": { + "seconds": "1732401150", + "nanos": 751720000 + }, + "version": "1957950162", + "info": { + "hash": "yIkSXK0ipvqrWAAGww5eD30NZObA+oE+SI8W453L9c4=", + "stateChangeHash": "xgas0q8rmiF9markVKw+TTpUaNkcJN3cxhTO6vCWjG0=", + "eventRootHash": "OYeR86FQOZYyDPLFz0jTjH9PQDh0kN6kmJO2+izps5U=", + "gasUsed": "21", + "success": true, + "vmStatus": "Executed successfully", + "accumulatorRootHash": "mi8xpj4aNb720y7Q/WrA4FJzNcEzC5Bnkab3F7rb4XA=", + "changes": [ + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x345ced5d7c67360d61a1d59d8cd83cb53095a81aa24a337027391b1c7dd1786f", + "stateKeyHash": "yMqrjrJykFt3G4RC+TJJqvBjoB0HAuKtQrF2bCuvrqQ=", + "type": { + "address": "0x1", + "module": "coin", + "name": "CoinStore", + "genericTypeParams": [ + { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "aptos_coin", + "name": "AptosCoin" + } + } + ] + }, + "typeStr": "0x1::coin::CoinStore<0x1::aptos_coin::AptosCoin>", + "data": "{\"coin\":{\"value\":\"115245132\"},\"deposit_events\":{\"counter\":\"111\",\"guid\":{\"id\":{\"addr\":\"0x345ced5d7c67360d61a1d59d8cd83cb53095a81aa24a337027391b1c7dd1786f\",\"creation_num\":\"2\"}}},\"frozen\":false,\"withdraw_events\":{\"counter\":\"145\",\"guid\":{\"id\":{\"addr\":\"0x345ced5d7c67360d61a1d59d8cd83cb53095a81aa24a337027391b1c7dd1786f\",\"creation_num\":\"3\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x345ced5d7c67360d61a1d59d8cd83cb53095a81aa24a337027391b1c7dd1786f", + "stateKeyHash": "I0OZSvGXf/VQOI4hPjVzRqAkcoVjqcHTBkVeA7yY+Io=", + "type": { + "address": "0x1", + "module": "account", + "name": "Account" + }, + "typeStr": "0x1::account::Account", + "data": "{\"authentication_key\":\"0x345ced5d7c67360d61a1d59d8cd83cb53095a81aa24a337027391b1c7dd1786f\",\"coin_register_events\":{\"counter\":\"33\",\"guid\":{\"id\":{\"addr\":\"0x345ced5d7c67360d61a1d59d8cd83cb53095a81aa24a337027391b1c7dd1786f\",\"creation_num\":\"0\"}}},\"guid_creation_num\":\"111\",\"key_rotation_events\":{\"counter\":\"0\",\"guid\":{\"id\":{\"addr\":\"0x345ced5d7c67360d61a1d59d8cd83cb53095a81aa24a337027391b1c7dd1786f\",\"creation_num\":\"1\"}}},\"rotation_capability_offer\":{\"for\":{\"vec\":[]}},\"sequence_number\":\"3298\",\"signer_capability_offer\":{\"for\":{\"vec\":[]}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x878370592f9129e14b76558689a4b570ad22678111df775befbfcbc9fb3d90ab", + "stateKeyHash": "BuabPwLExTuQHJ+6EQEFkV7RPiQjCaFhz9jDuC+6/eA=", + "type": { + "address": "0x1", + "module": "coin", + "name": "PairedCoinType" + }, + "typeStr": "0x1::coin::PairedCoinType", + "data": "{\"type\":{\"account_address\":\"0x5ae6789dd2fec1a9ec9cccfb3acaf12e93d432f0a3a42c92fe1a9d490b7bbc06\",\"module_name\":\"0x6d6b6c5f746f6b656e\",\"struct_name\":\"0x4d4b4c\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x878370592f9129e14b76558689a4b570ad22678111df775befbfcbc9fb3d90ab", + "stateKeyHash": "BuabPwLExTuQHJ+6EQEFkV7RPiQjCaFhz9jDuC+6/eA=", + "type": { + "address": "0x1", + "module": "coin", + "name": "PairedFungibleAssetRefs" + }, + "typeStr": "0x1::coin::PairedFungibleAssetRefs", + "data": "{\"burn_ref_opt\":{\"vec\":[{\"metadata\":{\"inner\":\"0x878370592f9129e14b76558689a4b570ad22678111df775befbfcbc9fb3d90ab\"}}]},\"mint_ref_opt\":{\"vec\":[{\"metadata\":{\"inner\":\"0x878370592f9129e14b76558689a4b570ad22678111df775befbfcbc9fb3d90ab\"}}]},\"transfer_ref_opt\":{\"vec\":[{\"metadata\":{\"inner\":\"0x878370592f9129e14b76558689a4b570ad22678111df775befbfcbc9fb3d90ab\"}}]}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x878370592f9129e14b76558689a4b570ad22678111df775befbfcbc9fb3d90ab", + "stateKeyHash": "BuabPwLExTuQHJ+6EQEFkV7RPiQjCaFhz9jDuC+6/eA=", + "type": { + "address": "0x1", + "module": "fungible_asset", + "name": "ConcurrentSupply" + }, + "typeStr": "0x1::fungible_asset::ConcurrentSupply", + "data": "{\"current\":{\"max_value\":\"340282366920938463463374607431768211455\",\"value\":\"96895109643615\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x878370592f9129e14b76558689a4b570ad22678111df775befbfcbc9fb3d90ab", + "stateKeyHash": "BuabPwLExTuQHJ+6EQEFkV7RPiQjCaFhz9jDuC+6/eA=", + "type": { + "address": "0x1", + "module": "fungible_asset", + "name": "Metadata" + }, + "typeStr": "0x1::fungible_asset::Metadata", + "data": "{\"decimals\":6,\"icon_uri\":\"\",\"name\":\"MKL\",\"project_uri\":\"\",\"symbol\":\"MKL\"}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x878370592f9129e14b76558689a4b570ad22678111df775befbfcbc9fb3d90ab", + "stateKeyHash": "BuabPwLExTuQHJ+6EQEFkV7RPiQjCaFhz9jDuC+6/eA=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":true,\"guid_creation_num\":\"1125899906842625\",\"owner\":\"0xa\",\"transfer_events\":{\"counter\":\"0\",\"guid\":{\"id\":{\"addr\":\"0x878370592f9129e14b76558689a4b570ad22678111df775befbfcbc9fb3d90ab\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0x878370592f9129e14b76558689a4b570ad22678111df775befbfcbc9fb3d90ab", + "stateKeyHash": "BuabPwLExTuQHJ+6EQEFkV7RPiQjCaFhz9jDuC+6/eA=", + "type": { + "address": "0x1", + "module": "primary_fungible_store", + "name": "DeriveRefPod" + }, + "typeStr": "0x1::primary_fungible_store::DeriveRefPod", + "data": "{\"metadata_derive_ref\":{\"self\":\"0x878370592f9129e14b76558689a4b570ad22678111df775befbfcbc9fb3d90ab\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xa1ddab83c8209aabffc66264730ba95bcc7d7a7966192c00d800ab734729622c", + "stateKeyHash": "ARooMpn+3fq/OdJ+bsWA5vHlYYk1aInfx4mzffzQ4/s=", + "type": { + "address": "0x1", + "module": "fungible_asset", + "name": "FungibleStore" + }, + "typeStr": "0x1::fungible_asset::FungibleStore", + "data": "{\"balance\":\"431101567356\",\"frozen\":false,\"metadata\":{\"inner\":\"0x878370592f9129e14b76558689a4b570ad22678111df775befbfcbc9fb3d90ab\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xa1ddab83c8209aabffc66264730ba95bcc7d7a7966192c00d800ab734729622c", + "stateKeyHash": "ARooMpn+3fq/OdJ+bsWA5vHlYYk1aInfx4mzffzQ4/s=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":false,\"guid_creation_num\":\"1125899906842625\",\"owner\":\"0x7ae7cc51c4fab67181a969f53a5d01a292dad0baf259c92c4e1a13f056768e1c\",\"transfer_events\":{\"counter\":\"0\",\"guid\":{\"id\":{\"addr\":\"0xa1ddab83c8209aabffc66264730ba95bcc7d7a7966192c00d800ab734729622c\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xd29b17433643769f27d89851553ec2ab5e4204b66eceecb6eec774668117c3e0", + "stateKeyHash": "Wm4THIWO1Lh+J1ehhLqCiKNfTCUOhh2WG9jTVyg2ddU=", + "type": { + "address": "0x1", + "module": "fungible_asset", + "name": "FungibleStore" + }, + "typeStr": "0x1::fungible_asset::FungibleStore", + "data": "{\"balance\":\"3643926\",\"frozen\":false,\"metadata\":{\"inner\":\"0x878370592f9129e14b76558689a4b570ad22678111df775befbfcbc9fb3d90ab\"}}" + } + }, + { + "type": "TYPE_WRITE_RESOURCE", + "writeResource": { + "address": "0xd29b17433643769f27d89851553ec2ab5e4204b66eceecb6eec774668117c3e0", + "stateKeyHash": "Wm4THIWO1Lh+J1ehhLqCiKNfTCUOhh2WG9jTVyg2ddU=", + "type": { + "address": "0x1", + "module": "object", + "name": "ObjectCore" + }, + "typeStr": "0x1::object::ObjectCore", + "data": "{\"allow_ungated_transfer\":false,\"guid_creation_num\":\"1125899906842625\",\"owner\":\"0x345ced5d7c67360d61a1d59d8cd83cb53095a81aa24a337027391b1c7dd1786f\",\"transfer_events\":{\"counter\":\"0\",\"guid\":{\"id\":{\"addr\":\"0xd29b17433643769f27d89851553ec2ab5e4204b66eceecb6eec774668117c3e0\",\"creation_num\":\"1125899906842624\"}}}}" + } + }, + { + "type": "TYPE_WRITE_TABLE_ITEM", + "writeTableItem": { + "stateKeyHash": "bkso1A+YoQamUWNTCSTA3LQME0nTqpFdEItNbPwd2xk=", + "handle": "0x1b854694ae746cdbd8d44186ca4929b2b337df21d1c74633be19b2710552fdca", + "key": "0x0619dc29a0aac8fa146714058e8dd6d2d0f3bdf5f6331907bf91f3acd81e6935", + "data": { + "key": "\"0x619dc29a0aac8fa146714058e8dd6d2d0f3bdf5f6331907bf91f3acd81e6935\"", + "keyType": "address", + "value": "\"112743621173497128\"", + "valueType": "u128" + } + } + }, + { + "type": "TYPE_WRITE_TABLE_ITEM", + "writeTableItem": { + "stateKeyHash": "+xpqwu2rh6Q2NQ1THvvVkIVTUhbkp9nA8rauTYPl7gE=", + "handle": "0xefeec25d4e1c1ce3e4c8c8258f045379047fcda6721cecb3e481d98353e0fc10", + "key": "0x345ced5d7c67360d61a1d59d8cd83cb53095a81aa24a337027391b1c7dd1786f", + "data": { + "key": "\"0x345ced5d7c67360d61a1d59d8cd83cb53095a81aa24a337027391b1c7dd1786f\"", + "keyType": "address", + "value": "{\"asset_deposit_amount\":\"0\",\"last_claimed_at\":\"1732401150\",\"lp_withdraw_amount\":\"291858301\",\"phase1_asset_deposit_amount\":\"0\",\"pre_mkl_deposit_amount\":\"1500000000\"}", + "valueType": "0x5ae6789dd2fec1a9ec9cccfb3acaf12e93d432f0a3a42c92fe1a9d490b7bbc06::liquidity_auction::UserInfo" + } + } + } + ] + }, + "epoch": "9331", + "blockHeight": "256094969", + "type": "TRANSACTION_TYPE_USER", + "sizeInfo": { + "transactionBytes": 288, + "eventSizeInfo": [ + { + "typeTagBytes": 58, + "totalBytes": 98 + }, + { + "typeTagBytes": 57, + "totalBytes": 97 + }, + { + "typeTagBytes": 63, + "totalBytes": 103 + } + ], + "writeOpSizeInfo": [ + { + "keyBytes": 138, + "valueBytes": 105 + }, + { + "keyBytes": 84, + "valueBytes": 147 + }, + { + "keyBytes": 87, + "valueBytes": 673 + }, + { + "keyBytes": 87, + "valueBytes": 246 + }, + { + "keyBytes": 87, + "valueBytes": 246 + }, + { + "keyBytes": 66, + "valueBytes": 16 + }, + { + "keyBytes": 66, + "valueBytes": 40 + } + ] + }, + "user": { + "request": { + "sender": "0x345ced5d7c67360d61a1d59d8cd83cb53095a81aa24a337027391b1c7dd1786f", + "sequenceNumber": "3297", + "maxGasAmount": "42", + "gasUnitPrice": "100", + "expirationTimestampSecs": { + "seconds": "1732401233" + }, + "payload": { + "type": "TYPE_ENTRY_FUNCTION_PAYLOAD", + "entryFunctionPayload": { + "function": { + "module": { + "address": "0x5ae6789dd2fec1a9ec9cccfb3acaf12e93d432f0a3a42c92fe1a9d490b7bbc06", + "name": "managed_liquidity_auction" + }, + "name": "claim_mkl_reward" + }, + "typeArguments": [ + { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0xf22bede237a07e121b56d91a491eb7bcdfd1f5907926a9e58338f964a01b17fa", + "module": "asset", + "name": "USDC" + } + } + ], + "entryFunctionIdStr": "0x5ae6789dd2fec1a9ec9cccfb3acaf12e93d432f0a3a42c92fe1a9d490b7bbc06::managed_liquidity_auction::claim_mkl_reward" + } + }, + "signature": { + "type": "TYPE_ED25519", + "ed25519": { + "publicKey": "Pe9dg6GI4uy6ygkI1ZAufCBY76XootUjDgOXeqHOrCE=", + "signature": "LcdqJw9xZ8nTArW/O/cZEVX9/2r9fkglK/Mhy5ZPZibyFJ8t22Hus9QGe5HeBcnJeINFksrk2TFnfIqKp4gECQ==" + } + } + }, + "events": [ + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "fungible_asset", + "name": "Withdraw" + } + }, + "typeStr": "0x1::fungible_asset::Withdraw", + "data": "{\"amount\":\"3643926\",\"store\":\"0xa1ddab83c8209aabffc66264730ba95bcc7d7a7966192c00d800ab734729622c\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "fungible_asset", + "name": "Deposit" + } + }, + "typeStr": "0x1::fungible_asset::Deposit", + "data": "{\"amount\":\"3643926\",\"store\":\"0xd29b17433643769f27d89851553ec2ab5e4204b66eceecb6eec774668117c3e0\"}" + }, + { + "key": { + "accountAddress": "0x0" + }, + "type": { + "type": "MOVE_TYPES_STRUCT", + "struct": { + "address": "0x1", + "module": "transaction_fee", + "name": "FeeStatement" + } + }, + "typeStr": "0x1::transaction_fee::FeeStatement", + "data": "{\"execution_gas_units\":\"11\",\"io_gas_units\":\"11\",\"storage_fee_octas\":\"0\",\"storage_fee_refund_octas\":\"0\",\"total_charge_gas_units\":\"21\"}" + } + ] + } +} \ No newline at end of file diff --git a/ecosystem/indexer-grpc/indexer-transaction-generator/imported_transactions/README.md b/ecosystem/indexer-grpc/indexer-transaction-generator/imported_transactions/README.md deleted file mode 100644 index eb25fd5788f6b..0000000000000 --- a/ecosystem/indexer-grpc/indexer-transaction-generator/imported_transactions/README.md +++ /dev/null @@ -1 +0,0 @@ -This folder demonstrates the testing folder structure. \ No newline at end of file diff --git a/ecosystem/indexer-grpc/indexer-transaction-generator/imported_transactions/imported_transactions.yaml b/ecosystem/indexer-grpc/indexer-transaction-generator/imported_transactions/imported_transactions.yaml index c293dd8fd6bb6..7ff59c99710c1 100644 --- a/ecosystem/indexer-grpc/indexer-transaction-generator/imported_transactions/imported_transactions.yaml +++ b/ecosystem/indexer-grpc/indexer-transaction-generator/imported_transactions/imported_transactions.yaml @@ -101,4 +101,8 @@ mainnet: 2200077800: 2200077800_account_restoration_rotated_to_multi_key # events processor - 554229017: 554229017_events_with_no_event_size_info \ No newline at end of file + 554229017: 554229017_events_with_no_event_size_info + + # Fungible asset migration + 1680592683: 1680592683_fa_migration_coin_info + 1957950162: 1957950162_fa_migration_v2_store_only From fd0d550ceaad7f38d3201cdebc050a92c96f9033 Mon Sep 17 00:00:00 2001 From: Guoteng Rao <3603304+grao1991@users.noreply.github.com> Date: Fri, 31 Jan 2025 12:48:23 -0800 Subject: [PATCH 26/30] [Indexer-Grpc-V2] Add status pages for DataService and GrpcManager. (#15072) Signed-off-by: Guoteng Rao <3603304+grao1991@users.noreply.github.com> --- Cargo.lock | 61 ++- Cargo.toml | 4 + .../indexer-grpc-data-service-v2/Cargo.toml | 2 + .../src/config.rs | 5 + .../src/historical_data_service.rs | 4 + .../indexer-grpc-data-service-v2/src/lib.rs | 1 + .../src/live_data_service/mod.rs | 4 + .../src/status_page.rs | 128 ++++++ .../indexer-grpc-manager/Cargo.toml | 2 + .../indexer-grpc-manager/src/config.rs | 7 +- .../indexer-grpc-manager/src/data_manager.rs | 13 + .../indexer-grpc-manager/src/grpc_manager.rs | 8 + .../indexer-grpc-manager/src/lib.rs | 1 + .../src/metadata_manager.rs | 7 + .../indexer-grpc-manager/src/status_page.rs | 395 ++++++++++++++++++ .../indexer-grpc-server-framework/src/lib.rs | 40 +- .../indexer-grpc-utils/Cargo.toml | 3 + .../indexer-grpc-utils/src/lib.rs | 1 + .../src/status_page/html.rs | 61 +++ .../indexer-grpc-utils/src/status_page/mod.rs | 117 ++++++ 20 files changed, 822 insertions(+), 42 deletions(-) create mode 100644 ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/status_page.rs create mode 100644 ecosystem/indexer-grpc/indexer-grpc-manager/src/status_page.rs create mode 100644 ecosystem/indexer-grpc/indexer-grpc-utils/src/status_page/html.rs create mode 100644 ecosystem/indexer-grpc/indexer-grpc-utils/src/status_page/mod.rs diff --git a/Cargo.lock b/Cargo.lock index c0184afb7d33a..8def2493df897 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2175,6 +2175,7 @@ dependencies = [ "aptos-indexer-grpc-utils", "aptos-protos 1.3.1", "async-trait", + "build_html", "clap 4.5.21", "dashmap", "futures", @@ -2190,6 +2191,7 @@ dependencies = [ "tonic-reflection", "tracing", "uuid", + "warp", ] [[package]] @@ -2330,6 +2332,7 @@ dependencies = [ "aptos-indexer-grpc-utils", "aptos-protos 1.3.1", "async-trait", + "build_html", "clap 4.5.21", "dashmap", "futures", @@ -2342,6 +2345,7 @@ dependencies = [ "tokio-scoped", "tonic 0.12.3", "tracing", + "warp", ] [[package]] @@ -2408,6 +2412,8 @@ dependencies = [ "async-trait", "backoff", "base64 0.13.1", + "build_html", + "bytesize", "chrono", "cloud-storage", "dashmap", @@ -2427,6 +2433,7 @@ dependencies = [ "tonic 0.12.3", "tracing", "url", + "warp", ] [[package]] @@ -5928,6 +5935,12 @@ dependencies = [ "serde", ] +[[package]] +name = "build_html" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225eb82ce9e70dcc0cfa6e404d0f353326b6e163bf500ec4711cec317d11935c" + [[package]] name = "bulletproofs" version = "4.0.0" @@ -6026,6 +6039,12 @@ dependencies = [ "serde", ] +[[package]] +name = "bytesize" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e368af43e418a04d52505cf3dbc23dda4e3407ae2fa99fd0e4f308ce546acc" + [[package]] name = "bzip2-sys" version = "0.1.11+1.0.8" @@ -6705,16 +6724,6 @@ dependencies = [ "libc", ] -[[package]] -name = "core-foundation" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b55271e5c8c478ad3f38ad24ef34923091e0548492a266d19b3c0b4d82574c63" -dependencies = [ - "core-foundation-sys", - "libc", -] - [[package]] name = "core-foundation-sys" version = "0.8.7" @@ -12095,7 +12104,7 @@ dependencies = [ "openssl-probe", "openssl-sys", "schannel", - "security-framework 2.9.2", + "security-framework", "security-framework-sys", "tempfile", ] @@ -14896,7 +14905,7 @@ dependencies = [ "openssl-probe", "rustls-pemfile 1.0.4", "schannel", - "security-framework 2.9.2", + "security-framework", ] [[package]] @@ -14909,19 +14918,20 @@ dependencies = [ "rustls-pemfile 2.1.1", "rustls-pki-types", "schannel", - "security-framework 2.9.2", + "security-framework", ] [[package]] name = "rustls-native-certs" -version = "0.8.1" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcff2dd52b58a8d98a70243663a0d234c4e2b79235637849d15913394a247d3" +checksum = "fcaf18a4f2be7326cd874a5fa579fae794320a0f388d365dca7e480e55f83f8a" dependencies = [ "openssl-probe", + "rustls-pemfile 2.1.1", "rustls-pki-types", "schannel", - "security-framework 3.2.0", + "security-framework", ] [[package]] @@ -15167,20 +15177,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" dependencies = [ "bitflags 1.3.2", - "core-foundation 0.9.4", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework" -version = "3.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "271720403f46ca04f7ba6f55d438f8bd878d6b8ca0a1046e8228c4145bcbb316" -dependencies = [ - "bitflags 2.6.0", - "core-foundation 0.10.0", + "core-foundation", "core-foundation-sys", "libc", "security-framework-sys", @@ -16249,7 +16246,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" dependencies = [ "bitflags 1.3.2", - "core-foundation 0.9.4", + "core-foundation", "system-configuration-sys", ] @@ -16963,7 +16960,7 @@ dependencies = [ "percent-encoding", "pin-project 1.1.3", "prost 0.13.4", - "rustls-native-certs 0.8.1", + "rustls-native-certs 0.8.0", "rustls-pemfile 2.1.1", "socket2 0.5.5", "tokio", diff --git a/Cargo.toml b/Cargo.toml index de8c6d41264e6..c22ecb4538646 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -519,9 +519,11 @@ blst = "0.3.11" # The __private_bench feature exposes the Fp12 type which we need to implement a multi-threaded multi-pairing. blstrs = { version = "0.7.1", features = ["serde", "__private_bench"] } bollard = "0.15" +build_html = "2.5.0" bulletproofs = { version = "4.0.0" } byteorder = "1.4.3" bytes = { version = "1.4.0", features = ["serde"] } +bytesize = { version = "1.3.0" } camino = { version = "1.1.6" } chrono = { version = "0.4.19", features = ["clock", "serde"] } cfg-if = "1.0.0" @@ -705,6 +707,8 @@ prometheus-parse = "0.2.4" proptest = "1.4.0" proptest-derive = "0.4.0" prost = { version = "0.13.4", features = ["no-recursion-limit"] } +prost-types = "0.13.3" +quanta = "0.10.1" quick_cache = "0.5.1" quick-junit = "0.5.0" quote = "1.0.18" diff --git a/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/Cargo.toml b/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/Cargo.toml index 20994d619c3e5..e4d3614ae2edf 100644 --- a/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/Cargo.toml +++ b/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/Cargo.toml @@ -18,6 +18,7 @@ aptos-indexer-grpc-server-framework = { workspace = true } aptos-indexer-grpc-utils = { workspace = true } aptos-protos = { workspace = true } async-trait = { workspace = true } +build_html = { workspace = true } clap = { workspace = true } dashmap = { workspace = true } futures = { workspace = true } @@ -32,6 +33,7 @@ tonic = { workspace = true } tonic-reflection = { workspace = true } tracing = { workspace = true } uuid = { workspace = true } +warp = { workspace = true } [target.'cfg(unix)'.dependencies] jemallocator = { workspace = true } diff --git a/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/config.rs b/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/config.rs index d3cfe1fe7088a..ebba70fe55fa3 100644 --- a/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/config.rs +++ b/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/config.rs @@ -21,6 +21,7 @@ use std::{net::SocketAddr, sync::Arc}; use tokio::task::JoinHandle; use tonic::{codec::CompressionEncoding, transport::Server}; use tracing::info; +use warp::{reply::Response, Rejection}; pub(crate) static LIVE_DATA_SERVICE: OnceCell> = OnceCell::new(); pub(crate) static HISTORICAL_DATA_SERVICE: OnceCell = OnceCell::new(); @@ -260,4 +261,8 @@ impl RunnableConfig for IndexerGrpcDataServiceConfig { fn get_server_name(&self) -> String { "indexer_grpc_data_service_v2".to_string() } + + async fn status_page(&self) -> Result { + crate::status_page::status_page() + } } diff --git a/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/historical_data_service.rs b/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/historical_data_service.rs index 81c57b71863f0..d4dccea121bd1 100644 --- a/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/historical_data_service.rs +++ b/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/historical_data_service.rs @@ -85,6 +85,10 @@ impl HistoricalDataService { }); } + pub(crate) fn get_connection_manager(&self) -> &ConnectionManager { + &self.connection_manager + } + async fn start_streaming( &self, id: String, diff --git a/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/lib.rs b/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/lib.rs index 448ab77b5c38b..cca08baae102f 100644 --- a/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/lib.rs +++ b/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/lib.rs @@ -6,5 +6,6 @@ mod connection_manager; mod historical_data_service; mod live_data_service; mod service; +mod status_page; #[cfg(test)] mod test; diff --git a/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/live_data_service/mod.rs b/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/live_data_service/mod.rs index 57a15bace0dcc..20cdbebf9b00c 100644 --- a/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/live_data_service/mod.rs +++ b/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/live_data_service/mod.rs @@ -106,6 +106,10 @@ impl<'a> LiveDataService<'a> { self.in_memory_cache.data_manager.read().await.start_version } + pub(super) fn get_connection_manager(&self) -> &ConnectionManager { + &self.connection_manager + } + async fn start_streaming( &'a self, id: String, diff --git a/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/status_page.rs b/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/status_page.rs new file mode 100644 index 0000000000000..80ad58df2d6ce --- /dev/null +++ b/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/status_page.rs @@ -0,0 +1,128 @@ +// Copyright © Aptos Foundation +// SPDX-License-Identifier: Apache-2.0 + +use crate::{ + config::{HISTORICAL_DATA_SERVICE, LIVE_DATA_SERVICE}, + connection_manager::ConnectionManager, +}; +use aptos_indexer_grpc_utils::status_page::{get_throughput_from_samples, render_status_page, Tab}; +use build_html::{ + Container, ContainerType, HtmlContainer, HtmlElement, HtmlTag, Table, TableCell, TableCellType, + TableRow, +}; +use std::time::Duration; +use warp::{reply::Response, Rejection}; + +pub(crate) fn status_page() -> Result { + let mut tabs = vec![]; + // TODO(grao): Add something real. + let overview_tab_content = HtmlElement::new(HtmlTag::Div).with_raw("Welcome!").into(); + tabs.push(Tab::new("Overview", overview_tab_content)); + if let Some(live_data_service) = LIVE_DATA_SERVICE.get() { + let connection_manager_info = + render_connection_manager_info(live_data_service.get_connection_manager()); + let cache_info = render_cache_info(); + let content = HtmlElement::new(HtmlTag::Div) + .with_container(connection_manager_info) + .with_container(cache_info) + .into(); + tabs.push(Tab::new("LiveDataService", content)); + } + + if let Some(historical_data_service) = HISTORICAL_DATA_SERVICE.get() { + let connection_manager_info = + render_connection_manager_info(historical_data_service.get_connection_manager()); + let file_store_info = render_file_store_info(); + let content = HtmlElement::new(HtmlTag::Div) + .with_container(connection_manager_info) + .with_container(file_store_info) + .into(); + tabs.push(Tab::new("HistoricalDataService", content)); + } + + render_status_page(tabs) +} + +fn render_connection_manager_info(connection_manager: &ConnectionManager) -> Container { + let known_latest_version = connection_manager.known_latest_version(); + let active_streams = connection_manager.get_active_streams(); + let active_streams_table = active_streams.into_iter().fold( + Table::new() + .with_attributes([("style", "width: 100%; border: 5px solid black;")]) + .with_thead_attributes([("style", "background-color: lightcoral; color: white;")]) + .with_custom_header_row( + TableRow::new() + .with_cell(TableCell::new(TableCellType::Header).with_raw("Id")) + .with_cell(TableCell::new(TableCellType::Header).with_raw("Current Version")) + .with_cell(TableCell::new(TableCellType::Header).with_raw("End Version")) + .with_cell( + TableCell::new(TableCellType::Header).with_raw("Past 10s throughput"), + ) + .with_cell( + TableCell::new(TableCellType::Header).with_raw("Past 60s throughput"), + ) + .with_cell( + TableCell::new(TableCellType::Header).with_raw("Past 10min throughput"), + ), + ), + |table, active_stream| { + table.with_custom_body_row( + TableRow::new() + .with_cell(TableCell::new(TableCellType::Data).with_raw(&active_stream.id)) + .with_cell(TableCell::new(TableCellType::Data).with_raw(format!( + "{:?}", + active_stream.progress.as_ref().and_then(|progress| { + progress.samples.last().map(|sample| sample.version) + }) + ))) + .with_cell( + TableCell::new(TableCellType::Data).with_raw(active_stream.end_version()), + ) + .with_cell(TableCell::new(TableCellType::Data).with_raw( + get_throughput_from_samples( + active_stream.progress.as_ref(), + Duration::from_secs(10), + ), + )) + .with_cell(TableCell::new(TableCellType::Data).with_raw( + get_throughput_from_samples( + active_stream.progress.as_ref(), + Duration::from_secs(60), + ), + )) + .with_cell(TableCell::new(TableCellType::Data).with_raw( + get_throughput_from_samples( + active_stream.progress.as_ref(), + Duration::from_secs(600), + ), + )), + ) + }, + ); + + Container::new(ContainerType::Section) + .with_paragraph_attr("Connection Manager", [( + "style", + "font-size: 24px; font-weight: bold;", + )]) + .with_paragraph(format!("Known latest version: {known_latest_version}.")) + .with_paragraph_attr("Active Streams", [( + "style", + "font-size: 16px; font-weight: bold;", + )]) + .with_table(active_streams_table) +} + +fn render_cache_info() -> Container { + Container::new(ContainerType::Section).with_paragraph_attr("In Memory Cache", [( + "style", + "font-size: 24px; font-weight: bold;", + )]) +} + +fn render_file_store_info() -> Container { + Container::new(ContainerType::Section).with_paragraph_attr("File Store", [( + "style", + "font-size: 24px; font-weight: bold;", + )]) +} diff --git a/ecosystem/indexer-grpc/indexer-grpc-manager/Cargo.toml b/ecosystem/indexer-grpc/indexer-grpc-manager/Cargo.toml index 03f42f2ba7a0a..59e4bb37cba31 100644 --- a/ecosystem/indexer-grpc/indexer-grpc-manager/Cargo.toml +++ b/ecosystem/indexer-grpc/indexer-grpc-manager/Cargo.toml @@ -18,6 +18,7 @@ aptos-indexer-grpc-server-framework = { workspace = true } aptos-indexer-grpc-utils = { workspace = true } aptos-protos = { workspace = true } async-trait = { workspace = true } +build_html = { workspace = true } clap = { workspace = true } dashmap = { workspace = true } futures = { workspace = true } @@ -29,6 +30,7 @@ tokio = { workspace = true } tokio-scoped = { workspace = true } tonic = { workspace = true } tracing = { workspace = true } +warp = { workspace = true } [dev-dependencies] aptos-config = { workspace = true } diff --git a/ecosystem/indexer-grpc/indexer-grpc-manager/src/config.rs b/ecosystem/indexer-grpc/indexer-grpc-manager/src/config.rs index d913cb12f674f..d2ccfcfe44300 100644 --- a/ecosystem/indexer-grpc/indexer-grpc-manager/src/config.rs +++ b/ecosystem/indexer-grpc/indexer-grpc-manager/src/config.rs @@ -8,8 +8,9 @@ use aptos_indexer_grpc_utils::config::IndexerGrpcFileStoreConfig; use serde::{Deserialize, Serialize}; use std::net::SocketAddr; use tokio::sync::OnceCell; +use warp::{reply::Response, Rejection}; -static GRPC_MANAGER: OnceCell = OnceCell::const_new(); +pub(crate) static GRPC_MANAGER: OnceCell = OnceCell::const_new(); pub(crate) type GrpcAddress = String; @@ -57,4 +58,8 @@ impl RunnableConfig for IndexerGrpcManagerConfig { fn get_server_name(&self) -> String { "grpc_manager".to_string() } + + async fn status_page(&self) -> Result { + crate::status_page::status_page().await + } } diff --git a/ecosystem/indexer-grpc/indexer-grpc-manager/src/data_manager.rs b/ecosystem/indexer-grpc/indexer-grpc-manager/src/data_manager.rs index 30020ba86a7e8..fb808d0826123 100644 --- a/ecosystem/indexer-grpc/indexer-grpc-manager/src/data_manager.rs +++ b/ecosystem/indexer-grpc/indexer-grpc-manager/src/data_manager.rs @@ -308,4 +308,17 @@ impl DataManager { pub(crate) async fn get_file_store_version(&self) -> u64 { self.file_store_reader.get_latest_version().await.unwrap() } + + pub(crate) async fn cache_stats(&self) -> String { + let cache = self.cache.read().await; + let len = cache.transactions.len() as u64; + format!( + "cache version: [{}, {}), # of txns: {}, file store version: {}, cache size: {}", + cache.start_version, + cache.start_version + len, + len, + cache.file_store_version.load(Ordering::SeqCst), + cache.cache_size + ) + } } diff --git a/ecosystem/indexer-grpc/indexer-grpc-manager/src/grpc_manager.rs b/ecosystem/indexer-grpc/indexer-grpc-manager/src/grpc_manager.rs index 3e6865d6b9e13..0f5f90c02519d 100644 --- a/ecosystem/indexer-grpc/indexer-grpc-manager/src/grpc_manager.rs +++ b/ecosystem/indexer-grpc/indexer-grpc-manager/src/grpc_manager.rs @@ -118,4 +118,12 @@ impl GrpcManager { Ok(()) } + + pub(crate) fn get_metadata_manager(&self) -> &MetadataManager { + &self.metadata_manager + } + + pub(crate) fn get_data_manager(&self) -> &DataManager { + &self.data_manager + } } diff --git a/ecosystem/indexer-grpc/indexer-grpc-manager/src/lib.rs b/ecosystem/indexer-grpc/indexer-grpc-manager/src/lib.rs index 53e78d9a93baf..71bc8760c78aa 100644 --- a/ecosystem/indexer-grpc/indexer-grpc-manager/src/lib.rs +++ b/ecosystem/indexer-grpc/indexer-grpc-manager/src/lib.rs @@ -7,5 +7,6 @@ mod file_store_uploader; mod grpc_manager; mod metadata_manager; mod service; +mod status_page; #[cfg(test)] mod test; diff --git a/ecosystem/indexer-grpc/indexer-grpc-manager/src/metadata_manager.rs b/ecosystem/indexer-grpc/indexer-grpc-manager/src/metadata_manager.rs index faaab41020001..c5a49a39b2fff 100644 --- a/ecosystem/indexer-grpc/indexer-grpc-manager/src/metadata_manager.rs +++ b/ecosystem/indexer-grpc/indexer-grpc-manager/src/metadata_manager.rs @@ -235,6 +235,13 @@ impl MetadataManager { .unwrap() } + pub(crate) fn get_fullnodes_info(&self) -> HashMap> { + self.fullnodes + .iter() + .map(|entry| (entry.key().clone(), entry.value().recent_states.clone())) + .collect() + } + pub(crate) fn get_live_data_services_info( &self, ) -> HashMap> { diff --git a/ecosystem/indexer-grpc/indexer-grpc-manager/src/status_page.rs b/ecosystem/indexer-grpc/indexer-grpc-manager/src/status_page.rs new file mode 100644 index 0000000000000..d34031239b36b --- /dev/null +++ b/ecosystem/indexer-grpc/indexer-grpc-manager/src/status_page.rs @@ -0,0 +1,395 @@ +// Copyright © Aptos Foundation +// SPDX-License-Identifier: Apache-2.0 + +use crate::{config::GRPC_MANAGER, data_manager::DataManager}; +use aptos_indexer_grpc_utils::status_page::{get_throughput_from_samples, render_status_page, Tab}; +use aptos_protos::{ + indexer::v1::{FullnodeInfo, HistoricalDataServiceInfo, LiveDataServiceInfo, StreamInfo}, + util::timestamp::Timestamp, +}; +use build_html::{ + Container, ContainerType, HtmlContainer, HtmlElement, HtmlTag, Table, TableCell, TableCellType, + TableRow, +}; +use std::{ + collections::{HashMap, VecDeque}, + time::Duration, +}; +use warp::{reply::Response, Rejection}; + +pub(crate) async fn status_page() -> Result { + let mut tabs = vec![]; + + if let Some(grpc_manager) = GRPC_MANAGER.get() { + let data_manager = grpc_manager.get_data_manager(); + tabs.push(render_overview_tab(data_manager).await); + let metadata_manager = grpc_manager.get_metadata_manager(); + tabs.push(render_fullnode_tab(metadata_manager.get_fullnodes_info())); + let live_data_services_info = metadata_manager.get_live_data_services_info(); + let historical_data_services_info = metadata_manager.get_historical_data_services_info(); + tabs.push(render_live_data_service_tab(&live_data_services_info)); + tabs.push(render_historical_data_service_tab( + &historical_data_services_info, + )); + tabs.push(render_stream_tab( + &live_data_services_info, + &historical_data_services_info, + )); + } + + render_status_page(tabs) +} + +fn render_fullnode_tab(fullnodes_info: HashMap>) -> Tab { + let overview = Container::new(ContainerType::Section) + .with_paragraph_attr("Connected Fullnodes", [( + "style", + "font-size: 24px; font-weight: bold;", + )]) + .with_table( + fullnodes_info.into_iter().fold( + Table::new() + .with_attributes([("style", "width: 100%; border: 5px solid black;")]) + .with_thead_attributes([( + "style", + "background-color: lightcoral; color: white;", + )]) + .with_custom_header_row( + TableRow::new() + .with_cell(TableCell::new(TableCellType::Header).with_raw("Id")) + .with_cell( + TableCell::new(TableCellType::Header) + .with_raw("Last Ping/Heartbeat Time"), + ) + .with_cell( + TableCell::new(TableCellType::Header) + .with_raw("Known Latest Version"), + ), + ), + |table, fullnode_info| { + let last_sample = fullnode_info.1.back(); + let (timestamp, known_latest_version) = if let Some(last_sample) = last_sample { + ( + format!("{:?}", last_sample.timestamp.unwrap()), + format!("{}", last_sample.known_latest_version()), + ) + } else { + ("No data point.".to_string(), "No data point.".to_string()) + }; + table.with_custom_body_row( + TableRow::new() + .with_cell( + TableCell::new(TableCellType::Data).with_raw(fullnode_info.0), + ) + .with_cell(TableCell::new(TableCellType::Data).with_raw(timestamp)) + .with_cell( + TableCell::new(TableCellType::Data).with_raw(known_latest_version), + ), + ) + }, + ), + ); + let content = HtmlElement::new(HtmlTag::Div) + .with_container(overview) + .into(); + + Tab::new("Fullnodes", content) +} + +fn render_live_data_service_tab( + data_services_info: &HashMap>, +) -> Tab { + let column_names = [ + "Id", + "Last Ping/Heartbeat Time", + "Known Latest Version", + "Min Servable Version", + "# of Connected Streams", + ]; + + let rows = data_services_info + .iter() + .map(|entry| { + let id = entry.0.clone(); + let last_sample = entry.1.back(); + let (timestamp, known_latest_version, min_servable_version, num_connected_streams) = + if let Some(last_sample) = last_sample { + ( + format!("{:?}", last_sample.timestamp.unwrap()), + format!("{}", last_sample.known_latest_version()), + format!("{:?}", last_sample.min_servable_version), + format!( + "{}", + last_sample + .stream_info + .as_ref() + .map(|stream_info| stream_info.active_streams.len()) + .unwrap_or_default() + ), + ) + } else { + ( + "No data point.".to_string(), + "No data point.".to_string(), + "No data point.".to_string(), + "No data point.".to_string(), + ) + }; + + [ + id, + timestamp, + known_latest_version, + min_servable_version, + num_connected_streams, + ] + }) + .collect(); + + render_data_service_tab("LiveDataServices", column_names, rows) +} + +fn render_historical_data_service_tab( + data_services_info: &HashMap>, +) -> Tab { + let column_names = [ + "Id", + "Last Ping/Heartbeat Time", + "Known Latest Version", + "# of Connected Streams", + ]; + + let rows = data_services_info + .iter() + .map(|entry| { + let id = entry.0.clone(); + let last_sample = entry.1.back(); + let (timestamp, known_latest_version, num_connected_streams) = + if let Some(last_sample) = last_sample { + ( + format!("{:?}", last_sample.timestamp.unwrap()), + format!("{}", last_sample.known_latest_version()), + format!( + "{}", + last_sample + .stream_info + .as_ref() + .map(|stream_info| stream_info.active_streams.len()) + .unwrap_or_default() + ), + ) + } else { + ( + "No data point.".to_string(), + "No data point.".to_string(), + "No data point.".to_string(), + ) + }; + + [id, timestamp, known_latest_version, num_connected_streams] + }) + .collect(); + + render_data_service_tab("HistoricalDataServices", column_names, rows) +} + +fn render_data_service_tab( + tab_name: &str, + column_names: [&str; N], + rows: Vec<[String; N]>, +) -> Tab { + let overview = Container::new(ContainerType::Section) + .with_paragraph_attr(format!("Connected {tab_name}"), [( + "style", + "font-size: 24px; font-weight: bold;", + )]) + .with_table( + rows.iter().fold( + Table::new() + .with_attributes([("style", "width: 100%; border: 5px solid black;")]) + .with_thead_attributes([( + "style", + "background-color: lightcoral; color: white;", + )]) + .with_custom_header_row(column_names.into_iter().fold( + TableRow::new(), + |row, column_name| { + row.with_cell( + TableCell::new(TableCellType::Header).with_raw(column_name), + ) + }, + )), + |table, row| { + table.with_custom_body_row(row.iter().fold(TableRow::new(), |r, cell| { + r.with_cell(TableCell::new(TableCellType::Data).with_raw(cell)) + })) + }, + ), + ); + let content = HtmlElement::new(HtmlTag::Div) + .with_container(overview) + .into(); + + Tab::new(tab_name, content) +} + +fn render_live_data_service_streams( + data_service_info: &HashMap>, +) -> Table { + let streams = data_service_info + .iter() + .filter_map(|entry| { + entry.1.back().cloned().and_then(|sample| { + sample.stream_info.map(|stream_info| { + let data_service_instance = entry.0.clone(); + ( + data_service_instance, + sample.timestamp.unwrap(), + stream_info, + ) + }) + }) + }) + .collect(); + + render_stream_table(streams) +} + +fn render_historical_data_service_streams( + data_service_info: &HashMap>, +) -> Table { + let streams = data_service_info + .iter() + .filter_map(|entry| { + entry.1.back().cloned().and_then(|sample| { + sample.stream_info.map(|stream_info| { + let data_service_instance = entry.0.clone(); + ( + data_service_instance, + sample.timestamp.unwrap(), + stream_info, + ) + }) + }) + }) + .collect(); + + render_stream_table(streams) +} + +fn render_stream_table(streams: Vec<(String, Timestamp, StreamInfo)>) -> Table { + streams.into_iter().fold( + Table::new() + .with_attributes([("style", "width: 100%; border: 5px solid black;")]) + .with_thead_attributes([("style", "background-color: lightcoral; color: white;")]) + .with_custom_header_row( + TableRow::new() + .with_cell(TableCell::new(TableCellType::Header).with_raw("Stream Id")) + .with_cell(TableCell::new(TableCellType::Header).with_raw("Timestamp")) + .with_cell(TableCell::new(TableCellType::Header).with_raw("Current Version")) + .with_cell(TableCell::new(TableCellType::Header).with_raw("End Version")) + .with_cell( + TableCell::new(TableCellType::Header).with_raw("Data Service Instance"), + ) + .with_cell( + TableCell::new(TableCellType::Header).with_raw("Past 10s throughput"), + ) + .with_cell( + TableCell::new(TableCellType::Header).with_raw("Past 60s throughput"), + ) + .with_cell( + TableCell::new(TableCellType::Header).with_raw("Past 10min throughput"), + ), + ), + |mut table, stream| { + let data_service_instance = stream.0; + let timestamp = format!("{:?}", stream.1); + stream.2.active_streams.iter().for_each(|active_stream| { + table.add_custom_body_row( + TableRow::new() + .with_cell(TableCell::new(TableCellType::Data).with_raw(&active_stream.id)) + .with_cell(TableCell::new(TableCellType::Data).with_raw(×tamp)) + .with_cell(TableCell::new(TableCellType::Data).with_raw(format!( + "{:?}", + active_stream.progress.as_ref().and_then(|progress| { + progress.samples.last().map(|sample| sample.version) + }) + ))) + .with_cell( + TableCell::new(TableCellType::Data) + .with_raw(active_stream.end_version()), + ) + .with_cell( + TableCell::new(TableCellType::Data) + .with_raw(data_service_instance.as_str()), + ) + .with_cell(TableCell::new(TableCellType::Data).with_raw( + get_throughput_from_samples( + active_stream.progress.as_ref(), + Duration::from_secs(10), + ), + )) + .with_cell(TableCell::new(TableCellType::Data).with_raw( + get_throughput_from_samples( + active_stream.progress.as_ref(), + Duration::from_secs(60), + ), + )) + .with_cell(TableCell::new(TableCellType::Data).with_raw( + get_throughput_from_samples( + active_stream.progress.as_ref(), + Duration::from_secs(600), + ), + )), + ) + }); + table + }, + ) +} + +fn render_stream_tab( + live_data_services_info: &HashMap>, + historical_data_services_info: &HashMap>, +) -> Tab { + let overview = Container::new(ContainerType::Section) + .with_paragraph_attr("Connected Streams", [( + "style", + "font-size: 24px; font-weight: bold;", + )]) + .with_paragraph_attr("LiveDataService Streams", [( + "style", + "font-size: 18px; font-weight: bold;", + )]) + .with_table(render_live_data_service_streams(live_data_services_info)) + .with_paragraph_attr("HistoricalDataService Streams", [( + "style", + "font-size: 18px; font-weight: bold;", + )]) + .with_table(render_historical_data_service_streams( + historical_data_services_info, + )); + let content = HtmlElement::new(HtmlTag::Div) + .with_container(overview) + .into(); + + Tab::new("Streams", content) +} + +async fn render_overview_tab(data_manager: &DataManager) -> Tab { + let overview = Container::new(ContainerType::Section) + .with_paragraph_attr("Cache Stats", [( + "style", + "font-size: 24px; font-weight: bold;", + )]) + .with_paragraph_attr(data_manager.cache_stats().await, [( + "style", + "font-size: 16px;", + )]); + + let content = HtmlElement::new(HtmlTag::Div) + .with_container(overview) + .into(); + + Tab::new("Overview", content) +} diff --git a/ecosystem/indexer-grpc/indexer-grpc-server-framework/src/lib.rs b/ecosystem/indexer-grpc/indexer-grpc-server-framework/src/lib.rs index ce4a68249e82a..80197d83d2e7f 100644 --- a/ecosystem/indexer-grpc/indexer-grpc-server-framework/src/lib.rs +++ b/ecosystem/indexer-grpc/indexer-grpc-server-framework/src/lib.rs @@ -13,7 +13,7 @@ use std::convert::Infallible; use std::{fs::File, io::Read, panic::PanicInfo, path::PathBuf, process}; use tracing::error; use tracing_subscriber::EnvFilter; -use warp::{http::Response, Filter}; +use warp::{http::Response, reply::Reply, Filter}; /// ServerArgs bootstraps a server with all common pieces. And then triggers the run method for /// the specific service. @@ -45,8 +45,9 @@ where { let health_port = config.health_check_port; // Start liveness and readiness probes. + let config_clone = config.clone(); let task_handler = tokio::spawn(async move { - register_probes_and_metrics_handler(health_port).await; + register_probes_and_metrics_handler(config_clone, health_port).await; anyhow::Ok(()) }); let main_task_handler = @@ -71,7 +72,7 @@ where } } -#[derive(Deserialize, Debug, Serialize)] +#[derive(Deserialize, Clone, Debug, Serialize)] pub struct GenericConfig { // Shared configuration among all services. pub health_check_port: u16, @@ -96,11 +97,15 @@ where fn get_server_name(&self) -> String { self.server_config.get_server_name() } + + async fn status_page(&self) -> Result { + self.server_config.status_page().await + } } /// RunnableConfig is a trait that all services must implement for their configuration. #[async_trait::async_trait] -pub trait RunnableConfig: DeserializeOwned + Send + Sync + 'static { +pub trait RunnableConfig: Clone + DeserializeOwned + Send + Sync + 'static { // Validate the config. fn validate(&self) -> Result<()> { Ok(()) @@ -111,6 +116,10 @@ pub trait RunnableConfig: DeserializeOwned + Send + Sync + 'static { // Get the server name. fn get_server_name(&self) -> String; + + async fn status_page(&self) -> Result { + Ok("Status page is not found.".into_response()) + } } /// Parse a yaml file into a struct. @@ -181,7 +190,10 @@ pub fn setup_logging(make_writer: Option Box } /// Register readiness and liveness probes and set up metrics endpoint. -async fn register_probes_and_metrics_handler(port: u16) { +async fn register_probes_and_metrics_handler(config: GenericConfig, port: u16) +where + C: RunnableConfig, +{ let readiness = warp::path("readiness") .map(move || warp::reply::with_status("ready", warp::http::StatusCode::OK)); @@ -201,6 +213,11 @@ async fn register_probes_and_metrics_handler(port: u16) { .body(encode_buffer) }); + let status_endpoint = warp::path::end().and_then(move || { + let config = config.clone(); + async move { config.status_page().await } + }); + if cfg!(target_os = "linux") { #[cfg(target_os = "linux")] let profilez = warp::path("profilez").and_then(|| async move { @@ -228,11 +245,16 @@ async fn register_probes_and_metrics_handler(port: u16) { }) }); #[cfg(target_os = "linux")] - warp::serve(readiness.or(metrics_endpoint).or(profilez)) - .run(([0, 0, 0, 0], port)) - .await; + warp::serve( + readiness + .or(metrics_endpoint) + .or(status_endpoint) + .or(profilez), + ) + .run(([0, 0, 0, 0], port)) + .await; } else { - warp::serve(readiness.or(metrics_endpoint)) + warp::serve(readiness.or(metrics_endpoint).or(status_endpoint)) .run(([0, 0, 0, 0], port)) .await; } diff --git a/ecosystem/indexer-grpc/indexer-grpc-utils/Cargo.toml b/ecosystem/indexer-grpc/indexer-grpc-utils/Cargo.toml index 2c0516ddda804..86422a747120b 100644 --- a/ecosystem/indexer-grpc/indexer-grpc-utils/Cargo.toml +++ b/ecosystem/indexer-grpc/indexer-grpc-utils/Cargo.toml @@ -19,6 +19,8 @@ aptos-protos = { workspace = true } async-trait = { workspace = true } backoff = { workspace = true } base64 = { workspace = true } +build_html = { workspace = true } +bytesize = { workspace = true } chrono = { workspace = true } cloud-storage = { workspace = true } dashmap = { workspace = true } @@ -38,3 +40,4 @@ tokio-util = { workspace = true } tonic = { workspace = true } tracing = { workspace = true } url = { workspace = true } +warp = { workspace = true } diff --git a/ecosystem/indexer-grpc/indexer-grpc-utils/src/lib.rs b/ecosystem/indexer-grpc/indexer-grpc-utils/src/lib.rs index a067f25d8c32e..d6d45b38e1baf 100644 --- a/ecosystem/indexer-grpc/indexer-grpc-utils/src/lib.rs +++ b/ecosystem/indexer-grpc/indexer-grpc-utils/src/lib.rs @@ -9,6 +9,7 @@ pub mod counters; pub mod file_store_operator; pub mod file_store_operator_v2; pub mod in_memory_cache; +pub mod status_page; pub mod types; use anyhow::{Context, Result}; diff --git a/ecosystem/indexer-grpc/indexer-grpc-utils/src/status_page/html.rs b/ecosystem/indexer-grpc/indexer-grpc-utils/src/status_page/html.rs new file mode 100644 index 0000000000000..05eb55251a740 --- /dev/null +++ b/ecosystem/indexer-grpc/indexer-grpc-utils/src/status_page/html.rs @@ -0,0 +1,61 @@ +// Copyright (c) Aptos Foundation +// SPDX-License-Identifier: Apache-2.0 + +const STYLE: &str = r#" +#nav-bar { + background-color: #333; + overflow: hidden; + margin-bottom: 20px; + padding: 10px 0; +} + +#nav-bar ul { + list-style-type: none; + margin: 0; + padding: 0; + display: flex; + justify-content: center; +} + +.tab { + display: inline; + padding: 14px 20px; + cursor: pointer; + color: white; + text-align: center; + text-decoration: none; + background-color: #333; + border: 1px solid #444; + transition: background-color 0.3s ease; +} + +.tab:hover { + background-color: #575757; +} + +.tab.active { + background-color: #0077ff; + border-color: #0055bb; + font-weight: bold; +} + +tbody tr:nth-child(odd) { + background-color: #77bbcc; +} + +tbody tr:nth-child(even) { + background-color: #ee99ee; +} + +"#; + +const SCRIPT: &str = r#" +function showTab(index) { + let tabs = document.querySelectorAll('[id^="tab-"]'); + let navItems = document.querySelectorAll('.tab'); + tabs.forEach(tab => tab.style.display = 'none'); + navItems.forEach(item => item.classList.remove('active')); + document.getElementById('tab-' + index).style.display = 'block'; + navItems[index].classList.add('active'); +} +"#; diff --git a/ecosystem/indexer-grpc/indexer-grpc-utils/src/status_page/mod.rs b/ecosystem/indexer-grpc/indexer-grpc-utils/src/status_page/mod.rs new file mode 100644 index 0000000000000..0e28902023bb2 --- /dev/null +++ b/ecosystem/indexer-grpc/indexer-grpc-utils/src/status_page/mod.rs @@ -0,0 +1,117 @@ +// Copyright © Aptos Foundation +// SPDX-License-Identifier: Apache-2.0 + +use crate::timestamp_to_unixtime; +use aptos_protos::indexer::v1::StreamProgress; +use build_html::{Html, HtmlChild, HtmlContainer, HtmlElement, HtmlPage, HtmlTag}; +use std::time::{Duration, SystemTime}; +use warp::{ + reply::{html, Reply, Response}, + Rejection, +}; + +include!("html.rs"); + +pub struct Tab { + name: String, + content: HtmlChild, +} + +impl Tab { + pub fn new(name: &str, content: HtmlChild) -> Self { + Self { + name: name.to_string(), + content, + } + } +} + +pub fn render_status_page(tabs: Vec) -> Result { + let tab_names = tabs.iter().map(|tab| tab.name.clone()).collect::>(); + let tab_contents = tabs.into_iter().map(|tab| tab.content).collect::>(); + + let nav_bar = HtmlElement::new(HtmlTag::Div) + .with_attribute("id", "nav-bar") + .with_child( + tab_names + .into_iter() + .enumerate() + .fold( + HtmlElement::new(HtmlTag::UnorderedList), + |ul, (i, tab_name)| { + ul.with_child( + HtmlElement::new(HtmlTag::ListElement) + .with_attribute("onclick", format!("showTab({i})")) + .with_attribute("class", if i == 0 { "tab active" } else { "tab" }) + .with_child(tab_name.into()) + .into(), + ) + }, + ) + .into(), + ); + + let content = tab_contents.into_iter().enumerate().fold( + HtmlElement::new(HtmlTag::Div), + |div, (i, tab_content)| { + div.with_child( + HtmlElement::new(HtmlTag::Div) + .with_attribute("id", format!("tab-{i}")) + .with_attribute( + "style", + if i == 0 { + "display: block;" + } else { + "display: none;" + }, + ) + .with_child(tab_content) + .into(), + ) + }, + ); + + let page = HtmlPage::new() + .with_title("Status") + .with_style(STYLE) + .with_script_literal(SCRIPT) + .with_raw(nav_bar) + .with_raw(content) + .to_html_string(); + + Ok(html(page).into_response()) +} + +pub fn get_throughput_from_samples( + progress: Option<&StreamProgress>, + duration: Duration, +) -> String { + if let Some(progress) = progress { + let now = SystemTime::now() + .duration_since(SystemTime::UNIX_EPOCH) + .unwrap() + .as_secs_f64(); + let index = progress.samples.partition_point(|p| { + let diff = now - timestamp_to_unixtime(p.timestamp.as_ref().unwrap()); + diff > duration.as_secs_f64() + }); + + // Need 2 sample points for calculation. + // TODO(grao): Consider doing interpolation here. + if index + 1 < progress.samples.len() { + let sample_a = progress.samples[index]; + let sample_b = progress.samples.last().unwrap(); + let time_diff = timestamp_to_unixtime(sample_b.timestamp.as_ref().unwrap()) + - timestamp_to_unixtime(sample_a.timestamp.as_ref().unwrap()); + let tps = (sample_b.version - sample_a.version) as f64 / time_diff; + let bps = (sample_b.size_bytes - sample_a.size_bytes) as f64 / time_diff; + return format!( + "{} tps, {} / s", + tps as u64, + bytesize::to_string(bps as u64, /*si_prefix=*/ false) + ); + } + } + + "No data".to_string() +} From eda471af32132f3d95c0787f133c219bae67fc08 Mon Sep 17 00:00:00 2001 From: George Mitenkov Date: Sat, 1 Feb 2025 00:41:15 +0000 Subject: [PATCH 27/30] [block-stm] Do not set incorrect use on storage errors (#15855) --- aptos-move/block-executor/src/view.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/aptos-move/block-executor/src/view.rs b/aptos-move/block-executor/src/view.rs index 889e905e49c79..9bd3c5c1c89f6 100644 --- a/aptos-move/block-executor/src/view.rs +++ b/aptos-move/block-executor/src/view.rs @@ -1090,10 +1090,9 @@ impl<'a, T: Transaction, S: TStateView> LatestView<'a, T, S> { "[VM, StateView] Error getting data from storage for {:?}", state_key ); - self.mark_incorrect_use(); } - ret.map_err(Into::into) + ret } fn patch_base_value( From 20a11aae77279d707672b1f673481a136b9fbf67 Mon Sep 17 00:00:00 2001 From: George Mitenkov Date: Sat, 1 Feb 2025 01:49:00 +0000 Subject: [PATCH 28/30] [move] Refactor type caches in loader (#15818) --- .../src/code_cache_global_manager.rs | 2 +- aptos-move/block-executor/src/executor.rs | 2 +- .../e2e-benchmark/data/calibration_values.tsv | 84 +++--- testsuite/single_node_performance_values.tsv | 100 +++---- .../move/move-vm/runtime/src/interpreter.rs | 7 +- .../move/move-vm/runtime/src/loader/mod.rs | 152 +++++------ .../move/move-vm/runtime/src/session.rs | 31 +-- .../runtime/src/storage/environment.rs | 48 +--- .../move/move-vm/runtime/src/storage/mod.rs | 1 - .../move-vm/runtime/src/storage/ty_cache.rs | 252 ------------------ .../src/storage/ty_layout_converter.rs | 53 +--- .../runtime/src/storage/ty_tag_converter.rs | 8 + 12 files changed, 196 insertions(+), 544 deletions(-) delete mode 100644 third_party/move/move-vm/runtime/src/storage/ty_cache.rs diff --git a/aptos-move/block-executor/src/code_cache_global_manager.rs b/aptos-move/block-executor/src/code_cache_global_manager.rs index be1df2dfe7ce9..38d37b90cec06 100644 --- a/aptos-move/block-executor/src/code_cache_global_manager.rs +++ b/aptos-move/block-executor/src/code_cache_global_manager.rs @@ -122,7 +122,7 @@ where // If the environment caches too many struct names, flush type caches. Also flush module // caches because they contain indices for struct names. if struct_name_index_map_size > config.max_struct_name_index_map_num_entries { - runtime_environment.flush_struct_name_and_info_caches(); + runtime_environment.flush_struct_name_and_tag_caches(); self.module_cache.flush(); } diff --git a/aptos-move/block-executor/src/executor.rs b/aptos-move/block-executor/src/executor.rs index dbe8fc03e6fd8..2bacee3ae3ff8 100644 --- a/aptos-move/block-executor/src/executor.rs +++ b/aptos-move/block-executor/src/executor.rs @@ -1734,7 +1734,7 @@ where module_cache_manager_guard .environment() .runtime_environment() - .flush_struct_name_and_info_caches(); + .flush_struct_name_and_tag_caches(); module_cache_manager_guard.module_cache_mut().flush(); info!("parallel execution requiring fallback"); diff --git a/aptos-move/e2e-benchmark/data/calibration_values.tsv b/aptos-move/e2e-benchmark/data/calibration_values.tsv index 3704a9746ed99..4dbd5dfbcf8bc 100644 --- a/aptos-move/e2e-benchmark/data/calibration_values.tsv +++ b/aptos-move/e2e-benchmark/data/calibration_values.tsv @@ -1,42 +1,42 @@ -Loop { loop_count: Some(100000), loop_type: NoOp } 10 0.975 1.147 42199.1 -Loop { loop_count: Some(10000), loop_type: Arithmetic } 10 0.980 1.163 27003.1 -CreateObjects { num_objects: 10, object_payload_size: 0 } 10 0.960 1.183 132.5 -CreateObjects { num_objects: 10, object_payload_size: 10240 } 10 0.945 1.063 9895.0 -CreateObjects { num_objects: 100, object_payload_size: 0 } 10 0.983 1.088 1207.4 -CreateObjects { num_objects: 100, object_payload_size: 10240 } 10 0.960 1.116 11541.9 -InitializeVectorPicture { length: 128 } 10 0.922 1.053 182.6 -VectorPicture { length: 128 } 10 0.943 1.072 48.6 -VectorPictureRead { length: 128 } 10 0.956 1.077 47.6 -InitializeVectorPicture { length: 30720 } 10 0.966 1.137 27792.6 -VectorPicture { length: 30720 } 10 0.942 1.117 6898.1 -VectorPictureRead { length: 30720 } 10 0.944 1.114 6873.3 -SmartTablePicture { length: 30720, num_points_per_txn: 200 } 10 0.977 1.081 35753.8 -SmartTablePicture { length: 1048576, num_points_per_txn: 300 } 10 0.976 1.088 62351.5 -ResourceGroupsSenderWriteTag { string_length: 1024 } 10 0.944 1.084 18.2 -ResourceGroupsSenderMultiChange { string_length: 1024 } 10 0.930 1.028 34.4 -TokenV1MintAndTransferFT 10 0.967 1.113 449.5 -TokenV1MintAndTransferNFTSequential 10 0.983 1.177 671.4 -TokenV2AmbassadorMint { numbered: true } 10 0.980 1.100 519.7 -LiquidityPoolSwap { is_stable: true } 10 0.978 1.096 730.4 -LiquidityPoolSwap { is_stable: false } 10 0.989 1.117 678.7 -CoinInitAndMint 10 0.942 1.129 264.0 -FungibleAssetMint 10 0.970 1.044 272.9 -IncGlobalMilestoneAggV2 { milestone_every: 1 } 10 0.971 1.073 34.4 -IncGlobalMilestoneAggV2 { milestone_every: 2 } 10 0.943 1.047 21.1 -EmitEvents { count: 1000 } 10 0.969 1.105 6387.1 -APTTransferWithPermissionedSigner 10 0.979 1.083 1196.2 -APTTransferWithMasterSigner 10 0.968 1.098 187.6 -VectorTrimAppend { vec_len: 3000, element_len: 1, index: 0, repeats: 0 } 10 0.966 1.055 6409.9 -VectorTrimAppend { vec_len: 3000, element_len: 1, index: 100, repeats: 1000 } 10 0.984 1.072 27842.9 -VectorTrimAppend { vec_len: 3000, element_len: 1, index: 2990, repeats: 1000 } 10 0.986 1.064 16499.0 -VectorRemoveInsert { vec_len: 3000, element_len: 1, index: 100, repeats: 1000 } 10 0.988 1.084 23793.9 -VectorRemoveInsert { vec_len: 3000, element_len: 1, index: 2998, repeats: 1000 } 10 0.928 1.010 17096.6 -VectorRangeMove { vec_len: 3000, element_len: 1, index: 1000, move_len: 500, repeats: 1000 } 10 0.925 1.333 31116.2 -VectorTrimAppend { vec_len: 100, element_len: 100, index: 0, repeats: 0 } 10 0.967 1.079 289.6 -VectorTrimAppend { vec_len: 100, element_len: 100, index: 10, repeats: 1000 } 10 0.976 1.057 11707.8 -VectorRangeMove { vec_len: 100, element_len: 100, index: 50, move_len: 10, repeats: 1000 } 10 0.984 1.067 4757.9 -MapInsertRemove { len: 100, repeats: 100, map_type: OrderedMap } 10 0.976 1.058 11398.6 -MapInsertRemove { len: 100, repeats: 100, map_type: SimpleMap } 10 0.955 1.070 34260.4 -MapInsertRemove { len: 100, repeats: 100, map_type: BigOrderedMap { inner_max_degree: 4, leaf_max_degree: 4 } } 10 0.980 1.085 104588.7 -MapInsertRemove { len: 100, repeats: 100, map_type: BigOrderedMap { inner_max_degree: 1024, leaf_max_degree: 1024 } } 10 0.964 1.054 18257.0 -MapInsertRemove { len: 1000, repeats: 100, map_type: OrderedMap } 10 0.948 1.042 57016.3 +Loop { loop_count: Some(100000), loop_type: NoOp } 10 0.965 1.031 43125.6 +Loop { loop_count: Some(10000), loop_type: Arithmetic } 10 0.986 1.080 26810.1 +CreateObjects { num_objects: 10, object_payload_size: 0 } 10 0.952 1.025 167.2 +CreateObjects { num_objects: 10, object_payload_size: 10240 } 10 0.993 1.094 9731.3 +CreateObjects { num_objects: 100, object_payload_size: 0 } 10 0.976 1.066 1455.7 +CreateObjects { num_objects: 100, object_payload_size: 10240 } 10 0.958 1.079 11812.5 +InitializeVectorPicture { length: 128 } 10 0.976 1.062 189.6 +VectorPicture { length: 128 } 10 0.958 1.059 52.4 +VectorPictureRead { length: 128 } 10 0.952 1.041 51.3 +InitializeVectorPicture { length: 30720 } 10 0.958 1.086 28096.3 +VectorPicture { length: 30720 } 10 0.961 1.069 6811.7 +VectorPictureRead { length: 30720 } 10 0.953 1.066 6824.0 +SmartTablePicture { length: 30720, num_points_per_txn: 200 } 10 0.985 1.054 36305.8 +SmartTablePicture { length: 1048576, num_points_per_txn: 300 } 10 0.984 1.051 63197.1 +ResourceGroupsSenderWriteTag { string_length: 1024 } 10 0.922 1.031 21.9 +ResourceGroupsSenderMultiChange { string_length: 1024 } 10 0.968 1.071 38.9 +TokenV1MintAndTransferFT 10 0.972 1.059 646.3 +TokenV1MintAndTransferNFTSequential 10 0.934 1.027 968.7 +TokenV2AmbassadorMint { numbered: true } 10 0.915 1.042 675.1 +LiquidityPoolSwap { is_stable: true } 10 0.925 1.009 912.4 +LiquidityPoolSwap { is_stable: false } 10 0.965 1.037 837.8 +CoinInitAndMint 10 0.944 1.037 319.6 +FungibleAssetMint 10 0.940 1.053 328.5 +IncGlobalMilestoneAggV2 { milestone_every: 1 } 10 0.924 1.029 39.8 +IncGlobalMilestoneAggV2 { milestone_every: 2 } 10 0.934 1.042 23.2 +EmitEvents { count: 1000 } 10 0.966 1.044 8216.6 +APTTransferWithPermissionedSigner 10 0.950 1.028 1463.5 +APTTransferWithMasterSigner 10 0.950 1.033 236.3 +VectorTrimAppend { vec_len: 3000, element_len: 1, index: 0, repeats: 0 } 10 0.961 1.073 6501.9 +VectorTrimAppend { vec_len: 3000, element_len: 1, index: 100, repeats: 1000 } 10 0.963 1.205 27994.6 +VectorTrimAppend { vec_len: 3000, element_len: 1, index: 2990, repeats: 1000 } 10 0.966 1.050 16335.1 +VectorRemoveInsert { vec_len: 3000, element_len: 1, index: 100, repeats: 1000 } 10 0.963 1.037 25367.0 +VectorRemoveInsert { vec_len: 3000, element_len: 1, index: 2998, repeats: 1000 } 10 0.965 1.045 16896.2 +VectorRangeMove { vec_len: 3000, element_len: 1, index: 1000, move_len: 500, repeats: 1000 } 10 0.898 1.066 32347.9 +VectorTrimAppend { vec_len: 100, element_len: 100, index: 0, repeats: 0 } 10 0.972 1.050 295.7 +VectorTrimAppend { vec_len: 100, element_len: 100, index: 10, repeats: 1000 } 10 0.969 1.043 10454.4 +VectorRangeMove { vec_len: 100, element_len: 100, index: 50, move_len: 10, repeats: 1000 } 10 0.958 1.030 4856.6 +MapInsertRemove { len: 100, repeats: 100, map_type: OrderedMap } 10 0.984 1.058 11728.7 +MapInsertRemove { len: 100, repeats: 100, map_type: SimpleMap } 10 0.958 1.066 33992.5 +MapInsertRemove { len: 100, repeats: 100, map_type: BigOrderedMap { inner_max_degree: 4, leaf_max_degree: 4 } } 10 0.965 1.044 111978.4 +MapInsertRemove { len: 100, repeats: 100, map_type: BigOrderedMap { inner_max_degree: 1024, leaf_max_degree: 1024 } } 10 0.945 1.027 20344.0 +MapInsertRemove { len: 1000, repeats: 100, map_type: OrderedMap } 10 0.949 1.038 59041.6 diff --git a/testsuite/single_node_performance_values.tsv b/testsuite/single_node_performance_values.tsv index 3f6f4a35bbe06..0683970ce8b27 100644 --- a/testsuite/single_node_performance_values.tsv +++ b/testsuite/single_node_performance_values.tsv @@ -1,50 +1,50 @@ -no-op 1 VM 10 0.876 1.023 37002.8 -no-op 1000 VM 10 0.857 1.020 35548.1 -apt-fa-transfer 1 VM 10 0.890 1.015 25776.8 -apt-fa-transfer 1 NativeVM 10 0.917 1.115 34059.4 -account-generation 1 VM 10 0.870 1.009 20908.8 -account-generation 1 NativeVM 10 0.874 1.168 29303.3 -account-resource32-b 1 VM 10 0.861 1.017 33129.7 -modify-global-resource 1 VM 10 0.885 1.007 2087.1 -modify-global-resource 100 VM 10 0.880 1.014 31175.8 -publish-package 1 VM 10 0.870 1.015 1147.6 -mix_publish_transfer 1 VM 10 0.867 1.019 19680.5 -batch100-transfer 1 VM 10 0.818 1.024 740.9 -batch100-transfer 1 NativeVM 10 0.824 1.146 1417.2 -vector-picture30k 1 VM 10 0.922 1.019 105.3 -vector-picture30k 100 VM 10 0.778 1.098 1672.6 -smart-table-picture30-k-with200-change 1 VM 10 0.929 1.031 17.8 -smart-table-picture30-k-with200-change 100 VM 10 0.957 1.098 216.0 -modify-global-resource-agg-v2 1 VM 10 0.848 1.024 34731.8 -modify-global-flag-agg-v2 1 VM 10 0.943 1.013 3616.0 -modify-global-bounded-agg-v2 1 VM 10 0.986 1.075 6583.6 -modify-global-milestone-agg-v2 1 VM 10 0.852 1.026 24307.2 -resource-groups-global-write-tag1-kb 1 VM 10 0.921 1.054 8183.9 -resource-groups-global-write-and-read-tag1-kb 1 VM 10 0.901 1.010 5161.0 -resource-groups-sender-write-tag1-kb 1 VM 10 0.929 1.119 17842.6 -resource-groups-sender-multi-change1-kb 1 VM 10 0.903 1.070 14544.1 -token-v1ft-mint-and-transfer 1 VM 10 0.845 1.005 1062.3 -token-v1ft-mint-and-transfer 100 VM 10 0.848 1.010 17535.3 -token-v1nft-mint-and-transfer-sequential 1 VM 10 0.838 1.015 711.1 -token-v1nft-mint-and-transfer-sequential 100 VM 10 0.862 1.019 12683.5 -coin-init-and-mint 1 VM 10 0.890 1.018 25457.5 -coin-init-and-mint 100 VM 10 0.871 1.019 21099.6 -fungible-asset-mint 1 VM 10 0.853 1.018 22312.6 -fungible-asset-mint 100 VM 10 0.877 1.029 18960.4 -no-op5-signers 1 VM 10 0.863 1.008 37213.4 -token-v2-ambassador-mint 1 VM 10 0.855 1.011 15207.9 -token-v2-ambassador-mint 100 VM 10 0.859 1.014 15065.8 -liquidity-pool-swap 1 VM 10 0.823 1.020 708.6 -liquidity-pool-swap 100 VM 10 0.857 1.005 10530.6 -liquidity-pool-swap-stable 1 VM 10 0.831 1.008 678.7 -liquidity-pool-swap-stable 100 VM 10 0.853 1.026 10042.1 -deserialize-u256 1 VM 10 0.868 1.015 35002.7 -no-op-fee-payer 1 VM 10 0.858 1.026 1737.0 -no-op-fee-payer 100 VM 10 0.848 1.007 30704.4 -simple-script 1 VM 10 0.863 1.020 36375.2 -vector-trim-append-len3000-size1 1 VM 10 0.955 1.086 608.2 -vector-remove-insert-len3000-size1 1 VM 10 0.958 1.028 669.0 -no_commit_apt-fa-transfer 1 VM 10 0.900 1.018 27149.0 -no_commit_apt-fa-transfer 1 NativeVM 10 0.871 1.013 48269.8 -no_commit_apt-fa-transfer 1 AptosVMSpeculative 10 0.902 1.013 1165.1 -no_commit_apt-fa-transfer 1 NativeSpeculative 10 0.876 1.022 95345.0 +no-op 1 VM 10 0.984 1.024 32031.7 +no-op 1000 VM 10 0.979 1.016 31056.8 +apt-fa-transfer 1 VM 10 0.924 1.035 22553.8 +apt-fa-transfer 1 NativeVM 10 0.953 1.157 33460.2 +account-generation 1 VM 10 0.988 1.022 16663.9 +account-generation 1 NativeVM 10 0.967 1.122 28404.4 +account-resource32-b 1 VM 10 0.987 1.030 29357.5 +modify-global-resource 1 VM 10 0.987 1.020 1922.7 +modify-global-resource 100 VM 10 0.992 1.016 26810.1 +publish-package 1 VM 10 0.987 1.011 1143.2 +mix_publish_transfer 1 VM 10 0.973 1.026 17671.5 +batch100-transfer 1 VM 10 0.974 1.027 653.4 +batch100-transfer 1 NativeVM 10 0.915 1.092 1424.8 +vector-picture30k 1 VM 10 0.981 1.031 102.1 +vector-picture30k 100 VM 10 0.919 1.049 1752.8 +smart-table-picture30-k-with200-change 1 VM 10 0.930 1.055 17.6 +smart-table-picture30-k-with200-change 100 VM 10 0.942 1.056 232.3 +modify-global-resource-agg-v2 1 VM 10 0.987 1.023 30244.8 +modify-global-flag-agg-v2 1 VM 10 0.991 1.012 3309.5 +modify-global-bounded-agg-v2 1 VM 10 0.949 1.068 6076.8 +modify-global-milestone-agg-v2 1 VM 10 0.979 1.029 21485.1 +resource-groups-global-write-tag1-kb 1 VM 10 0.974 1.025 7604.0 +resource-groups-global-write-and-read-tag1-kb 1 VM 10 0.991 1.019 4625.3 +resource-groups-sender-write-tag1-kb 1 VM 10 0.884 1.057 18361.5 +resource-groups-sender-multi-change1-kb 1 VM 10 0.776 1.091 14624.7 +token-v1ft-mint-and-transfer 1 VM 10 0.989 1.016 878.0 +token-v1ft-mint-and-transfer 100 VM 10 0.991 1.022 11216.4 +token-v1nft-mint-and-transfer-sequential 1 VM 10 0.985 1.012 593.6 +token-v1nft-mint-and-transfer-sequential 100 VM 10 0.977 1.017 8431.5 +coin-init-and-mint 1 VM 10 0.980 1.028 20568.6 +coin-init-and-mint 100 VM 10 0.991 1.011 16564.9 +fungible-asset-mint 1 VM 10 0.961 1.035 18361.5 +fungible-asset-mint 100 VM 10 0.989 1.011 15647.8 +no-op5-signers 1 VM 10 0.963 1.019 32157.5 +token-v2-ambassador-mint 1 VM 10 0.980 1.031 11728.7 +token-v2-ambassador-mint 100 VM 10 0.977 1.018 11686.9 +liquidity-pool-swap 1 VM 10 0.965 1.016 627.6 +liquidity-pool-swap 100 VM 10 0.977 1.033 8071.0 +liquidity-pool-swap-stable 1 VM 10 0.988 1.018 608.2 +liquidity-pool-swap-stable 100 VM 10 0.973 1.019 7838.9 +deserialize-u256 1 VM 10 0.976 1.018 30415.8 +no-op-fee-payer 1 VM 10 0.984 1.025 1591.1 +no-op-fee-payer 100 VM 10 0.976 1.026 24919.8 +simple-script 1 VM 10 0.982 1.027 31235.5 +vector-trim-append-len3000-size1 1 VM 10 0.982 1.057 616.2 +vector-remove-insert-len3000-size1 1 VM 10 0.934 1.033 671.4 +no_commit_apt-fa-transfer 1 VM 10 0.992 1.010 23541.0 +no_commit_apt-fa-transfer 1 NativeVM 10 0.993 1.006 48441.8 +no_commit_apt-fa-transfer 1 AptosVMSpeculative 10 0.988 1.008 1165.1 +no_commit_apt-fa-transfer 1 NativeSpeculative 10 0.977 1.005 96539.7 diff --git a/third_party/move/move-vm/runtime/src/interpreter.rs b/third_party/move/move-vm/runtime/src/interpreter.rs index 43918cf9d797f..2af79dc928885 100644 --- a/third_party/move/move-vm/runtime/src/interpreter.rs +++ b/third_party/move/move-vm/runtime/src/interpreter.rs @@ -28,6 +28,7 @@ use move_core_types::{ language_storage::{ModuleId, TypeTag}, vm_status::{StatusCode, StatusType}, }; +use move_vm_metrics::{Timer, VM_TIMER}; use move_vm_types::{ debug_write, debug_writeln, gas::{GasMeter, SimpleInstruction}, @@ -45,7 +46,7 @@ use move_vm_types::{ use std::{ cell::RefCell, cmp::min, - collections::{btree_map, BTreeSet, VecDeque}, + collections::{btree_map, BTreeSet, HashMap, VecDeque}, fmt::Write, rc::Rc, }; @@ -1541,6 +1542,8 @@ impl CallStack { } fn check_depth_of_type(resolver: &Resolver, ty: &Type) -> PartialVMResult<()> { + let _timer = VM_TIMER.timer_with_label("Interpreter::check_depth_of_type"); + // Start at 1 since we always call this right before we add a new node to the value's depth. let max_depth = match resolver.vm_config().max_value_nest_depth { Some(max_depth) => max_depth, @@ -1589,6 +1592,7 @@ fn check_depth_of_type_impl( *idx, resolver.module_store(), resolver.module_storage(), + &mut HashMap::new(), )?; check_depth!(formula.solve(&[])) }, @@ -1606,6 +1610,7 @@ fn check_depth_of_type_impl( *idx, resolver.module_store(), resolver.module_storage(), + &mut HashMap::new(), )?; check_depth!(formula.solve(&ty_arg_depths)) }, diff --git a/third_party/move/move-vm/runtime/src/loader/mod.rs b/third_party/move/move-vm/runtime/src/loader/mod.rs index fe5ec818db599..8efc90f364059 100644 --- a/third_party/move/move-vm/runtime/src/loader/mod.rs +++ b/third_party/move/move-vm/runtime/src/loader/mod.rs @@ -40,7 +40,7 @@ use move_vm_types::{ }; use parking_lot::{Mutex, RwLock}; use std::{ - collections::{btree_map, BTreeMap, BTreeSet}, + collections::{btree_map, BTreeMap, BTreeSet, HashMap}, hash::Hash, sync::Arc, }; @@ -57,8 +57,10 @@ use crate::{ loader::modules::{StructVariantInfo, VariantFieldInfo}, native_functions::NativeFunctions, storage::{ - loader::LoaderV2, module_storage::FunctionValueExtensionAdapter, ty_cache::StructInfoCache, - ty_layout_converter::LoaderLayoutConverter, ty_tag_converter::TypeTagConverter, + loader::LoaderV2, + module_storage::FunctionValueExtensionAdapter, + ty_layout_converter::LoaderLayoutConverter, + ty_tag_converter::{PricedStructTag, TypeTagCache, TypeTagConverter}, }, }; pub use function::{Function, LoadedFunction}; @@ -153,16 +155,6 @@ impl Loader { versioned_loader_getter!(ty_builder, TypeBuilder); - pub(crate) fn ty_cache<'a>( - &'a self, - module_storage: &'a dyn ModuleStorage, - ) -> &StructInfoCache { - match self { - Self::V1(loader) => &loader.type_cache, - Self::V2(_) => module_storage.runtime_environment().ty_cache(), - } - } - pub(crate) fn struct_name_index_map<'a>( &'a self, module_storage: &'a dyn ModuleStorage, @@ -176,7 +168,7 @@ impl Loader { pub(crate) fn v1(natives: NativeFunctions, vm_config: VMConfig) -> Self { Self::V1(LoaderV1 { scripts: RwLock::new(ScriptCache::new()), - type_cache: StructInfoCache::empty(), + type_cache: TypeTagCache::empty(), name_cache: StructNameIndexMap::empty(), natives, invalidated: RwLock::new(false), @@ -378,7 +370,7 @@ impl Loader { // The `pub(crate)` API is what a Loader offers to the runtime. pub(crate) struct LoaderV1 { scripts: RwLock, - type_cache: StructInfoCache, + type_cache: TypeTagCache, natives: NativeFunctions, pub(crate) name_cache: StructNameIndexMap, @@ -1727,9 +1719,9 @@ impl LoaderV1 { ty_args: &[Type], gas_context: &mut PseudoGasContext, ) -> PartialVMResult { - if let Some((struct_tag, gas)) = self.type_cache.get_struct_tag(&struct_name_idx, ty_args) { - gas_context.charge(gas)?; - return Ok(struct_tag.clone()); + if let Some(priced_tag) = self.type_cache.get_struct_tag(&struct_name_idx, ty_args) { + gas_context.charge(priced_tag.pseudo_gas_cost)?; + return Ok(priced_tag.struct_tag); } let cur_cost = gas_context.current_cost(); @@ -1743,13 +1735,14 @@ impl LoaderV1 { .idx_to_struct_tag(struct_name_idx, type_args)?; gas_context.charge_struct_tag(&struct_tag)?; - self.type_cache.store_struct_tag( - struct_name_idx, - ty_args.to_vec(), - struct_tag.clone(), - gas_context.current_cost() - cur_cost, - ); - Ok(struct_tag) + + let priced_tag = PricedStructTag { + struct_tag, + pseudo_gas_cost: gas_context.current_cost() - cur_cost, + }; + self.type_cache + .insert_struct_tag(&struct_name_idx, ty_args, &priced_tag); + Ok(priced_tag.struct_tag) } pub(crate) fn type_to_type_tag_impl( @@ -1813,10 +1806,10 @@ impl Loader { struct_name_idx: StructNameIndex, module_store: &LegacyModuleStorageAdapter, module_storage: &dyn ModuleStorage, + visited_cache: &mut HashMap, ) -> PartialVMResult { - let ty_cache = self.ty_cache(module_storage); - if let Some(depth_formula) = ty_cache.get_depth_formula(&struct_name_idx) { - return Ok(depth_formula); + if let Some(depth_formula) = visited_cache.get(&struct_name_idx) { + return Ok(depth_formula.clone()); } let struct_type = @@ -1825,22 +1818,46 @@ impl Loader { StructLayout::Single(fields) => fields .iter() .map(|(_, field_ty)| { - self.calculate_depth_of_type(field_ty, module_store, module_storage) + self.calculate_depth_of_type( + field_ty, + module_store, + module_storage, + visited_cache, + ) }) .collect::>>()?, StructLayout::Variants(variants) => variants .iter() .flat_map(|variant| variant.1.iter().map(|(_, ty)| ty)) .map(|field_ty| { - self.calculate_depth_of_type(field_ty, module_store, module_storage) + self.calculate_depth_of_type( + field_ty, + module_store, + module_storage, + visited_cache, + ) }) .collect::>>()?, }; let formula = DepthFormula::normalize(formulas); - - let struct_name_index_map = self.struct_name_index_map(module_storage); - ty_cache.store_depth_formula(struct_name_idx, struct_name_index_map, &formula)?; + if visited_cache + .insert(struct_name_idx, formula.clone()) + .is_some() + { + // Same thread has put this entry previously, which means there is a recursion. + let struct_name = self + .struct_name_index_map(module_storage) + .idx_to_struct_name_ref(struct_name_idx)?; + return Err( + PartialVMError::new(StatusCode::UNKNOWN_INVARIANT_VIOLATION_ERROR).with_message( + format!( + "Depth formula for struct '{}' is already cached by the same thread", + struct_name.as_ref(), + ), + ), + ); + } Ok(formula) } @@ -1849,6 +1866,7 @@ impl Loader { ty: &Type, module_store: &LegacyModuleStorageAdapter, module_storage: &dyn ModuleStorage, + visited_cache: &mut HashMap, ) -> PartialVMResult { Ok(match ty { Type::Bool @@ -1861,19 +1879,25 @@ impl Loader { | Type::U32 | Type::U256 => DepthFormula::constant(1), Type::Vector(ty) => { - let mut inner = self.calculate_depth_of_type(ty, module_store, module_storage)?; + let mut inner = + self.calculate_depth_of_type(ty, module_store, module_storage, visited_cache)?; inner.scale(1); inner }, Type::Reference(ty) | Type::MutableReference(ty) => { - let mut inner = self.calculate_depth_of_type(ty, module_store, module_storage)?; + let mut inner = + self.calculate_depth_of_type(ty, module_store, module_storage, visited_cache)?; inner.scale(1); inner }, Type::TyParam(ty_idx) => DepthFormula::type_parameter(*ty_idx), Type::Struct { idx, .. } => { - let mut struct_formula = - self.calculate_depth_of_struct(*idx, module_store, module_storage)?; + let mut struct_formula = self.calculate_depth_of_struct( + *idx, + module_store, + module_storage, + visited_cache, + )?; debug_assert!(struct_formula.terms.is_empty()); struct_formula.scale(1); struct_formula @@ -1886,12 +1910,21 @@ impl Loader { let var = idx as TypeParameterIndex; Ok(( var, - self.calculate_depth_of_type(ty, module_store, module_storage)?, + self.calculate_depth_of_type( + ty, + module_store, + module_storage, + visited_cache, + )?, )) }) .collect::>>()?; - let struct_formula = - self.calculate_depth_of_struct(*idx, module_store, module_storage)?; + let struct_formula = self.calculate_depth_of_struct( + *idx, + module_store, + module_storage, + visited_cache, + )?; let mut subst_struct_formula = struct_formula.subst(ty_arg_map)?; subst_struct_formula.scale(1); subst_struct_formula @@ -1900,45 +1933,6 @@ impl Loader { } } -// Public APIs for external uses. -impl Loader { - pub(crate) fn get_type_layout( - &self, - type_tag: &TypeTag, - move_storage: &mut TransactionDataCache, - module_storage_adapter: &LegacyModuleStorageAdapter, - module_storage: &impl ModuleStorage, - ) -> VMResult { - let ty = self.load_type( - type_tag, - move_storage, - module_storage_adapter, - module_storage, - )?; - LoaderLayoutConverter::new(self, module_storage_adapter, module_storage) - .type_to_type_layout(&ty) - .map_err(|e| e.finish(Location::Undefined)) - } - - pub(crate) fn get_fully_annotated_type_layout( - &self, - type_tag: &TypeTag, - move_storage: &mut TransactionDataCache, - module_storage_adapter: &LegacyModuleStorageAdapter, - module_storage: &impl ModuleStorage, - ) -> VMResult { - let ty = self.load_type( - type_tag, - move_storage, - module_storage_adapter, - module_storage, - )?; - LoaderLayoutConverter::new(self, module_storage_adapter, module_storage) - .type_to_fully_annotated_layout(&ty) - .map_err(|e| e.finish(Location::Undefined)) - } -} - // Matches the actual returned type to the expected type, binding any type args to the // necessary type as stored in the map. The expected type must be a concrete type (no TyParam). // Returns true if a successful match is made. diff --git a/third_party/move/move-vm/runtime/src/session.rs b/third_party/move/move-vm/runtime/src/session.rs index 831c1e93e696d..5da9e3c3662f0 100644 --- a/third_party/move/move-vm/runtime/src/session.rs +++ b/third_party/move/move-vm/runtime/src/session.rs @@ -441,35 +441,6 @@ impl<'r, 'l> Session<'r, 'l> { ) } - pub fn get_type_layout( - &mut self, - type_tag: &TypeTag, - module_storage: &impl ModuleStorage, - ) -> VMResult { - self.move_vm.runtime.loader().get_type_layout( - type_tag, - &mut self.data_cache, - &self.module_store, - module_storage, - ) - } - - pub fn get_fully_annotated_type_layout( - &mut self, - type_tag: &TypeTag, - module_storage: &impl ModuleStorage, - ) -> VMResult { - self.move_vm - .runtime - .loader() - .get_fully_annotated_type_layout( - type_tag, - &mut self.data_cache, - &self.module_store, - module_storage, - ) - } - pub fn get_type_tag( &self, ty: &Type, @@ -482,6 +453,8 @@ impl<'r, 'l> Session<'r, 'l> { .map_err(|e| e.finish(Location::Undefined)) } + /// Returns [MoveTypeLayout] of a given runtime type. For [TypeTag] to layout conversions, one + /// needs to first convert the tag to runtime type. pub fn get_type_layout_from_ty( &self, ty: &Type, diff --git a/third_party/move/move-vm/runtime/src/storage/environment.rs b/third_party/move/move-vm/runtime/src/storage/environment.rs index 057b1be157fb9..9a72e0d482221 100644 --- a/third_party/move/move-vm/runtime/src/storage/environment.rs +++ b/third_party/move/move-vm/runtime/src/storage/environment.rs @@ -5,10 +5,7 @@ use crate::{ config::VMConfig, loader::check_natives, native_functions::{NativeFunction, NativeFunctions}, - storage::{ - ty_cache::StructInfoCache, ty_tag_converter::TypeTagCache, - verified_module_cache::VERIFIED_MODULES_V2, - }, + storage::{ty_tag_converter::TypeTagCache, verified_module_cache::VERIFIED_MODULES_V2}, Module, Script, }; use ambassador::delegatable_trait; @@ -58,27 +55,6 @@ pub struct RuntimeEnvironment { /// Caches struct tags for instantiated types. This cache can be used concurrently and /// speculatively because type tag information does not change with module publishes. ty_tag_cache: Arc, - - /// Type cache for struct layouts, tags and depths, shared across multiple threads. - /// - /// SAFETY: - /// Here we informally show that it is safe to share type cache across multiple threads. - /// - /// 1) Struct has been already published. - /// In this case, it is fine to have multiple transactions concurrently accessing and - /// caching struct tags, layouts and depth formulas. Even if transaction failed due to - /// speculation, and is re-executed later, the speculative aborted execution cached a non- - /// speculative existing struct information. It is safe for other threads to access it. - /// - /// 2) Struct is being published with a module. - /// The design of V2 loader ensures that when modules are published, i.e., staged on top of - /// the existing module storage, the runtime environment is cloned. Hence, it is not even - /// possible to mutate this global cache speculatively. - /// Importantly, this SHOULD NOT be mutated by speculative module publish. - // TODO(loader_v2): - // Provide a generic (trait) implementation for clients to implement their own type caching - // logic. - ty_cache: StructInfoCache, } impl RuntimeEnvironment { @@ -108,7 +84,6 @@ impl RuntimeEnvironment { natives, struct_name_index_map: Arc::new(StructNameIndexMap::empty()), ty_tag_cache: Arc::new(TypeTagCache::empty()), - ty_cache: StructInfoCache::empty(), } } @@ -275,30 +250,16 @@ impl RuntimeEnvironment { &self.ty_tag_cache } - /// Returns the type cache owned by this runtime environment which stores information about - /// struct layouts, tags and depth formulae. - pub(crate) fn ty_cache(&self) -> &StructInfoCache { - &self.ty_cache - } - /// Returns the size of the struct name re-indexing cache. Can be used to bound the size of the /// cache at block boundaries. pub fn struct_name_index_map_size(&self) -> PartialVMResult { self.struct_name_index_map.checked_len() } - /// Flushes the struct information (type and tag) caches. Flushing this cache does not - /// invalidate struct name index map or module cache. - pub fn flush_struct_info_cache(&self) { + /// Flushes the global caches with struct name indices and struct tags. Note that when calling + /// this function, modules that still store indices into struct name cache must also be flushed. + pub fn flush_struct_name_and_tag_caches(&self) { self.ty_tag_cache.flush(); - self.ty_cache.flush(); - } - - /// Flushes the global caches with struct name indices and the struct information. Note that - /// when calling this function, modules that still store indices into struct name cache must - /// also be invalidated. - pub fn flush_struct_name_and_info_caches(&self) { - self.flush_struct_info_cache(); self.struct_name_index_map.flush(); } @@ -326,7 +287,6 @@ impl Clone for RuntimeEnvironment { Self { vm_config: self.vm_config.clone(), natives: self.natives.clone(), - ty_cache: self.ty_cache.clone(), struct_name_index_map: Arc::clone(&self.struct_name_index_map), ty_tag_cache: Arc::clone(&self.ty_tag_cache), } diff --git a/third_party/move/move-vm/runtime/src/storage/mod.rs b/third_party/move/move-vm/runtime/src/storage/mod.rs index 72e42aa2f7ff4..6e8a73e058ac7 100644 --- a/third_party/move/move-vm/runtime/src/storage/mod.rs +++ b/third_party/move/move-vm/runtime/src/storage/mod.rs @@ -2,7 +2,6 @@ // SPDX-License-Identifier: Apache-2.0 pub(crate) mod loader; -pub(crate) mod ty_cache; pub(crate) mod ty_tag_converter; mod verified_module_cache; diff --git a/third_party/move/move-vm/runtime/src/storage/ty_cache.rs b/third_party/move/move-vm/runtime/src/storage/ty_cache.rs deleted file mode 100644 index 53091a720cef9..0000000000000 --- a/third_party/move/move-vm/runtime/src/storage/ty_cache.rs +++ /dev/null @@ -1,252 +0,0 @@ -// Copyright (c) The Move Contributors -// SPDX-License-Identifier: Apache-2.0 - -use move_binary_format::errors::{PartialVMError, PartialVMResult}; -use move_core_types::{language_storage::StructTag, value::MoveTypeLayout, vm_status::StatusCode}; -use move_vm_types::loaded_data::{ - runtime_types::{DepthFormula, Type}, - struct_name_indexing::{StructNameIndex, StructNameIndexMap}, -}; -use parking_lot::RwLock; - -/// Layout information of a single struct instantiation. -#[derive(Clone)] -struct StructLayoutInfo { - /// Layout of this struct instantiation. - struct_layout: MoveTypeLayout, - /// Number of nodes in the type layout. - node_count: u64, - /// True if this struct contains delayed fields, e.g., aggregators. - has_identifier_mappings: bool, -} - -impl StructLayoutInfo { - fn unpack(self) -> (MoveTypeLayout, u64, bool) { - ( - self.struct_layout, - self.node_count, - self.has_identifier_mappings, - ) - } -} - -/// Struct instantiation information included in [StructInfo]. -#[derive(Clone)] -struct StructInstantiationInfo { - /// Struct tag of this struct instantiation, and its pseudo-gas cost. - struct_tag: Option<(StructTag, u64)>, - /// Runtime struct layout information. - struct_layout_info: Option, - /// Annotated struct layout information: layout with the node count. - annotated_struct_layout_info: Option<(MoveTypeLayout, u64)>, -} - -impl StructInstantiationInfo { - fn none() -> Self { - Self { - struct_tag: None, - struct_layout_info: None, - annotated_struct_layout_info: None, - } - } -} - -/// Cached information for any struct type. Caches information about its instantiations as well if -/// the struct is generic. -#[derive(Clone)] -struct StructInfo { - /// Depth formula of a possibly generic struct, together with a thread id that cached it. If - /// the formula is not yet cached, [None] is stored. - depth_formula: Option<(DepthFormula, std::thread::ThreadId)>, - /// Cached information for different struct instantiations. - instantiation_info: hashbrown::HashMap, StructInstantiationInfo>, -} - -impl StructInfo { - /// Returns an empty struct information. - pub(crate) fn none() -> Self { - Self { - depth_formula: None, - instantiation_info: hashbrown::HashMap::new(), - } - } -} - -/// A thread-safe struct information cache that can be used by the VM to store information about -/// structs, such as their depth formulae, tags, layouts. -pub(crate) struct StructInfoCache(RwLock>); - -impl StructInfoCache { - /// Returns an empty struct information cache. - pub(crate) fn empty() -> Self { - Self(RwLock::new(hashbrown::HashMap::new())) - } - - /// Flushes the cached struct information. - pub(crate) fn flush(&self) { - self.0.write().clear() - } - - /// Returns the depth formula associated with a struct, or [None] if it has not been cached. - pub(crate) fn get_depth_formula(&self, idx: &StructNameIndex) -> Option { - Some(self.0.read().get(idx)?.depth_formula.as_ref()?.0.clone()) - } - - /// Caches the depth formula, returning an error if the same thread has cached it before (i.e., - /// a recursive type has been found). - pub(crate) fn store_depth_formula( - &self, - idx: StructNameIndex, - struct_name_index_map: &StructNameIndexMap, - depth_formula: &DepthFormula, - ) -> PartialVMResult<()> { - let mut cache = self.0.write(); - let struct_info = cache.entry(idx).or_insert_with(StructInfo::none); - - // Cache the formula if it has not been cached, and otherwise return the thread id of the - // previously cached one. Release the write lock. - let id = std::thread::current().id(); - let prev_id = match &struct_info.depth_formula { - None => { - struct_info.depth_formula = Some((depth_formula.clone(), id)); - return Ok(()); - }, - Some((_, prev_id)) => *prev_id, - }; - drop(cache); - - if id == prev_id { - // Same thread has put this entry previously, which means there is a recursion. - let struct_name = struct_name_index_map.idx_to_struct_name_ref(idx)?; - return Err( - PartialVMError::new(StatusCode::UNKNOWN_INVARIANT_VIOLATION_ERROR).with_message( - format!( - "Depth formula for struct '{}' is already cached by the same thread", - struct_name.as_ref(), - ), - ), - ); - } - - Ok(()) - } - - /// Returns cached struct tag and its pseudo-gas cost if it exists, and [None] otherwise. - pub(crate) fn get_struct_tag( - &self, - idx: &StructNameIndex, - ty_args: &[Type], - ) -> Option<(StructTag, u64)> { - self.0 - .read() - .get(idx)? - .instantiation_info - .get(ty_args)? - .struct_tag - .as_ref() - .cloned() - } - - /// Caches annotated struct tag and its pseudo-gas cost. - pub(crate) fn store_struct_tag( - &self, - idx: StructNameIndex, - ty_args: Vec, - struct_tag: StructTag, - cost: u64, - ) { - self.0 - .write() - .entry(idx) - .or_insert_with(StructInfo::none) - .instantiation_info - .entry(ty_args) - .or_insert_with(StructInstantiationInfo::none) - .struct_tag = Some((struct_tag, cost)); - } - - /// Returns struct layout information if it has been cached, and [None] otherwise. - pub(crate) fn get_struct_layout_info( - &self, - idx: &StructNameIndex, - ty_args: &[Type], - ) -> Option<(MoveTypeLayout, u64, bool)> { - self.0 - .read() - .get(idx)? - .instantiation_info - .get(ty_args)? - .struct_layout_info - .as_ref() - .map(|info| info.clone().unpack()) - } - - /// Caches struct layout information. - pub(crate) fn store_struct_layout_info( - &self, - idx: StructNameIndex, - ty_args: Vec, - struct_layout: MoveTypeLayout, - node_count: u64, - has_identifier_mappings: bool, - ) { - let mut cache = self.0.write(); - let info = cache - .entry(idx) - .or_insert_with(StructInfo::none) - .instantiation_info - .entry(ty_args) - .or_insert_with(StructInstantiationInfo::none); - info.struct_layout_info = Some(StructLayoutInfo { - struct_layout, - node_count, - has_identifier_mappings, - }); - } - - /// Returns annotated struct layout information if it has been cached, and [None] otherwise. - pub(crate) fn get_annotated_struct_layout_info( - &self, - idx: &StructNameIndex, - ty_args: &[Type], - ) -> Option<(MoveTypeLayout, u64)> { - self.0 - .read() - .get(idx)? - .instantiation_info - .get(ty_args)? - .annotated_struct_layout_info - .as_ref() - .cloned() - } - - /// Caches annotated struct layout information. - pub(crate) fn store_annotated_struct_layout_info( - &self, - idx: StructNameIndex, - ty_args: Vec, - struct_layout: MoveTypeLayout, - node_count: u64, - ) { - let mut cache = self.0.write(); - let info = cache - .entry(idx) - .or_insert_with(StructInfo::none) - .instantiation_info - .entry(ty_args) - .or_insert_with(StructInstantiationInfo::none); - info.annotated_struct_layout_info = Some((struct_layout, node_count)); - } -} - -impl Clone for StructInfoCache { - fn clone(&self) -> Self { - Self(RwLock::new(self.0.read().clone())) - } -} - -#[cfg(test)] -mod test { - // TODO(loader_v2): - // This has never been tested before, so we definitely should be adding tests. -} diff --git a/third_party/move/move-vm/runtime/src/storage/ty_layout_converter.rs b/third_party/move/move-vm/runtime/src/storage/ty_layout_converter.rs index b65abc96e70ab..863be0060b5b3 100644 --- a/third_party/move/move-vm/runtime/src/storage/ty_layout_converter.rs +++ b/third_party/move/move-vm/runtime/src/storage/ty_layout_converter.rs @@ -4,7 +4,7 @@ use crate::{ config::VMConfig, loader::{LegacyModuleStorageAdapter, Loader, PseudoGasContext, VALUE_DEPTH_MAX}, - storage::{ty_cache::StructInfoCache, ty_tag_converter::TypeTagConverter}, + storage::ty_tag_converter::TypeTagConverter, ModuleStorage, }; use move_binary_format::errors::{PartialVMError, PartialVMResult}; @@ -13,6 +13,7 @@ use move_core_types::{ value::{IdentifierMappingKind, MoveFieldLayout, MoveStructLayout, MoveTypeLayout}, vm_status::StatusCode, }; +use move_vm_metrics::{Timer, VM_TIMER}; use move_vm_types::loaded_data::{ runtime_types::{StructLayout, StructType, Type}, struct_name_indexing::{StructNameIndex, StructNameIndexMap}, @@ -28,6 +29,8 @@ const MAX_TYPE_TO_LAYOUT_NODES: u64 = 256; pub trait LayoutConverter: LayoutConverterBase { /// Converts a runtime type to a type layout. fn type_to_type_layout(&self, ty: &Type) -> PartialVMResult { + let _timer = VM_TIMER.timer_with_label("Loader::type_to_type_layout"); + let mut count = 0; self.type_to_type_layout_impl(ty, &mut count, 1) .map(|(l, _)| l) @@ -38,6 +41,8 @@ pub trait LayoutConverter: LayoutConverterBase { &self, ty: &Type, ) -> PartialVMResult<(MoveTypeLayout, bool)> { + let _timer = VM_TIMER.timer_with_label("Loader::type_to_type_layout"); + let mut count = 0; self.type_to_type_layout_impl(ty, &mut count, 1) } @@ -45,6 +50,8 @@ pub trait LayoutConverter: LayoutConverterBase { /// Converts a runtime type to a fully annotated type layout, containing information about /// field names. fn type_to_fully_annotated_layout(&self, ty: &Type) -> PartialVMResult { + let _timer = VM_TIMER.timer_with_label("Loader::type_to_type_layout"); + let mut count = 0; self.type_to_fully_annotated_layout_impl(ty, &mut count, 1) } @@ -54,7 +61,6 @@ pub trait LayoutConverter: LayoutConverterBase { // into this crate trait. pub(crate) trait LayoutConverterBase { fn vm_config(&self) -> &VMConfig; - fn struct_info_cache(&self) -> &StructInfoCache; fn fetch_struct_ty_by_idx(&self, idx: StructNameIndex) -> PartialVMResult>; fn struct_name_index_map(&self) -> &StructNameIndexMap; @@ -167,15 +173,6 @@ pub(crate) trait LayoutConverterBase { count: &mut u64, depth: u64, ) -> PartialVMResult<(MoveTypeLayout, bool)> { - let struct_cache = self.struct_info_cache(); - if let Some((struct_layout, node_count, has_identifier_mappings)) = - struct_cache.get_struct_layout_info(&struct_name_idx, ty_args) - { - *count += node_count; - return Ok((struct_layout, has_identifier_mappings)); - } - - let count_before = *count; let struct_type = self.fetch_struct_ty_by_idx(struct_name_idx)?; let mut has_identifier_mappings = false; @@ -249,14 +246,6 @@ pub(crate) trait LayoutConverterBase { }, }; - let field_node_count = *count - count_before; - struct_cache.store_struct_layout_info( - struct_name_idx, - ty_args.to_vec(), - layout.clone(), - field_node_count, - has_identifier_mappings, - ); Ok((layout, has_identifier_mappings)) } @@ -334,14 +323,6 @@ pub(crate) trait LayoutConverterBase { count: &mut u64, depth: u64, ) -> PartialVMResult { - let struct_info_cache = self.struct_info_cache(); - if let Some((layout, annotated_node_count)) = - struct_info_cache.get_annotated_struct_layout_info(&struct_name_idx, ty_args) - { - *count += annotated_node_count; - return Ok(layout); - } - let struct_type = self.fetch_struct_ty_by_idx(struct_name_idx)?; // TODO(#13806): have annotated layouts for variants. Currently, we just return the raw @@ -352,7 +333,6 @@ pub(crate) trait LayoutConverterBase { .map(|(l, _)| l); } - let count_before = *count; let struct_tag = self.struct_name_idx_to_struct_tag(struct_name_idx, ty_args)?; let fields = struct_type.fields(None)?; @@ -369,14 +349,7 @@ pub(crate) trait LayoutConverterBase { .collect::>>()?; let struct_layout = MoveTypeLayout::Struct(MoveStructLayout::with_types(struct_tag, field_layouts)); - let field_node_count = *count - count_before; - - struct_info_cache.store_annotated_struct_layout_info( - struct_name_idx, - ty_args.to_vec(), - struct_layout.clone(), - field_node_count, - ); + Ok(struct_layout) } } @@ -399,10 +372,6 @@ impl<'a> LayoutConverterBase for StorageLayoutConverter<'a> { self.storage.runtime_environment().vm_config() } - fn struct_info_cache(&self) -> &StructInfoCache { - self.storage.runtime_environment().ty_cache() - } - fn fetch_struct_ty_by_idx(&self, idx: StructNameIndex) -> PartialVMResult> { let struct_name = self.struct_name_index_map().idx_to_struct_name_ref(idx)?; self.storage.fetch_struct_ty( @@ -458,10 +427,6 @@ impl<'a> LayoutConverterBase for LoaderLayoutConverter<'a> { self.loader.vm_config() } - fn struct_info_cache(&self) -> &StructInfoCache { - self.loader.ty_cache(self.module_storage) - } - fn fetch_struct_ty_by_idx(&self, idx: StructNameIndex) -> PartialVMResult> { match self.loader { Loader::V1(..) => { diff --git a/third_party/move/move-vm/runtime/src/storage/ty_tag_converter.rs b/third_party/move/move-vm/runtime/src/storage/ty_tag_converter.rs index 881c87b285a8a..11e0bfc42e329 100644 --- a/third_party/move/move-vm/runtime/src/storage/ty_tag_converter.rs +++ b/third_party/move/move-vm/runtime/src/storage/ty_tag_converter.rs @@ -161,6 +161,14 @@ impl TypeTagCache { } } +impl Clone for TypeTagCache { + fn clone(&self) -> Self { + Self { + cache: RwLock::new(self.cache.read().clone()), + } + } +} + /// Responsible for building type tags, while also doing the metering in order to bound space and /// time complexity. pub(crate) struct TypeTagConverter<'a> { From e0002dd4ca29d1b65fe10c555ac730a773a54b2f Mon Sep 17 00:00:00 2001 From: Guoteng Rao <3603304+grao1991@users.noreply.github.com> Date: Fri, 31 Jan 2025 20:29:55 -0800 Subject: [PATCH 29/30] [Indexer-Grpc-V2] Add proto for filters. (#15851) --- .../src/live_data_service/data_client.rs | 3 +- .../src/service.rs | 4 +- protos/proto/aptos/indexer/v1/filter.proto | 63 + protos/proto/aptos/indexer/v1/raw_data.proto | 4 + .../aptos/indexer/v1/raw_data_pb2.py | 19 +- .../aptos/indexer/v1/raw_data_pb2.pyi | 13 +- protos/rust/src/pb/aptos.indexer.v1.rs | 1550 ++++++++++------- protos/rust/src/pb/aptos.indexer.v1.serde.rs | 1196 ++++++++++++- .../src/aptos/indexer/v1/raw_data.ts | 33 +- .../typescript/src/index.aptos.indexer.v1.ts | 1 + 10 files changed, 2244 insertions(+), 642 deletions(-) create mode 100644 protos/proto/aptos/indexer/v1/filter.proto diff --git a/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/live_data_service/data_client.rs b/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/live_data_service/data_client.rs index 2e1b544fb79d6..39fb68d714f59 100644 --- a/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/live_data_service/data_client.rs +++ b/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/live_data_service/data_client.rs @@ -22,12 +22,13 @@ impl DataClient { starting_version: Some(starting_version), transactions_count: None, batch_size: None, + transaction_filter: None, }; loop { let mut client = self .connection_manager .get_grpc_manager_client_for_request(); - let response = client.get_transactions(request).await; + let response = client.get_transactions(request.clone()).await; if let Ok(response) = response { return response.into_inner().transactions; } diff --git a/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/service.rs b/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/service.rs index 7a1b719cd4cce..b39cfce1427a7 100644 --- a/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/service.rs +++ b/ecosystem/indexer-grpc/indexer-grpc-data-service-v2/src/service.rs @@ -48,13 +48,13 @@ impl DataService for DataServiceWrapperWrapper { if let Some(historical_data_service) = self.historical_data_service.as_ref() { let request = req.into_inner(); let mut stream = live_data_service - .get_transactions(Request::new(request)) + .get_transactions(Request::new(request.clone())) .await? .into_inner(); let peekable = std::pin::pin!(stream.as_mut().peekable()); if let Some(Ok(_)) = peekable.peek().await { return live_data_service - .get_transactions(Request::new(request)) + .get_transactions(Request::new(request.clone())) .await; } diff --git a/protos/proto/aptos/indexer/v1/filter.proto b/protos/proto/aptos/indexer/v1/filter.proto new file mode 100644 index 0000000000000..2ad7d0df39617 --- /dev/null +++ b/protos/proto/aptos/indexer/v1/filter.proto @@ -0,0 +1,63 @@ +// Copyright © Aptos Foundation +// SPDX-License-Identifier: Apache-2.0 + +syntax = "proto3"; + +package aptos.indexer.v1; + +import "aptos/transaction/v1/transaction.proto"; + +message LogicalAndFilters { + repeated BooleanTransactionFilter filters = 1; +} + +message LogicalOrFilters { + repeated BooleanTransactionFilter filters = 1; +} + +message TransactionRootFilter { + optional bool success = 1; + optional aptos.transaction.v1.Transaction.TransactionType transaction_type = 2; +} + +message EntryFunctionFilter { + optional string address = 1; + optional string module_name = 2; + optional string function = 3; +} + +message UserTransactionPayloadFilter { + optional EntryFunctionFilter entry_function_filter = 1; +} + +message UserTransactionFilter { + optional string sender = 1; + optional UserTransactionPayloadFilter payload_filter = 2; +} + + +message MoveStructTagFilter { + optional string address = 1; + optional string module = 2; + optional string name = 3; +} + +message EventFilter { + optional MoveStructTagFilter struct_type = 1; + optional string data_substring_filter = 2; +} + +message APIFilter { + optional TransactionRootFilter transaction_root_filter = 1; + optional UserTransactionFilter user_transaction_filter = 2; + optional EventFilter event_filter = 3; +} + +message BooleanTransactionFilter { + oneof filter { + APIFilter api_filter = 1; + LogicalAndFilters logical_and = 2; + LogicalOrFilters logical_or = 3; + BooleanTransactionFilter logical_not = 4; + } +} diff --git a/protos/proto/aptos/indexer/v1/raw_data.proto b/protos/proto/aptos/indexer/v1/raw_data.proto index 8f7b9ba5b6c44..eea5513d4dead 100644 --- a/protos/proto/aptos/indexer/v1/raw_data.proto +++ b/protos/proto/aptos/indexer/v1/raw_data.proto @@ -5,6 +5,7 @@ syntax = "proto3"; package aptos.indexer.v1; +import "aptos/indexer/v1/filter.proto"; import "aptos/transaction/v1/transaction.proto"; // This is for storage only. @@ -26,6 +27,9 @@ message GetTransactionsRequest { // Optional; number of transactions in each `TransactionsResponse` for current stream. // If not present, default to 1000. If larger than 1000, request will be rejected. optional uint64 batch_size = 3; + + // If provided, only transactions that match the filter will be included. + optional BooleanTransactionFilter transaction_filter = 4; } // TransactionsResponse is a batch of transactions. diff --git a/protos/python/aptos_protos/aptos/indexer/v1/raw_data_pb2.py b/protos/python/aptos_protos/aptos/indexer/v1/raw_data_pb2.py index 3ce625092a55b..4f7cbff08c465 100644 --- a/protos/python/aptos_protos/aptos/indexer/v1/raw_data_pb2.py +++ b/protos/python/aptos_protos/aptos/indexer/v1/raw_data_pb2.py @@ -12,12 +12,13 @@ _sym_db = _symbol_database.Default() +from aptos.indexer.v1 import filter_pb2 as aptos_dot_indexer_dot_v1_dot_filter__pb2 from aptos.transaction.v1 import ( transaction_pb2 as aptos_dot_transaction_dot_v1_dot_transaction__pb2, ) DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( - b'\n\x1f\x61ptos/indexer/v1/raw_data.proto\x12\x10\x61ptos.indexer.v1\x1a&aptos/transaction/v1/transaction.proto"\x84\x01\n\x15TransactionsInStorage\x12\x37\n\x0ctransactions\x18\x01 \x03(\x0b\x32!.aptos.transaction.v1.Transaction\x12\x1d\n\x10starting_version\x18\x02 \x01(\x04H\x00\x88\x01\x01\x42\x13\n\x11_starting_version"\xb4\x01\n\x16GetTransactionsRequest\x12!\n\x10starting_version\x18\x01 \x01(\x04\x42\x02\x30\x01H\x00\x88\x01\x01\x12#\n\x12transactions_count\x18\x02 \x01(\x04\x42\x02\x30\x01H\x01\x88\x01\x01\x12\x17\n\nbatch_size\x18\x03 \x01(\x04H\x02\x88\x01\x01\x42\x13\n\x11_starting_versionB\x15\n\x13_transactions_countB\r\n\x0b_batch_size"w\n\x14TransactionsResponse\x12\x37\n\x0ctransactions\x18\x01 \x03(\x0b\x32!.aptos.transaction.v1.Transaction\x12\x19\n\x08\x63hain_id\x18\x02 \x01(\x04\x42\x02\x30\x01H\x00\x88\x01\x01\x42\x0b\n\t_chain_id2p\n\x07RawData\x12\x65\n\x0fGetTransactions\x12(.aptos.indexer.v1.GetTransactionsRequest\x1a&.aptos.indexer.v1.TransactionsResponse0\x01\x62\x06proto3' + b'\n\x1f\x61ptos/indexer/v1/raw_data.proto\x12\x10\x61ptos.indexer.v1\x1a\x1d\x61ptos/indexer/v1/filter.proto\x1a&aptos/transaction/v1/transaction.proto"\x84\x01\n\x15TransactionsInStorage\x12\x37\n\x0ctransactions\x18\x01 \x03(\x0b\x32!.aptos.transaction.v1.Transaction\x12\x1d\n\x10starting_version\x18\x02 \x01(\x04H\x00\x88\x01\x01\x42\x13\n\x11_starting_version"\x98\x02\n\x16GetTransactionsRequest\x12!\n\x10starting_version\x18\x01 \x01(\x04\x42\x02\x30\x01H\x00\x88\x01\x01\x12#\n\x12transactions_count\x18\x02 \x01(\x04\x42\x02\x30\x01H\x01\x88\x01\x01\x12\x17\n\nbatch_size\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12K\n\x12transaction_filter\x18\x04 \x01(\x0b\x32*.aptos.indexer.v1.BooleanTransactionFilterH\x03\x88\x01\x01\x42\x13\n\x11_starting_versionB\x15\n\x13_transactions_countB\r\n\x0b_batch_sizeB\x15\n\x13_transaction_filter"w\n\x14TransactionsResponse\x12\x37\n\x0ctransactions\x18\x01 \x03(\x0b\x32!.aptos.transaction.v1.Transaction\x12\x19\n\x08\x63hain_id\x18\x02 \x01(\x04\x42\x02\x30\x01H\x00\x88\x01\x01\x42\x0b\n\t_chain_id2p\n\x07RawData\x12\x65\n\x0fGetTransactions\x12(.aptos.indexer.v1.GetTransactionsRequest\x1a&.aptos.indexer.v1.TransactionsResponse0\x01\x62\x06proto3' ) _globals = globals() @@ -37,12 +38,12 @@ ]._serialized_options = b"0\001" _TRANSACTIONSRESPONSE.fields_by_name["chain_id"]._options = None _TRANSACTIONSRESPONSE.fields_by_name["chain_id"]._serialized_options = b"0\001" - _globals["_TRANSACTIONSINSTORAGE"]._serialized_start = 94 - _globals["_TRANSACTIONSINSTORAGE"]._serialized_end = 226 - _globals["_GETTRANSACTIONSREQUEST"]._serialized_start = 229 - _globals["_GETTRANSACTIONSREQUEST"]._serialized_end = 409 - _globals["_TRANSACTIONSRESPONSE"]._serialized_start = 411 - _globals["_TRANSACTIONSRESPONSE"]._serialized_end = 530 - _globals["_RAWDATA"]._serialized_start = 532 - _globals["_RAWDATA"]._serialized_end = 644 + _globals["_TRANSACTIONSINSTORAGE"]._serialized_start = 125 + _globals["_TRANSACTIONSINSTORAGE"]._serialized_end = 257 + _globals["_GETTRANSACTIONSREQUEST"]._serialized_start = 260 + _globals["_GETTRANSACTIONSREQUEST"]._serialized_end = 540 + _globals["_TRANSACTIONSRESPONSE"]._serialized_start = 542 + _globals["_TRANSACTIONSRESPONSE"]._serialized_end = 661 + _globals["_RAWDATA"]._serialized_start = 663 + _globals["_RAWDATA"]._serialized_end = 775 # @@protoc_insertion_point(module_scope) diff --git a/protos/python/aptos_protos/aptos/indexer/v1/raw_data_pb2.pyi b/protos/python/aptos_protos/aptos/indexer/v1/raw_data_pb2.pyi index 246e3e331df84..2873400162d6f 100644 --- a/protos/python/aptos_protos/aptos/indexer/v1/raw_data_pb2.pyi +++ b/protos/python/aptos_protos/aptos/indexer/v1/raw_data_pb2.pyi @@ -4,6 +4,7 @@ from typing import Mapping as _Mapping from typing import Optional as _Optional from typing import Union as _Union +from aptos.indexer.v1 import filter_pb2 as _filter_pb2 from aptos.transaction.v1 import transaction_pb2 as _transaction_pb2 from google.protobuf import descriptor as _descriptor from google.protobuf import message as _message @@ -28,18 +29,28 @@ class TransactionsInStorage(_message.Message): ) -> None: ... class GetTransactionsRequest(_message.Message): - __slots__ = ["starting_version", "transactions_count", "batch_size"] + __slots__ = [ + "starting_version", + "transactions_count", + "batch_size", + "transaction_filter", + ] STARTING_VERSION_FIELD_NUMBER: _ClassVar[int] TRANSACTIONS_COUNT_FIELD_NUMBER: _ClassVar[int] BATCH_SIZE_FIELD_NUMBER: _ClassVar[int] + TRANSACTION_FILTER_FIELD_NUMBER: _ClassVar[int] starting_version: int transactions_count: int batch_size: int + transaction_filter: _filter_pb2.BooleanTransactionFilter def __init__( self, starting_version: _Optional[int] = ..., transactions_count: _Optional[int] = ..., batch_size: _Optional[int] = ..., + transaction_filter: _Optional[ + _Union[_filter_pb2.BooleanTransactionFilter, _Mapping] + ] = ..., ) -> None: ... class TransactionsResponse(_message.Message): diff --git a/protos/rust/src/pb/aptos.indexer.v1.rs b/protos/rust/src/pb/aptos.indexer.v1.rs index d2be6d41ae210..a4f1d0fe2484e 100644 --- a/protos/rust/src/pb/aptos.indexer.v1.rs +++ b/protos/rust/src/pb/aptos.indexer.v1.rs @@ -3,6 +3,88 @@ // @generated // This file is @generated by prost-build. +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct LogicalAndFilters { + #[prost(message, repeated, tag="1")] + pub filters: ::prost::alloc::vec::Vec, +} +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct LogicalOrFilters { + #[prost(message, repeated, tag="1")] + pub filters: ::prost::alloc::vec::Vec, +} +#[derive(Clone, Copy, PartialEq, ::prost::Message)] +pub struct TransactionRootFilter { + #[prost(bool, optional, tag="1")] + pub success: ::core::option::Option, + #[prost(enumeration="super::super::transaction::v1::transaction::TransactionType", optional, tag="2")] + pub transaction_type: ::core::option::Option, +} +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct EntryFunctionFilter { + #[prost(string, optional, tag="1")] + pub address: ::core::option::Option<::prost::alloc::string::String>, + #[prost(string, optional, tag="2")] + pub module_name: ::core::option::Option<::prost::alloc::string::String>, + #[prost(string, optional, tag="3")] + pub function: ::core::option::Option<::prost::alloc::string::String>, +} +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct UserTransactionPayloadFilter { + #[prost(message, optional, tag="1")] + pub entry_function_filter: ::core::option::Option, +} +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct UserTransactionFilter { + #[prost(string, optional, tag="1")] + pub sender: ::core::option::Option<::prost::alloc::string::String>, + #[prost(message, optional, tag="2")] + pub payload_filter: ::core::option::Option, +} +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MoveStructTagFilter { + #[prost(string, optional, tag="1")] + pub address: ::core::option::Option<::prost::alloc::string::String>, + #[prost(string, optional, tag="2")] + pub module: ::core::option::Option<::prost::alloc::string::String>, + #[prost(string, optional, tag="3")] + pub name: ::core::option::Option<::prost::alloc::string::String>, +} +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct EventFilter { + #[prost(message, optional, tag="1")] + pub struct_type: ::core::option::Option, + #[prost(string, optional, tag="2")] + pub data_substring_filter: ::core::option::Option<::prost::alloc::string::String>, +} +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ApiFilter { + #[prost(message, optional, tag="1")] + pub transaction_root_filter: ::core::option::Option, + #[prost(message, optional, tag="2")] + pub user_transaction_filter: ::core::option::Option, + #[prost(message, optional, tag="3")] + pub event_filter: ::core::option::Option, +} +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct BooleanTransactionFilter { + #[prost(oneof="boolean_transaction_filter::Filter", tags="1, 2, 3, 4")] + pub filter: ::core::option::Option, +} +/// Nested message and enum types in `BooleanTransactionFilter`. +pub mod boolean_transaction_filter { + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Filter { + #[prost(message, tag="1")] + ApiFilter(super::ApiFilter), + #[prost(message, tag="2")] + LogicalAnd(super::LogicalAndFilters), + #[prost(message, tag="3")] + LogicalOr(super::LogicalOrFilters), + #[prost(message, tag="4")] + LogicalNot(::prost::alloc::boxed::Box), + } +} /// This is for storage only. #[derive(Clone, PartialEq, ::prost::Message)] pub struct TransactionsInStorage { @@ -13,7 +95,7 @@ pub struct TransactionsInStorage { #[prost(uint64, optional, tag="2")] pub starting_version: ::core::option::Option, } -#[derive(Clone, Copy, PartialEq, ::prost::Message)] +#[derive(Clone, PartialEq, ::prost::Message)] pub struct GetTransactionsRequest { /// Required; start version of current stream. #[prost(uint64, optional, tag="1")] @@ -26,6 +108,9 @@ pub struct GetTransactionsRequest { /// If not present, default to 1000. If larger than 1000, request will be rejected. #[prost(uint64, optional, tag="3")] pub batch_size: ::core::option::Option, + /// If provided, only transactions that match the filter will be included. + #[prost(message, optional, tag="4")] + pub transaction_filter: ::core::option::Option, } /// TransactionsResponse is a batch of transactions. #[derive(Clone, PartialEq, ::prost::Message)] @@ -168,7 +253,7 @@ pub mod ping_data_service_response { HistoricalDataServiceInfo(super::HistoricalDataServiceInfo), } } -#[derive(Clone, Copy, PartialEq, ::prost::Message)] +#[derive(Clone, PartialEq, ::prost::Message)] pub struct GetDataServiceForRequestRequest { #[prost(message, optional, tag="1")] pub user_request: ::core::option::Option, @@ -180,618 +265,885 @@ pub struct GetDataServiceForRequestResponse { } /// Encoded file descriptor set for the `aptos.indexer.v1` package pub const FILE_DESCRIPTOR_SET: &[u8] = &[ - 0x0a, 0xce, 0x12, 0x0a, 0x1f, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, - 0x65, 0x72, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x61, 0x77, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x10, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, - 0x78, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x1a, 0x26, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2f, 0x74, 0x72, - 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x72, 0x61, - 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa3, - 0x01, 0x0a, 0x15, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x49, - 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x12, 0x45, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, - 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, - 0x2e, 0x0a, 0x10, 0x73, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x0f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x69, 0x6e, 0x67, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, - 0x13, 0x0a, 0x11, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xe3, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x32, 0x0a, 0x10, 0x73, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x02, 0x30, 0x01, 0x48, 0x00, 0x52, - 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, - 0x02, 0x30, 0x01, 0x48, 0x01, 0x52, 0x11, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x62, - 0x61, 0x74, 0x63, 0x68, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, - 0x02, 0x52, 0x09, 0x62, 0x61, 0x74, 0x63, 0x68, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x42, - 0x13, 0x0a, 0x11, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, - 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x22, 0x8e, 0x01, 0x0a, 0x14, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x61, 0x70, 0x74, 0x6f, - 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, - 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x74, 0x72, - 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x63, 0x68, - 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x02, 0x30, 0x01, - 0x48, 0x00, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0b, - 0x0a, 0x09, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x32, 0x70, 0x0a, 0x07, 0x52, - 0x61, 0x77, 0x44, 0x61, 0x74, 0x61, 0x12, 0x65, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x28, 0x2e, 0x61, 0x70, 0x74, 0x6f, - 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, - 0x78, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x42, 0x86, 0x01, - 0x0a, 0x14, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, - 0x78, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x42, 0x0c, 0x52, 0x61, 0x77, 0x44, 0x61, 0x74, 0x61, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0xa2, 0x02, 0x03, 0x41, 0x49, 0x58, 0xaa, 0x02, 0x10, 0x41, - 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x2e, 0x56, 0x31, 0xca, - 0x02, 0x10, 0x41, 0x70, 0x74, 0x6f, 0x73, 0x5c, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x5c, - 0x56, 0x31, 0xe2, 0x02, 0x1c, 0x41, 0x70, 0x74, 0x6f, 0x73, 0x5c, 0x49, 0x6e, 0x64, 0x65, 0x78, - 0x65, 0x72, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0xea, 0x02, 0x12, 0x41, 0x70, 0x74, 0x6f, 0x73, 0x3a, 0x3a, 0x49, 0x6e, 0x64, 0x65, 0x78, - 0x65, 0x72, 0x3a, 0x3a, 0x56, 0x31, 0x4a, 0xd0, 0x0b, 0x0a, 0x06, 0x12, 0x04, 0x03, 0x00, 0x2a, - 0x01, 0x0a, 0x4e, 0x0a, 0x01, 0x0c, 0x12, 0x03, 0x03, 0x00, 0x12, 0x32, 0x44, 0x20, 0x43, 0x6f, - 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0xc2, 0xa9, 0x20, 0x41, 0x70, 0x74, 0x6f, 0x73, - 0x20, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x53, 0x50, 0x44, - 0x58, 0x2d, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x2d, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x66, 0x69, 0x65, 0x72, 0x3a, 0x20, 0x41, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, - 0x0a, 0x0a, 0x08, 0x0a, 0x01, 0x02, 0x12, 0x03, 0x05, 0x00, 0x19, 0x0a, 0x09, 0x0a, 0x02, 0x03, - 0x00, 0x12, 0x03, 0x07, 0x00, 0x30, 0x0a, 0x27, 0x0a, 0x02, 0x04, 0x00, 0x12, 0x04, 0x0a, 0x00, - 0x0f, 0x01, 0x1a, 0x1b, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, - 0x0a, 0x0a, 0x03, 0x04, 0x00, 0x01, 0x12, 0x03, 0x0a, 0x08, 0x1d, 0x0a, 0x2b, 0x0a, 0x04, 0x04, - 0x00, 0x02, 0x00, 0x12, 0x03, 0x0c, 0x02, 0x3d, 0x1a, 0x1e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, - 0x72, 0x65, 0x64, 0x3b, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, - 0x04, 0x12, 0x03, 0x0c, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x06, 0x12, - 0x03, 0x0c, 0x0b, 0x2b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x0c, - 0x2c, 0x38, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x0c, 0x3b, 0x3c, - 0x0a, 0x22, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x01, 0x12, 0x03, 0x0e, 0x02, 0x27, 0x1a, 0x15, 0x20, - 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x3b, 0x20, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x20, - 0x69, 0x64, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x04, 0x12, 0x03, 0x0e, - 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x05, 0x12, 0x03, 0x0e, 0x0b, 0x11, - 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x01, 0x12, 0x03, 0x0e, 0x12, 0x22, 0x0a, 0x0c, - 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x03, 0x12, 0x03, 0x0e, 0x25, 0x26, 0x0a, 0x0a, 0x0a, 0x02, - 0x04, 0x01, 0x12, 0x04, 0x11, 0x00, 0x1c, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x01, 0x01, 0x12, - 0x03, 0x11, 0x08, 0x1e, 0x0a, 0x39, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x00, 0x12, 0x03, 0x13, 0x02, - 0x3c, 0x1a, 0x2c, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x3b, 0x20, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x63, - 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x0a, 0x0a, - 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x04, 0x12, 0x03, 0x13, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, - 0x05, 0x04, 0x01, 0x02, 0x00, 0x05, 0x12, 0x03, 0x13, 0x0b, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, - 0x01, 0x02, 0x00, 0x01, 0x12, 0x03, 0x13, 0x12, 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, - 0x00, 0x03, 0x12, 0x03, 0x13, 0x25, 0x26, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x08, - 0x12, 0x03, 0x13, 0x27, 0x3b, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x01, 0x02, 0x00, 0x08, 0x06, 0x12, - 0x03, 0x13, 0x28, 0x3a, 0x0a, 0x88, 0x01, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x01, 0x12, 0x03, 0x17, - 0x02, 0x3e, 0x1a, 0x7b, 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x3b, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, - 0x69, 0x6e, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x2e, 0x0a, 0x20, 0x49, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, - 0x6e, 0x74, 0x2c, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, - 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x20, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, - 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x04, 0x12, 0x03, 0x17, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, - 0x05, 0x04, 0x01, 0x02, 0x01, 0x05, 0x12, 0x03, 0x17, 0x0b, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, - 0x01, 0x02, 0x01, 0x01, 0x12, 0x03, 0x17, 0x12, 0x24, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, - 0x01, 0x03, 0x12, 0x03, 0x17, 0x27, 0x28, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x08, - 0x12, 0x03, 0x17, 0x29, 0x3d, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x01, 0x02, 0x01, 0x08, 0x06, 0x12, - 0x03, 0x17, 0x2a, 0x3c, 0x0a, 0xb4, 0x01, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x02, 0x12, 0x03, 0x1b, - 0x02, 0x21, 0x1a, 0xa6, 0x01, 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x3b, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x60, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x60, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, - 0x74, 0x20, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x0a, 0x20, 0x49, 0x66, 0x20, 0x6e, 0x6f, - 0x74, 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x30, 0x30, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6c, - 0x61, 0x72, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x31, 0x30, 0x30, 0x30, 0x2c, - 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, - 0x20, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, - 0x01, 0x02, 0x02, 0x04, 0x12, 0x03, 0x1b, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, - 0x02, 0x05, 0x12, 0x03, 0x1b, 0x0b, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x01, - 0x12, 0x03, 0x1b, 0x12, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x03, 0x12, 0x03, - 0x1b, 0x1f, 0x20, 0x0a, 0x3e, 0x0a, 0x02, 0x04, 0x02, 0x12, 0x04, 0x1f, 0x00, 0x25, 0x01, 0x1a, - 0x32, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x62, 0x61, 0x74, 0x63, - 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x02, 0x01, 0x12, 0x03, 0x1f, 0x08, 0x1c, 0x0a, - 0x2b, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x00, 0x12, 0x03, 0x21, 0x02, 0x3d, 0x1a, 0x1e, 0x20, 0x52, - 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x3b, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, - 0x04, 0x02, 0x02, 0x00, 0x04, 0x12, 0x03, 0x21, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, - 0x02, 0x00, 0x06, 0x12, 0x03, 0x21, 0x0b, 0x2b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, - 0x01, 0x12, 0x03, 0x21, 0x2c, 0x38, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x03, 0x12, - 0x03, 0x21, 0x3b, 0x3c, 0x0a, 0x22, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x01, 0x12, 0x03, 0x24, 0x02, - 0x34, 0x1a, 0x15, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x3b, 0x20, 0x63, 0x68, - 0x61, 0x69, 0x6e, 0x20, 0x69, 0x64, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, - 0x04, 0x12, 0x03, 0x24, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x05, 0x12, - 0x03, 0x24, 0x0b, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x01, 0x12, 0x03, 0x24, - 0x12, 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x03, 0x12, 0x03, 0x24, 0x1d, 0x1e, - 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x08, 0x12, 0x03, 0x24, 0x1f, 0x33, 0x0a, 0x0d, - 0x0a, 0x06, 0x04, 0x02, 0x02, 0x01, 0x08, 0x06, 0x12, 0x03, 0x24, 0x20, 0x32, 0x0a, 0x0a, 0x0a, - 0x02, 0x06, 0x00, 0x12, 0x04, 0x27, 0x00, 0x2a, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x06, 0x00, 0x01, - 0x12, 0x03, 0x27, 0x08, 0x0f, 0x0a, 0x7a, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x00, 0x12, 0x03, 0x29, - 0x02, 0x54, 0x1a, 0x6d, 0x20, 0x47, 0x65, 0x74, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x62, 0x61, 0x74, 0x63, 0x68, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, - 0x67, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x20, - 0x69, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x2e, - 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x29, 0x06, 0x15, 0x0a, - 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x02, 0x12, 0x03, 0x29, 0x16, 0x2c, 0x0a, 0x0c, 0x0a, - 0x05, 0x06, 0x00, 0x02, 0x00, 0x06, 0x12, 0x03, 0x29, 0x37, 0x3d, 0x0a, 0x0c, 0x0a, 0x05, 0x06, - 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x29, 0x3e, 0x52, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, 0x0a, 0xea, 0x39, 0x0a, 0x1b, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2f, 0x69, 0x6e, 0x64, 0x65, - 0x78, 0x65, 0x72, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x12, 0x10, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, - 0x2e, 0x76, 0x31, 0x1a, 0x1f, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, - 0x65, 0x72, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x61, 0x77, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x26, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2f, 0x74, 0x72, 0x61, 0x6e, + 0x0a, 0xf8, 0x1e, 0x0a, 0x1d, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x65, 0x72, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x12, 0x10, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, + 0x72, 0x2e, 0x76, 0x31, 0x1a, 0x26, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x24, 0x61, 0x70, - 0x74, 0x6f, 0x73, 0x2f, 0x75, 0x74, 0x69, 0x6c, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x22, 0xa6, 0x01, 0x0a, 0x19, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x72, 0x6f, - 0x67, 0x72, 0x65, 0x73, 0x73, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x12, 0x42, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x75, 0x74, 0x69, 0x6c, - 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x48, 0x00, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1d, - 0x0a, 0x0a, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x09, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x57, 0x0a, 0x0e, 0x53, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x45, 0x0a, - 0x07, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, - 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x2e, 0x76, - 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, - 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x07, 0x73, 0x61, 0x6d, - 0x70, 0x6c, 0x65, 0x73, 0x22, 0x9d, 0x02, 0x0a, 0x0c, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x43, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x70, 0x74, 0x6f, - 0x73, 0x2e, 0x75, 0x74, 0x69, 0x6c, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x00, 0x52, 0x09, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, - 0x24, 0x0a, 0x0b, 0x65, 0x6e, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x0a, 0x65, 0x6e, 0x64, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, - 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, - 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x48, 0x02, 0x52, 0x08, 0x70, 0x72, 0x6f, - 0x67, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x65, 0x6e, 0x64, 0x5f, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x6f, 0x67, - 0x72, 0x65, 0x73, 0x73, 0x22, 0x53, 0x0a, 0x0a, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x45, 0x0a, 0x0e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x70, 0x74, - 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x0d, 0x61, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x22, 0xf6, 0x02, 0x0a, 0x13, 0x4c, 0x69, - 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x42, 0x0a, 0x09, - 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1f, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x75, 0x74, 0x69, 0x6c, 0x2e, 0x74, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x48, 0x00, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x88, 0x01, 0x01, - 0x12, 0x35, 0x0a, 0x14, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, - 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, - 0x52, 0x12, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x0b, 0x73, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x59, 0x0a, 0x11, + 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x41, 0x6e, 0x64, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x73, 0x12, 0x44, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x07, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x22, 0x58, 0x0a, 0x10, 0x4c, 0x6f, 0x67, 0x69, 0x63, + 0x61, 0x6c, 0x4f, 0x72, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x44, 0x0a, 0x07, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x02, 0x52, 0x0a, 0x73, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x14, 0x6d, - 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, 0x12, 0x6d, 0x69, 0x6e, - 0x53, 0x65, 0x72, 0x76, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, - 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x73, - 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x6d, 0x69, - 0x6e, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x22, 0xac, 0x02, 0x0a, 0x19, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, - 0x6c, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x42, 0x0a, 0x09, 0x74, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, - 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x75, 0x74, 0x69, 0x6c, 0x2e, 0x74, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, - 0x00, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x88, 0x01, 0x01, 0x12, - 0x35, 0x0a, 0x14, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, - 0x12, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x0b, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x70, - 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x53, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x02, 0x52, 0x0a, 0x73, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x6b, 0x6e, 0x6f, - 0x77, 0x6e, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x6e, 0x66, - 0x6f, 0x22, 0xcb, 0x01, 0x0a, 0x0c, 0x46, 0x75, 0x6c, 0x6c, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x42, 0x0a, - 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1f, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x75, 0x74, 0x69, 0x6c, 0x2e, 0x74, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x48, 0x00, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x35, 0x0a, 0x14, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x73, - 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, - 0x01, 0x52, 0x12, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, - 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, - 0x8d, 0x02, 0x0a, 0x0f, 0x47, 0x72, 0x70, 0x63, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x42, - 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x75, 0x74, 0x69, 0x6c, 0x2e, 0x74, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x48, 0x00, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x88, - 0x01, 0x01, 0x12, 0x35, 0x0a, 0x14, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6c, 0x61, 0x74, 0x65, - 0x73, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, - 0x48, 0x01, 0x52, 0x12, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x56, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x6d, 0x61, 0x73, - 0x74, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x02, 0x52, 0x0d, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6c, 0x61, - 0x74, 0x65, 0x73, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x11, 0x0a, 0x0f, - 0x5f, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, - 0xa6, 0x03, 0x0a, 0x0b, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x1d, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x01, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x5c, - 0x0a, 0x16, 0x6c, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, - 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x2e, 0x76, - 0x31, 0x2e, 0x4c, 0x69, 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x13, 0x6c, 0x69, 0x76, 0x65, 0x44, 0x61, 0x74, - 0x61, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x6e, 0x0a, 0x1c, - 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, - 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, - 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x48, - 0x00, 0x52, 0x19, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x44, 0x61, 0x74, - 0x61, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x45, 0x0a, 0x0d, - 0x66, 0x75, 0x6c, 0x6c, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, - 0x78, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x75, 0x6c, 0x6c, 0x6e, 0x6f, 0x64, 0x65, 0x49, - 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x0c, 0x66, 0x75, 0x6c, 0x6c, 0x6e, 0x6f, 0x64, 0x65, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x4f, 0x0a, 0x11, 0x67, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x61, 0x6e, 0x61, - 0x67, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, - 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x72, 0x70, 0x63, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x49, 0x6e, 0x66, - 0x6f, 0x48, 0x00, 0x52, 0x0f, 0x67, 0x72, 0x70, 0x63, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, - 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x06, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x42, 0x0a, 0x0a, 0x08, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x6a, 0x0a, 0x10, 0x48, 0x65, 0x61, 0x72, - 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x45, 0x0a, 0x0c, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, - 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, - 0x6f, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, - 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, - 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x63, 0x0a, 0x11, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x14, 0x6b, 0x6e, 0x6f, - 0x77, 0x6e, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x12, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, - 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, - 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x73, - 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x9d, 0x01, 0x0a, 0x16, 0x50, 0x69, - 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x14, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6c, 0x61, - 0x74, 0x65, 0x73, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x48, 0x00, 0x52, 0x12, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x4c, 0x61, 0x74, 0x65, 0x73, - 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x16, 0x70, - 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x70, 0x69, 0x6e, - 0x67, 0x4c, 0x69, 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x73, - 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xef, 0x01, 0x0a, 0x17, 0x50, 0x69, - 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x16, 0x6c, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x61, - 0x74, 0x61, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, + 0x42, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x73, 0x22, 0xba, 0x01, 0x0a, 0x15, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x6f, 0x6f, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x07, 0x73, + 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x07, + 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x61, 0x0a, 0x10, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x48, 0x01, 0x52, 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, + 0x08, 0x5f, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0xa4, + 0x01, 0x0a, 0x13, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0a, 0x6d, 0x6f, + 0x64, 0x75, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, + 0x08, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6d, 0x6f, 0x64, + 0x75, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x98, 0x01, 0x0a, 0x1c, 0x55, 0x73, 0x65, 0x72, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x5e, 0x0a, 0x15, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x5f, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, - 0x64, 0x65, 0x78, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x76, 0x65, 0x44, 0x61, 0x74, - 0x61, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x13, - 0x6c, 0x69, 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x6e, 0x0a, 0x1c, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, - 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, - 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x61, 0x70, 0x74, 0x6f, - 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x69, 0x73, - 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x19, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, - 0x69, 0x63, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, - 0x6e, 0x66, 0x6f, 0x42, 0x06, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x84, 0x01, 0x0a, 0x1f, - 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x46, 0x6f, - 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x50, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, - 0x64, 0x65, 0x78, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, - 0x00, 0x52, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x88, 0x01, - 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x22, 0x54, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x46, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x64, 0x61, 0x74, 0x61, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x32, 0xcc, 0x02, 0x0a, 0x0b, 0x47, 0x72, 0x70, - 0x63, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x12, 0x54, 0x0a, 0x09, 0x48, 0x65, 0x61, 0x72, - 0x74, 0x62, 0x65, 0x61, 0x74, 0x12, 0x22, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, - 0x64, 0x65, 0x78, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, - 0x61, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x61, 0x70, 0x74, 0x6f, - 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x65, 0x61, - 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x63, - 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x12, 0x28, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, - 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x61, 0x70, - 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x81, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x46, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x31, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x46, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, - 0x78, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x46, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xd1, 0x01, 0x0a, 0x0b, 0x44, 0x61, 0x74, 0x61, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x5b, 0x0a, 0x04, 0x50, 0x69, 0x6e, 0x67, 0x12, - 0x28, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x2e, - 0x76, 0x31, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x61, 0x70, 0x74, 0x6f, - 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69, 0x6e, - 0x67, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x28, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, - 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x26, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, - 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x42, 0x83, 0x01, 0x0a, 0x14, - 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, - 0x72, 0x2e, 0x76, 0x31, 0x42, 0x09, 0x47, 0x72, 0x70, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, + 0x64, 0x65, 0x78, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x46, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x13, + 0x65, 0x6e, 0x74, 0x72, 0x79, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, + 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x22, 0xae, 0x01, 0x0a, 0x15, 0x55, 0x73, 0x65, 0x72, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x73, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x5a, 0x0a, 0x0e, 0x70, 0x61, 0x79, 0x6c, 0x6f, + 0x61, 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2e, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x2e, + 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, + 0x01, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x42, 0x11, + 0x0a, 0x0f, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x22, 0x8a, 0x01, 0x0a, 0x13, 0x4d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, + 0x54, 0x61, 0x67, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x07, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6d, 0x6f, 0x64, 0x75, + 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x06, 0x6d, 0x6f, 0x64, 0x75, + 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0a, + 0x0a, 0x08, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6d, + 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xbd, + 0x01, 0x0a, 0x0b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x4b, + 0x0a, 0x0b, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x72, 0x75, 0x63, + 0x74, 0x54, 0x61, 0x67, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0a, 0x73, 0x74, + 0x72, 0x75, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x15, 0x64, + 0x61, 0x74, 0x61, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x13, 0x64, 0x61, + 0x74, 0x61, 0x53, 0x75, 0x62, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x75, + 0x62, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0xe7, + 0x02, 0x0a, 0x09, 0x41, 0x50, 0x49, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x64, 0x0a, 0x17, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x6f, 0x6f, 0x74, + 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, + 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x2e, 0x76, 0x31, + 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x6f, 0x6f, 0x74, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x15, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x6f, 0x6f, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x88, + 0x01, 0x01, 0x12, 0x64, 0x0a, 0x17, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x01, 0x52, 0x15, + 0x75, 0x73, 0x65, 0x72, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0c, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, + 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x2e, 0x76, + 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, + 0x0b, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, + 0x1a, 0x0a, 0x18, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x42, 0x1a, 0x0a, 0x18, 0x5f, + 0x75, 0x73, 0x65, 0x72, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0xbe, 0x02, 0x0a, 0x18, 0x42, 0x6f, 0x6f, + 0x6c, 0x65, 0x61, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x3c, 0x0a, 0x0a, 0x61, 0x70, 0x69, 0x5f, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x70, 0x74, 0x6f, + 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x50, 0x49, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x09, 0x61, 0x70, 0x69, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x12, 0x46, 0x0a, 0x0b, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x61, + 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, + 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x69, + 0x63, 0x61, 0x6c, 0x41, 0x6e, 0x64, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x48, 0x00, 0x52, + 0x0a, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x41, 0x6e, 0x64, 0x12, 0x43, 0x0a, 0x0a, 0x6c, + 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x22, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x2e, + 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x4f, 0x72, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x73, 0x48, 0x00, 0x52, 0x09, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x4f, 0x72, + 0x12, 0x4d, 0x0a, 0x0b, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x6e, 0x6f, 0x74, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x48, 0x00, 0x52, 0x0a, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x4e, 0x6f, 0x74, 0x42, + 0x08, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x42, 0x85, 0x01, 0x0a, 0x14, 0x63, 0x6f, + 0x6d, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x2e, + 0x76, 0x31, 0x42, 0x0b, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0xa2, 0x02, 0x03, 0x41, 0x49, 0x58, 0xaa, 0x02, 0x10, 0x41, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x10, 0x41, 0x70, 0x74, 0x6f, 0x73, 0x5c, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1c, 0x41, 0x70, 0x74, 0x6f, 0x73, 0x5c, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x12, 0x41, 0x70, 0x74, 0x6f, 0x73, 0x3a, 0x3a, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x3a, 0x3a, 0x56, - 0x31, 0x4a, 0xb2, 0x1b, 0x0a, 0x06, 0x12, 0x04, 0x03, 0x00, 0x6f, 0x01, 0x0a, 0x4e, 0x0a, 0x01, + 0x31, 0x4a, 0xaf, 0x0e, 0x0a, 0x06, 0x12, 0x04, 0x03, 0x00, 0x3e, 0x01, 0x0a, 0x4e, 0x0a, 0x01, 0x0c, 0x12, 0x03, 0x03, 0x00, 0x12, 0x32, 0x44, 0x20, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0xc2, 0xa9, 0x20, 0x41, 0x70, 0x74, 0x6f, 0x73, 0x20, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x53, 0x50, 0x44, 0x58, 0x2d, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x2d, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x3a, 0x20, 0x41, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x0a, 0x0a, 0x08, 0x0a, 0x01, 0x02, 0x12, 0x03, 0x05, 0x00, 0x19, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x00, 0x12, 0x03, 0x07, 0x00, - 0x29, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x01, 0x12, 0x03, 0x08, 0x00, 0x30, 0x0a, 0x09, 0x0a, 0x02, - 0x03, 0x02, 0x12, 0x03, 0x09, 0x00, 0x2e, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x00, 0x12, 0x04, 0x0b, - 0x00, 0x0f, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x00, 0x01, 0x12, 0x03, 0x0b, 0x08, 0x21, 0x0a, - 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x00, 0x12, 0x03, 0x0c, 0x02, 0x38, 0x0a, 0x0c, 0x0a, 0x05, - 0x04, 0x00, 0x02, 0x00, 0x04, 0x12, 0x03, 0x0c, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, - 0x02, 0x00, 0x06, 0x12, 0x03, 0x0c, 0x0b, 0x29, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, - 0x01, 0x12, 0x03, 0x0c, 0x2a, 0x33, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x03, 0x12, - 0x03, 0x0c, 0x36, 0x37, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x01, 0x12, 0x03, 0x0d, 0x02, - 0x15, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x05, 0x12, 0x03, 0x0d, 0x02, 0x08, 0x0a, - 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x01, 0x12, 0x03, 0x0d, 0x09, 0x10, 0x0a, 0x0c, 0x0a, - 0x05, 0x04, 0x00, 0x02, 0x01, 0x03, 0x12, 0x03, 0x0d, 0x13, 0x14, 0x0a, 0x0b, 0x0a, 0x04, 0x04, - 0x00, 0x02, 0x02, 0x12, 0x03, 0x0e, 0x02, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, - 0x05, 0x12, 0x03, 0x0e, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x01, 0x12, - 0x03, 0x0e, 0x09, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x03, 0x12, 0x03, 0x0e, - 0x16, 0x17, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x01, 0x12, 0x04, 0x11, 0x00, 0x13, 0x01, 0x0a, 0x0a, - 0x0a, 0x03, 0x04, 0x01, 0x01, 0x12, 0x03, 0x11, 0x08, 0x16, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, - 0x02, 0x00, 0x12, 0x03, 0x12, 0x02, 0x31, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x04, - 0x12, 0x03, 0x12, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x06, 0x12, 0x03, - 0x12, 0x0b, 0x24, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x01, 0x12, 0x03, 0x12, 0x25, - 0x2c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x03, 0x12, 0x03, 0x12, 0x2f, 0x30, 0x0a, - 0x0a, 0x0a, 0x02, 0x04, 0x02, 0x12, 0x04, 0x15, 0x00, 0x1c, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, - 0x02, 0x01, 0x12, 0x03, 0x15, 0x08, 0x14, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x00, 0x12, - 0x03, 0x16, 0x02, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x05, 0x12, 0x03, 0x16, - 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x01, 0x12, 0x03, 0x16, 0x09, 0x0b, - 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x03, 0x12, 0x03, 0x16, 0x0e, 0x0f, 0x0a, 0x0b, - 0x0a, 0x04, 0x04, 0x02, 0x02, 0x01, 0x12, 0x03, 0x17, 0x02, 0x39, 0x0a, 0x0c, 0x0a, 0x05, 0x04, - 0x02, 0x02, 0x01, 0x04, 0x12, 0x03, 0x17, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, - 0x01, 0x06, 0x12, 0x03, 0x17, 0x0b, 0x29, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x01, - 0x12, 0x03, 0x17, 0x2a, 0x34, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x03, 0x12, 0x03, - 0x17, 0x37, 0x38, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x02, 0x12, 0x03, 0x18, 0x02, 0x1b, - 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x02, 0x05, 0x12, 0x03, 0x18, 0x02, 0x08, 0x0a, 0x0c, - 0x0a, 0x05, 0x04, 0x02, 0x02, 0x02, 0x01, 0x12, 0x03, 0x18, 0x09, 0x16, 0x0a, 0x0c, 0x0a, 0x05, - 0x04, 0x02, 0x02, 0x02, 0x03, 0x12, 0x03, 0x18, 0x19, 0x1a, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x02, - 0x02, 0x03, 0x12, 0x03, 0x19, 0x02, 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x03, 0x04, - 0x12, 0x03, 0x19, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x03, 0x05, 0x12, 0x03, - 0x19, 0x0b, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x03, 0x01, 0x12, 0x03, 0x19, 0x12, - 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x03, 0x03, 0x12, 0x03, 0x19, 0x20, 0x21, 0x0a, - 0x0b, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x04, 0x12, 0x03, 0x1b, 0x02, 0x27, 0x0a, 0x0c, 0x0a, 0x05, - 0x04, 0x02, 0x02, 0x04, 0x04, 0x12, 0x03, 0x1b, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, - 0x02, 0x04, 0x06, 0x12, 0x03, 0x1b, 0x0b, 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x04, - 0x01, 0x12, 0x03, 0x1b, 0x1a, 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x04, 0x03, 0x12, - 0x03, 0x1b, 0x25, 0x26, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x03, 0x12, 0x04, 0x1e, 0x00, 0x20, 0x01, - 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x03, 0x01, 0x12, 0x03, 0x1e, 0x08, 0x12, 0x0a, 0x0b, 0x0a, 0x04, - 0x04, 0x03, 0x02, 0x00, 0x12, 0x03, 0x1f, 0x02, 0x2b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, - 0x00, 0x04, 0x12, 0x03, 0x1f, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, 0x06, - 0x12, 0x03, 0x1f, 0x0b, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, 0x01, 0x12, 0x03, - 0x1f, 0x18, 0x26, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, 0x03, 0x12, 0x03, 0x1f, 0x29, - 0x2a, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x04, 0x12, 0x04, 0x22, 0x00, 0x29, 0x01, 0x0a, 0x0a, 0x0a, - 0x03, 0x04, 0x04, 0x01, 0x12, 0x03, 0x22, 0x08, 0x1b, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x04, 0x02, - 0x00, 0x12, 0x03, 0x23, 0x02, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x00, 0x05, 0x12, - 0x03, 0x23, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x00, 0x01, 0x12, 0x03, 0x23, - 0x09, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x00, 0x03, 0x12, 0x03, 0x23, 0x14, 0x15, - 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x01, 0x12, 0x03, 0x24, 0x02, 0x38, 0x0a, 0x0c, 0x0a, - 0x05, 0x04, 0x04, 0x02, 0x01, 0x04, 0x12, 0x03, 0x24, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, - 0x04, 0x02, 0x01, 0x06, 0x12, 0x03, 0x24, 0x0b, 0x29, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, - 0x01, 0x01, 0x12, 0x03, 0x24, 0x2a, 0x33, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x01, 0x03, - 0x12, 0x03, 0x24, 0x36, 0x37, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x02, 0x12, 0x03, 0x25, - 0x02, 0x2b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x02, 0x04, 0x12, 0x03, 0x25, 0x02, 0x0a, - 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x02, 0x05, 0x12, 0x03, 0x25, 0x0b, 0x11, 0x0a, 0x0c, - 0x0a, 0x05, 0x04, 0x04, 0x02, 0x02, 0x01, 0x12, 0x03, 0x25, 0x12, 0x26, 0x0a, 0x0c, 0x0a, 0x05, - 0x04, 0x04, 0x02, 0x02, 0x03, 0x12, 0x03, 0x25, 0x29, 0x2a, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x04, - 0x02, 0x03, 0x12, 0x03, 0x26, 0x02, 0x26, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x03, 0x04, - 0x12, 0x03, 0x26, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x03, 0x06, 0x12, 0x03, - 0x26, 0x0b, 0x15, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x03, 0x01, 0x12, 0x03, 0x26, 0x16, - 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x03, 0x03, 0x12, 0x03, 0x26, 0x24, 0x25, 0x0a, - 0x60, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x04, 0x12, 0x03, 0x28, 0x02, 0x2b, 0x1a, 0x53, 0x20, 0x49, - 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x69, - 0x74, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x61, 0x74, 0x61, - 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, - 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x20, 0x61, 0x6e, 0x79, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x79, 0x65, 0x74, 0x2e, - 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x04, 0x04, 0x12, 0x03, 0x28, 0x02, 0x0a, 0x0a, - 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x04, 0x05, 0x12, 0x03, 0x28, 0x0b, 0x11, 0x0a, 0x0c, 0x0a, - 0x05, 0x04, 0x04, 0x02, 0x04, 0x01, 0x12, 0x03, 0x28, 0x12, 0x26, 0x0a, 0x0c, 0x0a, 0x05, 0x04, - 0x04, 0x02, 0x04, 0x03, 0x12, 0x03, 0x28, 0x29, 0x2a, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x05, 0x12, - 0x04, 0x2b, 0x00, 0x30, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x05, 0x01, 0x12, 0x03, 0x2b, 0x08, - 0x21, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x05, 0x02, 0x00, 0x12, 0x03, 0x2c, 0x02, 0x16, 0x0a, 0x0c, - 0x0a, 0x05, 0x04, 0x05, 0x02, 0x00, 0x05, 0x12, 0x03, 0x2c, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, - 0x04, 0x05, 0x02, 0x00, 0x01, 0x12, 0x03, 0x2c, 0x09, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, - 0x02, 0x00, 0x03, 0x12, 0x03, 0x2c, 0x14, 0x15, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x05, 0x02, 0x01, - 0x12, 0x03, 0x2d, 0x02, 0x38, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x01, 0x04, 0x12, 0x03, - 0x2d, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x01, 0x06, 0x12, 0x03, 0x2d, 0x0b, - 0x29, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x01, 0x01, 0x12, 0x03, 0x2d, 0x2a, 0x33, 0x0a, - 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x01, 0x03, 0x12, 0x03, 0x2d, 0x36, 0x37, 0x0a, 0x0b, 0x0a, - 0x04, 0x04, 0x05, 0x02, 0x02, 0x12, 0x03, 0x2e, 0x02, 0x2b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, - 0x02, 0x02, 0x04, 0x12, 0x03, 0x2e, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x02, - 0x05, 0x12, 0x03, 0x2e, 0x0b, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x02, 0x01, 0x12, - 0x03, 0x2e, 0x12, 0x26, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x02, 0x03, 0x12, 0x03, 0x2e, - 0x29, 0x2a, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x05, 0x02, 0x03, 0x12, 0x03, 0x2f, 0x02, 0x26, 0x0a, - 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x03, 0x04, 0x12, 0x03, 0x2f, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, - 0x05, 0x04, 0x05, 0x02, 0x03, 0x06, 0x12, 0x03, 0x2f, 0x0b, 0x15, 0x0a, 0x0c, 0x0a, 0x05, 0x04, - 0x05, 0x02, 0x03, 0x01, 0x12, 0x03, 0x2f, 0x16, 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, - 0x03, 0x03, 0x12, 0x03, 0x2f, 0x24, 0x25, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x06, 0x12, 0x04, 0x32, - 0x00, 0x36, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x06, 0x01, 0x12, 0x03, 0x32, 0x08, 0x14, 0x0a, - 0x0b, 0x0a, 0x04, 0x04, 0x06, 0x02, 0x00, 0x12, 0x03, 0x33, 0x02, 0x16, 0x0a, 0x0c, 0x0a, 0x05, - 0x04, 0x06, 0x02, 0x00, 0x05, 0x12, 0x03, 0x33, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, - 0x02, 0x00, 0x01, 0x12, 0x03, 0x33, 0x09, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x00, - 0x03, 0x12, 0x03, 0x33, 0x14, 0x15, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x06, 0x02, 0x01, 0x12, 0x03, - 0x34, 0x02, 0x38, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x01, 0x04, 0x12, 0x03, 0x34, 0x02, - 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x01, 0x06, 0x12, 0x03, 0x34, 0x0b, 0x29, 0x0a, - 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x01, 0x01, 0x12, 0x03, 0x34, 0x2a, 0x33, 0x0a, 0x0c, 0x0a, - 0x05, 0x04, 0x06, 0x02, 0x01, 0x03, 0x12, 0x03, 0x34, 0x36, 0x37, 0x0a, 0x0b, 0x0a, 0x04, 0x04, - 0x06, 0x02, 0x02, 0x12, 0x03, 0x35, 0x02, 0x2b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x02, - 0x04, 0x12, 0x03, 0x35, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x02, 0x05, 0x12, - 0x03, 0x35, 0x0b, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x02, 0x01, 0x12, 0x03, 0x35, - 0x12, 0x26, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x02, 0x03, 0x12, 0x03, 0x35, 0x29, 0x2a, - 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x07, 0x12, 0x04, 0x38, 0x00, 0x3d, 0x01, 0x0a, 0x0a, 0x0a, 0x03, - 0x04, 0x07, 0x01, 0x12, 0x03, 0x38, 0x08, 0x17, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x07, 0x02, 0x00, - 0x12, 0x03, 0x39, 0x02, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x00, 0x05, 0x12, 0x03, - 0x39, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x00, 0x01, 0x12, 0x03, 0x39, 0x09, - 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x00, 0x03, 0x12, 0x03, 0x39, 0x14, 0x15, 0x0a, - 0x0b, 0x0a, 0x04, 0x04, 0x07, 0x02, 0x01, 0x12, 0x03, 0x3a, 0x02, 0x38, 0x0a, 0x0c, 0x0a, 0x05, - 0x04, 0x07, 0x02, 0x01, 0x04, 0x12, 0x03, 0x3a, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, - 0x02, 0x01, 0x06, 0x12, 0x03, 0x3a, 0x0b, 0x29, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x01, - 0x01, 0x12, 0x03, 0x3a, 0x2a, 0x33, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x01, 0x03, 0x12, - 0x03, 0x3a, 0x36, 0x37, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x07, 0x02, 0x02, 0x12, 0x03, 0x3b, 0x02, - 0x2b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x02, 0x04, 0x12, 0x03, 0x3b, 0x02, 0x0a, 0x0a, - 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x02, 0x05, 0x12, 0x03, 0x3b, 0x0b, 0x11, 0x0a, 0x0c, 0x0a, - 0x05, 0x04, 0x07, 0x02, 0x02, 0x01, 0x12, 0x03, 0x3b, 0x12, 0x26, 0x0a, 0x0c, 0x0a, 0x05, 0x04, - 0x07, 0x02, 0x02, 0x03, 0x12, 0x03, 0x3b, 0x29, 0x2a, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x07, 0x02, - 0x03, 0x12, 0x03, 0x3c, 0x02, 0x25, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x03, 0x04, 0x12, - 0x03, 0x3c, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x03, 0x05, 0x12, 0x03, 0x3c, - 0x0b, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x03, 0x01, 0x12, 0x03, 0x3c, 0x12, 0x20, - 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x03, 0x03, 0x12, 0x03, 0x3c, 0x23, 0x24, 0x0a, 0x0a, - 0x0a, 0x02, 0x04, 0x08, 0x12, 0x04, 0x3f, 0x00, 0x47, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x08, - 0x01, 0x12, 0x03, 0x3f, 0x08, 0x13, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x00, 0x12, 0x03, - 0x40, 0x02, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x00, 0x04, 0x12, 0x03, 0x40, 0x02, - 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x00, 0x05, 0x12, 0x03, 0x40, 0x0b, 0x11, 0x0a, - 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x00, 0x01, 0x12, 0x03, 0x40, 0x12, 0x19, 0x0a, 0x0c, 0x0a, - 0x05, 0x04, 0x08, 0x02, 0x00, 0x03, 0x12, 0x03, 0x40, 0x1c, 0x1d, 0x0a, 0x0c, 0x0a, 0x04, 0x04, - 0x08, 0x08, 0x00, 0x12, 0x04, 0x41, 0x02, 0x46, 0x03, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x08, - 0x00, 0x01, 0x12, 0x03, 0x41, 0x08, 0x0c, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x01, 0x12, - 0x03, 0x42, 0x06, 0x35, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x01, 0x06, 0x12, 0x03, 0x42, - 0x06, 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x01, 0x01, 0x12, 0x03, 0x42, 0x1a, 0x30, - 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x01, 0x03, 0x12, 0x03, 0x42, 0x33, 0x34, 0x0a, 0x0b, - 0x0a, 0x04, 0x04, 0x08, 0x02, 0x02, 0x12, 0x03, 0x43, 0x06, 0x41, 0x0a, 0x0c, 0x0a, 0x05, 0x04, - 0x08, 0x02, 0x02, 0x06, 0x12, 0x03, 0x43, 0x06, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, - 0x02, 0x01, 0x12, 0x03, 0x43, 0x20, 0x3c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x02, 0x03, - 0x12, 0x03, 0x43, 0x3f, 0x40, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x03, 0x12, 0x03, 0x44, - 0x06, 0x25, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x03, 0x06, 0x12, 0x03, 0x44, 0x06, 0x12, - 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x03, 0x01, 0x12, 0x03, 0x44, 0x13, 0x20, 0x0a, 0x0c, - 0x0a, 0x05, 0x04, 0x08, 0x02, 0x03, 0x03, 0x12, 0x03, 0x44, 0x23, 0x24, 0x0a, 0x0b, 0x0a, 0x04, - 0x04, 0x08, 0x02, 0x04, 0x12, 0x03, 0x45, 0x06, 0x2c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, - 0x04, 0x06, 0x12, 0x03, 0x45, 0x06, 0x15, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x04, 0x01, - 0x12, 0x03, 0x45, 0x16, 0x27, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x04, 0x03, 0x12, 0x03, - 0x45, 0x2a, 0x2b, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x09, 0x12, 0x04, 0x49, 0x00, 0x4b, 0x01, 0x0a, - 0x0a, 0x0a, 0x03, 0x04, 0x09, 0x01, 0x12, 0x03, 0x49, 0x08, 0x18, 0x0a, 0x0b, 0x0a, 0x04, 0x04, - 0x09, 0x02, 0x00, 0x12, 0x03, 0x4a, 0x02, 0x28, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x00, - 0x04, 0x12, 0x03, 0x4a, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x00, 0x06, 0x12, - 0x03, 0x4a, 0x0b, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x00, 0x01, 0x12, 0x03, 0x4a, - 0x17, 0x23, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x00, 0x03, 0x12, 0x03, 0x4a, 0x26, 0x27, - 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x0a, 0x12, 0x04, 0x4d, 0x00, 0x4f, 0x01, 0x0a, 0x0a, 0x0a, 0x03, - 0x04, 0x0a, 0x01, 0x12, 0x03, 0x4d, 0x08, 0x19, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x0a, 0x02, 0x00, - 0x12, 0x03, 0x4e, 0x02, 0x2b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x00, 0x04, 0x12, 0x03, - 0x4e, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x00, 0x05, 0x12, 0x03, 0x4e, 0x0b, - 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x00, 0x01, 0x12, 0x03, 0x4e, 0x12, 0x26, 0x0a, - 0x0c, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x00, 0x03, 0x12, 0x03, 0x4e, 0x29, 0x2a, 0x0a, 0x0a, 0x0a, - 0x02, 0x04, 0x0b, 0x12, 0x04, 0x51, 0x00, 0x55, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x0b, 0x01, - 0x12, 0x03, 0x51, 0x08, 0x1e, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x0b, 0x02, 0x00, 0x12, 0x03, 0x52, - 0x02, 0x2b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x00, 0x04, 0x12, 0x03, 0x52, 0x02, 0x0a, - 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x00, 0x05, 0x12, 0x03, 0x52, 0x0b, 0x11, 0x0a, 0x0c, - 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x00, 0x01, 0x12, 0x03, 0x52, 0x12, 0x26, 0x0a, 0x0c, 0x0a, 0x05, - 0x04, 0x0b, 0x02, 0x00, 0x03, 0x12, 0x03, 0x52, 0x29, 0x2a, 0x0a, 0x51, 0x0a, 0x04, 0x04, 0x0b, - 0x02, 0x01, 0x12, 0x03, 0x54, 0x02, 0x22, 0x1a, 0x44, 0x20, 0x60, 0x74, 0x72, 0x75, 0x65, 0x60, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6c, 0x69, 0x76, 0x65, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2c, 0x20, 0x60, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x60, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x64, - 0x61, 0x74, 0x61, 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, - 0x05, 0x04, 0x0b, 0x02, 0x01, 0x05, 0x12, 0x03, 0x54, 0x02, 0x06, 0x0a, 0x0c, 0x0a, 0x05, 0x04, - 0x0b, 0x02, 0x01, 0x01, 0x12, 0x03, 0x54, 0x07, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x0b, 0x02, - 0x01, 0x03, 0x12, 0x03, 0x54, 0x20, 0x21, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x0c, 0x12, 0x04, 0x57, - 0x00, 0x5c, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x0c, 0x01, 0x12, 0x03, 0x57, 0x08, 0x1f, 0x0a, - 0x0c, 0x0a, 0x04, 0x04, 0x0c, 0x08, 0x00, 0x12, 0x04, 0x58, 0x02, 0x5b, 0x03, 0x0a, 0x0c, 0x0a, - 0x05, 0x04, 0x0c, 0x08, 0x00, 0x01, 0x12, 0x03, 0x58, 0x08, 0x0c, 0x0a, 0x0b, 0x0a, 0x04, 0x04, - 0x0c, 0x02, 0x00, 0x12, 0x03, 0x59, 0x04, 0x33, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x00, - 0x06, 0x12, 0x03, 0x59, 0x04, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x00, 0x01, 0x12, - 0x03, 0x59, 0x18, 0x2e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x00, 0x03, 0x12, 0x03, 0x59, - 0x31, 0x32, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x0c, 0x02, 0x01, 0x12, 0x03, 0x5a, 0x04, 0x3f, 0x0a, - 0x0c, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x01, 0x06, 0x12, 0x03, 0x5a, 0x04, 0x1d, 0x0a, 0x0c, 0x0a, - 0x05, 0x04, 0x0c, 0x02, 0x01, 0x01, 0x12, 0x03, 0x5a, 0x1e, 0x3a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, - 0x0c, 0x02, 0x01, 0x03, 0x12, 0x03, 0x5a, 0x3d, 0x3e, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x0d, 0x12, - 0x04, 0x5e, 0x00, 0x60, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x0d, 0x01, 0x12, 0x03, 0x5e, 0x08, - 0x27, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x0d, 0x02, 0x00, 0x12, 0x03, 0x5f, 0x02, 0x33, 0x0a, 0x0c, - 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x00, 0x04, 0x12, 0x03, 0x5f, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, - 0x04, 0x0d, 0x02, 0x00, 0x06, 0x12, 0x03, 0x5f, 0x0b, 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x0d, - 0x02, 0x00, 0x01, 0x12, 0x03, 0x5f, 0x22, 0x2e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x00, - 0x03, 0x12, 0x03, 0x5f, 0x31, 0x32, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x0e, 0x12, 0x04, 0x62, 0x00, - 0x64, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x0e, 0x01, 0x12, 0x03, 0x62, 0x08, 0x28, 0x0a, 0x0b, - 0x0a, 0x04, 0x04, 0x0e, 0x02, 0x00, 0x12, 0x03, 0x63, 0x02, 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x04, - 0x0e, 0x02, 0x00, 0x05, 0x12, 0x03, 0x63, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x0e, 0x02, - 0x00, 0x01, 0x12, 0x03, 0x63, 0x09, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x00, 0x03, - 0x12, 0x03, 0x63, 0x20, 0x21, 0x0a, 0x0a, 0x0a, 0x02, 0x06, 0x00, 0x12, 0x04, 0x66, 0x00, 0x6a, - 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x06, 0x00, 0x01, 0x12, 0x03, 0x66, 0x08, 0x13, 0x0a, 0x0b, 0x0a, - 0x04, 0x06, 0x00, 0x02, 0x00, 0x12, 0x03, 0x67, 0x02, 0x3e, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, - 0x02, 0x00, 0x01, 0x12, 0x03, 0x67, 0x06, 0x0f, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, - 0x02, 0x12, 0x03, 0x67, 0x10, 0x20, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x03, 0x12, - 0x03, 0x67, 0x2b, 0x3c, 0x0a, 0x0b, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x01, 0x12, 0x03, 0x68, 0x02, - 0x4d, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, 0x01, 0x12, 0x03, 0x68, 0x06, 0x15, 0x0a, - 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, 0x02, 0x12, 0x03, 0x68, 0x16, 0x2c, 0x0a, 0x0c, 0x0a, - 0x05, 0x06, 0x00, 0x02, 0x01, 0x03, 0x12, 0x03, 0x68, 0x37, 0x4b, 0x0a, 0x0b, 0x0a, 0x04, 0x06, - 0x00, 0x02, 0x02, 0x12, 0x03, 0x69, 0x02, 0x6b, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x02, - 0x01, 0x12, 0x03, 0x69, 0x06, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x02, 0x02, 0x12, - 0x03, 0x69, 0x1f, 0x3e, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x02, 0x03, 0x12, 0x03, 0x69, - 0x49, 0x69, 0x0a, 0x0a, 0x0a, 0x02, 0x06, 0x01, 0x12, 0x04, 0x6c, 0x00, 0x6f, 0x01, 0x0a, 0x0a, - 0x0a, 0x03, 0x06, 0x01, 0x01, 0x12, 0x03, 0x6c, 0x08, 0x13, 0x0a, 0x0b, 0x0a, 0x04, 0x06, 0x01, - 0x02, 0x00, 0x12, 0x03, 0x6d, 0x02, 0x45, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x01, 0x02, 0x00, 0x01, - 0x12, 0x03, 0x6d, 0x06, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x01, 0x02, 0x00, 0x02, 0x12, 0x03, - 0x6d, 0x0b, 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x01, 0x02, 0x00, 0x03, 0x12, 0x03, 0x6d, 0x2c, - 0x43, 0x0a, 0x0b, 0x0a, 0x04, 0x06, 0x01, 0x02, 0x01, 0x12, 0x03, 0x6e, 0x02, 0x54, 0x0a, 0x0c, - 0x0a, 0x05, 0x06, 0x01, 0x02, 0x01, 0x01, 0x12, 0x03, 0x6e, 0x06, 0x15, 0x0a, 0x0c, 0x0a, 0x05, - 0x06, 0x01, 0x02, 0x01, 0x02, 0x12, 0x03, 0x6e, 0x16, 0x2c, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x01, - 0x02, 0x01, 0x06, 0x12, 0x03, 0x6e, 0x37, 0x3d, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x01, 0x02, 0x01, - 0x03, 0x12, 0x03, 0x6e, 0x3e, 0x52, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x30, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x00, 0x12, 0x04, 0x09, 0x00, 0x0b, 0x01, 0x0a, 0x0a, 0x0a, + 0x03, 0x04, 0x00, 0x01, 0x12, 0x03, 0x09, 0x08, 0x19, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, + 0x00, 0x12, 0x03, 0x0a, 0x02, 0x30, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x04, 0x12, + 0x03, 0x0a, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x06, 0x12, 0x03, 0x0a, + 0x0b, 0x23, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x0a, 0x24, 0x2b, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x0a, 0x2e, 0x2f, 0x0a, 0x0a, + 0x0a, 0x02, 0x04, 0x01, 0x12, 0x04, 0x0d, 0x00, 0x0f, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x01, + 0x01, 0x12, 0x03, 0x0d, 0x08, 0x18, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x00, 0x12, 0x03, + 0x0e, 0x02, 0x30, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x04, 0x12, 0x03, 0x0e, 0x02, + 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x06, 0x12, 0x03, 0x0e, 0x0b, 0x23, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x01, 0x12, 0x03, 0x0e, 0x24, 0x2b, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x01, 0x02, 0x00, 0x03, 0x12, 0x03, 0x0e, 0x2e, 0x2f, 0x0a, 0x0a, 0x0a, 0x02, 0x04, + 0x02, 0x12, 0x04, 0x11, 0x00, 0x14, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x02, 0x01, 0x12, 0x03, + 0x11, 0x08, 0x1d, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x00, 0x12, 0x03, 0x12, 0x02, 0x1c, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x04, 0x12, 0x03, 0x12, 0x02, 0x0a, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x05, 0x12, 0x03, 0x12, 0x0b, 0x0f, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x02, 0x02, 0x00, 0x01, 0x12, 0x03, 0x12, 0x10, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, + 0x02, 0x00, 0x03, 0x12, 0x03, 0x12, 0x1a, 0x1b, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x01, + 0x12, 0x03, 0x13, 0x02, 0x51, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x04, 0x12, 0x03, + 0x13, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x06, 0x12, 0x03, 0x13, 0x0b, + 0x3b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x01, 0x12, 0x03, 0x13, 0x3c, 0x4c, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x03, 0x12, 0x03, 0x13, 0x4f, 0x50, 0x0a, 0x0a, 0x0a, + 0x02, 0x04, 0x03, 0x12, 0x04, 0x16, 0x00, 0x1a, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x03, 0x01, + 0x12, 0x03, 0x16, 0x08, 0x1b, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x03, 0x02, 0x00, 0x12, 0x03, 0x17, + 0x02, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, 0x04, 0x12, 0x03, 0x17, 0x02, 0x0a, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, 0x05, 0x12, 0x03, 0x17, 0x0b, 0x11, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, 0x01, 0x12, 0x03, 0x17, 0x12, 0x19, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x03, 0x02, 0x00, 0x03, 0x12, 0x03, 0x17, 0x1c, 0x1d, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x03, + 0x02, 0x01, 0x12, 0x03, 0x18, 0x02, 0x23, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x01, 0x04, + 0x12, 0x03, 0x18, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x01, 0x05, 0x12, 0x03, + 0x18, 0x0b, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x01, 0x01, 0x12, 0x03, 0x18, 0x12, + 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x01, 0x03, 0x12, 0x03, 0x18, 0x21, 0x22, 0x0a, + 0x0b, 0x0a, 0x04, 0x04, 0x03, 0x02, 0x02, 0x12, 0x03, 0x19, 0x02, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x03, 0x02, 0x02, 0x04, 0x12, 0x03, 0x19, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, + 0x02, 0x02, 0x05, 0x12, 0x03, 0x19, 0x0b, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x02, + 0x01, 0x12, 0x03, 0x19, 0x12, 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x02, 0x03, 0x12, + 0x03, 0x19, 0x1d, 0x1e, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x04, 0x12, 0x04, 0x1c, 0x00, 0x1e, 0x01, + 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x04, 0x01, 0x12, 0x03, 0x1c, 0x08, 0x24, 0x0a, 0x0b, 0x0a, 0x04, + 0x04, 0x04, 0x02, 0x00, 0x12, 0x03, 0x1d, 0x02, 0x39, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, + 0x00, 0x04, 0x12, 0x03, 0x1d, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x00, 0x06, + 0x12, 0x03, 0x1d, 0x0b, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x00, 0x01, 0x12, 0x03, + 0x1d, 0x1f, 0x34, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x00, 0x03, 0x12, 0x03, 0x1d, 0x37, + 0x38, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x05, 0x12, 0x04, 0x20, 0x00, 0x23, 0x01, 0x0a, 0x0a, 0x0a, + 0x03, 0x04, 0x05, 0x01, 0x12, 0x03, 0x20, 0x08, 0x1d, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x05, 0x02, + 0x00, 0x12, 0x03, 0x21, 0x02, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x00, 0x04, 0x12, + 0x03, 0x21, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x00, 0x05, 0x12, 0x03, 0x21, + 0x0b, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x00, 0x01, 0x12, 0x03, 0x21, 0x12, 0x18, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x00, 0x03, 0x12, 0x03, 0x21, 0x1b, 0x1c, 0x0a, 0x0b, + 0x0a, 0x04, 0x04, 0x05, 0x02, 0x01, 0x12, 0x03, 0x22, 0x02, 0x3b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x05, 0x02, 0x01, 0x04, 0x12, 0x03, 0x22, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, + 0x01, 0x06, 0x12, 0x03, 0x22, 0x0b, 0x27, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x01, 0x01, + 0x12, 0x03, 0x22, 0x28, 0x36, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x01, 0x03, 0x12, 0x03, + 0x22, 0x39, 0x3a, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x06, 0x12, 0x04, 0x26, 0x00, 0x2a, 0x01, 0x0a, + 0x0a, 0x0a, 0x03, 0x04, 0x06, 0x01, 0x12, 0x03, 0x26, 0x08, 0x1b, 0x0a, 0x0b, 0x0a, 0x04, 0x04, + 0x06, 0x02, 0x00, 0x12, 0x03, 0x27, 0x02, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x00, + 0x04, 0x12, 0x03, 0x27, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x00, 0x05, 0x12, + 0x03, 0x27, 0x0b, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x00, 0x01, 0x12, 0x03, 0x27, + 0x12, 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x00, 0x03, 0x12, 0x03, 0x27, 0x1c, 0x1d, + 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x06, 0x02, 0x01, 0x12, 0x03, 0x28, 0x02, 0x1d, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x06, 0x02, 0x01, 0x04, 0x12, 0x03, 0x28, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x06, 0x02, 0x01, 0x05, 0x12, 0x03, 0x28, 0x0b, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, + 0x01, 0x01, 0x12, 0x03, 0x28, 0x12, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x01, 0x03, + 0x12, 0x03, 0x28, 0x1b, 0x1c, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x06, 0x02, 0x02, 0x12, 0x03, 0x29, + 0x02, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x02, 0x04, 0x12, 0x03, 0x29, 0x02, 0x0a, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x02, 0x05, 0x12, 0x03, 0x29, 0x0b, 0x11, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x06, 0x02, 0x02, 0x01, 0x12, 0x03, 0x29, 0x12, 0x16, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x06, 0x02, 0x02, 0x03, 0x12, 0x03, 0x29, 0x19, 0x1a, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x07, + 0x12, 0x04, 0x2c, 0x00, 0x2f, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x07, 0x01, 0x12, 0x03, 0x2c, + 0x08, 0x13, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x07, 0x02, 0x00, 0x12, 0x03, 0x2d, 0x02, 0x2f, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x00, 0x04, 0x12, 0x03, 0x2d, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x07, 0x02, 0x00, 0x06, 0x12, 0x03, 0x2d, 0x0b, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x07, 0x02, 0x00, 0x01, 0x12, 0x03, 0x2d, 0x1f, 0x2a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, + 0x00, 0x03, 0x12, 0x03, 0x2d, 0x2d, 0x2e, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x07, 0x02, 0x01, 0x12, + 0x03, 0x2e, 0x02, 0x2c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x01, 0x04, 0x12, 0x03, 0x2e, + 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x01, 0x05, 0x12, 0x03, 0x2e, 0x0b, 0x11, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x01, 0x01, 0x12, 0x03, 0x2e, 0x12, 0x27, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x07, 0x02, 0x01, 0x03, 0x12, 0x03, 0x2e, 0x2a, 0x2b, 0x0a, 0x0a, 0x0a, 0x02, + 0x04, 0x08, 0x12, 0x04, 0x31, 0x00, 0x35, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x08, 0x01, 0x12, + 0x03, 0x31, 0x08, 0x11, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x00, 0x12, 0x03, 0x32, 0x02, + 0x3d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x00, 0x04, 0x12, 0x03, 0x32, 0x02, 0x0a, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x00, 0x06, 0x12, 0x03, 0x32, 0x0b, 0x20, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x08, 0x02, 0x00, 0x01, 0x12, 0x03, 0x32, 0x21, 0x38, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x08, 0x02, 0x00, 0x03, 0x12, 0x03, 0x32, 0x3b, 0x3c, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x08, 0x02, + 0x01, 0x12, 0x03, 0x33, 0x02, 0x3d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x01, 0x04, 0x12, + 0x03, 0x33, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x01, 0x06, 0x12, 0x03, 0x33, + 0x0b, 0x20, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x01, 0x01, 0x12, 0x03, 0x33, 0x21, 0x38, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x01, 0x03, 0x12, 0x03, 0x33, 0x3b, 0x3c, 0x0a, 0x0b, + 0x0a, 0x04, 0x04, 0x08, 0x02, 0x02, 0x12, 0x03, 0x34, 0x02, 0x28, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x08, 0x02, 0x02, 0x04, 0x12, 0x03, 0x34, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, + 0x02, 0x06, 0x12, 0x03, 0x34, 0x0b, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x02, 0x01, + 0x12, 0x03, 0x34, 0x17, 0x23, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x02, 0x03, 0x12, 0x03, + 0x34, 0x26, 0x27, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x09, 0x12, 0x04, 0x37, 0x00, 0x3e, 0x01, 0x0a, + 0x0a, 0x0a, 0x03, 0x04, 0x09, 0x01, 0x12, 0x03, 0x37, 0x08, 0x20, 0x0a, 0x0c, 0x0a, 0x04, 0x04, + 0x09, 0x08, 0x00, 0x12, 0x04, 0x38, 0x02, 0x3d, 0x03, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x08, + 0x00, 0x01, 0x12, 0x03, 0x38, 0x08, 0x0e, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x09, 0x02, 0x00, 0x12, + 0x03, 0x39, 0x06, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x00, 0x06, 0x12, 0x03, 0x39, + 0x06, 0x0f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x00, 0x01, 0x12, 0x03, 0x39, 0x10, 0x1a, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x00, 0x03, 0x12, 0x03, 0x39, 0x1d, 0x1e, 0x0a, 0x0b, + 0x0a, 0x04, 0x04, 0x09, 0x02, 0x01, 0x12, 0x03, 0x3a, 0x06, 0x28, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x09, 0x02, 0x01, 0x06, 0x12, 0x03, 0x3a, 0x06, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, + 0x01, 0x01, 0x12, 0x03, 0x3a, 0x18, 0x23, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x01, 0x03, + 0x12, 0x03, 0x3a, 0x26, 0x27, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x09, 0x02, 0x02, 0x12, 0x03, 0x3b, + 0x06, 0x26, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x02, 0x06, 0x12, 0x03, 0x3b, 0x06, 0x16, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x02, 0x01, 0x12, 0x03, 0x3b, 0x17, 0x21, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x09, 0x02, 0x02, 0x03, 0x12, 0x03, 0x3b, 0x24, 0x25, 0x0a, 0x0b, 0x0a, 0x04, + 0x04, 0x09, 0x02, 0x03, 0x12, 0x03, 0x3c, 0x06, 0x2f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, + 0x03, 0x06, 0x12, 0x03, 0x3c, 0x06, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x03, 0x01, + 0x12, 0x03, 0x3c, 0x1f, 0x2a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x03, 0x03, 0x12, 0x03, + 0x3c, 0x2d, 0x2e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x0a, 0xfe, 0x14, 0x0a, 0x1f, + 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x2f, 0x76, 0x31, + 0x2f, 0x72, 0x61, 0x77, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, + 0x10, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x2e, 0x76, + 0x31, 0x1a, 0x1d, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, + 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x1a, 0x26, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa3, 0x01, 0x0a, 0x15, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x12, 0x45, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, + 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2e, 0x0a, 0x10, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xda, + 0x02, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x10, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x42, 0x02, 0x30, 0x01, 0x48, 0x00, 0x52, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x69, 0x6e, 0x67, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, + 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x02, 0x30, 0x01, 0x48, 0x01, 0x52, + 0x11, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x73, + 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x09, 0x62, 0x61, 0x74, + 0x63, 0x68, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x5e, 0x0a, 0x12, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x48, 0x03, 0x52, 0x11, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x15, + 0x0a, 0x13, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, + 0x73, 0x69, 0x7a, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0x8e, 0x01, 0x0a, 0x14, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x61, 0x70, 0x74, + 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x63, + 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x02, 0x30, + 0x01, 0x48, 0x00, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, + 0x0b, 0x0a, 0x09, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x32, 0x70, 0x0a, 0x07, + 0x52, 0x61, 0x77, 0x44, 0x61, 0x74, 0x61, 0x12, 0x65, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x28, 0x2e, 0x61, 0x70, 0x74, + 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x42, 0x86, + 0x01, 0x0a, 0x14, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x42, 0x0c, 0x52, 0x61, 0x77, 0x44, 0x61, 0x74, 0x61, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0xa2, 0x02, 0x03, 0x41, 0x49, 0x58, 0xaa, 0x02, 0x10, + 0x41, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x2e, 0x56, 0x31, + 0xca, 0x02, 0x10, 0x41, 0x70, 0x74, 0x6f, 0x73, 0x5c, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, + 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1c, 0x41, 0x70, 0x74, 0x6f, 0x73, 0x5c, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x65, 0x72, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0xea, 0x02, 0x12, 0x41, 0x70, 0x74, 0x6f, 0x73, 0x3a, 0x3a, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x65, 0x72, 0x3a, 0x3a, 0x56, 0x31, 0x4a, 0xea, 0x0c, 0x0a, 0x06, 0x12, 0x04, 0x03, 0x00, + 0x2e, 0x01, 0x0a, 0x4e, 0x0a, 0x01, 0x0c, 0x12, 0x03, 0x03, 0x00, 0x12, 0x32, 0x44, 0x20, 0x43, + 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0xc2, 0xa9, 0x20, 0x41, 0x70, 0x74, 0x6f, + 0x73, 0x20, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x53, 0x50, + 0x44, 0x58, 0x2d, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x2d, 0x49, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x66, 0x69, 0x65, 0x72, 0x3a, 0x20, 0x41, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, + 0x30, 0x0a, 0x0a, 0x08, 0x0a, 0x01, 0x02, 0x12, 0x03, 0x05, 0x00, 0x19, 0x0a, 0x09, 0x0a, 0x02, + 0x03, 0x00, 0x12, 0x03, 0x07, 0x00, 0x27, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x01, 0x12, 0x03, 0x08, + 0x00, 0x30, 0x0a, 0x27, 0x0a, 0x02, 0x04, 0x00, 0x12, 0x04, 0x0b, 0x00, 0x10, 0x01, 0x1a, 0x1b, + 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, 0x03, 0x04, + 0x00, 0x01, 0x12, 0x03, 0x0b, 0x08, 0x1d, 0x0a, 0x2b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x00, 0x12, + 0x03, 0x0d, 0x02, 0x3d, 0x1a, 0x1e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x3b, + 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x64, 0x61, + 0x74, 0x61, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x04, 0x12, 0x03, 0x0d, + 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x06, 0x12, 0x03, 0x0d, 0x0b, 0x2b, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x0d, 0x2c, 0x38, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x0d, 0x3b, 0x3c, 0x0a, 0x22, 0x0a, 0x04, + 0x04, 0x00, 0x02, 0x01, 0x12, 0x03, 0x0f, 0x02, 0x27, 0x1a, 0x15, 0x20, 0x52, 0x65, 0x71, 0x75, + 0x69, 0x72, 0x65, 0x64, 0x3b, 0x20, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x20, 0x69, 0x64, 0x2e, 0x0a, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x04, 0x12, 0x03, 0x0f, 0x02, 0x0a, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x05, 0x12, 0x03, 0x0f, 0x0b, 0x11, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x01, 0x01, 0x12, 0x03, 0x0f, 0x12, 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x01, 0x03, 0x12, 0x03, 0x0f, 0x25, 0x26, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x01, 0x12, 0x04, + 0x12, 0x00, 0x20, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x01, 0x01, 0x12, 0x03, 0x12, 0x08, 0x1e, + 0x0a, 0x39, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x00, 0x12, 0x03, 0x14, 0x02, 0x3c, 0x1a, 0x2c, 0x20, + 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x3b, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, + 0x6e, 0x74, 0x20, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x01, 0x02, 0x00, 0x04, 0x12, 0x03, 0x14, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, + 0x00, 0x05, 0x12, 0x03, 0x14, 0x0b, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x01, + 0x12, 0x03, 0x14, 0x12, 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x03, 0x12, 0x03, + 0x14, 0x25, 0x26, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x08, 0x12, 0x03, 0x14, 0x27, + 0x3b, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x01, 0x02, 0x00, 0x08, 0x06, 0x12, 0x03, 0x14, 0x28, 0x3a, + 0x0a, 0x88, 0x01, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x01, 0x12, 0x03, 0x18, 0x02, 0x3e, 0x1a, 0x7b, + 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x3b, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x63, + 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x0a, 0x20, + 0x49, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x2c, 0x20, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x66, 0x69, 0x6e, 0x69, + 0x74, 0x65, 0x20, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x01, 0x02, 0x01, 0x04, 0x12, 0x03, 0x18, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, + 0x01, 0x05, 0x12, 0x03, 0x18, 0x0b, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x01, + 0x12, 0x03, 0x18, 0x12, 0x24, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x03, 0x12, 0x03, + 0x18, 0x27, 0x28, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x08, 0x12, 0x03, 0x18, 0x29, + 0x3d, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x01, 0x02, 0x01, 0x08, 0x06, 0x12, 0x03, 0x18, 0x2a, 0x3c, + 0x0a, 0xb4, 0x01, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x02, 0x12, 0x03, 0x1c, 0x02, 0x21, 0x1a, 0xa6, + 0x01, 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x3b, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x60, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x60, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x0a, 0x20, 0x49, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x70, 0x72, + 0x65, 0x73, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, + 0x6f, 0x20, 0x31, 0x30, 0x30, 0x30, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, + 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x31, 0x30, 0x30, 0x30, 0x2c, 0x20, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x6a, + 0x65, 0x63, 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x04, + 0x12, 0x03, 0x1c, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x05, 0x12, 0x03, + 0x1c, 0x0b, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x01, 0x12, 0x03, 0x1c, 0x12, + 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x03, 0x12, 0x03, 0x1c, 0x1f, 0x20, 0x0a, + 0x55, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x03, 0x12, 0x03, 0x1f, 0x02, 0x3b, 0x1a, 0x48, 0x20, 0x49, + 0x66, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x2c, 0x20, 0x6f, 0x6e, 0x6c, 0x79, + 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x68, + 0x61, 0x74, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x69, 0x6e, 0x63, 0x6c, + 0x75, 0x64, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x03, 0x04, 0x12, + 0x03, 0x1f, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x03, 0x06, 0x12, 0x03, 0x1f, + 0x0b, 0x23, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x03, 0x01, 0x12, 0x03, 0x1f, 0x24, 0x36, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x03, 0x03, 0x12, 0x03, 0x1f, 0x39, 0x3a, 0x0a, 0x3e, + 0x0a, 0x02, 0x04, 0x02, 0x12, 0x04, 0x23, 0x00, 0x29, 0x01, 0x1a, 0x32, 0x20, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x62, 0x61, 0x74, 0x63, 0x68, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x0a, + 0x0a, 0x03, 0x04, 0x02, 0x01, 0x12, 0x03, 0x23, 0x08, 0x1c, 0x0a, 0x2b, 0x0a, 0x04, 0x04, 0x02, + 0x02, 0x00, 0x12, 0x03, 0x25, 0x02, 0x3d, 0x1a, 0x1e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, + 0x65, 0x64, 0x3b, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x04, + 0x12, 0x03, 0x25, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x06, 0x12, 0x03, + 0x25, 0x0b, 0x2b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x01, 0x12, 0x03, 0x25, 0x2c, + 0x38, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x03, 0x12, 0x03, 0x25, 0x3b, 0x3c, 0x0a, + 0x22, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x01, 0x12, 0x03, 0x28, 0x02, 0x34, 0x1a, 0x15, 0x20, 0x52, + 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x3b, 0x20, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x20, 0x69, + 0x64, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x04, 0x12, 0x03, 0x28, 0x02, + 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x05, 0x12, 0x03, 0x28, 0x0b, 0x11, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x01, 0x12, 0x03, 0x28, 0x12, 0x1a, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x02, 0x02, 0x01, 0x03, 0x12, 0x03, 0x28, 0x1d, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x02, 0x02, 0x01, 0x08, 0x12, 0x03, 0x28, 0x1f, 0x33, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x02, 0x02, + 0x01, 0x08, 0x06, 0x12, 0x03, 0x28, 0x20, 0x32, 0x0a, 0x0a, 0x0a, 0x02, 0x06, 0x00, 0x12, 0x04, + 0x2b, 0x00, 0x2e, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x06, 0x00, 0x01, 0x12, 0x03, 0x2b, 0x08, 0x0f, + 0x0a, 0x7a, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x00, 0x12, 0x03, 0x2d, 0x02, 0x54, 0x1a, 0x6d, 0x20, + 0x47, 0x65, 0x74, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x62, 0x61, 0x74, 0x63, 0x68, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x61, + 0x6e, 0x79, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x72, 0x6f, + 0x6d, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x69, 0x66, 0x20, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, + 0x69, 0x73, 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, + 0x06, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x2d, 0x06, 0x15, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, + 0x02, 0x00, 0x02, 0x12, 0x03, 0x2d, 0x16, 0x2c, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, + 0x06, 0x12, 0x03, 0x2d, 0x37, 0x3d, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x03, 0x12, + 0x03, 0x2d, 0x3e, 0x52, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x0a, 0xea, 0x39, 0x0a, + 0x1b, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x2f, 0x76, + 0x31, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x10, 0x61, 0x70, + 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x1a, 0x1f, + 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x2f, 0x76, 0x31, + 0x2f, 0x72, 0x61, 0x77, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, + 0x26, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x24, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2f, 0x75, + 0x74, 0x69, 0x6c, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2f, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa6, 0x01, + 0x0a, 0x19, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x42, 0x0a, 0x09, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, + 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x75, 0x74, 0x69, 0x6c, 0x2e, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, + 0x00, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x69, 0x7a, + 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x73, + 0x69, 0x7a, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x57, 0x0a, 0x0e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x45, 0x0a, 0x07, 0x73, 0x61, 0x6d, 0x70, + 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x61, 0x70, 0x74, 0x6f, + 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x53, 0x61, 0x6d, 0x70, 0x6c, + 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x07, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x22, + 0x9d, 0x02, 0x0a, 0x0c, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, + 0x12, 0x43, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x75, 0x74, 0x69, + 0x6c, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x00, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, + 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x0b, 0x65, 0x6e, + 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, + 0x01, 0x52, 0x0a, 0x65, 0x6e, 0x64, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, + 0x12, 0x41, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x72, 0x6f, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x48, 0x02, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x22, + 0x53, 0x0a, 0x0a, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x45, 0x0a, + 0x0e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x0d, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x73, 0x22, 0xf6, 0x02, 0x0a, 0x13, 0x4c, 0x69, 0x76, 0x65, 0x44, 0x61, 0x74, + 0x61, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x19, 0x0a, 0x08, + 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, + 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x42, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x70, 0x74, + 0x6f, 0x73, 0x2e, 0x75, 0x74, 0x69, 0x6c, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x00, 0x52, 0x09, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x14, 0x6b, + 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x12, 0x6b, 0x6e, 0x6f, + 0x77, 0x6e, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, + 0x01, 0x01, 0x12, 0x42, 0x0a, 0x0b, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x6e, 0x66, + 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x02, 0x52, 0x0a, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, + 0x6e, 0x66, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x14, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x65, + 0x72, 0x76, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, 0x12, 0x6d, 0x69, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x61, + 0x62, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x17, 0x0a, 0x15, 0x5f, + 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, + 0x69, 0x6e, 0x66, 0x6f, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x72, + 0x76, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xac, 0x02, + 0x0a, 0x19, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x19, 0x0a, 0x08, 0x63, + 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x63, + 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x42, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x70, 0x74, 0x6f, + 0x73, 0x2e, 0x75, 0x74, 0x69, 0x6c, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x00, 0x52, 0x09, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x14, 0x6b, 0x6e, + 0x6f, 0x77, 0x6e, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x12, 0x6b, 0x6e, 0x6f, 0x77, + 0x6e, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, + 0x01, 0x12, 0x42, 0x0a, 0x0b, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x6e, 0x66, 0x6f, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x02, 0x52, 0x0a, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, + 0x66, 0x6f, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6c, 0x61, + 0x74, 0x65, 0x73, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x0e, 0x0a, 0x0c, + 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0xcb, 0x01, 0x0a, + 0x0c, 0x46, 0x75, 0x6c, 0x6c, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x19, 0x0a, + 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x42, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x70, + 0x74, 0x6f, 0x73, 0x2e, 0x75, 0x74, 0x69, 0x6c, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x00, 0x52, 0x09, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x14, + 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x12, 0x6b, 0x6e, + 0x6f, 0x77, 0x6e, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6c, 0x61, 0x74, 0x65, + 0x73, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x8d, 0x02, 0x0a, 0x0f, 0x47, + 0x72, 0x70, 0x63, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x19, + 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x42, 0x0a, 0x09, 0x74, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, + 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x75, 0x74, 0x69, 0x6c, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x00, 0x52, + 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, + 0x14, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x12, 0x6b, + 0x6e, 0x6f, 0x77, 0x6e, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0d, + 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x17, + 0x0a, 0x15, 0x5f, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6d, 0x61, 0x73, 0x74, + 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xa6, 0x03, 0x0a, 0x0b, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x0a, 0x07, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x5c, 0x0a, 0x16, 0x6c, 0x69, 0x76, + 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, + 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x61, 0x70, 0x74, 0x6f, + 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x76, + 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, + 0x48, 0x00, 0x52, 0x13, 0x6c, 0x69, 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x6e, 0x0a, 0x1c, 0x68, 0x69, 0x73, 0x74, 0x6f, + 0x72, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, + 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x2e, 0x76, 0x31, + 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x19, 0x68, 0x69, + 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x45, 0x0a, 0x0d, 0x66, 0x75, 0x6c, 0x6c, 0x6e, + 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, + 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x2e, 0x76, + 0x31, 0x2e, 0x46, 0x75, 0x6c, 0x6c, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, + 0x52, 0x0c, 0x66, 0x75, 0x6c, 0x6c, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4f, + 0x0a, 0x11, 0x67, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x5f, 0x69, + 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x61, 0x70, 0x74, 0x6f, + 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x72, 0x70, + 0x63, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x0f, + 0x67, 0x72, 0x70, 0x63, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x42, + 0x06, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x22, 0x6a, 0x0a, 0x10, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x45, 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, + 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x0b, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x88, 0x01, 0x01, 0x42, 0x0f, + 0x0a, 0x0d, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x22, + 0x63, 0x0a, 0x11, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x14, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6c, 0x61, + 0x74, 0x65, 0x73, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x48, 0x00, 0x52, 0x12, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x4c, 0x61, 0x74, 0x65, 0x73, + 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x17, 0x0a, 0x15, 0x5f, + 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x9d, 0x01, 0x0a, 0x16, 0x50, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, + 0x61, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x35, 0x0a, 0x14, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, + 0x12, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x16, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x6c, + 0x69, 0x76, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x70, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x76, 0x65, + 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x42, 0x17, 0x0a, 0x15, 0x5f, + 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xef, 0x01, 0x0a, 0x17, 0x50, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, + 0x61, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x5c, 0x0a, 0x16, 0x6c, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x25, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, + 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x13, 0x6c, 0x69, 0x76, 0x65, 0x44, + 0x61, 0x74, 0x61, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x6e, + 0x0a, 0x1c, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x64, 0x61, 0x74, + 0x61, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, + 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, + 0x6f, 0x48, 0x00, 0x52, 0x19, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x44, + 0x61, 0x74, 0x61, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x06, + 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x84, 0x01, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x44, 0x61, + 0x74, 0x61, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x46, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x50, 0x0a, 0x0c, 0x75, 0x73, + 0x65, 0x72, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x28, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x75, 0x73, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, + 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x54, 0x0a, + 0x20, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x46, + 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x30, 0x0a, 0x14, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x12, 0x64, 0x61, 0x74, 0x61, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x32, 0xcc, 0x02, 0x0a, 0x0b, 0x47, 0x72, 0x70, 0x63, 0x4d, 0x61, 0x6e, 0x61, + 0x67, 0x65, 0x72, 0x12, 0x54, 0x0a, 0x09, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, + 0x12, 0x22, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, + 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x63, 0x0a, 0x0f, 0x47, 0x65, 0x74, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x28, 0x2e, 0x61, + 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x81, + 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x46, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x31, 0x2e, 0x61, 0x70, + 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x46, 0x6f, 0x72, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, + 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x46, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x32, 0xd1, 0x01, 0x0a, 0x0b, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x12, 0x5b, 0x0a, 0x04, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x28, 0x2e, 0x61, 0x70, 0x74, + 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69, + 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x65, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x12, 0x28, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x61, + 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x42, 0x83, 0x01, 0x0a, 0x14, 0x63, 0x6f, 0x6d, 0x2e, 0x61, + 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x42, + 0x09, 0x47, 0x72, 0x70, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0xa2, 0x02, 0x03, 0x41, + 0x49, 0x58, 0xaa, 0x02, 0x10, 0x41, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x65, 0x72, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x10, 0x41, 0x70, 0x74, 0x6f, 0x73, 0x5c, 0x49, 0x6e, + 0x64, 0x65, 0x78, 0x65, 0x72, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1c, 0x41, 0x70, 0x74, 0x6f, 0x73, + 0x5c, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x12, 0x41, 0x70, 0x74, 0x6f, 0x73, 0x3a, + 0x3a, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x3a, 0x3a, 0x56, 0x31, 0x4a, 0xb2, 0x1b, 0x0a, + 0x06, 0x12, 0x04, 0x03, 0x00, 0x6f, 0x01, 0x0a, 0x4e, 0x0a, 0x01, 0x0c, 0x12, 0x03, 0x03, 0x00, + 0x12, 0x32, 0x44, 0x20, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0xc2, 0xa9, + 0x20, 0x41, 0x70, 0x74, 0x6f, 0x73, 0x20, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x0a, 0x20, 0x53, 0x50, 0x44, 0x58, 0x2d, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x2d, + 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x3a, 0x20, 0x41, 0x70, 0x61, 0x63, + 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x0a, 0x0a, 0x08, 0x0a, 0x01, 0x02, 0x12, 0x03, 0x05, 0x00, + 0x19, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x00, 0x12, 0x03, 0x07, 0x00, 0x29, 0x0a, 0x09, 0x0a, 0x02, + 0x03, 0x01, 0x12, 0x03, 0x08, 0x00, 0x30, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x02, 0x12, 0x03, 0x09, + 0x00, 0x2e, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x00, 0x12, 0x04, 0x0b, 0x00, 0x0f, 0x01, 0x0a, 0x0a, + 0x0a, 0x03, 0x04, 0x00, 0x01, 0x12, 0x03, 0x0b, 0x08, 0x21, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, + 0x02, 0x00, 0x12, 0x03, 0x0c, 0x02, 0x38, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x04, + 0x12, 0x03, 0x0c, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x06, 0x12, 0x03, + 0x0c, 0x0b, 0x29, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x0c, 0x2a, + 0x33, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x0c, 0x36, 0x37, 0x0a, + 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x01, 0x12, 0x03, 0x0d, 0x02, 0x15, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x01, 0x05, 0x12, 0x03, 0x0d, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x01, 0x01, 0x12, 0x03, 0x0d, 0x09, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, + 0x03, 0x12, 0x03, 0x0d, 0x13, 0x14, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x02, 0x12, 0x03, + 0x0e, 0x02, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x05, 0x12, 0x03, 0x0e, 0x02, + 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x01, 0x12, 0x03, 0x0e, 0x09, 0x13, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x03, 0x12, 0x03, 0x0e, 0x16, 0x17, 0x0a, 0x0a, 0x0a, + 0x02, 0x04, 0x01, 0x12, 0x04, 0x11, 0x00, 0x13, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x01, 0x01, + 0x12, 0x03, 0x11, 0x08, 0x16, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x00, 0x12, 0x03, 0x12, + 0x02, 0x31, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x04, 0x12, 0x03, 0x12, 0x02, 0x0a, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x06, 0x12, 0x03, 0x12, 0x0b, 0x24, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x01, 0x12, 0x03, 0x12, 0x25, 0x2c, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x01, 0x02, 0x00, 0x03, 0x12, 0x03, 0x12, 0x2f, 0x30, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x02, + 0x12, 0x04, 0x15, 0x00, 0x1c, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x02, 0x01, 0x12, 0x03, 0x15, + 0x08, 0x14, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x00, 0x12, 0x03, 0x16, 0x02, 0x10, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x05, 0x12, 0x03, 0x16, 0x02, 0x08, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x02, 0x02, 0x00, 0x01, 0x12, 0x03, 0x16, 0x09, 0x0b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x02, 0x02, 0x00, 0x03, 0x12, 0x03, 0x16, 0x0e, 0x0f, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x02, 0x02, + 0x01, 0x12, 0x03, 0x17, 0x02, 0x39, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x04, 0x12, + 0x03, 0x17, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x06, 0x12, 0x03, 0x17, + 0x0b, 0x29, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x01, 0x12, 0x03, 0x17, 0x2a, 0x34, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x03, 0x12, 0x03, 0x17, 0x37, 0x38, 0x0a, 0x0b, + 0x0a, 0x04, 0x04, 0x02, 0x02, 0x02, 0x12, 0x03, 0x18, 0x02, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x02, 0x02, 0x02, 0x05, 0x12, 0x03, 0x18, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, + 0x02, 0x01, 0x12, 0x03, 0x18, 0x09, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x02, 0x03, + 0x12, 0x03, 0x18, 0x19, 0x1a, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x03, 0x12, 0x03, 0x19, + 0x02, 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x03, 0x04, 0x12, 0x03, 0x19, 0x02, 0x0a, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x03, 0x05, 0x12, 0x03, 0x19, 0x0b, 0x11, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x02, 0x02, 0x03, 0x01, 0x12, 0x03, 0x19, 0x12, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x02, 0x02, 0x03, 0x03, 0x12, 0x03, 0x19, 0x20, 0x21, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x02, + 0x02, 0x04, 0x12, 0x03, 0x1b, 0x02, 0x27, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x04, 0x04, + 0x12, 0x03, 0x1b, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x04, 0x06, 0x12, 0x03, + 0x1b, 0x0b, 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x04, 0x01, 0x12, 0x03, 0x1b, 0x1a, + 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x04, 0x03, 0x12, 0x03, 0x1b, 0x25, 0x26, 0x0a, + 0x0a, 0x0a, 0x02, 0x04, 0x03, 0x12, 0x04, 0x1e, 0x00, 0x20, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, + 0x03, 0x01, 0x12, 0x03, 0x1e, 0x08, 0x12, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x03, 0x02, 0x00, 0x12, + 0x03, 0x1f, 0x02, 0x2b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, 0x04, 0x12, 0x03, 0x1f, + 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, 0x06, 0x12, 0x03, 0x1f, 0x0b, 0x17, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, 0x01, 0x12, 0x03, 0x1f, 0x18, 0x26, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, 0x03, 0x12, 0x03, 0x1f, 0x29, 0x2a, 0x0a, 0x0a, 0x0a, 0x02, + 0x04, 0x04, 0x12, 0x04, 0x22, 0x00, 0x29, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x04, 0x01, 0x12, + 0x03, 0x22, 0x08, 0x1b, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x00, 0x12, 0x03, 0x23, 0x02, + 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x00, 0x05, 0x12, 0x03, 0x23, 0x02, 0x08, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x00, 0x01, 0x12, 0x03, 0x23, 0x09, 0x11, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x04, 0x02, 0x00, 0x03, 0x12, 0x03, 0x23, 0x14, 0x15, 0x0a, 0x0b, 0x0a, 0x04, 0x04, + 0x04, 0x02, 0x01, 0x12, 0x03, 0x24, 0x02, 0x38, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x01, + 0x04, 0x12, 0x03, 0x24, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x01, 0x06, 0x12, + 0x03, 0x24, 0x0b, 0x29, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x01, 0x01, 0x12, 0x03, 0x24, + 0x2a, 0x33, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x01, 0x03, 0x12, 0x03, 0x24, 0x36, 0x37, + 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x02, 0x12, 0x03, 0x25, 0x02, 0x2b, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x04, 0x02, 0x02, 0x04, 0x12, 0x03, 0x25, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x04, 0x02, 0x02, 0x05, 0x12, 0x03, 0x25, 0x0b, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, + 0x02, 0x01, 0x12, 0x03, 0x25, 0x12, 0x26, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x02, 0x03, + 0x12, 0x03, 0x25, 0x29, 0x2a, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x03, 0x12, 0x03, 0x26, + 0x02, 0x26, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x03, 0x04, 0x12, 0x03, 0x26, 0x02, 0x0a, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x03, 0x06, 0x12, 0x03, 0x26, 0x0b, 0x15, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x04, 0x02, 0x03, 0x01, 0x12, 0x03, 0x26, 0x16, 0x21, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x04, 0x02, 0x03, 0x03, 0x12, 0x03, 0x26, 0x24, 0x25, 0x0a, 0x60, 0x0a, 0x04, 0x04, 0x04, + 0x02, 0x04, 0x12, 0x03, 0x28, 0x02, 0x2b, 0x1a, 0x53, 0x20, 0x49, 0x66, 0x20, 0x6e, 0x6f, 0x74, + 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x6d, 0x65, 0x61, + 0x6e, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, + 0x61, 0x62, 0x6c, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x20, 0x61, 0x6e, + 0x79, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x79, 0x65, 0x74, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x04, 0x02, 0x04, 0x04, 0x12, 0x03, 0x28, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, + 0x02, 0x04, 0x05, 0x12, 0x03, 0x28, 0x0b, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x04, + 0x01, 0x12, 0x03, 0x28, 0x12, 0x26, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x04, 0x03, 0x12, + 0x03, 0x28, 0x29, 0x2a, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x05, 0x12, 0x04, 0x2b, 0x00, 0x30, 0x01, + 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x05, 0x01, 0x12, 0x03, 0x2b, 0x08, 0x21, 0x0a, 0x0b, 0x0a, 0x04, + 0x04, 0x05, 0x02, 0x00, 0x12, 0x03, 0x2c, 0x02, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, + 0x00, 0x05, 0x12, 0x03, 0x2c, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x00, 0x01, + 0x12, 0x03, 0x2c, 0x09, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x00, 0x03, 0x12, 0x03, + 0x2c, 0x14, 0x15, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x05, 0x02, 0x01, 0x12, 0x03, 0x2d, 0x02, 0x38, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x01, 0x04, 0x12, 0x03, 0x2d, 0x02, 0x0a, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x05, 0x02, 0x01, 0x06, 0x12, 0x03, 0x2d, 0x0b, 0x29, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x05, 0x02, 0x01, 0x01, 0x12, 0x03, 0x2d, 0x2a, 0x33, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, + 0x02, 0x01, 0x03, 0x12, 0x03, 0x2d, 0x36, 0x37, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x05, 0x02, 0x02, + 0x12, 0x03, 0x2e, 0x02, 0x2b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x02, 0x04, 0x12, 0x03, + 0x2e, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x02, 0x05, 0x12, 0x03, 0x2e, 0x0b, + 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x02, 0x01, 0x12, 0x03, 0x2e, 0x12, 0x26, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x02, 0x03, 0x12, 0x03, 0x2e, 0x29, 0x2a, 0x0a, 0x0b, 0x0a, + 0x04, 0x04, 0x05, 0x02, 0x03, 0x12, 0x03, 0x2f, 0x02, 0x26, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, + 0x02, 0x03, 0x04, 0x12, 0x03, 0x2f, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x03, + 0x06, 0x12, 0x03, 0x2f, 0x0b, 0x15, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x03, 0x01, 0x12, + 0x03, 0x2f, 0x16, 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x03, 0x03, 0x12, 0x03, 0x2f, + 0x24, 0x25, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x06, 0x12, 0x04, 0x32, 0x00, 0x36, 0x01, 0x0a, 0x0a, + 0x0a, 0x03, 0x04, 0x06, 0x01, 0x12, 0x03, 0x32, 0x08, 0x14, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x06, + 0x02, 0x00, 0x12, 0x03, 0x33, 0x02, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x00, 0x05, + 0x12, 0x03, 0x33, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x00, 0x01, 0x12, 0x03, + 0x33, 0x09, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x00, 0x03, 0x12, 0x03, 0x33, 0x14, + 0x15, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x06, 0x02, 0x01, 0x12, 0x03, 0x34, 0x02, 0x38, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x06, 0x02, 0x01, 0x04, 0x12, 0x03, 0x34, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x06, 0x02, 0x01, 0x06, 0x12, 0x03, 0x34, 0x0b, 0x29, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, + 0x02, 0x01, 0x01, 0x12, 0x03, 0x34, 0x2a, 0x33, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x01, + 0x03, 0x12, 0x03, 0x34, 0x36, 0x37, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x06, 0x02, 0x02, 0x12, 0x03, + 0x35, 0x02, 0x2b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x02, 0x04, 0x12, 0x03, 0x35, 0x02, + 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x02, 0x05, 0x12, 0x03, 0x35, 0x0b, 0x11, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x02, 0x01, 0x12, 0x03, 0x35, 0x12, 0x26, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x06, 0x02, 0x02, 0x03, 0x12, 0x03, 0x35, 0x29, 0x2a, 0x0a, 0x0a, 0x0a, 0x02, 0x04, + 0x07, 0x12, 0x04, 0x38, 0x00, 0x3d, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x07, 0x01, 0x12, 0x03, + 0x38, 0x08, 0x17, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x07, 0x02, 0x00, 0x12, 0x03, 0x39, 0x02, 0x16, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x00, 0x05, 0x12, 0x03, 0x39, 0x02, 0x08, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x07, 0x02, 0x00, 0x01, 0x12, 0x03, 0x39, 0x09, 0x11, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x07, 0x02, 0x00, 0x03, 0x12, 0x03, 0x39, 0x14, 0x15, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x07, + 0x02, 0x01, 0x12, 0x03, 0x3a, 0x02, 0x38, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x01, 0x04, + 0x12, 0x03, 0x3a, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x01, 0x06, 0x12, 0x03, + 0x3a, 0x0b, 0x29, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x01, 0x01, 0x12, 0x03, 0x3a, 0x2a, + 0x33, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x01, 0x03, 0x12, 0x03, 0x3a, 0x36, 0x37, 0x0a, + 0x0b, 0x0a, 0x04, 0x04, 0x07, 0x02, 0x02, 0x12, 0x03, 0x3b, 0x02, 0x2b, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x07, 0x02, 0x02, 0x04, 0x12, 0x03, 0x3b, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, + 0x02, 0x02, 0x05, 0x12, 0x03, 0x3b, 0x0b, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x02, + 0x01, 0x12, 0x03, 0x3b, 0x12, 0x26, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x02, 0x03, 0x12, + 0x03, 0x3b, 0x29, 0x2a, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x07, 0x02, 0x03, 0x12, 0x03, 0x3c, 0x02, + 0x25, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x03, 0x04, 0x12, 0x03, 0x3c, 0x02, 0x0a, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x03, 0x05, 0x12, 0x03, 0x3c, 0x0b, 0x11, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x07, 0x02, 0x03, 0x01, 0x12, 0x03, 0x3c, 0x12, 0x20, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x07, 0x02, 0x03, 0x03, 0x12, 0x03, 0x3c, 0x23, 0x24, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x08, 0x12, + 0x04, 0x3f, 0x00, 0x47, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x08, 0x01, 0x12, 0x03, 0x3f, 0x08, + 0x13, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x00, 0x12, 0x03, 0x40, 0x02, 0x1e, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x08, 0x02, 0x00, 0x04, 0x12, 0x03, 0x40, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x08, 0x02, 0x00, 0x05, 0x12, 0x03, 0x40, 0x0b, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, + 0x02, 0x00, 0x01, 0x12, 0x03, 0x40, 0x12, 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x00, + 0x03, 0x12, 0x03, 0x40, 0x1c, 0x1d, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x08, 0x08, 0x00, 0x12, 0x04, + 0x41, 0x02, 0x46, 0x03, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x08, 0x00, 0x01, 0x12, 0x03, 0x41, + 0x08, 0x0c, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x01, 0x12, 0x03, 0x42, 0x06, 0x35, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x01, 0x06, 0x12, 0x03, 0x42, 0x06, 0x19, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x08, 0x02, 0x01, 0x01, 0x12, 0x03, 0x42, 0x1a, 0x30, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x08, 0x02, 0x01, 0x03, 0x12, 0x03, 0x42, 0x33, 0x34, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x08, 0x02, + 0x02, 0x12, 0x03, 0x43, 0x06, 0x41, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x02, 0x06, 0x12, + 0x03, 0x43, 0x06, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x02, 0x01, 0x12, 0x03, 0x43, + 0x20, 0x3c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x02, 0x03, 0x12, 0x03, 0x43, 0x3f, 0x40, + 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x03, 0x12, 0x03, 0x44, 0x06, 0x25, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x08, 0x02, 0x03, 0x06, 0x12, 0x03, 0x44, 0x06, 0x12, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x08, 0x02, 0x03, 0x01, 0x12, 0x03, 0x44, 0x13, 0x20, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, + 0x03, 0x03, 0x12, 0x03, 0x44, 0x23, 0x24, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x04, 0x12, + 0x03, 0x45, 0x06, 0x2c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x04, 0x06, 0x12, 0x03, 0x45, + 0x06, 0x15, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x04, 0x01, 0x12, 0x03, 0x45, 0x16, 0x27, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x04, 0x03, 0x12, 0x03, 0x45, 0x2a, 0x2b, 0x0a, 0x0a, + 0x0a, 0x02, 0x04, 0x09, 0x12, 0x04, 0x49, 0x00, 0x4b, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x09, + 0x01, 0x12, 0x03, 0x49, 0x08, 0x18, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x09, 0x02, 0x00, 0x12, 0x03, + 0x4a, 0x02, 0x28, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x00, 0x04, 0x12, 0x03, 0x4a, 0x02, + 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x00, 0x06, 0x12, 0x03, 0x4a, 0x0b, 0x16, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x00, 0x01, 0x12, 0x03, 0x4a, 0x17, 0x23, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x09, 0x02, 0x00, 0x03, 0x12, 0x03, 0x4a, 0x26, 0x27, 0x0a, 0x0a, 0x0a, 0x02, 0x04, + 0x0a, 0x12, 0x04, 0x4d, 0x00, 0x4f, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x0a, 0x01, 0x12, 0x03, + 0x4d, 0x08, 0x19, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x0a, 0x02, 0x00, 0x12, 0x03, 0x4e, 0x02, 0x2b, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x00, 0x04, 0x12, 0x03, 0x4e, 0x02, 0x0a, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x00, 0x05, 0x12, 0x03, 0x4e, 0x0b, 0x11, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x0a, 0x02, 0x00, 0x01, 0x12, 0x03, 0x4e, 0x12, 0x26, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x0a, + 0x02, 0x00, 0x03, 0x12, 0x03, 0x4e, 0x29, 0x2a, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x0b, 0x12, 0x04, + 0x51, 0x00, 0x55, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x0b, 0x01, 0x12, 0x03, 0x51, 0x08, 0x1e, + 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x0b, 0x02, 0x00, 0x12, 0x03, 0x52, 0x02, 0x2b, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x0b, 0x02, 0x00, 0x04, 0x12, 0x03, 0x52, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x0b, 0x02, 0x00, 0x05, 0x12, 0x03, 0x52, 0x0b, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x0b, 0x02, + 0x00, 0x01, 0x12, 0x03, 0x52, 0x12, 0x26, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x00, 0x03, + 0x12, 0x03, 0x52, 0x29, 0x2a, 0x0a, 0x51, 0x0a, 0x04, 0x04, 0x0b, 0x02, 0x01, 0x12, 0x03, 0x54, + 0x02, 0x22, 0x1a, 0x44, 0x20, 0x60, 0x74, 0x72, 0x75, 0x65, 0x60, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x6c, 0x69, 0x76, 0x65, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x2c, 0x20, 0x60, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x60, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x68, + 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x01, + 0x05, 0x12, 0x03, 0x54, 0x02, 0x06, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x01, 0x01, 0x12, + 0x03, 0x54, 0x07, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x01, 0x03, 0x12, 0x03, 0x54, + 0x20, 0x21, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x0c, 0x12, 0x04, 0x57, 0x00, 0x5c, 0x01, 0x0a, 0x0a, + 0x0a, 0x03, 0x04, 0x0c, 0x01, 0x12, 0x03, 0x57, 0x08, 0x1f, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0c, + 0x08, 0x00, 0x12, 0x04, 0x58, 0x02, 0x5b, 0x03, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x0c, 0x08, 0x00, + 0x01, 0x12, 0x03, 0x58, 0x08, 0x0c, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x0c, 0x02, 0x00, 0x12, 0x03, + 0x59, 0x04, 0x33, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x00, 0x06, 0x12, 0x03, 0x59, 0x04, + 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x00, 0x01, 0x12, 0x03, 0x59, 0x18, 0x2e, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x00, 0x03, 0x12, 0x03, 0x59, 0x31, 0x32, 0x0a, 0x0b, 0x0a, + 0x04, 0x04, 0x0c, 0x02, 0x01, 0x12, 0x03, 0x5a, 0x04, 0x3f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x0c, + 0x02, 0x01, 0x06, 0x12, 0x03, 0x5a, 0x04, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x01, + 0x01, 0x12, 0x03, 0x5a, 0x1e, 0x3a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x01, 0x03, 0x12, + 0x03, 0x5a, 0x3d, 0x3e, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x0d, 0x12, 0x04, 0x5e, 0x00, 0x60, 0x01, + 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x0d, 0x01, 0x12, 0x03, 0x5e, 0x08, 0x27, 0x0a, 0x0b, 0x0a, 0x04, + 0x04, 0x0d, 0x02, 0x00, 0x12, 0x03, 0x5f, 0x02, 0x33, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x0d, 0x02, + 0x00, 0x04, 0x12, 0x03, 0x5f, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x00, 0x06, + 0x12, 0x03, 0x5f, 0x0b, 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x00, 0x01, 0x12, 0x03, + 0x5f, 0x22, 0x2e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x00, 0x03, 0x12, 0x03, 0x5f, 0x31, + 0x32, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x0e, 0x12, 0x04, 0x62, 0x00, 0x64, 0x01, 0x0a, 0x0a, 0x0a, + 0x03, 0x04, 0x0e, 0x01, 0x12, 0x03, 0x62, 0x08, 0x28, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x0e, 0x02, + 0x00, 0x12, 0x03, 0x63, 0x02, 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x00, 0x05, 0x12, + 0x03, 0x63, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x00, 0x01, 0x12, 0x03, 0x63, + 0x09, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x00, 0x03, 0x12, 0x03, 0x63, 0x20, 0x21, + 0x0a, 0x0a, 0x0a, 0x02, 0x06, 0x00, 0x12, 0x04, 0x66, 0x00, 0x6a, 0x01, 0x0a, 0x0a, 0x0a, 0x03, + 0x06, 0x00, 0x01, 0x12, 0x03, 0x66, 0x08, 0x13, 0x0a, 0x0b, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x00, + 0x12, 0x03, 0x67, 0x02, 0x3e, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, + 0x67, 0x06, 0x0f, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x02, 0x12, 0x03, 0x67, 0x10, + 0x20, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x67, 0x2b, 0x3c, 0x0a, + 0x0b, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x01, 0x12, 0x03, 0x68, 0x02, 0x4d, 0x0a, 0x0c, 0x0a, 0x05, + 0x06, 0x00, 0x02, 0x01, 0x01, 0x12, 0x03, 0x68, 0x06, 0x15, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, + 0x02, 0x01, 0x02, 0x12, 0x03, 0x68, 0x16, 0x2c, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, + 0x03, 0x12, 0x03, 0x68, 0x37, 0x4b, 0x0a, 0x0b, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x02, 0x12, 0x03, + 0x69, 0x02, 0x6b, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x02, 0x01, 0x12, 0x03, 0x69, 0x06, + 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x02, 0x02, 0x12, 0x03, 0x69, 0x1f, 0x3e, 0x0a, + 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x02, 0x03, 0x12, 0x03, 0x69, 0x49, 0x69, 0x0a, 0x0a, 0x0a, + 0x02, 0x06, 0x01, 0x12, 0x04, 0x6c, 0x00, 0x6f, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x06, 0x01, 0x01, + 0x12, 0x03, 0x6c, 0x08, 0x13, 0x0a, 0x0b, 0x0a, 0x04, 0x06, 0x01, 0x02, 0x00, 0x12, 0x03, 0x6d, + 0x02, 0x45, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x01, 0x02, 0x00, 0x01, 0x12, 0x03, 0x6d, 0x06, 0x0a, + 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x01, 0x02, 0x00, 0x02, 0x12, 0x03, 0x6d, 0x0b, 0x21, 0x0a, 0x0c, + 0x0a, 0x05, 0x06, 0x01, 0x02, 0x00, 0x03, 0x12, 0x03, 0x6d, 0x2c, 0x43, 0x0a, 0x0b, 0x0a, 0x04, + 0x06, 0x01, 0x02, 0x01, 0x12, 0x03, 0x6e, 0x02, 0x54, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x01, 0x02, + 0x01, 0x01, 0x12, 0x03, 0x6e, 0x06, 0x15, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x01, 0x02, 0x01, 0x02, + 0x12, 0x03, 0x6e, 0x16, 0x2c, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x01, 0x02, 0x01, 0x06, 0x12, 0x03, + 0x6e, 0x37, 0x3d, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x01, 0x02, 0x01, 0x03, 0x12, 0x03, 0x6e, 0x3e, + 0x52, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, ]; include!("aptos.indexer.v1.serde.rs"); include!("aptos.indexer.v1.tonic.rs"); diff --git a/protos/rust/src/pb/aptos.indexer.v1.serde.rs b/protos/rust/src/pb/aptos.indexer.v1.serde.rs index 2adfc8e6acadf..6355abde4ca5a 100644 --- a/protos/rust/src/pb/aptos.indexer.v1.serde.rs +++ b/protos/rust/src/pb/aptos.indexer.v1.serde.rs @@ -2,6 +2,134 @@ // SPDX-License-Identifier: Apache-2.0 // @generated +impl serde::Serialize for ApiFilter { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.transaction_root_filter.is_some() { + len += 1; + } + if self.user_transaction_filter.is_some() { + len += 1; + } + if self.event_filter.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.indexer.v1.APIFilter", len)?; + if let Some(v) = self.transaction_root_filter.as_ref() { + struct_ser.serialize_field("transactionRootFilter", v)?; + } + if let Some(v) = self.user_transaction_filter.as_ref() { + struct_ser.serialize_field("userTransactionFilter", v)?; + } + if let Some(v) = self.event_filter.as_ref() { + struct_ser.serialize_field("eventFilter", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for ApiFilter { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "transaction_root_filter", + "transactionRootFilter", + "user_transaction_filter", + "userTransactionFilter", + "event_filter", + "eventFilter", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + TransactionRootFilter, + UserTransactionFilter, + EventFilter, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "transactionRootFilter" | "transaction_root_filter" => Ok(GeneratedField::TransactionRootFilter), + "userTransactionFilter" | "user_transaction_filter" => Ok(GeneratedField::UserTransactionFilter), + "eventFilter" | "event_filter" => Ok(GeneratedField::EventFilter), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = ApiFilter; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.indexer.v1.APIFilter") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut transaction_root_filter__ = None; + let mut user_transaction_filter__ = None; + let mut event_filter__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::TransactionRootFilter => { + if transaction_root_filter__.is_some() { + return Err(serde::de::Error::duplicate_field("transactionRootFilter")); + } + transaction_root_filter__ = map.next_value()?; + } + GeneratedField::UserTransactionFilter => { + if user_transaction_filter__.is_some() { + return Err(serde::de::Error::duplicate_field("userTransactionFilter")); + } + user_transaction_filter__ = map.next_value()?; + } + GeneratedField::EventFilter => { + if event_filter__.is_some() { + return Err(serde::de::Error::duplicate_field("eventFilter")); + } + event_filter__ = map.next_value()?; + } + } + } + Ok(ApiFilter { + transaction_root_filter: transaction_root_filter__, + user_transaction_filter: user_transaction_filter__, + event_filter: event_filter__, + }) + } + } + deserializer.deserialize_struct("aptos.indexer.v1.APIFilter", FIELDS, GeneratedVisitor) + } +} impl serde::Serialize for ActiveStream { #[allow(deprecated)] fn serialize(&self, serializer: S) -> std::result::Result @@ -152,20 +280,395 @@ impl<'de> serde::Deserialize<'de> for ActiveStream { if progress__.is_some() { return Err(serde::de::Error::duplicate_field("progress")); } - progress__ = map.next_value()?; + progress__ = map.next_value()?; + } + } + } + Ok(ActiveStream { + id: id__.unwrap_or_default(), + start_time: start_time__, + start_version: start_version__.unwrap_or_default(), + end_version: end_version__, + progress: progress__, + }) + } + } + deserializer.deserialize_struct("aptos.indexer.v1.ActiveStream", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for BooleanTransactionFilter { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.filter.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.indexer.v1.BooleanTransactionFilter", len)?; + if let Some(v) = self.filter.as_ref() { + match v { + boolean_transaction_filter::Filter::ApiFilter(v) => { + struct_ser.serialize_field("apiFilter", v)?; + } + boolean_transaction_filter::Filter::LogicalAnd(v) => { + struct_ser.serialize_field("logicalAnd", v)?; + } + boolean_transaction_filter::Filter::LogicalOr(v) => { + struct_ser.serialize_field("logicalOr", v)?; + } + boolean_transaction_filter::Filter::LogicalNot(v) => { + struct_ser.serialize_field("logicalNot", v)?; + } + } + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for BooleanTransactionFilter { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "api_filter", + "apiFilter", + "logical_and", + "logicalAnd", + "logical_or", + "logicalOr", + "logical_not", + "logicalNot", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + ApiFilter, + LogicalAnd, + LogicalOr, + LogicalNot, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "apiFilter" | "api_filter" => Ok(GeneratedField::ApiFilter), + "logicalAnd" | "logical_and" => Ok(GeneratedField::LogicalAnd), + "logicalOr" | "logical_or" => Ok(GeneratedField::LogicalOr), + "logicalNot" | "logical_not" => Ok(GeneratedField::LogicalNot), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = BooleanTransactionFilter; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.indexer.v1.BooleanTransactionFilter") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut filter__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::ApiFilter => { + if filter__.is_some() { + return Err(serde::de::Error::duplicate_field("apiFilter")); + } + filter__ = map.next_value::<::std::option::Option<_>>()?.map(boolean_transaction_filter::Filter::ApiFilter) +; + } + GeneratedField::LogicalAnd => { + if filter__.is_some() { + return Err(serde::de::Error::duplicate_field("logicalAnd")); + } + filter__ = map.next_value::<::std::option::Option<_>>()?.map(boolean_transaction_filter::Filter::LogicalAnd) +; + } + GeneratedField::LogicalOr => { + if filter__.is_some() { + return Err(serde::de::Error::duplicate_field("logicalOr")); + } + filter__ = map.next_value::<::std::option::Option<_>>()?.map(boolean_transaction_filter::Filter::LogicalOr) +; + } + GeneratedField::LogicalNot => { + if filter__.is_some() { + return Err(serde::de::Error::duplicate_field("logicalNot")); + } + filter__ = map.next_value::<::std::option::Option<_>>()?.map(boolean_transaction_filter::Filter::LogicalNot) +; + } + } + } + Ok(BooleanTransactionFilter { + filter: filter__, + }) + } + } + deserializer.deserialize_struct("aptos.indexer.v1.BooleanTransactionFilter", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for EntryFunctionFilter { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.address.is_some() { + len += 1; + } + if self.module_name.is_some() { + len += 1; + } + if self.function.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.indexer.v1.EntryFunctionFilter", len)?; + if let Some(v) = self.address.as_ref() { + struct_ser.serialize_field("address", v)?; + } + if let Some(v) = self.module_name.as_ref() { + struct_ser.serialize_field("moduleName", v)?; + } + if let Some(v) = self.function.as_ref() { + struct_ser.serialize_field("function", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for EntryFunctionFilter { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "address", + "module_name", + "moduleName", + "function", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Address, + ModuleName, + Function, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "address" => Ok(GeneratedField::Address), + "moduleName" | "module_name" => Ok(GeneratedField::ModuleName), + "function" => Ok(GeneratedField::Function), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = EntryFunctionFilter; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.indexer.v1.EntryFunctionFilter") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut address__ = None; + let mut module_name__ = None; + let mut function__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Address => { + if address__.is_some() { + return Err(serde::de::Error::duplicate_field("address")); + } + address__ = map.next_value()?; + } + GeneratedField::ModuleName => { + if module_name__.is_some() { + return Err(serde::de::Error::duplicate_field("moduleName")); + } + module_name__ = map.next_value()?; + } + GeneratedField::Function => { + if function__.is_some() { + return Err(serde::de::Error::duplicate_field("function")); + } + function__ = map.next_value()?; + } + } + } + Ok(EntryFunctionFilter { + address: address__, + module_name: module_name__, + function: function__, + }) + } + } + deserializer.deserialize_struct("aptos.indexer.v1.EntryFunctionFilter", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for EventFilter { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.struct_type.is_some() { + len += 1; + } + if self.data_substring_filter.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.indexer.v1.EventFilter", len)?; + if let Some(v) = self.struct_type.as_ref() { + struct_ser.serialize_field("structType", v)?; + } + if let Some(v) = self.data_substring_filter.as_ref() { + struct_ser.serialize_field("dataSubstringFilter", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for EventFilter { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "struct_type", + "structType", + "data_substring_filter", + "dataSubstringFilter", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + StructType, + DataSubstringFilter, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "structType" | "struct_type" => Ok(GeneratedField::StructType), + "dataSubstringFilter" | "data_substring_filter" => Ok(GeneratedField::DataSubstringFilter), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = EventFilter; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.indexer.v1.EventFilter") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut struct_type__ = None; + let mut data_substring_filter__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::StructType => { + if struct_type__.is_some() { + return Err(serde::de::Error::duplicate_field("structType")); + } + struct_type__ = map.next_value()?; + } + GeneratedField::DataSubstringFilter => { + if data_substring_filter__.is_some() { + return Err(serde::de::Error::duplicate_field("dataSubstringFilter")); + } + data_substring_filter__ = map.next_value()?; } } } - Ok(ActiveStream { - id: id__.unwrap_or_default(), - start_time: start_time__, - start_version: start_version__.unwrap_or_default(), - end_version: end_version__, - progress: progress__, + Ok(EventFilter { + struct_type: struct_type__, + data_substring_filter: data_substring_filter__, }) } } - deserializer.deserialize_struct("aptos.indexer.v1.ActiveStream", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("aptos.indexer.v1.EventFilter", FIELDS, GeneratedVisitor) } } impl serde::Serialize for FullnodeInfo { @@ -500,6 +1003,9 @@ impl serde::Serialize for GetTransactionsRequest { if self.batch_size.is_some() { len += 1; } + if self.transaction_filter.is_some() { + len += 1; + } let mut struct_ser = serializer.serialize_struct("aptos.indexer.v1.GetTransactionsRequest", len)?; if let Some(v) = self.starting_version.as_ref() { struct_ser.serialize_field("startingVersion", ToString::to_string(&v).as_str())?; @@ -510,6 +1016,9 @@ impl serde::Serialize for GetTransactionsRequest { if let Some(v) = self.batch_size.as_ref() { struct_ser.serialize_field("batchSize", ToString::to_string(&v).as_str())?; } + if let Some(v) = self.transaction_filter.as_ref() { + struct_ser.serialize_field("transactionFilter", v)?; + } struct_ser.end() } } @@ -526,6 +1035,8 @@ impl<'de> serde::Deserialize<'de> for GetTransactionsRequest { "transactionsCount", "batch_size", "batchSize", + "transaction_filter", + "transactionFilter", ]; #[allow(clippy::enum_variant_names)] @@ -533,6 +1044,7 @@ impl<'de> serde::Deserialize<'de> for GetTransactionsRequest { StartingVersion, TransactionsCount, BatchSize, + TransactionFilter, } impl<'de> serde::Deserialize<'de> for GeneratedField { fn deserialize(deserializer: D) -> std::result::Result @@ -557,6 +1069,7 @@ impl<'de> serde::Deserialize<'de> for GetTransactionsRequest { "startingVersion" | "starting_version" => Ok(GeneratedField::StartingVersion), "transactionsCount" | "transactions_count" => Ok(GeneratedField::TransactionsCount), "batchSize" | "batch_size" => Ok(GeneratedField::BatchSize), + "transactionFilter" | "transaction_filter" => Ok(GeneratedField::TransactionFilter), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } } @@ -579,6 +1092,7 @@ impl<'de> serde::Deserialize<'de> for GetTransactionsRequest { let mut starting_version__ = None; let mut transactions_count__ = None; let mut batch_size__ = None; + let mut transaction_filter__ = None; while let Some(k) = map.next_key()? { match k { GeneratedField::StartingVersion => { @@ -605,12 +1119,19 @@ impl<'de> serde::Deserialize<'de> for GetTransactionsRequest { map.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| x.0) ; } + GeneratedField::TransactionFilter => { + if transaction_filter__.is_some() { + return Err(serde::de::Error::duplicate_field("transactionFilter")); + } + transaction_filter__ = map.next_value()?; + } } } Ok(GetTransactionsRequest { starting_version: starting_version__, transactions_count: transactions_count__, batch_size: batch_size__, + transaction_filter: transaction_filter__, }) } } @@ -1238,36 +1759,343 @@ impl<'de> serde::Deserialize<'de> for LiveDataServiceInfo { if known_latest_version__.is_some() { return Err(serde::de::Error::duplicate_field("knownLatestVersion")); } - known_latest_version__ = - map.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| x.0) - ; + known_latest_version__ = + map.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| x.0) + ; + } + GeneratedField::StreamInfo => { + if stream_info__.is_some() { + return Err(serde::de::Error::duplicate_field("streamInfo")); + } + stream_info__ = map.next_value()?; + } + GeneratedField::MinServableVersion => { + if min_servable_version__.is_some() { + return Err(serde::de::Error::duplicate_field("minServableVersion")); + } + min_servable_version__ = + map.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| x.0) + ; + } + } + } + Ok(LiveDataServiceInfo { + chain_id: chain_id__.unwrap_or_default(), + timestamp: timestamp__, + known_latest_version: known_latest_version__, + stream_info: stream_info__, + min_servable_version: min_servable_version__, + }) + } + } + deserializer.deserialize_struct("aptos.indexer.v1.LiveDataServiceInfo", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for LogicalAndFilters { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.filters.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.indexer.v1.LogicalAndFilters", len)?; + if !self.filters.is_empty() { + struct_ser.serialize_field("filters", &self.filters)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for LogicalAndFilters { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "filters", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Filters, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "filters" => Ok(GeneratedField::Filters), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = LogicalAndFilters; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.indexer.v1.LogicalAndFilters") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut filters__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Filters => { + if filters__.is_some() { + return Err(serde::de::Error::duplicate_field("filters")); + } + filters__ = Some(map.next_value()?); + } + } + } + Ok(LogicalAndFilters { + filters: filters__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("aptos.indexer.v1.LogicalAndFilters", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for LogicalOrFilters { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.filters.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.indexer.v1.LogicalOrFilters", len)?; + if !self.filters.is_empty() { + struct_ser.serialize_field("filters", &self.filters)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for LogicalOrFilters { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "filters", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Filters, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "filters" => Ok(GeneratedField::Filters), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = LogicalOrFilters; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.indexer.v1.LogicalOrFilters") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut filters__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Filters => { + if filters__.is_some() { + return Err(serde::de::Error::duplicate_field("filters")); + } + filters__ = Some(map.next_value()?); + } + } + } + Ok(LogicalOrFilters { + filters: filters__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("aptos.indexer.v1.LogicalOrFilters", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for MoveStructTagFilter { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.address.is_some() { + len += 1; + } + if self.module.is_some() { + len += 1; + } + if self.name.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.indexer.v1.MoveStructTagFilter", len)?; + if let Some(v) = self.address.as_ref() { + struct_ser.serialize_field("address", v)?; + } + if let Some(v) = self.module.as_ref() { + struct_ser.serialize_field("module", v)?; + } + if let Some(v) = self.name.as_ref() { + struct_ser.serialize_field("name", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for MoveStructTagFilter { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "address", + "module", + "name", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Address, + Module, + Name, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "address" => Ok(GeneratedField::Address), + "module" => Ok(GeneratedField::Module), + "name" => Ok(GeneratedField::Name), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = MoveStructTagFilter; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.indexer.v1.MoveStructTagFilter") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut address__ = None; + let mut module__ = None; + let mut name__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Address => { + if address__.is_some() { + return Err(serde::de::Error::duplicate_field("address")); + } + address__ = map.next_value()?; } - GeneratedField::StreamInfo => { - if stream_info__.is_some() { - return Err(serde::de::Error::duplicate_field("streamInfo")); + GeneratedField::Module => { + if module__.is_some() { + return Err(serde::de::Error::duplicate_field("module")); } - stream_info__ = map.next_value()?; + module__ = map.next_value()?; } - GeneratedField::MinServableVersion => { - if min_servable_version__.is_some() { - return Err(serde::de::Error::duplicate_field("minServableVersion")); + GeneratedField::Name => { + if name__.is_some() { + return Err(serde::de::Error::duplicate_field("name")); } - min_servable_version__ = - map.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| x.0) - ; + name__ = map.next_value()?; } } } - Ok(LiveDataServiceInfo { - chain_id: chain_id__.unwrap_or_default(), - timestamp: timestamp__, - known_latest_version: known_latest_version__, - stream_info: stream_info__, - min_servable_version: min_servable_version__, + Ok(MoveStructTagFilter { + address: address__, + module: module__, + name: name__, }) } } - deserializer.deserialize_struct("aptos.indexer.v1.LiveDataServiceInfo", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("aptos.indexer.v1.MoveStructTagFilter", FIELDS, GeneratedVisitor) } } impl serde::Serialize for PingDataServiceRequest { @@ -1962,6 +2790,117 @@ impl<'de> serde::Deserialize<'de> for StreamProgressSampleProto { deserializer.deserialize_struct("aptos.indexer.v1.StreamProgressSampleProto", FIELDS, GeneratedVisitor) } } +impl serde::Serialize for TransactionRootFilter { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.success.is_some() { + len += 1; + } + if self.transaction_type.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.indexer.v1.TransactionRootFilter", len)?; + if let Some(v) = self.success.as_ref() { + struct_ser.serialize_field("success", v)?; + } + if let Some(v) = self.transaction_type.as_ref() { + let v = super::super::transaction::v1::transaction::TransactionType::from_i32(*v) + .ok_or_else(|| serde::ser::Error::custom(format!("Invalid variant {}", *v)))?; + struct_ser.serialize_field("transactionType", &v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for TransactionRootFilter { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "success", + "transaction_type", + "transactionType", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Success, + TransactionType, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "success" => Ok(GeneratedField::Success), + "transactionType" | "transaction_type" => Ok(GeneratedField::TransactionType), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = TransactionRootFilter; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.indexer.v1.TransactionRootFilter") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut success__ = None; + let mut transaction_type__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Success => { + if success__.is_some() { + return Err(serde::de::Error::duplicate_field("success")); + } + success__ = map.next_value()?; + } + GeneratedField::TransactionType => { + if transaction_type__.is_some() { + return Err(serde::de::Error::duplicate_field("transactionType")); + } + transaction_type__ = map.next_value::<::std::option::Option>()?.map(|x| x as i32); + } + } + } + Ok(TransactionRootFilter { + success: success__, + transaction_type: transaction_type__, + }) + } + } + deserializer.deserialize_struct("aptos.indexer.v1.TransactionRootFilter", FIELDS, GeneratedVisitor) + } +} impl serde::Serialize for TransactionsInStorage { #[allow(deprecated)] fn serialize(&self, serializer: S) -> std::result::Result @@ -2184,3 +3123,204 @@ impl<'de> serde::Deserialize<'de> for TransactionsResponse { deserializer.deserialize_struct("aptos.indexer.v1.TransactionsResponse", FIELDS, GeneratedVisitor) } } +impl serde::Serialize for UserTransactionFilter { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.sender.is_some() { + len += 1; + } + if self.payload_filter.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.indexer.v1.UserTransactionFilter", len)?; + if let Some(v) = self.sender.as_ref() { + struct_ser.serialize_field("sender", v)?; + } + if let Some(v) = self.payload_filter.as_ref() { + struct_ser.serialize_field("payloadFilter", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for UserTransactionFilter { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "sender", + "payload_filter", + "payloadFilter", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Sender, + PayloadFilter, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "sender" => Ok(GeneratedField::Sender), + "payloadFilter" | "payload_filter" => Ok(GeneratedField::PayloadFilter), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = UserTransactionFilter; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.indexer.v1.UserTransactionFilter") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut sender__ = None; + let mut payload_filter__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Sender => { + if sender__.is_some() { + return Err(serde::de::Error::duplicate_field("sender")); + } + sender__ = map.next_value()?; + } + GeneratedField::PayloadFilter => { + if payload_filter__.is_some() { + return Err(serde::de::Error::duplicate_field("payloadFilter")); + } + payload_filter__ = map.next_value()?; + } + } + } + Ok(UserTransactionFilter { + sender: sender__, + payload_filter: payload_filter__, + }) + } + } + deserializer.deserialize_struct("aptos.indexer.v1.UserTransactionFilter", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for UserTransactionPayloadFilter { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.entry_function_filter.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.indexer.v1.UserTransactionPayloadFilter", len)?; + if let Some(v) = self.entry_function_filter.as_ref() { + struct_ser.serialize_field("entryFunctionFilter", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for UserTransactionPayloadFilter { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "entry_function_filter", + "entryFunctionFilter", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + EntryFunctionFilter, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "entryFunctionFilter" | "entry_function_filter" => Ok(GeneratedField::EntryFunctionFilter), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = UserTransactionPayloadFilter; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.indexer.v1.UserTransactionPayloadFilter") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut entry_function_filter__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::EntryFunctionFilter => { + if entry_function_filter__.is_some() { + return Err(serde::de::Error::duplicate_field("entryFunctionFilter")); + } + entry_function_filter__ = map.next_value()?; + } + } + } + Ok(UserTransactionPayloadFilter { + entry_function_filter: entry_function_filter__, + }) + } + } + deserializer.deserialize_struct("aptos.indexer.v1.UserTransactionPayloadFilter", FIELDS, GeneratedVisitor) + } +} diff --git a/protos/typescript/src/aptos/indexer/v1/raw_data.ts b/protos/typescript/src/aptos/indexer/v1/raw_data.ts index 98e66947060f3..34681105c1c52 100644 --- a/protos/typescript/src/aptos/indexer/v1/raw_data.ts +++ b/protos/typescript/src/aptos/indexer/v1/raw_data.ts @@ -11,6 +11,7 @@ import type { CallOptions, ClientOptions, UntypedServiceImplementation } from "@ import Long from "long"; import _m0 from "protobufjs/minimal"; import { Transaction } from "../../transaction/v1/transaction"; +import { BooleanTransactionFilter } from "./filter"; /** This is for storage only. */ export interface TransactionsInStorage { @@ -38,7 +39,11 @@ export interface GetTransactionsRequest { * Optional; number of transactions in each `TransactionsResponse` for current stream. * If not present, default to 1000. If larger than 1000, request will be rejected. */ - batchSize?: bigint | undefined; + batchSize?: + | bigint + | undefined; + /** If provided, only transactions that match the filter will be included. */ + transactionFilter?: BooleanTransactionFilter | undefined; } /** TransactionsResponse is a batch of transactions. */ @@ -167,7 +172,12 @@ export const TransactionsInStorage = { }; function createBaseGetTransactionsRequest(): GetTransactionsRequest { - return { startingVersion: undefined, transactionsCount: undefined, batchSize: undefined }; + return { + startingVersion: undefined, + transactionsCount: undefined, + batchSize: undefined, + transactionFilter: undefined, + }; } export const GetTransactionsRequest = { @@ -190,6 +200,9 @@ export const GetTransactionsRequest = { } writer.uint32(24).uint64(message.batchSize.toString()); } + if (message.transactionFilter !== undefined) { + BooleanTransactionFilter.encode(message.transactionFilter, writer.uint32(34).fork()).ldelim(); + } return writer; }, @@ -221,6 +234,13 @@ export const GetTransactionsRequest = { message.batchSize = longToBigint(reader.uint64() as Long); continue; + case 4: + if (tag !== 34) { + break; + } + + message.transactionFilter = BooleanTransactionFilter.decode(reader, reader.uint32()); + continue; } if ((tag & 7) === 4 || tag === 0) { break; @@ -269,6 +289,9 @@ export const GetTransactionsRequest = { startingVersion: isSet(object.startingVersion) ? BigInt(object.startingVersion) : undefined, transactionsCount: isSet(object.transactionsCount) ? BigInt(object.transactionsCount) : undefined, batchSize: isSet(object.batchSize) ? BigInt(object.batchSize) : undefined, + transactionFilter: isSet(object.transactionFilter) + ? BooleanTransactionFilter.fromJSON(object.transactionFilter) + : undefined, }; }, @@ -283,6 +306,9 @@ export const GetTransactionsRequest = { if (message.batchSize !== undefined) { obj.batchSize = message.batchSize.toString(); } + if (message.transactionFilter !== undefined) { + obj.transactionFilter = BooleanTransactionFilter.toJSON(message.transactionFilter); + } return obj; }, @@ -294,6 +320,9 @@ export const GetTransactionsRequest = { message.startingVersion = object.startingVersion ?? undefined; message.transactionsCount = object.transactionsCount ?? undefined; message.batchSize = object.batchSize ?? undefined; + message.transactionFilter = (object.transactionFilter !== undefined && object.transactionFilter !== null) + ? BooleanTransactionFilter.fromPartial(object.transactionFilter) + : undefined; return message; }, }; diff --git a/protos/typescript/src/index.aptos.indexer.v1.ts b/protos/typescript/src/index.aptos.indexer.v1.ts index db6b45c6ddf74..36492ee309f20 100644 --- a/protos/typescript/src/index.aptos.indexer.v1.ts +++ b/protos/typescript/src/index.aptos.indexer.v1.ts @@ -1,4 +1,5 @@ /* eslint-disable */ +export * from "./aptos/indexer/v1/filter"; export * from "./aptos/indexer/v1/raw_data"; export * from "./aptos/indexer/v1/grpc"; From b60cde7b56a5493de945d679842908cb06865dcc Mon Sep 17 00:00:00 2001 From: Aaron Date: Tue, 4 Feb 2025 02:17:34 +0800 Subject: [PATCH 30/30] [move-examples] fix locked_coins (#15872) --- .../move-examples/defi/sources/locked_coins.move | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/aptos-move/move-examples/defi/sources/locked_coins.move b/aptos-move/move-examples/defi/sources/locked_coins.move index 92887e270704a..513bf3f9cf4a7 100644 --- a/aptos-move/move-examples/defi/sources/locked_coins.move +++ b/aptos-move/move-examples/defi/sources/locked_coins.move @@ -265,34 +265,25 @@ module defi::locked_coins { }); } - #[test_only] - use std::string; #[test_only] use aptos_framework::account; #[test_only] use aptos_framework::coin::BurnCapability; #[test_only] - use aptos_framework::aptos_coin::AptosCoin; + use aptos_framework::aptos_coin::{Self, AptosCoin}; #[test_only] use aptos_framework::aptos_account; #[test_only] fun setup(aptos_framework: &signer, sponsor: &signer): BurnCapability { timestamp::set_time_has_started_for_testing(aptos_framework); + let (burn_cap, mint_cap) = aptos_coin::initialize_for_test(aptos_framework); - let (burn_cap, freeze_cap, mint_cap) = coin::initialize( - aptos_framework, - string::utf8(b"TC"), - string::utf8(b"TC"), - 8, - false, - ); account::create_account_for_test(signer::address_of(sponsor)); coin::register(sponsor); let coins = coin::mint(2000, &mint_cap); coin::deposit(signer::address_of(sponsor), coins); coin::destroy_mint_cap(mint_cap); - coin::destroy_freeze_cap(freeze_cap); burn_cap }