export const vTokenAbi = [
{
name: 'VToken',
type: 'impl',
interface_name: 'vesu::v_token::IVToken',
},
{
name: 'core::integer::u256',
type: 'struct',
members: [
{
name: 'low',
type: 'core::integer::u128',
},
{
name: 'high',
type: 'core::integer::u128',
},
],
},
{
name: 'core::bool',
type: 'enum',
variants: [
{
name: 'False',
type: '()',
},
{
name: 'True',
type: '()',
},
],
},
{
name: 'vesu::v_token::IVToken',
type: 'interface',
items: [
{
name: 'extension',
type: 'function',
inputs: [],
outputs: [
{
type: 'core::starknet::contract_address::ContractAddress',
},
],
state_mutability: 'view',
},
{
name: 'approve_extension',
type: 'function',
inputs: [],
outputs: [],
state_mutability: 'external',
},
{
name: 'mint_v_token',
type: 'function',
inputs: [
{
name: 'recipient',
type: 'core::starknet::contract_address::ContractAddress',
},
{
name: 'amount',
type: 'core::integer::u256',
},
],
outputs: [
{
type: 'core::bool',
},
],
state_mutability: 'external',
},
{
name: 'burn_v_token',
type: 'function',
inputs: [
{
name: 'from',
type: 'core::starknet::contract_address::ContractAddress',
},
{
name: 'amount',
type: 'core::integer::u256',
},
],
outputs: [
{
type: 'core::bool',
},
],
state_mutability: 'external',
},
],
},
{
name: 'IERC4626',
type: 'impl',
interface_name: 'vesu::v_token::IERC4626',
},
{
name: 'vesu::v_token::IERC4626',
type: 'interface',
items: [
{
name: 'asset',
type: 'function',
inputs: [],
outputs: [
{
type: 'core::starknet::contract_address::ContractAddress',
},
],
state_mutability: 'view',
},
{
name: 'total_assets',
type: 'function',
inputs: [],
outputs: [
{
type: 'core::integer::u256',
},
],
state_mutability: 'view',
},
{
name: 'convert_to_shares',
type: 'function',
inputs: [
{
name: 'assets',
type: 'core::integer::u256',
},
],
outputs: [
{
type: 'core::integer::u256',
},
],
state_mutability: 'view',
},
{
name: 'convert_to_assets',
type: 'function',
inputs: [
{
name: 'shares',
type: 'core::integer::u256',
},
],
outputs: [
{
type: 'core::integer::u256',
},
],
state_mutability: 'view',
},
{
name: 'max_deposit',
type: 'function',
inputs: [
{
name: 'receiver',
type: 'core::starknet::contract_address::ContractAddress',
},
],
outputs: [
{
type: 'core::integer::u256',
},
],
state_mutability: 'view',
},
{
name: 'preview_deposit',
type: 'function',
inputs: [
{
name: 'assets',
type: 'core::integer::u256',
},
],
outputs: [
{
type: 'core::integer::u256',
},
],
state_mutability: 'view',
},
{
name: 'deposit',
type: 'function',
inputs: [
{
name: 'assets',
type: 'core::integer::u256',
},
{
name: 'receiver',
type: 'core::starknet::contract_address::ContractAddress',
},
],
outputs: [
{
type: 'core::integer::u256',
},
],
state_mutability: 'external',
},
{
name: 'max_mint',
type: 'function',
inputs: [
{
name: 'receiver',
type: 'core::starknet::contract_address::ContractAddress',
},
],
outputs: [
{
type: 'core::integer::u256',
},
],
state_mutability: 'view',
},
{
name: 'preview_mint',
type: 'function',
inputs: [
{
name: 'shares',
type: 'core::integer::u256',
},
],
outputs: [
{
type: 'core::integer::u256',
},
],
state_mutability: 'view',
},
{
name: 'mint',
type: 'function',
inputs: [
{
name: 'shares',
type: 'core::integer::u256',
},
{
name: 'receiver',
type: 'core::starknet::contract_address::ContractAddress',
},
],
outputs: [
{
type: 'core::integer::u256',
},
],
state_mutability: 'external',
},
{
name: 'max_withdraw',
type: 'function',
inputs: [
{
name: 'owner',
type: 'core::starknet::contract_address::ContractAddress',
},
],
outputs: [
{
type: 'core::integer::u256',
},
],
state_mutability: 'view',
},
{
name: 'preview_withdraw',
type: 'function',
inputs: [
{
name: 'assets',
type: 'core::integer::u256',
},
],
outputs: [
{
type: 'core::integer::u256',
},
],
state_mutability: 'view',
},
{
name: 'withdraw',
type: 'function',
inputs: [
{
name: 'assets',
type: 'core::integer::u256',
},
{
name: 'receiver',
type: 'core::starknet::contract_address::ContractAddress',
},
{
name: 'owner',
type: 'core::starknet::contract_address::ContractAddress',
},
],
outputs: [
{
type: 'core::integer::u256',
},
],
state_mutability: 'external',
},
{
name: 'max_redeem',
type: 'function',
inputs: [
{
name: 'owner',
type: 'core::starknet::contract_address::ContractAddress',
},
],
outputs: [
{
type: 'core::integer::u256',
},
],
state_mutability: 'view',
},
{
name: 'preview_redeem',
type: 'function',
inputs: [
{
name: 'shares',
type: 'core::integer::u256',
},
],
outputs: [
{
type: 'core::integer::u256',
},
],
state_mutability: 'view',
},
{
name: 'redeem',
type: 'function',
inputs: [
{
name: 'shares',
type: 'core::integer::u256',
},
{
name: 'receiver',
type: 'core::starknet::contract_address::ContractAddress',
},
{
name: 'owner',
type: 'core::starknet::contract_address::ContractAddress',
},
],
outputs: [
{
type: 'core::integer::u256',
},
],
state_mutability: 'external',
},
],
},
{
name: 'ERC20Impl',
type: 'impl',
interface_name: 'vesu::vendor::erc20::IERC20',
},
{
name: 'vesu::vendor::erc20::IERC20',
type: 'interface',
items: [
{
name: 'total_supply',
type: 'function',
inputs: [],
outputs: [
{
type: 'core::integer::u256',
},
],
state_mutability: 'view',
},
{
name: 'balance_of',
type: 'function',
inputs: [
{
name: 'account',
type: 'core::starknet::contract_address::ContractAddress',
},
],
outputs: [
{
type: 'core::integer::u256',
},
],
state_mutability: 'view',
},
{
name: 'allowance',
type: 'function',
inputs: [
{
name: 'owner',
type: 'core::starknet::contract_address::ContractAddress',
},
{
name: 'spender',
type: 'core::starknet::contract_address::ContractAddress',
},
],
outputs: [
{
type: 'core::integer::u256',
},
],
state_mutability: 'view',
},
{
name: 'transfer',
type: 'function',
inputs: [
{
name: 'recipient',
type: 'core::starknet::contract_address::ContractAddress',
},
{
name: 'amount',
type: 'core::integer::u256',
},
],
outputs: [
{
type: 'core::bool',
},
],
state_mutability: 'external',
},
{
name: 'transfer_from',
type: 'function',
inputs: [
{
name: 'sender',
type: 'core::starknet::contract_address::ContractAddress',
},
{
name: 'recipient',
type: 'core::starknet::contract_address::ContractAddress',
},
{
name: 'amount',
type: 'core::integer::u256',
},
],
outputs: [
{
type: 'core::bool',
},
],
state_mutability: 'external',
},
{
name: 'approve',
type: 'function',
inputs: [
{
name: 'spender',
type: 'core::starknet::contract_address::ContractAddress',
},
{
name: 'amount',
type: 'core::integer::u256',
},
],
outputs: [
{
type: 'core::bool',
},
],
state_mutability: 'external',
},
],
},
{
name: 'ERC20MetadataImpl',
type: 'impl',
interface_name: 'vesu::vendor::erc20::IERC20Metadata',
},
{
name: 'vesu::vendor::erc20::IERC20Metadata',
type: 'interface',
items: [
{
name: 'name',
type: 'function',
inputs: [],
outputs: [
{
type: 'core::felt252',
},
],
state_mutability: 'view',
},
{
name: 'symbol',
type: 'function',
inputs: [],
outputs: [
{
type: 'core::felt252',
},
],
state_mutability: 'view',
},
{
name: 'decimals',
type: 'function',
inputs: [],
outputs: [
{
type: 'core::integer::u8',
},
],
state_mutability: 'view',
},
],
},
{
name: 'ERC20CamelOnlyImpl',
type: 'impl',
interface_name: 'vesu::vendor::erc20::IERC20CamelOnly',
},
{
name: 'vesu::vendor::erc20::IERC20CamelOnly',
type: 'interface',
items: [
{
name: 'totalSupply',
type: 'function',
inputs: [],
outputs: [
{
type: 'core::integer::u256',
},
],
state_mutability: 'view',
},
{
name: 'balanceOf',
type: 'function',
inputs: [
{
name: 'account',
type: 'core::starknet::contract_address::ContractAddress',
},
],
outputs: [
{
type: 'core::integer::u256',
},
],
state_mutability: 'view',
},
{
name: 'transferFrom',
type: 'function',
inputs: [
{
name: 'sender',
type: 'core::starknet::contract_address::ContractAddress',
},
{
name: 'recipient',
type: 'core::starknet::contract_address::ContractAddress',
},
{
name: 'amount',
type: 'core::integer::u256',
},
],
outputs: [
{
type: 'core::bool',
},
],
state_mutability: 'external',
},
],
},
{
name: 'constructor',
type: 'constructor',
inputs: [
{
name: 'name',
type: 'core::felt252',
},
{
name: 'symbol',
type: 'core::felt252',
},
{
name: 'decimals',
type: 'core::integer::u8',
},
{
name: 'pool_id',
type: 'core::felt252',
},
{
name: 'extension',
type: 'core::starknet::contract_address::ContractAddress',
},
{
name: 'asset',
type: 'core::starknet::contract_address::ContractAddress',
},
],
},
{
kind: 'struct',
name: 'vesu::vendor::erc20_component::ERC20Component::Transfer',
type: 'event',
members: [
{
kind: 'key',
name: 'from',
type: 'core::starknet::contract_address::ContractAddress',
},
{
kind: 'key',
name: 'to',
type: 'core::starknet::contract_address::ContractAddress',
},
{
kind: 'data',
name: 'value',
type: 'core::integer::u256',
},
],
},
{
kind: 'struct',
name: 'vesu::vendor::erc20_component::ERC20Component::Approval',
type: 'event',
members: [
{
kind: 'key',
name: 'owner',
type: 'core::starknet::contract_address::ContractAddress',
},
{
kind: 'key',
name: 'spender',
type: 'core::starknet::contract_address::ContractAddress',
},
{
kind: 'data',
name: 'value',
type: 'core::integer::u256',
},
],
},
{
kind: 'enum',
name: 'vesu::vendor::erc20_component::ERC20Component::Event',
type: 'event',
variants: [
{
kind: 'nested',
name: 'Transfer',
type: 'vesu::vendor::erc20_component::ERC20Component::Transfer',
},
{
kind: 'nested',
name: 'Approval',
type: 'vesu::vendor::erc20_component::ERC20Component::Approval',
},
],
},
{
kind: 'struct',
name: 'vesu::v_token::VToken::Deposit',
type: 'event',
members: [
{
kind: 'key',
name: 'sender',
type: 'core::starknet::contract_address::ContractAddress',
},
{
kind: 'key',
name: 'owner',
type: 'core::starknet::contract_address::ContractAddress',
},
{
kind: 'data',
name: 'assets',
type: 'core::integer::u256',
},
{
kind: 'data',
name: 'shares',
type: 'core::integer::u256',
},
],
},
{
kind: 'struct',
name: 'vesu::v_token::VToken::Withdraw',
type: 'event',
members: [
{
kind: 'key',
name: 'sender',
type: 'core::starknet::contract_address::ContractAddress',
},
{
kind: 'key',
name: 'receiver',
type: 'core::starknet::contract_address::ContractAddress',
},
{
kind: 'key',
name: 'owner',
type: 'core::starknet::contract_address::ContractAddress',
},
{
kind: 'data',
name: 'assets',
type: 'core::integer::u256',
},
{
kind: 'data',
name: 'shares',
type: 'core::integer::u256',
},
],
},
{
kind: 'enum',
name: 'vesu::v_token::VToken::Event',
type: 'event',
variants: [
{
kind: 'flat',
name: 'ERC20Event',
type: 'vesu::vendor::erc20_component::ERC20Component::Event',
},
{
kind: 'nested',
name: 'Deposit',
type: 'vesu::v_token::VToken::Deposit',
},
{
kind: 'nested',
name: 'Withdraw',
type: 'vesu::v_token::VToken::Withdraw',
},
],
},
] as const;