Class AMMNamespace

Class representing AMM contract AMM

Hierarchy

Constructors

Properties

Accessors

Methods

_getBonderAddress _getMessengerWrapperAddress addLiquidity calcYield calculateAddLiquidityMinimum calculateAmountsForLpToken calculateFromHToken calculatePriceImpact calculateRemoveLiquidityMinimum calculateRemoveLiquidityMinimumLpTokens calculateRemoveLiquidityOneToken calculateToHToken calculateTotalAmountForLpToken checkBlocklist connect debugTimeLog estimateGas estimateOptimismL1FeeFromData fetchBonderAvailableLiquidityData fetchBonderAvailableLiquidityDataWithIpfsFallback fetchConfigFromS3 fetchCoreConfigData fetchCoreConfigDataWithIpfsFallback fetchIpfsBonderAvailableLiquidityData fetchIpfsCoreConfigData geConfigChains getApr getApy getArbChainAddress getAvailableRoutes getBumpedGasPrice getCanonicalTokenAddress getChainId getChainProvider getChainProviderUrls getChainProviders getConfigAddresses getDailyVolume getDebugTimeLogs getDestinationFeeGasPriceMultiplier getExplorerUrl getExplorerUrlForAccount getExplorerUrlForTransactionHash getExplorerUrlForTransferId getFeeBps getHopTokenAddress getIpfsBaseConfigUrl getIsBridgeDeprecated getL1AmbBridgeAddress getL1BridgeAddress getL1CanonicalBridgeAddress getL1CanonicalTokenAddress getL1PosErc20PredicateAddress getL1PosRootChainManagerAddress getL2AmbBridgeAddress getL2AmmWrapperAddress getL2BridgeAddress getL2CanonicalBridgeAddress getL2CanonicalTokenAddress getL2HopBridgeTokenAddress getL2SaddleLpTokenAddress getL2SaddleSwapAddress getPriceImpact getProviderRpcUrl getRelayerFee getRemoveLiquidityPriceImpact getReserves getReservesTotal getS3ConfigData getSaddleSwap getSignerAddress getSignerOrProvider getSupportedAssets getSupportedAssetsForChain getSupportedChains getSupportedTokens getSwapFee getTokenBalancesForAccount getTransferStatus getTransferTimes getVirtualPrice getYieldData getYieldStatsForDay isHighPriceImpact isValidChain isValidNetwork normalizeDeadline populateAddLiquidityTx populateRemoveLiquidityTx removeLiquidity removeLiquidityImbalance removeLiquidityOneToken resolveDnslink sendTransaction setAvailableLiqudityJsonUrl setBaseConfigUrl setChainProvider setChainProviderUrls setChainProviders setConfigAddresses setConfigFileFetchEnabled setCoreConfigJsonUrl setGasPriceMultiplier toChainModel toTokenModel txOverrides

Constructors

  • Parameters

    • networkOrOptionsObject: string | AmmConstructorOptions

      L1 network name (e.g. 'mainnet', 'goerli')

    • Optional tokenSymbol: string

      Token model

    • Optional chain: TChain

      Chain model

    • Optional signer: TProvider

      Ethers Signer for signing transactions.

    • Optional chainProviders: ChainProviders

    Returns AMM

    Desc

    Instantiates AMM instance. Returns a new Hop AMM SDK instance.

    Returns

    Hop AMM instance

    Example

    import { AMM, Chain } from '@hop-protocol/sdk'

    const amm = new AMM('mainnet', 'USDC', Chain.Gnosis)

Properties

addresses: Record<string, any>
baseConfigUrl: string = defaultBaseConfigUrl
baseExplorerUrl: string = 'https://explorer.hop.exchange'
blocklist: Record<string, boolean> = null
bonders: Record<string, any>
bridgeDeprecated: Record<string, boolean>
calculateSwap: ((...args) => Promise<any>) = ...

Type declaration

    • (...args): Promise<any>
    • Parameters

      • Rest ...args: [fromIndex: TokenIndex, toIndex: TokenIndex, amount: BigNumberish]

      Returns Promise<any>

chain: Chain

Chain model

