Skip to main content

TransactionIntent

Enum TransactionIntent 

Source
pub enum TransactionIntent {
Show 57 variants Transfer { recipient: AccountId, recipient_pubkey: Option<Vec<u8>>, amount: u128, }, TransferToName { name: String, amount: u128, }, BatchTransfer { transfers: Vec<BatchTransferEntry>, }, BatchTransferToName { transfers: Vec<NameTransferEntry>, }, Claim { recipient: AccountId, recipient_pubkey: Option<Vec<u8>>, amount: u128, }, RotateKey { new_pubkey: Vec<u8>, }, DepositCompute { amount: u128, }, WithdrawCompute { amount: u128, }, WrapTRTH { amount: u128, }, UnwrapTRTH { amount: u128, }, Stake { amount: u128, }, Unstake { amount: u128, }, WithdrawStake, Unjail, MintNFT { nft_id: [u8; 32], name: String, metadata_uri: String, collection: Option<[u8; 32]>, royalty_bps: u16, royalty_recipient: Option<AccountId>, }, TransferNFT { nft_id: [u8; 32], recipient: AccountId, recipient_pubkey: Option<Vec<u8>>, sale_price: Option<u128>, }, BurnNFT { nft_id: [u8; 32], }, ApproveNFT { nft_id: [u8; 32], approved: Option<AccountId>, }, DeployCell { cell_id: AccountId, bytecode: Vec<u8>, initial_balance: u128, declared_reads: Vec<[u8; 32]>, declared_writes: Vec<[u8; 32]>, commutative_keys: Vec<[u8; 32]>, storage_key_specs: Vec<StorageKeySpec>, oracle_schema_ids: Vec<[u8; 32]>, }, DeployToken { cell_id: AccountId, name: String, symbol: String, decimals: u8, total_supply: u128, transfer_fee_bps: u16, transfer_fee_recipient: Option<AccountId>, non_transferable: bool, }, CallCell { cell_id: AccountId, calldata: Vec<u8>, value: u128, gas_limit: u64, }, CallCellChain { calls: Vec<CellCall>, gas_limit: u64, }, UpgradeCell { cell_id: AccountId, new_bytecode: Vec<u8>, new_declared_reads: Vec<[u8; 32]>, new_declared_writes: Vec<[u8; 32]>, new_commutative_keys: Vec<[u8; 32]>, new_storage_key_specs: Vec<StorageKeySpec>, new_oracle_schema_ids: Vec<[u8; 32]>, }, TransferOwnership { cell_id: AccountId, new_owner: AccountId, }, AcceptOwnership { cell_id: AccountId, }, MakeImmutable { cell_id: AccountId, }, CloseCell { cell_id: AccountId, }, ProposeCellUpgrade { cell_id: AccountId, new_bytecode: Vec<u8>, new_declared_reads: Vec<[u8; 32]>, new_declared_writes: Vec<[u8; 32]>, new_commutative_keys: Vec<[u8; 32]>, new_storage_key_specs: Vec<StorageKeySpec>, new_oracle_schema_ids: Vec<[u8; 32]>, timelock_blocks: u64, }, ProposeCellOwnershipTransfer { cell_id: AccountId, new_owner: AccountId, timelock_blocks: u64, }, ProposeCellMakeImmutable { cell_id: AccountId, timelock_blocks: u64, }, VoteCellProposal { cell_id: AccountId, approve: bool, }, ExecuteCellProposal { cell_id: AccountId, }, TokenTransfer { token_cell: AccountId, recipient: AccountId, amount: u128, }, TokenMint { token_cell: AccountId, recipient: AccountId, amount: u128, }, TokenBurn { token_cell: AccountId, amount: u128, }, TokenFreeze { token_cell: AccountId, account: AccountId, }, TokenThaw { token_cell: AccountId, account: AccountId, }, ProposeTokenAuthority { token_cell: AccountId, set_mint_authority: bool, new_mint_authority: AccountId, set_freeze_authority: bool, new_freeze_authority: AccountId, voting_period_blocks: u64, }, VoteTokenAuthority { token_cell: AccountId, approve: bool, }, CallSystem { controller: AccountId, calldata: Vec<u8>, }, ProposeUrl { url_pattern: String, bond_amount: u128, voting_period_blocks: u64, }, VoteUrl { url_pattern: String, approve: bool, }, ReportMaliciousUrl { url_pattern: String, evidence: String, }, SetCellVisibility { cell_id: AccountId, visibility: u8, }, RegisterMcpTool { tool_id: AccountId, bytecode: Vec<u8>, name: String, input_schema_json: Vec<u8>, category: u8, declared_reads: Vec<[u8; 32]>, declared_writes: Vec<[u8; 32]>, commutative_keys: Vec<[u8; 32]>, oracle_schema_ids: Vec<[u8; 32]>, registry_id: AccountId, }, RegisterMcpResource { resource_id: AccountId, bytecode: Vec<u8>, name: String, uri_scheme: String, mime_type: String, initial_data: Vec<(Vec<u8>, Vec<u8>)>, declared_reads: Vec<[u8; 32]>, declared_writes: Vec<[u8; 32]>, oracle_schema_ids: Vec<[u8; 32]>, registry_id: AccountId, }, RegisterMcpPrompt { prompt_id: AccountId, name: String, template_bytes: Vec<u8>, arguments: Vec<(String, String, bool)>, registry_id: AccountId, }, RegisterAgent { agent_id: AccountId, policy_cell_id: AccountId, agent_registry_id: AccountId, }, SuspendAgent { agent_id: AccountId, agent_registry_id: AccountId, reason: String, }, ReinstateAgent { agent_id: AccountId, agent_registry_id: AccountId, }, McpToolCall { agent_id: AccountId, tool_id: AccountId, tool_calldata: Vec<u8>, value: u128, gas_limit: u64, policy_cell_id: AccountId, action_log_id: Option<AccountId>, timestamp: u64, }, PrivateBalanceInit { cell_id: AccountId, agent_id: AccountId, encrypted_balance: Vec<u8>, commitment: [u8; 32], commit_nonce: [u8; 16], }, PrivateBalanceDeposit { cell_id: AccountId, agent_id: AccountId, amount: u128, new_encrypted_balance: Vec<u8>, new_commitment: [u8; 32], new_commit_nonce: [u8; 16], old_commitment: [u8; 32], }, PrivateBalanceWithdraw { cell_id: AccountId, agent_id: AccountId, amount: u128, recipient: AccountId, new_encrypted_balance: Vec<u8>, new_commitment: [u8; 32], new_commit_nonce: [u8; 16], old_commitment: [u8; 32], }, PrivateBalanceConfidentialTransfer {
Show 18 fields sender_cell_id: AccountId, sender_agent_id: AccountId, recipient_cell_id: AccountId, amount_commitment: [u8; 32], stark_proof: Vec<u8>, sender_new_encrypted: Vec<u8>, sender_new_commitment: [u8; 32], sender_new_commit_nonce: [u8; 16], sender_old_commitment: [u8; 32], recipient_new_encrypted: Vec<u8>, recipient_new_commitment: [u8; 32], recipient_new_commit_nonce: [u8; 16], recipient_old_commitment: [u8; 32], proof_sender_old_balance: u64, proof_sender_new_balance: u64, proof_recipient_old_balance: u64, proof_recipient_new_balance: u64, proof_amount: u64,
}, SubmitOracleCommit { request_id: [u8; 32], commit_hash: [u8; 32], }, SubmitOracleReveal { request_id: [u8; 32], response_body: Vec<u8>, response_status: u16, },
}

