- Deployed Contracts
-
PIP
(Oracle)- deployed via deployer (OSM)
- contract is verified on etherscan
- ensure solc version matches source
- ensure optimization matches source
- ensure license
AGPLv3
is specified - ensure source matches github code (i.e. diffcheck via vscode
code --diff etherscan.sol github.sol
)
- constructor args are correct
-
src
(medianizer)
-
- check
wards
-
MCD_PAUSE_PROXY
is relied - deployer is denied
- no other address has been relied
-
- contract is verified on etherscan
- deployed via Factory (LPs)
- Fab matches
- deployed via deployer (OSM)
-
Join
(Join Adapter)- deployed via JoinFab
- Fab matches chainlog
-
newGemJoin
(Standard ERC-20 Join Adapter) -
newGemJoin5
(Custom Adapter for Tokens with lower precision than 18) -
AuthGemJoin
(Custom Adapter for Tokens that needs authedjoin
access) - parameters are correct
-
owner
matches MCD Pause Proxy -
ilk
is thebytes32
representation of "TOKEN-A"-
seth --to-ascii <bytes32>
matches ASCII Ilk -
seth --to-bytes32 $(seth --from-ascii "TOKEN-A")
matchesbytes32
-
-
gem
matches token contract
-
- deployed via JoinFab
-
Clip
- deployed via ClipFab
- Fab matches chainlog
-
newClip
parameters are correct-
owner
matches MCD Pause Proxy -
vat
matches chainlog -
spotter
matches chainlog -
dog
matches chainlog -
ilk
is thebytes32
representation of "TOKEN-A"-
seth --to-ascii <bytes32>
matches ASCII Ilk -
seth --to-bytes32 $(seth --from-ascii "TOKEN-A")
matchesbytes32
-
-
- deployed via ClipFab
-
Calc
- Risk Parameters
-
vat.ilk.line
(setIlkDebtCeiling) -
dog.ilk.hole
(setIlkMaxLiquidationAmount) -
vat.ilk.dust
(setIlkMinVaultAmount) -
dog.ilk.chop
(liquidationPenalty) -
jug.ilk.duty
(setIlkStabilityFee) -
spotter.ilk.mat
(liquidationRatio) -
clip.buf
(startingPriceFactor) -
clipperMom.clip.tolerance
(setLiquidationBreakerPriceTolerance) -
clip.tail
(auctionDuration) -
clip.cusp
(permittedDrop) -
clip.chip
(kprPctReward) -
clip.tip
(kprFlatReward) -
abaci
- LinearDecrease
-
calc.tau
(setLinearDecrease)
-
- StairstepExponentialDecrease
- setStairstepExponentialDecrease
-
calc.cut
-
calc.step
- LinearDecrease
-
- Autoline (setIlkAutoLineParameters)
-
ilk
-
line
-
gap
-
ttl
-
- Onboarding Actions
- ensure
ABIEncoderV2
is enabled-
pragma experimental ABIEncoderV2;
-
- ensure
DssExecLib.addNewCollateral
is used (inonboardCollaterals
,DssSpellCollateral.sol
) - ensure
CollateralOpts
is used-
ilk
follows the ilk formatTOKEN-A
-
gem
matches token address -
join
matches token join address -
clip
matches token clip address -
calc
matches token calc address -
pip
matches token pip address -
isLiquidatable
set to true if liquidations are on -
isOSM
set to true IFpip
isOSM
-
whitelistOSM
set to true IF median issrc
inOSM
-
ilkDebtCeiling
(vat.ilk.line
) in DAI (e.g. 1 * MILLION)- IF autoline is enabled,
vat.ilk.line
should be set to DC-IAMgap
value
- IF autoline is enabled,
-
minVaultAmount
(vat.ilk.dust
) in DAI (e.g. 15_000)- ensure
clip.tip
is adjusted proportionally tovat.ilk.dust
(e.g. lower thedust
lower thetip
)
- ensure
-
maxLiquidationAmount
(dog.ilk.hole
) in DAI (e.g. 5 * MILLION)- ensure
dog.ilk.hole
>=ilk.dust
invariant holds
- ensure
-
liquidationPenalty
(dog.ilk.chop
) in basis points (e.g. 13% = 13_00) -
ilkStabilityFee
(jug.ilk.duty
) set via script or IPFS rates table (e.g. 1000000000031693947650284507) -
startingPriceFactor
(clip.buf
) in basis points (e.g. 110% = 110_00) -
breakerTolerance
(clipperMom.clip.tolerance
) in basis points (e.g. 50% = 50_00) -
auctionDuration
(clip.tail
) in seconds (e.g. 220 minutes) -
permittedDrop
(clip.cusp
) in basis points (e.g. 45% = 45_00) -
liquidationRatio
(spotter.ilk.mat
) in basis points (e.g. 170% = 170_00) -
kprFlatReward
(clip.tip
) in DAI (e.g. 250) -
kprPctReward
(clip.chip
) in basis points (e.g. 0.1% = 10)
-
- set Calc parameters
-
LinearDecrease
-
calc.tau
in seconds (e.g. 250 days = 21_600_000)
-
-
StairstepExponentialDecrease
-
calc.cut
in seconds (e.g. 120 seconds) -
calc.step
in basis points (e.g. 99% = 99_00)
-
-
- set Ilk Autoline Parameters (IF Autoline is enabled)
-
ilk
follows the ilk formatTOKEN-A
-
line
in DAI (e.g. 10 * MILLION) -
gap
in DAI (e.g. 1 * MILLION) -
ttl
in seconds (e.g. 8 hours)
-
- ensure
- New Chainlog Entries
-
TOKEN
-
PIP_TOKEN
-
MCD_JOIN_TOKEN_A
-
MCD_CLIP_TOKEN_A
-
MCD_CLIP_CALC_TOKEN_A
-
- Chainlog Bump
- Patch
x.x.1
- Patch
- Test Coverage (Follow Previous Test Patterns)
-
testCollateralIntegrations
-
testNewChainlogValues
-
testNewIlkRegistryValues
- ensure new chainlog entries are included in
addresses_<mainnet, goerli>.sol
- ensure deployer addresses are included into
addresses_deployers.sol
(to keep up to date) -
config.sol
-
-