Immutable after __constructor. No setter exists anywhere in the tree.
fn vid(env: soroban_sdk::Env) -> u32
fn admins(env: soroban_sdk::Env) -> soroban_sdk::Vec
fn paused(env: soroban_sdk::Env) -> bool
fn get_fee(
env: soroban_sdk::Env,
send_lib: soroban_sdk::Address,
sender: soroban_sdk::Address,
dst_eid: u32,
packet_header: soroban_sdk::Bytes,
payload_hash: soroban_sdk::BytesN<32>,
confirmations: u64,
options: soroban_sdk::Bytes,
) -> i128
Empty allowlist == permissionless. All five live Stellar DVNs run this way.
fn has_acl(env: soroban_sdk::Env, oapp: soroban_sdk::Address) -> bool
Runs migration logic after an upgrade.
fn migrate(env: soroban_sdk::Env, migration_data: soroban_sdk::Bytes)
Upgrades the contract to new WASM bytecode.
fn upgrade(env: soroban_sdk::Env, new_wasm_hash: soroban_sdk::BytesN<32>)
fn is_admin(env: soroban_sdk::Env, admin: soroban_sdk::Address) -> bool
fn upgrader(env: soroban_sdk::Env) -> Option
Checks if an address is a registered signer.
fn is_signer(env: soroban_sdk::Env, signer: soroban_sdk::BytesN<20>) -> bool
Routed through the set_admin arm of __check_auth, which SKIPS the
ed25519 admin leg (quorum-only admin recovery).
fn set_admin(env: soroban_sdk::Env, admin: soroban_sdk::Address, active: bool)
Returns the current signature threshold (quorum).
fn threshold(env: soroban_sdk::Env) -> u32
fn assign_job(
env: soroban_sdk::Env,
send_lib: soroban_sdk::Address,
sender: soroban_sdk::Address,
dst_eid: u32,
packet_header: soroban_sdk::Bytes,
payload_hash: soroban_sdk::BytesN<32>,
confirmations: u64,
options: soroban_sdk::Bytes,
) -> FeeRecipient
fn authorizer(env: soroban_sdk::Env) -> Option
fn dst_config(env: soroban_sdk::Env, dst_eid: u32) -> Option
fn price_feed(env: soroban_sdk::Env) -> Option
fn set_paused(env: soroban_sdk::Env, paused: bool)
Adds or removes a signer from the multisig. Requires owner authorization.
fn set_signer(env: soroban_sdk::Env, signer: soroban_sdk::BytesN<20>, active: bool)
Returns all registered signers.
fn get_signers(env: soroban_sdk::Env) -> soroban_sdk::Vec>
Returns the current TTL configs as (instance_config, persistent_config).
fn ttl_configs(env: soroban_sdk::Env) -> (Option, Option)
fn __check_auth(
env: soroban_sdk::Env,
signature_payload: soroban_sdk::BytesN<32>,
auth_data: TransactionAuthData,
auth_contexts: soroban_sdk::Vec,
) -> Result<(), soroban_sdk::Error>
fn message_libs(env: soroban_sdk::Env) -> soroban_sdk::Vec
fn set_denylist(env: soroban_sdk::Env, oapp: soroban_sdk::Address, denied: bool)
fn set_upgrader(env: soroban_sdk::Env, upgrader: Option)
fn __constructor(
env: soroban_sdk::Env,
vid: u32,
signers: soroban_sdk::Vec>,
threshold: u32,
admins: soroban_sdk::Vec,
supported_msglibs: soroban_sdk::Vec,
price_feed: soroban_sdk::Address,
default_multiplier_bps: u32,
worker_fee_lib: soroban_sdk::Address,
deposit_address: soroban_sdk::Address,
)
fn set_allowlist(env: soroban_sdk::Env, oapp: soroban_sdk::Address, allowed: bool)
Sets the signature threshold (quorum). Requires owner authorization.
fn set_threshold(env: soroban_sdk::Env, threshold: u32)
Returns the total number of registered signers.
fn total_signers(env: soroban_sdk::Env) -> u32
fn allowlist_size(env: soroban_sdk::Env) -> u32
The digest each secp256k1 signer signs RAW (no EIP-191 prefix): keccak256( u32BE vid || u64BE expiration || XDR(Vec<Call>) )
fn hash_call_data(
env: soroban_sdk::Env,
vid: u32,
expiration: u64,
calls: soroban_sdk::Vec,
) -> soroban_sdk::BytesN<32>
fn is_on_denylist(env: soroban_sdk::Env, oapp: soroban_sdk::Address) -> bool
require_admin_auth -- SINGLE ADMIN, NO QUORUM. This is the repricing /
pathway-denial key. Guard it as hard as the quorum keys.
fn set_dst_config(
env: soroban_sdk::Env,
admin: soroban_sdk::Address,
params: soroban_sdk::Vec,
)
fn set_price_feed(
env: soroban_sdk::Env,
admin: soroban_sdk::Address,
price_feed: soroban_sdk::Address,
)
fn worker_fee_lib(env: soroban_sdk::Env) -> Option
fn deposit_address(env: soroban_sdk::Env) -> Option
fn is_on_allowlist(env: soroban_sdk::Env, oapp: soroban_sdk::Address) -> bool
Sets TTL configs for instance and persistent storage.
None values remove the corresponding config (disables auto-extension for that type)threshold <= extend_to <= MAX_TTLinstance - TTL config for instance storagepersistent - TTL config for persistent storageTtlConfigFrozen if configs are frozenInvalidTtlConfig if validation failsfn set_ttl_configs(
env: soroban_sdk::Env,
instance: Option,
persistent: Option,
)
Verifies signatures against the configured threshold.
fn verify_signatures(
env: soroban_sdk::Env,
digest: soroban_sdk::BytesN<32>,
signatures: soroban_sdk::Vec>,
)
Permanently freezes TTL configs, preventing any future modifications.
This is irreversible and provides immutability guarantees to users.
Emits TtlConfigsFrozen event.
TtlConfigAlreadyFrozen if already frozenfn freeze_ttl_configs(env: soroban_sdk::Env)
Admin-only, no quorum, SELF-REPLICATING: one admin key can mint more admins.
fn set_admin_by_admin(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
admin: soroban_sdk::Address,
active: bool,
)
fn set_worker_fee_lib(
env: soroban_sdk::Env,
admin: soroban_sdk::Address,
worker_fee_lib: soroban_sdk::Address,
)
Executes an arbitrary batch of calls as the DVN itself.
#[only_auth] -> (multisig authorizer == self) ->
env.current_contract_address().require_auth() -> __check_auth.
HARD LIMIT: __check_auth accepts auth_contexts.len() == 1 (normal) or
== 3 (upgrade). A batch that produces 2 contexts hard-fails with
InvalidAuthContext, so no deeper nesting is possible.
fn execute_transaction(env: soroban_sdk::Env, calls: soroban_sdk::Vec)
Extends the instance TTL.
threshold - The threshold to extend the TTL (if current TTL is below this, extend).extend_to - The TTL to extend to.fn extend_instance_ttl(env: soroban_sdk::Env, threshold: u32, extend_to: u32)
fn set_deposit_address(
env: soroban_sdk::Env,
admin: soroban_sdk::Address,
deposit_address: soroban_sdk::Address,
)
Verifies signatures against a custom threshold.
fn verify_n_signatures(
env: soroban_sdk::Env,
digest: soroban_sdk::BytesN<32>,
signatures: soroban_sdk::Vec>,
threshold: u32,
)
Returns whether TTL configs are frozen.
fn is_ttl_configs_frozen(env: soroban_sdk::Env) -> bool
fn default_multiplier_bps(env: soroban_sdk::Env) -> u32
fn is_supported_message_lib(
env: soroban_sdk::Env,
message_lib: soroban_sdk::Address,
) -> bool
fn set_supported_message_lib(
env: soroban_sdk::Env,
message_lib: soroban_sdk::Address,
supported: bool,
)
fn get_supported_option_types(
env: soroban_sdk::Env,
eid: u32,
) -> Option
fn set_default_multiplier_bps(
env: soroban_sdk::Env,
admin: soroban_sdk::Address,
multiplier_bps: u32,
)
fn set_supported_option_types(
env: soroban_sdk::Env,
admin: soroban_sdk::Address,
eid: u32,
option_types: soroban_sdk::Bytes,
)