Skip to content

Commit

Permalink
feat(week-5-deployment): deploys the March version of the protcol, rc-3
Browse files Browse the repository at this point in the history
  • Loading branch information
Alexangelj committed Mar 3, 2022
1 parent d965cd9 commit ae6c200
Show file tree
Hide file tree
Showing 10 changed files with 171 additions and 51 deletions.
20 changes: 10 additions & 10 deletions deployments/default/goerli.json
@@ -1,15 +1,15 @@
{
"chainId": 5,
"version": "0130d5c293a17ae380b71ff57c4a16d516f8757b",
"deploymentDate": 1643598288194,
"version": "d965cd9497ed3b9ab42ed42d0455d7417312cdb6",
"deploymentDate": 1646268922032,
"_isDev": false,
"startBlock": 6294759,
"startBlock": 6469455,
"addresses": {
"primitiveFactory": "0xae0154F356b4Aa58A39756577bDCcBFd7267d5Fe",
"positionRenderer": "0x6e6C7EC3A74E5f007ac8Ad4648757f2Ef72Fa8ea",
"positionDescriptor": "0x1D32EF9bA7292D35793E6935CC14613f200f8782",
"primitiveManager": "0xF48EB8f36A01B7736fd4aa47543C14757C2beF93",
"positionRendererProxyAdmin": "",
"positionRendererTransparentUpgradeableProxy": ""
"primitiveFactory": "0xd4594213a5ad853147c130a945C2A1FdEa64798D",
"positionRenderer": "0x88B9468E503eF1B18699dd6f9423810328f7497B",
"positionDescriptor": "0x196dF0E486df422E400865Fc1d399227b710B2b4",
"primitiveManager": "0xcF2E24E9574654Ec05238359d160FDCDb6bA517f",
"positionRendererProxyAdmin": "0xF59e56e40bEff6F28c93Af1a2947A6e8f1d135DB",
"positionRendererTransparentUpgradeableProxy": "0x05c9bDB5b8E0d91b17628e5a2C339189377FF735"
}
}
}
20 changes: 10 additions & 10 deletions deployments/default/kovan.json
@@ -1,15 +1,15 @@
{
"chainId": 42,
"version": "0130d5c293a17ae380b71ff57c4a16d516f8757b",
"deploymentDate": 1643598250229,
"version": "d965cd9497ed3b9ab42ed42d0455d7417312cdb6",
"deploymentDate": 1646268862272,
"_isDev": false,
"startBlock": 29567177,
"startBlock": 30147620,
"addresses": {
"primitiveFactory": "0xc2150C4BB6d78642B8750D5Cf6fCd76E15838C2C",
"positionRenderer": "0x40d9017D6aBD06e6fD6df7cB36D7AF05aCE833DD",
"positionDescriptor": "0x8AD914f2682d1956fC06Bf5657e9512C2e2C2e4d",
"primitiveManager": "0xdf0fc20e001CEbC4Bb32FeCe7ceBa260F64F2D28",
"positionRendererProxyAdmin": "",
"positionRendererTransparentUpgradeableProxy": ""
"primitiveFactory": "0x17C74913b07496C0806c009A7f9B127B89B8a66D",
"positionRenderer": "0xC17880e89bCcF2954792983113577E7E8729Cb49",
"positionDescriptor": "0x76a0578038CBA1991882961d5FB502F5DA73A3D7",
"primitiveManager": "0x3F6C2A259Ad0E261F5251423315b74049086Ab09",
"positionRendererProxyAdmin": "0xDb16F11935D05379D4f304B2199D1bFf8748A251",
"positionRendererTransparentUpgradeableProxy": "0xe57ac68EF5770c1EcEDF9a08fc9989569d5C045f"
}
}
}
35 changes: 34 additions & 1 deletion deployments/default/pools.json
Expand Up @@ -9,9 +9,42 @@
"0xe5023e162f2a1c69c21e2fa923ce1efffb7f9a48caf9747b997ce6341640bd26": "RMM-LP-RBN/USDC-2.75-1.5-1644918397-0.99",
"0x413af4ff4d08283ca37c3b2b3a891967100808a2c9fad7dea6bb861008c57a98": "RMM-LP-RBN/USDC-3-1-1644918397-0.99"
}
},
"WETH-USDC": {
"name": "RMM-LP-WETH/USDC",
"engine": "0x7CBD951e9b0254a7C0EcD90b34428Ee0c06B3f93",
"pools": {
"0xfd576a5da5be3532987db2e411512bd50698d8fa0467b1f0488c32da91546f55": "RMM-LP-WETH/USDC-3500-0.7-1644918397-0.99",
"0xe93a30e0f8905489fadfedf57d9141638be92cd64ab359d071120dcab4b9a69d": "RMM-LP-WETH/USDC-3500-0.95-1646121600-0.99",
"0xdd8044a838d947014f1f7d756516a90f982abf59bf59975e4abc442252aedf8e": "RMM-LP-WETH/USDC-3500-1-1646121600-0.99",
"0x6e747edf02c5e92b601f649612fbf51c754cd137f5380762af1d9a5b79a381da": "RMM-LP-WETH/USDC-3500-1.05-1646121600-0.99",
"0x64bf5ce1e834a1fdbfcae0319695e453305809e8abfb706308a6f1bb8680a727": "RMM-LP-WETH/USDC-3500-1.1-1646121600-0.99",
"0x420bb26ab636ffedeb01db62a84a458db64e05251147bf2fdc2bc3920f47db73": "RMM-LP-WETH/USDC-3500-1.15-1646121600-0.99",
"0x93ecc2a25b3380e34fa72d6544a667b5c6e0268d201114c4871df1597034b4f4": "RMM-LP-WETH/USDC-3500-1.2-1646121600-0.99",
"0xdb11519f322b02152058631ac31c8210549462623b8e24cfb3f8a9809ca591f6": "RMM-LP-WETH/USDC-3500-1.25-1646121600-0.99",
"0x93f323d01a261146c59055823380c63aca3f96ef8c7cf312c1ecf9258c357aeb": "RMM-LP-WETH/USDC-3500-1.3-1646121600-0.99",
"0x51575ec768ece0b7dfb814ef2ee5c15ffc5f6fb92d9cd9c9f0b220838cfece5a": "RMM-LP-WETH/USDC-3500-1.35-1646121600-0.99",
"0xb467dedce1736136ba14d041ec245adfa9a762840f0a97411c9a0052437fa78f": "RMM-LP-WETH/USDC-3500-1.4-1646121600-0.99",
"0xccb0b5e7082f36c70a9b9e5695a841ff2b2fce9b87781b78e816cc6123250518": "RMM-LP-WETH/USDC-3500-1.45-1646121600-0.99",
"0xf4c9fc9fffbfe5b69298383bac44d77368996afba971f4a52d688e67b0b55b4b": "RMM-LP-WETH/USDC-3500-1.5-1646121600-0.99",
"0xa4ec71ea091b905a1e8cda002e1ff337634aeb53495a1fa67b51cde063f6e222": "RMM-LP-WETH/USDC-3500-1.55-1646121600-0.99",
"0x7d24ebe258e1820ab2d4470b1ea8cbbdce55895606001841bcd78998e379a776": "RMM-LP-WETH/USDC-3500-1.6-1646121600-0.99",
"0x45bd5e880f2cb195e65e23fdbf695ae8fe5d132ea7b096eb2448d827102bd4b0": "RMM-LP-WETH/USDC-3500-1.65-1646121600-0.99",
"0x1040851874a649a7c500e1fb10c0aa68c81602dcd4ef0bda9664f49f9313a229": "RMM-LP-WETH/USDC-3500-1.7-1646121600-0.99",
"0x52fc6f5f9a30884f39949fc3f831714945885b9e20670c88aa08fea540bb211f": "RMM-LP-WETH/USDC-3500-0.7-1648839599-0.99",
"0xb62fdbc6b5ff6a125a7a0b37d683ecc5364171b131d79988c38c19a24b48f268": "RMM-LP-WETH/USDC-3500-0.75-1648839599-0.99",
"0x78d0a343f30bf04949f7d42a3c14518981625685592f1fbaf03c4cc20536b08b": "RMM-LP-WETH/USDC-3500-0.8-1648839599-0.99",
"0x8ea4cfad724a9f9107398b1edba6fe929ea49b680b8704f877aece95f045f06f": "RMM-LP-WETH/USDC-3500-0.85-1648839599-0.99",
"0x22e573a1fc55a19400cc3627102ef510ad53cfee9167fb2595200b2d860498a5": "RMM-LP-WETH/USDC-3500-0.9-1648839599-0.99",
"0x18955f5e5dbb4cc452835aa56697883530a4207aed5974573001307dbf9162f6": "RMM-LP-WETH/USDC-3500-0.95-1648839599-0.99",
"0x96c78fe6173433a261e127422c2cb6d3b268b2e6d5cebf9b478f5bd863df2da0": "RMM-LP-WETH/USDC-3500-1-1648839599-0.99",
"0x6c7ff387c7439d686743254146cf585cc22a331153485b26eaf55717235f3665": "RMM-LP-WETH/USDC-3500-1.05-1648839599-0.99",
"0xce4d861e7930557e4849daef92fe5554977dacf468388bc1e82859392f9631fb": "RMM-LP-WETH/USDC-3500-1.1-1648839599-0.99",
"0x2f65479bb44ee384ad745db57a17e1f5ccf34a83024f3cab7278a89dcb9b2dba": "RMM-LP-WETH/USDC-3500-1.15-1648839599-0.99"
}
}
},
"5": {},
"42": {},
"1337": {}
}
}
18 changes: 9 additions & 9 deletions deployments/default/rinkeby.json
@@ -1,15 +1,15 @@
{
"chainId": 4,
"version": "5ff972053bf204575dc2c5d63017da90a666d506",
"deploymentDate": 1643846132237,
"version": "d965cd9497ed3b9ab42ed42d0455d7417312cdb6",
"deploymentDate": 1646268758062,
"_isDev": false,
"startBlock": 10101597,
"startBlock": 10261394,
"addresses": {
"primitiveFactory": "0xBCB72cC1b2Afd9462722eA7f698Bf66e0A78c534",
"positionRenderer": "0xF0b3b8Cba38Cc4628ddcfac98FFE2249575d459e",
"positionDescriptor": "0x1e2CD4F4a2B156e1cB5a0869B812D116aBc9d7A0",
"primitiveManager": "0x3662c4eCb5b3b0805C8Af689D664796Dc74fAB94",
"positionRendererProxyAdmin": "0x9315BCD544f4768EF3bC922494CD6b4e0e57742e",
"positionRendererTransparentUpgradeableProxy": "0x2dCfd996a459AA0e699522c9F49f6d33a8066e1e"
"primitiveFactory": "0xAa45eD811cdb3BCde65D112A9B35306F4eAD973E",
"positionRenderer": "0x54cE2cB3B8c15F697d1558D36Bf1e411bc2dFc6B",
"positionDescriptor": "0xD899BA6395D0b3BA36ece51523Ed9B134Eb7e51B",
"primitiveManager": "0xaF89207127C6a9CB7206618eE1963fC15022dAbb",
"positionRendererProxyAdmin": "0xae355C24fbAda2bCF5d8f8D7350a9705497df4A5",
"positionRendererTransparentUpgradeableProxy": "0x3C5d6Aa169DA5aCA7931B240084Ba2112567C946"
}
}
2 changes: 1 addition & 1 deletion package.json
Expand Up @@ -87,7 +87,7 @@
},
"dependencies": {
"@openzeppelin/contracts": "^4.4.2",
"@primitivefi/rmm-sdk": "^1.1.0-rc.3",
"@primitivefi/rmm-sdk": "1.1.0-rc.5",
"@rari-capital/solmate": "^6.2.0",
"defender-relay-client": "^1.12.1"
},
Expand Down
37 changes: 37 additions & 0 deletions scripts/deploy-engine.ts
@@ -0,0 +1,37 @@
import hre from 'hardhat'
import { Signer } from '@ethersproject/abstract-signer'
import { DefenderRelaySigner } from 'defender-relay-client/lib/ethers'