Variants§

§

Transfer

Fields

§recipient: AccountId
§recipient_pubkey: Option<Vec<u8>>

Omit for accounts already known on-chain (saves 1,952 bytes).

§amount: u128
§

TransferToName

Fields

§name: String
§amount: u128
§

BatchTransfer

Fields

§

BatchTransferToName

Fields

§

Claim

Fields

§recipient: AccountId
§recipient_pubkey: Option<Vec<u8>>

Omit for accounts already known on-chain (saves 1,952 bytes).

§amount: u128
§

RotateKey

Fields

§new_pubkey: Vec<u8>
§

DepositCompute

Fields

§amount: u128
§

WithdrawCompute

Fields

§amount: u128
§

WrapTRTH

Wrap TRTH into wTRTH (1:1). Deducts TRTH, mints wTRTH token balance.

Fields

§amount: u128
§

UnwrapTRTH

Unwrap wTRTH back to TRTH (1:1). Burns wTRTH token balance, credits TRTH.

Fields

§amount: u128
§

Stake

Fields

§amount: u128
§

Unstake

Fields

§amount: u128
§

WithdrawStake

§

Unjail

§

MintNFT

Fields

§nft_id: [u8; 32]
§name: String
§metadata_uri: String
§collection: Option<[u8; 32]>
§royalty_bps: u16
§royalty_recipient: Option<AccountId>
§

