@enzymefinance/testutils 4.0.1 → 4.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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": {
|