Skip to main content

IPair

Table of contents

Constructors

Properties

Methods

Constructors

constructor

new IPair(at): IPair

Wraps a smart contract exposing standard token FFI.

Parameters

NameTypeDescription
atAddressAddress of the smart contract.

Returns

IPair

Defined in

assembly/interfaces/IPair.ts:43

Properties

_origin

_origin: Address

Defined in

assembly/interfaces/IPair.ts:36

Methods

balanceOf

balanceOf(_account, _id): u256

Parameters

NameType
_accountAddress
_idu64

Returns

u256

Defined in

assembly/interfaces/IPair.ts:257


balanceOfBatch

balanceOfBatch(_accounts, _ids): u256[]

Parameters

NameType
_accountsAddress[]
_idsu64[]

Returns

u256[]

Defined in

assembly/interfaces/IPair.ts:267


burn

burn(_ids, _amounts, _to, masToSend): Amounts

Burn LB tokens for each bins where the user removes liquidity. This function will not transfer the LBToken from the caller, it is expected that the tokens have already been transferred to this contract through another contract. That is why this function shouldn't be called directly, but through one of the remove liquidity functions of the router that will also perform safety checks. The lengths of the arrays must be the same.

Parameters

NameTypeDescription
_idsu64[]The ids of the bins where the liquidity will be removed. It will burn LB tokens for each of these bins.
_amountsu256[]The amount of LB tokens to burn for each bin.
_toAddressThe address that will receive the tokens.
masToSendu64The amount of Massa to send for storage

Returns

Amounts

  • The amount of token X and token Y that the user will receive.

Defined in

assembly/interfaces/IPair.ts:173


collectFees

collectFees(account, ids, masToSend): Amounts

Collect the fees accumulated by a user.

Parameters

NameTypeDescription
accountAddress-
idsu64[]-
masToSendu64The amount of Massa to send for storage

Returns

Amounts

amountX The amount of token X collected and sent to _account

amountY The amount of token Y collected and sent to _account

Defined in

assembly/interfaces/IPair.ts:359


feeParameters

feeParameters(): FeeParameters

Get the fees parameters for this pair

Returns

FeeParameters

Defined in

assembly/interfaces/IPair.ts:85


findFirstNonEmptyBinId

findFirstNonEmptyBinId(id, sentTokenY): Result<u32>

Parameters

NameType
idu32
sentTokenYbool

Returns

Result<u32>

Defined in

assembly/interfaces/IPair.ts:214


flashLoan

flashLoan(token, amount, masToSend): void

Execute a flash loan. The caller must implement the IFlashLoanCallback interface and have the flashLoanCallback function. The flashLoanCallback function will be called by the pair contract to execute the logic of the flash loan. The caller must return true if the flash loan was successful, and false otherwise. The caller is expected to transfer the amount + fee of the token to this contract.

Parameters

NameTypeDescription
tokenIERC20The token to flash loan
amountu256The amount of tokens to flash loan
masToSendu64The amount of Massa to send for storage

Returns

void

Defined in

assembly/interfaces/IPair.ts:191


forceDecay

forceDecay(): void

Returns

void

Defined in

assembly/interfaces/IPair.ts:238


getBin

getBin(_id): Bin

Get the bin information for a given id

Parameters

NameTypeDescription
_idu32The id of the bin

Returns

Bin

Defined in

assembly/interfaces/IPair.ts:96


getFactory

getFactory(): Address

Returns

Address

Defined in

assembly/interfaces/IPair.ts:229


getHooksParameters

getHooksParameters(): HooksParameters

Returns

HooksParameters

The hooks parameters of the Liquidity Book Pair

Notice

Gets the hooks parameters of the Liquidity Book Pair

Defined in

assembly/interfaces/IPair.ts:385


getOracleParameters

getOracleParameters(): OracleParameters

Returns

OracleParameters

Defined in

assembly/interfaces/IPair.ts:365


getOracleSampleFrom

getOracleSampleFrom(timeDelta): OracleSampleReturn

Parameters

NameType
timeDeltau64

Returns

OracleSampleReturn

Defined in

assembly/interfaces/IPair.ts:370


getPairInformation

getPairInformation(): PairInformation

Returns

PairInformation

Defined in

assembly/interfaces/IPair.ts:204


getTokenX

getTokenX(): IERC20

Returns

IERC20

Defined in

assembly/interfaces/IPair.ts:196


getTokenY

getTokenY(): IERC20

Returns

IERC20

Defined in

assembly/interfaces/IPair.ts:200


getUserBins

getUserBins(account): u32[]

Parameters

NameType
accountAddress

Returns

u32[]

Defined in

assembly/interfaces/IPair.ts:209


increaseOracleLength

increaseOracleLength(newSize, masToSend): void