chainProviders: ChainProviders = {}
chains: Record<string, any>
configFileFetchEnabled: boolean = true
customAvailableLiquidityJsonUrl: string = ''
customCoreConfigJsonUrl: string = ''
debugTimeLogsCache: any[] = []
debugTimeLogsCacheEnabled: boolean = false
debugTimeLogsEnabled: boolean = false
destinationFeeGasPriceMultiplier: number = 1
fees: {
    [token: string]: Record<string, number>;
}

Type declaration

  • [token: string]: Record<string, number>
gasPriceMultiplier: number = 0
getContract: ((factory, address, provider) => Promise<any>) = getContract

Type declaration

    • (factory, address, provider): Promise<any>
    • Parameters

      • factory: Factory
      • address: string
      • provider: TProvider

      Returns Promise<any>

getGasPrice: ((...args) => Promise<BigNumber>) = ...

Type declaration

    • (...args): Promise<BigNumber>
    • Parameters

      Returns Promise<BigNumber>

network: string

Network name

relayerFeeEnabled: Record<string, boolean>
relayerFeeWei: Record<string, string>
signer: TProvider

Ethers signer or provider

tokenSymbol: string

Token class instance

Accessors

  • get availableLiqudityJsonUrl(): string
  • Returns string

  • get configChains(): string[]
  • Returns string[]

  • get coreConfigJsonUrl(): string
  • Returns string

  • get defaultDeadlineSeconds(): number
  • Returns number

    Deadline in seconds

    Desc

    The default deadline to use in seconds.

  • get supportedChains(): string[]
  • Returns string[]

  • get supportedNetworks(): string[]
  • Returns string[]