TransferNFT

Fields

§nft_id: [u8; 32]
§recipient: AccountId
§recipient_pubkey: Option<Vec<u8>>

Omit for accounts already known on-chain (saves 1,952 bytes).

§sale_price: Option<u128>
§

BurnNFT

Fields

§nft_id: [u8; 32]
§

ApproveNFT

Fields

§nft_id: [u8; 32]
§approved: Option<AccountId>
§

DeployCell

Fields

§cell_id: AccountId
§bytecode: Vec<u8>
§initial_balance: u128
§declared_reads: Vec<[u8; 32]>
§declared_writes: Vec<[u8; 32]>
§commutative_keys: Vec<[u8; 32]>
§storage_key_specs: Vec<StorageKeySpec>
§oracle_schema_ids: Vec<[u8; 32]>
§

DeployToken

Fields

§cell_id: AccountId
§name: String
§symbol: String
§decimals: u8
§total_supply: u128
§transfer_fee_bps: u16
§transfer_fee_recipient: Option<AccountId>
§non_transferable: bool
§

CallCell

Fields

§cell_id: AccountId
§calldata: Vec<u8>
§value: u128
§gas_limit: u64
§

CallCellChain

Fields

§calls: Vec<CellCall>
§gas_limit: u64
§

UpgradeCell

Fields

§cell_id: AccountId
§new_bytecode: Vec<u8>
§new_declared_reads: Vec<[u8; 32]>
§new_declared_writes: Vec<[u8; 32]>
§new_commutative_keys: Vec<[u8; 32]>
§new_storage_key_specs: Vec<StorageKeySpec>
§new_oracle_schema_ids: Vec<[u8; 32]>
§

TransferOwnership

Fields

§cell_id: AccountId
§new_owner: AccountId
§

AcceptOwnership

Fields

§cell_id: AccountId
§

MakeImmutable

Fields

§cell_id: AccountId
§

CloseCell

Fields

§cell_id: AccountId
§

ProposeCellUpgrade

Fields

§cell_id: AccountId
§new_bytecode: Vec<u8>
§new_declared_reads: Vec<[u8; 32]>
§new_declared_writes: Vec<[u8; 32]>
§new_commutative_keys: Vec<[u8; 32]>
§new_storage_key_specs: Vec<StorageKeySpec>
§new_oracle_schema_ids: Vec<[u8; 32]>
§timelock_blocks: u64
§

ProposeCellOwnershipTransfer

Fields

§cell_id: AccountId
§new_owner: AccountId
§timelock_blocks: u64
§

ProposeCellMakeImmutable

Fields

§cell_id: AccountId
§timelock_blocks: u64
§

VoteCellProposal

Fields

§cell_id: AccountId
§approve: bool
§

ExecuteCellProposal

Fields

§cell_id: AccountId
§

TokenTransfer

Fields

§token_cell: AccountId
§recipient: AccountId
§amount: u128
§

TokenMint

Fields

§token_cell: AccountId
§recipient: AccountId
§amount: u128
§

TokenBurn

Fields

§token_cell: AccountId
§amount: u128
§

TokenFreeze

Fields

§token_cell: AccountId
§account: AccountId
§

TokenThaw

Fields

§token_cell: AccountId
§account: AccountId
§

ProposeTokenAuthority

Fields

§token_cell: AccountId
§set_mint_authority: bool
§new_mint_authority: AccountId
§set_freeze_authority: bool
§new_freeze_authority: AccountId
§voting_period_blocks: u64
§

VoteTokenAuthority

Fields

§token_cell: AccountId
§approve: bool
§

