diff --git a/docs/content/about-iota/iota-architecture/iota-architecture.mdx b/docs/content/about-iota/iota-architecture/iota-architecture.mdx index 540a16fa536..43c666e532a 100644 --- a/docs/content/about-iota/iota-architecture/iota-architecture.mdx +++ b/docs/content/about-iota/iota-architecture/iota-architecture.mdx @@ -1,6 +1,7 @@ --- title: IOTA Architecture --- +import ThemedImage from '@theme/ThemedImage'; IOTA shares some similarities with other blockchains but is unique in many ways. Use the topics in this section to understand the features that define the IOTA network. @@ -39,4 +40,10 @@ The core components are: - [IOTA RPC](../../references/iota-api) - [IOTA CLI](../../references/cli) -![IOTA Architecture](/img/concepts/execution-architecture/iota-architecture.svg) \ No newline at end of file + diff --git a/docs/content/developer/stardust/migration-process.mdx b/docs/content/developer/stardust/migration-process.mdx index a5685028e55..eaba3cea200 100644 --- a/docs/content/developer/stardust/migration-process.mdx +++ b/docs/content/developer/stardust/migration-process.mdx @@ -3,6 +3,7 @@ title: Migration Process description: Explains how IOTA assets are handled during migration --- import MigrationWarning from '../../_snippets/migration-warning.mdx'; +import ThemedImage from '@theme/ThemedImage'; @@ -116,7 +117,13 @@ which they can be identified as vesting reward objects. The full decision graph (without the vesting reward output case) is depicted here (with `coin` being `IOTA`): -![Stardust on Move Migration Graph](/img/guides/developer/advanced/stardust-on-move/stardust-on-move-migration-graph.svg) + ## Alias Outputs diff --git a/docs/content/references/execution-architecture/adapter.mdx b/docs/content/references/execution-architecture/adapter.mdx index 5a9c24f88ec..08c24d6680e 100644 --- a/docs/content/references/execution-architecture/adapter.mdx +++ b/docs/content/references/execution-architecture/adapter.mdx @@ -2,6 +2,7 @@ title: Adapter description: This document describes the architectural approach and execution flow for the adapter and related components. --- +import ThemedImage from '@theme/ThemedImage'; ## Move Adapter @@ -78,4 +79,12 @@ Also used as a cache that is used after the execution to populate the created/mo ### Flow -![IOTA Adapter Flow](/img/concepts/execution-architecture/iota-adapter.svg) \ No newline at end of file + + + diff --git a/docs/content/references/execution-architecture/iota-execution.mdx b/docs/content/references/execution-architecture/iota-execution.mdx index b0544e335ab..24896c30caf 100644 --- a/docs/content/references/execution-architecture/iota-execution.mdx +++ b/docs/content/references/execution-architecture/iota-execution.mdx @@ -3,10 +3,18 @@ title: IOTA Execution Crate description: This document describes the architectural approach for iota execution crate. --- -## IOTA Execution Architecture +import ThemedImage from '@theme/ThemedImage'; + +# IOTA Execution Architecture The IOTA Execution Architecture, depicted in the included architectural diagram, outlines the technical approach for the iota execution crate to have a general view of component interaction. The following diagram is a visual representation of the iota_execution crate with its subcrates ([iota_adapter](adapter.mdx), [iota_move_natives](natives.mdx), iota_verifier). The main purposes of iota execution are executing transactions (including PTBs), gas accounting, and supporting native functions. -![IOTA Execution Architecture](/img/concepts/execution-architecture/iota-execution.svg) \ No newline at end of file + diff --git a/docs/content/references/execution-architecture/natives.mdx b/docs/content/references/execution-architecture/natives.mdx index 0919e420e05..e49c37329bb 100644 --- a/docs/content/references/execution-architecture/natives.mdx +++ b/docs/content/references/execution-architecture/natives.mdx @@ -2,6 +2,7 @@ title: Natives & Object Runtime description: This document describes the object runtime and native functions flow. --- +import ThemedImage from '@theme/ThemedImage'; ## IOTA Move Natives @@ -16,7 +17,14 @@ pub fn all_natives(silent: bool) -> NativeFunctionTable Contains all registered native functions. The resulting NativeFunctionTable object contains information about all the native functions that can be called from a Move contract. -![Native functions](/img/concepts/execution-architecture/native-fns-flow.svg) + + ## Object runtime @@ -29,4 +37,4 @@ It serves as the core interface for interacting, transferring the objects, manag - Child object management etc Also handles information about transaction objects, which are stored in the ObjectRuntimeState as an internal state. -Object store - manages child/dynamic objects(inner store). \ No newline at end of file +Object store - manages child/dynamic objects(inner store). diff --git a/docs/site/static/img/about-iota/iota-architecture/dark/TransactionLifeCycle.svg b/docs/site/static/img/about-iota/iota-architecture/dark/TransactionLifeCycle.svg new file mode 100644 index 00000000000..d8e4442e6bb --- /dev/null +++ b/docs/site/static/img/about-iota/iota-architecture/dark/TransactionLifeCycle.svg @@ -0,0 +1,4 @@ + + + +


