Exchange API

setup

Smart Contract
Web3
// Can only be called by factory contract during createExchange()
setup(token_addr: address):

Parameter

Description

token_addr

Ethereum address of an ERC20 Token

addLiquidity

Smart Contract
Web3
@payable
addLiquidity(
min_liquidity: uint256,
max_tokens: uint256,
deadline: uint256
): uint256

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

removeLiquidity

Smart Contract
Web3
removeLiquidity(
amount: uint256;
min_eth: uint256,
min_tokens: uint256,
deadline: uint256
): (uint256, uint256)

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.

default

Smart Contract
Web3
// Default function in Vyper replaces the "fallback" function in Solidity
@payable
__default__():

Parameter

Type

Description

msg.value

uint256

Amount of ETH sold

ethToTokenSwapInput

Smart Contract
Web3
@payable
ethToTokenSwapInput(
min_tokens: uint256,
deadline: uint256
): uint256

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

ethToTokenTransferInput

Smart Contract
Web3
@payable
ethToTokenTransferInput(
min_tokens: uint256,
deadline: uint256,
recipient: address
): uint256

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

ethToTokenSwapOutput

Smart Contract
Web3
@payable
ethToTokenSwapOutput(
tokens_bought: uint256,
deadline: uint256
): uint256

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

ethToTokenTransferOutput

Smart Contract
Web3
@payable
ethToTokenTransferOutput(
tokens_bought: uint256,
deadline: uint256,
recipient: address
): uint256

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

****

tokenToEthSwapInput

Smart Contract
Web3
tokenToEthSwapInput(
tokens_sold: uint256,
min_eth: uint256,
deadline: uint256
): uint256

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

tokenToEthTransferInput

Smart Contract
Web3
tokenToEthTransferInput(
tokens_sold: uint256,
min_eth: uint256,
deadline: uint256,
recipient: address
): uint256

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

tokenToEthSwapOutput

Smart Contract
Web3
tokenToEthSwapOutput(
eth_bought: uint256,
max_tokens: uint256,
deadline: uint256
): uint256

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

****

tokenToEthTransferOutput

Smart Contract
Web3
tokenToEthTransferOutput(
eth_bought: uint256,
max_tokens: uint256,
deadline: uint256,
recipient: address
): uint256

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

tokenToTokenSwapInput

Smart Contract
Web3
tokenToTokenSwapInput(
tokens_sold: uint256,
min_tokens_bought: uint256,
min_eth_bought: uint256,
deadline: uint256,
token_addr: address
): uint256

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

tokenToTokenTransferInput

Smart Contract
Web3
tokenToTokenTransferInput(
tokens_sold: uint256,
min_tokens_bought: uint256,
min_eth_bought: uint256,
deadline: uint256,
recipient: address
token_addr: address
): uint256

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

tokenToTokenSwapOutput

Smart Contract
Web3
tokenToTokenSwapOutput(
tokens_bought: uint256,
max_tokens_sold: uint256,
max_eth_sold: uint256,
deadline: uint256,
token_addr: address
): uint256

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

tokenToTokenTransferOutput

Smart Contract
Web3
tokenToTokenTransferOutput(
tokens_bought: uint256,
max_tokens_sold: uint256,
max_eth_sold: uint256,
deadline: uint256,
recipient: address,
token_addr: address
): uint256

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

tokenToExchangeSwapInput

Smart Contract
Web3
tokenToTokenSwapInput(
tokens_sold: uint256,
min_tokens_bought: uint256,
min_eth_bought: uint256,
deadline: uint256,
exchange_addr: address
): uint256

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

tokenToExchangeTransferInput

Smart Contract
Web3
tokenToExchangeTransferInput(
tokens_sold: uint256,
min_tokens_bought: uint256,
min_eth_bought: uint256,
deadline: uint256,
recipient: address
exchange_addr: address
): uint256

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

tokenToExchangeSwapOutput

Smart Contract
Web3
tokenToExchangeSwapOutput(
tokens_bought: uint256,
max_tokens_sold: uint256,
max_eth_sold: uint256,
deadline: uint256,
exchange_addr: address
): uint256

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

tokenToExchangeTransferOutput

Smart Contract
Web3
tokenToExchangeTransferOutput(
tokens_bought: uint256,
max_tokens_sold: uint256,
max_eth_sold: uint256,
deadline: uint256,
recipient: address,
exchange_addr: address
): uint256

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

****

getEthToTokenInputPrice

Smart Contract
Web3
@constant
getEthToTokenInputPrice(eth_sold: uint256): uint256

Parameter

Type

Description

eth_sold

uint256

Amount of ETH sold

Returns

uint256

Amount of ERC20 tokens that can be bought

getEthToTokenOutputPrice

Smart Contract
Web3
@constant
getEthToTokenOutputPrice(tokens_bought: uint256): uint256

Parameter

Type

Description

tokens_bought

uint256

Amount of ERC20 tokens bought

Returns

uint256

Amount of ETH that must be sold

****

getTokenToEthInputPrice

Smart Contract
Web3
@constant
getTokenToEthInputPrice(tokens_sold: uint256): uint256

Parameter

Type

Description

tokens_sold

uint256

Amount of ERC20 tokens sold

Returns

uint256

Amount of ETH that can be bought

getTokenToEthOutputPrice

Smart Contract
Web3
@constant
getTokenToEthOutputPrice(eth_bought: uint256): uint256

Parameter

Type

Description

eth_bought

uint256

Amount of ETH bought

Returns

uint256

Amount of ERC20 tokens that must be sold

tokenAddress

Smart Contract
Web3
@constant
tokenAddress(): address

Returns

address

Address of ERC20 token sold on exchange

factoryAddress

Smart Contract
Web3
@constant
factoryAddress(): address

Returns

address

Address of factory that created exchange

name

Smart Contract
Web3
// All exchange contracts have the same name
@constant
name(): bytes32 // Uniswap V1

Returns

bytes32

Name of liquidity token

symbol

Smart Contract
Web3
// All exchange contracts have the same symbol
@constant
symbol(): bytes32 // UNI-V1

Returns

bytes32

Symbol of liquidity token

decimals

Smart Contract
Web3
// All exchange contracts have the same decimals
@constant
decimals(): uint256 // 18

Returns

uint256

Decimals of liquidity token

balanceOf

Smart Contract
Web3
@constant
balanceOf(_owner: address): uint256

Parameter

Type

Description

_owner

address

Ethereum address

Returns

uint256

Liquidity token balance of address

transfer

Smart Contract
Web3
transfer(
_to: address,
_value : uint256
): bool

Parameter

Type

Description

_to

address

Recipient address

_value

uint256

Amount transferred

Returns

bool

True if successful. Reverts or false on failure

transferFrom

Smart Contract
Web3
transferFrom(
_from: address,
_to: address,
_value : uint256
): bool

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

approve

Smart Contract
Web3
approve(
_spender: address,
_value: uint256
): bool

Parameter

Type

Description

_spender

address

Address of approved spender

_value

uint256

Spender allowance

Returns

bool

True if successful. Reverts or false on failure

allowance

Smart Contract
Web3
allowance(
_owner: address,
_spender: address
): uint256

Parameter

Type

Description

_owner

address

Address of liquidity token owner

_spender

uint256

Address of approved spender

Returns

uint256

Spender allowance