The SoroswapFactory contract
Creates one Liquidity Pool Token smart contract per unique token pair.
In the next chapter we will see, step-by-step how to experiment with this contract using the soroban CLI.
Here is the contract interface:
pub trait SoroswapFactoryTrait{ // Sets the fee_to_setter address and sets the pair_wasm_hash to create new pair contracts fn initialize(e: Env, setter: Address, pair_wasm_hash: BytesN<32>); /* *** Read only functions: *** */ // feeTo is the recipient of the charge. // function feeTo() external view returns (address); fn fee_to(e: Env) -> BytesN<32>; // The address allowed to change feeTo. // function feeToSetter() external view returns (address); fn fee_to_setter(e: Env) -> Address; // Returns the total number of pairs created through the factory so far. // function allPairsLength() external view returns (uint); fn all_pairs_length(e: Env) -> u32; // Returns the address of the pair for token_a and token_b, if it has been created, else address(0) // function getPair(address token_a, address token_b) external view returns (address pair); fn get_pair(e: Env, token_a: BytesN<32>, token_b: BytesN<32>) -> BytesN<32> ; // Returns the address of the nth pair (0-indexed) created through the factory, or address(0) if not enough pairs have been created yet. // function allPairs(uint) external view returns (address pair); fn all_pairs(e: Env, n: u32) -> BytesN<32>; // Returns a bool if a pair exists; fn pair_exists(e: Env, token_a: BytesN<32>, token_b: BytesN<32>) -> bool; /* *** State-Changing Functions: *** */ // function setFeeTo(address) external; fn set_fee_to(e: Env, to: BytesN<32>); // function setFeeToSetter(address) external; fn set_fee_to_setter(e: Env, new_setter: Address); //Creates a pair for token_a and token_b if one doesn't exist already. // function createPair(address token_a, address token_b) external returns (address pair); fn create_pair(e: Env, token_a: BytesN<32>, token_b: BytesN<32>) -> BytesN<32>; }
Top comments (0)