Contract f8a0c43cf07f2ecd6e372eede76aad6992fd86c647b4765deb76ce0a40853ac8

← Back to Index 📥 Download WASM

Meta

binver 0.1.0
rssdkver 27.0.4#3715435b643496244c9c22f0e7443b9c1f953ddb
rsver 1.96.0

Instances

  • CDQK7S4GKWTXIOUDC5MEHSPLI7ANRZLEXVWXOPJA4FSAGTLQATJNM2U6

Interface

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)
  • Validates that threshold <= extend_to <= MAX_TTL

Arguments

  • instance - TTL config for instance storage
  • persistent - TTL config for persistent storage

Panics

  • TtlConfigFrozen if configs are frozen
  • InvalidTtlConfig if validation fails
fn 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.

Panics

  • TtlConfigAlreadyFrozen if already frozen
fn 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.

Arguments

  • 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,
)

Imports

WebAssembly Text (WAT) ▶