Integration
Before you read on, make sure you have already read the smart contract docs, where the role of each smart contract is explained.
note
This page is a work-in-progress.
Contract interfaces
This section lists relevant contract entrypoints for integration purposes.
note
This section is a work-in-progress. Individual entrypoints and parameters will be documented soon.
Market
contract
IMarket.cairo
%lang starknet
struct ReserveData {
enabled: felt,
decimals: felt,
z_token_address: felt,
interest_rate_model: felt,
collateral_factor: felt,
borrow_factor: felt,
reserve_factor: felt,
last_update_timestamp: felt,
lending_accumulator: felt,
debt_accumulator: felt,
current_lending_rate: felt,
current_borrowing_rate: felt,
raw_total_debt: felt,
flash_loan_fee: felt,
liquidation_bonus: felt,
}
namespace IMarket {
//
// @view entrypoints
//
func get_reserve_data(token: felt) -> (data: ReserveData) {
}
func get_lending_accumulator(token: felt) -> (res: felt) {
}
func get_debt_accumulator(token: felt) -> (res: felt) {
}
func get_pending_treasury_amount(token: felt) -> (res: felt) {
}
func get_total_debt_for_token(token: felt) -> (debt: felt) {
}
func get_user_debt_for_token(user: felt, token: felt) -> (debt: felt) {
}
func get_user_flags(user: felt) -> (map: felt) {
}
func is_user_undercollateralized(user: felt, apply_borrow_factor: felt) -> (
is_undercollateralized: felt
) {
}
func is_collateral_enabled(user: felt, token: felt) -> (enabled: felt) {
}
func user_has_debt(user: felt) -> (has_debt: felt) {
}
//
// @external entrypoints
//
func deposit(token: felt, amount: felt) {
}
func withdraw(token: felt, amount: felt) {
}
func withdraw_all(token: felt) {
}
func borrow(token: felt, amount: felt) {
}
func repay(token: felt, amount: felt) {
}
func repay_all(token: felt) {
}
func enable_collateral(token: felt) {
}
func disable_collateral(token: felt) {
}
func liquidate(user: felt, debt_token: felt, amount: felt, collateral_token: felt) {
}
}
ZToken
contract
IZToken.cairo
%lang starknet
from starkware.cairo.common.uint256 import Uint256
namespace IZToken {
//
// @view entrypoints
//
func name() -> (name: felt) {
}
func symbol() -> (symbol: felt) {
}
func decimals() -> (decimals: felt) {
}
func totalSupply() -> (total_supply: Uint256) {
}
func felt_total_supply() -> (total_supply: felt) {
}
func balanceOf(account: felt) -> (balance: Uint256) {
}
func felt_balance_of(account: felt) -> (balance: felt) {
}
func allowance(owner: felt, spender: felt) -> (remaining: Uint256) {
}
func felt_allowance(owner: felt, spender: felt) -> (remaining: felt) {
}
func underlying_token() -> (token: felt) {
}
func get_raw_total_supply() -> (raw_supply: felt) {
}
//
// @external entrypoints
//
func transfer(recipient: felt, amount: Uint256) -> (success: felt) {
}
func felt_transfer(recipient: felt, amount: felt) -> (success: felt) {
}
func transferFrom(sender: felt, recipient: felt, amount: Uint256) -> (success: felt) {
}
func felt_transfer_from(sender: felt, recipient: felt, amount: felt) -> (success: felt) {
}
func approve(spender: felt, amount: Uint256) -> (success: felt) {
}
func felt_approve(spender: felt, amount: felt) -> (success: felt) {
}
func transfer_all(recipient: felt) {
}
}
Contract addresses
This section lists contracts deployed for each environment. Developers are advised to build and test their applications before actually deploying
Testnet
Name | Contract | Address |
---|---|---|
Market | Market | 0x010fe9d5af7a51945d67e72167b57a856736a792b873407363f8ff81244c4bbb |
zETH Token | ZToken | 0x0493010f97914013ab2e17b12bfbfad2f5e104b6dd8f68c18952d5d1cd62d1d4 |
zUSDC Token | ZToken | 0x05750d137cf618f1f6cdc1196105876ff391f09828cd253e63361d05477bc5b9 |
zWBTC Token | ZToken | 0x078b7cee3cd62e2fbc843b17b141d175f58accc3a07d342859c9dce028ef91d6 |
zUSDT Token | ZToken | 0x02b6d43887e85bc679de7d7de2ff3b4648d7188ec0b4d8bcf98df49b1b45744f |
zDAI Token | ZToken | 0x00a4ba9f677d49c58469d1ff6afa36bc6a927d24dcfd91c71fe3ae3ed74901dd |