Parameter | Description |
---|---|
token_addr | Ethereum address of an ERC20 Token |
# Can only be called by factory contract during createExchange()setup(token_addr: address):
// Can only be called by factory contract during createExchange()exchangeContract.methods.setup((token: String)).send()
Parameter | Type | Description |
---|---|---|
msg.value | uint256 | Amount of ETH added |
min_liquidity | uint256 | Minimum minted liquidity |
max_tokens | uint256 | Maximum ERC20 tokens added |
deadline | uint256 | Transaction deadline |
Returns | |
---|---|
uint256 | Amount of liquidity tokens minted |
@payableaddLiquidity(min_liquidity: uint256,max_tokens: uint256,deadline: uint256): uint256
exchangeContract.methods.addLiquidity(min_liquidity, max_tokens, deadline).send({ value: ethValue })
Parameter | Type | Description |
---|---|---|
amount | uint256 | Amount of liquidity burned |
min_eth | uint256 | Minimum ETH removed |
min_tokens | uint256 | Minimum ERC20 tokens removed |
deadline | uint256 | Transaction deadline |
Returns | |
---|---|
uint256 | Amount of ETH removed |
uint256 | Amount of ERC20 tokens removed. |
removeLiquidity(amount: uint256;min_eth: uint256,min_tokens: uint256,deadline: uint256): (uint256, uint256)
exchangeContract.methods.removeLiquidity(amount, min_eth, min_tokens, deadline).send()
Parameter | Type | Description |
---|---|---|
msg.value | uint256 | Amount of ETH sold |
# Default function in Vyper replaces the "fallback" function in Solidity@payable__default__():
web3.eth.sendTransaction({ value: ethAmount })
Parameter | Type | Description |
---|---|---|
msg.value | uint256 | Amount of ETH sold |
min_tokens | uint256 | Minimum ERC20 tokens bought |
deadline | uint256 | Transaction deadline |
Returns | |
---|---|
uint256 | Amount of ERC20 tokens bought |
@payableethToTokenSwapInput(min_tokens: uint256,deadline: uint256): uint256
exchangeContract.methods.ethToTokenSwapInput(min_liquidity, max_tokens, deadline).send({ value: ethValue })
Parameter | Type | Description |
---|---|---|
msg.value | uint256 | Amount of ETH sold |
min_tokens | uint256 | Minimum ERC20 tokens bought |
deadline | uint256 | Transaction deadline |
recipient | address | Address that receives ERC20 tokens |
Returns | |
---|---|
uint256 | Amount of ERC20 tokens bought |
@payableethToTokenTransferInput(min_tokens: uint256,deadline: uint256,recipient: address): uint256
exchangeContract.methods.ethToTokenTransferInput(min_liquidity, max_tokens, deadline, recipient).send({ value: ethValue })
Parameter | Type | Description |
---|---|---|
msg.value | uint256 | Maximum ETH sold |
tokens_bought | uint256 | Amount of ERC20 tokens bought |
deadline | uint256 | Transaction deadline |
Returns | |
---|---|
uint256 | Amount of ETH sold |
@payableethToTokenSwapOutput(tokens_bought: uint256,deadline: uint256): uint256
exchangeContract.methods.ethToTokenSwapOutput(tokens_bought, deadline).send({ value: ethValue })
Parameter | Type | Description |
---|---|---|
msg.value | uint256 | Maximum ETH sold |
tokens_bought | uint256 | Amount of ERC20 tokens bought |
deadline | uint256 | Transaction deadline |
recipient | address | Address that receives ERC20 tokens |
Returns | |
---|---|
uint256 | Amount of ETH sold |
@payableethToTokenTransferOutput(tokens_bought: uint256,deadline: uint256,recipient: address): uint256
exchangeContract.methods.ethToTokenTransferOutput(tokens_bought, deadline, (recipient: String)).send({ value: ethValue })
Parameter | Type | Description |
---|---|---|
tokens_sold | uint256 | Amount of ERC20 tokens sold |
min_eth | uint256 | Minimum ETH bought |
deadline | uint256 | Transaction deadline |
Returns | |
---|---|
uint256 | Amount of ETH bought |
tokenToEthSwapInput(tokens_sold: uint256,min_eth: uint256,deadline: uint256): uint256
exchangeContract.methods.tokenToEthSwapInput(tokens_sold, min_eth, deadline).send()
Parameter | Type | Description |
---|---|---|
tokens_sold | uint256 | Amount of ERC20 tokens sold |
min_eth | uint256 | Minimum ETH bought |
deadline | uint256 | Transaction deadline |
recipient | address | Address that receives ETH |
Returns | |
---|---|
uint256 | Amount of ETH bought |
tokenToEthTransferInput(tokens_sold: uint256,min_eth: uint256,deadline: uint256,recipient: address): uint256
exchangeContract.methods.tokenToEthTransferInput(tokens_sold, min_eth, deadline, recipient).send()
Parameter | Type | Description |
---|---|---|
eth_bought | uint256 | Amount of ETH bought |
max_tokens | uint256 | Maximum ERC20 tokens sold |
deadline | uint256 | Transaction deadline |
Returns | |
---|---|
uint256 | Amount of ERC20 tokens sold |
tokenToEthSwapOutput(eth_bought: uint256,max_tokens: uint256,deadline: uint256): uint256
exchangeContract.methods.tokenToEthSwapOutput(eth_bought, max_tokens, (deadline: Integer)).send()
Parameter | Type | Description |
---|---|---|
eth_bought | uint256 | Amount of ETH bought |
max_tokens | uint256 | Maximum ERC20 tokens sold |
deadline | uint256 | Transaction deadline |
recipient | address | Address that receives ETH |
Returns | |
---|---|
uint256 | Amount of ERC20 tokens sold |
tokenToEthTransferOutput(eth_bought: uint256,max_tokens: uint256,deadline: uint256,recipient: address): uint256
exchangeContract.methods.tokenToEthTransferOutput(eth_bought, max_tokens, (deadline: Integer), (recipient: String)).send()
Parameter | Type | Description |
---|---|---|
tokens_sold | uint256 | Amount of input ERC20 tokens sold |
min_tokens_bought | uint256 | Minimum output ERC20 tokens bought |
min_eth_bought | uint256 | Minimum ETH bought as intermediary |
deadline | uint256 | Transaction deadline |
token_addr | address | Address of output ERC20 token |
Returns | |
---|---|
uint256 | Amount of output ERC20 tokens bought |
tokenToTokenSwapInput(tokens_sold: uint256,min_tokens_bought: uint256,min_eth_bought: uint256,deadline: uint256,token_addr: address): uint256
exchangeContract.methods.tokenToTokenSwapInput(tokens_sold, min_tokens_bought, min_eth_bought, deadline, token_addr).send()
Parameter | Type | Description |
---|---|---|
tokens_sold | uint256 | Amount of input ERC20 tokens sold |
min_tokens_bought | uint256 | Minimum output ERC20 tokens bought |
min_eth_bought | uint256 | Minimum ETH bought as intermediary |
deadline | uint256 | Transaction deadline |
recipient | address | Address that receives output ERC20 tokens |
token_addr | address | Address of output ERC20 token |
Returns | |
---|---|
uint256 | Amount of output ERC20 tokens bought |
tokenToTokenTransferInput(tokens_sold: uint256,min_tokens_bought: uint256,min_eth_bought: uint256,deadline: uint256,recipient: addresstoken_addr: address): uint256
exchangeContract.methods.tokenToTokenTransferInput(tokens_sold, min_tokens_bought, min_eth_bought, deadline, recipient, token_addr).send()
Parameter | Type | Description |
---|---|---|
tokens_bought | uint256 | Amount of output ERC20 tokens bought |
max_tokens_sold | uint256 | Maximum input ERC20 tokens bought |
max_eth_sold | uint256 | Maximum ETH bought as intermediary |
deadline | uint256 | Transaction deadline |
token_addr | address | Address of output ERC20 token |
Returns | |
---|---|
uint256 | Amount of input ERC20 tokens sold |
tokenToTokenSwapOutput(tokens_bought: uint256,max_tokens_sold: uint256,max_eth_sold: uint256,deadline: uint256,token_addr: address): uint256
exchangeContract.methods.tokenToTokenSwapOutput(tokens_bought, max_tokens_sold, max_eth_sold, deadline, token_addr).send()
Parameter | Type | Description |
---|---|---|
tokens_bought | uint256 | Amount of output ERC20 tokens bought |
max_tokens_sold | uint256 | Maximum input ERC20 tokens bought |
max_eth_sold | uint256 | Maximum ETH bought as intermediary |
deadline | uint256 | Transaction deadline |
recipient | address | Address that receives output ERC20 tokens |
token_addr | address | Address of output ERC20 token |
Returns | |
---|---|
uint256 | Amount of input ERC20 tokens sold |
tokenToTokenTransferOutput(tokens_bought: uint256,max_tokens_sold: uint256,max_eth_sold: uint256,deadline: uint256,recipient: address,token_addr: address): uint256
exchangeContract.methods.tokenToTokenTransferOutput(tokens_bought, max_tokens_sold, max_eth_sold, deadline, recipient, token_addr).send()
Parameter | Type | Description |
---|---|---|
tokens_sold | uint256 | Amount of input ERC20 tokens sold |
min_tokens_bought | uint256 | Minimum output ERC20 tokens bought |
min_eth_bought | uint256 | Minimum ETH bought as intermediary |
deadline | uint256 | Transaction deadline |
exchange_addr | address | Address of output ERC20 token exchange |
Returns | |
---|---|
uint256 | Amount of output ERC20 tokens bought |
tokenToTokenSwapInput(tokens_sold: uint256,min_tokens_bought: uint256,min_eth_bought: uint256,deadline: uint256,exchange_addr: address): uint256
exchangeContract.methods.tokenToTokenSwapInput(tokens_sold, min_tokens_bought, min_eth_bought, deadline, exchange_addr).send()
Parameter | Type | Description |
---|---|---|
tokens_sold | uint256 | Amount of input ERC20 tokens sold |
min_tokens_bought | uint256 | Minimum output ERC20 tokens bought |
min_eth_bought | uint256 | Minimum ETH bought as intermediary |
deadline | uint256 | Transaction deadline |
recipient | address | Address that receives output ERC20 tokens |
exchange_addr | address | Address of output ERC20 token exchange |
Returns | |
---|---|
uint256 | Amount of output ERC20 tokens bought |
tokenToExchangeTransferInput(tokens_sold: uint256,min_tokens_bought: uint256,min_eth_bought: uint256,deadline: uint256,recipient: addressexchange_addr: address): uint256
exchangeContract.methods.tokenToExchangeTransferInput(tokens_sold, min_tokens_bought, min_eth_bought, deadline, recipient, exchange_addr).send()
Parameter | Type | Description |
---|---|---|
tokens_bought | uint256 | Amount of output ERC20 tokens bought |
max_tokens_sold | uint256 | Maximum input ERC20 tokens bought |
max_eth_sold | uint256 | Maximum ETH bought as intermediary |
deadline | uint256 | Transaction deadline |
exchange_addr | address | Address of output ERC20 token exchange |
Returns | |
---|---|
uint256 | Amount of input ERC20 tokens sold |
tokenToExchangeSwapOutput(tokens_bought: uint256,max_tokens_sold: uint256,max_eth_sold: uint256,deadline: uint256,exchange_addr: address): uint256
exchangeContract.methods.tokenToExchangeSwapOutput(tokens_bought, max_tokens_sold, max_eth_sold, deadline, exchange_addr).send()
Parameter | Type | Description |
---|---|---|
tokens_bought | uint256 | Amount of output ERC20 tokens bought |
max_tokens_sold | uint256 | Maximum input ERC20 tokens bought |
max_eth_sold | uint256 | Maximum ETH bought as intermediary |
deadline | uint256 | Transaction deadline |
recipient | address | Address that receives output ERC20 tokens |
exchange_addr | address | Address of output ERC20 token exchange |
Returns | |
---|---|
uint256 | Amount of input ERC20 tokens sold |
tokenToExchangeTransferOutput(tokens_bought: uint256,max_tokens_sold: uint256,max_eth_sold: uint256,deadline: uint256,recipient: address,exchange_addr: address): uint256
exchangeContract.methods.tokenToExchangeTransferOutput(tokens_bought, max_tokens_sold, max_eth_sold, deadline, recipient, exchange_addr).send()
Parameter | Type | Description |
---|---|---|
eth_sold | uint256 | Amount of ETH sold |
Returns | |
---|---|
uint256 | Amount of ERC20 tokens that can be bought |
@constantgetEthToTokenInputPrice(eth_sold: uint256): uint256
exchangeContract.methods.getEthToTokenInputPrice(eth_sold).call()
Parameter | Type | Description |
---|---|---|
tokens_bought | uint256 | Amount of ERC20 tokens bought |
Returns | |
---|---|
uint256 | Amount of ETH that must be sold |
@constantgetEthToTokenOutputPrice(tokens_bought: uint256): uint256
exchangeContract.methods.getEthToTokenOutputPrice(tokens_bought).call()
Parameter | Type | Description |
---|---|---|
tokens_sold | uint256 | Amount of ERC20 tokens sold |
Returns | |
---|---|
uint256 | Amount of ETH that can be bought |
@constantgetTokenToEthInputPrice(tokens_sold: uint256): uint256
exchangeContract.methods.getTokenToEthInputPrice(tokens_sold).call()
Parameter | Type | Description |
---|---|---|
eth_bought | uint256 | Amount of ETH bought |
Returns | |
---|---|
uint256 | Amount of ERC20 tokens that must be sold |
@constantgetTokenToEthOutputPrice(eth_bought: uint256): uint256
exchangeContract.methods.getTokenToEthOutputPrice(eth_bought).call()
Returns | |
---|---|
address | Address of ERC20 token sold on exchange |
@constanttokenAddress(): address
exchangeContract.methods.tokenAddress().call()
Returns | |
---|---|
address | Address of factory that created exchange |
@constantfactoryAddress(): address
exchangeContract.methods.factoryAddress().call()
Returns | |
---|---|
bytes32 | Name of liquidity token |
# all exchange contracts have the same name@constantname(): bytes32 // Uniswap V1
exchangeContract.methods.tokenAddress().call()
Returns | |
---|---|
bytes32 | Symbol of liquidity token |
# all exchange contracts have the same symbol@constantsymbol(): bytes32 // UNI-V1
exchangeContract.methods.tokenAddress().call()
Returns | |
---|---|
uint256 | Decimals of liquidity token |
# all exchange contracts have the same decimals@constantdecimals(): uint256 // 18
exchangeContract.methods.decimals().call()
Parameter | Type | Description |
---|---|---|
_owner | address | Ethereum address |
Returns | |
---|---|
uint256 | Liquidity token balance of address |
@constantbalanceOf(_owner: address): uint256
exchangeContract.methods.balanceOf(_owner).call()
Parameter | Type | Description |
---|---|---|
_to | address | Recipient address |
_value | uint256 | Amount transferred |
Returns | |
---|---|
bool | True if successful. Reverts or false on failure |
transfer(_to: address,_value : uint256): bool
exchangeContract.methods.transfer(_to, _value).send()
Parameter | Type | Description |
---|---|---|
_from | address | Sender address |
_to | address | Recipient address |
_value | uint256 | Amount transferred |
Returns | |
---|---|
bool | True if successful. Reverts or false on failure |
transferFrom(_from: address,_to: address,_value : uint256): bool
exchangeContract.methods.transferFrom(_from, _to, _value).send()
Parameter | Type | Description |
---|---|---|
_spender | address | Address of approved spender |
_value | uint256 | Spender allowance |
Returns | |
---|---|
bool | True if successful. Reverts or false on failure |
approve(_spender: address,_value: uint256): bool
exchangeContract.methods.approve(_spender, _value).send()
Parameter | Type | Description |
---|---|---|
_owner | address | Address of liquidity token owner |
_spender | uint256 | Address of approved spender |
Returns | |
---|---|
uint256 | Spender allowance |
allowance(_owner: address,_spender: address): uint256
exchangeContract.methods.allowance(_owner, _spender).call()