CallSystem

Fields

§controller: AccountId
§calldata: Vec<u8>
§

ProposeUrl

Fields

§url_pattern: String
§bond_amount: u128
§voting_period_blocks: u64
§

VoteUrl

Fields

§url_pattern: String
§approve: bool
§

ReportMaliciousUrl

Fields

§url_pattern: String
§evidence: String
§

SetCellVisibility

Fields

§cell_id: AccountId
§visibility: u8
§

RegisterMcpTool

Fields

§tool_id: AccountId
§bytecode: Vec<u8>
§name: String
§input_schema_json: Vec<u8>
§category: u8
§declared_reads: Vec<[u8; 32]>
§declared_writes: Vec<[u8; 32]>
§commutative_keys: Vec<[u8; 32]>
§oracle_schema_ids: Vec<[u8; 32]>
§registry_id: AccountId
§

RegisterMcpResource

Fields

§resource_id: AccountId
§bytecode: Vec<u8>
§name: String
§uri_scheme: String
§mime_type: String
§initial_data: Vec<(Vec<u8>, Vec<u8>)>
§declared_reads: Vec<[u8; 32]>
§declared_writes: Vec<[u8; 32]>
§oracle_schema_ids: Vec<[u8; 32]>
§registry_id: AccountId
§

RegisterMcpPrompt

Fields

§prompt_id: AccountId
§name: String
§template_bytes: Vec<u8>
§arguments: Vec<(String, String, bool)>
§registry_id: AccountId
§

RegisterAgent

Fields

§agent_id: AccountId
§policy_cell_id: AccountId
§agent_registry_id: AccountId
§

SuspendAgent

Fields

§agent_id: AccountId
§agent_registry_id: AccountId
§reason: String
§

ReinstateAgent

Fields

§agent_id: AccountId
§agent_registry_id: AccountId
§

McpToolCall

Fields

§agent_id: AccountId
§tool_id: AccountId
§tool_calldata: Vec<u8>
§value: u128
§gas_limit: u64
§policy_cell_id: AccountId
§action_log_id: Option<AccountId>
§timestamp: u64
§

PrivateBalanceInit

Fields

§cell_id: AccountId
§agent_id: AccountId
§encrypted_balance: Vec<u8>
§commitment: [u8; 32]
§commit_nonce: [u8; 16]
§

PrivateBalanceDeposit

Fields

§cell_id: AccountId
§agent_id: AccountId
§amount: u128
§new_encrypted_balance: Vec<u8>
§new_commitment: [u8; 32]
§new_commit_nonce: [u8; 16]
§old_commitment: [u8; 32]
§

PrivateBalanceWithdraw

Fields

§cell_id: AccountId
§agent_id: AccountId
§amount: u128
§recipient: AccountId
§new_encrypted_balance: Vec<u8>
§new_commitment: [u8; 32]
§new_commit_nonce: [u8; 16]
§old_commitment: [u8; 32]
§

PrivateBalanceConfidentialTransfer

Fields

§sender_cell_id: AccountId
§sender_agent_id: AccountId
§recipient_cell_id: AccountId
§amount_commitment: [u8; 32]
§stark_proof: Vec<u8>
§sender_new_encrypted: Vec<u8>
§sender_new_commitment: [u8; 32]
§sender_new_commit_nonce: [u8; 16]
§sender_old_commitment: [u8; 32]
§recipient_new_encrypted: Vec<u8>
§recipient_new_commitment: [u8; 32]
§recipient_new_commit_nonce: [u8; 16]
§recipient_old_commitment: [u8; 32]
§proof_sender_old_balance: u64
§proof_sender_new_balance: u64
§proof_recipient_old_balance: u64
§proof_recipient_new_balance: u64
§proof_amount: u64
§

SubmitOracleCommit

Fields

§request_id: [u8; 32]
§commit_hash: [u8; 32]
§

SubmitOracleReveal

Fields

§request_id: [u8; 32]
§response_body: Vec<u8>
§response_status: u16

Implementations§

Trait Implementations§

Source§

impl Clone for TransactionIntent

Source§

fn clone(&self) -> TransactionIntent

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for TransactionIntent

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for TransactionIntent

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Serialize for TransactionIntent

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V