1. Make Transaction

Checks
Client

Validator n
Validator 1
Validator 2

3. Assemble Certificate

2. Process Transaction

4. Sequence

5. Process Certificate

6. Assemble Effect Certifcate

7. Checkpoint Certificate

...
Checks
Consensus
Execution

Direct Fast Path

Checkpoint
\ No newline at end of file diff --git a/docs/site/static/img/about-iota/iota-architecture/txn-lifecycle.png b/docs/site/static/img/about-iota/iota-architecture/txn-lifecycle.png deleted file mode 100644 index 269b0f19654..00000000000 Binary files a/docs/site/static/img/about-iota/iota-architecture/txn-lifecycle.png and /dev/null differ diff --git a/docs/site/static/img/concepts/execution-architecture/dark/iota-adapter.svg b/docs/site/static/img/concepts/execution-architecture/dark/iota-adapter.svg new file mode 100644 index 00000000000..36fb5f1f5a6 --- /dev/null +++ b/docs/site/static/img/concepts/execution-architecture/dark/iota-adapter.svg @@ -0,0 +1,4 @@ + + + +
Adapter scope
Adapter scope

new_move_vm

(iota-execution/iota_adapter/adapter.rs)

new_move_vm...

executor

(iota-execution/lib.rs)

executor...

create_genesis_transaction

(iota-genesis-builder/lib.rs)

create_genesis_transaction...

new -> Executor

(iota-execution/latest.rs)

new -> Executor...

create_genesis_objects

(iota-genesis-builder/lib.rs)

create_genesis_objects...

new -> ExecutionComponents

(iota-core/authority/authority_per_epoch_store.rs)

new -> ExecutionComponents...

start_async

(iota-node/lib.rs)

start_async...

main

(iota-node/main.rs)

main...

build_unsigned_genesis_data

(iota-genesis-builder/lib.rs)

build_unsigned_genesis_data...

build_unsigned_genesis_checkpoint

(iota-genesis-builder/lib.rs)

build_unsigned_genesis_checkpoint...

add_validator_signature

(iota-genesis-builder/lib.rs)

add_validator_signature...

build -> Genesis

(iota-genesis-builder/lib.rs)

build -> Genesis...

load -> Builder

(iota-genesis-builder/lib.rs)

load -> Builder...

run

(iota/genesis_ceremony.rs)

run...

main

(iota/generate_genesis_checkpoint.rs)

main...
Execution scope
Execution scope
Text is not SVG - cannot display
\ No newline at end of file diff --git a/docs/site/static/img/concepts/execution-architecture/dark/iota-architecture.svg b/docs/site/static/img/concepts/execution-architecture/dark/iota-architecture.svg new file mode 100644 index 00000000000..7b929d828ab --- /dev/null +++ b/docs/site/static/img/concepts/execution-architecture/dark/iota-architecture.svg @@ -0,0 +1,4 @@ + + + +
Execution layer
Execution layer
Adapter
Adapter
MoveVM
MoveVM
move-execution/move-vm-runtime
move-execution/...
Framework
Framework
iota-framework crate
iota-framework...
Init
Init
Execution-engine
Execution-engine
...execution/iota-adapter/execution-engine
...execution/iota-...

native fns etc