import { log, setSilent } from '../utils/deploy'
import { deployEngine } from '../utils/deployEngine'

type Signers = Signer | DefenderRelaySigner

export async function main() {
setSilent(false)

const signer: Signers = await hre.run('useSigner')
const from = await signer.getAddress()
log(`Using signer: ${from}`)

const rmm = await hre.connect(signer)

log(`Connected to RMM: `, rmm.connection.addresses)

const chainId = rmm.connection.chainId
log(`Using chainId: ${chainId}`)

if (chainId === 1) throw new Error('Do not use this in prod!')

const risky = '0xc778417E063141139Fce010982780140Aa0cD5Ab' // rinkeby:WETH: FIX
const stable = '0x522064c1EafFEd8617BE64137f66A71D6C5c9aA3' // rinkeby:USDC: FIX

await deployEngine(rmm, risky, stable)
}

main()
.then(() => process.exit(0))
.catch(error => {
console.error(error)
process.exit(1)
})
39 changes: 34 additions & 5 deletions scripts/deploy-pools.ts
Expand Up @@ -12,18 +12,18 @@ import { log, setSilent } from '../utils/deploy'
import { deployPool } from '../utils/deployPool'
import { PoolConfigType, PoolDeployer, PoolDeployments } from '../utils/poolDeployer'