Increases the length of the oracle to the given _newLength by adding empty samples to the end of the oracle. The samples are however initialized to reduce the gas cost of the updates during a swap.

Parameters

NameTypeDescription
newSizeu64-
masToSendu64The amount of Massa to send for storage

Returns

void

Defined in

assembly/interfaces/IPair.ts:396


init

init(factory, tokenX, tokenY, activeId, preset, masToSend): void

Calls the constructor

Parameters

NameType
factoryAddress
tokenXAddress
tokenYAddress
activeIdu32
presetPreset
masToSendu64

Returns

void

Defined in

assembly/interfaces/IPair.ts:52


isApprovedForAll

isApprovedForAll(_owner, _spender): bool

Parameters

NameType
_ownerAddress
_spenderAddress

Returns

bool

Defined in

assembly/interfaces/IPair.ts:274


mint

mint(_ids, _distributionX, _distributionY, _to, masToSend): MintReturn

Mint new LB tokens for each bins where the user adds liquidity. This function will not transfer the tokens from the caller, it is expected that the tokens have already been transferred to this contract through another contract. That is why this function shouldn't be called directly, but through one of the add liquidity functions of the router that will also perform safety checks. Any excess amount of token will be sent to the to address. The lengths of the arrays must be the same.

Parameters

NameTypeDescription
_idsu64[]The ids of the bins where the liquidity will be added. It will mint LB tokens for each of these bins.
_distributionXu256[]The percentage of token X to add to each bin. The sum of all the values must not exceed 100%, that is 1e9.
_distributionYu256[]The percentage of token Y to add to each bin. The sum of all the values must not exceed 100%, that is 1e9.
_toAddressThe address that will receive the LB tokens and the excess amount of tokens.
masToSendu64The amount of Massa to send for storage.

Returns

MintReturn

  • The amount of token X and token Y that the user will receive and the amounts of LB tokens minted for each bin.

Defined in

assembly/interfaces/IPair.ts:138


name

name(): string

Returns

string

Defined in

assembly/interfaces/IPair.ts:242


pendingFees

pendingFees(account, ids): Amounts

Parameters

NameType
accountAddress
idsu64[]

Returns

Amounts

Defined in

assembly/interfaces/IPair.ts:345


safeBatchTransferFrom

safeBatchTransferFrom(_from, _to, _ids, _amounts, masToSend): void

Batch transfers _amount tokens of type _id from _from to _to

Parameters

NameTypeDescription
_fromAddressThe address of the owner of the tokens
_toAddressThe address of the recipient
_idsu64[]The list of token ids
_amountsu256[]The list of amounts to send
masToSendu64The amount of Massa to send for storage

Returns

void

Defined in

assembly/interfaces/IPair.ts:334


safeTransferFrom

safeTransferFrom(_from, _to, _id, amount, masToSend): void

Transfers _amount token of type _id from _from to _to

Parameters

NameTypeDescription
_fromAddressThe address of the owner of the token
_toAddressThe address of the recipient
_idu64The token id
amountu256-
masToSendu64The amount of Massa to send for storage

Returns

void

Defined in

assembly/interfaces/IPair.ts:311


setApprovalForAll

setApprovalForAll(_approved, _sender): void

Grants or revokes permission to spender to transfer the caller's tokens, according to approved

Parameters

NameTypeDescription
_approvedboolThe boolean value to grant or revoke permission
_senderAddress-

Returns

void

Defined in

assembly/interfaces/IPair.ts:289


setFeesParameters

setFeesParameters(fp): void

Parameters

NameType
fpFeeParameters

Returns

void

Defined in

assembly/interfaces/IPair.ts:233


setHooksParameters

setHooksParameters(hooksParameters, onHooksSetData): void

Parameters

NameType
hooksParametersHooksParameters
onHooksSetDataStaticArray<u8>

Returns

void

Defined in

assembly/interfaces/IPair.ts:405


swap

swap(swapForY, to, masToSend): u256

Swap tokens iterating over the bins until the entire amount is swapped. Will swap token X for token Y if _swapForY is true, and token Y for token X if _swapForY is false. This function will not transfer the tokens from the caller, it is expected that the tokens have already been transferred to this contract through another contract. That is why this function shouldn't be called directly, but through one of the swap functions of the router that will also perform safety checks.

Parameters

NameTypeDescription
swapForYboolWhether you've swapping token X for token Y (true) or token Y for token X (false)
toAddressThe address to send the tokens to
masToSendu64The amount of Massa to send for storage

Returns

u256

Defined in

assembly/interfaces/IPair.ts:114


symbol

symbol(): string

Returns

string

Defined in

assembly/interfaces/IPair.ts:247


totalSupply

totalSupply(_id): u256

Parameters

NameType
_idu64

Returns

u256

Defined in

assembly/interfaces/IPair.ts:252