native fns etc
Object runtime
Object runtime
...execution/iota-move-natives
...execution/io...
iota-execution crate
iota-execution crate
Nodes network(Iota node)
Nodes network(Iota node)
Node
Node
API
API
Ledger storage
Ledger stora...
Indexer
(read/sync db)
Indexer...
Consensus engine
Consensus engi...
Network
Network
Core
Core
iota-json-rpc
iota-json-rpc
iota-json-rpc crate
iota-json-rpc...
iota-cli
iota-cli
iota-cli crate
iota-cli crate
Text is not SVG - cannot display
\ No newline at end of file diff --git a/docs/site/static/img/concepts/execution-architecture/dark/iota-execution.svg b/docs/site/static/img/concepts/execution-architecture/dark/iota-execution.svg new file mode 100644 index 00000000000..8a20051e670 --- /dev/null +++ b/docs/site/static/img/concepts/execution-architecture/dark/iota-execution.svg @@ -0,0 +1,4 @@ + + + +
Init
Init
iota-adapter
iota-adapter
Execution engine:
execute_transaction_to_effects
Execution engine:...
...execution/iota-adapter/execution_engine.rs
...execution/iota-adapter/executi...
iota-execution crate
iota-execution crate
iota-verifier
Checks:
default_verifier_config
verify_module_unmetered
check_for_verifier_timeout
...
iota-verifier...
Gas charger
Gas charger
...execution/iota-adapter/gas_charger.rs
...execution/iota-ada...
Temporary store
Temporary store
...execution/iota-adapter/temporary_store.rs
...execution/iota-adapter...
Programmable tx module
Programmable tx module
ExecutionContext
ExecutionContext
context.rs
context.rs
...execution/iota-adapter/programmable_transactions
...execution/iota-adapter/programmable_transactions
execution.rs
execution.rs
tx execution methods:
execute
execute_command
execute_move_call
...
tx execution methods:...
Init
Init
Init
Init
Execute
Execute
iota-move-natives
iota-move-natives
NativeCostTable
NativeCostTable
NativeFunctionTable
NativeFunctionTable
Object runtime
Manage object operations
Object runtime...
Object store
Object store
...execution/iota-move-natives/object_runtime
...execution/iota-move-n...
...execution/iota-move-natives
...execution/iota-move-natives
Executor
Executor
...execution/src.rs
...execution/src.rs
MoveVM
MoveVM
external-crates/move/crates/mvoe-vm-runtime/move_vm.rs
external-crates/move/crate...
Init
Init
Init
Init
Init
Init
Init
Init
Init
Init
External-crates
External-crates
Text is not SVG - cannot display
\ No newline at end of file diff --git a/docs/site/static/img/concepts/execution-architecture/dark/native-fns-flow.svg b/docs/site/static/img/concepts/execution-architecture/dark/native-fns-flow.svg new file mode 100644 index 00000000000..969ea664950 --- /dev/null +++ b/docs/site/static/img/concepts/execution-architecture/dark/native-fns-flow.svg @@ -0,0 +1,4 @@ + + + +

NativeFunctionTable

NativeFunctionTable

new_move_vm -> MoveVM

(iota-execution/iota_adapter/adapter.rs)

new_move_vm -> MoveVM...

new_with_config -> MoveVM

(external-crates/move/move-vm_runtime/move_vm.rs)

new_with_config -> MoveVM...

new -> VMRuntime

(external-crates/move/move-vm_runtime/runtime.rs)

new -> VMRuntime...

new - Loader

(external-crates/move/move-vm_runtime/loader.rs)

new - Loader...

new -> NativeFunctions

(external-crates/move/move-vm_runtime/native_functions.rs)

new -> NativeFunctions...
Native functions initialization/loading
Native functions initialization/loading
programmable_transactions::execution::execute
programmable_transactions::execution::execute
Execution engine


Execution engine...
execute_genesis_state_update
execution_loop
advance_epoch
setup_consensus_commit
setup_authenticator_state_update
execute_genesis_state_update...
Object runtime creation and access process 
Object runtime creation and access process 

all_natives

(iota-execution/latest/iota-move-natives/lib.rs)

all_natives...

new -> Executor

(iota-execution/latest.rs)

new -> Executor...

transfer_internal

(iota-execution/latest/iota-move-natives/transfer.rs)

transfer_internal...
object_runtime.transfer(...)
object_runtime.transfer(...)

object_runtime_transfer

(iota-execution/latest/iota-move-natives/transfer.rs)

object_runtime_transfer...

transfer

(iota-execution/iota-move-natives/object-runtime/mod.rs)

transfer...

share_object