import { ERC20, PrimitiveEngine } from '../typechain'
import { IERC20WithMetadata, PrimitiveEngine } from '../typechain'

type Signers = Signer | DefenderRelaySigner
type CalibrationType = { strike: string; sigma: string; maturity: string; gamma: string }

// --- Config ---
export const POOL_DEPLOYMENTS_SAVE = path.join('./deployments', 'default', 'pools.json')
const DEFAULT_MATURITY = 1644918397
const DEFAULT_MATURITY = 1648839599
const DEFAULT_GAMMA = 0.99
const defaultParams = { maturity: DEFAULT_MATURITY, gamma: DEFAULT_GAMMA }

export const POOL_CONFIG_TO_DEPLOY: PoolConfigType = {
/* export const POOL_CONFIG_TO_DEPLOY: PoolConfigType = {
name: 'RBN-USDC',
engine: '0x2678a653FE4DE7eBcc76d7FC3d27Be62e7E0015A', //rinkeby-rbn-usdc-engine//'0xe7Cad6009A6239bf7F7D68543d555836481f8283',
spot: 2.42,
Expand All @@ -35,6 +35,35 @@ export const POOL_CONFIG_TO_DEPLOY: PoolConfigType = {
{ strike: 3, sigma: 1.25, ...defaultParams },
{ strike: 3, sigma: 1.5, ...defaultParams },
],
} */

export const POOL_CONFIG_TO_DEPLOY: PoolConfigType = {
name: 'WETH-USDC',
engine: '0x7CBD951e9b0254a7C0EcD90b34428Ee0c06B3f93', // weth-usdc rinkeby
spot: 3000,
pools: [
{ strike: 3500, sigma: 0.7, ...defaultParams },
{ strike: 3500, sigma: 0.75, ...defaultParams },
{ strike: 3500, sigma: 0.8, ...defaultParams },
{ strike: 3500, sigma: 0.85, ...defaultParams },
{ strike: 3500, sigma: 0.9, ...defaultParams },
{ strike: 3500, sigma: 0.95, ...defaultParams },
{ strike: 3500, sigma: 1, ...defaultParams },
{ strike: 3500, sigma: 1.05, ...defaultParams },
{ strike: 3500, sigma: 1.1, ...defaultParams },
{ strike: 3500, sigma: 1.15, ...defaultParams },
{ strike: 3500, sigma: 1.2, ...defaultParams },
{ strike: 3500, sigma: 1.25, ...defaultParams },
{ strike: 3500, sigma: 1.3, ...defaultParams },
{ strike: 3500, sigma: 1.35, ...defaultParams },
{ strike: 3500, sigma: 1.4, ...defaultParams },
{ strike: 3500, sigma: 1.45, ...defaultParams },
{ strike: 3500, sigma: 1.5, ...defaultParams },
{ strike: 3500, sigma: 1.55, ...defaultParams },
{ strike: 3500, sigma: 1.6, ...defaultParams },
{ strike: 3500, sigma: 1.65, ...defaultParams },
{ strike: 3500, sigma: 1.7, ...defaultParams },
],
}

export async function deployPools(deployer: PoolDeployer) {
Expand All @@ -45,7 +74,7 @@ export async function deployPools(deployer: PoolDeployer) {
log(`Got engine: ${engine.address}`)

const [token0, token1] = (await Promise.all([engine.risky(), engine.stable()])).map(
address => new hre.ethers.Contract(address, ERC20Artifact.abi, signer) as ERC20,
address => new hre.ethers.Contract(address, ERC20Artifact.abi, signer) as IERC20WithMetadata,
)

log(`Loading tokens...`)
Expand Down Expand Up @@ -89,7 +118,7 @@ export async function deployPools(deployer: PoolDeployer) {
// get default parameters
const minRisky = parseWei('100000000', risky.decimals)
const minStable = parseWei('100000000', stable.decimals)
const delLiquidity = parseWei(1)
const delLiquidity = parseWei(0.1)

// get params
const poolEntities: Pool[] = []
Expand Down
18 changes: 18 additions & 0 deletions scripts/get-engine.ts
@@ -0,0 +1,18 @@
import hre from 'hardhat'

import { log, setSilent } from '../utils/deploy'
import { TASK_GET_ENGINE, USDC_RINKEBY, WETH_RINKEBY } from '../tasks/constants'

export async function main() {
setSilent(false)
const engine = await hre.run(TASK_GET_ENGINE, { risky: WETH_RINKEBY, stable: USDC_RINKEBY })

log(`Got the engine for WETH`, engine.address)
}

main()
.then(() => process.exit(0))
.catch(error => {
console.error(error)
process.exit(1)
})
4 changes: 4 additions & 0 deletions utils/deployPool.ts
Expand Up @@ -31,6 +31,9 @@ export async function deployPool(
pool.tau.years,
referencePrice,
)
// delRisky and delStable amounts based on liquidity
options.delRisky = options.delRisky.mul(options.delLiquidity).div(1e18)
options.delStable = options.delStable.mul(options.delLiquidity).div(1e18)

if (estimatedRisky < 1e-6) throw new Error(`Estimated risky reserves are too low: ${estimatedRisky} < 1e-6`)
if (estimatedRisky > 1 - 1e-6) throw new Error(`Estimated risky reserves are too high: ${estimatedRisky} > 1 - 1e-6`)
Expand All @@ -44,6 +47,7 @@ export async function deployPool(
positionAdjustmentDetails = await rmm.createPool({ pool, options })
} catch (e) {
console.log(`Failed on attempting to createPool with code: ${(e as any)?.code ? (e as any).code : e}`)
console.log(e)
}

return positionAdjustmentDetails
Expand Down
29 changes: 14 additions & 15 deletions yarn.lock
Expand Up @@ -2014,18 +2014,18 @@
dependencies:
squirrelly "^8.0.8"

"@primitivefi/rmm-core@^1.0.0-rc.2":
version "1.0.0-rc.2"
resolved "https://registry.yarnpkg.com/@primitivefi/rmm-core/-/rmm-core-1.0.0-rc.2.tgz#b30741108d1bc1fe52dd1db32b449cdf7919ffd6"
integrity sha512-dX58g1WcKfm+nWNZtWtPPMJp1GYe6Py0PxDbc7tvcTEXTYgf2/FHYUjEO9KEKqrFKgPLHh3B2NQrCIiXvHE/DQ==
"@primitivefi/rmm-core@^1.0.0":
version "1.0.0"
resolved "https://registry.yarnpkg.com/@primitivefi/rmm-core/-/rmm-core-1.0.0.tgz#cddd7d554f34179312a34208d40f4d4ff573970c"
integrity sha512-ac12fse0rRicTOJLssRPW+X36sZSefnZ/Dz9ElIwh586CiY8O+tJLWg4T/B1ymvDF2ils+RtSLWxMWQ1Mb4k9Q==

"@primitivefi/rmm-manager@^1.0.0-rc.3":
version "1.0.0-rc.3"
resolved "https://registry.yarnpkg.com/@primitivefi/rmm-manager/-/rmm-manager-1.0.0-rc.3.tgz#481d6e1dd6a0edad8d163a7c2ae4271e201c9b84"
integrity sha512-orXVdIF9wdvoRl67Os8Goz0OV9cWV87a7EsV/izb84V+yPVWDrNTQcbQbxDEl10Zl+NqX0FbOSy8TLj8HnySdw==
"@primitivefi/rmm-manager@^1.0.0":
version "1.0.0"
resolved "https://registry.yarnpkg.com/@primitivefi/rmm-manager/-/rmm-manager-1.0.0.tgz#f95a95925d0a3ff4c224f2fcf9255d33c4b21fa4"
integrity sha512-ccaQsuNqKBLPjNFRezc9YRt4Uu9d6VJgNlJ8Lp2Z/AojT7P/C7gDBvgGN+GUsGKVAkhHFu9oq65UPfLcVVjeEQ==
dependencies:
"@openzeppelin/contracts" "^4.1.0"
"@primitivefi/rmm-core" "^1.0.0-rc.2"
"@primitivefi/rmm-core" "^1.0.0"
base64-sol "^1.1.0"

"@primitivefi/rmm-math@^2.0.0-rc.1":
Expand All @@ -2036,13 +2036,12 @@
gaussian "^1.2.0"
numeric "^1.2.6"

"@primitivefi/rmm-sdk@^1.1.0-rc.3":
version "1.1.0-rc.3"
resolved "https://registry.yarnpkg.com/@primitivefi/rmm-sdk/-/rmm-sdk-1.1.0-rc.3.tgz#1a8208c1c58195df29f565673911a1f5f4af9a1a"
integrity sha512-c+t/cYzFb0aFqnhl3BA3MOK6GvLnrCjW+1wHbrZKDr79CsMUGULnqECGy9gMnscnObqfBKk1c36AngJXrchmCA==
"@primitivefi/rmm-sdk@1.1.0-rc.5":
version "1.1.0-rc.5"
resolved "https://registry.yarnpkg.com/@primitivefi/rmm-sdk/-/rmm-sdk-1.1.0-rc.5.tgz#b07264bbec81dbe32b729418fb74fa07ff9420de"
integrity sha512-wpQMiDgje4BB/Z7A7mngUY72IEOqvzeL6YSKXCBfWd6TkNJ+QDaRl4Fr8NURopJ67AszPJE5q7g0ZFdQS+cmKA==
dependencies:
"@primitivefi/rmm-core" "^1.0.0-rc.2"
"@primitivefi/rmm-manager" "^1.0.0-rc.3"
"@primitivefi/rmm-manager" "^1.0.0"
"@primitivefi/rmm-math" "^2.0.0-rc.1"
"@uniswap/sdk-core" "^3.0.1"
shelljs "0.8.5"
Expand Down

0 comments on commit ae6c200

Please sign in to comment.