diff --git a/src/apps/bastion-protocol/aurora/bastion-protocol.swap.token-fetcher.ts b/src/apps/bastion-protocol/aurora/bastion-protocol.swap.token-fetcher.ts index b465daf03..273122e8c 100644 --- a/src/apps/bastion-protocol/aurora/bastion-protocol.swap.token-fetcher.ts +++ b/src/apps/bastion-protocol/aurora/bastion-protocol.swap.token-fetcher.ts @@ -8,7 +8,7 @@ import { AppTokenPosition } from '~position/position.interface'; import { Network } from '~types/network.interface'; import { BASTION_PROTOCOL_DEFINITION } from '../bastion-protocol.definition'; -import { BastionProtocolContractFactory } from '../contracts'; +import { BastionProtocolContractFactory, BastionProtocolSwap } from '../contracts'; const appId = BASTION_PROTOCOL_DEFINITION.id; const groupId = BASTION_PROTOCOL_DEFINITION.groups.swap.id; @@ -22,24 +22,16 @@ export class AuroraBastionProtocolSwapTokenFetcher implements PositionFetcher reserves[i] * t.price); - const liquidity = reservesUSD.reduce((total, r) => total + r, 0); - return virtualPrice > 0 ? virtualPrice * (liquidity / supply) : liquidity / supply; - } - async getPositions() { const poolDefinitions: CurvePoolDefinition[] = [ { - queryKey: 'cusdccusdt', - label: 'cUSDC/cUSDT Pool', swapAddress: '0x6287e912a9ccd4d5874ae15d3c89556b2a05f080', tokenAddress: '0x0039f0641156cac478b0debab086d78b66a69a01', + coinAddresses: ['0x845e15a441cfc1871b7ac610b0e922019bad9826', '0xe5308dc623101508952948b141fd9eabd3337d99'], }, ]; - const appTokenDefinition = [ + + const dependencies = [ { appId, groupIds: [ @@ -51,38 +43,29 @@ export class AuroraBastionProtocolSwapTokenFetcher implements PositionFetcher({ network, appId, groupId, - appTokenDependencies: appTokenDefinition, - resolvePoolDefinitions: async () => poolDefinitions, + dependencies: dependencies, + poolDefinitions: poolDefinitions, resolvePoolContract: ({ network, definition }) => this.bastionProtocolContractFactory.bastionProtocolSwap({ address: definition.swapAddress, network }), - resolvePoolTokenContract: ({ network, definition }) => - this.bastionProtocolContractFactory.erc20({ network, address: definition.tokenAddress }), - resolvePoolCoinAddresses: ({ multicall, poolContract }) => - Promise.all([multicall.wrap(poolContract).getToken(0), multicall.wrap(poolContract).getToken(1)]), - resolvePoolReserves: ({ multicall, poolContract }) => - Promise.all([ - multicall - .wrap(poolContract) - .getTokenBalance(0) - .then(v => v.toString()), - multicall - .wrap(poolContract) - .getTokenBalance(1) - .then(v => v.toString()), - ]), - resolvePoolVolume: undefined, + resolvePoolReserves: async ({ definition, multicall, poolContract }) => + Promise.all(definition.coinAddresses.map((_, i) => multicall.wrap(poolContract).getTokenBalance(i))), resolvePoolFee: ({ multicall, poolContract }) => multicall .wrap(poolContract) .swapStorage() .then(r => r.swapFee), - resolvePoolTokenPrice: this.getLPTokenPrice, - resolvePoolTokenSymbol: ({ multicall, poolTokenContract }) => multicall.wrap(poolTokenContract).symbol(), - resolvePoolTokenSupply: ({ multicall, poolTokenContract }) => multicall.wrap(poolTokenContract).totalSupply(), + resolvePoolTokenPrice: async ({ tokens, reserves, poolContract, multicall, supply }) => { + const virtualPriceRaw = await multicall.wrap(poolContract).getVirtualPrice(); + const virtualPrice = Number(virtualPriceRaw) / 10 ** 18; + const reservesUSD = tokens.map((t, i) => reserves[i] * t.price); + const liquidity = reservesUSD.reduce((total, r) => total + r, 0); + return virtualPrice > 0 ? virtualPrice * (liquidity / supply) : liquidity / supply; + }, }); } } diff --git a/src/apps/compound/helper/compound.supply.token-helper.ts b/src/apps/compound/helper/compound.supply.token-helper.ts index e4c8c1b6e..ff4b75c02 100644 --- a/src/apps/compound/helper/compound.supply.token-helper.ts +++ b/src/apps/compound/helper/compound.supply.token-helper.ts @@ -141,6 +141,7 @@ export class CompoundSupplyTokenHelper { const label = getDisplayLabel ? await getDisplayLabel({ contract, multicall, underlyingToken }) : underlyingToken.symbol; + const labelDetailed = symbol; const secondaryLabel = buildDollarDisplayItem(underlyingToken.price); const tertiaryLabel = `${(supplyApy * 100).toFixed(3)}% APY`; const images = [getTokenImg(underlyingToken.address, network)]; @@ -174,6 +175,7 @@ export class CompoundSupplyTokenHelper { displayProps: { label, + labelDetailed, secondaryLabel, tertiaryLabel, images, diff --git a/src/apps/curve/arbitrum/curve.balance-fetcher.ts b/src/apps/curve/arbitrum/curve.balance-fetcher.ts index de28a81dd..7a3ee5ddb 100644 --- a/src/apps/curve/arbitrum/curve.balance-fetcher.ts +++ b/src/apps/curve/arbitrum/curve.balance-fetcher.ts @@ -4,11 +4,10 @@ import { APP_TOOLKIT, IAppToolkit } from '~app-toolkit/app-toolkit.interface'; import { Register } from '~app-toolkit/decorators'; import { presentBalanceFetcherResponse } from '~app-toolkit/helpers/presentation/balance-fetcher-response.present'; import { BalanceFetcher } from '~balance/balance-fetcher.interface'; -import { isClaimable } from '~position/position.utils'; import { Network } from '~types/network.interface'; -import { CurveChildLiquidityGauge, CurveContractFactory, CurveRewardsOnlyGauge } from '../contracts'; import { CURVE_DEFINITION } from '../curve.definition'; +import { CurveGaugeDefaultContractPositionBalanceHelper } from '../helpers/curve.gauge.default.contract-position-balance-helper'; const network = Network.ARBITRUM_MAINNET; @@ -16,7 +15,8 @@ const network = Network.ARBITRUM_MAINNET; export class ArbitrumCurveBalanceFetcher implements BalanceFetcher { constructor( @Inject(APP_TOOLKIT) private readonly appToolkit: IAppToolkit, - @Inject(CurveContractFactory) private readonly curveContractFactory: CurveContractFactory, + @Inject(CurveGaugeDefaultContractPositionBalanceHelper) + private readonly curveGaugeDefaultContractPositionBalanceHelper: CurveGaugeDefaultContractPositionBalanceHelper, ) {} private async getPoolTokenBalances(address: string) { @@ -28,50 +28,17 @@ export class ArbitrumCurveBalanceFetcher implements BalanceFetcher { }); } - private async getRewardsOnlyGaugeStakedBalances(address: string) { - return this.appToolkit.helpers.singleStakingContractPositionBalanceHelper.getBalances({ + private async getStakedBalances(address: string) { + return this.curveGaugeDefaultContractPositionBalanceHelper.getBalances({ address, - appId: CURVE_DEFINITION.id, - groupId: CURVE_DEFINITION.groups.farm.id, - network, - farmFilter: v => v.dataProps.implementation === 'rewards-only-gauge', - resolveContract: ({ address, network }) => this.curveContractFactory.curveRewardsOnlyGauge({ address, network }), - resolveStakedTokenBalance: ({ contract, address, multicall }) => multicall.wrap(contract).balanceOf(address), - resolveRewardTokenBalances: ({ contract, address, multicall, contractPosition }) => { - const rewardTokens = contractPosition.tokens.filter(isClaimable); - const wrappedContract = multicall.wrap(contract); - return Promise.all(rewardTokens.map(v => wrappedContract.claimable_reward_write(address, v.address))); - }, - }); - } - - private async getChildLiquidityGaugeStakedBalances(address: string) { - return this.appToolkit.helpers.singleStakingContractPositionBalanceHelper.getBalances({ - address, - appId: CURVE_DEFINITION.id, - groupId: CURVE_DEFINITION.groups.farm.id, network, - farmFilter: v => v.dataProps.implementation === 'child-liquidity-gauge', - resolveContract: ({ address, network }) => - this.curveContractFactory.curveChildLiquidityGauge({ address, network }), - resolveStakedTokenBalance: ({ contract, address, multicall }) => multicall.wrap(contract).balanceOf(address), - resolveRewardTokenBalances: async ({ contract, address, multicall, contractPosition }) => { - const rewardTokens = contractPosition.tokens.filter(isClaimable); - const otherRewardTokens = rewardTokens.filter(v => v.symbol !== 'CRV'); - - return Promise.all([ - multicall.wrap(contract).callStatic.claimable_tokens(address), - ...otherRewardTokens.map(v => multicall.wrap(contract).claimable_reward(address, v.address)), - ]); - }, }); } async getBalances(address: string) { - const [poolTokenBalances, rewardOnlyGaugeStakedBalances, childLiquidityGaugeStakedBalances] = await Promise.all([ + const [poolTokenBalances, stakedBalances] = await Promise.all([ this.getPoolTokenBalances(address), - this.getRewardsOnlyGaugeStakedBalances(address), - this.getChildLiquidityGaugeStakedBalances(address), + this.getStakedBalances(address), ]); return presentBalanceFetcherResponse([ @@ -81,7 +48,7 @@ export class ArbitrumCurveBalanceFetcher implements BalanceFetcher { }, { label: 'Staked', - assets: [...rewardOnlyGaugeStakedBalances, ...childLiquidityGaugeStakedBalances], + assets: stakedBalances, }, ]); } diff --git a/src/apps/curve/arbitrum/curve.farm.contract-position-fetcher.ts b/src/apps/curve/arbitrum/curve.farm.contract-position-fetcher.ts deleted file mode 100644 index 95c038b79..000000000 --- a/src/apps/curve/arbitrum/curve.farm.contract-position-fetcher.ts +++ /dev/null @@ -1,95 +0,0 @@ -import { Inject } from '@nestjs/common'; - -import { APP_TOOLKIT, IAppToolkit } from '~app-toolkit/app-toolkit.interface'; -import { Register } from '~app-toolkit/decorators'; -import { PositionFetcher } from '~position/position-fetcher.interface'; -import { ContractPosition } from '~position/position.interface'; -import { Network } from '~types/network.interface'; - -import { CurveChildLiquidityGauge, CurveContractFactory, CurveRewardsOnlyGauge } from '../contracts'; -import { CURVE_DEFINITION } from '../curve.definition'; -import { CurveChildLiquidityGaugeFactoryAddressHelper } from '../helpers/curve.child-liquidity-gauge-factory.address-helper'; -import { CurveChildLiquidityGaugeRewardTokenStrategy } from '../helpers/curve.child-liquidity-gauge.reward-token-strategy'; -import { CurveChildLiquidityGaugeRoiStrategy } from '../helpers/curve.child-liquidity-gauge.roi-strategy'; -import { CurveRewardsOnlyGaugeRewardTokenStrategy } from '../helpers/curve.rewards-only-gauge.reward-token-strategy'; -import { CurveRewardsOnlyGaugeRoiStrategy } from '../helpers/curve.rewards-only-gauge.roi-strategy'; - -import { CURVE_V1_POOL_DEFINITIONS, CURVE_V2_POOL_DEFINITIONS } from './curve.pool.definitions'; - -const appId = CURVE_DEFINITION.id; -const groupId = CURVE_DEFINITION.groups.farm.id; -const network = Network.ARBITRUM_MAINNET; - -@Register.ContractPositionFetcher({ appId, groupId, network }) -export class ArbitrumCurveFarmContractPositionFetcher implements PositionFetcher { - constructor( - @Inject(APP_TOOLKIT) private readonly appToolkit: IAppToolkit, - @Inject(CurveContractFactory) - private readonly curveContractFactory: CurveContractFactory, - @Inject(CurveRewardsOnlyGaugeRoiStrategy) - private readonly curveRewardsOnlyGaugeRoiStrategy: CurveRewardsOnlyGaugeRoiStrategy, - @Inject(CurveRewardsOnlyGaugeRewardTokenStrategy) - private readonly curveRewardsOnlyGaugeRewardTokenStrategy: CurveRewardsOnlyGaugeRewardTokenStrategy, - @Inject(CurveChildLiquidityGaugeFactoryAddressHelper) - private readonly childGaugeAddressHelper: CurveChildLiquidityGaugeFactoryAddressHelper, - @Inject(CurveChildLiquidityGaugeRoiStrategy) - private readonly childGaugeRoiStrategy: CurveChildLiquidityGaugeRoiStrategy, - @Inject(CurveChildLiquidityGaugeRewardTokenStrategy) - private readonly childGaugeRewardTokenStrategy: CurveChildLiquidityGaugeRewardTokenStrategy, - ) {} - - async getRewardsOnlyGaugePositions() { - const definitions = [CURVE_V1_POOL_DEFINITIONS, CURVE_V2_POOL_DEFINITIONS].flat().filter(v => !!v.gaugeAddress); - - return this.appToolkit.helpers.singleStakingFarmContractPositionHelper.getContractPositions({ - network, - appId, - groupId, - dependencies: [{ appId: CURVE_DEFINITION.id, groupIds: [CURVE_DEFINITION.groups.pool.id], network }], - resolveImplementation: () => 'rewards-only-gauge', - resolveFarmAddresses: () => definitions.map(v => v.gaugeAddress ?? null), - resolveFarmContract: ({ address, network }) => - this.curveContractFactory.curveRewardsOnlyGauge({ address, network }), - resolveStakedTokenAddress: ({ contract, multicall }) => multicall.wrap(contract).lp_token(), - resolveRewardTokenAddresses: this.curveRewardsOnlyGaugeRewardTokenStrategy.build(), - resolveIsActive: () => true, - resolveRois: this.curveRewardsOnlyGaugeRoiStrategy.build({ - tokenDefinitions: definitions, - }), - }); - } - - async getChildLiquidityGaugePositions() { - return this.appToolkit.helpers.singleStakingFarmContractPositionHelper.getContractPositions( - { - network, - appId, - groupId, - dependencies: [{ appId: CURVE_DEFINITION.id, groupIds: [CURVE_DEFINITION.groups.pool.id], network }], - resolveImplementation: () => 'child-liquidity-gauge', - resolveFarmAddresses: () => - this.childGaugeAddressHelper.getGaugeAddresses({ - factoryAddress: '0xabc000d88f23bb45525e447528dbf656a9d55bf5', - network, - }), - resolveFarmContract: ({ address, network }) => - this.curveContractFactory.curveChildLiquidityGauge({ address, network }), - resolveStakedTokenAddress: ({ contract, multicall }) => multicall.wrap(contract).lp_token(), - resolveRewardTokenAddresses: this.childGaugeRewardTokenStrategy.build({ - crvTokenAddress: '0x11cdb42b0eb46d95f990bedd4695a6e3fa034978', - }), - resolveRois: this.childGaugeRoiStrategy.build(), - resolveIsActive: () => true, - }, - ); - } - - async getPositions() { - const [rewardOnlyGaugePositions, childLiquidityGaugePositions] = await Promise.all([ - this.getRewardsOnlyGaugePositions(), - this.getChildLiquidityGaugePositions(), - ]); - - return [...rewardOnlyGaugePositions, ...childLiquidityGaugePositions]; - } -} diff --git a/src/apps/curve/arbitrum/curve.gauge.contract-position-fetcher.ts b/src/apps/curve/arbitrum/curve.gauge.contract-position-fetcher.ts new file mode 100644 index 000000000..4f8f2b81a --- /dev/null +++ b/src/apps/curve/arbitrum/curve.gauge.contract-position-fetcher.ts @@ -0,0 +1,28 @@ +import { Inject } from '@nestjs/common'; + +import { Register } from '~app-toolkit/decorators'; +import { PositionFetcher } from '~position/position-fetcher.interface'; +import { ContractPosition } from '~position/position.interface'; +import { Network } from '~types/network.interface'; + +import { CURVE_DEFINITION } from '../curve.definition'; +import { CurveGaugeDefaultContractPositionHelper } from '../helpers/curve.gauge.default.contract-position-helper'; + +const appId = CURVE_DEFINITION.id; +const groupId = CURVE_DEFINITION.groups.gauge.id; +const network = Network.ARBITRUM_MAINNET; + +@Register.ContractPositionFetcher({ appId, groupId, network }) +export class ArbitrumCurveGaugeContractPositionFetcher implements PositionFetcher { + constructor( + @Inject(CurveGaugeDefaultContractPositionHelper) + private readonly curveGaugeDefaultContractPositionHelper: CurveGaugeDefaultContractPositionHelper, + ) {} + + async getPositions() { + return this.curveGaugeDefaultContractPositionHelper.getPositions({ + network, + crvTokenAddress: '0x11cdb42b0eb46d95f990bedd4695a6e3fa034978', + }); + } +} diff --git a/src/apps/curve/arbitrum/curve.pool.definitions.ts b/src/apps/curve/arbitrum/curve.pool.definitions.ts deleted file mode 100644 index a55c5730a..000000000 --- a/src/apps/curve/arbitrum/curve.pool.definitions.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { CurvePoolDefinition } from '../curve.types'; - -export const CURVE_V1_POOL_DEFINITIONS: CurvePoolDefinition[] = [ - { - queryKey: '2pool', - label: '2Pool', - swapAddress: '0x7f90122bf0700f9e7e1f688fe926940e8839f353', - tokenAddress: '0x7f90122bf0700f9e7e1f688fe926940e8839f353', - gaugeAddress: '0xbf7e49483881c76487b0989cd7d9a8239b20ca41', - streamAddress: '0xff17560d746f85674fe7629ce986e949602ef948', - }, - { - queryKey: 'renBTC', - swapAddress: '0x3e01dd8a5e1fb3481f0f589056b428fc308af0fb', - tokenAddress: '0x3e01dd8a5e1fb3481f0f589056b428fc308af0fb', - gaugeAddress: '0xc2b1df84112619d190193e48148000e3990bf627', - streamAddress: '0x9f86c5142369b1ffd4223e5a2f2005fc66807894', - }, -]; - -export const CURVE_V2_POOL_DEFINITIONS: CurvePoolDefinition[] = [ - { - queryKey: 'tricrypto', - label: 'TriCrypto', - swapAddress: '0x960ea3e3c7fb317332d990873d354e18d7645590', - tokenAddress: '0x8e0b8c8bb9db49a46697f3a5bb8a308e744821d2', - gaugeAddress: '0x97e2768e8e73511ca874545dc5ff8067eb19b787', - streamAddress: '0x9044e12fb1732f88ed0c93cfa5e9bb9bd2990ce5', - }, - { - queryKey: 'eursusd', - swapAddress: '0xa827a652ead76c6b0b3d19dba05452e06e25c27e', - tokenAddress: '0x3dfe1324a0ee9d86337d06aeb829deb4528db9ca', - gaugeAddress: '0x37c7ef6b0e23c9bd9b620a6dabbfec13ce30d824', - streamAddress: '0x56eda719d82ae45cbb87b7030d3fb485685bea45', - }, -]; diff --git a/src/apps/curve/arbitrum/curve.pool.token-fetcher.ts b/src/apps/curve/arbitrum/curve.pool.token-fetcher.ts index efeb26222..7eab7b0cf 100644 --- a/src/apps/curve/arbitrum/curve.pool.token-fetcher.ts +++ b/src/apps/curve/arbitrum/curve.pool.token-fetcher.ts @@ -6,11 +6,7 @@ import { AppTokenPosition } from '~position/position.interface'; import { Network } from '~types/network.interface'; import { CURVE_DEFINITION } from '../curve.definition'; -import { CurveFactoryPoolTokenHelper } from '../helpers/curve.factory-pool.token-helper'; -import { CurveV1PoolTokenHelper } from '../helpers/curve.v1-pool.token-helper'; -import { CurveV2PoolTokenHelper } from '../helpers/curve.v2-pool.token-helper'; - -import { CURVE_V1_POOL_DEFINITIONS, CURVE_V2_POOL_DEFINITIONS } from './curve.pool.definitions'; +import { CurvePoolDefaultTokenHelper } from '../helpers/curve.pool.default.token-helper'; const appId = CURVE_DEFINITION.id; const groupId = CURVE_DEFINITION.groups.pool.id; @@ -19,44 +15,11 @@ const network = Network.ARBITRUM_MAINNET; @Register.TokenPositionFetcher({ appId, groupId, network }) export class ArbitrumCurvePoolTokenFetcher implements PositionFetcher { constructor( - @Inject(CurveV1PoolTokenHelper) - private readonly curveV1PoolTokenHelper: CurveV1PoolTokenHelper, - @Inject(CurveV2PoolTokenHelper) - private readonly curveV2PoolTokenHelper: CurveV2PoolTokenHelper, - @Inject(CurveFactoryPoolTokenHelper) - private readonly curveFactoryPoolTokenHelper: CurveFactoryPoolTokenHelper, + @Inject(CurvePoolDefaultTokenHelper) + private readonly curvePoolDefaultTokenHelper: CurvePoolDefaultTokenHelper, ) {} async getPositions() { - const [v1Pools] = await Promise.all([ - this.curveV1PoolTokenHelper.getTokens({ - network, - appId, - groupId, - poolDefinitions: CURVE_V1_POOL_DEFINITIONS, - statsUrl: 'https://stats.curve.fi/raw-stats-arbitrum/apys.json', - }), - ]); - - const [v2Pools, v2FactoryPools] = await Promise.all([ - this.curveV2PoolTokenHelper.getTokens({ - network, - appId, - groupId, - poolDefinitions: CURVE_V2_POOL_DEFINITIONS, - statsUrl: 'https://stats.curve.fi/raw-stats-arbitrum/apys.json', - baseCurveTokens: v1Pools, - }), - this.curveFactoryPoolTokenHelper.getTokens({ - factoryAddress: '0xb17b674d9c5cb2e441f8e196a2f048a81355d031', - network, - appId, - groupId, - baseCurveTokens: v1Pools, - skipVolume: true, // Arbitrum public RPC can't handle this - }), - ]); - - return [v1Pools, v2Pools, v2FactoryPools].flat(); + return this.curvePoolDefaultTokenHelper.getTokens({ network }); } } diff --git a/src/apps/curve/avalanche/curve.balance-fetcher.ts b/src/apps/curve/avalanche/curve.balance-fetcher.ts index f0729f830..4d88a082c 100644 --- a/src/apps/curve/avalanche/curve.balance-fetcher.ts +++ b/src/apps/curve/avalanche/curve.balance-fetcher.ts @@ -4,11 +4,10 @@ import { APP_TOOLKIT, IAppToolkit } from '~app-toolkit/app-toolkit.interface'; import { Register } from '~app-toolkit/decorators'; import { presentBalanceFetcherResponse } from '~app-toolkit/helpers/presentation/balance-fetcher-response.present'; import { BalanceFetcher } from '~balance/balance-fetcher.interface'; -import { isClaimable } from '~position/position.utils'; import { Network } from '~types/network.interface'; -import { CurveChildLiquidityGauge, CurveContractFactory, CurveRewardsOnlyGauge } from '../contracts'; import { CURVE_DEFINITION } from '../curve.definition'; +import { CurveGaugeDefaultContractPositionBalanceHelper } from '../helpers/curve.gauge.default.contract-position-balance-helper'; const network = Network.AVALANCHE_MAINNET; @@ -16,7 +15,8 @@ const network = Network.AVALANCHE_MAINNET; export class AvalancheCurveBalanceFetcher implements BalanceFetcher { constructor( @Inject(APP_TOOLKIT) private readonly appToolkit: IAppToolkit, - @Inject(CurveContractFactory) private readonly curveContractFactory: CurveContractFactory, + @Inject(CurveGaugeDefaultContractPositionBalanceHelper) + private readonly curveGaugeDefaultContractPositionBalanceHelper: CurveGaugeDefaultContractPositionBalanceHelper, ) {} private async getPoolTokenBalances(address: string) { @@ -28,50 +28,17 @@ export class AvalancheCurveBalanceFetcher implements BalanceFetcher { }); } - private async getRewardsOnlyGaugeStakedBalances(address: string) { - return this.appToolkit.helpers.singleStakingContractPositionBalanceHelper.getBalances({ + private async getStakedBalances(address: string) { + return this.curveGaugeDefaultContractPositionBalanceHelper.getBalances({ address, - appId: CURVE_DEFINITION.id, - groupId: CURVE_DEFINITION.groups.farm.id, - network, - farmFilter: v => v.dataProps.implementation === 'rewards-only-gauge', - resolveContract: ({ address, network }) => this.curveContractFactory.curveRewardsOnlyGauge({ address, network }), - resolveStakedTokenBalance: ({ contract, address, multicall }) => multicall.wrap(contract).balanceOf(address), - resolveRewardTokenBalances: ({ contract, address, multicall, contractPosition }) => { - const rewardTokens = contractPosition.tokens.filter(isClaimable); - const wrappedContract = multicall.wrap(contract); - return Promise.all(rewardTokens.map(v => wrappedContract.claimable_reward_write(address, v.address))); - }, - }); - } - - private async getChildLiquidityGaugeStakedBalances(address: string) { - return this.appToolkit.helpers.singleStakingContractPositionBalanceHelper.getBalances({ - address, - appId: CURVE_DEFINITION.id, - groupId: CURVE_DEFINITION.groups.farm.id, network, - farmFilter: v => v.dataProps.implementation === 'child-liquidity-gauge', - resolveContract: ({ address, network }) => - this.curveContractFactory.curveChildLiquidityGauge({ address, network }), - resolveStakedTokenBalance: ({ contract, address, multicall }) => multicall.wrap(contract).balanceOf(address), - resolveRewardTokenBalances: async ({ contract, address, multicall, contractPosition }) => { - const rewardTokens = contractPosition.tokens.filter(isClaimable); - const otherRewardTokens = rewardTokens.filter(v => v.symbol !== 'CRV'); - - return Promise.all([ - multicall.wrap(contract).callStatic.claimable_tokens(address), - ...otherRewardTokens.map(v => multicall.wrap(contract).claimable_reward(address, v.address)), - ]); - }, }); } async getBalances(address: string) { - const [poolTokenBalances, rewardOnlyGaugeStakedBalances, childLiquidityGaugeStakedBalances] = await Promise.all([ + const [poolTokenBalances, stakedBalances] = await Promise.all([ this.getPoolTokenBalances(address), - this.getRewardsOnlyGaugeStakedBalances(address), - this.getChildLiquidityGaugeStakedBalances(address), + this.getStakedBalances(address), ]); return presentBalanceFetcherResponse([ @@ -81,7 +48,7 @@ export class AvalancheCurveBalanceFetcher implements BalanceFetcher { }, { label: 'Staked', - assets: [...rewardOnlyGaugeStakedBalances, ...childLiquidityGaugeStakedBalances], + assets: stakedBalances, }, ]); } diff --git a/src/apps/curve/avalanche/curve.farm.contract-position-fetcher.ts b/src/apps/curve/avalanche/curve.farm.contract-position-fetcher.ts deleted file mode 100644 index 7127783a4..000000000 --- a/src/apps/curve/avalanche/curve.farm.contract-position-fetcher.ts +++ /dev/null @@ -1,93 +0,0 @@ -import { Inject } from '@nestjs/common'; - -import { APP_TOOLKIT, IAppToolkit } from '~app-toolkit/app-toolkit.interface'; -import { Register } from '~app-toolkit/decorators'; -import { PositionFetcher } from '~position/position-fetcher.interface'; -import { ContractPosition } from '~position/position.interface'; -import { Network } from '~types/network.interface'; - -import { CurveChildLiquidityGauge, CurveContractFactory, CurveRewardsOnlyGauge } from '../contracts'; -import { CURVE_DEFINITION } from '../curve.definition'; -import { CurveChildLiquidityGaugeFactoryAddressHelper } from '../helpers/curve.child-liquidity-gauge-factory.address-helper'; -import { CurveChildLiquidityGaugeRewardTokenStrategy } from '../helpers/curve.child-liquidity-gauge.reward-token-strategy'; -import { CurveChildLiquidityGaugeRoiStrategy } from '../helpers/curve.child-liquidity-gauge.roi-strategy'; -import { CurveRewardsOnlyGaugeRewardTokenStrategy } from '../helpers/curve.rewards-only-gauge.reward-token-strategy'; -import { CurveRewardsOnlyGaugeRoiStrategy } from '../helpers/curve.rewards-only-gauge.roi-strategy'; - -import { CURVE_V1_POOL_DEFINITIONS, CURVE_V2_POOL_DEFINITIONS } from './curve.pool.definitions'; - -const appId = CURVE_DEFINITION.id; -const groupId = CURVE_DEFINITION.groups.farm.id; -const network = Network.AVALANCHE_MAINNET; - -@Register.ContractPositionFetcher({ appId, groupId, network }) -export class AvalancheCurveFarmContractPositionFetcher implements PositionFetcher { - constructor( - @Inject(APP_TOOLKIT) private readonly appToolkit: IAppToolkit, - @Inject(CurveContractFactory) - private readonly curveContractFactory: CurveContractFactory, - @Inject(CurveRewardsOnlyGaugeRoiStrategy) - private readonly curveRewardsOnlyGaugeRoiStrategy: CurveRewardsOnlyGaugeRoiStrategy, - @Inject(CurveRewardsOnlyGaugeRewardTokenStrategy) - private readonly curveRewardsOnlyGaugeRewardTokenStrategy: CurveRewardsOnlyGaugeRewardTokenStrategy, - @Inject(CurveChildLiquidityGaugeFactoryAddressHelper) - private readonly childGaugeAddressHelper: CurveChildLiquidityGaugeFactoryAddressHelper, - @Inject(CurveChildLiquidityGaugeRoiStrategy) - private readonly childGaugeRoiStrategy: CurveChildLiquidityGaugeRoiStrategy, - @Inject(CurveChildLiquidityGaugeRewardTokenStrategy) - private readonly childGaugeRewardTokenStrategy: CurveChildLiquidityGaugeRewardTokenStrategy, - ) {} - - async getRewardsOnlyGaugePositions() { - const definitions = [CURVE_V1_POOL_DEFINITIONS, CURVE_V2_POOL_DEFINITIONS].flat().filter(v => !!v.gaugeAddress); - - return this.appToolkit.helpers.singleStakingFarmContractPositionHelper.getContractPositions({ - network, - appId, - groupId, - dependencies: [{ appId: CURVE_DEFINITION.id, groupIds: [CURVE_DEFINITION.groups.pool.id], network }], - resolveImplementation: () => 'rewards-only-gauge', - resolveFarmAddresses: () => definitions.map(v => v.gaugeAddress!), - resolveFarmContract: ({ address, network }) => - this.curveContractFactory.curveRewardsOnlyGauge({ address, network }), - resolveStakedTokenAddress: ({ contract, multicall }) => multicall.wrap(contract).lp_token(), - resolveRewardTokenAddresses: this.curveRewardsOnlyGaugeRewardTokenStrategy.build(), - resolveRois: this.curveRewardsOnlyGaugeRoiStrategy.build({ tokenDefinitions: definitions }), - resolveIsActive: () => true, - }); - } - - async getChildLiquidityGaugePositions() { - return this.appToolkit.helpers.singleStakingFarmContractPositionHelper.getContractPositions( - { - network, - appId, - groupId, - dependencies: [{ appId: CURVE_DEFINITION.id, groupIds: [CURVE_DEFINITION.groups.pool.id], network }], - resolveImplementation: () => 'child-liquidity-gauge', - resolveFarmAddresses: () => - this.childGaugeAddressHelper.getGaugeAddresses({ - factoryAddress: '0xabc000d88f23bb45525e447528dbf656a9d55bf5', - network, - }), - resolveFarmContract: ({ address, network }) => - this.curveContractFactory.curveChildLiquidityGauge({ address, network }), - resolveStakedTokenAddress: ({ contract, multicall }) => multicall.wrap(contract).lp_token(), - resolveRewardTokenAddresses: this.childGaugeRewardTokenStrategy.build({ - crvTokenAddress: '0x47536f17f4ff30e64a96a7555826b8f9e66ec468', - }), - resolveRois: this.childGaugeRoiStrategy.build(), - resolveIsActive: () => true, - }, - ); - } - - async getPositions() { - const [rewardOnlyGaugePositions, childLiquidityGaugePositions] = await Promise.all([ - this.getRewardsOnlyGaugePositions(), - this.getChildLiquidityGaugePositions(), - ]); - - return [...rewardOnlyGaugePositions, ...childLiquidityGaugePositions]; - } -} diff --git a/src/apps/curve/avalanche/curve.gauge.contract-position-fetcher.ts b/src/apps/curve/avalanche/curve.gauge.contract-position-fetcher.ts new file mode 100644 index 000000000..173adc68e --- /dev/null +++ b/src/apps/curve/avalanche/curve.gauge.contract-position-fetcher.ts @@ -0,0 +1,28 @@ +import { Inject } from '@nestjs/common'; + +import { Register } from '~app-toolkit/decorators'; +import { PositionFetcher } from '~position/position-fetcher.interface'; +import { ContractPosition } from '~position/position.interface'; +import { Network } from '~types/network.interface'; + +import { CURVE_DEFINITION } from '../curve.definition'; +import { CurveGaugeDefaultContractPositionHelper } from '../helpers/curve.gauge.default.contract-position-helper'; + +const appId = CURVE_DEFINITION.id; +const groupId = CURVE_DEFINITION.groups.gauge.id; +const network = Network.ARBITRUM_MAINNET; + +@Register.ContractPositionFetcher({ appId, groupId, network }) +export class ArbitrumCurveGaugeContractPositionFetcher implements PositionFetcher { + constructor( + @Inject(CurveGaugeDefaultContractPositionHelper) + private readonly curveGaugeDefaultContractPositionHelper: CurveGaugeDefaultContractPositionHelper, + ) {} + + async getPositions() { + return this.curveGaugeDefaultContractPositionHelper.getPositions({ + network, + crvTokenAddress: '0x47536f17f4ff30e64a96a7555826b8f9e66ec468', + }); + } +} diff --git a/src/apps/curve/avalanche/curve.pool.definitions.ts b/src/apps/curve/avalanche/curve.pool.definitions.ts deleted file mode 100644 index 41e01c9e2..000000000 --- a/src/apps/curve/avalanche/curve.pool.definitions.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { CurvePoolDefinition } from '../curve.types'; - -export const CURVE_V1_POOL_DEFINITIONS: CurvePoolDefinition[] = [ - { - queryKey: 'aave', - label: 'Aave 3Pool', - swapAddress: '0x7f90122bf0700f9e7e1f688fe926940e8839f353', - tokenAddress: '0x1337bedc9d22ecbe766df105c9623922a27963ec', - gaugeAddress: '0x5b5cfe992adac0c9d48e05854b2d91c73a003858', - streamAddress: '0xb504b6eb06760019801a91b451d3f7bd9f027fc9', - }, - { - queryKey: 'renBTC', - swapAddress: '0x16a7da911a4dd1d83f3ff066fe28f3c792c50d90', - tokenAddress: '0xc2b1df84112619d190193e48148000e3990bf627', - gaugeAddress: '0x0f9cb53ebe405d49a0bbdbd291a65ff571bc83e1', - streamAddress: '0x75d05190f35567e79012c2f0a02330d3ed8a1f74', - }, -]; - -export const CURVE_V2_POOL_DEFINITIONS: CurvePoolDefinition[] = [ - { - queryKey: 'atricrypto', - label: 'Aave TriCrypto', - swapAddress: '0xb755b949c126c04e0348dd881a5cf55d424742b2', - tokenAddress: '0x1dab6560494b04473a0be3e7d83cf3fdf3a51828', - gaugeAddress: '0x445fe580ef8d70ff569ab36e80c647af338db351', - streamAddress: '0xa05e565ca0a103fcd999c7a7b8de7bd15d5f6505', - }, -]; diff --git a/src/apps/curve/avalanche/curve.pool.token-fetcher.ts b/src/apps/curve/avalanche/curve.pool.token-fetcher.ts index 165e4808a..2b9eb26fc 100644 --- a/src/apps/curve/avalanche/curve.pool.token-fetcher.ts +++ b/src/apps/curve/avalanche/curve.pool.token-fetcher.ts @@ -1,16 +1,13 @@ import { Inject } from '@nestjs/common'; import { Register } from '~app-toolkit/decorators'; +import { AAVE_V2_DEFINITION } from '~apps/aave-v2/aave-v2.definition'; import { PositionFetcher } from '~position/position-fetcher.interface'; import { AppTokenPosition } from '~position/position.interface'; import { Network } from '~types/network.interface'; import { CURVE_DEFINITION } from '../curve.definition'; -import { CurveFactoryPoolTokenHelper } from '../helpers/curve.factory-pool.token-helper'; -import { CurveV1PoolTokenHelper } from '../helpers/curve.v1-pool.token-helper'; -import { CurveV2PoolTokenHelper } from '../helpers/curve.v2-pool.token-helper'; - -import { CURVE_V1_POOL_DEFINITIONS, CURVE_V2_POOL_DEFINITIONS } from './curve.pool.definitions'; +import { CurvePoolDefaultTokenHelper } from '../helpers/curve.pool.default.token-helper'; const appId = CURVE_DEFINITION.id; const groupId = CURVE_DEFINITION.groups.pool.id; @@ -19,60 +16,14 @@ const network = Network.AVALANCHE_MAINNET; @Register.TokenPositionFetcher({ appId, groupId, network }) export class AvalancheCurvePoolTokenFetcher implements PositionFetcher { constructor( - @Inject(CurveV1PoolTokenHelper) - private readonly curveV1PoolTokenHelper: CurveV1PoolTokenHelper, - @Inject(CurveV2PoolTokenHelper) - private readonly curveV2PoolTokenHelper: CurveV2PoolTokenHelper, - @Inject(CurveFactoryPoolTokenHelper) - private readonly curveFactoryPoolTokenHelper: CurveFactoryPoolTokenHelper, + @Inject(CurvePoolDefaultTokenHelper) + private readonly curvePoolDefaultTokenHelper: CurvePoolDefaultTokenHelper, ) {} async getPositions() { - const [v1Pools] = await Promise.all([ - this.curveV1PoolTokenHelper.getTokens({ - network, - appId, - groupId, - poolDefinitions: CURVE_V1_POOL_DEFINITIONS, - statsUrl: 'https://stats.curve.fi/raw-stats-avalanche/apys.json', - appTokenDependencies: [ - { - // @TODO: Migrate Aave V2 - appId: 'aave-v2', - groupIds: ['supply'], - network, - }, - ], - }), - ]); - - const [v2Pools, v2FactoryPools] = await Promise.all([ - this.curveV2PoolTokenHelper.getTokens({ - network, - appId, - groupId, - poolDefinitions: CURVE_V2_POOL_DEFINITIONS, - baseCurveTokens: v1Pools, - statsUrl: 'https://stats.curve.fi/raw-stats-avalanche/apys.json', - appTokenDependencies: [ - { - // @TODO: Migrate Aave V2 - appId: 'aave-v2', - groupIds: ['supply'], - network, - }, - ], - }), - this.curveFactoryPoolTokenHelper.getTokens({ - factoryAddress: '0xb17b674d9c5cb2e441f8e196a2f048a81355d031', - network, - appId, - groupId, - baseCurveTokens: v1Pools, - skipVolume: true, // BlockService is only supported on ETHEREUM_MAINNET. - }), - ]); - - return [v1Pools, v2Pools, v2FactoryPools].flat(); + return this.curvePoolDefaultTokenHelper.getTokens({ + network, + dependencies: [{ appId: AAVE_V2_DEFINITION.id, groupIds: [AAVE_V2_DEFINITION.groups.supply.id], network }], + }); } } diff --git a/src/apps/curve/contracts/abis/curve-address-resolver.json b/src/apps/curve/contracts/abis/curve-address-resolver.json new file mode 100644 index 000000000..73bf8e88e --- /dev/null +++ b/src/apps/curve/contracts/abis/curve-address-resolver.json @@ -0,0 +1,146 @@ +[ + { + "name": "NewAddressIdentifier", + "inputs": [ + { "type": "uint256", "name": "id", "indexed": true }, + { "type": "address", "name": "addr", "indexed": false }, + { "type": "string", "name": "description", "indexed": false } + ], + "anonymous": false, + "type": "event" + }, + { + "name": "AddressModified", + "inputs": [ + { "type": "uint256", "name": "id", "indexed": true }, + { "type": "address", "name": "new_address", "indexed": false }, + { "type": "uint256", "name": "version", "indexed": false } + ], + "anonymous": false, + "type": "event" + }, + { + "name": "CommitNewAdmin", + "inputs": [ + { "type": "uint256", "name": "deadline", "indexed": true }, + { "type": "address", "name": "admin", "indexed": true } + ], + "anonymous": false, + "type": "event" + }, + { + "name": "NewAdmin", + "inputs": [{ "type": "address", "name": "admin", "indexed": true }], + "anonymous": false, + "type": "event" + }, + { + "outputs": [], + "inputs": [{ "type": "address", "name": "_admin" }], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "name": "get_registry", + "outputs": [{ "type": "address", "name": "" }], + "inputs": [], + "stateMutability": "view", + "type": "function" + }, + { + "name": "max_id", + "outputs": [{ "type": "uint256", "name": "" }], + "inputs": [], + "stateMutability": "view", + "type": "function" + }, + { + "name": "get_address", + "outputs": [{ "type": "address", "name": "" }], + "inputs": [{ "type": "uint256", "name": "_id" }], + "stateMutability": "view", + "type": "function" + }, + { + "name": "add_new_id", + "outputs": [{ "type": "uint256", "name": "" }], + "inputs": [ + { "type": "address", "name": "_address" }, + { "type": "string", "name": "_description" } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "name": "set_address", + "outputs": [{ "type": "bool", "name": "" }], + "inputs": [ + { "type": "uint256", "name": "_id" }, + { "type": "address", "name": "_address" } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "name": "unset_address", + "outputs": [{ "type": "bool", "name": "" }], + "inputs": [{ "type": "uint256", "name": "_id" }], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "name": "commit_transfer_ownership", + "outputs": [{ "type": "bool", "name": "" }], + "inputs": [{ "type": "address", "name": "_new_admin" }], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "name": "apply_transfer_ownership", + "outputs": [{ "type": "bool", "name": "" }], + "inputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "name": "revert_transfer_ownership", + "outputs": [{ "type": "bool", "name": "" }], + "inputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "name": "admin", + "outputs": [{ "type": "address", "name": "" }], + "inputs": [], + "stateMutability": "view", + "type": "function" + }, + { + "name": "transfer_ownership_deadline", + "outputs": [{ "type": "uint256", "name": "" }], + "inputs": [], + "stateMutability": "view", + "type": "function" + }, + { + "name": "future_admin", + "outputs": [{ "type": "address", "name": "" }], + "inputs": [], + "stateMutability": "view", + "type": "function" + }, + { + "name": "get_id_info", + "outputs": [ + { "type": "address", "name": "addr" }, + { "type": "bool", "name": "is_active" }, + { "type": "uint256", "name": "version" }, + { "type": "uint256", "name": "last_modified" }, + { "type": "string", "name": "description" } + ], + "inputs": [{ "type": "uint256", "name": "arg0" }], + "stateMutability": "view", + "type": "function" + } +] diff --git a/src/apps/curve/contracts/abis/curve-child-liquidity-gauge-factory.json b/src/apps/curve/contracts/abis/curve-child-liquidity-gauge-factory.json deleted file mode 100644 index c75f97c93..000000000 --- a/src/apps/curve/contracts/abis/curve-child-liquidity-gauge-factory.json +++ /dev/null @@ -1,253 +0,0 @@ -[ - { - "name": "DeployedGauge", - "inputs": [ - { "name": "_implementation", "type": "address", "indexed": true }, - { "name": "_lp_token", "type": "address", "indexed": true }, - { "name": "_deployer", "type": "address", "indexed": true }, - { "name": "_salt", "type": "bytes32", "indexed": false }, - { "name": "_gauge", "type": "address", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "Minted", - "inputs": [ - { "name": "_user", "type": "address", "indexed": true }, - { "name": "_gauge", "type": "address", "indexed": true }, - { "name": "_new_total", "type": "uint256", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "UpdateImplementation", - "inputs": [ - { "name": "_old_implementation", "type": "address", "indexed": false }, - { "name": "_new_implementation", "type": "address", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "UpdateVotingEscrow", - "inputs": [ - { "name": "_old_voting_escrow", "type": "address", "indexed": false }, - { "name": "_new_voting_escrow", "type": "address", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "UpdateCallProxy", - "inputs": [ - { "name": "_old_call_proxy", "type": "address", "indexed": false }, - { "name": "_new_call_proxy", "type": "address", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "UpdateMirrored", - "inputs": [ - { "name": "_gauge", "type": "address", "indexed": true }, - { "name": "_mirrored", "type": "bool", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "TransferOwnership", - "inputs": [ - { "name": "_old_owner", "type": "address", "indexed": false }, - { "name": "_new_owner", "type": "address", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "stateMutability": "nonpayable", - "type": "constructor", - "inputs": [ - { "name": "_call_proxy", "type": "address" }, - { "name": "_crv", "type": "address" }, - { "name": "_owner", "type": "address" } - ], - "outputs": [] - }, - { - "stateMutability": "nonpayable", - "type": "function", - "name": "mint", - "inputs": [{ "name": "_gauge", "type": "address" }], - "outputs": [] - }, - { - "stateMutability": "nonpayable", - "type": "function", - "name": "mint_many", - "inputs": [{ "name": "_gauges", "type": "address[32]" }], - "outputs": [] - }, - { - "stateMutability": "nonpayable", - "type": "function", - "name": "deploy_gauge", - "inputs": [ - { "name": "_lp_token", "type": "address" }, - { "name": "_salt", "type": "bytes32" } - ], - "outputs": [{ "name": "", "type": "address" }] - }, - { - "stateMutability": "nonpayable", - "type": "function", - "name": "deploy_gauge", - "inputs": [ - { "name": "_lp_token", "type": "address" }, - { "name": "_salt", "type": "bytes32" }, - { "name": "_manager", "type": "address" } - ], - "outputs": [{ "name": "", "type": "address" }] - }, - { - "stateMutability": "nonpayable", - "type": "function", - "name": "set_voting_escrow", - "inputs": [{ "name": "_voting_escrow", "type": "address" }], - "outputs": [] - }, - { - "stateMutability": "nonpayable", - "type": "function", - "name": "set_implementation", - "inputs": [{ "name": "_implementation", "type": "address" }], - "outputs": [] - }, - { - "stateMutability": "nonpayable", - "type": "function", - "name": "set_mirrored", - "inputs": [ - { "name": "_gauge", "type": "address" }, - { "name": "_mirrored", "type": "bool" } - ], - "outputs": [] - }, - { - "stateMutability": "nonpayable", - "type": "function", - "name": "set_call_proxy", - "inputs": [{ "name": "_new_call_proxy", "type": "address" }], - "outputs": [] - }, - { - "stateMutability": "nonpayable", - "type": "function", - "name": "commit_transfer_ownership", - "inputs": [{ "name": "_future_owner", "type": "address" }], - "outputs": [] - }, - { - "stateMutability": "nonpayable", - "type": "function", - "name": "accept_transfer_ownership", - "inputs": [], - "outputs": [] - }, - { - "stateMutability": "view", - "type": "function", - "name": "is_valid_gauge", - "inputs": [{ "name": "_gauge", "type": "address" }], - "outputs": [{ "name": "", "type": "bool" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "is_mirrored", - "inputs": [{ "name": "_gauge", "type": "address" }], - "outputs": [{ "name": "", "type": "bool" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "last_request", - "inputs": [{ "name": "_gauge", "type": "address" }], - "outputs": [{ "name": "", "type": "uint256" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "get_implementation", - "inputs": [], - "outputs": [{ "name": "", "type": "address" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "voting_escrow", - "inputs": [], - "outputs": [{ "name": "", "type": "address" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "owner", - "inputs": [], - "outputs": [{ "name": "", "type": "address" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "future_owner", - "inputs": [], - "outputs": [{ "name": "", "type": "address" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "call_proxy", - "inputs": [], - "outputs": [{ "name": "", "type": "address" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "gauge_data", - "inputs": [{ "name": "arg0", "type": "address" }], - "outputs": [{ "name": "", "type": "uint256" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "minted", - "inputs": [ - { "name": "arg0", "type": "address" }, - { "name": "arg1", "type": "address" } - ], - "outputs": [{ "name": "", "type": "uint256" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "get_gauge_from_lp_token", - "inputs": [{ "name": "arg0", "type": "address" }], - "outputs": [{ "name": "", "type": "address" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "get_gauge_count", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "get_gauge", - "inputs": [{ "name": "arg0", "type": "uint256" }], - "outputs": [{ "name": "", "type": "address" }] - } -] diff --git a/src/apps/curve/contracts/abis/curve-crypto-factory.json b/src/apps/curve/contracts/abis/curve-crypto-factory.json new file mode 100644 index 000000000..4e2e3b663 --- /dev/null +++ b/src/apps/curve/contracts/abis/curve-crypto-factory.json @@ -0,0 +1,292 @@ +[ + { + "name": "CryptoPoolDeployed", + "inputs": [ + { "name": "token", "type": "address", "indexed": false }, + { "name": "coins", "type": "address[2]", "indexed": false }, + { "name": "A", "type": "uint256", "indexed": false }, + { "name": "gamma", "type": "uint256", "indexed": false }, + { "name": "mid_fee", "type": "uint256", "indexed": false }, + { "name": "out_fee", "type": "uint256", "indexed": false }, + { "name": "allowed_extra_profit", "type": "uint256", "indexed": false }, + { "name": "fee_gamma", "type": "uint256", "indexed": false }, + { "name": "adjustment_step", "type": "uint256", "indexed": false }, + { "name": "admin_fee", "type": "uint256", "indexed": false }, + { "name": "ma_half_time", "type": "uint256", "indexed": false }, + { "name": "initial_price", "type": "uint256", "indexed": false }, + { "name": "deployer", "type": "address", "indexed": false } + ], + "anonymous": false, + "type": "event" + }, + { + "name": "LiquidityGaugeDeployed", + "inputs": [ + { "name": "pool", "type": "address", "indexed": false }, + { "name": "token", "type": "address", "indexed": false }, + { "name": "gauge", "type": "address", "indexed": false } + ], + "anonymous": false, + "type": "event" + }, + { + "name": "UpdateFeeReceiver", + "inputs": [ + { "name": "_old_fee_receiver", "type": "address", "indexed": false }, + { "name": "_new_fee_receiver", "type": "address", "indexed": false } + ], + "anonymous": false, + "type": "event" + }, + { + "name": "UpdatePoolImplementation", + "inputs": [ + { "name": "_old_pool_implementation", "type": "address", "indexed": false }, + { "name": "_new_pool_implementation", "type": "address", "indexed": false } + ], + "anonymous": false, + "type": "event" + }, + { + "name": "UpdateTokenImplementation", + "inputs": [ + { "name": "_old_token_implementation", "type": "address", "indexed": false }, + { "name": "_new_token_implementation", "type": "address", "indexed": false } + ], + "anonymous": false, + "type": "event" + }, + { + "name": "UpdateGaugeImplementation", + "inputs": [ + { "name": "_old_gauge_implementation", "type": "address", "indexed": false }, + { "name": "_new_gauge_implementation", "type": "address", "indexed": false } + ], + "anonymous": false, + "type": "event" + }, + { + "name": "TransferOwnership", + "inputs": [ + { "name": "_old_owner", "type": "address", "indexed": false }, + { "name": "_new_owner", "type": "address", "indexed": false } + ], + "anonymous": false, + "type": "event" + }, + { + "stateMutability": "nonpayable", + "type": "constructor", + "inputs": [ + { "name": "_fee_receiver", "type": "address" }, + { "name": "_pool_implementation", "type": "address" }, + { "name": "_token_implementation", "type": "address" }, + { "name": "_gauge_implementation", "type": "address" }, + { "name": "_weth", "type": "address" } + ], + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "name": "deploy_pool", + "inputs": [ + { "name": "_name", "type": "string" }, + { "name": "_symbol", "type": "string" }, + { "name": "_coins", "type": "address[2]" }, + { "name": "A", "type": "uint256" }, + { "name": "gamma", "type": "uint256" }, + { "name": "mid_fee", "type": "uint256" }, + { "name": "out_fee", "type": "uint256" }, + { "name": "allowed_extra_profit", "type": "uint256" }, + { "name": "fee_gamma", "type": "uint256" }, + { "name": "adjustment_step", "type": "uint256" }, + { "name": "admin_fee", "type": "uint256" }, + { "name": "ma_half_time", "type": "uint256" }, + { "name": "initial_price", "type": "uint256" } + ], + "outputs": [{ "name": "", "type": "address" }] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "name": "deploy_gauge", + "inputs": [{ "name": "_pool", "type": "address" }], + "outputs": [{ "name": "", "type": "address" }] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "name": "set_fee_receiver", + "inputs": [{ "name": "_fee_receiver", "type": "address" }], + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "name": "set_pool_implementation", + "inputs": [{ "name": "_pool_implementation", "type": "address" }], + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "name": "set_token_implementation", + "inputs": [{ "name": "_token_implementation", "type": "address" }], + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "name": "set_gauge_implementation", + "inputs": [{ "name": "_gauge_implementation", "type": "address" }], + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "name": "commit_transfer_ownership", + "inputs": [{ "name": "_addr", "type": "address" }], + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "name": "accept_transfer_ownership", + "inputs": [], + "outputs": [] + }, + { + "stateMutability": "view", + "type": "function", + "name": "find_pool_for_coins", + "inputs": [ + { "name": "_from", "type": "address" }, + { "name": "_to", "type": "address" } + ], + "outputs": [{ "name": "", "type": "address" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "find_pool_for_coins", + "inputs": [ + { "name": "_from", "type": "address" }, + { "name": "_to", "type": "address" }, + { "name": "i", "type": "uint256" } + ], + "outputs": [{ "name": "", "type": "address" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "get_coins", + "inputs": [{ "name": "_pool", "type": "address" }], + "outputs": [{ "name": "", "type": "address[2]" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "get_decimals", + "inputs": [{ "name": "_pool", "type": "address" }], + "outputs": [{ "name": "", "type": "uint256[2]" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "get_balances", + "inputs": [{ "name": "_pool", "type": "address" }], + "outputs": [{ "name": "", "type": "uint256[2]" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "get_coin_indices", + "inputs": [ + { "name": "_pool", "type": "address" }, + { "name": "_from", "type": "address" }, + { "name": "_to", "type": "address" } + ], + "outputs": [ + { "name": "", "type": "uint256" }, + { "name": "", "type": "uint256" } + ] + }, + { + "stateMutability": "view", + "type": "function", + "name": "get_gauge", + "inputs": [{ "name": "_pool", "type": "address" }], + "outputs": [{ "name": "", "type": "address" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "get_eth_index", + "inputs": [{ "name": "_pool", "type": "address" }], + "outputs": [{ "name": "", "type": "uint256" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "get_token", + "inputs": [{ "name": "_pool", "type": "address" }], + "outputs": [{ "name": "", "type": "address" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "admin", + "inputs": [], + "outputs": [{ "name": "", "type": "address" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "future_admin", + "inputs": [], + "outputs": [{ "name": "", "type": "address" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "fee_receiver", + "inputs": [], + "outputs": [{ "name": "", "type": "address" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "pool_implementation", + "inputs": [], + "outputs": [{ "name": "", "type": "address" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "token_implementation", + "inputs": [], + "outputs": [{ "name": "", "type": "address" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "gauge_implementation", + "inputs": [], + "outputs": [{ "name": "", "type": "address" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "pool_count", + "inputs": [], + "outputs": [{ "name": "", "type": "uint256" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "pool_list", + "inputs": [{ "name": "arg0", "type": "uint256" }], + "outputs": [{ "name": "", "type": "address" }] + } +] diff --git a/src/apps/curve/contracts/abis/curve-crypto-pool.json b/src/apps/curve/contracts/abis/curve-crypto-pool.json deleted file mode 100644 index c90e390f9..000000000 --- a/src/apps/curve/contracts/abis/curve-crypto-pool.json +++ /dev/null @@ -1,627 +0,0 @@ -[ - { - "name": "TokenExchange", - "inputs": [ - { "name": "buyer", "type": "address", "indexed": true }, - { "name": "sold_id", "type": "uint256", "indexed": false }, - { "name": "tokens_sold", "type": "uint256", "indexed": false }, - { "name": "bought_id", "type": "uint256", "indexed": false }, - { "name": "tokens_bought", "type": "uint256", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "AddLiquidity", - "inputs": [ - { "name": "provider", "type": "address", "indexed": true }, - { "name": "token_amounts", "type": "uint256[2]", "indexed": false }, - { "name": "fee", "type": "uint256", "indexed": false }, - { "name": "token_supply", "type": "uint256", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "RemoveLiquidity", - "inputs": [ - { "name": "provider", "type": "address", "indexed": true }, - { "name": "token_amounts", "type": "uint256[2]", "indexed": false }, - { "name": "token_supply", "type": "uint256", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "RemoveLiquidityOne", - "inputs": [ - { "name": "provider", "type": "address", "indexed": true }, - { "name": "token_amount", "type": "uint256", "indexed": false }, - { "name": "coin_index", "type": "uint256", "indexed": false }, - { "name": "coin_amount", "type": "uint256", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "CommitNewParameters", - "inputs": [ - { "name": "deadline", "type": "uint256", "indexed": true }, - { "name": "admin_fee", "type": "uint256", "indexed": false }, - { "name": "mid_fee", "type": "uint256", "indexed": false }, - { "name": "out_fee", "type": "uint256", "indexed": false }, - { "name": "fee_gamma", "type": "uint256", "indexed": false }, - { "name": "allowed_extra_profit", "type": "uint256", "indexed": false }, - { "name": "adjustment_step", "type": "uint256", "indexed": false }, - { "name": "ma_half_time", "type": "uint256", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "NewParameters", - "inputs": [ - { "name": "admin_fee", "type": "uint256", "indexed": false }, - { "name": "mid_fee", "type": "uint256", "indexed": false }, - { "name": "out_fee", "type": "uint256", "indexed": false }, - { "name": "fee_gamma", "type": "uint256", "indexed": false }, - { "name": "allowed_extra_profit", "type": "uint256", "indexed": false }, - { "name": "adjustment_step", "type": "uint256", "indexed": false }, - { "name": "ma_half_time", "type": "uint256", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "RampAgamma", - "inputs": [ - { "name": "initial_A", "type": "uint256", "indexed": false }, - { "name": "future_A", "type": "uint256", "indexed": false }, - { "name": "initial_gamma", "type": "uint256", "indexed": false }, - { "name": "future_gamma", "type": "uint256", "indexed": false }, - { "name": "initial_time", "type": "uint256", "indexed": false }, - { "name": "future_time", "type": "uint256", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "StopRampA", - "inputs": [ - { "name": "current_A", "type": "uint256", "indexed": false }, - { "name": "current_gamma", "type": "uint256", "indexed": false }, - { "name": "time", "type": "uint256", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "ClaimAdminFee", - "inputs": [ - { "name": "admin", "type": "address", "indexed": true }, - { "name": "tokens", "type": "uint256", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "stateMutability": "nonpayable", - "type": "constructor", - "inputs": [{ "name": "_weth", "type": "address" }], - "outputs": [] - }, - { "stateMutability": "payable", "type": "fallback" }, - { - "stateMutability": "payable", - "type": "function", - "name": "exchange", - "inputs": [ - { "name": "i", "type": "uint256" }, - { "name": "j", "type": "uint256" }, - { "name": "dx", "type": "uint256" }, - { "name": "min_dy", "type": "uint256" } - ], - "outputs": [{ "name": "", "type": "uint256" }] - }, - { - "stateMutability": "payable", - "type": "function", - "name": "exchange", - "inputs": [ - { "name": "i", "type": "uint256" }, - { "name": "j", "type": "uint256" }, - { "name": "dx", "type": "uint256" }, - { "name": "min_dy", "type": "uint256" }, - { "name": "use_eth", "type": "bool" } - ], - "outputs": [{ "name": "", "type": "uint256" }] - }, - { - "stateMutability": "payable", - "type": "function", - "name": "exchange", - "inputs": [ - { "name": "i", "type": "uint256" }, - { "name": "j", "type": "uint256" }, - { "name": "dx", "type": "uint256" }, - { "name": "min_dy", "type": "uint256" }, - { "name": "use_eth", "type": "bool" }, - { "name": "receiver", "type": "address" } - ], - "outputs": [{ "name": "", "type": "uint256" }] - }, - { - "stateMutability": "payable", - "type": "function", - "name": "exchange_underlying", - "inputs": [ - { "name": "i", "type": "uint256" }, - { "name": "j", "type": "uint256" }, - { "name": "dx", "type": "uint256" }, - { "name": "min_dy", "type": "uint256" } - ], - "outputs": [{ "name": "", "type": "uint256" }] - }, - { - "stateMutability": "payable", - "type": "function", - "name": "exchange_underlying", - "inputs": [ - { "name": "i", "type": "uint256" }, - { "name": "j", "type": "uint256" }, - { "name": "dx", "type": "uint256" }, - { "name": "min_dy", "type": "uint256" }, - { "name": "receiver", "type": "address" } - ], - "outputs": [{ "name": "", "type": "uint256" }] - }, - { - "stateMutability": "payable", - "type": "function", - "name": "exchange_extended", - "inputs": [ - { "name": "i", "type": "uint256" }, - { "name": "j", "type": "uint256" }, - { "name": "dx", "type": "uint256" }, - { "name": "min_dy", "type": "uint256" }, - { "name": "use_eth", "type": "bool" }, - { "name": "sender", "type": "address" }, - { "name": "receiver", "type": "address" }, - { "name": "cb", "type": "bytes32" } - ], - "outputs": [{ "name": "", "type": "uint256" }] - }, - { - "stateMutability": "payable", - "type": "function", - "name": "add_liquidity", - "inputs": [ - { "name": "amounts", "type": "uint256[2]" }, - { "name": "min_mint_amount", "type": "uint256" } - ], - "outputs": [{ "name": "", "type": "uint256" }] - }, - { - "stateMutability": "payable", - "type": "function", - "name": "add_liquidity", - "inputs": [ - { "name": "amounts", "type": "uint256[2]" }, - { "name": "min_mint_amount", "type": "uint256" }, - { "name": "use_eth", "type": "bool" } - ], - "outputs": [{ "name": "", "type": "uint256" }] - }, - { - "stateMutability": "payable", - "type": "function", - "name": "add_liquidity", - "inputs": [ - { "name": "amounts", "type": "uint256[2]" }, - { "name": "min_mint_amount", "type": "uint256" }, - { "name": "use_eth", "type": "bool" }, - { "name": "receiver", "type": "address" } - ], - "outputs": [{ "name": "", "type": "uint256" }] - }, - { - "stateMutability": "nonpayable", - "type": "function", - "name": "remove_liquidity", - "inputs": [ - { "name": "_amount", "type": "uint256" }, - { "name": "min_amounts", "type": "uint256[2]" } - ], - "outputs": [] - }, - { - "stateMutability": "nonpayable", - "type": "function", - "name": "remove_liquidity", - "inputs": [ - { "name": "_amount", "type": "uint256" }, - { "name": "min_amounts", "type": "uint256[2]" }, - { "name": "use_eth", "type": "bool" } - ], - "outputs": [] - }, - { - "stateMutability": "nonpayable", - "type": "function", - "name": "remove_liquidity", - "inputs": [ - { "name": "_amount", "type": "uint256" }, - { "name": "min_amounts", "type": "uint256[2]" }, - { "name": "use_eth", "type": "bool" }, - { "name": "receiver", "type": "address" } - ], - "outputs": [] - }, - { - "stateMutability": "nonpayable", - "type": "function", - "name": "remove_liquidity_one_coin", - "inputs": [ - { "name": "token_amount", "type": "uint256" }, - { "name": "i", "type": "uint256" }, - { "name": "min_amount", "type": "uint256" } - ], - "outputs": [{ "name": "", "type": "uint256" }] - }, - { - "stateMutability": "nonpayable", - "type": "function", - "name": "remove_liquidity_one_coin", - "inputs": [ - { "name": "token_amount", "type": "uint256" }, - { "name": "i", "type": "uint256" }, - { "name": "min_amount", "type": "uint256" }, - { "name": "use_eth", "type": "bool" } - ], - "outputs": [{ "name": "", "type": "uint256" }] - }, - { - "stateMutability": "nonpayable", - "type": "function", - "name": "remove_liquidity_one_coin", - "inputs": [ - { "name": "token_amount", "type": "uint256" }, - { "name": "i", "type": "uint256" }, - { "name": "min_amount", "type": "uint256" }, - { "name": "use_eth", "type": "bool" }, - { "name": "receiver", "type": "address" } - ], - "outputs": [{ "name": "", "type": "uint256" }] - }, - { "stateMutability": "nonpayable", "type": "function", "name": "claim_admin_fees", "inputs": [], "outputs": [] }, - { - "stateMutability": "nonpayable", - "type": "function", - "name": "ramp_A_gamma", - "inputs": [ - { "name": "future_A", "type": "uint256" }, - { "name": "future_gamma", "type": "uint256" }, - { "name": "future_time", "type": "uint256" } - ], - "outputs": [] - }, - { "stateMutability": "nonpayable", "type": "function", "name": "stop_ramp_A_gamma", "inputs": [], "outputs": [] }, - { - "stateMutability": "nonpayable", - "type": "function", - "name": "commit_new_parameters", - "inputs": [ - { "name": "_new_mid_fee", "type": "uint256" }, - { "name": "_new_out_fee", "type": "uint256" }, - { "name": "_new_admin_fee", "type": "uint256" }, - { "name": "_new_fee_gamma", "type": "uint256" }, - { "name": "_new_allowed_extra_profit", "type": "uint256" }, - { "name": "_new_adjustment_step", "type": "uint256" }, - { "name": "_new_ma_half_time", "type": "uint256" } - ], - "outputs": [] - }, - { "stateMutability": "nonpayable", "type": "function", "name": "apply_new_parameters", "inputs": [], "outputs": [] }, - { "stateMutability": "nonpayable", "type": "function", "name": "revert_new_parameters", "inputs": [], "outputs": [] }, - { - "stateMutability": "view", - "type": "function", - "name": "get_dy", - "inputs": [ - { "name": "i", "type": "uint256" }, - { "name": "j", "type": "uint256" }, - { "name": "dx", "type": "uint256" } - ], - "outputs": [{ "name": "", "type": "uint256" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "calc_token_amount", - "inputs": [{ "name": "amounts", "type": "uint256[2]" }], - "outputs": [{ "name": "", "type": "uint256" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "calc_withdraw_one_coin", - "inputs": [ - { "name": "token_amount", "type": "uint256" }, - { "name": "i", "type": "uint256" } - ], - "outputs": [{ "name": "", "type": "uint256" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "lp_price", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "A", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "gamma", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "fee", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "get_virtual_price", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "price_oracle", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }] - }, - { - "stateMutability": "nonpayable", - "type": "function", - "name": "initialize", - "inputs": [ - { "name": "A", "type": "uint256" }, - { "name": "gamma", "type": "uint256" }, - { "name": "mid_fee", "type": "uint256" }, - { "name": "out_fee", "type": "uint256" }, - { "name": "allowed_extra_profit", "type": "uint256" }, - { "name": "fee_gamma", "type": "uint256" }, - { "name": "adjustment_step", "type": "uint256" }, - { "name": "admin_fee", "type": "uint256" }, - { "name": "ma_half_time", "type": "uint256" }, - { "name": "initial_price", "type": "uint256" }, - { "name": "_token", "type": "address" }, - { "name": "_coins", "type": "address[2]" }, - { "name": "_precisions", "type": "uint256" } - ], - "outputs": [] - }, - { - "stateMutability": "view", - "type": "function", - "name": "token", - "inputs": [], - "outputs": [{ "name": "", "type": "address" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "coins", - "inputs": [{ "name": "arg0", "type": "uint256" }], - "outputs": [{ "name": "", "type": "address" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "price_scale", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "last_prices", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "last_prices_timestamp", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "initial_A_gamma", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "future_A_gamma", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "initial_A_gamma_time", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "future_A_gamma_time", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "allowed_extra_profit", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "future_allowed_extra_profit", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "fee_gamma", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "future_fee_gamma", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "adjustment_step", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "future_adjustment_step", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "ma_half_time", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "future_ma_half_time", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "mid_fee", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "out_fee", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "admin_fee", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "future_mid_fee", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "future_out_fee", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "future_admin_fee", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "balances", - "inputs": [{ "name": "arg0", "type": "uint256" }], - "outputs": [{ "name": "", "type": "uint256" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "D", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "factory", - "inputs": [], - "outputs": [{ "name": "", "type": "address" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "xcp_profit", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "xcp_profit_a", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "virtual_price", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "admin_actions_deadline", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }] - } -] diff --git a/src/apps/curve/contracts/abis/curve-crypto-registry.json b/src/apps/curve/contracts/abis/curve-crypto-registry.json new file mode 100644 index 000000000..a04bd3d7b --- /dev/null +++ b/src/apps/curve/contracts/abis/curve-crypto-registry.json @@ -0,0 +1,264 @@ +[ + { + "name": "PoolAdded", + "inputs": [{ "name": "pool", "type": "address", "indexed": true }], + "anonymous": false, + "type": "event" + }, + { + "name": "PoolRemoved", + "inputs": [{ "name": "pool", "type": "address", "indexed": true }], + "anonymous": false, + "type": "event" + }, + { + "stateMutability": "nonpayable", + "type": "constructor", + "inputs": [{ "name": "_address_provider", "type": "address" }], + "outputs": [] + }, + { + "stateMutability": "view", + "type": "function", + "name": "find_pool_for_coins", + "inputs": [ + { "name": "_from", "type": "address" }, + { "name": "_to", "type": "address" } + ], + "outputs": [{ "name": "", "type": "address" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "find_pool_for_coins", + "inputs": [ + { "name": "_from", "type": "address" }, + { "name": "_to", "type": "address" }, + { "name": "i", "type": "uint256" } + ], + "outputs": [{ "name": "", "type": "address" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "get_n_coins", + "inputs": [{ "name": "_pool", "type": "address" }], + "outputs": [{ "name": "", "type": "uint256" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "get_coins", + "inputs": [{ "name": "_pool", "type": "address" }], + "outputs": [{ "name": "", "type": "address[8]" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "get_decimals", + "inputs": [{ "name": "_pool", "type": "address" }], + "outputs": [{ "name": "", "type": "uint256[8]" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "get_gauges", + "inputs": [{ "name": "_pool", "type": "address" }], + "outputs": [ + { "name": "", "type": "address[10]" }, + { "name": "", "type": "int128[10]" } + ] + }, + { + "stateMutability": "view", + "type": "function", + "name": "get_balances", + "inputs": [{ "name": "_pool", "type": "address" }], + "outputs": [{ "name": "", "type": "uint256[8]" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "get_virtual_price_from_lp_token", + "inputs": [{ "name": "_token", "type": "address" }], + "outputs": [{ "name": "", "type": "uint256" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "get_A", + "inputs": [{ "name": "_pool", "type": "address" }], + "outputs": [{ "name": "", "type": "uint256" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "get_D", + "inputs": [{ "name": "_pool", "type": "address" }], + "outputs": [{ "name": "", "type": "uint256" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "get_gamma", + "inputs": [{ "name": "_pool", "type": "address" }], + "outputs": [{ "name": "", "type": "uint256" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "get_fees", + "inputs": [{ "name": "_pool", "type": "address" }], + "outputs": [{ "name": "", "type": "uint256[4]" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "get_admin_balances", + "inputs": [{ "name": "_pool", "type": "address" }], + "outputs": [{ "name": "", "type": "uint256[8]" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "get_coin_indices", + "inputs": [ + { "name": "_pool", "type": "address" }, + { "name": "_from", "type": "address" }, + { "name": "_to", "type": "address" } + ], + "outputs": [ + { "name": "", "type": "uint256" }, + { "name": "", "type": "uint256" } + ] + }, + { + "stateMutability": "view", + "type": "function", + "name": "get_pool_name", + "inputs": [{ "name": "_pool", "type": "address" }], + "outputs": [{ "name": "", "type": "string" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "get_coin_swap_count", + "inputs": [{ "name": "_coin", "type": "address" }], + "outputs": [{ "name": "", "type": "uint256" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "get_coin_swap_complement", + "inputs": [ + { "name": "_coin", "type": "address" }, + { "name": "_index", "type": "uint256" } + ], + "outputs": [{ "name": "", "type": "address" }] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "name": "add_pool", + "inputs": [ + { "name": "_pool", "type": "address" }, + { "name": "_n_coins", "type": "uint256" }, + { "name": "_lp_token", "type": "address" }, + { "name": "_gauge", "type": "address" }, + { "name": "_zap", "type": "address" }, + { "name": "_decimals", "type": "uint256" }, + { "name": "_name", "type": "string" } + ], + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "name": "remove_pool", + "inputs": [{ "name": "_pool", "type": "address" }], + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "name": "set_liquidity_gauges", + "inputs": [ + { "name": "_pool", "type": "address" }, + { "name": "_liquidity_gauges", "type": "address[10]" } + ], + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "name": "batch_set_liquidity_gauges", + "inputs": [ + { "name": "_pools", "type": "address[10]" }, + { "name": "_liquidity_gauges", "type": "address[10]" } + ], + "outputs": [] + }, + { + "stateMutability": "view", + "type": "function", + "name": "address_provider", + "inputs": [], + "outputs": [{ "name": "", "type": "address" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "pool_list", + "inputs": [{ "name": "arg0", "type": "uint256" }], + "outputs": [{ "name": "", "type": "address" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "pool_count", + "inputs": [], + "outputs": [{ "name": "", "type": "uint256" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "coin_count", + "inputs": [], + "outputs": [{ "name": "", "type": "uint256" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "get_coin", + "inputs": [{ "name": "arg0", "type": "uint256" }], + "outputs": [{ "name": "", "type": "address" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "get_pool_from_lp_token", + "inputs": [{ "name": "arg0", "type": "address" }], + "outputs": [{ "name": "", "type": "address" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "get_lp_token", + "inputs": [{ "name": "arg0", "type": "address" }], + "outputs": [{ "name": "", "type": "address" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "get_zap", + "inputs": [{ "name": "arg0", "type": "address" }], + "outputs": [{ "name": "", "type": "address" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "last_updated", + "inputs": [], + "outputs": [{ "name": "", "type": "uint256" }] + } +] diff --git a/src/apps/curve/contracts/abis/curve-factory-pool.json b/src/apps/curve/contracts/abis/curve-factory-pool.json deleted file mode 100644 index 9c94d99e3..000000000 --- a/src/apps/curve/contracts/abis/curve-factory-pool.json +++ /dev/null @@ -1,604 +0,0 @@ -[ - { - "name": "Transfer", - "inputs": [ - { "type": "address", "name": "sender", "indexed": true }, - { "type": "address", "name": "receiver", "indexed": true }, - { "type": "uint256", "name": "value", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "Approval", - "inputs": [ - { "type": "address", "name": "owner", "indexed": true }, - { "type": "address", "name": "spender", "indexed": true }, - { "type": "uint256", "name": "value", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "TokenExchange", - "inputs": [ - { "type": "address", "name": "buyer", "indexed": true }, - { "type": "int128", "name": "sold_id", "indexed": false }, - { "type": "uint256", "name": "tokens_sold", "indexed": false }, - { "type": "int128", "name": "bought_id", "indexed": false }, - { "type": "uint256", "name": "tokens_bought", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "TokenExchangeUnderlying", - "inputs": [ - { "type": "address", "name": "buyer", "indexed": true }, - { "type": "int128", "name": "sold_id", "indexed": false }, - { "type": "uint256", "name": "tokens_sold", "indexed": false }, - { "type": "int128", "name": "bought_id", "indexed": false }, - { "type": "uint256", "name": "tokens_bought", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "AddLiquidity", - "inputs": [ - { "type": "address", "name": "provider", "indexed": true }, - { "type": "uint256[2]", "name": "token_amounts", "indexed": false }, - { "type": "uint256[2]", "name": "fees", "indexed": false }, - { "type": "uint256", "name": "invariant", "indexed": false }, - { "type": "uint256", "name": "token_supply", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "RemoveLiquidity", - "inputs": [ - { "type": "address", "name": "provider", "indexed": true }, - { "type": "uint256[2]", "name": "token_amounts", "indexed": false }, - { "type": "uint256[2]", "name": "fees", "indexed": false }, - { "type": "uint256", "name": "token_supply", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "RemoveLiquidityOne", - "inputs": [ - { "type": "address", "name": "provider", "indexed": true }, - { "type": "uint256", "name": "token_amount", "indexed": false }, - { "type": "uint256", "name": "coin_amount", "indexed": false }, - { "type": "uint256", "name": "token_supply", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "RemoveLiquidityImbalance", - "inputs": [ - { "type": "address", "name": "provider", "indexed": true }, - { "type": "uint256[2]", "name": "token_amounts", "indexed": false }, - { "type": "uint256[2]", "name": "fees", "indexed": false }, - { "type": "uint256", "name": "invariant", "indexed": false }, - { "type": "uint256", "name": "token_supply", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "CommitNewAdmin", - "inputs": [ - { "type": "uint256", "name": "deadline", "indexed": true }, - { "type": "address", "name": "admin", "indexed": true } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "NewAdmin", - "inputs": [{ "type": "address", "name": "admin", "indexed": true }], - "anonymous": false, - "type": "event" - }, - { - "name": "CommitNewFee", - "inputs": [ - { "type": "uint256", "name": "deadline", "indexed": true }, - { "type": "uint256", "name": "fee", "indexed": false }, - { "type": "uint256", "name": "admin_fee", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "NewFee", - "inputs": [ - { "type": "uint256", "name": "fee", "indexed": false }, - { "type": "uint256", "name": "admin_fee", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "RampA", - "inputs": [ - { "type": "uint256", "name": "old_A", "indexed": false }, - { "type": "uint256", "name": "new_A", "indexed": false }, - { "type": "uint256", "name": "initial_time", "indexed": false }, - { "type": "uint256", "name": "future_time", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "StopRampA", - "inputs": [ - { "type": "uint256", "name": "A", "indexed": false }, - { "type": "uint256", "name": "t", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { "outputs": [], "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, - { - "name": "initialize", - "outputs": [], - "inputs": [ - { "type": "string", "name": "_name" }, - { "type": "string", "name": "_symbol" }, - { "type": "address", "name": "_coin" }, - { "type": "uint256", "name": "_decimals" }, - { "type": "uint256", "name": "_A" }, - { "type": "uint256", "name": "_fee" }, - { "type": "address", "name": "_admin" } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "name": "decimals", - "outputs": [{ "type": "uint256", "name": "" }], - "inputs": [], - "stateMutability": "view", - "type": "function" - }, - { - "name": "transfer", - "outputs": [{ "type": "bool", "name": "" }], - "inputs": [ - { "type": "address", "name": "_to" }, - { "type": "uint256", "name": "_value" } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "name": "transferFrom", - "outputs": [{ "type": "bool", "name": "" }], - "inputs": [ - { "type": "address", "name": "_from" }, - { "type": "address", "name": "_to" }, - { "type": "uint256", "name": "_value" } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "name": "approve", - "outputs": [{ "type": "bool", "name": "" }], - "inputs": [ - { "type": "address", "name": "_spender" }, - { "type": "uint256", "name": "_value" } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "name": "get_previous_balances", - "outputs": [{ "type": "uint256[2]", "name": "" }], - "inputs": [], - "stateMutability": "view", - "type": "function" - }, - { - "name": "get_balances", - "outputs": [{ "type": "uint256[2]", "name": "" }], - "inputs": [], - "stateMutability": "view", - "type": "function" - }, - { - "name": "get_twap_balances", - "outputs": [{ "type": "uint256[2]", "name": "" }], - "inputs": [ - { "type": "uint256[2]", "name": "_first_balances" }, - { "type": "uint256[2]", "name": "_last_balances" }, - { "type": "uint256", "name": "_time_elapsed" } - ], - "stateMutability": "view", - "type": "function" - }, - { - "name": "get_price_cumulative_last", - "outputs": [{ "type": "uint256[2]", "name": "" }], - "inputs": [], - "stateMutability": "view", - "type": "function" - }, - { - "name": "admin_fee", - "outputs": [{ "type": "uint256", "name": "" }], - "inputs": [], - "stateMutability": "view", - "type": "function" - }, - { - "name": "A", - "outputs": [{ "type": "uint256", "name": "" }], - "inputs": [], - "stateMutability": "view", - "type": "function" - }, - { - "name": "A_precise", - "outputs": [{ "type": "uint256", "name": "" }], - "inputs": [], - "stateMutability": "view", - "type": "function" - }, - { - "name": "get_virtual_price", - "outputs": [{ "type": "uint256", "name": "" }], - "inputs": [], - "stateMutability": "view", - "type": "function" - }, - { - "name": "calc_token_amount", - "outputs": [{ "type": "uint256", "name": "" }], - "inputs": [ - { "type": "uint256[2]", "name": "_amounts" }, - { "type": "bool", "name": "_is_deposit" } - ], - "stateMutability": "view", - "type": "function" - }, - { - "name": "calc_token_amount", - "outputs": [{ "type": "uint256", "name": "" }], - "inputs": [ - { "type": "uint256[2]", "name": "_amounts" }, - { "type": "bool", "name": "_is_deposit" }, - { "type": "bool", "name": "_previous" } - ], - "stateMutability": "view", - "type": "function" - }, - { - "name": "add_liquidity", - "outputs": [{ "type": "uint256", "name": "" }], - "inputs": [ - { "type": "uint256[2]", "name": "_amounts" }, - { "type": "uint256", "name": "_min_mint_amount" } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "name": "add_liquidity", - "outputs": [{ "type": "uint256", "name": "" }], - "inputs": [ - { "type": "uint256[2]", "name": "_amounts" }, - { "type": "uint256", "name": "_min_mint_amount" }, - { "type": "address", "name": "_receiver" } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "name": "get_dy", - "outputs": [{ "type": "uint256", "name": "" }], - "inputs": [ - { "type": "int128", "name": "i" }, - { "type": "int128", "name": "j" }, - { "type": "uint256", "name": "dx" } - ], - "stateMutability": "view", - "type": "function" - }, - { - "name": "get_dy", - "outputs": [{ "type": "uint256", "name": "" }], - "inputs": [ - { "type": "int128", "name": "i" }, - { "type": "int128", "name": "j" }, - { "type": "uint256", "name": "dx" }, - { "type": "uint256[2]", "name": "_balances" } - ], - "stateMutability": "view", - "type": "function" - }, - { - "name": "get_dy_underlying", - "outputs": [{ "type": "uint256", "name": "" }], - "inputs": [ - { "type": "int128", "name": "i" }, - { "type": "int128", "name": "j" }, - { "type": "uint256", "name": "dx" } - ], - "stateMutability": "view", - "type": "function" - }, - { - "name": "get_dy_underlying", - "outputs": [{ "type": "uint256", "name": "" }], - "inputs": [ - { "type": "int128", "name": "i" }, - { "type": "int128", "name": "j" }, - { "type": "uint256", "name": "dx" }, - { "type": "uint256[2]", "name": "_balances" } - ], - "stateMutability": "view", - "type": "function" - }, - { - "name": "exchange", - "outputs": [{ "type": "uint256", "name": "" }], - "inputs": [ - { "type": "int128", "name": "i" }, - { "type": "int128", "name": "j" }, - { "type": "uint256", "name": "dx" }, - { "type": "uint256", "name": "min_dy" } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "name": "exchange", - "outputs": [{ "type": "uint256", "name": "" }], - "inputs": [ - { "type": "int128", "name": "i" }, - { "type": "int128", "name": "j" }, - { "type": "uint256", "name": "dx" }, - { "type": "uint256", "name": "min_dy" }, - { "type": "address", "name": "_receiver" } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "name": "exchange_underlying", - "outputs": [{ "type": "uint256", "name": "" }], - "inputs": [ - { "type": "int128", "name": "i" }, - { "type": "int128", "name": "j" }, - { "type": "uint256", "name": "dx" }, - { "type": "uint256", "name": "min_dy" } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "name": "exchange_underlying", - "outputs": [{ "type": "uint256", "name": "" }], - "inputs": [ - { "type": "int128", "name": "i" }, - { "type": "int128", "name": "j" }, - { "type": "uint256", "name": "dx" }, - { "type": "uint256", "name": "min_dy" }, - { "type": "address", "name": "_receiver" } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "name": "remove_liquidity", - "outputs": [{ "type": "uint256[2]", "name": "" }], - "inputs": [ - { "type": "uint256", "name": "_burn_amount" }, - { "type": "uint256[2]", "name": "_min_amounts" } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "name": "remove_liquidity", - "outputs": [{ "type": "uint256[2]", "name": "" }], - "inputs": [ - { "type": "uint256", "name": "_burn_amount" }, - { "type": "uint256[2]", "name": "_min_amounts" }, - { "type": "address", "name": "_receiver" } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "name": "remove_liquidity_imbalance", - "outputs": [{ "type": "uint256", "name": "" }], - "inputs": [ - { "type": "uint256[2]", "name": "_amounts" }, - { "type": "uint256", "name": "_max_burn_amount" } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "name": "remove_liquidity_imbalance", - "outputs": [{ "type": "uint256", "name": "" }], - "inputs": [ - { "type": "uint256[2]", "name": "_amounts" }, - { "type": "uint256", "name": "_max_burn_amount" }, - { "type": "address", "name": "_receiver" } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "name": "calc_withdraw_one_coin", - "outputs": [{ "type": "uint256", "name": "" }], - "inputs": [ - { "type": "uint256", "name": "_burn_amount" }, - { "type": "int128", "name": "i" } - ], - "stateMutability": "view", - "type": "function" - }, - { - "name": "calc_withdraw_one_coin", - "outputs": [{ "type": "uint256", "name": "" }], - "inputs": [ - { "type": "uint256", "name": "_burn_amount" }, - { "type": "int128", "name": "i" }, - { "type": "bool", "name": "_previous" } - ], - "stateMutability": "view", - "type": "function" - }, - { - "name": "remove_liquidity_one_coin", - "outputs": [{ "type": "uint256", "name": "" }], - "inputs": [ - { "type": "uint256", "name": "_burn_amount" }, - { "type": "int128", "name": "i" }, - { "type": "uint256", "name": "_min_received" } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "name": "remove_liquidity_one_coin", - "outputs": [{ "type": "uint256", "name": "" }], - "inputs": [ - { "type": "uint256", "name": "_burn_amount" }, - { "type": "int128", "name": "i" }, - { "type": "uint256", "name": "_min_received" }, - { "type": "address", "name": "_receiver" } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "name": "ramp_A", - "outputs": [], - "inputs": [ - { "type": "uint256", "name": "_future_A" }, - { "type": "uint256", "name": "_future_time" } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { "name": "stop_ramp_A", "outputs": [], "inputs": [], "stateMutability": "nonpayable", "type": "function" }, - { - "name": "admin_balances", - "outputs": [{ "type": "uint256", "name": "" }], - "inputs": [{ "type": "uint256", "name": "i" }], - "stateMutability": "view", - "type": "function" - }, - { "name": "withdraw_admin_fees", "outputs": [], "inputs": [], "stateMutability": "nonpayable", "type": "function" }, - { - "name": "admin", - "outputs": [{ "type": "address", "name": "" }], - "inputs": [], - "stateMutability": "view", - "type": "function" - }, - { - "name": "coins", - "outputs": [{ "type": "address", "name": "" }], - "inputs": [{ "type": "uint256", "name": "arg0" }], - "stateMutability": "view", - "type": "function" - }, - { - "name": "balances", - "outputs": [{ "type": "uint256", "name": "" }], - "inputs": [{ "type": "uint256", "name": "arg0" }], - "stateMutability": "view", - "type": "function" - }, - { - "name": "fee", - "outputs": [{ "type": "uint256", "name": "" }], - "inputs": [], - "stateMutability": "view", - "type": "function" - }, - { - "name": "block_timestamp_last", - "outputs": [{ "type": "uint256", "name": "" }], - "inputs": [], - "stateMutability": "view", - "type": "function" - }, - { - "name": "initial_A", - "outputs": [{ "type": "uint256", "name": "" }], - "inputs": [], - "stateMutability": "view", - "type": "function" - }, - { - "name": "future_A", - "outputs": [{ "type": "uint256", "name": "" }], - "inputs": [], - "stateMutability": "view", - "type": "function" - }, - { - "name": "initial_A_time", - "outputs": [{ "type": "uint256", "name": "" }], - "inputs": [], - "stateMutability": "view", - "type": "function" - }, - { - "name": "future_A_time", - "outputs": [{ "type": "uint256", "name": "" }], - "inputs": [], - "stateMutability": "view", - "type": "function" - }, - { - "name": "name", - "outputs": [{ "type": "string", "name": "" }], - "inputs": [], - "stateMutability": "view", - "type": "function" - }, - { - "name": "symbol", - "outputs": [{ "type": "string", "name": "" }], - "inputs": [], - "stateMutability": "view", - "type": "function" - }, - { - "name": "balanceOf", - "outputs": [{ "type": "uint256", "name": "" }], - "inputs": [{ "type": "address", "name": "arg0" }], - "stateMutability": "view", - "type": "function" - }, - { - "name": "allowance", - "outputs": [{ "type": "uint256", "name": "" }], - "inputs": [ - { "type": "address", "name": "arg0" }, - { "type": "address", "name": "arg1" } - ], - "stateMutability": "view", - "type": "function" - }, - { - "name": "totalSupply", - "outputs": [{ "type": "uint256", "name": "" }], - "inputs": [], - "stateMutability": "view", - "type": "function" - } -] diff --git a/src/apps/curve/contracts/abis/curve-minter.json b/src/apps/curve/contracts/abis/curve-minter.json deleted file mode 100644 index 70febd062..000000000 --- a/src/apps/curve/contracts/abis/curve-minter.json +++ /dev/null @@ -1,86 +0,0 @@ -[ - { - "name": "Minted", - "inputs": [ - { "type": "address", "name": "recipient", "indexed": true }, - { "type": "address", "name": "gauge", "indexed": false }, - { "type": "uint256", "name": "minted", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "outputs": [], - "inputs": [ - { "type": "address", "name": "_token" }, - { "type": "address", "name": "_controller" } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "name": "mint", - "outputs": [], - "inputs": [{ "type": "address", "name": "gauge_addr" }], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "name": "mint_many", - "outputs": [], - "inputs": [{ "type": "address[8]", "name": "gauge_addrs" }], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "name": "mint_for", - "outputs": [], - "inputs": [ - { "type": "address", "name": "gauge_addr" }, - { "type": "address", "name": "_for" } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "name": "toggle_approve_mint", - "outputs": [], - "inputs": [{ "type": "address", "name": "minting_user" }], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "name": "token", - "outputs": [{ "type": "address", "name": "" }], - "inputs": [], - "stateMutability": "view", - "type": "function" - }, - { - "name": "controller", - "outputs": [{ "type": "address", "name": "" }], - "inputs": [], - "stateMutability": "view", - "type": "function" - }, - { - "name": "minted", - "outputs": [{ "type": "uint256", "name": "" }], - "inputs": [ - { "type": "address", "name": "arg0" }, - { "type": "address", "name": "arg1" } - ], - "stateMutability": "view", - "type": "function" - }, - { - "name": "allowed_to_mint_for", - "outputs": [{ "type": "bool", "name": "" }], - "inputs": [ - { "type": "address", "name": "arg0" }, - { "type": "address", "name": "arg1" } - ], - "stateMutability": "view", - "type": "function" - } -] diff --git a/src/apps/curve/contracts/abis/curve-multi-reward-stream.json b/src/apps/curve/contracts/abis/curve-multi-reward-stream.json deleted file mode 100644 index 20e63ad15..000000000 --- a/src/apps/curve/contracts/abis/curve-multi-reward-stream.json +++ /dev/null @@ -1,131 +0,0 @@ -[ - { - "stateMutability": "nonpayable", - "type": "constructor", - "inputs": [{ "name": "_owner", "type": "address" }], - "outputs": [] - }, - { - "stateMutability": "nonpayable", - "type": "function", - "name": "add_reward", - "inputs": [ - { "name": "_token", "type": "address" }, - { "name": "_distributor", "type": "address" }, - { "name": "_duration", "type": "uint256" } - ], - "outputs": [] - }, - { - "stateMutability": "nonpayable", - "type": "function", - "name": "remove_reward", - "inputs": [{ "name": "_token", "type": "address" }], - "outputs": [] - }, - { - "stateMutability": "nonpayable", - "type": "function", - "name": "set_receiver", - "inputs": [{ "name": "_receiver", "type": "address" }], - "outputs": [] - }, - { "stateMutability": "nonpayable", "type": "function", "name": "get_reward", "inputs": [], "outputs": [] }, - { - "stateMutability": "nonpayable", - "type": "function", - "name": "notify_reward_amount", - "inputs": [{ "name": "_token", "type": "address" }], - "outputs": [] - }, - { - "stateMutability": "nonpayable", - "type": "function", - "name": "set_reward_duration", - "inputs": [ - { "name": "_token", "type": "address" }, - { "name": "_duration", "type": "uint256" } - ], - "outputs": [] - }, - { - "stateMutability": "nonpayable", - "type": "function", - "name": "set_reward_distributor", - "inputs": [ - { "name": "_token", "type": "address" }, - { "name": "_distributor", "type": "address" } - ], - "outputs": [] - }, - { - "stateMutability": "nonpayable", - "type": "function", - "name": "commit_transfer_ownership", - "inputs": [{ "name": "_owner", "type": "address" }], - "outputs": [] - }, - { - "stateMutability": "nonpayable", - "type": "function", - "name": "accept_transfer_ownership", - "inputs": [], - "outputs": [] - }, - { - "stateMutability": "view", - "type": "function", - "name": "owner", - "inputs": [], - "outputs": [{ "name": "", "type": "address" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "future_owner", - "inputs": [], - "outputs": [{ "name": "", "type": "address" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "reward_receiver", - "inputs": [], - "outputs": [{ "name": "", "type": "address" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "reward_tokens", - "inputs": [{ "name": "arg0", "type": "uint256" }], - "outputs": [{ "name": "", "type": "address" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "reward_count", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "reward_data", - "inputs": [{ "name": "arg0", "type": "address" }], - "outputs": [ - { "name": "distributor", "type": "address" }, - { "name": "period_finish", "type": "uint256" }, - { "name": "rate", "type": "uint256" }, - { "name": "duration", "type": "uint256" }, - { "name": "received", "type": "uint256" }, - { "name": "paid", "type": "uint256" } - ] - }, - { - "stateMutability": "view", - "type": "function", - "name": "last_update_time", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }] - } -] diff --git a/src/apps/curve/contracts/abis/curve-passthrough-rewards.json b/src/apps/curve/contracts/abis/curve-passthrough-rewards.json deleted file mode 100644 index 4b9982357..000000000 --- a/src/apps/curve/contracts/abis/curve-passthrough-rewards.json +++ /dev/null @@ -1,74 +0,0 @@ -[ - { - "stateMutability": "nonpayable", - "type": "constructor", - "inputs": [ - { "name": "_owner", "type": "address" }, - { "name": "_reward_receiver", "type": "address" } - ], - "outputs": [] - }, - { - "stateMutability": "nonpayable", - "type": "function", - "name": "get_reward", - "inputs": [], - "outputs": [] - }, - { - "stateMutability": "nonpayable", - "type": "function", - "name": "set_reward_data", - "inputs": [ - { "name": "_idx", "type": "uint256" }, - { "name": "_claim", "type": "address" }, - { "name": "_reward", "type": "address" } - ], - "outputs": [] - }, - { - "stateMutability": "nonpayable", - "type": "function", - "name": "commit_transfer_ownership", - "inputs": [{ "name": "_owner", "type": "address" }], - "outputs": [] - }, - { - "stateMutability": "nonpayable", - "type": "function", - "name": "accept_transfer_ownership", - "inputs": [], - "outputs": [] - }, - { - "stateMutability": "view", - "type": "function", - "name": "owner", - "inputs": [], - "outputs": [{ "name": "", "type": "address" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "future_owner", - "inputs": [], - "outputs": [{ "name": "", "type": "address" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "reward_receiver", - "inputs": [], - "outputs": [{ "name": "", "type": "address" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "reward_data", - "inputs": [{ "name": "arg0", "type": "uint256" }], - "outputs": [ - { "name": "claim", "type": "address" }, - { "name": "reward", "type": "address" } - ] - } -] diff --git a/src/apps/curve/contracts/abis/curve-pool-legacy.json b/src/apps/curve/contracts/abis/curve-pool-legacy.json new file mode 100644 index 000000000..d4c92eceb --- /dev/null +++ b/src/apps/curve/contracts/abis/curve-pool-legacy.json @@ -0,0 +1,781 @@ +[ + { + "name": "TokenExchange", + "inputs": [ + { + "type": "address", + "name": "buyer", + "indexed": true + }, + { + "type": "int128", + "name": "sold_id", + "indexed": false + }, + { + "type": "uint256", + "name": "tokens_sold", + "indexed": false + }, + { + "type": "int128", + "name": "bought_id", + "indexed": false + }, + { + "type": "uint256", + "name": "tokens_bought", + "indexed": false + } + ], + "anonymous": false, + "type": "event" + }, + { + "name": "TokenExchangeUnderlying", + "inputs": [ + { + "type": "address", + "name": "buyer", + "indexed": true + }, + { + "type": "int128", + "name": "sold_id", + "indexed": false + }, + { + "type": "uint256", + "name": "tokens_sold", + "indexed": false + }, + { + "type": "int128", + "name": "bought_id", + "indexed": false + }, + { + "type": "uint256", + "name": "tokens_bought", + "indexed": false + } + ], + "anonymous": false, + "type": "event" + }, + { + "name": "AddLiquidity", + "inputs": [ + { + "type": "address", + "name": "provider", + "indexed": true + }, + { + "type": "uint256[4]", + "name": "token_amounts", + "indexed": false + }, + { + "type": "uint256[4]", + "name": "fees", + "indexed": false + }, + { + "type": "uint256", + "name": "invariant", + "indexed": false + }, + { + "type": "uint256", + "name": "token_supply", + "indexed": false + } + ], + "anonymous": false, + "type": "event" + }, + { + "name": "RemoveLiquidity", + "inputs": [ + { + "type": "address", + "name": "provider", + "indexed": true + }, + { + "type": "uint256[4]", + "name": "token_amounts", + "indexed": false + }, + { + "type": "uint256[4]", + "name": "fees", + "indexed": false + }, + { + "type": "uint256", + "name": "token_supply", + "indexed": false + } + ], + "anonymous": false, + "type": "event" + }, + { + "name": "RemoveLiquidityImbalance", + "inputs": [ + { + "type": "address", + "name": "provider", + "indexed": true + }, + { + "type": "uint256[4]", + "name": "token_amounts", + "indexed": false + }, + { + "type": "uint256[4]", + "name": "fees", + "indexed": false + }, + { + "type": "uint256", + "name": "invariant", + "indexed": false + }, + { + "type": "uint256", + "name": "token_supply", + "indexed": false + } + ], + "anonymous": false, + "type": "event" + }, + { + "name": "CommitNewAdmin", + "inputs": [ + { + "type": "uint256", + "name": "deadline", + "indexed": true, + "unit": "sec" + }, + { + "type": "address", + "name": "admin", + "indexed": true + } + ], + "anonymous": false, + "type": "event" + }, + { + "name": "NewAdmin", + "inputs": [ + { + "type": "address", + "name": "admin", + "indexed": true + } + ], + "anonymous": false, + "type": "event" + }, + { + "name": "CommitNewParameters", + "inputs": [ + { + "type": "uint256", + "name": "deadline", + "indexed": true, + "unit": "sec" + }, + { + "type": "uint256", + "name": "A", + "indexed": false + }, + { + "type": "uint256", + "name": "fee", + "indexed": false + }, + { + "type": "uint256", + "name": "admin_fee", + "indexed": false + } + ], + "anonymous": false, + "type": "event" + }, + { + "name": "NewParameters", + "inputs": [ + { + "type": "uint256", + "name": "A", + "indexed": false + }, + { + "type": "uint256", + "name": "fee", + "indexed": false + }, + { + "type": "uint256", + "name": "admin_fee", + "indexed": false + } + ], + "anonymous": false, + "type": "event" + }, + { + "outputs": [], + "inputs": [ + { + "type": "address[4]", + "name": "_coins" + }, + { + "type": "address[4]", + "name": "_underlying_coins" + }, + { + "type": "address", + "name": "_pool_token" + }, + { + "type": "uint256", + "name": "_A" + }, + { + "type": "uint256", + "name": "_fee" + } + ], + "constant": false, + "payable": false, + "type": "constructor" + }, + { + "name": "get_virtual_price", + "outputs": [ + { + "type": "uint256", + "name": "out" + } + ], + "inputs": [], + "constant": true, + "payable": false, + "type": "function" + }, + { + "name": "calc_token_amount", + "outputs": [ + { + "type": "uint256", + "name": "out" + } + ], + "inputs": [ + { + "type": "uint256[4]", + "name": "amounts" + }, + { + "type": "bool", + "name": "deposit" + } + ], + "constant": true, + "payable": false, + "type": "function" + }, + { + "name": "add_liquidity", + "outputs": [], + "inputs": [ + { + "type": "uint256[4]", + "name": "amounts" + }, + { + "type": "uint256", + "name": "min_mint_amount" + } + ], + "constant": false, + "payable": false, + "type": "function" + }, + { + "name": "get_dy", + "outputs": [ + { + "type": "uint256", + "name": "out" + } + ], + "inputs": [ + { + "type": "int128", + "name": "i" + }, + { + "type": "int128", + "name": "j" + }, + { + "type": "uint256", + "name": "dx" + } + ], + "constant": true, + "payable": false, + "type": "function" + }, + { + "name": "get_dx", + "outputs": [ + { + "type": "uint256", + "name": "out" + } + ], + "inputs": [ + { + "type": "int128", + "name": "i" + }, + { + "type": "int128", + "name": "j" + }, + { + "type": "uint256", + "name": "dy" + } + ], + "constant": true, + "payable": false, + "type": "function" + }, + { + "name": "get_dy_underlying", + "outputs": [ + { + "type": "uint256", + "name": "out" + } + ], + "inputs": [ + { + "type": "int128", + "name": "i" + }, + { + "type": "int128", + "name": "j" + }, + { + "type": "uint256", + "name": "dx" + } + ], + "constant": true, + "payable": false, + "type": "function" + }, + { + "name": "get_dx_underlying", + "outputs": [ + { + "type": "uint256", + "name": "out" + } + ], + "inputs": [ + { + "type": "int128", + "name": "i" + }, + { + "type": "int128", + "name": "j" + }, + { + "type": "uint256", + "name": "dy" + } + ], + "constant": true, + "payable": false, + "type": "function" + }, + { + "name": "exchange", + "outputs": [], + "inputs": [ + { + "type": "int128", + "name": "i" + }, + { + "type": "int128", + "name": "j" + }, + { + "type": "uint256", + "name": "dx" + }, + { + "type": "uint256", + "name": "min_dy" + } + ], + "constant": false, + "payable": false, + "type": "function" + }, + { + "name": "exchange_underlying", + "outputs": [], + "inputs": [ + { + "type": "int128", + "name": "i" + }, + { + "type": "int128", + "name": "j" + }, + { + "type": "uint256", + "name": "dx" + }, + { + "type": "uint256", + "name": "min_dy" + } + ], + "constant": false, + "payable": false, + "type": "function" + }, + { + "name": "remove_liquidity", + "outputs": [], + "inputs": [ + { + "type": "uint256", + "name": "_amount" + }, + { + "type": "uint256[4]", + "name": "min_amounts" + } + ], + "constant": false, + "payable": false, + "type": "function" + }, + { + "name": "remove_liquidity_imbalance", + "outputs": [], + "inputs": [ + { + "type": "uint256[4]", + "name": "amounts" + }, + { + "type": "uint256", + "name": "max_burn_amount" + } + ], + "constant": false, + "payable": false, + "type": "function" + }, + { + "name": "commit_new_parameters", + "outputs": [], + "inputs": [ + { + "type": "uint256", + "name": "amplification" + }, + { + "type": "uint256", + "name": "new_fee" + }, + { + "type": "uint256", + "name": "new_admin_fee" + } + ], + "constant": false, + "payable": false, + "type": "function" + }, + { + "name": "apply_new_parameters", + "outputs": [], + "inputs": [], + "constant": false, + "payable": false, + "type": "function" + }, + { + "name": "revert_new_parameters", + "outputs": [], + "inputs": [], + "constant": false, + "payable": false, + "type": "function" + }, + { + "name": "commit_transfer_ownership", + "outputs": [], + "inputs": [ + { + "type": "address", + "name": "_owner" + } + ], + "constant": false, + "payable": false, + "type": "function" + }, + { + "name": "apply_transfer_ownership", + "outputs": [], + "inputs": [], + "constant": false, + "payable": false, + "type": "function" + }, + { + "name": "revert_transfer_ownership", + "outputs": [], + "inputs": [], + "constant": false, + "payable": false, + "type": "function" + }, + { + "name": "withdraw_admin_fees", + "outputs": [], + "inputs": [], + "constant": false, + "payable": false, + "type": "function" + }, + { + "name": "kill_me", + "outputs": [], + "inputs": [], + "constant": false, + "payable": false, + "type": "function" + }, + { + "name": "unkill_me", + "outputs": [], + "inputs": [], + "constant": false, + "payable": false, + "type": "function" + }, + { + "name": "coins", + "outputs": [ + { + "type": "address", + "name": "out" + } + ], + "inputs": [ + { + "type": "int128", + "name": "arg0" + } + ], + "constant": true, + "payable": false, + "type": "function" + }, + { + "name": "underlying_coins", + "outputs": [ + { + "type": "address", + "name": "out" + } + ], + "inputs": [ + { + "type": "int128", + "name": "arg0" + } + ], + "constant": true, + "payable": false, + "type": "function" + }, + { + "name": "balances", + "outputs": [ + { + "type": "uint256", + "name": "out" + } + ], + "inputs": [ + { + "type": "int128", + "name": "arg0" + } + ], + "constant": true, + "payable": false, + "type": "function" + }, + { + "name": "A", + "outputs": [ + { + "type": "uint256", + "name": "out" + } + ], + "inputs": [], + "constant": true, + "payable": false, + "type": "function" + }, + { + "name": "fee", + "outputs": [ + { + "type": "uint256", + "name": "out" + } + ], + "inputs": [], + "constant": true, + "payable": false, + "type": "function" + }, + { + "name": "admin_fee", + "outputs": [ + { + "type": "uint256", + "name": "out" + } + ], + "inputs": [], + "constant": true, + "payable": false, + "type": "function" + }, + { + "name": "owner", + "outputs": [ + { + "type": "address", + "name": "out" + } + ], + "inputs": [], + "constant": true, + "payable": false, + "type": "function" + }, + { + "name": "admin_actions_deadline", + "outputs": [ + { + "type": "uint256", + "unit": "sec", + "name": "out" + } + ], + "inputs": [], + "constant": true, + "payable": false, + "type": "function" + }, + { + "name": "transfer_ownership_deadline", + "outputs": [ + { + "type": "uint256", + "unit": "sec", + "name": "out" + } + ], + "inputs": [], + "constant": true, + "payable": false, + "type": "function" + }, + { + "name": "future_A", + "outputs": [ + { + "type": "uint256", + "name": "out" + } + ], + "inputs": [], + "constant": true, + "payable": false, + "type": "function" + }, + { + "name": "future_fee", + "outputs": [ + { + "type": "uint256", + "name": "out" + } + ], + "inputs": [], + "constant": true, + "payable": false, + "type": "function" + }, + { + "name": "future_admin_fee", + "outputs": [ + { + "type": "uint256", + "name": "out" + } + ], + "inputs": [], + "constant": true, + "payable": false, + "type": "function" + }, + { + "name": "future_owner", + "outputs": [ + { + "type": "address", + "name": "out" + } + ], + "inputs": [], + "constant": true, + "payable": false, + "type": "function" + } +] diff --git a/src/apps/curve/contracts/abis/curve-v-1-pool.json b/src/apps/curve/contracts/abis/curve-pool.json similarity index 100% rename from src/apps/curve/contracts/abis/curve-v-1-pool.json rename to src/apps/curve/contracts/abis/curve-pool.json diff --git a/src/apps/curve/contracts/abis/curve-single-reward-stream.json b/src/apps/curve/contracts/abis/curve-single-reward-stream.json deleted file mode 100644 index 491462109..000000000 --- a/src/apps/curve/contracts/abis/curve-single-reward-stream.json +++ /dev/null @@ -1,140 +0,0 @@ -[ - { - "stateMutability": "nonpayable", - "type": "constructor", - "inputs": [ - { "name": "_owner", "type": "address" }, - { "name": "_distributor", "type": "address" }, - { "name": "_token", "type": "address" }, - { "name": "_duration", "type": "uint256" } - ], - "outputs": [] - }, - { - "stateMutability": "nonpayable", - "type": "function", - "name": "add_receiver", - "inputs": [{ "name": "_receiver", "type": "address" }], - "outputs": [] - }, - { - "stateMutability": "nonpayable", - "type": "function", - "name": "remove_receiver", - "inputs": [{ "name": "_receiver", "type": "address" }], - "outputs": [] - }, - { "stateMutability": "nonpayable", "type": "function", "name": "get_reward", "inputs": [], "outputs": [] }, - { - "stateMutability": "nonpayable", - "type": "function", - "name": "notify_reward_amount", - "inputs": [{ "name": "_amount", "type": "uint256" }], - "outputs": [] - }, - { - "stateMutability": "nonpayable", - "type": "function", - "name": "set_reward_duration", - "inputs": [{ "name": "_duration", "type": "uint256" }], - "outputs": [] - }, - { - "stateMutability": "nonpayable", - "type": "function", - "name": "set_reward_distributor", - "inputs": [{ "name": "_distributor", "type": "address" }], - "outputs": [] - }, - { - "stateMutability": "nonpayable", - "type": "function", - "name": "commit_transfer_ownership", - "inputs": [{ "name": "_owner", "type": "address" }], - "outputs": [] - }, - { - "stateMutability": "nonpayable", - "type": "function", - "name": "accept_transfer_ownership", - "inputs": [], - "outputs": [] - }, - { - "stateMutability": "view", - "type": "function", - "name": "owner", - "inputs": [], - "outputs": [{ "name": "", "type": "address" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "future_owner", - "inputs": [], - "outputs": [{ "name": "", "type": "address" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "distributor", - "inputs": [], - "outputs": [{ "name": "", "type": "address" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "reward_token", - "inputs": [], - "outputs": [{ "name": "", "type": "address" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "period_finish", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "reward_rate", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "reward_duration", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "last_update_time", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "reward_per_receiver_total", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "receiver_count", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }] - }, - { - "stateMutability": "view", - "type": "function", - "name": "reward_receivers", - "inputs": [{ "name": "arg0", "type": "address" }], - "outputs": [{ "name": "", "type": "bool" }] - } -] diff --git a/src/apps/curve/contracts/abis/curve-factory-v-2.json b/src/apps/curve/contracts/abis/curve-stable-factory.json similarity index 100% rename from src/apps/curve/contracts/abis/curve-factory-v-2.json rename to src/apps/curve/contracts/abis/curve-stable-factory.json diff --git a/src/apps/curve/contracts/abis/curve-stable-registry.json b/src/apps/curve/contracts/abis/curve-stable-registry.json new file mode 100644 index 000000000..1200f735c --- /dev/null +++ b/src/apps/curve/contracts/abis/curve-stable-registry.json @@ -0,0 +1,414 @@ +[ + { + "name": "PoolAdded", + "inputs": [ + { "name": "pool", "type": "address", "indexed": true }, + { "name": "rate_method_id", "type": "bytes", "indexed": false } + ], + "anonymous": false, + "type": "event" + }, + { + "name": "PoolRemoved", + "inputs": [{ "name": "pool", "type": "address", "indexed": true }], + "anonymous": false, + "type": "event" + }, + { + "stateMutability": "nonpayable", + "type": "constructor", + "inputs": [ + { "name": "_address_provider", "type": "address" }, + { "name": "_gauge_controller", "type": "address" } + ], + "outputs": [] + }, + { + "stateMutability": "view", + "type": "function", + "name": "find_pool_for_coins", + "inputs": [ + { "name": "_from", "type": "address" }, + { "name": "_to", "type": "address" } + ], + "outputs": [{ "name": "", "type": "address" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "find_pool_for_coins", + "inputs": [ + { "name": "_from", "type": "address" }, + { "name": "_to", "type": "address" }, + { "name": "i", "type": "uint256" } + ], + "outputs": [{ "name": "", "type": "address" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "get_n_coins", + "inputs": [{ "name": "_pool", "type": "address" }], + "outputs": [{ "name": "", "type": "uint256[2]" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "get_coins", + "inputs": [{ "name": "_pool", "type": "address" }], + "outputs": [{ "name": "", "type": "address[8]" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "get_underlying_coins", + "inputs": [{ "name": "_pool", "type": "address" }], + "outputs": [{ "name": "", "type": "address[8]" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "get_decimals", + "inputs": [{ "name": "_pool", "type": "address" }], + "outputs": [{ "name": "", "type": "uint256[8]" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "get_underlying_decimals", + "inputs": [{ "name": "_pool", "type": "address" }], + "outputs": [{ "name": "", "type": "uint256[8]" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "get_rates", + "inputs": [{ "name": "_pool", "type": "address" }], + "outputs": [{ "name": "", "type": "uint256[8]" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "get_gauges", + "inputs": [{ "name": "_pool", "type": "address" }], + "outputs": [ + { "name": "", "type": "address[10]" }, + { "name": "", "type": "int128[10]" } + ] + }, + { + "stateMutability": "view", + "type": "function", + "name": "get_balances", + "inputs": [{ "name": "_pool", "type": "address" }], + "outputs": [{ "name": "", "type": "uint256[8]" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "get_underlying_balances", + "inputs": [{ "name": "_pool", "type": "address" }], + "outputs": [{ "name": "", "type": "uint256[8]" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "get_virtual_price_from_lp_token", + "inputs": [{ "name": "_token", "type": "address" }], + "outputs": [{ "name": "", "type": "uint256" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "get_A", + "inputs": [{ "name": "_pool", "type": "address" }], + "outputs": [{ "name": "", "type": "uint256" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "get_parameters", + "inputs": [{ "name": "_pool", "type": "address" }], + "outputs": [ + { "name": "A", "type": "uint256" }, + { "name": "future_A", "type": "uint256" }, + { "name": "fee", "type": "uint256" }, + { "name": "admin_fee", "type": "uint256" }, + { "name": "future_fee", "type": "uint256" }, + { "name": "future_admin_fee", "type": "uint256" }, + { "name": "future_owner", "type": "address" }, + { "name": "initial_A", "type": "uint256" }, + { "name": "initial_A_time", "type": "uint256" }, + { "name": "future_A_time", "type": "uint256" } + ] + }, + { + "stateMutability": "view", + "type": "function", + "name": "get_fees", + "inputs": [{ "name": "_pool", "type": "address" }], + "outputs": [{ "name": "", "type": "uint256[2]" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "get_admin_balances", + "inputs": [{ "name": "_pool", "type": "address" }], + "outputs": [{ "name": "", "type": "uint256[8]" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "get_coin_indices", + "inputs": [ + { "name": "_pool", "type": "address" }, + { "name": "_from", "type": "address" }, + { "name": "_to", "type": "address" } + ], + "outputs": [ + { "name": "", "type": "int128" }, + { "name": "", "type": "int128" }, + { "name": "", "type": "bool" } + ] + }, + { + "stateMutability": "view", + "type": "function", + "name": "estimate_gas_used", + "inputs": [ + { "name": "_pool", "type": "address" }, + { "name": "_from", "type": "address" }, + { "name": "_to", "type": "address" } + ], + "outputs": [{ "name": "", "type": "uint256" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "is_meta", + "inputs": [{ "name": "_pool", "type": "address" }], + "outputs": [{ "name": "", "type": "bool" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "get_pool_name", + "inputs": [{ "name": "_pool", "type": "address" }], + "outputs": [{ "name": "", "type": "string" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "get_coin_swap_count", + "inputs": [{ "name": "_coin", "type": "address" }], + "outputs": [{ "name": "", "type": "uint256" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "get_coin_swap_complement", + "inputs": [ + { "name": "_coin", "type": "address" }, + { "name": "_index", "type": "uint256" } + ], + "outputs": [{ "name": "", "type": "address" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "get_pool_asset_type", + "inputs": [{ "name": "_pool", "type": "address" }], + "outputs": [{ "name": "", "type": "uint256" }] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "name": "add_pool", + "inputs": [ + { "name": "_pool", "type": "address" }, + { "name": "_n_coins", "type": "uint256" }, + { "name": "_lp_token", "type": "address" }, + { "name": "_rate_info", "type": "bytes32" }, + { "name": "_decimals", "type": "uint256" }, + { "name": "_underlying_decimals", "type": "uint256" }, + { "name": "_has_initial_A", "type": "bool" }, + { "name": "_is_v1", "type": "bool" }, + { "name": "_name", "type": "string" } + ], + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "name": "add_pool_without_underlying", + "inputs": [ + { "name": "_pool", "type": "address" }, + { "name": "_n_coins", "type": "uint256" }, + { "name": "_lp_token", "type": "address" }, + { "name": "_rate_info", "type": "bytes32" }, + { "name": "_decimals", "type": "uint256" }, + { "name": "_use_rates", "type": "uint256" }, + { "name": "_has_initial_A", "type": "bool" }, + { "name": "_is_v1", "type": "bool" }, + { "name": "_name", "type": "string" } + ], + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "name": "add_metapool", + "inputs": [ + { "name": "_pool", "type": "address" }, + { "name": "_n_coins", "type": "uint256" }, + { "name": "_lp_token", "type": "address" }, + { "name": "_decimals", "type": "uint256" }, + { "name": "_name", "type": "string" } + ], + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "name": "add_metapool", + "inputs": [ + { "name": "_pool", "type": "address" }, + { "name": "_n_coins", "type": "uint256" }, + { "name": "_lp_token", "type": "address" }, + { "name": "_decimals", "type": "uint256" }, + { "name": "_name", "type": "string" }, + { "name": "_base_pool", "type": "address" } + ], + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "name": "remove_pool", + "inputs": [{ "name": "_pool", "type": "address" }], + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "name": "set_pool_gas_estimates", + "inputs": [ + { "name": "_addr", "type": "address[5]" }, + { "name": "_amount", "type": "uint256[2][5]" } + ], + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "name": "set_coin_gas_estimates", + "inputs": [ + { "name": "_addr", "type": "address[10]" }, + { "name": "_amount", "type": "uint256[10]" } + ], + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "name": "set_gas_estimate_contract", + "inputs": [ + { "name": "_pool", "type": "address" }, + { "name": "_estimator", "type": "address" } + ], + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "name": "set_liquidity_gauges", + "inputs": [ + { "name": "_pool", "type": "address" }, + { "name": "_liquidity_gauges", "type": "address[10]" } + ], + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "name": "set_pool_asset_type", + "inputs": [ + { "name": "_pool", "type": "address" }, + { "name": "_asset_type", "type": "uint256" } + ], + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "name": "batch_set_pool_asset_type", + "inputs": [ + { "name": "_pools", "type": "address[32]" }, + { "name": "_asset_types", "type": "uint256[32]" } + ], + "outputs": [] + }, + { + "stateMutability": "view", + "type": "function", + "name": "address_provider", + "inputs": [], + "outputs": [{ "name": "", "type": "address" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "gauge_controller", + "inputs": [], + "outputs": [{ "name": "", "type": "address" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "pool_list", + "inputs": [{ "name": "arg0", "type": "uint256" }], + "outputs": [{ "name": "", "type": "address" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "pool_count", + "inputs": [], + "outputs": [{ "name": "", "type": "uint256" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "coin_count", + "inputs": [], + "outputs": [{ "name": "", "type": "uint256" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "get_coin", + "inputs": [{ "name": "arg0", "type": "uint256" }], + "outputs": [{ "name": "", "type": "address" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "get_pool_from_lp_token", + "inputs": [{ "name": "arg0", "type": "address" }], + "outputs": [{ "name": "", "type": "address" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "get_lp_token", + "inputs": [{ "name": "arg0", "type": "address" }], + "outputs": [{ "name": "", "type": "address" }] + }, + { + "stateMutability": "view", + "type": "function", + "name": "last_updated", + "inputs": [], + "outputs": [{ "name": "", "type": "uint256" }] + } +] diff --git a/src/apps/curve/contracts/abis/curve-token.json b/src/apps/curve/contracts/abis/curve-token.json deleted file mode 100644 index ef88f02e4..000000000 --- a/src/apps/curve/contracts/abis/curve-token.json +++ /dev/null @@ -1,402 +0,0 @@ -[ - { - "name": "TokenExchange", - "inputs": [ - { "type": "address", "name": "buyer", "indexed": true }, - { "type": "int128", "name": "sold_id", "indexed": false }, - { "type": "uint256", "name": "tokens_sold", "indexed": false }, - { "type": "int128", "name": "bought_id", "indexed": false }, - { "type": "uint256", "name": "tokens_bought", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "TokenExchangeUnderlying", - "inputs": [ - { "type": "address", "name": "buyer", "indexed": true }, - { "type": "int128", "name": "sold_id", "indexed": false }, - { "type": "uint256", "name": "tokens_sold", "indexed": false }, - { "type": "int128", "name": "bought_id", "indexed": false }, - { "type": "uint256", "name": "tokens_bought", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "AddLiquidity", - "inputs": [ - { "type": "address", "name": "provider", "indexed": true }, - { "type": "uint256[4]", "name": "token_amounts", "indexed": false }, - { "type": "uint256[4]", "name": "fees", "indexed": false }, - { "type": "uint256", "name": "invariant", "indexed": false }, - { "type": "uint256", "name": "token_supply", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "RemoveLiquidity", - "inputs": [ - { "type": "address", "name": "provider", "indexed": true }, - { "type": "uint256[4]", "name": "token_amounts", "indexed": false }, - { "type": "uint256[4]", "name": "fees", "indexed": false }, - { "type": "uint256", "name": "token_supply", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "RemoveLiquidityImbalance", - "inputs": [ - { "type": "address", "name": "provider", "indexed": true }, - { "type": "uint256[4]", "name": "token_amounts", "indexed": false }, - { "type": "uint256[4]", "name": "fees", "indexed": false }, - { "type": "uint256", "name": "invariant", "indexed": false }, - { "type": "uint256", "name": "token_supply", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "CommitNewAdmin", - "inputs": [ - { "type": "uint256", "name": "deadline", "indexed": true, "unit": "sec" }, - { "type": "address", "name": "admin", "indexed": true } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "NewAdmin", - "inputs": [{ "type": "address", "name": "admin", "indexed": true }], - "anonymous": false, - "type": "event" - }, - { - "name": "CommitNewParameters", - "inputs": [ - { "type": "uint256", "name": "deadline", "indexed": true, "unit": "sec" }, - { "type": "uint256", "name": "A", "indexed": false }, - { "type": "uint256", "name": "fee", "indexed": false }, - { "type": "uint256", "name": "admin_fee", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "NewParameters", - "inputs": [ - { "type": "uint256", "name": "A", "indexed": false }, - { "type": "uint256", "name": "fee", "indexed": false }, - { "type": "uint256", "name": "admin_fee", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "outputs": [], - "inputs": [ - { "type": "address[4]", "name": "_coins" }, - { "type": "address[4]", "name": "_underlying_coins" }, - { "type": "address", "name": "_pool_token" }, - { "type": "uint256", "name": "_A" }, - { "type": "uint256", "name": "_fee" } - ], - "constant": false, - "payable": false, - "type": "constructor" - }, - { - "name": "get_virtual_price", - "outputs": [{ "type": "uint256", "name": "out" }], - "inputs": [], - "constant": true, - "payable": false, - "type": "function" - }, - { - "name": "calc_token_amount", - "outputs": [{ "type": "uint256", "name": "out" }], - "inputs": [ - { "type": "uint256[4]", "name": "amounts" }, - { "type": "bool", "name": "deposit" } - ], - "constant": true, - "payable": false, - "type": "function" - }, - { - "name": "add_liquidity", - "outputs": [], - "inputs": [ - { "type": "uint256[4]", "name": "amounts" }, - { "type": "uint256", "name": "min_mint_amount" } - ], - "constant": false, - "payable": false, - "type": "function" - }, - { - "name": "get_dy", - "outputs": [{ "type": "uint256", "name": "out" }], - "inputs": [ - { "type": "int128", "name": "i" }, - { "type": "int128", "name": "j" }, - { "type": "uint256", "name": "dx" } - ], - "constant": true, - "payable": false, - "type": "function" - }, - { - "name": "get_dx", - "outputs": [{ "type": "uint256", "name": "out" }], - "inputs": [ - { "type": "int128", "name": "i" }, - { "type": "int128", "name": "j" }, - { "type": "uint256", "name": "dy" } - ], - "constant": true, - "payable": false, - "type": "function" - }, - { - "name": "get_dy_underlying", - "outputs": [{ "type": "uint256", "name": "out" }], - "inputs": [ - { "type": "int128", "name": "i" }, - { "type": "int128", "name": "j" }, - { "type": "uint256", "name": "dx" } - ], - "constant": true, - "payable": false, - "type": "function" - }, - { - "name": "get_dx_underlying", - "outputs": [{ "type": "uint256", "name": "out" }], - "inputs": [ - { "type": "int128", "name": "i" }, - { "type": "int128", "name": "j" }, - { "type": "uint256", "name": "dy" } - ], - "constant": true, - "payable": false, - "type": "function" - }, - { - "name": "exchange", - "outputs": [], - "inputs": [ - { "type": "int128", "name": "i" }, - { "type": "int128", "name": "j" }, - { "type": "uint256", "name": "dx" }, - { "type": "uint256", "name": "min_dy" } - ], - "constant": false, - "payable": false, - "type": "function" - }, - { - "name": "exchange_underlying", - "outputs": [], - "inputs": [ - { "type": "int128", "name": "i" }, - { "type": "int128", "name": "j" }, - { "type": "uint256", "name": "dx" }, - { "type": "uint256", "name": "min_dy" } - ], - "constant": false, - "payable": false, - "type": "function" - }, - { - "name": "remove_liquidity", - "outputs": [], - "inputs": [ - { "type": "uint256", "name": "_amount" }, - { "type": "uint256[4]", "name": "min_amounts" } - ], - "constant": false, - "payable": false, - "type": "function" - }, - { - "name": "remove_liquidity_imbalance", - "outputs": [], - "inputs": [ - { "type": "uint256[4]", "name": "amounts" }, - { "type": "uint256", "name": "max_burn_amount" } - ], - "constant": false, - "payable": false, - "type": "function" - }, - { - "name": "commit_new_parameters", - "outputs": [], - "inputs": [ - { "type": "uint256", "name": "amplification" }, - { "type": "uint256", "name": "new_fee" }, - { "type": "uint256", "name": "new_admin_fee" } - ], - "constant": false, - "payable": false, - "type": "function" - }, - { - "name": "apply_new_parameters", - "outputs": [], - "inputs": [], - "constant": false, - "payable": false, - "type": "function" - }, - { - "name": "revert_new_parameters", - "outputs": [], - "inputs": [], - "constant": false, - "payable": false, - "type": "function" - }, - { - "name": "commit_transfer_ownership", - "outputs": [], - "inputs": [{ "type": "address", "name": "_owner" }], - "constant": false, - "payable": false, - "type": "function" - }, - { - "name": "apply_transfer_ownership", - "outputs": [], - "inputs": [], - "constant": false, - "payable": false, - "type": "function" - }, - { - "name": "revert_transfer_ownership", - "outputs": [], - "inputs": [], - "constant": false, - "payable": false, - "type": "function" - }, - { - "name": "withdraw_admin_fees", - "outputs": [], - "inputs": [], - "constant": false, - "payable": false, - "type": "function" - }, - { "name": "kill_me", "outputs": [], "inputs": [], "constant": false, "payable": false, "type": "function" }, - { "name": "unkill_me", "outputs": [], "inputs": [], "constant": false, "payable": false, "type": "function" }, - { - "name": "coins", - "outputs": [{ "type": "address", "name": "out" }], - "inputs": [{ "type": "int128", "name": "arg0" }], - "constant": true, - "payable": false, - "type": "function" - }, - { - "name": "underlying_coins", - "outputs": [{ "type": "address", "name": "out" }], - "inputs": [{ "type": "int128", "name": "arg0" }], - "constant": true, - "payable": false, - "type": "function" - }, - { - "name": "balances", - "outputs": [{ "type": "uint256", "name": "out" }], - "inputs": [{ "type": "int128", "name": "arg0" }], - "constant": true, - "payable": false, - "type": "function" - }, - { - "name": "A", - "outputs": [{ "type": "uint256", "name": "out" }], - "inputs": [], - "constant": true, - "payable": false, - "type": "function" - }, - { - "name": "fee", - "outputs": [{ "type": "uint256", "name": "out" }], - "inputs": [], - "constant": true, - "payable": false, - "type": "function" - }, - { - "name": "admin_fee", - "outputs": [{ "type": "uint256", "name": "out" }], - "inputs": [], - "constant": true, - "payable": false, - "type": "function" - }, - { - "name": "owner", - "outputs": [{ "type": "address", "name": "out" }], - "inputs": [], - "constant": true, - "payable": false, - "type": "function" - }, - { - "name": "admin_actions_deadline", - "outputs": [{ "type": "uint256", "unit": "sec", "name": "out" }], - "inputs": [], - "constant": true, - "payable": false, - "type": "function" - }, - { - "name": "transfer_ownership_deadline", - "outputs": [{ "type": "uint256", "unit": "sec", "name": "out" }], - "inputs": [], - "constant": true, - "payable": false, - "type": "function" - }, - { - "name": "future_A", - "outputs": [{ "type": "uint256", "name": "out" }], - "inputs": [], - "constant": true, - "payable": false, - "type": "function" - }, - { - "name": "future_fee", - "outputs": [{ "type": "uint256", "name": "out" }], - "inputs": [], - "constant": true, - "payable": false, - "type": "function" - }, - { - "name": "future_admin_fee", - "outputs": [{ "type": "uint256", "name": "out" }], - "inputs": [], - "constant": true, - "payable": false, - "type": "function" - }, - { - "name": "future_owner", - "outputs": [{ "type": "address", "name": "out" }], - "inputs": [], - "constant": true, - "payable": false, - "type": "function" - } -] diff --git a/src/apps/curve/contracts/abis/curve-v-1-metapool.json b/src/apps/curve/contracts/abis/curve-v-1-metapool.json deleted file mode 100644 index 6b7fdd929..000000000 --- a/src/apps/curve/contracts/abis/curve-v-1-metapool.json +++ /dev/null @@ -1,535 +0,0 @@ -[ - { - "name": "TokenExchange", - "inputs": [ - { "type": "address", "name": "buyer", "indexed": true }, - { "type": "int128", "name": "sold_id", "indexed": false }, - { "type": "uint256", "name": "tokens_sold", "indexed": false }, - { "type": "int128", "name": "bought_id", "indexed": false }, - { "type": "uint256", "name": "tokens_bought", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "TokenExchangeUnderlying", - "inputs": [ - { "type": "address", "name": "buyer", "indexed": true }, - { "type": "int128", "name": "sold_id", "indexed": false }, - { "type": "uint256", "name": "tokens_sold", "indexed": false }, - { "type": "int128", "name": "bought_id", "indexed": false }, - { "type": "uint256", "name": "tokens_bought", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "AddLiquidity", - "inputs": [ - { "type": "address", "name": "provider", "indexed": true }, - { "type": "uint256[2]", "name": "token_amounts", "indexed": false }, - { "type": "uint256[2]", "name": "fees", "indexed": false }, - { "type": "uint256", "name": "invariant", "indexed": false }, - { "type": "uint256", "name": "token_supply", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "RemoveLiquidity", - "inputs": [ - { "type": "address", "name": "provider", "indexed": true }, - { "type": "uint256[2]", "name": "token_amounts", "indexed": false }, - { "type": "uint256[2]", "name": "fees", "indexed": false }, - { "type": "uint256", "name": "token_supply", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "RemoveLiquidityOne", - "inputs": [ - { "type": "address", "name": "provider", "indexed": true }, - { "type": "uint256", "name": "token_amount", "indexed": false }, - { "type": "uint256", "name": "coin_amount", "indexed": false }, - { "type": "uint256", "name": "token_supply", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "RemoveLiquidityImbalance", - "inputs": [ - { "type": "address", "name": "provider", "indexed": true }, - { "type": "uint256[2]", "name": "token_amounts", "indexed": false }, - { "type": "uint256[2]", "name": "fees", "indexed": false }, - { "type": "uint256", "name": "invariant", "indexed": false }, - { "type": "uint256", "name": "token_supply", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "CommitNewAdmin", - "inputs": [ - { "type": "uint256", "name": "deadline", "indexed": true }, - { "type": "address", "name": "admin", "indexed": true } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "NewAdmin", - "inputs": [{ "type": "address", "name": "admin", "indexed": true }], - "anonymous": false, - "type": "event" - }, - { - "name": "CommitNewFee", - "inputs": [ - { "type": "uint256", "name": "deadline", "indexed": true }, - { "type": "uint256", "name": "fee", "indexed": false }, - { "type": "uint256", "name": "admin_fee", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "NewFee", - "inputs": [ - { "type": "uint256", "name": "fee", "indexed": false }, - { "type": "uint256", "name": "admin_fee", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "RampA", - "inputs": [ - { "type": "uint256", "name": "old_A", "indexed": false }, - { "type": "uint256", "name": "new_A", "indexed": false }, - { "type": "uint256", "name": "initial_time", "indexed": false }, - { "type": "uint256", "name": "future_time", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "StopRampA", - "inputs": [ - { "type": "uint256", "name": "A", "indexed": false }, - { "type": "uint256", "name": "t", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "outputs": [], - "inputs": [ - { "type": "address", "name": "_owner" }, - { "type": "address[2]", "name": "_coins" }, - { "type": "address", "name": "_pool_token" }, - { "type": "address", "name": "_base_pool" }, - { "type": "uint256", "name": "_A" }, - { "type": "uint256", "name": "_fee" }, - { "type": "uint256", "name": "_admin_fee" } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "name": "A", - "outputs": [{ "type": "uint256", "name": "" }], - "inputs": [], - "stateMutability": "view", - "type": "function", - "gas": "5205" - }, - { - "name": "A_precise", - "outputs": [{ "type": "uint256", "name": "" }], - "inputs": [], - "stateMutability": "view", - "type": "function", - "gas": "5167" - }, - { - "name": "get_virtual_price", - "outputs": [{ "type": "uint256", "name": "" }], - "inputs": [], - "stateMutability": "view", - "type": "function", - "gas": "992854" - }, - { - "name": "calc_token_amount", - "outputs": [{ "type": "uint256", "name": "" }], - "inputs": [ - { "type": "uint256[2]", "name": "amounts" }, - { "type": "bool", "name": "is_deposit" } - ], - "stateMutability": "view", - "type": "function", - "gas": "3939870" - }, - { - "name": "add_liquidity", - "outputs": [{ "type": "uint256", "name": "" }], - "inputs": [ - { "type": "uint256[2]", "name": "amounts" }, - { "type": "uint256", "name": "min_mint_amount" } - ], - "stateMutability": "nonpayable", - "type": "function", - "gas": "6138492" - }, - { - "name": "get_dy", - "outputs": [{ "type": "uint256", "name": "" }], - "inputs": [ - { "type": "int128", "name": "i" }, - { "type": "int128", "name": "j" }, - { "type": "uint256", "name": "dx" } - ], - "stateMutability": "view", - "type": "function", - "gas": "2390368" - }, - { - "name": "get_dy_underlying", - "outputs": [{ "type": "uint256", "name": "" }], - "inputs": [ - { "type": "int128", "name": "i" }, - { "type": "int128", "name": "j" }, - { "type": "uint256", "name": "dx" } - ], - "stateMutability": "view", - "type": "function", - "gas": "2393485" - }, - { - "name": "exchange", - "outputs": [{ "type": "uint256", "name": "" }], - "inputs": [ - { "type": "int128", "name": "i" }, - { "type": "int128", "name": "j" }, - { "type": "uint256", "name": "dx" }, - { "type": "uint256", "name": "min_dy" } - ], - "stateMutability": "nonpayable", - "type": "function", - "gas": "2617568" - }, - { - "name": "exchange_underlying", - "outputs": [{ "type": "uint256", "name": "" }], - "inputs": [ - { "type": "int128", "name": "i" }, - { "type": "int128", "name": "j" }, - { "type": "uint256", "name": "dx" }, - { "type": "uint256", "name": "min_dy" } - ], - "stateMutability": "nonpayable", - "type": "function", - "gas": "2632475" - }, - { - "name": "remove_liquidity", - "outputs": [{ "type": "uint256[2]", "name": "" }], - "inputs": [ - { "type": "uint256", "name": "_amount" }, - { "type": "uint256[2]", "name": "min_amounts" } - ], - "stateMutability": "nonpayable", - "type": "function", - "gas": "163289" - }, - { - "name": "remove_liquidity_imbalance", - "outputs": [{ "type": "uint256", "name": "" }], - "inputs": [ - { "type": "uint256[2]", "name": "amounts" }, - { "type": "uint256", "name": "max_burn_amount" } - ], - "stateMutability": "nonpayable", - "type": "function", - "gas": "6138317" - }, - { - "name": "calc_withdraw_one_coin", - "outputs": [{ "type": "uint256", "name": "" }], - "inputs": [ - { "type": "uint256", "name": "_token_amount" }, - { "type": "int128", "name": "i" } - ], - "stateMutability": "view", - "type": "function", - "gas": "4335" - }, - { - "name": "remove_liquidity_one_coin", - "outputs": [{ "type": "uint256", "name": "" }], - "inputs": [ - { "type": "uint256", "name": "_token_amount" }, - { "type": "int128", "name": "i" }, - { "type": "uint256", "name": "_min_amount" } - ], - "stateMutability": "nonpayable", - "type": "function", - "gas": "3827137" - }, - { - "name": "ramp_A", - "outputs": [], - "inputs": [ - { "type": "uint256", "name": "_future_A" }, - { "type": "uint256", "name": "_future_time" } - ], - "stateMutability": "nonpayable", - "type": "function", - "gas": "151906" - }, - { - "name": "stop_ramp_A", - "outputs": [], - "inputs": [], - "stateMutability": "nonpayable", - "type": "function", - "gas": "148667" - }, - { - "name": "commit_new_fee", - "outputs": [], - "inputs": [ - { "type": "uint256", "name": "new_fee" }, - { "type": "uint256", "name": "new_admin_fee" } - ], - "stateMutability": "nonpayable", - "type": "function", - "gas": "110491" - }, - { - "name": "apply_new_fee", - "outputs": [], - "inputs": [], - "stateMutability": "nonpayable", - "type": "function", - "gas": "97272" - }, - { - "name": "revert_new_parameters", - "outputs": [], - "inputs": [], - "stateMutability": "nonpayable", - "type": "function", - "gas": "21925" - }, - { - "name": "commit_transfer_ownership", - "outputs": [], - "inputs": [{ "type": "address", "name": "_owner" }], - "stateMutability": "nonpayable", - "type": "function", - "gas": "74663" - }, - { - "name": "apply_transfer_ownership", - "outputs": [], - "inputs": [], - "stateMutability": "nonpayable", - "type": "function", - "gas": "60740" - }, - { - "name": "revert_transfer_ownership", - "outputs": [], - "inputs": [], - "stateMutability": "nonpayable", - "type": "function", - "gas": "22015" - }, - { - "name": "admin_balances", - "outputs": [{ "type": "uint256", "name": "" }], - "inputs": [{ "type": "uint256", "name": "i" }], - "stateMutability": "view", - "type": "function", - "gas": "3511" - }, - { - "name": "withdraw_admin_fees", - "outputs": [], - "inputs": [], - "stateMutability": "nonpayable", - "type": "function", - "gas": "9248" - }, - { - "name": "donate_admin_fees", - "outputs": [], - "inputs": [], - "stateMutability": "nonpayable", - "type": "function", - "gas": "74995" - }, - { - "name": "kill_me", - "outputs": [], - "inputs": [], - "stateMutability": "nonpayable", - "type": "function", - "gas": "38028" - }, - { - "name": "unkill_me", - "outputs": [], - "inputs": [], - "stateMutability": "nonpayable", - "type": "function", - "gas": "22165" - }, - { - "name": "coins", - "outputs": [{ "type": "address", "name": "" }], - "inputs": [{ "type": "uint256", "name": "arg0" }], - "stateMutability": "view", - "type": "function", - "gas": "2250" - }, - { - "name": "balances", - "outputs": [{ "type": "uint256", "name": "" }], - "inputs": [{ "type": "uint256", "name": "arg0" }], - "stateMutability": "view", - "type": "function", - "gas": "2280" - }, - { - "name": "fee", - "outputs": [{ "type": "uint256", "name": "" }], - "inputs": [], - "stateMutability": "view", - "type": "function", - "gas": "2201" - }, - { - "name": "admin_fee", - "outputs": [{ "type": "uint256", "name": "" }], - "inputs": [], - "stateMutability": "view", - "type": "function", - "gas": "2231" - }, - { - "name": "owner", - "outputs": [{ "type": "address", "name": "" }], - "inputs": [], - "stateMutability": "view", - "type": "function", - "gas": "2261" - }, - { - "name": "base_pool", - "outputs": [{ "type": "address", "name": "" }], - "inputs": [], - "stateMutability": "view", - "type": "function", - "gas": "2291" - }, - { - "name": "base_virtual_price", - "outputs": [{ "type": "uint256", "name": "" }], - "inputs": [], - "stateMutability": "view", - "type": "function", - "gas": "2321" - }, - { - "name": "base_cache_updated", - "outputs": [{ "type": "uint256", "name": "" }], - "inputs": [], - "stateMutability": "view", - "type": "function", - "gas": "2351" - }, - { - "name": "base_coins", - "outputs": [{ "type": "address", "name": "" }], - "inputs": [{ "type": "uint256", "name": "arg0" }], - "stateMutability": "view", - "type": "function", - "gas": "2490" - }, - { - "name": "initial_A", - "outputs": [{ "type": "uint256", "name": "" }], - "inputs": [], - "stateMutability": "view", - "type": "function", - "gas": "2411" - }, - { - "name": "future_A", - "outputs": [{ "type": "uint256", "name": "" }], - "inputs": [], - "stateMutability": "view", - "type": "function", - "gas": "2441" - }, - { - "name": "initial_A_time", - "outputs": [{ "type": "uint256", "name": "" }], - "inputs": [], - "stateMutability": "view", - "type": "function", - "gas": "2471" - }, - { - "name": "future_A_time", - "outputs": [{ "type": "uint256", "name": "" }], - "inputs": [], - "stateMutability": "view", - "type": "function", - "gas": "2501" - }, - { - "name": "admin_actions_deadline", - "outputs": [{ "type": "uint256", "name": "" }], - "inputs": [], - "stateMutability": "view", - "type": "function", - "gas": "2531" - }, - { - "name": "transfer_ownership_deadline", - "outputs": [{ "type": "uint256", "name": "" }], - "inputs": [], - "stateMutability": "view", - "type": "function", - "gas": "2561" - }, - { - "name": "future_fee", - "outputs": [{ "type": "uint256", "name": "" }], - "inputs": [], - "stateMutability": "view", - "type": "function", - "gas": "2591" - }, - { - "name": "future_admin_fee", - "outputs": [{ "type": "uint256", "name": "" }], - "inputs": [], - "stateMutability": "view", - "type": "function", - "gas": "2621" - }, - { - "name": "future_owner", - "outputs": [{ "type": "address", "name": "" }], - "inputs": [], - "stateMutability": "view", - "type": "function", - "gas": "2651" - } -] diff --git a/src/apps/curve/contracts/abis/curve-v-1-pool-legacy.json b/src/apps/curve/contracts/abis/curve-v-1-pool-legacy.json deleted file mode 100644 index ef88f02e4..000000000 --- a/src/apps/curve/contracts/abis/curve-v-1-pool-legacy.json +++ /dev/null @@ -1,402 +0,0 @@ -[ - { - "name": "TokenExchange", - "inputs": [ - { "type": "address", "name": "buyer", "indexed": true }, - { "type": "int128", "name": "sold_id", "indexed": false }, - { "type": "uint256", "name": "tokens_sold", "indexed": false }, - { "type": "int128", "name": "bought_id", "indexed": false }, - { "type": "uint256", "name": "tokens_bought", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "TokenExchangeUnderlying", - "inputs": [ - { "type": "address", "name": "buyer", "indexed": true }, - { "type": "int128", "name": "sold_id", "indexed": false }, - { "type": "uint256", "name": "tokens_sold", "indexed": false }, - { "type": "int128", "name": "bought_id", "indexed": false }, - { "type": "uint256", "name": "tokens_bought", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "AddLiquidity", - "inputs": [ - { "type": "address", "name": "provider", "indexed": true }, - { "type": "uint256[4]", "name": "token_amounts", "indexed": false }, - { "type": "uint256[4]", "name": "fees", "indexed": false }, - { "type": "uint256", "name": "invariant", "indexed": false }, - { "type": "uint256", "name": "token_supply", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "RemoveLiquidity", - "inputs": [ - { "type": "address", "name": "provider", "indexed": true }, - { "type": "uint256[4]", "name": "token_amounts", "indexed": false }, - { "type": "uint256[4]", "name": "fees", "indexed": false }, - { "type": "uint256", "name": "token_supply", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "RemoveLiquidityImbalance", - "inputs": [ - { "type": "address", "name": "provider", "indexed": true }, - { "type": "uint256[4]", "name": "token_amounts", "indexed": false }, - { "type": "uint256[4]", "name": "fees", "indexed": false }, - { "type": "uint256", "name": "invariant", "indexed": false }, - { "type": "uint256", "name": "token_supply", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "CommitNewAdmin", - "inputs": [ - { "type": "uint256", "name": "deadline", "indexed": true, "unit": "sec" }, - { "type": "address", "name": "admin", "indexed": true } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "NewAdmin", - "inputs": [{ "type": "address", "name": "admin", "indexed": true }], - "anonymous": false, - "type": "event" - }, - { - "name": "CommitNewParameters", - "inputs": [ - { "type": "uint256", "name": "deadline", "indexed": true, "unit": "sec" }, - { "type": "uint256", "name": "A", "indexed": false }, - { "type": "uint256", "name": "fee", "indexed": false }, - { "type": "uint256", "name": "admin_fee", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "NewParameters", - "inputs": [ - { "type": "uint256", "name": "A", "indexed": false }, - { "type": "uint256", "name": "fee", "indexed": false }, - { "type": "uint256", "name": "admin_fee", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "outputs": [], - "inputs": [ - { "type": "address[4]", "name": "_coins" }, - { "type": "address[4]", "name": "_underlying_coins" }, - { "type": "address", "name": "_pool_token" }, - { "type": "uint256", "name": "_A" }, - { "type": "uint256", "name": "_fee" } - ], - "constant": false, - "payable": false, - "type": "constructor" - }, - { - "name": "get_virtual_price", - "outputs": [{ "type": "uint256", "name": "out" }], - "inputs": [], - "constant": true, - "payable": false, - "type": "function" - }, - { - "name": "calc_token_amount", - "outputs": [{ "type": "uint256", "name": "out" }], - "inputs": [ - { "type": "uint256[4]", "name": "amounts" }, - { "type": "bool", "name": "deposit" } - ], - "constant": true, - "payable": false, - "type": "function" - }, - { - "name": "add_liquidity", - "outputs": [], - "inputs": [ - { "type": "uint256[4]", "name": "amounts" }, - { "type": "uint256", "name": "min_mint_amount" } - ], - "constant": false, - "payable": false, - "type": "function" - }, - { - "name": "get_dy", - "outputs": [{ "type": "uint256", "name": "out" }], - "inputs": [ - { "type": "int128", "name": "i" }, - { "type": "int128", "name": "j" }, - { "type": "uint256", "name": "dx" } - ], - "constant": true, - "payable": false, - "type": "function" - }, - { - "name": "get_dx", - "outputs": [{ "type": "uint256", "name": "out" }], - "inputs": [ - { "type": "int128", "name": "i" }, - { "type": "int128", "name": "j" }, - { "type": "uint256", "name": "dy" } - ], - "constant": true, - "payable": false, - "type": "function" - }, - { - "name": "get_dy_underlying", - "outputs": [{ "type": "uint256", "name": "out" }], - "inputs": [ - { "type": "int128", "name": "i" }, - { "type": "int128", "name": "j" }, - { "type": "uint256", "name": "dx" } - ], - "constant": true, - "payable": false, - "type": "function" - }, - { - "name": "get_dx_underlying", - "outputs": [{ "type": "uint256", "name": "out" }], - "inputs": [ - { "type": "int128", "name": "i" }, - { "type": "int128", "name": "j" }, - { "type": "uint256", "name": "dy" } - ], - "constant": true, - "payable": false, - "type": "function" - }, - { - "name": "exchange", - "outputs": [], - "inputs": [ - { "type": "int128", "name": "i" }, - { "type": "int128", "name": "j" }, - { "type": "uint256", "name": "dx" }, - { "type": "uint256", "name": "min_dy" } - ], - "constant": false, - "payable": false, - "type": "function" - }, - { - "name": "exchange_underlying", - "outputs": [], - "inputs": [ - { "type": "int128", "name": "i" }, - { "type": "int128", "name": "j" }, - { "type": "uint256", "name": "dx" }, - { "type": "uint256", "name": "min_dy" } - ], - "constant": false, - "payable": false, - "type": "function" - }, - { - "name": "remove_liquidity", - "outputs": [], - "inputs": [ - { "type": "uint256", "name": "_amount" }, - { "type": "uint256[4]", "name": "min_amounts" } - ], - "constant": false, - "payable": false, - "type": "function" - }, - { - "name": "remove_liquidity_imbalance", - "outputs": [], - "inputs": [ - { "type": "uint256[4]", "name": "amounts" }, - { "type": "uint256", "name": "max_burn_amount" } - ], - "constant": false, - "payable": false, - "type": "function" - }, - { - "name": "commit_new_parameters", - "outputs": [], - "inputs": [ - { "type": "uint256", "name": "amplification" }, - { "type": "uint256", "name": "new_fee" }, - { "type": "uint256", "name": "new_admin_fee" } - ], - "constant": false, - "payable": false, - "type": "function" - }, - { - "name": "apply_new_parameters", - "outputs": [], - "inputs": [], - "constant": false, - "payable": false, - "type": "function" - }, - { - "name": "revert_new_parameters", - "outputs": [], - "inputs": [], - "constant": false, - "payable": false, - "type": "function" - }, - { - "name": "commit_transfer_ownership", - "outputs": [], - "inputs": [{ "type": "address", "name": "_owner" }], - "constant": false, - "payable": false, - "type": "function" - }, - { - "name": "apply_transfer_ownership", - "outputs": [], - "inputs": [], - "constant": false, - "payable": false, - "type": "function" - }, - { - "name": "revert_transfer_ownership", - "outputs": [], - "inputs": [], - "constant": false, - "payable": false, - "type": "function" - }, - { - "name": "withdraw_admin_fees", - "outputs": [], - "inputs": [], - "constant": false, - "payable": false, - "type": "function" - }, - { "name": "kill_me", "outputs": [], "inputs": [], "constant": false, "payable": false, "type": "function" }, - { "name": "unkill_me", "outputs": [], "inputs": [], "constant": false, "payable": false, "type": "function" }, - { - "name": "coins", - "outputs": [{ "type": "address", "name": "out" }], - "inputs": [{ "type": "int128", "name": "arg0" }], - "constant": true, - "payable": false, - "type": "function" - }, - { - "name": "underlying_coins", - "outputs": [{ "type": "address", "name": "out" }], - "inputs": [{ "type": "int128", "name": "arg0" }], - "constant": true, - "payable": false, - "type": "function" - }, - { - "name": "balances", - "outputs": [{ "type": "uint256", "name": "out" }], - "inputs": [{ "type": "int128", "name": "arg0" }], - "constant": true, - "payable": false, - "type": "function" - }, - { - "name": "A", - "outputs": [{ "type": "uint256", "name": "out" }], - "inputs": [], - "constant": true, - "payable": false, - "type": "function" - }, - { - "name": "fee", - "outputs": [{ "type": "uint256", "name": "out" }], - "inputs": [], - "constant": true, - "payable": false, - "type": "function" - }, - { - "name": "admin_fee", - "outputs": [{ "type": "uint256", "name": "out" }], - "inputs": [], - "constant": true, - "payable": false, - "type": "function" - }, - { - "name": "owner", - "outputs": [{ "type": "address", "name": "out" }], - "inputs": [], - "constant": true, - "payable": false, - "type": "function" - }, - { - "name": "admin_actions_deadline", - "outputs": [{ "type": "uint256", "unit": "sec", "name": "out" }], - "inputs": [], - "constant": true, - "payable": false, - "type": "function" - }, - { - "name": "transfer_ownership_deadline", - "outputs": [{ "type": "uint256", "unit": "sec", "name": "out" }], - "inputs": [], - "constant": true, - "payable": false, - "type": "function" - }, - { - "name": "future_A", - "outputs": [{ "type": "uint256", "name": "out" }], - "inputs": [], - "constant": true, - "payable": false, - "type": "function" - }, - { - "name": "future_fee", - "outputs": [{ "type": "uint256", "name": "out" }], - "inputs": [], - "constant": true, - "payable": false, - "type": "function" - }, - { - "name": "future_admin_fee", - "outputs": [{ "type": "uint256", "name": "out" }], - "inputs": [], - "constant": true, - "payable": false, - "type": "function" - }, - { - "name": "future_owner", - "outputs": [{ "type": "address", "name": "out" }], - "inputs": [], - "constant": true, - "payable": false, - "type": "function" - } -] diff --git a/src/apps/curve/contracts/abis/curve-v-2-pool.json b/src/apps/curve/contracts/abis/curve-v-2-pool.json deleted file mode 100644 index a2ea49f5a..000000000 --- a/src/apps/curve/contracts/abis/curve-v-2-pool.json +++ /dev/null @@ -1,687 +0,0 @@ -[ - { - "name": "TokenExchange", - "inputs": [ - { "name": "buyer", "type": "address", "indexed": true }, - { "name": "sold_id", "type": "uint256", "indexed": false }, - { "name": "tokens_sold", "type": "uint256", "indexed": false }, - { "name": "bought_id", "type": "uint256", "indexed": false }, - { "name": "tokens_bought", "type": "uint256", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "AddLiquidity", - "inputs": [ - { "name": "provider", "type": "address", "indexed": true }, - { "name": "token_amounts", "type": "uint256[3]", "indexed": false }, - { "name": "fee", "type": "uint256", "indexed": false }, - { "name": "token_supply", "type": "uint256", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "RemoveLiquidity", - "inputs": [ - { "name": "provider", "type": "address", "indexed": true }, - { "name": "token_amounts", "type": "uint256[3]", "indexed": false }, - { "name": "token_supply", "type": "uint256", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "RemoveLiquidityOne", - "inputs": [ - { "name": "provider", "type": "address", "indexed": true }, - { "name": "token_amount", "type": "uint256", "indexed": false }, - { "name": "coin_index", "type": "uint256", "indexed": false }, - { "name": "coin_amount", "type": "uint256", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "CommitNewAdmin", - "inputs": [ - { "name": "deadline", "type": "uint256", "indexed": true }, - { "name": "admin", "type": "address", "indexed": true } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "NewAdmin", - "inputs": [{ "name": "admin", "type": "address", "indexed": true }], - "anonymous": false, - "type": "event" - }, - { - "name": "CommitNewParameters", - "inputs": [ - { "name": "deadline", "type": "uint256", "indexed": true }, - { "name": "admin_fee", "type": "uint256", "indexed": false }, - { "name": "mid_fee", "type": "uint256", "indexed": false }, - { "name": "out_fee", "type": "uint256", "indexed": false }, - { "name": "fee_gamma", "type": "uint256", "indexed": false }, - { "name": "price_threshold", "type": "uint256", "indexed": false }, - { "name": "adjustment_step", "type": "uint256", "indexed": false }, - { "name": "ma_half_time", "type": "uint256", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "NewParameters", - "inputs": [ - { "name": "admin_fee", "type": "uint256", "indexed": false }, - { "name": "mid_fee", "type": "uint256", "indexed": false }, - { "name": "out_fee", "type": "uint256", "indexed": false }, - { "name": "fee_gamma", "type": "uint256", "indexed": false }, - { "name": "price_threshold", "type": "uint256", "indexed": false }, - { "name": "adjustment_step", "type": "uint256", "indexed": false }, - { "name": "ma_half_time", "type": "uint256", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "RampAgamma", - "inputs": [ - { "name": "initial_A", "type": "uint256", "indexed": false }, - { "name": "future_A", "type": "uint256", "indexed": false }, - { "name": "initial_time", "type": "uint256", "indexed": false }, - { "name": "future_time", "type": "uint256", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "StopRampA", - "inputs": [ - { "name": "current_A", "type": "uint256", "indexed": false }, - { "name": "current_gamma", "type": "uint256", "indexed": false }, - { "name": "time", "type": "uint256", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "name": "ClaimAdminFee", - "inputs": [ - { "name": "admin", "type": "address", "indexed": true }, - { "name": "tokens", "type": "uint256", "indexed": false } - ], - "anonymous": false, - "type": "event" - }, - { - "stateMutability": "nonpayable", - "type": "constructor", - "inputs": [ - { "name": "owner", "type": "address" }, - { "name": "A", "type": "uint256" }, - { "name": "gamma", "type": "uint256" }, - { "name": "mid_fee", "type": "uint256" }, - { "name": "out_fee", "type": "uint256" }, - { "name": "price_threshold", "type": "uint256" }, - { "name": "fee_gamma", "type": "uint256" }, - { "name": "adjustment_step", "type": "uint256" }, - { "name": "admin_fee", "type": "uint256" }, - { "name": "ma_half_time", "type": "uint256" }, - { "name": "initial_prices", "type": "uint256[2]" } - ], - "outputs": [] - }, - { "stateMutability": "payable", "type": "fallback" }, - { - "stateMutability": "view", - "type": "function", - "name": "price_oracle", - "inputs": [{ "name": "k", "type": "uint256" }], - "outputs": [{ "name": "", "type": "uint256" }], - "gas": "3361" - }, - { - "stateMutability": "view", - "type": "function", - "name": "price_scale", - "inputs": [{ "name": "k", "type": "uint256" }], - "outputs": [{ "name": "", "type": "uint256" }], - "gas": "3391" - }, - { - "stateMutability": "view", - "type": "function", - "name": "last_prices", - "inputs": [{ "name": "k", "type": "uint256" }], - "outputs": [{ "name": "", "type": "uint256" }], - "gas": "3421" - }, - { - "stateMutability": "view", - "type": "function", - "name": "token", - "inputs": [], - "outputs": [{ "name": "", "type": "address" }], - "gas": "468" - }, - { - "stateMutability": "view", - "type": "function", - "name": "coins", - "inputs": [{ "name": "i", "type": "uint256" }], - "outputs": [{ "name": "", "type": "address" }], - "gas": "582" - }, - { - "stateMutability": "view", - "type": "function", - "name": "A", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }], - "gas": "937" - }, - { - "stateMutability": "view", - "type": "function", - "name": "gamma", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }], - "gas": "12484" - }, - { - "stateMutability": "view", - "type": "function", - "name": "A_precise", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }], - "gas": "929" - }, - { - "stateMutability": "view", - "type": "function", - "name": "fee", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }], - "gas": "21733" - }, - { - "stateMutability": "view", - "type": "function", - "name": "fee_calc", - "inputs": [{ "name": "xp", "type": "uint256[3]" }], - "outputs": [{ "name": "", "type": "uint256" }], - "gas": "11156" - }, - { - "stateMutability": "view", - "type": "function", - "name": "get_virtual_price", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }], - "gas": "11642" - }, - { - "stateMutability": "payable", - "type": "function", - "name": "exchange", - "inputs": [ - { "name": "i", "type": "uint256" }, - { "name": "j", "type": "uint256" }, - { "name": "dx", "type": "uint256" }, - { "name": "min_dy", "type": "uint256" } - ], - "outputs": [] - }, - { - "stateMutability": "payable", - "type": "function", - "name": "exchange", - "inputs": [ - { "name": "i", "type": "uint256" }, - { "name": "j", "type": "uint256" }, - { "name": "dx", "type": "uint256" }, - { "name": "min_dy", "type": "uint256" }, - { "name": "use_eth", "type": "bool" } - ], - "outputs": [] - }, - { - "stateMutability": "view", - "type": "function", - "name": "get_dy", - "inputs": [ - { "name": "i", "type": "uint256" }, - { "name": "j", "type": "uint256" }, - { "name": "dx", "type": "uint256" } - ], - "outputs": [{ "name": "", "type": "uint256" }], - "gas": "3152" - }, - { - "stateMutability": "view", - "type": "function", - "name": "calc_token_fee", - "inputs": [ - { "name": "amounts", "type": "uint256[3]" }, - { "name": "xp", "type": "uint256[3]" } - ], - "outputs": [{ "name": "", "type": "uint256" }], - "gas": "26702" - }, - { - "stateMutability": "nonpayable", - "type": "function", - "name": "add_liquidity", - "inputs": [ - { "name": "amounts", "type": "uint256[3]" }, - { "name": "min_mint_amount", "type": "uint256" } - ], - "outputs": [], - "gas": "682649" - }, - { - "stateMutability": "nonpayable", - "type": "function", - "name": "remove_liquidity", - "inputs": [ - { "name": "_amount", "type": "uint256" }, - { "name": "min_amounts", "type": "uint256[3]" } - ], - "outputs": [], - "gas": "234127" - }, - { - "stateMutability": "view", - "type": "function", - "name": "calc_token_amount", - "inputs": [ - { "name": "amounts", "type": "uint256[3]" }, - { "name": "deposit", "type": "bool" } - ], - "outputs": [{ "name": "", "type": "uint256" }], - "gas": "3459" - }, - { - "stateMutability": "view", - "type": "function", - "name": "calc_withdraw_one_coin", - "inputs": [ - { "name": "token_amount", "type": "uint256" }, - { "name": "i", "type": "uint256" } - ], - "outputs": [{ "name": "", "type": "uint256" }], - "gas": "13939" - }, - { - "stateMutability": "nonpayable", - "type": "function", - "name": "remove_liquidity_one_coin", - "inputs": [ - { "name": "token_amount", "type": "uint256" }, - { "name": "i", "type": "uint256" }, - { "name": "min_amount", "type": "uint256" } - ], - "outputs": [], - "gas": "592064" - }, - { - "stateMutability": "nonpayable", - "type": "function", - "name": "claim_admin_fees", - "inputs": [], - "outputs": [], - "gas": "355740" - }, - { - "stateMutability": "nonpayable", - "type": "function", - "name": "ramp_A_gamma", - "inputs": [ - { "name": "future_A", "type": "uint256" }, - { "name": "future_gamma", "type": "uint256" }, - { "name": "future_time", "type": "uint256" } - ], - "outputs": [], - "gas": "162031" - }, - { - "stateMutability": "nonpayable", - "type": "function", - "name": "stop_ramp_A_gamma", - "inputs": [], - "outputs": [], - "gas": "157781" - }, - { - "stateMutability": "nonpayable", - "type": "function", - "name": "commit_new_parameters", - "inputs": [ - { "name": "_new_mid_fee", "type": "uint256" }, - { "name": "_new_out_fee", "type": "uint256" }, - { "name": "_new_admin_fee", "type": "uint256" }, - { "name": "_new_fee_gamma", "type": "uint256" }, - { "name": "_new_price_threshold", "type": "uint256" }, - { "name": "_new_adjustment_step", "type": "uint256" }, - { "name": "_new_ma_half_time", "type": "uint256" } - ], - "outputs": [], - "gas": "306299" - }, - { - "stateMutability": "nonpayable", - "type": "function", - "name": "apply_new_parameters", - "inputs": [], - "outputs": [], - "gas": "649370" - }, - { - "stateMutability": "nonpayable", - "type": "function", - "name": "revert_new_parameters", - "inputs": [], - "outputs": [], - "gas": "23252" - }, - { - "stateMutability": "nonpayable", - "type": "function", - "name": "commit_transfer_ownership", - "inputs": [{ "name": "_owner", "type": "address" }], - "outputs": [], - "gas": "77290" - }, - { - "stateMutability": "nonpayable", - "type": "function", - "name": "apply_transfer_ownership", - "inputs": [], - "outputs": [], - "gas": "65967" - }, - { - "stateMutability": "nonpayable", - "type": "function", - "name": "revert_transfer_ownership", - "inputs": [], - "outputs": [], - "gas": "23342" - }, - { - "stateMutability": "nonpayable", - "type": "function", - "name": "kill_me", - "inputs": [], - "outputs": [], - "gas": "40565" - }, - { - "stateMutability": "nonpayable", - "type": "function", - "name": "unkill_me", - "inputs": [], - "outputs": [], - "gas": "23402" - }, - { - "stateMutability": "nonpayable", - "type": "function", - "name": "set_admin_fee_receiver", - "inputs": [{ "name": "_admin_fee_receiver", "type": "address" }], - "outputs": [], - "gas": "38535" - }, - { - "stateMutability": "view", - "type": "function", - "name": "last_prices_timestamp", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }], - "gas": "3408" - }, - { - "stateMutability": "view", - "type": "function", - "name": "initial_A_gamma", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }], - "gas": "3438" - }, - { - "stateMutability": "view", - "type": "function", - "name": "future_A_gamma", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }], - "gas": "3468" - }, - { - "stateMutability": "view", - "type": "function", - "name": "initial_A_gamma_time", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }], - "gas": "3498" - }, - { - "stateMutability": "view", - "type": "function", - "name": "future_A_gamma_time", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }], - "gas": "3528" - }, - { - "stateMutability": "view", - "type": "function", - "name": "price_threshold", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }], - "gas": "3558" - }, - { - "stateMutability": "view", - "type": "function", - "name": "future_price_threshoold", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }], - "gas": "3588" - }, - { - "stateMutability": "view", - "type": "function", - "name": "fee_gamma", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }], - "gas": "3618" - }, - { - "stateMutability": "view", - "type": "function", - "name": "future_fee_gamma", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }], - "gas": "3648" - }, - { - "stateMutability": "view", - "type": "function", - "name": "adjustment_step", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }], - "gas": "3678" - }, - { - "stateMutability": "view", - "type": "function", - "name": "future_adjustment_step", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }], - "gas": "3708" - }, - { - "stateMutability": "view", - "type": "function", - "name": "ma_half_time", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }], - "gas": "3738" - }, - { - "stateMutability": "view", - "type": "function", - "name": "future_ma_half_time", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }], - "gas": "3768" - }, - { - "stateMutability": "view", - "type": "function", - "name": "mid_fee", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }], - "gas": "3798" - }, - { - "stateMutability": "view", - "type": "function", - "name": "out_fee", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }], - "gas": "3828" - }, - { - "stateMutability": "view", - "type": "function", - "name": "admin_fee", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }], - "gas": "3858" - }, - { - "stateMutability": "view", - "type": "function", - "name": "future_mid_fee", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }], - "gas": "3888" - }, - { - "stateMutability": "view", - "type": "function", - "name": "future_out_fee", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }], - "gas": "3918" - }, - { - "stateMutability": "view", - "type": "function", - "name": "future_admin_fee", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }], - "gas": "3948" - }, - { - "stateMutability": "view", - "type": "function", - "name": "balances", - "inputs": [{ "name": "arg0", "type": "uint256" }], - "outputs": [{ "name": "", "type": "uint256" }], - "gas": "4087" - }, - { - "stateMutability": "view", - "type": "function", - "name": "D", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }], - "gas": "4008" - }, - { - "stateMutability": "view", - "type": "function", - "name": "owner", - "inputs": [], - "outputs": [{ "name": "", "type": "address" }], - "gas": "4038" - }, - { - "stateMutability": "view", - "type": "function", - "name": "future_owner", - "inputs": [], - "outputs": [{ "name": "", "type": "address" }], - "gas": "4068" - }, - { - "stateMutability": "view", - "type": "function", - "name": "xcp_profit", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }], - "gas": "4098" - }, - { - "stateMutability": "view", - "type": "function", - "name": "xcp_profit_a", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }], - "gas": "4128" - }, - { - "stateMutability": "view", - "type": "function", - "name": "virtual_price", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }], - "gas": "4158" - }, - { - "stateMutability": "view", - "type": "function", - "name": "is_killed", - "inputs": [], - "outputs": [{ "name": "", "type": "bool" }], - "gas": "4188" - }, - { - "stateMutability": "view", - "type": "function", - "name": "kill_deadline", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }], - "gas": "4218" - }, - { - "stateMutability": "view", - "type": "function", - "name": "transfer_ownership_deadline", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }], - "gas": "4248" - }, - { - "stateMutability": "view", - "type": "function", - "name": "admin_actions_deadline", - "inputs": [], - "outputs": [{ "name": "", "type": "uint256" }], - "gas": "4278" - }, - { - "stateMutability": "view", - "type": "function", - "name": "admin_fee_receiver", - "inputs": [], - "outputs": [{ "name": "", "type": "address" }], - "gas": "4308" - } -] diff --git a/src/apps/curve/contracts/ethers/CurveAddressResolver.ts b/src/apps/curve/contracts/ethers/CurveAddressResolver.ts new file mode 100644 index 000000000..7becd3e09 --- /dev/null +++ b/src/apps/curve/contracts/ethers/CurveAddressResolver.ts @@ -0,0 +1,423 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumber, + BigNumberish, + BytesLike, + CallOverrides, + ContractTransaction, + Overrides, + PopulatedTransaction, + Signer, + utils, +} from 'ethers'; +import type { FunctionFragment, Result, EventFragment } from '@ethersproject/abi'; +import type { Listener, Provider } from '@ethersproject/providers'; +import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from './common'; + +export interface CurveAddressResolverInterface extends utils.Interface { + functions: { + 'get_registry()': FunctionFragment; + 'max_id()': FunctionFragment; + 'get_address(uint256)': FunctionFragment; + 'add_new_id(address,string)': FunctionFragment; + 'set_address(uint256,address)': FunctionFragment; + 'unset_address(uint256)': FunctionFragment; + 'commit_transfer_ownership(address)': FunctionFragment; + 'apply_transfer_ownership()': FunctionFragment; + 'revert_transfer_ownership()': FunctionFragment; + 'admin()': FunctionFragment; + 'transfer_ownership_deadline()': FunctionFragment; + 'future_admin()': FunctionFragment; + 'get_id_info(uint256)': FunctionFragment; + }; + + getFunction( + nameOrSignatureOrTopic: + | 'get_registry' + | 'max_id' + | 'get_address' + | 'add_new_id' + | 'set_address' + | 'unset_address' + | 'commit_transfer_ownership' + | 'apply_transfer_ownership' + | 'revert_transfer_ownership' + | 'admin' + | 'transfer_ownership_deadline' + | 'future_admin' + | 'get_id_info', + ): FunctionFragment; + + encodeFunctionData(functionFragment: 'get_registry', values?: undefined): string; + encodeFunctionData(functionFragment: 'max_id', values?: undefined): string; + encodeFunctionData(functionFragment: 'get_address', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'add_new_id', values: [PromiseOrValue, PromiseOrValue]): string; + encodeFunctionData( + functionFragment: 'set_address', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData(functionFragment: 'unset_address', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'commit_transfer_ownership', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'apply_transfer_ownership', values?: undefined): string; + encodeFunctionData(functionFragment: 'revert_transfer_ownership', values?: undefined): string; + encodeFunctionData(functionFragment: 'admin', values?: undefined): string; + encodeFunctionData(functionFragment: 'transfer_ownership_deadline', values?: undefined): string; + encodeFunctionData(functionFragment: 'future_admin', values?: undefined): string; + encodeFunctionData(functionFragment: 'get_id_info', values: [PromiseOrValue]): string; + + decodeFunctionResult(functionFragment: 'get_registry', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'max_id', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'get_address', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'add_new_id', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'set_address', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'unset_address', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'commit_transfer_ownership', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'apply_transfer_ownership', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'revert_transfer_ownership', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'admin', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'transfer_ownership_deadline', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'future_admin', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'get_id_info', data: BytesLike): Result; + + events: { + 'NewAddressIdentifier(uint256,address,string)': EventFragment; + 'AddressModified(uint256,address,uint256)': EventFragment; + 'CommitNewAdmin(uint256,address)': EventFragment; + 'NewAdmin(address)': EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: 'NewAddressIdentifier'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'AddressModified'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'CommitNewAdmin'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'NewAdmin'): EventFragment; +} + +export interface NewAddressIdentifierEventObject { + id: BigNumber; + addr: string; + description: string; +} +export type NewAddressIdentifierEvent = TypedEvent<[BigNumber, string, string], NewAddressIdentifierEventObject>; + +export type NewAddressIdentifierEventFilter = TypedEventFilter; + +export interface AddressModifiedEventObject { + id: BigNumber; + new_address: string; + version: BigNumber; +} +export type AddressModifiedEvent = TypedEvent<[BigNumber, string, BigNumber], AddressModifiedEventObject>; + +export type AddressModifiedEventFilter = TypedEventFilter; + +export interface CommitNewAdminEventObject { + deadline: BigNumber; + admin: string; +} +export type CommitNewAdminEvent = TypedEvent<[BigNumber, string], CommitNewAdminEventObject>; + +export type CommitNewAdminEventFilter = TypedEventFilter; + +export interface NewAdminEventObject { + admin: string; +} +export type NewAdminEvent = TypedEvent<[string], NewAdminEventObject>; + +export type NewAdminEventFilter = TypedEventFilter; + +export interface CurveAddressResolver extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + interface: CurveAddressResolverInterface; + + queryFilter( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined, + ): Promise>; + + listeners(eventFilter?: TypedEventFilter): Array>; + listeners(eventName?: string): Array; + removeAllListeners(eventFilter: TypedEventFilter): this; + removeAllListeners(eventName?: string): this; + off: OnEvent; + on: OnEvent; + once: OnEvent; + removeListener: OnEvent; + + functions: { + get_registry(overrides?: CallOverrides): Promise<[string]>; + + max_id(overrides?: CallOverrides): Promise<[BigNumber]>; + + get_address(_id: PromiseOrValue, overrides?: CallOverrides): Promise<[string]>; + + add_new_id( + _address: PromiseOrValue, + _description: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + set_address( + _id: PromiseOrValue, + _address: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + unset_address( + _id: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + commit_transfer_ownership( + _new_admin: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + apply_transfer_ownership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + revert_transfer_ownership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + admin(overrides?: CallOverrides): Promise<[string]>; + + transfer_ownership_deadline(overrides?: CallOverrides): Promise<[BigNumber]>; + + future_admin(overrides?: CallOverrides): Promise<[string]>; + + get_id_info( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise< + [string, boolean, BigNumber, BigNumber, string] & { + addr: string; + is_active: boolean; + version: BigNumber; + last_modified: BigNumber; + description: string; + } + >; + }; + + get_registry(overrides?: CallOverrides): Promise; + + max_id(overrides?: CallOverrides): Promise; + + get_address(_id: PromiseOrValue, overrides?: CallOverrides): Promise; + + add_new_id( + _address: PromiseOrValue, + _description: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + set_address( + _id: PromiseOrValue, + _address: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + unset_address( + _id: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + commit_transfer_ownership( + _new_admin: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + apply_transfer_ownership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + revert_transfer_ownership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + admin(overrides?: CallOverrides): Promise; + + transfer_ownership_deadline(overrides?: CallOverrides): Promise; + + future_admin(overrides?: CallOverrides): Promise; + + get_id_info( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise< + [string, boolean, BigNumber, BigNumber, string] & { + addr: string; + is_active: boolean; + version: BigNumber; + last_modified: BigNumber; + description: string; + } + >; + + callStatic: { + get_registry(overrides?: CallOverrides): Promise; + + max_id(overrides?: CallOverrides): Promise; + + get_address(_id: PromiseOrValue, overrides?: CallOverrides): Promise; + + add_new_id( + _address: PromiseOrValue, + _description: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + set_address( + _id: PromiseOrValue, + _address: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + unset_address(_id: PromiseOrValue, overrides?: CallOverrides): Promise; + + commit_transfer_ownership(_new_admin: PromiseOrValue, overrides?: CallOverrides): Promise; + + apply_transfer_ownership(overrides?: CallOverrides): Promise; + + revert_transfer_ownership(overrides?: CallOverrides): Promise; + + admin(overrides?: CallOverrides): Promise; + + transfer_ownership_deadline(overrides?: CallOverrides): Promise; + + future_admin(overrides?: CallOverrides): Promise; + + get_id_info( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise< + [string, boolean, BigNumber, BigNumber, string] & { + addr: string; + is_active: boolean; + version: BigNumber; + last_modified: BigNumber; + description: string; + } + >; + }; + + filters: { + 'NewAddressIdentifier(uint256,address,string)'( + id?: PromiseOrValue | null, + addr?: null, + description?: null, + ): NewAddressIdentifierEventFilter; + NewAddressIdentifier( + id?: PromiseOrValue | null, + addr?: null, + description?: null, + ): NewAddressIdentifierEventFilter; + + 'AddressModified(uint256,address,uint256)'( + id?: PromiseOrValue | null, + new_address?: null, + version?: null, + ): AddressModifiedEventFilter; + AddressModified( + id?: PromiseOrValue | null, + new_address?: null, + version?: null, + ): AddressModifiedEventFilter; + + 'CommitNewAdmin(uint256,address)'( + deadline?: PromiseOrValue | null, + admin?: PromiseOrValue | null, + ): CommitNewAdminEventFilter; + CommitNewAdmin( + deadline?: PromiseOrValue | null, + admin?: PromiseOrValue | null, + ): CommitNewAdminEventFilter; + + 'NewAdmin(address)'(admin?: PromiseOrValue | null): NewAdminEventFilter; + NewAdmin(admin?: PromiseOrValue | null): NewAdminEventFilter; + }; + + estimateGas: { + get_registry(overrides?: CallOverrides): Promise; + + max_id(overrides?: CallOverrides): Promise; + + get_address(_id: PromiseOrValue, overrides?: CallOverrides): Promise; + + add_new_id( + _address: PromiseOrValue, + _description: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + set_address( + _id: PromiseOrValue, + _address: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + unset_address( + _id: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + commit_transfer_ownership( + _new_admin: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + apply_transfer_ownership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + revert_transfer_ownership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + admin(overrides?: CallOverrides): Promise; + + transfer_ownership_deadline(overrides?: CallOverrides): Promise; + + future_admin(overrides?: CallOverrides): Promise; + + get_id_info(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + }; + + populateTransaction: { + get_registry(overrides?: CallOverrides): Promise; + + max_id(overrides?: CallOverrides): Promise; + + get_address(_id: PromiseOrValue, overrides?: CallOverrides): Promise; + + add_new_id( + _address: PromiseOrValue, + _description: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + set_address( + _id: PromiseOrValue, + _address: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + unset_address( + _id: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + commit_transfer_ownership( + _new_admin: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + apply_transfer_ownership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + revert_transfer_ownership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + admin(overrides?: CallOverrides): Promise; + + transfer_ownership_deadline(overrides?: CallOverrides): Promise; + + future_admin(overrides?: CallOverrides): Promise; + + get_id_info(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + }; +} diff --git a/src/apps/curve/contracts/ethers/CurveChildLiquidityGaugeFactory.ts b/src/apps/curve/contracts/ethers/CurveChildLiquidityGaugeFactory.ts deleted file mode 100644 index ba4034628..000000000 --- a/src/apps/curve/contracts/ethers/CurveChildLiquidityGaugeFactory.ts +++ /dev/null @@ -1,656 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PopulatedTransaction, - Signer, - utils, -} from 'ethers'; -import type { FunctionFragment, Result, EventFragment } from '@ethersproject/abi'; -import type { Listener, Provider } from '@ethersproject/providers'; -import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from './common'; - -export interface CurveChildLiquidityGaugeFactoryInterface extends utils.Interface { - functions: { - 'mint(address)': FunctionFragment; - 'mint_many(address[32])': FunctionFragment; - 'deploy_gauge(address,bytes32)': FunctionFragment; - 'deploy_gauge(address,bytes32,address)': FunctionFragment; - 'set_voting_escrow(address)': FunctionFragment; - 'set_implementation(address)': FunctionFragment; - 'set_mirrored(address,bool)': FunctionFragment; - 'set_call_proxy(address)': FunctionFragment; - 'commit_transfer_ownership(address)': FunctionFragment; - 'accept_transfer_ownership()': FunctionFragment; - 'is_valid_gauge(address)': FunctionFragment; - 'is_mirrored(address)': FunctionFragment; - 'last_request(address)': FunctionFragment; - 'get_implementation()': FunctionFragment; - 'voting_escrow()': FunctionFragment; - 'owner()': FunctionFragment; - 'future_owner()': FunctionFragment; - 'call_proxy()': FunctionFragment; - 'gauge_data(address)': FunctionFragment; - 'minted(address,address)': FunctionFragment; - 'get_gauge_from_lp_token(address)': FunctionFragment; - 'get_gauge_count()': FunctionFragment; - 'get_gauge(uint256)': FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | 'mint' - | 'mint_many' - | 'deploy_gauge(address,bytes32)' - | 'deploy_gauge(address,bytes32,address)' - | 'set_voting_escrow' - | 'set_implementation' - | 'set_mirrored' - | 'set_call_proxy' - | 'commit_transfer_ownership' - | 'accept_transfer_ownership' - | 'is_valid_gauge' - | 'is_mirrored' - | 'last_request' - | 'get_implementation' - | 'voting_escrow' - | 'owner' - | 'future_owner' - | 'call_proxy' - | 'gauge_data' - | 'minted' - | 'get_gauge_from_lp_token' - | 'get_gauge_count' - | 'get_gauge', - ): FunctionFragment; - - encodeFunctionData(functionFragment: 'mint', values: [PromiseOrValue]): string; - encodeFunctionData(functionFragment: 'mint_many', values: [PromiseOrValue[]]): string; - encodeFunctionData( - functionFragment: 'deploy_gauge(address,bytes32)', - values: [PromiseOrValue, PromiseOrValue], - ): string; - encodeFunctionData( - functionFragment: 'deploy_gauge(address,bytes32,address)', - values: [PromiseOrValue, PromiseOrValue, PromiseOrValue], - ): string; - encodeFunctionData(functionFragment: 'set_voting_escrow', values: [PromiseOrValue]): string; - encodeFunctionData(functionFragment: 'set_implementation', values: [PromiseOrValue]): string; - encodeFunctionData( - functionFragment: 'set_mirrored', - values: [PromiseOrValue, PromiseOrValue], - ): string; - encodeFunctionData(functionFragment: 'set_call_proxy', values: [PromiseOrValue]): string; - encodeFunctionData(functionFragment: 'commit_transfer_ownership', values: [PromiseOrValue]): string; - encodeFunctionData(functionFragment: 'accept_transfer_ownership', values?: undefined): string; - encodeFunctionData(functionFragment: 'is_valid_gauge', values: [PromiseOrValue]): string; - encodeFunctionData(functionFragment: 'is_mirrored', values: [PromiseOrValue]): string; - encodeFunctionData(functionFragment: 'last_request', values: [PromiseOrValue]): string; - encodeFunctionData(functionFragment: 'get_implementation', values?: undefined): string; - encodeFunctionData(functionFragment: 'voting_escrow', values?: undefined): string; - encodeFunctionData(functionFragment: 'owner', values?: undefined): string; - encodeFunctionData(functionFragment: 'future_owner', values?: undefined): string; - encodeFunctionData(functionFragment: 'call_proxy', values?: undefined): string; - encodeFunctionData(functionFragment: 'gauge_data', values: [PromiseOrValue]): string; - encodeFunctionData(functionFragment: 'minted', values: [PromiseOrValue, PromiseOrValue]): string; - encodeFunctionData(functionFragment: 'get_gauge_from_lp_token', values: [PromiseOrValue]): string; - encodeFunctionData(functionFragment: 'get_gauge_count', values?: undefined): string; - encodeFunctionData(functionFragment: 'get_gauge', values: [PromiseOrValue]): string; - - decodeFunctionResult(functionFragment: 'mint', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'mint_many', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'deploy_gauge(address,bytes32)', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'deploy_gauge(address,bytes32,address)', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'set_voting_escrow', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'set_implementation', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'set_mirrored', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'set_call_proxy', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'commit_transfer_ownership', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'accept_transfer_ownership', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'is_valid_gauge', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'is_mirrored', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'last_request', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'get_implementation', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'voting_escrow', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'owner', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'future_owner', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'call_proxy', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'gauge_data', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'minted', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'get_gauge_from_lp_token', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'get_gauge_count', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'get_gauge', data: BytesLike): Result; - - events: { - 'DeployedGauge(address,address,address,bytes32,address)': EventFragment; - 'Minted(address,address,uint256)': EventFragment; - 'UpdateImplementation(address,address)': EventFragment; - 'UpdateVotingEscrow(address,address)': EventFragment; - 'UpdateCallProxy(address,address)': EventFragment; - 'UpdateMirrored(address,bool)': EventFragment; - 'TransferOwnership(address,address)': EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: 'DeployedGauge'): EventFragment; - getEvent(nameOrSignatureOrTopic: 'Minted'): EventFragment; - getEvent(nameOrSignatureOrTopic: 'UpdateImplementation'): EventFragment; - getEvent(nameOrSignatureOrTopic: 'UpdateVotingEscrow'): EventFragment; - getEvent(nameOrSignatureOrTopic: 'UpdateCallProxy'): EventFragment; - getEvent(nameOrSignatureOrTopic: 'UpdateMirrored'): EventFragment; - getEvent(nameOrSignatureOrTopic: 'TransferOwnership'): EventFragment; -} - -export interface DeployedGaugeEventObject { - _implementation: string; - _lp_token: string; - _deployer: string; - _salt: string; - _gauge: string; -} -export type DeployedGaugeEvent = TypedEvent<[string, string, string, string, string], DeployedGaugeEventObject>; - -export type DeployedGaugeEventFilter = TypedEventFilter; - -export interface MintedEventObject { - _user: string; - _gauge: string; - _new_total: BigNumber; -} -export type MintedEvent = TypedEvent<[string, string, BigNumber], MintedEventObject>; - -export type MintedEventFilter = TypedEventFilter; - -export interface UpdateImplementationEventObject { - _old_implementation: string; - _new_implementation: string; -} -export type UpdateImplementationEvent = TypedEvent<[string, string], UpdateImplementationEventObject>; - -export type UpdateImplementationEventFilter = TypedEventFilter; - -export interface UpdateVotingEscrowEventObject { - _old_voting_escrow: string; - _new_voting_escrow: string; -} -export type UpdateVotingEscrowEvent = TypedEvent<[string, string], UpdateVotingEscrowEventObject>; - -export type UpdateVotingEscrowEventFilter = TypedEventFilter; - -export interface UpdateCallProxyEventObject { - _old_call_proxy: string; - _new_call_proxy: string; -} -export type UpdateCallProxyEvent = TypedEvent<[string, string], UpdateCallProxyEventObject>; - -export type UpdateCallProxyEventFilter = TypedEventFilter; - -export interface UpdateMirroredEventObject { - _gauge: string; - _mirrored: boolean; -} -export type UpdateMirroredEvent = TypedEvent<[string, boolean], UpdateMirroredEventObject>; - -export type UpdateMirroredEventFilter = TypedEventFilter; - -export interface TransferOwnershipEventObject { - _old_owner: string; - _new_owner: string; -} -export type TransferOwnershipEvent = TypedEvent<[string, string], TransferOwnershipEventObject>; - -export type TransferOwnershipEventFilter = TypedEventFilter; - -export interface CurveChildLiquidityGaugeFactory extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: CurveChildLiquidityGaugeFactoryInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined, - ): Promise>; - - listeners(eventFilter?: TypedEventFilter): Array>; - listeners(eventName?: string): Array; - removeAllListeners(eventFilter: TypedEventFilter): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - mint( - _gauge: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - mint_many( - _gauges: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'deploy_gauge(address,bytes32)'( - _lp_token: PromiseOrValue, - _salt: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'deploy_gauge(address,bytes32,address)'( - _lp_token: PromiseOrValue, - _salt: PromiseOrValue, - _manager: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - set_voting_escrow( - _voting_escrow: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - set_implementation( - _implementation: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - set_mirrored( - _gauge: PromiseOrValue, - _mirrored: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - set_call_proxy( - _new_call_proxy: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - commit_transfer_ownership( - _future_owner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - accept_transfer_ownership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - is_valid_gauge(_gauge: PromiseOrValue, overrides?: CallOverrides): Promise<[boolean]>; - - is_mirrored(_gauge: PromiseOrValue, overrides?: CallOverrides): Promise<[boolean]>; - - last_request(_gauge: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber]>; - - get_implementation(overrides?: CallOverrides): Promise<[string]>; - - voting_escrow(overrides?: CallOverrides): Promise<[string]>; - - owner(overrides?: CallOverrides): Promise<[string]>; - - future_owner(overrides?: CallOverrides): Promise<[string]>; - - call_proxy(overrides?: CallOverrides): Promise<[string]>; - - gauge_data(arg0: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber]>; - - minted(arg0: PromiseOrValue, arg1: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber]>; - - get_gauge_from_lp_token(arg0: PromiseOrValue, overrides?: CallOverrides): Promise<[string]>; - - get_gauge_count(overrides?: CallOverrides): Promise<[BigNumber]>; - - get_gauge(arg0: PromiseOrValue, overrides?: CallOverrides): Promise<[string]>; - }; - - mint( - _gauge: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - mint_many( - _gauges: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'deploy_gauge(address,bytes32)'( - _lp_token: PromiseOrValue, - _salt: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'deploy_gauge(address,bytes32,address)'( - _lp_token: PromiseOrValue, - _salt: PromiseOrValue, - _manager: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - set_voting_escrow( - _voting_escrow: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - set_implementation( - _implementation: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - set_mirrored( - _gauge: PromiseOrValue, - _mirrored: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - set_call_proxy( - _new_call_proxy: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - commit_transfer_ownership( - _future_owner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - accept_transfer_ownership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - is_valid_gauge(_gauge: PromiseOrValue, overrides?: CallOverrides): Promise; - - is_mirrored(_gauge: PromiseOrValue, overrides?: CallOverrides): Promise; - - last_request(_gauge: PromiseOrValue, overrides?: CallOverrides): Promise; - - get_implementation(overrides?: CallOverrides): Promise; - - voting_escrow(overrides?: CallOverrides): Promise; - - owner(overrides?: CallOverrides): Promise; - - future_owner(overrides?: CallOverrides): Promise; - - call_proxy(overrides?: CallOverrides): Promise; - - gauge_data(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - minted(arg0: PromiseOrValue, arg1: PromiseOrValue, overrides?: CallOverrides): Promise; - - get_gauge_from_lp_token(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - get_gauge_count(overrides?: CallOverrides): Promise; - - get_gauge(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - callStatic: { - mint(_gauge: PromiseOrValue, overrides?: CallOverrides): Promise; - - mint_many(_gauges: PromiseOrValue[], overrides?: CallOverrides): Promise; - - 'deploy_gauge(address,bytes32)'( - _lp_token: PromiseOrValue, - _salt: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - 'deploy_gauge(address,bytes32,address)'( - _lp_token: PromiseOrValue, - _salt: PromiseOrValue, - _manager: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - set_voting_escrow(_voting_escrow: PromiseOrValue, overrides?: CallOverrides): Promise; - - set_implementation(_implementation: PromiseOrValue, overrides?: CallOverrides): Promise; - - set_mirrored( - _gauge: PromiseOrValue, - _mirrored: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - set_call_proxy(_new_call_proxy: PromiseOrValue, overrides?: CallOverrides): Promise; - - commit_transfer_ownership(_future_owner: PromiseOrValue, overrides?: CallOverrides): Promise; - - accept_transfer_ownership(overrides?: CallOverrides): Promise; - - is_valid_gauge(_gauge: PromiseOrValue, overrides?: CallOverrides): Promise; - - is_mirrored(_gauge: PromiseOrValue, overrides?: CallOverrides): Promise; - - last_request(_gauge: PromiseOrValue, overrides?: CallOverrides): Promise; - - get_implementation(overrides?: CallOverrides): Promise; - - voting_escrow(overrides?: CallOverrides): Promise; - - owner(overrides?: CallOverrides): Promise; - - future_owner(overrides?: CallOverrides): Promise; - - call_proxy(overrides?: CallOverrides): Promise; - - gauge_data(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - minted(arg0: PromiseOrValue, arg1: PromiseOrValue, overrides?: CallOverrides): Promise; - - get_gauge_from_lp_token(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - get_gauge_count(overrides?: CallOverrides): Promise; - - get_gauge(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - }; - - filters: { - 'DeployedGauge(address,address,address,bytes32,address)'( - _implementation?: PromiseOrValue | null, - _lp_token?: PromiseOrValue | null, - _deployer?: PromiseOrValue | null, - _salt?: null, - _gauge?: null, - ): DeployedGaugeEventFilter; - DeployedGauge( - _implementation?: PromiseOrValue | null, - _lp_token?: PromiseOrValue | null, - _deployer?: PromiseOrValue | null, - _salt?: null, - _gauge?: null, - ): DeployedGaugeEventFilter; - - 'Minted(address,address,uint256)'( - _user?: PromiseOrValue | null, - _gauge?: PromiseOrValue | null, - _new_total?: null, - ): MintedEventFilter; - Minted( - _user?: PromiseOrValue | null, - _gauge?: PromiseOrValue | null, - _new_total?: null, - ): MintedEventFilter; - - 'UpdateImplementation(address,address)'( - _old_implementation?: null, - _new_implementation?: null, - ): UpdateImplementationEventFilter; - UpdateImplementation(_old_implementation?: null, _new_implementation?: null): UpdateImplementationEventFilter; - - 'UpdateVotingEscrow(address,address)'( - _old_voting_escrow?: null, - _new_voting_escrow?: null, - ): UpdateVotingEscrowEventFilter; - UpdateVotingEscrow(_old_voting_escrow?: null, _new_voting_escrow?: null): UpdateVotingEscrowEventFilter; - - 'UpdateCallProxy(address,address)'(_old_call_proxy?: null, _new_call_proxy?: null): UpdateCallProxyEventFilter; - UpdateCallProxy(_old_call_proxy?: null, _new_call_proxy?: null): UpdateCallProxyEventFilter; - - 'UpdateMirrored(address,bool)'(_gauge?: PromiseOrValue | null, _mirrored?: null): UpdateMirroredEventFilter; - UpdateMirrored(_gauge?: PromiseOrValue | null, _mirrored?: null): UpdateMirroredEventFilter; - - 'TransferOwnership(address,address)'(_old_owner?: null, _new_owner?: null): TransferOwnershipEventFilter; - TransferOwnership(_old_owner?: null, _new_owner?: null): TransferOwnershipEventFilter; - }; - - estimateGas: { - mint(_gauge: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - mint_many( - _gauges: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'deploy_gauge(address,bytes32)'( - _lp_token: PromiseOrValue, - _salt: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'deploy_gauge(address,bytes32,address)'( - _lp_token: PromiseOrValue, - _salt: PromiseOrValue, - _manager: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - set_voting_escrow( - _voting_escrow: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - set_implementation( - _implementation: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - set_mirrored( - _gauge: PromiseOrValue, - _mirrored: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - set_call_proxy( - _new_call_proxy: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - commit_transfer_ownership( - _future_owner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - accept_transfer_ownership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - is_valid_gauge(_gauge: PromiseOrValue, overrides?: CallOverrides): Promise; - - is_mirrored(_gauge: PromiseOrValue, overrides?: CallOverrides): Promise; - - last_request(_gauge: PromiseOrValue, overrides?: CallOverrides): Promise; - - get_implementation(overrides?: CallOverrides): Promise; - - voting_escrow(overrides?: CallOverrides): Promise; - - owner(overrides?: CallOverrides): Promise; - - future_owner(overrides?: CallOverrides): Promise; - - call_proxy(overrides?: CallOverrides): Promise; - - gauge_data(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - minted(arg0: PromiseOrValue, arg1: PromiseOrValue, overrides?: CallOverrides): Promise; - - get_gauge_from_lp_token(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - get_gauge_count(overrides?: CallOverrides): Promise; - - get_gauge(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - }; - - populateTransaction: { - mint( - _gauge: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - mint_many( - _gauges: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'deploy_gauge(address,bytes32)'( - _lp_token: PromiseOrValue, - _salt: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'deploy_gauge(address,bytes32,address)'( - _lp_token: PromiseOrValue, - _salt: PromiseOrValue, - _manager: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - set_voting_escrow( - _voting_escrow: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - set_implementation( - _implementation: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - set_mirrored( - _gauge: PromiseOrValue, - _mirrored: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - set_call_proxy( - _new_call_proxy: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - commit_transfer_ownership( - _future_owner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - accept_transfer_ownership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - is_valid_gauge(_gauge: PromiseOrValue, overrides?: CallOverrides): Promise; - - is_mirrored(_gauge: PromiseOrValue, overrides?: CallOverrides): Promise; - - last_request(_gauge: PromiseOrValue, overrides?: CallOverrides): Promise; - - get_implementation(overrides?: CallOverrides): Promise; - - voting_escrow(overrides?: CallOverrides): Promise; - - owner(overrides?: CallOverrides): Promise; - - future_owner(overrides?: CallOverrides): Promise; - - call_proxy(overrides?: CallOverrides): Promise; - - gauge_data(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - minted( - arg0: PromiseOrValue, - arg1: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - get_gauge_from_lp_token(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - get_gauge_count(overrides?: CallOverrides): Promise; - - get_gauge(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - }; -} diff --git a/src/apps/curve/contracts/ethers/CurveCryptoFactory.ts b/src/apps/curve/contracts/ethers/CurveCryptoFactory.ts new file mode 100644 index 000000000..5a930bf04 --- /dev/null +++ b/src/apps/curve/contracts/ethers/CurveCryptoFactory.ts @@ -0,0 +1,832 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumber, + BigNumberish, + BytesLike, + CallOverrides, + ContractTransaction, + Overrides, + PopulatedTransaction, + Signer, + utils, +} from 'ethers'; +import type { FunctionFragment, Result, EventFragment } from '@ethersproject/abi'; +import type { Listener, Provider } from '@ethersproject/providers'; +import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from './common'; + +export interface CurveCryptoFactoryInterface extends utils.Interface { + functions: { + 'deploy_pool(string,string,address[2],uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)': FunctionFragment; + 'deploy_gauge(address)': FunctionFragment; + 'set_fee_receiver(address)': FunctionFragment; + 'set_pool_implementation(address)': FunctionFragment; + 'set_token_implementation(address)': FunctionFragment; + 'set_gauge_implementation(address)': FunctionFragment; + 'commit_transfer_ownership(address)': FunctionFragment; + 'accept_transfer_ownership()': FunctionFragment; + 'find_pool_for_coins(address,address)': FunctionFragment; + 'find_pool_for_coins(address,address,uint256)': FunctionFragment; + 'get_coins(address)': FunctionFragment; + 'get_decimals(address)': FunctionFragment; + 'get_balances(address)': FunctionFragment; + 'get_coin_indices(address,address,address)': FunctionFragment; + 'get_gauge(address)': FunctionFragment; + 'get_eth_index(address)': FunctionFragment; + 'get_token(address)': FunctionFragment; + 'admin()': FunctionFragment; + 'future_admin()': FunctionFragment; + 'fee_receiver()': FunctionFragment; + 'pool_implementation()': FunctionFragment; + 'token_implementation()': FunctionFragment; + 'gauge_implementation()': FunctionFragment; + 'pool_count()': FunctionFragment; + 'pool_list(uint256)': FunctionFragment; + }; + + getFunction( + nameOrSignatureOrTopic: + | 'deploy_pool' + | 'deploy_gauge' + | 'set_fee_receiver' + | 'set_pool_implementation' + | 'set_token_implementation' + | 'set_gauge_implementation' + | 'commit_transfer_ownership' + | 'accept_transfer_ownership' + | 'find_pool_for_coins(address,address)' + | 'find_pool_for_coins(address,address,uint256)' + | 'get_coins' + | 'get_decimals' + | 'get_balances' + | 'get_coin_indices' + | 'get_gauge' + | 'get_eth_index' + | 'get_token' + | 'admin' + | 'future_admin' + | 'fee_receiver' + | 'pool_implementation' + | 'token_implementation' + | 'gauge_implementation' + | 'pool_count' + | 'pool_list', + ): FunctionFragment; + + encodeFunctionData( + functionFragment: 'deploy_pool', + values: [ + PromiseOrValue, + PromiseOrValue, + [PromiseOrValue, PromiseOrValue], + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + ], + ): string; + encodeFunctionData(functionFragment: 'deploy_gauge', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'set_fee_receiver', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'set_pool_implementation', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'set_token_implementation', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'set_gauge_implementation', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'commit_transfer_ownership', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'accept_transfer_ownership', values?: undefined): string; + encodeFunctionData( + functionFragment: 'find_pool_for_coins(address,address)', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData( + functionFragment: 'find_pool_for_coins(address,address,uint256)', + values: [PromiseOrValue, PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData(functionFragment: 'get_coins', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'get_decimals', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'get_balances', values: [PromiseOrValue]): string; + encodeFunctionData( + functionFragment: 'get_coin_indices', + values: [PromiseOrValue, PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData(functionFragment: 'get_gauge', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'get_eth_index', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'get_token', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'admin', values?: undefined): string; + encodeFunctionData(functionFragment: 'future_admin', values?: undefined): string; + encodeFunctionData(functionFragment: 'fee_receiver', values?: undefined): string; + encodeFunctionData(functionFragment: 'pool_implementation', values?: undefined): string; + encodeFunctionData(functionFragment: 'token_implementation', values?: undefined): string; + encodeFunctionData(functionFragment: 'gauge_implementation', values?: undefined): string; + encodeFunctionData(functionFragment: 'pool_count', values?: undefined): string; + encodeFunctionData(functionFragment: 'pool_list', values: [PromiseOrValue]): string; + + decodeFunctionResult(functionFragment: 'deploy_pool', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'deploy_gauge', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'set_fee_receiver', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'set_pool_implementation', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'set_token_implementation', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'set_gauge_implementation', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'commit_transfer_ownership', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'accept_transfer_ownership', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'find_pool_for_coins(address,address)', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'find_pool_for_coins(address,address,uint256)', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'get_coins', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'get_decimals', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'get_balances', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'get_coin_indices', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'get_gauge', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'get_eth_index', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'get_token', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'admin', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'future_admin', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'fee_receiver', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'pool_implementation', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'token_implementation', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'gauge_implementation', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'pool_count', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'pool_list', data: BytesLike): Result; + + events: { + 'CryptoPoolDeployed(address,address[2],uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address)': EventFragment; + 'LiquidityGaugeDeployed(address,address,address)': EventFragment; + 'UpdateFeeReceiver(address,address)': EventFragment; + 'UpdatePoolImplementation(address,address)': EventFragment; + 'UpdateTokenImplementation(address,address)': EventFragment; + 'UpdateGaugeImplementation(address,address)': EventFragment; + 'TransferOwnership(address,address)': EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: 'CryptoPoolDeployed'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'LiquidityGaugeDeployed'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'UpdateFeeReceiver'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'UpdatePoolImplementation'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'UpdateTokenImplementation'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'UpdateGaugeImplementation'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'TransferOwnership'): EventFragment; +} + +export interface CryptoPoolDeployedEventObject { + token: string; + coins: [string, string]; + A: BigNumber; + gamma: BigNumber; + mid_fee: BigNumber; + out_fee: BigNumber; + allowed_extra_profit: BigNumber; + fee_gamma: BigNumber; + adjustment_step: BigNumber; + admin_fee: BigNumber; + ma_half_time: BigNumber; + initial_price: BigNumber; + deployer: string; +} +export type CryptoPoolDeployedEvent = TypedEvent< + [ + string, + [string, string], + BigNumber, + BigNumber, + BigNumber, + BigNumber, + BigNumber, + BigNumber, + BigNumber, + BigNumber, + BigNumber, + BigNumber, + string, + ], + CryptoPoolDeployedEventObject +>; + +export type CryptoPoolDeployedEventFilter = TypedEventFilter; + +export interface LiquidityGaugeDeployedEventObject { + pool: string; + token: string; + gauge: string; +} +export type LiquidityGaugeDeployedEvent = TypedEvent<[string, string, string], LiquidityGaugeDeployedEventObject>; + +export type LiquidityGaugeDeployedEventFilter = TypedEventFilter; + +export interface UpdateFeeReceiverEventObject { + _old_fee_receiver: string; + _new_fee_receiver: string; +} +export type UpdateFeeReceiverEvent = TypedEvent<[string, string], UpdateFeeReceiverEventObject>; + +export type UpdateFeeReceiverEventFilter = TypedEventFilter; + +export interface UpdatePoolImplementationEventObject { + _old_pool_implementation: string; + _new_pool_implementation: string; +} +export type UpdatePoolImplementationEvent = TypedEvent<[string, string], UpdatePoolImplementationEventObject>; + +export type UpdatePoolImplementationEventFilter = TypedEventFilter; + +export interface UpdateTokenImplementationEventObject { + _old_token_implementation: string; + _new_token_implementation: string; +} +export type UpdateTokenImplementationEvent = TypedEvent<[string, string], UpdateTokenImplementationEventObject>; + +export type UpdateTokenImplementationEventFilter = TypedEventFilter; + +export interface UpdateGaugeImplementationEventObject { + _old_gauge_implementation: string; + _new_gauge_implementation: string; +} +export type UpdateGaugeImplementationEvent = TypedEvent<[string, string], UpdateGaugeImplementationEventObject>; + +export type UpdateGaugeImplementationEventFilter = TypedEventFilter; + +export interface TransferOwnershipEventObject { + _old_owner: string; + _new_owner: string; +} +export type TransferOwnershipEvent = TypedEvent<[string, string], TransferOwnershipEventObject>; + +export type TransferOwnershipEventFilter = TypedEventFilter; + +export interface CurveCryptoFactory extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + interface: CurveCryptoFactoryInterface; + + queryFilter( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined, + ): Promise>; + + listeners(eventFilter?: TypedEventFilter): Array>; + listeners(eventName?: string): Array; + removeAllListeners(eventFilter: TypedEventFilter): this; + removeAllListeners(eventName?: string): this; + off: OnEvent; + on: OnEvent; + once: OnEvent; + removeListener: OnEvent; + + functions: { + deploy_pool( + _name: PromiseOrValue, + _symbol: PromiseOrValue, + _coins: [PromiseOrValue, PromiseOrValue], + A: PromiseOrValue, + gamma: PromiseOrValue, + mid_fee: PromiseOrValue, + out_fee: PromiseOrValue, + allowed_extra_profit: PromiseOrValue, + fee_gamma: PromiseOrValue, + adjustment_step: PromiseOrValue, + admin_fee: PromiseOrValue, + ma_half_time: PromiseOrValue, + initial_price: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + deploy_gauge( + _pool: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + set_fee_receiver( + _fee_receiver: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + set_pool_implementation( + _pool_implementation: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + set_token_implementation( + _token_implementation: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + set_gauge_implementation( + _gauge_implementation: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + commit_transfer_ownership( + _addr: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + accept_transfer_ownership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + 'find_pool_for_coins(address,address)'( + _from: PromiseOrValue, + _to: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[string]>; + + 'find_pool_for_coins(address,address,uint256)'( + _from: PromiseOrValue, + _to: PromiseOrValue, + i: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[string]>; + + get_coins(_pool: PromiseOrValue, overrides?: CallOverrides): Promise<[[string, string]]>; + + get_decimals(_pool: PromiseOrValue, overrides?: CallOverrides): Promise<[[BigNumber, BigNumber]]>; + + get_balances(_pool: PromiseOrValue, overrides?: CallOverrides): Promise<[[BigNumber, BigNumber]]>; + + get_coin_indices( + _pool: PromiseOrValue, + _from: PromiseOrValue, + _to: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[BigNumber, BigNumber]>; + + get_gauge(_pool: PromiseOrValue, overrides?: CallOverrides): Promise<[string]>; + + get_eth_index(_pool: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber]>; + + get_token(_pool: PromiseOrValue, overrides?: CallOverrides): Promise<[string]>; + + admin(overrides?: CallOverrides): Promise<[string]>; + + future_admin(overrides?: CallOverrides): Promise<[string]>; + + fee_receiver(overrides?: CallOverrides): Promise<[string]>; + + pool_implementation(overrides?: CallOverrides): Promise<[string]>; + + token_implementation(overrides?: CallOverrides): Promise<[string]>; + + gauge_implementation(overrides?: CallOverrides): Promise<[string]>; + + pool_count(overrides?: CallOverrides): Promise<[BigNumber]>; + + pool_list(arg0: PromiseOrValue, overrides?: CallOverrides): Promise<[string]>; + }; + + deploy_pool( + _name: PromiseOrValue, + _symbol: PromiseOrValue, + _coins: [PromiseOrValue, PromiseOrValue], + A: PromiseOrValue, + gamma: PromiseOrValue, + mid_fee: PromiseOrValue, + out_fee: PromiseOrValue, + allowed_extra_profit: PromiseOrValue, + fee_gamma: PromiseOrValue, + adjustment_step: PromiseOrValue, + admin_fee: PromiseOrValue, + ma_half_time: PromiseOrValue, + initial_price: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + deploy_gauge( + _pool: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + set_fee_receiver( + _fee_receiver: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + set_pool_implementation( + _pool_implementation: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + set_token_implementation( + _token_implementation: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + set_gauge_implementation( + _gauge_implementation: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + commit_transfer_ownership( + _addr: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + accept_transfer_ownership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + 'find_pool_for_coins(address,address)'( + _from: PromiseOrValue, + _to: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + 'find_pool_for_coins(address,address,uint256)'( + _from: PromiseOrValue, + _to: PromiseOrValue, + i: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + get_coins(_pool: PromiseOrValue, overrides?: CallOverrides): Promise<[string, string]>; + + get_decimals(_pool: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>; + + get_balances(_pool: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>; + + get_coin_indices( + _pool: PromiseOrValue, + _from: PromiseOrValue, + _to: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[BigNumber, BigNumber]>; + + get_gauge(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_eth_index(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_token(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + admin(overrides?: CallOverrides): Promise; + + future_admin(overrides?: CallOverrides): Promise; + + fee_receiver(overrides?: CallOverrides): Promise; + + pool_implementation(overrides?: CallOverrides): Promise; + + token_implementation(overrides?: CallOverrides): Promise; + + gauge_implementation(overrides?: CallOverrides): Promise; + + pool_count(overrides?: CallOverrides): Promise; + + pool_list(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + callStatic: { + deploy_pool( + _name: PromiseOrValue, + _symbol: PromiseOrValue, + _coins: [PromiseOrValue, PromiseOrValue], + A: PromiseOrValue, + gamma: PromiseOrValue, + mid_fee: PromiseOrValue, + out_fee: PromiseOrValue, + allowed_extra_profit: PromiseOrValue, + fee_gamma: PromiseOrValue, + adjustment_step: PromiseOrValue, + admin_fee: PromiseOrValue, + ma_half_time: PromiseOrValue, + initial_price: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + deploy_gauge(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + set_fee_receiver(_fee_receiver: PromiseOrValue, overrides?: CallOverrides): Promise; + + set_pool_implementation(_pool_implementation: PromiseOrValue, overrides?: CallOverrides): Promise; + + set_token_implementation(_token_implementation: PromiseOrValue, overrides?: CallOverrides): Promise; + + set_gauge_implementation(_gauge_implementation: PromiseOrValue, overrides?: CallOverrides): Promise; + + commit_transfer_ownership(_addr: PromiseOrValue, overrides?: CallOverrides): Promise; + + accept_transfer_ownership(overrides?: CallOverrides): Promise; + + 'find_pool_for_coins(address,address)'( + _from: PromiseOrValue, + _to: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + 'find_pool_for_coins(address,address,uint256)'( + _from: PromiseOrValue, + _to: PromiseOrValue, + i: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + get_coins(_pool: PromiseOrValue, overrides?: CallOverrides): Promise<[string, string]>; + + get_decimals(_pool: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>; + + get_balances(_pool: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>; + + get_coin_indices( + _pool: PromiseOrValue, + _from: PromiseOrValue, + _to: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[BigNumber, BigNumber]>; + + get_gauge(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_eth_index(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_token(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + admin(overrides?: CallOverrides): Promise; + + future_admin(overrides?: CallOverrides): Promise; + + fee_receiver(overrides?: CallOverrides): Promise; + + pool_implementation(overrides?: CallOverrides): Promise; + + token_implementation(overrides?: CallOverrides): Promise; + + gauge_implementation(overrides?: CallOverrides): Promise; + + pool_count(overrides?: CallOverrides): Promise; + + pool_list(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + }; + + filters: { + 'CryptoPoolDeployed(address,address[2],uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address)'( + token?: null, + coins?: null, + A?: null, + gamma?: null, + mid_fee?: null, + out_fee?: null, + allowed_extra_profit?: null, + fee_gamma?: null, + adjustment_step?: null, + admin_fee?: null, + ma_half_time?: null, + initial_price?: null, + deployer?: null, + ): CryptoPoolDeployedEventFilter; + CryptoPoolDeployed( + token?: null, + coins?: null, + A?: null, + gamma?: null, + mid_fee?: null, + out_fee?: null, + allowed_extra_profit?: null, + fee_gamma?: null, + adjustment_step?: null, + admin_fee?: null, + ma_half_time?: null, + initial_price?: null, + deployer?: null, + ): CryptoPoolDeployedEventFilter; + + 'LiquidityGaugeDeployed(address,address,address)'( + pool?: null, + token?: null, + gauge?: null, + ): LiquidityGaugeDeployedEventFilter; + LiquidityGaugeDeployed(pool?: null, token?: null, gauge?: null): LiquidityGaugeDeployedEventFilter; + + 'UpdateFeeReceiver(address,address)'( + _old_fee_receiver?: null, + _new_fee_receiver?: null, + ): UpdateFeeReceiverEventFilter; + UpdateFeeReceiver(_old_fee_receiver?: null, _new_fee_receiver?: null): UpdateFeeReceiverEventFilter; + + 'UpdatePoolImplementation(address,address)'( + _old_pool_implementation?: null, + _new_pool_implementation?: null, + ): UpdatePoolImplementationEventFilter; + UpdatePoolImplementation( + _old_pool_implementation?: null, + _new_pool_implementation?: null, + ): UpdatePoolImplementationEventFilter; + + 'UpdateTokenImplementation(address,address)'( + _old_token_implementation?: null, + _new_token_implementation?: null, + ): UpdateTokenImplementationEventFilter; + UpdateTokenImplementation( + _old_token_implementation?: null, + _new_token_implementation?: null, + ): UpdateTokenImplementationEventFilter; + + 'UpdateGaugeImplementation(address,address)'( + _old_gauge_implementation?: null, + _new_gauge_implementation?: null, + ): UpdateGaugeImplementationEventFilter; + UpdateGaugeImplementation( + _old_gauge_implementation?: null, + _new_gauge_implementation?: null, + ): UpdateGaugeImplementationEventFilter; + + 'TransferOwnership(address,address)'(_old_owner?: null, _new_owner?: null): TransferOwnershipEventFilter; + TransferOwnership(_old_owner?: null, _new_owner?: null): TransferOwnershipEventFilter; + }; + + estimateGas: { + deploy_pool( + _name: PromiseOrValue, + _symbol: PromiseOrValue, + _coins: [PromiseOrValue, PromiseOrValue], + A: PromiseOrValue, + gamma: PromiseOrValue, + mid_fee: PromiseOrValue, + out_fee: PromiseOrValue, + allowed_extra_profit: PromiseOrValue, + fee_gamma: PromiseOrValue, + adjustment_step: PromiseOrValue, + admin_fee: PromiseOrValue, + ma_half_time: PromiseOrValue, + initial_price: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + deploy_gauge( + _pool: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + set_fee_receiver( + _fee_receiver: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + set_pool_implementation( + _pool_implementation: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + set_token_implementation( + _token_implementation: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + set_gauge_implementation( + _gauge_implementation: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + commit_transfer_ownership( + _addr: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + accept_transfer_ownership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + 'find_pool_for_coins(address,address)'( + _from: PromiseOrValue, + _to: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + 'find_pool_for_coins(address,address,uint256)'( + _from: PromiseOrValue, + _to: PromiseOrValue, + i: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + get_coins(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_decimals(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_balances(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_coin_indices( + _pool: PromiseOrValue, + _from: PromiseOrValue, + _to: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + get_gauge(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_eth_index(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_token(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + admin(overrides?: CallOverrides): Promise; + + future_admin(overrides?: CallOverrides): Promise; + + fee_receiver(overrides?: CallOverrides): Promise; + + pool_implementation(overrides?: CallOverrides): Promise; + + token_implementation(overrides?: CallOverrides): Promise; + + gauge_implementation(overrides?: CallOverrides): Promise; + + pool_count(overrides?: CallOverrides): Promise; + + pool_list(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + }; + + populateTransaction: { + deploy_pool( + _name: PromiseOrValue, + _symbol: PromiseOrValue, + _coins: [PromiseOrValue, PromiseOrValue], + A: PromiseOrValue, + gamma: PromiseOrValue, + mid_fee: PromiseOrValue, + out_fee: PromiseOrValue, + allowed_extra_profit: PromiseOrValue, + fee_gamma: PromiseOrValue, + adjustment_step: PromiseOrValue, + admin_fee: PromiseOrValue, + ma_half_time: PromiseOrValue, + initial_price: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + deploy_gauge( + _pool: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + set_fee_receiver( + _fee_receiver: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + set_pool_implementation( + _pool_implementation: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + set_token_implementation( + _token_implementation: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + set_gauge_implementation( + _gauge_implementation: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + commit_transfer_ownership( + _addr: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + accept_transfer_ownership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + 'find_pool_for_coins(address,address)'( + _from: PromiseOrValue, + _to: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + 'find_pool_for_coins(address,address,uint256)'( + _from: PromiseOrValue, + _to: PromiseOrValue, + i: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + get_coins(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_decimals(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_balances(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_coin_indices( + _pool: PromiseOrValue, + _from: PromiseOrValue, + _to: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + get_gauge(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_eth_index(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_token(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + admin(overrides?: CallOverrides): Promise; + + future_admin(overrides?: CallOverrides): Promise; + + fee_receiver(overrides?: CallOverrides): Promise; + + pool_implementation(overrides?: CallOverrides): Promise; + + token_implementation(overrides?: CallOverrides): Promise; + + gauge_implementation(overrides?: CallOverrides): Promise; + + pool_count(overrides?: CallOverrides): Promise; + + pool_list(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + }; +} diff --git a/src/apps/curve/contracts/ethers/CurveCryptoPool.ts b/src/apps/curve/contracts/ethers/CurveCryptoPool.ts deleted file mode 100644 index 9f932e3b9..000000000 --- a/src/apps/curve/contracts/ethers/CurveCryptoPool.ts +++ /dev/null @@ -1,2000 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PayableOverrides, - PopulatedTransaction, - Signer, - utils, -} from 'ethers'; -import type { FunctionFragment, Result, EventFragment } from '@ethersproject/abi'; -import type { Listener, Provider } from '@ethersproject/providers'; -import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from './common'; - -export interface CurveCryptoPoolInterface extends utils.Interface { - functions: { - 'exchange(uint256,uint256,uint256,uint256)': FunctionFragment; - 'exchange(uint256,uint256,uint256,uint256,bool)': FunctionFragment; - 'exchange(uint256,uint256,uint256,uint256,bool,address)': FunctionFragment; - 'exchange_underlying(uint256,uint256,uint256,uint256)': FunctionFragment; - 'exchange_underlying(uint256,uint256,uint256,uint256,address)': FunctionFragment; - 'exchange_extended(uint256,uint256,uint256,uint256,bool,address,address,bytes32)': FunctionFragment; - 'add_liquidity(uint256[2],uint256)': FunctionFragment; - 'add_liquidity(uint256[2],uint256,bool)': FunctionFragment; - 'add_liquidity(uint256[2],uint256,bool,address)': FunctionFragment; - 'remove_liquidity(uint256,uint256[2])': FunctionFragment; - 'remove_liquidity(uint256,uint256[2],bool)': FunctionFragment; - 'remove_liquidity(uint256,uint256[2],bool,address)': FunctionFragment; - 'remove_liquidity_one_coin(uint256,uint256,uint256)': FunctionFragment; - 'remove_liquidity_one_coin(uint256,uint256,uint256,bool)': FunctionFragment; - 'remove_liquidity_one_coin(uint256,uint256,uint256,bool,address)': FunctionFragment; - 'claim_admin_fees()': FunctionFragment; - 'ramp_A_gamma(uint256,uint256,uint256)': FunctionFragment; - 'stop_ramp_A_gamma()': FunctionFragment; - 'commit_new_parameters(uint256,uint256,uint256,uint256,uint256,uint256,uint256)': FunctionFragment; - 'apply_new_parameters()': FunctionFragment; - 'revert_new_parameters()': FunctionFragment; - 'get_dy(uint256,uint256,uint256)': FunctionFragment; - 'calc_token_amount(uint256[2])': FunctionFragment; - 'calc_withdraw_one_coin(uint256,uint256)': FunctionFragment; - 'lp_price()': FunctionFragment; - 'A()': FunctionFragment; - 'gamma()': FunctionFragment; - 'fee()': FunctionFragment; - 'get_virtual_price()': FunctionFragment; - 'price_oracle()': FunctionFragment; - 'initialize(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,address[2],uint256)': FunctionFragment; - 'token()': FunctionFragment; - 'coins(uint256)': FunctionFragment; - 'price_scale()': FunctionFragment; - 'last_prices()': FunctionFragment; - 'last_prices_timestamp()': FunctionFragment; - 'initial_A_gamma()': FunctionFragment; - 'future_A_gamma()': FunctionFragment; - 'initial_A_gamma_time()': FunctionFragment; - 'future_A_gamma_time()': FunctionFragment; - 'allowed_extra_profit()': FunctionFragment; - 'future_allowed_extra_profit()': FunctionFragment; - 'fee_gamma()': FunctionFragment; - 'future_fee_gamma()': FunctionFragment; - 'adjustment_step()': FunctionFragment; - 'future_adjustment_step()': FunctionFragment; - 'ma_half_time()': FunctionFragment; - 'future_ma_half_time()': FunctionFragment; - 'mid_fee()': FunctionFragment; - 'out_fee()': FunctionFragment; - 'admin_fee()': FunctionFragment; - 'future_mid_fee()': FunctionFragment; - 'future_out_fee()': FunctionFragment; - 'future_admin_fee()': FunctionFragment; - 'balances(uint256)': FunctionFragment; - 'D()': FunctionFragment; - 'factory()': FunctionFragment; - 'xcp_profit()': FunctionFragment; - 'xcp_profit_a()': FunctionFragment; - 'virtual_price()': FunctionFragment; - 'admin_actions_deadline()': FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | 'exchange(uint256,uint256,uint256,uint256)' - | 'exchange(uint256,uint256,uint256,uint256,bool)' - | 'exchange(uint256,uint256,uint256,uint256,bool,address)' - | 'exchange_underlying(uint256,uint256,uint256,uint256)' - | 'exchange_underlying(uint256,uint256,uint256,uint256,address)' - | 'exchange_extended' - | 'add_liquidity(uint256[2],uint256)' - | 'add_liquidity(uint256[2],uint256,bool)' - | 'add_liquidity(uint256[2],uint256,bool,address)' - | 'remove_liquidity(uint256,uint256[2])' - | 'remove_liquidity(uint256,uint256[2],bool)' - | 'remove_liquidity(uint256,uint256[2],bool,address)' - | 'remove_liquidity_one_coin(uint256,uint256,uint256)' - | 'remove_liquidity_one_coin(uint256,uint256,uint256,bool)' - | 'remove_liquidity_one_coin(uint256,uint256,uint256,bool,address)' - | 'claim_admin_fees' - | 'ramp_A_gamma' - | 'stop_ramp_A_gamma' - | 'commit_new_parameters' - | 'apply_new_parameters' - | 'revert_new_parameters' - | 'get_dy' - | 'calc_token_amount' - | 'calc_withdraw_one_coin' - | 'lp_price' - | 'A' - | 'gamma' - | 'fee' - | 'get_virtual_price' - | 'price_oracle' - | 'initialize' - | 'token' - | 'coins' - | 'price_scale' - | 'last_prices' - | 'last_prices_timestamp' - | 'initial_A_gamma' - | 'future_A_gamma' - | 'initial_A_gamma_time' - | 'future_A_gamma_time' - | 'allowed_extra_profit' - | 'future_allowed_extra_profit' - | 'fee_gamma' - | 'future_fee_gamma' - | 'adjustment_step' - | 'future_adjustment_step' - | 'ma_half_time' - | 'future_ma_half_time' - | 'mid_fee' - | 'out_fee' - | 'admin_fee' - | 'future_mid_fee' - | 'future_out_fee' - | 'future_admin_fee' - | 'balances' - | 'D' - | 'factory' - | 'xcp_profit' - | 'xcp_profit_a' - | 'virtual_price' - | 'admin_actions_deadline', - ): FunctionFragment; - - encodeFunctionData( - functionFragment: 'exchange(uint256,uint256,uint256,uint256)', - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - ], - ): string; - encodeFunctionData( - functionFragment: 'exchange(uint256,uint256,uint256,uint256,bool)', - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - ], - ): string; - encodeFunctionData( - functionFragment: 'exchange(uint256,uint256,uint256,uint256,bool,address)', - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - ], - ): string; - encodeFunctionData( - functionFragment: 'exchange_underlying(uint256,uint256,uint256,uint256)', - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - ], - ): string; - encodeFunctionData( - functionFragment: 'exchange_underlying(uint256,uint256,uint256,uint256,address)', - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - ], - ): string; - encodeFunctionData( - functionFragment: 'exchange_extended', - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - ], - ): string; - encodeFunctionData( - functionFragment: 'add_liquidity(uint256[2],uint256)', - values: [[PromiseOrValue, PromiseOrValue], PromiseOrValue], - ): string; - encodeFunctionData( - functionFragment: 'add_liquidity(uint256[2],uint256,bool)', - values: [ - [PromiseOrValue, PromiseOrValue], - PromiseOrValue, - PromiseOrValue, - ], - ): string; - encodeFunctionData( - functionFragment: 'add_liquidity(uint256[2],uint256,bool,address)', - values: [ - [PromiseOrValue, PromiseOrValue], - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - ], - ): string; - encodeFunctionData( - functionFragment: 'remove_liquidity(uint256,uint256[2])', - values: [PromiseOrValue, [PromiseOrValue, PromiseOrValue]], - ): string; - encodeFunctionData( - functionFragment: 'remove_liquidity(uint256,uint256[2],bool)', - values: [ - PromiseOrValue, - [PromiseOrValue, PromiseOrValue], - PromiseOrValue, - ], - ): string; - encodeFunctionData( - functionFragment: 'remove_liquidity(uint256,uint256[2],bool,address)', - values: [ - PromiseOrValue, - [PromiseOrValue, PromiseOrValue], - PromiseOrValue, - PromiseOrValue, - ], - ): string; - encodeFunctionData( - functionFragment: 'remove_liquidity_one_coin(uint256,uint256,uint256)', - values: [PromiseOrValue, PromiseOrValue, PromiseOrValue], - ): string; - encodeFunctionData( - functionFragment: 'remove_liquidity_one_coin(uint256,uint256,uint256,bool)', - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - ], - ): string; - encodeFunctionData( - functionFragment: 'remove_liquidity_one_coin(uint256,uint256,uint256,bool,address)', - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - ], - ): string; - encodeFunctionData(functionFragment: 'claim_admin_fees', values?: undefined): string; - encodeFunctionData( - functionFragment: 'ramp_A_gamma', - values: [PromiseOrValue, PromiseOrValue, PromiseOrValue], - ): string; - encodeFunctionData(functionFragment: 'stop_ramp_A_gamma', values?: undefined): string; - encodeFunctionData( - functionFragment: 'commit_new_parameters', - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - ], - ): string; - encodeFunctionData(functionFragment: 'apply_new_parameters', values?: undefined): string; - encodeFunctionData(functionFragment: 'revert_new_parameters', values?: undefined): string; - encodeFunctionData( - functionFragment: 'get_dy', - values: [PromiseOrValue, PromiseOrValue, PromiseOrValue], - ): string; - encodeFunctionData( - functionFragment: 'calc_token_amount', - values: [[PromiseOrValue, PromiseOrValue]], - ): string; - encodeFunctionData( - functionFragment: 'calc_withdraw_one_coin', - values: [PromiseOrValue, PromiseOrValue], - ): string; - encodeFunctionData(functionFragment: 'lp_price', values?: undefined): string; - encodeFunctionData(functionFragment: 'A', values?: undefined): string; - encodeFunctionData(functionFragment: 'gamma', values?: undefined): string; - encodeFunctionData(functionFragment: 'fee', values?: undefined): string; - encodeFunctionData(functionFragment: 'get_virtual_price', values?: undefined): string; - encodeFunctionData(functionFragment: 'price_oracle', values?: undefined): string; - encodeFunctionData( - functionFragment: 'initialize', - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - [PromiseOrValue, PromiseOrValue], - PromiseOrValue, - ], - ): string; - encodeFunctionData(functionFragment: 'token', values?: undefined): string; - encodeFunctionData(functionFragment: 'coins', values: [PromiseOrValue]): string; - encodeFunctionData(functionFragment: 'price_scale', values?: undefined): string; - encodeFunctionData(functionFragment: 'last_prices', values?: undefined): string; - encodeFunctionData(functionFragment: 'last_prices_timestamp', values?: undefined): string; - encodeFunctionData(functionFragment: 'initial_A_gamma', values?: undefined): string; - encodeFunctionData(functionFragment: 'future_A_gamma', values?: undefined): string; - encodeFunctionData(functionFragment: 'initial_A_gamma_time', values?: undefined): string; - encodeFunctionData(functionFragment: 'future_A_gamma_time', values?: undefined): string; - encodeFunctionData(functionFragment: 'allowed_extra_profit', values?: undefined): string; - encodeFunctionData(functionFragment: 'future_allowed_extra_profit', values?: undefined): string; - encodeFunctionData(functionFragment: 'fee_gamma', values?: undefined): string; - encodeFunctionData(functionFragment: 'future_fee_gamma', values?: undefined): string; - encodeFunctionData(functionFragment: 'adjustment_step', values?: undefined): string; - encodeFunctionData(functionFragment: 'future_adjustment_step', values?: undefined): string; - encodeFunctionData(functionFragment: 'ma_half_time', values?: undefined): string; - encodeFunctionData(functionFragment: 'future_ma_half_time', values?: undefined): string; - encodeFunctionData(functionFragment: 'mid_fee', values?: undefined): string; - encodeFunctionData(functionFragment: 'out_fee', values?: undefined): string; - encodeFunctionData(functionFragment: 'admin_fee', values?: undefined): string; - encodeFunctionData(functionFragment: 'future_mid_fee', values?: undefined): string; - encodeFunctionData(functionFragment: 'future_out_fee', values?: undefined): string; - encodeFunctionData(functionFragment: 'future_admin_fee', values?: undefined): string; - encodeFunctionData(functionFragment: 'balances', values: [PromiseOrValue]): string; - encodeFunctionData(functionFragment: 'D', values?: undefined): string; - encodeFunctionData(functionFragment: 'factory', values?: undefined): string; - encodeFunctionData(functionFragment: 'xcp_profit', values?: undefined): string; - encodeFunctionData(functionFragment: 'xcp_profit_a', values?: undefined): string; - encodeFunctionData(functionFragment: 'virtual_price', values?: undefined): string; - encodeFunctionData(functionFragment: 'admin_actions_deadline', values?: undefined): string; - - decodeFunctionResult(functionFragment: 'exchange(uint256,uint256,uint256,uint256)', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'exchange(uint256,uint256,uint256,uint256,bool)', data: BytesLike): Result; - decodeFunctionResult( - functionFragment: 'exchange(uint256,uint256,uint256,uint256,bool,address)', - data: BytesLike, - ): Result; - decodeFunctionResult( - functionFragment: 'exchange_underlying(uint256,uint256,uint256,uint256)', - data: BytesLike, - ): Result; - decodeFunctionResult( - functionFragment: 'exchange_underlying(uint256,uint256,uint256,uint256,address)', - data: BytesLike, - ): Result; - decodeFunctionResult(functionFragment: 'exchange_extended', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'add_liquidity(uint256[2],uint256)', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'add_liquidity(uint256[2],uint256,bool)', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'add_liquidity(uint256[2],uint256,bool,address)', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'remove_liquidity(uint256,uint256[2])', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'remove_liquidity(uint256,uint256[2],bool)', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'remove_liquidity(uint256,uint256[2],bool,address)', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'remove_liquidity_one_coin(uint256,uint256,uint256)', data: BytesLike): Result; - decodeFunctionResult( - functionFragment: 'remove_liquidity_one_coin(uint256,uint256,uint256,bool)', - data: BytesLike, - ): Result; - decodeFunctionResult( - functionFragment: 'remove_liquidity_one_coin(uint256,uint256,uint256,bool,address)', - data: BytesLike, - ): Result; - decodeFunctionResult(functionFragment: 'claim_admin_fees', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'ramp_A_gamma', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'stop_ramp_A_gamma', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'commit_new_parameters', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'apply_new_parameters', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'revert_new_parameters', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'get_dy', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'calc_token_amount', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'calc_withdraw_one_coin', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'lp_price', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'A', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'gamma', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'fee', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'get_virtual_price', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'price_oracle', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'initialize', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'token', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'coins', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'price_scale', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'last_prices', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'last_prices_timestamp', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'initial_A_gamma', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'future_A_gamma', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'initial_A_gamma_time', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'future_A_gamma_time', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'allowed_extra_profit', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'future_allowed_extra_profit', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'fee_gamma', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'future_fee_gamma', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'adjustment_step', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'future_adjustment_step', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'ma_half_time', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'future_ma_half_time', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'mid_fee', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'out_fee', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'admin_fee', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'future_mid_fee', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'future_out_fee', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'future_admin_fee', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'balances', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'D', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'factory', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'xcp_profit', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'xcp_profit_a', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'virtual_price', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'admin_actions_deadline', data: BytesLike): Result; - - events: { - 'TokenExchange(address,uint256,uint256,uint256,uint256)': EventFragment; - 'AddLiquidity(address,uint256[2],uint256,uint256)': EventFragment; - 'RemoveLiquidity(address,uint256[2],uint256)': EventFragment; - 'RemoveLiquidityOne(address,uint256,uint256,uint256)': EventFragment; - 'CommitNewParameters(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)': EventFragment; - 'NewParameters(uint256,uint256,uint256,uint256,uint256,uint256,uint256)': EventFragment; - 'RampAgamma(uint256,uint256,uint256,uint256,uint256,uint256)': EventFragment; - 'StopRampA(uint256,uint256,uint256)': EventFragment; - 'ClaimAdminFee(address,uint256)': EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: 'TokenExchange'): EventFragment; - getEvent(nameOrSignatureOrTopic: 'AddLiquidity'): EventFragment; - getEvent(nameOrSignatureOrTopic: 'RemoveLiquidity'): EventFragment; - getEvent(nameOrSignatureOrTopic: 'RemoveLiquidityOne'): EventFragment; - getEvent(nameOrSignatureOrTopic: 'CommitNewParameters'): EventFragment; - getEvent(nameOrSignatureOrTopic: 'NewParameters'): EventFragment; - getEvent(nameOrSignatureOrTopic: 'RampAgamma'): EventFragment; - getEvent(nameOrSignatureOrTopic: 'StopRampA'): EventFragment; - getEvent(nameOrSignatureOrTopic: 'ClaimAdminFee'): EventFragment; -} - -export interface TokenExchangeEventObject { - buyer: string; - sold_id: BigNumber; - tokens_sold: BigNumber; - bought_id: BigNumber; - tokens_bought: BigNumber; -} -export type TokenExchangeEvent = TypedEvent< - [string, BigNumber, BigNumber, BigNumber, BigNumber], - TokenExchangeEventObject ->; - -export type TokenExchangeEventFilter = TypedEventFilter; - -export interface AddLiquidityEventObject { - provider: string; - token_amounts: [BigNumber, BigNumber]; - fee: BigNumber; - token_supply: BigNumber; -} -export type AddLiquidityEvent = TypedEvent< - [string, [BigNumber, BigNumber], BigNumber, BigNumber], - AddLiquidityEventObject ->; - -export type AddLiquidityEventFilter = TypedEventFilter; - -export interface RemoveLiquidityEventObject { - provider: string; - token_amounts: [BigNumber, BigNumber]; - token_supply: BigNumber; -} -export type RemoveLiquidityEvent = TypedEvent<[string, [BigNumber, BigNumber], BigNumber], RemoveLiquidityEventObject>; - -export type RemoveLiquidityEventFilter = TypedEventFilter; - -export interface RemoveLiquidityOneEventObject { - provider: string; - token_amount: BigNumber; - coin_index: BigNumber; - coin_amount: BigNumber; -} -export type RemoveLiquidityOneEvent = TypedEvent< - [string, BigNumber, BigNumber, BigNumber], - RemoveLiquidityOneEventObject ->; - -export type RemoveLiquidityOneEventFilter = TypedEventFilter; - -export interface CommitNewParametersEventObject { - deadline: BigNumber; - admin_fee: BigNumber; - mid_fee: BigNumber; - out_fee: BigNumber; - fee_gamma: BigNumber; - allowed_extra_profit: BigNumber; - adjustment_step: BigNumber; - ma_half_time: BigNumber; -} -export type CommitNewParametersEvent = TypedEvent< - [BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber], - CommitNewParametersEventObject ->; - -export type CommitNewParametersEventFilter = TypedEventFilter; - -export interface NewParametersEventObject { - admin_fee: BigNumber; - mid_fee: BigNumber; - out_fee: BigNumber; - fee_gamma: BigNumber; - allowed_extra_profit: BigNumber; - adjustment_step: BigNumber; - ma_half_time: BigNumber; -} -export type NewParametersEvent = TypedEvent< - [BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber], - NewParametersEventObject ->; - -export type NewParametersEventFilter = TypedEventFilter; - -export interface RampAgammaEventObject { - initial_A: BigNumber; - future_A: BigNumber; - initial_gamma: BigNumber; - future_gamma: BigNumber; - initial_time: BigNumber; - future_time: BigNumber; -} -export type RampAgammaEvent = TypedEvent< - [BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber], - RampAgammaEventObject ->; - -export type RampAgammaEventFilter = TypedEventFilter; - -export interface StopRampAEventObject { - current_A: BigNumber; - current_gamma: BigNumber; - time: BigNumber; -} -export type StopRampAEvent = TypedEvent<[BigNumber, BigNumber, BigNumber], StopRampAEventObject>; - -export type StopRampAEventFilter = TypedEventFilter; - -export interface ClaimAdminFeeEventObject { - admin: string; - tokens: BigNumber; -} -export type ClaimAdminFeeEvent = TypedEvent<[string, BigNumber], ClaimAdminFeeEventObject>; - -export type ClaimAdminFeeEventFilter = TypedEventFilter; - -export interface CurveCryptoPool extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: CurveCryptoPoolInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined, - ): Promise>; - - listeners(eventFilter?: TypedEventFilter): Array>; - listeners(eventName?: string): Array; - removeAllListeners(eventFilter: TypedEventFilter): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - 'exchange(uint256,uint256,uint256,uint256)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue }, - ): Promise; - - 'exchange(uint256,uint256,uint256,uint256,bool)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - use_eth: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue }, - ): Promise; - - 'exchange(uint256,uint256,uint256,uint256,bool,address)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - use_eth: PromiseOrValue, - receiver: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue }, - ): Promise; - - 'exchange_underlying(uint256,uint256,uint256,uint256)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue }, - ): Promise; - - 'exchange_underlying(uint256,uint256,uint256,uint256,address)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - receiver: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue }, - ): Promise; - - exchange_extended( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - use_eth: PromiseOrValue, - sender: PromiseOrValue, - receiver: PromiseOrValue, - cb: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue }, - ): Promise; - - 'add_liquidity(uint256[2],uint256)'( - amounts: [PromiseOrValue, PromiseOrValue], - min_mint_amount: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue }, - ): Promise; - - 'add_liquidity(uint256[2],uint256,bool)'( - amounts: [PromiseOrValue, PromiseOrValue], - min_mint_amount: PromiseOrValue, - use_eth: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue }, - ): Promise; - - 'add_liquidity(uint256[2],uint256,bool,address)'( - amounts: [PromiseOrValue, PromiseOrValue], - min_mint_amount: PromiseOrValue, - use_eth: PromiseOrValue, - receiver: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue }, - ): Promise; - - 'remove_liquidity(uint256,uint256[2])'( - _amount: PromiseOrValue, - min_amounts: [PromiseOrValue, PromiseOrValue], - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'remove_liquidity(uint256,uint256[2],bool)'( - _amount: PromiseOrValue, - min_amounts: [PromiseOrValue, PromiseOrValue], - use_eth: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'remove_liquidity(uint256,uint256[2],bool,address)'( - _amount: PromiseOrValue, - min_amounts: [PromiseOrValue, PromiseOrValue], - use_eth: PromiseOrValue, - receiver: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'remove_liquidity_one_coin(uint256,uint256,uint256)'( - token_amount: PromiseOrValue, - i: PromiseOrValue, - min_amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'remove_liquidity_one_coin(uint256,uint256,uint256,bool)'( - token_amount: PromiseOrValue, - i: PromiseOrValue, - min_amount: PromiseOrValue, - use_eth: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'remove_liquidity_one_coin(uint256,uint256,uint256,bool,address)'( - token_amount: PromiseOrValue, - i: PromiseOrValue, - min_amount: PromiseOrValue, - use_eth: PromiseOrValue, - receiver: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - claim_admin_fees(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - ramp_A_gamma( - future_A: PromiseOrValue, - future_gamma: PromiseOrValue, - future_time: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - stop_ramp_A_gamma(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - commit_new_parameters( - _new_mid_fee: PromiseOrValue, - _new_out_fee: PromiseOrValue, - _new_admin_fee: PromiseOrValue, - _new_fee_gamma: PromiseOrValue, - _new_allowed_extra_profit: PromiseOrValue, - _new_adjustment_step: PromiseOrValue, - _new_ma_half_time: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - apply_new_parameters(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - revert_new_parameters(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - get_dy( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - overrides?: CallOverrides, - ): Promise<[BigNumber]>; - - calc_token_amount( - amounts: [PromiseOrValue, PromiseOrValue], - overrides?: CallOverrides, - ): Promise<[BigNumber]>; - - calc_withdraw_one_coin( - token_amount: PromiseOrValue, - i: PromiseOrValue, - overrides?: CallOverrides, - ): Promise<[BigNumber]>; - - lp_price(overrides?: CallOverrides): Promise<[BigNumber]>; - - A(overrides?: CallOverrides): Promise<[BigNumber]>; - - gamma(overrides?: CallOverrides): Promise<[BigNumber]>; - - fee(overrides?: CallOverrides): Promise<[BigNumber]>; - - get_virtual_price(overrides?: CallOverrides): Promise<[BigNumber]>; - - price_oracle(overrides?: CallOverrides): Promise<[BigNumber]>; - - initialize( - A: PromiseOrValue, - gamma: PromiseOrValue, - mid_fee: PromiseOrValue, - out_fee: PromiseOrValue, - allowed_extra_profit: PromiseOrValue, - fee_gamma: PromiseOrValue, - adjustment_step: PromiseOrValue, - admin_fee: PromiseOrValue, - ma_half_time: PromiseOrValue, - initial_price: PromiseOrValue, - _token: PromiseOrValue, - _coins: [PromiseOrValue, PromiseOrValue], - _precisions: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - token(overrides?: CallOverrides): Promise<[string]>; - - coins(arg0: PromiseOrValue, overrides?: CallOverrides): Promise<[string]>; - - price_scale(overrides?: CallOverrides): Promise<[BigNumber]>; - - last_prices(overrides?: CallOverrides): Promise<[BigNumber]>; - - last_prices_timestamp(overrides?: CallOverrides): Promise<[BigNumber]>; - - initial_A_gamma(overrides?: CallOverrides): Promise<[BigNumber]>; - - future_A_gamma(overrides?: CallOverrides): Promise<[BigNumber]>; - - initial_A_gamma_time(overrides?: CallOverrides): Promise<[BigNumber]>; - - future_A_gamma_time(overrides?: CallOverrides): Promise<[BigNumber]>; - - allowed_extra_profit(overrides?: CallOverrides): Promise<[BigNumber]>; - - future_allowed_extra_profit(overrides?: CallOverrides): Promise<[BigNumber]>; - - fee_gamma(overrides?: CallOverrides): Promise<[BigNumber]>; - - future_fee_gamma(overrides?: CallOverrides): Promise<[BigNumber]>; - - adjustment_step(overrides?: CallOverrides): Promise<[BigNumber]>; - - future_adjustment_step(overrides?: CallOverrides): Promise<[BigNumber]>; - - ma_half_time(overrides?: CallOverrides): Promise<[BigNumber]>; - - future_ma_half_time(overrides?: CallOverrides): Promise<[BigNumber]>; - - mid_fee(overrides?: CallOverrides): Promise<[BigNumber]>; - - out_fee(overrides?: CallOverrides): Promise<[BigNumber]>; - - admin_fee(overrides?: CallOverrides): Promise<[BigNumber]>; - - future_mid_fee(overrides?: CallOverrides): Promise<[BigNumber]>; - - future_out_fee(overrides?: CallOverrides): Promise<[BigNumber]>; - - future_admin_fee(overrides?: CallOverrides): Promise<[BigNumber]>; - - balances(arg0: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber]>; - - D(overrides?: CallOverrides): Promise<[BigNumber]>; - - factory(overrides?: CallOverrides): Promise<[string]>; - - xcp_profit(overrides?: CallOverrides): Promise<[BigNumber]>; - - xcp_profit_a(overrides?: CallOverrides): Promise<[BigNumber]>; - - virtual_price(overrides?: CallOverrides): Promise<[BigNumber]>; - - admin_actions_deadline(overrides?: CallOverrides): Promise<[BigNumber]>; - }; - - 'exchange(uint256,uint256,uint256,uint256)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue }, - ): Promise; - - 'exchange(uint256,uint256,uint256,uint256,bool)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - use_eth: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue }, - ): Promise; - - 'exchange(uint256,uint256,uint256,uint256,bool,address)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - use_eth: PromiseOrValue, - receiver: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue }, - ): Promise; - - 'exchange_underlying(uint256,uint256,uint256,uint256)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue }, - ): Promise; - - 'exchange_underlying(uint256,uint256,uint256,uint256,address)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - receiver: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue }, - ): Promise; - - exchange_extended( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - use_eth: PromiseOrValue, - sender: PromiseOrValue, - receiver: PromiseOrValue, - cb: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue }, - ): Promise; - - 'add_liquidity(uint256[2],uint256)'( - amounts: [PromiseOrValue, PromiseOrValue], - min_mint_amount: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue }, - ): Promise; - - 'add_liquidity(uint256[2],uint256,bool)'( - amounts: [PromiseOrValue, PromiseOrValue], - min_mint_amount: PromiseOrValue, - use_eth: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue }, - ): Promise; - - 'add_liquidity(uint256[2],uint256,bool,address)'( - amounts: [PromiseOrValue, PromiseOrValue], - min_mint_amount: PromiseOrValue, - use_eth: PromiseOrValue, - receiver: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue }, - ): Promise; - - 'remove_liquidity(uint256,uint256[2])'( - _amount: PromiseOrValue, - min_amounts: [PromiseOrValue, PromiseOrValue], - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'remove_liquidity(uint256,uint256[2],bool)'( - _amount: PromiseOrValue, - min_amounts: [PromiseOrValue, PromiseOrValue], - use_eth: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'remove_liquidity(uint256,uint256[2],bool,address)'( - _amount: PromiseOrValue, - min_amounts: [PromiseOrValue, PromiseOrValue], - use_eth: PromiseOrValue, - receiver: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'remove_liquidity_one_coin(uint256,uint256,uint256)'( - token_amount: PromiseOrValue, - i: PromiseOrValue, - min_amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'remove_liquidity_one_coin(uint256,uint256,uint256,bool)'( - token_amount: PromiseOrValue, - i: PromiseOrValue, - min_amount: PromiseOrValue, - use_eth: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'remove_liquidity_one_coin(uint256,uint256,uint256,bool,address)'( - token_amount: PromiseOrValue, - i: PromiseOrValue, - min_amount: PromiseOrValue, - use_eth: PromiseOrValue, - receiver: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - claim_admin_fees(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - ramp_A_gamma( - future_A: PromiseOrValue, - future_gamma: PromiseOrValue, - future_time: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - stop_ramp_A_gamma(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - commit_new_parameters( - _new_mid_fee: PromiseOrValue, - _new_out_fee: PromiseOrValue, - _new_admin_fee: PromiseOrValue, - _new_fee_gamma: PromiseOrValue, - _new_allowed_extra_profit: PromiseOrValue, - _new_adjustment_step: PromiseOrValue, - _new_ma_half_time: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - apply_new_parameters(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - revert_new_parameters(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - get_dy( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - calc_token_amount( - amounts: [PromiseOrValue, PromiseOrValue], - overrides?: CallOverrides, - ): Promise; - - calc_withdraw_one_coin( - token_amount: PromiseOrValue, - i: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - lp_price(overrides?: CallOverrides): Promise; - - A(overrides?: CallOverrides): Promise; - - gamma(overrides?: CallOverrides): Promise; - - fee(overrides?: CallOverrides): Promise; - - get_virtual_price(overrides?: CallOverrides): Promise; - - price_oracle(overrides?: CallOverrides): Promise; - - initialize( - A: PromiseOrValue, - gamma: PromiseOrValue, - mid_fee: PromiseOrValue, - out_fee: PromiseOrValue, - allowed_extra_profit: PromiseOrValue, - fee_gamma: PromiseOrValue, - adjustment_step: PromiseOrValue, - admin_fee: PromiseOrValue, - ma_half_time: PromiseOrValue, - initial_price: PromiseOrValue, - _token: PromiseOrValue, - _coins: [PromiseOrValue, PromiseOrValue], - _precisions: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - token(overrides?: CallOverrides): Promise; - - coins(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - price_scale(overrides?: CallOverrides): Promise; - - last_prices(overrides?: CallOverrides): Promise; - - last_prices_timestamp(overrides?: CallOverrides): Promise; - - initial_A_gamma(overrides?: CallOverrides): Promise; - - future_A_gamma(overrides?: CallOverrides): Promise; - - initial_A_gamma_time(overrides?: CallOverrides): Promise; - - future_A_gamma_time(overrides?: CallOverrides): Promise; - - allowed_extra_profit(overrides?: CallOverrides): Promise; - - future_allowed_extra_profit(overrides?: CallOverrides): Promise; - - fee_gamma(overrides?: CallOverrides): Promise; - - future_fee_gamma(overrides?: CallOverrides): Promise; - - adjustment_step(overrides?: CallOverrides): Promise; - - future_adjustment_step(overrides?: CallOverrides): Promise; - - ma_half_time(overrides?: CallOverrides): Promise; - - future_ma_half_time(overrides?: CallOverrides): Promise; - - mid_fee(overrides?: CallOverrides): Promise; - - out_fee(overrides?: CallOverrides): Promise; - - admin_fee(overrides?: CallOverrides): Promise; - - future_mid_fee(overrides?: CallOverrides): Promise; - - future_out_fee(overrides?: CallOverrides): Promise; - - future_admin_fee(overrides?: CallOverrides): Promise; - - balances(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - D(overrides?: CallOverrides): Promise; - - factory(overrides?: CallOverrides): Promise; - - xcp_profit(overrides?: CallOverrides): Promise; - - xcp_profit_a(overrides?: CallOverrides): Promise; - - virtual_price(overrides?: CallOverrides): Promise; - - admin_actions_deadline(overrides?: CallOverrides): Promise; - - callStatic: { - 'exchange(uint256,uint256,uint256,uint256)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - 'exchange(uint256,uint256,uint256,uint256,bool)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - use_eth: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - 'exchange(uint256,uint256,uint256,uint256,bool,address)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - use_eth: PromiseOrValue, - receiver: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - 'exchange_underlying(uint256,uint256,uint256,uint256)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - 'exchange_underlying(uint256,uint256,uint256,uint256,address)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - receiver: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - exchange_extended( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - use_eth: PromiseOrValue, - sender: PromiseOrValue, - receiver: PromiseOrValue, - cb: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - 'add_liquidity(uint256[2],uint256)'( - amounts: [PromiseOrValue, PromiseOrValue], - min_mint_amount: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - 'add_liquidity(uint256[2],uint256,bool)'( - amounts: [PromiseOrValue, PromiseOrValue], - min_mint_amount: PromiseOrValue, - use_eth: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - 'add_liquidity(uint256[2],uint256,bool,address)'( - amounts: [PromiseOrValue, PromiseOrValue], - min_mint_amount: PromiseOrValue, - use_eth: PromiseOrValue, - receiver: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - 'remove_liquidity(uint256,uint256[2])'( - _amount: PromiseOrValue, - min_amounts: [PromiseOrValue, PromiseOrValue], - overrides?: CallOverrides, - ): Promise; - - 'remove_liquidity(uint256,uint256[2],bool)'( - _amount: PromiseOrValue, - min_amounts: [PromiseOrValue, PromiseOrValue], - use_eth: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - 'remove_liquidity(uint256,uint256[2],bool,address)'( - _amount: PromiseOrValue, - min_amounts: [PromiseOrValue, PromiseOrValue], - use_eth: PromiseOrValue, - receiver: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - 'remove_liquidity_one_coin(uint256,uint256,uint256)'( - token_amount: PromiseOrValue, - i: PromiseOrValue, - min_amount: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - 'remove_liquidity_one_coin(uint256,uint256,uint256,bool)'( - token_amount: PromiseOrValue, - i: PromiseOrValue, - min_amount: PromiseOrValue, - use_eth: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - 'remove_liquidity_one_coin(uint256,uint256,uint256,bool,address)'( - token_amount: PromiseOrValue, - i: PromiseOrValue, - min_amount: PromiseOrValue, - use_eth: PromiseOrValue, - receiver: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - claim_admin_fees(overrides?: CallOverrides): Promise; - - ramp_A_gamma( - future_A: PromiseOrValue, - future_gamma: PromiseOrValue, - future_time: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - stop_ramp_A_gamma(overrides?: CallOverrides): Promise; - - commit_new_parameters( - _new_mid_fee: PromiseOrValue, - _new_out_fee: PromiseOrValue, - _new_admin_fee: PromiseOrValue, - _new_fee_gamma: PromiseOrValue, - _new_allowed_extra_profit: PromiseOrValue, - _new_adjustment_step: PromiseOrValue, - _new_ma_half_time: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - apply_new_parameters(overrides?: CallOverrides): Promise; - - revert_new_parameters(overrides?: CallOverrides): Promise; - - get_dy( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - calc_token_amount( - amounts: [PromiseOrValue, PromiseOrValue], - overrides?: CallOverrides, - ): Promise; - - calc_withdraw_one_coin( - token_amount: PromiseOrValue, - i: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - lp_price(overrides?: CallOverrides): Promise; - - A(overrides?: CallOverrides): Promise; - - gamma(overrides?: CallOverrides): Promise; - - fee(overrides?: CallOverrides): Promise; - - get_virtual_price(overrides?: CallOverrides): Promise; - - price_oracle(overrides?: CallOverrides): Promise; - - initialize( - A: PromiseOrValue, - gamma: PromiseOrValue, - mid_fee: PromiseOrValue, - out_fee: PromiseOrValue, - allowed_extra_profit: PromiseOrValue, - fee_gamma: PromiseOrValue, - adjustment_step: PromiseOrValue, - admin_fee: PromiseOrValue, - ma_half_time: PromiseOrValue, - initial_price: PromiseOrValue, - _token: PromiseOrValue, - _coins: [PromiseOrValue, PromiseOrValue], - _precisions: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - token(overrides?: CallOverrides): Promise; - - coins(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - price_scale(overrides?: CallOverrides): Promise; - - last_prices(overrides?: CallOverrides): Promise; - - last_prices_timestamp(overrides?: CallOverrides): Promise; - - initial_A_gamma(overrides?: CallOverrides): Promise; - - future_A_gamma(overrides?: CallOverrides): Promise; - - initial_A_gamma_time(overrides?: CallOverrides): Promise; - - future_A_gamma_time(overrides?: CallOverrides): Promise; - - allowed_extra_profit(overrides?: CallOverrides): Promise; - - future_allowed_extra_profit(overrides?: CallOverrides): Promise; - - fee_gamma(overrides?: CallOverrides): Promise; - - future_fee_gamma(overrides?: CallOverrides): Promise; - - adjustment_step(overrides?: CallOverrides): Promise; - - future_adjustment_step(overrides?: CallOverrides): Promise; - - ma_half_time(overrides?: CallOverrides): Promise; - - future_ma_half_time(overrides?: CallOverrides): Promise; - - mid_fee(overrides?: CallOverrides): Promise; - - out_fee(overrides?: CallOverrides): Promise; - - admin_fee(overrides?: CallOverrides): Promise; - - future_mid_fee(overrides?: CallOverrides): Promise; - - future_out_fee(overrides?: CallOverrides): Promise; - - future_admin_fee(overrides?: CallOverrides): Promise; - - balances(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - D(overrides?: CallOverrides): Promise; - - factory(overrides?: CallOverrides): Promise; - - xcp_profit(overrides?: CallOverrides): Promise; - - xcp_profit_a(overrides?: CallOverrides): Promise; - - virtual_price(overrides?: CallOverrides): Promise; - - admin_actions_deadline(overrides?: CallOverrides): Promise; - }; - - filters: { - 'TokenExchange(address,uint256,uint256,uint256,uint256)'( - buyer?: PromiseOrValue | null, - sold_id?: null, - tokens_sold?: null, - bought_id?: null, - tokens_bought?: null, - ): TokenExchangeEventFilter; - TokenExchange( - buyer?: PromiseOrValue | null, - sold_id?: null, - tokens_sold?: null, - bought_id?: null, - tokens_bought?: null, - ): TokenExchangeEventFilter; - - 'AddLiquidity(address,uint256[2],uint256,uint256)'( - provider?: PromiseOrValue | null, - token_amounts?: null, - fee?: null, - token_supply?: null, - ): AddLiquidityEventFilter; - AddLiquidity( - provider?: PromiseOrValue | null, - token_amounts?: null, - fee?: null, - token_supply?: null, - ): AddLiquidityEventFilter; - - 'RemoveLiquidity(address,uint256[2],uint256)'( - provider?: PromiseOrValue | null, - token_amounts?: null, - token_supply?: null, - ): RemoveLiquidityEventFilter; - RemoveLiquidity( - provider?: PromiseOrValue | null, - token_amounts?: null, - token_supply?: null, - ): RemoveLiquidityEventFilter; - - 'RemoveLiquidityOne(address,uint256,uint256,uint256)'( - provider?: PromiseOrValue | null, - token_amount?: null, - coin_index?: null, - coin_amount?: null, - ): RemoveLiquidityOneEventFilter; - RemoveLiquidityOne( - provider?: PromiseOrValue | null, - token_amount?: null, - coin_index?: null, - coin_amount?: null, - ): RemoveLiquidityOneEventFilter; - - 'CommitNewParameters(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)'( - deadline?: PromiseOrValue | null, - admin_fee?: null, - mid_fee?: null, - out_fee?: null, - fee_gamma?: null, - allowed_extra_profit?: null, - adjustment_step?: null, - ma_half_time?: null, - ): CommitNewParametersEventFilter; - CommitNewParameters( - deadline?: PromiseOrValue | null, - admin_fee?: null, - mid_fee?: null, - out_fee?: null, - fee_gamma?: null, - allowed_extra_profit?: null, - adjustment_step?: null, - ma_half_time?: null, - ): CommitNewParametersEventFilter; - - 'NewParameters(uint256,uint256,uint256,uint256,uint256,uint256,uint256)'( - admin_fee?: null, - mid_fee?: null, - out_fee?: null, - fee_gamma?: null, - allowed_extra_profit?: null, - adjustment_step?: null, - ma_half_time?: null, - ): NewParametersEventFilter; - NewParameters( - admin_fee?: null, - mid_fee?: null, - out_fee?: null, - fee_gamma?: null, - allowed_extra_profit?: null, - adjustment_step?: null, - ma_half_time?: null, - ): NewParametersEventFilter; - - 'RampAgamma(uint256,uint256,uint256,uint256,uint256,uint256)'( - initial_A?: null, - future_A?: null, - initial_gamma?: null, - future_gamma?: null, - initial_time?: null, - future_time?: null, - ): RampAgammaEventFilter; - RampAgamma( - initial_A?: null, - future_A?: null, - initial_gamma?: null, - future_gamma?: null, - initial_time?: null, - future_time?: null, - ): RampAgammaEventFilter; - - 'StopRampA(uint256,uint256,uint256)'(current_A?: null, current_gamma?: null, time?: null): StopRampAEventFilter; - StopRampA(current_A?: null, current_gamma?: null, time?: null): StopRampAEventFilter; - - 'ClaimAdminFee(address,uint256)'(admin?: PromiseOrValue | null, tokens?: null): ClaimAdminFeeEventFilter; - ClaimAdminFee(admin?: PromiseOrValue | null, tokens?: null): ClaimAdminFeeEventFilter; - }; - - estimateGas: { - 'exchange(uint256,uint256,uint256,uint256)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue }, - ): Promise; - - 'exchange(uint256,uint256,uint256,uint256,bool)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - use_eth: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue }, - ): Promise; - - 'exchange(uint256,uint256,uint256,uint256,bool,address)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - use_eth: PromiseOrValue, - receiver: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue }, - ): Promise; - - 'exchange_underlying(uint256,uint256,uint256,uint256)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue }, - ): Promise; - - 'exchange_underlying(uint256,uint256,uint256,uint256,address)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - receiver: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue }, - ): Promise; - - exchange_extended( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - use_eth: PromiseOrValue, - sender: PromiseOrValue, - receiver: PromiseOrValue, - cb: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue }, - ): Promise; - - 'add_liquidity(uint256[2],uint256)'( - amounts: [PromiseOrValue, PromiseOrValue], - min_mint_amount: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue }, - ): Promise; - - 'add_liquidity(uint256[2],uint256,bool)'( - amounts: [PromiseOrValue, PromiseOrValue], - min_mint_amount: PromiseOrValue, - use_eth: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue }, - ): Promise; - - 'add_liquidity(uint256[2],uint256,bool,address)'( - amounts: [PromiseOrValue, PromiseOrValue], - min_mint_amount: PromiseOrValue, - use_eth: PromiseOrValue, - receiver: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue }, - ): Promise; - - 'remove_liquidity(uint256,uint256[2])'( - _amount: PromiseOrValue, - min_amounts: [PromiseOrValue, PromiseOrValue], - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'remove_liquidity(uint256,uint256[2],bool)'( - _amount: PromiseOrValue, - min_amounts: [PromiseOrValue, PromiseOrValue], - use_eth: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'remove_liquidity(uint256,uint256[2],bool,address)'( - _amount: PromiseOrValue, - min_amounts: [PromiseOrValue, PromiseOrValue], - use_eth: PromiseOrValue, - receiver: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'remove_liquidity_one_coin(uint256,uint256,uint256)'( - token_amount: PromiseOrValue, - i: PromiseOrValue, - min_amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'remove_liquidity_one_coin(uint256,uint256,uint256,bool)'( - token_amount: PromiseOrValue, - i: PromiseOrValue, - min_amount: PromiseOrValue, - use_eth: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'remove_liquidity_one_coin(uint256,uint256,uint256,bool,address)'( - token_amount: PromiseOrValue, - i: PromiseOrValue, - min_amount: PromiseOrValue, - use_eth: PromiseOrValue, - receiver: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - claim_admin_fees(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - ramp_A_gamma( - future_A: PromiseOrValue, - future_gamma: PromiseOrValue, - future_time: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - stop_ramp_A_gamma(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - commit_new_parameters( - _new_mid_fee: PromiseOrValue, - _new_out_fee: PromiseOrValue, - _new_admin_fee: PromiseOrValue, - _new_fee_gamma: PromiseOrValue, - _new_allowed_extra_profit: PromiseOrValue, - _new_adjustment_step: PromiseOrValue, - _new_ma_half_time: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - apply_new_parameters(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - revert_new_parameters(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - get_dy( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - calc_token_amount( - amounts: [PromiseOrValue, PromiseOrValue], - overrides?: CallOverrides, - ): Promise; - - calc_withdraw_one_coin( - token_amount: PromiseOrValue, - i: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - lp_price(overrides?: CallOverrides): Promise; - - A(overrides?: CallOverrides): Promise; - - gamma(overrides?: CallOverrides): Promise; - - fee(overrides?: CallOverrides): Promise; - - get_virtual_price(overrides?: CallOverrides): Promise; - - price_oracle(overrides?: CallOverrides): Promise; - - initialize( - A: PromiseOrValue, - gamma: PromiseOrValue, - mid_fee: PromiseOrValue, - out_fee: PromiseOrValue, - allowed_extra_profit: PromiseOrValue, - fee_gamma: PromiseOrValue, - adjustment_step: PromiseOrValue, - admin_fee: PromiseOrValue, - ma_half_time: PromiseOrValue, - initial_price: PromiseOrValue, - _token: PromiseOrValue, - _coins: [PromiseOrValue, PromiseOrValue], - _precisions: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - token(overrides?: CallOverrides): Promise; - - coins(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - price_scale(overrides?: CallOverrides): Promise; - - last_prices(overrides?: CallOverrides): Promise; - - last_prices_timestamp(overrides?: CallOverrides): Promise; - - initial_A_gamma(overrides?: CallOverrides): Promise; - - future_A_gamma(overrides?: CallOverrides): Promise; - - initial_A_gamma_time(overrides?: CallOverrides): Promise; - - future_A_gamma_time(overrides?: CallOverrides): Promise; - - allowed_extra_profit(overrides?: CallOverrides): Promise; - - future_allowed_extra_profit(overrides?: CallOverrides): Promise; - - fee_gamma(overrides?: CallOverrides): Promise; - - future_fee_gamma(overrides?: CallOverrides): Promise; - - adjustment_step(overrides?: CallOverrides): Promise; - - future_adjustment_step(overrides?: CallOverrides): Promise; - - ma_half_time(overrides?: CallOverrides): Promise; - - future_ma_half_time(overrides?: CallOverrides): Promise; - - mid_fee(overrides?: CallOverrides): Promise; - - out_fee(overrides?: CallOverrides): Promise; - - admin_fee(overrides?: CallOverrides): Promise; - - future_mid_fee(overrides?: CallOverrides): Promise; - - future_out_fee(overrides?: CallOverrides): Promise; - - future_admin_fee(overrides?: CallOverrides): Promise; - - balances(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - D(overrides?: CallOverrides): Promise; - - factory(overrides?: CallOverrides): Promise; - - xcp_profit(overrides?: CallOverrides): Promise; - - xcp_profit_a(overrides?: CallOverrides): Promise; - - virtual_price(overrides?: CallOverrides): Promise; - - admin_actions_deadline(overrides?: CallOverrides): Promise; - }; - - populateTransaction: { - 'exchange(uint256,uint256,uint256,uint256)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue }, - ): Promise; - - 'exchange(uint256,uint256,uint256,uint256,bool)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - use_eth: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue }, - ): Promise; - - 'exchange(uint256,uint256,uint256,uint256,bool,address)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - use_eth: PromiseOrValue, - receiver: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue }, - ): Promise; - - 'exchange_underlying(uint256,uint256,uint256,uint256)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue }, - ): Promise; - - 'exchange_underlying(uint256,uint256,uint256,uint256,address)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - receiver: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue }, - ): Promise; - - exchange_extended( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - use_eth: PromiseOrValue, - sender: PromiseOrValue, - receiver: PromiseOrValue, - cb: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue }, - ): Promise; - - 'add_liquidity(uint256[2],uint256)'( - amounts: [PromiseOrValue, PromiseOrValue], - min_mint_amount: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue }, - ): Promise; - - 'add_liquidity(uint256[2],uint256,bool)'( - amounts: [PromiseOrValue, PromiseOrValue], - min_mint_amount: PromiseOrValue, - use_eth: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue }, - ): Promise; - - 'add_liquidity(uint256[2],uint256,bool,address)'( - amounts: [PromiseOrValue, PromiseOrValue], - min_mint_amount: PromiseOrValue, - use_eth: PromiseOrValue, - receiver: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue }, - ): Promise; - - 'remove_liquidity(uint256,uint256[2])'( - _amount: PromiseOrValue, - min_amounts: [PromiseOrValue, PromiseOrValue], - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'remove_liquidity(uint256,uint256[2],bool)'( - _amount: PromiseOrValue, - min_amounts: [PromiseOrValue, PromiseOrValue], - use_eth: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'remove_liquidity(uint256,uint256[2],bool,address)'( - _amount: PromiseOrValue, - min_amounts: [PromiseOrValue, PromiseOrValue], - use_eth: PromiseOrValue, - receiver: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'remove_liquidity_one_coin(uint256,uint256,uint256)'( - token_amount: PromiseOrValue, - i: PromiseOrValue, - min_amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'remove_liquidity_one_coin(uint256,uint256,uint256,bool)'( - token_amount: PromiseOrValue, - i: PromiseOrValue, - min_amount: PromiseOrValue, - use_eth: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'remove_liquidity_one_coin(uint256,uint256,uint256,bool,address)'( - token_amount: PromiseOrValue, - i: PromiseOrValue, - min_amount: PromiseOrValue, - use_eth: PromiseOrValue, - receiver: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - claim_admin_fees(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - ramp_A_gamma( - future_A: PromiseOrValue, - future_gamma: PromiseOrValue, - future_time: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - stop_ramp_A_gamma(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - commit_new_parameters( - _new_mid_fee: PromiseOrValue, - _new_out_fee: PromiseOrValue, - _new_admin_fee: PromiseOrValue, - _new_fee_gamma: PromiseOrValue, - _new_allowed_extra_profit: PromiseOrValue, - _new_adjustment_step: PromiseOrValue, - _new_ma_half_time: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - apply_new_parameters(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - revert_new_parameters(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - get_dy( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - calc_token_amount( - amounts: [PromiseOrValue, PromiseOrValue], - overrides?: CallOverrides, - ): Promise; - - calc_withdraw_one_coin( - token_amount: PromiseOrValue, - i: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - lp_price(overrides?: CallOverrides): Promise; - - A(overrides?: CallOverrides): Promise; - - gamma(overrides?: CallOverrides): Promise; - - fee(overrides?: CallOverrides): Promise; - - get_virtual_price(overrides?: CallOverrides): Promise; - - price_oracle(overrides?: CallOverrides): Promise; - - initialize( - A: PromiseOrValue, - gamma: PromiseOrValue, - mid_fee: PromiseOrValue, - out_fee: PromiseOrValue, - allowed_extra_profit: PromiseOrValue, - fee_gamma: PromiseOrValue, - adjustment_step: PromiseOrValue, - admin_fee: PromiseOrValue, - ma_half_time: PromiseOrValue, - initial_price: PromiseOrValue, - _token: PromiseOrValue, - _coins: [PromiseOrValue, PromiseOrValue], - _precisions: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - token(overrides?: CallOverrides): Promise; - - coins(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - price_scale(overrides?: CallOverrides): Promise; - - last_prices(overrides?: CallOverrides): Promise; - - last_prices_timestamp(overrides?: CallOverrides): Promise; - - initial_A_gamma(overrides?: CallOverrides): Promise; - - future_A_gamma(overrides?: CallOverrides): Promise; - - initial_A_gamma_time(overrides?: CallOverrides): Promise; - - future_A_gamma_time(overrides?: CallOverrides): Promise; - - allowed_extra_profit(overrides?: CallOverrides): Promise; - - future_allowed_extra_profit(overrides?: CallOverrides): Promise; - - fee_gamma(overrides?: CallOverrides): Promise; - - future_fee_gamma(overrides?: CallOverrides): Promise; - - adjustment_step(overrides?: CallOverrides): Promise; - - future_adjustment_step(overrides?: CallOverrides): Promise; - - ma_half_time(overrides?: CallOverrides): Promise; - - future_ma_half_time(overrides?: CallOverrides): Promise; - - mid_fee(overrides?: CallOverrides): Promise; - - out_fee(overrides?: CallOverrides): Promise; - - admin_fee(overrides?: CallOverrides): Promise; - - future_mid_fee(overrides?: CallOverrides): Promise; - - future_out_fee(overrides?: CallOverrides): Promise; - - future_admin_fee(overrides?: CallOverrides): Promise; - - balances(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - D(overrides?: CallOverrides): Promise; - - factory(overrides?: CallOverrides): Promise; - - xcp_profit(overrides?: CallOverrides): Promise; - - xcp_profit_a(overrides?: CallOverrides): Promise; - - virtual_price(overrides?: CallOverrides): Promise; - - admin_actions_deadline(overrides?: CallOverrides): Promise; - }; -} diff --git a/src/apps/curve/contracts/ethers/CurveCryptoRegistry.ts b/src/apps/curve/contracts/ethers/CurveCryptoRegistry.ts new file mode 100644 index 000000000..76497dbce --- /dev/null +++ b/src/apps/curve/contracts/ethers/CurveCryptoRegistry.ts @@ -0,0 +1,738 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumber, + BigNumberish, + BytesLike, + CallOverrides, + ContractTransaction, + Overrides, + PopulatedTransaction, + Signer, + utils, +} from 'ethers'; +import type { FunctionFragment, Result, EventFragment } from '@ethersproject/abi'; +import type { Listener, Provider } from '@ethersproject/providers'; +import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from './common'; + +export interface CurveCryptoRegistryInterface extends utils.Interface { + functions: { + 'find_pool_for_coins(address,address)': FunctionFragment; + 'find_pool_for_coins(address,address,uint256)': FunctionFragment; + 'get_n_coins(address)': FunctionFragment; + 'get_coins(address)': FunctionFragment; + 'get_decimals(address)': FunctionFragment; + 'get_gauges(address)': FunctionFragment; + 'get_balances(address)': FunctionFragment; + 'get_virtual_price_from_lp_token(address)': FunctionFragment; + 'get_A(address)': FunctionFragment; + 'get_D(address)': FunctionFragment; + 'get_gamma(address)': FunctionFragment; + 'get_fees(address)': FunctionFragment; + 'get_admin_balances(address)': FunctionFragment; + 'get_coin_indices(address,address,address)': FunctionFragment; + 'get_pool_name(address)': FunctionFragment; + 'get_coin_swap_count(address)': FunctionFragment; + 'get_coin_swap_complement(address,uint256)': FunctionFragment; + 'add_pool(address,uint256,address,address,address,uint256,string)': FunctionFragment; + 'remove_pool(address)': FunctionFragment; + 'set_liquidity_gauges(address,address[10])': FunctionFragment; + 'batch_set_liquidity_gauges(address[10],address[10])': FunctionFragment; + 'address_provider()': FunctionFragment; + 'pool_list(uint256)': FunctionFragment; + 'pool_count()': FunctionFragment; + 'coin_count()': FunctionFragment; + 'get_coin(uint256)': FunctionFragment; + 'get_pool_from_lp_token(address)': FunctionFragment; + 'get_lp_token(address)': FunctionFragment; + 'get_zap(address)': FunctionFragment; + 'last_updated()': FunctionFragment; + }; + + getFunction( + nameOrSignatureOrTopic: + | 'find_pool_for_coins(address,address)' + | 'find_pool_for_coins(address,address,uint256)' + | 'get_n_coins' + | 'get_coins' + | 'get_decimals' + | 'get_gauges' + | 'get_balances' + | 'get_virtual_price_from_lp_token' + | 'get_A' + | 'get_D' + | 'get_gamma' + | 'get_fees' + | 'get_admin_balances' + | 'get_coin_indices' + | 'get_pool_name' + | 'get_coin_swap_count' + | 'get_coin_swap_complement' + | 'add_pool' + | 'remove_pool' + | 'set_liquidity_gauges' + | 'batch_set_liquidity_gauges' + | 'address_provider' + | 'pool_list' + | 'pool_count' + | 'coin_count' + | 'get_coin' + | 'get_pool_from_lp_token' + | 'get_lp_token' + | 'get_zap' + | 'last_updated', + ): FunctionFragment; + + encodeFunctionData( + functionFragment: 'find_pool_for_coins(address,address)', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData( + functionFragment: 'find_pool_for_coins(address,address,uint256)', + values: [PromiseOrValue, PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData(functionFragment: 'get_n_coins', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'get_coins', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'get_decimals', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'get_gauges', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'get_balances', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'get_virtual_price_from_lp_token', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'get_A', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'get_D', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'get_gamma', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'get_fees', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'get_admin_balances', values: [PromiseOrValue]): string; + encodeFunctionData( + functionFragment: 'get_coin_indices', + values: [PromiseOrValue, PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData(functionFragment: 'get_pool_name', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'get_coin_swap_count', values: [PromiseOrValue]): string; + encodeFunctionData( + functionFragment: 'get_coin_swap_complement', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData( + functionFragment: 'add_pool', + values: [ + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + ], + ): string; + encodeFunctionData(functionFragment: 'remove_pool', values: [PromiseOrValue]): string; + encodeFunctionData( + functionFragment: 'set_liquidity_gauges', + values: [PromiseOrValue, PromiseOrValue[]], + ): string; + encodeFunctionData( + functionFragment: 'batch_set_liquidity_gauges', + values: [PromiseOrValue[], PromiseOrValue[]], + ): string; + encodeFunctionData(functionFragment: 'address_provider', values?: undefined): string; + encodeFunctionData(functionFragment: 'pool_list', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'pool_count', values?: undefined): string; + encodeFunctionData(functionFragment: 'coin_count', values?: undefined): string; + encodeFunctionData(functionFragment: 'get_coin', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'get_pool_from_lp_token', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'get_lp_token', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'get_zap', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'last_updated', values?: undefined): string; + + decodeFunctionResult(functionFragment: 'find_pool_for_coins(address,address)', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'find_pool_for_coins(address,address,uint256)', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'get_n_coins', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'get_coins', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'get_decimals', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'get_gauges', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'get_balances', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'get_virtual_price_from_lp_token', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'get_A', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'get_D', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'get_gamma', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'get_fees', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'get_admin_balances', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'get_coin_indices', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'get_pool_name', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'get_coin_swap_count', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'get_coin_swap_complement', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'add_pool', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'remove_pool', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'set_liquidity_gauges', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'batch_set_liquidity_gauges', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'address_provider', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'pool_list', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'pool_count', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'coin_count', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'get_coin', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'get_pool_from_lp_token', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'get_lp_token', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'get_zap', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'last_updated', data: BytesLike): Result; + + events: { + 'PoolAdded(address)': EventFragment; + 'PoolRemoved(address)': EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: 'PoolAdded'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'PoolRemoved'): EventFragment; +} + +export interface PoolAddedEventObject { + pool: string; +} +export type PoolAddedEvent = TypedEvent<[string], PoolAddedEventObject>; + +export type PoolAddedEventFilter = TypedEventFilter; + +export interface PoolRemovedEventObject { + pool: string; +} +export type PoolRemovedEvent = TypedEvent<[string], PoolRemovedEventObject>; + +export type PoolRemovedEventFilter = TypedEventFilter; + +export interface CurveCryptoRegistry extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + interface: CurveCryptoRegistryInterface; + + queryFilter( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined, + ): Promise>; + + listeners(eventFilter?: TypedEventFilter): Array>; + listeners(eventName?: string): Array; + removeAllListeners(eventFilter: TypedEventFilter): this; + removeAllListeners(eventName?: string): this; + off: OnEvent; + on: OnEvent; + once: OnEvent; + removeListener: OnEvent; + + functions: { + 'find_pool_for_coins(address,address)'( + _from: PromiseOrValue, + _to: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[string]>; + + 'find_pool_for_coins(address,address,uint256)'( + _from: PromiseOrValue, + _to: PromiseOrValue, + i: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[string]>; + + get_n_coins(_pool: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber]>; + + get_coins(_pool: PromiseOrValue, overrides?: CallOverrides): Promise<[string[]]>; + + get_decimals(_pool: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber[]]>; + + get_gauges(_pool: PromiseOrValue, overrides?: CallOverrides): Promise<[string[], BigNumber[]]>; + + get_balances(_pool: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber[]]>; + + get_virtual_price_from_lp_token(_token: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber]>; + + get_A(_pool: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber]>; + + get_D(_pool: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber]>; + + get_gamma(_pool: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber]>; + + get_fees( + _pool: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[[BigNumber, BigNumber, BigNumber, BigNumber]]>; + + get_admin_balances(_pool: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber[]]>; + + get_coin_indices( + _pool: PromiseOrValue, + _from: PromiseOrValue, + _to: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[BigNumber, BigNumber]>; + + get_pool_name(_pool: PromiseOrValue, overrides?: CallOverrides): Promise<[string]>; + + get_coin_swap_count(_coin: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber]>; + + get_coin_swap_complement( + _coin: PromiseOrValue, + _index: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[string]>; + + add_pool( + _pool: PromiseOrValue, + _n_coins: PromiseOrValue, + _lp_token: PromiseOrValue, + _gauge: PromiseOrValue, + _zap: PromiseOrValue, + _decimals: PromiseOrValue, + _name: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + remove_pool( + _pool: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + set_liquidity_gauges( + _pool: PromiseOrValue, + _liquidity_gauges: PromiseOrValue[], + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + batch_set_liquidity_gauges( + _pools: PromiseOrValue[], + _liquidity_gauges: PromiseOrValue[], + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + address_provider(overrides?: CallOverrides): Promise<[string]>; + + pool_list(arg0: PromiseOrValue, overrides?: CallOverrides): Promise<[string]>; + + pool_count(overrides?: CallOverrides): Promise<[BigNumber]>; + + coin_count(overrides?: CallOverrides): Promise<[BigNumber]>; + + get_coin(arg0: PromiseOrValue, overrides?: CallOverrides): Promise<[string]>; + + get_pool_from_lp_token(arg0: PromiseOrValue, overrides?: CallOverrides): Promise<[string]>; + + get_lp_token(arg0: PromiseOrValue, overrides?: CallOverrides): Promise<[string]>; + + get_zap(arg0: PromiseOrValue, overrides?: CallOverrides): Promise<[string]>; + + last_updated(overrides?: CallOverrides): Promise<[BigNumber]>; + }; + + 'find_pool_for_coins(address,address)'( + _from: PromiseOrValue, + _to: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + 'find_pool_for_coins(address,address,uint256)'( + _from: PromiseOrValue, + _to: PromiseOrValue, + i: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + get_n_coins(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_coins(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_decimals(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_gauges(_pool: PromiseOrValue, overrides?: CallOverrides): Promise<[string[], BigNumber[]]>; + + get_balances(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_virtual_price_from_lp_token(_token: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_A(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_D(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_gamma(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_fees( + _pool: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[BigNumber, BigNumber, BigNumber, BigNumber]>; + + get_admin_balances(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_coin_indices( + _pool: PromiseOrValue, + _from: PromiseOrValue, + _to: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[BigNumber, BigNumber]>; + + get_pool_name(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_coin_swap_count(_coin: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_coin_swap_complement( + _coin: PromiseOrValue, + _index: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + add_pool( + _pool: PromiseOrValue, + _n_coins: PromiseOrValue, + _lp_token: PromiseOrValue, + _gauge: PromiseOrValue, + _zap: PromiseOrValue, + _decimals: PromiseOrValue, + _name: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + remove_pool( + _pool: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + set_liquidity_gauges( + _pool: PromiseOrValue, + _liquidity_gauges: PromiseOrValue[], + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + batch_set_liquidity_gauges( + _pools: PromiseOrValue[], + _liquidity_gauges: PromiseOrValue[], + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + address_provider(overrides?: CallOverrides): Promise; + + pool_list(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + pool_count(overrides?: CallOverrides): Promise; + + coin_count(overrides?: CallOverrides): Promise; + + get_coin(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_pool_from_lp_token(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_lp_token(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_zap(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + last_updated(overrides?: CallOverrides): Promise; + + callStatic: { + 'find_pool_for_coins(address,address)'( + _from: PromiseOrValue, + _to: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + 'find_pool_for_coins(address,address,uint256)'( + _from: PromiseOrValue, + _to: PromiseOrValue, + i: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + get_n_coins(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_coins(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_decimals(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_gauges(_pool: PromiseOrValue, overrides?: CallOverrides): Promise<[string[], BigNumber[]]>; + + get_balances(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_virtual_price_from_lp_token(_token: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_A(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_D(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_gamma(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_fees( + _pool: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[BigNumber, BigNumber, BigNumber, BigNumber]>; + + get_admin_balances(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_coin_indices( + _pool: PromiseOrValue, + _from: PromiseOrValue, + _to: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[BigNumber, BigNumber]>; + + get_pool_name(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_coin_swap_count(_coin: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_coin_swap_complement( + _coin: PromiseOrValue, + _index: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + add_pool( + _pool: PromiseOrValue, + _n_coins: PromiseOrValue, + _lp_token: PromiseOrValue, + _gauge: PromiseOrValue, + _zap: PromiseOrValue, + _decimals: PromiseOrValue, + _name: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + remove_pool(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + set_liquidity_gauges( + _pool: PromiseOrValue, + _liquidity_gauges: PromiseOrValue[], + overrides?: CallOverrides, + ): Promise; + + batch_set_liquidity_gauges( + _pools: PromiseOrValue[], + _liquidity_gauges: PromiseOrValue[], + overrides?: CallOverrides, + ): Promise; + + address_provider(overrides?: CallOverrides): Promise; + + pool_list(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + pool_count(overrides?: CallOverrides): Promise; + + coin_count(overrides?: CallOverrides): Promise; + + get_coin(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_pool_from_lp_token(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_lp_token(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_zap(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + last_updated(overrides?: CallOverrides): Promise; + }; + + filters: { + 'PoolAdded(address)'(pool?: PromiseOrValue | null): PoolAddedEventFilter; + PoolAdded(pool?: PromiseOrValue | null): PoolAddedEventFilter; + + 'PoolRemoved(address)'(pool?: PromiseOrValue | null): PoolRemovedEventFilter; + PoolRemoved(pool?: PromiseOrValue | null): PoolRemovedEventFilter; + }; + + estimateGas: { + 'find_pool_for_coins(address,address)'( + _from: PromiseOrValue, + _to: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + 'find_pool_for_coins(address,address,uint256)'( + _from: PromiseOrValue, + _to: PromiseOrValue, + i: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + get_n_coins(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_coins(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_decimals(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_gauges(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_balances(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_virtual_price_from_lp_token(_token: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_A(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_D(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_gamma(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_fees(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_admin_balances(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_coin_indices( + _pool: PromiseOrValue, + _from: PromiseOrValue, + _to: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + get_pool_name(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_coin_swap_count(_coin: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_coin_swap_complement( + _coin: PromiseOrValue, + _index: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + add_pool( + _pool: PromiseOrValue, + _n_coins: PromiseOrValue, + _lp_token: PromiseOrValue, + _gauge: PromiseOrValue, + _zap: PromiseOrValue, + _decimals: PromiseOrValue, + _name: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + remove_pool( + _pool: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + set_liquidity_gauges( + _pool: PromiseOrValue, + _liquidity_gauges: PromiseOrValue[], + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + batch_set_liquidity_gauges( + _pools: PromiseOrValue[], + _liquidity_gauges: PromiseOrValue[], + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + address_provider(overrides?: CallOverrides): Promise; + + pool_list(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + pool_count(overrides?: CallOverrides): Promise; + + coin_count(overrides?: CallOverrides): Promise; + + get_coin(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_pool_from_lp_token(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_lp_token(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_zap(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + last_updated(overrides?: CallOverrides): Promise; + }; + + populateTransaction: { + 'find_pool_for_coins(address,address)'( + _from: PromiseOrValue, + _to: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + 'find_pool_for_coins(address,address,uint256)'( + _from: PromiseOrValue, + _to: PromiseOrValue, + i: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + get_n_coins(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_coins(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_decimals(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_gauges(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_balances(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_virtual_price_from_lp_token( + _token: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + get_A(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_D(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_gamma(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_fees(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_admin_balances(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_coin_indices( + _pool: PromiseOrValue, + _from: PromiseOrValue, + _to: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + get_pool_name(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_coin_swap_count(_coin: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_coin_swap_complement( + _coin: PromiseOrValue, + _index: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + add_pool( + _pool: PromiseOrValue, + _n_coins: PromiseOrValue, + _lp_token: PromiseOrValue, + _gauge: PromiseOrValue, + _zap: PromiseOrValue, + _decimals: PromiseOrValue, + _name: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + remove_pool( + _pool: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + set_liquidity_gauges( + _pool: PromiseOrValue, + _liquidity_gauges: PromiseOrValue[], + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + batch_set_liquidity_gauges( + _pools: PromiseOrValue[], + _liquidity_gauges: PromiseOrValue[], + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + address_provider(overrides?: CallOverrides): Promise; + + pool_list(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + pool_count(overrides?: CallOverrides): Promise; + + coin_count(overrides?: CallOverrides): Promise; + + get_coin(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_pool_from_lp_token(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_lp_token(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_zap(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + last_updated(overrides?: CallOverrides): Promise; + }; +} diff --git a/src/apps/curve/contracts/ethers/CurveFactoryPool.ts b/src/apps/curve/contracts/ethers/CurveFactoryPool.ts deleted file mode 100644 index 82c1c61fb..000000000 --- a/src/apps/curve/contracts/ethers/CurveFactoryPool.ts +++ /dev/null @@ -1,1945 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PopulatedTransaction, - Signer, - utils, -} from 'ethers'; -import type { FunctionFragment, Result, EventFragment } from '@ethersproject/abi'; -import type { Listener, Provider } from '@ethersproject/providers'; -import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from './common'; - -export interface CurveFactoryPoolInterface extends utils.Interface { - functions: { - 'initialize(string,string,address,uint256,uint256,uint256,address)': FunctionFragment; - 'decimals()': FunctionFragment; - 'transfer(address,uint256)': FunctionFragment; - 'transferFrom(address,address,uint256)': FunctionFragment; - 'approve(address,uint256)': FunctionFragment; - 'get_previous_balances()': FunctionFragment; - 'get_balances()': FunctionFragment; - 'get_twap_balances(uint256[2],uint256[2],uint256)': FunctionFragment; - 'get_price_cumulative_last()': FunctionFragment; - 'admin_fee()': FunctionFragment; - 'A()': FunctionFragment; - 'A_precise()': FunctionFragment; - 'get_virtual_price()': FunctionFragment; - 'calc_token_amount(uint256[2],bool)': FunctionFragment; - 'calc_token_amount(uint256[2],bool,bool)': FunctionFragment; - 'add_liquidity(uint256[2],uint256)': FunctionFragment; - 'add_liquidity(uint256[2],uint256,address)': FunctionFragment; - 'get_dy(int128,int128,uint256)': FunctionFragment; - 'get_dy(int128,int128,uint256,uint256[2])': FunctionFragment; - 'get_dy_underlying(int128,int128,uint256)': FunctionFragment; - 'get_dy_underlying(int128,int128,uint256,uint256[2])': FunctionFragment; - 'exchange(int128,int128,uint256,uint256)': FunctionFragment; - 'exchange(int128,int128,uint256,uint256,address)': FunctionFragment; - 'exchange_underlying(int128,int128,uint256,uint256)': FunctionFragment; - 'exchange_underlying(int128,int128,uint256,uint256,address)': FunctionFragment; - 'remove_liquidity(uint256,uint256[2])': FunctionFragment; - 'remove_liquidity(uint256,uint256[2],address)': FunctionFragment; - 'remove_liquidity_imbalance(uint256[2],uint256)': FunctionFragment; - 'remove_liquidity_imbalance(uint256[2],uint256,address)': FunctionFragment; - 'calc_withdraw_one_coin(uint256,int128)': FunctionFragment; - 'calc_withdraw_one_coin(uint256,int128,bool)': FunctionFragment; - 'remove_liquidity_one_coin(uint256,int128,uint256)': FunctionFragment; - 'remove_liquidity_one_coin(uint256,int128,uint256,address)': FunctionFragment; - 'ramp_A(uint256,uint256)': FunctionFragment; - 'stop_ramp_A()': FunctionFragment; - 'admin_balances(uint256)': FunctionFragment; - 'withdraw_admin_fees()': FunctionFragment; - 'admin()': FunctionFragment; - 'coins(uint256)': FunctionFragment; - 'balances(uint256)': FunctionFragment; - 'fee()': FunctionFragment; - 'block_timestamp_last()': FunctionFragment; - 'initial_A()': FunctionFragment; - 'future_A()': FunctionFragment; - 'initial_A_time()': FunctionFragment; - 'future_A_time()': FunctionFragment; - 'name()': FunctionFragment; - 'symbol()': FunctionFragment; - 'balanceOf(address)': FunctionFragment; - 'allowance(address,address)': FunctionFragment; - 'totalSupply()': FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | 'initialize' - | 'decimals' - | 'transfer' - | 'transferFrom' - | 'approve' - | 'get_previous_balances' - | 'get_balances' - | 'get_twap_balances' - | 'get_price_cumulative_last' - | 'admin_fee' - | 'A' - | 'A_precise' - | 'get_virtual_price' - | 'calc_token_amount(uint256[2],bool)' - | 'calc_token_amount(uint256[2],bool,bool)' - | 'add_liquidity(uint256[2],uint256)' - | 'add_liquidity(uint256[2],uint256,address)' - | 'get_dy(int128,int128,uint256)' - | 'get_dy(int128,int128,uint256,uint256[2])' - | 'get_dy_underlying(int128,int128,uint256)' - | 'get_dy_underlying(int128,int128,uint256,uint256[2])' - | 'exchange(int128,int128,uint256,uint256)' - | 'exchange(int128,int128,uint256,uint256,address)' - | 'exchange_underlying(int128,int128,uint256,uint256)' - | 'exchange_underlying(int128,int128,uint256,uint256,address)' - | 'remove_liquidity(uint256,uint256[2])' - | 'remove_liquidity(uint256,uint256[2],address)' - | 'remove_liquidity_imbalance(uint256[2],uint256)' - | 'remove_liquidity_imbalance(uint256[2],uint256,address)' - | 'calc_withdraw_one_coin(uint256,int128)' - | 'calc_withdraw_one_coin(uint256,int128,bool)' - | 'remove_liquidity_one_coin(uint256,int128,uint256)' - | 'remove_liquidity_one_coin(uint256,int128,uint256,address)' - | 'ramp_A' - | 'stop_ramp_A' - | 'admin_balances' - | 'withdraw_admin_fees' - | 'admin' - | 'coins' - | 'balances' - | 'fee' - | 'block_timestamp_last' - | 'initial_A' - | 'future_A' - | 'initial_A_time' - | 'future_A_time' - | 'name' - | 'symbol' - | 'balanceOf' - | 'allowance' - | 'totalSupply', - ): FunctionFragment; - - encodeFunctionData( - functionFragment: 'initialize', - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - ], - ): string; - encodeFunctionData(functionFragment: 'decimals', values?: undefined): string; - encodeFunctionData( - functionFragment: 'transfer', - values: [PromiseOrValue, PromiseOrValue], - ): string; - encodeFunctionData( - functionFragment: 'transferFrom', - values: [PromiseOrValue, PromiseOrValue, PromiseOrValue], - ): string; - encodeFunctionData( - functionFragment: 'approve', - values: [PromiseOrValue, PromiseOrValue], - ): string; - encodeFunctionData(functionFragment: 'get_previous_balances', values?: undefined): string; - encodeFunctionData(functionFragment: 'get_balances', values?: undefined): string; - encodeFunctionData( - functionFragment: 'get_twap_balances', - values: [ - [PromiseOrValue, PromiseOrValue], - [PromiseOrValue, PromiseOrValue], - PromiseOrValue, - ], - ): string; - encodeFunctionData(functionFragment: 'get_price_cumulative_last', values?: undefined): string; - encodeFunctionData(functionFragment: 'admin_fee', values?: undefined): string; - encodeFunctionData(functionFragment: 'A', values?: undefined): string; - encodeFunctionData(functionFragment: 'A_precise', values?: undefined): string; - encodeFunctionData(functionFragment: 'get_virtual_price', values?: undefined): string; - encodeFunctionData( - functionFragment: 'calc_token_amount(uint256[2],bool)', - values: [[PromiseOrValue, PromiseOrValue], PromiseOrValue], - ): string; - encodeFunctionData( - functionFragment: 'calc_token_amount(uint256[2],bool,bool)', - values: [ - [PromiseOrValue, PromiseOrValue], - PromiseOrValue, - PromiseOrValue, - ], - ): string; - encodeFunctionData( - functionFragment: 'add_liquidity(uint256[2],uint256)', - values: [[PromiseOrValue, PromiseOrValue], PromiseOrValue], - ): string; - encodeFunctionData( - functionFragment: 'add_liquidity(uint256[2],uint256,address)', - values: [ - [PromiseOrValue, PromiseOrValue], - PromiseOrValue, - PromiseOrValue, - ], - ): string; - encodeFunctionData( - functionFragment: 'get_dy(int128,int128,uint256)', - values: [PromiseOrValue, PromiseOrValue, PromiseOrValue], - ): string; - encodeFunctionData( - functionFragment: 'get_dy(int128,int128,uint256,uint256[2])', - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - [PromiseOrValue, PromiseOrValue], - ], - ): string; - encodeFunctionData( - functionFragment: 'get_dy_underlying(int128,int128,uint256)', - values: [PromiseOrValue, PromiseOrValue, PromiseOrValue], - ): string; - encodeFunctionData( - functionFragment: 'get_dy_underlying(int128,int128,uint256,uint256[2])', - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - [PromiseOrValue, PromiseOrValue], - ], - ): string; - encodeFunctionData( - functionFragment: 'exchange(int128,int128,uint256,uint256)', - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - ], - ): string; - encodeFunctionData( - functionFragment: 'exchange(int128,int128,uint256,uint256,address)', - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - ], - ): string; - encodeFunctionData( - functionFragment: 'exchange_underlying(int128,int128,uint256,uint256)', - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - ], - ): string; - encodeFunctionData( - functionFragment: 'exchange_underlying(int128,int128,uint256,uint256,address)', - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - ], - ): string; - encodeFunctionData( - functionFragment: 'remove_liquidity(uint256,uint256[2])', - values: [PromiseOrValue, [PromiseOrValue, PromiseOrValue]], - ): string; - encodeFunctionData( - functionFragment: 'remove_liquidity(uint256,uint256[2],address)', - values: [ - PromiseOrValue, - [PromiseOrValue, PromiseOrValue], - PromiseOrValue, - ], - ): string; - encodeFunctionData( - functionFragment: 'remove_liquidity_imbalance(uint256[2],uint256)', - values: [[PromiseOrValue, PromiseOrValue], PromiseOrValue], - ): string; - encodeFunctionData( - functionFragment: 'remove_liquidity_imbalance(uint256[2],uint256,address)', - values: [ - [PromiseOrValue, PromiseOrValue], - PromiseOrValue, - PromiseOrValue, - ], - ): string; - encodeFunctionData( - functionFragment: 'calc_withdraw_one_coin(uint256,int128)', - values: [PromiseOrValue, PromiseOrValue], - ): string; - encodeFunctionData( - functionFragment: 'calc_withdraw_one_coin(uint256,int128,bool)', - values: [PromiseOrValue, PromiseOrValue, PromiseOrValue], - ): string; - encodeFunctionData( - functionFragment: 'remove_liquidity_one_coin(uint256,int128,uint256)', - values: [PromiseOrValue, PromiseOrValue, PromiseOrValue], - ): string; - encodeFunctionData( - functionFragment: 'remove_liquidity_one_coin(uint256,int128,uint256,address)', - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - ], - ): string; - encodeFunctionData( - functionFragment: 'ramp_A', - values: [PromiseOrValue, PromiseOrValue], - ): string; - encodeFunctionData(functionFragment: 'stop_ramp_A', values?: undefined): string; - encodeFunctionData(functionFragment: 'admin_balances', values: [PromiseOrValue]): string; - encodeFunctionData(functionFragment: 'withdraw_admin_fees', values?: undefined): string; - encodeFunctionData(functionFragment: 'admin', values?: undefined): string; - encodeFunctionData(functionFragment: 'coins', values: [PromiseOrValue]): string; - encodeFunctionData(functionFragment: 'balances', values: [PromiseOrValue]): string; - encodeFunctionData(functionFragment: 'fee', values?: undefined): string; - encodeFunctionData(functionFragment: 'block_timestamp_last', values?: undefined): string; - encodeFunctionData(functionFragment: 'initial_A', values?: undefined): string; - encodeFunctionData(functionFragment: 'future_A', values?: undefined): string; - encodeFunctionData(functionFragment: 'initial_A_time', values?: undefined): string; - encodeFunctionData(functionFragment: 'future_A_time', values?: undefined): string; - encodeFunctionData(functionFragment: 'name', values?: undefined): string; - encodeFunctionData(functionFragment: 'symbol', values?: undefined): string; - encodeFunctionData(functionFragment: 'balanceOf', values: [PromiseOrValue]): string; - encodeFunctionData(functionFragment: 'allowance', values: [PromiseOrValue, PromiseOrValue]): string; - encodeFunctionData(functionFragment: 'totalSupply', values?: undefined): string; - - decodeFunctionResult(functionFragment: 'initialize', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'decimals', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'transfer', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'transferFrom', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'approve', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'get_previous_balances', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'get_balances', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'get_twap_balances', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'get_price_cumulative_last', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'admin_fee', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'A', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'A_precise', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'get_virtual_price', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'calc_token_amount(uint256[2],bool)', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'calc_token_amount(uint256[2],bool,bool)', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'add_liquidity(uint256[2],uint256)', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'add_liquidity(uint256[2],uint256,address)', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'get_dy(int128,int128,uint256)', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'get_dy(int128,int128,uint256,uint256[2])', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'get_dy_underlying(int128,int128,uint256)', data: BytesLike): Result; - decodeFunctionResult( - functionFragment: 'get_dy_underlying(int128,int128,uint256,uint256[2])', - data: BytesLike, - ): Result; - decodeFunctionResult(functionFragment: 'exchange(int128,int128,uint256,uint256)', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'exchange(int128,int128,uint256,uint256,address)', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'exchange_underlying(int128,int128,uint256,uint256)', data: BytesLike): Result; - decodeFunctionResult( - functionFragment: 'exchange_underlying(int128,int128,uint256,uint256,address)', - data: BytesLike, - ): Result; - decodeFunctionResult(functionFragment: 'remove_liquidity(uint256,uint256[2])', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'remove_liquidity(uint256,uint256[2],address)', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'remove_liquidity_imbalance(uint256[2],uint256)', data: BytesLike): Result; - decodeFunctionResult( - functionFragment: 'remove_liquidity_imbalance(uint256[2],uint256,address)', - data: BytesLike, - ): Result; - decodeFunctionResult(functionFragment: 'calc_withdraw_one_coin(uint256,int128)', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'calc_withdraw_one_coin(uint256,int128,bool)', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'remove_liquidity_one_coin(uint256,int128,uint256)', data: BytesLike): Result; - decodeFunctionResult( - functionFragment: 'remove_liquidity_one_coin(uint256,int128,uint256,address)', - data: BytesLike, - ): Result; - decodeFunctionResult(functionFragment: 'ramp_A', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'stop_ramp_A', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'admin_balances', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'withdraw_admin_fees', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'admin', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'coins', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'balances', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'fee', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'block_timestamp_last', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'initial_A', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'future_A', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'initial_A_time', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'future_A_time', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'name', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'symbol', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'balanceOf', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'allowance', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'totalSupply', data: BytesLike): Result; - - events: { - 'Transfer(address,address,uint256)': EventFragment; - 'Approval(address,address,uint256)': EventFragment; - 'TokenExchange(address,int128,uint256,int128,uint256)': EventFragment; - 'TokenExchangeUnderlying(address,int128,uint256,int128,uint256)': EventFragment; - 'AddLiquidity(address,uint256[2],uint256[2],uint256,uint256)': EventFragment; - 'RemoveLiquidity(address,uint256[2],uint256[2],uint256)': EventFragment; - 'RemoveLiquidityOne(address,uint256,uint256,uint256)': EventFragment; - 'RemoveLiquidityImbalance(address,uint256[2],uint256[2],uint256,uint256)': EventFragment; - 'CommitNewAdmin(uint256,address)': EventFragment; - 'NewAdmin(address)': EventFragment; - 'CommitNewFee(uint256,uint256,uint256)': EventFragment; - 'NewFee(uint256,uint256)': EventFragment; - 'RampA(uint256,uint256,uint256,uint256)': EventFragment; - 'StopRampA(uint256,uint256)': EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: 'Transfer'): EventFragment; - getEvent(nameOrSignatureOrTopic: 'Approval'): EventFragment; - getEvent(nameOrSignatureOrTopic: 'TokenExchange'): EventFragment; - getEvent(nameOrSignatureOrTopic: 'TokenExchangeUnderlying'): EventFragment; - getEvent(nameOrSignatureOrTopic: 'AddLiquidity'): EventFragment; - getEvent(nameOrSignatureOrTopic: 'RemoveLiquidity'): EventFragment; - getEvent(nameOrSignatureOrTopic: 'RemoveLiquidityOne'): EventFragment; - getEvent(nameOrSignatureOrTopic: 'RemoveLiquidityImbalance'): EventFragment; - getEvent(nameOrSignatureOrTopic: 'CommitNewAdmin'): EventFragment; - getEvent(nameOrSignatureOrTopic: 'NewAdmin'): EventFragment; - getEvent(nameOrSignatureOrTopic: 'CommitNewFee'): EventFragment; - getEvent(nameOrSignatureOrTopic: 'NewFee'): EventFragment; - getEvent(nameOrSignatureOrTopic: 'RampA'): EventFragment; - getEvent(nameOrSignatureOrTopic: 'StopRampA'): EventFragment; -} - -export interface TransferEventObject { - sender: string; - receiver: string; - value: BigNumber; -} -export type TransferEvent = TypedEvent<[string, string, BigNumber], TransferEventObject>; - -export type TransferEventFilter = TypedEventFilter; - -export interface ApprovalEventObject { - owner: string; - spender: string; - value: BigNumber; -} -export type ApprovalEvent = TypedEvent<[string, string, BigNumber], ApprovalEventObject>; - -export type ApprovalEventFilter = TypedEventFilter; - -export interface TokenExchangeEventObject { - buyer: string; - sold_id: BigNumber; - tokens_sold: BigNumber; - bought_id: BigNumber; - tokens_bought: BigNumber; -} -export type TokenExchangeEvent = TypedEvent< - [string, BigNumber, BigNumber, BigNumber, BigNumber], - TokenExchangeEventObject ->; - -export type TokenExchangeEventFilter = TypedEventFilter; - -export interface TokenExchangeUnderlyingEventObject { - buyer: string; - sold_id: BigNumber; - tokens_sold: BigNumber; - bought_id: BigNumber; - tokens_bought: BigNumber; -} -export type TokenExchangeUnderlyingEvent = TypedEvent< - [string, BigNumber, BigNumber, BigNumber, BigNumber], - TokenExchangeUnderlyingEventObject ->; - -export type TokenExchangeUnderlyingEventFilter = TypedEventFilter; - -export interface AddLiquidityEventObject { - provider: string; - token_amounts: [BigNumber, BigNumber]; - fees: [BigNumber, BigNumber]; - invariant: BigNumber; - token_supply: BigNumber; -} -export type AddLiquidityEvent = TypedEvent< - [string, [BigNumber, BigNumber], [BigNumber, BigNumber], BigNumber, BigNumber], - AddLiquidityEventObject ->; - -export type AddLiquidityEventFilter = TypedEventFilter; - -export interface RemoveLiquidityEventObject { - provider: string; - token_amounts: [BigNumber, BigNumber]; - fees: [BigNumber, BigNumber]; - token_supply: BigNumber; -} -export type RemoveLiquidityEvent = TypedEvent< - [string, [BigNumber, BigNumber], [BigNumber, BigNumber], BigNumber], - RemoveLiquidityEventObject ->; - -export type RemoveLiquidityEventFilter = TypedEventFilter; - -export interface RemoveLiquidityOneEventObject { - provider: string; - token_amount: BigNumber; - coin_amount: BigNumber; - token_supply: BigNumber; -} -export type RemoveLiquidityOneEvent = TypedEvent< - [string, BigNumber, BigNumber, BigNumber], - RemoveLiquidityOneEventObject ->; - -export type RemoveLiquidityOneEventFilter = TypedEventFilter; - -export interface RemoveLiquidityImbalanceEventObject { - provider: string; - token_amounts: [BigNumber, BigNumber]; - fees: [BigNumber, BigNumber]; - invariant: BigNumber; - token_supply: BigNumber; -} -export type RemoveLiquidityImbalanceEvent = TypedEvent< - [string, [BigNumber, BigNumber], [BigNumber, BigNumber], BigNumber, BigNumber], - RemoveLiquidityImbalanceEventObject ->; - -export type RemoveLiquidityImbalanceEventFilter = TypedEventFilter; - -export interface CommitNewAdminEventObject { - deadline: BigNumber; - admin: string; -} -export type CommitNewAdminEvent = TypedEvent<[BigNumber, string], CommitNewAdminEventObject>; - -export type CommitNewAdminEventFilter = TypedEventFilter; - -export interface NewAdminEventObject { - admin: string; -} -export type NewAdminEvent = TypedEvent<[string], NewAdminEventObject>; - -export type NewAdminEventFilter = TypedEventFilter; - -export interface CommitNewFeeEventObject { - deadline: BigNumber; - fee: BigNumber; - admin_fee: BigNumber; -} -export type CommitNewFeeEvent = TypedEvent<[BigNumber, BigNumber, BigNumber], CommitNewFeeEventObject>; - -export type CommitNewFeeEventFilter = TypedEventFilter; - -export interface NewFeeEventObject { - fee: BigNumber; - admin_fee: BigNumber; -} -export type NewFeeEvent = TypedEvent<[BigNumber, BigNumber], NewFeeEventObject>; - -export type NewFeeEventFilter = TypedEventFilter; - -export interface RampAEventObject { - old_A: BigNumber; - new_A: BigNumber; - initial_time: BigNumber; - future_time: BigNumber; -} -export type RampAEvent = TypedEvent<[BigNumber, BigNumber, BigNumber, BigNumber], RampAEventObject>; - -export type RampAEventFilter = TypedEventFilter; - -export interface StopRampAEventObject { - A: BigNumber; - t: BigNumber; -} -export type StopRampAEvent = TypedEvent<[BigNumber, BigNumber], StopRampAEventObject>; - -export type StopRampAEventFilter = TypedEventFilter; - -export interface CurveFactoryPool extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: CurveFactoryPoolInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined, - ): Promise>; - - listeners(eventFilter?: TypedEventFilter): Array>; - listeners(eventName?: string): Array; - removeAllListeners(eventFilter: TypedEventFilter): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - initialize( - _name: PromiseOrValue, - _symbol: PromiseOrValue, - _coin: PromiseOrValue, - _decimals: PromiseOrValue, - _A: PromiseOrValue, - _fee: PromiseOrValue, - _admin: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - decimals(overrides?: CallOverrides): Promise<[BigNumber]>; - - transfer( - _to: PromiseOrValue, - _value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - transferFrom( - _from: PromiseOrValue, - _to: PromiseOrValue, - _value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - approve( - _spender: PromiseOrValue, - _value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - get_previous_balances(overrides?: CallOverrides): Promise<[[BigNumber, BigNumber]]>; - - get_balances(overrides?: CallOverrides): Promise<[[BigNumber, BigNumber]]>; - - get_twap_balances( - _first_balances: [PromiseOrValue, PromiseOrValue], - _last_balances: [PromiseOrValue, PromiseOrValue], - _time_elapsed: PromiseOrValue, - overrides?: CallOverrides, - ): Promise<[[BigNumber, BigNumber]]>; - - get_price_cumulative_last(overrides?: CallOverrides): Promise<[[BigNumber, BigNumber]]>; - - admin_fee(overrides?: CallOverrides): Promise<[BigNumber]>; - - A(overrides?: CallOverrides): Promise<[BigNumber]>; - - A_precise(overrides?: CallOverrides): Promise<[BigNumber]>; - - get_virtual_price(overrides?: CallOverrides): Promise<[BigNumber]>; - - 'calc_token_amount(uint256[2],bool)'( - _amounts: [PromiseOrValue, PromiseOrValue], - _is_deposit: PromiseOrValue, - overrides?: CallOverrides, - ): Promise<[BigNumber]>; - - 'calc_token_amount(uint256[2],bool,bool)'( - _amounts: [PromiseOrValue, PromiseOrValue], - _is_deposit: PromiseOrValue, - _previous: PromiseOrValue, - overrides?: CallOverrides, - ): Promise<[BigNumber]>; - - 'add_liquidity(uint256[2],uint256)'( - _amounts: [PromiseOrValue, PromiseOrValue], - _min_mint_amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'add_liquidity(uint256[2],uint256,address)'( - _amounts: [PromiseOrValue, PromiseOrValue], - _min_mint_amount: PromiseOrValue, - _receiver: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'get_dy(int128,int128,uint256)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - overrides?: CallOverrides, - ): Promise<[BigNumber]>; - - 'get_dy(int128,int128,uint256,uint256[2])'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - _balances: [PromiseOrValue, PromiseOrValue], - overrides?: CallOverrides, - ): Promise<[BigNumber]>; - - 'get_dy_underlying(int128,int128,uint256)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - overrides?: CallOverrides, - ): Promise<[BigNumber]>; - - 'get_dy_underlying(int128,int128,uint256,uint256[2])'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - _balances: [PromiseOrValue, PromiseOrValue], - overrides?: CallOverrides, - ): Promise<[BigNumber]>; - - 'exchange(int128,int128,uint256,uint256)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'exchange(int128,int128,uint256,uint256,address)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - _receiver: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'exchange_underlying(int128,int128,uint256,uint256)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'exchange_underlying(int128,int128,uint256,uint256,address)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - _receiver: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'remove_liquidity(uint256,uint256[2])'( - _burn_amount: PromiseOrValue, - _min_amounts: [PromiseOrValue, PromiseOrValue], - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'remove_liquidity(uint256,uint256[2],address)'( - _burn_amount: PromiseOrValue, - _min_amounts: [PromiseOrValue, PromiseOrValue], - _receiver: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'remove_liquidity_imbalance(uint256[2],uint256)'( - _amounts: [PromiseOrValue, PromiseOrValue], - _max_burn_amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'remove_liquidity_imbalance(uint256[2],uint256,address)'( - _amounts: [PromiseOrValue, PromiseOrValue], - _max_burn_amount: PromiseOrValue, - _receiver: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'calc_withdraw_one_coin(uint256,int128)'( - _burn_amount: PromiseOrValue, - i: PromiseOrValue, - overrides?: CallOverrides, - ): Promise<[BigNumber]>; - - 'calc_withdraw_one_coin(uint256,int128,bool)'( - _burn_amount: PromiseOrValue, - i: PromiseOrValue, - _previous: PromiseOrValue, - overrides?: CallOverrides, - ): Promise<[BigNumber]>; - - 'remove_liquidity_one_coin(uint256,int128,uint256)'( - _burn_amount: PromiseOrValue, - i: PromiseOrValue, - _min_received: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'remove_liquidity_one_coin(uint256,int128,uint256,address)'( - _burn_amount: PromiseOrValue, - i: PromiseOrValue, - _min_received: PromiseOrValue, - _receiver: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - ramp_A( - _future_A: PromiseOrValue, - _future_time: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - stop_ramp_A(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - admin_balances(i: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber]>; - - withdraw_admin_fees(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - admin(overrides?: CallOverrides): Promise<[string]>; - - coins(arg0: PromiseOrValue, overrides?: CallOverrides): Promise<[string]>; - - balances(arg0: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber]>; - - fee(overrides?: CallOverrides): Promise<[BigNumber]>; - - block_timestamp_last(overrides?: CallOverrides): Promise<[BigNumber]>; - - initial_A(overrides?: CallOverrides): Promise<[BigNumber]>; - - future_A(overrides?: CallOverrides): Promise<[BigNumber]>; - - initial_A_time(overrides?: CallOverrides): Promise<[BigNumber]>; - - future_A_time(overrides?: CallOverrides): Promise<[BigNumber]>; - - name(overrides?: CallOverrides): Promise<[string]>; - - symbol(overrides?: CallOverrides): Promise<[string]>; - - balanceOf(arg0: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber]>; - - allowance( - arg0: PromiseOrValue, - arg1: PromiseOrValue, - overrides?: CallOverrides, - ): Promise<[BigNumber]>; - - totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>; - }; - - initialize( - _name: PromiseOrValue, - _symbol: PromiseOrValue, - _coin: PromiseOrValue, - _decimals: PromiseOrValue, - _A: PromiseOrValue, - _fee: PromiseOrValue, - _admin: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - decimals(overrides?: CallOverrides): Promise; - - transfer( - _to: PromiseOrValue, - _value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - transferFrom( - _from: PromiseOrValue, - _to: PromiseOrValue, - _value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - approve( - _spender: PromiseOrValue, - _value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - get_previous_balances(overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>; - - get_balances(overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>; - - get_twap_balances( - _first_balances: [PromiseOrValue, PromiseOrValue], - _last_balances: [PromiseOrValue, PromiseOrValue], - _time_elapsed: PromiseOrValue, - overrides?: CallOverrides, - ): Promise<[BigNumber, BigNumber]>; - - get_price_cumulative_last(overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>; - - admin_fee(overrides?: CallOverrides): Promise; - - A(overrides?: CallOverrides): Promise; - - A_precise(overrides?: CallOverrides): Promise; - - get_virtual_price(overrides?: CallOverrides): Promise; - - 'calc_token_amount(uint256[2],bool)'( - _amounts: [PromiseOrValue, PromiseOrValue], - _is_deposit: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - 'calc_token_amount(uint256[2],bool,bool)'( - _amounts: [PromiseOrValue, PromiseOrValue], - _is_deposit: PromiseOrValue, - _previous: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - 'add_liquidity(uint256[2],uint256)'( - _amounts: [PromiseOrValue, PromiseOrValue], - _min_mint_amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'add_liquidity(uint256[2],uint256,address)'( - _amounts: [PromiseOrValue, PromiseOrValue], - _min_mint_amount: PromiseOrValue, - _receiver: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'get_dy(int128,int128,uint256)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - 'get_dy(int128,int128,uint256,uint256[2])'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - _balances: [PromiseOrValue, PromiseOrValue], - overrides?: CallOverrides, - ): Promise; - - 'get_dy_underlying(int128,int128,uint256)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - 'get_dy_underlying(int128,int128,uint256,uint256[2])'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - _balances: [PromiseOrValue, PromiseOrValue], - overrides?: CallOverrides, - ): Promise; - - 'exchange(int128,int128,uint256,uint256)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'exchange(int128,int128,uint256,uint256,address)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - _receiver: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'exchange_underlying(int128,int128,uint256,uint256)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'exchange_underlying(int128,int128,uint256,uint256,address)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - _receiver: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'remove_liquidity(uint256,uint256[2])'( - _burn_amount: PromiseOrValue, - _min_amounts: [PromiseOrValue, PromiseOrValue], - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'remove_liquidity(uint256,uint256[2],address)'( - _burn_amount: PromiseOrValue, - _min_amounts: [PromiseOrValue, PromiseOrValue], - _receiver: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'remove_liquidity_imbalance(uint256[2],uint256)'( - _amounts: [PromiseOrValue, PromiseOrValue], - _max_burn_amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'remove_liquidity_imbalance(uint256[2],uint256,address)'( - _amounts: [PromiseOrValue, PromiseOrValue], - _max_burn_amount: PromiseOrValue, - _receiver: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'calc_withdraw_one_coin(uint256,int128)'( - _burn_amount: PromiseOrValue, - i: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - 'calc_withdraw_one_coin(uint256,int128,bool)'( - _burn_amount: PromiseOrValue, - i: PromiseOrValue, - _previous: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - 'remove_liquidity_one_coin(uint256,int128,uint256)'( - _burn_amount: PromiseOrValue, - i: PromiseOrValue, - _min_received: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'remove_liquidity_one_coin(uint256,int128,uint256,address)'( - _burn_amount: PromiseOrValue, - i: PromiseOrValue, - _min_received: PromiseOrValue, - _receiver: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - ramp_A( - _future_A: PromiseOrValue, - _future_time: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - stop_ramp_A(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - admin_balances(i: PromiseOrValue, overrides?: CallOverrides): Promise; - - withdraw_admin_fees(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - admin(overrides?: CallOverrides): Promise; - - coins(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - balances(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - fee(overrides?: CallOverrides): Promise; - - block_timestamp_last(overrides?: CallOverrides): Promise; - - initial_A(overrides?: CallOverrides): Promise; - - future_A(overrides?: CallOverrides): Promise; - - initial_A_time(overrides?: CallOverrides): Promise; - - future_A_time(overrides?: CallOverrides): Promise; - - name(overrides?: CallOverrides): Promise; - - symbol(overrides?: CallOverrides): Promise; - - balanceOf(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - allowance(arg0: PromiseOrValue, arg1: PromiseOrValue, overrides?: CallOverrides): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - - callStatic: { - initialize( - _name: PromiseOrValue, - _symbol: PromiseOrValue, - _coin: PromiseOrValue, - _decimals: PromiseOrValue, - _A: PromiseOrValue, - _fee: PromiseOrValue, - _admin: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - decimals(overrides?: CallOverrides): Promise; - - transfer( - _to: PromiseOrValue, - _value: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - transferFrom( - _from: PromiseOrValue, - _to: PromiseOrValue, - _value: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - approve( - _spender: PromiseOrValue, - _value: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - get_previous_balances(overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>; - - get_balances(overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>; - - get_twap_balances( - _first_balances: [PromiseOrValue, PromiseOrValue], - _last_balances: [PromiseOrValue, PromiseOrValue], - _time_elapsed: PromiseOrValue, - overrides?: CallOverrides, - ): Promise<[BigNumber, BigNumber]>; - - get_price_cumulative_last(overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>; - - admin_fee(overrides?: CallOverrides): Promise; - - A(overrides?: CallOverrides): Promise; - - A_precise(overrides?: CallOverrides): Promise; - - get_virtual_price(overrides?: CallOverrides): Promise; - - 'calc_token_amount(uint256[2],bool)'( - _amounts: [PromiseOrValue, PromiseOrValue], - _is_deposit: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - 'calc_token_amount(uint256[2],bool,bool)'( - _amounts: [PromiseOrValue, PromiseOrValue], - _is_deposit: PromiseOrValue, - _previous: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - 'add_liquidity(uint256[2],uint256)'( - _amounts: [PromiseOrValue, PromiseOrValue], - _min_mint_amount: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - 'add_liquidity(uint256[2],uint256,address)'( - _amounts: [PromiseOrValue, PromiseOrValue], - _min_mint_amount: PromiseOrValue, - _receiver: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - 'get_dy(int128,int128,uint256)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - 'get_dy(int128,int128,uint256,uint256[2])'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - _balances: [PromiseOrValue, PromiseOrValue], - overrides?: CallOverrides, - ): Promise; - - 'get_dy_underlying(int128,int128,uint256)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - 'get_dy_underlying(int128,int128,uint256,uint256[2])'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - _balances: [PromiseOrValue, PromiseOrValue], - overrides?: CallOverrides, - ): Promise; - - 'exchange(int128,int128,uint256,uint256)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - 'exchange(int128,int128,uint256,uint256,address)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - _receiver: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - 'exchange_underlying(int128,int128,uint256,uint256)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - 'exchange_underlying(int128,int128,uint256,uint256,address)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - _receiver: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - 'remove_liquidity(uint256,uint256[2])'( - _burn_amount: PromiseOrValue, - _min_amounts: [PromiseOrValue, PromiseOrValue], - overrides?: CallOverrides, - ): Promise<[BigNumber, BigNumber]>; - - 'remove_liquidity(uint256,uint256[2],address)'( - _burn_amount: PromiseOrValue, - _min_amounts: [PromiseOrValue, PromiseOrValue], - _receiver: PromiseOrValue, - overrides?: CallOverrides, - ): Promise<[BigNumber, BigNumber]>; - - 'remove_liquidity_imbalance(uint256[2],uint256)'( - _amounts: [PromiseOrValue, PromiseOrValue], - _max_burn_amount: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - 'remove_liquidity_imbalance(uint256[2],uint256,address)'( - _amounts: [PromiseOrValue, PromiseOrValue], - _max_burn_amount: PromiseOrValue, - _receiver: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - 'calc_withdraw_one_coin(uint256,int128)'( - _burn_amount: PromiseOrValue, - i: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - 'calc_withdraw_one_coin(uint256,int128,bool)'( - _burn_amount: PromiseOrValue, - i: PromiseOrValue, - _previous: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - 'remove_liquidity_one_coin(uint256,int128,uint256)'( - _burn_amount: PromiseOrValue, - i: PromiseOrValue, - _min_received: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - 'remove_liquidity_one_coin(uint256,int128,uint256,address)'( - _burn_amount: PromiseOrValue, - i: PromiseOrValue, - _min_received: PromiseOrValue, - _receiver: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - ramp_A( - _future_A: PromiseOrValue, - _future_time: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - stop_ramp_A(overrides?: CallOverrides): Promise; - - admin_balances(i: PromiseOrValue, overrides?: CallOverrides): Promise; - - withdraw_admin_fees(overrides?: CallOverrides): Promise; - - admin(overrides?: CallOverrides): Promise; - - coins(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - balances(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - fee(overrides?: CallOverrides): Promise; - - block_timestamp_last(overrides?: CallOverrides): Promise; - - initial_A(overrides?: CallOverrides): Promise; - - future_A(overrides?: CallOverrides): Promise; - - initial_A_time(overrides?: CallOverrides): Promise; - - future_A_time(overrides?: CallOverrides): Promise; - - name(overrides?: CallOverrides): Promise; - - symbol(overrides?: CallOverrides): Promise; - - balanceOf(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - allowance( - arg0: PromiseOrValue, - arg1: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - }; - - filters: { - 'Transfer(address,address,uint256)'( - sender?: PromiseOrValue | null, - receiver?: PromiseOrValue | null, - value?: null, - ): TransferEventFilter; - Transfer( - sender?: PromiseOrValue | null, - receiver?: PromiseOrValue | null, - value?: null, - ): TransferEventFilter; - - 'Approval(address,address,uint256)'( - owner?: PromiseOrValue | null, - spender?: PromiseOrValue | null, - value?: null, - ): ApprovalEventFilter; - Approval( - owner?: PromiseOrValue | null, - spender?: PromiseOrValue | null, - value?: null, - ): ApprovalEventFilter; - - 'TokenExchange(address,int128,uint256,int128,uint256)'( - buyer?: PromiseOrValue | null, - sold_id?: null, - tokens_sold?: null, - bought_id?: null, - tokens_bought?: null, - ): TokenExchangeEventFilter; - TokenExchange( - buyer?: PromiseOrValue | null, - sold_id?: null, - tokens_sold?: null, - bought_id?: null, - tokens_bought?: null, - ): TokenExchangeEventFilter; - - 'TokenExchangeUnderlying(address,int128,uint256,int128,uint256)'( - buyer?: PromiseOrValue | null, - sold_id?: null, - tokens_sold?: null, - bought_id?: null, - tokens_bought?: null, - ): TokenExchangeUnderlyingEventFilter; - TokenExchangeUnderlying( - buyer?: PromiseOrValue | null, - sold_id?: null, - tokens_sold?: null, - bought_id?: null, - tokens_bought?: null, - ): TokenExchangeUnderlyingEventFilter; - - 'AddLiquidity(address,uint256[2],uint256[2],uint256,uint256)'( - provider?: PromiseOrValue | null, - token_amounts?: null, - fees?: null, - invariant?: null, - token_supply?: null, - ): AddLiquidityEventFilter; - AddLiquidity( - provider?: PromiseOrValue | null, - token_amounts?: null, - fees?: null, - invariant?: null, - token_supply?: null, - ): AddLiquidityEventFilter; - - 'RemoveLiquidity(address,uint256[2],uint256[2],uint256)'( - provider?: PromiseOrValue | null, - token_amounts?: null, - fees?: null, - token_supply?: null, - ): RemoveLiquidityEventFilter; - RemoveLiquidity( - provider?: PromiseOrValue | null, - token_amounts?: null, - fees?: null, - token_supply?: null, - ): RemoveLiquidityEventFilter; - - 'RemoveLiquidityOne(address,uint256,uint256,uint256)'( - provider?: PromiseOrValue | null, - token_amount?: null, - coin_amount?: null, - token_supply?: null, - ): RemoveLiquidityOneEventFilter; - RemoveLiquidityOne( - provider?: PromiseOrValue | null, - token_amount?: null, - coin_amount?: null, - token_supply?: null, - ): RemoveLiquidityOneEventFilter; - - 'RemoveLiquidityImbalance(address,uint256[2],uint256[2],uint256,uint256)'( - provider?: PromiseOrValue | null, - token_amounts?: null, - fees?: null, - invariant?: null, - token_supply?: null, - ): RemoveLiquidityImbalanceEventFilter; - RemoveLiquidityImbalance( - provider?: PromiseOrValue | null, - token_amounts?: null, - fees?: null, - invariant?: null, - token_supply?: null, - ): RemoveLiquidityImbalanceEventFilter; - - 'CommitNewAdmin(uint256,address)'( - deadline?: PromiseOrValue | null, - admin?: PromiseOrValue | null, - ): CommitNewAdminEventFilter; - CommitNewAdmin( - deadline?: PromiseOrValue | null, - admin?: PromiseOrValue | null, - ): CommitNewAdminEventFilter; - - 'NewAdmin(address)'(admin?: PromiseOrValue | null): NewAdminEventFilter; - NewAdmin(admin?: PromiseOrValue | null): NewAdminEventFilter; - - 'CommitNewFee(uint256,uint256,uint256)'( - deadline?: PromiseOrValue | null, - fee?: null, - admin_fee?: null, - ): CommitNewFeeEventFilter; - CommitNewFee(deadline?: PromiseOrValue | null, fee?: null, admin_fee?: null): CommitNewFeeEventFilter; - - 'NewFee(uint256,uint256)'(fee?: null, admin_fee?: null): NewFeeEventFilter; - NewFee(fee?: null, admin_fee?: null): NewFeeEventFilter; - - 'RampA(uint256,uint256,uint256,uint256)'( - old_A?: null, - new_A?: null, - initial_time?: null, - future_time?: null, - ): RampAEventFilter; - RampA(old_A?: null, new_A?: null, initial_time?: null, future_time?: null): RampAEventFilter; - - 'StopRampA(uint256,uint256)'(A?: null, t?: null): StopRampAEventFilter; - StopRampA(A?: null, t?: null): StopRampAEventFilter; - }; - - estimateGas: { - initialize( - _name: PromiseOrValue, - _symbol: PromiseOrValue, - _coin: PromiseOrValue, - _decimals: PromiseOrValue, - _A: PromiseOrValue, - _fee: PromiseOrValue, - _admin: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - decimals(overrides?: CallOverrides): Promise; - - transfer( - _to: PromiseOrValue, - _value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - transferFrom( - _from: PromiseOrValue, - _to: PromiseOrValue, - _value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - approve( - _spender: PromiseOrValue, - _value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - get_previous_balances(overrides?: CallOverrides): Promise; - - get_balances(overrides?: CallOverrides): Promise; - - get_twap_balances( - _first_balances: [PromiseOrValue, PromiseOrValue], - _last_balances: [PromiseOrValue, PromiseOrValue], - _time_elapsed: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - get_price_cumulative_last(overrides?: CallOverrides): Promise; - - admin_fee(overrides?: CallOverrides): Promise; - - A(overrides?: CallOverrides): Promise; - - A_precise(overrides?: CallOverrides): Promise; - - get_virtual_price(overrides?: CallOverrides): Promise; - - 'calc_token_amount(uint256[2],bool)'( - _amounts: [PromiseOrValue, PromiseOrValue], - _is_deposit: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - 'calc_token_amount(uint256[2],bool,bool)'( - _amounts: [PromiseOrValue, PromiseOrValue], - _is_deposit: PromiseOrValue, - _previous: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - 'add_liquidity(uint256[2],uint256)'( - _amounts: [PromiseOrValue, PromiseOrValue], - _min_mint_amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'add_liquidity(uint256[2],uint256,address)'( - _amounts: [PromiseOrValue, PromiseOrValue], - _min_mint_amount: PromiseOrValue, - _receiver: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'get_dy(int128,int128,uint256)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - 'get_dy(int128,int128,uint256,uint256[2])'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - _balances: [PromiseOrValue, PromiseOrValue], - overrides?: CallOverrides, - ): Promise; - - 'get_dy_underlying(int128,int128,uint256)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - 'get_dy_underlying(int128,int128,uint256,uint256[2])'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - _balances: [PromiseOrValue, PromiseOrValue], - overrides?: CallOverrides, - ): Promise; - - 'exchange(int128,int128,uint256,uint256)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'exchange(int128,int128,uint256,uint256,address)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - _receiver: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'exchange_underlying(int128,int128,uint256,uint256)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'exchange_underlying(int128,int128,uint256,uint256,address)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - _receiver: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'remove_liquidity(uint256,uint256[2])'( - _burn_amount: PromiseOrValue, - _min_amounts: [PromiseOrValue, PromiseOrValue], - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'remove_liquidity(uint256,uint256[2],address)'( - _burn_amount: PromiseOrValue, - _min_amounts: [PromiseOrValue, PromiseOrValue], - _receiver: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'remove_liquidity_imbalance(uint256[2],uint256)'( - _amounts: [PromiseOrValue, PromiseOrValue], - _max_burn_amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'remove_liquidity_imbalance(uint256[2],uint256,address)'( - _amounts: [PromiseOrValue, PromiseOrValue], - _max_burn_amount: PromiseOrValue, - _receiver: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'calc_withdraw_one_coin(uint256,int128)'( - _burn_amount: PromiseOrValue, - i: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - 'calc_withdraw_one_coin(uint256,int128,bool)'( - _burn_amount: PromiseOrValue, - i: PromiseOrValue, - _previous: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - 'remove_liquidity_one_coin(uint256,int128,uint256)'( - _burn_amount: PromiseOrValue, - i: PromiseOrValue, - _min_received: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'remove_liquidity_one_coin(uint256,int128,uint256,address)'( - _burn_amount: PromiseOrValue, - i: PromiseOrValue, - _min_received: PromiseOrValue, - _receiver: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - ramp_A( - _future_A: PromiseOrValue, - _future_time: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - stop_ramp_A(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - admin_balances(i: PromiseOrValue, overrides?: CallOverrides): Promise; - - withdraw_admin_fees(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - admin(overrides?: CallOverrides): Promise; - - coins(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - balances(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - fee(overrides?: CallOverrides): Promise; - - block_timestamp_last(overrides?: CallOverrides): Promise; - - initial_A(overrides?: CallOverrides): Promise; - - future_A(overrides?: CallOverrides): Promise; - - initial_A_time(overrides?: CallOverrides): Promise; - - future_A_time(overrides?: CallOverrides): Promise; - - name(overrides?: CallOverrides): Promise; - - symbol(overrides?: CallOverrides): Promise; - - balanceOf(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - allowance( - arg0: PromiseOrValue, - arg1: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - }; - - populateTransaction: { - initialize( - _name: PromiseOrValue, - _symbol: PromiseOrValue, - _coin: PromiseOrValue, - _decimals: PromiseOrValue, - _A: PromiseOrValue, - _fee: PromiseOrValue, - _admin: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - decimals(overrides?: CallOverrides): Promise; - - transfer( - _to: PromiseOrValue, - _value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - transferFrom( - _from: PromiseOrValue, - _to: PromiseOrValue, - _value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - approve( - _spender: PromiseOrValue, - _value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - get_previous_balances(overrides?: CallOverrides): Promise; - - get_balances(overrides?: CallOverrides): Promise; - - get_twap_balances( - _first_balances: [PromiseOrValue, PromiseOrValue], - _last_balances: [PromiseOrValue, PromiseOrValue], - _time_elapsed: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - get_price_cumulative_last(overrides?: CallOverrides): Promise; - - admin_fee(overrides?: CallOverrides): Promise; - - A(overrides?: CallOverrides): Promise; - - A_precise(overrides?: CallOverrides): Promise; - - get_virtual_price(overrides?: CallOverrides): Promise; - - 'calc_token_amount(uint256[2],bool)'( - _amounts: [PromiseOrValue, PromiseOrValue], - _is_deposit: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - 'calc_token_amount(uint256[2],bool,bool)'( - _amounts: [PromiseOrValue, PromiseOrValue], - _is_deposit: PromiseOrValue, - _previous: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - 'add_liquidity(uint256[2],uint256)'( - _amounts: [PromiseOrValue, PromiseOrValue], - _min_mint_amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'add_liquidity(uint256[2],uint256,address)'( - _amounts: [PromiseOrValue, PromiseOrValue], - _min_mint_amount: PromiseOrValue, - _receiver: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'get_dy(int128,int128,uint256)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - 'get_dy(int128,int128,uint256,uint256[2])'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - _balances: [PromiseOrValue, PromiseOrValue], - overrides?: CallOverrides, - ): Promise; - - 'get_dy_underlying(int128,int128,uint256)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - 'get_dy_underlying(int128,int128,uint256,uint256[2])'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - _balances: [PromiseOrValue, PromiseOrValue], - overrides?: CallOverrides, - ): Promise; - - 'exchange(int128,int128,uint256,uint256)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'exchange(int128,int128,uint256,uint256,address)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - _receiver: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'exchange_underlying(int128,int128,uint256,uint256)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'exchange_underlying(int128,int128,uint256,uint256,address)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - _receiver: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'remove_liquidity(uint256,uint256[2])'( - _burn_amount: PromiseOrValue, - _min_amounts: [PromiseOrValue, PromiseOrValue], - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'remove_liquidity(uint256,uint256[2],address)'( - _burn_amount: PromiseOrValue, - _min_amounts: [PromiseOrValue, PromiseOrValue], - _receiver: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'remove_liquidity_imbalance(uint256[2],uint256)'( - _amounts: [PromiseOrValue, PromiseOrValue], - _max_burn_amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'remove_liquidity_imbalance(uint256[2],uint256,address)'( - _amounts: [PromiseOrValue, PromiseOrValue], - _max_burn_amount: PromiseOrValue, - _receiver: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'calc_withdraw_one_coin(uint256,int128)'( - _burn_amount: PromiseOrValue, - i: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - 'calc_withdraw_one_coin(uint256,int128,bool)'( - _burn_amount: PromiseOrValue, - i: PromiseOrValue, - _previous: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - 'remove_liquidity_one_coin(uint256,int128,uint256)'( - _burn_amount: PromiseOrValue, - i: PromiseOrValue, - _min_received: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - 'remove_liquidity_one_coin(uint256,int128,uint256,address)'( - _burn_amount: PromiseOrValue, - i: PromiseOrValue, - _min_received: PromiseOrValue, - _receiver: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - ramp_A( - _future_A: PromiseOrValue, - _future_time: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - stop_ramp_A(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - admin_balances(i: PromiseOrValue, overrides?: CallOverrides): Promise; - - withdraw_admin_fees(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - admin(overrides?: CallOverrides): Promise; - - coins(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - balances(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - fee(overrides?: CallOverrides): Promise; - - block_timestamp_last(overrides?: CallOverrides): Promise; - - initial_A(overrides?: CallOverrides): Promise; - - future_A(overrides?: CallOverrides): Promise; - - initial_A_time(overrides?: CallOverrides): Promise; - - future_A_time(overrides?: CallOverrides): Promise; - - name(overrides?: CallOverrides): Promise; - - symbol(overrides?: CallOverrides): Promise; - - balanceOf(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - allowance( - arg0: PromiseOrValue, - arg1: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - }; -} diff --git a/src/apps/curve/contracts/ethers/CurveMinter.ts b/src/apps/curve/contracts/ethers/CurveMinter.ts deleted file mode 100644 index 40a2c6b00..000000000 --- a/src/apps/curve/contracts/ethers/CurveMinter.ts +++ /dev/null @@ -1,278 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PopulatedTransaction, - Signer, - utils, -} from 'ethers'; -import type { FunctionFragment, Result, EventFragment } from '@ethersproject/abi'; -import type { Listener, Provider } from '@ethersproject/providers'; -import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from './common'; - -export interface CurveMinterInterface extends utils.Interface { - functions: { - 'mint(address)': FunctionFragment; - 'mint_many(address[8])': FunctionFragment; - 'mint_for(address,address)': FunctionFragment; - 'toggle_approve_mint(address)': FunctionFragment; - 'token()': FunctionFragment; - 'controller()': FunctionFragment; - 'minted(address,address)': FunctionFragment; - 'allowed_to_mint_for(address,address)': FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | 'mint' - | 'mint_many' - | 'mint_for' - | 'toggle_approve_mint' - | 'token' - | 'controller' - | 'minted' - | 'allowed_to_mint_for', - ): FunctionFragment; - - encodeFunctionData(functionFragment: 'mint', values: [PromiseOrValue]): string; - encodeFunctionData(functionFragment: 'mint_many', values: [PromiseOrValue[]]): string; - encodeFunctionData(functionFragment: 'mint_for', values: [PromiseOrValue, PromiseOrValue]): string; - encodeFunctionData(functionFragment: 'toggle_approve_mint', values: [PromiseOrValue]): string; - encodeFunctionData(functionFragment: 'token', values?: undefined): string; - encodeFunctionData(functionFragment: 'controller', values?: undefined): string; - encodeFunctionData(functionFragment: 'minted', values: [PromiseOrValue, PromiseOrValue]): string; - encodeFunctionData( - functionFragment: 'allowed_to_mint_for', - values: [PromiseOrValue, PromiseOrValue], - ): string; - - decodeFunctionResult(functionFragment: 'mint', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'mint_many', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'mint_for', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'toggle_approve_mint', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'token', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'controller', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'minted', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'allowed_to_mint_for', data: BytesLike): Result; - - events: { - 'Minted(address,address,uint256)': EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: 'Minted'): EventFragment; -} - -export interface MintedEventObject { - recipient: string; - gauge: string; - minted: BigNumber; -} -export type MintedEvent = TypedEvent<[string, string, BigNumber], MintedEventObject>; - -export type MintedEventFilter = TypedEventFilter; - -export interface CurveMinter extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: CurveMinterInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined, - ): Promise>; - - listeners(eventFilter?: TypedEventFilter): Array>; - listeners(eventName?: string): Array; - removeAllListeners(eventFilter: TypedEventFilter): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - mint( - gauge_addr: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - mint_many( - gauge_addrs: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - mint_for( - gauge_addr: PromiseOrValue, - _for: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - toggle_approve_mint( - minting_user: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - token(overrides?: CallOverrides): Promise<[string]>; - - controller(overrides?: CallOverrides): Promise<[string]>; - - minted(arg0: PromiseOrValue, arg1: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber]>; - - allowed_to_mint_for( - arg0: PromiseOrValue, - arg1: PromiseOrValue, - overrides?: CallOverrides, - ): Promise<[boolean]>; - }; - - mint( - gauge_addr: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - mint_many( - gauge_addrs: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - mint_for( - gauge_addr: PromiseOrValue, - _for: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - toggle_approve_mint( - minting_user: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - token(overrides?: CallOverrides): Promise; - - controller(overrides?: CallOverrides): Promise; - - minted(arg0: PromiseOrValue, arg1: PromiseOrValue, overrides?: CallOverrides): Promise; - - allowed_to_mint_for( - arg0: PromiseOrValue, - arg1: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - callStatic: { - mint(gauge_addr: PromiseOrValue, overrides?: CallOverrides): Promise; - - mint_many(gauge_addrs: PromiseOrValue[], overrides?: CallOverrides): Promise; - - mint_for( - gauge_addr: PromiseOrValue, - _for: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - toggle_approve_mint(minting_user: PromiseOrValue, overrides?: CallOverrides): Promise; - - token(overrides?: CallOverrides): Promise; - - controller(overrides?: CallOverrides): Promise; - - minted(arg0: PromiseOrValue, arg1: PromiseOrValue, overrides?: CallOverrides): Promise; - - allowed_to_mint_for( - arg0: PromiseOrValue, - arg1: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - }; - - filters: { - 'Minted(address,address,uint256)'( - recipient?: PromiseOrValue | null, - gauge?: null, - minted?: null, - ): MintedEventFilter; - Minted(recipient?: PromiseOrValue | null, gauge?: null, minted?: null): MintedEventFilter; - }; - - estimateGas: { - mint( - gauge_addr: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - mint_many( - gauge_addrs: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - mint_for( - gauge_addr: PromiseOrValue, - _for: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - toggle_approve_mint( - minting_user: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - token(overrides?: CallOverrides): Promise; - - controller(overrides?: CallOverrides): Promise; - - minted(arg0: PromiseOrValue, arg1: PromiseOrValue, overrides?: CallOverrides): Promise; - - allowed_to_mint_for( - arg0: PromiseOrValue, - arg1: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - }; - - populateTransaction: { - mint( - gauge_addr: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - mint_many( - gauge_addrs: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - mint_for( - gauge_addr: PromiseOrValue, - _for: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - toggle_approve_mint( - minting_user: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - token(overrides?: CallOverrides): Promise; - - controller(overrides?: CallOverrides): Promise; - - minted( - arg0: PromiseOrValue, - arg1: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - allowed_to_mint_for( - arg0: PromiseOrValue, - arg1: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - }; -} diff --git a/src/apps/curve/contracts/ethers/CurveMultiRewardStream.ts b/src/apps/curve/contracts/ethers/CurveMultiRewardStream.ts deleted file mode 100644 index 9d04bebe1..000000000 --- a/src/apps/curve/contracts/ethers/CurveMultiRewardStream.ts +++ /dev/null @@ -1,446 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PopulatedTransaction, - Signer, - utils, -} from 'ethers'; -import type { FunctionFragment, Result } from '@ethersproject/abi'; -import type { Listener, Provider } from '@ethersproject/providers'; -import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from './common'; - -export interface CurveMultiRewardStreamInterface extends utils.Interface { - functions: { - 'add_reward(address,address,uint256)': FunctionFragment; - 'remove_reward(address)': FunctionFragment; - 'set_receiver(address)': FunctionFragment; - 'get_reward()': FunctionFragment; - 'notify_reward_amount(address)': FunctionFragment; - 'set_reward_duration(address,uint256)': FunctionFragment; - 'set_reward_distributor(address,address)': FunctionFragment; - 'commit_transfer_ownership(address)': FunctionFragment; - 'accept_transfer_ownership()': FunctionFragment; - 'owner()': FunctionFragment; - 'future_owner()': FunctionFragment; - 'reward_receiver()': FunctionFragment; - 'reward_tokens(uint256)': FunctionFragment; - 'reward_count()': FunctionFragment; - 'reward_data(address)': FunctionFragment; - 'last_update_time()': FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | 'add_reward' - | 'remove_reward' - | 'set_receiver' - | 'get_reward' - | 'notify_reward_amount' - | 'set_reward_duration' - | 'set_reward_distributor' - | 'commit_transfer_ownership' - | 'accept_transfer_ownership' - | 'owner' - | 'future_owner' - | 'reward_receiver' - | 'reward_tokens' - | 'reward_count' - | 'reward_data' - | 'last_update_time', - ): FunctionFragment; - - encodeFunctionData( - functionFragment: 'add_reward', - values: [PromiseOrValue, PromiseOrValue, PromiseOrValue], - ): string; - encodeFunctionData(functionFragment: 'remove_reward', values: [PromiseOrValue]): string; - encodeFunctionData(functionFragment: 'set_receiver', values: [PromiseOrValue]): string; - encodeFunctionData(functionFragment: 'get_reward', values?: undefined): string; - encodeFunctionData(functionFragment: 'notify_reward_amount', values: [PromiseOrValue]): string; - encodeFunctionData( - functionFragment: 'set_reward_duration', - values: [PromiseOrValue, PromiseOrValue], - ): string; - encodeFunctionData( - functionFragment: 'set_reward_distributor', - values: [PromiseOrValue, PromiseOrValue], - ): string; - encodeFunctionData(functionFragment: 'commit_transfer_ownership', values: [PromiseOrValue]): string; - encodeFunctionData(functionFragment: 'accept_transfer_ownership', values?: undefined): string; - encodeFunctionData(functionFragment: 'owner', values?: undefined): string; - encodeFunctionData(functionFragment: 'future_owner', values?: undefined): string; - encodeFunctionData(functionFragment: 'reward_receiver', values?: undefined): string; - encodeFunctionData(functionFragment: 'reward_tokens', values: [PromiseOrValue]): string; - encodeFunctionData(functionFragment: 'reward_count', values?: undefined): string; - encodeFunctionData(functionFragment: 'reward_data', values: [PromiseOrValue]): string; - encodeFunctionData(functionFragment: 'last_update_time', values?: undefined): string; - - decodeFunctionResult(functionFragment: 'add_reward', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'remove_reward', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'set_receiver', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'get_reward', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'notify_reward_amount', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'set_reward_duration', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'set_reward_distributor', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'commit_transfer_ownership', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'accept_transfer_ownership', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'owner', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'future_owner', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'reward_receiver', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'reward_tokens', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'reward_count', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'reward_data', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'last_update_time', data: BytesLike): Result; - - events: {}; -} - -export interface CurveMultiRewardStream extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: CurveMultiRewardStreamInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined, - ): Promise>; - - listeners(eventFilter?: TypedEventFilter): Array>; - listeners(eventName?: string): Array; - removeAllListeners(eventFilter: TypedEventFilter): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - add_reward( - _token: PromiseOrValue, - _distributor: PromiseOrValue, - _duration: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - remove_reward( - _token: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - set_receiver( - _receiver: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - get_reward(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - notify_reward_amount( - _token: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - set_reward_duration( - _token: PromiseOrValue, - _duration: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - set_reward_distributor( - _token: PromiseOrValue, - _distributor: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - commit_transfer_ownership( - _owner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - accept_transfer_ownership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - owner(overrides?: CallOverrides): Promise<[string]>; - - future_owner(overrides?: CallOverrides): Promise<[string]>; - - reward_receiver(overrides?: CallOverrides): Promise<[string]>; - - reward_tokens(arg0: PromiseOrValue, overrides?: CallOverrides): Promise<[string]>; - - reward_count(overrides?: CallOverrides): Promise<[BigNumber]>; - - reward_data( - arg0: PromiseOrValue, - overrides?: CallOverrides, - ): Promise< - [string, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber] & { - distributor: string; - period_finish: BigNumber; - rate: BigNumber; - duration: BigNumber; - received: BigNumber; - paid: BigNumber; - } - >; - - last_update_time(overrides?: CallOverrides): Promise<[BigNumber]>; - }; - - add_reward( - _token: PromiseOrValue, - _distributor: PromiseOrValue, - _duration: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - remove_reward( - _token: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - set_receiver( - _receiver: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - get_reward(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - notify_reward_amount( - _token: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - set_reward_duration( - _token: PromiseOrValue, - _duration: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - set_reward_distributor( - _token: PromiseOrValue, - _distributor: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - commit_transfer_ownership( - _owner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - accept_transfer_ownership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - owner(overrides?: CallOverrides): Promise; - - future_owner(overrides?: CallOverrides): Promise; - - reward_receiver(overrides?: CallOverrides): Promise; - - reward_tokens(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - reward_count(overrides?: CallOverrides): Promise; - - reward_data( - arg0: PromiseOrValue, - overrides?: CallOverrides, - ): Promise< - [string, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber] & { - distributor: string; - period_finish: BigNumber; - rate: BigNumber; - duration: BigNumber; - received: BigNumber; - paid: BigNumber; - } - >; - - last_update_time(overrides?: CallOverrides): Promise; - - callStatic: { - add_reward( - _token: PromiseOrValue, - _distributor: PromiseOrValue, - _duration: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - remove_reward(_token: PromiseOrValue, overrides?: CallOverrides): Promise; - - set_receiver(_receiver: PromiseOrValue, overrides?: CallOverrides): Promise; - - get_reward(overrides?: CallOverrides): Promise; - - notify_reward_amount(_token: PromiseOrValue, overrides?: CallOverrides): Promise; - - set_reward_duration( - _token: PromiseOrValue, - _duration: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - set_reward_distributor( - _token: PromiseOrValue, - _distributor: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - commit_transfer_ownership(_owner: PromiseOrValue, overrides?: CallOverrides): Promise; - - accept_transfer_ownership(overrides?: CallOverrides): Promise; - - owner(overrides?: CallOverrides): Promise; - - future_owner(overrides?: CallOverrides): Promise; - - reward_receiver(overrides?: CallOverrides): Promise; - - reward_tokens(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - reward_count(overrides?: CallOverrides): Promise; - - reward_data( - arg0: PromiseOrValue, - overrides?: CallOverrides, - ): Promise< - [string, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber] & { - distributor: string; - period_finish: BigNumber; - rate: BigNumber; - duration: BigNumber; - received: BigNumber; - paid: BigNumber; - } - >; - - last_update_time(overrides?: CallOverrides): Promise; - }; - - filters: {}; - - estimateGas: { - add_reward( - _token: PromiseOrValue, - _distributor: PromiseOrValue, - _duration: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - remove_reward( - _token: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - set_receiver( - _receiver: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - get_reward(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - notify_reward_amount( - _token: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - set_reward_duration( - _token: PromiseOrValue, - _duration: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - set_reward_distributor( - _token: PromiseOrValue, - _distributor: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - commit_transfer_ownership( - _owner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - accept_transfer_ownership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - owner(overrides?: CallOverrides): Promise; - - future_owner(overrides?: CallOverrides): Promise; - - reward_receiver(overrides?: CallOverrides): Promise; - - reward_tokens(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - reward_count(overrides?: CallOverrides): Promise; - - reward_data(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - last_update_time(overrides?: CallOverrides): Promise; - }; - - populateTransaction: { - add_reward( - _token: PromiseOrValue, - _distributor: PromiseOrValue, - _duration: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - remove_reward( - _token: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - set_receiver( - _receiver: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - get_reward(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - notify_reward_amount( - _token: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - set_reward_duration( - _token: PromiseOrValue, - _duration: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - set_reward_distributor( - _token: PromiseOrValue, - _distributor: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - commit_transfer_ownership( - _owner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - accept_transfer_ownership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - owner(overrides?: CallOverrides): Promise; - - future_owner(overrides?: CallOverrides): Promise; - - reward_receiver(overrides?: CallOverrides): Promise; - - reward_tokens(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - reward_count(overrides?: CallOverrides): Promise; - - reward_data(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - last_update_time(overrides?: CallOverrides): Promise; - }; -} diff --git a/src/apps/curve/contracts/ethers/CurvePassthroughRewards.ts b/src/apps/curve/contracts/ethers/CurvePassthroughRewards.ts deleted file mode 100644 index a5e9ba586..000000000 --- a/src/apps/curve/contracts/ethers/CurvePassthroughRewards.ts +++ /dev/null @@ -1,225 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PopulatedTransaction, - Signer, - utils, -} from 'ethers'; -import type { FunctionFragment, Result } from '@ethersproject/abi'; -import type { Listener, Provider } from '@ethersproject/providers'; -import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from './common'; - -export interface CurvePassthroughRewardsInterface extends utils.Interface { - functions: { - 'get_reward()': FunctionFragment; - 'set_reward_data(uint256,address,address)': FunctionFragment; - 'commit_transfer_ownership(address)': FunctionFragment; - 'accept_transfer_ownership()': FunctionFragment; - 'owner()': FunctionFragment; - 'future_owner()': FunctionFragment; - 'reward_receiver()': FunctionFragment; - 'reward_data(uint256)': FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | 'get_reward' - | 'set_reward_data' - | 'commit_transfer_ownership' - | 'accept_transfer_ownership' - | 'owner' - | 'future_owner' - | 'reward_receiver' - | 'reward_data', - ): FunctionFragment; - - encodeFunctionData(functionFragment: 'get_reward', values?: undefined): string; - encodeFunctionData( - functionFragment: 'set_reward_data', - values: [PromiseOrValue, PromiseOrValue, PromiseOrValue], - ): string; - encodeFunctionData(functionFragment: 'commit_transfer_ownership', values: [PromiseOrValue]): string; - encodeFunctionData(functionFragment: 'accept_transfer_ownership', values?: undefined): string; - encodeFunctionData(functionFragment: 'owner', values?: undefined): string; - encodeFunctionData(functionFragment: 'future_owner', values?: undefined): string; - encodeFunctionData(functionFragment: 'reward_receiver', values?: undefined): string; - encodeFunctionData(functionFragment: 'reward_data', values: [PromiseOrValue]): string; - - decodeFunctionResult(functionFragment: 'get_reward', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'set_reward_data', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'commit_transfer_ownership', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'accept_transfer_ownership', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'owner', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'future_owner', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'reward_receiver', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'reward_data', data: BytesLike): Result; - - events: {}; -} - -export interface CurvePassthroughRewards extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: CurvePassthroughRewardsInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined, - ): Promise>; - - listeners(eventFilter?: TypedEventFilter): Array>; - listeners(eventName?: string): Array; - removeAllListeners(eventFilter: TypedEventFilter): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - get_reward(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - set_reward_data( - _idx: PromiseOrValue, - _claim: PromiseOrValue, - _reward: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - commit_transfer_ownership( - _owner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - accept_transfer_ownership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - owner(overrides?: CallOverrides): Promise<[string]>; - - future_owner(overrides?: CallOverrides): Promise<[string]>; - - reward_receiver(overrides?: CallOverrides): Promise<[string]>; - - reward_data( - arg0: PromiseOrValue, - overrides?: CallOverrides, - ): Promise<[string, string] & { claim: string; reward: string }>; - }; - - get_reward(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - set_reward_data( - _idx: PromiseOrValue, - _claim: PromiseOrValue, - _reward: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - commit_transfer_ownership( - _owner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - accept_transfer_ownership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - owner(overrides?: CallOverrides): Promise; - - future_owner(overrides?: CallOverrides): Promise; - - reward_receiver(overrides?: CallOverrides): Promise; - - reward_data( - arg0: PromiseOrValue, - overrides?: CallOverrides, - ): Promise<[string, string] & { claim: string; reward: string }>; - - callStatic: { - get_reward(overrides?: CallOverrides): Promise; - - set_reward_data( - _idx: PromiseOrValue, - _claim: PromiseOrValue, - _reward: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - commit_transfer_ownership(_owner: PromiseOrValue, overrides?: CallOverrides): Promise; - - accept_transfer_ownership(overrides?: CallOverrides): Promise; - - owner(overrides?: CallOverrides): Promise; - - future_owner(overrides?: CallOverrides): Promise; - - reward_receiver(overrides?: CallOverrides): Promise; - - reward_data( - arg0: PromiseOrValue, - overrides?: CallOverrides, - ): Promise<[string, string] & { claim: string; reward: string }>; - }; - - filters: {}; - - estimateGas: { - get_reward(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - set_reward_data( - _idx: PromiseOrValue, - _claim: PromiseOrValue, - _reward: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - commit_transfer_ownership( - _owner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - accept_transfer_ownership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - owner(overrides?: CallOverrides): Promise; - - future_owner(overrides?: CallOverrides): Promise; - - reward_receiver(overrides?: CallOverrides): Promise; - - reward_data(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - }; - - populateTransaction: { - get_reward(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - set_reward_data( - _idx: PromiseOrValue, - _claim: PromiseOrValue, - _reward: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - commit_transfer_ownership( - _owner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - accept_transfer_ownership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - owner(overrides?: CallOverrides): Promise; - - future_owner(overrides?: CallOverrides): Promise; - - reward_receiver(overrides?: CallOverrides): Promise; - - reward_data(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - }; -} diff --git a/src/apps/curve/contracts/ethers/CurveV1Pool.ts b/src/apps/curve/contracts/ethers/CurvePool.ts similarity index 99% rename from src/apps/curve/contracts/ethers/CurveV1Pool.ts rename to src/apps/curve/contracts/ethers/CurvePool.ts index b3e965159..24f604ce6 100644 --- a/src/apps/curve/contracts/ethers/CurveV1Pool.ts +++ b/src/apps/curve/contracts/ethers/CurvePool.ts @@ -17,7 +17,7 @@ import type { FunctionFragment, Result, EventFragment } from '@ethersproject/abi import type { Listener, Provider } from '@ethersproject/providers'; import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from './common'; -export interface CurveV1PoolInterface extends utils.Interface { +export interface CurvePoolInterface extends utils.Interface { functions: { 'A()': FunctionFragment; 'get_virtual_price()': FunctionFragment; @@ -370,12 +370,12 @@ export type StopRampAEvent = TypedEvent<[BigNumber, BigNumber], StopRampAEventOb export type StopRampAEventFilter = TypedEventFilter; -export interface CurveV1Pool extends BaseContract { +export interface CurvePool extends BaseContract { connect(signerOrProvider: Signer | Provider | string): this; attach(addressOrName: string): this; deployed(): Promise; - interface: CurveV1PoolInterface; + interface: CurvePoolInterface; queryFilter( event: TypedEventFilter, diff --git a/src/apps/curve/contracts/ethers/CurveToken.ts b/src/apps/curve/contracts/ethers/CurvePoolLegacy.ts similarity index 99% rename from src/apps/curve/contracts/ethers/CurveToken.ts rename to src/apps/curve/contracts/ethers/CurvePoolLegacy.ts index 64d0dc057..745cbbc0a 100644 --- a/src/apps/curve/contracts/ethers/CurveToken.ts +++ b/src/apps/curve/contracts/ethers/CurvePoolLegacy.ts @@ -17,7 +17,7 @@ import type { FunctionFragment, Result, EventFragment } from '@ethersproject/abi import type { Listener, Provider } from '@ethersproject/providers'; import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from './common'; -export interface CurveTokenInterface extends utils.Interface { +export interface CurvePoolLegacyInterface extends utils.Interface { functions: { 'get_virtual_price()': FunctionFragment; 'calc_token_amount(uint256[4],bool)': FunctionFragment; @@ -375,12 +375,12 @@ export type NewParametersEvent = TypedEvent<[BigNumber, BigNumber, BigNumber], N export type NewParametersEventFilter = TypedEventFilter; -export interface CurveToken extends BaseContract { +export interface CurvePoolLegacy extends BaseContract { connect(signerOrProvider: Signer | Provider | string): this; attach(addressOrName: string): this; deployed(): Promise; - interface: CurveTokenInterface; + interface: CurvePoolLegacyInterface; queryFilter( event: TypedEventFilter, diff --git a/src/apps/curve/contracts/ethers/CurveSingleRewardStream.ts b/src/apps/curve/contracts/ethers/CurveSingleRewardStream.ts deleted file mode 100644 index 3324a4dee..000000000 --- a/src/apps/curve/contracts/ethers/CurveSingleRewardStream.ts +++ /dev/null @@ -1,402 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PopulatedTransaction, - Signer, - utils, -} from 'ethers'; -import type { FunctionFragment, Result } from '@ethersproject/abi'; -import type { Listener, Provider } from '@ethersproject/providers'; -import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from './common'; - -export interface CurveSingleRewardStreamInterface extends utils.Interface { - functions: { - 'add_receiver(address)': FunctionFragment; - 'remove_receiver(address)': FunctionFragment; - 'get_reward()': FunctionFragment; - 'notify_reward_amount(uint256)': FunctionFragment; - 'set_reward_duration(uint256)': FunctionFragment; - 'set_reward_distributor(address)': FunctionFragment; - 'commit_transfer_ownership(address)': FunctionFragment; - 'accept_transfer_ownership()': FunctionFragment; - 'owner()': FunctionFragment; - 'future_owner()': FunctionFragment; - 'distributor()': FunctionFragment; - 'reward_token()': FunctionFragment; - 'period_finish()': FunctionFragment; - 'reward_rate()': FunctionFragment; - 'reward_duration()': FunctionFragment; - 'last_update_time()': FunctionFragment; - 'reward_per_receiver_total()': FunctionFragment; - 'receiver_count()': FunctionFragment; - 'reward_receivers(address)': FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | 'add_receiver' - | 'remove_receiver' - | 'get_reward' - | 'notify_reward_amount' - | 'set_reward_duration' - | 'set_reward_distributor' - | 'commit_transfer_ownership' - | 'accept_transfer_ownership' - | 'owner' - | 'future_owner' - | 'distributor' - | 'reward_token' - | 'period_finish' - | 'reward_rate' - | 'reward_duration' - | 'last_update_time' - | 'reward_per_receiver_total' - | 'receiver_count' - | 'reward_receivers', - ): FunctionFragment; - - encodeFunctionData(functionFragment: 'add_receiver', values: [PromiseOrValue]): string; - encodeFunctionData(functionFragment: 'remove_receiver', values: [PromiseOrValue]): string; - encodeFunctionData(functionFragment: 'get_reward', values?: undefined): string; - encodeFunctionData(functionFragment: 'notify_reward_amount', values: [PromiseOrValue]): string; - encodeFunctionData(functionFragment: 'set_reward_duration', values: [PromiseOrValue]): string; - encodeFunctionData(functionFragment: 'set_reward_distributor', values: [PromiseOrValue]): string; - encodeFunctionData(functionFragment: 'commit_transfer_ownership', values: [PromiseOrValue]): string; - encodeFunctionData(functionFragment: 'accept_transfer_ownership', values?: undefined): string; - encodeFunctionData(functionFragment: 'owner', values?: undefined): string; - encodeFunctionData(functionFragment: 'future_owner', values?: undefined): string; - encodeFunctionData(functionFragment: 'distributor', values?: undefined): string; - encodeFunctionData(functionFragment: 'reward_token', values?: undefined): string; - encodeFunctionData(functionFragment: 'period_finish', values?: undefined): string; - encodeFunctionData(functionFragment: 'reward_rate', values?: undefined): string; - encodeFunctionData(functionFragment: 'reward_duration', values?: undefined): string; - encodeFunctionData(functionFragment: 'last_update_time', values?: undefined): string; - encodeFunctionData(functionFragment: 'reward_per_receiver_total', values?: undefined): string; - encodeFunctionData(functionFragment: 'receiver_count', values?: undefined): string; - encodeFunctionData(functionFragment: 'reward_receivers', values: [PromiseOrValue]): string; - - decodeFunctionResult(functionFragment: 'add_receiver', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'remove_receiver', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'get_reward', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'notify_reward_amount', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'set_reward_duration', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'set_reward_distributor', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'commit_transfer_ownership', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'accept_transfer_ownership', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'owner', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'future_owner', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'distributor', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'reward_token', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'period_finish', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'reward_rate', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'reward_duration', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'last_update_time', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'reward_per_receiver_total', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'receiver_count', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'reward_receivers', data: BytesLike): Result; - - events: {}; -} - -export interface CurveSingleRewardStream extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: CurveSingleRewardStreamInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined, - ): Promise>; - - listeners(eventFilter?: TypedEventFilter): Array>; - listeners(eventName?: string): Array; - removeAllListeners(eventFilter: TypedEventFilter): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - add_receiver( - _receiver: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - remove_receiver( - _receiver: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - get_reward(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - notify_reward_amount( - _amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - set_reward_duration( - _duration: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - set_reward_distributor( - _distributor: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - commit_transfer_ownership( - _owner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - accept_transfer_ownership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - owner(overrides?: CallOverrides): Promise<[string]>; - - future_owner(overrides?: CallOverrides): Promise<[string]>; - - distributor(overrides?: CallOverrides): Promise<[string]>; - - reward_token(overrides?: CallOverrides): Promise<[string]>; - - period_finish(overrides?: CallOverrides): Promise<[BigNumber]>; - - reward_rate(overrides?: CallOverrides): Promise<[BigNumber]>; - - reward_duration(overrides?: CallOverrides): Promise<[BigNumber]>; - - last_update_time(overrides?: CallOverrides): Promise<[BigNumber]>; - - reward_per_receiver_total(overrides?: CallOverrides): Promise<[BigNumber]>; - - receiver_count(overrides?: CallOverrides): Promise<[BigNumber]>; - - reward_receivers(arg0: PromiseOrValue, overrides?: CallOverrides): Promise<[boolean]>; - }; - - add_receiver( - _receiver: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - remove_receiver( - _receiver: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - get_reward(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - notify_reward_amount( - _amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - set_reward_duration( - _duration: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - set_reward_distributor( - _distributor: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - commit_transfer_ownership( - _owner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - accept_transfer_ownership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - owner(overrides?: CallOverrides): Promise; - - future_owner(overrides?: CallOverrides): Promise; - - distributor(overrides?: CallOverrides): Promise; - - reward_token(overrides?: CallOverrides): Promise; - - period_finish(overrides?: CallOverrides): Promise; - - reward_rate(overrides?: CallOverrides): Promise; - - reward_duration(overrides?: CallOverrides): Promise; - - last_update_time(overrides?: CallOverrides): Promise; - - reward_per_receiver_total(overrides?: CallOverrides): Promise; - - receiver_count(overrides?: CallOverrides): Promise; - - reward_receivers(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - callStatic: { - add_receiver(_receiver: PromiseOrValue, overrides?: CallOverrides): Promise; - - remove_receiver(_receiver: PromiseOrValue, overrides?: CallOverrides): Promise; - - get_reward(overrides?: CallOverrides): Promise; - - notify_reward_amount(_amount: PromiseOrValue, overrides?: CallOverrides): Promise; - - set_reward_duration(_duration: PromiseOrValue, overrides?: CallOverrides): Promise; - - set_reward_distributor(_distributor: PromiseOrValue, overrides?: CallOverrides): Promise; - - commit_transfer_ownership(_owner: PromiseOrValue, overrides?: CallOverrides): Promise; - - accept_transfer_ownership(overrides?: CallOverrides): Promise; - - owner(overrides?: CallOverrides): Promise; - - future_owner(overrides?: CallOverrides): Promise; - - distributor(overrides?: CallOverrides): Promise; - - reward_token(overrides?: CallOverrides): Promise; - - period_finish(overrides?: CallOverrides): Promise; - - reward_rate(overrides?: CallOverrides): Promise; - - reward_duration(overrides?: CallOverrides): Promise; - - last_update_time(overrides?: CallOverrides): Promise; - - reward_per_receiver_total(overrides?: CallOverrides): Promise; - - receiver_count(overrides?: CallOverrides): Promise; - - reward_receivers(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - }; - - filters: {}; - - estimateGas: { - add_receiver( - _receiver: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - remove_receiver( - _receiver: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - get_reward(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - notify_reward_amount( - _amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - set_reward_duration( - _duration: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - set_reward_distributor( - _distributor: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - commit_transfer_ownership( - _owner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - accept_transfer_ownership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - owner(overrides?: CallOverrides): Promise; - - future_owner(overrides?: CallOverrides): Promise; - - distributor(overrides?: CallOverrides): Promise; - - reward_token(overrides?: CallOverrides): Promise; - - period_finish(overrides?: CallOverrides): Promise; - - reward_rate(overrides?: CallOverrides): Promise; - - reward_duration(overrides?: CallOverrides): Promise; - - last_update_time(overrides?: CallOverrides): Promise; - - reward_per_receiver_total(overrides?: CallOverrides): Promise; - - receiver_count(overrides?: CallOverrides): Promise; - - reward_receivers(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - }; - - populateTransaction: { - add_receiver( - _receiver: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - remove_receiver( - _receiver: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - get_reward(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - notify_reward_amount( - _amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - set_reward_duration( - _duration: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - set_reward_distributor( - _distributor: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - commit_transfer_ownership( - _owner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - accept_transfer_ownership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - owner(overrides?: CallOverrides): Promise; - - future_owner(overrides?: CallOverrides): Promise; - - distributor(overrides?: CallOverrides): Promise; - - reward_token(overrides?: CallOverrides): Promise; - - period_finish(overrides?: CallOverrides): Promise; - - reward_rate(overrides?: CallOverrides): Promise; - - reward_duration(overrides?: CallOverrides): Promise; - - last_update_time(overrides?: CallOverrides): Promise; - - reward_per_receiver_total(overrides?: CallOverrides): Promise; - - receiver_count(overrides?: CallOverrides): Promise; - - reward_receivers(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - }; -} diff --git a/src/apps/curve/contracts/ethers/CurveFactoryV2.ts b/src/apps/curve/contracts/ethers/CurveStableFactory.ts similarity index 99% rename from src/apps/curve/contracts/ethers/CurveFactoryV2.ts rename to src/apps/curve/contracts/ethers/CurveStableFactory.ts index 291260108..5143b9667 100644 --- a/src/apps/curve/contracts/ethers/CurveFactoryV2.ts +++ b/src/apps/curve/contracts/ethers/CurveStableFactory.ts @@ -17,7 +17,7 @@ import type { FunctionFragment, Result, EventFragment } from '@ethersproject/abi import type { Listener, Provider } from '@ethersproject/providers'; import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from './common'; -export interface CurveFactoryV2Interface extends utils.Interface { +export interface CurveStableFactoryInterface extends utils.Interface { functions: { 'metapool_implementations(address)': FunctionFragment; 'find_pool_for_coins(address,address)': FunctionFragment; @@ -371,12 +371,12 @@ export type LiquidityGaugeDeployedEvent = TypedEvent<[string, string], Liquidity export type LiquidityGaugeDeployedEventFilter = TypedEventFilter; -export interface CurveFactoryV2 extends BaseContract { +export interface CurveStableFactory extends BaseContract { connect(signerOrProvider: Signer | Provider | string): this; attach(addressOrName: string): this; deployed(): Promise; - interface: CurveFactoryV2Interface; + interface: CurveStableFactoryInterface; queryFilter( event: TypedEventFilter, diff --git a/src/apps/curve/contracts/ethers/CurveStableRegistry.ts b/src/apps/curve/contracts/ethers/CurveStableRegistry.ts new file mode 100644 index 000000000..e159b018b --- /dev/null +++ b/src/apps/curve/contracts/ethers/CurveStableRegistry.ts @@ -0,0 +1,1335 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumber, + BigNumberish, + BytesLike, + CallOverrides, + ContractTransaction, + Overrides, + PopulatedTransaction, + Signer, + utils, +} from 'ethers'; +import type { FunctionFragment, Result, EventFragment } from '@ethersproject/abi'; +import type { Listener, Provider } from '@ethersproject/providers'; +import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from './common'; + +export interface CurveStableRegistryInterface extends utils.Interface { + functions: { + 'find_pool_for_coins(address,address)': FunctionFragment; + 'find_pool_for_coins(address,address,uint256)': FunctionFragment; + 'get_n_coins(address)': FunctionFragment; + 'get_coins(address)': FunctionFragment; + 'get_underlying_coins(address)': FunctionFragment; + 'get_decimals(address)': FunctionFragment; + 'get_underlying_decimals(address)': FunctionFragment; + 'get_rates(address)': FunctionFragment; + 'get_gauges(address)': FunctionFragment; + 'get_balances(address)': FunctionFragment; + 'get_underlying_balances(address)': FunctionFragment; + 'get_virtual_price_from_lp_token(address)': FunctionFragment; + 'get_A(address)': FunctionFragment; + 'get_parameters(address)': FunctionFragment; + 'get_fees(address)': FunctionFragment; + 'get_admin_balances(address)': FunctionFragment; + 'get_coin_indices(address,address,address)': FunctionFragment; + 'estimate_gas_used(address,address,address)': FunctionFragment; + 'is_meta(address)': FunctionFragment; + 'get_pool_name(address)': FunctionFragment; + 'get_coin_swap_count(address)': FunctionFragment; + 'get_coin_swap_complement(address,uint256)': FunctionFragment; + 'get_pool_asset_type(address)': FunctionFragment; + 'add_pool(address,uint256,address,bytes32,uint256,uint256,bool,bool,string)': FunctionFragment; + 'add_pool_without_underlying(address,uint256,address,bytes32,uint256,uint256,bool,bool,string)': FunctionFragment; + 'add_metapool(address,uint256,address,uint256,string)': FunctionFragment; + 'add_metapool(address,uint256,address,uint256,string,address)': FunctionFragment; + 'remove_pool(address)': FunctionFragment; + 'set_pool_gas_estimates(address[5],uint256[2][5])': FunctionFragment; + 'set_coin_gas_estimates(address[10],uint256[10])': FunctionFragment; + 'set_gas_estimate_contract(address,address)': FunctionFragment; + 'set_liquidity_gauges(address,address[10])': FunctionFragment; + 'set_pool_asset_type(address,uint256)': FunctionFragment; + 'batch_set_pool_asset_type(address[32],uint256[32])': FunctionFragment; + 'address_provider()': FunctionFragment; + 'gauge_controller()': FunctionFragment; + 'pool_list(uint256)': FunctionFragment; + 'pool_count()': FunctionFragment; + 'coin_count()': FunctionFragment; + 'get_coin(uint256)': FunctionFragment; + 'get_pool_from_lp_token(address)': FunctionFragment; + 'get_lp_token(address)': FunctionFragment; + 'last_updated()': FunctionFragment; + }; + + getFunction( + nameOrSignatureOrTopic: + | 'find_pool_for_coins(address,address)' + | 'find_pool_for_coins(address,address,uint256)' + | 'get_n_coins' + | 'get_coins' + | 'get_underlying_coins' + | 'get_decimals' + | 'get_underlying_decimals' + | 'get_rates' + | 'get_gauges' + | 'get_balances' + | 'get_underlying_balances' + | 'get_virtual_price_from_lp_token' + | 'get_A' + | 'get_parameters' + | 'get_fees' + | 'get_admin_balances' + | 'get_coin_indices' + | 'estimate_gas_used' + | 'is_meta' + | 'get_pool_name' + | 'get_coin_swap_count' + | 'get_coin_swap_complement' + | 'get_pool_asset_type' + | 'add_pool' + | 'add_pool_without_underlying' + | 'add_metapool(address,uint256,address,uint256,string)' + | 'add_metapool(address,uint256,address,uint256,string,address)' + | 'remove_pool' + | 'set_pool_gas_estimates' + | 'set_coin_gas_estimates' + | 'set_gas_estimate_contract' + | 'set_liquidity_gauges' + | 'set_pool_asset_type' + | 'batch_set_pool_asset_type' + | 'address_provider' + | 'gauge_controller' + | 'pool_list' + | 'pool_count' + | 'coin_count' + | 'get_coin' + | 'get_pool_from_lp_token' + | 'get_lp_token' + | 'last_updated', + ): FunctionFragment; + + encodeFunctionData( + functionFragment: 'find_pool_for_coins(address,address)', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData( + functionFragment: 'find_pool_for_coins(address,address,uint256)', + values: [PromiseOrValue, PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData(functionFragment: 'get_n_coins', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'get_coins', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'get_underlying_coins', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'get_decimals', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'get_underlying_decimals', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'get_rates', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'get_gauges', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'get_balances', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'get_underlying_balances', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'get_virtual_price_from_lp_token', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'get_A', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'get_parameters', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'get_fees', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'get_admin_balances', values: [PromiseOrValue]): string; + encodeFunctionData( + functionFragment: 'get_coin_indices', + values: [PromiseOrValue, PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData( + functionFragment: 'estimate_gas_used', + values: [PromiseOrValue, PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData(functionFragment: 'is_meta', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'get_pool_name', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'get_coin_swap_count', values: [PromiseOrValue]): string; + encodeFunctionData( + functionFragment: 'get_coin_swap_complement', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData(functionFragment: 'get_pool_asset_type', values: [PromiseOrValue]): string; + encodeFunctionData( + functionFragment: 'add_pool', + values: [ + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + ], + ): string; + encodeFunctionData( + functionFragment: 'add_pool_without_underlying', + values: [ + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + ], + ): string; + encodeFunctionData( + functionFragment: 'add_metapool(address,uint256,address,uint256,string)', + values: [ + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + ], + ): string; + encodeFunctionData( + functionFragment: 'add_metapool(address,uint256,address,uint256,string,address)', + values: [ + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + ], + ): string; + encodeFunctionData(functionFragment: 'remove_pool', values: [PromiseOrValue]): string; + encodeFunctionData( + functionFragment: 'set_pool_gas_estimates', + values: [ + [ + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + ], + [ + [PromiseOrValue, PromiseOrValue], + [PromiseOrValue, PromiseOrValue], + [PromiseOrValue, PromiseOrValue], + [PromiseOrValue, PromiseOrValue], + [PromiseOrValue, PromiseOrValue], + ], + ], + ): string; + encodeFunctionData( + functionFragment: 'set_coin_gas_estimates', + values: [PromiseOrValue[], PromiseOrValue[]], + ): string; + encodeFunctionData( + functionFragment: 'set_gas_estimate_contract', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData( + functionFragment: 'set_liquidity_gauges', + values: [PromiseOrValue, PromiseOrValue[]], + ): string; + encodeFunctionData( + functionFragment: 'set_pool_asset_type', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData( + functionFragment: 'batch_set_pool_asset_type', + values: [PromiseOrValue[], PromiseOrValue[]], + ): string; + encodeFunctionData(functionFragment: 'address_provider', values?: undefined): string; + encodeFunctionData(functionFragment: 'gauge_controller', values?: undefined): string; + encodeFunctionData(functionFragment: 'pool_list', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'pool_count', values?: undefined): string; + encodeFunctionData(functionFragment: 'coin_count', values?: undefined): string; + encodeFunctionData(functionFragment: 'get_coin', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'get_pool_from_lp_token', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'get_lp_token', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'last_updated', values?: undefined): string; + + decodeFunctionResult(functionFragment: 'find_pool_for_coins(address,address)', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'find_pool_for_coins(address,address,uint256)', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'get_n_coins', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'get_coins', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'get_underlying_coins', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'get_decimals', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'get_underlying_decimals', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'get_rates', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'get_gauges', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'get_balances', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'get_underlying_balances', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'get_virtual_price_from_lp_token', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'get_A', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'get_parameters', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'get_fees', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'get_admin_balances', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'get_coin_indices', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'estimate_gas_used', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'is_meta', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'get_pool_name', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'get_coin_swap_count', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'get_coin_swap_complement', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'get_pool_asset_type', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'add_pool', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'add_pool_without_underlying', data: BytesLike): Result; + decodeFunctionResult( + functionFragment: 'add_metapool(address,uint256,address,uint256,string)', + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: 'add_metapool(address,uint256,address,uint256,string,address)', + data: BytesLike, + ): Result; + decodeFunctionResult(functionFragment: 'remove_pool', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'set_pool_gas_estimates', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'set_coin_gas_estimates', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'set_gas_estimate_contract', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'set_liquidity_gauges', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'set_pool_asset_type', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'batch_set_pool_asset_type', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'address_provider', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'gauge_controller', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'pool_list', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'pool_count', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'coin_count', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'get_coin', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'get_pool_from_lp_token', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'get_lp_token', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'last_updated', data: BytesLike): Result; + + events: { + 'PoolAdded(address,bytes)': EventFragment; + 'PoolRemoved(address)': EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: 'PoolAdded'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'PoolRemoved'): EventFragment; +} + +export interface PoolAddedEventObject { + pool: string; + rate_method_id: string; +} +export type PoolAddedEvent = TypedEvent<[string, string], PoolAddedEventObject>; + +export type PoolAddedEventFilter = TypedEventFilter; + +export interface PoolRemovedEventObject { + pool: string; +} +export type PoolRemovedEvent = TypedEvent<[string], PoolRemovedEventObject>; + +export type PoolRemovedEventFilter = TypedEventFilter; + +export interface CurveStableRegistry extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + interface: CurveStableRegistryInterface; + + queryFilter( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined, + ): Promise>; + + listeners(eventFilter?: TypedEventFilter): Array>; + listeners(eventName?: string): Array; + removeAllListeners(eventFilter: TypedEventFilter): this; + removeAllListeners(eventName?: string): this; + off: OnEvent; + on: OnEvent; + once: OnEvent; + removeListener: OnEvent; + + functions: { + 'find_pool_for_coins(address,address)'( + _from: PromiseOrValue, + _to: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[string]>; + + 'find_pool_for_coins(address,address,uint256)'( + _from: PromiseOrValue, + _to: PromiseOrValue, + i: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[string]>; + + get_n_coins(_pool: PromiseOrValue, overrides?: CallOverrides): Promise<[[BigNumber, BigNumber]]>; + + get_coins(_pool: PromiseOrValue, overrides?: CallOverrides): Promise<[string[]]>; + + get_underlying_coins(_pool: PromiseOrValue, overrides?: CallOverrides): Promise<[string[]]>; + + get_decimals(_pool: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber[]]>; + + get_underlying_decimals(_pool: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber[]]>; + + get_rates(_pool: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber[]]>; + + get_gauges(_pool: PromiseOrValue, overrides?: CallOverrides): Promise<[string[], BigNumber[]]>; + + get_balances(_pool: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber[]]>; + + get_underlying_balances(_pool: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber[]]>; + + get_virtual_price_from_lp_token(_token: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber]>; + + get_A(_pool: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber]>; + + get_parameters( + _pool: PromiseOrValue, + overrides?: CallOverrides, + ): Promise< + [BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, string, BigNumber, BigNumber, BigNumber] & { + A: BigNumber; + future_A: BigNumber; + fee: BigNumber; + admin_fee: BigNumber; + future_fee: BigNumber; + future_admin_fee: BigNumber; + future_owner: string; + initial_A: BigNumber; + initial_A_time: BigNumber; + future_A_time: BigNumber; + } + >; + + get_fees(_pool: PromiseOrValue, overrides?: CallOverrides): Promise<[[BigNumber, BigNumber]]>; + + get_admin_balances(_pool: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber[]]>; + + get_coin_indices( + _pool: PromiseOrValue, + _from: PromiseOrValue, + _to: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[BigNumber, BigNumber, boolean]>; + + estimate_gas_used( + _pool: PromiseOrValue, + _from: PromiseOrValue, + _to: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[BigNumber]>; + + is_meta(_pool: PromiseOrValue, overrides?: CallOverrides): Promise<[boolean]>; + + get_pool_name(_pool: PromiseOrValue, overrides?: CallOverrides): Promise<[string]>; + + get_coin_swap_count(_coin: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber]>; + + get_coin_swap_complement( + _coin: PromiseOrValue, + _index: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[string]>; + + get_pool_asset_type(_pool: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber]>; + + add_pool( + _pool: PromiseOrValue, + _n_coins: PromiseOrValue, + _lp_token: PromiseOrValue, + _rate_info: PromiseOrValue, + _decimals: PromiseOrValue, + _underlying_decimals: PromiseOrValue, + _has_initial_A: PromiseOrValue, + _is_v1: PromiseOrValue, + _name: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + add_pool_without_underlying( + _pool: PromiseOrValue, + _n_coins: PromiseOrValue, + _lp_token: PromiseOrValue, + _rate_info: PromiseOrValue, + _decimals: PromiseOrValue, + _use_rates: PromiseOrValue, + _has_initial_A: PromiseOrValue, + _is_v1: PromiseOrValue, + _name: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + 'add_metapool(address,uint256,address,uint256,string)'( + _pool: PromiseOrValue, + _n_coins: PromiseOrValue, + _lp_token: PromiseOrValue, + _decimals: PromiseOrValue, + _name: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + 'add_metapool(address,uint256,address,uint256,string,address)'( + _pool: PromiseOrValue, + _n_coins: PromiseOrValue, + _lp_token: PromiseOrValue, + _decimals: PromiseOrValue, + _name: PromiseOrValue, + _base_pool: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + remove_pool( + _pool: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + set_pool_gas_estimates( + _addr: [ + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + ], + _amount: [ + [PromiseOrValue, PromiseOrValue], + [PromiseOrValue, PromiseOrValue], + [PromiseOrValue, PromiseOrValue], + [PromiseOrValue, PromiseOrValue], + [PromiseOrValue, PromiseOrValue], + ], + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + set_coin_gas_estimates( + _addr: PromiseOrValue[], + _amount: PromiseOrValue[], + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + set_gas_estimate_contract( + _pool: PromiseOrValue, + _estimator: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + set_liquidity_gauges( + _pool: PromiseOrValue, + _liquidity_gauges: PromiseOrValue[], + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + set_pool_asset_type( + _pool: PromiseOrValue, + _asset_type: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + batch_set_pool_asset_type( + _pools: PromiseOrValue[], + _asset_types: PromiseOrValue[], + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + address_provider(overrides?: CallOverrides): Promise<[string]>; + + gauge_controller(overrides?: CallOverrides): Promise<[string]>; + + pool_list(arg0: PromiseOrValue, overrides?: CallOverrides): Promise<[string]>; + + pool_count(overrides?: CallOverrides): Promise<[BigNumber]>; + + coin_count(overrides?: CallOverrides): Promise<[BigNumber]>; + + get_coin(arg0: PromiseOrValue, overrides?: CallOverrides): Promise<[string]>; + + get_pool_from_lp_token(arg0: PromiseOrValue, overrides?: CallOverrides): Promise<[string]>; + + get_lp_token(arg0: PromiseOrValue, overrides?: CallOverrides): Promise<[string]>; + + last_updated(overrides?: CallOverrides): Promise<[BigNumber]>; + }; + + 'find_pool_for_coins(address,address)'( + _from: PromiseOrValue, + _to: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + 'find_pool_for_coins(address,address,uint256)'( + _from: PromiseOrValue, + _to: PromiseOrValue, + i: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + get_n_coins(_pool: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>; + + get_coins(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_underlying_coins(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_decimals(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_underlying_decimals(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_rates(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_gauges(_pool: PromiseOrValue, overrides?: CallOverrides): Promise<[string[], BigNumber[]]>; + + get_balances(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_underlying_balances(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_virtual_price_from_lp_token(_token: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_A(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_parameters( + _pool: PromiseOrValue, + overrides?: CallOverrides, + ): Promise< + [BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, string, BigNumber, BigNumber, BigNumber] & { + A: BigNumber; + future_A: BigNumber; + fee: BigNumber; + admin_fee: BigNumber; + future_fee: BigNumber; + future_admin_fee: BigNumber; + future_owner: string; + initial_A: BigNumber; + initial_A_time: BigNumber; + future_A_time: BigNumber; + } + >; + + get_fees(_pool: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>; + + get_admin_balances(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_coin_indices( + _pool: PromiseOrValue, + _from: PromiseOrValue, + _to: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[BigNumber, BigNumber, boolean]>; + + estimate_gas_used( + _pool: PromiseOrValue, + _from: PromiseOrValue, + _to: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + is_meta(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_pool_name(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_coin_swap_count(_coin: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_coin_swap_complement( + _coin: PromiseOrValue, + _index: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + get_pool_asset_type(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + add_pool( + _pool: PromiseOrValue, + _n_coins: PromiseOrValue, + _lp_token: PromiseOrValue, + _rate_info: PromiseOrValue, + _decimals: PromiseOrValue, + _underlying_decimals: PromiseOrValue, + _has_initial_A: PromiseOrValue, + _is_v1: PromiseOrValue, + _name: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + add_pool_without_underlying( + _pool: PromiseOrValue, + _n_coins: PromiseOrValue, + _lp_token: PromiseOrValue, + _rate_info: PromiseOrValue, + _decimals: PromiseOrValue, + _use_rates: PromiseOrValue, + _has_initial_A: PromiseOrValue, + _is_v1: PromiseOrValue, + _name: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + 'add_metapool(address,uint256,address,uint256,string)'( + _pool: PromiseOrValue, + _n_coins: PromiseOrValue, + _lp_token: PromiseOrValue, + _decimals: PromiseOrValue, + _name: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + 'add_metapool(address,uint256,address,uint256,string,address)'( + _pool: PromiseOrValue, + _n_coins: PromiseOrValue, + _lp_token: PromiseOrValue, + _decimals: PromiseOrValue, + _name: PromiseOrValue, + _base_pool: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + remove_pool( + _pool: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + set_pool_gas_estimates( + _addr: [ + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + ], + _amount: [ + [PromiseOrValue, PromiseOrValue], + [PromiseOrValue, PromiseOrValue], + [PromiseOrValue, PromiseOrValue], + [PromiseOrValue, PromiseOrValue], + [PromiseOrValue, PromiseOrValue], + ], + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + set_coin_gas_estimates( + _addr: PromiseOrValue[], + _amount: PromiseOrValue[], + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + set_gas_estimate_contract( + _pool: PromiseOrValue, + _estimator: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + set_liquidity_gauges( + _pool: PromiseOrValue, + _liquidity_gauges: PromiseOrValue[], + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + set_pool_asset_type( + _pool: PromiseOrValue, + _asset_type: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + batch_set_pool_asset_type( + _pools: PromiseOrValue[], + _asset_types: PromiseOrValue[], + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + address_provider(overrides?: CallOverrides): Promise; + + gauge_controller(overrides?: CallOverrides): Promise; + + pool_list(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + pool_count(overrides?: CallOverrides): Promise; + + coin_count(overrides?: CallOverrides): Promise; + + get_coin(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_pool_from_lp_token(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_lp_token(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + last_updated(overrides?: CallOverrides): Promise; + + callStatic: { + 'find_pool_for_coins(address,address)'( + _from: PromiseOrValue, + _to: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + 'find_pool_for_coins(address,address,uint256)'( + _from: PromiseOrValue, + _to: PromiseOrValue, + i: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + get_n_coins(_pool: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>; + + get_coins(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_underlying_coins(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_decimals(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_underlying_decimals(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_rates(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_gauges(_pool: PromiseOrValue, overrides?: CallOverrides): Promise<[string[], BigNumber[]]>; + + get_balances(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_underlying_balances(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_virtual_price_from_lp_token(_token: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_A(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_parameters( + _pool: PromiseOrValue, + overrides?: CallOverrides, + ): Promise< + [BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, string, BigNumber, BigNumber, BigNumber] & { + A: BigNumber; + future_A: BigNumber; + fee: BigNumber; + admin_fee: BigNumber; + future_fee: BigNumber; + future_admin_fee: BigNumber; + future_owner: string; + initial_A: BigNumber; + initial_A_time: BigNumber; + future_A_time: BigNumber; + } + >; + + get_fees(_pool: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>; + + get_admin_balances(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_coin_indices( + _pool: PromiseOrValue, + _from: PromiseOrValue, + _to: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[BigNumber, BigNumber, boolean]>; + + estimate_gas_used( + _pool: PromiseOrValue, + _from: PromiseOrValue, + _to: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + is_meta(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_pool_name(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_coin_swap_count(_coin: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_coin_swap_complement( + _coin: PromiseOrValue, + _index: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + get_pool_asset_type(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + add_pool( + _pool: PromiseOrValue, + _n_coins: PromiseOrValue, + _lp_token: PromiseOrValue, + _rate_info: PromiseOrValue, + _decimals: PromiseOrValue, + _underlying_decimals: PromiseOrValue, + _has_initial_A: PromiseOrValue, + _is_v1: PromiseOrValue, + _name: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + add_pool_without_underlying( + _pool: PromiseOrValue, + _n_coins: PromiseOrValue, + _lp_token: PromiseOrValue, + _rate_info: PromiseOrValue, + _decimals: PromiseOrValue, + _use_rates: PromiseOrValue, + _has_initial_A: PromiseOrValue, + _is_v1: PromiseOrValue, + _name: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + 'add_metapool(address,uint256,address,uint256,string)'( + _pool: PromiseOrValue, + _n_coins: PromiseOrValue, + _lp_token: PromiseOrValue, + _decimals: PromiseOrValue, + _name: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + 'add_metapool(address,uint256,address,uint256,string,address)'( + _pool: PromiseOrValue, + _n_coins: PromiseOrValue, + _lp_token: PromiseOrValue, + _decimals: PromiseOrValue, + _name: PromiseOrValue, + _base_pool: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + remove_pool(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + set_pool_gas_estimates( + _addr: [ + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + ], + _amount: [ + [PromiseOrValue, PromiseOrValue], + [PromiseOrValue, PromiseOrValue], + [PromiseOrValue, PromiseOrValue], + [PromiseOrValue, PromiseOrValue], + [PromiseOrValue, PromiseOrValue], + ], + overrides?: CallOverrides, + ): Promise; + + set_coin_gas_estimates( + _addr: PromiseOrValue[], + _amount: PromiseOrValue[], + overrides?: CallOverrides, + ): Promise; + + set_gas_estimate_contract( + _pool: PromiseOrValue, + _estimator: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + set_liquidity_gauges( + _pool: PromiseOrValue, + _liquidity_gauges: PromiseOrValue[], + overrides?: CallOverrides, + ): Promise; + + set_pool_asset_type( + _pool: PromiseOrValue, + _asset_type: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + batch_set_pool_asset_type( + _pools: PromiseOrValue[], + _asset_types: PromiseOrValue[], + overrides?: CallOverrides, + ): Promise; + + address_provider(overrides?: CallOverrides): Promise; + + gauge_controller(overrides?: CallOverrides): Promise; + + pool_list(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + pool_count(overrides?: CallOverrides): Promise; + + coin_count(overrides?: CallOverrides): Promise; + + get_coin(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_pool_from_lp_token(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_lp_token(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + last_updated(overrides?: CallOverrides): Promise; + }; + + filters: { + 'PoolAdded(address,bytes)'(pool?: PromiseOrValue | null, rate_method_id?: null): PoolAddedEventFilter; + PoolAdded(pool?: PromiseOrValue | null, rate_method_id?: null): PoolAddedEventFilter; + + 'PoolRemoved(address)'(pool?: PromiseOrValue | null): PoolRemovedEventFilter; + PoolRemoved(pool?: PromiseOrValue | null): PoolRemovedEventFilter; + }; + + estimateGas: { + 'find_pool_for_coins(address,address)'( + _from: PromiseOrValue, + _to: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + 'find_pool_for_coins(address,address,uint256)'( + _from: PromiseOrValue, + _to: PromiseOrValue, + i: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + get_n_coins(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_coins(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_underlying_coins(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_decimals(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_underlying_decimals(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_rates(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_gauges(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_balances(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_underlying_balances(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_virtual_price_from_lp_token(_token: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_A(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_parameters(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_fees(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_admin_balances(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_coin_indices( + _pool: PromiseOrValue, + _from: PromiseOrValue, + _to: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + estimate_gas_used( + _pool: PromiseOrValue, + _from: PromiseOrValue, + _to: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + is_meta(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_pool_name(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_coin_swap_count(_coin: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_coin_swap_complement( + _coin: PromiseOrValue, + _index: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + get_pool_asset_type(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + add_pool( + _pool: PromiseOrValue, + _n_coins: PromiseOrValue, + _lp_token: PromiseOrValue, + _rate_info: PromiseOrValue, + _decimals: PromiseOrValue, + _underlying_decimals: PromiseOrValue, + _has_initial_A: PromiseOrValue, + _is_v1: PromiseOrValue, + _name: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + add_pool_without_underlying( + _pool: PromiseOrValue, + _n_coins: PromiseOrValue, + _lp_token: PromiseOrValue, + _rate_info: PromiseOrValue, + _decimals: PromiseOrValue, + _use_rates: PromiseOrValue, + _has_initial_A: PromiseOrValue, + _is_v1: PromiseOrValue, + _name: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + 'add_metapool(address,uint256,address,uint256,string)'( + _pool: PromiseOrValue, + _n_coins: PromiseOrValue, + _lp_token: PromiseOrValue, + _decimals: PromiseOrValue, + _name: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + 'add_metapool(address,uint256,address,uint256,string,address)'( + _pool: PromiseOrValue, + _n_coins: PromiseOrValue, + _lp_token: PromiseOrValue, + _decimals: PromiseOrValue, + _name: PromiseOrValue, + _base_pool: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + remove_pool( + _pool: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + set_pool_gas_estimates( + _addr: [ + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + ], + _amount: [ + [PromiseOrValue, PromiseOrValue], + [PromiseOrValue, PromiseOrValue], + [PromiseOrValue, PromiseOrValue], + [PromiseOrValue, PromiseOrValue], + [PromiseOrValue, PromiseOrValue], + ], + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + set_coin_gas_estimates( + _addr: PromiseOrValue[], + _amount: PromiseOrValue[], + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + set_gas_estimate_contract( + _pool: PromiseOrValue, + _estimator: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + set_liquidity_gauges( + _pool: PromiseOrValue, + _liquidity_gauges: PromiseOrValue[], + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + set_pool_asset_type( + _pool: PromiseOrValue, + _asset_type: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + batch_set_pool_asset_type( + _pools: PromiseOrValue[], + _asset_types: PromiseOrValue[], + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + address_provider(overrides?: CallOverrides): Promise; + + gauge_controller(overrides?: CallOverrides): Promise; + + pool_list(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + pool_count(overrides?: CallOverrides): Promise; + + coin_count(overrides?: CallOverrides): Promise; + + get_coin(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_pool_from_lp_token(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_lp_token(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + last_updated(overrides?: CallOverrides): Promise; + }; + + populateTransaction: { + 'find_pool_for_coins(address,address)'( + _from: PromiseOrValue, + _to: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + 'find_pool_for_coins(address,address,uint256)'( + _from: PromiseOrValue, + _to: PromiseOrValue, + i: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + get_n_coins(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_coins(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_underlying_coins(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_decimals(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_underlying_decimals(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_rates(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_gauges(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_balances(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_underlying_balances(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_virtual_price_from_lp_token( + _token: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + get_A(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_parameters(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_fees(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_admin_balances(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_coin_indices( + _pool: PromiseOrValue, + _from: PromiseOrValue, + _to: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + estimate_gas_used( + _pool: PromiseOrValue, + _from: PromiseOrValue, + _to: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + is_meta(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_pool_name(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_coin_swap_count(_coin: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_coin_swap_complement( + _coin: PromiseOrValue, + _index: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + get_pool_asset_type(_pool: PromiseOrValue, overrides?: CallOverrides): Promise; + + add_pool( + _pool: PromiseOrValue, + _n_coins: PromiseOrValue, + _lp_token: PromiseOrValue, + _rate_info: PromiseOrValue, + _decimals: PromiseOrValue, + _underlying_decimals: PromiseOrValue, + _has_initial_A: PromiseOrValue, + _is_v1: PromiseOrValue, + _name: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + add_pool_without_underlying( + _pool: PromiseOrValue, + _n_coins: PromiseOrValue, + _lp_token: PromiseOrValue, + _rate_info: PromiseOrValue, + _decimals: PromiseOrValue, + _use_rates: PromiseOrValue, + _has_initial_A: PromiseOrValue, + _is_v1: PromiseOrValue, + _name: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + 'add_metapool(address,uint256,address,uint256,string)'( + _pool: PromiseOrValue, + _n_coins: PromiseOrValue, + _lp_token: PromiseOrValue, + _decimals: PromiseOrValue, + _name: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + 'add_metapool(address,uint256,address,uint256,string,address)'( + _pool: PromiseOrValue, + _n_coins: PromiseOrValue, + _lp_token: PromiseOrValue, + _decimals: PromiseOrValue, + _name: PromiseOrValue, + _base_pool: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + remove_pool( + _pool: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + set_pool_gas_estimates( + _addr: [ + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + ], + _amount: [ + [PromiseOrValue, PromiseOrValue], + [PromiseOrValue, PromiseOrValue], + [PromiseOrValue, PromiseOrValue], + [PromiseOrValue, PromiseOrValue], + [PromiseOrValue, PromiseOrValue], + ], + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + set_coin_gas_estimates( + _addr: PromiseOrValue[], + _amount: PromiseOrValue[], + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + set_gas_estimate_contract( + _pool: PromiseOrValue, + _estimator: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + set_liquidity_gauges( + _pool: PromiseOrValue, + _liquidity_gauges: PromiseOrValue[], + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + set_pool_asset_type( + _pool: PromiseOrValue, + _asset_type: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + batch_set_pool_asset_type( + _pools: PromiseOrValue[], + _asset_types: PromiseOrValue[], + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + address_provider(overrides?: CallOverrides): Promise; + + gauge_controller(overrides?: CallOverrides): Promise; + + pool_list(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + pool_count(overrides?: CallOverrides): Promise; + + coin_count(overrides?: CallOverrides): Promise; + + get_coin(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_pool_from_lp_token(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + get_lp_token(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + last_updated(overrides?: CallOverrides): Promise; + }; +} diff --git a/src/apps/curve/contracts/ethers/CurveV1Metapool.ts b/src/apps/curve/contracts/ethers/CurveV1Metapool.ts deleted file mode 100644 index a3a06ab67..000000000 --- a/src/apps/curve/contracts/ethers/CurveV1Metapool.ts +++ /dev/null @@ -1,1290 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PopulatedTransaction, - Signer, - utils, -} from 'ethers'; -import type { FunctionFragment, Result, EventFragment } from '@ethersproject/abi'; -import type { Listener, Provider } from '@ethersproject/providers'; -import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from './common'; - -export interface CurveV1MetapoolInterface extends utils.Interface { - functions: { - 'A()': FunctionFragment; - 'A_precise()': FunctionFragment; - 'get_virtual_price()': FunctionFragment; - 'calc_token_amount(uint256[2],bool)': FunctionFragment; - 'add_liquidity(uint256[2],uint256)': FunctionFragment; - 'get_dy(int128,int128,uint256)': FunctionFragment; - 'get_dy_underlying(int128,int128,uint256)': FunctionFragment; - 'exchange(int128,int128,uint256,uint256)': FunctionFragment; - 'exchange_underlying(int128,int128,uint256,uint256)': FunctionFragment; - 'remove_liquidity(uint256,uint256[2])': FunctionFragment; - 'remove_liquidity_imbalance(uint256[2],uint256)': FunctionFragment; - 'calc_withdraw_one_coin(uint256,int128)': FunctionFragment; - 'remove_liquidity_one_coin(uint256,int128,uint256)': FunctionFragment; - 'ramp_A(uint256,uint256)': FunctionFragment; - 'stop_ramp_A()': FunctionFragment; - 'commit_new_fee(uint256,uint256)': FunctionFragment; - 'apply_new_fee()': FunctionFragment; - 'revert_new_parameters()': FunctionFragment; - 'commit_transfer_ownership(address)': FunctionFragment; - 'apply_transfer_ownership()': FunctionFragment; - 'revert_transfer_ownership()': FunctionFragment; - 'admin_balances(uint256)': FunctionFragment; - 'withdraw_admin_fees()': FunctionFragment; - 'donate_admin_fees()': FunctionFragment; - 'kill_me()': FunctionFragment; - 'unkill_me()': FunctionFragment; - 'coins(uint256)': FunctionFragment; - 'balances(uint256)': FunctionFragment; - 'fee()': FunctionFragment; - 'admin_fee()': FunctionFragment; - 'owner()': FunctionFragment; - 'base_pool()': FunctionFragment; - 'base_virtual_price()': FunctionFragment; - 'base_cache_updated()': FunctionFragment; - 'base_coins(uint256)': FunctionFragment; - 'initial_A()': FunctionFragment; - 'future_A()': FunctionFragment; - 'initial_A_time()': FunctionFragment; - 'future_A_time()': FunctionFragment; - 'admin_actions_deadline()': FunctionFragment; - 'transfer_ownership_deadline()': FunctionFragment; - 'future_fee()': FunctionFragment; - 'future_admin_fee()': FunctionFragment; - 'future_owner()': FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | 'A' - | 'A_precise' - | 'get_virtual_price' - | 'calc_token_amount' - | 'add_liquidity' - | 'get_dy' - | 'get_dy_underlying' - | 'exchange' - | 'exchange_underlying' - | 'remove_liquidity' - | 'remove_liquidity_imbalance' - | 'calc_withdraw_one_coin' - | 'remove_liquidity_one_coin' - | 'ramp_A' - | 'stop_ramp_A' - | 'commit_new_fee' - | 'apply_new_fee' - | 'revert_new_parameters' - | 'commit_transfer_ownership' - | 'apply_transfer_ownership' - | 'revert_transfer_ownership' - | 'admin_balances' - | 'withdraw_admin_fees' - | 'donate_admin_fees' - | 'kill_me' - | 'unkill_me' - | 'coins' - | 'balances' - | 'fee' - | 'admin_fee' - | 'owner' - | 'base_pool' - | 'base_virtual_price' - | 'base_cache_updated' - | 'base_coins' - | 'initial_A' - | 'future_A' - | 'initial_A_time' - | 'future_A_time' - | 'admin_actions_deadline' - | 'transfer_ownership_deadline' - | 'future_fee' - | 'future_admin_fee' - | 'future_owner', - ): FunctionFragment; - - encodeFunctionData(functionFragment: 'A', values?: undefined): string; - encodeFunctionData(functionFragment: 'A_precise', values?: undefined): string; - encodeFunctionData(functionFragment: 'get_virtual_price', values?: undefined): string; - encodeFunctionData( - functionFragment: 'calc_token_amount', - values: [[PromiseOrValue, PromiseOrValue], PromiseOrValue], - ): string; - encodeFunctionData( - functionFragment: 'add_liquidity', - values: [[PromiseOrValue, PromiseOrValue], PromiseOrValue], - ): string; - encodeFunctionData( - functionFragment: 'get_dy', - values: [PromiseOrValue, PromiseOrValue, PromiseOrValue], - ): string; - encodeFunctionData( - functionFragment: 'get_dy_underlying', - values: [PromiseOrValue, PromiseOrValue, PromiseOrValue], - ): string; - encodeFunctionData( - functionFragment: 'exchange', - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - ], - ): string; - encodeFunctionData( - functionFragment: 'exchange_underlying', - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - ], - ): string; - encodeFunctionData( - functionFragment: 'remove_liquidity', - values: [PromiseOrValue, [PromiseOrValue, PromiseOrValue]], - ): string; - encodeFunctionData( - functionFragment: 'remove_liquidity_imbalance', - values: [[PromiseOrValue, PromiseOrValue], PromiseOrValue], - ): string; - encodeFunctionData( - functionFragment: 'calc_withdraw_one_coin', - values: [PromiseOrValue, PromiseOrValue], - ): string; - encodeFunctionData( - functionFragment: 'remove_liquidity_one_coin', - values: [PromiseOrValue, PromiseOrValue, PromiseOrValue], - ): string; - encodeFunctionData( - functionFragment: 'ramp_A', - values: [PromiseOrValue, PromiseOrValue], - ): string; - encodeFunctionData(functionFragment: 'stop_ramp_A', values?: undefined): string; - encodeFunctionData( - functionFragment: 'commit_new_fee', - values: [PromiseOrValue, PromiseOrValue], - ): string; - encodeFunctionData(functionFragment: 'apply_new_fee', values?: undefined): string; - encodeFunctionData(functionFragment: 'revert_new_parameters', values?: undefined): string; - encodeFunctionData(functionFragment: 'commit_transfer_ownership', values: [PromiseOrValue]): string; - encodeFunctionData(functionFragment: 'apply_transfer_ownership', values?: undefined): string; - encodeFunctionData(functionFragment: 'revert_transfer_ownership', values?: undefined): string; - encodeFunctionData(functionFragment: 'admin_balances', values: [PromiseOrValue]): string; - encodeFunctionData(functionFragment: 'withdraw_admin_fees', values?: undefined): string; - encodeFunctionData(functionFragment: 'donate_admin_fees', values?: undefined): string; - encodeFunctionData(functionFragment: 'kill_me', values?: undefined): string; - encodeFunctionData(functionFragment: 'unkill_me', values?: undefined): string; - encodeFunctionData(functionFragment: 'coins', values: [PromiseOrValue]): string; - encodeFunctionData(functionFragment: 'balances', values: [PromiseOrValue]): string; - encodeFunctionData(functionFragment: 'fee', values?: undefined): string; - encodeFunctionData(functionFragment: 'admin_fee', values?: undefined): string; - encodeFunctionData(functionFragment: 'owner', values?: undefined): string; - encodeFunctionData(functionFragment: 'base_pool', values?: undefined): string; - encodeFunctionData(functionFragment: 'base_virtual_price', values?: undefined): string; - encodeFunctionData(functionFragment: 'base_cache_updated', values?: undefined): string; - encodeFunctionData(functionFragment: 'base_coins', values: [PromiseOrValue]): string; - encodeFunctionData(functionFragment: 'initial_A', values?: undefined): string; - encodeFunctionData(functionFragment: 'future_A', values?: undefined): string; - encodeFunctionData(functionFragment: 'initial_A_time', values?: undefined): string; - encodeFunctionData(functionFragment: 'future_A_time', values?: undefined): string; - encodeFunctionData(functionFragment: 'admin_actions_deadline', values?: undefined): string; - encodeFunctionData(functionFragment: 'transfer_ownership_deadline', values?: undefined): string; - encodeFunctionData(functionFragment: 'future_fee', values?: undefined): string; - encodeFunctionData(functionFragment: 'future_admin_fee', values?: undefined): string; - encodeFunctionData(functionFragment: 'future_owner', values?: undefined): string; - - decodeFunctionResult(functionFragment: 'A', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'A_precise', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'get_virtual_price', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'calc_token_amount', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'add_liquidity', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'get_dy', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'get_dy_underlying', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'exchange', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'exchange_underlying', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'remove_liquidity', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'remove_liquidity_imbalance', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'calc_withdraw_one_coin', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'remove_liquidity_one_coin', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'ramp_A', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'stop_ramp_A', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'commit_new_fee', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'apply_new_fee', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'revert_new_parameters', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'commit_transfer_ownership', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'apply_transfer_ownership', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'revert_transfer_ownership', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'admin_balances', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'withdraw_admin_fees', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'donate_admin_fees', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'kill_me', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'unkill_me', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'coins', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'balances', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'fee', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'admin_fee', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'owner', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'base_pool', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'base_virtual_price', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'base_cache_updated', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'base_coins', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'initial_A', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'future_A', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'initial_A_time', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'future_A_time', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'admin_actions_deadline', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'transfer_ownership_deadline', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'future_fee', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'future_admin_fee', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'future_owner', data: BytesLike): Result; - - events: { - 'TokenExchange(address,int128,uint256,int128,uint256)': EventFragment; - 'TokenExchangeUnderlying(address,int128,uint256,int128,uint256)': EventFragment; - 'AddLiquidity(address,uint256[2],uint256[2],uint256,uint256)': EventFragment; - 'RemoveLiquidity(address,uint256[2],uint256[2],uint256)': EventFragment; - 'RemoveLiquidityOne(address,uint256,uint256,uint256)': EventFragment; - 'RemoveLiquidityImbalance(address,uint256[2],uint256[2],uint256,uint256)': EventFragment; - 'CommitNewAdmin(uint256,address)': EventFragment; - 'NewAdmin(address)': EventFragment; - 'CommitNewFee(uint256,uint256,uint256)': EventFragment; - 'NewFee(uint256,uint256)': EventFragment; - 'RampA(uint256,uint256,uint256,uint256)': EventFragment; - 'StopRampA(uint256,uint256)': EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: 'TokenExchange'): EventFragment; - getEvent(nameOrSignatureOrTopic: 'TokenExchangeUnderlying'): EventFragment; - getEvent(nameOrSignatureOrTopic: 'AddLiquidity'): EventFragment; - getEvent(nameOrSignatureOrTopic: 'RemoveLiquidity'): EventFragment; - getEvent(nameOrSignatureOrTopic: 'RemoveLiquidityOne'): EventFragment; - getEvent(nameOrSignatureOrTopic: 'RemoveLiquidityImbalance'): EventFragment; - getEvent(nameOrSignatureOrTopic: 'CommitNewAdmin'): EventFragment; - getEvent(nameOrSignatureOrTopic: 'NewAdmin'): EventFragment; - getEvent(nameOrSignatureOrTopic: 'CommitNewFee'): EventFragment; - getEvent(nameOrSignatureOrTopic: 'NewFee'): EventFragment; - getEvent(nameOrSignatureOrTopic: 'RampA'): EventFragment; - getEvent(nameOrSignatureOrTopic: 'StopRampA'): EventFragment; -} - -export interface TokenExchangeEventObject { - buyer: string; - sold_id: BigNumber; - tokens_sold: BigNumber; - bought_id: BigNumber; - tokens_bought: BigNumber; -} -export type TokenExchangeEvent = TypedEvent< - [string, BigNumber, BigNumber, BigNumber, BigNumber], - TokenExchangeEventObject ->; - -export type TokenExchangeEventFilter = TypedEventFilter; - -export interface TokenExchangeUnderlyingEventObject { - buyer: string; - sold_id: BigNumber; - tokens_sold: BigNumber; - bought_id: BigNumber; - tokens_bought: BigNumber; -} -export type TokenExchangeUnderlyingEvent = TypedEvent< - [string, BigNumber, BigNumber, BigNumber, BigNumber], - TokenExchangeUnderlyingEventObject ->; - -export type TokenExchangeUnderlyingEventFilter = TypedEventFilter; - -export interface AddLiquidityEventObject { - provider: string; - token_amounts: [BigNumber, BigNumber]; - fees: [BigNumber, BigNumber]; - invariant: BigNumber; - token_supply: BigNumber; -} -export type AddLiquidityEvent = TypedEvent< - [string, [BigNumber, BigNumber], [BigNumber, BigNumber], BigNumber, BigNumber], - AddLiquidityEventObject ->; - -export type AddLiquidityEventFilter = TypedEventFilter; - -export interface RemoveLiquidityEventObject { - provider: string; - token_amounts: [BigNumber, BigNumber]; - fees: [BigNumber, BigNumber]; - token_supply: BigNumber; -} -export type RemoveLiquidityEvent = TypedEvent< - [string, [BigNumber, BigNumber], [BigNumber, BigNumber], BigNumber], - RemoveLiquidityEventObject ->; - -export type RemoveLiquidityEventFilter = TypedEventFilter; - -export interface RemoveLiquidityOneEventObject { - provider: string; - token_amount: BigNumber; - coin_amount: BigNumber; - token_supply: BigNumber; -} -export type RemoveLiquidityOneEvent = TypedEvent< - [string, BigNumber, BigNumber, BigNumber], - RemoveLiquidityOneEventObject ->; - -export type RemoveLiquidityOneEventFilter = TypedEventFilter; - -export interface RemoveLiquidityImbalanceEventObject { - provider: string; - token_amounts: [BigNumber, BigNumber]; - fees: [BigNumber, BigNumber]; - invariant: BigNumber; - token_supply: BigNumber; -} -export type RemoveLiquidityImbalanceEvent = TypedEvent< - [string, [BigNumber, BigNumber], [BigNumber, BigNumber], BigNumber, BigNumber], - RemoveLiquidityImbalanceEventObject ->; - -export type RemoveLiquidityImbalanceEventFilter = TypedEventFilter; - -export interface CommitNewAdminEventObject { - deadline: BigNumber; - admin: string; -} -export type CommitNewAdminEvent = TypedEvent<[BigNumber, string], CommitNewAdminEventObject>; - -export type CommitNewAdminEventFilter = TypedEventFilter; - -export interface NewAdminEventObject { - admin: string; -} -export type NewAdminEvent = TypedEvent<[string], NewAdminEventObject>; - -export type NewAdminEventFilter = TypedEventFilter; - -export interface CommitNewFeeEventObject { - deadline: BigNumber; - fee: BigNumber; - admin_fee: BigNumber; -} -export type CommitNewFeeEvent = TypedEvent<[BigNumber, BigNumber, BigNumber], CommitNewFeeEventObject>; - -export type CommitNewFeeEventFilter = TypedEventFilter; - -export interface NewFeeEventObject { - fee: BigNumber; - admin_fee: BigNumber; -} -export type NewFeeEvent = TypedEvent<[BigNumber, BigNumber], NewFeeEventObject>; - -export type NewFeeEventFilter = TypedEventFilter; - -export interface RampAEventObject { - old_A: BigNumber; - new_A: BigNumber; - initial_time: BigNumber; - future_time: BigNumber; -} -export type RampAEvent = TypedEvent<[BigNumber, BigNumber, BigNumber, BigNumber], RampAEventObject>; - -export type RampAEventFilter = TypedEventFilter; - -export interface StopRampAEventObject { - A: BigNumber; - t: BigNumber; -} -export type StopRampAEvent = TypedEvent<[BigNumber, BigNumber], StopRampAEventObject>; - -export type StopRampAEventFilter = TypedEventFilter; - -export interface CurveV1Metapool extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: CurveV1MetapoolInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined, - ): Promise>; - - listeners(eventFilter?: TypedEventFilter): Array>; - listeners(eventName?: string): Array; - removeAllListeners(eventFilter: TypedEventFilter): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - A(overrides?: CallOverrides): Promise<[BigNumber]>; - - A_precise(overrides?: CallOverrides): Promise<[BigNumber]>; - - get_virtual_price(overrides?: CallOverrides): Promise<[BigNumber]>; - - calc_token_amount( - amounts: [PromiseOrValue, PromiseOrValue], - is_deposit: PromiseOrValue, - overrides?: CallOverrides, - ): Promise<[BigNumber]>; - - add_liquidity( - amounts: [PromiseOrValue, PromiseOrValue], - min_mint_amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - get_dy( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - overrides?: CallOverrides, - ): Promise<[BigNumber]>; - - get_dy_underlying( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - overrides?: CallOverrides, - ): Promise<[BigNumber]>; - - exchange( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - exchange_underlying( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - remove_liquidity( - _amount: PromiseOrValue, - min_amounts: [PromiseOrValue, PromiseOrValue], - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - remove_liquidity_imbalance( - amounts: [PromiseOrValue, PromiseOrValue], - max_burn_amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - calc_withdraw_one_coin( - _token_amount: PromiseOrValue, - i: PromiseOrValue, - overrides?: CallOverrides, - ): Promise<[BigNumber]>; - - remove_liquidity_one_coin( - _token_amount: PromiseOrValue, - i: PromiseOrValue, - _min_amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - ramp_A( - _future_A: PromiseOrValue, - _future_time: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - stop_ramp_A(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - commit_new_fee( - new_fee: PromiseOrValue, - new_admin_fee: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - apply_new_fee(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - revert_new_parameters(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - commit_transfer_ownership( - _owner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - apply_transfer_ownership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - revert_transfer_ownership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - admin_balances(i: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber]>; - - withdraw_admin_fees(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - donate_admin_fees(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - kill_me(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - unkill_me(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - coins(arg0: PromiseOrValue, overrides?: CallOverrides): Promise<[string]>; - - balances(arg0: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber]>; - - fee(overrides?: CallOverrides): Promise<[BigNumber]>; - - admin_fee(overrides?: CallOverrides): Promise<[BigNumber]>; - - owner(overrides?: CallOverrides): Promise<[string]>; - - base_pool(overrides?: CallOverrides): Promise<[string]>; - - base_virtual_price(overrides?: CallOverrides): Promise<[BigNumber]>; - - base_cache_updated(overrides?: CallOverrides): Promise<[BigNumber]>; - - base_coins(arg0: PromiseOrValue, overrides?: CallOverrides): Promise<[string]>; - - initial_A(overrides?: CallOverrides): Promise<[BigNumber]>; - - future_A(overrides?: CallOverrides): Promise<[BigNumber]>; - - initial_A_time(overrides?: CallOverrides): Promise<[BigNumber]>; - - future_A_time(overrides?: CallOverrides): Promise<[BigNumber]>; - - admin_actions_deadline(overrides?: CallOverrides): Promise<[BigNumber]>; - - transfer_ownership_deadline(overrides?: CallOverrides): Promise<[BigNumber]>; - - future_fee(overrides?: CallOverrides): Promise<[BigNumber]>; - - future_admin_fee(overrides?: CallOverrides): Promise<[BigNumber]>; - - future_owner(overrides?: CallOverrides): Promise<[string]>; - }; - - A(overrides?: CallOverrides): Promise; - - A_precise(overrides?: CallOverrides): Promise; - - get_virtual_price(overrides?: CallOverrides): Promise; - - calc_token_amount( - amounts: [PromiseOrValue, PromiseOrValue], - is_deposit: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - add_liquidity( - amounts: [PromiseOrValue, PromiseOrValue], - min_mint_amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - get_dy( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - get_dy_underlying( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - exchange( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - exchange_underlying( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - remove_liquidity( - _amount: PromiseOrValue, - min_amounts: [PromiseOrValue, PromiseOrValue], - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - remove_liquidity_imbalance( - amounts: [PromiseOrValue, PromiseOrValue], - max_burn_amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - calc_withdraw_one_coin( - _token_amount: PromiseOrValue, - i: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - remove_liquidity_one_coin( - _token_amount: PromiseOrValue, - i: PromiseOrValue, - _min_amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - ramp_A( - _future_A: PromiseOrValue, - _future_time: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - stop_ramp_A(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - commit_new_fee( - new_fee: PromiseOrValue, - new_admin_fee: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - apply_new_fee(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - revert_new_parameters(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - commit_transfer_ownership( - _owner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - apply_transfer_ownership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - revert_transfer_ownership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - admin_balances(i: PromiseOrValue, overrides?: CallOverrides): Promise; - - withdraw_admin_fees(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - donate_admin_fees(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - kill_me(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - unkill_me(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - coins(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - balances(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - fee(overrides?: CallOverrides): Promise; - - admin_fee(overrides?: CallOverrides): Promise; - - owner(overrides?: CallOverrides): Promise; - - base_pool(overrides?: CallOverrides): Promise; - - base_virtual_price(overrides?: CallOverrides): Promise; - - base_cache_updated(overrides?: CallOverrides): Promise; - - base_coins(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - initial_A(overrides?: CallOverrides): Promise; - - future_A(overrides?: CallOverrides): Promise; - - initial_A_time(overrides?: CallOverrides): Promise; - - future_A_time(overrides?: CallOverrides): Promise; - - admin_actions_deadline(overrides?: CallOverrides): Promise; - - transfer_ownership_deadline(overrides?: CallOverrides): Promise; - - future_fee(overrides?: CallOverrides): Promise; - - future_admin_fee(overrides?: CallOverrides): Promise; - - future_owner(overrides?: CallOverrides): Promise; - - callStatic: { - A(overrides?: CallOverrides): Promise; - - A_precise(overrides?: CallOverrides): Promise; - - get_virtual_price(overrides?: CallOverrides): Promise; - - calc_token_amount( - amounts: [PromiseOrValue, PromiseOrValue], - is_deposit: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - add_liquidity( - amounts: [PromiseOrValue, PromiseOrValue], - min_mint_amount: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - get_dy( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - get_dy_underlying( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - exchange( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - exchange_underlying( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - remove_liquidity( - _amount: PromiseOrValue, - min_amounts: [PromiseOrValue, PromiseOrValue], - overrides?: CallOverrides, - ): Promise<[BigNumber, BigNumber]>; - - remove_liquidity_imbalance( - amounts: [PromiseOrValue, PromiseOrValue], - max_burn_amount: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - calc_withdraw_one_coin( - _token_amount: PromiseOrValue, - i: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - remove_liquidity_one_coin( - _token_amount: PromiseOrValue, - i: PromiseOrValue, - _min_amount: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - ramp_A( - _future_A: PromiseOrValue, - _future_time: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - stop_ramp_A(overrides?: CallOverrides): Promise; - - commit_new_fee( - new_fee: PromiseOrValue, - new_admin_fee: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - apply_new_fee(overrides?: CallOverrides): Promise; - - revert_new_parameters(overrides?: CallOverrides): Promise; - - commit_transfer_ownership(_owner: PromiseOrValue, overrides?: CallOverrides): Promise; - - apply_transfer_ownership(overrides?: CallOverrides): Promise; - - revert_transfer_ownership(overrides?: CallOverrides): Promise; - - admin_balances(i: PromiseOrValue, overrides?: CallOverrides): Promise; - - withdraw_admin_fees(overrides?: CallOverrides): Promise; - - donate_admin_fees(overrides?: CallOverrides): Promise; - - kill_me(overrides?: CallOverrides): Promise; - - unkill_me(overrides?: CallOverrides): Promise; - - coins(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - balances(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - fee(overrides?: CallOverrides): Promise; - - admin_fee(overrides?: CallOverrides): Promise; - - owner(overrides?: CallOverrides): Promise; - - base_pool(overrides?: CallOverrides): Promise; - - base_virtual_price(overrides?: CallOverrides): Promise; - - base_cache_updated(overrides?: CallOverrides): Promise; - - base_coins(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - initial_A(overrides?: CallOverrides): Promise; - - future_A(overrides?: CallOverrides): Promise; - - initial_A_time(overrides?: CallOverrides): Promise; - - future_A_time(overrides?: CallOverrides): Promise; - - admin_actions_deadline(overrides?: CallOverrides): Promise; - - transfer_ownership_deadline(overrides?: CallOverrides): Promise; - - future_fee(overrides?: CallOverrides): Promise; - - future_admin_fee(overrides?: CallOverrides): Promise; - - future_owner(overrides?: CallOverrides): Promise; - }; - - filters: { - 'TokenExchange(address,int128,uint256,int128,uint256)'( - buyer?: PromiseOrValue | null, - sold_id?: null, - tokens_sold?: null, - bought_id?: null, - tokens_bought?: null, - ): TokenExchangeEventFilter; - TokenExchange( - buyer?: PromiseOrValue | null, - sold_id?: null, - tokens_sold?: null, - bought_id?: null, - tokens_bought?: null, - ): TokenExchangeEventFilter; - - 'TokenExchangeUnderlying(address,int128,uint256,int128,uint256)'( - buyer?: PromiseOrValue | null, - sold_id?: null, - tokens_sold?: null, - bought_id?: null, - tokens_bought?: null, - ): TokenExchangeUnderlyingEventFilter; - TokenExchangeUnderlying( - buyer?: PromiseOrValue | null, - sold_id?: null, - tokens_sold?: null, - bought_id?: null, - tokens_bought?: null, - ): TokenExchangeUnderlyingEventFilter; - - 'AddLiquidity(address,uint256[2],uint256[2],uint256,uint256)'( - provider?: PromiseOrValue | null, - token_amounts?: null, - fees?: null, - invariant?: null, - token_supply?: null, - ): AddLiquidityEventFilter; - AddLiquidity( - provider?: PromiseOrValue | null, - token_amounts?: null, - fees?: null, - invariant?: null, - token_supply?: null, - ): AddLiquidityEventFilter; - - 'RemoveLiquidity(address,uint256[2],uint256[2],uint256)'( - provider?: PromiseOrValue | null, - token_amounts?: null, - fees?: null, - token_supply?: null, - ): RemoveLiquidityEventFilter; - RemoveLiquidity( - provider?: PromiseOrValue | null, - token_amounts?: null, - fees?: null, - token_supply?: null, - ): RemoveLiquidityEventFilter; - - 'RemoveLiquidityOne(address,uint256,uint256,uint256)'( - provider?: PromiseOrValue | null, - token_amount?: null, - coin_amount?: null, - token_supply?: null, - ): RemoveLiquidityOneEventFilter; - RemoveLiquidityOne( - provider?: PromiseOrValue | null, - token_amount?: null, - coin_amount?: null, - token_supply?: null, - ): RemoveLiquidityOneEventFilter; - - 'RemoveLiquidityImbalance(address,uint256[2],uint256[2],uint256,uint256)'( - provider?: PromiseOrValue | null, - token_amounts?: null, - fees?: null, - invariant?: null, - token_supply?: null, - ): RemoveLiquidityImbalanceEventFilter; - RemoveLiquidityImbalance( - provider?: PromiseOrValue | null, - token_amounts?: null, - fees?: null, - invariant?: null, - token_supply?: null, - ): RemoveLiquidityImbalanceEventFilter; - - 'CommitNewAdmin(uint256,address)'( - deadline?: PromiseOrValue | null, - admin?: PromiseOrValue | null, - ): CommitNewAdminEventFilter; - CommitNewAdmin( - deadline?: PromiseOrValue | null, - admin?: PromiseOrValue | null, - ): CommitNewAdminEventFilter; - - 'NewAdmin(address)'(admin?: PromiseOrValue | null): NewAdminEventFilter; - NewAdmin(admin?: PromiseOrValue | null): NewAdminEventFilter; - - 'CommitNewFee(uint256,uint256,uint256)'( - deadline?: PromiseOrValue | null, - fee?: null, - admin_fee?: null, - ): CommitNewFeeEventFilter; - CommitNewFee(deadline?: PromiseOrValue | null, fee?: null, admin_fee?: null): CommitNewFeeEventFilter; - - 'NewFee(uint256,uint256)'(fee?: null, admin_fee?: null): NewFeeEventFilter; - NewFee(fee?: null, admin_fee?: null): NewFeeEventFilter; - - 'RampA(uint256,uint256,uint256,uint256)'( - old_A?: null, - new_A?: null, - initial_time?: null, - future_time?: null, - ): RampAEventFilter; - RampA(old_A?: null, new_A?: null, initial_time?: null, future_time?: null): RampAEventFilter; - - 'StopRampA(uint256,uint256)'(A?: null, t?: null): StopRampAEventFilter; - StopRampA(A?: null, t?: null): StopRampAEventFilter; - }; - - estimateGas: { - A(overrides?: CallOverrides): Promise; - - A_precise(overrides?: CallOverrides): Promise; - - get_virtual_price(overrides?: CallOverrides): Promise; - - calc_token_amount( - amounts: [PromiseOrValue, PromiseOrValue], - is_deposit: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - add_liquidity( - amounts: [PromiseOrValue, PromiseOrValue], - min_mint_amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - get_dy( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - get_dy_underlying( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - exchange( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - exchange_underlying( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - remove_liquidity( - _amount: PromiseOrValue, - min_amounts: [PromiseOrValue, PromiseOrValue], - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - remove_liquidity_imbalance( - amounts: [PromiseOrValue, PromiseOrValue], - max_burn_amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - calc_withdraw_one_coin( - _token_amount: PromiseOrValue, - i: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - remove_liquidity_one_coin( - _token_amount: PromiseOrValue, - i: PromiseOrValue, - _min_amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - ramp_A( - _future_A: PromiseOrValue, - _future_time: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - stop_ramp_A(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - commit_new_fee( - new_fee: PromiseOrValue, - new_admin_fee: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - apply_new_fee(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - revert_new_parameters(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - commit_transfer_ownership( - _owner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - apply_transfer_ownership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - revert_transfer_ownership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - admin_balances(i: PromiseOrValue, overrides?: CallOverrides): Promise; - - withdraw_admin_fees(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - donate_admin_fees(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - kill_me(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - unkill_me(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - coins(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - balances(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - fee(overrides?: CallOverrides): Promise; - - admin_fee(overrides?: CallOverrides): Promise; - - owner(overrides?: CallOverrides): Promise; - - base_pool(overrides?: CallOverrides): Promise; - - base_virtual_price(overrides?: CallOverrides): Promise; - - base_cache_updated(overrides?: CallOverrides): Promise; - - base_coins(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - initial_A(overrides?: CallOverrides): Promise; - - future_A(overrides?: CallOverrides): Promise; - - initial_A_time(overrides?: CallOverrides): Promise; - - future_A_time(overrides?: CallOverrides): Promise; - - admin_actions_deadline(overrides?: CallOverrides): Promise; - - transfer_ownership_deadline(overrides?: CallOverrides): Promise; - - future_fee(overrides?: CallOverrides): Promise; - - future_admin_fee(overrides?: CallOverrides): Promise; - - future_owner(overrides?: CallOverrides): Promise; - }; - - populateTransaction: { - A(overrides?: CallOverrides): Promise; - - A_precise(overrides?: CallOverrides): Promise; - - get_virtual_price(overrides?: CallOverrides): Promise; - - calc_token_amount( - amounts: [PromiseOrValue, PromiseOrValue], - is_deposit: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - add_liquidity( - amounts: [PromiseOrValue, PromiseOrValue], - min_mint_amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - get_dy( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - get_dy_underlying( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - exchange( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - exchange_underlying( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - remove_liquidity( - _amount: PromiseOrValue, - min_amounts: [PromiseOrValue, PromiseOrValue], - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - remove_liquidity_imbalance( - amounts: [PromiseOrValue, PromiseOrValue], - max_burn_amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - calc_withdraw_one_coin( - _token_amount: PromiseOrValue, - i: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - remove_liquidity_one_coin( - _token_amount: PromiseOrValue, - i: PromiseOrValue, - _min_amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - ramp_A( - _future_A: PromiseOrValue, - _future_time: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - stop_ramp_A(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - commit_new_fee( - new_fee: PromiseOrValue, - new_admin_fee: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - apply_new_fee(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - revert_new_parameters(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - commit_transfer_ownership( - _owner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - apply_transfer_ownership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - revert_transfer_ownership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - admin_balances(i: PromiseOrValue, overrides?: CallOverrides): Promise; - - withdraw_admin_fees(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - donate_admin_fees(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - kill_me(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - unkill_me(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - coins(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - balances(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - fee(overrides?: CallOverrides): Promise; - - admin_fee(overrides?: CallOverrides): Promise; - - owner(overrides?: CallOverrides): Promise; - - base_pool(overrides?: CallOverrides): Promise; - - base_virtual_price(overrides?: CallOverrides): Promise; - - base_cache_updated(overrides?: CallOverrides): Promise; - - base_coins(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - initial_A(overrides?: CallOverrides): Promise; - - future_A(overrides?: CallOverrides): Promise; - - initial_A_time(overrides?: CallOverrides): Promise; - - future_A_time(overrides?: CallOverrides): Promise; - - admin_actions_deadline(overrides?: CallOverrides): Promise; - - transfer_ownership_deadline(overrides?: CallOverrides): Promise; - - future_fee(overrides?: CallOverrides): Promise; - - future_admin_fee(overrides?: CallOverrides): Promise; - - future_owner(overrides?: CallOverrides): Promise; - }; -} diff --git a/src/apps/curve/contracts/ethers/CurveV1PoolLegacy.ts b/src/apps/curve/contracts/ethers/CurveV1PoolLegacy.ts deleted file mode 100644 index 5538f71f7..000000000 --- a/src/apps/curve/contracts/ethers/CurveV1PoolLegacy.ts +++ /dev/null @@ -1,1220 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PopulatedTransaction, - Signer, - utils, -} from 'ethers'; -import type { FunctionFragment, Result, EventFragment } from '@ethersproject/abi'; -import type { Listener, Provider } from '@ethersproject/providers'; -import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from './common'; - -export interface CurveV1PoolLegacyInterface extends utils.Interface { - functions: { - 'get_virtual_price()': FunctionFragment; - 'calc_token_amount(uint256[4],bool)': FunctionFragment; - 'add_liquidity(uint256[4],uint256)': FunctionFragment; - 'get_dy(int128,int128,uint256)': FunctionFragment; - 'get_dx(int128,int128,uint256)': FunctionFragment; - 'get_dy_underlying(int128,int128,uint256)': FunctionFragment; - 'get_dx_underlying(int128,int128,uint256)': FunctionFragment; - 'exchange(int128,int128,uint256,uint256)': FunctionFragment; - 'exchange_underlying(int128,int128,uint256,uint256)': FunctionFragment; - 'remove_liquidity(uint256,uint256[4])': FunctionFragment; - 'remove_liquidity_imbalance(uint256[4],uint256)': FunctionFragment; - 'commit_new_parameters(uint256,uint256,uint256)': FunctionFragment; - 'apply_new_parameters()': FunctionFragment; - 'revert_new_parameters()': FunctionFragment; - 'commit_transfer_ownership(address)': FunctionFragment; - 'apply_transfer_ownership()': FunctionFragment; - 'revert_transfer_ownership()': FunctionFragment; - 'withdraw_admin_fees()': FunctionFragment; - 'kill_me()': FunctionFragment; - 'unkill_me()': FunctionFragment; - 'coins(int128)': FunctionFragment; - 'underlying_coins(int128)': FunctionFragment; - 'balances(int128)': FunctionFragment; - 'A()': FunctionFragment; - 'fee()': FunctionFragment; - 'admin_fee()': FunctionFragment; - 'owner()': FunctionFragment; - 'admin_actions_deadline()': FunctionFragment; - 'transfer_ownership_deadline()': FunctionFragment; - 'future_A()': FunctionFragment; - 'future_fee()': FunctionFragment; - 'future_admin_fee()': FunctionFragment; - 'future_owner()': FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | 'get_virtual_price' - | 'calc_token_amount' - | 'add_liquidity' - | 'get_dy' - | 'get_dx' - | 'get_dy_underlying' - | 'get_dx_underlying' - | 'exchange' - | 'exchange_underlying' - | 'remove_liquidity' - | 'remove_liquidity_imbalance' - | 'commit_new_parameters' - | 'apply_new_parameters' - | 'revert_new_parameters' - | 'commit_transfer_ownership' - | 'apply_transfer_ownership' - | 'revert_transfer_ownership' - | 'withdraw_admin_fees' - | 'kill_me' - | 'unkill_me' - | 'coins' - | 'underlying_coins' - | 'balances' - | 'A' - | 'fee' - | 'admin_fee' - | 'owner' - | 'admin_actions_deadline' - | 'transfer_ownership_deadline' - | 'future_A' - | 'future_fee' - | 'future_admin_fee' - | 'future_owner', - ): FunctionFragment; - - encodeFunctionData(functionFragment: 'get_virtual_price', values?: undefined): string; - encodeFunctionData( - functionFragment: 'calc_token_amount', - values: [ - [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - ], - PromiseOrValue, - ], - ): string; - encodeFunctionData( - functionFragment: 'add_liquidity', - values: [ - [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - ], - PromiseOrValue, - ], - ): string; - encodeFunctionData( - functionFragment: 'get_dy', - values: [PromiseOrValue, PromiseOrValue, PromiseOrValue], - ): string; - encodeFunctionData( - functionFragment: 'get_dx', - values: [PromiseOrValue, PromiseOrValue, PromiseOrValue], - ): string; - encodeFunctionData( - functionFragment: 'get_dy_underlying', - values: [PromiseOrValue, PromiseOrValue, PromiseOrValue], - ): string; - encodeFunctionData( - functionFragment: 'get_dx_underlying', - values: [PromiseOrValue, PromiseOrValue, PromiseOrValue], - ): string; - encodeFunctionData( - functionFragment: 'exchange', - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - ], - ): string; - encodeFunctionData( - functionFragment: 'exchange_underlying', - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - ], - ): string; - encodeFunctionData( - functionFragment: 'remove_liquidity', - values: [ - PromiseOrValue, - [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - ], - ], - ): string; - encodeFunctionData( - functionFragment: 'remove_liquidity_imbalance', - values: [ - [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - ], - PromiseOrValue, - ], - ): string; - encodeFunctionData( - functionFragment: 'commit_new_parameters', - values: [PromiseOrValue, PromiseOrValue, PromiseOrValue], - ): string; - encodeFunctionData(functionFragment: 'apply_new_parameters', values?: undefined): string; - encodeFunctionData(functionFragment: 'revert_new_parameters', values?: undefined): string; - encodeFunctionData(functionFragment: 'commit_transfer_ownership', values: [PromiseOrValue]): string; - encodeFunctionData(functionFragment: 'apply_transfer_ownership', values?: undefined): string; - encodeFunctionData(functionFragment: 'revert_transfer_ownership', values?: undefined): string; - encodeFunctionData(functionFragment: 'withdraw_admin_fees', values?: undefined): string; - encodeFunctionData(functionFragment: 'kill_me', values?: undefined): string; - encodeFunctionData(functionFragment: 'unkill_me', values?: undefined): string; - encodeFunctionData(functionFragment: 'coins', values: [PromiseOrValue]): string; - encodeFunctionData(functionFragment: 'underlying_coins', values: [PromiseOrValue]): string; - encodeFunctionData(functionFragment: 'balances', values: [PromiseOrValue]): string; - encodeFunctionData(functionFragment: 'A', values?: undefined): string; - encodeFunctionData(functionFragment: 'fee', values?: undefined): string; - encodeFunctionData(functionFragment: 'admin_fee', values?: undefined): string; - encodeFunctionData(functionFragment: 'owner', values?: undefined): string; - encodeFunctionData(functionFragment: 'admin_actions_deadline', values?: undefined): string; - encodeFunctionData(functionFragment: 'transfer_ownership_deadline', values?: undefined): string; - encodeFunctionData(functionFragment: 'future_A', values?: undefined): string; - encodeFunctionData(functionFragment: 'future_fee', values?: undefined): string; - encodeFunctionData(functionFragment: 'future_admin_fee', values?: undefined): string; - encodeFunctionData(functionFragment: 'future_owner', values?: undefined): string; - - decodeFunctionResult(functionFragment: 'get_virtual_price', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'calc_token_amount', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'add_liquidity', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'get_dy', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'get_dx', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'get_dy_underlying', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'get_dx_underlying', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'exchange', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'exchange_underlying', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'remove_liquidity', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'remove_liquidity_imbalance', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'commit_new_parameters', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'apply_new_parameters', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'revert_new_parameters', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'commit_transfer_ownership', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'apply_transfer_ownership', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'revert_transfer_ownership', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'withdraw_admin_fees', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'kill_me', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'unkill_me', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'coins', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'underlying_coins', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'balances', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'A', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'fee', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'admin_fee', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'owner', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'admin_actions_deadline', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'transfer_ownership_deadline', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'future_A', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'future_fee', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'future_admin_fee', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'future_owner', data: BytesLike): Result; - - events: { - 'TokenExchange(address,int128,uint256,int128,uint256)': EventFragment; - 'TokenExchangeUnderlying(address,int128,uint256,int128,uint256)': EventFragment; - 'AddLiquidity(address,uint256[4],uint256[4],uint256,uint256)': EventFragment; - 'RemoveLiquidity(address,uint256[4],uint256[4],uint256)': EventFragment; - 'RemoveLiquidityImbalance(address,uint256[4],uint256[4],uint256,uint256)': EventFragment; - 'CommitNewAdmin(uint256,address)': EventFragment; - 'NewAdmin(address)': EventFragment; - 'CommitNewParameters(uint256,uint256,uint256,uint256)': EventFragment; - 'NewParameters(uint256,uint256,uint256)': EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: 'TokenExchange'): EventFragment; - getEvent(nameOrSignatureOrTopic: 'TokenExchangeUnderlying'): EventFragment; - getEvent(nameOrSignatureOrTopic: 'AddLiquidity'): EventFragment; - getEvent(nameOrSignatureOrTopic: 'RemoveLiquidity'): EventFragment; - getEvent(nameOrSignatureOrTopic: 'RemoveLiquidityImbalance'): EventFragment; - getEvent(nameOrSignatureOrTopic: 'CommitNewAdmin'): EventFragment; - getEvent(nameOrSignatureOrTopic: 'NewAdmin'): EventFragment; - getEvent(nameOrSignatureOrTopic: 'CommitNewParameters'): EventFragment; - getEvent(nameOrSignatureOrTopic: 'NewParameters'): EventFragment; -} - -export interface TokenExchangeEventObject { - buyer: string; - sold_id: BigNumber; - tokens_sold: BigNumber; - bought_id: BigNumber; - tokens_bought: BigNumber; -} -export type TokenExchangeEvent = TypedEvent< - [string, BigNumber, BigNumber, BigNumber, BigNumber], - TokenExchangeEventObject ->; - -export type TokenExchangeEventFilter = TypedEventFilter; - -export interface TokenExchangeUnderlyingEventObject { - buyer: string; - sold_id: BigNumber; - tokens_sold: BigNumber; - bought_id: BigNumber; - tokens_bought: BigNumber; -} -export type TokenExchangeUnderlyingEvent = TypedEvent< - [string, BigNumber, BigNumber, BigNumber, BigNumber], - TokenExchangeUnderlyingEventObject ->; - -export type TokenExchangeUnderlyingEventFilter = TypedEventFilter; - -export interface AddLiquidityEventObject { - provider: string; - token_amounts: [BigNumber, BigNumber, BigNumber, BigNumber]; - fees: [BigNumber, BigNumber, BigNumber, BigNumber]; - invariant: BigNumber; - token_supply: BigNumber; -} -export type AddLiquidityEvent = TypedEvent< - [ - string, - [BigNumber, BigNumber, BigNumber, BigNumber], - [BigNumber, BigNumber, BigNumber, BigNumber], - BigNumber, - BigNumber, - ], - AddLiquidityEventObject ->; - -export type AddLiquidityEventFilter = TypedEventFilter; - -export interface RemoveLiquidityEventObject { - provider: string; - token_amounts: [BigNumber, BigNumber, BigNumber, BigNumber]; - fees: [BigNumber, BigNumber, BigNumber, BigNumber]; - token_supply: BigNumber; -} -export type RemoveLiquidityEvent = TypedEvent< - [string, [BigNumber, BigNumber, BigNumber, BigNumber], [BigNumber, BigNumber, BigNumber, BigNumber], BigNumber], - RemoveLiquidityEventObject ->; - -export type RemoveLiquidityEventFilter = TypedEventFilter; - -export interface RemoveLiquidityImbalanceEventObject { - provider: string; - token_amounts: [BigNumber, BigNumber, BigNumber, BigNumber]; - fees: [BigNumber, BigNumber, BigNumber, BigNumber]; - invariant: BigNumber; - token_supply: BigNumber; -} -export type RemoveLiquidityImbalanceEvent = TypedEvent< - [ - string, - [BigNumber, BigNumber, BigNumber, BigNumber], - [BigNumber, BigNumber, BigNumber, BigNumber], - BigNumber, - BigNumber, - ], - RemoveLiquidityImbalanceEventObject ->; - -export type RemoveLiquidityImbalanceEventFilter = TypedEventFilter; - -export interface CommitNewAdminEventObject { - deadline: BigNumber; - admin: string; -} -export type CommitNewAdminEvent = TypedEvent<[BigNumber, string], CommitNewAdminEventObject>; - -export type CommitNewAdminEventFilter = TypedEventFilter; - -export interface NewAdminEventObject { - admin: string; -} -export type NewAdminEvent = TypedEvent<[string], NewAdminEventObject>; - -export type NewAdminEventFilter = TypedEventFilter; - -export interface CommitNewParametersEventObject { - deadline: BigNumber; - A: BigNumber; - fee: BigNumber; - admin_fee: BigNumber; -} -export type CommitNewParametersEvent = TypedEvent< - [BigNumber, BigNumber, BigNumber, BigNumber], - CommitNewParametersEventObject ->; - -export type CommitNewParametersEventFilter = TypedEventFilter; - -export interface NewParametersEventObject { - A: BigNumber; - fee: BigNumber; - admin_fee: BigNumber; -} -export type NewParametersEvent = TypedEvent<[BigNumber, BigNumber, BigNumber], NewParametersEventObject>; - -export type NewParametersEventFilter = TypedEventFilter; - -export interface CurveV1PoolLegacy extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: CurveV1PoolLegacyInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined, - ): Promise>; - - listeners(eventFilter?: TypedEventFilter): Array>; - listeners(eventName?: string): Array; - removeAllListeners(eventFilter: TypedEventFilter): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - get_virtual_price(overrides?: CallOverrides): Promise<[BigNumber] & { out: BigNumber }>; - - calc_token_amount( - amounts: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - ], - deposit: PromiseOrValue, - overrides?: CallOverrides, - ): Promise<[BigNumber] & { out: BigNumber }>; - - add_liquidity( - amounts: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - ], - min_mint_amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - get_dy( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - overrides?: CallOverrides, - ): Promise<[BigNumber] & { out: BigNumber }>; - - get_dx( - i: PromiseOrValue, - j: PromiseOrValue, - dy: PromiseOrValue, - overrides?: CallOverrides, - ): Promise<[BigNumber] & { out: BigNumber }>; - - get_dy_underlying( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - overrides?: CallOverrides, - ): Promise<[BigNumber] & { out: BigNumber }>; - - get_dx_underlying( - i: PromiseOrValue, - j: PromiseOrValue, - dy: PromiseOrValue, - overrides?: CallOverrides, - ): Promise<[BigNumber] & { out: BigNumber }>; - - exchange( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - exchange_underlying( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - remove_liquidity( - _amount: PromiseOrValue, - min_amounts: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - ], - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - remove_liquidity_imbalance( - amounts: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - ], - max_burn_amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - commit_new_parameters( - amplification: PromiseOrValue, - new_fee: PromiseOrValue, - new_admin_fee: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - apply_new_parameters(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - revert_new_parameters(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - commit_transfer_ownership( - _owner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - apply_transfer_ownership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - revert_transfer_ownership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - withdraw_admin_fees(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - kill_me(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - unkill_me(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - coins(arg0: PromiseOrValue, overrides?: CallOverrides): Promise<[string] & { out: string }>; - - underlying_coins( - arg0: PromiseOrValue, - overrides?: CallOverrides, - ): Promise<[string] & { out: string }>; - - balances(arg0: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber] & { out: BigNumber }>; - - A(overrides?: CallOverrides): Promise<[BigNumber] & { out: BigNumber }>; - - fee(overrides?: CallOverrides): Promise<[BigNumber] & { out: BigNumber }>; - - admin_fee(overrides?: CallOverrides): Promise<[BigNumber] & { out: BigNumber }>; - - owner(overrides?: CallOverrides): Promise<[string] & { out: string }>; - - admin_actions_deadline(overrides?: CallOverrides): Promise<[BigNumber] & { out: BigNumber }>; - - transfer_ownership_deadline(overrides?: CallOverrides): Promise<[BigNumber] & { out: BigNumber }>; - - future_A(overrides?: CallOverrides): Promise<[BigNumber] & { out: BigNumber }>; - - future_fee(overrides?: CallOverrides): Promise<[BigNumber] & { out: BigNumber }>; - - future_admin_fee(overrides?: CallOverrides): Promise<[BigNumber] & { out: BigNumber }>; - - future_owner(overrides?: CallOverrides): Promise<[string] & { out: string }>; - }; - - get_virtual_price(overrides?: CallOverrides): Promise; - - calc_token_amount( - amounts: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - ], - deposit: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - add_liquidity( - amounts: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - ], - min_mint_amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - get_dy( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - get_dx( - i: PromiseOrValue, - j: PromiseOrValue, - dy: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - get_dy_underlying( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - get_dx_underlying( - i: PromiseOrValue, - j: PromiseOrValue, - dy: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - exchange( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - exchange_underlying( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - remove_liquidity( - _amount: PromiseOrValue, - min_amounts: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - ], - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - remove_liquidity_imbalance( - amounts: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - ], - max_burn_amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - commit_new_parameters( - amplification: PromiseOrValue, - new_fee: PromiseOrValue, - new_admin_fee: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - apply_new_parameters(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - revert_new_parameters(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - commit_transfer_ownership( - _owner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - apply_transfer_ownership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - revert_transfer_ownership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - withdraw_admin_fees(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - kill_me(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - unkill_me(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - coins(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - underlying_coins(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - balances(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - A(overrides?: CallOverrides): Promise; - - fee(overrides?: CallOverrides): Promise; - - admin_fee(overrides?: CallOverrides): Promise; - - owner(overrides?: CallOverrides): Promise; - - admin_actions_deadline(overrides?: CallOverrides): Promise; - - transfer_ownership_deadline(overrides?: CallOverrides): Promise; - - future_A(overrides?: CallOverrides): Promise; - - future_fee(overrides?: CallOverrides): Promise; - - future_admin_fee(overrides?: CallOverrides): Promise; - - future_owner(overrides?: CallOverrides): Promise; - - callStatic: { - get_virtual_price(overrides?: CallOverrides): Promise; - - calc_token_amount( - amounts: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - ], - deposit: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - add_liquidity( - amounts: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - ], - min_mint_amount: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - get_dy( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - get_dx( - i: PromiseOrValue, - j: PromiseOrValue, - dy: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - get_dy_underlying( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - get_dx_underlying( - i: PromiseOrValue, - j: PromiseOrValue, - dy: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - exchange( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - exchange_underlying( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - remove_liquidity( - _amount: PromiseOrValue, - min_amounts: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - ], - overrides?: CallOverrides, - ): Promise; - - remove_liquidity_imbalance( - amounts: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - ], - max_burn_amount: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - commit_new_parameters( - amplification: PromiseOrValue, - new_fee: PromiseOrValue, - new_admin_fee: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - apply_new_parameters(overrides?: CallOverrides): Promise; - - revert_new_parameters(overrides?: CallOverrides): Promise; - - commit_transfer_ownership(_owner: PromiseOrValue, overrides?: CallOverrides): Promise; - - apply_transfer_ownership(overrides?: CallOverrides): Promise; - - revert_transfer_ownership(overrides?: CallOverrides): Promise; - - withdraw_admin_fees(overrides?: CallOverrides): Promise; - - kill_me(overrides?: CallOverrides): Promise; - - unkill_me(overrides?: CallOverrides): Promise; - - coins(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - underlying_coins(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - balances(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - A(overrides?: CallOverrides): Promise; - - fee(overrides?: CallOverrides): Promise; - - admin_fee(overrides?: CallOverrides): Promise; - - owner(overrides?: CallOverrides): Promise; - - admin_actions_deadline(overrides?: CallOverrides): Promise; - - transfer_ownership_deadline(overrides?: CallOverrides): Promise; - - future_A(overrides?: CallOverrides): Promise; - - future_fee(overrides?: CallOverrides): Promise; - - future_admin_fee(overrides?: CallOverrides): Promise; - - future_owner(overrides?: CallOverrides): Promise; - }; - - filters: { - 'TokenExchange(address,int128,uint256,int128,uint256)'( - buyer?: PromiseOrValue | null, - sold_id?: null, - tokens_sold?: null, - bought_id?: null, - tokens_bought?: null, - ): TokenExchangeEventFilter; - TokenExchange( - buyer?: PromiseOrValue | null, - sold_id?: null, - tokens_sold?: null, - bought_id?: null, - tokens_bought?: null, - ): TokenExchangeEventFilter; - - 'TokenExchangeUnderlying(address,int128,uint256,int128,uint256)'( - buyer?: PromiseOrValue | null, - sold_id?: null, - tokens_sold?: null, - bought_id?: null, - tokens_bought?: null, - ): TokenExchangeUnderlyingEventFilter; - TokenExchangeUnderlying( - buyer?: PromiseOrValue | null, - sold_id?: null, - tokens_sold?: null, - bought_id?: null, - tokens_bought?: null, - ): TokenExchangeUnderlyingEventFilter; - - 'AddLiquidity(address,uint256[4],uint256[4],uint256,uint256)'( - provider?: PromiseOrValue | null, - token_amounts?: null, - fees?: null, - invariant?: null, - token_supply?: null, - ): AddLiquidityEventFilter; - AddLiquidity( - provider?: PromiseOrValue | null, - token_amounts?: null, - fees?: null, - invariant?: null, - token_supply?: null, - ): AddLiquidityEventFilter; - - 'RemoveLiquidity(address,uint256[4],uint256[4],uint256)'( - provider?: PromiseOrValue | null, - token_amounts?: null, - fees?: null, - token_supply?: null, - ): RemoveLiquidityEventFilter; - RemoveLiquidity( - provider?: PromiseOrValue | null, - token_amounts?: null, - fees?: null, - token_supply?: null, - ): RemoveLiquidityEventFilter; - - 'RemoveLiquidityImbalance(address,uint256[4],uint256[4],uint256,uint256)'( - provider?: PromiseOrValue | null, - token_amounts?: null, - fees?: null, - invariant?: null, - token_supply?: null, - ): RemoveLiquidityImbalanceEventFilter; - RemoveLiquidityImbalance( - provider?: PromiseOrValue | null, - token_amounts?: null, - fees?: null, - invariant?: null, - token_supply?: null, - ): RemoveLiquidityImbalanceEventFilter; - - 'CommitNewAdmin(uint256,address)'( - deadline?: PromiseOrValue | null, - admin?: PromiseOrValue | null, - ): CommitNewAdminEventFilter; - CommitNewAdmin( - deadline?: PromiseOrValue | null, - admin?: PromiseOrValue | null, - ): CommitNewAdminEventFilter; - - 'NewAdmin(address)'(admin?: PromiseOrValue | null): NewAdminEventFilter; - NewAdmin(admin?: PromiseOrValue | null): NewAdminEventFilter; - - 'CommitNewParameters(uint256,uint256,uint256,uint256)'( - deadline?: PromiseOrValue | null, - A?: null, - fee?: null, - admin_fee?: null, - ): CommitNewParametersEventFilter; - CommitNewParameters( - deadline?: PromiseOrValue | null, - A?: null, - fee?: null, - admin_fee?: null, - ): CommitNewParametersEventFilter; - - 'NewParameters(uint256,uint256,uint256)'(A?: null, fee?: null, admin_fee?: null): NewParametersEventFilter; - NewParameters(A?: null, fee?: null, admin_fee?: null): NewParametersEventFilter; - }; - - estimateGas: { - get_virtual_price(overrides?: CallOverrides): Promise; - - calc_token_amount( - amounts: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - ], - deposit: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - add_liquidity( - amounts: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - ], - min_mint_amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - get_dy( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - get_dx( - i: PromiseOrValue, - j: PromiseOrValue, - dy: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - get_dy_underlying( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - get_dx_underlying( - i: PromiseOrValue, - j: PromiseOrValue, - dy: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - exchange( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - exchange_underlying( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - remove_liquidity( - _amount: PromiseOrValue, - min_amounts: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - ], - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - remove_liquidity_imbalance( - amounts: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - ], - max_burn_amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - commit_new_parameters( - amplification: PromiseOrValue, - new_fee: PromiseOrValue, - new_admin_fee: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - apply_new_parameters(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - revert_new_parameters(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - commit_transfer_ownership( - _owner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - apply_transfer_ownership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - revert_transfer_ownership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - withdraw_admin_fees(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - kill_me(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - unkill_me(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - coins(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - underlying_coins(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - balances(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - A(overrides?: CallOverrides): Promise; - - fee(overrides?: CallOverrides): Promise; - - admin_fee(overrides?: CallOverrides): Promise; - - owner(overrides?: CallOverrides): Promise; - - admin_actions_deadline(overrides?: CallOverrides): Promise; - - transfer_ownership_deadline(overrides?: CallOverrides): Promise; - - future_A(overrides?: CallOverrides): Promise; - - future_fee(overrides?: CallOverrides): Promise; - - future_admin_fee(overrides?: CallOverrides): Promise; - - future_owner(overrides?: CallOverrides): Promise; - }; - - populateTransaction: { - get_virtual_price(overrides?: CallOverrides): Promise; - - calc_token_amount( - amounts: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - ], - deposit: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - add_liquidity( - amounts: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - ], - min_mint_amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - get_dy( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - get_dx( - i: PromiseOrValue, - j: PromiseOrValue, - dy: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - get_dy_underlying( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - get_dx_underlying( - i: PromiseOrValue, - j: PromiseOrValue, - dy: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - exchange( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - exchange_underlying( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - remove_liquidity( - _amount: PromiseOrValue, - min_amounts: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - ], - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - remove_liquidity_imbalance( - amounts: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - ], - max_burn_amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - commit_new_parameters( - amplification: PromiseOrValue, - new_fee: PromiseOrValue, - new_admin_fee: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - apply_new_parameters(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - revert_new_parameters(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - commit_transfer_ownership( - _owner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - apply_transfer_ownership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - revert_transfer_ownership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - withdraw_admin_fees(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - kill_me(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - unkill_me(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - coins(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - underlying_coins(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - balances(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - A(overrides?: CallOverrides): Promise; - - fee(overrides?: CallOverrides): Promise; - - admin_fee(overrides?: CallOverrides): Promise; - - owner(overrides?: CallOverrides): Promise; - - admin_actions_deadline(overrides?: CallOverrides): Promise; - - transfer_ownership_deadline(overrides?: CallOverrides): Promise; - - future_A(overrides?: CallOverrides): Promise; - - future_fee(overrides?: CallOverrides): Promise; - - future_admin_fee(overrides?: CallOverrides): Promise; - - future_owner(overrides?: CallOverrides): Promise; - }; -} diff --git a/src/apps/curve/contracts/ethers/CurveV2Pool.ts b/src/apps/curve/contracts/ethers/CurveV2Pool.ts deleted file mode 100644 index 3a6ff5433..000000000 --- a/src/apps/curve/contracts/ethers/CurveV2Pool.ts +++ /dev/null @@ -1,1607 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PayableOverrides, - PopulatedTransaction, - Signer, - utils, -} from 'ethers'; -import type { FunctionFragment, Result, EventFragment } from '@ethersproject/abi'; -import type { Listener, Provider } from '@ethersproject/providers'; -import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from './common'; - -export interface CurveV2PoolInterface extends utils.Interface { - functions: { - 'price_oracle(uint256)': FunctionFragment; - 'price_scale(uint256)': FunctionFragment; - 'last_prices(uint256)': FunctionFragment; - 'token()': FunctionFragment; - 'coins(uint256)': FunctionFragment; - 'A()': FunctionFragment; - 'gamma()': FunctionFragment; - 'A_precise()': FunctionFragment; - 'fee()': FunctionFragment; - 'fee_calc(uint256[3])': FunctionFragment; - 'get_virtual_price()': FunctionFragment; - 'exchange(uint256,uint256,uint256,uint256)': FunctionFragment; - 'exchange(uint256,uint256,uint256,uint256,bool)': FunctionFragment; - 'get_dy(uint256,uint256,uint256)': FunctionFragment; - 'calc_token_fee(uint256[3],uint256[3])': FunctionFragment; - 'add_liquidity(uint256[3],uint256)': FunctionFragment; - 'remove_liquidity(uint256,uint256[3])': FunctionFragment; - 'calc_token_amount(uint256[3],bool)': FunctionFragment; - 'calc_withdraw_one_coin(uint256,uint256)': FunctionFragment; - 'remove_liquidity_one_coin(uint256,uint256,uint256)': FunctionFragment; - 'claim_admin_fees()': FunctionFragment; - 'ramp_A_gamma(uint256,uint256,uint256)': FunctionFragment; - 'stop_ramp_A_gamma()': FunctionFragment; - 'commit_new_parameters(uint256,uint256,uint256,uint256,uint256,uint256,uint256)': FunctionFragment; - 'apply_new_parameters()': FunctionFragment; - 'revert_new_parameters()': FunctionFragment; - 'commit_transfer_ownership(address)': FunctionFragment; - 'apply_transfer_ownership()': FunctionFragment; - 'revert_transfer_ownership()': FunctionFragment; - 'kill_me()': FunctionFragment; - 'unkill_me()': FunctionFragment; - 'set_admin_fee_receiver(address)': FunctionFragment; - 'last_prices_timestamp()': FunctionFragment; - 'initial_A_gamma()': FunctionFragment; - 'future_A_gamma()': FunctionFragment; - 'initial_A_gamma_time()': FunctionFragment; - 'future_A_gamma_time()': FunctionFragment; - 'price_threshold()': FunctionFragment; - 'future_price_threshoold()': FunctionFragment; - 'fee_gamma()': FunctionFragment; - 'future_fee_gamma()': FunctionFragment; - 'adjustment_step()': FunctionFragment; - 'future_adjustment_step()': FunctionFragment; - 'ma_half_time()': FunctionFragment; - 'future_ma_half_time()': FunctionFragment; - 'mid_fee()': FunctionFragment; - 'out_fee()': FunctionFragment; - 'admin_fee()': FunctionFragment; - 'future_mid_fee()': FunctionFragment; - 'future_out_fee()': FunctionFragment; - 'future_admin_fee()': FunctionFragment; - 'balances(uint256)': FunctionFragment; - 'D()': FunctionFragment; - 'owner()': FunctionFragment; - 'future_owner()': FunctionFragment; - 'xcp_profit()': FunctionFragment; - 'xcp_profit_a()': FunctionFragment; - 'virtual_price()': FunctionFragment; - 'is_killed()': FunctionFragment; - 'kill_deadline()': FunctionFragment; - 'transfer_ownership_deadline()': FunctionFragment; - 'admin_actions_deadline()': FunctionFragment; - 'admin_fee_receiver()': FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | 'price_oracle' - | 'price_scale' - | 'last_prices' - | 'token' - | 'coins' - | 'A' - | 'gamma' - | 'A_precise' - | 'fee' - | 'fee_calc' - | 'get_virtual_price' - | 'exchange(uint256,uint256,uint256,uint256)' - | 'exchange(uint256,uint256,uint256,uint256,bool)' - | 'get_dy' - | 'calc_token_fee' - | 'add_liquidity' - | 'remove_liquidity' - | 'calc_token_amount' - | 'calc_withdraw_one_coin' - | 'remove_liquidity_one_coin' - | 'claim_admin_fees' - | 'ramp_A_gamma' - | 'stop_ramp_A_gamma' - | 'commit_new_parameters' - | 'apply_new_parameters' - | 'revert_new_parameters' - | 'commit_transfer_ownership' - | 'apply_transfer_ownership' - | 'revert_transfer_ownership' - | 'kill_me' - | 'unkill_me' - | 'set_admin_fee_receiver' - | 'last_prices_timestamp' - | 'initial_A_gamma' - | 'future_A_gamma' - | 'initial_A_gamma_time' - | 'future_A_gamma_time' - | 'price_threshold' - | 'future_price_threshoold' - | 'fee_gamma' - | 'future_fee_gamma' - | 'adjustment_step' - | 'future_adjustment_step' - | 'ma_half_time' - | 'future_ma_half_time' - | 'mid_fee' - | 'out_fee' - | 'admin_fee' - | 'future_mid_fee' - | 'future_out_fee' - | 'future_admin_fee' - | 'balances' - | 'D' - | 'owner' - | 'future_owner' - | 'xcp_profit' - | 'xcp_profit_a' - | 'virtual_price' - | 'is_killed' - | 'kill_deadline' - | 'transfer_ownership_deadline' - | 'admin_actions_deadline' - | 'admin_fee_receiver', - ): FunctionFragment; - - encodeFunctionData(functionFragment: 'price_oracle', values: [PromiseOrValue]): string; - encodeFunctionData(functionFragment: 'price_scale', values: [PromiseOrValue]): string; - encodeFunctionData(functionFragment: 'last_prices', values: [PromiseOrValue]): string; - encodeFunctionData(functionFragment: 'token', values?: undefined): string; - encodeFunctionData(functionFragment: 'coins', values: [PromiseOrValue]): string; - encodeFunctionData(functionFragment: 'A', values?: undefined): string; - encodeFunctionData(functionFragment: 'gamma', values?: undefined): string; - encodeFunctionData(functionFragment: 'A_precise', values?: undefined): string; - encodeFunctionData(functionFragment: 'fee', values?: undefined): string; - encodeFunctionData( - functionFragment: 'fee_calc', - values: [[PromiseOrValue, PromiseOrValue, PromiseOrValue]], - ): string; - encodeFunctionData(functionFragment: 'get_virtual_price', values?: undefined): string; - encodeFunctionData( - functionFragment: 'exchange(uint256,uint256,uint256,uint256)', - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - ], - ): string; - encodeFunctionData( - functionFragment: 'exchange(uint256,uint256,uint256,uint256,bool)', - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - ], - ): string; - encodeFunctionData( - functionFragment: 'get_dy', - values: [PromiseOrValue, PromiseOrValue, PromiseOrValue], - ): string; - encodeFunctionData( - functionFragment: 'calc_token_fee', - values: [ - [PromiseOrValue, PromiseOrValue, PromiseOrValue], - [PromiseOrValue, PromiseOrValue, PromiseOrValue], - ], - ): string; - encodeFunctionData( - functionFragment: 'add_liquidity', - values: [ - [PromiseOrValue, PromiseOrValue, PromiseOrValue], - PromiseOrValue, - ], - ): string; - encodeFunctionData( - functionFragment: 'remove_liquidity', - values: [ - PromiseOrValue, - [PromiseOrValue, PromiseOrValue, PromiseOrValue], - ], - ): string; - encodeFunctionData( - functionFragment: 'calc_token_amount', - values: [ - [PromiseOrValue, PromiseOrValue, PromiseOrValue], - PromiseOrValue, - ], - ): string; - encodeFunctionData( - functionFragment: 'calc_withdraw_one_coin', - values: [PromiseOrValue, PromiseOrValue], - ): string; - encodeFunctionData( - functionFragment: 'remove_liquidity_one_coin', - values: [PromiseOrValue, PromiseOrValue, PromiseOrValue], - ): string; - encodeFunctionData(functionFragment: 'claim_admin_fees', values?: undefined): string; - encodeFunctionData( - functionFragment: 'ramp_A_gamma', - values: [PromiseOrValue, PromiseOrValue, PromiseOrValue], - ): string; - encodeFunctionData(functionFragment: 'stop_ramp_A_gamma', values?: undefined): string; - encodeFunctionData( - functionFragment: 'commit_new_parameters', - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - ], - ): string; - encodeFunctionData(functionFragment: 'apply_new_parameters', values?: undefined): string; - encodeFunctionData(functionFragment: 'revert_new_parameters', values?: undefined): string; - encodeFunctionData(functionFragment: 'commit_transfer_ownership', values: [PromiseOrValue]): string; - encodeFunctionData(functionFragment: 'apply_transfer_ownership', values?: undefined): string; - encodeFunctionData(functionFragment: 'revert_transfer_ownership', values?: undefined): string; - encodeFunctionData(functionFragment: 'kill_me', values?: undefined): string; - encodeFunctionData(functionFragment: 'unkill_me', values?: undefined): string; - encodeFunctionData(functionFragment: 'set_admin_fee_receiver', values: [PromiseOrValue]): string; - encodeFunctionData(functionFragment: 'last_prices_timestamp', values?: undefined): string; - encodeFunctionData(functionFragment: 'initial_A_gamma', values?: undefined): string; - encodeFunctionData(functionFragment: 'future_A_gamma', values?: undefined): string; - encodeFunctionData(functionFragment: 'initial_A_gamma_time', values?: undefined): string; - encodeFunctionData(functionFragment: 'future_A_gamma_time', values?: undefined): string; - encodeFunctionData(functionFragment: 'price_threshold', values?: undefined): string; - encodeFunctionData(functionFragment: 'future_price_threshoold', values?: undefined): string; - encodeFunctionData(functionFragment: 'fee_gamma', values?: undefined): string; - encodeFunctionData(functionFragment: 'future_fee_gamma', values?: undefined): string; - encodeFunctionData(functionFragment: 'adjustment_step', values?: undefined): string; - encodeFunctionData(functionFragment: 'future_adjustment_step', values?: undefined): string; - encodeFunctionData(functionFragment: 'ma_half_time', values?: undefined): string; - encodeFunctionData(functionFragment: 'future_ma_half_time', values?: undefined): string; - encodeFunctionData(functionFragment: 'mid_fee', values?: undefined): string; - encodeFunctionData(functionFragment: 'out_fee', values?: undefined): string; - encodeFunctionData(functionFragment: 'admin_fee', values?: undefined): string; - encodeFunctionData(functionFragment: 'future_mid_fee', values?: undefined): string; - encodeFunctionData(functionFragment: 'future_out_fee', values?: undefined): string; - encodeFunctionData(functionFragment: 'future_admin_fee', values?: undefined): string; - encodeFunctionData(functionFragment: 'balances', values: [PromiseOrValue]): string; - encodeFunctionData(functionFragment: 'D', values?: undefined): string; - encodeFunctionData(functionFragment: 'owner', values?: undefined): string; - encodeFunctionData(functionFragment: 'future_owner', values?: undefined): string; - encodeFunctionData(functionFragment: 'xcp_profit', values?: undefined): string; - encodeFunctionData(functionFragment: 'xcp_profit_a', values?: undefined): string; - encodeFunctionData(functionFragment: 'virtual_price', values?: undefined): string; - encodeFunctionData(functionFragment: 'is_killed', values?: undefined): string; - encodeFunctionData(functionFragment: 'kill_deadline', values?: undefined): string; - encodeFunctionData(functionFragment: 'transfer_ownership_deadline', values?: undefined): string; - encodeFunctionData(functionFragment: 'admin_actions_deadline', values?: undefined): string; - encodeFunctionData(functionFragment: 'admin_fee_receiver', values?: undefined): string; - - decodeFunctionResult(functionFragment: 'price_oracle', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'price_scale', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'last_prices', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'token', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'coins', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'A', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'gamma', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'A_precise', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'fee', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'fee_calc', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'get_virtual_price', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'exchange(uint256,uint256,uint256,uint256)', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'exchange(uint256,uint256,uint256,uint256,bool)', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'get_dy', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'calc_token_fee', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'add_liquidity', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'remove_liquidity', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'calc_token_amount', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'calc_withdraw_one_coin', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'remove_liquidity_one_coin', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'claim_admin_fees', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'ramp_A_gamma', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'stop_ramp_A_gamma', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'commit_new_parameters', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'apply_new_parameters', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'revert_new_parameters', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'commit_transfer_ownership', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'apply_transfer_ownership', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'revert_transfer_ownership', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'kill_me', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'unkill_me', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'set_admin_fee_receiver', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'last_prices_timestamp', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'initial_A_gamma', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'future_A_gamma', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'initial_A_gamma_time', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'future_A_gamma_time', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'price_threshold', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'future_price_threshoold', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'fee_gamma', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'future_fee_gamma', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'adjustment_step', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'future_adjustment_step', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'ma_half_time', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'future_ma_half_time', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'mid_fee', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'out_fee', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'admin_fee', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'future_mid_fee', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'future_out_fee', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'future_admin_fee', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'balances', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'D', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'owner', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'future_owner', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'xcp_profit', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'xcp_profit_a', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'virtual_price', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'is_killed', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'kill_deadline', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'transfer_ownership_deadline', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'admin_actions_deadline', data: BytesLike): Result; - decodeFunctionResult(functionFragment: 'admin_fee_receiver', data: BytesLike): Result; - - events: { - 'TokenExchange(address,uint256,uint256,uint256,uint256)': EventFragment; - 'AddLiquidity(address,uint256[3],uint256,uint256)': EventFragment; - 'RemoveLiquidity(address,uint256[3],uint256)': EventFragment; - 'RemoveLiquidityOne(address,uint256,uint256,uint256)': EventFragment; - 'CommitNewAdmin(uint256,address)': EventFragment; - 'NewAdmin(address)': EventFragment; - 'CommitNewParameters(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)': EventFragment; - 'NewParameters(uint256,uint256,uint256,uint256,uint256,uint256,uint256)': EventFragment; - 'RampAgamma(uint256,uint256,uint256,uint256)': EventFragment; - 'StopRampA(uint256,uint256,uint256)': EventFragment; - 'ClaimAdminFee(address,uint256)': EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: 'TokenExchange'): EventFragment; - getEvent(nameOrSignatureOrTopic: 'AddLiquidity'): EventFragment; - getEvent(nameOrSignatureOrTopic: 'RemoveLiquidity'): EventFragment; - getEvent(nameOrSignatureOrTopic: 'RemoveLiquidityOne'): EventFragment; - getEvent(nameOrSignatureOrTopic: 'CommitNewAdmin'): EventFragment; - getEvent(nameOrSignatureOrTopic: 'NewAdmin'): EventFragment; - getEvent(nameOrSignatureOrTopic: 'CommitNewParameters'): EventFragment; - getEvent(nameOrSignatureOrTopic: 'NewParameters'): EventFragment; - getEvent(nameOrSignatureOrTopic: 'RampAgamma'): EventFragment; - getEvent(nameOrSignatureOrTopic: 'StopRampA'): EventFragment; - getEvent(nameOrSignatureOrTopic: 'ClaimAdminFee'): EventFragment; -} - -export interface TokenExchangeEventObject { - buyer: string; - sold_id: BigNumber; - tokens_sold: BigNumber; - bought_id: BigNumber; - tokens_bought: BigNumber; -} -export type TokenExchangeEvent = TypedEvent< - [string, BigNumber, BigNumber, BigNumber, BigNumber], - TokenExchangeEventObject ->; - -export type TokenExchangeEventFilter = TypedEventFilter; - -export interface AddLiquidityEventObject { - provider: string; - token_amounts: [BigNumber, BigNumber, BigNumber]; - fee: BigNumber; - token_supply: BigNumber; -} -export type AddLiquidityEvent = TypedEvent< - [string, [BigNumber, BigNumber, BigNumber], BigNumber, BigNumber], - AddLiquidityEventObject ->; - -export type AddLiquidityEventFilter = TypedEventFilter; - -export interface RemoveLiquidityEventObject { - provider: string; - token_amounts: [BigNumber, BigNumber, BigNumber]; - token_supply: BigNumber; -} -export type RemoveLiquidityEvent = TypedEvent< - [string, [BigNumber, BigNumber, BigNumber], BigNumber], - RemoveLiquidityEventObject ->; - -export type RemoveLiquidityEventFilter = TypedEventFilter; - -export interface RemoveLiquidityOneEventObject { - provider: string; - token_amount: BigNumber; - coin_index: BigNumber; - coin_amount: BigNumber; -} -export type RemoveLiquidityOneEvent = TypedEvent< - [string, BigNumber, BigNumber, BigNumber], - RemoveLiquidityOneEventObject ->; - -export type RemoveLiquidityOneEventFilter = TypedEventFilter; - -export interface CommitNewAdminEventObject { - deadline: BigNumber; - admin: string; -} -export type CommitNewAdminEvent = TypedEvent<[BigNumber, string], CommitNewAdminEventObject>; - -export type CommitNewAdminEventFilter = TypedEventFilter; - -export interface NewAdminEventObject { - admin: string; -} -export type NewAdminEvent = TypedEvent<[string], NewAdminEventObject>; - -export type NewAdminEventFilter = TypedEventFilter; - -export interface CommitNewParametersEventObject { - deadline: BigNumber; - admin_fee: BigNumber; - mid_fee: BigNumber; - out_fee: BigNumber; - fee_gamma: BigNumber; - price_threshold: BigNumber; - adjustment_step: BigNumber; - ma_half_time: BigNumber; -} -export type CommitNewParametersEvent = TypedEvent< - [BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber], - CommitNewParametersEventObject ->; - -export type CommitNewParametersEventFilter = TypedEventFilter; - -export interface NewParametersEventObject { - admin_fee: BigNumber; - mid_fee: BigNumber; - out_fee: BigNumber; - fee_gamma: BigNumber; - price_threshold: BigNumber; - adjustment_step: BigNumber; - ma_half_time: BigNumber; -} -export type NewParametersEvent = TypedEvent< - [BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber], - NewParametersEventObject ->; - -export type NewParametersEventFilter = TypedEventFilter; - -export interface RampAgammaEventObject { - initial_A: BigNumber; - future_A: BigNumber; - initial_time: BigNumber; - future_time: BigNumber; -} -export type RampAgammaEvent = TypedEvent<[BigNumber, BigNumber, BigNumber, BigNumber], RampAgammaEventObject>; - -export type RampAgammaEventFilter = TypedEventFilter; - -export interface StopRampAEventObject { - current_A: BigNumber; - current_gamma: BigNumber; - time: BigNumber; -} -export type StopRampAEvent = TypedEvent<[BigNumber, BigNumber, BigNumber], StopRampAEventObject>; - -export type StopRampAEventFilter = TypedEventFilter; - -export interface ClaimAdminFeeEventObject { - admin: string; - tokens: BigNumber; -} -export type ClaimAdminFeeEvent = TypedEvent<[string, BigNumber], ClaimAdminFeeEventObject>; - -export type ClaimAdminFeeEventFilter = TypedEventFilter; - -export interface CurveV2Pool extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: CurveV2PoolInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined, - ): Promise>; - - listeners(eventFilter?: TypedEventFilter): Array>; - listeners(eventName?: string): Array; - removeAllListeners(eventFilter: TypedEventFilter): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - price_oracle(k: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber]>; - - price_scale(k: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber]>; - - last_prices(k: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber]>; - - token(overrides?: CallOverrides): Promise<[string]>; - - coins(i: PromiseOrValue, overrides?: CallOverrides): Promise<[string]>; - - A(overrides?: CallOverrides): Promise<[BigNumber]>; - - gamma(overrides?: CallOverrides): Promise<[BigNumber]>; - - A_precise(overrides?: CallOverrides): Promise<[BigNumber]>; - - fee(overrides?: CallOverrides): Promise<[BigNumber]>; - - fee_calc( - xp: [PromiseOrValue, PromiseOrValue, PromiseOrValue], - overrides?: CallOverrides, - ): Promise<[BigNumber]>; - - get_virtual_price(overrides?: CallOverrides): Promise<[BigNumber]>; - - 'exchange(uint256,uint256,uint256,uint256)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue }, - ): Promise; - - 'exchange(uint256,uint256,uint256,uint256,bool)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - use_eth: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue }, - ): Promise; - - get_dy( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - overrides?: CallOverrides, - ): Promise<[BigNumber]>; - - calc_token_fee( - amounts: [PromiseOrValue, PromiseOrValue, PromiseOrValue], - xp: [PromiseOrValue, PromiseOrValue, PromiseOrValue], - overrides?: CallOverrides, - ): Promise<[BigNumber]>; - - add_liquidity( - amounts: [PromiseOrValue, PromiseOrValue, PromiseOrValue], - min_mint_amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - remove_liquidity( - _amount: PromiseOrValue, - min_amounts: [PromiseOrValue, PromiseOrValue, PromiseOrValue], - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - calc_token_amount( - amounts: [PromiseOrValue, PromiseOrValue, PromiseOrValue], - deposit: PromiseOrValue, - overrides?: CallOverrides, - ): Promise<[BigNumber]>; - - calc_withdraw_one_coin( - token_amount: PromiseOrValue, - i: PromiseOrValue, - overrides?: CallOverrides, - ): Promise<[BigNumber]>; - - remove_liquidity_one_coin( - token_amount: PromiseOrValue, - i: PromiseOrValue, - min_amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - claim_admin_fees(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - ramp_A_gamma( - future_A: PromiseOrValue, - future_gamma: PromiseOrValue, - future_time: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - stop_ramp_A_gamma(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - commit_new_parameters( - _new_mid_fee: PromiseOrValue, - _new_out_fee: PromiseOrValue, - _new_admin_fee: PromiseOrValue, - _new_fee_gamma: PromiseOrValue, - _new_price_threshold: PromiseOrValue, - _new_adjustment_step: PromiseOrValue, - _new_ma_half_time: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - apply_new_parameters(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - revert_new_parameters(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - commit_transfer_ownership( - _owner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - apply_transfer_ownership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - revert_transfer_ownership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - kill_me(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - unkill_me(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - set_admin_fee_receiver( - _admin_fee_receiver: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - last_prices_timestamp(overrides?: CallOverrides): Promise<[BigNumber]>; - - initial_A_gamma(overrides?: CallOverrides): Promise<[BigNumber]>; - - future_A_gamma(overrides?: CallOverrides): Promise<[BigNumber]>; - - initial_A_gamma_time(overrides?: CallOverrides): Promise<[BigNumber]>; - - future_A_gamma_time(overrides?: CallOverrides): Promise<[BigNumber]>; - - price_threshold(overrides?: CallOverrides): Promise<[BigNumber]>; - - future_price_threshoold(overrides?: CallOverrides): Promise<[BigNumber]>; - - fee_gamma(overrides?: CallOverrides): Promise<[BigNumber]>; - - future_fee_gamma(overrides?: CallOverrides): Promise<[BigNumber]>; - - adjustment_step(overrides?: CallOverrides): Promise<[BigNumber]>; - - future_adjustment_step(overrides?: CallOverrides): Promise<[BigNumber]>; - - ma_half_time(overrides?: CallOverrides): Promise<[BigNumber]>; - - future_ma_half_time(overrides?: CallOverrides): Promise<[BigNumber]>; - - mid_fee(overrides?: CallOverrides): Promise<[BigNumber]>; - - out_fee(overrides?: CallOverrides): Promise<[BigNumber]>; - - admin_fee(overrides?: CallOverrides): Promise<[BigNumber]>; - - future_mid_fee(overrides?: CallOverrides): Promise<[BigNumber]>; - - future_out_fee(overrides?: CallOverrides): Promise<[BigNumber]>; - - future_admin_fee(overrides?: CallOverrides): Promise<[BigNumber]>; - - balances(arg0: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber]>; - - D(overrides?: CallOverrides): Promise<[BigNumber]>; - - owner(overrides?: CallOverrides): Promise<[string]>; - - future_owner(overrides?: CallOverrides): Promise<[string]>; - - xcp_profit(overrides?: CallOverrides): Promise<[BigNumber]>; - - xcp_profit_a(overrides?: CallOverrides): Promise<[BigNumber]>; - - virtual_price(overrides?: CallOverrides): Promise<[BigNumber]>; - - is_killed(overrides?: CallOverrides): Promise<[boolean]>; - - kill_deadline(overrides?: CallOverrides): Promise<[BigNumber]>; - - transfer_ownership_deadline(overrides?: CallOverrides): Promise<[BigNumber]>; - - admin_actions_deadline(overrides?: CallOverrides): Promise<[BigNumber]>; - - admin_fee_receiver(overrides?: CallOverrides): Promise<[string]>; - }; - - price_oracle(k: PromiseOrValue, overrides?: CallOverrides): Promise; - - price_scale(k: PromiseOrValue, overrides?: CallOverrides): Promise; - - last_prices(k: PromiseOrValue, overrides?: CallOverrides): Promise; - - token(overrides?: CallOverrides): Promise; - - coins(i: PromiseOrValue, overrides?: CallOverrides): Promise; - - A(overrides?: CallOverrides): Promise; - - gamma(overrides?: CallOverrides): Promise; - - A_precise(overrides?: CallOverrides): Promise; - - fee(overrides?: CallOverrides): Promise; - - fee_calc( - xp: [PromiseOrValue, PromiseOrValue, PromiseOrValue], - overrides?: CallOverrides, - ): Promise; - - get_virtual_price(overrides?: CallOverrides): Promise; - - 'exchange(uint256,uint256,uint256,uint256)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue }, - ): Promise; - - 'exchange(uint256,uint256,uint256,uint256,bool)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - use_eth: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue }, - ): Promise; - - get_dy( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - calc_token_fee( - amounts: [PromiseOrValue, PromiseOrValue, PromiseOrValue], - xp: [PromiseOrValue, PromiseOrValue, PromiseOrValue], - overrides?: CallOverrides, - ): Promise; - - add_liquidity( - amounts: [PromiseOrValue, PromiseOrValue, PromiseOrValue], - min_mint_amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - remove_liquidity( - _amount: PromiseOrValue, - min_amounts: [PromiseOrValue, PromiseOrValue, PromiseOrValue], - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - calc_token_amount( - amounts: [PromiseOrValue, PromiseOrValue, PromiseOrValue], - deposit: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - calc_withdraw_one_coin( - token_amount: PromiseOrValue, - i: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - remove_liquidity_one_coin( - token_amount: PromiseOrValue, - i: PromiseOrValue, - min_amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - claim_admin_fees(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - ramp_A_gamma( - future_A: PromiseOrValue, - future_gamma: PromiseOrValue, - future_time: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - stop_ramp_A_gamma(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - commit_new_parameters( - _new_mid_fee: PromiseOrValue, - _new_out_fee: PromiseOrValue, - _new_admin_fee: PromiseOrValue, - _new_fee_gamma: PromiseOrValue, - _new_price_threshold: PromiseOrValue, - _new_adjustment_step: PromiseOrValue, - _new_ma_half_time: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - apply_new_parameters(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - revert_new_parameters(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - commit_transfer_ownership( - _owner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - apply_transfer_ownership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - revert_transfer_ownership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - kill_me(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - unkill_me(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - set_admin_fee_receiver( - _admin_fee_receiver: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - last_prices_timestamp(overrides?: CallOverrides): Promise; - - initial_A_gamma(overrides?: CallOverrides): Promise; - - future_A_gamma(overrides?: CallOverrides): Promise; - - initial_A_gamma_time(overrides?: CallOverrides): Promise; - - future_A_gamma_time(overrides?: CallOverrides): Promise; - - price_threshold(overrides?: CallOverrides): Promise; - - future_price_threshoold(overrides?: CallOverrides): Promise; - - fee_gamma(overrides?: CallOverrides): Promise; - - future_fee_gamma(overrides?: CallOverrides): Promise; - - adjustment_step(overrides?: CallOverrides): Promise; - - future_adjustment_step(overrides?: CallOverrides): Promise; - - ma_half_time(overrides?: CallOverrides): Promise; - - future_ma_half_time(overrides?: CallOverrides): Promise; - - mid_fee(overrides?: CallOverrides): Promise; - - out_fee(overrides?: CallOverrides): Promise; - - admin_fee(overrides?: CallOverrides): Promise; - - future_mid_fee(overrides?: CallOverrides): Promise; - - future_out_fee(overrides?: CallOverrides): Promise; - - future_admin_fee(overrides?: CallOverrides): Promise; - - balances(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - D(overrides?: CallOverrides): Promise; - - owner(overrides?: CallOverrides): Promise; - - future_owner(overrides?: CallOverrides): Promise; - - xcp_profit(overrides?: CallOverrides): Promise; - - xcp_profit_a(overrides?: CallOverrides): Promise; - - virtual_price(overrides?: CallOverrides): Promise; - - is_killed(overrides?: CallOverrides): Promise; - - kill_deadline(overrides?: CallOverrides): Promise; - - transfer_ownership_deadline(overrides?: CallOverrides): Promise; - - admin_actions_deadline(overrides?: CallOverrides): Promise; - - admin_fee_receiver(overrides?: CallOverrides): Promise; - - callStatic: { - price_oracle(k: PromiseOrValue, overrides?: CallOverrides): Promise; - - price_scale(k: PromiseOrValue, overrides?: CallOverrides): Promise; - - last_prices(k: PromiseOrValue, overrides?: CallOverrides): Promise; - - token(overrides?: CallOverrides): Promise; - - coins(i: PromiseOrValue, overrides?: CallOverrides): Promise; - - A(overrides?: CallOverrides): Promise; - - gamma(overrides?: CallOverrides): Promise; - - A_precise(overrides?: CallOverrides): Promise; - - fee(overrides?: CallOverrides): Promise; - - fee_calc( - xp: [PromiseOrValue, PromiseOrValue, PromiseOrValue], - overrides?: CallOverrides, - ): Promise; - - get_virtual_price(overrides?: CallOverrides): Promise; - - 'exchange(uint256,uint256,uint256,uint256)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - 'exchange(uint256,uint256,uint256,uint256,bool)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - use_eth: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - get_dy( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - calc_token_fee( - amounts: [PromiseOrValue, PromiseOrValue, PromiseOrValue], - xp: [PromiseOrValue, PromiseOrValue, PromiseOrValue], - overrides?: CallOverrides, - ): Promise; - - add_liquidity( - amounts: [PromiseOrValue, PromiseOrValue, PromiseOrValue], - min_mint_amount: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - remove_liquidity( - _amount: PromiseOrValue, - min_amounts: [PromiseOrValue, PromiseOrValue, PromiseOrValue], - overrides?: CallOverrides, - ): Promise; - - calc_token_amount( - amounts: [PromiseOrValue, PromiseOrValue, PromiseOrValue], - deposit: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - calc_withdraw_one_coin( - token_amount: PromiseOrValue, - i: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - remove_liquidity_one_coin( - token_amount: PromiseOrValue, - i: PromiseOrValue, - min_amount: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - claim_admin_fees(overrides?: CallOverrides): Promise; - - ramp_A_gamma( - future_A: PromiseOrValue, - future_gamma: PromiseOrValue, - future_time: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - stop_ramp_A_gamma(overrides?: CallOverrides): Promise; - - commit_new_parameters( - _new_mid_fee: PromiseOrValue, - _new_out_fee: PromiseOrValue, - _new_admin_fee: PromiseOrValue, - _new_fee_gamma: PromiseOrValue, - _new_price_threshold: PromiseOrValue, - _new_adjustment_step: PromiseOrValue, - _new_ma_half_time: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - apply_new_parameters(overrides?: CallOverrides): Promise; - - revert_new_parameters(overrides?: CallOverrides): Promise; - - commit_transfer_ownership(_owner: PromiseOrValue, overrides?: CallOverrides): Promise; - - apply_transfer_ownership(overrides?: CallOverrides): Promise; - - revert_transfer_ownership(overrides?: CallOverrides): Promise; - - kill_me(overrides?: CallOverrides): Promise; - - unkill_me(overrides?: CallOverrides): Promise; - - set_admin_fee_receiver(_admin_fee_receiver: PromiseOrValue, overrides?: CallOverrides): Promise; - - last_prices_timestamp(overrides?: CallOverrides): Promise; - - initial_A_gamma(overrides?: CallOverrides): Promise; - - future_A_gamma(overrides?: CallOverrides): Promise; - - initial_A_gamma_time(overrides?: CallOverrides): Promise; - - future_A_gamma_time(overrides?: CallOverrides): Promise; - - price_threshold(overrides?: CallOverrides): Promise; - - future_price_threshoold(overrides?: CallOverrides): Promise; - - fee_gamma(overrides?: CallOverrides): Promise; - - future_fee_gamma(overrides?: CallOverrides): Promise; - - adjustment_step(overrides?: CallOverrides): Promise; - - future_adjustment_step(overrides?: CallOverrides): Promise; - - ma_half_time(overrides?: CallOverrides): Promise; - - future_ma_half_time(overrides?: CallOverrides): Promise; - - mid_fee(overrides?: CallOverrides): Promise; - - out_fee(overrides?: CallOverrides): Promise; - - admin_fee(overrides?: CallOverrides): Promise; - - future_mid_fee(overrides?: CallOverrides): Promise; - - future_out_fee(overrides?: CallOverrides): Promise; - - future_admin_fee(overrides?: CallOverrides): Promise; - - balances(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - D(overrides?: CallOverrides): Promise; - - owner(overrides?: CallOverrides): Promise; - - future_owner(overrides?: CallOverrides): Promise; - - xcp_profit(overrides?: CallOverrides): Promise; - - xcp_profit_a(overrides?: CallOverrides): Promise; - - virtual_price(overrides?: CallOverrides): Promise; - - is_killed(overrides?: CallOverrides): Promise; - - kill_deadline(overrides?: CallOverrides): Promise; - - transfer_ownership_deadline(overrides?: CallOverrides): Promise; - - admin_actions_deadline(overrides?: CallOverrides): Promise; - - admin_fee_receiver(overrides?: CallOverrides): Promise; - }; - - filters: { - 'TokenExchange(address,uint256,uint256,uint256,uint256)'( - buyer?: PromiseOrValue | null, - sold_id?: null, - tokens_sold?: null, - bought_id?: null, - tokens_bought?: null, - ): TokenExchangeEventFilter; - TokenExchange( - buyer?: PromiseOrValue | null, - sold_id?: null, - tokens_sold?: null, - bought_id?: null, - tokens_bought?: null, - ): TokenExchangeEventFilter; - - 'AddLiquidity(address,uint256[3],uint256,uint256)'( - provider?: PromiseOrValue | null, - token_amounts?: null, - fee?: null, - token_supply?: null, - ): AddLiquidityEventFilter; - AddLiquidity( - provider?: PromiseOrValue | null, - token_amounts?: null, - fee?: null, - token_supply?: null, - ): AddLiquidityEventFilter; - - 'RemoveLiquidity(address,uint256[3],uint256)'( - provider?: PromiseOrValue | null, - token_amounts?: null, - token_supply?: null, - ): RemoveLiquidityEventFilter; - RemoveLiquidity( - provider?: PromiseOrValue | null, - token_amounts?: null, - token_supply?: null, - ): RemoveLiquidityEventFilter; - - 'RemoveLiquidityOne(address,uint256,uint256,uint256)'( - provider?: PromiseOrValue | null, - token_amount?: null, - coin_index?: null, - coin_amount?: null, - ): RemoveLiquidityOneEventFilter; - RemoveLiquidityOne( - provider?: PromiseOrValue | null, - token_amount?: null, - coin_index?: null, - coin_amount?: null, - ): RemoveLiquidityOneEventFilter; - - 'CommitNewAdmin(uint256,address)'( - deadline?: PromiseOrValue | null, - admin?: PromiseOrValue | null, - ): CommitNewAdminEventFilter; - CommitNewAdmin( - deadline?: PromiseOrValue | null, - admin?: PromiseOrValue | null, - ): CommitNewAdminEventFilter; - - 'NewAdmin(address)'(admin?: PromiseOrValue | null): NewAdminEventFilter; - NewAdmin(admin?: PromiseOrValue | null): NewAdminEventFilter; - - 'CommitNewParameters(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)'( - deadline?: PromiseOrValue | null, - admin_fee?: null, - mid_fee?: null, - out_fee?: null, - fee_gamma?: null, - price_threshold?: null, - adjustment_step?: null, - ma_half_time?: null, - ): CommitNewParametersEventFilter; - CommitNewParameters( - deadline?: PromiseOrValue | null, - admin_fee?: null, - mid_fee?: null, - out_fee?: null, - fee_gamma?: null, - price_threshold?: null, - adjustment_step?: null, - ma_half_time?: null, - ): CommitNewParametersEventFilter; - - 'NewParameters(uint256,uint256,uint256,uint256,uint256,uint256,uint256)'( - admin_fee?: null, - mid_fee?: null, - out_fee?: null, - fee_gamma?: null, - price_threshold?: null, - adjustment_step?: null, - ma_half_time?: null, - ): NewParametersEventFilter; - NewParameters( - admin_fee?: null, - mid_fee?: null, - out_fee?: null, - fee_gamma?: null, - price_threshold?: null, - adjustment_step?: null, - ma_half_time?: null, - ): NewParametersEventFilter; - - 'RampAgamma(uint256,uint256,uint256,uint256)'( - initial_A?: null, - future_A?: null, - initial_time?: null, - future_time?: null, - ): RampAgammaEventFilter; - RampAgamma(initial_A?: null, future_A?: null, initial_time?: null, future_time?: null): RampAgammaEventFilter; - - 'StopRampA(uint256,uint256,uint256)'(current_A?: null, current_gamma?: null, time?: null): StopRampAEventFilter; - StopRampA(current_A?: null, current_gamma?: null, time?: null): StopRampAEventFilter; - - 'ClaimAdminFee(address,uint256)'(admin?: PromiseOrValue | null, tokens?: null): ClaimAdminFeeEventFilter; - ClaimAdminFee(admin?: PromiseOrValue | null, tokens?: null): ClaimAdminFeeEventFilter; - }; - - estimateGas: { - price_oracle(k: PromiseOrValue, overrides?: CallOverrides): Promise; - - price_scale(k: PromiseOrValue, overrides?: CallOverrides): Promise; - - last_prices(k: PromiseOrValue, overrides?: CallOverrides): Promise; - - token(overrides?: CallOverrides): Promise; - - coins(i: PromiseOrValue, overrides?: CallOverrides): Promise; - - A(overrides?: CallOverrides): Promise; - - gamma(overrides?: CallOverrides): Promise; - - A_precise(overrides?: CallOverrides): Promise; - - fee(overrides?: CallOverrides): Promise; - - fee_calc( - xp: [PromiseOrValue, PromiseOrValue, PromiseOrValue], - overrides?: CallOverrides, - ): Promise; - - get_virtual_price(overrides?: CallOverrides): Promise; - - 'exchange(uint256,uint256,uint256,uint256)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue }, - ): Promise; - - 'exchange(uint256,uint256,uint256,uint256,bool)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - use_eth: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue }, - ): Promise; - - get_dy( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - calc_token_fee( - amounts: [PromiseOrValue, PromiseOrValue, PromiseOrValue], - xp: [PromiseOrValue, PromiseOrValue, PromiseOrValue], - overrides?: CallOverrides, - ): Promise; - - add_liquidity( - amounts: [PromiseOrValue, PromiseOrValue, PromiseOrValue], - min_mint_amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - remove_liquidity( - _amount: PromiseOrValue, - min_amounts: [PromiseOrValue, PromiseOrValue, PromiseOrValue], - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - calc_token_amount( - amounts: [PromiseOrValue, PromiseOrValue, PromiseOrValue], - deposit: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - calc_withdraw_one_coin( - token_amount: PromiseOrValue, - i: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - remove_liquidity_one_coin( - token_amount: PromiseOrValue, - i: PromiseOrValue, - min_amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - claim_admin_fees(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - ramp_A_gamma( - future_A: PromiseOrValue, - future_gamma: PromiseOrValue, - future_time: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - stop_ramp_A_gamma(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - commit_new_parameters( - _new_mid_fee: PromiseOrValue, - _new_out_fee: PromiseOrValue, - _new_admin_fee: PromiseOrValue, - _new_fee_gamma: PromiseOrValue, - _new_price_threshold: PromiseOrValue, - _new_adjustment_step: PromiseOrValue, - _new_ma_half_time: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - apply_new_parameters(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - revert_new_parameters(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - commit_transfer_ownership( - _owner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - apply_transfer_ownership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - revert_transfer_ownership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - kill_me(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - unkill_me(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - set_admin_fee_receiver( - _admin_fee_receiver: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - last_prices_timestamp(overrides?: CallOverrides): Promise; - - initial_A_gamma(overrides?: CallOverrides): Promise; - - future_A_gamma(overrides?: CallOverrides): Promise; - - initial_A_gamma_time(overrides?: CallOverrides): Promise; - - future_A_gamma_time(overrides?: CallOverrides): Promise; - - price_threshold(overrides?: CallOverrides): Promise; - - future_price_threshoold(overrides?: CallOverrides): Promise; - - fee_gamma(overrides?: CallOverrides): Promise; - - future_fee_gamma(overrides?: CallOverrides): Promise; - - adjustment_step(overrides?: CallOverrides): Promise; - - future_adjustment_step(overrides?: CallOverrides): Promise; - - ma_half_time(overrides?: CallOverrides): Promise; - - future_ma_half_time(overrides?: CallOverrides): Promise; - - mid_fee(overrides?: CallOverrides): Promise; - - out_fee(overrides?: CallOverrides): Promise; - - admin_fee(overrides?: CallOverrides): Promise; - - future_mid_fee(overrides?: CallOverrides): Promise; - - future_out_fee(overrides?: CallOverrides): Promise; - - future_admin_fee(overrides?: CallOverrides): Promise; - - balances(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - D(overrides?: CallOverrides): Promise; - - owner(overrides?: CallOverrides): Promise; - - future_owner(overrides?: CallOverrides): Promise; - - xcp_profit(overrides?: CallOverrides): Promise; - - xcp_profit_a(overrides?: CallOverrides): Promise; - - virtual_price(overrides?: CallOverrides): Promise; - - is_killed(overrides?: CallOverrides): Promise; - - kill_deadline(overrides?: CallOverrides): Promise; - - transfer_ownership_deadline(overrides?: CallOverrides): Promise; - - admin_actions_deadline(overrides?: CallOverrides): Promise; - - admin_fee_receiver(overrides?: CallOverrides): Promise; - }; - - populateTransaction: { - price_oracle(k: PromiseOrValue, overrides?: CallOverrides): Promise; - - price_scale(k: PromiseOrValue, overrides?: CallOverrides): Promise; - - last_prices(k: PromiseOrValue, overrides?: CallOverrides): Promise; - - token(overrides?: CallOverrides): Promise; - - coins(i: PromiseOrValue, overrides?: CallOverrides): Promise; - - A(overrides?: CallOverrides): Promise; - - gamma(overrides?: CallOverrides): Promise; - - A_precise(overrides?: CallOverrides): Promise; - - fee(overrides?: CallOverrides): Promise; - - fee_calc( - xp: [PromiseOrValue, PromiseOrValue, PromiseOrValue], - overrides?: CallOverrides, - ): Promise; - - get_virtual_price(overrides?: CallOverrides): Promise; - - 'exchange(uint256,uint256,uint256,uint256)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue }, - ): Promise; - - 'exchange(uint256,uint256,uint256,uint256,bool)'( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - min_dy: PromiseOrValue, - use_eth: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue }, - ): Promise; - - get_dy( - i: PromiseOrValue, - j: PromiseOrValue, - dx: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - calc_token_fee( - amounts: [PromiseOrValue, PromiseOrValue, PromiseOrValue], - xp: [PromiseOrValue, PromiseOrValue, PromiseOrValue], - overrides?: CallOverrides, - ): Promise; - - add_liquidity( - amounts: [PromiseOrValue, PromiseOrValue, PromiseOrValue], - min_mint_amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - remove_liquidity( - _amount: PromiseOrValue, - min_amounts: [PromiseOrValue, PromiseOrValue, PromiseOrValue], - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - calc_token_amount( - amounts: [PromiseOrValue, PromiseOrValue, PromiseOrValue], - deposit: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - calc_withdraw_one_coin( - token_amount: PromiseOrValue, - i: PromiseOrValue, - overrides?: CallOverrides, - ): Promise; - - remove_liquidity_one_coin( - token_amount: PromiseOrValue, - i: PromiseOrValue, - min_amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - claim_admin_fees(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - ramp_A_gamma( - future_A: PromiseOrValue, - future_gamma: PromiseOrValue, - future_time: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - stop_ramp_A_gamma(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - commit_new_parameters( - _new_mid_fee: PromiseOrValue, - _new_out_fee: PromiseOrValue, - _new_admin_fee: PromiseOrValue, - _new_fee_gamma: PromiseOrValue, - _new_price_threshold: PromiseOrValue, - _new_adjustment_step: PromiseOrValue, - _new_ma_half_time: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - apply_new_parameters(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - revert_new_parameters(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - commit_transfer_ownership( - _owner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - apply_transfer_ownership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - revert_transfer_ownership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - kill_me(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - unkill_me(overrides?: Overrides & { from?: PromiseOrValue }): Promise; - - set_admin_fee_receiver( - _admin_fee_receiver: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue }, - ): Promise; - - last_prices_timestamp(overrides?: CallOverrides): Promise; - - initial_A_gamma(overrides?: CallOverrides): Promise; - - future_A_gamma(overrides?: CallOverrides): Promise; - - initial_A_gamma_time(overrides?: CallOverrides): Promise; - - future_A_gamma_time(overrides?: CallOverrides): Promise; - - price_threshold(overrides?: CallOverrides): Promise; - - future_price_threshoold(overrides?: CallOverrides): Promise; - - fee_gamma(overrides?: CallOverrides): Promise; - - future_fee_gamma(overrides?: CallOverrides): Promise; - - adjustment_step(overrides?: CallOverrides): Promise; - - future_adjustment_step(overrides?: CallOverrides): Promise; - - ma_half_time(overrides?: CallOverrides): Promise; - - future_ma_half_time(overrides?: CallOverrides): Promise; - - mid_fee(overrides?: CallOverrides): Promise; - - out_fee(overrides?: CallOverrides): Promise; - - admin_fee(overrides?: CallOverrides): Promise; - - future_mid_fee(overrides?: CallOverrides): Promise; - - future_out_fee(overrides?: CallOverrides): Promise; - - future_admin_fee(overrides?: CallOverrides): Promise; - - balances(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; - - D(overrides?: CallOverrides): Promise; - - owner(overrides?: CallOverrides): Promise; - - future_owner(overrides?: CallOverrides): Promise; - - xcp_profit(overrides?: CallOverrides): Promise; - - xcp_profit_a(overrides?: CallOverrides): Promise; - - virtual_price(overrides?: CallOverrides): Promise; - - is_killed(overrides?: CallOverrides): Promise; - - kill_deadline(overrides?: CallOverrides): Promise; - - transfer_ownership_deadline(overrides?: CallOverrides): Promise; - - admin_actions_deadline(overrides?: CallOverrides): Promise; - - admin_fee_receiver(overrides?: CallOverrides): Promise; - }; -} diff --git a/src/apps/curve/contracts/ethers/factories/CurveSingleRewardStream__factory.ts b/src/apps/curve/contracts/ethers/factories/CurveAddressResolver__factory.ts similarity index 56% rename from src/apps/curve/contracts/ethers/factories/CurveSingleRewardStream__factory.ts rename to src/apps/curve/contracts/ethers/factories/CurveAddressResolver__factory.ts index 3325f97c1..a5fc2e913 100644 --- a/src/apps/curve/contracts/ethers/factories/CurveSingleRewardStream__factory.ts +++ b/src/apps/curve/contracts/ethers/factories/CurveAddressResolver__factory.ts @@ -4,263 +4,311 @@ import { Contract, Signer, utils } from 'ethers'; import type { Provider } from '@ethersproject/providers'; -import type { CurveSingleRewardStream, CurveSingleRewardStreamInterface } from '../CurveSingleRewardStream'; +import type { CurveAddressResolver, CurveAddressResolverInterface } from '../CurveAddressResolver'; const _abi = [ { - stateMutability: 'nonpayable', - type: 'constructor', + name: 'NewAddressIdentifier', inputs: [ { - name: '_owner', - type: 'address', + type: 'uint256', + name: 'id', + indexed: true, }, { - name: '_distributor', type: 'address', + name: 'addr', + indexed: false, + }, + { + type: 'string', + name: 'description', + indexed: false, + }, + ], + anonymous: false, + type: 'event', + }, + { + name: 'AddressModified', + inputs: [ + { + type: 'uint256', + name: 'id', + indexed: true, }, { - name: '_token', type: 'address', + name: 'new_address', + indexed: false, }, { - name: '_duration', type: 'uint256', + name: 'version', + indexed: false, }, ], - outputs: [], + anonymous: false, + type: 'event', }, { - stateMutability: 'nonpayable', - type: 'function', - name: 'add_receiver', + name: 'CommitNewAdmin', inputs: [ { - name: '_receiver', + type: 'uint256', + name: 'deadline', + indexed: true, + }, + { type: 'address', + name: 'admin', + indexed: true, }, ], - outputs: [], + anonymous: false, + type: 'event', }, { - stateMutability: 'nonpayable', - type: 'function', - name: 'remove_receiver', + name: 'NewAdmin', inputs: [ { - name: '_receiver', type: 'address', + name: 'admin', + indexed: true, }, ], - outputs: [], + anonymous: false, + type: 'event', }, { - stateMutability: 'nonpayable', - type: 'function', - name: 'get_reward', - inputs: [], outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - name: 'notify_reward_amount', inputs: [ { - name: '_amount', - type: 'uint256', + type: 'address', + name: '_admin', }, ], - outputs: [], + stateMutability: 'nonpayable', + type: 'constructor', }, { - stateMutability: 'nonpayable', + name: 'get_registry', + outputs: [ + { + type: 'address', + name: '', + }, + ], + inputs: [], + stateMutability: 'view', type: 'function', - name: 'set_reward_duration', - inputs: [ + }, + { + name: 'max_id', + outputs: [ { - name: '_duration', type: 'uint256', + name: '', }, ], - outputs: [], + inputs: [], + stateMutability: 'view', + type: 'function', }, { - stateMutability: 'nonpayable', - type: 'function', - name: 'set_reward_distributor', - inputs: [ + name: 'get_address', + outputs: [ { - name: '_distributor', type: 'address', + name: '', }, ], - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - name: 'commit_transfer_ownership', inputs: [ { - name: '_owner', - type: 'address', + type: 'uint256', + name: '_id', }, ], - outputs: [], - }, - { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', - name: 'accept_transfer_ownership', - inputs: [], - outputs: [], }, { - stateMutability: 'view', - type: 'function', - name: 'owner', - inputs: [], + name: 'add_new_id', outputs: [ { + type: 'uint256', name: '', + }, + ], + inputs: [ + { type: 'address', + name: '_address', + }, + { + type: 'string', + name: '_description', }, ], + stateMutability: 'nonpayable', + type: 'function', }, { - stateMutability: 'view', - type: 'function', - name: 'future_owner', - inputs: [], + name: 'set_address', outputs: [ { + type: 'bool', name: '', + }, + ], + inputs: [ + { + type: 'uint256', + name: '_id', + }, + { type: 'address', + name: '_address', }, ], + stateMutability: 'nonpayable', + type: 'function', }, { - stateMutability: 'view', - type: 'function', - name: 'distributor', - inputs: [], + name: 'unset_address', outputs: [ { + type: 'bool', name: '', - type: 'address', }, ], + inputs: [ + { + type: 'uint256', + name: '_id', + }, + ], + stateMutability: 'nonpayable', + type: 'function', }, { - stateMutability: 'view', - type: 'function', - name: 'reward_token', - inputs: [], + name: 'commit_transfer_ownership', outputs: [ { + type: 'bool', name: '', + }, + ], + inputs: [ + { type: 'address', + name: '_new_admin', }, ], + stateMutability: 'nonpayable', + type: 'function', }, { - stateMutability: 'view', - type: 'function', - name: 'period_finish', - inputs: [], + name: 'apply_transfer_ownership', outputs: [ { + type: 'bool', name: '', - type: 'uint256', }, ], + inputs: [], + stateMutability: 'nonpayable', + type: 'function', }, { - stateMutability: 'view', - type: 'function', - name: 'reward_rate', - inputs: [], + name: 'revert_transfer_ownership', outputs: [ { + type: 'bool', name: '', - type: 'uint256', }, ], + inputs: [], + stateMutability: 'nonpayable', + type: 'function', }, { - stateMutability: 'view', - type: 'function', - name: 'reward_duration', - inputs: [], + name: 'admin', outputs: [ { + type: 'address', name: '', - type: 'uint256', }, ], - }, - { + inputs: [], stateMutability: 'view', type: 'function', - name: 'last_update_time', - inputs: [], + }, + { + name: 'transfer_ownership_deadline', outputs: [ { - name: '', type: 'uint256', + name: '', }, ], - }, - { + inputs: [], stateMutability: 'view', type: 'function', - name: 'reward_per_receiver_total', - inputs: [], + }, + { + name: 'future_admin', outputs: [ { + type: 'address', name: '', - type: 'uint256', }, ], - }, - { + inputs: [], stateMutability: 'view', type: 'function', - name: 'receiver_count', - inputs: [], + }, + { + name: 'get_id_info', outputs: [ { - name: '', + type: 'address', + name: 'addr', + }, + { + type: 'bool', + name: 'is_active', + }, + { type: 'uint256', + name: 'version', }, - ], - }, - { - stateMutability: 'view', - type: 'function', - name: 'reward_receivers', - inputs: [ { - name: 'arg0', - type: 'address', + type: 'uint256', + name: 'last_modified', + }, + { + type: 'string', + name: 'description', }, ], - outputs: [ + inputs: [ { - name: '', - type: 'bool', + type: 'uint256', + name: 'arg0', }, ], + stateMutability: 'view', + type: 'function', }, ]; -export class CurveSingleRewardStream__factory { +export class CurveAddressResolver__factory { static readonly abi = _abi; - static createInterface(): CurveSingleRewardStreamInterface { - return new utils.Interface(_abi) as CurveSingleRewardStreamInterface; + static createInterface(): CurveAddressResolverInterface { + return new utils.Interface(_abi) as CurveAddressResolverInterface; } - static connect(address: string, signerOrProvider: Signer | Provider): CurveSingleRewardStream { - return new Contract(address, _abi, signerOrProvider) as CurveSingleRewardStream; + static connect(address: string, signerOrProvider: Signer | Provider): CurveAddressResolver { + return new Contract(address, _abi, signerOrProvider) as CurveAddressResolver; } } diff --git a/src/apps/curve/contracts/ethers/factories/CurveCryptoFactory__factory.ts b/src/apps/curve/contracts/ethers/factories/CurveCryptoFactory__factory.ts new file mode 100644 index 000000000..a61c2f542 --- /dev/null +++ b/src/apps/curve/contracts/ethers/factories/CurveCryptoFactory__factory.ts @@ -0,0 +1,653 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from 'ethers'; +import type { Provider } from '@ethersproject/providers'; +import type { CurveCryptoFactory, CurveCryptoFactoryInterface } from '../CurveCryptoFactory'; + +const _abi = [ + { + name: 'CryptoPoolDeployed', + inputs: [ + { + name: 'token', + type: 'address', + indexed: false, + }, + { + name: 'coins', + type: 'address[2]', + indexed: false, + }, + { + name: 'A', + type: 'uint256', + indexed: false, + }, + { + name: 'gamma', + type: 'uint256', + indexed: false, + }, + { + name: 'mid_fee', + type: 'uint256', + indexed: false, + }, + { + name: 'out_fee', + type: 'uint256', + indexed: false, + }, + { + name: 'allowed_extra_profit', + type: 'uint256', + indexed: false, + }, + { + name: 'fee_gamma', + type: 'uint256', + indexed: false, + }, + { + name: 'adjustment_step', + type: 'uint256', + indexed: false, + }, + { + name: 'admin_fee', + type: 'uint256', + indexed: false, + }, + { + name: 'ma_half_time', + type: 'uint256', + indexed: false, + }, + { + name: 'initial_price', + type: 'uint256', + indexed: false, + }, + { + name: 'deployer', + type: 'address', + indexed: false, + }, + ], + anonymous: false, + type: 'event', + }, + { + name: 'LiquidityGaugeDeployed', + inputs: [ + { + name: 'pool', + type: 'address', + indexed: false, + }, + { + name: 'token', + type: 'address', + indexed: false, + }, + { + name: 'gauge', + type: 'address', + indexed: false, + }, + ], + anonymous: false, + type: 'event', + }, + { + name: 'UpdateFeeReceiver', + inputs: [ + { + name: '_old_fee_receiver', + type: 'address', + indexed: false, + }, + { + name: '_new_fee_receiver', + type: 'address', + indexed: false, + }, + ], + anonymous: false, + type: 'event', + }, + { + name: 'UpdatePoolImplementation', + inputs: [ + { + name: '_old_pool_implementation', + type: 'address', + indexed: false, + }, + { + name: '_new_pool_implementation', + type: 'address', + indexed: false, + }, + ], + anonymous: false, + type: 'event', + }, + { + name: 'UpdateTokenImplementation', + inputs: [ + { + name: '_old_token_implementation', + type: 'address', + indexed: false, + }, + { + name: '_new_token_implementation', + type: 'address', + indexed: false, + }, + ], + anonymous: false, + type: 'event', + }, + { + name: 'UpdateGaugeImplementation', + inputs: [ + { + name: '_old_gauge_implementation', + type: 'address', + indexed: false, + }, + { + name: '_new_gauge_implementation', + type: 'address', + indexed: false, + }, + ], + anonymous: false, + type: 'event', + }, + { + name: 'TransferOwnership', + inputs: [ + { + name: '_old_owner', + type: 'address', + indexed: false, + }, + { + name: '_new_owner', + type: 'address', + indexed: false, + }, + ], + anonymous: false, + type: 'event', + }, + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { + name: '_fee_receiver', + type: 'address', + }, + { + name: '_pool_implementation', + type: 'address', + }, + { + name: '_token_implementation', + type: 'address', + }, + { + name: '_gauge_implementation', + type: 'address', + }, + { + name: '_weth', + type: 'address', + }, + ], + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + name: 'deploy_pool', + inputs: [ + { + name: '_name', + type: 'string', + }, + { + name: '_symbol', + type: 'string', + }, + { + name: '_coins', + type: 'address[2]', + }, + { + name: 'A', + type: 'uint256', + }, + { + name: 'gamma', + type: 'uint256', + }, + { + name: 'mid_fee', + type: 'uint256', + }, + { + name: 'out_fee', + type: 'uint256', + }, + { + name: 'allowed_extra_profit', + type: 'uint256', + }, + { + name: 'fee_gamma', + type: 'uint256', + }, + { + name: 'adjustment_step', + type: 'uint256', + }, + { + name: 'admin_fee', + type: 'uint256', + }, + { + name: 'ma_half_time', + type: 'uint256', + }, + { + name: 'initial_price', + type: 'uint256', + }, + ], + outputs: [ + { + name: '', + type: 'address', + }, + ], + }, + { + stateMutability: 'nonpayable', + type: 'function', + name: 'deploy_gauge', + inputs: [ + { + name: '_pool', + type: 'address', + }, + ], + outputs: [ + { + name: '', + type: 'address', + }, + ], + }, + { + stateMutability: 'nonpayable', + type: 'function', + name: 'set_fee_receiver', + inputs: [ + { + name: '_fee_receiver', + type: 'address', + }, + ], + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + name: 'set_pool_implementation', + inputs: [ + { + name: '_pool_implementation', + type: 'address', + }, + ], + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + name: 'set_token_implementation', + inputs: [ + { + name: '_token_implementation', + type: 'address', + }, + ], + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + name: 'set_gauge_implementation', + inputs: [ + { + name: '_gauge_implementation', + type: 'address', + }, + ], + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + name: 'commit_transfer_ownership', + inputs: [ + { + name: '_addr', + type: 'address', + }, + ], + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + name: 'accept_transfer_ownership', + inputs: [], + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + name: 'find_pool_for_coins', + inputs: [ + { + name: '_from', + type: 'address', + }, + { + name: '_to', + type: 'address', + }, + ], + outputs: [ + { + name: '', + type: 'address', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + name: 'find_pool_for_coins', + inputs: [ + { + name: '_from', + type: 'address', + }, + { + name: '_to', + type: 'address', + }, + { + name: 'i', + type: 'uint256', + }, + ], + outputs: [ + { + name: '', + type: 'address', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + name: 'get_coins', + inputs: [ + { + name: '_pool', + type: 'address', + }, + ], + outputs: [ + { + name: '', + type: 'address[2]', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + name: 'get_decimals', + inputs: [ + { + name: '_pool', + type: 'address', + }, + ], + outputs: [ + { + name: '', + type: 'uint256[2]', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + name: 'get_balances', + inputs: [ + { + name: '_pool', + type: 'address', + }, + ], + outputs: [ + { + name: '', + type: 'uint256[2]', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + name: 'get_coin_indices', + inputs: [ + { + name: '_pool', + type: 'address', + }, + { + name: '_from', + type: 'address', + }, + { + name: '_to', + type: 'address', + }, + ], + outputs: [ + { + name: '', + type: 'uint256', + }, + { + name: '', + type: 'uint256', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + name: 'get_gauge', + inputs: [ + { + name: '_pool', + type: 'address', + }, + ], + outputs: [ + { + name: '', + type: 'address', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + name: 'get_eth_index', + inputs: [ + { + name: '_pool', + type: 'address', + }, + ], + outputs: [ + { + name: '', + type: 'uint256', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + name: 'get_token', + inputs: [ + { + name: '_pool', + type: 'address', + }, + ], + outputs: [ + { + name: '', + type: 'address', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + name: 'admin', + inputs: [], + outputs: [ + { + name: '', + type: 'address', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + name: 'future_admin', + inputs: [], + outputs: [ + { + name: '', + type: 'address', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + name: 'fee_receiver', + inputs: [], + outputs: [ + { + name: '', + type: 'address', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + name: 'pool_implementation', + inputs: [], + outputs: [ + { + name: '', + type: 'address', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + name: 'token_implementation', + inputs: [], + outputs: [ + { + name: '', + type: 'address', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + name: 'gauge_implementation', + inputs: [], + outputs: [ + { + name: '', + type: 'address', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + name: 'pool_count', + inputs: [], + outputs: [ + { + name: '', + type: 'uint256', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + name: 'pool_list', + inputs: [ + { + name: 'arg0', + type: 'uint256', + }, + ], + outputs: [ + { + name: '', + type: 'address', + }, + ], + }, +]; + +export class CurveCryptoFactory__factory { + static readonly abi = _abi; + static createInterface(): CurveCryptoFactoryInterface { + return new utils.Interface(_abi) as CurveCryptoFactoryInterface; + } + static connect(address: string, signerOrProvider: Signer | Provider): CurveCryptoFactory { + return new Contract(address, _abi, signerOrProvider) as CurveCryptoFactory; + } +} diff --git a/src/apps/curve/contracts/ethers/factories/CurveCryptoPool__factory.ts b/src/apps/curve/contracts/ethers/factories/CurveCryptoPool__factory.ts deleted file mode 100644 index 6f4697996..000000000 --- a/src/apps/curve/contracts/ethers/factories/CurveCryptoPool__factory.ts +++ /dev/null @@ -1,1385 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Signer, utils } from 'ethers'; -import type { Provider } from '@ethersproject/providers'; -import type { CurveCryptoPool, CurveCryptoPoolInterface } from '../CurveCryptoPool'; - -const _abi = [ - { - name: 'TokenExchange', - inputs: [ - { - name: 'buyer', - type: 'address', - indexed: true, - }, - { - name: 'sold_id', - type: 'uint256', - indexed: false, - }, - { - name: 'tokens_sold', - type: 'uint256', - indexed: false, - }, - { - name: 'bought_id', - type: 'uint256', - indexed: false, - }, - { - name: 'tokens_bought', - type: 'uint256', - indexed: false, - }, - ], - anonymous: false, - type: 'event', - }, - { - name: 'AddLiquidity', - inputs: [ - { - name: 'provider', - type: 'address', - indexed: true, - }, - { - name: 'token_amounts', - type: 'uint256[2]', - indexed: false, - }, - { - name: 'fee', - type: 'uint256', - indexed: false, - }, - { - name: 'token_supply', - type: 'uint256', - indexed: false, - }, - ], - anonymous: false, - type: 'event', - }, - { - name: 'RemoveLiquidity', - inputs: [ - { - name: 'provider', - type: 'address', - indexed: true, - }, - { - name: 'token_amounts', - type: 'uint256[2]', - indexed: false, - }, - { - name: 'token_supply', - type: 'uint256', - indexed: false, - }, - ], - anonymous: false, - type: 'event', - }, - { - name: 'RemoveLiquidityOne', - inputs: [ - { - name: 'provider', - type: 'address', - indexed: true, - }, - { - name: 'token_amount', - type: 'uint256', - indexed: false, - }, - { - name: 'coin_index', - type: 'uint256', - indexed: false, - }, - { - name: 'coin_amount', - type: 'uint256', - indexed: false, - }, - ], - anonymous: false, - type: 'event', - }, - { - name: 'CommitNewParameters', - inputs: [ - { - name: 'deadline', - type: 'uint256', - indexed: true, - }, - { - name: 'admin_fee', - type: 'uint256', - indexed: false, - }, - { - name: 'mid_fee', - type: 'uint256', - indexed: false, - }, - { - name: 'out_fee', - type: 'uint256', - indexed: false, - }, - { - name: 'fee_gamma', - type: 'uint256', - indexed: false, - }, - { - name: 'allowed_extra_profit', - type: 'uint256', - indexed: false, - }, - { - name: 'adjustment_step', - type: 'uint256', - indexed: false, - }, - { - name: 'ma_half_time', - type: 'uint256', - indexed: false, - }, - ], - anonymous: false, - type: 'event', - }, - { - name: 'NewParameters', - inputs: [ - { - name: 'admin_fee', - type: 'uint256', - indexed: false, - }, - { - name: 'mid_fee', - type: 'uint256', - indexed: false, - }, - { - name: 'out_fee', - type: 'uint256', - indexed: false, - }, - { - name: 'fee_gamma', - type: 'uint256', - indexed: false, - }, - { - name: 'allowed_extra_profit', - type: 'uint256', - indexed: false, - }, - { - name: 'adjustment_step', - type: 'uint256', - indexed: false, - }, - { - name: 'ma_half_time', - type: 'uint256', - indexed: false, - }, - ], - anonymous: false, - type: 'event', - }, - { - name: 'RampAgamma', - inputs: [ - { - name: 'initial_A', - type: 'uint256', - indexed: false, - }, - { - name: 'future_A', - type: 'uint256', - indexed: false, - }, - { - name: 'initial_gamma', - type: 'uint256', - indexed: false, - }, - { - name: 'future_gamma', - type: 'uint256', - indexed: false, - }, - { - name: 'initial_time', - type: 'uint256', - indexed: false, - }, - { - name: 'future_time', - type: 'uint256', - indexed: false, - }, - ], - anonymous: false, - type: 'event', - }, - { - name: 'StopRampA', - inputs: [ - { - name: 'current_A', - type: 'uint256', - indexed: false, - }, - { - name: 'current_gamma', - type: 'uint256', - indexed: false, - }, - { - name: 'time', - type: 'uint256', - indexed: false, - }, - ], - anonymous: false, - type: 'event', - }, - { - name: 'ClaimAdminFee', - inputs: [ - { - name: 'admin', - type: 'address', - indexed: true, - }, - { - name: 'tokens', - type: 'uint256', - indexed: false, - }, - ], - anonymous: false, - type: 'event', - }, - { - stateMutability: 'nonpayable', - type: 'constructor', - inputs: [ - { - name: '_weth', - type: 'address', - }, - ], - outputs: [], - }, - { - stateMutability: 'payable', - type: 'fallback', - }, - { - stateMutability: 'payable', - type: 'function', - name: 'exchange', - inputs: [ - { - name: 'i', - type: 'uint256', - }, - { - name: 'j', - type: 'uint256', - }, - { - name: 'dx', - type: 'uint256', - }, - { - name: 'min_dy', - type: 'uint256', - }, - ], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - }, - { - stateMutability: 'payable', - type: 'function', - name: 'exchange', - inputs: [ - { - name: 'i', - type: 'uint256', - }, - { - name: 'j', - type: 'uint256', - }, - { - name: 'dx', - type: 'uint256', - }, - { - name: 'min_dy', - type: 'uint256', - }, - { - name: 'use_eth', - type: 'bool', - }, - ], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - }, - { - stateMutability: 'payable', - type: 'function', - name: 'exchange', - inputs: [ - { - name: 'i', - type: 'uint256', - }, - { - name: 'j', - type: 'uint256', - }, - { - name: 'dx', - type: 'uint256', - }, - { - name: 'min_dy', - type: 'uint256', - }, - { - name: 'use_eth', - type: 'bool', - }, - { - name: 'receiver', - type: 'address', - }, - ], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - }, - { - stateMutability: 'payable', - type: 'function', - name: 'exchange_underlying', - inputs: [ - { - name: 'i', - type: 'uint256', - }, - { - name: 'j', - type: 'uint256', - }, - { - name: 'dx', - type: 'uint256', - }, - { - name: 'min_dy', - type: 'uint256', - }, - ], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - }, - { - stateMutability: 'payable', - type: 'function', - name: 'exchange_underlying', - inputs: [ - { - name: 'i', - type: 'uint256', - }, - { - name: 'j', - type: 'uint256', - }, - { - name: 'dx', - type: 'uint256', - }, - { - name: 'min_dy', - type: 'uint256', - }, - { - name: 'receiver', - type: 'address', - }, - ], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - }, - { - stateMutability: 'payable', - type: 'function', - name: 'exchange_extended', - inputs: [ - { - name: 'i', - type: 'uint256', - }, - { - name: 'j', - type: 'uint256', - }, - { - name: 'dx', - type: 'uint256', - }, - { - name: 'min_dy', - type: 'uint256', - }, - { - name: 'use_eth', - type: 'bool', - }, - { - name: 'sender', - type: 'address', - }, - { - name: 'receiver', - type: 'address', - }, - { - name: 'cb', - type: 'bytes32', - }, - ], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - }, - { - stateMutability: 'payable', - type: 'function', - name: 'add_liquidity', - inputs: [ - { - name: 'amounts', - type: 'uint256[2]', - }, - { - name: 'min_mint_amount', - type: 'uint256', - }, - ], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - }, - { - stateMutability: 'payable', - type: 'function', - name: 'add_liquidity', - inputs: [ - { - name: 'amounts', - type: 'uint256[2]', - }, - { - name: 'min_mint_amount', - type: 'uint256', - }, - { - name: 'use_eth', - type: 'bool', - }, - ], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - }, - { - stateMutability: 'payable', - type: 'function', - name: 'add_liquidity', - inputs: [ - { - name: 'amounts', - type: 'uint256[2]', - }, - { - name: 'min_mint_amount', - type: 'uint256', - }, - { - name: 'use_eth', - type: 'bool', - }, - { - name: 'receiver', - type: 'address', - }, - ], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - }, - { - stateMutability: 'nonpayable', - type: 'function', - name: 'remove_liquidity', - inputs: [ - { - name: '_amount', - type: 'uint256', - }, - { - name: 'min_amounts', - type: 'uint256[2]', - }, - ], - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - name: 'remove_liquidity', - inputs: [ - { - name: '_amount', - type: 'uint256', - }, - { - name: 'min_amounts', - type: 'uint256[2]', - }, - { - name: 'use_eth', - type: 'bool', - }, - ], - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - name: 'remove_liquidity', - inputs: [ - { - name: '_amount', - type: 'uint256', - }, - { - name: 'min_amounts', - type: 'uint256[2]', - }, - { - name: 'use_eth', - type: 'bool', - }, - { - name: 'receiver', - type: 'address', - }, - ], - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - name: 'remove_liquidity_one_coin', - inputs: [ - { - name: 'token_amount', - type: 'uint256', - }, - { - name: 'i', - type: 'uint256', - }, - { - name: 'min_amount', - type: 'uint256', - }, - ], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - }, - { - stateMutability: 'nonpayable', - type: 'function', - name: 'remove_liquidity_one_coin', - inputs: [ - { - name: 'token_amount', - type: 'uint256', - }, - { - name: 'i', - type: 'uint256', - }, - { - name: 'min_amount', - type: 'uint256', - }, - { - name: 'use_eth', - type: 'bool', - }, - ], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - }, - { - stateMutability: 'nonpayable', - type: 'function', - name: 'remove_liquidity_one_coin', - inputs: [ - { - name: 'token_amount', - type: 'uint256', - }, - { - name: 'i', - type: 'uint256', - }, - { - name: 'min_amount', - type: 'uint256', - }, - { - name: 'use_eth', - type: 'bool', - }, - { - name: 'receiver', - type: 'address', - }, - ], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - }, - { - stateMutability: 'nonpayable', - type: 'function', - name: 'claim_admin_fees', - inputs: [], - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - name: 'ramp_A_gamma', - inputs: [ - { - name: 'future_A', - type: 'uint256', - }, - { - name: 'future_gamma', - type: 'uint256', - }, - { - name: 'future_time', - type: 'uint256', - }, - ], - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - name: 'stop_ramp_A_gamma', - inputs: [], - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - name: 'commit_new_parameters', - inputs: [ - { - name: '_new_mid_fee', - type: 'uint256', - }, - { - name: '_new_out_fee', - type: 'uint256', - }, - { - name: '_new_admin_fee', - type: 'uint256', - }, - { - name: '_new_fee_gamma', - type: 'uint256', - }, - { - name: '_new_allowed_extra_profit', - type: 'uint256', - }, - { - name: '_new_adjustment_step', - type: 'uint256', - }, - { - name: '_new_ma_half_time', - type: 'uint256', - }, - ], - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - name: 'apply_new_parameters', - inputs: [], - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - name: 'revert_new_parameters', - inputs: [], - outputs: [], - }, - { - stateMutability: 'view', - type: 'function', - name: 'get_dy', - inputs: [ - { - name: 'i', - type: 'uint256', - }, - { - name: 'j', - type: 'uint256', - }, - { - name: 'dx', - type: 'uint256', - }, - ], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - }, - { - stateMutability: 'view', - type: 'function', - name: 'calc_token_amount', - inputs: [ - { - name: 'amounts', - type: 'uint256[2]', - }, - ], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - }, - { - stateMutability: 'view', - type: 'function', - name: 'calc_withdraw_one_coin', - inputs: [ - { - name: 'token_amount', - type: 'uint256', - }, - { - name: 'i', - type: 'uint256', - }, - ], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - }, - { - stateMutability: 'view', - type: 'function', - name: 'lp_price', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - }, - { - stateMutability: 'view', - type: 'function', - name: 'A', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - }, - { - stateMutability: 'view', - type: 'function', - name: 'gamma', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - }, - { - stateMutability: 'view', - type: 'function', - name: 'fee', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - }, - { - stateMutability: 'view', - type: 'function', - name: 'get_virtual_price', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - }, - { - stateMutability: 'view', - type: 'function', - name: 'price_oracle', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - }, - { - stateMutability: 'nonpayable', - type: 'function', - name: 'initialize', - inputs: [ - { - name: 'A', - type: 'uint256', - }, - { - name: 'gamma', - type: 'uint256', - }, - { - name: 'mid_fee', - type: 'uint256', - }, - { - name: 'out_fee', - type: 'uint256', - }, - { - name: 'allowed_extra_profit', - type: 'uint256', - }, - { - name: 'fee_gamma', - type: 'uint256', - }, - { - name: 'adjustment_step', - type: 'uint256', - }, - { - name: 'admin_fee', - type: 'uint256', - }, - { - name: 'ma_half_time', - type: 'uint256', - }, - { - name: 'initial_price', - type: 'uint256', - }, - { - name: '_token', - type: 'address', - }, - { - name: '_coins', - type: 'address[2]', - }, - { - name: '_precisions', - type: 'uint256', - }, - ], - outputs: [], - }, - { - stateMutability: 'view', - type: 'function', - name: 'token', - inputs: [], - outputs: [ - { - name: '', - type: 'address', - }, - ], - }, - { - stateMutability: 'view', - type: 'function', - name: 'coins', - inputs: [ - { - name: 'arg0', - type: 'uint256', - }, - ], - outputs: [ - { - name: '', - type: 'address', - }, - ], - }, - { - stateMutability: 'view', - type: 'function', - name: 'price_scale', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - }, - { - stateMutability: 'view', - type: 'function', - name: 'last_prices', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - }, - { - stateMutability: 'view', - type: 'function', - name: 'last_prices_timestamp', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - }, - { - stateMutability: 'view', - type: 'function', - name: 'initial_A_gamma', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - }, - { - stateMutability: 'view', - type: 'function', - name: 'future_A_gamma', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - }, - { - stateMutability: 'view', - type: 'function', - name: 'initial_A_gamma_time', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - }, - { - stateMutability: 'view', - type: 'function', - name: 'future_A_gamma_time', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - }, - { - stateMutability: 'view', - type: 'function', - name: 'allowed_extra_profit', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - }, - { - stateMutability: 'view', - type: 'function', - name: 'future_allowed_extra_profit', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - }, - { - stateMutability: 'view', - type: 'function', - name: 'fee_gamma', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - }, - { - stateMutability: 'view', - type: 'function', - name: 'future_fee_gamma', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - }, - { - stateMutability: 'view', - type: 'function', - name: 'adjustment_step', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - }, - { - stateMutability: 'view', - type: 'function', - name: 'future_adjustment_step', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - }, - { - stateMutability: 'view', - type: 'function', - name: 'ma_half_time', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - }, - { - stateMutability: 'view', - type: 'function', - name: 'future_ma_half_time', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - }, - { - stateMutability: 'view', - type: 'function', - name: 'mid_fee', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - }, - { - stateMutability: 'view', - type: 'function', - name: 'out_fee', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - }, - { - stateMutability: 'view', - type: 'function', - name: 'admin_fee', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - }, - { - stateMutability: 'view', - type: 'function', - name: 'future_mid_fee', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - }, - { - stateMutability: 'view', - type: 'function', - name: 'future_out_fee', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - }, - { - stateMutability: 'view', - type: 'function', - name: 'future_admin_fee', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - }, - { - stateMutability: 'view', - type: 'function', - name: 'balances', - inputs: [ - { - name: 'arg0', - type: 'uint256', - }, - ], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - }, - { - stateMutability: 'view', - type: 'function', - name: 'D', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - }, - { - stateMutability: 'view', - type: 'function', - name: 'factory', - inputs: [], - outputs: [ - { - name: '', - type: 'address', - }, - ], - }, - { - stateMutability: 'view', - type: 'function', - name: 'xcp_profit', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - }, - { - stateMutability: 'view', - type: 'function', - name: 'xcp_profit_a', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - }, - { - stateMutability: 'view', - type: 'function', - name: 'virtual_price', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - }, - { - stateMutability: 'view', - type: 'function', - name: 'admin_actions_deadline', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - }, -]; - -export class CurveCryptoPool__factory { - static readonly abi = _abi; - static createInterface(): CurveCryptoPoolInterface { - return new utils.Interface(_abi) as CurveCryptoPoolInterface; - } - static connect(address: string, signerOrProvider: Signer | Provider): CurveCryptoPool { - return new Contract(address, _abi, signerOrProvider) as CurveCryptoPool; - } -} diff --git a/src/apps/curve/contracts/ethers/factories/CurveChildLiquidityGaugeFactory__factory.ts b/src/apps/curve/contracts/ethers/factories/CurveCryptoRegistry__factory.ts similarity index 57% rename from src/apps/curve/contracts/ethers/factories/CurveChildLiquidityGaugeFactory__factory.ts rename to src/apps/curve/contracts/ethers/factories/CurveCryptoRegistry__factory.ts index fd72a8c00..aeb3bfe76 100644 --- a/src/apps/curve/contracts/ethers/factories/CurveChildLiquidityGaugeFactory__factory.ts +++ b/src/apps/curve/contracts/ethers/factories/CurveCryptoRegistry__factory.ts @@ -4,378 +4,449 @@ import { Contract, Signer, utils } from 'ethers'; import type { Provider } from '@ethersproject/providers'; -import type { - CurveChildLiquidityGaugeFactory, - CurveChildLiquidityGaugeFactoryInterface, -} from '../CurveChildLiquidityGaugeFactory'; +import type { CurveCryptoRegistry, CurveCryptoRegistryInterface } from '../CurveCryptoRegistry'; const _abi = [ { - name: 'DeployedGauge', + name: 'PoolAdded', inputs: [ { - name: '_implementation', - type: 'address', - indexed: true, - }, - { - name: '_lp_token', + name: 'pool', type: 'address', indexed: true, }, + ], + anonymous: false, + type: 'event', + }, + { + name: 'PoolRemoved', + inputs: [ { - name: '_deployer', + name: 'pool', type: 'address', indexed: true, }, + ], + anonymous: false, + type: 'event', + }, + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ { - name: '_salt', - type: 'bytes32', - indexed: false, - }, - { - name: '_gauge', + name: '_address_provider', type: 'address', - indexed: false, }, ], - anonymous: false, - type: 'event', + outputs: [], }, { - name: 'Minted', + stateMutability: 'view', + type: 'function', + name: 'find_pool_for_coins', inputs: [ { - name: '_user', + name: '_from', type: 'address', - indexed: true, }, { - name: '_gauge', + name: '_to', type: 'address', - indexed: true, }, + ], + outputs: [ { - name: '_new_total', - type: 'uint256', - indexed: false, + name: '', + type: 'address', }, ], - anonymous: false, - type: 'event', }, { - name: 'UpdateImplementation', + stateMutability: 'view', + type: 'function', + name: 'find_pool_for_coins', inputs: [ { - name: '_old_implementation', + name: '_from', type: 'address', - indexed: false, }, { - name: '_new_implementation', + name: '_to', type: 'address', - indexed: false, }, - ], - anonymous: false, - type: 'event', - }, - { - name: 'UpdateVotingEscrow', - inputs: [ { - name: '_old_voting_escrow', - type: 'address', - indexed: false, + name: 'i', + type: 'uint256', }, + ], + outputs: [ { - name: '_new_voting_escrow', + name: '', type: 'address', - indexed: false, }, ], - anonymous: false, - type: 'event', }, { - name: 'UpdateCallProxy', + stateMutability: 'view', + type: 'function', + name: 'get_n_coins', inputs: [ { - name: '_old_call_proxy', + name: '_pool', type: 'address', - indexed: false, }, + ], + outputs: [ { - name: '_new_call_proxy', - type: 'address', - indexed: false, + name: '', + type: 'uint256', }, ], - anonymous: false, - type: 'event', }, { - name: 'UpdateMirrored', + stateMutability: 'view', + type: 'function', + name: 'get_coins', inputs: [ { - name: '_gauge', + name: '_pool', type: 'address', - indexed: true, }, + ], + outputs: [ { - name: '_mirrored', - type: 'bool', - indexed: false, + name: '', + type: 'address[8]', }, ], - anonymous: false, - type: 'event', }, { - name: 'TransferOwnership', + stateMutability: 'view', + type: 'function', + name: 'get_decimals', inputs: [ { - name: '_old_owner', + name: '_pool', type: 'address', - indexed: false, }, + ], + outputs: [ { - name: '_new_owner', - type: 'address', - indexed: false, + name: '', + type: 'uint256[8]', }, ], - anonymous: false, - type: 'event', }, { - stateMutability: 'nonpayable', - type: 'constructor', + stateMutability: 'view', + type: 'function', + name: 'get_gauges', inputs: [ { - name: '_call_proxy', + name: '_pool', type: 'address', }, + ], + outputs: [ { - name: '_crv', - type: 'address', + name: '', + type: 'address[10]', }, { - name: '_owner', - type: 'address', + name: '', + type: 'int128[10]', }, ], - outputs: [], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', - name: 'mint', + name: 'get_balances', inputs: [ { - name: '_gauge', + name: '_pool', type: 'address', }, ], - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - name: 'mint_many', - inputs: [ + outputs: [ { - name: '_gauges', - type: 'address[32]', + name: '', + type: 'uint256[8]', }, ], - outputs: [], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', - name: 'deploy_gauge', + name: 'get_virtual_price_from_lp_token', inputs: [ { - name: '_lp_token', + name: '_token', type: 'address', }, - { - name: '_salt', - type: 'bytes32', - }, ], outputs: [ { name: '', - type: 'address', + type: 'uint256', }, ], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', - name: 'deploy_gauge', + name: 'get_A', inputs: [ { - name: '_lp_token', + name: '_pool', type: 'address', }, + ], + outputs: [ { - name: '_salt', - type: 'bytes32', + name: '', + type: 'uint256', }, + ], + }, + { + stateMutability: 'view', + type: 'function', + name: 'get_D', + inputs: [ { - name: '_manager', + name: '_pool', type: 'address', }, ], outputs: [ { name: '', - type: 'address', + type: 'uint256', }, ], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', - name: 'set_voting_escrow', + name: 'get_gamma', inputs: [ { - name: '_voting_escrow', + name: '_pool', type: 'address', }, ], - outputs: [], + outputs: [ + { + name: '', + type: 'uint256', + }, + ], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', - name: 'set_implementation', + name: 'get_fees', inputs: [ { - name: '_implementation', + name: '_pool', type: 'address', }, ], - outputs: [], + outputs: [ + { + name: '', + type: 'uint256[4]', + }, + ], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', - name: 'set_mirrored', + name: 'get_admin_balances', inputs: [ { - name: '_gauge', + name: '_pool', type: 'address', }, + ], + outputs: [ { - name: '_mirrored', - type: 'bool', + name: '', + type: 'uint256[8]', }, ], - outputs: [], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', - name: 'set_call_proxy', + name: 'get_coin_indices', inputs: [ { - name: '_new_call_proxy', + name: '_pool', + type: 'address', + }, + { + name: '_from', + type: 'address', + }, + { + name: '_to', type: 'address', }, ], - outputs: [], + outputs: [ + { + name: '', + type: 'uint256', + }, + { + name: '', + type: 'uint256', + }, + ], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', - name: 'commit_transfer_ownership', + name: 'get_pool_name', inputs: [ { - name: '_future_owner', + name: '_pool', type: 'address', }, ], - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - name: 'accept_transfer_ownership', - inputs: [], - outputs: [], + outputs: [ + { + name: '', + type: 'string', + }, + ], }, { stateMutability: 'view', type: 'function', - name: 'is_valid_gauge', + name: 'get_coin_swap_count', inputs: [ { - name: '_gauge', + name: '_coin', type: 'address', }, ], outputs: [ { name: '', - type: 'bool', + type: 'uint256', }, ], }, { stateMutability: 'view', type: 'function', - name: 'is_mirrored', + name: 'get_coin_swap_complement', inputs: [ { - name: '_gauge', + name: '_coin', type: 'address', }, + { + name: '_index', + type: 'uint256', + }, ], outputs: [ { name: '', - type: 'bool', + type: 'address', }, ], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - name: 'last_request', + name: 'add_pool', inputs: [ + { + name: '_pool', + type: 'address', + }, + { + name: '_n_coins', + type: 'uint256', + }, + { + name: '_lp_token', + type: 'address', + }, { name: '_gauge', type: 'address', }, - ], - outputs: [ { - name: '', + name: '_zap', + type: 'address', + }, + { + name: '_decimals', type: 'uint256', }, + { + name: '_name', + type: 'string', + }, ], + outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - name: 'get_implementation', - inputs: [], - outputs: [ + name: 'remove_pool', + inputs: [ { - name: '', + name: '_pool', type: 'address', }, ], + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + name: 'set_liquidity_gauges', + inputs: [ + { + name: '_pool', + type: 'address', + }, + { + name: '_liquidity_gauges', + type: 'address[10]', + }, + ], + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + name: 'batch_set_liquidity_gauges', + inputs: [ + { + name: '_pools', + type: 'address[10]', + }, + { + name: '_liquidity_gauges', + type: 'address[10]', + }, + ], + outputs: [], }, { stateMutability: 'view', type: 'function', - name: 'voting_escrow', + name: 'address_provider', inputs: [], outputs: [ { @@ -387,8 +458,13 @@ const _abi = [ { stateMutability: 'view', type: 'function', - name: 'owner', - inputs: [], + name: 'pool_list', + inputs: [ + { + name: 'arg0', + type: 'uint256', + }, + ], outputs: [ { name: '', @@ -399,69 +475,65 @@ const _abi = [ { stateMutability: 'view', type: 'function', - name: 'future_owner', + name: 'pool_count', inputs: [], outputs: [ { name: '', - type: 'address', + type: 'uint256', }, ], }, { stateMutability: 'view', type: 'function', - name: 'call_proxy', + name: 'coin_count', inputs: [], outputs: [ { name: '', - type: 'address', + type: 'uint256', }, ], }, { stateMutability: 'view', type: 'function', - name: 'gauge_data', + name: 'get_coin', inputs: [ { name: 'arg0', - type: 'address', + type: 'uint256', }, ], outputs: [ { name: '', - type: 'uint256', + type: 'address', }, ], }, { stateMutability: 'view', type: 'function', - name: 'minted', + name: 'get_pool_from_lp_token', inputs: [ { name: 'arg0', type: 'address', }, - { - name: 'arg1', - type: 'address', - }, ], outputs: [ { name: '', - type: 'uint256', + type: 'address', }, ], }, { stateMutability: 'view', type: 'function', - name: 'get_gauge_from_lp_token', + name: 'get_lp_token', inputs: [ { name: 'arg0', @@ -478,40 +550,40 @@ const _abi = [ { stateMutability: 'view', type: 'function', - name: 'get_gauge_count', - inputs: [], + name: 'get_zap', + inputs: [ + { + name: 'arg0', + type: 'address', + }, + ], outputs: [ { name: '', - type: 'uint256', + type: 'address', }, ], }, { stateMutability: 'view', type: 'function', - name: 'get_gauge', - inputs: [ - { - name: 'arg0', - type: 'uint256', - }, - ], + name: 'last_updated', + inputs: [], outputs: [ { name: '', - type: 'address', + type: 'uint256', }, ], }, ]; -export class CurveChildLiquidityGaugeFactory__factory { +export class CurveCryptoRegistry__factory { static readonly abi = _abi; - static createInterface(): CurveChildLiquidityGaugeFactoryInterface { - return new utils.Interface(_abi) as CurveChildLiquidityGaugeFactoryInterface; + static createInterface(): CurveCryptoRegistryInterface { + return new utils.Interface(_abi) as CurveCryptoRegistryInterface; } - static connect(address: string, signerOrProvider: Signer | Provider): CurveChildLiquidityGaugeFactory { - return new Contract(address, _abi, signerOrProvider) as CurveChildLiquidityGaugeFactory; + static connect(address: string, signerOrProvider: Signer | Provider): CurveCryptoRegistry { + return new Contract(address, _abi, signerOrProvider) as CurveCryptoRegistry; } } diff --git a/src/apps/curve/contracts/ethers/factories/CurveFactoryPool__factory.ts b/src/apps/curve/contracts/ethers/factories/CurveFactoryPool__factory.ts deleted file mode 100644 index f235d13d0..000000000 --- a/src/apps/curve/contracts/ethers/factories/CurveFactoryPool__factory.ts +++ /dev/null @@ -1,1343 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Signer, utils } from 'ethers'; -import type { Provider } from '@ethersproject/providers'; -import type { CurveFactoryPool, CurveFactoryPoolInterface } from '../CurveFactoryPool'; - -const _abi = [ - { - name: 'Transfer', - inputs: [ - { - type: 'address', - name: 'sender', - indexed: true, - }, - { - type: 'address', - name: 'receiver', - indexed: true, - }, - { - type: 'uint256', - name: 'value', - indexed: false, - }, - ], - anonymous: false, - type: 'event', - }, - { - name: 'Approval', - inputs: [ - { - type: 'address', - name: 'owner', - indexed: true, - }, - { - type: 'address', - name: 'spender', - indexed: true, - }, - { - type: 'uint256', - name: 'value', - indexed: false, - }, - ], - anonymous: false, - type: 'event', - }, - { - name: 'TokenExchange', - inputs: [ - { - type: 'address', - name: 'buyer', - indexed: true, - }, - { - type: 'int128', - name: 'sold_id', - indexed: false, - }, - { - type: 'uint256', - name: 'tokens_sold', - indexed: false, - }, - { - type: 'int128', - name: 'bought_id', - indexed: false, - }, - { - type: 'uint256', - name: 'tokens_bought', - indexed: false, - }, - ], - anonymous: false, - type: 'event', - }, - { - name: 'TokenExchangeUnderlying', - inputs: [ - { - type: 'address', - name: 'buyer', - indexed: true, - }, - { - type: 'int128', - name: 'sold_id', - indexed: false, - }, - { - type: 'uint256', - name: 'tokens_sold', - indexed: false, - }, - { - type: 'int128', - name: 'bought_id', - indexed: false, - }, - { - type: 'uint256', - name: 'tokens_bought', - indexed: false, - }, - ], - anonymous: false, - type: 'event', - }, - { - name: 'AddLiquidity', - inputs: [ - { - type: 'address', - name: 'provider', - indexed: true, - }, - { - type: 'uint256[2]', - name: 'token_amounts', - indexed: false, - }, - { - type: 'uint256[2]', - name: 'fees', - indexed: false, - }, - { - type: 'uint256', - name: 'invariant', - indexed: false, - }, - { - type: 'uint256', - name: 'token_supply', - indexed: false, - }, - ], - anonymous: false, - type: 'event', - }, - { - name: 'RemoveLiquidity', - inputs: [ - { - type: 'address', - name: 'provider', - indexed: true, - }, - { - type: 'uint256[2]', - name: 'token_amounts', - indexed: false, - }, - { - type: 'uint256[2]', - name: 'fees', - indexed: false, - }, - { - type: 'uint256', - name: 'token_supply', - indexed: false, - }, - ], - anonymous: false, - type: 'event', - }, - { - name: 'RemoveLiquidityOne', - inputs: [ - { - type: 'address', - name: 'provider', - indexed: true, - }, - { - type: 'uint256', - name: 'token_amount', - indexed: false, - }, - { - type: 'uint256', - name: 'coin_amount', - indexed: false, - }, - { - type: 'uint256', - name: 'token_supply', - indexed: false, - }, - ], - anonymous: false, - type: 'event', - }, - { - name: 'RemoveLiquidityImbalance', - inputs: [ - { - type: 'address', - name: 'provider', - indexed: true, - }, - { - type: 'uint256[2]', - name: 'token_amounts', - indexed: false, - }, - { - type: 'uint256[2]', - name: 'fees', - indexed: false, - }, - { - type: 'uint256', - name: 'invariant', - indexed: false, - }, - { - type: 'uint256', - name: 'token_supply', - indexed: false, - }, - ], - anonymous: false, - type: 'event', - }, - { - name: 'CommitNewAdmin', - inputs: [ - { - type: 'uint256', - name: 'deadline', - indexed: true, - }, - { - type: 'address', - name: 'admin', - indexed: true, - }, - ], - anonymous: false, - type: 'event', - }, - { - name: 'NewAdmin', - inputs: [ - { - type: 'address', - name: 'admin', - indexed: true, - }, - ], - anonymous: false, - type: 'event', - }, - { - name: 'CommitNewFee', - inputs: [ - { - type: 'uint256', - name: 'deadline', - indexed: true, - }, - { - type: 'uint256', - name: 'fee', - indexed: false, - }, - { - type: 'uint256', - name: 'admin_fee', - indexed: false, - }, - ], - anonymous: false, - type: 'event', - }, - { - name: 'NewFee', - inputs: [ - { - type: 'uint256', - name: 'fee', - indexed: false, - }, - { - type: 'uint256', - name: 'admin_fee', - indexed: false, - }, - ], - anonymous: false, - type: 'event', - }, - { - name: 'RampA', - inputs: [ - { - type: 'uint256', - name: 'old_A', - indexed: false, - }, - { - type: 'uint256', - name: 'new_A', - indexed: false, - }, - { - type: 'uint256', - name: 'initial_time', - indexed: false, - }, - { - type: 'uint256', - name: 'future_time', - indexed: false, - }, - ], - anonymous: false, - type: 'event', - }, - { - name: 'StopRampA', - inputs: [ - { - type: 'uint256', - name: 'A', - indexed: false, - }, - { - type: 'uint256', - name: 't', - indexed: false, - }, - ], - anonymous: false, - type: 'event', - }, - { - outputs: [], - inputs: [], - stateMutability: 'nonpayable', - type: 'constructor', - }, - { - name: 'initialize', - outputs: [], - inputs: [ - { - type: 'string', - name: '_name', - }, - { - type: 'string', - name: '_symbol', - }, - { - type: 'address', - name: '_coin', - }, - { - type: 'uint256', - name: '_decimals', - }, - { - type: 'uint256', - name: '_A', - }, - { - type: 'uint256', - name: '_fee', - }, - { - type: 'address', - name: '_admin', - }, - ], - stateMutability: 'nonpayable', - type: 'function', - }, - { - name: 'decimals', - outputs: [ - { - type: 'uint256', - name: '', - }, - ], - inputs: [], - stateMutability: 'view', - type: 'function', - }, - { - name: 'transfer', - outputs: [ - { - type: 'bool', - name: '', - }, - ], - inputs: [ - { - type: 'address', - name: '_to', - }, - { - type: 'uint256', - name: '_value', - }, - ], - stateMutability: 'nonpayable', - type: 'function', - }, - { - name: 'transferFrom', - outputs: [ - { - type: 'bool', - name: '', - }, - ], - inputs: [ - { - type: 'address', - name: '_from', - }, - { - type: 'address', - name: '_to', - }, - { - type: 'uint256', - name: '_value', - }, - ], - stateMutability: 'nonpayable', - type: 'function', - }, - { - name: 'approve', - outputs: [ - { - type: 'bool', - name: '', - }, - ], - inputs: [ - { - type: 'address', - name: '_spender', - }, - { - type: 'uint256', - name: '_value', - }, - ], - stateMutability: 'nonpayable', - type: 'function', - }, - { - name: 'get_previous_balances', - outputs: [ - { - type: 'uint256[2]', - name: '', - }, - ], - inputs: [], - stateMutability: 'view', - type: 'function', - }, - { - name: 'get_balances', - outputs: [ - { - type: 'uint256[2]', - name: '', - }, - ], - inputs: [], - stateMutability: 'view', - type: 'function', - }, - { - name: 'get_twap_balances', - outputs: [ - { - type: 'uint256[2]', - name: '', - }, - ], - inputs: [ - { - type: 'uint256[2]', - name: '_first_balances', - }, - { - type: 'uint256[2]', - name: '_last_balances', - }, - { - type: 'uint256', - name: '_time_elapsed', - }, - ], - stateMutability: 'view', - type: 'function', - }, - { - name: 'get_price_cumulative_last', - outputs: [ - { - type: 'uint256[2]', - name: '', - }, - ], - inputs: [], - stateMutability: 'view', - type: 'function', - }, - { - name: 'admin_fee', - outputs: [ - { - type: 'uint256', - name: '', - }, - ], - inputs: [], - stateMutability: 'view', - type: 'function', - }, - { - name: 'A', - outputs: [ - { - type: 'uint256', - name: '', - }, - ], - inputs: [], - stateMutability: 'view', - type: 'function', - }, - { - name: 'A_precise', - outputs: [ - { - type: 'uint256', - name: '', - }, - ], - inputs: [], - stateMutability: 'view', - type: 'function', - }, - { - name: 'get_virtual_price', - outputs: [ - { - type: 'uint256', - name: '', - }, - ], - inputs: [], - stateMutability: 'view', - type: 'function', - }, - { - name: 'calc_token_amount', - outputs: [ - { - type: 'uint256', - name: '', - }, - ], - inputs: [ - { - type: 'uint256[2]', - name: '_amounts', - }, - { - type: 'bool', - name: '_is_deposit', - }, - ], - stateMutability: 'view', - type: 'function', - }, - { - name: 'calc_token_amount', - outputs: [ - { - type: 'uint256', - name: '', - }, - ], - inputs: [ - { - type: 'uint256[2]', - name: '_amounts', - }, - { - type: 'bool', - name: '_is_deposit', - }, - { - type: 'bool', - name: '_previous', - }, - ], - stateMutability: 'view', - type: 'function', - }, - { - name: 'add_liquidity', - outputs: [ - { - type: 'uint256', - name: '', - }, - ], - inputs: [ - { - type: 'uint256[2]', - name: '_amounts', - }, - { - type: 'uint256', - name: '_min_mint_amount', - }, - ], - stateMutability: 'nonpayable', - type: 'function', - }, - { - name: 'add_liquidity', - outputs: [ - { - type: 'uint256', - name: '', - }, - ], - inputs: [ - { - type: 'uint256[2]', - name: '_amounts', - }, - { - type: 'uint256', - name: '_min_mint_amount', - }, - { - type: 'address', - name: '_receiver', - }, - ], - stateMutability: 'nonpayable', - type: 'function', - }, - { - name: 'get_dy', - outputs: [ - { - type: 'uint256', - name: '', - }, - ], - inputs: [ - { - type: 'int128', - name: 'i', - }, - { - type: 'int128', - name: 'j', - }, - { - type: 'uint256', - name: 'dx', - }, - ], - stateMutability: 'view', - type: 'function', - }, - { - name: 'get_dy', - outputs: [ - { - type: 'uint256', - name: '', - }, - ], - inputs: [ - { - type: 'int128', - name: 'i', - }, - { - type: 'int128', - name: 'j', - }, - { - type: 'uint256', - name: 'dx', - }, - { - type: 'uint256[2]', - name: '_balances', - }, - ], - stateMutability: 'view', - type: 'function', - }, - { - name: 'get_dy_underlying', - outputs: [ - { - type: 'uint256', - name: '', - }, - ], - inputs: [ - { - type: 'int128', - name: 'i', - }, - { - type: 'int128', - name: 'j', - }, - { - type: 'uint256', - name: 'dx', - }, - ], - stateMutability: 'view', - type: 'function', - }, - { - name: 'get_dy_underlying', - outputs: [ - { - type: 'uint256', - name: '', - }, - ], - inputs: [ - { - type: 'int128', - name: 'i', - }, - { - type: 'int128', - name: 'j', - }, - { - type: 'uint256', - name: 'dx', - }, - { - type: 'uint256[2]', - name: '_balances', - }, - ], - stateMutability: 'view', - type: 'function', - }, - { - name: 'exchange', - outputs: [ - { - type: 'uint256', - name: '', - }, - ], - inputs: [ - { - type: 'int128', - name: 'i', - }, - { - type: 'int128', - name: 'j', - }, - { - type: 'uint256', - name: 'dx', - }, - { - type: 'uint256', - name: 'min_dy', - }, - ], - stateMutability: 'nonpayable', - type: 'function', - }, - { - name: 'exchange', - outputs: [ - { - type: 'uint256', - name: '', - }, - ], - inputs: [ - { - type: 'int128', - name: 'i', - }, - { - type: 'int128', - name: 'j', - }, - { - type: 'uint256', - name: 'dx', - }, - { - type: 'uint256', - name: 'min_dy', - }, - { - type: 'address', - name: '_receiver', - }, - ], - stateMutability: 'nonpayable', - type: 'function', - }, - { - name: 'exchange_underlying', - outputs: [ - { - type: 'uint256', - name: '', - }, - ], - inputs: [ - { - type: 'int128', - name: 'i', - }, - { - type: 'int128', - name: 'j', - }, - { - type: 'uint256', - name: 'dx', - }, - { - type: 'uint256', - name: 'min_dy', - }, - ], - stateMutability: 'nonpayable', - type: 'function', - }, - { - name: 'exchange_underlying', - outputs: [ - { - type: 'uint256', - name: '', - }, - ], - inputs: [ - { - type: 'int128', - name: 'i', - }, - { - type: 'int128', - name: 'j', - }, - { - type: 'uint256', - name: 'dx', - }, - { - type: 'uint256', - name: 'min_dy', - }, - { - type: 'address', - name: '_receiver', - }, - ], - stateMutability: 'nonpayable', - type: 'function', - }, - { - name: 'remove_liquidity', - outputs: [ - { - type: 'uint256[2]', - name: '', - }, - ], - inputs: [ - { - type: 'uint256', - name: '_burn_amount', - }, - { - type: 'uint256[2]', - name: '_min_amounts', - }, - ], - stateMutability: 'nonpayable', - type: 'function', - }, - { - name: 'remove_liquidity', - outputs: [ - { - type: 'uint256[2]', - name: '', - }, - ], - inputs: [ - { - type: 'uint256', - name: '_burn_amount', - }, - { - type: 'uint256[2]', - name: '_min_amounts', - }, - { - type: 'address', - name: '_receiver', - }, - ], - stateMutability: 'nonpayable', - type: 'function', - }, - { - name: 'remove_liquidity_imbalance', - outputs: [ - { - type: 'uint256', - name: '', - }, - ], - inputs: [ - { - type: 'uint256[2]', - name: '_amounts', - }, - { - type: 'uint256', - name: '_max_burn_amount', - }, - ], - stateMutability: 'nonpayable', - type: 'function', - }, - { - name: 'remove_liquidity_imbalance', - outputs: [ - { - type: 'uint256', - name: '', - }, - ], - inputs: [ - { - type: 'uint256[2]', - name: '_amounts', - }, - { - type: 'uint256', - name: '_max_burn_amount', - }, - { - type: 'address', - name: '_receiver', - }, - ], - stateMutability: 'nonpayable', - type: 'function', - }, - { - name: 'calc_withdraw_one_coin', - outputs: [ - { - type: 'uint256', - name: '', - }, - ], - inputs: [ - { - type: 'uint256', - name: '_burn_amount', - }, - { - type: 'int128', - name: 'i', - }, - ], - stateMutability: 'view', - type: 'function', - }, - { - name: 'calc_withdraw_one_coin', - outputs: [ - { - type: 'uint256', - name: '', - }, - ], - inputs: [ - { - type: 'uint256', - name: '_burn_amount', - }, - { - type: 'int128', - name: 'i', - }, - { - type: 'bool', - name: '_previous', - }, - ], - stateMutability: 'view', - type: 'function', - }, - { - name: 'remove_liquidity_one_coin', - outputs: [ - { - type: 'uint256', - name: '', - }, - ], - inputs: [ - { - type: 'uint256', - name: '_burn_amount', - }, - { - type: 'int128', - name: 'i', - }, - { - type: 'uint256', - name: '_min_received', - }, - ], - stateMutability: 'nonpayable', - type: 'function', - }, - { - name: 'remove_liquidity_one_coin', - outputs: [ - { - type: 'uint256', - name: '', - }, - ], - inputs: [ - { - type: 'uint256', - name: '_burn_amount', - }, - { - type: 'int128', - name: 'i', - }, - { - type: 'uint256', - name: '_min_received', - }, - { - type: 'address', - name: '_receiver', - }, - ], - stateMutability: 'nonpayable', - type: 'function', - }, - { - name: 'ramp_A', - outputs: [], - inputs: [ - { - type: 'uint256', - name: '_future_A', - }, - { - type: 'uint256', - name: '_future_time', - }, - ], - stateMutability: 'nonpayable', - type: 'function', - }, - { - name: 'stop_ramp_A', - outputs: [], - inputs: [], - stateMutability: 'nonpayable', - type: 'function', - }, - { - name: 'admin_balances', - outputs: [ - { - type: 'uint256', - name: '', - }, - ], - inputs: [ - { - type: 'uint256', - name: 'i', - }, - ], - stateMutability: 'view', - type: 'function', - }, - { - name: 'withdraw_admin_fees', - outputs: [], - inputs: [], - stateMutability: 'nonpayable', - type: 'function', - }, - { - name: 'admin', - outputs: [ - { - type: 'address', - name: '', - }, - ], - inputs: [], - stateMutability: 'view', - type: 'function', - }, - { - name: 'coins', - outputs: [ - { - type: 'address', - name: '', - }, - ], - inputs: [ - { - type: 'uint256', - name: 'arg0', - }, - ], - stateMutability: 'view', - type: 'function', - }, - { - name: 'balances', - outputs: [ - { - type: 'uint256', - name: '', - }, - ], - inputs: [ - { - type: 'uint256', - name: 'arg0', - }, - ], - stateMutability: 'view', - type: 'function', - }, - { - name: 'fee', - outputs: [ - { - type: 'uint256', - name: '', - }, - ], - inputs: [], - stateMutability: 'view', - type: 'function', - }, - { - name: 'block_timestamp_last', - outputs: [ - { - type: 'uint256', - name: '', - }, - ], - inputs: [], - stateMutability: 'view', - type: 'function', - }, - { - name: 'initial_A', - outputs: [ - { - type: 'uint256', - name: '', - }, - ], - inputs: [], - stateMutability: 'view', - type: 'function', - }, - { - name: 'future_A', - outputs: [ - { - type: 'uint256', - name: '', - }, - ], - inputs: [], - stateMutability: 'view', - type: 'function', - }, - { - name: 'initial_A_time', - outputs: [ - { - type: 'uint256', - name: '', - }, - ], - inputs: [], - stateMutability: 'view', - type: 'function', - }, - { - name: 'future_A_time', - outputs: [ - { - type: 'uint256', - name: '', - }, - ], - inputs: [], - stateMutability: 'view', - type: 'function', - }, - { - name: 'name', - outputs: [ - { - type: 'string', - name: '', - }, - ], - inputs: [], - stateMutability: 'view', - type: 'function', - }, - { - name: 'symbol', - outputs: [ - { - type: 'string', - name: '', - }, - ], - inputs: [], - stateMutability: 'view', - type: 'function', - }, - { - name: 'balanceOf', - outputs: [ - { - type: 'uint256', - name: '', - }, - ], - inputs: [ - { - type: 'address', - name: 'arg0', - }, - ], - stateMutability: 'view', - type: 'function', - }, - { - name: 'allowance', - outputs: [ - { - type: 'uint256', - name: '', - }, - ], - inputs: [ - { - type: 'address', - name: 'arg0', - }, - { - type: 'address', - name: 'arg1', - }, - ], - stateMutability: 'view', - type: 'function', - }, - { - name: 'totalSupply', - outputs: [ - { - type: 'uint256', - name: '', - }, - ], - inputs: [], - stateMutability: 'view', - type: 'function', - }, -]; - -export class CurveFactoryPool__factory { - static readonly abi = _abi; - static createInterface(): CurveFactoryPoolInterface { - return new utils.Interface(_abi) as CurveFactoryPoolInterface; - } - static connect(address: string, signerOrProvider: Signer | Provider): CurveFactoryPool { - return new Contract(address, _abi, signerOrProvider) as CurveFactoryPool; - } -} diff --git a/src/apps/curve/contracts/ethers/factories/CurveMinter__factory.ts b/src/apps/curve/contracts/ethers/factories/CurveMinter__factory.ts deleted file mode 100644 index 97c92bf93..000000000 --- a/src/apps/curve/contracts/ethers/factories/CurveMinter__factory.ts +++ /dev/null @@ -1,175 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Signer, utils } from 'ethers'; -import type { Provider } from '@ethersproject/providers'; -import type { CurveMinter, CurveMinterInterface } from '../CurveMinter'; - -const _abi = [ - { - name: 'Minted', - inputs: [ - { - type: 'address', - name: 'recipient', - indexed: true, - }, - { - type: 'address', - name: 'gauge', - indexed: false, - }, - { - type: 'uint256', - name: 'minted', - indexed: false, - }, - ], - anonymous: false, - type: 'event', - }, - { - outputs: [], - inputs: [ - { - type: 'address', - name: '_token', - }, - { - type: 'address', - name: '_controller', - }, - ], - stateMutability: 'nonpayable', - type: 'constructor', - }, - { - name: 'mint', - outputs: [], - inputs: [ - { - type: 'address', - name: 'gauge_addr', - }, - ], - stateMutability: 'nonpayable', - type: 'function', - }, - { - name: 'mint_many', - outputs: [], - inputs: [ - { - type: 'address[8]', - name: 'gauge_addrs', - }, - ], - stateMutability: 'nonpayable', - type: 'function', - }, - { - name: 'mint_for', - outputs: [], - inputs: [ - { - type: 'address', - name: 'gauge_addr', - }, - { - type: 'address', - name: '_for', - }, - ], - stateMutability: 'nonpayable', - type: 'function', - }, - { - name: 'toggle_approve_mint', - outputs: [], - inputs: [ - { - type: 'address', - name: 'minting_user', - }, - ], - stateMutability: 'nonpayable', - type: 'function', - }, - { - name: 'token', - outputs: [ - { - type: 'address', - name: '', - }, - ], - inputs: [], - stateMutability: 'view', - type: 'function', - }, - { - name: 'controller', - outputs: [ - { - type: 'address', - name: '', - }, - ], - inputs: [], - stateMutability: 'view', - type: 'function', - }, - { - name: 'minted', - outputs: [ - { - type: 'uint256', - name: '', - }, - ], - inputs: [ - { - type: 'address', - name: 'arg0', - }, - { - type: 'address', - name: 'arg1', - }, - ], - stateMutability: 'view', - type: 'function', - }, - { - name: 'allowed_to_mint_for', - outputs: [ - { - type: 'bool', - name: '', - }, - ], - inputs: [ - { - type: 'address', - name: 'arg0', - }, - { - type: 'address', - name: 'arg1', - }, - ], - stateMutability: 'view', - type: 'function', - }, -]; - -export class CurveMinter__factory { - static readonly abi = _abi; - static createInterface(): CurveMinterInterface { - return new utils.Interface(_abi) as CurveMinterInterface; - } - static connect(address: string, signerOrProvider: Signer | Provider): CurveMinter { - return new Contract(address, _abi, signerOrProvider) as CurveMinter; - } -} diff --git a/src/apps/curve/contracts/ethers/factories/CurveMultiRewardStream__factory.ts b/src/apps/curve/contracts/ethers/factories/CurveMultiRewardStream__factory.ts deleted file mode 100644 index 6666ee78c..000000000 --- a/src/apps/curve/contracts/ethers/factories/CurveMultiRewardStream__factory.ts +++ /dev/null @@ -1,259 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Signer, utils } from 'ethers'; -import type { Provider } from '@ethersproject/providers'; -import type { CurveMultiRewardStream, CurveMultiRewardStreamInterface } from '../CurveMultiRewardStream'; - -const _abi = [ - { - stateMutability: 'nonpayable', - type: 'constructor', - inputs: [ - { - name: '_owner', - type: 'address', - }, - ], - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - name: 'add_reward', - inputs: [ - { - name: '_token', - type: 'address', - }, - { - name: '_distributor', - type: 'address', - }, - { - name: '_duration', - type: 'uint256', - }, - ], - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - name: 'remove_reward', - inputs: [ - { - name: '_token', - type: 'address', - }, - ], - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - name: 'set_receiver', - inputs: [ - { - name: '_receiver', - type: 'address', - }, - ], - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - name: 'get_reward', - inputs: [], - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - name: 'notify_reward_amount', - inputs: [ - { - name: '_token', - type: 'address', - }, - ], - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - name: 'set_reward_duration', - inputs: [ - { - name: '_token', - type: 'address', - }, - { - name: '_duration', - type: 'uint256', - }, - ], - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - name: 'set_reward_distributor', - inputs: [ - { - name: '_token', - type: 'address', - }, - { - name: '_distributor', - type: 'address', - }, - ], - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - name: 'commit_transfer_ownership', - inputs: [ - { - name: '_owner', - type: 'address', - }, - ], - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - name: 'accept_transfer_ownership', - inputs: [], - outputs: [], - }, - { - stateMutability: 'view', - type: 'function', - name: 'owner', - inputs: [], - outputs: [ - { - name: '', - type: 'address', - }, - ], - }, - { - stateMutability: 'view', - type: 'function', - name: 'future_owner', - inputs: [], - outputs: [ - { - name: '', - type: 'address', - }, - ], - }, - { - stateMutability: 'view', - type: 'function', - name: 'reward_receiver', - inputs: [], - outputs: [ - { - name: '', - type: 'address', - }, - ], - }, - { - stateMutability: 'view', - type: 'function', - name: 'reward_tokens', - inputs: [ - { - name: 'arg0', - type: 'uint256', - }, - ], - outputs: [ - { - name: '', - type: 'address', - }, - ], - }, - { - stateMutability: 'view', - type: 'function', - name: 'reward_count', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - }, - { - stateMutability: 'view', - type: 'function', - name: 'reward_data', - inputs: [ - { - name: 'arg0', - type: 'address', - }, - ], - outputs: [ - { - name: 'distributor', - type: 'address', - }, - { - name: 'period_finish', - type: 'uint256', - }, - { - name: 'rate', - type: 'uint256', - }, - { - name: 'duration', - type: 'uint256', - }, - { - name: 'received', - type: 'uint256', - }, - { - name: 'paid', - type: 'uint256', - }, - ], - }, - { - stateMutability: 'view', - type: 'function', - name: 'last_update_time', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - }, -]; - -export class CurveMultiRewardStream__factory { - static readonly abi = _abi; - static createInterface(): CurveMultiRewardStreamInterface { - return new utils.Interface(_abi) as CurveMultiRewardStreamInterface; - } - static connect(address: string, signerOrProvider: Signer | Provider): CurveMultiRewardStream { - return new Contract(address, _abi, signerOrProvider) as CurveMultiRewardStream; - } -} diff --git a/src/apps/curve/contracts/ethers/factories/CurvePassthroughRewards__factory.ts b/src/apps/curve/contracts/ethers/factories/CurvePassthroughRewards__factory.ts deleted file mode 100644 index f691b15a7..000000000 --- a/src/apps/curve/contracts/ethers/factories/CurvePassthroughRewards__factory.ts +++ /dev/null @@ -1,138 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Signer, utils } from 'ethers'; -import type { Provider } from '@ethersproject/providers'; -import type { CurvePassthroughRewards, CurvePassthroughRewardsInterface } from '../CurvePassthroughRewards'; - -const _abi = [ - { - stateMutability: 'nonpayable', - type: 'constructor', - inputs: [ - { - name: '_owner', - type: 'address', - }, - { - name: '_reward_receiver', - type: 'address', - }, - ], - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - name: 'get_reward', - inputs: [], - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - name: 'set_reward_data', - inputs: [ - { - name: '_idx', - type: 'uint256', - }, - { - name: '_claim', - type: 'address', - }, - { - name: '_reward', - type: 'address', - }, - ], - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - name: 'commit_transfer_ownership', - inputs: [ - { - name: '_owner', - type: 'address', - }, - ], - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - name: 'accept_transfer_ownership', - inputs: [], - outputs: [], - }, - { - stateMutability: 'view', - type: 'function', - name: 'owner', - inputs: [], - outputs: [ - { - name: '', - type: 'address', - }, - ], - }, - { - stateMutability: 'view', - type: 'function', - name: 'future_owner', - inputs: [], - outputs: [ - { - name: '', - type: 'address', - }, - ], - }, - { - stateMutability: 'view', - type: 'function', - name: 'reward_receiver', - inputs: [], - outputs: [ - { - name: '', - type: 'address', - }, - ], - }, - { - stateMutability: 'view', - type: 'function', - name: 'reward_data', - inputs: [ - { - name: 'arg0', - type: 'uint256', - }, - ], - outputs: [ - { - name: 'claim', - type: 'address', - }, - { - name: 'reward', - type: 'address', - }, - ], - }, -]; - -export class CurvePassthroughRewards__factory { - static readonly abi = _abi; - static createInterface(): CurvePassthroughRewardsInterface { - return new utils.Interface(_abi) as CurvePassthroughRewardsInterface; - } - static connect(address: string, signerOrProvider: Signer | Provider): CurvePassthroughRewards { - return new Contract(address, _abi, signerOrProvider) as CurvePassthroughRewards; - } -} diff --git a/src/apps/curve/contracts/ethers/factories/CurveToken__factory.ts b/src/apps/curve/contracts/ethers/factories/CurvePoolLegacy__factory.ts similarity index 97% rename from src/apps/curve/contracts/ethers/factories/CurveToken__factory.ts rename to src/apps/curve/contracts/ethers/factories/CurvePoolLegacy__factory.ts index 97536abaa..042e7ec9e 100644 --- a/src/apps/curve/contracts/ethers/factories/CurveToken__factory.ts +++ b/src/apps/curve/contracts/ethers/factories/CurvePoolLegacy__factory.ts @@ -4,7 +4,7 @@ import { Contract, Signer, utils } from 'ethers'; import type { Provider } from '@ethersproject/providers'; -import type { CurveToken, CurveTokenInterface } from '../CurveToken'; +import type { CurvePoolLegacy, CurvePoolLegacyInterface } from '../CurvePoolLegacy'; const _abi = [ { @@ -788,12 +788,12 @@ const _abi = [ }, ]; -export class CurveToken__factory { +export class CurvePoolLegacy__factory { static readonly abi = _abi; - static createInterface(): CurveTokenInterface { - return new utils.Interface(_abi) as CurveTokenInterface; + static createInterface(): CurvePoolLegacyInterface { + return new utils.Interface(_abi) as CurvePoolLegacyInterface; } - static connect(address: string, signerOrProvider: Signer | Provider): CurveToken { - return new Contract(address, _abi, signerOrProvider) as CurveToken; + static connect(address: string, signerOrProvider: Signer | Provider): CurvePoolLegacy { + return new Contract(address, _abi, signerOrProvider) as CurvePoolLegacy; } } diff --git a/src/apps/curve/contracts/ethers/factories/CurveV1Pool__factory.ts b/src/apps/curve/contracts/ethers/factories/CurvePool__factory.ts similarity index 98% rename from src/apps/curve/contracts/ethers/factories/CurveV1Pool__factory.ts rename to src/apps/curve/contracts/ethers/factories/CurvePool__factory.ts index 73dd62ed4..31c63b572 100644 --- a/src/apps/curve/contracts/ethers/factories/CurveV1Pool__factory.ts +++ b/src/apps/curve/contracts/ethers/factories/CurvePool__factory.ts @@ -4,7 +4,7 @@ import { Contract, Signer, utils } from 'ethers'; import type { Provider } from '@ethersproject/providers'; -import type { CurveV1Pool, CurveV1PoolInterface } from '../CurveV1Pool'; +import type { CurvePool, CurvePoolInterface } from '../CurvePool'; const _abi = [ { @@ -845,12 +845,12 @@ const _abi = [ }, ]; -export class CurveV1Pool__factory { +export class CurvePool__factory { static readonly abi = _abi; - static createInterface(): CurveV1PoolInterface { - return new utils.Interface(_abi) as CurveV1PoolInterface; + static createInterface(): CurvePoolInterface { + return new utils.Interface(_abi) as CurvePoolInterface; } - static connect(address: string, signerOrProvider: Signer | Provider): CurveV1Pool { - return new Contract(address, _abi, signerOrProvider) as CurveV1Pool; + static connect(address: string, signerOrProvider: Signer | Provider): CurvePool { + return new Contract(address, _abi, signerOrProvider) as CurvePool; } } diff --git a/src/apps/curve/contracts/ethers/factories/CurveFactoryV2__factory.ts b/src/apps/curve/contracts/ethers/factories/CurveStableFactory__factory.ts similarity index 98% rename from src/apps/curve/contracts/ethers/factories/CurveFactoryV2__factory.ts rename to src/apps/curve/contracts/ethers/factories/CurveStableFactory__factory.ts index 78aaf9056..fad79d3ae 100644 --- a/src/apps/curve/contracts/ethers/factories/CurveFactoryV2__factory.ts +++ b/src/apps/curve/contracts/ethers/factories/CurveStableFactory__factory.ts @@ -4,7 +4,7 @@ import { Contract, Signer, utils } from 'ethers'; import type { Provider } from '@ethersproject/providers'; -import type { CurveFactoryV2, CurveFactoryV2Interface } from '../CurveFactoryV2'; +import type { CurveStableFactory, CurveStableFactoryInterface } from '../CurveStableFactory'; const _abi = [ { @@ -1028,12 +1028,12 @@ const _abi = [ }, ]; -export class CurveFactoryV2__factory { +export class CurveStableFactory__factory { static readonly abi = _abi; - static createInterface(): CurveFactoryV2Interface { - return new utils.Interface(_abi) as CurveFactoryV2Interface; + static createInterface(): CurveStableFactoryInterface { + return new utils.Interface(_abi) as CurveStableFactoryInterface; } - static connect(address: string, signerOrProvider: Signer | Provider): CurveFactoryV2 { - return new Contract(address, _abi, signerOrProvider) as CurveFactoryV2; + static connect(address: string, signerOrProvider: Signer | Provider): CurveStableFactory { + return new Contract(address, _abi, signerOrProvider) as CurveStableFactory; } } diff --git a/src/apps/curve/contracts/ethers/factories/CurveV1Metapool__factory.ts b/src/apps/curve/contracts/ethers/factories/CurveStableRegistry__factory.ts similarity index 51% rename from src/apps/curve/contracts/ethers/factories/CurveV1Metapool__factory.ts rename to src/apps/curve/contracts/ethers/factories/CurveStableRegistry__factory.ts index a7e6a8b1f..190c6a80b 100644 --- a/src/apps/curve/contracts/ethers/factories/CurveV1Metapool__factory.ts +++ b/src/apps/curve/contracts/ethers/factories/CurveStableRegistry__factory.ts @@ -4,35 +4,20 @@ import { Contract, Signer, utils } from 'ethers'; import type { Provider } from '@ethersproject/providers'; -import type { CurveV1Metapool, CurveV1MetapoolInterface } from '../CurveV1Metapool'; +import type { CurveStableRegistry, CurveStableRegistryInterface } from '../CurveStableRegistry'; const _abi = [ { - name: 'TokenExchange', + name: 'PoolAdded', inputs: [ { + name: 'pool', type: 'address', - name: 'buyer', indexed: true, }, { - type: 'int128', - name: 'sold_id', - indexed: false, - }, - { - type: 'uint256', - name: 'tokens_sold', - indexed: false, - }, - { - type: 'int128', - name: 'bought_id', - indexed: false, - }, - { - type: 'uint256', - name: 'tokens_bought', + name: 'rate_method_id', + type: 'bytes', indexed: false, }, ], @@ -40,983 +25,895 @@ const _abi = [ type: 'event', }, { - name: 'TokenExchangeUnderlying', + name: 'PoolRemoved', inputs: [ { + name: 'pool', type: 'address', - name: 'buyer', indexed: true, }, - { - type: 'int128', - name: 'sold_id', - indexed: false, - }, - { - type: 'uint256', - name: 'tokens_sold', - indexed: false, - }, - { - type: 'int128', - name: 'bought_id', - indexed: false, - }, - { - type: 'uint256', - name: 'tokens_bought', - indexed: false, - }, ], anonymous: false, type: 'event', }, { - name: 'AddLiquidity', + stateMutability: 'nonpayable', + type: 'constructor', inputs: [ { + name: '_address_provider', type: 'address', - name: 'provider', - indexed: true, }, { - type: 'uint256[2]', - name: 'token_amounts', - indexed: false, + name: '_gauge_controller', + type: 'address', }, + ], + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + name: 'find_pool_for_coins', + inputs: [ { - type: 'uint256[2]', - name: 'fees', - indexed: false, + name: '_from', + type: 'address', }, { - type: 'uint256', - name: 'invariant', - indexed: false, + name: '_to', + type: 'address', }, + ], + outputs: [ { - type: 'uint256', - name: 'token_supply', - indexed: false, + name: '', + type: 'address', }, ], - anonymous: false, - type: 'event', }, { - name: 'RemoveLiquidity', + stateMutability: 'view', + type: 'function', + name: 'find_pool_for_coins', inputs: [ { + name: '_from', type: 'address', - name: 'provider', - indexed: true, }, { - type: 'uint256[2]', - name: 'token_amounts', - indexed: false, + name: '_to', + type: 'address', }, { - type: 'uint256[2]', - name: 'fees', - indexed: false, + name: 'i', + type: 'uint256', }, + ], + outputs: [ { - type: 'uint256', - name: 'token_supply', - indexed: false, + name: '', + type: 'address', }, ], - anonymous: false, - type: 'event', }, { - name: 'RemoveLiquidityOne', + stateMutability: 'view', + type: 'function', + name: 'get_n_coins', inputs: [ { + name: '_pool', type: 'address', - name: 'provider', - indexed: true, }, + ], + outputs: [ { - type: 'uint256', - name: 'token_amount', - indexed: false, + name: '', + type: 'uint256[2]', }, + ], + }, + { + stateMutability: 'view', + type: 'function', + name: 'get_coins', + inputs: [ { - type: 'uint256', - name: 'coin_amount', - indexed: false, + name: '_pool', + type: 'address', }, + ], + outputs: [ { - type: 'uint256', - name: 'token_supply', - indexed: false, + name: '', + type: 'address[8]', }, ], - anonymous: false, - type: 'event', }, { - name: 'RemoveLiquidityImbalance', + stateMutability: 'view', + type: 'function', + name: 'get_underlying_coins', inputs: [ { + name: '_pool', type: 'address', - name: 'provider', - indexed: true, - }, - { - type: 'uint256[2]', - name: 'token_amounts', - indexed: false, }, + ], + outputs: [ { - type: 'uint256[2]', - name: 'fees', - indexed: false, + name: '', + type: 'address[8]', }, + ], + }, + { + stateMutability: 'view', + type: 'function', + name: 'get_decimals', + inputs: [ { - type: 'uint256', - name: 'invariant', - indexed: false, + name: '_pool', + type: 'address', }, + ], + outputs: [ { - type: 'uint256', - name: 'token_supply', - indexed: false, + name: '', + type: 'uint256[8]', }, ], - anonymous: false, - type: 'event', }, { - name: 'CommitNewAdmin', + stateMutability: 'view', + type: 'function', + name: 'get_underlying_decimals', inputs: [ { - type: 'uint256', - name: 'deadline', - indexed: true, + name: '_pool', + type: 'address', }, + ], + outputs: [ { - type: 'address', - name: 'admin', - indexed: true, + name: '', + type: 'uint256[8]', }, ], - anonymous: false, - type: 'event', }, { - name: 'NewAdmin', + stateMutability: 'view', + type: 'function', + name: 'get_rates', inputs: [ { + name: '_pool', type: 'address', - name: 'admin', - indexed: true, }, ], - anonymous: false, - type: 'event', + outputs: [ + { + name: '', + type: 'uint256[8]', + }, + ], }, { - name: 'CommitNewFee', + stateMutability: 'view', + type: 'function', + name: 'get_gauges', inputs: [ { - type: 'uint256', - name: 'deadline', - indexed: true, + name: '_pool', + type: 'address', }, + ], + outputs: [ { - type: 'uint256', - name: 'fee', - indexed: false, + name: '', + type: 'address[10]', }, { - type: 'uint256', - name: 'admin_fee', - indexed: false, + name: '', + type: 'int128[10]', }, ], - anonymous: false, - type: 'event', }, { - name: 'NewFee', + stateMutability: 'view', + type: 'function', + name: 'get_balances', inputs: [ { - type: 'uint256', - name: 'fee', - indexed: false, + name: '_pool', + type: 'address', }, + ], + outputs: [ { - type: 'uint256', - name: 'admin_fee', - indexed: false, + name: '', + type: 'uint256[8]', }, ], - anonymous: false, - type: 'event', }, { - name: 'RampA', + stateMutability: 'view', + type: 'function', + name: 'get_underlying_balances', inputs: [ { - type: 'uint256', - name: 'old_A', - indexed: false, + name: '_pool', + type: 'address', }, + ], + outputs: [ { - type: 'uint256', - name: 'new_A', - indexed: false, + name: '', + type: 'uint256[8]', }, + ], + }, + { + stateMutability: 'view', + type: 'function', + name: 'get_virtual_price_from_lp_token', + inputs: [ { - type: 'uint256', - name: 'initial_time', - indexed: false, + name: '_token', + type: 'address', }, + ], + outputs: [ { + name: '', type: 'uint256', - name: 'future_time', - indexed: false, }, ], - anonymous: false, - type: 'event', }, { - name: 'StopRampA', + stateMutability: 'view', + type: 'function', + name: 'get_A', inputs: [ { - type: 'uint256', - name: 'A', - indexed: false, + name: '_pool', + type: 'address', }, + ], + outputs: [ { + name: '', type: 'uint256', - name: 't', - indexed: false, }, ], - anonymous: false, - type: 'event', }, { - outputs: [], + stateMutability: 'view', + type: 'function', + name: 'get_parameters', inputs: [ { + name: '_pool', type: 'address', - name: '_owner', }, + ], + outputs: [ { - type: 'address[2]', - name: '_coins', + name: 'A', + type: 'uint256', }, { - type: 'address', - name: '_pool_token', + name: 'future_A', + type: 'uint256', }, { + name: 'fee', + type: 'uint256', + }, + { + name: 'admin_fee', + type: 'uint256', + }, + { + name: 'future_fee', + type: 'uint256', + }, + { + name: 'future_admin_fee', + type: 'uint256', + }, + { + name: 'future_owner', type: 'address', - name: '_base_pool', }, { + name: 'initial_A', type: 'uint256', - name: '_A', }, { + name: 'initial_A_time', type: 'uint256', - name: '_fee', }, { + name: 'future_A_time', type: 'uint256', - name: '_admin_fee', }, ], - stateMutability: 'nonpayable', - type: 'constructor', }, { - name: 'A', - outputs: [ + stateMutability: 'view', + type: 'function', + name: 'get_fees', + inputs: [ { - type: 'uint256', - name: '', + name: '_pool', + type: 'address', }, ], - inputs: [], - stateMutability: 'view', - type: 'function', - gas: '5205', - }, - { - name: 'A_precise', outputs: [ { - type: 'uint256', name: '', + type: 'uint256[2]', }, ], - inputs: [], - stateMutability: 'view', - type: 'function', - gas: '5167', }, { - name: 'get_virtual_price', - outputs: [ + stateMutability: 'view', + type: 'function', + name: 'get_admin_balances', + inputs: [ { - type: 'uint256', - name: '', + name: '_pool', + type: 'address', }, ], - inputs: [], - stateMutability: 'view', - type: 'function', - gas: '992854', - }, - { - name: 'calc_token_amount', outputs: [ { - type: 'uint256', name: '', + type: 'uint256[8]', }, ], + }, + { + stateMutability: 'view', + type: 'function', + name: 'get_coin_indices', inputs: [ { - type: 'uint256[2]', - name: 'amounts', + name: '_pool', + type: 'address', }, { - type: 'bool', - name: 'is_deposit', + name: '_from', + type: 'address', + }, + { + name: '_to', + type: 'address', }, ], - stateMutability: 'view', - type: 'function', - gas: '3939870', - }, - { - name: 'add_liquidity', outputs: [ { - type: 'uint256', name: '', + type: 'int128', }, - ], - inputs: [ { - type: 'uint256[2]', - name: 'amounts', + name: '', + type: 'int128', }, { - type: 'uint256', - name: 'min_mint_amount', + name: '', + type: 'bool', }, ], - stateMutability: 'nonpayable', - type: 'function', - gas: '6138492', }, { - name: 'get_dy', - outputs: [ + stateMutability: 'view', + type: 'function', + name: 'estimate_gas_used', + inputs: [ { - type: 'uint256', - name: '', + name: '_pool', + type: 'address', }, - ], - inputs: [ { - type: 'int128', - name: 'i', + name: '_from', + type: 'address', }, { - type: 'int128', - name: 'j', + name: '_to', + type: 'address', }, + ], + outputs: [ { + name: '', type: 'uint256', - name: 'dx', }, ], - stateMutability: 'view', - type: 'function', - gas: '2390368', }, { - name: 'get_dy_underlying', + stateMutability: 'view', + type: 'function', + name: 'is_meta', + inputs: [ + { + name: '_pool', + type: 'address', + }, + ], outputs: [ { - type: 'uint256', name: '', + type: 'bool', }, ], + }, + { + stateMutability: 'view', + type: 'function', + name: 'get_pool_name', inputs: [ { - type: 'int128', - name: 'i', - }, - { - type: 'int128', - name: 'j', + name: '_pool', + type: 'address', }, + ], + outputs: [ { - type: 'uint256', - name: 'dx', + name: '', + type: 'string', }, ], - stateMutability: 'view', - type: 'function', - gas: '2393485', }, { - name: 'exchange', + stateMutability: 'view', + type: 'function', + name: 'get_coin_swap_count', + inputs: [ + { + name: '_coin', + type: 'address', + }, + ], outputs: [ { - type: 'uint256', name: '', + type: 'uint256', }, ], + }, + { + stateMutability: 'view', + type: 'function', + name: 'get_coin_swap_complement', inputs: [ { - type: 'int128', - name: 'i', - }, - { - type: 'int128', - name: 'j', + name: '_coin', + type: 'address', }, { + name: '_index', type: 'uint256', - name: 'dx', }, + ], + outputs: [ { - type: 'uint256', - name: 'min_dy', + name: '', + type: 'address', }, ], - stateMutability: 'nonpayable', - type: 'function', - gas: '2617568', }, { - name: 'exchange_underlying', + stateMutability: 'view', + type: 'function', + name: 'get_pool_asset_type', + inputs: [ + { + name: '_pool', + type: 'address', + }, + ], outputs: [ { - type: 'uint256', name: '', + type: 'uint256', }, ], + }, + { + stateMutability: 'nonpayable', + type: 'function', + name: 'add_pool', inputs: [ { - type: 'int128', - name: 'i', + name: '_pool', + type: 'address', }, { - type: 'int128', - name: 'j', + name: '_n_coins', + type: 'uint256', + }, + { + name: '_lp_token', + type: 'address', + }, + { + name: '_rate_info', + type: 'bytes32', }, { + name: '_decimals', type: 'uint256', - name: 'dx', }, { + name: '_underlying_decimals', type: 'uint256', - name: 'min_dy', }, - ], - stateMutability: 'nonpayable', - type: 'function', - gas: '2632475', - }, - { - name: 'remove_liquidity', - outputs: [ { - type: 'uint256[2]', - name: '', + name: '_has_initial_A', + type: 'bool', }, - ], - inputs: [ { - type: 'uint256', - name: '_amount', + name: '_is_v1', + type: 'bool', }, { - type: 'uint256[2]', - name: 'min_amounts', + name: '_name', + type: 'string', }, ], - stateMutability: 'nonpayable', - type: 'function', - gas: '163289', + outputs: [], }, { - name: 'remove_liquidity_imbalance', - outputs: [ + stateMutability: 'nonpayable', + type: 'function', + name: 'add_pool_without_underlying', + inputs: [ + { + name: '_pool', + type: 'address', + }, { + name: '_n_coins', type: 'uint256', - name: '', }, - ], - inputs: [ { - type: 'uint256[2]', - name: 'amounts', + name: '_lp_token', + type: 'address', }, { - type: 'uint256', - name: 'max_burn_amount', + name: '_rate_info', + type: 'bytes32', }, - ], - stateMutability: 'nonpayable', - type: 'function', - gas: '6138317', - }, - { - name: 'calc_withdraw_one_coin', - outputs: [ { + name: '_decimals', type: 'uint256', - name: '', }, - ], - inputs: [ { + name: '_use_rates', type: 'uint256', - name: '_token_amount', }, { - type: 'int128', - name: 'i', + name: '_has_initial_A', + type: 'bool', + }, + { + name: '_is_v1', + type: 'bool', + }, + { + name: '_name', + type: 'string', }, ], - stateMutability: 'view', - type: 'function', - gas: '4335', + outputs: [], }, { - name: 'remove_liquidity_one_coin', - outputs: [ + stateMutability: 'nonpayable', + type: 'function', + name: 'add_metapool', + inputs: [ { - type: 'uint256', - name: '', + name: '_pool', + type: 'address', }, - ], - inputs: [ { + name: '_n_coins', type: 'uint256', - name: '_token_amount', }, { - type: 'int128', - name: 'i', + name: '_lp_token', + type: 'address', }, { + name: '_decimals', type: 'uint256', - name: '_min_amount', + }, + { + name: '_name', + type: 'string', }, ], - stateMutability: 'nonpayable', - type: 'function', - gas: '3827137', + outputs: [], }, { - name: 'ramp_A', - outputs: [], + stateMutability: 'nonpayable', + type: 'function', + name: 'add_metapool', inputs: [ { + name: '_pool', + type: 'address', + }, + { + name: '_n_coins', type: 'uint256', - name: '_future_A', }, { + name: '_lp_token', + type: 'address', + }, + { + name: '_decimals', type: 'uint256', - name: '_future_time', + }, + { + name: '_name', + type: 'string', + }, + { + name: '_base_pool', + type: 'address', }, ], - stateMutability: 'nonpayable', - type: 'function', - gas: '151906', + outputs: [], }, { - name: 'stop_ramp_A', - outputs: [], - inputs: [], stateMutability: 'nonpayable', type: 'function', - gas: '148667', + name: 'remove_pool', + inputs: [ + { + name: '_pool', + type: 'address', + }, + ], + outputs: [], }, { - name: 'commit_new_fee', - outputs: [], + stateMutability: 'nonpayable', + type: 'function', + name: 'set_pool_gas_estimates', inputs: [ { - type: 'uint256', - name: 'new_fee', + name: '_addr', + type: 'address[5]', }, { - type: 'uint256', - name: 'new_admin_fee', + name: '_amount', + type: 'uint256[2][5]', }, ], - stateMutability: 'nonpayable', - type: 'function', - gas: '110491', - }, - { - name: 'apply_new_fee', outputs: [], - inputs: [], - stateMutability: 'nonpayable', - type: 'function', - gas: '97272', }, { - name: 'revert_new_parameters', - outputs: [], - inputs: [], stateMutability: 'nonpayable', type: 'function', - gas: '21925', - }, - { - name: 'commit_transfer_ownership', - outputs: [], + name: 'set_coin_gas_estimates', inputs: [ { - type: 'address', - name: '_owner', + name: '_addr', + type: 'address[10]', + }, + { + name: '_amount', + type: 'uint256[10]', }, ], - stateMutability: 'nonpayable', - type: 'function', - gas: '74663', - }, - { - name: 'apply_transfer_ownership', outputs: [], - inputs: [], - stateMutability: 'nonpayable', - type: 'function', - gas: '60740', }, { - name: 'revert_transfer_ownership', - outputs: [], - inputs: [], stateMutability: 'nonpayable', type: 'function', - gas: '22015', - }, - { - name: 'admin_balances', - outputs: [ + name: 'set_gas_estimate_contract', + inputs: [ { - type: 'uint256', - name: '', + name: '_pool', + type: 'address', }, - ], - inputs: [ { - type: 'uint256', - name: 'i', + name: '_estimator', + type: 'address', }, ], - stateMutability: 'view', - type: 'function', - gas: '3511', - }, - { - name: 'withdraw_admin_fees', outputs: [], - inputs: [], - stateMutability: 'nonpayable', - type: 'function', - gas: '9248', }, { - name: 'donate_admin_fees', - outputs: [], - inputs: [], stateMutability: 'nonpayable', type: 'function', - gas: '74995', - }, - { - name: 'kill_me', + name: 'set_liquidity_gauges', + inputs: [ + { + name: '_pool', + type: 'address', + }, + { + name: '_liquidity_gauges', + type: 'address[10]', + }, + ], outputs: [], - inputs: [], - stateMutability: 'nonpayable', - type: 'function', - gas: '38028', }, { - name: 'unkill_me', - outputs: [], - inputs: [], stateMutability: 'nonpayable', type: 'function', - gas: '22165', - }, - { - name: 'coins', - outputs: [ + name: 'set_pool_asset_type', + inputs: [ { + name: '_pool', type: 'address', - name: '', }, - ], - inputs: [ { + name: '_asset_type', type: 'uint256', - name: 'arg0', }, ], - stateMutability: 'view', - type: 'function', - gas: '2250', + outputs: [], }, { - name: 'balances', - outputs: [ + stateMutability: 'nonpayable', + type: 'function', + name: 'batch_set_pool_asset_type', + inputs: [ { - type: 'uint256', - name: '', + name: '_pools', + type: 'address[32]', }, - ], - inputs: [ { - type: 'uint256', - name: 'arg0', + name: '_asset_types', + type: 'uint256[32]', }, ], - stateMutability: 'view', - type: 'function', - gas: '2280', + outputs: [], }, { - name: 'fee', - outputs: [ - { - type: 'uint256', - name: '', - }, - ], - inputs: [], stateMutability: 'view', type: 'function', - gas: '2201', - }, - { - name: 'admin_fee', + name: 'address_provider', + inputs: [], outputs: [ { - type: 'uint256', name: '', + type: 'address', }, ], - inputs: [], - stateMutability: 'view', - type: 'function', - gas: '2231', }, { - name: 'owner', - outputs: [ - { - type: 'address', - name: '', - }, - ], - inputs: [], stateMutability: 'view', type: 'function', - gas: '2261', - }, - { - name: 'base_pool', + name: 'gauge_controller', + inputs: [], outputs: [ { - type: 'address', name: '', + type: 'address', }, ], - inputs: [], - stateMutability: 'view', - type: 'function', - gas: '2291', }, { - name: 'base_virtual_price', - outputs: [ + stateMutability: 'view', + type: 'function', + name: 'pool_list', + inputs: [ { + name: 'arg0', type: 'uint256', - name: '', }, ], - inputs: [], - stateMutability: 'view', - type: 'function', - gas: '2321', - }, - { - name: 'base_cache_updated', outputs: [ { - type: 'uint256', name: '', + type: 'address', }, ], - inputs: [], - stateMutability: 'view', - type: 'function', - gas: '2351', }, { - name: 'base_coins', + stateMutability: 'view', + type: 'function', + name: 'pool_count', + inputs: [], outputs: [ { - type: 'address', name: '', - }, - ], - inputs: [ - { type: 'uint256', - name: 'arg0', }, ], - stateMutability: 'view', - type: 'function', - gas: '2490', }, { - name: 'initial_A', - outputs: [ - { - type: 'uint256', - name: '', - }, - ], - inputs: [], stateMutability: 'view', type: 'function', - gas: '2411', - }, - { - name: 'future_A', + name: 'coin_count', + inputs: [], outputs: [ { - type: 'uint256', name: '', + type: 'uint256', }, ], - inputs: [], - stateMutability: 'view', - type: 'function', - gas: '2441', }, { - name: 'initial_A_time', - outputs: [ + stateMutability: 'view', + type: 'function', + name: 'get_coin', + inputs: [ { + name: 'arg0', type: 'uint256', - name: '', }, ], - inputs: [], - stateMutability: 'view', - type: 'function', - gas: '2471', - }, - { - name: 'future_A_time', outputs: [ { - type: 'uint256', name: '', + type: 'address', }, ], - inputs: [], - stateMutability: 'view', - type: 'function', - gas: '2501', }, { - name: 'admin_actions_deadline', - outputs: [ + stateMutability: 'view', + type: 'function', + name: 'get_pool_from_lp_token', + inputs: [ { - type: 'uint256', - name: '', + name: 'arg0', + type: 'address', }, ], - inputs: [], - stateMutability: 'view', - type: 'function', - gas: '2531', - }, - { - name: 'transfer_ownership_deadline', outputs: [ { - type: 'uint256', name: '', + type: 'address', }, ], - inputs: [], - stateMutability: 'view', - type: 'function', - gas: '2561', }, { - name: 'future_fee', - outputs: [ + stateMutability: 'view', + type: 'function', + name: 'get_lp_token', + inputs: [ { - type: 'uint256', - name: '', + name: 'arg0', + type: 'address', }, ], - inputs: [], - stateMutability: 'view', - type: 'function', - gas: '2591', - }, - { - name: 'future_admin_fee', outputs: [ { - type: 'uint256', name: '', + type: 'address', }, ], - inputs: [], - stateMutability: 'view', - type: 'function', - gas: '2621', }, { - name: 'future_owner', + stateMutability: 'view', + type: 'function', + name: 'last_updated', + inputs: [], outputs: [ { - type: 'address', name: '', + type: 'uint256', }, ], - inputs: [], - stateMutability: 'view', - type: 'function', - gas: '2651', }, ]; -export class CurveV1Metapool__factory { +export class CurveStableRegistry__factory { static readonly abi = _abi; - static createInterface(): CurveV1MetapoolInterface { - return new utils.Interface(_abi) as CurveV1MetapoolInterface; + static createInterface(): CurveStableRegistryInterface { + return new utils.Interface(_abi) as CurveStableRegistryInterface; } - static connect(address: string, signerOrProvider: Signer | Provider): CurveV1Metapool { - return new Contract(address, _abi, signerOrProvider) as CurveV1Metapool; + static connect(address: string, signerOrProvider: Signer | Provider): CurveStableRegistry { + return new Contract(address, _abi, signerOrProvider) as CurveStableRegistry; } } diff --git a/src/apps/curve/contracts/ethers/factories/CurveV1PoolLegacy__factory.ts b/src/apps/curve/contracts/ethers/factories/CurveV1PoolLegacy__factory.ts deleted file mode 100644 index 8d44c7eef..000000000 --- a/src/apps/curve/contracts/ethers/factories/CurveV1PoolLegacy__factory.ts +++ /dev/null @@ -1,799 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Signer, utils } from 'ethers'; -import type { Provider } from '@ethersproject/providers'; -import type { CurveV1PoolLegacy, CurveV1PoolLegacyInterface } from '../CurveV1PoolLegacy'; - -const _abi = [ - { - name: 'TokenExchange', - inputs: [ - { - type: 'address', - name: 'buyer', - indexed: true, - }, - { - type: 'int128', - name: 'sold_id', - indexed: false, - }, - { - type: 'uint256', - name: 'tokens_sold', - indexed: false, - }, - { - type: 'int128', - name: 'bought_id', - indexed: false, - }, - { - type: 'uint256', - name: 'tokens_bought', - indexed: false, - }, - ], - anonymous: false, - type: 'event', - }, - { - name: 'TokenExchangeUnderlying', - inputs: [ - { - type: 'address', - name: 'buyer', - indexed: true, - }, - { - type: 'int128', - name: 'sold_id', - indexed: false, - }, - { - type: 'uint256', - name: 'tokens_sold', - indexed: false, - }, - { - type: 'int128', - name: 'bought_id', - indexed: false, - }, - { - type: 'uint256', - name: 'tokens_bought', - indexed: false, - }, - ], - anonymous: false, - type: 'event', - }, - { - name: 'AddLiquidity', - inputs: [ - { - type: 'address', - name: 'provider', - indexed: true, - }, - { - type: 'uint256[4]', - name: 'token_amounts', - indexed: false, - }, - { - type: 'uint256[4]', - name: 'fees', - indexed: false, - }, - { - type: 'uint256', - name: 'invariant', - indexed: false, - }, - { - type: 'uint256', - name: 'token_supply', - indexed: false, - }, - ], - anonymous: false, - type: 'event', - }, - { - name: 'RemoveLiquidity', - inputs: [ - { - type: 'address', - name: 'provider', - indexed: true, - }, - { - type: 'uint256[4]', - name: 'token_amounts', - indexed: false, - }, - { - type: 'uint256[4]', - name: 'fees', - indexed: false, - }, - { - type: 'uint256', - name: 'token_supply', - indexed: false, - }, - ], - anonymous: false, - type: 'event', - }, - { - name: 'RemoveLiquidityImbalance', - inputs: [ - { - type: 'address', - name: 'provider', - indexed: true, - }, - { - type: 'uint256[4]', - name: 'token_amounts', - indexed: false, - }, - { - type: 'uint256[4]', - name: 'fees', - indexed: false, - }, - { - type: 'uint256', - name: 'invariant', - indexed: false, - }, - { - type: 'uint256', - name: 'token_supply', - indexed: false, - }, - ], - anonymous: false, - type: 'event', - }, - { - name: 'CommitNewAdmin', - inputs: [ - { - type: 'uint256', - name: 'deadline', - indexed: true, - unit: 'sec', - }, - { - type: 'address', - name: 'admin', - indexed: true, - }, - ], - anonymous: false, - type: 'event', - }, - { - name: 'NewAdmin', - inputs: [ - { - type: 'address', - name: 'admin', - indexed: true, - }, - ], - anonymous: false, - type: 'event', - }, - { - name: 'CommitNewParameters', - inputs: [ - { - type: 'uint256', - name: 'deadline', - indexed: true, - unit: 'sec', - }, - { - type: 'uint256', - name: 'A', - indexed: false, - }, - { - type: 'uint256', - name: 'fee', - indexed: false, - }, - { - type: 'uint256', - name: 'admin_fee', - indexed: false, - }, - ], - anonymous: false, - type: 'event', - }, - { - name: 'NewParameters', - inputs: [ - { - type: 'uint256', - name: 'A', - indexed: false, - }, - { - type: 'uint256', - name: 'fee', - indexed: false, - }, - { - type: 'uint256', - name: 'admin_fee', - indexed: false, - }, - ], - anonymous: false, - type: 'event', - }, - { - outputs: [], - inputs: [ - { - type: 'address[4]', - name: '_coins', - }, - { - type: 'address[4]', - name: '_underlying_coins', - }, - { - type: 'address', - name: '_pool_token', - }, - { - type: 'uint256', - name: '_A', - }, - { - type: 'uint256', - name: '_fee', - }, - ], - constant: false, - payable: false, - type: 'constructor', - }, - { - name: 'get_virtual_price', - outputs: [ - { - type: 'uint256', - name: 'out', - }, - ], - inputs: [], - constant: true, - payable: false, - type: 'function', - }, - { - name: 'calc_token_amount', - outputs: [ - { - type: 'uint256', - name: 'out', - }, - ], - inputs: [ - { - type: 'uint256[4]', - name: 'amounts', - }, - { - type: 'bool', - name: 'deposit', - }, - ], - constant: true, - payable: false, - type: 'function', - }, - { - name: 'add_liquidity', - outputs: [], - inputs: [ - { - type: 'uint256[4]', - name: 'amounts', - }, - { - type: 'uint256', - name: 'min_mint_amount', - }, - ], - constant: false, - payable: false, - type: 'function', - }, - { - name: 'get_dy', - outputs: [ - { - type: 'uint256', - name: 'out', - }, - ], - inputs: [ - { - type: 'int128', - name: 'i', - }, - { - type: 'int128', - name: 'j', - }, - { - type: 'uint256', - name: 'dx', - }, - ], - constant: true, - payable: false, - type: 'function', - }, - { - name: 'get_dx', - outputs: [ - { - type: 'uint256', - name: 'out', - }, - ], - inputs: [ - { - type: 'int128', - name: 'i', - }, - { - type: 'int128', - name: 'j', - }, - { - type: 'uint256', - name: 'dy', - }, - ], - constant: true, - payable: false, - type: 'function', - }, - { - name: 'get_dy_underlying', - outputs: [ - { - type: 'uint256', - name: 'out', - }, - ], - inputs: [ - { - type: 'int128', - name: 'i', - }, - { - type: 'int128', - name: 'j', - }, - { - type: 'uint256', - name: 'dx', - }, - ], - constant: true, - payable: false, - type: 'function', - }, - { - name: 'get_dx_underlying', - outputs: [ - { - type: 'uint256', - name: 'out', - }, - ], - inputs: [ - { - type: 'int128', - name: 'i', - }, - { - type: 'int128', - name: 'j', - }, - { - type: 'uint256', - name: 'dy', - }, - ], - constant: true, - payable: false, - type: 'function', - }, - { - name: 'exchange', - outputs: [], - inputs: [ - { - type: 'int128', - name: 'i', - }, - { - type: 'int128', - name: 'j', - }, - { - type: 'uint256', - name: 'dx', - }, - { - type: 'uint256', - name: 'min_dy', - }, - ], - constant: false, - payable: false, - type: 'function', - }, - { - name: 'exchange_underlying', - outputs: [], - inputs: [ - { - type: 'int128', - name: 'i', - }, - { - type: 'int128', - name: 'j', - }, - { - type: 'uint256', - name: 'dx', - }, - { - type: 'uint256', - name: 'min_dy', - }, - ], - constant: false, - payable: false, - type: 'function', - }, - { - name: 'remove_liquidity', - outputs: [], - inputs: [ - { - type: 'uint256', - name: '_amount', - }, - { - type: 'uint256[4]', - name: 'min_amounts', - }, - ], - constant: false, - payable: false, - type: 'function', - }, - { - name: 'remove_liquidity_imbalance', - outputs: [], - inputs: [ - { - type: 'uint256[4]', - name: 'amounts', - }, - { - type: 'uint256', - name: 'max_burn_amount', - }, - ], - constant: false, - payable: false, - type: 'function', - }, - { - name: 'commit_new_parameters', - outputs: [], - inputs: [ - { - type: 'uint256', - name: 'amplification', - }, - { - type: 'uint256', - name: 'new_fee', - }, - { - type: 'uint256', - name: 'new_admin_fee', - }, - ], - constant: false, - payable: false, - type: 'function', - }, - { - name: 'apply_new_parameters', - outputs: [], - inputs: [], - constant: false, - payable: false, - type: 'function', - }, - { - name: 'revert_new_parameters', - outputs: [], - inputs: [], - constant: false, - payable: false, - type: 'function', - }, - { - name: 'commit_transfer_ownership', - outputs: [], - inputs: [ - { - type: 'address', - name: '_owner', - }, - ], - constant: false, - payable: false, - type: 'function', - }, - { - name: 'apply_transfer_ownership', - outputs: [], - inputs: [], - constant: false, - payable: false, - type: 'function', - }, - { - name: 'revert_transfer_ownership', - outputs: [], - inputs: [], - constant: false, - payable: false, - type: 'function', - }, - { - name: 'withdraw_admin_fees', - outputs: [], - inputs: [], - constant: false, - payable: false, - type: 'function', - }, - { - name: 'kill_me', - outputs: [], - inputs: [], - constant: false, - payable: false, - type: 'function', - }, - { - name: 'unkill_me', - outputs: [], - inputs: [], - constant: false, - payable: false, - type: 'function', - }, - { - name: 'coins', - outputs: [ - { - type: 'address', - name: 'out', - }, - ], - inputs: [ - { - type: 'int128', - name: 'arg0', - }, - ], - constant: true, - payable: false, - type: 'function', - }, - { - name: 'underlying_coins', - outputs: [ - { - type: 'address', - name: 'out', - }, - ], - inputs: [ - { - type: 'int128', - name: 'arg0', - }, - ], - constant: true, - payable: false, - type: 'function', - }, - { - name: 'balances', - outputs: [ - { - type: 'uint256', - name: 'out', - }, - ], - inputs: [ - { - type: 'int128', - name: 'arg0', - }, - ], - constant: true, - payable: false, - type: 'function', - }, - { - name: 'A', - outputs: [ - { - type: 'uint256', - name: 'out', - }, - ], - inputs: [], - constant: true, - payable: false, - type: 'function', - }, - { - name: 'fee', - outputs: [ - { - type: 'uint256', - name: 'out', - }, - ], - inputs: [], - constant: true, - payable: false, - type: 'function', - }, - { - name: 'admin_fee', - outputs: [ - { - type: 'uint256', - name: 'out', - }, - ], - inputs: [], - constant: true, - payable: false, - type: 'function', - }, - { - name: 'owner', - outputs: [ - { - type: 'address', - name: 'out', - }, - ], - inputs: [], - constant: true, - payable: false, - type: 'function', - }, - { - name: 'admin_actions_deadline', - outputs: [ - { - type: 'uint256', - unit: 'sec', - name: 'out', - }, - ], - inputs: [], - constant: true, - payable: false, - type: 'function', - }, - { - name: 'transfer_ownership_deadline', - outputs: [ - { - type: 'uint256', - unit: 'sec', - name: 'out', - }, - ], - inputs: [], - constant: true, - payable: false, - type: 'function', - }, - { - name: 'future_A', - outputs: [ - { - type: 'uint256', - name: 'out', - }, - ], - inputs: [], - constant: true, - payable: false, - type: 'function', - }, - { - name: 'future_fee', - outputs: [ - { - type: 'uint256', - name: 'out', - }, - ], - inputs: [], - constant: true, - payable: false, - type: 'function', - }, - { - name: 'future_admin_fee', - outputs: [ - { - type: 'uint256', - name: 'out', - }, - ], - inputs: [], - constant: true, - payable: false, - type: 'function', - }, - { - name: 'future_owner', - outputs: [ - { - type: 'address', - name: 'out', - }, - ], - inputs: [], - constant: true, - payable: false, - type: 'function', - }, -]; - -export class CurveV1PoolLegacy__factory { - static readonly abi = _abi; - static createInterface(): CurveV1PoolLegacyInterface { - return new utils.Interface(_abi) as CurveV1PoolLegacyInterface; - } - static connect(address: string, signerOrProvider: Signer | Provider): CurveV1PoolLegacy { - return new Contract(address, _abi, signerOrProvider) as CurveV1PoolLegacy; - } -} diff --git a/src/apps/curve/contracts/ethers/factories/CurveV2Pool__factory.ts b/src/apps/curve/contracts/ethers/factories/CurveV2Pool__factory.ts deleted file mode 100644 index f03c85fda..000000000 --- a/src/apps/curve/contracts/ethers/factories/CurveV2Pool__factory.ts +++ /dev/null @@ -1,1290 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Signer, utils } from 'ethers'; -import type { Provider } from '@ethersproject/providers'; -import type { CurveV2Pool, CurveV2PoolInterface } from '../CurveV2Pool'; - -const _abi = [ - { - name: 'TokenExchange', - inputs: [ - { - name: 'buyer', - type: 'address', - indexed: true, - }, - { - name: 'sold_id', - type: 'uint256', - indexed: false, - }, - { - name: 'tokens_sold', - type: 'uint256', - indexed: false, - }, - { - name: 'bought_id', - type: 'uint256', - indexed: false, - }, - { - name: 'tokens_bought', - type: 'uint256', - indexed: false, - }, - ], - anonymous: false, - type: 'event', - }, - { - name: 'AddLiquidity', - inputs: [ - { - name: 'provider', - type: 'address', - indexed: true, - }, - { - name: 'token_amounts', - type: 'uint256[3]', - indexed: false, - }, - { - name: 'fee', - type: 'uint256', - indexed: false, - }, - { - name: 'token_supply', - type: 'uint256', - indexed: false, - }, - ], - anonymous: false, - type: 'event', - }, - { - name: 'RemoveLiquidity', - inputs: [ - { - name: 'provider', - type: 'address', - indexed: true, - }, - { - name: 'token_amounts', - type: 'uint256[3]', - indexed: false, - }, - { - name: 'token_supply', - type: 'uint256', - indexed: false, - }, - ], - anonymous: false, - type: 'event', - }, - { - name: 'RemoveLiquidityOne', - inputs: [ - { - name: 'provider', - type: 'address', - indexed: true, - }, - { - name: 'token_amount', - type: 'uint256', - indexed: false, - }, - { - name: 'coin_index', - type: 'uint256', - indexed: false, - }, - { - name: 'coin_amount', - type: 'uint256', - indexed: false, - }, - ], - anonymous: false, - type: 'event', - }, - { - name: 'CommitNewAdmin', - inputs: [ - { - name: 'deadline', - type: 'uint256', - indexed: true, - }, - { - name: 'admin', - type: 'address', - indexed: true, - }, - ], - anonymous: false, - type: 'event', - }, - { - name: 'NewAdmin', - inputs: [ - { - name: 'admin', - type: 'address', - indexed: true, - }, - ], - anonymous: false, - type: 'event', - }, - { - name: 'CommitNewParameters', - inputs: [ - { - name: 'deadline', - type: 'uint256', - indexed: true, - }, - { - name: 'admin_fee', - type: 'uint256', - indexed: false, - }, - { - name: 'mid_fee', - type: 'uint256', - indexed: false, - }, - { - name: 'out_fee', - type: 'uint256', - indexed: false, - }, - { - name: 'fee_gamma', - type: 'uint256', - indexed: false, - }, - { - name: 'price_threshold', - type: 'uint256', - indexed: false, - }, - { - name: 'adjustment_step', - type: 'uint256', - indexed: false, - }, - { - name: 'ma_half_time', - type: 'uint256', - indexed: false, - }, - ], - anonymous: false, - type: 'event', - }, - { - name: 'NewParameters', - inputs: [ - { - name: 'admin_fee', - type: 'uint256', - indexed: false, - }, - { - name: 'mid_fee', - type: 'uint256', - indexed: false, - }, - { - name: 'out_fee', - type: 'uint256', - indexed: false, - }, - { - name: 'fee_gamma', - type: 'uint256', - indexed: false, - }, - { - name: 'price_threshold', - type: 'uint256', - indexed: false, - }, - { - name: 'adjustment_step', - type: 'uint256', - indexed: false, - }, - { - name: 'ma_half_time', - type: 'uint256', - indexed: false, - }, - ], - anonymous: false, - type: 'event', - }, - { - name: 'RampAgamma', - inputs: [ - { - name: 'initial_A', - type: 'uint256', - indexed: false, - }, - { - name: 'future_A', - type: 'uint256', - indexed: false, - }, - { - name: 'initial_time', - type: 'uint256', - indexed: false, - }, - { - name: 'future_time', - type: 'uint256', - indexed: false, - }, - ], - anonymous: false, - type: 'event', - }, - { - name: 'StopRampA', - inputs: [ - { - name: 'current_A', - type: 'uint256', - indexed: false, - }, - { - name: 'current_gamma', - type: 'uint256', - indexed: false, - }, - { - name: 'time', - type: 'uint256', - indexed: false, - }, - ], - anonymous: false, - type: 'event', - }, - { - name: 'ClaimAdminFee', - inputs: [ - { - name: 'admin', - type: 'address', - indexed: true, - }, - { - name: 'tokens', - type: 'uint256', - indexed: false, - }, - ], - anonymous: false, - type: 'event', - }, - { - stateMutability: 'nonpayable', - type: 'constructor', - inputs: [ - { - name: 'owner', - type: 'address', - }, - { - name: 'A', - type: 'uint256', - }, - { - name: 'gamma', - type: 'uint256', - }, - { - name: 'mid_fee', - type: 'uint256', - }, - { - name: 'out_fee', - type: 'uint256', - }, - { - name: 'price_threshold', - type: 'uint256', - }, - { - name: 'fee_gamma', - type: 'uint256', - }, - { - name: 'adjustment_step', - type: 'uint256', - }, - { - name: 'admin_fee', - type: 'uint256', - }, - { - name: 'ma_half_time', - type: 'uint256', - }, - { - name: 'initial_prices', - type: 'uint256[2]', - }, - ], - outputs: [], - }, - { - stateMutability: 'payable', - type: 'fallback', - }, - { - stateMutability: 'view', - type: 'function', - name: 'price_oracle', - inputs: [ - { - name: 'k', - type: 'uint256', - }, - ], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - gas: '3361', - }, - { - stateMutability: 'view', - type: 'function', - name: 'price_scale', - inputs: [ - { - name: 'k', - type: 'uint256', - }, - ], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - gas: '3391', - }, - { - stateMutability: 'view', - type: 'function', - name: 'last_prices', - inputs: [ - { - name: 'k', - type: 'uint256', - }, - ], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - gas: '3421', - }, - { - stateMutability: 'view', - type: 'function', - name: 'token', - inputs: [], - outputs: [ - { - name: '', - type: 'address', - }, - ], - gas: '468', - }, - { - stateMutability: 'view', - type: 'function', - name: 'coins', - inputs: [ - { - name: 'i', - type: 'uint256', - }, - ], - outputs: [ - { - name: '', - type: 'address', - }, - ], - gas: '582', - }, - { - stateMutability: 'view', - type: 'function', - name: 'A', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - gas: '937', - }, - { - stateMutability: 'view', - type: 'function', - name: 'gamma', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - gas: '12484', - }, - { - stateMutability: 'view', - type: 'function', - name: 'A_precise', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - gas: '929', - }, - { - stateMutability: 'view', - type: 'function', - name: 'fee', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - gas: '21733', - }, - { - stateMutability: 'view', - type: 'function', - name: 'fee_calc', - inputs: [ - { - name: 'xp', - type: 'uint256[3]', - }, - ], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - gas: '11156', - }, - { - stateMutability: 'view', - type: 'function', - name: 'get_virtual_price', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - gas: '11642', - }, - { - stateMutability: 'payable', - type: 'function', - name: 'exchange', - inputs: [ - { - name: 'i', - type: 'uint256', - }, - { - name: 'j', - type: 'uint256', - }, - { - name: 'dx', - type: 'uint256', - }, - { - name: 'min_dy', - type: 'uint256', - }, - ], - outputs: [], - }, - { - stateMutability: 'payable', - type: 'function', - name: 'exchange', - inputs: [ - { - name: 'i', - type: 'uint256', - }, - { - name: 'j', - type: 'uint256', - }, - { - name: 'dx', - type: 'uint256', - }, - { - name: 'min_dy', - type: 'uint256', - }, - { - name: 'use_eth', - type: 'bool', - }, - ], - outputs: [], - }, - { - stateMutability: 'view', - type: 'function', - name: 'get_dy', - inputs: [ - { - name: 'i', - type: 'uint256', - }, - { - name: 'j', - type: 'uint256', - }, - { - name: 'dx', - type: 'uint256', - }, - ], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - gas: '3152', - }, - { - stateMutability: 'view', - type: 'function', - name: 'calc_token_fee', - inputs: [ - { - name: 'amounts', - type: 'uint256[3]', - }, - { - name: 'xp', - type: 'uint256[3]', - }, - ], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - gas: '26702', - }, - { - stateMutability: 'nonpayable', - type: 'function', - name: 'add_liquidity', - inputs: [ - { - name: 'amounts', - type: 'uint256[3]', - }, - { - name: 'min_mint_amount', - type: 'uint256', - }, - ], - outputs: [], - gas: '682649', - }, - { - stateMutability: 'nonpayable', - type: 'function', - name: 'remove_liquidity', - inputs: [ - { - name: '_amount', - type: 'uint256', - }, - { - name: 'min_amounts', - type: 'uint256[3]', - }, - ], - outputs: [], - gas: '234127', - }, - { - stateMutability: 'view', - type: 'function', - name: 'calc_token_amount', - inputs: [ - { - name: 'amounts', - type: 'uint256[3]', - }, - { - name: 'deposit', - type: 'bool', - }, - ], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - gas: '3459', - }, - { - stateMutability: 'view', - type: 'function', - name: 'calc_withdraw_one_coin', - inputs: [ - { - name: 'token_amount', - type: 'uint256', - }, - { - name: 'i', - type: 'uint256', - }, - ], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - gas: '13939', - }, - { - stateMutability: 'nonpayable', - type: 'function', - name: 'remove_liquidity_one_coin', - inputs: [ - { - name: 'token_amount', - type: 'uint256', - }, - { - name: 'i', - type: 'uint256', - }, - { - name: 'min_amount', - type: 'uint256', - }, - ], - outputs: [], - gas: '592064', - }, - { - stateMutability: 'nonpayable', - type: 'function', - name: 'claim_admin_fees', - inputs: [], - outputs: [], - gas: '355740', - }, - { - stateMutability: 'nonpayable', - type: 'function', - name: 'ramp_A_gamma', - inputs: [ - { - name: 'future_A', - type: 'uint256', - }, - { - name: 'future_gamma', - type: 'uint256', - }, - { - name: 'future_time', - type: 'uint256', - }, - ], - outputs: [], - gas: '162031', - }, - { - stateMutability: 'nonpayable', - type: 'function', - name: 'stop_ramp_A_gamma', - inputs: [], - outputs: [], - gas: '157781', - }, - { - stateMutability: 'nonpayable', - type: 'function', - name: 'commit_new_parameters', - inputs: [ - { - name: '_new_mid_fee', - type: 'uint256', - }, - { - name: '_new_out_fee', - type: 'uint256', - }, - { - name: '_new_admin_fee', - type: 'uint256', - }, - { - name: '_new_fee_gamma', - type: 'uint256', - }, - { - name: '_new_price_threshold', - type: 'uint256', - }, - { - name: '_new_adjustment_step', - type: 'uint256', - }, - { - name: '_new_ma_half_time', - type: 'uint256', - }, - ], - outputs: [], - gas: '306299', - }, - { - stateMutability: 'nonpayable', - type: 'function', - name: 'apply_new_parameters', - inputs: [], - outputs: [], - gas: '649370', - }, - { - stateMutability: 'nonpayable', - type: 'function', - name: 'revert_new_parameters', - inputs: [], - outputs: [], - gas: '23252', - }, - { - stateMutability: 'nonpayable', - type: 'function', - name: 'commit_transfer_ownership', - inputs: [ - { - name: '_owner', - type: 'address', - }, - ], - outputs: [], - gas: '77290', - }, - { - stateMutability: 'nonpayable', - type: 'function', - name: 'apply_transfer_ownership', - inputs: [], - outputs: [], - gas: '65967', - }, - { - stateMutability: 'nonpayable', - type: 'function', - name: 'revert_transfer_ownership', - inputs: [], - outputs: [], - gas: '23342', - }, - { - stateMutability: 'nonpayable', - type: 'function', - name: 'kill_me', - inputs: [], - outputs: [], - gas: '40565', - }, - { - stateMutability: 'nonpayable', - type: 'function', - name: 'unkill_me', - inputs: [], - outputs: [], - gas: '23402', - }, - { - stateMutability: 'nonpayable', - type: 'function', - name: 'set_admin_fee_receiver', - inputs: [ - { - name: '_admin_fee_receiver', - type: 'address', - }, - ], - outputs: [], - gas: '38535', - }, - { - stateMutability: 'view', - type: 'function', - name: 'last_prices_timestamp', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - gas: '3408', - }, - { - stateMutability: 'view', - type: 'function', - name: 'initial_A_gamma', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - gas: '3438', - }, - { - stateMutability: 'view', - type: 'function', - name: 'future_A_gamma', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - gas: '3468', - }, - { - stateMutability: 'view', - type: 'function', - name: 'initial_A_gamma_time', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - gas: '3498', - }, - { - stateMutability: 'view', - type: 'function', - name: 'future_A_gamma_time', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - gas: '3528', - }, - { - stateMutability: 'view', - type: 'function', - name: 'price_threshold', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - gas: '3558', - }, - { - stateMutability: 'view', - type: 'function', - name: 'future_price_threshoold', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - gas: '3588', - }, - { - stateMutability: 'view', - type: 'function', - name: 'fee_gamma', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - gas: '3618', - }, - { - stateMutability: 'view', - type: 'function', - name: 'future_fee_gamma', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - gas: '3648', - }, - { - stateMutability: 'view', - type: 'function', - name: 'adjustment_step', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - gas: '3678', - }, - { - stateMutability: 'view', - type: 'function', - name: 'future_adjustment_step', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - gas: '3708', - }, - { - stateMutability: 'view', - type: 'function', - name: 'ma_half_time', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - gas: '3738', - }, - { - stateMutability: 'view', - type: 'function', - name: 'future_ma_half_time', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - gas: '3768', - }, - { - stateMutability: 'view', - type: 'function', - name: 'mid_fee', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - gas: '3798', - }, - { - stateMutability: 'view', - type: 'function', - name: 'out_fee', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - gas: '3828', - }, - { - stateMutability: 'view', - type: 'function', - name: 'admin_fee', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - gas: '3858', - }, - { - stateMutability: 'view', - type: 'function', - name: 'future_mid_fee', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - gas: '3888', - }, - { - stateMutability: 'view', - type: 'function', - name: 'future_out_fee', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - gas: '3918', - }, - { - stateMutability: 'view', - type: 'function', - name: 'future_admin_fee', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - gas: '3948', - }, - { - stateMutability: 'view', - type: 'function', - name: 'balances', - inputs: [ - { - name: 'arg0', - type: 'uint256', - }, - ], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - gas: '4087', - }, - { - stateMutability: 'view', - type: 'function', - name: 'D', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - gas: '4008', - }, - { - stateMutability: 'view', - type: 'function', - name: 'owner', - inputs: [], - outputs: [ - { - name: '', - type: 'address', - }, - ], - gas: '4038', - }, - { - stateMutability: 'view', - type: 'function', - name: 'future_owner', - inputs: [], - outputs: [ - { - name: '', - type: 'address', - }, - ], - gas: '4068', - }, - { - stateMutability: 'view', - type: 'function', - name: 'xcp_profit', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - gas: '4098', - }, - { - stateMutability: 'view', - type: 'function', - name: 'xcp_profit_a', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - gas: '4128', - }, - { - stateMutability: 'view', - type: 'function', - name: 'virtual_price', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - gas: '4158', - }, - { - stateMutability: 'view', - type: 'function', - name: 'is_killed', - inputs: [], - outputs: [ - { - name: '', - type: 'bool', - }, - ], - gas: '4188', - }, - { - stateMutability: 'view', - type: 'function', - name: 'kill_deadline', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - gas: '4218', - }, - { - stateMutability: 'view', - type: 'function', - name: 'transfer_ownership_deadline', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - gas: '4248', - }, - { - stateMutability: 'view', - type: 'function', - name: 'admin_actions_deadline', - inputs: [], - outputs: [ - { - name: '', - type: 'uint256', - }, - ], - gas: '4278', - }, - { - stateMutability: 'view', - type: 'function', - name: 'admin_fee_receiver', - inputs: [], - outputs: [ - { - name: '', - type: 'address', - }, - ], - gas: '4308', - }, -]; - -export class CurveV2Pool__factory { - static readonly abi = _abi; - static createInterface(): CurveV2PoolInterface { - return new utils.Interface(_abi) as CurveV2PoolInterface; - } - static connect(address: string, signerOrProvider: Signer | Provider): CurveV2Pool { - return new Contract(address, _abi, signerOrProvider) as CurveV2Pool; - } -} diff --git a/src/apps/curve/contracts/ethers/factories/index.ts b/src/apps/curve/contracts/ethers/factories/index.ts index fedbb154c..efe23ac11 100644 --- a/src/apps/curve/contracts/ethers/factories/index.ts +++ b/src/apps/curve/contracts/ethers/factories/index.ts @@ -1,28 +1,22 @@ /* Autogenerated file. Do not edit manually. */ /* tslint:disable */ /* eslint-disable */ +export { CurveAddressResolver__factory } from './CurveAddressResolver__factory'; export { CurveChildLiquidityGauge__factory } from './CurveChildLiquidityGauge__factory'; -export { CurveChildLiquidityGaugeFactory__factory } from './CurveChildLiquidityGaugeFactory__factory'; export { CurveController__factory } from './CurveController__factory'; -export { CurveCryptoPool__factory } from './CurveCryptoPool__factory'; +export { CurveCryptoFactory__factory } from './CurveCryptoFactory__factory'; +export { CurveCryptoRegistry__factory } from './CurveCryptoRegistry__factory'; export { CurveDoubleGauge__factory } from './CurveDoubleGauge__factory'; export { CurveFactory__factory } from './CurveFactory__factory'; -export { CurveFactoryPool__factory } from './CurveFactoryPool__factory'; export { CurveFactoryPoolV2__factory } from './CurveFactoryPoolV2__factory'; -export { CurveFactoryV2__factory } from './CurveFactoryV2__factory'; export { CurveGauge__factory } from './CurveGauge__factory'; export { CurveGaugeV2__factory } from './CurveGaugeV2__factory'; -export { CurveMinter__factory } from './CurveMinter__factory'; -export { CurveMultiRewardStream__factory } from './CurveMultiRewardStream__factory'; export { CurveNGauge__factory } from './CurveNGauge__factory'; -export { CurvePassthroughRewards__factory } from './CurvePassthroughRewards__factory'; +export { CurvePool__factory } from './CurvePool__factory'; +export { CurvePoolLegacy__factory } from './CurvePoolLegacy__factory'; export { CurveRewardsOnlyGauge__factory } from './CurveRewardsOnlyGauge__factory'; -export { CurveSingleRewardStream__factory } from './CurveSingleRewardStream__factory'; -export { CurveToken__factory } from './CurveToken__factory'; -export { CurveV1Metapool__factory } from './CurveV1Metapool__factory'; -export { CurveV1Pool__factory } from './CurveV1Pool__factory'; -export { CurveV1PoolLegacy__factory } from './CurveV1PoolLegacy__factory'; -export { CurveV2Pool__factory } from './CurveV2Pool__factory'; +export { CurveStableFactory__factory } from './CurveStableFactory__factory'; +export { CurveStableRegistry__factory } from './CurveStableRegistry__factory'; export { CurveVestingEscrow__factory } from './CurveVestingEscrow__factory'; export { CurveVotingEscrow__factory } from './CurveVotingEscrow__factory'; export { CurveVotingEscrowReward__factory } from './CurveVotingEscrowReward__factory'; diff --git a/src/apps/curve/contracts/ethers/index.ts b/src/apps/curve/contracts/ethers/index.ts index 2feadd577..f56a24ffa 100644 --- a/src/apps/curve/contracts/ethers/index.ts +++ b/src/apps/curve/contracts/ethers/index.ts @@ -1,54 +1,42 @@ /* Autogenerated file. Do not edit manually. */ /* tslint:disable */ /* eslint-disable */ +export type { CurveAddressResolver } from './CurveAddressResolver'; export type { CurveChildLiquidityGauge } from './CurveChildLiquidityGauge'; -export type { CurveChildLiquidityGaugeFactory } from './CurveChildLiquidityGaugeFactory'; export type { CurveController } from './CurveController'; -export type { CurveCryptoPool } from './CurveCryptoPool'; +export type { CurveCryptoFactory } from './CurveCryptoFactory'; +export type { CurveCryptoRegistry } from './CurveCryptoRegistry'; export type { CurveDoubleGauge } from './CurveDoubleGauge'; export type { CurveFactory } from './CurveFactory'; -export type { CurveFactoryPool } from './CurveFactoryPool'; export type { CurveFactoryPoolV2 } from './CurveFactoryPoolV2'; -export type { CurveFactoryV2 } from './CurveFactoryV2'; export type { CurveGauge } from './CurveGauge'; export type { CurveGaugeV2 } from './CurveGaugeV2'; -export type { CurveMinter } from './CurveMinter'; -export type { CurveMultiRewardStream } from './CurveMultiRewardStream'; export type { CurveNGauge } from './CurveNGauge'; -export type { CurvePassthroughRewards } from './CurvePassthroughRewards'; +export type { CurvePool } from './CurvePool'; +export type { CurvePoolLegacy } from './CurvePoolLegacy'; export type { CurveRewardsOnlyGauge } from './CurveRewardsOnlyGauge'; -export type { CurveSingleRewardStream } from './CurveSingleRewardStream'; -export type { CurveToken } from './CurveToken'; -export type { CurveV1Metapool } from './CurveV1Metapool'; -export type { CurveV1Pool } from './CurveV1Pool'; -export type { CurveV1PoolLegacy } from './CurveV1PoolLegacy'; -export type { CurveV2Pool } from './CurveV2Pool'; +export type { CurveStableFactory } from './CurveStableFactory'; +export type { CurveStableRegistry } from './CurveStableRegistry'; export type { CurveVestingEscrow } from './CurveVestingEscrow'; export type { CurveVotingEscrow } from './CurveVotingEscrow'; export type { CurveVotingEscrowReward } from './CurveVotingEscrowReward'; export * as factories from './factories'; -export { CurveChildLiquidityGaugeFactory__factory } from './factories/CurveChildLiquidityGaugeFactory__factory'; +export { CurveAddressResolver__factory } from './factories/CurveAddressResolver__factory'; export { CurveChildLiquidityGauge__factory } from './factories/CurveChildLiquidityGauge__factory'; export { CurveController__factory } from './factories/CurveController__factory'; -export { CurveCryptoPool__factory } from './factories/CurveCryptoPool__factory'; +export { CurveCryptoFactory__factory } from './factories/CurveCryptoFactory__factory'; +export { CurveCryptoRegistry__factory } from './factories/CurveCryptoRegistry__factory'; export { CurveDoubleGauge__factory } from './factories/CurveDoubleGauge__factory'; export { CurveFactoryPoolV2__factory } from './factories/CurveFactoryPoolV2__factory'; -export { CurveFactoryPool__factory } from './factories/CurveFactoryPool__factory'; -export { CurveFactoryV2__factory } from './factories/CurveFactoryV2__factory'; export { CurveFactory__factory } from './factories/CurveFactory__factory'; export { CurveGaugeV2__factory } from './factories/CurveGaugeV2__factory'; export { CurveGauge__factory } from './factories/CurveGauge__factory'; -export { CurveMinter__factory } from './factories/CurveMinter__factory'; -export { CurveMultiRewardStream__factory } from './factories/CurveMultiRewardStream__factory'; export { CurveNGauge__factory } from './factories/CurveNGauge__factory'; -export { CurvePassthroughRewards__factory } from './factories/CurvePassthroughRewards__factory'; +export { CurvePoolLegacy__factory } from './factories/CurvePoolLegacy__factory'; +export { CurvePool__factory } from './factories/CurvePool__factory'; export { CurveRewardsOnlyGauge__factory } from './factories/CurveRewardsOnlyGauge__factory'; -export { CurveSingleRewardStream__factory } from './factories/CurveSingleRewardStream__factory'; -export { CurveToken__factory } from './factories/CurveToken__factory'; -export { CurveV1Metapool__factory } from './factories/CurveV1Metapool__factory'; -export { CurveV1PoolLegacy__factory } from './factories/CurveV1PoolLegacy__factory'; -export { CurveV1Pool__factory } from './factories/CurveV1Pool__factory'; -export { CurveV2Pool__factory } from './factories/CurveV2Pool__factory'; +export { CurveStableFactory__factory } from './factories/CurveStableFactory__factory'; +export { CurveStableRegistry__factory } from './factories/CurveStableRegistry__factory'; export { CurveVestingEscrow__factory } from './factories/CurveVestingEscrow__factory'; export { CurveVotingEscrowReward__factory } from './factories/CurveVotingEscrowReward__factory'; export { CurveVotingEscrow__factory } from './factories/CurveVotingEscrow__factory'; diff --git a/src/apps/curve/contracts/index.ts b/src/apps/curve/contracts/index.ts index a4a6b6320..26d299bac 100644 --- a/src/apps/curve/contracts/index.ts +++ b/src/apps/curve/contracts/index.ts @@ -4,28 +4,22 @@ import { IAppToolkit, APP_TOOLKIT } from '~app-toolkit/app-toolkit.interface'; import { ContractFactory } from '~contract/contracts'; import { Network } from '~types/network.interface'; +import { CurveAddressResolver__factory } from './ethers'; import { CurveChildLiquidityGauge__factory } from './ethers'; -import { CurveChildLiquidityGaugeFactory__factory } from './ethers'; import { CurveController__factory } from './ethers'; -import { CurveCryptoPool__factory } from './ethers'; +import { CurveCryptoFactory__factory } from './ethers'; +import { CurveCryptoRegistry__factory } from './ethers'; import { CurveDoubleGauge__factory } from './ethers'; import { CurveFactory__factory } from './ethers'; -import { CurveFactoryPool__factory } from './ethers'; import { CurveFactoryPoolV2__factory } from './ethers'; -import { CurveFactoryV2__factory } from './ethers'; import { CurveGauge__factory } from './ethers'; import { CurveGaugeV2__factory } from './ethers'; -import { CurveMinter__factory } from './ethers'; -import { CurveMultiRewardStream__factory } from './ethers'; import { CurveNGauge__factory } from './ethers'; -import { CurvePassthroughRewards__factory } from './ethers'; +import { CurvePool__factory } from './ethers'; +import { CurvePoolLegacy__factory } from './ethers'; import { CurveRewardsOnlyGauge__factory } from './ethers'; -import { CurveSingleRewardStream__factory } from './ethers'; -import { CurveToken__factory } from './ethers'; -import { CurveV1Metapool__factory } from './ethers'; -import { CurveV1Pool__factory } from './ethers'; -import { CurveV1PoolLegacy__factory } from './ethers'; -import { CurveV2Pool__factory } from './ethers'; +import { CurveStableFactory__factory } from './ethers'; +import { CurveStableRegistry__factory } from './ethers'; import { CurveVestingEscrow__factory } from './ethers'; import { CurveVotingEscrow__factory } from './ethers'; import { CurveVotingEscrowReward__factory } from './ethers'; @@ -39,17 +33,20 @@ export class CurveContractFactory extends ContractFactory { super((network: Network) => appToolkit.getNetworkProvider(network)); } + curveAddressResolver({ address, network }: ContractOpts) { + return CurveAddressResolver__factory.connect(address, this.appToolkit.getNetworkProvider(network)); + } curveChildLiquidityGauge({ address, network }: ContractOpts) { return CurveChildLiquidityGauge__factory.connect(address, this.appToolkit.getNetworkProvider(network)); } - curveChildLiquidityGaugeFactory({ address, network }: ContractOpts) { - return CurveChildLiquidityGaugeFactory__factory.connect(address, this.appToolkit.getNetworkProvider(network)); - } curveController({ address, network }: ContractOpts) { return CurveController__factory.connect(address, this.appToolkit.getNetworkProvider(network)); } - curveCryptoPool({ address, network }: ContractOpts) { - return CurveCryptoPool__factory.connect(address, this.appToolkit.getNetworkProvider(network)); + curveCryptoFactory({ address, network }: ContractOpts) { + return CurveCryptoFactory__factory.connect(address, this.appToolkit.getNetworkProvider(network)); + } + curveCryptoRegistry({ address, network }: ContractOpts) { + return CurveCryptoRegistry__factory.connect(address, this.appToolkit.getNetworkProvider(network)); } curveDoubleGauge({ address, network }: ContractOpts) { return CurveDoubleGauge__factory.connect(address, this.appToolkit.getNetworkProvider(network)); @@ -57,53 +54,32 @@ export class CurveContractFactory extends ContractFactory { curveFactory({ address, network }: ContractOpts) { return CurveFactory__factory.connect(address, this.appToolkit.getNetworkProvider(network)); } - curveFactoryPool({ address, network }: ContractOpts) { - return CurveFactoryPool__factory.connect(address, this.appToolkit.getNetworkProvider(network)); - } curveFactoryPoolV2({ address, network }: ContractOpts) { return CurveFactoryPoolV2__factory.connect(address, this.appToolkit.getNetworkProvider(network)); } - curveFactoryV2({ address, network }: ContractOpts) { - return CurveFactoryV2__factory.connect(address, this.appToolkit.getNetworkProvider(network)); - } curveGauge({ address, network }: ContractOpts) { return CurveGauge__factory.connect(address, this.appToolkit.getNetworkProvider(network)); } curveGaugeV2({ address, network }: ContractOpts) { return CurveGaugeV2__factory.connect(address, this.appToolkit.getNetworkProvider(network)); } - curveMinter({ address, network }: ContractOpts) { - return CurveMinter__factory.connect(address, this.appToolkit.getNetworkProvider(network)); - } - curveMultiRewardStream({ address, network }: ContractOpts) { - return CurveMultiRewardStream__factory.connect(address, this.appToolkit.getNetworkProvider(network)); - } curveNGauge({ address, network }: ContractOpts) { return CurveNGauge__factory.connect(address, this.appToolkit.getNetworkProvider(network)); } - curvePassthroughRewards({ address, network }: ContractOpts) { - return CurvePassthroughRewards__factory.connect(address, this.appToolkit.getNetworkProvider(network)); + curvePool({ address, network }: ContractOpts) { + return CurvePool__factory.connect(address, this.appToolkit.getNetworkProvider(network)); + } + curvePoolLegacy({ address, network }: ContractOpts) { + return CurvePoolLegacy__factory.connect(address, this.appToolkit.getNetworkProvider(network)); } curveRewardsOnlyGauge({ address, network }: ContractOpts) { return CurveRewardsOnlyGauge__factory.connect(address, this.appToolkit.getNetworkProvider(network)); } - curveSingleRewardStream({ address, network }: ContractOpts) { - return CurveSingleRewardStream__factory.connect(address, this.appToolkit.getNetworkProvider(network)); - } - curveToken({ address, network }: ContractOpts) { - return CurveToken__factory.connect(address, this.appToolkit.getNetworkProvider(network)); - } - curveV1Metapool({ address, network }: ContractOpts) { - return CurveV1Metapool__factory.connect(address, this.appToolkit.getNetworkProvider(network)); - } - curveV1Pool({ address, network }: ContractOpts) { - return CurveV1Pool__factory.connect(address, this.appToolkit.getNetworkProvider(network)); - } - curveV1PoolLegacy({ address, network }: ContractOpts) { - return CurveV1PoolLegacy__factory.connect(address, this.appToolkit.getNetworkProvider(network)); + curveStableFactory({ address, network }: ContractOpts) { + return CurveStableFactory__factory.connect(address, this.appToolkit.getNetworkProvider(network)); } - curveV2Pool({ address, network }: ContractOpts) { - return CurveV2Pool__factory.connect(address, this.appToolkit.getNetworkProvider(network)); + curveStableRegistry({ address, network }: ContractOpts) { + return CurveStableRegistry__factory.connect(address, this.appToolkit.getNetworkProvider(network)); } curveVestingEscrow({ address, network }: ContractOpts) { return CurveVestingEscrow__factory.connect(address, this.appToolkit.getNetworkProvider(network)); @@ -116,28 +92,22 @@ export class CurveContractFactory extends ContractFactory { } } +export type { CurveAddressResolver } from './ethers'; export type { CurveChildLiquidityGauge } from './ethers'; -export type { CurveChildLiquidityGaugeFactory } from './ethers'; export type { CurveController } from './ethers'; -export type { CurveCryptoPool } from './ethers'; +export type { CurveCryptoFactory } from './ethers'; +export type { CurveCryptoRegistry } from './ethers'; export type { CurveDoubleGauge } from './ethers'; export type { CurveFactory } from './ethers'; -export type { CurveFactoryPool } from './ethers'; export type { CurveFactoryPoolV2 } from './ethers'; -export type { CurveFactoryV2 } from './ethers'; export type { CurveGauge } from './ethers'; export type { CurveGaugeV2 } from './ethers'; -export type { CurveMinter } from './ethers'; -export type { CurveMultiRewardStream } from './ethers'; export type { CurveNGauge } from './ethers'; -export type { CurvePassthroughRewards } from './ethers'; +export type { CurvePool } from './ethers'; +export type { CurvePoolLegacy } from './ethers'; export type { CurveRewardsOnlyGauge } from './ethers'; -export type { CurveSingleRewardStream } from './ethers'; -export type { CurveToken } from './ethers'; -export type { CurveV1Metapool } from './ethers'; -export type { CurveV1Pool } from './ethers'; -export type { CurveV1PoolLegacy } from './ethers'; -export type { CurveV2Pool } from './ethers'; +export type { CurveStableFactory } from './ethers'; +export type { CurveStableRegistry } from './ethers'; export type { CurveVestingEscrow } from './ethers'; export type { CurveVotingEscrow } from './ethers'; export type { CurveVotingEscrowReward } from './ethers'; diff --git a/src/apps/curve/curve.definition.ts b/src/apps/curve/curve.definition.ts index 583f99c47..654668c72 100644 --- a/src/apps/curve/curve.definition.ts +++ b/src/apps/curve/curve.definition.ts @@ -15,10 +15,29 @@ export const CURVE_DEFINITION = appDefinition({ telegram: 'https://t.me/curvefi', }, groups: { - farm: { id: 'farm', type: GroupType.POSITION, label: 'Staking', groupLabel: 'Farms' }, - pool: { id: 'pool', type: GroupType.TOKEN, label: 'Pools' }, - votingEscrow: { id: 'voting-escrow', type: GroupType.POSITION, label: 'Voting Escrow' }, - vestingEscrow: { id: 'vesting-escrow', type: GroupType.POSITION, label: 'Vesting' }, + gauge: { + id: 'gauge', + type: GroupType.POSITION, + label: 'Staking', + }, + + pool: { + id: 'pool', + type: GroupType.TOKEN, + label: 'Pools', + }, + + votingEscrow: { + id: 'voting-escrow', + type: GroupType.POSITION, + label: 'Voting Escrow', + }, + + vestingEscrow: { + id: 'vesting-escrow', + type: GroupType.POSITION, + label: 'Vesting', + }, }, tags: [AppTag.LIQUIDITY_POOL], supportedNetworks: { diff --git a/src/apps/curve/curve.module.ts b/src/apps/curve/curve.module.ts index b6c0f7dfe..08850467e 100644 --- a/src/apps/curve/curve.module.ts +++ b/src/apps/curve/curve.module.ts @@ -2,58 +2,43 @@ import { Register } from '~app-toolkit/decorators'; import { AbstractApp } from '~app/app.dynamic-module'; import { ArbitrumCurveBalanceFetcher } from './arbitrum/curve.balance-fetcher'; -import { ArbitrumCurveFarmContractPositionFetcher } from './arbitrum/curve.farm.contract-position-fetcher'; +import { ArbitrumCurveGaugeContractPositionFetcher } from './arbitrum/curve.gauge.contract-position-fetcher'; import { ArbitrumCurvePoolTokenFetcher } from './arbitrum/curve.pool.token-fetcher'; import { AvalancheCurveBalanceFetcher } from './avalanche/curve.balance-fetcher'; -import { AvalancheCurveFarmContractPositionFetcher } from './avalanche/curve.farm.contract-position-fetcher'; import { AvalancheCurvePoolTokenFetcher } from './avalanche/curve.pool.token-fetcher'; import { CurveContractFactory } from './contracts'; import { CurveAppDefinition, CURVE_DEFINITION } from './curve.definition'; import { EthereumCurveBalanceFetcher } from './ethereum/curve.balance-fetcher'; -import { EthereumCurveFarmContractPositionFetcher } from './ethereum/curve.farm.contract-position-fetcher'; +import { EthereumCurveGaugeContractPositionFetcher } from './ethereum/curve.gauge.contract-position-fetcher'; import { EthereumCurvePoolTokenFetcher } from './ethereum/curve.pool.token-fetcher'; import { EthereumCurveVestingEscrowContractPositionFetcher } from './ethereum/curve.vesting-escrow.contract-position-fetcher'; import { EthereumCurveVotingEscrowContractPositionFetcher } from './ethereum/curve.voting-escrow.contract-position-fetcher'; import { FantomCurveBalanceFetcher } from './fantom/curve.balance-fetcher'; -import { FantomCurveFarmContractPositionFetcher } from './fantom/curve.farm.contract-position-fetcher'; +import { FantomCurveGaugeContractPositionFetcher } from './fantom/curve.gauge.contract-position-fetcher'; import { FantomCurvePoolTokenFetcher } from './fantom/curve.pool.token-fetcher'; import { GnosisCurveBalanceFetcher } from './gnosis/curve.balance-fetcher'; -import { GnosisCurveFarmContractPositionFetcher } from './gnosis/curve.farm.contract-position-fetcher'; +import { GnosisCurveGaugeContractPositionFetcher } from './gnosis/curve.gauge.contract-position-fetcher'; import { GnosisCurvePoolTokenFetcher } from './gnosis/curve.pool.token-fetcher'; -import { HarmonyCurveBalanceFetcher } from './harmony/curve.balance-fetcher'; -import { HarmonyCurveFarmContractPositionFetcher } from './harmony/curve.farm.contract-position-fetcher'; -import { HarmonyCurvePoolTokenFetcher } from './harmony/curve.pool.token-fetcher'; -import { CurveApiVolumeStrategy } from './helpers/curve.api.volume-strategy'; -import { CurveChildLiquidityGaugeFactoryAddressHelper } from './helpers/curve.child-liquidity-gauge-factory.address-helper'; -import { CurveChildLiquidityGaugeRewardTokenStrategy } from './helpers/curve.child-liquidity-gauge.reward-token-strategy'; +import { CurveApiClient } from './helpers/curve.api.client'; import { CurveChildLiquidityGaugeRoiStrategy } from './helpers/curve.child-liquidity-gauge.roi-strategy'; -import { CurveCryptoFactoryPoolTokenHelper } from './helpers/curve.crypto-factory-pool.token-helper'; -import { CurveCryptoFactoryPoolDefinitionStrategy } from './helpers/curve.crypto-factory.pool-definition-strategy'; -import { CurveFactoryGaugeAddressHelper } from './helpers/curve.factory-gauge.address-helper'; -import { CurveFactoryPoolTokenHelper } from './helpers/curve.factory-pool.token-helper'; -import { CurveFactoryPoolDefinitionStrategy } from './helpers/curve.factory.pool-definition-strategy'; +import { CurveGaugeDefaultContractPositionBalanceHelper } from './helpers/curve.gauge.default.contract-position-balance-helper'; +import { CurveGaugeDefaultContractPositionHelper } from './helpers/curve.gauge.default.contract-position-helper'; import { CurveGaugeIsActiveStrategy } from './helpers/curve.gauge.is-active-strategy'; +import { CurveGaugeRegistry } from './helpers/curve.gauge.registry'; import { CurveGaugeRoiStrategy } from './helpers/curve.gauge.roi-strategy'; -import { CurveLiquidityAndVirtualPriceStrategy } from './helpers/curve.liquidity-and-virtual.price-strategy'; -import { CurveLiquidityPriceStrategy } from './helpers/curve.liquidity.price-strategy'; -import { CurveOnChainCoinStrategy } from './helpers/curve.on-chain.coin-strategy'; -import { CurveOnChainReserveStrategy } from './helpers/curve.on-chain.reserve-strategy'; -import { CurveOnChainVolumeStrategy } from './helpers/curve.on-chain.volume-strategy'; +import { CurvePoolDefaultTokenHelper } from './helpers/curve.pool.default.token-helper'; +import { CurvePoolRegistry } from './helpers/curve.pool.registry'; import { CurvePoolTokenHelper } from './helpers/curve.pool.token-helper'; -import { CurveRewardsOnlyGaugeRewardTokenStrategy } from './helpers/curve.rewards-only-gauge.reward-token-strategy'; -import { CurveRewardsOnlyGaugeRoiStrategy } from './helpers/curve.rewards-only-gauge.roi-strategy'; -import { CurveV1PoolTokenHelper } from './helpers/curve.v1-pool.token-helper'; -import { CurveV2PoolTokenHelper } from './helpers/curve.v2-pool.token-helper'; +import { CurvePoolVirtualPriceStrategy } from './helpers/curve.pool.virtual.price-strategy'; import { CurveVestingEscrowContractPositionBalanceHelper } from './helpers/curve.vesting-escrow.contract-position-balance-helper'; import { CurveVestingEscrowContractPositionHelper } from './helpers/curve.vesting-escrow.contract-position-helper'; -import { CurveVirtualPriceStrategy } from './helpers/curve.virtual.price-strategy'; import { CurveVotingEscrowContractPositionBalanceHelper } from './helpers/curve.voting-escrow.contract-position-balance-helper'; import { CurveVotingEscrowContractPositionHelper } from './helpers/curve.voting-escrow.contract-position-helper'; import { OptimismCurveBalanceFetcher } from './optimism/curve.balance-fetcher'; -import { OptimismCurveFarmContractPositionFetcher } from './optimism/curve.farm.contract-position-fetcher'; +import { OptimismCurveGaugeContractPositionFetcher } from './optimism/curve.gauge.contract-position-fetcher'; import { OptimismCurvePoolTokenFetcher } from './optimism/curve.pool.token-fetcher'; import { PolygonCurveBalanceFetcher } from './polygon/curve.balance-fetcher'; -import { PolygonCurveFarmContractPositionFetcher } from './polygon/curve.farm.contract-position-fetcher'; +import { PolygonCurveGaugeContractPositionFetcher } from './polygon/curve.gauge.contract-position-fetcher'; import { PolygonCurvePoolTokenFetcher } from './polygon/curve.pool.token-fetcher'; @Register.AppModule({ @@ -64,65 +49,45 @@ import { PolygonCurvePoolTokenFetcher } from './polygon/curve.pool.token-fetcher // Arbitrum ArbitrumCurveBalanceFetcher, ArbitrumCurvePoolTokenFetcher, - ArbitrumCurveFarmContractPositionFetcher, + ArbitrumCurveGaugeContractPositionFetcher, // Avalanche AvalancheCurveBalanceFetcher, AvalancheCurvePoolTokenFetcher, - AvalancheCurveFarmContractPositionFetcher, + ArbitrumCurveGaugeContractPositionFetcher, // Ethereum EthereumCurveBalanceFetcher, EthereumCurvePoolTokenFetcher, - EthereumCurveFarmContractPositionFetcher, + EthereumCurveGaugeContractPositionFetcher, EthereumCurveVotingEscrowContractPositionFetcher, EthereumCurveVestingEscrowContractPositionFetcher, // Fantom FantomCurveBalanceFetcher, FantomCurvePoolTokenFetcher, - FantomCurveFarmContractPositionFetcher, + FantomCurveGaugeContractPositionFetcher, // Gnosis GnosisCurveBalanceFetcher, GnosisCurvePoolTokenFetcher, - GnosisCurveFarmContractPositionFetcher, - // Harmony - HarmonyCurveBalanceFetcher, - HarmonyCurvePoolTokenFetcher, - HarmonyCurveFarmContractPositionFetcher, + GnosisCurveGaugeContractPositionFetcher, // Optimism OptimismCurveBalanceFetcher, OptimismCurvePoolTokenFetcher, - OptimismCurveFarmContractPositionFetcher, + OptimismCurveGaugeContractPositionFetcher, // Polygon PolygonCurveBalanceFetcher, PolygonCurvePoolTokenFetcher, - PolygonCurveFarmContractPositionFetcher, + PolygonCurveGaugeContractPositionFetcher, // Token Helpers + CurveApiClient, + CurvePoolRegistry, CurvePoolTokenHelper, - CurveV1PoolTokenHelper, - CurveV2PoolTokenHelper, - CurveFactoryPoolTokenHelper, - CurveCryptoFactoryPoolTokenHelper, - // Token Helper Strategies - CurveApiVolumeStrategy, - CurveOnChainVolumeStrategy, - CurveOnChainCoinStrategy, - CurveOnChainReserveStrategy, - CurveVirtualPriceStrategy, - CurveLiquidityPriceStrategy, - CurveLiquidityAndVirtualPriceStrategy, - CurveFactoryPoolDefinitionStrategy, - CurveCryptoFactoryPoolDefinitionStrategy, - // Gauge Helper Strategies + CurvePoolDefaultTokenHelper, + CurvePoolVirtualPriceStrategy, + CurveGaugeRegistry, + CurveGaugeDefaultContractPositionHelper, + CurveGaugeDefaultContractPositionBalanceHelper, CurveGaugeIsActiveStrategy, CurveGaugeRoiStrategy, - CurveFactoryGaugeAddressHelper, - // Legacy Sidechain/L2 Gauges - CurveRewardsOnlyGaugeRoiStrategy, - CurveRewardsOnlyGaugeRewardTokenStrategy, - // Sidechain/L2 gauges CurveChildLiquidityGaugeRoiStrategy, - CurveChildLiquidityGaugeRewardTokenStrategy, - CurveChildLiquidityGaugeFactoryAddressHelper, - // Voting Escrow Helpers CurveVotingEscrowContractPositionHelper, CurveVotingEscrowContractPositionBalanceHelper, CurveVestingEscrowContractPositionHelper, @@ -130,29 +95,16 @@ import { PolygonCurvePoolTokenFetcher } from './polygon/curve.pool.token-fetcher ], exports: [ CurveContractFactory, - // Token Helpers + CurveApiClient, + CurvePoolRegistry, CurvePoolTokenHelper, - CurveV1PoolTokenHelper, - CurveV2PoolTokenHelper, - CurveFactoryPoolTokenHelper, - CurveCryptoFactoryPoolTokenHelper, - // Token Helper Strategies - CurveApiVolumeStrategy, - CurveOnChainVolumeStrategy, - CurveOnChainCoinStrategy, - CurveOnChainReserveStrategy, - CurveVirtualPriceStrategy, - CurveLiquidityPriceStrategy, - CurveLiquidityAndVirtualPriceStrategy, - CurveFactoryPoolDefinitionStrategy, - CurveCryptoFactoryPoolDefinitionStrategy, - // Gauge Helper Strategies + CurvePoolDefaultTokenHelper, + CurveGaugeRegistry, + CurveGaugeDefaultContractPositionHelper, + CurveGaugeDefaultContractPositionBalanceHelper, CurveGaugeIsActiveStrategy, CurveGaugeRoiStrategy, - CurveRewardsOnlyGaugeRoiStrategy, - CurveRewardsOnlyGaugeRewardTokenStrategy, - CurveFactoryGaugeAddressHelper, - // Voting Escrow Helpers + CurveChildLiquidityGaugeRoiStrategy, CurveVotingEscrowContractPositionHelper, CurveVotingEscrowContractPositionBalanceHelper, CurveVestingEscrowContractPositionHelper, diff --git a/src/apps/curve/curve.types.ts b/src/apps/curve/curve.types.ts index ccb32c43d..294065db7 100644 --- a/src/apps/curve/curve.types.ts +++ b/src/apps/curve/curve.types.ts @@ -1,10 +1,32 @@ +export enum CurvePoolType { + STABLE = 'stable', + CRYPTO = 'crypto', + FACTORY_STABLE = 'factory-stable', + FACTORY_CRYPTO = 'factory-crypto', +} + export type CurvePoolDefinition = { - label?: string; swapAddress: string; tokenAddress: string; - gaugeAddress?: string; - streamAddress?: string; - streamEol?: boolean; - queryKey?: string; + coinAddresses: string[]; + gaugeAddresses?: string[]; + poolType?: CurvePoolType; + volume?: number; + apy?: number; isLegacy?: boolean; }; + +export enum CurveGaugeType { + SINGLE = 'single', + DOUBLE = 'double', + N_GAUGE = 'n-gauge', + GAUGE_V4 = 'gauge-v4', + CHILD = 'child-chain', + REWARDS_ONLY = 'rewards-only', +} + +export type CurveGaugeDefinition = { + gaugeType: CurveGaugeType; + swapAddress: string; + gaugeAddress: string; +}; diff --git a/src/apps/curve/ethereum/curve.balance-fetcher.ts b/src/apps/curve/ethereum/curve.balance-fetcher.ts index 025188fbf..657aca1dc 100644 --- a/src/apps/curve/ethereum/curve.balance-fetcher.ts +++ b/src/apps/curve/ethereum/curve.balance-fetcher.ts @@ -4,20 +4,11 @@ import { APP_TOOLKIT, IAppToolkit } from '~app-toolkit/app-toolkit.interface'; import { Register } from '~app-toolkit/decorators'; import { presentBalanceFetcherResponse } from '~app-toolkit/helpers/presentation/balance-fetcher-response.present'; import { BalanceFetcher } from '~balance/balance-fetcher.interface'; -import { isClaimable } from '~position/position.utils'; import { Network } from '~types/network.interface'; -import { - CurveContractFactory, - CurveDoubleGauge, - CurveGauge, - CurveGaugeV2, - CurveNGauge, - CurveVestingEscrow, - CurveVotingEscrow, - CurveVotingEscrowReward, -} from '../contracts'; +import { CurveContractFactory, CurveVestingEscrow, CurveVotingEscrow, CurveVotingEscrowReward } from '../contracts'; import { CURVE_DEFINITION } from '../curve.definition'; +import { CurveGaugeDefaultContractPositionBalanceHelper } from '../helpers/curve.gauge.default.contract-position-balance-helper'; import { CurveVestingEscrowContractPositionBalanceHelper } from '../helpers/curve.vesting-escrow.contract-position-balance-helper'; import { CurveVotingEscrowContractPositionBalanceHelper } from '../helpers/curve.voting-escrow.contract-position-balance-helper'; @@ -32,6 +23,8 @@ export class EthereumCurveBalanceFetcher implements BalanceFetcher { @Inject(CurveVestingEscrowContractPositionBalanceHelper) private readonly curveVestingEscrowContractPositionBalanceHelper: CurveVestingEscrowContractPositionBalanceHelper, @Inject(CurveContractFactory) private readonly curveContractFactory: CurveContractFactory, + @Inject(CurveGaugeDefaultContractPositionBalanceHelper) + private readonly curveGaugeDefaultContractPositionBalanceHelper: CurveGaugeDefaultContractPositionBalanceHelper, ) {} private async getPoolTokenBalances(address: string) { @@ -44,87 +37,10 @@ export class EthereumCurveBalanceFetcher implements BalanceFetcher { } private async getStakedBalances(address: string) { - return Promise.all([ - // Single Gauge - this.appToolkit.helpers.singleStakingContractPositionBalanceHelper.getBalances({ - address, - network, - appId: CURVE_DEFINITION.id, - groupId: CURVE_DEFINITION.groups.farm.id, - farmFilter: farm => farm.dataProps.implementation === 'single-gauge', - resolveContract: ({ address, network }) => this.curveContractFactory.curveGauge({ address, network }), - resolveStakedTokenBalance: ({ contract, address, multicall }) => multicall.wrap(contract).balanceOf(address), - resolveRewardTokenBalances: ({ contract, address, multicall }) => - multicall.wrap(contract).claimable_tokens(address), - }), - // Double Gauge - this.appToolkit.helpers.singleStakingContractPositionBalanceHelper.getBalances({ - address, - network, - appId: CURVE_DEFINITION.id, - groupId: CURVE_DEFINITION.groups.farm.id, - farmFilter: farm => farm.dataProps.implementation === 'double-gauge', - resolveContract: ({ address, network }) => this.curveContractFactory.curveDoubleGauge({ address, network }), - resolveStakedTokenBalance: ({ contract, address, multicall }) => multicall.wrap(contract).balanceOf(address), - resolveRewardTokenBalances: async ({ contract, address, multicall, contractPosition }) => { - const rewardTokens = contractPosition.tokens.filter(isClaimable); - const wrappedContract = multicall.wrap(contract); - const primaryRewardBalance = await wrappedContract.claimable_tokens(address); - const rewardBalances = [primaryRewardBalance.toString()]; - - if (rewardTokens.length > 1) { - const [secondaryRewardBalanceTotal, secondaryRewardBalanceClaimed] = await Promise.all([ - wrappedContract.claimable_reward(address), - wrappedContract.claimed_rewards_for(address), - ]); - - const secondaryRewardBalance = this.appToolkit - .getBigNumber(secondaryRewardBalanceTotal) - .minus(this.appToolkit.getBigNumber(secondaryRewardBalanceClaimed)) - .toFixed(0); - rewardBalances.push(secondaryRewardBalance); - } - - return rewardBalances; - }, - }), - this.appToolkit.helpers.singleStakingContractPositionBalanceHelper.getBalances({ - address, - network, - appId: CURVE_DEFINITION.id, - groupId: CURVE_DEFINITION.groups.farm.id, - farmFilter: farm => farm.dataProps.implementation === 'n-gauge', - resolveContract: ({ address, network }) => this.curveContractFactory.curveNGauge({ address, network }), - resolveStakedTokenBalance: ({ contract, address, multicall }) => multicall.wrap(contract).balanceOf(address), - resolveRewardTokenBalances: async ({ contract, address, multicall, contractPosition }) => { - const rewardTokens = contractPosition.tokens.filter(isClaimable); - const wrappedContract = multicall.wrap(contract); - const primaryRewardBalance = await wrappedContract.claimable_tokens(address); - const rewardBalances = [primaryRewardBalance]; - - if (rewardTokens.length > 1) { - const secondaryRewardBalance = await wrappedContract.claimable_reward(address, rewardTokens[1].address); - rewardBalances.push(secondaryRewardBalance); - } - - return rewardBalances; - }, - }), - this.appToolkit.helpers.singleStakingContractPositionBalanceHelper.getBalances({ - address, - network, - appId: CURVE_DEFINITION.id, - groupId: CURVE_DEFINITION.groups.farm.id, - farmFilter: farm => farm.dataProps.implementation === 'n-gauge-v2', - resolveContract: ({ address, network }) => this.curveContractFactory.curveGaugeV2({ address, network }), - resolveStakedTokenBalance: ({ contract, address, multicall }) => multicall.wrap(contract).balanceOf(address), - resolveRewardTokenBalances: ({ contract, address, multicall, contractPosition }) => { - const rewardTokens = contractPosition.tokens.filter(isClaimable); - const wrappedContract = multicall.wrap(contract); - return Promise.all(rewardTokens.map(v => wrappedContract.claimable_reward_write(address, v.address))); - }, - }), - ]).then(v => v.flat()); + return this.curveGaugeDefaultContractPositionBalanceHelper.getBalances({ + address, + network, + }); } private async getVotingEscrowBalances(address: string) { diff --git a/src/apps/curve/ethereum/curve.farm.contract-position-fetcher.ts b/src/apps/curve/ethereum/curve.farm.contract-position-fetcher.ts deleted file mode 100644 index 8e2a7df34..000000000 --- a/src/apps/curve/ethereum/curve.farm.contract-position-fetcher.ts +++ /dev/null @@ -1,236 +0,0 @@ -import { Inject } from '@nestjs/common'; - -import { APP_TOOLKIT, IAppToolkit } from '~app-toolkit/app-toolkit.interface'; -import { ZERO_ADDRESS } from '~app-toolkit/constants/address'; -import { Register } from '~app-toolkit/decorators'; -import { PositionFetcher } from '~position/position-fetcher.interface'; -import { ContractPosition } from '~position/position.interface'; -import { Network } from '~types/network.interface'; - -import { CurveContractFactory, CurveController, CurveDoubleGauge, CurveGauge, CurveNGauge } from '../contracts'; -import { CURVE_DEFINITION } from '../curve.definition'; -import { CurveFactoryGaugeAddressHelper } from '../helpers/curve.factory-gauge.address-helper'; -import { CurveGaugeIsActiveStrategy } from '../helpers/curve.gauge.is-active-strategy'; -import { CurveGaugeRoiStrategy } from '../helpers/curve.gauge.roi-strategy'; - -export const FARMS = { - single: [ - '0xfa712ee4788c042e2b7bb55e6cb8ec569c4530c1', // y, Gauge V1 - '0x69fb7c45726cfe2badee8317005d3f94be838840', // busd, Gauge V1 - '0xb1f2cdec61db658f091671f5f199635aef202cac', // ren2, Gauge V1 - '0x7ca5b0a2910b33e9759dc7ddb0413949071d7575', // compound, Gauge V1 - '0x705350c4bcd35c9441419ddd5d2f097d7a55410f', // rens, Gauge V1 - '0xbfcf63294ad7105dea65aa58f8ae5be2d9d0952a', // 3pool, Gauge V1 - '0x4c18e409dc8619bfb6a1cb56d114c3f592e0ae79', // hbtc, Gauge V1 - '0xc5cfada84e902ad92dd40194f0883ad49639b023', // gusd, Gauge V1 - '0x2db0e83599a91b508ac268a6197b8b14f5e72840', // husd, Gauge V1 - '0xc2b1df84112619d190193e48148000e3990bf627', // usdk, Gauge V1 - '0xf98450b5602fa59cc66e1379dffb6fddc724cfc4', // usdn, Gauge V1 - '0xbc89cd85491d81c6ad2954e6d0362ee29fca8f53', // usdt, Gauge V1 - '0xdfc7adfa664b08767b735de28f9e84cd30492aee', // bbtc, Gauge V2 - '0x3b7020743bc2a4ca9eaf9d0722d42e20d6935855', // ust, Gauge V2 - '0x3c0ffff15ea30c35d7a85b85c0782d6c94e1d238', // seth, Gauge V2 - '0xfd4d8a17df4c27c1dd245d153ccf4499e806c87d', // link, Gauge V2 - '0x055be5ddb7a925bfef3417fc157f53ca77ca7222', // usdp, Gauge V2 - '0xf5194c3325202f456c95c1cf0ca36f8475c1949f', // ib, Gauge V2 - '0x359fd5d6417ae3d8d6497d9b2e7a890798262ba4', // tusd, Gauge V2 - '0x72e158d38dbd50a483501c24f792bdaaa3e7d55c', // frax, Gauge V2 - '0xd4b22fedca85e684919955061fdf353b9d38389b', // busd, Gauge V2 - ], - double: [ - '0xa90996896660decc6e997655e065b23788857849', // susd, Gauge V1 - '0x5f626c30ec1215f4edcc9982265e8b1f411d1352', // musd, Gauge V1 - '0x6828bcf74279ee32f2723ec536c22c51eed383c6', // tbtc, Gauge V1 - '0xaea6c312f4b3e04d752946d329693f7293bc2e6d', // dusd, Gauge V1 - '0x4dc4a289a8e33600d8bd4cf5f6313e43a37adec7', // rsv, Gauge V1 - ], - nGauge: [ - '0xd7d147c6bb90a718c3de8c0568f9b560c79fa416', // pbtc, Gauge V2 - '0x11137b10c210b579405c21a07489e28f3c040ab1', // obtc, Gauge V2 - '0xd662908ada2ea1916b3318327a97eb18ad588b5d', // aave, Gauge V2 - '0x90bb609649e0451e5ad952683d64bd2d1f245840', // eurs, Gauge V2 - '0x182b723a58739a9c974cfdb385ceadb237453c28', // steth, Gauge V2 - '0x462253b8f74b72304c145db0e4eebd326b22ca39', // saave, Gauge V2 - '0x6d10ed2cf043e6fcf51a0e7b4c2af3fa06695707', // ankreth, Gauge V2 - '0x9b8519a9a00100720ccdc8a120fbed319ca47a14', // lusd, Gauge V2 - '0x824f13f1a2f29cfeea81154b46c0fc820677a637', // reth, Gauge V3 - '0x6955a55416a06839309018a8b0cb72c4ddc11f15', // tricrypto, Gauge V3 - '0xdefd8fdd20e0f34115c7018ccfb655796f6b2168', // tricrypto2, Gauge V3 - '0xd8b712d29381748db89c36bca0138d7c75866ddf', // mim, Factory Gauge (manual) - '0xe8060ad8971450e624d5289a10017dd30f5da85f', // eurt, Gauge V3 - '0x1cebdb0856dd985fae9b8fea2262469360b8a3a6', // crv-eth, Gauge V4 - '0x7e1444ba99dcdffe8fbdb42c02f0005d14f13be1', // cvx-eth, Gauge V4 - '0x4fd86ce7ecea88f7e0aa78dc12625996fb3a04bc', // eurt-usd, Gauge V4 - '0x65ca7dc5cb661fc58de57b1e1af404649a27ad35', // eurs-usd, Gauge V4 - ], - nGaugeV2: [ - '0x9582c4adacb3bce56fea3e590f05c3ca2fb9c477', // alusd, Gauge V3 - ], -}; - -const appId = CURVE_DEFINITION.id; -const groupId = CURVE_DEFINITION.groups.farm.id; -const network = Network.ETHEREUM_MAINNET; -const CRV_TOKEN_ADDRESS = CURVE_DEFINITION.token!.address; - -@Register.ContractPositionFetcher({ appId, groupId, network }) -export class EthereumCurveFarmContractPositionFetcher implements PositionFetcher { - constructor( - @Inject(APP_TOOLKIT) private readonly appToolkit: IAppToolkit, - @Inject(CurveContractFactory) - private readonly curveContractFactory: CurveContractFactory, - @Inject(CurveGaugeRoiStrategy) - private readonly curveGaugeRoiStrategy: CurveGaugeRoiStrategy, - @Inject(CurveGaugeIsActiveStrategy) - private readonly curveGaugeIsActiveStrategy: CurveGaugeIsActiveStrategy, - @Inject(CurveFactoryGaugeAddressHelper) - private readonly curveFactoryGaugeAddressHelper: CurveFactoryGaugeAddressHelper, - ) {} - - private async getSingleGaugeFarms() { - return this.appToolkit.helpers.singleStakingFarmContractPositionHelper.getContractPositions({ - network, - appId, - groupId, - dependencies: [{ appId: CURVE_DEFINITION.id, groupIds: [CURVE_DEFINITION.groups.pool.id], network }], - resolveFarmAddresses: async () => { - const factoryGaugeAddresses = await this.curveFactoryGaugeAddressHelper.getGaugeAddresses({ - factoryAddress: '0xf18056bbd320e96a48e3fbf8bc061322531aac99', - network, - getPoolAddress: poolToken => poolToken.dataProps.swapAddress, - }); - return [...FARMS.single, ...factoryGaugeAddresses]; - }, - resolveImplementation: () => 'single-gauge', - resolveFarmContract: ({ address, network }) => this.curveContractFactory.curveGauge({ address, network }), - resolveStakedTokenAddress: ({ contract, multicall }) => multicall.wrap(contract).lp_token(), - resolveRewardTokenAddresses: async () => [CRV_TOKEN_ADDRESS], - resolveIsActive: this.curveGaugeIsActiveStrategy.build({ - resolveInflationRate: ({ contract, multicall }) => multicall.wrap(contract).inflation_rate(), - }), - resolveRois: this.curveGaugeRoiStrategy.build({ - resolveControllerContract: ({ network }) => - this.curveContractFactory.curveController({ - address: '0x2f50d538606fa9edd2b11e2446beb18c9d5846bb', - network, - }), - resolveInflationRate: ({ gaugeContract, multicall }) => multicall.wrap(gaugeContract).inflation_rate(), - resolveWorkingSupply: ({ gaugeContract, multicall }) => multicall.wrap(gaugeContract).working_supply(), - resolveRelativeWeight: ({ controllerContract, multicall, address }) => - multicall.wrap(controllerContract)['gauge_relative_weight(address)'](address), - }), - }); - } - - private async getDoubleGaugeFarms() { - return this.appToolkit.helpers.singleStakingFarmContractPositionHelper.getContractPositions({ - network, - appId, - groupId, - dependencies: [{ appId: CURVE_DEFINITION.id, groupIds: [CURVE_DEFINITION.groups.pool.id], network }], - resolveFarmAddresses: () => FARMS.double, - resolveImplementation: () => 'double-gauge', - resolveFarmContract: ({ address, network }) => this.curveContractFactory.curveDoubleGauge({ address, network }), - resolveStakedTokenAddress: ({ contract, multicall }) => multicall.wrap(contract).lp_token(), - resolveLiquidity: ({ contract, multicall }) => multicall.wrap(contract).totalSupply(), - resolveRewardTokenAddresses: async ({ contract, multicall }) => { - const bonusRewardTokenAddress = await multicall.wrap(contract).rewarded_token(); - return [CRV_TOKEN_ADDRESS, bonusRewardTokenAddress].filter(v => v !== ZERO_ADDRESS); - }, - resolveIsActive: this.curveGaugeIsActiveStrategy.build({ - resolveInflationRate: ({ contract, multicall }) => multicall.wrap(contract).inflation_rate(), - }), - resolveRois: this.curveGaugeRoiStrategy.build({ - resolveControllerContract: ({ network }) => - this.curveContractFactory.curveController({ - address: '0x2f50d538606fa9edd2b11e2446beb18c9d5846bb', - network, - }), - resolveInflationRate: ({ gaugeContract, multicall }) => multicall.wrap(gaugeContract).inflation_rate(), - resolveWorkingSupply: ({ gaugeContract, multicall }) => multicall.wrap(gaugeContract).working_supply(), - resolveRelativeWeight: ({ controllerContract, multicall, address }) => - multicall.wrap(controllerContract)['gauge_relative_weight(address)'](address), - }), - }); - } - - private async getNGaugeFarms() { - return this.appToolkit.helpers.singleStakingFarmContractPositionHelper.getContractPositions({ - network, - appId, - groupId, - dependencies: [{ appId: CURVE_DEFINITION.id, groupIds: [CURVE_DEFINITION.groups.pool.id], network }], - resolveFarmAddresses: async () => { - const factoryGaugeAddresses = await this.curveFactoryGaugeAddressHelper.getGaugeAddresses({ - factoryAddress: '0xb9fc157394af804a3578134a6585c0dc9cc990d4', - network, - }); - - return [...FARMS.nGauge, ...factoryGaugeAddresses]; - }, - resolveImplementation: () => 'n-gauge', - resolveLiquidity: ({ contract, multicall }) => multicall.wrap(contract).totalSupply(), - resolveFarmContract: ({ address, network }) => this.curveContractFactory.curveNGauge({ address, network }), - resolveStakedTokenAddress: ({ contract, multicall }) => multicall.wrap(contract).lp_token(), - resolveRewardTokenAddresses: async ({ contract, multicall }) => { - const bonusRewardTokenAddress = await multicall.wrap(contract).reward_tokens(0); - return [CRV_TOKEN_ADDRESS, bonusRewardTokenAddress].filter(v => v !== ZERO_ADDRESS); - }, - resolveIsActive: this.curveGaugeIsActiveStrategy.build({ - resolveInflationRate: ({ contract, multicall }) => multicall.wrap(contract).inflation_rate(), - }), - resolveRois: this.curveGaugeRoiStrategy.build({ - resolveControllerContract: ({ network }) => - this.curveContractFactory.curveController({ - address: '0x2f50d538606fa9edd2b11e2446beb18c9d5846bb', - network, - }), - resolveInflationRate: ({ gaugeContract, multicall }) => multicall.wrap(gaugeContract).inflation_rate(), - resolveWorkingSupply: ({ gaugeContract, multicall }) => multicall.wrap(gaugeContract).working_supply(), - resolveRelativeWeight: ({ controllerContract, multicall, address }) => - multicall.wrap(controllerContract)['gauge_relative_weight(address)'](address), - }), - }); - } - - private async getNGaugeV2Farms() { - return this.appToolkit.helpers.singleStakingFarmContractPositionHelper.getContractPositions({ - network, - appId, - groupId, - dependencies: [{ appId: CURVE_DEFINITION.id, groupIds: [CURVE_DEFINITION.groups.pool.id], network }], - resolveFarmAddresses: async () => FARMS.nGaugeV2, - resolveImplementation: () => 'n-gauge-v2', - resolveLiquidity: ({ contract, multicall }) => multicall.wrap(contract).totalSupply(), - resolveFarmContract: ({ address, network }) => this.curveContractFactory.curveNGauge({ address, network }), - resolveStakedTokenAddress: ({ contract, multicall }) => multicall.wrap(contract).lp_token(), - resolveRewardTokenAddresses: async ({ contract, multicall }) => { - const bonusRewardTokenAddress = await multicall.wrap(contract).reward_tokens(0); - return [CRV_TOKEN_ADDRESS, bonusRewardTokenAddress].filter(v => v !== ZERO_ADDRESS); - }, - resolveIsActive: this.curveGaugeIsActiveStrategy.build({ - resolveInflationRate: ({ contract, multicall }) => multicall.wrap(contract).inflation_rate(), - }), - resolveRois: this.curveGaugeRoiStrategy.build({ - resolveControllerContract: ({ network }) => - this.curveContractFactory.curveController({ - address: '0x2f50d538606fa9edd2b11e2446beb18c9d5846bb', - network, - }), - resolveInflationRate: ({ gaugeContract, multicall }) => multicall.wrap(gaugeContract).inflation_rate(), - resolveWorkingSupply: ({ gaugeContract, multicall }) => multicall.wrap(gaugeContract).working_supply(), - resolveRelativeWeight: ({ controllerContract, multicall, address }) => - multicall.wrap(controllerContract)['gauge_relative_weight(address)'](address), - }), - }); - } - - async getPositions() { - return Promise.all([ - this.getSingleGaugeFarms(), - this.getDoubleGaugeFarms(), - this.getNGaugeFarms(), - this.getNGaugeV2Farms(), - ]).then(v => v.flat()); - } -} diff --git a/src/apps/curve/ethereum/curve.gauge.contract-position-fetcher.ts b/src/apps/curve/ethereum/curve.gauge.contract-position-fetcher.ts new file mode 100644 index 000000000..2f323f453 --- /dev/null +++ b/src/apps/curve/ethereum/curve.gauge.contract-position-fetcher.ts @@ -0,0 +1,28 @@ +import { Inject } from '@nestjs/common'; + +import { Register } from '~app-toolkit/decorators'; +import { PositionFetcher } from '~position/position-fetcher.interface'; +import { ContractPosition } from '~position/position.interface'; +import { Network } from '~types/network.interface'; + +import { CURVE_DEFINITION } from '../curve.definition'; +import { CurveGaugeDefaultContractPositionHelper } from '../helpers/curve.gauge.default.contract-position-helper'; + +const appId = CURVE_DEFINITION.id; +const groupId = CURVE_DEFINITION.groups.gauge.id; +const network = Network.ETHEREUM_MAINNET; + +@Register.ContractPositionFetcher({ appId, groupId, network }) +export class EthereumCurveGaugeContractPositionFetcher implements PositionFetcher { + constructor( + @Inject(CurveGaugeDefaultContractPositionHelper) + private readonly curveGaugeDefaultContractPositionHelper: CurveGaugeDefaultContractPositionHelper, + ) {} + + async getPositions() { + return this.curveGaugeDefaultContractPositionHelper.getPositions({ + network, + crvTokenAddress: '0xd533a949740bb3306d119cc777fa900ba034cd52', + }); + } +} diff --git a/src/apps/curve/ethereum/curve.pool.definitions.ts b/src/apps/curve/ethereum/curve.pool.definitions.ts deleted file mode 100644 index 174a1e8af..000000000 --- a/src/apps/curve/ethereum/curve.pool.definitions.ts +++ /dev/null @@ -1,262 +0,0 @@ -import { CurvePoolDefinition } from '../curve.types'; - -export const CURVE_V1_POOL_DEFINITIONS: CurvePoolDefinition[] = [ - { - queryKey: 'y', - swapAddress: '0x45f783cce6b7ff23b2ab2d70e416cdb7d6055f51', - tokenAddress: '0xdf5e0e81dff6faf3a7e52ba697820c5e32d806a8', - isLegacy: true, - }, - { - queryKey: 'busd', - swapAddress: '0x79a8c46dea5ada233abaffd40f3a0a2b1e5a4f27', - tokenAddress: '0x3b3ac5386837dc563660fb6a0937dfaa5924333b', - isLegacy: true, - }, - { - queryKey: 'susd', - swapAddress: '0xa5407eae9ba41422680e2e00537571bcc53efbfd', - tokenAddress: '0xc25a3a3b969415c80451098fa907ec722572917f', - isLegacy: true, - }, - { - queryKey: 'ren2', - swapAddress: '0x93054188d876f558f4a66b2ef1d97d16edf0895b', - tokenAddress: '0x49849c98ae39fff122806c06791fa73784fb3675', - isLegacy: true, - }, - { - queryKey: 'compound', - swapAddress: '0xa2b47e3d5c44877cca798226b7b8118f9bfb7a56', - tokenAddress: '0x845838df265dcd2c412a1dc9e959c7d08537f8a2', - isLegacy: true, - }, - { - queryKey: 'rens', - swapAddress: '0x7fc77b5c7614e1533320ea6ddc2eb61fa00a9714', - tokenAddress: '0x075b1bb99792c9e1041ba13afef80c91a1e70fb3', - isLegacy: true, - }, - { - queryKey: 'usdt', - swapAddress: '0x52ea46506b9cc5ef470c5bf89f17dc28bb35d85c', - tokenAddress: '0x9fc689ccada600b6df723d9e47d84d76664a1f23', - isLegacy: true, - }, - { - queryKey: 'pax', - swapAddress: '0x06364f10b501e868329afbc005b3492902d6c763', - tokenAddress: '0xd905e2eaebe188fc92179b6350807d8bd91db0d8', - isLegacy: true, - }, - { - queryKey: '3pool', - label: '3Pool', - swapAddress: '0xbebc44782c7db0a1a60cb6fe97d0b483032ff1c7', - tokenAddress: '0x6c3f90f043a72fa612cbac8115ee7e52bde6e490', - }, - { - queryKey: 'hbtc', - swapAddress: '0x4ca9b3063ec5866a4b82e437059d2c43d1be596f', - tokenAddress: '0xb19059ebb43466c323583928285a49f558e572fd', - }, - { - queryKey: 'aave', - swapAddress: '0xdebf20617708857ebe4f679508e7b7863a8a8eee', - tokenAddress: '0xfd2a8fa60abd58efe3eee34dd494cd491dc14900', - }, - { - queryKey: 'eurs', - swapAddress: '0x0ce6a5ff5217e38315f87032cf90686c96627caa', - tokenAddress: '0x194ebd173f6cdace046c53eacce9b953f28411d1', - }, - { - queryKey: 'seth', - swapAddress: '0xc5424b857f758e906013f3555dad202e4bdb4567', - tokenAddress: '0xa3d87fffce63b53e0d54faa1cc983b7eb0b74a9c', - }, - { - queryKey: 'steth', - swapAddress: '0xdc24316b9ae028f1497c275eb9192a3ea0f67022', - tokenAddress: '0x06325440d014e39736583c165c2963ba99faf14e', - }, - { - queryKey: 'saave', - swapAddress: '0xeb16ae0052ed37f479f7fe63849198df1765a733', - tokenAddress: '0x02d341ccb60faaf662bc0554d13778015d1b285c', - }, - { - queryKey: 'ankreth', - swapAddress: '0xa96a65c051bf88b4095ee1f2451c2a9d43f53ae2', - tokenAddress: '0xaa17a236f2badc98ddc0cf999abb47d47fc0a6cf', - }, - { - queryKey: 'link', - swapAddress: '0xf178c0b5bb7e7abf4e12a4838c7b7c5ba2c623c0', - tokenAddress: '0xcee60cfa923170e4f8204ae08b4fa6a3f5656f3a', - }, - { - queryKey: 'ib', - label: 'ib3Pool', - swapAddress: '0x2dded6da1bf5dbdf597c45fcfaa3194e53ecfeaf', - tokenAddress: '0x5282a4ef67d9c33135340fb3289cc1711c13638c', - }, - { - queryKey: 'reth', - swapAddress: '0xf9440930043eb3997fc70e1339dbb11f341de7a8', - tokenAddress: '0x53a901d48795c58f485cbb38df08fa96a24669d5', - }, - { - queryKey: 'eurt', - swapAddress: '0xfd5db7463a3ab53fd211b4af195c5bccc1a03890', - tokenAddress: '0xfd5db7463a3ab53fd211b4af195c5bccc1a03890', - }, -]; - -export const CURVE_V1_METAPOOL_DEFINITIONS: CurvePoolDefinition[] = [ - { - queryKey: 'gusd', - swapAddress: '0x4f062658eaaf2c1ccf8c8e36d6824cdf41167956', - tokenAddress: '0xd2967f45c4f384deea880f807be904762a3dea07', - }, - { - queryKey: 'husd', - swapAddress: '0x3ef6a01a0f81d6046290f3e2a8c5b843e738e604', - tokenAddress: '0x5b5cfe992adac0c9d48e05854b2d91c73a003858', - }, - { - queryKey: 'usdk', - swapAddress: '0x3e01dd8a5e1fb3481f0f589056b428fc308af0fb', - tokenAddress: '0x97e2768e8e73511ca874545dc5ff8067eb19b787', - }, - { - queryKey: 'usdn', - swapAddress: '0x0f9cb53ebe405d49a0bbdbd291a65ff571bc83e1', - tokenAddress: '0x4f3e8f405cf5afc05d68142f3783bdfe13811522', - }, - { - queryKey: 'linkusd', - swapAddress: '0xe7a24ef0c5e95ffb0f6684b813a78f2a3ad7d171', - tokenAddress: '0x6d65b498cb23deaba52db31c93da9bffb340fb8f', - }, - { - queryKey: 'musd', - swapAddress: '0x8474ddbe98f5aa3179b3b3f5942d724afcdec9f6', - tokenAddress: '0x1aef73d49dedc4b1778d0706583995958dc862e6', - }, - { - queryKey: 'tbtc', - swapAddress: '0xc25099792e9349c7dd09759744ea681c7de2cb66', - tokenAddress: '0x64eda51d3ad40d56b9dfc5554e06f94e1dd786fd', - }, - { - queryKey: 'dusd', - swapAddress: '0x8038c01a0390a8c547446a0b2c18fc9aefecc10c', - tokenAddress: '0x3a664ab939fd8482048609f652f9a0b0677337b9', - }, - { - queryKey: 'rsv', - swapAddress: '0xc18cc39da8b11da8c3541c598ee022258f9744da', - tokenAddress: '0xc2ee6b0334c261ed60c72f6054450b61b8f18e35', - }, - { - queryKey: 'pbtc', - swapAddress: '0x7f55dde206dbad629c080068923b36fe9d6bdbef', - tokenAddress: '0xde5331ac4b3630f94853ff322b66407e0d6331e8', - }, - { - queryKey: 'bbtc', - swapAddress: '0x071c661b4deefb59e2a3ddb20db036821eee8f4b', - tokenAddress: '0x410e3e86ef427e30b9235497143881f717d93c2a', - }, - { - queryKey: 'obtc', - swapAddress: '0xd81da8d904b52208541bade1bd6595d8a251f8dd', - tokenAddress: '0x2fe94ea3d5d4a175184081439753de15aef9d614', - }, - { - queryKey: 'ust', - swapAddress: '0x890f4e345b1daed0367a877a1612f86a1f86985f', - tokenAddress: '0x94e131324b6054c0d789b190b2dac504e4361b53', - }, - { - queryKey: 'usdp', - swapAddress: '0x42d7025938bec20b69cbae5a77421082407f053a', - tokenAddress: '0x7eb40e450b9655f4b3cc4259bcc731c63ff55ae6', - }, - { - queryKey: 'rai', - swapAddress: '0x618788357d0ebd8a37e763adab3bc575d54c2c7d', - tokenAddress: '0x6ba5b4e438fa0aaf7c1bd179285af65d13bd3d90', - }, - { - queryKey: '2pool', - swapAddress: '0x1005f7406f32a61bd760cfa14accd2737913d546', - tokenAddress: '0x1005f7406f32a61bd760cfa14accd2737913d546', - }, - { - queryKey: '4pool', - swapAddress: '0x4e0915c88bc70750d68c481540f081fefaf22273', - tokenAddress: '0x4e0915c88bc70750d68c481540f081fefaf22273', - }, - { - queryKey: 'fraxusdc', - swapAddress: '0xdcef968d416a41cdac0ed8702fac8128a64241a2', - tokenAddress: '0x3175df0976dfa876431c2e9ee6bc45b65d3473cc', - }, -]; - -export const CURVE_V2_POOL_DEFINITIONS: CurvePoolDefinition[] = [ - { - queryKey: 'tricrypto', - label: 'TriCrypto', - swapAddress: '0x80466c64868e1ab14a1ddf27a676c3fcbe638fe5', - tokenAddress: '0xca3d75ac011bf5ad07a98d02f18225f9bd9a6bdf', - }, - { - queryKey: 'tricrypto2', - label: 'TriCrypto2', - swapAddress: '0xd51a44d3fae010294c616388b506acda1bfaae46', - tokenAddress: '0xc4ad29ba4b3c580e6d59105fff484999997675ff', - }, - { - queryKey: 'crveth', - swapAddress: '0x8301ae4fc9c624d1d396cbdaa1ed877821d7c511', - tokenAddress: '0xed4064f376cb8d68f770fb1ff088a3d0f3ff5c4d', - }, - { - queryKey: 'cvxeth', - swapAddress: '0xb576491f1e6e5e62f1d8f26062ee822b40b0e0d4', - tokenAddress: '0x3a283d9c08e8b55966afb64c515f5143cf907611', - }, - { - queryKey: 'eurtusd', - swapAddress: '0x9838eccc42659fa8aa7daf2ad134b53984c9427b', - tokenAddress: '0x3b6831c0077a1e44ed0a21841c3bc4dc11bce833', - }, - { - queryKey: 'eursusd', - swapAddress: '0x98a7f18d4e56cfe84e3d081b40001b3d5bd3eb8b', - tokenAddress: '0x3d229e1b4faab62f621ef2f6a610961f7bd7b23b', - }, - { - queryKey: 'teth', - swapAddress: '0x752ebeb79963cf0732e9c0fec72a49fd1defaeac', - tokenAddress: '0xcb08717451aae9ef950a2524e33b6dcaba60147b', - }, - { - queryKey: 'spelleth', - swapAddress: '0x98638facf9a3865cd033f36548713183f6996122', - tokenAddress: '0x8282bd15dca2ea2bdf24163e8f2781b30c43a2ef', - }, - { - queryKey: 'xautusd', - swapAddress: '0xadcfcf9894335dc340f6cd182afa45999f45fc44', - tokenAddress: '0x8484673ca7bff40f82b041916881aea15ee84834', - }, - { - queryKey: 'euroc', - swapAddress: '0xe84f5b1582ba325fdf9ce6b0c1f087ccfc924e54', - tokenAddress: '0x70fc957eb90e37af82acdbd12675699797745f68', - }, -]; diff --git a/src/apps/curve/ethereum/curve.pool.token-fetcher.ts b/src/apps/curve/ethereum/curve.pool.token-fetcher.ts index 4532995cf..4e3134f31 100644 --- a/src/apps/curve/ethereum/curve.pool.token-fetcher.ts +++ b/src/apps/curve/ethereum/curve.pool.token-fetcher.ts @@ -1,25 +1,18 @@ import { Inject } from '@nestjs/common'; -import { compact, uniqBy } from 'lodash'; import { Register } from '~app-toolkit/decorators'; +import { AAVE_V2_DEFINITION } from '~apps/aave-v2/aave-v2.definition'; +import { COMPOUND_DEFINITION } from '~apps/compound'; +import { IRON_BANK_DEFINITION } from '~apps/iron-bank'; import { SYNTHETIX_DEFINITION } from '~apps/synthetix'; -import { TOKEMAK_DEFINITION } from '~apps/tokemak'; +import { TOKEMAK_DEFINITION } from '~apps/tokemak/tokemak.definition'; import { YEARN_DEFINITION } from '~apps/yearn/yearn.definition'; import { PositionFetcher } from '~position/position-fetcher.interface'; import { AppTokenPosition } from '~position/position.interface'; import { Network } from '~types/network.interface'; import { CURVE_DEFINITION } from '../curve.definition'; -import { CurveCryptoFactoryPoolTokenHelper } from '../helpers/curve.crypto-factory-pool.token-helper'; -import { CurveFactoryPoolTokenHelper } from '../helpers/curve.factory-pool.token-helper'; -import { CurveV1PoolTokenHelper } from '../helpers/curve.v1-pool.token-helper'; -import { CurveV2PoolTokenHelper } from '../helpers/curve.v2-pool.token-helper'; - -import { - CURVE_V1_METAPOOL_DEFINITIONS, - CURVE_V1_POOL_DEFINITIONS, - CURVE_V2_POOL_DEFINITIONS, -} from './curve.pool.definitions'; +import { CurvePoolDefaultTokenHelper } from '../helpers/curve.pool.default.token-helper'; const appId = CURVE_DEFINITION.id; const groupId = CURVE_DEFINITION.groups.pool.id; @@ -28,95 +21,23 @@ const network = Network.ETHEREUM_MAINNET; @Register.TokenPositionFetcher({ appId, groupId, network }) export class EthereumCurvePoolTokenFetcher implements PositionFetcher { constructor( - @Inject(CurveV1PoolTokenHelper) - private readonly curveV1PoolTokenHelper: CurveV1PoolTokenHelper, - @Inject(CurveV2PoolTokenHelper) - private readonly curveV2PoolTokenHelper: CurveV2PoolTokenHelper, - @Inject(CurveFactoryPoolTokenHelper) - private readonly curveFactoryPoolTokenHelper: CurveFactoryPoolTokenHelper, - @Inject(CurveCryptoFactoryPoolTokenHelper) - private readonly curveCryptoFactoryPoolTokenHelper: CurveCryptoFactoryPoolTokenHelper, + @Inject(CurvePoolDefaultTokenHelper) + private readonly curvePoolDefaultTokenHelper: CurvePoolDefaultTokenHelper, ) {} async getPositions() { - const [v1Pools] = await Promise.all([ - this.curveV1PoolTokenHelper.getTokens({ - network, - appId, - groupId, - poolDefinitions: CURVE_V1_POOL_DEFINITIONS, - statsUrl: 'https://stats.curve.fi/raw-stats/apys.json', - appTokenDependencies: [ - // @TODO: Migrate all these :pain: - { appId: 'aave-v2', groupIds: ['supply'], network }, - { appId: 'compound', groupIds: ['supply'], network }, - { appId: 'iron-bank', groupIds: ['supply'], network }, - { appId: YEARN_DEFINITION.id, groupIds: [YEARN_DEFINITION.groups.yield.id], network }, - { appId: 'convex', groupIds: ['deposit'], network }, - { appId: 'fixed-forex', groupIds: ['forex'], network }, - ], - }), - ]); - - const [v1MetaPools, v2Pools, v1FactoryPools, v2FactoryPools, cryptoFactoryPools] = await Promise.all([ - this.curveV1PoolTokenHelper.getTokens({ - network, - appId, - groupId: CURVE_DEFINITION.groups.pool.id, - baseCurveTokens: v1Pools, - poolDefinitions: CURVE_V1_METAPOOL_DEFINITIONS, - statsUrl: 'https://stats.curve.fi/raw-stats/apys.json', - }), - this.curveV2PoolTokenHelper.getTokens({ - network, - appId: CURVE_DEFINITION.id, - groupId: CURVE_DEFINITION.groups.pool.id, - baseCurveTokens: v1Pools, - poolDefinitions: CURVE_V2_POOL_DEFINITIONS, - statsUrl: 'https://stats.curve.fi/raw-stats-crypto/apys.json', - }), - this.curveFactoryPoolTokenHelper.getTokens({ - factoryAddress: '0x0959158b6040d32d04c301a72cbfd6b39e21c9ae', - network, - appId: CURVE_DEFINITION.id, - groupId: CURVE_DEFINITION.groups.pool.id, - baseCurveTokens: v1Pools, - }), - this.curveFactoryPoolTokenHelper.getTokens({ - factoryAddress: '0xb9fc157394af804a3578134a6585c0dc9cc990d4', - network, - appId: CURVE_DEFINITION.id, - groupId: CURVE_DEFINITION.groups.pool.id, - baseCurveTokens: v1Pools, - appTokenDependencies: [ - // @TODO: Migrate all these :pain: - { appId: 'aave-v2', groupIds: ['supply'], network }, - { appId: 'compound', groupIds: ['supply'], network }, - { appId: 'iron-bank', groupIds: ['supply'], network }, - { - appId: SYNTHETIX_DEFINITION.id, - groupIds: [SYNTHETIX_DEFINITION.groups.farm.id, SYNTHETIX_DEFINITION.groups.synth.id], - network, - }, - { appId: 'convex', groupIds: ['farm'], network }, - { - appId: YEARN_DEFINITION.id, - groupIds: [YEARN_DEFINITION.groups.v1Vault.id, YEARN_DEFINITION.groups.v2Vault.id], - network, - }, - { appId: TOKEMAK_DEFINITION.id, groupIds: [TOKEMAK_DEFINITION.groups.reactor.id], network }, - ], - }), - this.curveCryptoFactoryPoolTokenHelper.getTokens({ - factoryAddress: '0xf18056bbd320e96a48e3fbf8bc061322531aac99', - network, - appId: CURVE_DEFINITION.id, - groupId: CURVE_DEFINITION.groups.pool.id, - baseCurveTokens: v1Pools, - }), - ]); - - const tokens = compact([v1Pools, v1MetaPools, v2Pools, v1FactoryPools, v2FactoryPools, cryptoFactoryPools].flat()); - return uniqBy(tokens, v => v.address); + return this.curvePoolDefaultTokenHelper.getTokens({ + network, + dependencies: [ + { appId: AAVE_V2_DEFINITION.id, groupIds: [AAVE_V2_DEFINITION.groups.supply.id], network }, + { appId: COMPOUND_DEFINITION.id, groupIds: [COMPOUND_DEFINITION.groups.supply.id], network }, + { appId: SYNTHETIX_DEFINITION.id, groupIds: [SYNTHETIX_DEFINITION.groups.synth.id], network }, + { appId: IRON_BANK_DEFINITION.id, groupIds: [IRON_BANK_DEFINITION.groups.supply.id], network }, + { appId: TOKEMAK_DEFINITION.id, groupIds: [TOKEMAK_DEFINITION.groups.reactor.id], network }, + { appId: YEARN_DEFINITION.id, groupIds: [YEARN_DEFINITION.groups.yield.id], network }, + { appId: 'convex', groupIds: ['deposit'], network }, + { appId: 'fixed-forex', groupIds: ['forex'], network }, + ], + }); } } diff --git a/src/apps/curve/fantom/curve.balance-fetcher.ts b/src/apps/curve/fantom/curve.balance-fetcher.ts index 6a80e40ac..3fecfa32d 100644 --- a/src/apps/curve/fantom/curve.balance-fetcher.ts +++ b/src/apps/curve/fantom/curve.balance-fetcher.ts @@ -4,11 +4,10 @@ import { APP_TOOLKIT, IAppToolkit } from '~app-toolkit/app-toolkit.interface'; import { Register } from '~app-toolkit/decorators'; import { presentBalanceFetcherResponse } from '~app-toolkit/helpers/presentation/balance-fetcher-response.present'; import { BalanceFetcher } from '~balance/balance-fetcher.interface'; -import { isClaimable } from '~position/position.utils'; import { Network } from '~types/network.interface'; -import { CurveChildLiquidityGauge, CurveContractFactory, CurveRewardsOnlyGauge } from '../contracts'; import { CURVE_DEFINITION } from '../curve.definition'; +import { CurveGaugeDefaultContractPositionBalanceHelper } from '../helpers/curve.gauge.default.contract-position-balance-helper'; const network = Network.FANTOM_OPERA_MAINNET; @@ -16,7 +15,8 @@ const network = Network.FANTOM_OPERA_MAINNET; export class FantomCurveBalanceFetcher implements BalanceFetcher { constructor( @Inject(APP_TOOLKIT) private readonly appToolkit: IAppToolkit, - @Inject(CurveContractFactory) private readonly curveContractFactory: CurveContractFactory, + @Inject(CurveGaugeDefaultContractPositionBalanceHelper) + private readonly curveGaugeDefaultContractPositionBalanceHelper: CurveGaugeDefaultContractPositionBalanceHelper, ) {} private async getPoolTokenBalances(address: string) { @@ -28,50 +28,17 @@ export class FantomCurveBalanceFetcher implements BalanceFetcher { }); } - private async getRewardsOnlyGaugeStakedBalances(address: string) { - return this.appToolkit.helpers.singleStakingContractPositionBalanceHelper.getBalances({ + private async getStakedBalances(address: string) { + return this.curveGaugeDefaultContractPositionBalanceHelper.getBalances({ address, - appId: CURVE_DEFINITION.id, - groupId: CURVE_DEFINITION.groups.farm.id, - network, - farmFilter: v => v.dataProps.implementation === 'rewards-only-gauge', - resolveContract: ({ address, network }) => this.curveContractFactory.curveRewardsOnlyGauge({ address, network }), - resolveStakedTokenBalance: ({ contract, address, multicall }) => multicall.wrap(contract).balanceOf(address), - resolveRewardTokenBalances: ({ contract, address, multicall, contractPosition }) => { - const rewardTokens = contractPosition.tokens.filter(isClaimable); - const wrappedContract = multicall.wrap(contract); - return Promise.all(rewardTokens.map(v => wrappedContract.claimable_reward_write(address, v.address))); - }, - }); - } - - private async getChildLiquidityGaugeStakedBalances(address: string) { - return this.appToolkit.helpers.singleStakingContractPositionBalanceHelper.getBalances({ - address, - appId: CURVE_DEFINITION.id, - groupId: CURVE_DEFINITION.groups.farm.id, network, - farmFilter: v => v.dataProps.implementation === 'child-liquidity-gauge', - resolveContract: ({ address, network }) => - this.curveContractFactory.curveChildLiquidityGauge({ address, network }), - resolveStakedTokenBalance: ({ contract, address, multicall }) => multicall.wrap(contract).balanceOf(address), - resolveRewardTokenBalances: async ({ contract, address, multicall, contractPosition }) => { - const rewardTokens = contractPosition.tokens.filter(isClaimable); - const otherRewardTokens = rewardTokens.filter(v => v.symbol !== 'CRV'); - - return Promise.all([ - multicall.wrap(contract).callStatic.claimable_tokens(address), - ...otherRewardTokens.map(v => multicall.wrap(contract).claimable_reward(address, v.address)), - ]); - }, }); } async getBalances(address: string) { - const [poolTokenBalances, rewardOnlyGaugeStakedBalances, childLiquidityGaugeStakedBalances] = await Promise.all([ + const [poolTokenBalances, stakedBalances] = await Promise.all([ this.getPoolTokenBalances(address), - this.getRewardsOnlyGaugeStakedBalances(address), - this.getChildLiquidityGaugeStakedBalances(address), + this.getStakedBalances(address), ]); return presentBalanceFetcherResponse([ @@ -81,7 +48,7 @@ export class FantomCurveBalanceFetcher implements BalanceFetcher { }, { label: 'Staked', - assets: [...rewardOnlyGaugeStakedBalances, ...childLiquidityGaugeStakedBalances], + assets: stakedBalances, }, ]); } diff --git a/src/apps/curve/fantom/curve.farm.contract-position-fetcher.ts b/src/apps/curve/fantom/curve.farm.contract-position-fetcher.ts deleted file mode 100644 index 021de02ba..000000000 --- a/src/apps/curve/fantom/curve.farm.contract-position-fetcher.ts +++ /dev/null @@ -1,99 +0,0 @@ -import { Inject } from '@nestjs/common'; - -import { APP_TOOLKIT, IAppToolkit } from '~app-toolkit/app-toolkit.interface'; -import { Register } from '~app-toolkit/decorators'; -import { PositionFetcher } from '~position/position-fetcher.interface'; -import { ContractPosition } from '~position/position.interface'; -import { Network } from '~types/network.interface'; - -import { CurveChildLiquidityGauge, CurveContractFactory, CurveRewardsOnlyGauge } from '../contracts'; -import { CURVE_DEFINITION } from '../curve.definition'; -import { CurveChildLiquidityGaugeFactoryAddressHelper } from '../helpers/curve.child-liquidity-gauge-factory.address-helper'; -import { CurveChildLiquidityGaugeRewardTokenStrategy } from '../helpers/curve.child-liquidity-gauge.reward-token-strategy'; -import { CurveChildLiquidityGaugeRoiStrategy } from '../helpers/curve.child-liquidity-gauge.roi-strategy'; -import { CurveRewardsOnlyGaugeRewardTokenStrategy } from '../helpers/curve.rewards-only-gauge.reward-token-strategy'; -import { CurveRewardsOnlyGaugeRoiStrategy } from '../helpers/curve.rewards-only-gauge.roi-strategy'; - -import { - CURVE_V1_METAPOOL_DEFINITIONS, - CURVE_V1_POOL_DEFINITIONS, - CURVE_V2_POOL_DEFINITIONS, -} from './curve.pool.definitions'; - -const appId = CURVE_DEFINITION.id; -const groupId = CURVE_DEFINITION.groups.farm.id; -const network = Network.FANTOM_OPERA_MAINNET; - -@Register.ContractPositionFetcher({ appId, groupId, network }) -export class FantomCurveFarmContractPositionFetcher implements PositionFetcher { - constructor( - @Inject(APP_TOOLKIT) private readonly appToolkit: IAppToolkit, - @Inject(CurveContractFactory) - private readonly curveContractFactory: CurveContractFactory, - @Inject(CurveRewardsOnlyGaugeRoiStrategy) - private readonly curveRewardsOnlyGaugeRoiStrategy: CurveRewardsOnlyGaugeRoiStrategy, - @Inject(CurveRewardsOnlyGaugeRewardTokenStrategy) - private readonly curveRewardsOnlyGaugeRewardTokenStrategy: CurveRewardsOnlyGaugeRewardTokenStrategy, - @Inject(CurveChildLiquidityGaugeFactoryAddressHelper) - private readonly childGaugeAddressHelper: CurveChildLiquidityGaugeFactoryAddressHelper, - @Inject(CurveChildLiquidityGaugeRoiStrategy) - private readonly childGaugeRoiStrategy: CurveChildLiquidityGaugeRoiStrategy, - @Inject(CurveChildLiquidityGaugeRewardTokenStrategy) - private readonly childGaugeRewardTokenStrategy: CurveChildLiquidityGaugeRewardTokenStrategy, - ) {} - - async getRewardsOnlyGaugePositions() { - const definitions = [CURVE_V1_POOL_DEFINITIONS, CURVE_V1_METAPOOL_DEFINITIONS, CURVE_V2_POOL_DEFINITIONS] - .flat() - .filter(v => !!v.gaugeAddress); - - return this.appToolkit.helpers.singleStakingFarmContractPositionHelper.getContractPositions({ - network, - appId, - groupId, - dependencies: [{ appId: CURVE_DEFINITION.id, groupIds: [CURVE_DEFINITION.groups.pool.id], network }], - resolveImplementation: () => 'rewards-only-gauge', - resolveFarmAddresses: () => definitions.map(v => v.gaugeAddress!), - resolveFarmContract: ({ address, network }) => - this.curveContractFactory.curveRewardsOnlyGauge({ address, network }), - resolveStakedTokenAddress: ({ contract, multicall }) => multicall.wrap(contract).lp_token(), - resolveRewardTokenAddresses: this.curveRewardsOnlyGaugeRewardTokenStrategy.build(), - resolveRois: this.curveRewardsOnlyGaugeRoiStrategy.build({ tokenDefinitions: definitions }), - resolveIsActive: () => true, - }); - } - - async getChildLiquidityGaugePositions() { - return this.appToolkit.helpers.singleStakingFarmContractPositionHelper.getContractPositions( - { - network, - appId, - groupId, - dependencies: [{ appId: CURVE_DEFINITION.id, groupIds: [CURVE_DEFINITION.groups.pool.id], network }], - resolveImplementation: () => 'child-liquidity-gauge', - resolveFarmAddresses: () => - this.childGaugeAddressHelper.getGaugeAddresses({ - factoryAddress: '0xabc000d88f23bb45525e447528dbf656a9d55bf5', - network, - }), - resolveFarmContract: ({ address, network }) => - this.curveContractFactory.curveChildLiquidityGauge({ address, network }), - resolveStakedTokenAddress: ({ contract, multicall }) => multicall.wrap(contract).lp_token(), - resolveRewardTokenAddresses: this.childGaugeRewardTokenStrategy.build({ - crvTokenAddress: '0x1e4f97b9f9f913c46f1632781732927b9019c68b', - }), - resolveRois: this.childGaugeRoiStrategy.build(), - resolveIsActive: () => true, - }, - ); - } - - async getPositions() { - const [rewardOnlyGaugePositions, childLiquidityGaugePositions] = await Promise.all([ - this.getRewardsOnlyGaugePositions(), - this.getChildLiquidityGaugePositions(), - ]); - - return [...rewardOnlyGaugePositions, ...childLiquidityGaugePositions]; - } -} diff --git a/src/apps/curve/fantom/curve.gauge.contract-position-fetcher.ts b/src/apps/curve/fantom/curve.gauge.contract-position-fetcher.ts new file mode 100644 index 000000000..04d417a0b --- /dev/null +++ b/src/apps/curve/fantom/curve.gauge.contract-position-fetcher.ts @@ -0,0 +1,28 @@ +import { Inject } from '@nestjs/common'; + +import { Register } from '~app-toolkit/decorators'; +import { PositionFetcher } from '~position/position-fetcher.interface'; +import { ContractPosition } from '~position/position.interface'; +import { Network } from '~types/network.interface'; + +import { CURVE_DEFINITION } from '../curve.definition'; +import { CurveGaugeDefaultContractPositionHelper } from '../helpers/curve.gauge.default.contract-position-helper'; + +const appId = CURVE_DEFINITION.id; +const groupId = CURVE_DEFINITION.groups.gauge.id; +const network = Network.FANTOM_OPERA_MAINNET; + +@Register.ContractPositionFetcher({ appId, groupId, network }) +export class FantomCurveGaugeContractPositionFetcher implements PositionFetcher { + constructor( + @Inject(CurveGaugeDefaultContractPositionHelper) + private readonly curveGaugeDefaultContractPositionHelper: CurveGaugeDefaultContractPositionHelper, + ) {} + + async getPositions() { + return this.curveGaugeDefaultContractPositionHelper.getPositions({ + network, + crvTokenAddress: '0x1e4f97b9f9f913c46f1632781732927b9019c68b', + }); + } +} diff --git a/src/apps/curve/fantom/curve.pool.definitions.ts b/src/apps/curve/fantom/curve.pool.definitions.ts deleted file mode 100644 index ac9b49769..000000000 --- a/src/apps/curve/fantom/curve.pool.definitions.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { CurvePoolDefinition } from '../curve.types'; - -export const CURVE_V1_POOL_DEFINITIONS: CurvePoolDefinition[] = [ - { - queryKey: '2pool', - label: '2Pool', - swapAddress: '0x27e611fd27b276acbd5ffd632e5eaebec9761e40', - tokenAddress: '0x27e611fd27b276acbd5ffd632e5eaebec9761e40', - gaugeAddress: '0x8866414733f22295b7563f9c5299715d2d76caf4', - streamAddress: '0xb9c05b8ee41fdcbd9956114b3af15834fdedcb54', - }, - { - queryKey: 'renBTC', - swapAddress: '0x3ef6a01a0f81d6046290f3e2a8c5b843e738e604', - tokenAddress: '0x5b5cfe992adac0c9d48e05854b2d91c73a003858', - gaugeAddress: '0xbdff0c27dd073c119ebcb1299a68a6a92ae607f0', - streamAddress: '0xfdb129ea4b6f557b07bcdcede54f665b7b6bc281', - }, - { - queryKey: 'geist', - swapAddress: '0x0fa949783947bf6c1b171db13aeacbb488845b3f', - tokenAddress: '0xd02a30d33153877bc20e5721ee53dedee0422b2f', - gaugeAddress: '0xd4f94d0aaa640bbb72b5eec2d85f6d114d81a88e', - streamAddress: '0xfe1a3dd8b169fb5bf0d5dbfe813d956f39ff6310', - }, - { - queryKey: 'ironbank', - swapAddress: '0x4fc8d635c3cb1d0aa123859e2b2587d0ff2707b1', - tokenAddress: '0xdf38ec60c0ec001142a33eaa039e49e9b84e64ed', - gaugeAddress: '0xdee85272eae1ab4afbc6433f4d819babc9c7045a', - streamAddress: '0x92bbf58c2a4514d44343b987d608627eb7d1d24f', - }, -]; - -export const CURVE_V1_METAPOOL_DEFINITIONS: CurvePoolDefinition[] = [ - { - queryKey: 'fUSDT', - swapAddress: '0x92d5ebf3593a92888c25c0abef126583d4b5312e', - tokenAddress: '0x92d5ebf3593a92888c25c0abef126583d4b5312e', - gaugeAddress: '0x06e3c4da96fd076b97b7ca3ae23527314b6140df', - streamAddress: '0xfe1a3dd8b169fb5bf0d5dbfe813d956f39ff6310', - streamEol: true, - }, -]; - -export const CURVE_V2_POOL_DEFINITIONS: CurvePoolDefinition[] = [ - { - queryKey: 'tricrypto', - label: 'TriCrypto', - swapAddress: '0x3a1659ddcf2339be3aea159ca010979fb49155ff', - tokenAddress: '0x58e57ca18b7a47112b877e31929798cd3d703b0f', - gaugeAddress: '0x00702bbdead24c40647f235f15971db0867f6bdb', - streamAddress: '0x260e4fbb13dd91e187ae992c3435d0cf97172316', - }, -]; diff --git a/src/apps/curve/fantom/curve.pool.token-fetcher.ts b/src/apps/curve/fantom/curve.pool.token-fetcher.ts index 44e85c32a..fffa691ce 100644 --- a/src/apps/curve/fantom/curve.pool.token-fetcher.ts +++ b/src/apps/curve/fantom/curve.pool.token-fetcher.ts @@ -1,20 +1,13 @@ import { Inject } from '@nestjs/common'; import { Register } from '~app-toolkit/decorators'; +import { IRON_BANK_DEFINITION } from '~apps/iron-bank/iron-bank.definition'; import { PositionFetcher } from '~position/position-fetcher.interface'; import { AppTokenPosition } from '~position/position.interface'; import { Network } from '~types/network.interface'; import { CURVE_DEFINITION } from '../curve.definition'; -import { CurveFactoryPoolTokenHelper } from '../helpers/curve.factory-pool.token-helper'; -import { CurveV1PoolTokenHelper } from '../helpers/curve.v1-pool.token-helper'; -import { CurveV2PoolTokenHelper } from '../helpers/curve.v2-pool.token-helper'; - -import { - CURVE_V1_METAPOOL_DEFINITIONS, - CURVE_V1_POOL_DEFINITIONS, - CURVE_V2_POOL_DEFINITIONS, -} from './curve.pool.definitions'; +import { CurvePoolDefaultTokenHelper } from '../helpers/curve.pool.default.token-helper'; const appId = CURVE_DEFINITION.id; const groupId = CURVE_DEFINITION.groups.pool.id; @@ -23,65 +16,17 @@ const network = Network.FANTOM_OPERA_MAINNET; @Register.TokenPositionFetcher({ appId, groupId, network }) export class FantomCurvePoolTokenFetcher implements PositionFetcher { constructor( - @Inject(CurveV1PoolTokenHelper) - private readonly curveV1PoolTokenHelper: CurveV1PoolTokenHelper, - @Inject(CurveV2PoolTokenHelper) - private readonly curveV2PoolTokenHelper: CurveV2PoolTokenHelper, - @Inject(CurveFactoryPoolTokenHelper) - private readonly curveFactoryPoolTokenHelper: CurveFactoryPoolTokenHelper, + @Inject(CurvePoolDefaultTokenHelper) + private readonly curvePoolDefaultTokenHelper: CurvePoolDefaultTokenHelper, ) {} async getPositions() { - const [v1Pools] = await Promise.all([ - this.curveV1PoolTokenHelper.getTokens({ - network, - appId, - groupId, - poolDefinitions: CURVE_V1_POOL_DEFINITIONS, - statsUrl: 'https://stats.curve.fi/raw-stats-ftm/apys.json', - appTokenDependencies: [ - // @TODO: Migrate all these :pain: - { - network: Network.FANTOM_OPERA_MAINNET, - appId: 'geist', - groupIds: ['supply'], - }, - { - network: Network.FANTOM_OPERA_MAINNET, - appId: 'iron-bank', - groupIds: ['supply'], - }, - ], - }), - ]); - - const [v1Metapools, v2Pools, v2FactoryPools] = await Promise.all([ - this.curveV1PoolTokenHelper.getTokens({ - network, - appId, - groupId, - poolDefinitions: CURVE_V1_METAPOOL_DEFINITIONS, - statsUrl: 'https://stats.curve.fi/raw-stats-ftm/apys.json', - baseCurveTokens: v1Pools, - }), - this.curveV2PoolTokenHelper.getTokens({ - network, - appId, - groupId, - poolDefinitions: CURVE_V2_POOL_DEFINITIONS, - baseCurveTokens: v1Pools, - statsUrl: 'https://stats.curve.fi/raw-stats-ftm/apys.json', - }), - this.curveFactoryPoolTokenHelper.getTokens({ - factoryAddress: '0x686d67265703d1f124c45e33d47d794c566889ba', - network, - appId, - groupId, - baseCurveTokens: v1Pools, - skipVolume: true, - }), - ]); - - return [v1Pools, v1Metapools, v2Pools, v2FactoryPools].flat(); + return this.curvePoolDefaultTokenHelper.getTokens({ + network, + dependencies: [ + { appId: IRON_BANK_DEFINITION.id, groupIds: [IRON_BANK_DEFINITION.groups.supply.id], network }, + { appId: 'geist', groupIds: ['supply'], network }, + ], + }); } } diff --git a/src/apps/curve/gnosis/curve.balance-fetcher.ts b/src/apps/curve/gnosis/curve.balance-fetcher.ts index a0ad12318..1931355b9 100644 --- a/src/apps/curve/gnosis/curve.balance-fetcher.ts +++ b/src/apps/curve/gnosis/curve.balance-fetcher.ts @@ -4,11 +4,10 @@ import { APP_TOOLKIT, IAppToolkit } from '~app-toolkit/app-toolkit.interface'; import { Register } from '~app-toolkit/decorators'; import { presentBalanceFetcherResponse } from '~app-toolkit/helpers/presentation/balance-fetcher-response.present'; import { BalanceFetcher } from '~balance/balance-fetcher.interface'; -import { isClaimable } from '~position/position.utils'; import { Network } from '~types/network.interface'; -import { CurveChildLiquidityGauge, CurveContractFactory, CurveRewardsOnlyGauge } from '../contracts'; import { CURVE_DEFINITION } from '../curve.definition'; +import { CurveGaugeDefaultContractPositionBalanceHelper } from '../helpers/curve.gauge.default.contract-position-balance-helper'; const network = Network.GNOSIS_MAINNET; @@ -16,7 +15,8 @@ const network = Network.GNOSIS_MAINNET; export class GnosisCurveBalanceFetcher implements BalanceFetcher { constructor( @Inject(APP_TOOLKIT) private readonly appToolkit: IAppToolkit, - @Inject(CurveContractFactory) private readonly curveContractFactory: CurveContractFactory, + @Inject(CurveGaugeDefaultContractPositionBalanceHelper) + private readonly curveGaugeDefaultContractPositionBalanceHelper: CurveGaugeDefaultContractPositionBalanceHelper, ) {} private async getPoolTokenBalances(address: string) { @@ -28,50 +28,17 @@ export class GnosisCurveBalanceFetcher implements BalanceFetcher { }); } - private async getRewardsOnlyGaugeStakedBalances(address: string) { - return this.appToolkit.helpers.singleStakingContractPositionBalanceHelper.getBalances({ + private async getStakedBalances(address: string) { + return this.curveGaugeDefaultContractPositionBalanceHelper.getBalances({ address, - appId: CURVE_DEFINITION.id, - groupId: CURVE_DEFINITION.groups.farm.id, - network, - farmFilter: v => v.dataProps.implementation === 'rewards-only-gauge', - resolveContract: ({ address, network }) => this.curveContractFactory.curveRewardsOnlyGauge({ address, network }), - resolveStakedTokenBalance: ({ contract, address, multicall }) => multicall.wrap(contract).balanceOf(address), - resolveRewardTokenBalances: ({ contract, address, multicall, contractPosition }) => { - const rewardTokens = contractPosition.tokens.filter(isClaimable); - const wrappedContract = multicall.wrap(contract); - return Promise.all(rewardTokens.map(v => wrappedContract.claimable_reward_write(address, v.address))); - }, - }); - } - - private async getChildLiquidityGaugeStakedBalances(address: string) { - return this.appToolkit.helpers.singleStakingContractPositionBalanceHelper.getBalances({ - address, - appId: CURVE_DEFINITION.id, - groupId: CURVE_DEFINITION.groups.farm.id, network, - farmFilter: v => v.dataProps.implementation === 'child-liquidity-gauge', - resolveContract: ({ address, network }) => - this.curveContractFactory.curveChildLiquidityGauge({ address, network }), - resolveStakedTokenBalance: ({ contract, address, multicall }) => multicall.wrap(contract).balanceOf(address), - resolveRewardTokenBalances: async ({ contract, address, multicall, contractPosition }) => { - const rewardTokens = contractPosition.tokens.filter(isClaimable); - const otherRewardTokens = rewardTokens.filter(v => v.symbol !== 'CRV'); - - return Promise.all([ - multicall.wrap(contract).callStatic.claimable_tokens(address), - ...otherRewardTokens.map(v => multicall.wrap(contract).claimable_reward(address, v.address)), - ]); - }, }); } async getBalances(address: string) { - const [poolTokenBalances, rewardOnlyGaugeStakedBalances, childLiquidityGaugeStakedBalances] = await Promise.all([ + const [poolTokenBalances, stakedBalances] = await Promise.all([ this.getPoolTokenBalances(address), - this.getRewardsOnlyGaugeStakedBalances(address), - this.getChildLiquidityGaugeStakedBalances(address), + this.getStakedBalances(address), ]); return presentBalanceFetcherResponse([ @@ -81,7 +48,7 @@ export class GnosisCurveBalanceFetcher implements BalanceFetcher { }, { label: 'Staked', - assets: [...rewardOnlyGaugeStakedBalances, ...childLiquidityGaugeStakedBalances], + assets: stakedBalances, }, ]); } diff --git a/src/apps/curve/gnosis/curve.farm.contract-position-fetcher.ts b/src/apps/curve/gnosis/curve.farm.contract-position-fetcher.ts deleted file mode 100644 index 4d7db9d1a..000000000 --- a/src/apps/curve/gnosis/curve.farm.contract-position-fetcher.ts +++ /dev/null @@ -1,93 +0,0 @@ -import { Inject } from '@nestjs/common'; - -import { APP_TOOLKIT, IAppToolkit } from '~app-toolkit/app-toolkit.interface'; -import { Register } from '~app-toolkit/decorators'; -import { PositionFetcher } from '~position/position-fetcher.interface'; -import { ContractPosition } from '~position/position.interface'; -import { Network } from '~types/network.interface'; - -import { CurveChildLiquidityGauge, CurveContractFactory, CurveRewardsOnlyGauge } from '../contracts'; -import { CURVE_DEFINITION } from '../curve.definition'; -import { CurveChildLiquidityGaugeFactoryAddressHelper } from '../helpers/curve.child-liquidity-gauge-factory.address-helper'; -import { CurveChildLiquidityGaugeRewardTokenStrategy } from '../helpers/curve.child-liquidity-gauge.reward-token-strategy'; -import { CurveChildLiquidityGaugeRoiStrategy } from '../helpers/curve.child-liquidity-gauge.roi-strategy'; -import { CurveRewardsOnlyGaugeRewardTokenStrategy } from '../helpers/curve.rewards-only-gauge.reward-token-strategy'; -import { CurveRewardsOnlyGaugeRoiStrategy } from '../helpers/curve.rewards-only-gauge.roi-strategy'; - -import { CURVE_V1_POOL_DEFINITIONS } from './curve.pool.definitions'; - -const appId = CURVE_DEFINITION.id; -const groupId = CURVE_DEFINITION.groups.farm.id; -const network = Network.GNOSIS_MAINNET; - -@Register.ContractPositionFetcher({ appId, groupId, network }) -export class GnosisCurveFarmContractPositionFetcher implements PositionFetcher { - constructor( - @Inject(APP_TOOLKIT) private readonly appToolkit: IAppToolkit, - @Inject(CurveContractFactory) - private readonly curveContractFactory: CurveContractFactory, - @Inject(CurveRewardsOnlyGaugeRoiStrategy) - private readonly curveRewardsOnlyGaugeRoiStrategy: CurveRewardsOnlyGaugeRoiStrategy, - @Inject(CurveRewardsOnlyGaugeRewardTokenStrategy) - private readonly curveRewardsOnlyGaugeRewardTokenStrategy: CurveRewardsOnlyGaugeRewardTokenStrategy, - @Inject(CurveChildLiquidityGaugeFactoryAddressHelper) - private readonly childGaugeAddressHelper: CurveChildLiquidityGaugeFactoryAddressHelper, - @Inject(CurveChildLiquidityGaugeRoiStrategy) - private readonly childGaugeRoiStrategy: CurveChildLiquidityGaugeRoiStrategy, - @Inject(CurveChildLiquidityGaugeRewardTokenStrategy) - private readonly childGaugeRewardTokenStrategy: CurveChildLiquidityGaugeRewardTokenStrategy, - ) {} - - async getRewardsOnlyGaugePositions() { - const definitions = [CURVE_V1_POOL_DEFINITIONS].flat().filter(v => !!v.gaugeAddress); - - return this.appToolkit.helpers.singleStakingFarmContractPositionHelper.getContractPositions({ - network, - appId, - groupId, - dependencies: [{ appId: CURVE_DEFINITION.id, groupIds: [CURVE_DEFINITION.groups.pool.id], network }], - resolveImplementation: () => 'rewards-only-gauge', - resolveFarmAddresses: () => definitions.map(v => v.gaugeAddress!), - resolveFarmContract: ({ address, network }) => - this.curveContractFactory.curveRewardsOnlyGauge({ address, network }), - resolveStakedTokenAddress: ({ contract, multicall }) => multicall.wrap(contract).lp_token(), - resolveRewardTokenAddresses: this.curveRewardsOnlyGaugeRewardTokenStrategy.build(), - resolveRois: this.curveRewardsOnlyGaugeRoiStrategy.build({ tokenDefinitions: definitions }), - resolveIsActive: () => true, - }); - } - - async getChildLiquidityGaugePositions() { - return this.appToolkit.helpers.singleStakingFarmContractPositionHelper.getContractPositions( - { - network, - appId, - groupId, - dependencies: [{ appId: CURVE_DEFINITION.id, groupIds: [CURVE_DEFINITION.groups.pool.id], network }], - resolveImplementation: () => 'child-liquidity-gauge', - resolveFarmAddresses: () => - this.childGaugeAddressHelper.getGaugeAddresses({ - factoryAddress: '0xabc000d88f23bb45525e447528dbf656a9d55bf5', - network, - }), - resolveFarmContract: ({ address, network }) => - this.curveContractFactory.curveChildLiquidityGauge({ address, network }), - resolveStakedTokenAddress: ({ contract, multicall }) => multicall.wrap(contract).lp_token(), - resolveRewardTokenAddresses: this.childGaugeRewardTokenStrategy.build({ - crvTokenAddress: '0x712b3d230f3c1c19db860d80619288b1f0bdd0bd', - }), - resolveRois: this.childGaugeRoiStrategy.build(), - resolveIsActive: () => true, - }, - ); - } - - async getPositions() { - const [rewardOnlyGaugePositions, childLiquidityGaugePositions] = await Promise.all([ - this.getRewardsOnlyGaugePositions(), - this.getChildLiquidityGaugePositions(), - ]); - - return [...rewardOnlyGaugePositions, ...childLiquidityGaugePositions]; - } -} diff --git a/src/apps/curve/gnosis/curve.gauge.contract-position-fetcher.ts b/src/apps/curve/gnosis/curve.gauge.contract-position-fetcher.ts new file mode 100644 index 000000000..c2d66d98d --- /dev/null +++ b/src/apps/curve/gnosis/curve.gauge.contract-position-fetcher.ts @@ -0,0 +1,28 @@ +import { Inject } from '@nestjs/common'; + +import { Register } from '~app-toolkit/decorators'; +import { PositionFetcher } from '~position/position-fetcher.interface'; +import { ContractPosition } from '~position/position.interface'; +import { Network } from '~types/network.interface'; + +import { CURVE_DEFINITION } from '../curve.definition'; +import { CurveGaugeDefaultContractPositionHelper } from '../helpers/curve.gauge.default.contract-position-helper'; + +const appId = CURVE_DEFINITION.id; +const groupId = CURVE_DEFINITION.groups.gauge.id; +const network = Network.GNOSIS_MAINNET; + +@Register.ContractPositionFetcher({ appId, groupId, network }) +export class GnosisCurveGaugeContractPositionFetcher implements PositionFetcher { + constructor( + @Inject(CurveGaugeDefaultContractPositionHelper) + private readonly curveGaugeDefaultContractPositionHelper: CurveGaugeDefaultContractPositionHelper, + ) {} + + async getPositions() { + return this.curveGaugeDefaultContractPositionHelper.getPositions({ + network, + crvTokenAddress: '0x712b3d230f3c1c19db860d80619288b1f0bdd0bd', + }); + } +} diff --git a/src/apps/curve/gnosis/curve.pool.definitions.ts b/src/apps/curve/gnosis/curve.pool.definitions.ts deleted file mode 100644 index 90959ba03..000000000 --- a/src/apps/curve/gnosis/curve.pool.definitions.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { CurvePoolDefinition } from '../curve.types'; - -export const CURVE_V1_POOL_DEFINITIONS: CurvePoolDefinition[] = [ - { - queryKey: '3pool', - label: '3Pool', - swapAddress: '0x7f90122bf0700f9e7e1f688fe926940e8839f353', - tokenAddress: '0x1337bedc9d22ecbe766df105c9623922a27963ec', - gaugeAddress: '0x78cf256256c8089d68cde634cf7cdefb39286470', - streamAddress: '0x6c09f6727113543fd061a721da512b7efcdd0267', - }, -]; diff --git a/src/apps/curve/gnosis/curve.pool.token-fetcher.ts b/src/apps/curve/gnosis/curve.pool.token-fetcher.ts index 1f0395644..0102a71e2 100644 --- a/src/apps/curve/gnosis/curve.pool.token-fetcher.ts +++ b/src/apps/curve/gnosis/curve.pool.token-fetcher.ts @@ -6,9 +6,7 @@ import { AppTokenPosition } from '~position/position.interface'; import { Network } from '~types/network.interface'; import { CURVE_DEFINITION } from '../curve.definition'; -import { CurveV1PoolTokenHelper } from '../helpers/curve.v1-pool.token-helper'; - -import { CURVE_V1_POOL_DEFINITIONS } from './curve.pool.definitions'; +import { CurvePoolDefaultTokenHelper } from '../helpers/curve.pool.default.token-helper'; const appId = CURVE_DEFINITION.id; const groupId = CURVE_DEFINITION.groups.pool.id; @@ -17,21 +15,11 @@ const network = Network.GNOSIS_MAINNET; @Register.TokenPositionFetcher({ appId, groupId, network }) export class GnosisCurvePoolTokenFetcher implements PositionFetcher { constructor( - @Inject(CurveV1PoolTokenHelper) - private readonly curveV1PoolTokenHelper: CurveV1PoolTokenHelper, + @Inject(CurvePoolDefaultTokenHelper) + private readonly curvePoolDefaultTokenHelper: CurvePoolDefaultTokenHelper, ) {} async getPositions() { - const [v1Pools] = await Promise.all([ - this.curveV1PoolTokenHelper.getTokens({ - network, - appId, - groupId, - poolDefinitions: CURVE_V1_POOL_DEFINITIONS, - statsUrl: 'https://stats.curve.fi/raw-stats-xdai/apys.json', - }), - ]); - - return [v1Pools].flat(); + return this.curvePoolDefaultTokenHelper.getTokens({ network }); } } diff --git a/src/apps/curve/harmony/curve.balance-fetcher.ts b/src/apps/curve/harmony/curve.balance-fetcher.ts deleted file mode 100644 index d346b93e0..000000000 --- a/src/apps/curve/harmony/curve.balance-fetcher.ts +++ /dev/null @@ -1,88 +0,0 @@ -import { Inject } from '@nestjs/common'; - -import { APP_TOOLKIT, IAppToolkit } from '~app-toolkit/app-toolkit.interface'; -import { Register } from '~app-toolkit/decorators'; -import { presentBalanceFetcherResponse } from '~app-toolkit/helpers/presentation/balance-fetcher-response.present'; -import { BalanceFetcher } from '~balance/balance-fetcher.interface'; -import { isClaimable } from '~position/position.utils'; -import { Network } from '~types/network.interface'; - -import { CurveChildLiquidityGauge, CurveContractFactory, CurveRewardsOnlyGauge } from '../contracts'; -import { CURVE_DEFINITION } from '../curve.definition'; - -const network = Network.HARMONY_MAINNET; - -@Register.BalanceFetcher(CURVE_DEFINITION.id, Network.HARMONY_MAINNET) -export class HarmonyCurveBalanceFetcher implements BalanceFetcher { - constructor( - @Inject(APP_TOOLKIT) private readonly appToolkit: IAppToolkit, - @Inject(CurveContractFactory) private readonly curveContractFactory: CurveContractFactory, - ) {} - - private async getPoolTokenBalances(address: string) { - return this.appToolkit.helpers.tokenBalanceHelper.getTokenBalances({ - network, - appId: CURVE_DEFINITION.id, - groupId: CURVE_DEFINITION.groups.pool.id, - address, - }); - } - - private async getRewardsOnlyGaugeStakedBalances(address: string) { - return this.appToolkit.helpers.singleStakingContractPositionBalanceHelper.getBalances({ - address, - appId: CURVE_DEFINITION.id, - groupId: CURVE_DEFINITION.groups.farm.id, - network, - farmFilter: v => v.dataProps.implementation === 'rewards-only-gauge', - resolveContract: ({ address, network }) => this.curveContractFactory.curveRewardsOnlyGauge({ address, network }), - resolveStakedTokenBalance: ({ contract, address, multicall }) => multicall.wrap(contract).balanceOf(address), - resolveRewardTokenBalances: ({ contract, address, multicall, contractPosition }) => { - const rewardTokens = contractPosition.tokens.filter(isClaimable); - const wrappedContract = multicall.wrap(contract); - return Promise.all(rewardTokens.map(v => wrappedContract.claimable_reward_write(address, v.address))); - }, - }); - } - - private async getChildLiquidityGaugeStakedBalances(address: string) { - return this.appToolkit.helpers.singleStakingContractPositionBalanceHelper.getBalances({ - address, - appId: CURVE_DEFINITION.id, - groupId: CURVE_DEFINITION.groups.farm.id, - network, - farmFilter: v => v.dataProps.implementation === 'child-liquidity-gauge', - resolveContract: ({ address, network }) => - this.curveContractFactory.curveChildLiquidityGauge({ address, network }), - resolveStakedTokenBalance: ({ contract, address, multicall }) => multicall.wrap(contract).balanceOf(address), - resolveRewardTokenBalances: async ({ contract, address, multicall, contractPosition }) => { - const rewardTokens = contractPosition.tokens.filter(isClaimable); - const otherRewardTokens = rewardTokens.filter(v => v.symbol !== '1CRV'); - - return Promise.all([ - multicall.wrap(contract).callStatic.claimable_tokens(address), - ...otherRewardTokens.map(v => multicall.wrap(contract).claimable_reward(address, v.address)), - ]); - }, - }); - } - - async getBalances(address: string) { - const [poolTokenBalances, rewardOnlyGaugeStakedBalances, childLiquidityGaugeStakedBalances] = await Promise.all([ - this.getPoolTokenBalances(address), - this.getRewardsOnlyGaugeStakedBalances(address), - this.getChildLiquidityGaugeStakedBalances(address), - ]); - - return presentBalanceFetcherResponse([ - { - label: 'Pools', - assets: poolTokenBalances, - }, - { - label: 'Staked', - assets: [...rewardOnlyGaugeStakedBalances, ...childLiquidityGaugeStakedBalances], - }, - ]); - } -} diff --git a/src/apps/curve/harmony/curve.farm.contract-position-fetcher.ts b/src/apps/curve/harmony/curve.farm.contract-position-fetcher.ts deleted file mode 100644 index d69759536..000000000 --- a/src/apps/curve/harmony/curve.farm.contract-position-fetcher.ts +++ /dev/null @@ -1,93 +0,0 @@ -import { Inject } from '@nestjs/common'; - -import { APP_TOOLKIT, IAppToolkit } from '~app-toolkit/app-toolkit.interface'; -import { Register } from '~app-toolkit/decorators'; -import { PositionFetcher } from '~position/position-fetcher.interface'; -import { ContractPosition } from '~position/position.interface'; -import { Network } from '~types/network.interface'; - -import { CurveChildLiquidityGauge, CurveContractFactory, CurveRewardsOnlyGauge } from '../contracts'; -import { CURVE_DEFINITION } from '../curve.definition'; -import { CurveChildLiquidityGaugeFactoryAddressHelper } from '../helpers/curve.child-liquidity-gauge-factory.address-helper'; -import { CurveChildLiquidityGaugeRewardTokenStrategy } from '../helpers/curve.child-liquidity-gauge.reward-token-strategy'; -import { CurveChildLiquidityGaugeRoiStrategy } from '../helpers/curve.child-liquidity-gauge.roi-strategy'; -import { CurveRewardsOnlyGaugeRewardTokenStrategy } from '../helpers/curve.rewards-only-gauge.reward-token-strategy'; -import { CurveRewardsOnlyGaugeRoiStrategy } from '../helpers/curve.rewards-only-gauge.roi-strategy'; - -import { CURVE_V1_POOL_DEFINITIONS, CURVE_V2_POOL_DEFINITIONS } from './curve.pool.definitions'; - -const appId = CURVE_DEFINITION.id; -const groupId = CURVE_DEFINITION.groups.farm.id; -const network = Network.HARMONY_MAINNET; - -@Register.ContractPositionFetcher({ appId, groupId, network }) -export class HarmonyCurveFarmContractPositionFetcher implements PositionFetcher { - constructor( - @Inject(APP_TOOLKIT) private readonly appToolkit: IAppToolkit, - @Inject(CurveContractFactory) - private readonly curveContractFactory: CurveContractFactory, - @Inject(CurveRewardsOnlyGaugeRoiStrategy) - private readonly curveRewardsOnlyGaugeRoiStrategy: CurveRewardsOnlyGaugeRoiStrategy, - @Inject(CurveRewardsOnlyGaugeRewardTokenStrategy) - private readonly curveRewardsOnlyGaugeRewardTokenStrategy: CurveRewardsOnlyGaugeRewardTokenStrategy, - @Inject(CurveChildLiquidityGaugeFactoryAddressHelper) - private readonly childGaugeAddressHelper: CurveChildLiquidityGaugeFactoryAddressHelper, - @Inject(CurveChildLiquidityGaugeRoiStrategy) - private readonly childGaugeRoiStrategy: CurveChildLiquidityGaugeRoiStrategy, - @Inject(CurveChildLiquidityGaugeRewardTokenStrategy) - private readonly childGaugeRewardTokenStrategy: CurveChildLiquidityGaugeRewardTokenStrategy, - ) {} - - async getRewardsOnlyGaugePositions() { - const definitions = [CURVE_V1_POOL_DEFINITIONS, CURVE_V2_POOL_DEFINITIONS].flat().filter(v => !!v.gaugeAddress); - - return this.appToolkit.helpers.singleStakingFarmContractPositionHelper.getContractPositions({ - network, - appId, - groupId, - dependencies: [{ appId: CURVE_DEFINITION.id, groupIds: [CURVE_DEFINITION.groups.pool.id], network }], - resolveImplementation: () => 'rewards-only-gauge', - resolveFarmAddresses: () => definitions.map(v => v.gaugeAddress!), - resolveFarmContract: ({ address, network }) => - this.curveContractFactory.curveRewardsOnlyGauge({ address, network }), - resolveStakedTokenAddress: ({ contract, multicall }) => multicall.wrap(contract).lp_token(), - resolveRewardTokenAddresses: this.curveRewardsOnlyGaugeRewardTokenStrategy.build(), - resolveRois: this.curveRewardsOnlyGaugeRoiStrategy.build({ tokenDefinitions: definitions }), - resolveIsActive: () => true, - }); - } - - async getChildLiquidityGaugePositions() { - return this.appToolkit.helpers.singleStakingFarmContractPositionHelper.getContractPositions( - { - network, - appId, - groupId, - dependencies: [{ appId: CURVE_DEFINITION.id, groupIds: [CURVE_DEFINITION.groups.pool.id], network }], - resolveImplementation: () => 'child-liquidity-gauge', - resolveFarmAddresses: () => - this.childGaugeAddressHelper.getGaugeAddresses({ - factoryAddress: '0xabc000d88f23bb45525e447528dbf656a9d55bf5', - network, - }), - resolveFarmContract: ({ address, network }) => - this.curveContractFactory.curveChildLiquidityGauge({ address, network }), - resolveStakedTokenAddress: ({ contract, multicall }) => multicall.wrap(contract).lp_token(), - resolveRewardTokenAddresses: this.childGaugeRewardTokenStrategy.build({ - crvTokenAddress: '0x352cd428efd6f31b5cae636928b7b84149cf369f', - }), - resolveRois: this.childGaugeRoiStrategy.build(), - resolveIsActive: () => true, - }, - ); - } - - async getPositions() { - const [rewardOnlyGaugePositions, childLiquidityGaugePositions] = await Promise.all([ - this.getRewardsOnlyGaugePositions(), - this.getChildLiquidityGaugePositions(), - ]); - - return [...rewardOnlyGaugePositions, ...childLiquidityGaugePositions]; - } -} diff --git a/src/apps/curve/harmony/curve.pool.definitions.ts b/src/apps/curve/harmony/curve.pool.definitions.ts deleted file mode 100644 index f8957a25c..000000000 --- a/src/apps/curve/harmony/curve.pool.definitions.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { CurvePoolDefinition } from '../curve.types'; - -export const CURVE_V1_POOL_DEFINITIONS: CurvePoolDefinition[] = [ - { - queryKey: '3pool', - label: '3Pool', - swapAddress: '0xc5cfada84e902ad92dd40194f0883ad49639b023', - tokenAddress: '0xc5cfada84e902ad92dd40194f0883ad49639b023', - gaugeAddress: '0xbf7e49483881c76487b0989cd7d9a8239b20ca41', - streamAddress: '0xf2cde8c47c20acbffc598217ad5fe6db9e00b163', - }, -]; - -export const CURVE_V2_POOL_DEFINITIONS: CurvePoolDefinition[] = [ - { - queryKey: 'tricrypto', - label: 'TriCrypto', - swapAddress: '0x0e3dc2bcbfea84072a0c794b7653d3db364154e0', - tokenAddress: '0x99e8ed28b97c7f1878776ed94ffc77cabfb9b726', - gaugeAddress: '0xf98450b5602fa59cc66e1379dffb6fddc724cfc4', - streamAddress: '0x0b2c8fd6110f31f340d3c78a0aef6c568b60695b', - }, -]; diff --git a/src/apps/curve/harmony/curve.pool.token-fetcher.ts b/src/apps/curve/harmony/curve.pool.token-fetcher.ts deleted file mode 100644 index c90dce4d0..000000000 --- a/src/apps/curve/harmony/curve.pool.token-fetcher.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { Inject } from '@nestjs/common'; - -import { Register } from '~app-toolkit/decorators'; -import { PositionFetcher } from '~position/position-fetcher.interface'; -import { AppTokenPosition } from '~position/position.interface'; -import { Network } from '~types/network.interface'; - -import { CURVE_DEFINITION } from '../curve.definition'; -import { CurveV1PoolTokenHelper } from '../helpers/curve.v1-pool.token-helper'; -import { CurveV2PoolTokenHelper } from '../helpers/curve.v2-pool.token-helper'; - -import { CURVE_V1_POOL_DEFINITIONS, CURVE_V2_POOL_DEFINITIONS } from './curve.pool.definitions'; - -const appId = CURVE_DEFINITION.id; -const groupId = CURVE_DEFINITION.groups.pool.id; -const network = Network.HARMONY_MAINNET; - -@Register.TokenPositionFetcher({ appId, groupId, network }) -export class HarmonyCurvePoolTokenFetcher implements PositionFetcher { - constructor( - @Inject(CurveV1PoolTokenHelper) - private readonly curveV1PoolTokenHelper: CurveV1PoolTokenHelper, - @Inject(CurveV2PoolTokenHelper) - private readonly curveV2PoolTokenHelper: CurveV2PoolTokenHelper, - ) {} - - async getPositions() { - const [v1Pools] = await Promise.all([ - this.curveV1PoolTokenHelper.getTokens({ - network, - appId, - groupId, - poolDefinitions: CURVE_V1_POOL_DEFINITIONS, - statsUrl: 'https://stats.curve.fi/raw-stats-harmony/apys.json', - }), - ]); - - const [v2Pools] = await Promise.all([ - this.curveV2PoolTokenHelper.getTokens({ - network, - appId, - groupId, - poolDefinitions: CURVE_V2_POOL_DEFINITIONS, - baseCurveTokens: v1Pools, - statsUrl: 'https://stats.curve.fi/raw-stats-harmony/apys.json', - }), - ]); - - return [v1Pools, v2Pools].flat(); - } -} diff --git a/src/apps/curve/helpers/curve.api.client.ts b/src/apps/curve/helpers/curve.api.client.ts new file mode 100644 index 000000000..314c7fb40 --- /dev/null +++ b/src/apps/curve/helpers/curve.api.client.ts @@ -0,0 +1,52 @@ +import { Injectable } from '@nestjs/common'; +import axios, { Axios } from 'axios'; + +import { Network } from '~types/network.interface'; + +import { GetFactoryGaugesResponse, GetPoolApyDataResponse, TO_CURVE_NETWORK } from './curve.api.types'; +import { REWARDS_ONLY_GAUGES } from './curve.gauge.rewards-only'; + +@Injectable() +export class CurveApiClient { + private readonly axiosInstance: Axios; + + constructor() { + this.axiosInstance = axios.create({ baseURL: 'https://api.curve.fi/api' }); + } + + async getGauges(network: Network) { + const gauges = await this.axiosInstance.get(`/getGauges`).then(res => + Object.entries(res.data.data.gauges) + .filter(([id]) => { + const curveNetwork = this.toCurveNetwork(network); + if (network !== Network.ETHEREUM_MAINNET) return id.startsWith(curveNetwork); + const otherNetworks = Object.values(TO_CURVE_NETWORK).filter(v => v !== curveNetwork); + return !otherNetworks.some(v => id.startsWith(v)); + }) + .filter(([_, v]) => !v.is_killed) + .map(([_, v]) => ({ + swapAddress: v.swap.toLowerCase(), + gaugeAddress: v.gauge.toLowerCase(), + })) + .concat(...(REWARDS_ONLY_GAUGES[network] ?? [])), + ); + + return gauges; + } + + async getPoolApyData(network: Network) { + return this.axiosInstance + .get(`/getSubgraphData/${this.toCurveNetwork(network)}`) + .then(res => + res.data.data.poolList.map(v => ({ + swapAddress: v.address.toLowerCase(), + apy: Number(v.latestDailyApy), + volume: v.volumeUSD, + })), + ); + } + + private toCurveNetwork(network: Network) { + return TO_CURVE_NETWORK[network]; + } +} diff --git a/src/apps/curve/helpers/curve.api.types.ts b/src/apps/curve/helpers/curve.api.types.ts new file mode 100644 index 000000000..aeb7feb01 --- /dev/null +++ b/src/apps/curve/helpers/curve.api.types.ts @@ -0,0 +1,107 @@ +import { Network } from '~types/network.interface'; + +export const TO_CURVE_NETWORK = { + [Network.ETHEREUM_MAINNET]: 'ethereum', + [Network.ARBITRUM_MAINNET]: 'arbitrum', + [Network.AVALANCHE_MAINNET]: 'avalanche', + [Network.FANTOM_OPERA_MAINNET]: 'fantom', + [Network.GNOSIS_MAINNET]: 'xdai', + [Network.HARMONY_MAINNET]: 'harmony', + [Network.OPTIMISM_MAINNET]: 'optimism', + [Network.POLYGON_MAINNET]: 'polygon', +}; + +export type GaugeData = { + swap: string; + swap_token: string; + name: string; + gauge: string; + type: string; + gauge_controller: { + get_gauge_weight: string; + gauge_relative_weight: string; + inflation_rate: string; + }; + gauge_data: { + working_supply: string; + inflation_rate: string; + }; + swap_data: { + virtual_price: string; + }; +}; + +export type GetGaugesResponse = { + success: boolean; + data: { + gauges: Record; + generatedTimeMs: number; + }; +}; + +export type FactoryGaugeData = { + gauge: string; + swap_token: string; + name: string; + symbol: string; + hasCrv: boolean; + side_chain: boolean; + is_killed?: boolean; + type: string; + gauge_data: { + working_supply: string; + totalSupply: string; + gauge_relative_weight: string; + get_gauge_weight: string; + inflation_rate: number; + }; + swap_data: { + virtual_price: string; + }; + lpTokenPrice: number | null; + swap: string; + rewardsNeedNudging: boolean; + areCrvRewardsStuckInBridge: boolean; + extraRewards: { + gaugeAddress: string; + tokenAddress: string; + tokenPrice: number | null; + name: string; + symbol: string; + decimals: string; + apy: number; + metaData: { + rate: string; + periodFinish: number; + }; + }[]; +}; + +export type GetFactoryGaugesResponse = { + success: boolean; + data: { + gauges: FactoryGaugeData[]; + generatedTimeMs: number; + }; +}; + +export type PoolApyData = { + type: string; + address: string; + volumeUSD: number; + rawVolume: number; + latestDailyApy: number | string; + latestWeeklyApy: number | string; + virtualPrice: number; +}; + +export type GetPoolApyDataResponse = { + success: boolean; + data: { + poolList: PoolApyData[]; + totalVolume: number; + cryptoVolume: number; + cryptoShare: number; + generatedTimeMs: number; + }; +}; diff --git a/src/apps/curve/helpers/curve.api.volume-strategy.ts b/src/apps/curve/helpers/curve.api.volume-strategy.ts deleted file mode 100644 index c1967e9c2..000000000 --- a/src/apps/curve/helpers/curve.api.volume-strategy.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { Injectable } from '@nestjs/common'; -import Axios from 'axios'; - -import { CurvePoolDefinition } from '../curve.types'; - -type CurveApysResponse = { - apy: { - day: Record; - week: Record; - month: Record; - }; - volume: Record; -}; - -@Injectable() -export class CurveApiVolumeStrategy { - build({ statsUrl }: { statsUrl: string }) { - let promise: Promise | null = null; - let expiry: number | null = null; - - const fetchCachedVolumeData = async () => { - if (promise && expiry && Date.now() < expiry) return promise; - expiry = Date.now() + 30 * 1000; - promise = Axios.get(statsUrl).then(v => v.data); - return promise; - }; - - return async ({ definition, price }: { definition: CurvePoolDefinition; price: number }) => { - const data = await fetchCachedVolumeData(); - return price * Number(data.volume[definition.queryKey ?? ''] ?? 0); - }; - } -} diff --git a/src/apps/curve/helpers/curve.child-liquidity-gauge-factory.address-helper.ts b/src/apps/curve/helpers/curve.child-liquidity-gauge-factory.address-helper.ts deleted file mode 100644 index a4d41a793..000000000 --- a/src/apps/curve/helpers/curve.child-liquidity-gauge-factory.address-helper.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { Inject, Injectable } from '@nestjs/common'; -import { range } from 'lodash'; - -import { APP_TOOLKIT, IAppToolkit } from '~app-toolkit/app-toolkit.interface'; -import { ZERO_ADDRESS } from '~app-toolkit/constants/address'; -import { Network } from '~types/network.interface'; - -import { CurveContractFactory } from '../contracts'; - -type CurveFactoryGaugeAddressHelperParams = { - factoryAddress: string; - network: Network; -}; - -@Injectable() -export class CurveChildLiquidityGaugeFactoryAddressHelper { - constructor( - @Inject(APP_TOOLKIT) private readonly appToolkit: IAppToolkit, - @Inject(CurveContractFactory) private readonly curveContractFactory: CurveContractFactory, - ) {} - - async getGaugeAddresses({ factoryAddress, network }: CurveFactoryGaugeAddressHelperParams) { - const multicall = this.appToolkit.getMulticall(network); - const factoryContract = this.curveContractFactory.curveChildLiquidityGaugeFactory({ - address: factoryAddress, - network, - }); - - const count = await multicall.wrap(factoryContract).get_gauge_count(); - - const gaugeAddresses = await Promise.all( - range(0, Number(count)).map(async index => { - const gaugeAddressRaw = await multicall.wrap(factoryContract).get_gauge(index); - const gaugeAddress = gaugeAddressRaw.toLowerCase(); - return gaugeAddress; - }), - ); - - return gaugeAddresses.filter(v => v !== ZERO_ADDRESS); - } -} diff --git a/src/apps/curve/helpers/curve.child-liquidity-gauge.reward-token-strategy.ts b/src/apps/curve/helpers/curve.child-liquidity-gauge.reward-token-strategy.ts deleted file mode 100644 index 10875e3ea..000000000 --- a/src/apps/curve/helpers/curve.child-liquidity-gauge.reward-token-strategy.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { Injectable } from '@nestjs/common'; -import { range } from 'lodash'; - -import { SingleStakingFarmContractPositionHelperParams } from '~app-toolkit'; -import { ZERO_ADDRESS } from '~app-toolkit/constants/address'; - -import { CurveChildLiquidityGauge } from '../contracts'; - -type CurveChildLiquidityGaugeRewardTokenStrategyParams = { - crvTokenAddress: string; -}; - -@Injectable() -export class CurveChildLiquidityGaugeRewardTokenStrategy { - build({ - crvTokenAddress, - }: CurveChildLiquidityGaugeRewardTokenStrategyParams): SingleStakingFarmContractPositionHelperParams['resolveRewardTokenAddresses'] { - return async ({ contract, multicall }) => { - // Gauge V2 supports up to 4 different reward tokens - const MAX_REWARDS = 4; - const wrapped = multicall.wrap(contract); - const rewardTokenAddresses = await Promise.all(range(0, MAX_REWARDS).map(async i => wrapped.reward_tokens(i))); - return [crvTokenAddress, ...rewardTokenAddresses.map(v => v.toLowerCase()).filter(v => v !== ZERO_ADDRESS)]; - }; - } -} diff --git a/src/apps/curve/helpers/curve.crypto-factory-pool.token-helper.ts b/src/apps/curve/helpers/curve.crypto-factory-pool.token-helper.ts deleted file mode 100644 index e85338a50..000000000 --- a/src/apps/curve/helpers/curve.crypto-factory-pool.token-helper.ts +++ /dev/null @@ -1,85 +0,0 @@ -import { Inject, Injectable } from '@nestjs/common'; - -import { AppTokenPosition } from '~position/position.interface'; -import { AppGroupsDefinition } from '~position/position.service'; -import { Network } from '~types/network.interface'; - -import { CurveContractFactory, CurveFactoryPool } from '../contracts'; - -import { CurveCryptoFactoryPoolDefinitionStrategy } from './curve.crypto-factory.pool-definition-strategy'; -import { CurveLiquidityAndVirtualPriceStrategy } from './curve.liquidity-and-virtual.price-strategy'; -import { CurveOnChainCoinStrategy } from './curve.on-chain.coin-strategy'; -import { CurveOnChainReserveStrategy } from './curve.on-chain.reserve-strategy'; -import { CurveOnChainVolumeStrategy } from './curve.on-chain.volume-strategy'; -import { CurvePoolTokenHelper } from './curve.pool.token-helper'; - -type CurveFactoryPoolTokenHelperParams = { - factoryAddress: string; - network: Network; - appId: string; - groupId: string; - appTokenDependencies?: AppGroupsDefinition[]; - baseCurveTokens?: AppTokenPosition[]; - skipVolume?: boolean; -}; - -@Injectable() -export class CurveCryptoFactoryPoolTokenHelper { - constructor( - @Inject(CurvePoolTokenHelper) - private readonly curvePoolTokenHelper: CurvePoolTokenHelper, - @Inject(CurveOnChainCoinStrategy) - private readonly curveOnChainCoinStrategy: CurveOnChainCoinStrategy, - @Inject(CurveOnChainReserveStrategy) - private readonly curveOnChainReserveStrategy: CurveOnChainReserveStrategy, - @Inject(CurveCryptoFactoryPoolDefinitionStrategy) - private readonly curveCryptoFactoryPoolDefinitionStrategy: CurveCryptoFactoryPoolDefinitionStrategy, - @Inject(CurveLiquidityAndVirtualPriceStrategy) - private readonly curveLiquidityAndVirtualPriceStrategy: CurveLiquidityAndVirtualPriceStrategy, - @Inject(CurveContractFactory) - private readonly curveContractFactory: CurveContractFactory, - @Inject(CurveOnChainVolumeStrategy) - private readonly curveOnChainVolumeStrategy: CurveOnChainVolumeStrategy, - ) {} - - async getTokens({ - factoryAddress, - network, - appId, - groupId, - appTokenDependencies = [], - baseCurveTokens = [], - skipVolume = false, - }: CurveFactoryPoolTokenHelperParams) { - return this.curvePoolTokenHelper.getTokens({ - network, - appId, - groupId, - baseCurveTokens, - appTokenDependencies, - minLiquidity: 100_000, - resolvePoolDefinitions: this.curveCryptoFactoryPoolDefinitionStrategy.build({ address: factoryAddress }), - resolvePoolContract: ({ network, definition }) => - this.curveContractFactory.curveFactoryPool({ network, address: definition.swapAddress }), - resolvePoolTokenContract: ({ network, definition }) => - this.curveContractFactory.erc20({ network, address: definition.tokenAddress }), - resolvePoolCoinAddresses: this.curveOnChainCoinStrategy.build(), - resolvePoolReserves: this.curveOnChainReserveStrategy.build(), - resolvePoolVolume: skipVolume ? undefined : this.curveOnChainVolumeStrategy.build({ includeUnderlying: true }), - resolvePoolFee: ({ multicall, poolContract }) => - multicall - .wrap(poolContract) - .fee() - .catch(() => '0'), - resolvePoolTokenPrice: this.curveLiquidityAndVirtualPriceStrategy.build({ - resolveVirtualPrice: ({ multicall, poolContract }) => - multicall - .wrap(poolContract) - .get_virtual_price() - .catch(() => '0'), - }), - resolvePoolTokenSymbol: ({ multicall, poolTokenContract }) => multicall.wrap(poolTokenContract).symbol(), - resolvePoolTokenSupply: ({ multicall, poolTokenContract }) => multicall.wrap(poolTokenContract).totalSupply(), - }); - } -} diff --git a/src/apps/curve/helpers/curve.crypto-factory.pool-definition-strategy.ts b/src/apps/curve/helpers/curve.crypto-factory.pool-definition-strategy.ts deleted file mode 100644 index 962ffb817..000000000 --- a/src/apps/curve/helpers/curve.crypto-factory.pool-definition-strategy.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { Inject, Injectable } from '@nestjs/common'; -import { range } from 'lodash'; - -import { IMulticallWrapper } from '~multicall/multicall.interface'; -import { Network } from '~types/network.interface'; - -import { CurveContractFactory } from '../contracts'; - -@Injectable() -export class CurveCryptoFactoryPoolDefinitionStrategy { - constructor(@Inject(CurveContractFactory) private readonly curveContractFactory: CurveContractFactory) {} - - build({ address }: { address: string }) { - return async ({ network, multicall }: { network: Network; multicall: IMulticallWrapper }) => { - const factoryContract = this.curveContractFactory.curveFactory({ address, network }); // Supports V1 and V2 factory - const numPoolsRaw = await factoryContract.pool_count(); - const numPools = Number(numPoolsRaw); - - const definitions = await Promise.all( - range(0, numPools).map(async i => { - const swapAddressRaw = await multicall.wrap(factoryContract).pool_list(i); - const swapAddress = swapAddressRaw.toLowerCase(); - const swapContract = this.curveContractFactory.curveCryptoPool({ address: swapAddress, network }); - const tokenAddressRaw = await multicall.wrap(swapContract).token(); - const tokenAddress = tokenAddressRaw.toLowerCase(); - - return { swapAddress, tokenAddress }; - }), - ); - - return definitions; - }; - } -} diff --git a/src/apps/curve/helpers/curve.factory-gauge.address-helper.ts b/src/apps/curve/helpers/curve.factory-gauge.address-helper.ts deleted file mode 100644 index fa2b6e854..000000000 --- a/src/apps/curve/helpers/curve.factory-gauge.address-helper.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { Inject, Injectable } from '@nestjs/common'; - -import { APP_TOOLKIT, IAppToolkit } from '~app-toolkit/app-toolkit.interface'; -import { ZERO_ADDRESS } from '~app-toolkit/constants/address'; -import { AppTokenPosition } from '~position/position.interface'; -import { Network } from '~types/network.interface'; - -import { CurveContractFactory } from '../contracts'; -import { CURVE_DEFINITION } from '../curve.definition'; - -import { CurvePoolTokenDataProps } from './curve.pool.token-helper'; - -type CurveFactoryGaugeAddressHelperParams = { - factoryAddress: string; - network: Network; - getPoolAddress?: (poolToken: AppTokenPosition) => string; -}; - -@Injectable() -export class CurveFactoryGaugeAddressHelper { - constructor( - @Inject(APP_TOOLKIT) private readonly appToolkit: IAppToolkit, - @Inject(CurveContractFactory) private readonly curveContractFactory: CurveContractFactory, - ) {} - - async getGaugeAddresses({ factoryAddress, network, getPoolAddress }: CurveFactoryGaugeAddressHelperParams) { - const multicall = this.appToolkit.getMulticall(network); - const factoryContract = this.curveContractFactory.curveFactoryV2({ address: factoryAddress, network }); - const poolTokens = await this.appToolkit.getAppTokenPositions({ - appId: CURVE_DEFINITION.id, - groupIds: [CURVE_DEFINITION.groups.pool.id], - network, - }); - - const maybeGaugeAddresses = await Promise.all( - poolTokens.map(async poolToken => { - const tokenAddress = getPoolAddress ? getPoolAddress(poolToken) : poolToken.address; - const gaugeAddressRaw = await multicall.wrap(factoryContract).get_gauge(tokenAddress); - const gaugeAddress = gaugeAddressRaw.toLowerCase(); - return gaugeAddress; - }), - ); - - return maybeGaugeAddresses.filter(v => v !== ZERO_ADDRESS); - } -} diff --git a/src/apps/curve/helpers/curve.factory-pool.token-helper.ts b/src/apps/curve/helpers/curve.factory-pool.token-helper.ts deleted file mode 100644 index 724d2aca5..000000000 --- a/src/apps/curve/helpers/curve.factory-pool.token-helper.ts +++ /dev/null @@ -1,81 +0,0 @@ -import { Inject, Injectable } from '@nestjs/common'; - -import { AppTokenPosition } from '~position/position.interface'; -import { AppGroupsDefinition } from '~position/position.service'; -import { Network } from '~types/network.interface'; - -import { CurveContractFactory, CurveFactoryPool } from '../contracts'; - -import { CurveFactoryPoolDefinitionStrategy } from './curve.factory.pool-definition-strategy'; -import { CurveOnChainCoinStrategy } from './curve.on-chain.coin-strategy'; -import { CurveOnChainReserveStrategy } from './curve.on-chain.reserve-strategy'; -import { CurveOnChainVolumeStrategy } from './curve.on-chain.volume-strategy'; -import { CurvePoolTokenHelper } from './curve.pool.token-helper'; -import { CurveVirtualPriceStrategy } from './curve.virtual.price-strategy'; - -type CurveFactoryPoolTokenHelperParams = { - factoryAddress: string; - network: Network; - appId: string; - groupId: string; - appTokenDependencies?: AppGroupsDefinition[]; - baseCurveTokens?: AppTokenPosition[]; - skipVolume?: boolean; -}; - -@Injectable() -export class CurveFactoryPoolTokenHelper { - constructor( - @Inject(CurvePoolTokenHelper) - private readonly curvePoolTokenHelper: CurvePoolTokenHelper, - @Inject(CurveOnChainCoinStrategy) - private readonly curveOnChainCoinStrategy: CurveOnChainCoinStrategy, - @Inject(CurveOnChainReserveStrategy) - private readonly curveOnChainReserveStrategy: CurveOnChainReserveStrategy, - @Inject(CurveFactoryPoolDefinitionStrategy) - private readonly curveFactoryPoolDefinitionStrategy: CurveFactoryPoolDefinitionStrategy, - @Inject(CurveVirtualPriceStrategy) - private readonly curveVirtualPriceStrategy: CurveVirtualPriceStrategy, - @Inject(CurveContractFactory) - private readonly curveContractFactory: CurveContractFactory, - @Inject(CurveOnChainVolumeStrategy) - private readonly curveOnChainVolumeStrategy: CurveOnChainVolumeStrategy, - ) {} - - async getTokens({ - factoryAddress, - network, - appId, - groupId, - appTokenDependencies = [], - baseCurveTokens = [], - skipVolume = false, - }: CurveFactoryPoolTokenHelperParams) { - return this.curvePoolTokenHelper.getTokens({ - network, - appId, - groupId, - baseCurveTokens, - appTokenDependencies, - minLiquidity: 100_000, - resolvePoolDefinitions: this.curveFactoryPoolDefinitionStrategy.build({ address: factoryAddress }), - resolvePoolContract: ({ network, definition }) => - this.curveContractFactory.curveFactoryPool({ network, address: definition.swapAddress }), - resolvePoolTokenContract: ({ network, definition }) => - this.curveContractFactory.erc20({ network, address: definition.tokenAddress }), - resolvePoolCoinAddresses: this.curveOnChainCoinStrategy.build(), - resolvePoolReserves: this.curveOnChainReserveStrategy.build(), - resolvePoolVolume: skipVolume ? undefined : this.curveOnChainVolumeStrategy.build({ includeUnderlying: true }), - resolvePoolFee: ({ multicall, poolContract }) => multicall.wrap(poolContract).fee(), - resolvePoolTokenPrice: this.curveVirtualPriceStrategy.build({ - resolveVirtualPrice: ({ multicall, poolContract }) => - multicall - .wrap(poolContract) - .get_virtual_price() - .catch(() => '0'), - }), - resolvePoolTokenSymbol: ({ multicall, poolTokenContract }) => multicall.wrap(poolTokenContract).symbol(), - resolvePoolTokenSupply: ({ multicall, poolTokenContract }) => multicall.wrap(poolTokenContract).totalSupply(), - }); - } -} diff --git a/src/apps/curve/helpers/curve.factory.pool-definition-strategy.ts b/src/apps/curve/helpers/curve.factory.pool-definition-strategy.ts deleted file mode 100644 index 8fff45cd4..000000000 --- a/src/apps/curve/helpers/curve.factory.pool-definition-strategy.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { Inject, Injectable } from '@nestjs/common'; -import { range } from 'lodash'; - -import { IMulticallWrapper } from '~multicall/multicall.interface'; -import { Network } from '~types/network.interface'; - -import { CurveContractFactory } from '../contracts'; - -@Injectable() -export class CurveFactoryPoolDefinitionStrategy { - constructor(@Inject(CurveContractFactory) private readonly curveContractFactory: CurveContractFactory) {} - - build({ address }: { address: string }) { - return async ({ network, multicall }: { network: Network; multicall: IMulticallWrapper }) => { - const factoryContract = this.curveContractFactory.curveFactory({ address, network }); // Supports V1 and V2 factory - const numPoolsRaw = await factoryContract.pool_count(); - const numPools = Number(numPoolsRaw); - - const definitions = await Promise.all( - range(0, numPools).map(async i => { - const addressRaw = await multicall.wrap(factoryContract).pool_list(i); - const address = addressRaw.toLowerCase(); - return { swapAddress: address, tokenAddress: address }; - }), - ); - - return definitions; - }; - } -} diff --git a/src/apps/curve/helpers/curve.gauge.default.contract-position-balance-helper.ts b/src/apps/curve/helpers/curve.gauge.default.contract-position-balance-helper.ts new file mode 100644 index 000000000..ec42901ff --- /dev/null +++ b/src/apps/curve/helpers/curve.gauge.default.contract-position-balance-helper.ts @@ -0,0 +1,192 @@ +import { Inject, Injectable } from '@nestjs/common'; + +import { APP_TOOLKIT, IAppToolkit } from '~app-toolkit/app-toolkit.interface'; +import { isClaimable } from '~position/position.utils'; +import { Network } from '~types/network.interface'; + +import { + CurveChildLiquidityGauge, + CurveContractFactory, + CurveDoubleGauge, + CurveGauge, + CurveGaugeV2, + CurveNGauge, + CurveRewardsOnlyGauge, +} from '../contracts'; +import { CURVE_DEFINITION } from '../curve.definition'; +import { CurveGaugeType } from '../curve.types'; + +type CurveGaugeDefaultContractPositionBalanceHelperParams = { + address: string; + network: Network; +}; + +@Injectable() +export class CurveGaugeDefaultContractPositionBalanceHelper { + constructor( + @Inject(APP_TOOLKIT) private readonly appToolkit: IAppToolkit, + @Inject(CurveContractFactory) private readonly curveContractFactory: CurveContractFactory, + ) {} + + async getBalances(params: CurveGaugeDefaultContractPositionBalanceHelperParams) { + if (params.network !== Network.ETHEREUM_MAINNET) { + return Promise.all([ + this.getChildLiquidityGaugeContractPositionBalances(params), + this.getRewardOnlyGaugeContractPositionBalances(params), + ]).then(v => v.flat()); + } + + return Promise.all([ + this.getSingleGaugeContractPositionBalances(params), + this.getDoubleGaugeContractPositionBalances(params), + this.getNGaugeContractPositionBalances(params), + this.getGaugeV4ContractPositionBalances(params), + ]).then(v => v.flat()); + } + + private async getSingleGaugeContractPositionBalances({ + address, + network, + }: CurveGaugeDefaultContractPositionBalanceHelperParams) { + return this.appToolkit.helpers.singleStakingContractPositionBalanceHelper.getBalances({ + address, + network, + appId: CURVE_DEFINITION.id, + groupId: CURVE_DEFINITION.groups.gauge.id, + farmFilter: farm => farm.dataProps.implementation === CurveGaugeType.SINGLE, + resolveContract: ({ address, network }) => this.curveContractFactory.curveGauge({ address, network }), + resolveStakedTokenBalance: ({ contract, address, multicall }) => multicall.wrap(contract).balanceOf(address), + resolveRewardTokenBalances: ({ contract, address, multicall }) => + multicall.wrap(contract).claimable_tokens(address), + }); + } + + private async getDoubleGaugeContractPositionBalances({ + address, + network, + }: CurveGaugeDefaultContractPositionBalanceHelperParams) { + return this.appToolkit.helpers.singleStakingContractPositionBalanceHelper.getBalances({ + address, + network, + appId: CURVE_DEFINITION.id, + groupId: CURVE_DEFINITION.groups.gauge.id, + farmFilter: farm => farm.dataProps.implementation === CurveGaugeType.DOUBLE, + resolveContract: ({ address, network }) => this.curveContractFactory.curveDoubleGauge({ address, network }), + resolveStakedTokenBalance: ({ contract, address, multicall }) => multicall.wrap(contract).balanceOf(address), + resolveRewardTokenBalances: async ({ contract, address, multicall, contractPosition }) => { + const rewardTokens = contractPosition.tokens.filter(isClaimable); + const wrappedContract = multicall.wrap(contract); + const primaryRewardBalance = await wrappedContract.claimable_tokens(address); + const rewardBalances = [primaryRewardBalance.toString()]; + + if (rewardTokens.length > 1) { + const [secondaryRewardBalanceTotal, secondaryRewardBalanceClaimed] = await Promise.all([ + wrappedContract.claimable_reward(address), + wrappedContract.claimed_rewards_for(address), + ]); + + const secondaryRewardBalance = this.appToolkit + .getBigNumber(secondaryRewardBalanceTotal) + .minus(this.appToolkit.getBigNumber(secondaryRewardBalanceClaimed)) + .toFixed(0); + rewardBalances.push(secondaryRewardBalance); + } + + return rewardBalances; + }, + }); + } + + private async getNGaugeContractPositionBalances({ + address, + network, + }: CurveGaugeDefaultContractPositionBalanceHelperParams) { + return this.appToolkit.helpers.singleStakingContractPositionBalanceHelper.getBalances({ + address, + network, + appId: CURVE_DEFINITION.id, + groupId: CURVE_DEFINITION.groups.gauge.id, + farmFilter: farm => farm.dataProps.implementation === CurveGaugeType.N_GAUGE, + resolveContract: ({ address, network }) => this.curveContractFactory.curveNGauge({ address, network }), + resolveStakedTokenBalance: ({ contract, address, multicall }) => multicall.wrap(contract).balanceOf(address), + resolveRewardTokenBalances: async ({ contract, address, multicall, contractPosition }) => { + const rewardTokens = contractPosition.tokens.filter(isClaimable); + const wrappedContract = multicall.wrap(contract); + const primaryRewardBalance = await wrappedContract.claimable_tokens(address); + const rewardBalances = [primaryRewardBalance]; + + if (rewardTokens.length > 1) { + const secondaryRewardBalance = await wrappedContract.claimable_reward(address, rewardTokens[1].address); + rewardBalances.push(secondaryRewardBalance); + } + + return rewardBalances; + }, + }); + } + + private async getGaugeV4ContractPositionBalances({ + address, + network, + }: CurveGaugeDefaultContractPositionBalanceHelperParams) { + return this.appToolkit.helpers.singleStakingContractPositionBalanceHelper.getBalances({ + address, + network, + appId: CURVE_DEFINITION.id, + groupId: CURVE_DEFINITION.groups.gauge.id, + farmFilter: farm => farm.dataProps.implementation === CurveGaugeType.GAUGE_V4, + resolveContract: ({ address, network }) => this.curveContractFactory.curveGaugeV2({ address, network }), + resolveStakedTokenBalance: ({ contract, address, multicall }) => multicall.wrap(contract).balanceOf(address), + resolveRewardTokenBalances: ({ contract, address, multicall, contractPosition }) => { + const rewardTokens = contractPosition.tokens.filter(isClaimable); + const wrappedContract = multicall.wrap(contract); + return Promise.all(rewardTokens.map(v => wrappedContract.claimable_reward_write(address, v.address))); + }, + }); + } + + private async getChildLiquidityGaugeContractPositionBalances({ + address, + network, + }: CurveGaugeDefaultContractPositionBalanceHelperParams) { + return this.appToolkit.helpers.singleStakingContractPositionBalanceHelper.getBalances({ + address, + appId: CURVE_DEFINITION.id, + groupId: CURVE_DEFINITION.groups.gauge.id, + network, + farmFilter: v => v.dataProps.implementation === CurveGaugeType.CHILD, + resolveContract: ({ address, network }) => + this.curveContractFactory.curveChildLiquidityGauge({ address, network }), + resolveStakedTokenBalance: ({ contract, address, multicall }) => multicall.wrap(contract).balanceOf(address), + resolveRewardTokenBalances: async ({ contract, address, multicall, contractPosition }) => { + const rewardTokens = contractPosition.tokens.filter(isClaimable); + const otherRewardTokens = rewardTokens.filter(v => v.symbol !== 'CRV'); + + return Promise.all([ + multicall.wrap(contract).callStatic.claimable_tokens(address), + ...otherRewardTokens.map(v => multicall.wrap(contract).claimable_reward(address, v.address)), + ]); + }, + }); + } + + private async getRewardOnlyGaugeContractPositionBalances({ + address, + network, + }: CurveGaugeDefaultContractPositionBalanceHelperParams) { + return this.appToolkit.helpers.singleStakingContractPositionBalanceHelper.getBalances({ + address, + appId: CURVE_DEFINITION.id, + groupId: CURVE_DEFINITION.groups.gauge.id, + network, + farmFilter: v => v.dataProps.implementation === CurveGaugeType.REWARDS_ONLY, + resolveContract: ({ address, network }) => this.curveContractFactory.curveRewardsOnlyGauge({ address, network }), + resolveStakedTokenBalance: ({ contract, address, multicall }) => multicall.wrap(contract).balanceOf(address), + resolveRewardTokenBalances: ({ contract, address, multicall, contractPosition }) => { + const rewardTokens = contractPosition.tokens.filter(isClaimable); + const wrappedContract = multicall.wrap(contract); + return Promise.all(rewardTokens.map(v => wrappedContract.claimable_reward_write(address, v.address))); + }, + }); + } +} diff --git a/src/apps/curve/helpers/curve.gauge.default.contract-position-helper.ts b/src/apps/curve/helpers/curve.gauge.default.contract-position-helper.ts new file mode 100644 index 000000000..35c7919f9 --- /dev/null +++ b/src/apps/curve/helpers/curve.gauge.default.contract-position-helper.ts @@ -0,0 +1,249 @@ +import { Inject, Injectable } from '@nestjs/common'; +import { groupBy, range } from 'lodash'; + +import { APP_TOOLKIT, IAppToolkit } from '~app-toolkit/app-toolkit.interface'; +import { ZERO_ADDRESS } from '~app-toolkit/constants/address'; +import { Network } from '~types/network.interface'; + +import { + CurveChildLiquidityGauge, + CurveContractFactory, + CurveController, + CurveDoubleGauge, + CurveGauge, + CurveNGauge, + CurveRewardsOnlyGauge, +} from '../contracts'; +import { CURVE_DEFINITION } from '../curve.definition'; +import { CurveGaugeDefinition, CurveGaugeType } from '../curve.types'; + +import { CurveChildLiquidityGaugeRoiStrategy } from './curve.child-liquidity-gauge.roi-strategy'; +import { CurveGaugeIsActiveStrategy } from './curve.gauge.is-active-strategy'; +import { CurveGaugeRegistry } from './curve.gauge.registry'; +import { CurveGaugeRoiStrategy } from './curve.gauge.roi-strategy'; + +const CONTROLLER_ADDRESS = '0x2f50d538606fa9edd2b11e2446beb18c9d5846bb'; + +type CurveGaugeDefaultContractPositionHelperParams = { + network: Network; + crvTokenAddress: string; +}; + +type CurveGaugeDefaultContractPositionHelperParamsWithGauges = CurveGaugeDefaultContractPositionHelperParams & { + gaugeDefinitions: CurveGaugeDefinition[]; +}; + +@Injectable() +export class CurveGaugeDefaultContractPositionHelper { + constructor( + @Inject(APP_TOOLKIT) private readonly appToolkit: IAppToolkit, + @Inject(CurveContractFactory) + private readonly curveContractFactory: CurveContractFactory, + @Inject(CurveGaugeRoiStrategy) + private readonly curveGaugeRoiStrategy: CurveGaugeRoiStrategy, + @Inject(CurveGaugeIsActiveStrategy) + private readonly curveGaugeIsActiveStrategy: CurveGaugeIsActiveStrategy, + @Inject(CurveChildLiquidityGaugeRoiStrategy) + private readonly curveChildLiquidityGaugeRoiStrategy: CurveChildLiquidityGaugeRoiStrategy, + @Inject(CurveGaugeRegistry) + private readonly curveGaugeRegistry: CurveGaugeRegistry, + ) {} + + async getPositions(params: CurveGaugeDefaultContractPositionHelperParams) { + const gaugeDefinitions = await this.curveGaugeRegistry.getGaugeDefinitions(params.network); + const grouped = groupBy(gaugeDefinitions, v => v.gaugeType); + + if (params.network !== Network.ETHEREUM_MAINNET) { + return Promise.all([ + this.getChildLiquidityGaugeContractPositions({ ...params, gaugeDefinitions: grouped[CurveGaugeType.CHILD] }), + this.getRewardOnlyGaugeContractPositions({ ...params, gaugeDefinitions: grouped[CurveGaugeType.REWARDS_ONLY] }), + ]).then(v => v.flat()); + } + + return Promise.all([ + this.getSingleGaugeContractPositions({ ...params, gaugeDefinitions: grouped[CurveGaugeType.SINGLE] }), + this.getDoubleGaugeContractPositions({ ...params, gaugeDefinitions: grouped[CurveGaugeType.DOUBLE] }), + this.getNGaugeContractPositions({ ...params, gaugeDefinitions: grouped[CurveGaugeType.N_GAUGE] }), + this.getGaugeV4ContractPositions({ ...params, gaugeDefinitions: grouped[CurveGaugeType.GAUGE_V4] }), + ]).then(v => v.flat()); + } + + private async getSingleGaugeContractPositions({ + network, + crvTokenAddress, + gaugeDefinitions, + }: CurveGaugeDefaultContractPositionHelperParamsWithGauges) { + return this.appToolkit.helpers.singleStakingFarmContractPositionHelper.getContractPositions({ + network, + appId: CURVE_DEFINITION.id, + groupId: CURVE_DEFINITION.groups.gauge.id, + dependencies: [{ appId: CURVE_DEFINITION.id, groupIds: [CURVE_DEFINITION.groups.pool.id], network }], + resolveFarmAddresses: async () => gaugeDefinitions.map(v => v.gaugeAddress), + resolveImplementation: () => CurveGaugeType.SINGLE, + resolveFarmContract: ({ address, network }) => this.curveContractFactory.curveGauge({ address, network }), + resolveStakedTokenAddress: ({ contract, multicall }) => multicall.wrap(contract).lp_token(), + resolveRewardTokenAddresses: async () => [crvTokenAddress], + resolveIsActive: this.curveGaugeIsActiveStrategy.build({ + resolveInflationRate: ({ contract, multicall }) => multicall.wrap(contract).inflation_rate(), + }), + resolveRois: this.curveGaugeRoiStrategy.build({ + resolveControllerContract: ({ network }) => + this.curveContractFactory.curveController({ address: CONTROLLER_ADDRESS, network }), + resolveInflationRate: ({ gaugeContract, multicall }) => multicall.wrap(gaugeContract).inflation_rate(), + resolveWorkingSupply: ({ gaugeContract, multicall }) => multicall.wrap(gaugeContract).working_supply(), + resolveRelativeWeight: ({ controllerContract, multicall, address }) => + multicall.wrap(controllerContract)['gauge_relative_weight(address)'](address), + }), + }); + } + + private async getDoubleGaugeContractPositions({ + network, + crvTokenAddress, + gaugeDefinitions, + }: CurveGaugeDefaultContractPositionHelperParamsWithGauges) { + return this.appToolkit.helpers.singleStakingFarmContractPositionHelper.getContractPositions({ + network, + appId: CURVE_DEFINITION.id, + groupId: CURVE_DEFINITION.groups.gauge.id, + dependencies: [{ appId: CURVE_DEFINITION.id, groupIds: [CURVE_DEFINITION.groups.pool.id], network }], + resolveFarmAddresses: async () => gaugeDefinitions.map(v => v.gaugeAddress), + resolveImplementation: () => CurveGaugeType.DOUBLE, + resolveFarmContract: ({ address, network }) => this.curveContractFactory.curveDoubleGauge({ address, network }), + resolveStakedTokenAddress: ({ contract, multicall }) => multicall.wrap(contract).lp_token(), + resolveLiquidity: ({ contract, multicall }) => multicall.wrap(contract).totalSupply(), + resolveRewardTokenAddresses: async ({ contract, multicall }) => { + const bonusRewardTokenAddress = await multicall.wrap(contract).rewarded_token(); + return [crvTokenAddress, bonusRewardTokenAddress].filter(v => v !== ZERO_ADDRESS); + }, + resolveIsActive: this.curveGaugeIsActiveStrategy.build({ + resolveInflationRate: ({ contract, multicall }) => multicall.wrap(contract).inflation_rate(), + }), + resolveRois: this.curveGaugeRoiStrategy.build({ + resolveControllerContract: ({ network }) => + this.curveContractFactory.curveController({ address: CONTROLLER_ADDRESS, network }), + resolveInflationRate: ({ gaugeContract, multicall }) => multicall.wrap(gaugeContract).inflation_rate(), + resolveWorkingSupply: ({ gaugeContract, multicall }) => multicall.wrap(gaugeContract).working_supply(), + resolveRelativeWeight: ({ controllerContract, multicall, address }) => + multicall.wrap(controllerContract)['gauge_relative_weight(address)'](address), + }), + }); + } + + private async getNGaugeContractPositions({ + network, + crvTokenAddress, + gaugeDefinitions, + }: CurveGaugeDefaultContractPositionHelperParamsWithGauges) { + return this.appToolkit.helpers.singleStakingFarmContractPositionHelper.getContractPositions({ + network, + appId: CURVE_DEFINITION.id, + groupId: CURVE_DEFINITION.groups.gauge.id, + dependencies: [{ appId: CURVE_DEFINITION.id, groupIds: [CURVE_DEFINITION.groups.pool.id], network }], + resolveFarmAddresses: async () => gaugeDefinitions.map(v => v.gaugeAddress), + resolveImplementation: () => CurveGaugeType.N_GAUGE, + resolveLiquidity: ({ contract, multicall }) => multicall.wrap(contract).totalSupply(), + resolveFarmContract: ({ address, network }) => this.curveContractFactory.curveNGauge({ address, network }), + resolveStakedTokenAddress: ({ contract, multicall }) => multicall.wrap(contract).lp_token(), + resolveRewardTokenAddresses: async ({ contract, multicall }) => { + const bonusRewardTokenAddress = await multicall.wrap(contract).reward_tokens(0); + return [crvTokenAddress, bonusRewardTokenAddress].filter(v => v !== ZERO_ADDRESS); + }, + resolveIsActive: this.curveGaugeIsActiveStrategy.build({ + resolveInflationRate: ({ contract, multicall }) => multicall.wrap(contract).inflation_rate(), + }), + resolveRois: this.curveGaugeRoiStrategy.build({ + resolveControllerContract: ({ network }) => + this.curveContractFactory.curveController({ address: CONTROLLER_ADDRESS, network }), + resolveInflationRate: ({ gaugeContract, multicall }) => multicall.wrap(gaugeContract).inflation_rate(), + resolveWorkingSupply: ({ gaugeContract, multicall }) => multicall.wrap(gaugeContract).working_supply(), + resolveRelativeWeight: ({ controllerContract, multicall, address }) => + multicall.wrap(controllerContract)['gauge_relative_weight(address)'](address), + }), + }); + } + + private async getGaugeV4ContractPositions({ + network, + crvTokenAddress, + gaugeDefinitions, + }: CurveGaugeDefaultContractPositionHelperParamsWithGauges) { + return this.appToolkit.helpers.singleStakingFarmContractPositionHelper.getContractPositions({ + network, + appId: CURVE_DEFINITION.id, + groupId: CURVE_DEFINITION.groups.gauge.id, + dependencies: [{ appId: CURVE_DEFINITION.id, groupIds: [CURVE_DEFINITION.groups.pool.id], network }], + resolveFarmAddresses: async () => gaugeDefinitions.map(v => v.gaugeAddress), + resolveImplementation: () => CurveGaugeType.GAUGE_V4, + resolveLiquidity: ({ contract, multicall }) => multicall.wrap(contract).totalSupply(), + resolveFarmContract: ({ address, network }) => this.curveContractFactory.curveNGauge({ address, network }), + resolveStakedTokenAddress: ({ contract, multicall }) => multicall.wrap(contract).lp_token(), + resolveRewardTokenAddresses: async ({ contract, multicall }) => { + const bonusRewardTokenAddress = await multicall.wrap(contract).reward_tokens(0); + return [crvTokenAddress, bonusRewardTokenAddress].filter(v => v !== ZERO_ADDRESS); + }, + resolveIsActive: this.curveGaugeIsActiveStrategy.build({ + resolveInflationRate: ({ contract, multicall }) => multicall.wrap(contract).inflation_rate(), + }), + resolveRois: this.curveGaugeRoiStrategy.build({ + resolveControllerContract: ({ network }) => + this.curveContractFactory.curveController({ address: CONTROLLER_ADDRESS, network }), + resolveInflationRate: ({ gaugeContract, multicall }) => multicall.wrap(gaugeContract).inflation_rate(), + resolveWorkingSupply: ({ gaugeContract, multicall }) => multicall.wrap(gaugeContract).working_supply(), + resolveRelativeWeight: ({ controllerContract, multicall, address }) => + multicall.wrap(controllerContract)['gauge_relative_weight(address)'](address), + }), + }); + } + + private async getChildLiquidityGaugeContractPositions({ + network, + crvTokenAddress, + gaugeDefinitions, + }: CurveGaugeDefaultContractPositionHelperParamsWithGauges) { + return this.appToolkit.helpers.singleStakingFarmContractPositionHelper.getContractPositions( + { + network, + appId: CURVE_DEFINITION.id, + groupId: CURVE_DEFINITION.groups.gauge.id, + dependencies: [{ appId: CURVE_DEFINITION.id, groupIds: [CURVE_DEFINITION.groups.pool.id], network }], + resolveFarmAddresses: async () => gaugeDefinitions.map(v => v.gaugeAddress), + resolveImplementation: () => CurveGaugeType.CHILD, + resolveFarmContract: ({ address, network }) => + this.curveContractFactory.curveChildLiquidityGauge({ address, network }), + resolveStakedTokenAddress: ({ contract, multicall }) => multicall.wrap(contract).lp_token(), + resolveRewardTokenAddresses: async ({ contract, multicall }) => { + const wrapped = multicall.wrap(contract); + const rewardTokenAddresses = await Promise.all(range(0, 4).map(async i => wrapped.reward_tokens(i))); + return [crvTokenAddress, ...rewardTokenAddresses.map(v => v.toLowerCase()).filter(v => v !== ZERO_ADDRESS)]; + }, + resolveRois: this.curveChildLiquidityGaugeRoiStrategy.build(), + resolveIsActive: () => true, + }, + ); + } + + private async getRewardOnlyGaugeContractPositions({ + network, + gaugeDefinitions, + }: CurveGaugeDefaultContractPositionHelperParamsWithGauges) { + return this.appToolkit.helpers.singleStakingFarmContractPositionHelper.getContractPositions({ + network, + appId: CURVE_DEFINITION.id, + groupId: CURVE_DEFINITION.groups.gauge.id, + dependencies: [{ appId: CURVE_DEFINITION.id, groupIds: [CURVE_DEFINITION.groups.pool.id], network }], + resolveImplementation: () => CurveGaugeType.REWARDS_ONLY, + resolveFarmAddresses: async () => gaugeDefinitions.map(v => v.gaugeAddress), + resolveFarmContract: ({ address, network }) => + this.curveContractFactory.curveRewardsOnlyGauge({ address, network }), + resolveStakedTokenAddress: ({ contract, multicall }) => multicall.wrap(contract).lp_token(), + resolveRewardTokenAddresses: async ({ contract, multicall }) => { + const wrapped = multicall.wrap(contract); + const rewardTokenAddresses = await Promise.all(range(0, 4).map(async i => wrapped.reward_tokens(i))); + return rewardTokenAddresses.map(v => v.toLowerCase()).filter(v => v !== ZERO_ADDRESS); + }, + resolveRois: () => ({ dailyROI: 0, weeklyROI: 0, yearlyROI: 0 }), + resolveIsActive: () => false, + }); + } +} diff --git a/src/apps/curve/helpers/curve.gauge.registry.ts b/src/apps/curve/helpers/curve.gauge.registry.ts new file mode 100644 index 000000000..e66265b9b --- /dev/null +++ b/src/apps/curve/helpers/curve.gauge.registry.ts @@ -0,0 +1,66 @@ +import { Inject, Injectable } from '@nestjs/common'; +import { ethers } from 'ethers'; +import moment from 'moment'; + +import { APP_TOOLKIT, IAppToolkit } from '~app-toolkit/app-toolkit.interface'; +import { CURVE_DEFINITION } from '~apps/curve/curve.definition'; +import { Cache } from '~cache/cache.decorator'; +import { Network } from '~types/network.interface'; + +import { CurveGaugeDefinition, CurveGaugeType } from '../curve.types'; + +import { CurveApiClient } from './curve.api.client'; + +@Injectable() +export class CurveGaugeRegistry { + constructor( + @Inject(APP_TOOLKIT) private readonly appToolkit: IAppToolkit, + @Inject(CurveApiClient) private readonly curveApiClient: CurveApiClient, + ) {} + + @Cache({ + instance: 'business', + key: (network: Network) => `studio:${CURVE_DEFINITION.id}:${network}:gauge-definitions:0`, + ttl: moment.duration(60, 'minutes').asSeconds(), + }) + async getGaugeDefinitions(network: Network): Promise { + const gauges = await this.getCachedGauges(network); + + const gaugesWithTypes = Promise.all( + gauges.map(async gauge => ({ ...gauge, gaugeType: await this.resolveGaugeType(gauge.gaugeAddress, network) })), + ); + + return gaugesWithTypes; + } + + private async resolveGaugeType(gaugeAddress: string, network: Network) { + const provider = this.appToolkit.getNetworkProvider(network); + let bytecode = await provider.getCode(gaugeAddress); + const minimalProxyMatch = /0x363d3d373d3d3d363d73(.*)5af43d82803e903d91602b57fd5bf3/.exec(bytecode); + if (minimalProxyMatch) bytecode = await provider.getCode(`0x${minimalProxyMatch[1]}`); + + const doubleGaugeMethod = ethers.utils.id('rewarded_token()').slice(2, 10); + const nGaugeMethod = ethers.utils.id('reward_tokens(uint256)').slice(2, 10); + const childGaugeMethod = ethers.utils.id('reward_data(address)').slice(2, 10); + const gaugeV4Method = ethers.utils.id('claimable_reward_write(address,address)').slice(2, 10); + + if (network !== Network.ETHEREUM_MAINNET) { + if (bytecode.includes(childGaugeMethod)) return CurveGaugeType.CHILD; + return CurveGaugeType.REWARDS_ONLY; + } + + if (bytecode.includes(gaugeV4Method)) return CurveGaugeType.GAUGE_V4; + if (bytecode.includes(nGaugeMethod)) return CurveGaugeType.N_GAUGE; + if (bytecode.includes(doubleGaugeMethod)) return CurveGaugeType.DOUBLE; + return CurveGaugeType.SINGLE; + } + + @Cache({ + instance: 'business', + key: (network: Network) => `studio:${CURVE_DEFINITION.id}:${network}:cached-gauges:0`, + ttl: moment.duration(5, 'minutes').asSeconds(), + }) + async getCachedGauges(network: Network) { + return this.curveApiClient.getGauges(network); + } +} diff --git a/src/apps/curve/helpers/curve.gauge.rewards-only.ts b/src/apps/curve/helpers/curve.gauge.rewards-only.ts new file mode 100644 index 000000000..6cfbf88fb --- /dev/null +++ b/src/apps/curve/helpers/curve.gauge.rewards-only.ts @@ -0,0 +1,122 @@ +import { Network } from '~types/network.interface'; + +export const REWARDS_ONLY_GAUGES: Partial> = { + [Network.ARBITRUM_MAINNET]: [ + { + swapAddress: '0x7f90122bf0700f9e7e1f688fe926940e8839f353', + gaugeAddress: '0xbf7e49483881c76487b0989cd7d9a8239b20ca41', + }, + { + swapAddress: '0x3e01dd8a5e1fb3481f0f589056b428fc308af0fb', + gaugeAddress: '0xc2b1df84112619d190193e48148000e3990bf627', + }, + { + swapAddress: '0x960ea3e3c7fb317332d990873d354e18d7645590', + gaugeAddress: '0x97e2768e8e73511ca874545dc5ff8067eb19b787', + }, + { + swapAddress: '0xa827a652ead76c6b0b3d19dba05452e06e25c27e', + gaugeAddress: '0x37c7ef6b0e23c9bd9b620a6dabbfec13ce30d824', + }, + ], + [Network.AVALANCHE_MAINNET]: [ + { + swapAddress: '0x7f90122bf0700f9e7e1f688fe926940e8839f353', + gaugeAddress: '0x5b5cfe992adac0c9d48e05854b2d91c73a003858', + }, + { + swapAddress: '0x16a7da911a4dd1d83f3ff066fe28f3c792c50d90', + gaugeAddress: '0x0f9cb53ebe405d49a0bbdbd291a65ff571bc83e1', + }, + { + swapAddress: '0xb755b949c126c04e0348dd881a5cf55d424742b2', + gaugeAddress: '0x445fe580ef8d70ff569ab36e80c647af338db351', + }, + ], + [Network.FANTOM_OPERA_MAINNET]: [ + { + swapAddress: '0x27e611fd27b276acbd5ffd632e5eaebec9761e40', + gaugeAddress: '0x8866414733f22295b7563f9c5299715d2d76caf4', + }, + { + swapAddress: '0x3ef6a01a0f81d6046290f3e2a8c5b843e738e604', + gaugeAddress: '0xbdff0c27dd073c119ebcb1299a68a6a92ae607f0', + }, + { + swapAddress: '0x0fa949783947bf6c1b171db13aeacbb488845b3f', + gaugeAddress: '0xd4f94d0aaa640bbb72b5eec2d85f6d114d81a88e', + }, + { + swapAddress: '0x4fc8d635c3cb1d0aa123859e2b2587d0ff2707b1', + gaugeAddress: '0xdee85272eae1ab4afbc6433f4d819babc9c7045a', + }, + { + swapAddress: '0x27e611fd27b276acbd5ffd632e5eaebec9761e40', + gaugeAddress: '0x8866414733f22295b7563f9c5299715d2d76caf4', + }, + { + swapAddress: '0x3ef6a01a0f81d6046290f3e2a8c5b843e738e604', + gaugeAddress: '0xbdff0c27dd073c119ebcb1299a68a6a92ae607f0', + }, + { + swapAddress: '0x0fa949783947bf6c1b171db13aeacbb488845b3f', + gaugeAddress: '0xd4f94d0aaa640bbb72b5eec2d85f6d114d81a88e', + }, + { + swapAddress: '0x4fc8d635c3cb1d0aa123859e2b2587d0ff2707b1', + gaugeAddress: '0xdee85272eae1ab4afbc6433f4d819babc9c7045a', + }, + { + swapAddress: '0x3a1659ddcf2339be3aea159ca010979fb49155ff', + gaugeAddress: '0x00702bbdead24c40647f235f15971db0867f6bdb', + }, + ], + [Network.GNOSIS_MAINNET]: [ + { + swapAddress: '0x7f90122bf0700f9e7e1f688fe926940e8839f353', + gaugeAddress: '0x78cf256256c8089d68cde634cf7cdefb39286470', + }, + ], + [Network.HARMONY_MAINNET]: [ + { + swapAddress: '0xc5cfada84e902ad92dd40194f0883ad49639b023', + gaugeAddress: '0xbf7e49483881c76487b0989cd7d9a8239b20ca41', + }, + { + swapAddress: '0x0e3dc2bcbfea84072a0c794b7653d3db364154e0', + gaugeAddress: '0xf98450b5602fa59cc66e1379dffb6fddc724cfc4', + }, + ], + [Network.OPTIMISM_MAINNET]: [ + { + swapAddress: '0x1337bedc9d22ecbe766df105c9623922a27963ec', + gaugeAddress: '0x7f90122bf0700f9e7e1f688fe926940e8839f353', + }, + ], + [Network.POLYGON_MAINNET]: [ + { + swapAddress: '0x445fe580ef8d70ff569ab36e80c647af338db351', + gaugeAddress: '0x19793b454d3afc7b454f206ffe95ade26ca6912c', + }, + { + swapAddress: '0xc2d95eef97ec6c17551d45e77b590dc1f9117c67', + gaugeAddress: '0xffbacce0cc7c19d46132f1258fc16cf6871d153c', + }, + { + swapAddress: '0xb446bf7b8d6d4276d0c75ec0e3ee8dd7fe15783a', + gaugeAddress: '0x40c0e9376468b4f257d15f8c47e5d0c646c28880', + }, + { + swapAddress: '0x751b1e21756bdbc307cbcc5085c042a0e9aaef36', + gaugeAddress: '0xb0a366b987d77b5ed5803cbd95c80bb6deab48c0', + }, + { + swapAddress: '0x92577943c7ac4accb35288ab2cc84d75fec330af', + gaugeAddress: '0x9bd996db02b3f271c6533235d452a56bc2cd195a', + }, + { + swapAddress: '0x92215849c439e1f8612b6646060b4e3e5ef822cc', + gaugeAddress: '0x3b6b158a76fd8ccc297538f454ce7b4787778c7c', + }, + ], +}; diff --git a/src/apps/curve/helpers/curve.liquidity-and-virtual.price-strategy.ts b/src/apps/curve/helpers/curve.liquidity-and-virtual.price-strategy.ts deleted file mode 100644 index 484c3957f..000000000 --- a/src/apps/curve/helpers/curve.liquidity-and-virtual.price-strategy.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { Injectable } from '@nestjs/common'; -import { BigNumberish } from 'ethers'; - -import { IMulticallWrapper } from '~multicall/multicall.interface'; -import { Token } from '~position/position.interface'; - -@Injectable() -export class CurveLiquidityAndVirtualPriceStrategy { - build({ - resolveVirtualPrice, - }: { - resolveVirtualPrice: (opts: { multicall: IMulticallWrapper; poolContract: T }) => Promise; - }) { - return async ({ - tokens, - reserves, - supply, - multicall, - poolContract, - }: { - tokens: Token[]; - reserves: number[]; - supply: number; - multicall: IMulticallWrapper; - poolContract: T; - }) => { - const virtualPriceRaw = await resolveVirtualPrice({ multicall, poolContract }); - const virtualPrice = Number(virtualPriceRaw) / 10 ** 18; - const reservesUSD = tokens.map((t, i) => reserves[i] * t.price); - const liquidity = reservesUSD.reduce((total, r) => total + r, 0); - return virtualPrice > 0 ? virtualPrice * (liquidity / supply) : liquidity / supply; - }; - } -} diff --git a/src/apps/curve/helpers/curve.liquidity.price-strategy.ts b/src/apps/curve/helpers/curve.liquidity.price-strategy.ts deleted file mode 100644 index 18b707b45..000000000 --- a/src/apps/curve/helpers/curve.liquidity.price-strategy.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { Injectable } from '@nestjs/common'; - -import { Token } from '~position/position.interface'; - -@Injectable() -export class CurveLiquidityPriceStrategy { - build() { - return async ({ tokens, reserves, supply }: { tokens: Token[]; reserves: number[]; supply: number }) => { - const reservesUSD = tokens.map((t, i) => reserves[i] * t.price); - const liquidity = reservesUSD.reduce((total, r) => total + r, 0); - return liquidity / supply; - }; - } -} diff --git a/src/apps/curve/helpers/curve.on-chain.coin-strategy.ts b/src/apps/curve/helpers/curve.on-chain.coin-strategy.ts deleted file mode 100644 index 868eb50ca..000000000 --- a/src/apps/curve/helpers/curve.on-chain.coin-strategy.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { Injectable } from '@nestjs/common'; -import { compact } from 'lodash'; - -import { IMulticallWrapper } from '~multicall/multicall.interface'; - -import { CurveFactoryPool, CurveV1Pool, CurveV1PoolLegacy, CurveV2Pool } from '../contracts'; - -@Injectable() -export class CurveOnChainCoinStrategy { - build() { - return async ({ - poolContract, - multicall, - }: { - poolContract: CurveV1Pool | CurveV1PoolLegacy | CurveV2Pool | CurveFactoryPool; - multicall: IMulticallWrapper; - }) => { - const tokenAddresses = await Promise.all([ - multicall - .wrap(poolContract) - .coins(0) - .catch(() => null), - multicall - .wrap(poolContract) - .coins(1) - .catch(() => null), - multicall - .wrap(poolContract) - .coins(2) - .catch(() => null), - multicall - .wrap(poolContract) - .coins(3) - .catch(() => null), - ]); - - return compact(tokenAddresses).map(v => v.toLowerCase()); - }; - } -} diff --git a/src/apps/curve/helpers/curve.on-chain.reserve-strategy.ts b/src/apps/curve/helpers/curve.on-chain.reserve-strategy.ts deleted file mode 100644 index 03e9acfcd..000000000 --- a/src/apps/curve/helpers/curve.on-chain.reserve-strategy.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { Injectable } from '@nestjs/common'; -import { compact } from 'lodash'; - -import { IMulticallWrapper } from '~multicall/multicall.interface'; - -import { CurveFactoryPool, CurveV1Pool, CurveV1PoolLegacy, CurveV2Pool } from '../contracts'; - -@Injectable() -export class CurveOnChainReserveStrategy { - build() { - return async ({ - poolContract, - multicall, - }: { - poolContract: CurveV1Pool | CurveV1PoolLegacy | CurveV2Pool | CurveFactoryPool; - multicall: IMulticallWrapper; - }) => { - const tokenAddresses = await Promise.all([ - multicall - .wrap(poolContract) - .balances(0) - .then(v => v.toString()) - .catch(() => null), - multicall - .wrap(poolContract) - .balances(1) - .then(v => v.toString()) - .catch(() => null), - multicall - .wrap(poolContract) - .balances(2) - .then(v => v.toString()) - .catch(() => null), - multicall - .wrap(poolContract) - .balances(3) - .then(v => v.toString()) - .catch(() => null), - ]); - - return compact(tokenAddresses); - }; - } -} diff --git a/src/apps/curve/helpers/curve.on-chain.volume-strategy.ts b/src/apps/curve/helpers/curve.on-chain.volume-strategy.ts deleted file mode 100644 index 0dac3ef24..000000000 --- a/src/apps/curve/helpers/curve.on-chain.volume-strategy.ts +++ /dev/null @@ -1,95 +0,0 @@ -import { Injectable } from '@nestjs/common'; -import { gql } from 'graphql-request'; -import { request } from 'graphql-request'; -import { sumBy } from 'lodash'; -import moment from 'moment'; - -import { Cache } from '~cache/cache.decorator'; -import { AppTokenPosition, Token } from '~position/position.interface'; - -import { CurveFactoryPool } from '../contracts'; - -type GetBlockResponse = { - blocks: { - id: string; - number: string; - timestamp: string; - }[]; -}; - -@Injectable() -export class CurveOnChainVolumeStrategy { - @Cache({ - key: daysAgo => `curve:block-from-days-ago:${daysAgo}`, - ttl: 60, - }) - async getBlockFromDaysAgo(daysAgo: number): Promise { - const { - blocks: [{ number: block }], - } = await request( - 'https://api.thegraph.com/subgraphs/name/blocklytics/ethereum-blocks', - gql` - query getBlock($timestamp: Int) { - blocks(first: 1, orderBy: timestamp, orderDirection: asc, where: { timestamp_gt: $timestamp }) { - id - number - timestamp - } - } - `, - { timestamp: moment.utc().subtract(daysAgo, 'day').unix() }, - { Accept: 'api_version=2' }, - ); - - return Number(block); - } - - build({ includeUnderlying }: { includeUnderlying: boolean }) { - return async ({ poolContract, tokens }: { poolContract: CurveFactoryPool; tokens: Token[] }) => { - const fromBlock = await this.getBlockFromDaysAgo(1); - - const tokenExchangeFilter = poolContract.filters.TokenExchange(null, null, null, null, null); - - const tokenExchangeEvents = await poolContract.queryFilter(tokenExchangeFilter, fromBlock, 'latest'); - - let volume = sumBy(tokenExchangeEvents, event => { - const toTokenIndex = Number(event.args.bought_id); - const toTokenMatch = tokens[toTokenIndex]; - if (!toTokenMatch) return 0; - - const toTokenAmountRaw = event.args.tokens_bought; - const volumeOfEvent = (Number(toTokenAmountRaw) / 10 ** toTokenMatch.decimals) * toTokenMatch.price; - return volumeOfEvent; - }); - - if (includeUnderlying) { - const tokenExchangeUnderlyingFilter = poolContract.filters.TokenExchangeUnderlying( - null, - null, - null, - null, - null, - ); - - const tokenExchangeUnderlyingEvents = await poolContract.queryFilter( - tokenExchangeUnderlyingFilter, - fromBlock, - 'latest', - ); - - volume += sumBy(tokenExchangeUnderlyingEvents, event => { - const toTokenIndex = Number(event.args.bought_id); - const toTokenMatch = - toTokenIndex === 0 ? tokens[0] : (tokens[1] as AppTokenPosition).tokens[toTokenIndex - 1]; - if (!toTokenMatch) return 0; - - const toTokenAmountRaw = event.args.tokens_bought; - const volumeOfEvent = (Number(toTokenAmountRaw) / 10 ** toTokenMatch.decimals) * toTokenMatch.price; - return volumeOfEvent; - }); - } - - return volume; - }; - } -} diff --git a/src/apps/curve/helpers/curve.pool.default.token-helper.ts b/src/apps/curve/helpers/curve.pool.default.token-helper.ts new file mode 100644 index 000000000..c9be85fa7 --- /dev/null +++ b/src/apps/curve/helpers/curve.pool.default.token-helper.ts @@ -0,0 +1,54 @@ +import { Inject, Injectable } from '@nestjs/common'; + +import { CurvePool } from '~apps/curve/contracts/ethers/CurvePool'; +import { AppGroupsDefinition } from '~position/position.service'; +import { Network } from '~types/network.interface'; + +import { CurveContractFactory } from '../contracts'; +import { CURVE_DEFINITION } from '../curve.definition'; + +import { CurvePoolRegistry } from './curve.pool.registry'; +import { CurvePoolTokenHelper } from './curve.pool.token-helper'; +import { CurvePoolVirtualPriceStrategy } from './curve.pool.virtual.price-strategy'; + +type CurvePoolDefaultTokenHelperParams = { + network: Network; + dependencies?: AppGroupsDefinition[]; +}; + +@Injectable() +export class CurvePoolDefaultTokenHelper { + constructor( + @Inject(CurvePoolTokenHelper) + private readonly curvePoolTokenHelper: CurvePoolTokenHelper, + @Inject(CurvePoolVirtualPriceStrategy) + private readonly curvePoolVirtualPriceStrategy: CurvePoolVirtualPriceStrategy, + @Inject(CurveContractFactory) + private readonly curveContractFactory: CurveContractFactory, + @Inject(CurvePoolRegistry) + private readonly curvePoolRegistry: CurvePoolRegistry, + ) {} + + async getTokens({ network, dependencies = [] }: CurvePoolDefaultTokenHelperParams) { + return this.curvePoolTokenHelper.getTokens({ + network, + dependencies, + appId: CURVE_DEFINITION.id, + groupId: CURVE_DEFINITION.groups.pool.id, + poolDefinitions: await this.curvePoolRegistry.getPoolDefinitions(network), + minLiquidity: 1000, + resolvePoolContract: ({ network, definition }) => + this.curveContractFactory.curvePool({ network, address: definition.swapAddress }), + resolvePoolReserves: ({ definition, multicall }) => { + const contract = definition.isLegacy + ? this.curveContractFactory.curvePoolLegacy({ address: definition.swapAddress, network }) + : this.curveContractFactory.curvePool({ address: definition.swapAddress, network }); + return Promise.all(definition.coinAddresses.map((_, i) => multicall.wrap(contract).balances(i))); + }, + resolvePoolFee: ({ multicall, poolContract }) => multicall.wrap(poolContract).fee(), + resolvePoolTokenPrice: this.curvePoolVirtualPriceStrategy.build({ + resolveVirtualPrice: ({ multicall, poolContract }) => multicall.wrap(poolContract).get_virtual_price(), + }), + }); + } +} diff --git a/src/apps/curve/helpers/curve.pool.registry.ts b/src/apps/curve/helpers/curve.pool.registry.ts new file mode 100644 index 000000000..85b332f98 --- /dev/null +++ b/src/apps/curve/helpers/curve.pool.registry.ts @@ -0,0 +1,197 @@ +import { Inject, Injectable } from '@nestjs/common'; +import { BigNumberish, Contract, ethers } from 'ethers'; +import { range, uniqBy } from 'lodash'; +import moment from 'moment'; + +import { APP_TOOLKIT, IAppToolkit } from '~app-toolkit/app-toolkit.interface'; +import { ETH_ADDR_ALIAS, ZERO_ADDRESS } from '~app-toolkit/constants/address'; +import { + CurveContractFactory, + CurveCryptoFactory, + CurveCryptoRegistry, + CurveStableFactory, + CurveStableRegistry, +} from '~apps/curve/contracts'; +import { CURVE_DEFINITION } from '~apps/curve/curve.definition'; +import { Cache } from '~cache/cache.decorator'; +import { Network } from '~types/network.interface'; + +import { CurvePoolDefinition, CurvePoolType } from '../curve.types'; + +import { CurveApiClient } from './curve.api.client'; +import { CurveGaugeRegistry } from './curve.gauge.registry'; + +const ADDRESS_RESOLVER_ADDRESS = '0x0000000022d53366457f9d5e68ec105046fc4383'; + +export const POOL_TYPE_TO_ADDRESS_RESOLVER_INDEX = { + [CurvePoolType.STABLE]: 0, + [CurvePoolType.CRYPTO]: 5, + [CurvePoolType.FACTORY_STABLE]: 3, + [CurvePoolType.FACTORY_CRYPTO]: 6, +}; + +@Injectable() +export class CurvePoolRegistry { + constructor( + @Inject(APP_TOOLKIT) private readonly appToolkit: IAppToolkit, + @Inject(CurveContractFactory) private readonly curveContractFactory: CurveContractFactory, + @Inject(CurveApiClient) private readonly curveApiClient: CurveApiClient, + @Inject(CurveGaugeRegistry) private readonly curveGaugeRegistry: CurveGaugeRegistry, + ) {} + + @Cache({ + instance: 'business', + key: (network: Network) => `studio:${CURVE_DEFINITION.id}:${network}:pool-definitions:0`, + ttl: moment.duration(60, 'minutes').asSeconds(), + }) + async getPoolDefinitions(network: Network) { + const poolDefinitionPromises = [ + // Stable Swap Registry + this.retrieveFromSource({ + network, + poolType: CurvePoolType.STABLE, + resolveSourceContract: ({ address, network }) => + this.curveContractFactory.curveStableRegistry({ address, network }), + resolveSourceCount: ({ contract }) => contract.pool_count(), + resolveSwapAddress: ({ contract, index }) => contract.pool_list(index), + resolveTokenAddress: ({ contract, swapAddress }) => contract.get_lp_token(swapAddress), + resolveCoinAddresses: ({ contract, swapAddress }) => contract.get_coins(swapAddress), + }), + // Stable Swap Factory + this.retrieveFromSource({ + network, + poolType: CurvePoolType.FACTORY_STABLE, + resolveSourceContract: ({ address, network }) => + this.curveContractFactory.curveStableFactory({ address, network }), + resolveSourceCount: ({ contract }) => contract.pool_count(), + resolveSwapAddress: ({ contract, index }) => contract.pool_list(index), + resolveTokenAddress: ({ swapAddress }) => swapAddress, + resolveCoinAddresses: ({ contract, swapAddress }) => contract.get_coins(swapAddress), + }), + // Crypto Swap Registry + this.retrieveFromSource({ + network, + poolType: CurvePoolType.CRYPTO, + resolveSourceContract: ({ address, network }) => + this.curveContractFactory.curveCryptoRegistry({ address, network }), + resolveSourceCount: ({ contract }) => contract.pool_count(), + resolveSwapAddress: ({ contract, index }) => contract.pool_list(index), + resolveTokenAddress: ({ contract, swapAddress }) => contract.get_lp_token(swapAddress), + resolveCoinAddresses: ({ contract, swapAddress }) => contract.get_coins(swapAddress), + }), + ]; + + if (network === Network.ETHEREUM_MAINNET) { + poolDefinitionPromises.push( + // Crypto Swap Factory + this.retrieveFromSource({ + network, + poolType: CurvePoolType.FACTORY_CRYPTO, + resolveSourceContract: ({ address, network }) => + this.curveContractFactory.curveCryptoFactory({ address, network }), + resolveSourceCount: ({ contract }) => contract.pool_count(), + resolveSwapAddress: ({ contract, index }) => contract.pool_list(index), + resolveTokenAddress: ({ contract, swapAddress }) => contract.get_token(swapAddress), + resolveCoinAddresses: ({ contract, swapAddress }) => contract.get_coins(swapAddress), + }), + ); + } + + const provider = this.appToolkit.getNetworkProvider(network); + const poolDefinitions = await Promise.all(poolDefinitionPromises).then(v => v.flat()); + const poolDefinitionsWithLegacy = await Promise.all( + poolDefinitions.map(async poolDefinition => { + if ([CurvePoolType.FACTORY_STABLE, CurvePoolType.FACTORY_CRYPTO].includes(poolDefinition.poolType!)) + return poolDefinition; + + const code = await provider.getCode(poolDefinition.swapAddress); + + if (network === Network.ETHEREUM_MAINNET) { + const legacyMethod = ethers.utils.id('balances(int128)').slice(2, 10); + const isLegacy = code.includes(legacyMethod); + if (isLegacy) return { ...poolDefinition, isLegacy: true }; + } + + const crypotPoolMethod = ethers.utils.id('D()').slice(2, 10); + const realPoolType = code.includes(crypotPoolMethod) ? CurvePoolType.CRYPTO : CurvePoolType.STABLE; + return { ...poolDefinition, poolType: realPoolType }; + }), + ); + + return uniqBy(poolDefinitionsWithLegacy, v => v.swapAddress); + } + + private async retrieveFromSource({ + network, + poolType, + resolveSourceContract, + resolveSourceCount, + resolveSwapAddress, + resolveTokenAddress, + resolveCoinAddresses, + }: { + network: Network; + poolType: CurvePoolType; + resolveSourceContract: (opts: { address: string; network: Network }) => T; + resolveSourceCount: (opts: { contract: T }) => BigNumberish | Promise; + resolveSwapAddress: (opts: { contract: T; index: number }) => string | Promise; + resolveTokenAddress: (opts: { contract: T; swapAddress: string }) => string | Promise; + resolveCoinAddresses: (opts: { contract: T; swapAddress: string }) => string[] | Promise; + }) { + const multicall = this.appToolkit.getMulticall(network); + const gauges = await this.curveGaugeRegistry.getCachedGauges(network); + const allPoolApyData = await this.getCachedPoolApyData(network); + + const resolver = this.curveContractFactory.curveAddressResolver({ address: ADDRESS_RESOLVER_ADDRESS, network }); + const sourceInfo = await resolver.get_id_info(POOL_TYPE_TO_ADDRESS_RESOLVER_INDEX[poolType]); + if (sourceInfo.addr === ZERO_ADDRESS) return []; + + const source = resolveSourceContract({ address: sourceInfo.addr, network }); + const multicallWrappedSource = multicall.wrap(source); + const poolCount = await resolveSourceCount({ contract: multicallWrappedSource }); + + const poolDefinitions = await Promise.all( + range(0, Number(poolCount)).map(async index => { + const swapAddressRaw = await resolveSwapAddress({ contract: multicallWrappedSource, index }); + const swapAddress = swapAddressRaw.toLowerCase(); + + const tokenAddressRaw = await resolveTokenAddress({ contract: multicallWrappedSource, swapAddress }); + const tokenAddress = tokenAddressRaw.toLowerCase(); + + const coinAddressesRaw = await resolveCoinAddresses({ contract: multicallWrappedSource, swapAddress }); + const coinAddresses = coinAddressesRaw + .filter(v => v !== ZERO_ADDRESS) + .map(v => v.toLowerCase()) + .map(v => v.replace(ETH_ADDR_ALIAS, ZERO_ADDRESS)); + + const gaugeAddresses = gauges.filter(v => v.swapAddress === swapAddress).map(v => v.gaugeAddress); + const poolApyData = allPoolApyData.find(v => v.swapAddress === swapAddress); + const apy = poolApyData?.apy ?? 0; + const volume = poolApyData?.volume ?? 0; + + const definition: CurvePoolDefinition = { + poolType, + swapAddress, + tokenAddress, + gaugeAddresses, + coinAddresses, + apy, + volume, + }; + + return definition; + }), + ); + + return poolDefinitions; + } + + @Cache({ + instance: 'business', + key: (network: Network) => `studio:${CURVE_DEFINITION.id}:${network}:pool-apy-data:2`, + ttl: moment.duration(5, 'minutes').asSeconds(), + }) + private async getCachedPoolApyData(network: Network) { + return this.curveApiClient.getPoolApyData(network); + } +} diff --git a/src/apps/curve/helpers/curve.pool.token-helper.ts b/src/apps/curve/helpers/curve.pool.token-helper.ts index 4d6cc4a19..4ee13652e 100644 --- a/src/apps/curve/helpers/curve.pool.token-helper.ts +++ b/src/apps/curve/helpers/curve.pool.token-helper.ts @@ -1,120 +1,86 @@ import { Inject, Injectable } from '@nestjs/common'; -import { BigNumber, BigNumberish } from 'ethers'; -import { compact, uniq } from 'lodash'; +import { BigNumberish } from 'ethers'; +import { compact, partition } from 'lodash'; import { APP_TOOLKIT, IAppToolkit } from '~app-toolkit/app-toolkit.interface'; -import { ETH_ADDR_ALIAS, ZERO_ADDRESS } from '~app-toolkit/constants/address'; import { buildDollarDisplayItem, buildNumberDisplayItem, buildPercentageDisplayItem, } from '~app-toolkit/helpers/presentation/display-item.present'; import { getImagesFromToken, getLabelFromToken } from '~app-toolkit/helpers/presentation/image.present'; -import { Erc20 } from '~contract/contracts'; import { IMulticallWrapper } from '~multicall/multicall.interface'; import { ContractType } from '~position/contract.interface'; -import { AppTokenPosition, isAppToken, Token } from '~position/position.interface'; +import { AppTokenPosition, Token } from '~position/position.interface'; import { AppGroupsDefinition } from '~position/position.service'; import { Network } from '~types/network.interface'; -import { CurveToken } from '../contracts'; -import { CURVE_DEFINITION } from '../curve.definition'; -import { CurvePoolDefinition } from '../curve.types'; +import { CurvePoolDefinition, CurvePoolType } from '../curve.types'; export type CurvePoolTokenDataProps = { - gaugeAddress?: string; + poolType: CurvePoolType; swapAddress: string; + gaugeAddresses: string[]; liquidity: number; + apy: number; volume: number; fee: number; }; -type CurvePoolTokenHelperParams = { +export type CurvePoolTokenHelperParams = { network: Network; appId: string; groupId: string; - statsUrl?: string; + poolDefinitions: CurvePoolDefinition[]; minLiquidity?: number; - appTokenDependencies?: AppGroupsDefinition[]; + dependencies?: AppGroupsDefinition[]; baseCurveTokens?: AppTokenPosition[]; - resolvePoolDefinitions: (opts: { network: Network; multicall: IMulticallWrapper }) => Promise; - resolvePoolVolume?: (opts: { - poolContract: T; - tokens: Token[]; - definition: CurvePoolDefinition; - price: number; - }) => Promise; resolvePoolContract: (opts: { network: Network; definition: CurvePoolDefinition }) => T; - resolvePoolTokenContract: (opts: { network: Network; definition: CurvePoolDefinition }) => V; - resolvePoolCoinAddresses: (opts: { multicall: IMulticallWrapper; poolContract: T }) => Promise; - resolvePoolReserves: (opts: { multicall: IMulticallWrapper; poolContract: T }) => Promise; - resolvePoolFee: (opts: { multicall: IMulticallWrapper; poolContract: T }) => Promise; - resolvePoolTokenSymbol: (opts: { multicall: IMulticallWrapper; poolTokenContract: V }) => Promise; - resolvePoolTokenSupply: (opts: { multicall: IMulticallWrapper; poolTokenContract: V }) => Promise; + resolvePoolReserves: (opts: { + definition: CurvePoolDefinition; + multicall: IMulticallWrapper; + poolContract: T; + }) => Promise; resolvePoolTokenPrice: (opts: { multicall: IMulticallWrapper; poolContract: T; tokens: Token[]; reserves: number[]; supply: number; + poolType: CurvePoolType; }) => Promise; + resolvePoolFee: (opts: { multicall: IMulticallWrapper; poolContract: T }) => Promise; }; @Injectable() export class CurvePoolTokenHelper { constructor(@Inject(APP_TOOLKIT) private readonly appToolkit: IAppToolkit) {} - private async resolvePoolLabel(tokens: Token[]) { - // Determine source app prefix from underlying tokens (Aave V2, Yearn, etc.) - const appTokens = tokens.filter(isAppToken); - const appSourcesAll = appTokens.map(v => v.appId); - const appSources = uniq(appSourcesAll).filter(v => v !== CURVE_DEFINITION.id); - - const hasSingleAppSource = appTokens.length === tokens.length && appSources.length === 1; - const appSource = hasSingleAppSource ? await this.appToolkit.getApp(appSources[0]) : null; - const appSourcePrefix = appSource?.name.replace(/V\d$/, '').trim(); - - // Determine the pool label from the underlying labels - const labels = tokens.map(v => getLabelFromToken(v)); - const poolLabel = labels.join(' / '); - - return compact([appSourcePrefix, poolLabel]).join(' '); - } - - async getTokens({ + private async _getTokens({ network, appId, groupId, + poolDefinitions, minLiquidity = 0, - appTokenDependencies = [], + dependencies = [], baseCurveTokens = [], - resolvePoolDefinitions, - resolvePoolVolume, resolvePoolContract, - resolvePoolTokenContract, - resolvePoolCoinAddresses, - resolvePoolFee, resolvePoolReserves, - resolvePoolTokenSymbol, - resolvePoolTokenSupply, resolvePoolTokenPrice, - }: CurvePoolTokenHelperParams) { + resolvePoolFee, + }: CurvePoolTokenHelperParams) { const multicall = this.appToolkit.getMulticall(network); - const baseTokens = await this.appToolkit.getBaseTokenPrices(network); - const appTokens = await this.appToolkit.getAppTokenPositions(...appTokenDependencies); - const poolDefinitions = await resolvePoolDefinitions({ network, multicall }); + const appTokens = await this.appToolkit.getAppTokenPositions(...dependencies); const curvePoolTokens = await Promise.all( poolDefinitions.map(async definition => { - const { gaugeAddress, tokenAddress, swapAddress } = definition; + const { swapAddress, tokenAddress, coinAddresses } = definition; const poolContract = resolvePoolContract({ network, definition }); - const poolTokenContract = resolvePoolTokenContract({ network, definition }); - const rawTokenAddresses = await resolvePoolCoinAddresses({ multicall, poolContract }); - const tokenAddresses = rawTokenAddresses.map(v => (v === ETH_ADDR_ALIAS ? ZERO_ADDRESS : v.toLowerCase())); - const reservesRaw = await resolvePoolReserves({ multicall, poolContract }); + const tokenContract = this.appToolkit.globalContracts.erc20({ network, address: definition.tokenAddress }); + const reservesRaw = await resolvePoolReserves({ multicall, poolContract, definition }); - const maybeTokens = tokenAddresses.map(tokenAddress => { + const maybeTokens = coinAddresses.map(tokenAddress => { const baseToken = baseTokens.find(price => price.address === tokenAddress); const appToken = appTokens.find(p => p.address === tokenAddress); const curveToken = baseCurveTokens.find(p => p.address === tokenAddress); @@ -126,38 +92,34 @@ export class CurvePoolTokenHelper { const isMissingUnderlyingTokens = tokens.length !== maybeTokens.length; if (isMissingUnderlyingTokens) return null; - const [symbol, supplyRaw, feeRaw] = await Promise.all([ - resolvePoolTokenSymbol({ multicall, poolTokenContract }), - resolvePoolTokenSupply({ multicall, poolTokenContract }), - resolvePoolFee({ multicall, poolContract }), - ]); + const symbol = await multicall.wrap(tokenContract).symbol(); + const supplyRaw = await multicall.wrap(tokenContract).totalSupply(); + const feeRaw = await resolvePoolFee({ multicall, poolContract }).catch(() => '0'); // @TODO const decimals = 18; const supply = Number(supplyRaw) / 10 ** decimals; const fee = Number(feeRaw) / 10 ** 10; if (supply === 0) return null; + const poolType = definition.poolType ?? CurvePoolType.STABLE; + const volume = definition.volume ?? 0; + const apy = definition.apy ?? 0; + const reserves = reservesRaw.map((r, i) => Number(r) / 10 ** tokens[i].decimals); - const underlyingTokens = tokens.flatMap(v => (v.type === ContractType.BASE_TOKEN ? v : v.tokens)); - const price = await resolvePoolTokenPrice({ - tokens, - reserves, - poolContract, - multicall, - supply, - }); - const volume = resolvePoolVolume ? await resolvePoolVolume({ definition, poolContract, tokens, price }) : 0; + const underlying = tokens.flatMap(v => (v.type === ContractType.APP_TOKEN && v.tokens.length ? v.tokens : v)); + const price = await resolvePoolTokenPrice({ multicall, poolContract, reserves, supply, tokens, poolType }); const pricePerShare = reserves.map(r => r / supply); const reservesUSD = tokens.map((t, i) => reserves[i] * t.price); const liquidity = reservesUSD.reduce((total, r) => total + r, 0); const reservePercentages = reservesUSD.map(reserveUSD => reserveUSD / liquidity); const ratio = reservePercentages.map(p => `${Math.floor(p * 100)}%`).join(' / '); + const gaugeAddresses = definition.gaugeAddresses ?? []; // Display Properties - const label = await this.resolvePoolLabel(tokens); + const label = tokens.map(v => getLabelFromToken(v)).join(' / '); const secondaryLabel = ratio; - const images = underlyingTokens.map(t => getImagesFromToken(t)).flat(); + const images = underlying.map(t => getImagesFromToken(t)).flat(); const curvePoolToken: AppTokenPosition = { type: ContractType.APP_TOKEN, @@ -173,10 +135,12 @@ export class CurvePoolTokenHelper { tokens, dataProps: { - gaugeAddress, + poolType, swapAddress, + gaugeAddresses, liquidity, volume, + apy, fee, }, @@ -197,6 +161,10 @@ export class CurvePoolTokenHelper { label: 'Volume', value: buildDollarDisplayItem(volume), }, + { + label: 'APY', + value: buildPercentageDisplayItem(apy), + }, { label: 'Fee', value: buildPercentageDisplayItem(fee), @@ -215,4 +183,14 @@ export class CurvePoolTokenHelper { return compact(curvePoolTokens).filter(v => !!v && v.price > 0 && v.dataProps.liquidity >= minLiquidity); } + + async getTokens(params: CurvePoolTokenHelperParams) { + const [metaPoolDefinitions, basePoolDefinitions] = partition(params.poolDefinitions, v => + v.coinAddresses.some(t => params.poolDefinitions.find(p => p.tokenAddress === t)), + ); + + const baseCurveTokens = await this._getTokens({ ...params, poolDefinitions: basePoolDefinitions }); + const metaCurveTokens = await this._getTokens({ ...params, poolDefinitions: metaPoolDefinitions, baseCurveTokens }); + return [...baseCurveTokens, ...metaCurveTokens]; + } } diff --git a/src/apps/curve/helpers/curve.pool.virtual.price-strategy.ts b/src/apps/curve/helpers/curve.pool.virtual.price-strategy.ts new file mode 100644 index 000000000..2ee921e34 --- /dev/null +++ b/src/apps/curve/helpers/curve.pool.virtual.price-strategy.ts @@ -0,0 +1,42 @@ +import { BigNumberish } from 'ethers'; +import { minBy } from 'lodash'; + +import { isMulticallUnderlyingError } from '~multicall/multicall.ethers'; +import { IMulticallWrapper } from '~multicall/multicall.interface'; +import { ContractType } from '~position/contract.interface'; + +import { CurvePoolType } from '../curve.types'; + +import { CurvePoolTokenHelperParams } from './curve.pool.token-helper'; + +export type CurvePoolVirtualPriceStrategyParams = { + resolveVirtualPrice: (opts: { multicall: IMulticallWrapper; poolContract: T }) => Promise; +}; + +export class CurvePoolVirtualPriceStrategy { + build({ + resolveVirtualPrice, + }: CurvePoolVirtualPriceStrategyParams): CurvePoolTokenHelperParams['resolvePoolTokenPrice'] { + return async ({ tokens, multicall, poolContract, supply, reserves, poolType }) => { + const virtualPriceRaw = await resolveVirtualPrice({ multicall, poolContract }).catch(err => { + if (isMulticallUnderlyingError(err)) return '0'; + throw err; + }); + + if ([CurvePoolType.CRYPTO, CurvePoolType.FACTORY_CRYPTO].includes(poolType)) { + const virtualPrice = Number(virtualPriceRaw) / 10 ** 18; + const reservesUSD = tokens.map((t, i) => reserves[i] * t.price); + const liquidity = reservesUSD.reduce((total, r) => total + r, 0); + return virtualPrice > 0 ? virtualPrice * (liquidity / supply) : liquidity / supply; + } else { + const virtualPrice = Number(virtualPriceRaw) / 10 ** 18; + const underlyingTokens = tokens.flatMap(v => + v.type === ContractType.APP_TOKEN && v.tokens.length ? v.tokens : v, + ); + + const lowestPricedToken = minBy(underlyingTokens, t => t.price)!; + return virtualPrice * lowestPricedToken.price; + } + }; + } +} diff --git a/src/apps/curve/helpers/curve.rewards-only-gauge.reward-token-strategy.ts b/src/apps/curve/helpers/curve.rewards-only-gauge.reward-token-strategy.ts deleted file mode 100644 index 11eecc520..000000000 --- a/src/apps/curve/helpers/curve.rewards-only-gauge.reward-token-strategy.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { Injectable } from '@nestjs/common'; -import { range } from 'lodash'; - -import { SingleStakingFarmContractPositionHelperParams } from '~app-toolkit'; -import { ZERO_ADDRESS } from '~app-toolkit/constants/address'; - -import { CurveRewardsOnlyGauge } from '../contracts'; - -@Injectable() -export class CurveRewardsOnlyGaugeRewardTokenStrategy { - build(): SingleStakingFarmContractPositionHelperParams['resolveRewardTokenAddresses'] { - return async ({ contract, multicall }) => { - // Gauge V2 supports up to 4 different reward tokens - const MAX_REWARDS = 4; - const wrapped = multicall.wrap(contract); - const rewardTokenAddresses = await Promise.all(range(0, MAX_REWARDS).map(async i => wrapped.reward_tokens(i))); - return rewardTokenAddresses.map(v => v.toLowerCase()).filter(v => v !== ZERO_ADDRESS); - }; - } -} diff --git a/src/apps/curve/helpers/curve.rewards-only-gauge.roi-strategy.ts b/src/apps/curve/helpers/curve.rewards-only-gauge.roi-strategy.ts deleted file mode 100644 index f176c9ca5..000000000 --- a/src/apps/curve/helpers/curve.rewards-only-gauge.roi-strategy.ts +++ /dev/null @@ -1,128 +0,0 @@ -import { Inject, Injectable } from '@nestjs/common'; -import BigNumber from 'bignumber.js'; -import { range, sum } from 'lodash'; - -import { SingleStakingFarmContractPositionHelperParams } from '~app-toolkit'; -import { IMulticallWrapper } from '~multicall/multicall.interface'; -import { WithMetaType } from '~position/display.interface'; -import { Token } from '~position/position.interface'; -import { Network } from '~types/network.interface'; - -import { CurveContractFactory, CurveGaugeV2 } from '../contracts'; -import { CurvePoolDefinition } from '../curve.types'; - -type GetRewardsInUsdOpts = { - rewardStreamAddress: string; - rewardTokens: WithMetaType[]; - multicall: IMulticallWrapper; - network: Network; -}; - -type CurveRewardsOnlyGaugeRoiStrategyParams = { - tokenDefinitions: CurvePoolDefinition[]; -}; - -@Injectable() -export class CurveRewardsOnlyGaugeRoiStrategy { - constructor( - @Inject(CurveContractFactory) - private readonly curveContractFactory: CurveContractFactory, - ) {} - - build({ - tokenDefinitions, - }: CurveRewardsOnlyGaugeRoiStrategyParams): SingleStakingFarmContractPositionHelperParams['resolveRois'] { - return async ({ multicall, address, stakedToken, rewardTokens, network }) => { - // Get the TVL of the pool to calculate the APY as a fraction - const tokenContract = this.curveContractFactory.erc20({ address: stakedToken.address, network }); - const balanceRaw = await multicall.wrap(tokenContract).balanceOf(address); - const balance = Number(balanceRaw) / 10 ** stakedToken.decimals; - const balanceUSD = balance * stakedToken.price; - - // Find the reward stream for the gauge (these are defined statically because Curve doesn't always allow for dynamic retrieval) - const tokenDefinition = tokenDefinitions.find(v => v.gaugeAddress === address); - const rewardStreamAddress = tokenDefinition?.streamAddress; - if (!rewardStreamAddress || tokenDefinition.streamEol) return { yearlyROI: 0, weeklyROI: 0, dailyROI: 0 }; - - // Determine if its a multi reward stream, single reward stream, or pass through - const multiRewardStreamContract = this.curveContractFactory.curveMultiRewardStream({ - address: rewardStreamAddress, - network, - }); - - const isMultiRewardStream = await multicall - .wrap(multiRewardStreamContract) - .reward_count() - .then(() => true) - .catch(() => false); - - const rewardsInUSD = isMultiRewardStream - ? await this.getMultiRewardTotalUSD({ multicall, rewardTokens, network, rewardStreamAddress }) - : await this.getSingleRewardTotalUSD({ multicall, rewardTokens, network, rewardStreamAddress }); - - // Calculate the ROIs - const yearlyROI = rewardsInUSD / balanceUSD; - const weeklyROI = yearlyROI / 52; - const dailyROI = yearlyROI / 365; - return { dailyROI, weeklyROI, yearlyROI }; - }; - } - - private async getSingleRewardTotalUSD({ - rewardStreamAddress, - multicall, - rewardTokens, - network, - }: GetRewardsInUsdOpts) { - // Single reward case; get the reward rate of the single reward stream - const rewardStreamContract = this.curveContractFactory.curveSingleRewardStream({ - address: rewardStreamAddress, - network, - }); - - const [rewardRate, rewardTokenAddressRaw] = await Promise.all([ - await multicall.wrap(rewardStreamContract).reward_rate(), - await multicall.wrap(rewardStreamContract).reward_token(), - ]); - - const rewardTokenAddress = rewardTokenAddressRaw.toLowerCase(); - const rewardToken = rewardTokens.find(p => p.address === rewardTokenAddress); - if (!rewardToken) return 0; - - return new BigNumber(rewardRate.toString()) - .dividedBy(10 ** rewardToken.decimals) - .times(365 * 24 * 60 * 60) - .times(rewardToken.price) - .toNumber(); - } - - private async getMultiRewardTotalUSD({ rewardStreamAddress, multicall, rewardTokens, network }: GetRewardsInUsdOpts) { - // @TODO Bonus APY for AAVE and GEIST tokens is not supported :( - // See https://github.com/beefyfinance/beefy-api/blob/master/src/api/stats/fantom/getCurveApys.js for more details - const rewardStreamContract = this.curveContractFactory.curveMultiRewardStream({ - address: rewardStreamAddress, - network, - }); - - const rewardTokenCount = await multicall.wrap(rewardStreamContract).reward_count(); - const individualRewardsInUSD = await Promise.all( - range(0, Number(rewardTokenCount)).map(async index => { - const rewardTokenAddressRaw = await multicall.wrap(rewardStreamContract).reward_tokens(index); - const rewardTokenAddress = rewardTokenAddressRaw.toLowerCase(); - const rewardToken = rewardTokens.find(p => p.address === rewardTokenAddress); - if (!rewardToken) return 0; - - const rewardData = await multicall.wrap(rewardStreamContract).reward_data(rewardTokenAddress); - if (Number(rewardData.period_finish) < Date.now() / 1000) return 0; - - return new BigNumber(rewardData.rate.toString()) - .times(365 * 24 * 60 * 60) - .times(rewardToken.price) - .dividedBy(10 ** rewardToken.decimals) - .toNumber(); - }), - ); - - return sum(individualRewardsInUSD); - } -} diff --git a/src/apps/curve/helpers/curve.v1-pool.token-helper.ts b/src/apps/curve/helpers/curve.v1-pool.token-helper.ts deleted file mode 100644 index 3c480c870..000000000 --- a/src/apps/curve/helpers/curve.v1-pool.token-helper.ts +++ /dev/null @@ -1,76 +0,0 @@ -import { Inject, Injectable } from '@nestjs/common'; - -import { AppTokenPosition } from '~position/position.interface'; -import { AppGroupsDefinition } from '~position/position.service'; -import { Network } from '~types/network.interface'; - -import { CurveContractFactory, CurveV1Pool, CurveV1PoolLegacy } from '../contracts'; -import { CurvePoolDefinition } from '../curve.types'; - -import { CurveApiVolumeStrategy } from './curve.api.volume-strategy'; -import { CurveOnChainCoinStrategy } from './curve.on-chain.coin-strategy'; -import { CurveOnChainReserveStrategy } from './curve.on-chain.reserve-strategy'; -import { CurvePoolTokenHelper } from './curve.pool.token-helper'; -import { CurveVirtualPriceStrategy } from './curve.virtual.price-strategy'; - -type CurveV1PoolTokenHelperParams = { - poolDefinitions: CurvePoolDefinition[]; - network: Network; - appId: string; - groupId: string; - statsUrl?: string; - appTokenDependencies?: AppGroupsDefinition[]; - baseCurveTokens?: AppTokenPosition[]; -}; - -@Injectable() -export class CurveV1PoolTokenHelper { - constructor( - @Inject(CurvePoolTokenHelper) - private readonly curvePoolTokenHelper: CurvePoolTokenHelper, - @Inject(CurveOnChainCoinStrategy) - private readonly curveOnChainCoinStrategy: CurveOnChainCoinStrategy, - @Inject(CurveOnChainReserveStrategy) - private readonly curveOnChainReserveStrategy: CurveOnChainReserveStrategy, - @Inject(CurveApiVolumeStrategy) - private readonly curveApiVolumeStrategy: CurveApiVolumeStrategy, - @Inject(CurveVirtualPriceStrategy) - private readonly curveVirtualPriceStrategy: CurveVirtualPriceStrategy, - @Inject(CurveContractFactory) - private readonly curveContractFactory: CurveContractFactory, - ) {} - - async getTokens({ - network, - appId, - groupId, - poolDefinitions, - statsUrl = '', - appTokenDependencies = [], - baseCurveTokens = [], - }: CurveV1PoolTokenHelperParams) { - return this.curvePoolTokenHelper.getTokens({ - network: network, - appId: appId, - groupId: groupId, - appTokenDependencies, - baseCurveTokens, - resolvePoolDefinitions: async () => poolDefinitions, - resolvePoolContract: ({ network, definition }) => - definition.isLegacy - ? this.curveContractFactory.curveV1PoolLegacy({ network, address: definition.swapAddress }) - : this.curveContractFactory.curveV1Pool({ network, address: definition.swapAddress }), - resolvePoolTokenContract: ({ network, definition }) => - this.curveContractFactory.erc20({ network, address: definition.tokenAddress }), - resolvePoolCoinAddresses: this.curveOnChainCoinStrategy.build(), - resolvePoolReserves: this.curveOnChainReserveStrategy.build(), - resolvePoolVolume: this.curveApiVolumeStrategy.build({ statsUrl }), - resolvePoolFee: ({ multicall, poolContract }) => multicall.wrap(poolContract).fee(), - resolvePoolTokenSymbol: ({ multicall, poolTokenContract }) => multicall.wrap(poolTokenContract).symbol(), - resolvePoolTokenSupply: ({ multicall, poolTokenContract }) => multicall.wrap(poolTokenContract).totalSupply(), - resolvePoolTokenPrice: this.curveVirtualPriceStrategy.build({ - resolveVirtualPrice: ({ multicall, poolContract }) => multicall.wrap(poolContract).get_virtual_price(), - }), - }); - } -} diff --git a/src/apps/curve/helpers/curve.v2-pool.token-helper.ts b/src/apps/curve/helpers/curve.v2-pool.token-helper.ts deleted file mode 100644 index 586719a7e..000000000 --- a/src/apps/curve/helpers/curve.v2-pool.token-helper.ts +++ /dev/null @@ -1,78 +0,0 @@ -import { Inject, Injectable } from '@nestjs/common'; - -import { AppTokenPosition } from '~position/position.interface'; -import { AppGroupsDefinition } from '~position/position.service'; -import { Network } from '~types/network.interface'; - -import { CurveContractFactory, CurveV2Pool } from '../contracts'; -import { CurvePoolDefinition } from '../curve.types'; - -import { CurveApiVolumeStrategy } from './curve.api.volume-strategy'; -import { CurveLiquidityAndVirtualPriceStrategy } from './curve.liquidity-and-virtual.price-strategy'; -import { CurveOnChainCoinStrategy } from './curve.on-chain.coin-strategy'; -import { CurveOnChainReserveStrategy } from './curve.on-chain.reserve-strategy'; -import { CurvePoolTokenHelper } from './curve.pool.token-helper'; - -type CurveV2PoolTokenHelperParams = { - network: Network; - appId: string; - groupId: string; - statsUrl?: string; - appTokenDependencies?: AppGroupsDefinition[]; - poolDefinitions: CurvePoolDefinition[]; - baseCurveTokens?: AppTokenPosition[]; -}; - -@Injectable() -export class CurveV2PoolTokenHelper { - constructor( - @Inject(CurvePoolTokenHelper) - private readonly curvePoolTokenHelper: CurvePoolTokenHelper, - @Inject(CurveOnChainCoinStrategy) - private readonly curveOnChainCoinStrategy: CurveOnChainCoinStrategy, - @Inject(CurveOnChainReserveStrategy) - private readonly curveOnChainReserveStrategy: CurveOnChainReserveStrategy, - @Inject(CurveApiVolumeStrategy) - private readonly curveApiVolumeStrategy: CurveApiVolumeStrategy, - @Inject(CurveLiquidityAndVirtualPriceStrategy) - private readonly curveLiquidityAndVirtualPriceStrategy: CurveLiquidityAndVirtualPriceStrategy, - @Inject(CurveContractFactory) - private readonly curveContractFactory: CurveContractFactory, - ) {} - - async getTokens({ - network, - appId, - groupId, - poolDefinitions, - statsUrl = '', - baseCurveTokens = [], - appTokenDependencies = [], - }: CurveV2PoolTokenHelperParams) { - return this.curvePoolTokenHelper.getTokens({ - network, - appId, - groupId, - appTokenDependencies, - baseCurveTokens, - resolvePoolDefinitions: async () => poolDefinitions, - resolvePoolContract: ({ network, definition }) => - this.curveContractFactory.curveV2Pool({ network, address: definition.swapAddress }), - resolvePoolTokenContract: ({ network, definition }) => - this.curveContractFactory.erc20({ network, address: definition.tokenAddress }), - resolvePoolCoinAddresses: this.curveOnChainCoinStrategy.build(), - resolvePoolReserves: this.curveOnChainReserveStrategy.build(), - resolvePoolVolume: this.curveApiVolumeStrategy.build({ statsUrl }), - resolvePoolFee: ({ multicall, poolContract }) => multicall.wrap(poolContract).fee(), - resolvePoolTokenPrice: this.curveLiquidityAndVirtualPriceStrategy.build({ - resolveVirtualPrice: ({ multicall, poolContract }) => - multicall - .wrap(poolContract) - .get_virtual_price() - .catch(() => 0), - }), - resolvePoolTokenSymbol: ({ multicall, poolTokenContract }) => multicall.wrap(poolTokenContract).symbol(), - resolvePoolTokenSupply: ({ multicall, poolTokenContract }) => multicall.wrap(poolTokenContract).totalSupply(), - }); - } -} diff --git a/src/apps/curve/helpers/curve.virtual.price-strategy.ts b/src/apps/curve/helpers/curve.virtual.price-strategy.ts deleted file mode 100644 index f91f73bc0..000000000 --- a/src/apps/curve/helpers/curve.virtual.price-strategy.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { BigNumberish } from 'ethers'; -import { minBy } from 'lodash'; - -import { IMulticallWrapper } from '~multicall/multicall.interface'; -import { ContractType } from '~position/contract.interface'; -import { Token } from '~position/position.interface'; - -export class CurveVirtualPriceStrategy { - build({ - resolveVirtualPrice, - }: { - resolveVirtualPrice: (opts: { multicall: IMulticallWrapper; poolContract: T }) => Promise; - }) { - return async ({ - tokens, - multicall, - poolContract, - }: { - tokens: Token[]; - multicall: IMulticallWrapper; - poolContract: T; - }) => { - const virtualPriceRaw = await resolveVirtualPrice({ multicall, poolContract }); - const virtualPrice = Number(virtualPriceRaw) / 10 ** 18; - const underlyingTokens = tokens.flatMap(v => (v.type === ContractType.APP_TOKEN ? v.tokens : v)); - const lowestPricedToken = minBy(underlyingTokens, t => t.price)!; - const price = virtualPrice * lowestPricedToken.price; - return price; - }; - } -} diff --git a/src/apps/curve/index.ts b/src/apps/curve/index.ts index df94b5c3e..834529cad 100644 --- a/src/apps/curve/index.ts +++ b/src/apps/curve/index.ts @@ -3,34 +3,18 @@ export { CurveAppModule } from './curve.module'; export { CurveContractFactory } from './contracts'; /* Helpers */ -export { CurveApiVolumeStrategy } from './helpers/curve.api.volume-strategy'; -export { CurveCryptoFactoryPoolTokenHelper } from './helpers/curve.crypto-factory-pool.token-helper'; -export { CurveCryptoFactoryPoolDefinitionStrategy } from './helpers/curve.crypto-factory.pool-definition-strategy'; -export { CurveFactoryGaugeAddressHelper } from './helpers/curve.factory-gauge.address-helper'; -export { CurveFactoryPoolTokenHelper } from './helpers/curve.factory-pool.token-helper'; -export { CurveFactoryPoolDefinitionStrategy } from './helpers/curve.factory.pool-definition-strategy'; -export { CurveRewardsOnlyGaugeRewardTokenStrategy } from './helpers/curve.rewards-only-gauge.reward-token-strategy'; -export { CurveRewardsOnlyGaugeRoiStrategy } from './helpers/curve.rewards-only-gauge.roi-strategy'; export { CurveGaugeIsActiveStrategy } from './helpers/curve.gauge.is-active-strategy'; export { CurveGaugeRoiStrategy } from './helpers/curve.gauge.roi-strategy'; -export { CurveLiquidityPriceStrategy } from './helpers/curve.liquidity.price-strategy'; -export { CurveOnChainCoinStrategy } from './helpers/curve.on-chain.coin-strategy'; -export { CurveOnChainReserveStrategy } from './helpers/curve.on-chain.reserve-strategy'; -export { CurveOnChainVolumeStrategy } from './helpers/curve.on-chain.volume-strategy'; export { CurvePoolTokenHelper } from './helpers/curve.pool.token-helper'; -export { CurveV1PoolTokenHelper } from './helpers/curve.v1-pool.token-helper'; -export { CurveV2PoolTokenHelper } from './helpers/curve.v2-pool.token-helper'; +export { CurvePoolVirtualPriceStrategy } from './helpers/curve.pool.virtual.price-strategy'; export { CurveVestingEscrowContractPositionBalanceHelper } from './helpers/curve.vesting-escrow.contract-position-balance-helper'; export { CurveVestingEscrowContractPositionHelper } from './helpers/curve.vesting-escrow.contract-position-helper'; -export { CurveVirtualPriceStrategy } from './helpers/curve.virtual.price-strategy'; export { CurveVotingEscrowContractPositionBalanceHelper } from './helpers/curve.voting-escrow.contract-position-balance-helper'; export { CurveVotingEscrowContractPositionHelper } from './helpers/curve.voting-escrow.contract-position-helper'; /* Contracts */ -export type { CurveV1Pool } from './contracts'; -export type { CurveV2Pool } from './contracts'; +export type { CurvePool } from './contracts'; export type { CurveGauge } from './contracts'; export type { CurveVotingEscrow } from './contracts'; export type { CurveVotingEscrowReward } from './contracts'; -export type { CurveV1PoolLegacy } from './contracts'; export type { CurveController } from './contracts'; diff --git a/src/apps/curve/optimism/curve.balance-fetcher.ts b/src/apps/curve/optimism/curve.balance-fetcher.ts index a108a6c8f..cb61171ca 100644 --- a/src/apps/curve/optimism/curve.balance-fetcher.ts +++ b/src/apps/curve/optimism/curve.balance-fetcher.ts @@ -4,11 +4,10 @@ import { APP_TOOLKIT, IAppToolkit } from '~app-toolkit/app-toolkit.interface'; import { Register } from '~app-toolkit/decorators'; import { presentBalanceFetcherResponse } from '~app-toolkit/helpers/presentation/balance-fetcher-response.present'; import { BalanceFetcher } from '~balance/balance-fetcher.interface'; -import { isClaimable } from '~position/position.utils'; import { Network } from '~types/network.interface'; -import { CurveChildLiquidityGauge, CurveContractFactory, CurveRewardsOnlyGauge } from '../contracts'; import { CURVE_DEFINITION } from '../curve.definition'; +import { CurveGaugeDefaultContractPositionBalanceHelper } from '../helpers/curve.gauge.default.contract-position-balance-helper'; const network = Network.OPTIMISM_MAINNET; @@ -16,7 +15,8 @@ const network = Network.OPTIMISM_MAINNET; export class OptimismCurveBalanceFetcher implements BalanceFetcher { constructor( @Inject(APP_TOOLKIT) private readonly appToolkit: IAppToolkit, - @Inject(CurveContractFactory) private readonly curveContractFactory: CurveContractFactory, + @Inject(CurveGaugeDefaultContractPositionBalanceHelper) + private readonly curveGaugeDefaultContractPositionBalanceHelper: CurveGaugeDefaultContractPositionBalanceHelper, ) {} private async getPoolTokenBalances(address: string) { @@ -28,50 +28,17 @@ export class OptimismCurveBalanceFetcher implements BalanceFetcher { }); } - private async getRewardsOnlyGaugeStakedBalances(address: string) { - return this.appToolkit.helpers.singleStakingContractPositionBalanceHelper.getBalances({ + private async getStakedBalances(address: string) { + return this.curveGaugeDefaultContractPositionBalanceHelper.getBalances({ address, - appId: CURVE_DEFINITION.id, - groupId: CURVE_DEFINITION.groups.farm.id, - network, - farmFilter: v => v.dataProps.implementation === 'rewards-only-gauge', - resolveContract: ({ address, network }) => this.curveContractFactory.curveRewardsOnlyGauge({ address, network }), - resolveStakedTokenBalance: ({ contract, address, multicall }) => multicall.wrap(contract).balanceOf(address), - resolveRewardTokenBalances: ({ contract, address, multicall, contractPosition }) => { - const rewardTokens = contractPosition.tokens.filter(isClaimable); - const wrappedContract = multicall.wrap(contract); - return Promise.all(rewardTokens.map(v => wrappedContract.claimable_reward_write(address, v.address))); - }, - }); - } - - private async getChildLiquidityGaugeStakedBalances(address: string) { - return this.appToolkit.helpers.singleStakingContractPositionBalanceHelper.getBalances({ - address, - appId: CURVE_DEFINITION.id, - groupId: CURVE_DEFINITION.groups.farm.id, network, - farmFilter: v => v.dataProps.implementation === 'child-liquidity-gauge', - resolveContract: ({ address, network }) => - this.curveContractFactory.curveChildLiquidityGauge({ address, network }), - resolveStakedTokenBalance: ({ contract, address, multicall }) => multicall.wrap(contract).balanceOf(address), - resolveRewardTokenBalances: async ({ contract, address, multicall, contractPosition }) => { - const rewardTokens = contractPosition.tokens.filter(isClaimable); - const otherRewardTokens = rewardTokens.filter(v => v.symbol !== 'CRV'); - - return Promise.all([ - multicall.wrap(contract).callStatic.claimable_tokens(address), - ...otherRewardTokens.map(v => multicall.wrap(contract).claimable_reward(address, v.address)), - ]); - }, }); } async getBalances(address: string) { - const [poolTokenBalances, rewardOnlyGaugeStakedBalances, childLiquidityGaugeStakedBalances] = await Promise.all([ + const [poolTokenBalances, stakedBalances] = await Promise.all([ this.getPoolTokenBalances(address), - this.getRewardsOnlyGaugeStakedBalances(address), - this.getChildLiquidityGaugeStakedBalances(address), + this.getStakedBalances(address), ]); return presentBalanceFetcherResponse([ @@ -81,7 +48,7 @@ export class OptimismCurveBalanceFetcher implements BalanceFetcher { }, { label: 'Staked', - assets: [...rewardOnlyGaugeStakedBalances, ...childLiquidityGaugeStakedBalances], + assets: stakedBalances, }, ]); } diff --git a/src/apps/curve/optimism/curve.farm.contract-position-fetcher.ts b/src/apps/curve/optimism/curve.farm.contract-position-fetcher.ts deleted file mode 100644 index f521bbc1f..000000000 --- a/src/apps/curve/optimism/curve.farm.contract-position-fetcher.ts +++ /dev/null @@ -1,95 +0,0 @@ -import { Inject } from '@nestjs/common'; - -import { APP_TOOLKIT, IAppToolkit } from '~app-toolkit/app-toolkit.interface'; -import { Register } from '~app-toolkit/decorators'; -import { PositionFetcher } from '~position/position-fetcher.interface'; -import { ContractPosition } from '~position/position.interface'; -import { Network } from '~types/network.interface'; - -import { CurveChildLiquidityGauge, CurveContractFactory, CurveRewardsOnlyGauge } from '../contracts'; -import { CURVE_DEFINITION } from '../curve.definition'; -import { CurveChildLiquidityGaugeFactoryAddressHelper } from '../helpers/curve.child-liquidity-gauge-factory.address-helper'; -import { CurveChildLiquidityGaugeRewardTokenStrategy } from '../helpers/curve.child-liquidity-gauge.reward-token-strategy'; -import { CurveChildLiquidityGaugeRoiStrategy } from '../helpers/curve.child-liquidity-gauge.roi-strategy'; -import { CurveRewardsOnlyGaugeRewardTokenStrategy } from '../helpers/curve.rewards-only-gauge.reward-token-strategy'; -import { CurveRewardsOnlyGaugeRoiStrategy } from '../helpers/curve.rewards-only-gauge.roi-strategy'; - -import { CURVE_V1_POOL_DEFINITIONS } from './curve.pool.definitions'; - -const appId = CURVE_DEFINITION.id; -const groupId = CURVE_DEFINITION.groups.farm.id; -const network = Network.OPTIMISM_MAINNET; - -@Register.ContractPositionFetcher({ appId, groupId, network }) -export class OptimismCurveFarmContractPositionFetcher implements PositionFetcher { - constructor( - @Inject(APP_TOOLKIT) private readonly appToolkit: IAppToolkit, - @Inject(CurveContractFactory) - private readonly curveContractFactory: CurveContractFactory, - @Inject(CurveRewardsOnlyGaugeRoiStrategy) - private readonly curveRewardsOnlyGaugeRoiStrategy: CurveRewardsOnlyGaugeRoiStrategy, - @Inject(CurveRewardsOnlyGaugeRewardTokenStrategy) - private readonly curveRewardsOnlyGaugeRewardTokenStrategy: CurveRewardsOnlyGaugeRewardTokenStrategy, - @Inject(CurveChildLiquidityGaugeFactoryAddressHelper) - private readonly childGaugeAddressHelper: CurveChildLiquidityGaugeFactoryAddressHelper, - @Inject(CurveChildLiquidityGaugeRoiStrategy) - private readonly childGaugeRoiStrategy: CurveChildLiquidityGaugeRoiStrategy, - @Inject(CurveChildLiquidityGaugeRewardTokenStrategy) - private readonly childGaugeRewardTokenStrategy: CurveChildLiquidityGaugeRewardTokenStrategy, - ) {} - - async getRewardsOnlyGaugePositions() { - const definitions = [CURVE_V1_POOL_DEFINITIONS].flat().filter(v => !!v.gaugeAddress); - - return this.appToolkit.helpers.singleStakingFarmContractPositionHelper.getContractPositions({ - network, - appId, - groupId, - dependencies: [{ appId: CURVE_DEFINITION.id, groupIds: [CURVE_DEFINITION.groups.pool.id], network }], - resolveImplementation: () => 'rewards-only-gauge', - resolveFarmAddresses: () => definitions.map(v => v.gaugeAddress ?? null), - resolveFarmContract: ({ address, network }) => - this.curveContractFactory.curveRewardsOnlyGauge({ address, network }), - resolveStakedTokenAddress: ({ contract, multicall }) => multicall.wrap(contract).lp_token(), - resolveRewardTokenAddresses: this.curveRewardsOnlyGaugeRewardTokenStrategy.build(), - resolveIsActive: () => true, - resolveRois: this.curveRewardsOnlyGaugeRoiStrategy.build({ - tokenDefinitions: definitions, - }), - }); - } - - async getChildLiquidityGaugePositions() { - return this.appToolkit.helpers.singleStakingFarmContractPositionHelper.getContractPositions( - { - network, - appId, - groupId, - dependencies: [{ appId: CURVE_DEFINITION.id, groupIds: [CURVE_DEFINITION.groups.pool.id], network }], - resolveImplementation: () => 'child-liquidity-gauge', - resolveFarmAddresses: () => - this.childGaugeAddressHelper.getGaugeAddresses({ - factoryAddress: '0xabc000d88f23bb45525e447528dbf656a9d55bf5', - network, - }), - resolveFarmContract: ({ address, network }) => - this.curveContractFactory.curveChildLiquidityGauge({ address, network }), - resolveStakedTokenAddress: ({ contract, multicall }) => multicall.wrap(contract).lp_token(), - resolveRewardTokenAddresses: this.childGaugeRewardTokenStrategy.build({ - crvTokenAddress: '0x0994206dfe8de6ec6920ff4d779b0d950605fb53', - }), - resolveRois: this.childGaugeRoiStrategy.build(), - resolveIsActive: () => true, - }, - ); - } - - async getPositions() { - const [rewardOnlyGaugePositions, childLiquidityGaugePositions] = await Promise.all([ - this.getRewardsOnlyGaugePositions(), - this.getChildLiquidityGaugePositions(), - ]); - - return [...rewardOnlyGaugePositions, ...childLiquidityGaugePositions]; - } -} diff --git a/src/apps/curve/optimism/curve.gauge.contract-position-fetcher.ts b/src/apps/curve/optimism/curve.gauge.contract-position-fetcher.ts new file mode 100644 index 000000000..d449a665b --- /dev/null +++ b/src/apps/curve/optimism/curve.gauge.contract-position-fetcher.ts @@ -0,0 +1,28 @@ +import { Inject } from '@nestjs/common'; + +import { Register } from '~app-toolkit/decorators'; +import { PositionFetcher } from '~position/position-fetcher.interface'; +import { ContractPosition } from '~position/position.interface'; +import { Network } from '~types/network.interface'; + +import { CURVE_DEFINITION } from '../curve.definition'; +import { CurveGaugeDefaultContractPositionHelper } from '../helpers/curve.gauge.default.contract-position-helper'; + +const appId = CURVE_DEFINITION.id; +const groupId = CURVE_DEFINITION.groups.gauge.id; +const network = Network.OPTIMISM_MAINNET; + +@Register.ContractPositionFetcher({ appId, groupId, network }) +export class OptimismCurveGaugeContractPositionFetcher implements PositionFetcher { + constructor( + @Inject(CurveGaugeDefaultContractPositionHelper) + private readonly curveGaugeDefaultContractPositionHelper: CurveGaugeDefaultContractPositionHelper, + ) {} + + async getPositions() { + return this.curveGaugeDefaultContractPositionHelper.getPositions({ + network, + crvTokenAddress: '0x0994206dfe8de6ec6920ff4d779b0d950605fb53', + }); + } +} diff --git a/src/apps/curve/optimism/curve.pool.definitions.ts b/src/apps/curve/optimism/curve.pool.definitions.ts deleted file mode 100644 index e41b2c324..000000000 --- a/src/apps/curve/optimism/curve.pool.definitions.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { CurvePoolDefinition } from '../curve.types'; - -export const CURVE_V1_POOL_DEFINITIONS: CurvePoolDefinition[] = [ - { - queryKey: '3pool', - label: '3Pool', - swapAddress: '0x1337bedc9d22ecbe766df105c9623922a27963ec', - tokenAddress: '0x1337bedc9d22ecbe766df105c9623922a27963ec', - gaugeAddress: '0x7f90122bf0700f9e7e1f688fe926940e8839f353', - }, -]; diff --git a/src/apps/curve/optimism/curve.pool.token-fetcher.ts b/src/apps/curve/optimism/curve.pool.token-fetcher.ts index 30932c06a..86ea9aad5 100644 --- a/src/apps/curve/optimism/curve.pool.token-fetcher.ts +++ b/src/apps/curve/optimism/curve.pool.token-fetcher.ts @@ -6,10 +6,7 @@ import { AppTokenPosition } from '~position/position.interface'; import { Network } from '~types/network.interface'; import { CURVE_DEFINITION } from '../curve.definition'; -import { CurveFactoryPoolTokenHelper } from '../helpers/curve.factory-pool.token-helper'; -import { CurveV1PoolTokenHelper } from '../helpers/curve.v1-pool.token-helper'; - -import { CURVE_V1_POOL_DEFINITIONS } from './curve.pool.definitions'; +import { CurvePoolDefaultTokenHelper } from '../helpers/curve.pool.default.token-helper'; const appId = CURVE_DEFINITION.id; const groupId = CURVE_DEFINITION.groups.pool.id; @@ -18,34 +15,11 @@ const network = Network.OPTIMISM_MAINNET; @Register.TokenPositionFetcher({ appId, groupId, network }) export class OptimismCurvePoolTokenFetcher implements PositionFetcher { constructor( - @Inject(CurveV1PoolTokenHelper) - private readonly curveV1PoolTokenHelper: CurveV1PoolTokenHelper, - @Inject(CurveFactoryPoolTokenHelper) - private readonly curveFactoryPoolTokenHelper: CurveFactoryPoolTokenHelper, + @Inject(CurvePoolDefaultTokenHelper) + private readonly curvePoolDefaultTokenHelper: CurvePoolDefaultTokenHelper, ) {} async getPositions() { - const [v1Pools] = await Promise.all([ - this.curveV1PoolTokenHelper.getTokens({ - network, - appId, - groupId, - poolDefinitions: CURVE_V1_POOL_DEFINITIONS, - statsUrl: 'https://stats.curve.fi/raw-stats-optimism/apys.json', - }), - ]); - - const [v2FactoryPools] = await Promise.all([ - this.curveFactoryPoolTokenHelper.getTokens({ - factoryAddress: '0x2db0e83599a91b508ac268a6197b8b14f5e72840', - network, - appId, - groupId, - baseCurveTokens: v1Pools, - skipVolume: true, - }), - ]); - - return [v1Pools, v2FactoryPools].flat(); + return this.curvePoolDefaultTokenHelper.getTokens({ network }); } } diff --git a/src/apps/curve/polygon/curve.balance-fetcher.ts b/src/apps/curve/polygon/curve.balance-fetcher.ts index 6f3aa2d13..f249418f7 100644 --- a/src/apps/curve/polygon/curve.balance-fetcher.ts +++ b/src/apps/curve/polygon/curve.balance-fetcher.ts @@ -4,11 +4,10 @@ import { APP_TOOLKIT, IAppToolkit } from '~app-toolkit/app-toolkit.interface'; import { Register } from '~app-toolkit/decorators'; import { presentBalanceFetcherResponse } from '~app-toolkit/helpers/presentation/balance-fetcher-response.present'; import { BalanceFetcher } from '~balance/balance-fetcher.interface'; -import { isClaimable } from '~position/position.utils'; import { Network } from '~types/network.interface'; -import { CurveChildLiquidityGauge, CurveContractFactory, CurveRewardsOnlyGauge } from '../contracts'; import { CURVE_DEFINITION } from '../curve.definition'; +import { CurveGaugeDefaultContractPositionBalanceHelper } from '../helpers/curve.gauge.default.contract-position-balance-helper'; const network = Network.POLYGON_MAINNET; @@ -16,7 +15,8 @@ const network = Network.POLYGON_MAINNET; export class PolygonCurveBalanceFetcher implements BalanceFetcher { constructor( @Inject(APP_TOOLKIT) private readonly appToolkit: IAppToolkit, - @Inject(CurveContractFactory) private readonly curveContractFactory: CurveContractFactory, + @Inject(CurveGaugeDefaultContractPositionBalanceHelper) + private readonly curveGaugeDefaultContractPositionBalanceHelper: CurveGaugeDefaultContractPositionBalanceHelper, ) {} private async getPoolTokenBalances(address: string) { @@ -28,50 +28,17 @@ export class PolygonCurveBalanceFetcher implements BalanceFetcher { }); } - private async getRewardsOnlyGaugeStakedBalances(address: string) { - return this.appToolkit.helpers.singleStakingContractPositionBalanceHelper.getBalances({ + private async getStakedBalances(address: string) { + return this.curveGaugeDefaultContractPositionBalanceHelper.getBalances({ address, - appId: CURVE_DEFINITION.id, - groupId: CURVE_DEFINITION.groups.farm.id, - network, - farmFilter: v => v.dataProps.implementation === 'rewards-only-gauge', - resolveContract: ({ address, network }) => this.curveContractFactory.curveRewardsOnlyGauge({ address, network }), - resolveStakedTokenBalance: ({ contract, address, multicall }) => multicall.wrap(contract).balanceOf(address), - resolveRewardTokenBalances: ({ contract, address, multicall, contractPosition }) => { - const rewardTokens = contractPosition.tokens.filter(isClaimable); - const wrappedContract = multicall.wrap(contract); - return Promise.all(rewardTokens.map(v => wrappedContract.claimable_reward_write(address, v.address))); - }, - }); - } - - private async getChildLiquidityGaugeStakedBalances(address: string) { - return this.appToolkit.helpers.singleStakingContractPositionBalanceHelper.getBalances({ - address, - appId: CURVE_DEFINITION.id, - groupId: CURVE_DEFINITION.groups.farm.id, network, - farmFilter: v => v.dataProps.implementation === 'child-liquidity-gauge', - resolveContract: ({ address, network }) => - this.curveContractFactory.curveChildLiquidityGauge({ address, network }), - resolveStakedTokenBalance: ({ contract, address, multicall }) => multicall.wrap(contract).balanceOf(address), - resolveRewardTokenBalances: async ({ contract, address, multicall, contractPosition }) => { - const rewardTokens = contractPosition.tokens.filter(isClaimable); - const otherRewardTokens = rewardTokens.filter(v => v.symbol !== 'CRV'); - - return Promise.all([ - multicall.wrap(contract).callStatic.claimable_tokens(address), - ...otherRewardTokens.map(v => multicall.wrap(contract).claimable_reward(address, v.address)), - ]); - }, }); } async getBalances(address: string) { - const [poolTokenBalances, rewardOnlyGaugeStakedBalances, childLiquidityGaugeStakedBalances] = await Promise.all([ + const [poolTokenBalances, stakedBalances] = await Promise.all([ this.getPoolTokenBalances(address), - this.getRewardsOnlyGaugeStakedBalances(address), - this.getChildLiquidityGaugeStakedBalances(address), + this.getStakedBalances(address), ]); return presentBalanceFetcherResponse([ @@ -81,7 +48,7 @@ export class PolygonCurveBalanceFetcher implements BalanceFetcher { }, { label: 'Staked', - assets: [...rewardOnlyGaugeStakedBalances, ...childLiquidityGaugeStakedBalances], + assets: stakedBalances, }, ]); } diff --git a/src/apps/curve/polygon/curve.farm.contract-position-fetcher.ts b/src/apps/curve/polygon/curve.farm.contract-position-fetcher.ts deleted file mode 100644 index 1584bebd1..000000000 --- a/src/apps/curve/polygon/curve.farm.contract-position-fetcher.ts +++ /dev/null @@ -1,93 +0,0 @@ -import { Inject } from '@nestjs/common'; - -import { APP_TOOLKIT, IAppToolkit } from '~app-toolkit/app-toolkit.interface'; -import { Register } from '~app-toolkit/decorators'; -import { PositionFetcher } from '~position/position-fetcher.interface'; -import { ContractPosition } from '~position/position.interface'; -import { Network } from '~types/network.interface'; - -import { CurveChildLiquidityGauge, CurveContractFactory, CurveRewardsOnlyGauge } from '../contracts'; -import { CURVE_DEFINITION } from '../curve.definition'; -import { CurveChildLiquidityGaugeFactoryAddressHelper } from '../helpers/curve.child-liquidity-gauge-factory.address-helper'; -import { CurveChildLiquidityGaugeRewardTokenStrategy } from '../helpers/curve.child-liquidity-gauge.reward-token-strategy'; -import { CurveChildLiquidityGaugeRoiStrategy } from '../helpers/curve.child-liquidity-gauge.roi-strategy'; -import { CurveRewardsOnlyGaugeRewardTokenStrategy } from '../helpers/curve.rewards-only-gauge.reward-token-strategy'; -import { CurveRewardsOnlyGaugeRoiStrategy } from '../helpers/curve.rewards-only-gauge.roi-strategy'; - -import { CURVE_V1_POOL_DEFINITIONS, CURVE_V2_POOL_DEFINITIONS } from './curve.pool.definitions'; - -const appId = CURVE_DEFINITION.id; -const groupId = CURVE_DEFINITION.groups.farm.id; -const network = Network.POLYGON_MAINNET; - -@Register.ContractPositionFetcher({ appId, groupId, network }) -export class PolygonCurveFarmContractPositionFetcher implements PositionFetcher { - constructor( - @Inject(APP_TOOLKIT) private readonly appToolkit: IAppToolkit, - @Inject(CurveContractFactory) - private readonly curveContractFactory: CurveContractFactory, - @Inject(CurveRewardsOnlyGaugeRoiStrategy) - private readonly curveRewardsOnlyGaugeRoiStrategy: CurveRewardsOnlyGaugeRoiStrategy, - @Inject(CurveRewardsOnlyGaugeRewardTokenStrategy) - private readonly curveRewardsOnlyGaugeRewardTokenStrategy: CurveRewardsOnlyGaugeRewardTokenStrategy, - @Inject(CurveChildLiquidityGaugeFactoryAddressHelper) - private readonly childGaugeAddressHelper: CurveChildLiquidityGaugeFactoryAddressHelper, - @Inject(CurveChildLiquidityGaugeRoiStrategy) - private readonly childGaugeRoiStrategy: CurveChildLiquidityGaugeRoiStrategy, - @Inject(CurveChildLiquidityGaugeRewardTokenStrategy) - private readonly childGaugeRewardTokenStrategy: CurveChildLiquidityGaugeRewardTokenStrategy, - ) {} - - async getRewardsOnlyGaugePositions() { - const definitions = [CURVE_V1_POOL_DEFINITIONS, CURVE_V2_POOL_DEFINITIONS].flat().filter(v => !!v.gaugeAddress); - - return this.appToolkit.helpers.singleStakingFarmContractPositionHelper.getContractPositions({ - network, - appId, - groupId, - dependencies: [{ appId: CURVE_DEFINITION.id, groupIds: [CURVE_DEFINITION.groups.pool.id], network }], - resolveImplementation: () => 'rewards-only-gauge', - resolveFarmAddresses: () => definitions.map(v => v.gaugeAddress!), - resolveFarmContract: ({ address, network }) => - this.curveContractFactory.curveRewardsOnlyGauge({ address, network }), - resolveStakedTokenAddress: ({ contract, multicall }) => multicall.wrap(contract).lp_token(), - resolveRewardTokenAddresses: this.curveRewardsOnlyGaugeRewardTokenStrategy.build(), - resolveRois: this.curveRewardsOnlyGaugeRoiStrategy.build({ tokenDefinitions: definitions }), - resolveIsActive: () => true, - }); - } - - async getChildLiquidityGaugePositions() { - return this.appToolkit.helpers.singleStakingFarmContractPositionHelper.getContractPositions( - { - network, - appId, - groupId, - dependencies: [{ appId: CURVE_DEFINITION.id, groupIds: [CURVE_DEFINITION.groups.pool.id], network }], - resolveImplementation: () => 'child-liquidity-gauge', - resolveFarmAddresses: () => - this.childGaugeAddressHelper.getGaugeAddresses({ - factoryAddress: '0xabc000d88f23bb45525e447528dbf656a9d55bf5', - network, - }), - resolveFarmContract: ({ address, network }) => - this.curveContractFactory.curveChildLiquidityGauge({ address, network }), - resolveStakedTokenAddress: ({ contract, multicall }) => multicall.wrap(contract).lp_token(), - resolveRewardTokenAddresses: this.childGaugeRewardTokenStrategy.build({ - crvTokenAddress: '0x172370d5cd63279efa6d502dab29171933a610af', - }), - resolveRois: this.childGaugeRoiStrategy.build(), - resolveIsActive: () => true, - }, - ); - } - - async getPositions() { - const [rewardOnlyGaugePositions, childLiquidityGaugePositions] = await Promise.all([ - this.getRewardsOnlyGaugePositions(), - this.getChildLiquidityGaugePositions(), - ]); - - return [...rewardOnlyGaugePositions, ...childLiquidityGaugePositions]; - } -} diff --git a/src/apps/curve/polygon/curve.gauge.contract-position-fetcher.ts b/src/apps/curve/polygon/curve.gauge.contract-position-fetcher.ts new file mode 100644 index 000000000..d82c06956 --- /dev/null +++ b/src/apps/curve/polygon/curve.gauge.contract-position-fetcher.ts @@ -0,0 +1,28 @@ +import { Inject } from '@nestjs/common'; + +import { Register } from '~app-toolkit/decorators'; +import { PositionFetcher } from '~position/position-fetcher.interface'; +import { ContractPosition } from '~position/position.interface'; +import { Network } from '~types/network.interface'; + +import { CURVE_DEFINITION } from '../curve.definition'; +import { CurveGaugeDefaultContractPositionHelper } from '../helpers/curve.gauge.default.contract-position-helper'; + +const appId = CURVE_DEFINITION.id; +const groupId = CURVE_DEFINITION.groups.gauge.id; +const network = Network.POLYGON_MAINNET; + +@Register.ContractPositionFetcher({ appId, groupId, network }) +export class PolygonCurveGaugeContractPositionFetcher implements PositionFetcher { + constructor( + @Inject(CurveGaugeDefaultContractPositionHelper) + private readonly curveGaugeDefaultContractPositionHelper: CurveGaugeDefaultContractPositionHelper, + ) {} + + async getPositions() { + return this.curveGaugeDefaultContractPositionHelper.getPositions({ + network, + crvTokenAddress: '0x172370d5cd63279efa6d502dab29171933a610af', + }); + } +} diff --git a/src/apps/curve/polygon/curve.pool.definitions.ts b/src/apps/curve/polygon/curve.pool.definitions.ts deleted file mode 100644 index 042e784dc..000000000 --- a/src/apps/curve/polygon/curve.pool.definitions.ts +++ /dev/null @@ -1,56 +0,0 @@ -import { CurvePoolDefinition } from '../curve.types'; - -export const CURVE_V1_POOL_DEFINITIONS: CurvePoolDefinition[] = [ - { - queryKey: 'aave', - label: 'Aave 3Pool', - swapAddress: '0x445fe580ef8d70ff569ab36e80c647af338db351', - tokenAddress: '0xe7a24ef0c5e95ffb0f6684b813a78f2a3ad7d171', - gaugeAddress: '0x19793b454d3afc7b454f206ffe95ade26ca6912c', - streamAddress: '0xc48f4653dd6a9509de44c92beb0604bea3aee714', - }, - { - queryKey: 'renBTC', - swapAddress: '0xc2d95eef97ec6c17551d45e77b590dc1f9117c67', - tokenAddress: '0xf8a57c1d3b9629b77b6726a042ca48990a84fb49', - gaugeAddress: '0xffbacce0cc7c19d46132f1258fc16cf6871d153c', - streamAddress: '0x488e6ef919c2bb9de535c634a80afb0114da8f62', - }, -]; - -export const CURVE_V2_POOL_DEFINITIONS: CurvePoolDefinition[] = [ - { - queryKey: 'eurtusd', - swapAddress: '0xb446bf7b8d6d4276d0c75ec0e3ee8dd7fe15783a', - tokenAddress: '0x600743b1d8a96438bd46836fd34977a00293f6aa', - gaugeAddress: '0x40c0e9376468b4f257d15f8c47e5d0c646c28880', - streamAddress: '0xaf78381216a8ecc7ad5957f3cd12a431500e0b0d', - }, - { - queryKey: 'atricrypto', - label: 'Aave TriCrypto', - swapAddress: '0x751b1e21756bdbc307cbcc5085c042a0e9aaef36', - tokenAddress: '0x8096ac61db23291252574d49f036f0f9ed8ab390', - gaugeAddress: '0xb0a366b987d77b5ed5803cbd95c80bb6deab48c0', - }, - { - queryKey: 'atricrypto2', - label: 'Aave TriCrypto2', - swapAddress: '0x92577943c7ac4accb35288ab2cc84d75fec330af', - tokenAddress: '0xbece5d20a8a104c54183cc316c8286e3f00ffc71', - gaugeAddress: '0x9bd996db02b3f271c6533235d452a56bc2cd195a', - }, - { - queryKey: 'atricrypto3', - label: 'Aave TriCrypto3', - swapAddress: '0x92215849c439e1f8612b6646060b4e3e5ef822cc', - tokenAddress: '0xdad97f7713ae9437fa9249920ec8507e5fbb23d3', - gaugeAddress: '0x3b6b158a76fd8ccc297538f454ce7b4787778c7c', - streamAddress: '0x060e386ecfbacf42aa72171af9efe17b3993fc4f', - }, - { - queryKey: 'mai3pool3crv', - swapAddress: '0x447646e84498552e62ecf097cc305eabfff09308', - tokenAddress: '0x447646e84498552e62ecf097cc305eabfff09308', - }, -]; diff --git a/src/apps/curve/polygon/curve.pool.token-fetcher.ts b/src/apps/curve/polygon/curve.pool.token-fetcher.ts index 26a865361..21e706844 100644 --- a/src/apps/curve/polygon/curve.pool.token-fetcher.ts +++ b/src/apps/curve/polygon/curve.pool.token-fetcher.ts @@ -1,15 +1,13 @@ import { Inject } from '@nestjs/common'; import { Register } from '~app-toolkit/decorators'; +import { AAVE_V2_DEFINITION } from '~apps/aave-v2/aave-v2.definition'; import { PositionFetcher } from '~position/position-fetcher.interface'; import { AppTokenPosition } from '~position/position.interface'; import { Network } from '~types/network.interface'; import { CURVE_DEFINITION } from '../curve.definition'; -import { CurveV1PoolTokenHelper } from '../helpers/curve.v1-pool.token-helper'; -import { CurveV2PoolTokenHelper } from '../helpers/curve.v2-pool.token-helper'; - -import { CURVE_V1_POOL_DEFINITIONS, CURVE_V2_POOL_DEFINITIONS } from './curve.pool.definitions'; +import { CurvePoolDefaultTokenHelper } from '../helpers/curve.pool.default.token-helper'; const appId = CURVE_DEFINITION.id; const groupId = CURVE_DEFINITION.groups.pool.id; @@ -18,49 +16,14 @@ const network = Network.POLYGON_MAINNET; @Register.TokenPositionFetcher({ appId, groupId, network }) export class PolygonCurvePoolTokenFetcher implements PositionFetcher { constructor( - @Inject(CurveV1PoolTokenHelper) - private readonly curveV1PoolTokenHelper: CurveV1PoolTokenHelper, - @Inject(CurveV2PoolTokenHelper) - private readonly curveV2PoolTokenHelper: CurveV2PoolTokenHelper, + @Inject(CurvePoolDefaultTokenHelper) + private readonly curvePoolDefaultTokenHelper: CurvePoolDefaultTokenHelper, ) {} async getPositions() { - const [v1Pools] = await Promise.all([ - this.curveV1PoolTokenHelper.getTokens({ - network, - appId, - groupId, - poolDefinitions: CURVE_V1_POOL_DEFINITIONS, - statsUrl: 'https://stats.curve.fi/raw-stats-polygon/apys.json', - appTokenDependencies: [ - // @TODO: Migrate all these :pain: - { - appId: 'aave-v2', - groupIds: ['supply'], - network, - }, - ], - }), - ]); - - const [v2Pools] = await Promise.all([ - this.curveV2PoolTokenHelper.getTokens({ - network, - appId, - groupId, - poolDefinitions: CURVE_V2_POOL_DEFINITIONS, - statsUrl: 'https://stats.curve.fi/raw-stats-polygon/apys.json', - baseCurveTokens: v1Pools, - appTokenDependencies: [ - { - appId: 'aave-v2', - groupIds: ['supply'], - network, - }, - ], - }), - ]); - - return [v1Pools, v2Pools].flat(); + return this.curvePoolDefaultTokenHelper.getTokens({ + network, + dependencies: [{ appId: AAVE_V2_DEFINITION.id, groupIds: [AAVE_V2_DEFINITION.groups.supply.id], network }], + }); } } diff --git a/src/apps/kinesis-labs/evmos/kinesis-labs.pool.definitions.ts b/src/apps/kinesis-labs/evmos/kinesis-labs.pool.definitions.ts index b8fce44ec..d4f3f6495 100644 --- a/src/apps/kinesis-labs/evmos/kinesis-labs.pool.definitions.ts +++ b/src/apps/kinesis-labs/evmos/kinesis-labs.pool.definitions.ts @@ -5,10 +5,20 @@ export const KINESIS_LABS_BASEPOOL_DEFINITIONS: CurvePoolDefinition[] = [ { swapAddress: '0x49b97224655aad13832296b8f6185231afb8aacc', tokenAddress: '0xfb25679ff0651cde4cf58887be266b68326ddab6', + coinAddresses: [ + '0xe03494d0033687543a80c9b1ca7d6237f2ea8bd8', + '0x51e44ffad5c2b122c8b635671fcc8139dc636e82', + '0x7ff4a56b32ee13d7d4d405887e0ea37d61ed919e', + ], }, // Celer Base Pool celerUSDC/celerUSDT/FRAX { swapAddress: '0xbbd5a7ae45a484bd8dabdfeeeb33e4b859d2c95c', tokenAddress: '0xf6b65b88a9e7846ed0de503e682cc230f892c2fa', + coinAddresses: [ + '0xe03494d0033687543a80c9b1ca7d6237f2ea8bd8', + '0xe46910336479f254723710d57e7b683f3315b22b', + '0xb72a7567847aba28a2819b855d7fe679d4f59846', + ], }, ]; diff --git a/src/apps/kinesis-labs/evmos/kinesis-labs.pool.token-fetcher.ts b/src/apps/kinesis-labs/evmos/kinesis-labs.pool.token-fetcher.ts index e8d6d9562..a1897747a 100644 --- a/src/apps/kinesis-labs/evmos/kinesis-labs.pool.token-fetcher.ts +++ b/src/apps/kinesis-labs/evmos/kinesis-labs.pool.token-fetcher.ts @@ -3,15 +3,12 @@ import { BigNumber } from 'ethers'; import { uniqBy } from 'lodash'; import { Register } from '~app-toolkit/decorators'; -import { CurvePoolTokenHelper, CurveVirtualPriceStrategy } from '~apps/curve'; -import { Erc20 } from '~contract/contracts'; +import { CurvePoolTokenHelper, CurvePoolVirtualPriceStrategy } from '~apps/curve'; import { PositionFetcher } from '~position/position-fetcher.interface'; import { AppTokenPosition } from '~position/position.interface'; import { Network } from '~types/network.interface'; import { KinesisLabsContractFactory, KinesisLabsPool } from '../contracts'; -import { KinesisLabsOnChainCoinStrategy } from '../helpers/kinesis-labs.on-chain.coin-strategy'; -import { KinesisLabsOnChainReserveStrategy } from '../helpers/kinesis-labs.on-chain.reserve-strategy'; import { KINESIS_LABS_DEFINITION } from '../kinesis-labs.definition'; import { KINESIS_LABS_BASEPOOL_DEFINITIONS } from './kinesis-labs.pool.definitions'; @@ -25,31 +22,23 @@ export class EvmosKinesisLabsPoolTokenFetcher implements PositionFetcher({ + const basePools = await this.curvePoolTokenHelper.getTokens({ network, appId, groupId, - resolvePoolDefinitions: async () => KINESIS_LABS_BASEPOOL_DEFINITIONS, + poolDefinitions: KINESIS_LABS_BASEPOOL_DEFINITIONS, resolvePoolContract: ({ network, definition }) => this.kinesisLabsContractFactory.kinesisLabsPool({ network, address: definition.swapAddress }), - resolvePoolTokenContract: ({ network, definition }) => - this.kinesisLabsContractFactory.erc20({ network, address: definition.tokenAddress }), - resolvePoolCoinAddresses: this.kinesisLabsOnChainCoinStrategy.build(), - resolvePoolReserves: this.kinesisLabsOnChainReserveStrategy.build(), + resolvePoolReserves: ({ definition, multicall, poolContract }) => + Promise.all(definition.coinAddresses.map((_, i) => multicall.wrap(poolContract).getTokenBalance(i))), resolvePoolFee: async () => BigNumber.from('4000000'), - resolvePoolTokenSymbol: ({ multicall, poolTokenContract }) => multicall.wrap(poolTokenContract).symbol(), - resolvePoolTokenSupply: ({ multicall, poolTokenContract }) => multicall.wrap(poolTokenContract).totalSupply(), - resolvePoolTokenPrice: this.curveVirtualPriceStrategy.build({ + resolvePoolTokenPrice: this.curvePoolVirtualPriceStrategy.build({ resolveVirtualPrice: ({ multicall, poolContract }) => multicall.wrap(poolContract).getVirtualPrice(), }), }); diff --git a/src/apps/kinesis-labs/helpers/kinesis-labs.on-chain.coin-strategy.ts b/src/apps/kinesis-labs/helpers/kinesis-labs.on-chain.coin-strategy.ts deleted file mode 100644 index 714707bdc..000000000 --- a/src/apps/kinesis-labs/helpers/kinesis-labs.on-chain.coin-strategy.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { compact } from 'lodash'; - -import { IMulticallWrapper } from '~multicall/multicall.interface'; - -import { KinesisLabsPool } from '../contracts'; - -export class KinesisLabsOnChainCoinStrategy { - build() { - return async ({ poolContract, multicall }: { poolContract: KinesisLabsPool; multicall: IMulticallWrapper }) => { - const tokenAddresses = await Promise.all([ - multicall - .wrap(poolContract) - .getToken(0) - .catch(() => null), - multicall - .wrap(poolContract) - .getToken(1) - .catch(() => null), - multicall - .wrap(poolContract) - .getToken(2) - .catch(() => null), - multicall - .wrap(poolContract) - .getToken(3) - .catch(() => null), - ]); - - return compact(tokenAddresses).map(v => v.toLowerCase()); - }; - } -} diff --git a/src/apps/kinesis-labs/helpers/kinesis-labs.on-chain.reserve-strategy.ts b/src/apps/kinesis-labs/helpers/kinesis-labs.on-chain.reserve-strategy.ts deleted file mode 100644 index 1ef3cc547..000000000 --- a/src/apps/kinesis-labs/helpers/kinesis-labs.on-chain.reserve-strategy.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { compact } from 'lodash'; - -import { IMulticallWrapper } from '~multicall/multicall.interface'; - -import { KinesisLabsPool } from '../contracts'; - -export class KinesisLabsOnChainReserveStrategy { - build() { - return async ({ poolContract, multicall }: { poolContract: KinesisLabsPool; multicall: IMulticallWrapper }) => { - const tokenAddresses = await Promise.all([ - multicall - .wrap(poolContract) - .getTokenBalance(0) - .then(v => v.toString()) - .catch(() => null), - multicall - .wrap(poolContract) - .getTokenBalance(1) - .then(v => v.toString()) - .catch(() => null), - multicall - .wrap(poolContract) - .getTokenBalance(2) - .then(v => v.toString()) - .catch(() => null), - multicall - .wrap(poolContract) - .getTokenBalance(3) - .then(v => v.toString()) - .catch(() => null), - ]); - - return compact(tokenAddresses); - }; - } -} diff --git a/src/apps/kinesis-labs/kinesis-labs.module.ts b/src/apps/kinesis-labs/kinesis-labs.module.ts index 67f82f96f..0c641cac8 100644 --- a/src/apps/kinesis-labs/kinesis-labs.module.ts +++ b/src/apps/kinesis-labs/kinesis-labs.module.ts @@ -1,11 +1,9 @@ import { Register } from '~app-toolkit/decorators'; import { AbstractApp } from '~app/app.dynamic-module'; -import { CurvePoolTokenHelper, CurveVirtualPriceStrategy } from '~apps/curve'; +import { CurvePoolTokenHelper, CurvePoolVirtualPriceStrategy } from '~apps/curve'; import { KinesisLabsContractFactory } from './contracts'; import { EvmosKinesisLabsPoolTokenFetcher } from './evmos/kinesis-labs.pool.token-fetcher'; -import { KinesisLabsOnChainCoinStrategy } from './helpers/kinesis-labs.on-chain.coin-strategy'; -import { KinesisLabsOnChainReserveStrategy } from './helpers/kinesis-labs.on-chain.reserve-strategy'; import { KinesisLabsAppDefinition, KINESIS_LABS_DEFINITION } from './kinesis-labs.definition'; @Register.AppModule({ @@ -15,9 +13,7 @@ import { KinesisLabsAppDefinition, KINESIS_LABS_DEFINITION } from './kinesis-lab KinesisLabsAppDefinition, KinesisLabsContractFactory, CurvePoolTokenHelper, - CurveVirtualPriceStrategy, - KinesisLabsOnChainCoinStrategy, - KinesisLabsOnChainReserveStrategy, + CurvePoolVirtualPriceStrategy, ], }) export class KinesisLabsAppModule extends AbstractApp() {} diff --git a/src/apps/saddle/ethereum/saddle.pool.definitions.ts b/src/apps/saddle/ethereum/saddle.pool.definitions.ts index 5695a3905..7758aa27a 100644 --- a/src/apps/saddle/ethereum/saddle.pool.definitions.ts +++ b/src/apps/saddle/ethereum/saddle.pool.definitions.ts @@ -1,57 +1,95 @@ import { CurvePoolDefinition } from '~apps/curve/curve.types'; -export const SADDLE_BASEPOOL_DEFINITIONS: CurvePoolDefinition[] = [ +export const SADDLE_POOL_DEFINITIONS: CurvePoolDefinition[] = [ // Saddle tBTC/wBTC/renBTC/sBTC (BTC Pool v1) { swapAddress: '0x4f6a43ad7cba042606decaca730d4ce0a57ac62e', tokenAddress: '0xc28df698475dec994be00c9c9d8658a548e6304f', + coinAddresses: [ + '0x8daebade922df735c38c80c7ebd708af50815faa', + '0x2260fac5e5542a773aa44fbcfedf7c193bc2c599', + '0xeb4c2781e4eba804ce9a9803c67d0893436bb27d', + '0xfe18be6b3bd88a2d2a7f928d00292e7a9963cfc6', + ], }, // Saddle wBTC/renBTC/sBTC (BTC Pool V2) { swapAddress: '0xdf3309771d2bf82cb2b6c56f9f5365c8bd97c4f2', tokenAddress: '0xf32e91464ca18fc156ab97a697d6f8ae66cd21a3', + coinAddresses: [ + '0x2260fac5e5542a773aa44fbcfedf7c193bc2c599', + '0xeb4c2781e4eba804ce9a9803c67d0893436bb27d', + '0xfe18be6b3bd88a2d2a7f928d00292e7a9963cfc6', + ], }, // Saddle DAI/USDC/USDT (v1) { swapAddress: '0x3911f80530595fbd01ab1516ab61255d75aeb066', tokenAddress: '0x76204f8cfe8b95191a3d1cfa59e267ea65e06fac', + coinAddresses: [ + '0x6b175474e89094c44da98b954eedeac495271d0f', + '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48', + '0xdac17f958d2ee523a2206206994597c13d831ec7', + ], }, // Saddle WETH/vETH2 (v1) { swapAddress: '0xdec2157831d6abc3ec328291119cc91b337272b5', tokenAddress: '0xe37e2a01fea778bc1717d72bd9f018b6a6b241d5', + coinAddresses: ['0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', '0x898bad2774eb97cf6b94605677f43b41871410b1'], }, // Saddle alETH (v2) { swapAddress: '0xa6018520eaacc06c30ff2e1b3ee2c7c22e64196a', tokenAddress: '0xc9da65931abf0ed1b74ce5ad8c041c4220940368', + coinAddresses: [ + '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', + '0x0100546f2cd4c9d97f798ffc9755e47865ff7ee6', + '0x5e74c9036fb86bd7ecdcb084a0673efc32ea31cb', + ], }, // Saddle D4 (v2) { swapAddress: '0xc69ddcd4dfef25d8a793241834d4cc4b3668ead6', tokenAddress: '0xd48cf4d7fb0824cc8bae055df3092584d0a1726a', + coinAddresses: [ + '0xbc6da0fe9ad5f3b0d58160288917aa56653660e9', + '0x956f47f50a910163d8bf957cf5846d573e7f87ca', + '0x853d955acef822db058eb8505911ed77f175b99e', + '0x5f98805a4e8be255a32880fdec7f6728c6568ba0', + ], }, // Saddle 4Pool { swapAddress: '0x101cd330d088634b6f64c2eb4276e63bf1bbfde3', tokenAddress: '0x1b4ab394327fdf9524632ddf2f0f04f9fa1fe2ec', + coinAddresses: [ + '0x6b175474e89094c44da98b954eedeac495271d0f', + '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48', + '0xdac17f958d2ee523a2206206994597c13d831ec7', + '0x853d955acef822db058eb8505911ed77f175b99e', + ], }, // Saddle Frax 3Pool { swapAddress: '0x8caea59f3bf1f341f89c51607e4919841131e47a', tokenAddress: '0x0785addf5f7334adb7ec40cd785ebf39bfd91520', + coinAddresses: [ + '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48', + '0xdac17f958d2ee523a2206206994597c13d831ec7', + '0x853d955acef822db058eb8505911ed77f175b99e', + ], }, -]; - -export const SADDLE_METAPOOL_DEFINITIONS: CurvePoolDefinition[] = [ // Saddle tBTCV2/wBTC/renBTC/sBTC (tBTCv2 Metapool V1) { swapAddress: '0xf74ebe6e5586275dc4ced78f5dbef31b1efbe7a5', tokenAddress: '0x122eca07139eb368245a29fb702c9ff11e9693b7', + coinAddresses: ['0x18084fba666a33d37592fa2633fd49a74dd93a88', '0xf32e91464ca18fc156ab97a697d6f8ae66cd21a3'], }, // Saddle tBTCV2/wBTC/renBTC/sBTC (tBTCv2 Metapool V2) { swapAddress: '0xa0b4a2667dd60d5cdd7ecff1084f0ceb8dd84326', tokenAddress: '0x3f2f811605bc6d701c3ad6e501be13461c560320', + coinAddresses: ['0x18084fba666a33d37592fa2633fd49a74dd93a88', '0xf32e91464ca18fc156ab97a697d6f8ae66cd21a3'], }, ]; diff --git a/src/apps/saddle/ethereum/saddle.pool.token-fetcher.ts b/src/apps/saddle/ethereum/saddle.pool.token-fetcher.ts index 40cb0894d..ec6f13078 100644 --- a/src/apps/saddle/ethereum/saddle.pool.token-fetcher.ts +++ b/src/apps/saddle/ethereum/saddle.pool.token-fetcher.ts @@ -1,20 +1,16 @@ import { Inject } from '@nestjs/common'; import { BigNumber } from 'ethers'; -import { uniqBy } from 'lodash'; import { Register } from '~app-toolkit/decorators'; -import { CurvePoolTokenHelper, CurveVirtualPriceStrategy } from '~apps/curve'; -import { Erc20 } from '~contract/contracts'; +import { CurvePoolTokenHelper, CurvePoolVirtualPriceStrategy } from '~apps/curve'; import { PositionFetcher } from '~position/position-fetcher.interface'; import { AppTokenPosition } from '~position/position.interface'; import { Network } from '~types/network.interface'; import { SaddleContractFactory, SaddleSwap } from '../contracts'; -import { SaddleOnChainCoinStrategy } from '../helpers/saddle.on-chain.coin-strategy'; -import { SaddleOnChainReserveStrategy } from '../helpers/saddle.on-chain.reserve-strategy'; import { SADDLE_DEFINITION } from '../saddle.definition'; -import { SADDLE_BASEPOOL_DEFINITIONS, SADDLE_METAPOOL_DEFINITIONS } from './saddle.pool.definitions'; +import { SADDLE_POOL_DEFINITIONS } from './saddle.pool.definitions'; @Register.TokenPositionFetcher({ appId: SADDLE_DEFINITION.id, @@ -25,56 +21,26 @@ export class EthereumSaddlePoolTokenFetcher implements PositionFetcher({ + return this.curvePoolTokenHelper.getTokens({ network: Network.ETHEREUM_MAINNET, appId: SADDLE_DEFINITION.id, groupId: SADDLE_DEFINITION.groups.pool.id, - resolvePoolDefinitions: async () => SADDLE_BASEPOOL_DEFINITIONS, + poolDefinitions: SADDLE_POOL_DEFINITIONS, resolvePoolContract: ({ network, definition }) => this.saddleContractFactory.saddleSwap({ network, address: definition.swapAddress }), - resolvePoolTokenContract: ({ network, definition }) => - this.saddleContractFactory.erc20({ network, address: definition.tokenAddress }), - resolvePoolCoinAddresses: this.saddleOnChainCoinStrategy.build(), - resolvePoolReserves: this.saddleOnChainReserveStrategy.build(), + resolvePoolReserves: async ({ definition, multicall, poolContract }) => + Promise.all(definition.coinAddresses.map((_, i) => multicall.wrap(poolContract).getTokenBalance(i))), resolvePoolFee: async () => BigNumber.from('4000000'), - resolvePoolTokenSymbol: ({ multicall, poolTokenContract }) => multicall.wrap(poolTokenContract).symbol(), - resolvePoolTokenSupply: ({ multicall, poolTokenContract }) => multicall.wrap(poolTokenContract).totalSupply(), - resolvePoolTokenPrice: this.curveVirtualPriceStrategy.build({ + resolvePoolTokenPrice: this.curvePoolVirtualPriceStrategy.build({ resolveVirtualPrice: ({ multicall, poolContract }) => multicall.wrap(poolContract).getVirtualPrice(), }), }); - - const metaPools = await this.curvePoolTokenHelper.getTokens({ - network: Network.ETHEREUM_MAINNET, - appId: SADDLE_DEFINITION.id, - groupId: SADDLE_DEFINITION.groups.pool.id, - baseCurveTokens: basePools, - resolvePoolDefinitions: async () => SADDLE_METAPOOL_DEFINITIONS, - resolvePoolContract: ({ network, definition }) => - this.saddleContractFactory.saddleSwap({ network, address: definition.swapAddress }), - resolvePoolTokenContract: ({ network, definition }) => - this.saddleContractFactory.erc20({ network, address: definition.tokenAddress }), - resolvePoolCoinAddresses: this.saddleOnChainCoinStrategy.build(), - resolvePoolReserves: this.saddleOnChainReserveStrategy.build(), - resolvePoolFee: async () => BigNumber.from('4000000'), - resolvePoolTokenSymbol: ({ multicall, poolTokenContract }) => multicall.wrap(poolTokenContract).symbol(), - resolvePoolTokenSupply: ({ multicall, poolTokenContract }) => multicall.wrap(poolTokenContract).totalSupply(), - resolvePoolTokenPrice: this.curveVirtualPriceStrategy.build({ - resolveVirtualPrice: ({ multicall, poolContract }) => multicall.wrap(poolContract).getVirtualPrice(), - }), - }); - - return uniqBy([basePools, metaPools].flat(), v => v.address); } } diff --git a/src/apps/saddle/evmos/saddle.pool.definitions.ts b/src/apps/saddle/evmos/saddle.pool.definitions.ts index 079942b1c..11ddc61ee 100644 --- a/src/apps/saddle/evmos/saddle.pool.definitions.ts +++ b/src/apps/saddle/evmos/saddle.pool.definitions.ts @@ -1,9 +1,14 @@ import { CurvePoolDefinition } from '~apps/curve/curve.types'; -export const SADDLE_BASEPOOL_DEFINITIONS: CurvePoolDefinition[] = [ +export const SADDLE_POOL_DEFINITIONS: CurvePoolDefinition[] = [ // Evmos Frax saddle3PoolFRAX/USDC/USDT { swapAddress: '0x21d4365834b7c61447e142ef6bcf01136cbd01c6', tokenAddress: '0x2801fe8f9de3a4ad6098a5b95d5165676bb01f82', + coinAddresses: [ + '0x51e44ffad5c2b122c8b635671fcc8139dc636e82', + '0x7ff4a56b32ee13d7d4d405887e0ea37d61ed919e', + '0xe03494d0033687543a80c9b1ca7d6237f2ea8bd8', + ], }, ]; diff --git a/src/apps/saddle/evmos/saddle.pool.token-fetcher.ts b/src/apps/saddle/evmos/saddle.pool.token-fetcher.ts index 763d48feb..919cd91e5 100644 --- a/src/apps/saddle/evmos/saddle.pool.token-fetcher.ts +++ b/src/apps/saddle/evmos/saddle.pool.token-fetcher.ts @@ -2,18 +2,15 @@ import { Inject } from '@nestjs/common'; import { BigNumber } from 'ethers'; import { Register } from '~app-toolkit/decorators'; -import { CurvePoolTokenHelper, CurveVirtualPriceStrategy } from '~apps/curve'; -import { Erc20 } from '~contract/contracts'; +import { CurvePoolTokenHelper, CurvePoolVirtualPriceStrategy } from '~apps/curve'; import { PositionFetcher } from '~position/position-fetcher.interface'; import { AppTokenPosition } from '~position/position.interface'; import { Network } from '~types/network.interface'; import { SaddleContractFactory, SaddleSwap } from '../contracts'; -import { SaddleOnChainCoinStrategy } from '../helpers/saddle.on-chain.coin-strategy'; -import { SaddleOnChainReserveStrategy } from '../helpers/saddle.on-chain.reserve-strategy'; import { SADDLE_DEFINITION } from '../saddle.definition'; -import { SADDLE_BASEPOOL_DEFINITIONS } from './saddle.pool.definitions'; +import { SADDLE_POOL_DEFINITIONS } from './saddle.pool.definitions'; @Register.TokenPositionFetcher({ appId: SADDLE_DEFINITION.id, @@ -24,32 +21,24 @@ export class EvmosSaddlePoolTokenFetcher implements PositionFetcher({ + const basePools = await this.curvePoolTokenHelper.getTokens({ network: Network.EVMOS_MAINNET, appId: SADDLE_DEFINITION.id, groupId: SADDLE_DEFINITION.groups.pool.id, - resolvePoolDefinitions: async () => SADDLE_BASEPOOL_DEFINITIONS, + poolDefinitions: SADDLE_POOL_DEFINITIONS, resolvePoolContract: ({ network, definition }) => this.saddleContractFactory.saddleSwap({ network, address: definition.swapAddress }), - resolvePoolTokenContract: ({ network, definition }) => - this.saddleContractFactory.erc20({ network, address: definition.tokenAddress }), - resolvePoolCoinAddresses: this.saddleOnChainCoinStrategy.build(), - resolvePoolReserves: this.saddleOnChainReserveStrategy.build(), + resolvePoolReserves: async ({ definition, multicall, poolContract }) => + Promise.all(definition.coinAddresses.map((_, i) => multicall.wrap(poolContract).getTokenBalance(i))), resolvePoolFee: async () => BigNumber.from('4000000'), - resolvePoolTokenSymbol: ({ multicall, poolTokenContract }) => multicall.wrap(poolTokenContract).symbol(), - resolvePoolTokenSupply: ({ multicall, poolTokenContract }) => multicall.wrap(poolTokenContract).totalSupply(), - resolvePoolTokenPrice: this.curveVirtualPriceStrategy.build({ + resolvePoolTokenPrice: this.curvePoolVirtualPriceStrategy.build({ resolveVirtualPrice: ({ multicall, poolContract }) => multicall.wrap(poolContract).getVirtualPrice(), }), }); diff --git a/src/apps/saddle/helpers/saddle.on-chain.coin-strategy.ts b/src/apps/saddle/helpers/saddle.on-chain.coin-strategy.ts deleted file mode 100644 index ae309d196..000000000 --- a/src/apps/saddle/helpers/saddle.on-chain.coin-strategy.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { compact } from 'lodash'; - -import { IMulticallWrapper } from '~multicall/multicall.interface'; - -import { SaddleSwap } from '../contracts'; - -export class SaddleOnChainCoinStrategy { - build() { - return async ({ poolContract, multicall }: { poolContract: SaddleSwap; multicall: IMulticallWrapper }) => { - const tokenAddresses = await Promise.all([ - multicall - .wrap(poolContract) - .getToken(0) - .catch(() => null), - multicall - .wrap(poolContract) - .getToken(1) - .catch(() => null), - multicall - .wrap(poolContract) - .getToken(2) - .catch(() => null), - multicall - .wrap(poolContract) - .getToken(3) - .catch(() => null), - ]); - - return compact(tokenAddresses).map(v => v.toLowerCase()); - }; - } -} diff --git a/src/apps/saddle/helpers/saddle.on-chain.reserve-strategy.ts b/src/apps/saddle/helpers/saddle.on-chain.reserve-strategy.ts deleted file mode 100644 index c33384815..000000000 --- a/src/apps/saddle/helpers/saddle.on-chain.reserve-strategy.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { compact } from 'lodash'; - -import { IMulticallWrapper } from '~multicall/multicall.interface'; - -import { SaddleSwap } from '../contracts'; - -export class SaddleOnChainReserveStrategy { - build() { - return async ({ poolContract, multicall }: { poolContract: SaddleSwap; multicall: IMulticallWrapper }) => { - const tokenAddresses = await Promise.all([ - multicall - .wrap(poolContract) - .getTokenBalance(0) - .then(v => v.toString()) - .catch(() => null), - multicall - .wrap(poolContract) - .getTokenBalance(1) - .then(v => v.toString()) - .catch(() => null), - multicall - .wrap(poolContract) - .getTokenBalance(2) - .then(v => v.toString()) - .catch(() => null), - multicall - .wrap(poolContract) - .getTokenBalance(3) - .then(v => v.toString()) - .catch(() => null), - ]); - - return compact(tokenAddresses); - }; - } -} diff --git a/src/apps/saddle/saddle.module.ts b/src/apps/saddle/saddle.module.ts index 5dd11e3e6..f843d7c56 100644 --- a/src/apps/saddle/saddle.module.ts +++ b/src/apps/saddle/saddle.module.ts @@ -1,6 +1,6 @@ import { Register } from '~app-toolkit/decorators'; import { AbstractApp } from '~app/app.dynamic-module'; -import { CurvePoolTokenHelper, CurveVirtualPriceStrategy } from '~apps/curve'; +import { CurvePoolTokenHelper, CurvePoolVirtualPriceStrategy } from '~apps/curve'; import { SynthetixAppModule } from '~apps/synthetix'; import { SaddleContractFactory } from './contracts'; @@ -11,16 +11,17 @@ import { EthereumSaddlePoolTokenFetcher } from './ethereum/saddle.pool.token-fet import { EvmosSaddleBalanceFetcher } from './evmos/saddle.balance-fetcher'; import { EvmosSaddleMiniChefV2FarmContractPositionFetcher } from './evmos/saddle.mini-chef-v2-farm.contract-position-fetcher'; import { EvmosSaddlePoolTokenFetcher } from './evmos/saddle.pool.token-fetcher'; -import { SaddleOnChainCoinStrategy } from './helpers/saddle.on-chain.coin-strategy'; -import { SaddleOnChainReserveStrategy } from './helpers/saddle.on-chain.reserve-strategy'; import { SaddleAppDefinition, SADDLE_DEFINITION } from './saddle.definition'; @Register.AppModule({ appId: SADDLE_DEFINITION.id, imports: [SynthetixAppModule], providers: [ + SaddleAppDefinition, + SaddleContractFactory, + // Helpers CurvePoolTokenHelper, - CurveVirtualPriceStrategy, + CurvePoolVirtualPriceStrategy, // Ethereum EthereumSaddleBalanceFetcher, EthereumSaddleCommunalFarmContractPositionFetcher, @@ -30,11 +31,6 @@ import { SaddleAppDefinition, SADDLE_DEFINITION } from './saddle.definition'; EvmosSaddleBalanceFetcher, EvmosSaddleMiniChefV2FarmContractPositionFetcher, EvmosSaddlePoolTokenFetcher, - // Common - SaddleAppDefinition, - SaddleContractFactory, - SaddleOnChainCoinStrategy, - SaddleOnChainReserveStrategy, ], }) export class SaddleAppModule extends AbstractApp() {} diff --git a/src/apps/tempus/helpers/tempus.amm.token-helper.ts b/src/apps/tempus/helpers/tempus.amm.token-helper.ts index b57d6e632..ecd921026 100644 --- a/src/apps/tempus/helpers/tempus.amm.token-helper.ts +++ b/src/apps/tempus/helpers/tempus.amm.token-helper.ts @@ -2,7 +2,6 @@ import { Inject, Injectable } from '@nestjs/common'; import { BigNumber } from 'ethers'; import { CurvePoolTokenHelper } from '~apps/curve'; -import { Erc20 } from '~contract/contracts'; import { Network } from '~types/network.interface'; import { TempusContractFactory, TempusAmm } from '../contracts'; @@ -25,26 +24,18 @@ export class TempusAmmTokenFetcher { const data = await getTempusData(network); if (!data) return []; - return await this.curvePoolTokenHelper.getTokens({ + return await this.curvePoolTokenHelper.getTokens({ network, appId, groupId, - appTokenDependencies: [{ appId, groupIds: [TEMPUS_DEFINITION.groups.pool.id], network }], - resolvePoolDefinitions: async () => - data.tempusPools.map(pool => ({ - swapAddress: pool.ammAddress.toLowerCase(), - tokenAddress: pool.ammAddress.toLowerCase(), - })), + dependencies: [{ appId, groupIds: [TEMPUS_DEFINITION.groups.pool.id], network }], + poolDefinitions: data.tempusPools.map(pool => ({ + swapAddress: pool.ammAddress.toLowerCase(), + tokenAddress: pool.ammAddress.toLowerCase(), + coinAddresses: [pool.principalsAddress.toLowerCase(), pool.yieldsAddress.toLowerCase()], + })), resolvePoolContract: ({ network, definition }) => this.contractFactory.tempusAmm({ network, address: definition.swapAddress }), - resolvePoolTokenContract: ({ network, definition }) => - this.contractFactory.erc20({ network, address: definition.tokenAddress }), - resolvePoolCoinAddresses: async ({ poolContract }) => { - const pool = data.tempusPools.find( - pool => pool.ammAddress.toLowerCase() === poolContract.address.toLowerCase(), - )!; - return [pool.principalsAddress.toLowerCase(), pool.yieldsAddress.toLowerCase()]; - }, resolvePoolReserves: async ({ multicall, poolContract }) => { const totalSupply = await multicall.wrap(poolContract).totalSupply(); const [principals, yields] = await multicall.wrap(poolContract).getExpectedTokensOutGivenBPTIn(totalSupply); @@ -55,8 +46,6 @@ export class TempusAmmTokenFetcher { .wrap(poolContract) .getSwapFeePercentage() .then(result => BigNumber.from(Number(result) / 1e8)), // Convert 1e18 percentage to curve 1e8 - resolvePoolTokenSymbol: ({ multicall, poolTokenContract }) => multicall.wrap(poolTokenContract).symbol(), - resolvePoolTokenSupply: ({ multicall, poolTokenContract }) => multicall.wrap(poolTokenContract).totalSupply(), resolvePoolTokenPrice: async ({ tokens, reserves, supply }) => { const [principalToken, yieldToken] = tokens; const [sizePrincipal, sizeYield] = reserves; diff --git a/src/apps/velodrome/optimism/velodrome.pool.token-fetcher.ts b/src/apps/velodrome/optimism/velodrome.pool.token-fetcher.ts index cc604d40a..87a49df73 100644 --- a/src/apps/velodrome/optimism/velodrome.pool.token-fetcher.ts +++ b/src/apps/velodrome/optimism/velodrome.pool.token-fetcher.ts @@ -5,7 +5,6 @@ import { BigNumber } from 'ethers'; import { Register } from '~app-toolkit/decorators'; import { CurvePoolTokenHelper } from '~apps/curve'; import { CacheOnInterval } from '~cache/cache-on-interval.decorator'; -import { Erc20 } from '~contract/contracts'; import { PositionFetcher } from '~position/position-fetcher.interface'; import { AppTokenPosition } from '~position/position.interface'; import { Network } from '~types/network.interface'; @@ -20,6 +19,8 @@ const network = Network.OPTIMISM_MAINNET; interface PairData { address: string; gauge_address: string; + token0_address: string; + token1_address: string; } @Register.TokenPositionFetcher({ appId, groupId, network }) @@ -41,37 +42,23 @@ export class OptimismVelodromePoolsTokenFetcher implements PositionFetcher({ + const tokens = await this.curvePoolTokenHelper.getTokens({ network, appId, groupId, - resolvePoolDefinitions: async () => - data.map(pool => ({ - swapAddress: pool.address.toLowerCase(), - tokenAddress: pool.address.toLowerCase(), - gaugeAddress: pool.gauge_address.toLowerCase(), - })), + poolDefinitions: data.map(pool => ({ + swapAddress: pool.address.toLowerCase(), + tokenAddress: pool.address.toLowerCase(), + gaugeAddress: pool.gauge_address.toLowerCase(), + coinAddresses: [pool.token0_address.toLowerCase(), pool.token1_address.toLowerCase()], + })), resolvePoolContract: ({ network, definition }) => this.contractFactory.velodromePool({ network, address: definition.swapAddress }), - resolvePoolTokenContract: ({ network, definition }) => - this.contractFactory.erc20({ network, address: definition.tokenAddress }), - resolvePoolCoinAddresses: async ({ multicall, poolContract }) => - ( - await Promise.all([multicall.wrap(poolContract).token0(), multicall.wrap(poolContract).token1()]) - ).map(x => x.toLowerCase()), resolvePoolReserves: async ({ multicall, poolContract }) => - ( - await Promise.all([multicall.wrap(poolContract).reserve0(), multicall.wrap(poolContract).reserve1()]) - ).map(x => x.toString()), + Promise.all([multicall.wrap(poolContract).reserve0(), multicall.wrap(poolContract).reserve1()]), resolvePoolFee: async () => BigNumber.from(0), // TODO: get actual value - resolvePoolTokenSymbol: ({ multicall, poolTokenContract }) => multicall.wrap(poolTokenContract).symbol(), - resolvePoolTokenSupply: ({ multicall, poolTokenContract }) => multicall.wrap(poolTokenContract).totalSupply(), - resolvePoolTokenPrice: async ({ tokens, reserves, supply }) => { - const [token0, token1] = tokens; - const [reserve0, reserve1] = reserves; - const price = (token0.price * reserve0 + token1.price * reserve1) / supply; - return price; - }, + resolvePoolTokenPrice: async ({ tokens, reserves, supply }) => + (tokens[0].price * reserves[0] + tokens[1].price * reserves[1]) / supply, }); return tokens; } diff --git a/src/apps/velodrome/optimism/velodrome.staking.contract-position-fetcher.ts b/src/apps/velodrome/optimism/velodrome.staking.contract-position-fetcher.ts index 04b1990f6..3fc6e5811 100644 --- a/src/apps/velodrome/optimism/velodrome.staking.contract-position-fetcher.ts +++ b/src/apps/velodrome/optimism/velodrome.staking.contract-position-fetcher.ts @@ -34,7 +34,7 @@ export class OptimismVelodromeStakingContractPositionFetcher implements Position appId, groupId, dependencies: [{ appId, groupIds: [VELODROME_DEFINITION.groups.pool.id], network }], - resolveFarmAddresses: async () => poolTokens.map(t => t.dataProps.gaugeAddress).filter(x => x) as string[], + resolveFarmAddresses: async () => poolTokens.map(t => t.dataProps.gaugeAddresses).flat(), resolveLiquidity: ({ contract, multicall }) => multicall.wrap(contract).totalSupply(), resolveFarmContract: ({ address, network }) => this.contractFactory.velodromeGauge({ address, network }), resolveStakedTokenAddress: ({ contract, multicall }) => multicall.wrap(contract).stake(), diff --git a/src/apps/yearn/ethereum/yearn.yield.token-fetcher.ts b/src/apps/yearn/ethereum/yearn.yield.token-fetcher.ts index 2df930a89..5ea88e1e5 100644 --- a/src/apps/yearn/ethereum/yearn.yield.token-fetcher.ts +++ b/src/apps/yearn/ethereum/yearn.yield.token-fetcher.ts @@ -62,6 +62,7 @@ export class EthereumYearnYieldTokenFetcher implements PositionFetcher; +export const isMulticallUnderlyingError = (err: Error) => err.message.includes('Multicall call failed for'); + export class EthersMulticall implements IMulticallWrapper { private multicall: Multicall; private dataLoader: DataLoader;