(iota-execution/latest/iota-move-natives/transfer.rs)

share_object...

freeze_object

(iota-execution/latest/iota-move-natives/transfer.rs)

freeze_object...
Native functions execution flow
(Transfer fn for an instance)
Native functions execution flow...
ExecutionContext
fn object_runtime(&mut self) -> &ObjectRuntime
ExecutionContext...
NativeContextExtensions
NativeContextExtensions
ObjectRuntime
ObjectRuntime
ObjectRuntimeState
ObjectRuntimeState
NativeContext::get_exetensions().get_mut()
NativeContext::get_exetensions().get_mut()
transfer.insert()
transfer.insert()
programmable_transactions::execution::execute
programmable_transactions::execution::execute
ExecutionContext::new(...) -> ExecutionContext
ExecutionContext::new(...) -> ExecutionContext
new_native_extensions(...) -> NativeContextExtensions
new_native_extensions(...) -> NativeContextExtensions
Object Runtime initialization
ObjectRuntime
Object Runtime initializat...
Natives Cost Table initialization
NativesCostTable
Natives Cost Table initializ...
...
...
context.object_runtime()
context.object_runtime()
...
...
state_view<ExecutionState> - save operations
state_view<ExecutionState> - save operations
context.finish()
context.finish()
object_runtime.finish()
object_runtime.finish()
state.finish()
state.finish()
Text is not SVG - cannot display
\ No newline at end of file diff --git a/docs/site/static/img/concepts/execution-architecture/dark/tx-exec-flow.svg b/docs/site/static/img/concepts/execution-architecture/dark/tx-exec-flow.svg new file mode 100644 index 00000000000..a915ed6dea8 --- /dev/null +++ b/docs/site/static/img/concepts/execution-architecture/dark/tx-exec-flow.svg @@ -0,0 +1,4 @@ + + + +

try_execute_immediately

(iota-core/authority.rs)

try_execute_immediately...

start_async

(iota-node/lib.rs)

start_async...

execution_process

(iota-core/execution_driver.rs)

execution_process...

main

(iota-node/main.rs)

main...

new -> AuthorityState

(iota-core/authority.rs)

new -> AuthorityState...

execute_transaction_to_effects

(iota-execution/iota-adapter/execution_engine.rs)

execute_transaction_to_effects...

process_certificate

(iota-core/authority.rs)

process_certificate...

prepare_certificate

(iota-core/authority.rs)

prepare_certificate...

execute_transaction_to_effects

(iota-execution/latest.rs)

execute_transaction_to_effects...

execute_transaction

(iota-execution/iota-adapter/execution_engine.rs)

execute_transaction...

execute_loop

(iota-execution/iota-adapter/execution_engine.rs)

execute_loop...

execute

(iota-execution/iota-adapter/programmable_transaction/execution.rs)

execute...

execute_transaction_block

(iota-sdk/apis.rs)

execute_transaction_block...

execute_transaction_block

(iota-json-rpc-api/write.rs)

execute_transaction_block...

execute_transaction_block

(iota-json-rpc/transaction_execution_api.rs)

execute_transaction_block...

execute_transaction_block

(iota-core/transaction_orchestrator.rs)

execute_transaction_block...

execute_finalized_tx_locally_with_timeout

(iota-core/transaction_orchestrator.rs)

execute_finalized_tx_locally_with_timeout...

fullnode_execute_certificate_with_effects

(iota-core/authority.rs)

fullnode_execute_certificate_with_effects...

submit

(iota-core/transaction_orchestrator.rs)

submit...

submit_transaction_no_ticket

(iota-core/transaction_orchestrator.rs)

submit_transaction_no_ticket...
User side flow
User side flow
Node side flow
Node side flow

finish

(iota-execution/iota-adapter/programmable_transaction/context.rs)

finish...

finish

(iota-execution/iota-move-natives/object-runtime/mod.rs)

