Contract b6f291b07430a8bdfc86f178d71b2759ad3b13e76b1f0232969f914103f432d0

← Back to Index 📥 Download WASM

Meta

Description VC Vault: Verifiable Credential storage + issuance status registry
rssdkver 23.5.2#347f71141ddf69ef1873527c94ac98e79215f125
rsver 1.89.0

Instances

  • CDRHTM7BFSYGULYNIIMI43RAYAQ6PRZLX2HWMXJ7K4R7QM55NAKNPOW4

Interface

fn initialize(env: soroban_sdk::Env, contract_admin: soroban_sdk::Address)

Nominate a new contract admin. Current admin must sign. The nominee must call accept_contract_admin to complete the transfer.

fn nominate_admin(env: soroban_sdk::Env, new_admin: soroban_sdk::Address)

Accept a pending admin nomination. Nominee must sign.

fn accept_contract_admin(env: soroban_sdk::Env)

Configure fee: token, destination, amount. Admin only.

fn set_fee_config(
    env: soroban_sdk::Env,
    token_contract: soroban_sdk::Address,
    fee_dest: soroban_sdk::Address,
    fee_amount: i128,
)

Enable or disable fee charging on issue. Admin only.

fn set_fee_enabled(env: soroban_sdk::Env, enabled: bool)
fn set_fee_admin(env: soroban_sdk::Env, fee_amount: i128)
fn set_fee_standard(env: soroban_sdk::Env, fee_amount: i128)
fn set_fee_early(env: soroban_sdk::Env, fee_amount: i128)
fn set_fee_custom(
    env: soroban_sdk::Env,
    issuer: soroban_sdk::Address,
    fee_amount: i128,
)
fn get_fee_admin(env: soroban_sdk::Env) -> i128
fn get_fee_standard(env: soroban_sdk::Env) -> i128
fn get_fee_early(env: soroban_sdk::Env) -> i128
fn get_fee_custom(env: soroban_sdk::Env, issuer: soroban_sdk::Address) -> i128

Upgrade contract WASM. Admin only.

fn upgrade(env: soroban_sdk::Env, new_wasm_hash: soroban_sdk::BytesN<32>)
fn version(env: soroban_sdk::Env) -> soroban_sdk::String
fn fee_config(env: soroban_sdk::Env) -> FeeConfig
fn create_vault(
    env: soroban_sdk::Env,
    owner: soroban_sdk::Address,
    did_uri: soroban_sdk::String,
)

Set vault admin. Current vault admin must sign.

fn set_vault_admin(
    env: soroban_sdk::Env,
    owner: soroban_sdk::Address,
    new_admin: soroban_sdk::Address,
)

Replace full issuer list. Vault admin only.

fn authorize_issuers(
    env: soroban_sdk::Env,
    owner: soroban_sdk::Address,
    issuers: soroban_sdk::Vec,
)

Add single issuer. Vault admin only.

fn authorize_issuer(
    env: soroban_sdk::Env,
    owner: soroban_sdk::Address,
    issuer_addr: soroban_sdk::Address,
)

Remove issuer from list. Vault admin only.

fn revoke_issuer(
    env: soroban_sdk::Env,
    owner: soroban_sdk::Address,
    issuer_addr: soroban_sdk::Address,
)

Revoke vault. Blocks all writes. Vault admin only.

fn revoke_vault(env: soroban_sdk::Env, owner: soroban_sdk::Address)

List VC IDs in owner's vault.

fn list_vc_ids(
    env: soroban_sdk::Env,
    owner: soroban_sdk::Address,
) -> soroban_sdk::Vec

Get VC payload by ID. Returns None if not found.

fn get_vc(
    env: soroban_sdk::Env,
    owner: soroban_sdk::Address,
    vc_id: soroban_sdk::String,
) -> Option

Verify VC status. Returns VCStatus::Valid, VCStatus::Revoked(date), or VCStatus::Invalid.

fn verify_vc(
    env: soroban_sdk::Env,
    owner: soroban_sdk::Address,
    vc_id: soroban_sdk::String,
) -> VCStatus

Moves a Valid VC from one vault to another; source owner and an authorized issuer must sign.

fn push(
    env: soroban_sdk::Env,
    from_owner: soroban_sdk::Address,
    to_owner: soroban_sdk::Address,
    vc_id: soroban_sdk::String,
    issuer_addr: soroban_sdk::Address,
)

Issues a VC into the owner's vault; auto-authorizes the issuer if not already present.

fn issue(
    env: soroban_sdk::Env,
    owner: soroban_sdk::Address,
    vc_id: soroban_sdk::String,
    vc_data: soroban_sdk::String,
    vault_contract: soroban_sdk::Address,
    issuer_addr: soroban_sdk::Address,
    issuer_did: soroban_sdk::String,
    fee_override: i128,
) -> soroban_sdk::String

Revoke VC. Owner must sign.

fn revoke(
    env: soroban_sdk::Env,
    owner: soroban_sdk::Address,
    vc_id: soroban_sdk::String,
    date: soroban_sdk::String,
)

Creates a vault on behalf of owner; sponsor must sign and be authorized unless open_to_all is enabled.

fn create_sponsored_vault(
    env: soroban_sdk::Env,
    sponsor: soroban_sdk::Address,
    owner: soroban_sdk::Address,
    did_uri: soroban_sdk::String,
)

Sets whether sponsored vault creation is restricted to authorized sponsors or open to all. Admin only.

fn set_sponsored_vault_open_to_all(env: soroban_sdk::Env, open: bool)

Query whether sponsored vault creation is open to all.

fn get_sponsored_vault_open_to_all(env: soroban_sdk::Env) -> bool

Add an address to the authorized sponsors list. Admin only.

fn add_sponsored_vault_sponsor(env: soroban_sdk::Env, sponsor: soroban_sdk::Address)

Remove an address from the authorized sponsors list. Admin only.

fn remove_sponsored_vault_sponsor(env: soroban_sdk::Env, sponsor: soroban_sdk::Address)

Migrate legacy vault VCs from old storage format to current format. Vault admin must sign.

fn migrate(env: soroban_sdk::Env, owner: soroban_sdk::Address)

Imports

WebAssembly Text (WAT) ▶