@atomiqlabs/chain-starknet
Version:
Starknet specific base implementation
489 lines (488 loc) • 17.4 kB
TypeScript
export declare const SpvVaultContractAbi: readonly [{
readonly type: "impl";
readonly name: "SpvVaultManagerImpl";
readonly interface_name: "spv_swap_vault::ISpvVaultManager";
}, {
readonly type: "struct";
readonly name: "core::integer::u256";
readonly members: readonly [{
readonly name: "low";
readonly type: "core::integer::u128";
}, {
readonly name: "high";
readonly type: "core::integer::u128";
}];
}, {
readonly type: "struct";
readonly name: "spv_swap_vault::structs::BitcoinVaultTransactionData";
readonly members: readonly [{
readonly name: "recipient";
readonly type: "core::starknet::contract_address::ContractAddress";
}, {
readonly name: "amount";
readonly type: "(core::integer::u64, core::integer::u64)";
}, {
readonly name: "caller_fee";
readonly type: "(core::integer::u64, core::integer::u64)";
}, {
readonly name: "fronting_fee";
readonly type: "(core::integer::u64, core::integer::u64)";
}, {
readonly name: "execution_handler_fee_amount_0";
readonly type: "core::integer::u64";
}, {
readonly name: "execution_hash";
readonly type: "core::felt252";
}, {
readonly name: "execution_expiry";
readonly type: "core::integer::u32";
}];
}, {
readonly type: "struct";
readonly name: "core::byte_array::ByteArray";
readonly members: readonly [{
readonly name: "data";
readonly type: "core::array::Array::<core::bytes_31::bytes31>";
}, {
readonly name: "pending_word";
readonly type: "core::felt252";
}, {
readonly name: "pending_word_len";
readonly type: "core::integer::u32";
}];
}, {
readonly type: "struct";
readonly name: "btc_relay::structs::blockheader::BlockHeader";
readonly members: readonly [{
readonly name: "reversed_version";
readonly type: "core::integer::u32";
}, {
readonly name: "previous_blockhash";
readonly type: "[core::integer::u32; 8]";
}, {
readonly name: "merkle_root";
readonly type: "[core::integer::u32; 8]";
}, {
readonly name: "reversed_timestamp";
readonly type: "core::integer::u32";
}, {
readonly name: "nbits";
readonly type: "core::integer::u32";
}, {
readonly name: "nonce";
readonly type: "core::integer::u32";
}];
}, {
readonly type: "struct";
readonly name: "btc_relay::structs::stored_blockheader::StoredBlockHeader";
readonly members: readonly [{
readonly name: "blockheader";
readonly type: "btc_relay::structs::blockheader::BlockHeader";
}, {
readonly name: "block_hash";
readonly type: "[core::integer::u32; 8]";
}, {
readonly name: "chain_work";
readonly type: "core::integer::u256";
}, {
readonly name: "block_height";
readonly type: "core::integer::u32";
}, {
readonly name: "last_diff_adjustment";
readonly type: "core::integer::u32";
}, {
readonly name: "prev_block_timestamps";
readonly type: "[core::integer::u32; 10]";
}];
}, {
readonly type: "struct";
readonly name: "core::array::Span::<[core::integer::u32; 8]>";
readonly members: readonly [{
readonly name: "snapshot";
readonly type: "@core::array::Array::<[core::integer::u32; 8]>";
}];
}, {
readonly type: "interface";
readonly name: "spv_swap_vault::ISpvVaultManager";
readonly items: readonly [{
readonly type: "function";
readonly name: "open";
readonly inputs: readonly [{
readonly name: "vault_id";
readonly type: "core::felt252";
}, {
readonly name: "relay_contract";
readonly type: "core::starknet::contract_address::ContractAddress";
}, {
readonly name: "utxo";
readonly type: "(core::integer::u256, core::integer::u32)";
}, {
readonly name: "confirmations";
readonly type: "core::integer::u8";
}, {
readonly name: "token_0";
readonly type: "core::starknet::contract_address::ContractAddress";
}, {
readonly name: "token_1";
readonly type: "core::starknet::contract_address::ContractAddress";
}, {
readonly name: "token_0_multiplier";
readonly type: "core::felt252";
}, {
readonly name: "token_1_multiplier";
readonly type: "core::felt252";
}];
readonly outputs: readonly [];
readonly state_mutability: "external";
}, {
readonly type: "function";
readonly name: "deposit";
readonly inputs: readonly [{
readonly name: "owner";
readonly type: "core::starknet::contract_address::ContractAddress";
}, {
readonly name: "vault_id";
readonly type: "core::felt252";
}, {
readonly name: "raw_token_0_amount";
readonly type: "core::integer::u64";
}, {
readonly name: "raw_token_1_amount";
readonly type: "core::integer::u64";
}];
readonly outputs: readonly [];
readonly state_mutability: "external";
}, {
readonly type: "function";
readonly name: "front";
readonly inputs: readonly [{
readonly name: "owner";
readonly type: "core::starknet::contract_address::ContractAddress";
}, {
readonly name: "vault_id";
readonly type: "core::felt252";
}, {
readonly name: "withdraw_sequence";
readonly type: "core::integer::u32";
}, {
readonly name: "btc_tx_hash";
readonly type: "core::integer::u256";
}, {
readonly name: "data";
readonly type: "spv_swap_vault::structs::BitcoinVaultTransactionData";
}];
readonly outputs: readonly [];
readonly state_mutability: "external";
}, {
readonly type: "function";
readonly name: "claim";
readonly inputs: readonly [{
readonly name: "owner";
readonly type: "core::starknet::contract_address::ContractAddress";
}, {
readonly name: "vault_id";
readonly type: "core::felt252";
}, {
readonly name: "transaction";
readonly type: "core::byte_array::ByteArray";
}, {
readonly name: "blockheader";
readonly type: "btc_relay::structs::stored_blockheader::StoredBlockHeader";
}, {
readonly name: "merkle_proof";
readonly type: "core::array::Span::<[core::integer::u32; 8]>";
}, {
readonly name: "position";
readonly type: "core::integer::u32";
}];
readonly outputs: readonly [];
readonly state_mutability: "external";
}];
}, {
readonly type: "impl";
readonly name: "SpvVaultManagerReadOnlyImpl";
readonly interface_name: "spv_swap_vault::ISpvVaultManagerReadOnly";
}, {
readonly type: "struct";
readonly name: "spv_swap_vault::state::SpvVaultState";
readonly members: readonly [{
readonly name: "relay_contract";
readonly type: "core::starknet::contract_address::ContractAddress";
}, {
readonly name: "token_0";
readonly type: "core::starknet::contract_address::ContractAddress";
}, {
readonly name: "token_1";
readonly type: "core::starknet::contract_address::ContractAddress";
}, {
readonly name: "token_0_multiplier";
readonly type: "core::felt252";
}, {
readonly name: "token_1_multiplier";
readonly type: "core::felt252";
}, {
readonly name: "utxo";
readonly type: "(core::integer::u256, core::integer::u32)";
}, {
readonly name: "confirmations";
readonly type: "core::integer::u8";
}, {
readonly name: "withdraw_count";
readonly type: "core::integer::u32";
}, {
readonly name: "deposit_count";
readonly type: "core::integer::u32";
}, {
readonly name: "token_0_amount";
readonly type: "core::integer::u64";
}, {
readonly name: "token_1_amount";
readonly type: "core::integer::u64";
}];
}, {
readonly type: "enum";
readonly name: "core::option::Option::<spv_swap_vault::structs::BitcoinVaultTransactionData>";
readonly variants: readonly [{
readonly name: "Some";
readonly type: "spv_swap_vault::structs::BitcoinVaultTransactionData";
}, {
readonly name: "None";
readonly type: "()";
}];
}, {
readonly type: "interface";
readonly name: "spv_swap_vault::ISpvVaultManagerReadOnly";
readonly items: readonly [{
readonly type: "function";
readonly name: "get_vault";
readonly inputs: readonly [{
readonly name: "owner";
readonly type: "core::starknet::contract_address::ContractAddress";
}, {
readonly name: "vault_id";
readonly type: "core::felt252";
}];
readonly outputs: readonly [{
readonly type: "spv_swap_vault::state::SpvVaultState";
}];
readonly state_mutability: "view";
}, {
readonly type: "function";
readonly name: "get_fronter_address";
readonly inputs: readonly [{
readonly name: "owner";
readonly type: "core::starknet::contract_address::ContractAddress";
}, {
readonly name: "vault_id";
readonly type: "core::felt252";
}, {
readonly name: "btc_tx_hash";
readonly type: "core::integer::u256";
}, {
readonly name: "data";
readonly type: "spv_swap_vault::structs::BitcoinVaultTransactionData";
}];
readonly outputs: readonly [{
readonly type: "core::starknet::contract_address::ContractAddress";
}];
readonly state_mutability: "view";
}, {
readonly type: "function";
readonly name: "get_fronter_address_by_id";
readonly inputs: readonly [{
readonly name: "owner";
readonly type: "core::starknet::contract_address::ContractAddress";
}, {
readonly name: "vault_id";
readonly type: "core::felt252";
}, {
readonly name: "fronting_id";
readonly type: "core::felt252";
}];
readonly outputs: readonly [{
readonly type: "core::starknet::contract_address::ContractAddress";
}];
readonly state_mutability: "view";
}, {
readonly type: "function";
readonly name: "parse_bitcoin_tx";
readonly inputs: readonly [{
readonly name: "transaction";
readonly type: "core::byte_array::ByteArray";
}];
readonly outputs: readonly [{
readonly type: "core::option::Option::<spv_swap_vault::structs::BitcoinVaultTransactionData>";
}];
readonly state_mutability: "view";
}];
}, {
readonly type: "constructor";
readonly name: "constructor";
readonly inputs: readonly [{
readonly name: "execution_contract";
readonly type: "core::starknet::contract_address::ContractAddress";
}];
}, {
readonly type: "event";
readonly name: "spv_swap_vault::events::Opened";
readonly kind: "struct";
readonly members: readonly [{
readonly name: "btc_tx_hash";
readonly type: "core::integer::u256";
readonly kind: "key";
}, {
readonly name: "owner";
readonly type: "core::starknet::contract_address::ContractAddress";
readonly kind: "key";
}, {
readonly name: "vault_id";
readonly type: "core::felt252";
readonly kind: "key";
}, {
readonly name: "vout";
readonly type: "core::integer::u32";
readonly kind: "key";
}];
}, {
readonly type: "event";
readonly name: "spv_swap_vault::events::Deposited";
readonly kind: "struct";
readonly members: readonly [{
readonly name: "owner";
readonly type: "core::starknet::contract_address::ContractAddress";
readonly kind: "key";
}, {
readonly name: "vault_id";
readonly type: "core::felt252";
readonly kind: "key";
}, {
readonly name: "amounts";
readonly type: "(core::integer::u64, core::integer::u64)";
readonly kind: "data";
}, {
readonly name: "deposit_count";
readonly type: "core::integer::u32";
readonly kind: "data";
}];
}, {
readonly type: "event";
readonly name: "spv_swap_vault::events::Claimed";
readonly kind: "struct";
readonly members: readonly [{
readonly name: "btc_tx_hash";
readonly type: "core::integer::u256";
readonly kind: "key";
}, {
readonly name: "owner";
readonly type: "core::starknet::contract_address::ContractAddress";
readonly kind: "key";
}, {
readonly name: "vault_id";
readonly type: "core::felt252";
readonly kind: "key";
}, {
readonly name: "recipient";
readonly type: "core::starknet::contract_address::ContractAddress";
readonly kind: "key";
}, {
readonly name: "execution_hash";
readonly type: "core::felt252";
readonly kind: "key";
}, {
readonly name: "caller";
readonly type: "core::starknet::contract_address::ContractAddress";
readonly kind: "key";
}, {
readonly name: "amounts";
readonly type: "(core::integer::u64, core::integer::u64)";
readonly kind: "data";
}, {
readonly name: "withdraw_count";
readonly type: "core::integer::u32";
readonly kind: "data";
}, {
readonly name: "fronting_address";
readonly type: "core::starknet::contract_address::ContractAddress";
readonly kind: "data";
}];
}, {
readonly type: "event";
readonly name: "spv_swap_vault::events::Fronted";
readonly kind: "struct";
readonly members: readonly [{
readonly name: "btc_tx_hash";
readonly type: "core::integer::u256";
readonly kind: "key";
}, {
readonly name: "owner";
readonly type: "core::starknet::contract_address::ContractAddress";
readonly kind: "key";
}, {
readonly name: "vault_id";
readonly type: "core::felt252";
readonly kind: "key";
}, {
readonly name: "recipient";
readonly type: "core::starknet::contract_address::ContractAddress";
readonly kind: "key";
}, {
readonly name: "execution_hash";
readonly type: "core::felt252";
readonly kind: "key";
}, {
readonly name: "caller";
readonly type: "core::starknet::contract_address::ContractAddress";
readonly kind: "key";
}, {
readonly name: "amounts";
readonly type: "(core::integer::u64, core::integer::u64)";
readonly kind: "data";
}];
}, {
readonly type: "event";
readonly name: "spv_swap_vault::events::Closed";
readonly kind: "struct";
readonly members: readonly [{
readonly name: "btc_tx_hash";
readonly type: "core::integer::u256";
readonly kind: "key";
}, {
readonly name: "owner";
readonly type: "core::starknet::contract_address::ContractAddress";
readonly kind: "key";
}, {
readonly name: "vault_id";
readonly type: "core::felt252";
readonly kind: "key";
}, {
readonly name: "error";
readonly type: "core::felt252";
readonly kind: "data";
}];
}, {
readonly type: "event";
readonly name: "spv_swap_vault::SpvVaultManager::Event";
readonly kind: "enum";
readonly variants: readonly [{
readonly name: "Opened";
readonly type: "spv_swap_vault::events::Opened";
readonly kind: "nested";
}, {
readonly name: "Deposited";
readonly type: "spv_swap_vault::events::Deposited";
readonly kind: "nested";
}, {
readonly name: "Claimed";
readonly type: "spv_swap_vault::events::Claimed";
readonly kind: "nested";
}, {
readonly name: "Fronted";
readonly type: "spv_swap_vault::events::Fronted";
readonly kind: "nested";
}, {
readonly name: "Closed";
readonly type: "spv_swap_vault::events::Closed";
readonly kind: "nested";
}];
}];
export type SpvVaultContractAbiType = typeof SpvVaultContractAbi;