finish...
IOTA Execution Crate
IOTA Execution Crate
Text is not SVG - cannot display
\ No newline at end of file diff --git a/docs/site/static/img/guides/developer/advanced/stardust-on-move/dark/.$stardust-on-move-migration-graph.svg.bkp b/docs/site/static/img/guides/developer/advanced/stardust-on-move/dark/.$stardust-on-move-migration-graph.svg.bkp new file mode 100644 index 00000000000..596fc2218cd --- /dev/null +++ b/docs/site/static/img/guides/developer/advanced/stardust-on-move/dark/.$stardust-on-move-migration-graph.svg.bkp @@ -0,0 +1,4 @@ + + + +
Basic Output
Basic Output
Expiration?
Expiration?
Native Tokens?
Native Tokens?
Native Tokens?
Native Tokens?
SDRUC?
SDRUC?
SDRUC?
SDRUC?
SDRUC?
SDRUC?
SDRUC?
SDRUC?
Timelock?
Timelock?
Timelock?
Timelock?
Timelock?
Timelock?
Timelock?
Timelock?
Timelock?
Timelock?
Timelock?
Timelock?
Timelock?
Timelock?
Timelock?
Timelock?
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
No
No
No
No
No
No
No
No
No
No
No
No
No
No
Owned stardust::basic::BasicOutput
Owned stardust::basic:...
O
O
I
I
T
T
Owned 0x2::coin::Coin<IOTA>
Owned 0x2::coi...
O
O
I
I
Owned stardust::basic::BasicOutput
Owned stardust::basic:...
SDR
SDR
O
O
I
I
Owned stardust::basic::BasicOutput
Owned stardust::basic::Basic...
SDR
SDR
O
O
I
I
T
T
Shared stardust::basic::BasicOutput
Shared stardust::basic::Bas...
NT
NT
SDR
SDR
E
E
I
I
Shared stardust::basic::BasicOutput
Shared stardust::basic::Ba...
NT
NT
E
E
I
I
T
T
Shared stardust::basic::BasicOutput
Shared stardust::bas...
NT
NT
E
E
I
I
Shared stardust::basic::BasicOutput
Shared stardust::basic::Ba...
SDR
SDR
E
E
I
I
T
T
Shared stardust::basic::BasicOutput
Shared stardust::bas...
SDR
SDR
E
E
I
I
Shared stardust::basic::BasicOutput
Shared stardust::b...
E
E
I
I
T
T
Shared stardust::basic::BasicOutput
Shared stardus...
E
E
I
I
Owned stardust::basic::BasicOutput
Owned stardust::basic::BasicOutput
NT
NT
SDR
SDR
O
O
I
I
T
T
Owned stardust::basic::BasicOutput
Owned stardust::basic::Basi...
NT
NT
SDR
SDR
O
O
I
I
Owned stardust::basic::BasicOutput
Owned stardust::basic::Basic...
NT
NT
O
O
I
I
T
T
Owned 0x2::coin::Coin<IOTA>
Owned 0x2::coi...
O
O
I
I
Yes
Yes
No
No
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
No
No
No
No
No
No
No
No
No
No
+
+
No
No
No, or expired
No, or expired
tokens: Bag<String, Balance<TokenType>
tokens: Bag<String, Balance<TokenType>
sdruc: Option<StorageDepositReturn>::Some(
StorageDepositReturn {
return_address: <RETURN ADDRESS>,
return_amount: <RETURN_AMOUNT>
}
)
sdruc: Option<StorageDepositReturn>::Some(...
timelock: Option<timelock>::Some(
Timelock {
unix_time: <UNIX_TIME>
}
)
timelock: Option<timelock>::Some(...
expiration: Option<Expiration>::Some(
Expiration {
owner: <ADDRESS-UNLOCK>,
return_address: <RETURN ADDRESS>,
unix_time: <UNIX_TIME>
}
)
expiration: Option<Expiration>::Some(...
owner(obj metadata): hash(<ADDRESS UNLOCK>)
owner(obj metadata): hash(<ADDRESS UNLOCK>)
balance: Balance<IOTA>
balance: Balance<IOTA>
O
O
NT
NT
SDR
SDR
E
E
I
I
T
T
Shared stardust::basic::BasicOutput
Shared stardust::basic::BasicOutp...
NT
NT
SDR
SDR
E
E
I
I
T
T
Owned 0x2::coin::Coin<TokenType>
Owned 0x2::coi...
O
O
NT
NT
balance: Balance<TokenType>
balance: Balance<TokenType>
NT
NT
Move Field Types
Move Field Types
Text is not SVG - cannot display
\ No newline at end of file diff --git a/docs/site/static/img/guides/developer/advanced/stardust-on-move/dark/stardust-on-move-migration-graph.svg b/docs/site/static/img/guides/developer/advanced/stardust-on-move/dark/stardust-on-move-migration-graph.svg new file mode 100644 index 00000000000..7f7d83b755b --- /dev/null +++ b/docs/site/static/img/guides/developer/advanced/stardust-on-move/dark/stardust-on-move-migration-graph.svg @@ -0,0 +1,4 @@ + + + +
Basic Output
Basic Output
Expiration?
Expiration?
Native Tokens?
Native Tokens?
Native Tokens?
Native Tokens?
SDRUC?
SDRUC?
SDRUC?
SDRUC?
SDRUC?
SDRUC?
SDRUC?
SDRUC?
Timelock?
Timelock?
Timelock?
Timelock?
Timelock?
Timelock?
Timelock?
Timelock?
Timelock?
Timelock?
Timelock?
Timelock?
Timelock?
Timelock?
Timelock?
Timelock?
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
No
No
No
No
No
No
No
No
No
No
No
No
No
No
Owned stardust::basic::BasicOutput
Owned stardust::basic:...
O
O
I
I
T
T
Owned 0x2::coin::Coin<IOTA>
Owned 0x2::coi...
O
O
I
I
Owned stardust::basic::BasicOutput
Owned stardust::basic:...
SDR
SDR
O
O
I
I
Owned stardust::basic::BasicOutput
Owned stardust::basic::Basic...
SDR
SDR
O
O
I
I
T
T
Shared stardust::basic::BasicOutput
Shared stardust::basic::Bas...
NT
NT
SDR
SDR
E
E
I
I
Shared stardust::basic::BasicOutput
Shared stardust::basic::Ba...
NT
NT
E
E
I
I
T
T
Shared stardust::basic::BasicOutput
Shared stardust::bas...
NT
NT
E
E
I
I
Shared stardust::basic::BasicOutput
Shared stardust::basic::Ba...
SDR
SDR
E
E
I
I
T
T
Shared stardust::basic::BasicOutput
Shared stardust::bas...
SDR
SDR
E
E
I
I
Shared stardust::basic::BasicOutput
Shared stardust::b...
E
E
I
I
T
T
Shared stardust::basic::BasicOutput
Shared stardus...
E
E
I
I
Owned stardust::basic::BasicOutput
Owned stardust::basic::BasicOutput
NT
NT
SDR
SDR
O
O
I
I
T
T
Owned stardust::basic::BasicOutput
Owned stardust::basic::Basi...
NT
NT
SDR
SDR
O
O
I
I
Owned stardust::basic::BasicOutput
Owned stardust::basic::Basic...
NT
NT
O
O
I
I
T
T
Owned 0x2::coin::Coin<IOTA>
Owned 0x2::coi...
O
O
I
I
Yes
Yes
No
No
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
No
No
No
No
No
No
No
No
No
No
+
+
No
No
No, or expired
No, or expired
tokens: Bag<String, Balance<TokenType>
tokens: Bag<String, Balance<TokenType>
sdruc: Option<StorageDepositReturn>::Some(
StorageDepositReturn {
return_address: <RETURN ADDRESS>,
return_amount: <RETURN_AMOUNT>
}
)
sdruc: Option<StorageDepositReturn>::Some(...
timelock: Option<timelock>::Some(
Timelock {
unix_time: <UNIX_TIME>
}
)
timelock: Option<timelock>::Some(...
expiration: Option<Expiration>::Some(
Expiration {
owner: <ADDRESS-UNLOCK>,
return_address: <RETURN ADDRESS>,
unix_time: <UNIX_TIME>
}
)
expiration: Option<Expiration>::Some(...
owner(obj metadata): hash(<ADDRESS UNLOCK>)
owner(obj metadata): hash(<ADDRESS UNLOCK>)
balance: Balance<IOTA>
balance: Balance<IOTA>
O
O
NT
NT
SDR
SDR
E
E
I
I
T
T
Shared stardust::basic::BasicOutput
Shared stardust::basic::BasicOutp...
NT
NT
SDR
SDR
E
E
I
I
T
T
Owned 0x2::coin::Coin<TokenType>
Owned 0x2::coi...
O
O
NT
NT
balance: Balance<TokenType>
balance: Balance<TokenType>
NT
NT
Move Field Types
Move Field Types
Text is not SVG - cannot display
\ No newline at end of file