Skip to content

Commit 6dccabc

Browse files
committed
feat: move authenticator
1 parent 84c27eb commit 6dccabc

File tree

56 files changed

+4593
-535
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+4593
-535
lines changed

Cargo.lock

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/iota-analytics-indexer/src/handlers/mod.rs

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ use iota_types::{
1111
base_types::ObjectID,
1212
effects::{TransactionEffects, TransactionEffectsAPI},
1313
object::{Object, Owner, bounded_visitor::BoundedVisitor},
14-
transaction::{TransactionData, TransactionDataAPI},
14+
transaction::{SenderSignedData, TransactionDataAPI},
1515
};
1616
use move_core_types::{
1717
annotated_value::{MoveStruct, MoveTypeLayout, MoveValue},
@@ -90,17 +90,20 @@ struct InputObjectTracker {
9090
}
9191

9292
impl InputObjectTracker {
93-
fn new(txn_data: &TransactionData) -> Self {
94-
let shared: BTreeSet<ObjectID> = txn_data
93+
fn new(txn: &SenderSignedData) -> Self {
94+
let shared: BTreeSet<ObjectID> = txn
9595
.shared_input_objects()
96-
.iter()
96+
.into_iter()
9797
.map(|shared_io| shared_io.id())
9898
.collect();
99-
let coins: BTreeSet<ObjectID> = txn_data.gas().iter().map(|obj_ref| obj_ref.0).collect();
100-
let input: BTreeSet<ObjectID> = txn_data
99+
let tx_data = txn.transaction_data();
100+
let coins: BTreeSet<ObjectID> = tx_data.gas().iter().map(|obj_ref| obj_ref.0).collect();
101+
// All input objects (transaction + authenticators) are collected here, just
102+
// like the shared objects previously.
103+
let input: BTreeSet<ObjectID> = txn
101104
.input_objects()
102105
.expect("input objects must be valid")
103-
.iter()
106+
.into_iter()
104107
.map(|io_kind| io_kind.object_id())
105108
.collect();
106109
Self {

crates/iota-analytics-indexer/src/handlers/transaction_handler.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -154,11 +154,12 @@ impl TransactionHandler {
154154
is_sponsored_tx,
155155
transaction_count: txn_data.kind().num_commands() as u64,
156156
execution_success: effects.status().is_ok(),
157-
input: txn_data
157+
// Calculate all objects(transaction + authenticators) amount.
158+
input: transaction
158159
.input_objects()
159160
.expect("input objects must be valid")
160161
.len() as u64,
161-
shared_input: txn_data.shared_input_objects().len() as u64,
162+
shared_input: transaction.shared_input_objects().len() as u64,
162163
gas_coins: txn_data.gas().len() as u64,
163164
created: effects.created().len() as u64,
164165
mutated: (effects.mutated().len() + effects.unwrapped().len()) as u64,

crates/iota-analytics-indexer/src/handlers/transaction_objects_handler.rs

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ use iota_types::{
1010
base_types::ObjectID,
1111
effects::TransactionEffects,
1212
full_checkpoint_content::{CheckpointData, CheckpointTransaction},
13-
transaction::TransactionDataAPI,
1413
};
1514
use tokio::sync::Mutex;
1615

@@ -93,15 +92,19 @@ impl TransactionObjectsHandler {
9392
state: &mut State,
9493
) {
9594
let transaction = &checkpoint_transaction.transaction;
96-
let transaction_digest = transaction.digest().base58_encode();
97-
let txn_data = transaction.transaction_data();
98-
let input_object_tracker = InputObjectTracker::new(txn_data);
95+
let input_object_tracker = InputObjectTracker::new(transaction.data());
9996
let object_status_tracker = ObjectStatusTracker::new(effects);
97+
98+
let transaction_digest = transaction.digest().base58_encode();
99+
100100
// input
101-
txn_data
101+
//
102+
// Process all objects associated with the transaction, including authenticator
103+
// inputs.
104+
transaction
102105
.input_objects()
103106
.expect("input objects must be valid")
104-
.iter()
107+
.into_iter()
105108
.map(|object| (object.object_id(), object.version().map(|v| v.value())))
106109
.for_each(|(object_id, version)| {
107110
self.process_transaction_object(

0 commit comments

Comments
 (0)