Methods

  • Parameters

    • amount0Desired: BigNumberish

      Amount of token #0 in smallest unit

    • amount1Desired: BigNumberish

      Amount of token #1 in smallest unit

    • minToMint: BigNumberish = 0

      Minimum amount of LP token to mint in order for transaction to be successful.

    • deadline: BigNumberish = ...

      Order deadline in seconds

    Returns Promise<TransactionResponse>

    Ethers transaction object.

    Desc

    Sends transaction to add liquidity to AMM.

    Example

    import { AMM } from '@hop-protocol/sdk'

    const amm = new AMM(...)
    const tx = await amm.addLiquidity('1000000000000000000', '1000000000000000000', '0')
    console.log(tx.hash)
  • Parameters

    • feesEarned: number
    • principal: number
    • days: number

    Returns any

  • Parameters

    • amount0: BigNumberish
    • amount1: BigNumberish

    Returns Promise<BigNumber>

  • Parameters

    • lpTokenAmount: BigNumberish

    Returns Promise<BigNumber[]>

  • Parameters

    • amount: BigNumberish

    Returns Promise<BigNumber>

  • Parameters

    • tokenInputAmount: BigNumber
    • tokenOutputAmount: BigNumber
    • virtualPrice: BigNumber = ...
    • isWithdraw: boolean = false

    Returns BigNumber

  • Parameters

    • lpTokenAmount: BigNumberish

    Returns Promise<any>

  • Parameters

    • amount0: BigNumberish
    • amount1: BigNumberish

    Returns Promise<BigNumber>

  • Parameters

    • tokenAmount: BigNumberish
    • tokenIndex: number

    Returns Promise<any>

  • Parameters

    • amount: BigNumberish

    Returns Promise<BigNumber>

  • Parameters

    • lpTokenAmount: BigNumberish

    Returns Promise<BigNumber>

  • Parameters

    • signer: TProvider

      Ethers Signer for signing transactions.

    Returns AMM

    Hop AMM instance with connected signer.

    Desc

    Returns hop AMM instance with signer connected. Used for adding or changing signer.

    Example

    import { AMM } from '@hop-protocol/sdk'

    const signer = new Wallet(privateKey)
    let amm = new AMM(...)
    // ...
    amm = amm.connect(signer)
  • Parameters

    • gasLimit: BigNumberish
    • data: string = '0x'
    • to: string = constants.AddressZero
    • destChain: string | Chain = Chain.Optimism

    Returns Promise<any>

  • Parameters

    • days: number = 1

    Returns Promise<any>

  • Parameters

    • days: number = 1

    Returns Promise<any>

  • Parameters

    • signer: TProvider

      Ether's Signer

    • percent: number

      Percentage to bump by.

    Returns Promise<BigNumber>

    Bumped as price as BigNumber

    Desc

    Calculates current gas price plus increased percentage amount.

    Example

    import { Hop } from '@hop-protocol/sdk'

    const hop = new Hop()
    const bumpedGasPrice = await hop.getBumpedGasPrice(signer, 1.20)
    console.log(bumpedGasPrice.toNumber())
  • Returns Promise<string>

    address

    Desc

    Returns the address of the L2 canonical token.

  • Parameters

    • chain: Chain

      Chain model.

    Returns number

    • Chain ID.

    Desc

    Returns Chain ID for specified Chain model.

  • Parameters

    • chain: string | Chain

      Chain model.

    Returns any

    Ethers provider.

    Desc

    Returns Ethers provider for specified Chain model.

  • Returns Promise<any>

  • Returns Promise<string>

    address

    Desc

    Returns the address of the L2 hop token.

  • Parameters

    • amount0: BigNumberish
    • amount1: BigNumberish

    Returns Promise<BigNumber>

  • Parameters

    • destinationChain: TChain
    • tokenSymbol: string

    Returns Promise<BigNumber>

  • Parameters

    • amount0: BigNumberish
    • amount1: BigNumberish

    Returns Promise<BigNumber>

  • Returns Promise<BigNumber[]>

  • Returns Promise<BigNumber>

  • Returns Promise<any>

    Ethers contract instance.

    Desc

    Returns the Saddle swap contract instance for the specified chain.

  • Returns Promise<string>

    Ethers signer address.

    Desc

    Returns the connected signer address.

    Example

    import { Hop } from '@hop-protocol/sdk'

    const hop = new Hop()
    const address = await hop.getSignerAddress()
    console.log(address)
  • Parameters

    • chain: TChain

      Chain name or model

    • signer: TProvider = ...

      Ethers signer or provider

    Returns Promise<Provider | Signer>

    Ethers signer or provider

    Desc

    Returns the connected signer if it's connected to the specified chain id, otherwise it returns a regular provider for the specified chain.

  • Returns Promise<number>

  • Parameters

    • sourceChainSlug: string
    • destinationChainSlug: string

    Returns Promise<any>

  • Returns Promise<BigNumber>

  • Parameters

    • days: number = 1

    Returns Promise<any>

  • Parameters

    • unixTimestamp: number
    • days: number = 1

    Returns Promise<any>

  • Parameters

    • priceImpact: BigNumber

    Returns boolean

  • Parameters

    • deadline: BigNumberish

      deadline timestamp

    Returns number

    Deadline in seconds

    Desc

    Truncate any decimal places in deadline unix timestamp.

  • Parameters

    • amount0Desired: BigNumberish
    • amount1Desired: BigNumberish
    • minToMint: BigNumberish = 0
    • deadline: BigNumberish = ...

    Returns Promise<any>

  • Parameters

    • liquidityTokenAmount: BigNumberish
    • amount0Min: BigNumberish = 0
    • amount1Min: BigNumberish = 0
    • deadline: BigNumberish = ...

    Returns Promise<any>

  • Parameters

    • liquidityTokenAmount: BigNumberish

      Amount of LP tokens to burn.

    • amount0Min: BigNumberish = 0

      Minimum amount of token #0 to receive in order for transaction to be successful.

    • amount1Min: BigNumberish = 0

      Minimum amount of token #1 to receive in order for transaction to be successful. transaction to be successful.

    • deadline: BigNumberish = ...

      Order deadline in seconds

    Returns Promise<TransactionResponse>

    Ethers transaction object.

    Desc

    Sends transaction to remove liquidity from AMM.

    Example

    import { AMM } from '@hop-protocol/sdk'

    const amm = new AMM(...)
    const tx = await amm.removeLiquidity('1000000000000000000', '0', '0')
    console.log(tx.hash)
  • Parameters

    • amount0: BigNumberish
    • amount1: BigNumberish
    • maxBurnAmount: BigNumberish = ...
    • deadline: BigNumberish = ...

    Returns Promise<any>

  • Parameters

    • lpAmount: BigNumberish
    • tokenIndex: number
    • amountMin: BigNumberish = ...
    • deadline: BigNumberish = ...

    Returns Promise<any>

  • Parameters

    • transactionRequest: TransactionRequest
    • chain: TChain

    Returns Promise<any>

  • Parameters

    • chain: TChain

      Chain name or model.

    Returns Chain

    Chain model with connected provider.

    Desc

    Returns a Chain model instance with connected provider.

Generated using TypeDoc