diff --git a/pkg/pool-stable/contracts/ComposableStablePool.sol b/pkg/pool-stable/contracts/ComposableStablePool.sol index 6edc1cb02f..5ef9fe7ca1 100644 --- a/pkg/pool-stable/contracts/ComposableStablePool.sol +++ b/pkg/pool-stable/contracts/ComposableStablePool.sol @@ -76,6 +76,7 @@ contract ComposableStablePool is string name; string symbol; IERC20[] tokens; + address[] assetManagers; IRateProvider[] rateProviders; uint256[] tokenRateCacheDurations; bool[] exemptFromYieldProtocolFeeFlags; @@ -94,7 +95,7 @@ contract ComposableStablePool is params.name, params.symbol, _insertSorted(params.tokens, IERC20(this)), - new address[](params.tokens.length + 1), + params.assetManagers, params.swapFeePercentage, params.pauseWindowDuration, params.bufferPeriodDuration, diff --git a/pkg/pool-stable/contracts/ComposableStablePoolFactory.sol b/pkg/pool-stable/contracts/ComposableStablePoolFactory.sol index aa43160118..e2ddce952d 100644 --- a/pkg/pool-stable/contracts/ComposableStablePoolFactory.sol +++ b/pkg/pool-stable/contracts/ComposableStablePoolFactory.sol @@ -62,6 +62,7 @@ contract ComposableStablePoolFactory is IVersion, IPoolVersion, BasePoolFactory string memory name, string memory symbol, IERC20[] memory tokens, + address[] memory assetManagers, uint256 amplificationParameter, IRateProvider[] memory rateProviders, uint256[] memory tokenRateCacheDurations, @@ -80,6 +81,7 @@ contract ComposableStablePoolFactory is IVersion, IPoolVersion, BasePoolFactory name: name, symbol: symbol, tokens: tokens, + assetManagers: assetManagers, rateProviders: rateProviders, tokenRateCacheDurations: tokenRateCacheDurations, exemptFromYieldProtocolFeeFlags: exemptFromYieldProtocolFeeFlags, diff --git a/pkg/pool-stable/test/ComposableStablePoolFactory.test.ts b/pkg/pool-stable/test/ComposableStablePoolFactory.test.ts index c28d081551..ac1bb4ffaa 100644 --- a/pkg/pool-stable/test/ComposableStablePoolFactory.test.ts +++ b/pkg/pool-stable/test/ComposableStablePoolFactory.test.ts @@ -67,10 +67,12 @@ describe('ComposableStablePoolFactory', function () { }); async function createPool(): Promise { + let assetManagers: string[] = Array(tokens.length+1).fill('0x0000000000000000000000000000000000000000'); const receipt = await factory.create( NAME, SYMBOL, tokens.addresses, + assetManagers, AMP, rateProviders, Array(tokens.length).fill(PRICE_RATE_CACHE_DURATION), diff --git a/pvt/helpers/src/models/pools/stable/StablePoolDeployer.ts b/pvt/helpers/src/models/pools/stable/StablePoolDeployer.ts index 044f53326a..9fc2796ae4 100644 --- a/pvt/helpers/src/models/pools/stable/StablePoolDeployer.ts +++ b/pvt/helpers/src/models/pools/stable/StablePoolDeployer.ts @@ -28,6 +28,7 @@ export default { async _deployStandalone(params: StablePoolDeployment, vault: Vault): Promise { const { tokens, + assetManagers, rateProviders, tokenRateCacheDurations, exemptFromYieldProtocolFeeFlags, @@ -49,6 +50,7 @@ export default { name: NAME, symbol: SYMBOL, tokens: tokens.addresses, + assetManagers: assetManagers, rateProviders: TypesConverter.toAddresses(rateProviders), tokenRateCacheDurations, exemptFromYieldProtocolFeeFlags, diff --git a/pvt/helpers/src/models/pools/stable/types.ts b/pvt/helpers/src/models/pools/stable/types.ts index 52c3a0cadb..7f56232715 100644 --- a/pvt/helpers/src/models/pools/stable/types.ts +++ b/pvt/helpers/src/models/pools/stable/types.ts @@ -122,6 +122,7 @@ export type PoolQueryResult = JoinQueryResult | ExitQueryResult; export type RawStablePoolDeployment = { tokens?: TokenList; + assetManagers?: string[]; swapFeePercentage?: BigNumberish; amplificationParameter?: BigNumberish; rateProviders?: Account[]; @@ -139,6 +140,7 @@ export type RawStablePoolDeployment = { export type StablePoolDeployment = { tokens: TokenList; + assetManagers: string[]; swapFeePercentage: BigNumberish; amplificationParameter: BigNumberish; rateProviders: Account[]; diff --git a/pvt/helpers/src/models/types/TypesConverter.ts b/pvt/helpers/src/models/types/TypesConverter.ts index 1891f1fa91..37233a53de 100644 --- a/pvt/helpers/src/models/types/TypesConverter.ts +++ b/pvt/helpers/src/models/types/TypesConverter.ts @@ -133,6 +133,7 @@ export default { toStablePoolDeployment(params: RawStablePoolDeployment): StablePoolDeployment { let { tokens, + assetManagers, rateProviders, tokenRateCacheDurations, exemptFromYieldProtocolFeeFlags, @@ -152,9 +153,11 @@ export default { if (!bufferPeriodDuration) bufferPeriodDuration = MONTH; if (!exemptFromYieldProtocolFeeFlags) exemptFromYieldProtocolFeeFlags = Array(tokens.length).fill(false); if (!version) version = 'test'; + if (!assetManagers) assetManagers = Array(tokens.length+1).fill('0x0000000000000000000000000000000000000000'); return { tokens, + assetManagers, rateProviders, tokenRateCacheDurations, exemptFromYieldProtocolFeeFlags,