@enzymefinance/testutils 4.0.1 → 4.0.4
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/index.d.ts +38 -19
- package/dist/index.js +39 -14
- package/dist/index.mjs +38 -13
- package/package.json +5 -5
package/dist/index.d.ts
CHANGED
@@ -5,7 +5,7 @@ import { SignerWithAddress, EthereumTestnetProvider } from '@enzymefinance/hardh
|
|
5
5
|
import * as ethers from 'ethers';
|
6
6
|
import { utils, BigNumberish, BigNumber, Signer, BytesLike } from 'ethers';
|
7
7
|
import * as _enzymefinance_protocol from '@enzymefinance/protocol';
|
8
|
-
import { AaveAdapter, AaveDebtPositionLib, AaveDebtPositionParser, AavePriceFeed, AddressListRegistry, AllowedAdapterIncomingAssetsPolicy, AllowedAdaptersPolicy, AllowedAssetsForRedemptionPolicy, AllowedDepositRecipientsPolicy, AllowedExternalPositionTypesPolicy, AllowedSharesTransferRecipientsPolicy, CompoundAdapter, CompoundDebtPositionLib, CompoundDebtPositionParser, CompoundPriceFeed, ComptrollerLib, ConvexCurveLpStakingAdapter, ConvexCurveLpStakingWrapperFactory, ConvexCurveLpStakingWrapperPriceFeed, ConvexVotingPositionLib, ConvexVotingPositionParser, CumulativeSlippageTolerancePolicy, CurveExchangeAdapter, CurveLiquidityAdapter, CurvePriceFeed, DepositWrapper, Dispatcher, EntranceRateBurnFee, EntranceRateDirectFee, ExitRateBurnFee, ExitRateDirectFee, ExternalPositionFactory, ExternalPositionManager, FeeManager, FundDeployer, FundValueCalculator, FundValueCalculatorRouter, FundValueCalculatorUsdWrapper, FuseAdapter, FusePriceFeed, GasRelayPaymasterFactory, GlobalConfigLib, IdleAdapter, IdlePriceFeed, IntegrationManager, LidoStethPriceFeed, LiquityDebtPositionLib, LiquityDebtPositionParser, ManagementFee, MapleLiquidityPositionLib, MapleLiquidityPositionParser, MinAssetBalancesPostRedemptionPolicy, MinMaxInvestmentPolicy, OlympusV2Adapter, OnlyRemoveDustExternalPositionPolicy, OnlyUntrackDustOrPricelessAssetsPolicy, ParaSwapV5Adapter, PerformanceFee, PolicyManager, PoolTogetherV4Adapter, PoolTogetherV4PriceFeed, ProtocolFeeReserveLib, ProtocolFeeTracker, RevertingPriceFeed, SharesSplitterFactory, SynthetixAdapter, UniswapV2ExchangeAdapter, UniswapV2LiquidityAdapter, UniswapV2PoolPriceFeed, UniswapV3Adapter, UnpermissionedActionsWrapper, UsdEthSimulatedAggregator, ValueInterpreter, VaultLib, YearnVaultV2Adapter, YearnVaultV2PriceFeed, ZeroExV2Adapter, ChainlinkRateAsset, CreateSignedRelayRequestOptions, IGsnRelayHub, StandardToken, MockChainlinkPriceSource, IExternalPositionProxy, VotiumClaimParam, MockGenericExternalPositionParser, MockGenericExternalPositionLib, IFee, ICERC20, CurveRedeemType, MockGenericAdapter, ParaSwapV5Path, SignedZeroExV2Order, IPolicy, SharesSplitterLib, ComptrollerProxy, GasRelayPaymasterLib, AddressListUpdateType } from '@enzymefinance/protocol';
|
8
|
+
import { AaveAdapter, AaveDebtPositionLib, AaveDebtPositionParser, AavePriceFeed, AddressListRegistry, AllowedAdapterIncomingAssetsPolicy, AllowedAdaptersPerManagerPolicy, AllowedAdaptersPolicy, AllowedAssetsForRedemptionPolicy, AllowedDepositRecipientsPolicy, AllowedExternalPositionTypesPolicy, AllowedSharesTransferRecipientsPolicy, CompoundAdapter, CompoundDebtPositionLib, CompoundDebtPositionParser, CompoundPriceFeed, ComptrollerLib, ConvexCurveLpStakingAdapter, ConvexCurveLpStakingWrapperFactory, ConvexCurveLpStakingWrapperPriceFeed, ConvexVotingPositionLib, ConvexVotingPositionParser, CumulativeSlippageTolerancePolicy, CurveExchangeAdapter, CurveLiquidityAdapter, CurvePriceFeed, DepositWrapper, Dispatcher, EntranceRateBurnFee, EntranceRateDirectFee, ExitRateBurnFee, ExitRateDirectFee, ExternalPositionFactory, ExternalPositionManager, FeeManager, FundDeployer, FundValueCalculator, FundValueCalculatorRouter, FundValueCalculatorUsdWrapper, FuseAdapter, FusePriceFeed, GasRelayPaymasterFactory, GlobalConfigLib, IdleAdapter, IdlePriceFeed, IntegrationManager, LidoStethPriceFeed, LiquityDebtPositionLib, LiquityDebtPositionParser, ManagementFee, ManualValueOracleFactory, MapleLiquidityPositionLib, MapleLiquidityPositionParser, MinAssetBalancesPostRedemptionPolicy, MinMaxInvestmentPolicy, OlympusV2Adapter, OnlyRemoveDustExternalPositionPolicy, OnlyUntrackDustOrPricelessAssetsPolicy, ParaSwapV5Adapter, PerformanceFee, PolicyManager, PoolTogetherV4Adapter, PoolTogetherV4PriceFeed, ProtocolFeeReserveLib, ProtocolFeeTracker, RevertingPriceFeed, SharesSplitterFactory, SynthetixAdapter, UintListRegistry, UniswapV2ExchangeAdapter, UniswapV2LiquidityAdapter, UniswapV2PoolPriceFeed, UniswapV3Adapter, UnpermissionedActionsWrapper, UsdEthSimulatedAggregator, ValueInterpreter, VaultLib, YearnVaultV2Adapter, YearnVaultV2PriceFeed, ZeroExV2Adapter, ChainlinkRateAsset, CreateSignedRelayRequestOptions, IGsnRelayHub, StandardToken, MockChainlinkPriceSource, IExternalPositionProxy, VotiumClaimParam, MockGenericExternalPositionParser, MockGenericExternalPositionLib, IFee, ICERC20, CurveRedeemType, MockGenericAdapter, ParaSwapV5Path, SignedZeroExV2Order, IPolicy, ManualValueOracleLib, SharesSplitterLib, ComptrollerProxy, GasRelayPaymasterLib, AddressListUpdateType } from '@enzymefinance/protocol';
|
9
9
|
import { MerkleTree } from 'merkletreejs';
|
10
10
|
|
11
11
|
declare function impersonateContractSigner({ contractAddress, ethSeeder, provider, }: {
|
@@ -34,6 +34,7 @@ declare function deployProtocolFixture(): Promise<{
|
|
34
34
|
readonly aavePriceFeed: AavePriceFeed;
|
35
35
|
readonly addressListRegistry: AddressListRegistry;
|
36
36
|
readonly allowedAdapterIncomingAssetsPolicy: AllowedAdapterIncomingAssetsPolicy;
|
37
|
+
readonly allowedAdaptersPerManagerPolicy: AllowedAdaptersPerManagerPolicy;
|
37
38
|
readonly allowedAdaptersPolicy: AllowedAdaptersPolicy;
|
38
39
|
readonly allowedAssetsForRedemptionPolicy: AllowedAssetsForRedemptionPolicy;
|
39
40
|
readonly allowedDepositRecipientsPolicy: AllowedDepositRecipientsPolicy;
|
@@ -78,6 +79,7 @@ declare function deployProtocolFixture(): Promise<{
|
|
78
79
|
readonly liquityDebtPositionLib: LiquityDebtPositionLib;
|
79
80
|
readonly liquityDebtPositionParser: LiquityDebtPositionParser;
|
80
81
|
readonly managementFee: ManagementFee;
|
82
|
+
readonly manualValueOracleFactory: ManualValueOracleFactory;
|
81
83
|
readonly mapleLiquidityPositionLib: MapleLiquidityPositionLib;
|
82
84
|
readonly mapleLiquidityPositionParser: MapleLiquidityPositionParser;
|
83
85
|
readonly minAssetBalancesPostRedemptionPolicy: MinAssetBalancesPostRedemptionPolicy;
|
@@ -96,6 +98,7 @@ declare function deployProtocolFixture(): Promise<{
|
|
96
98
|
readonly revertingPriceFeed: RevertingPriceFeed;
|
97
99
|
readonly sharesSplitterFactory: SharesSplitterFactory;
|
98
100
|
readonly synthetixAdapter: SynthetixAdapter;
|
101
|
+
readonly uintListRegistry: UintListRegistry;
|
99
102
|
readonly uniswapV2ExchangeAdapter: UniswapV2ExchangeAdapter;
|
100
103
|
readonly uniswapV2LiquidityAdapter: UniswapV2LiquidityAdapter;
|
101
104
|
readonly uniswapV2PoolPriceFeed: UniswapV2PoolPriceFeed;
|
@@ -538,11 +541,11 @@ declare function convexVotingPositionWithdraw({ comptrollerProxy, externalPositi
|
|
538
541
|
}): Promise<_enzymefinance_ethers.ContractReceipt<_enzymefinance_ethers.SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: ethers.BytesLike], void, ComptrollerLib>>>;
|
539
542
|
|
540
543
|
interface ILiquityTroveManager extends Contract<ILiquityTroveManager> {
|
541
|
-
getBorrowingFee: Call<(_LUSDDebt: BigNumberish) =>
|
544
|
+
getBorrowingFee: Call<(_LUSDDebt: BigNumberish) => BigNumber>;
|
542
545
|
}
|
543
546
|
declare const ILiquityTroveManager: _enzymefinance_ethers.ContractFactory<ILiquityTroveManager, never>;
|
544
547
|
interface ILiquityHintHelper extends Contract<ILiquityHintHelper> {
|
545
|
-
getApproxHint: Call<(_cr: BigNumberish, _numTrials: BigNumberish, _inputRandomSeed: BigNumberish) => [hintAddress_: AddressLike, diff_:
|
548
|
+
getApproxHint: Call<(_cr: BigNumberish, _numTrials: BigNumberish, _inputRandomSeed: BigNumberish) => [hintAddress_: AddressLike, diff_: BigNumber, latestRandomSeed_: BigNumber]>;
|
546
549
|
}
|
547
550
|
declare const ILiquityHintHelper: _enzymefinance_ethers.ContractFactory<ILiquityHintHelper, never>;
|
548
551
|
interface ILiquitySortedTroves extends Contract<ILiquitySortedTroves> {
|
@@ -557,31 +560,36 @@ declare function createLiquityDebtPosition({ signer, comptrollerProxy, externalP
|
|
557
560
|
externalPositionProxy: _enzymefinance_protocol.IExternalPositionProxy;
|
558
561
|
receipt: _enzymefinance_ethers.ContractReceipt<_enzymefinance_ethers.SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: utils.BytesLike], void, ComptrollerLib>>;
|
559
562
|
}>;
|
560
|
-
declare function liquityCalcHints({ collateralAmount,
|
563
|
+
declare function liquityCalcHints({ collateralAmount, debtAmount, // Total debt, inclusive of fees
|
564
|
+
numTrials, // See note above for recommended value. This helper uses a static value for testing purposes.
|
565
|
+
liquitySortedTroves, liquityHintHelper, inputRandomSeed, }: {
|
561
566
|
collateralAmount: BigNumber;
|
562
|
-
|
567
|
+
debtAmount: BigNumber;
|
563
568
|
numTrials?: BigNumber;
|
564
569
|
liquitySortedTroves: ILiquitySortedTroves;
|
565
570
|
liquityHintHelper: ILiquityHintHelper;
|
566
571
|
inputRandomSeed?: BigNumber;
|
567
|
-
}): Promise<
|
568
|
-
|
572
|
+
}): Promise<{
|
573
|
+
lowerHint: AddressLike;
|
574
|
+
upperHint: AddressLike;
|
575
|
+
}>;
|
576
|
+
declare function liquityDebtPositionAddCollateral({ comptrollerProxy, externalPositionManager, signer, collateralAmount, upperHint, lowerHint, externalPositionProxy, }: {
|
569
577
|
comptrollerProxy: ComptrollerLib;
|
570
578
|
externalPositionManager: ExternalPositionManager;
|
571
579
|
signer: SignerWithAddress;
|
572
580
|
collateralAmount: BigNumberish;
|
573
|
-
lowerHint: AddressLike;
|
574
581
|
upperHint: AddressLike;
|
582
|
+
lowerHint: AddressLike;
|
575
583
|
externalPositionProxy: AddressLike;
|
576
584
|
}): Promise<_enzymefinance_ethers.ContractReceipt<_enzymefinance_ethers.SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: utils.BytesLike], void, ComptrollerLib>>>;
|
577
|
-
declare function liquityDebtPositionBorrow({ comptrollerProxy, externalPositionManager, signer, maxFeePercentage, lusdAmount,
|
585
|
+
declare function liquityDebtPositionBorrow({ comptrollerProxy, externalPositionManager, signer, maxFeePercentage, lusdAmount, upperHint, lowerHint, externalPositionProxy, }: {
|
578
586
|
comptrollerProxy: ComptrollerLib;
|
579
587
|
externalPositionManager: ExternalPositionManager;
|
580
588
|
signer: SignerWithAddress;
|
581
589
|
maxFeePercentage: BigNumberish;
|
582
590
|
lusdAmount: BigNumberish;
|
583
|
-
lowerHint: AddressLike;
|
584
591
|
upperHint: AddressLike;
|
592
|
+
lowerHint: AddressLike;
|
585
593
|
externalPositionProxy: AddressLike;
|
586
594
|
}): Promise<_enzymefinance_ethers.ContractReceipt<_enzymefinance_ethers.SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: utils.BytesLike], void, ComptrollerLib>>>;
|
587
595
|
declare function liquityDebtPositionCloseTrove({ comptrollerProxy, externalPositionManager, signer, externalPositionProxy, }: {
|
@@ -590,33 +598,33 @@ declare function liquityDebtPositionCloseTrove({ comptrollerProxy, externalPosit
|
|
590
598
|
signer: SignerWithAddress;
|
591
599
|
externalPositionProxy: AddressLike;
|
592
600
|
}): Promise<_enzymefinance_ethers.ContractReceipt<_enzymefinance_ethers.SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: utils.BytesLike], void, ComptrollerLib>>>;
|
593
|
-
declare function liquityDebtPositionOpenTrove({ comptrollerProxy, externalPositionManager, signer, maxFeePercentage, collateralAmount, lusdAmount,
|
601
|
+
declare function liquityDebtPositionOpenTrove({ comptrollerProxy, externalPositionManager, signer, maxFeePercentage, collateralAmount, lusdAmount, upperHint, lowerHint, externalPositionProxy, }: {
|
594
602
|
comptrollerProxy: ComptrollerLib;
|
595
603
|
externalPositionManager: ExternalPositionManager;
|
596
604
|
signer: SignerWithAddress;
|
597
605
|
maxFeePercentage: BigNumberish;
|
598
606
|
collateralAmount: BigNumberish;
|
599
607
|
lusdAmount: BigNumberish;
|
600
|
-
lowerHint: AddressLike;
|
601
608
|
upperHint: AddressLike;
|
609
|
+
lowerHint: AddressLike;
|
602
610
|
externalPositionProxy: AddressLike;
|
603
611
|
}): Promise<_enzymefinance_ethers.ContractReceipt<_enzymefinance_ethers.SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: utils.BytesLike], void, ComptrollerLib>>>;
|
604
|
-
declare function liquityDebtPositionRemoveCollateral({ comptrollerProxy, externalPositionManager, signer, collateralAmount,
|
612
|
+
declare function liquityDebtPositionRemoveCollateral({ comptrollerProxy, externalPositionManager, signer, collateralAmount, upperHint, lowerHint, externalPositionProxy, }: {
|
605
613
|
comptrollerProxy: ComptrollerLib;
|
606
614
|
externalPositionManager: ExternalPositionManager;
|
607
615
|
signer: SignerWithAddress;
|
608
616
|
collateralAmount: BigNumberish;
|
609
|
-
lowerHint: AddressLike;
|
610
617
|
upperHint: AddressLike;
|
618
|
+
lowerHint: AddressLike;
|
611
619
|
externalPositionProxy: AddressLike;
|
612
620
|
}): Promise<_enzymefinance_ethers.ContractReceipt<_enzymefinance_ethers.SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: utils.BytesLike], void, ComptrollerLib>>>;
|
613
|
-
declare function liquityDebtPositionRepay({ comptrollerProxy, externalPositionManager, signer, lusdAmount,
|
621
|
+
declare function liquityDebtPositionRepay({ comptrollerProxy, externalPositionManager, signer, lusdAmount, upperHint, lowerHint, externalPositionProxy, }: {
|
614
622
|
comptrollerProxy: ComptrollerLib;
|
615
623
|
externalPositionManager: ExternalPositionManager;
|
616
624
|
signer: SignerWithAddress;
|
617
625
|
lusdAmount: BigNumberish;
|
618
|
-
lowerHint: AddressLike;
|
619
626
|
upperHint: AddressLike;
|
627
|
+
lowerHint: AddressLike;
|
620
628
|
externalPositionProxy: AddressLike;
|
621
629
|
}): Promise<_enzymefinance_ethers.ContractReceipt<_enzymefinance_ethers.SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: utils.BytesLike], void, ComptrollerLib>>>;
|
622
630
|
|
@@ -1105,11 +1113,11 @@ declare function mockGenericSwapArgs({ spendAssets, actualSpendAssetAmounts, max
|
|
1105
1113
|
minIncomingAssetAmounts?: BigNumberish[];
|
1106
1114
|
actualIncomingAssetAmounts?: BigNumberish[];
|
1107
1115
|
}): string;
|
1108
|
-
declare function mockGenericSwap({ comptrollerProxy, vaultProxy, integrationManager,
|
1116
|
+
declare function mockGenericSwap({ comptrollerProxy, vaultProxy, integrationManager, signer, mockGenericAdapter, selector, spendAssets, actualSpendAssetAmounts, maxSpendAssetAmounts, incomingAssets, actualIncomingAssetAmounts, minIncomingAssetAmounts, seedFund, }: {
|
1109
1117
|
comptrollerProxy: ComptrollerLib;
|
1110
1118
|
vaultProxy: VaultLib;
|
1111
1119
|
integrationManager: IntegrationManager;
|
1112
|
-
|
1120
|
+
signer: SignerWithAddress;
|
1113
1121
|
mockGenericAdapter: MockGenericAdapter;
|
1114
1122
|
selector?: BytesLike;
|
1115
1123
|
spendAssets?: StandardToken[];
|
@@ -1351,6 +1359,17 @@ interface IVotiumMultiMerkleStash extends Contract<IVotiumMultiMerkleStash> {
|
|
1351
1359
|
}
|
1352
1360
|
declare const IVotiumMultiMerkleStash: _enzymefinance_ethers.ContractFactory<IVotiumMultiMerkleStash, never>;
|
1353
1361
|
|
1362
|
+
declare function deployManualValueOracle({ signer, manualValueOracleFactory, owner, updater, description, }: {
|
1363
|
+
signer: SignerWithAddress;
|
1364
|
+
manualValueOracleFactory: ManualValueOracleFactory;
|
1365
|
+
owner: AddressLike;
|
1366
|
+
updater: AddressLike;
|
1367
|
+
description?: string;
|
1368
|
+
}): Promise<{
|
1369
|
+
proxy: ManualValueOracleLib;
|
1370
|
+
receipt: _enzymefinance_ethers.ContractReceipt<_enzymefinance_ethers.SendFunction<[_owner: AddressLike, _updater: AddressLike, _description: string], string, ManualValueOracleFactory>>;
|
1371
|
+
}>;
|
1372
|
+
|
1354
1373
|
declare function deploySharesSplitter({ signer, sharesSplitterFactory, splitUsers, splitPercentages, }: {
|
1355
1374
|
signer: SignerWithAddress;
|
1356
1375
|
sharesSplitterFactory: SharesSplitterFactory;
|
@@ -1545,4 +1564,4 @@ declare function unlockWhale(token: Whale): Promise<SignerWithAddress>;
|
|
1545
1564
|
declare function unlockAllWhales(): Promise<WhaleSigners<"link" | "mln" | "weth" | "bat" | "bnb" | "bnt" | "busd" | "comp" | "crv" | "dai" | "grt" | "knc" | "ldo" | "lusd" | "mana" | "ohm" | "rep" | "ren" | "susd" | "sohm" | "uni" | "usdc" | "usdt" | "zrx" | "ausdc" | "ausdt" | "ccomp" | "cdai" | "ceth" | "cuni" | "cusdc" | "fdai7" | "feth7" | "fdai8" | "ftribe8" | "ptUsdc" | "seth" | "sxag" | "sxau" | "cvx" | "lidoSteth" | "ust" | "stecrv">>;
|
1546
1565
|
declare function unlockWhales<T extends Whale>(...tokens: T[]): Promise<WhaleSigners<T>>;
|
1547
1566
|
|
1548
|
-
export { BuySharesParams, CreateMigrationRequestParams, CreateNewFundParams, CreateReconfigurationRequestParams, CurveLiquidityGaugeV2, CurveMinter, CurveRegistry, CurveSwaps, DeploymentConfig, ICompoundComptroller, IConvexBaseRewardPool, IConvexCrvDepositor, IConvexCvxLocker, IConvexVlCvxExtraRewardDistribution, ILiquityHintHelper, ILiquitySortedTroves, ILiquityTroveManager, ISnapshotDelegateRegistry, IUniswapV3NonFungibleTokenManager, IVotiumMultiMerkleStash, InitialInvestmentParams, ProtocolDeployment, RedeemSharesForSpecificAssetsParams, RedeemSharesInKindParams, RelayTransactionOptions, UniswapV2Factory, UniswapV3FeeAmount, Whale, WhaleSigners, aaveDebtPositionAddCollateral, aaveDebtPositionBorrow, aaveDebtPositionClaimRewards, aaveDebtPositionRemoveCollateral, aaveDebtPositionRepayBorrow, aaveLend, aaveRedeem, addNewAssetsToFund, addTrackedAssetsToVault, assertCompoundLend, assertCompoundRedeem, assertDidRelay, assertDidRelaySuccessfully, assertDidRelayWithCharge, assertDidRelayWithError, assertEvent, assertNoEvent, assertPaymasterDidReject, assertPaymasterDidRejectForReason, buyShares, buySharesFunction, calcMlnValueAndBurnAmountForSharesBuyback, callOnExtension, callOnExternalPosition, compoundClaim, compoundDebtPositionAddCollateral, compoundDebtPositionBorrow, compoundDebtPositionClaimComp, compoundDebtPositionRemoveCollateral, compoundDebtPositionRepayBorrow, compoundLend, compoundRedeem, convexVotingPositionClaimRewards, convexVotingPositionDelegate, convexVotingPositionLock, convexVotingPositionRelock, convexVotingPositionWithdraw, createAaveDebtPosition, createCompoundDebtPosition, createComptrollerProxy, createConvexVotingPosition, createExternalPosition, createFundDeployer, createLiquityDebtPosition, createMapleLiquidityPosition, createMigrationRequest, createMockExternalPosition, createNewFund, createReconfigurationRequest, createTheGraphDelegationPosition, createUniswapV3LiquidityPosition, createVaultProxy, curveClaimRewards, curveLend, curveLendAndStake, curveRedeem, curveStake, curveTakeOrder, curveUnstake, curveUnstakeAndRedeem, deployProtocolFixture, deploySharesSplitter, generateFeeManagerConfigWithMockFees, generateMerkleTreeForContractProof, generateMockFees, generateMockPolicies, generatePolicyManagerConfigWithMockPolicies, getAssetBalances, getAssetUnit, getNamedSigner, getUnnamedSigners, idleClaimRewards, idleLend, idleRedeem, impersonateContractSigner, impersonateSigner, liquityCalcHints, liquityDebtPositionAddCollateral, liquityDebtPositionBorrow, liquityDebtPositionCloseTrove, liquityDebtPositionOpenTrove, liquityDebtPositionRemoveCollateral, liquityDebtPositionRepay, mapleLiquidityPositionClaimInterest, mapleLiquidityPositionClaimRewards, mapleLiquidityPositionIntendToRedeem, mapleLiquidityPositionLend, mapleLiquidityPositionLendAndStake, mapleLiquidityPositionRedeem, mapleLiquidityPositionStake, mapleLiquidityPositionUnstake, mapleLiquidityPositionUnstakeAndRedeem, mockExternalPositionAddDebtAssets, mockExternalPositionAddManagedAssets, mockExternalPositionRemoveDebtAssets, mockExternalPositionRemoveManagedAssets, mockGenericRemoveOnlySelector, mockGenericSwap, mockGenericSwapASelector, mockGenericSwapArgs, mockGenericSwapBSelector, mockGenericSwapDirectFromVaultSelector, mockGenericSwapViaApprovalSelector, olympusV2Stake, olympusV2Unstake, paraSwapV5GenerateDummyPaths, paraSwapV5TakeOrder, poolTogetherV4ClaimRewards, poolTogetherV4Lend, poolTogetherV4Redeem, reactivateExternalPosition, redeemSharesForSpecificAssets, redeemSharesInKind, relayTransaction, removeExternalPosition, removeTrackedAssetsFromVault, sendEthBySelfDestruct, setupGasRelayerPaymaster, synthetixAssignExchangeDelegate, synthetixRedeem, synthetixTakeOrder, theGraphDelegationPositionDelegate, theGraphDelegationPositionUndelegate, theGraphDelegationPositionWithdraw, transactionTimestamp, uniswapV2Lend, uniswapV2Redeem, uniswapV2TakeOrder, uniswapV3LiquidityPositionAddLiquidity, uniswapV3LiquidityPositionCollect, uniswapV3LiquidityPositionGetMaxTick, uniswapV3LiquidityPositionGetMinTick, uniswapV3LiquidityPositionMint, uniswapV3LiquidityPositionPurge, uniswapV3LiquidityPositionRemoveLiquidity, uniswapV3OrderTokenPair, uniswapV3TakeOrder, unlockAllWhales, unlockWhale, unlockWhales, updateChainlinkAggregator, vaultCallCreateNewList, vaultCallCurveMinterMint, vaultCallCurveMinterMintMany, vaultCallCurveMinterToggleApproveMint, vaultCallStartAssetBypassTimelock, yearnVaultV2Lend, yearnVaultV2Redeem, zeroExV2TakeOrder };
|
1567
|
+
export { BuySharesParams, CreateMigrationRequestParams, CreateNewFundParams, CreateReconfigurationRequestParams, CurveLiquidityGaugeV2, CurveMinter, CurveRegistry, CurveSwaps, DeploymentConfig, ICompoundComptroller, IConvexBaseRewardPool, IConvexCrvDepositor, IConvexCvxLocker, IConvexVlCvxExtraRewardDistribution, ILiquityHintHelper, ILiquitySortedTroves, ILiquityTroveManager, ISnapshotDelegateRegistry, IUniswapV3NonFungibleTokenManager, IVotiumMultiMerkleStash, InitialInvestmentParams, ProtocolDeployment, RedeemSharesForSpecificAssetsParams, RedeemSharesInKindParams, RelayTransactionOptions, UniswapV2Factory, UniswapV3FeeAmount, Whale, WhaleSigners, aaveDebtPositionAddCollateral, aaveDebtPositionBorrow, aaveDebtPositionClaimRewards, aaveDebtPositionRemoveCollateral, aaveDebtPositionRepayBorrow, aaveLend, aaveRedeem, addNewAssetsToFund, addTrackedAssetsToVault, assertCompoundLend, assertCompoundRedeem, assertDidRelay, assertDidRelaySuccessfully, assertDidRelayWithCharge, assertDidRelayWithError, assertEvent, assertNoEvent, assertPaymasterDidReject, assertPaymasterDidRejectForReason, buyShares, buySharesFunction, calcMlnValueAndBurnAmountForSharesBuyback, callOnExtension, callOnExternalPosition, compoundClaim, compoundDebtPositionAddCollateral, compoundDebtPositionBorrow, compoundDebtPositionClaimComp, compoundDebtPositionRemoveCollateral, compoundDebtPositionRepayBorrow, compoundLend, compoundRedeem, convexVotingPositionClaimRewards, convexVotingPositionDelegate, convexVotingPositionLock, convexVotingPositionRelock, convexVotingPositionWithdraw, createAaveDebtPosition, createCompoundDebtPosition, createComptrollerProxy, createConvexVotingPosition, createExternalPosition, createFundDeployer, createLiquityDebtPosition, createMapleLiquidityPosition, createMigrationRequest, createMockExternalPosition, createNewFund, createReconfigurationRequest, createTheGraphDelegationPosition, createUniswapV3LiquidityPosition, createVaultProxy, curveClaimRewards, curveLend, curveLendAndStake, curveRedeem, curveStake, curveTakeOrder, curveUnstake, curveUnstakeAndRedeem, deployManualValueOracle, deployProtocolFixture, deploySharesSplitter, generateFeeManagerConfigWithMockFees, generateMerkleTreeForContractProof, generateMockFees, generateMockPolicies, generatePolicyManagerConfigWithMockPolicies, getAssetBalances, getAssetUnit, getNamedSigner, getUnnamedSigners, idleClaimRewards, idleLend, idleRedeem, impersonateContractSigner, impersonateSigner, liquityCalcHints, liquityDebtPositionAddCollateral, liquityDebtPositionBorrow, liquityDebtPositionCloseTrove, liquityDebtPositionOpenTrove, liquityDebtPositionRemoveCollateral, liquityDebtPositionRepay, mapleLiquidityPositionClaimInterest, mapleLiquidityPositionClaimRewards, mapleLiquidityPositionIntendToRedeem, mapleLiquidityPositionLend, mapleLiquidityPositionLendAndStake, mapleLiquidityPositionRedeem, mapleLiquidityPositionStake, mapleLiquidityPositionUnstake, mapleLiquidityPositionUnstakeAndRedeem, mockExternalPositionAddDebtAssets, mockExternalPositionAddManagedAssets, mockExternalPositionRemoveDebtAssets, mockExternalPositionRemoveManagedAssets, mockGenericRemoveOnlySelector, mockGenericSwap, mockGenericSwapASelector, mockGenericSwapArgs, mockGenericSwapBSelector, mockGenericSwapDirectFromVaultSelector, mockGenericSwapViaApprovalSelector, olympusV2Stake, olympusV2Unstake, paraSwapV5GenerateDummyPaths, paraSwapV5TakeOrder, poolTogetherV4ClaimRewards, poolTogetherV4Lend, poolTogetherV4Redeem, reactivateExternalPosition, redeemSharesForSpecificAssets, redeemSharesInKind, relayTransaction, removeExternalPosition, removeTrackedAssetsFromVault, sendEthBySelfDestruct, setupGasRelayerPaymaster, synthetixAssignExchangeDelegate, synthetixRedeem, synthetixTakeOrder, theGraphDelegationPositionDelegate, theGraphDelegationPositionUndelegate, theGraphDelegationPositionWithdraw, transactionTimestamp, uniswapV2Lend, uniswapV2Redeem, uniswapV2TakeOrder, uniswapV3LiquidityPositionAddLiquidity, uniswapV3LiquidityPositionCollect, uniswapV3LiquidityPositionGetMaxTick, uniswapV3LiquidityPositionGetMinTick, uniswapV3LiquidityPositionMint, uniswapV3LiquidityPositionPurge, uniswapV3LiquidityPositionRemoveLiquidity, uniswapV3OrderTokenPair, uniswapV3TakeOrder, unlockAllWhales, unlockWhale, unlockWhales, updateChainlinkAggregator, vaultCallCreateNewList, vaultCallCurveMinterMint, vaultCallCurveMinterMintMany, vaultCallCurveMinterToggleApproveMint, vaultCallStartAssetBypassTimelock, yearnVaultV2Lend, yearnVaultV2Redeem, zeroExV2TakeOrder };
|
package/dist/index.js
CHANGED
@@ -172,6 +172,9 @@ function assertNoEvent(receipt, event) {
|
|
172
172
|
|
173
173
|
|
174
174
|
|
175
|
+
|
176
|
+
|
177
|
+
|
175
178
|
|
176
179
|
|
177
180
|
|
@@ -199,6 +202,7 @@ async function deployProtocolFixture() {
|
|
199
202
|
aavePriceFeed: new (0, _protocol.AavePriceFeed)(fixture.AavePriceFeed.address, deployer),
|
200
203
|
addressListRegistry: new (0, _protocol.AddressListRegistry)(fixture.AddressListRegistry.address, deployer),
|
201
204
|
allowedAdapterIncomingAssetsPolicy: new (0, _protocol.AllowedAdapterIncomingAssetsPolicy)(fixture.AllowedAdapterIncomingAssetsPolicy.address, deployer),
|
205
|
+
allowedAdaptersPerManagerPolicy: new (0, _protocol.AllowedAdaptersPerManagerPolicy)(fixture.AllowedAdaptersPerManagerPolicy.address, deployer),
|
202
206
|
allowedAdaptersPolicy: new (0, _protocol.AllowedAdaptersPolicy)(fixture.AllowedAdaptersPolicy.address, deployer),
|
203
207
|
allowedAssetsForRedemptionPolicy: new (0, _protocol.AllowedAssetsForRedemptionPolicy)(fixture.AllowedAssetsForRedemptionPolicy.address, deployer),
|
204
208
|
allowedDepositRecipientsPolicy: new (0, _protocol.AllowedDepositRecipientsPolicy)(fixture.AllowedDepositRecipientsPolicy.address, deployer),
|
@@ -243,6 +247,7 @@ async function deployProtocolFixture() {
|
|
243
247
|
liquityDebtPositionLib: new (0, _protocol.LiquityDebtPositionLib)(fixture.LiquityDebtPositionLib.address, deployer),
|
244
248
|
liquityDebtPositionParser: new (0, _protocol.LiquityDebtPositionParser)(fixture.LiquityDebtPositionParser.address, deployer),
|
245
249
|
managementFee: new (0, _protocol.ManagementFee)(fixture.ManagementFee.address, deployer),
|
250
|
+
manualValueOracleFactory: new (0, _protocol.ManualValueOracleFactory)(fixture.ManualValueOracleFactory.address, deployer),
|
246
251
|
mapleLiquidityPositionLib: new (0, _protocol.MapleLiquidityPositionLib)(fixture.MapleLiquidityPositionLib.address, deployer),
|
247
252
|
mapleLiquidityPositionParser: new (0, _protocol.MapleLiquidityPositionParser)(fixture.MapleLiquidityPositionParser.address, deployer),
|
248
253
|
minAssetBalancesPostRedemptionPolicy: new (0, _protocol.MinAssetBalancesPostRedemptionPolicy)(fixture.MinAssetBalancesPostRedemptionPolicy.address, deployer),
|
@@ -261,6 +266,7 @@ async function deployProtocolFixture() {
|
|
261
266
|
revertingPriceFeed: new (0, _protocol.RevertingPriceFeed)(fixture.RevertingPriceFeed.address, deployer),
|
262
267
|
sharesSplitterFactory: new (0, _protocol.SharesSplitterFactory)(fixture.SharesSplitterFactory.address, deployer),
|
263
268
|
synthetixAdapter: new (0, _protocol.SynthetixAdapter)(fixture.SynthetixAdapter.address, deployer),
|
269
|
+
uintListRegistry: new (0, _protocol.UintListRegistry)(fixture.UintListRegistry.address, deployer),
|
264
270
|
uniswapV2ExchangeAdapter: new (0, _protocol.UniswapV2ExchangeAdapter)(fixture.UniswapV2ExchangeAdapter.address, deployer),
|
265
271
|
uniswapV2LiquidityAdapter: new (0, _protocol.UniswapV2LiquidityAdapter)(fixture.UniswapV2LiquidityAdapter.address, deployer),
|
266
272
|
uniswapV2PoolPriceFeed: new (0, _protocol.UniswapV2PoolPriceFeed)(fixture.UniswapV2PoolPriceFeed.address, deployer),
|
@@ -938,24 +944,24 @@ async function createLiquityDebtPosition({
|
|
938
944
|
}
|
939
945
|
async function liquityCalcHints({
|
940
946
|
collateralAmount,
|
941
|
-
|
942
|
-
numTrials = _ethers3.BigNumber.from("
|
947
|
+
debtAmount,
|
948
|
+
numTrials = _ethers3.BigNumber.from("100"),
|
943
949
|
liquitySortedTroves,
|
944
950
|
liquityHintHelper,
|
945
951
|
inputRandomSeed = _ethers3.BigNumber.from("4")
|
946
952
|
}) {
|
947
|
-
const nicr = collateralAmount.mul(_ethers3.utils.parseEther("100")).div(
|
953
|
+
const nicr = collateralAmount.mul(_ethers3.utils.parseEther("100")).div(debtAmount);
|
948
954
|
const approxHint = await liquityHintHelper.getApproxHint.args(nicr, numTrials, inputRandomSeed).call();
|
949
|
-
const
|
950
|
-
return
|
955
|
+
const [upperHint, lowerHint] = await liquitySortedTroves.findInsertPosition.args(nicr, approxHint[0], approxHint[0]).call();
|
956
|
+
return { lowerHint, upperHint };
|
951
957
|
}
|
952
958
|
async function liquityDebtPositionAddCollateral({
|
953
959
|
comptrollerProxy,
|
954
960
|
externalPositionManager,
|
955
961
|
signer,
|
956
962
|
collateralAmount,
|
957
|
-
lowerHint,
|
958
963
|
upperHint,
|
964
|
+
lowerHint,
|
959
965
|
externalPositionProxy
|
960
966
|
}) {
|
961
967
|
const actionArgs = _protocol.liquityDebtPositionAddCollateralArgs.call(void 0, {
|
@@ -978,8 +984,8 @@ async function liquityDebtPositionBorrow({
|
|
978
984
|
signer,
|
979
985
|
maxFeePercentage,
|
980
986
|
lusdAmount,
|
981
|
-
lowerHint,
|
982
987
|
upperHint,
|
988
|
+
lowerHint,
|
983
989
|
externalPositionProxy
|
984
990
|
}) {
|
985
991
|
const actionArgs = _protocol.liquityDebtPositionBorrowArgs.call(void 0, {
|
@@ -1020,8 +1026,8 @@ async function liquityDebtPositionOpenTrove({
|
|
1020
1026
|
maxFeePercentage,
|
1021
1027
|
collateralAmount,
|
1022
1028
|
lusdAmount,
|
1023
|
-
lowerHint,
|
1024
1029
|
upperHint,
|
1030
|
+
lowerHint,
|
1025
1031
|
externalPositionProxy
|
1026
1032
|
}) {
|
1027
1033
|
const actionArgs = _protocol.liquityDebtPositionOpenTroveArgs.call(void 0, {
|
@@ -1045,8 +1051,8 @@ async function liquityDebtPositionRemoveCollateral({
|
|
1045
1051
|
externalPositionManager,
|
1046
1052
|
signer,
|
1047
1053
|
collateralAmount,
|
1048
|
-
lowerHint,
|
1049
1054
|
upperHint,
|
1055
|
+
lowerHint,
|
1050
1056
|
externalPositionProxy
|
1051
1057
|
}) {
|
1052
1058
|
const actionArgs = _protocol.liquityDebtPositionRemoveCollateralArgs.call(void 0, {
|
@@ -1068,8 +1074,8 @@ async function liquityDebtPositionRepay({
|
|
1068
1074
|
externalPositionManager,
|
1069
1075
|
signer,
|
1070
1076
|
lusdAmount,
|
1071
|
-
lowerHint,
|
1072
1077
|
upperHint,
|
1078
|
+
lowerHint,
|
1073
1079
|
externalPositionProxy
|
1074
1080
|
}) {
|
1075
1081
|
const actionArgs = _protocol.liquityDebtPositionRepayBorrowArgs.call(void 0, {
|
@@ -2261,7 +2267,7 @@ async function mockGenericSwap({
|
|
2261
2267
|
comptrollerProxy,
|
2262
2268
|
vaultProxy,
|
2263
2269
|
integrationManager,
|
2264
|
-
|
2270
|
+
signer,
|
2265
2271
|
mockGenericAdapter,
|
2266
2272
|
selector = mockGenericSwapASelector,
|
2267
2273
|
spendAssets = [],
|
@@ -2290,7 +2296,7 @@ async function mockGenericSwap({
|
|
2290
2296
|
encodedCallArgs: swapArgs,
|
2291
2297
|
selector
|
2292
2298
|
});
|
2293
|
-
const swapTx = comptrollerProxy.connect(
|
2299
|
+
const swapTx = comptrollerProxy.connect(signer).callOnExtension(integrationManager, _protocol.IntegrationManagerActionId.CallOnIntegration, callArgs);
|
2294
2300
|
await expect(swapTx).resolves.toBeReceipt();
|
2295
2301
|
return swapTx;
|
2296
2302
|
}
|
@@ -2866,7 +2872,25 @@ var IVotiumMultiMerkleStash = _ethers.contract.call(void 0, )`
|
|
2866
2872
|
function updateMerkleRoot(address, bytes32)
|
2867
2873
|
`;
|
2868
2874
|
|
2869
|
-
// src/scaffolding/
|
2875
|
+
// src/scaffolding/persistent/manual-value-oracle.ts
|
2876
|
+
|
2877
|
+
async function deployManualValueOracle({
|
2878
|
+
signer,
|
2879
|
+
manualValueOracleFactory,
|
2880
|
+
owner,
|
2881
|
+
updater,
|
2882
|
+
description = ""
|
2883
|
+
}) {
|
2884
|
+
const receipt = await manualValueOracleFactory.connect(signer).deploy(owner, updater, description);
|
2885
|
+
const proxyDeployedArgs = assertEvent(receipt, "ProxyDeployed", {
|
2886
|
+
caller: signer,
|
2887
|
+
proxy: expect.any(String)
|
2888
|
+
});
|
2889
|
+
const proxy = new (0, _protocol.ManualValueOracleLib)(proxyDeployedArgs.proxy, provider);
|
2890
|
+
return { proxy, receipt };
|
2891
|
+
}
|
2892
|
+
|
2893
|
+
// src/scaffolding/persistent/shares-splitter.ts
|
2870
2894
|
|
2871
2895
|
async function deploySharesSplitter({
|
2872
2896
|
signer,
|
@@ -3349,4 +3373,5 @@ async function unlockWhales(...tokens) {
|
|
3349
3373
|
|
3350
3374
|
|
3351
3375
|
|
3352
|
-
|
3376
|
+
|
3377
|
+
exports.CurveLiquidityGaugeV2 = CurveLiquidityGaugeV2; exports.CurveMinter = CurveMinter; exports.CurveRegistry = CurveRegistry; exports.CurveSwaps = CurveSwaps; exports.ICompoundComptroller = ICompoundComptroller; exports.IConvexBaseRewardPool = IConvexBaseRewardPool; exports.IConvexCrvDepositor = IConvexCrvDepositor; exports.IConvexCvxLocker = IConvexCvxLocker; exports.IConvexVlCvxExtraRewardDistribution = IConvexVlCvxExtraRewardDistribution; exports.ILiquityHintHelper = ILiquityHintHelper; exports.ILiquitySortedTroves = ILiquitySortedTroves; exports.ILiquityTroveManager = ILiquityTroveManager; exports.ISnapshotDelegateRegistry = ISnapshotDelegateRegistry; exports.IUniswapV3NonFungibleTokenManager = IUniswapV3NonFungibleTokenManager; exports.IVotiumMultiMerkleStash = IVotiumMultiMerkleStash; exports.UniswapV2Factory = UniswapV2Factory; exports.UniswapV3FeeAmount = UniswapV3FeeAmount; exports.aaveDebtPositionAddCollateral = aaveDebtPositionAddCollateral; exports.aaveDebtPositionBorrow = aaveDebtPositionBorrow; exports.aaveDebtPositionClaimRewards = aaveDebtPositionClaimRewards; exports.aaveDebtPositionRemoveCollateral = aaveDebtPositionRemoveCollateral; exports.aaveDebtPositionRepayBorrow = aaveDebtPositionRepayBorrow; exports.aaveLend = aaveLend; exports.aaveRedeem = aaveRedeem; exports.addNewAssetsToFund = addNewAssetsToFund; exports.addTrackedAssetsToVault = addTrackedAssetsToVault; exports.assertCompoundLend = assertCompoundLend; exports.assertCompoundRedeem = assertCompoundRedeem; exports.assertDidRelay = assertDidRelay; exports.assertDidRelaySuccessfully = assertDidRelaySuccessfully; exports.assertDidRelayWithCharge = assertDidRelayWithCharge; exports.assertDidRelayWithError = assertDidRelayWithError; exports.assertEvent = assertEvent; exports.assertNoEvent = assertNoEvent; exports.assertPaymasterDidReject = assertPaymasterDidReject; exports.assertPaymasterDidRejectForReason = assertPaymasterDidRejectForReason; exports.buyShares = buyShares; exports.buySharesFunction = buySharesFunction; exports.calcMlnValueAndBurnAmountForSharesBuyback = calcMlnValueAndBurnAmountForSharesBuyback; exports.callOnExtension = callOnExtension; exports.callOnExternalPosition = callOnExternalPosition; exports.compoundClaim = compoundClaim; exports.compoundDebtPositionAddCollateral = compoundDebtPositionAddCollateral; exports.compoundDebtPositionBorrow = compoundDebtPositionBorrow; exports.compoundDebtPositionClaimComp = compoundDebtPositionClaimComp; exports.compoundDebtPositionRemoveCollateral = compoundDebtPositionRemoveCollateral; exports.compoundDebtPositionRepayBorrow = compoundDebtPositionRepayBorrow; exports.compoundLend = compoundLend; exports.compoundRedeem = compoundRedeem; exports.convexVotingPositionClaimRewards = convexVotingPositionClaimRewards; exports.convexVotingPositionDelegate = convexVotingPositionDelegate; exports.convexVotingPositionLock = convexVotingPositionLock; exports.convexVotingPositionRelock = convexVotingPositionRelock; exports.convexVotingPositionWithdraw = convexVotingPositionWithdraw; exports.createAaveDebtPosition = createAaveDebtPosition; exports.createCompoundDebtPosition = createCompoundDebtPosition; exports.createComptrollerProxy = createComptrollerProxy; exports.createConvexVotingPosition = createConvexVotingPosition; exports.createExternalPosition = createExternalPosition; exports.createFundDeployer = createFundDeployer; exports.createLiquityDebtPosition = createLiquityDebtPosition; exports.createMapleLiquidityPosition = createMapleLiquidityPosition; exports.createMigrationRequest = createMigrationRequest; exports.createMockExternalPosition = createMockExternalPosition; exports.createNewFund = createNewFund; exports.createReconfigurationRequest = createReconfigurationRequest; exports.createTheGraphDelegationPosition = createTheGraphDelegationPosition; exports.createUniswapV3LiquidityPosition = createUniswapV3LiquidityPosition; exports.createVaultProxy = createVaultProxy; exports.curveClaimRewards = curveClaimRewards; exports.curveLend = curveLend; exports.curveLendAndStake = curveLendAndStake; exports.curveRedeem = curveRedeem; exports.curveStake = curveStake; exports.curveTakeOrder = curveTakeOrder; exports.curveUnstake = curveUnstake; exports.curveUnstakeAndRedeem = curveUnstakeAndRedeem; exports.deployManualValueOracle = deployManualValueOracle; exports.deployProtocolFixture = deployProtocolFixture; exports.deploySharesSplitter = deploySharesSplitter; exports.generateFeeManagerConfigWithMockFees = generateFeeManagerConfigWithMockFees; exports.generateMerkleTreeForContractProof = generateMerkleTreeForContractProof; exports.generateMockFees = generateMockFees; exports.generateMockPolicies = generateMockPolicies; exports.generatePolicyManagerConfigWithMockPolicies = generatePolicyManagerConfigWithMockPolicies; exports.getAssetBalances = getAssetBalances; exports.getAssetUnit = getAssetUnit; exports.getNamedSigner = getNamedSigner; exports.getUnnamedSigners = getUnnamedSigners; exports.idleClaimRewards = idleClaimRewards; exports.idleLend = idleLend; exports.idleRedeem = idleRedeem; exports.impersonateContractSigner = impersonateContractSigner; exports.impersonateSigner = impersonateSigner; exports.liquityCalcHints = liquityCalcHints; exports.liquityDebtPositionAddCollateral = liquityDebtPositionAddCollateral; exports.liquityDebtPositionBorrow = liquityDebtPositionBorrow; exports.liquityDebtPositionCloseTrove = liquityDebtPositionCloseTrove; exports.liquityDebtPositionOpenTrove = liquityDebtPositionOpenTrove; exports.liquityDebtPositionRemoveCollateral = liquityDebtPositionRemoveCollateral; exports.liquityDebtPositionRepay = liquityDebtPositionRepay; exports.mapleLiquidityPositionClaimInterest = mapleLiquidityPositionClaimInterest; exports.mapleLiquidityPositionClaimRewards = mapleLiquidityPositionClaimRewards; exports.mapleLiquidityPositionIntendToRedeem = mapleLiquidityPositionIntendToRedeem; exports.mapleLiquidityPositionLend = mapleLiquidityPositionLend; exports.mapleLiquidityPositionLendAndStake = mapleLiquidityPositionLendAndStake; exports.mapleLiquidityPositionRedeem = mapleLiquidityPositionRedeem; exports.mapleLiquidityPositionStake = mapleLiquidityPositionStake; exports.mapleLiquidityPositionUnstake = mapleLiquidityPositionUnstake; exports.mapleLiquidityPositionUnstakeAndRedeem = mapleLiquidityPositionUnstakeAndRedeem; exports.mockExternalPositionAddDebtAssets = mockExternalPositionAddDebtAssets; exports.mockExternalPositionAddManagedAssets = mockExternalPositionAddManagedAssets; exports.mockExternalPositionRemoveDebtAssets = mockExternalPositionRemoveDebtAssets; exports.mockExternalPositionRemoveManagedAssets = mockExternalPositionRemoveManagedAssets; exports.mockGenericRemoveOnlySelector = mockGenericRemoveOnlySelector; exports.mockGenericSwap = mockGenericSwap; exports.mockGenericSwapASelector = mockGenericSwapASelector; exports.mockGenericSwapArgs = mockGenericSwapArgs; exports.mockGenericSwapBSelector = mockGenericSwapBSelector; exports.mockGenericSwapDirectFromVaultSelector = mockGenericSwapDirectFromVaultSelector; exports.mockGenericSwapViaApprovalSelector = mockGenericSwapViaApprovalSelector; exports.olympusV2Stake = olympusV2Stake; exports.olympusV2Unstake = olympusV2Unstake; exports.paraSwapV5GenerateDummyPaths = paraSwapV5GenerateDummyPaths; exports.paraSwapV5TakeOrder = paraSwapV5TakeOrder; exports.poolTogetherV4ClaimRewards = poolTogetherV4ClaimRewards; exports.poolTogetherV4Lend = poolTogetherV4Lend; exports.poolTogetherV4Redeem = poolTogetherV4Redeem; exports.reactivateExternalPosition = reactivateExternalPosition; exports.redeemSharesForSpecificAssets = redeemSharesForSpecificAssets; exports.redeemSharesInKind = redeemSharesInKind; exports.relayTransaction = relayTransaction; exports.removeExternalPosition = removeExternalPosition; exports.removeTrackedAssetsFromVault = removeTrackedAssetsFromVault; exports.sendEthBySelfDestruct = sendEthBySelfDestruct; exports.setupGasRelayerPaymaster = setupGasRelayerPaymaster; exports.synthetixAssignExchangeDelegate = synthetixAssignExchangeDelegate; exports.synthetixRedeem = synthetixRedeem; exports.synthetixTakeOrder = synthetixTakeOrder; exports.theGraphDelegationPositionDelegate = theGraphDelegationPositionDelegate; exports.theGraphDelegationPositionUndelegate = theGraphDelegationPositionUndelegate; exports.theGraphDelegationPositionWithdraw = theGraphDelegationPositionWithdraw; exports.transactionTimestamp = transactionTimestamp; exports.uniswapV2Lend = uniswapV2Lend; exports.uniswapV2Redeem = uniswapV2Redeem; exports.uniswapV2TakeOrder = uniswapV2TakeOrder; exports.uniswapV3LiquidityPositionAddLiquidity = uniswapV3LiquidityPositionAddLiquidity; exports.uniswapV3LiquidityPositionCollect = uniswapV3LiquidityPositionCollect; exports.uniswapV3LiquidityPositionGetMaxTick = uniswapV3LiquidityPositionGetMaxTick; exports.uniswapV3LiquidityPositionGetMinTick = uniswapV3LiquidityPositionGetMinTick; exports.uniswapV3LiquidityPositionMint = uniswapV3LiquidityPositionMint; exports.uniswapV3LiquidityPositionPurge = uniswapV3LiquidityPositionPurge; exports.uniswapV3LiquidityPositionRemoveLiquidity = uniswapV3LiquidityPositionRemoveLiquidity; exports.uniswapV3OrderTokenPair = uniswapV3OrderTokenPair; exports.uniswapV3TakeOrder = uniswapV3TakeOrder; exports.unlockAllWhales = unlockAllWhales; exports.unlockWhale = unlockWhale; exports.unlockWhales = unlockWhales; exports.updateChainlinkAggregator = updateChainlinkAggregator; exports.vaultCallCreateNewList = vaultCallCreateNewList; exports.vaultCallCurveMinterMint = vaultCallCurveMinterMint; exports.vaultCallCurveMinterMintMany = vaultCallCurveMinterMintMany; exports.vaultCallCurveMinterToggleApproveMint = vaultCallCurveMinterToggleApproveMint; exports.vaultCallStartAssetBypassTimelock = vaultCallStartAssetBypassTimelock; exports.yearnVaultV2Lend = yearnVaultV2Lend; exports.yearnVaultV2Redeem = yearnVaultV2Redeem; exports.zeroExV2TakeOrder = zeroExV2TakeOrder;
|
package/dist/index.mjs
CHANGED
@@ -104,6 +104,7 @@ import {
|
|
104
104
|
AavePriceFeed,
|
105
105
|
AddressListRegistry,
|
106
106
|
AllowedAdapterIncomingAssetsPolicy,
|
107
|
+
AllowedAdaptersPerManagerPolicy,
|
107
108
|
AllowedAdaptersPolicy,
|
108
109
|
AllowedAssetsForRedemptionPolicy,
|
109
110
|
AllowedDepositRecipientsPolicy,
|
@@ -147,6 +148,7 @@ import {
|
|
147
148
|
LiquityDebtPositionLib,
|
148
149
|
LiquityDebtPositionParser,
|
149
150
|
ManagementFee,
|
151
|
+
ManualValueOracleFactory,
|
150
152
|
MapleLiquidityPositionLib,
|
151
153
|
MapleLiquidityPositionParser,
|
152
154
|
MinAssetBalancesPostRedemptionPolicy,
|
@@ -164,6 +166,7 @@ import {
|
|
164
166
|
RevertingPriceFeed,
|
165
167
|
SharesSplitterFactory,
|
166
168
|
SynthetixAdapter,
|
169
|
+
UintListRegistry,
|
167
170
|
UniswapV2ExchangeAdapter,
|
168
171
|
UniswapV2LiquidityAdapter,
|
169
172
|
UniswapV2PoolPriceFeed,
|
@@ -199,6 +202,7 @@ async function deployProtocolFixture() {
|
|
199
202
|
aavePriceFeed: new AavePriceFeed(fixture.AavePriceFeed.address, deployer),
|
200
203
|
addressListRegistry: new AddressListRegistry(fixture.AddressListRegistry.address, deployer),
|
201
204
|
allowedAdapterIncomingAssetsPolicy: new AllowedAdapterIncomingAssetsPolicy(fixture.AllowedAdapterIncomingAssetsPolicy.address, deployer),
|
205
|
+
allowedAdaptersPerManagerPolicy: new AllowedAdaptersPerManagerPolicy(fixture.AllowedAdaptersPerManagerPolicy.address, deployer),
|
202
206
|
allowedAdaptersPolicy: new AllowedAdaptersPolicy(fixture.AllowedAdaptersPolicy.address, deployer),
|
203
207
|
allowedAssetsForRedemptionPolicy: new AllowedAssetsForRedemptionPolicy(fixture.AllowedAssetsForRedemptionPolicy.address, deployer),
|
204
208
|
allowedDepositRecipientsPolicy: new AllowedDepositRecipientsPolicy(fixture.AllowedDepositRecipientsPolicy.address, deployer),
|
@@ -243,6 +247,7 @@ async function deployProtocolFixture() {
|
|
243
247
|
liquityDebtPositionLib: new LiquityDebtPositionLib(fixture.LiquityDebtPositionLib.address, deployer),
|
244
248
|
liquityDebtPositionParser: new LiquityDebtPositionParser(fixture.LiquityDebtPositionParser.address, deployer),
|
245
249
|
managementFee: new ManagementFee(fixture.ManagementFee.address, deployer),
|
250
|
+
manualValueOracleFactory: new ManualValueOracleFactory(fixture.ManualValueOracleFactory.address, deployer),
|
246
251
|
mapleLiquidityPositionLib: new MapleLiquidityPositionLib(fixture.MapleLiquidityPositionLib.address, deployer),
|
247
252
|
mapleLiquidityPositionParser: new MapleLiquidityPositionParser(fixture.MapleLiquidityPositionParser.address, deployer),
|
248
253
|
minAssetBalancesPostRedemptionPolicy: new MinAssetBalancesPostRedemptionPolicy(fixture.MinAssetBalancesPostRedemptionPolicy.address, deployer),
|
@@ -261,6 +266,7 @@ async function deployProtocolFixture() {
|
|
261
266
|
revertingPriceFeed: new RevertingPriceFeed(fixture.RevertingPriceFeed.address, deployer),
|
262
267
|
sharesSplitterFactory: new SharesSplitterFactory(fixture.SharesSplitterFactory.address, deployer),
|
263
268
|
synthetixAdapter: new SynthetixAdapter(fixture.SynthetixAdapter.address, deployer),
|
269
|
+
uintListRegistry: new UintListRegistry(fixture.UintListRegistry.address, deployer),
|
264
270
|
uniswapV2ExchangeAdapter: new UniswapV2ExchangeAdapter(fixture.UniswapV2ExchangeAdapter.address, deployer),
|
265
271
|
uniswapV2LiquidityAdapter: new UniswapV2LiquidityAdapter(fixture.UniswapV2LiquidityAdapter.address, deployer),
|
266
272
|
uniswapV2PoolPriceFeed: new UniswapV2PoolPriceFeed(fixture.UniswapV2PoolPriceFeed.address, deployer),
|
@@ -938,24 +944,24 @@ async function createLiquityDebtPosition({
|
|
938
944
|
}
|
939
945
|
async function liquityCalcHints({
|
940
946
|
collateralAmount,
|
941
|
-
|
942
|
-
numTrials = BigNumber4.from("
|
947
|
+
debtAmount,
|
948
|
+
numTrials = BigNumber4.from("100"),
|
943
949
|
liquitySortedTroves,
|
944
950
|
liquityHintHelper,
|
945
951
|
inputRandomSeed = BigNumber4.from("4")
|
946
952
|
}) {
|
947
|
-
const nicr = collateralAmount.mul(utils4.parseEther("100")).div(
|
953
|
+
const nicr = collateralAmount.mul(utils4.parseEther("100")).div(debtAmount);
|
948
954
|
const approxHint = await liquityHintHelper.getApproxHint.args(nicr, numTrials, inputRandomSeed).call();
|
949
|
-
const
|
950
|
-
return
|
955
|
+
const [upperHint, lowerHint] = await liquitySortedTroves.findInsertPosition.args(nicr, approxHint[0], approxHint[0]).call();
|
956
|
+
return { lowerHint, upperHint };
|
951
957
|
}
|
952
958
|
async function liquityDebtPositionAddCollateral({
|
953
959
|
comptrollerProxy,
|
954
960
|
externalPositionManager,
|
955
961
|
signer,
|
956
962
|
collateralAmount,
|
957
|
-
lowerHint,
|
958
963
|
upperHint,
|
964
|
+
lowerHint,
|
959
965
|
externalPositionProxy
|
960
966
|
}) {
|
961
967
|
const actionArgs = liquityDebtPositionAddCollateralArgs({
|
@@ -978,8 +984,8 @@ async function liquityDebtPositionBorrow({
|
|
978
984
|
signer,
|
979
985
|
maxFeePercentage,
|
980
986
|
lusdAmount,
|
981
|
-
lowerHint,
|
982
987
|
upperHint,
|
988
|
+
lowerHint,
|
983
989
|
externalPositionProxy
|
984
990
|
}) {
|
985
991
|
const actionArgs = liquityDebtPositionBorrowArgs({
|
@@ -1020,8 +1026,8 @@ async function liquityDebtPositionOpenTrove({
|
|
1020
1026
|
maxFeePercentage,
|
1021
1027
|
collateralAmount,
|
1022
1028
|
lusdAmount,
|
1023
|
-
lowerHint,
|
1024
1029
|
upperHint,
|
1030
|
+
lowerHint,
|
1025
1031
|
externalPositionProxy
|
1026
1032
|
}) {
|
1027
1033
|
const actionArgs = liquityDebtPositionOpenTroveArgs({
|
@@ -1045,8 +1051,8 @@ async function liquityDebtPositionRemoveCollateral({
|
|
1045
1051
|
externalPositionManager,
|
1046
1052
|
signer,
|
1047
1053
|
collateralAmount,
|
1048
|
-
lowerHint,
|
1049
1054
|
upperHint,
|
1055
|
+
lowerHint,
|
1050
1056
|
externalPositionProxy
|
1051
1057
|
}) {
|
1052
1058
|
const actionArgs = liquityDebtPositionRemoveCollateralArgs({
|
@@ -1068,8 +1074,8 @@ async function liquityDebtPositionRepay({
|
|
1068
1074
|
externalPositionManager,
|
1069
1075
|
signer,
|
1070
1076
|
lusdAmount,
|
1071
|
-
lowerHint,
|
1072
1077
|
upperHint,
|
1078
|
+
lowerHint,
|
1073
1079
|
externalPositionProxy
|
1074
1080
|
}) {
|
1075
1081
|
const actionArgs = liquityDebtPositionRepayBorrowArgs({
|
@@ -2261,7 +2267,7 @@ async function mockGenericSwap({
|
|
2261
2267
|
comptrollerProxy,
|
2262
2268
|
vaultProxy,
|
2263
2269
|
integrationManager,
|
2264
|
-
|
2270
|
+
signer,
|
2265
2271
|
mockGenericAdapter,
|
2266
2272
|
selector = mockGenericSwapASelector,
|
2267
2273
|
spendAssets = [],
|
@@ -2290,7 +2296,7 @@ async function mockGenericSwap({
|
|
2290
2296
|
encodedCallArgs: swapArgs,
|
2291
2297
|
selector
|
2292
2298
|
});
|
2293
|
-
const swapTx = comptrollerProxy.connect(
|
2299
|
+
const swapTx = comptrollerProxy.connect(signer).callOnExtension(integrationManager, IntegrationManagerActionId6.CallOnIntegration, callArgs);
|
2294
2300
|
await expect(swapTx).resolves.toBeReceipt();
|
2295
2301
|
return swapTx;
|
2296
2302
|
}
|
@@ -2866,7 +2872,25 @@ var IVotiumMultiMerkleStash = contract6()`
|
|
2866
2872
|
function updateMerkleRoot(address, bytes32)
|
2867
2873
|
`;
|
2868
2874
|
|
2869
|
-
// src/scaffolding/
|
2875
|
+
// src/scaffolding/persistent/manual-value-oracle.ts
|
2876
|
+
import { ManualValueOracleLib } from "@enzymefinance/protocol";
|
2877
|
+
async function deployManualValueOracle({
|
2878
|
+
signer,
|
2879
|
+
manualValueOracleFactory,
|
2880
|
+
owner,
|
2881
|
+
updater,
|
2882
|
+
description = ""
|
2883
|
+
}) {
|
2884
|
+
const receipt = await manualValueOracleFactory.connect(signer).deploy(owner, updater, description);
|
2885
|
+
const proxyDeployedArgs = assertEvent(receipt, "ProxyDeployed", {
|
2886
|
+
caller: signer,
|
2887
|
+
proxy: expect.any(String)
|
2888
|
+
});
|
2889
|
+
const proxy = new ManualValueOracleLib(proxyDeployedArgs.proxy, provider);
|
2890
|
+
return { proxy, receipt };
|
2891
|
+
}
|
2892
|
+
|
2893
|
+
// src/scaffolding/persistent/shares-splitter.ts
|
2870
2894
|
import { SharesSplitterLib } from "@enzymefinance/protocol";
|
2871
2895
|
async function deploySharesSplitter({
|
2872
2896
|
signer,
|
@@ -3260,6 +3284,7 @@ export {
|
|
3260
3284
|
curveTakeOrder,
|
3261
3285
|
curveUnstake,
|
3262
3286
|
curveUnstakeAndRedeem,
|
3287
|
+
deployManualValueOracle,
|
3263
3288
|
deployProtocolFixture,
|
3264
3289
|
deploySharesSplitter,
|
3265
3290
|
generateFeeManagerConfigWithMockFees,
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@enzymefinance/testutils",
|
3
|
-
"version": "4.0.
|
3
|
+
"version": "4.0.4",
|
4
4
|
"description": "Technology Regulated and Operated Investment Funds",
|
5
5
|
"author": "Enzyme Council DAO <council@enzyme.finance>",
|
6
6
|
"license": "GPL-3.0",
|
@@ -45,10 +45,10 @@
|
|
45
45
|
"typecheck": "tsc --noEmit"
|
46
46
|
},
|
47
47
|
"dependencies": {
|
48
|
-
"@enzymefinance/ethers": "^4.0.
|
49
|
-
"@enzymefinance/hardhat": "^4.0.
|
50
|
-
"@enzymefinance/protocol": "^4.0.
|
51
|
-
"ethers": "^5.6.
|
48
|
+
"@enzymefinance/ethers": "^4.0.4",
|
49
|
+
"@enzymefinance/hardhat": "^4.0.4",
|
50
|
+
"@enzymefinance/protocol": "^4.0.4",
|
51
|
+
"ethers": "^5.6.8",
|
52
52
|
"merkletreejs": "^0.2.31"
|
53
53
|
},
|
54
54
|
"devDependencies": {
|