Skip to content

Commit 54a2c9f

Browse files
authored
Merge pull request #1 from NFTX-project/tests
Add more tests
2 parents c00f9eb + aaf9747 commit 54a2c9f

File tree

172 files changed

+37003
-988
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

172 files changed

+37003
-988
lines changed

.gitmodules

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
[submodule "lib/forge-std"]
22
path = lib/forge-std
33
url = https://github.com/foundry-rs/forge-std
4-
branch = v1.3.0
54
[submodule "lib/openzeppelin-contracts"]
65
path = lib/openzeppelin-contracts
76
url = https://github.com/OpenZeppelin/openzeppelin-contracts

README.md

Lines changed: 26 additions & 24 deletions
Large diffs are not rendered by default.

addresses.json

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"mainnet": {
33
"CreateVaultZap": "0x56dab32697B4A313f353DA0CE42B5113eD8E6f74",
44
"DefaultProxyAdmin": "0xf8Cab5e4912e08c475033776d9472b81c1325e58",
5-
"FailSafe": "0x8665664CD32B6263A9b716371814Dc8CecFb8F2B",
5+
"FailSafe": "0x6bB724F11a8D7254800Cf34922E0D54407B0e698",
66
"MarketplaceUniversalRouterZap": "0x293A0c49c85F1D8851C665Ac3cE1f1DC2a79bE3d",
77
"MigratorZap": "0x089610Fb04c34C014B4B391f4eCEFAef94E98CEc",
88
"NFTXEligibilityManager": "0x4086e98Cce041d286112d021612fD894cFed94D5",
@@ -14,11 +14,34 @@
1414
"NonfungiblePositionManager": "0x26387fcA3692FCac1C1e8E4E2B22A6CF0d4b71bF",
1515
"permit2": "0x000000000022d473030f116ddee9f6b43ac78ba3",
1616
"QuoterV2": "0x5493dF723c17B6A768aA61F79405bA56ffC5294a",
17+
"ShutdownRedeemerUpgradeable": "0x96cf14C2A61b7142421397735e702e25f1aa7F30",
1718
"SwapRouter": "0x1703f8111B0E7A10e1d14f9073F53680d64277A3",
1819
"TickLens": "0x1650115DDD287bE6F4972180d290D0FF89a42c40",
1920
"UniswapV3FactoryUpgradeable": "0xa70e10beB02fF9a44007D9D3695d4b96003db101",
2021
"WETH": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"
2122
},
23+
"arbitrum": {
24+
"CreateVaultZap": "0xF9E891AB1ECa89B7A4B3cBD45aEBFDF3Ec38946F",
25+
"DefaultProxyAdmin": "0xdA7C2F023Dd30329d41483B95AFd24962f468A54",
26+
"FailSafe": "0xBDA73b600435BF4309270438842dcE06f9a06fb7",
27+
"MarketplaceUniversalRouterZap": "0xf56296B3010a59Ef7F0915569DD44E1302b9Ca40",
28+
"MigratorZap": "0x6E1537eD56f52414f0182FaebF79A5fB2Ad2CABd",
29+
"NFTXEligibilityManager": "0x6DCdfD7e94957cBAE9023c232dE18c0F72c2aD16",
30+
"NFTXFeeDistributorV3": "0x0d50970C7848ebbE52661e70057D7D063B7de886",
31+
"NFTXInventoryStakingV3Upgradeable": "0xe39a7E67d3E3b6eAF58BC02C4E80C3688847d155",
32+
"NFTXRouter": "0x52731751Dede22827ad47109f5e9697d75a3ef4d",
33+
"nftxUniversalRouter": "0x0DA69287B4C1B28181E5d155dDDda7Fa5C32E5Ad",
34+
"NFTXVaultFactoryUpgradeableV3": "0x4dEeb9D2Bff2e9C35ce1f013DcC4582F891cb711",
35+
"NonfungiblePositionManager": "0x8AD238377531547838370B9C4aC346b9Ed5466Ea",
36+
"permit2": "0x000000000022d473030f116ddee9f6b43ac78ba3",
37+
"QuoterV2": "0xff3957CB28aB34186543281e0bbe0De05C9e7D6D",
38+
"ShutdownRedeemerUpgradeable": "",
39+
"SwapRouter": "0xeA60242d7183E3d13Dc17fb2A4D0230d34eef502",
40+
"TickLens": "0x3f2797b0E19CBf2377B8DE2d1CEC2698AcA7b081",
41+
"UniswapV3FactoryUpgradeable": "0xF4D0512FB47319B0CE9144EF582862e2921CaBF8",
42+
"UniswapV3Staker": "0xd4E155135b7dFf66c9C3B34EcA4aE7d9555FE31F",
43+
"WETH": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1"
44+
},
2245
"sepolia": {
2346
"CreateVaultZap": "0xD80b916470F8e79FD8d09874cb159CbB8D13d8da",
2447
"DefaultProxyAdmin": "0x36cBBb16F2FA71d4B773E9F4A11cF7FC53B13EfD",
@@ -34,6 +57,7 @@
3457
"NonfungiblePositionManager": "0xA9bCC1e29d3460177875f68fDCC0264D22c40BF0",
3558
"permit2": "0x000000000022d473030f116ddee9f6b43ac78ba3",
3659
"QuoterV2": "0xb8EB27ca4715f7A04228c6F83935379D1f5AbABd",
60+
"ShutdownRedeemerUpgradeable": "0x4b25288f40C7e00F93f0DA261C314d67b640c9dF",
3761
"SwapRouter": "0xa7069da6a7e600e0348620484fD2B1f24E075d5f",
3862
"TickLens": "0xA13E04fAEe08E784A44C27e9E77Ca7a02D45BFd7",
3963
"UniswapV3FactoryUpgradeable": "0xDD2dce9C403f93c10af1846543870D065419E70b",
@@ -54,6 +78,7 @@
5478
"NonfungiblePositionManager": "0xDa9411C5455a1bfDb527d0988c0A2764E2a104be",
5579
"permit2": "0x000000000022d473030f116ddee9f6b43ac78ba3",
5680
"QuoterV2": "0xBb473dbEF3363b5d7CDD5f12429Fd1C5F0c10499",
81+
"ShutdownRedeemerUpgradeable": "",
5782
"SwapRouter": "0x2E77A788fc66c5312354aaE0df1dC1895ce556f8",
5883
"TickLens": "0x32A7703773cBc265cf79D49340F656837169FEcD",
5984
"UniswapV3FactoryUpgradeable": "0xf25081B098c5929A26F562aa2502795fE89BC73f",

deploy/ShutdownRedeemer.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { HardhatRuntimeEnvironment, Network } from "hardhat/types";
2+
import { DeployFunction } from "hardhat-deploy/types";
3+
import { deployShutdownRedeemer } from "./modules/ShutdownRedeemer";
4+
5+
const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) {
6+
const { shutdownRedeemer } = await deployShutdownRedeemer({
7+
hre,
8+
});
9+
};
10+
export default func;
11+
func.tags = ["ShutdownRedeemer"];
12+
func.dependencies = [];

deploy/deployConfig.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ const config: {
4545
lpEarlyWithdrawPenaltyInWei: BigNumber;
4646
nftxRouterVTokenDustThreshold: BigNumber;
4747
multisig?: string;
48+
UniswapV3Staker?: string;
4849
};
4950
} = {
5051
goerli: {
@@ -81,7 +82,7 @@ const config: {
8182
...commonConfig,
8283
treasury: "0x40D73Df4F99bae688CE3C23a01022224FE16C7b2",
8384
WETH: "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
84-
REWARD_TIER_CARDINALITY: "102",
85+
REWARD_TIER_CARDINALITY: "102", // average block time = 12 seconds (https://etherscan.io/chart/blocktime). Cardinality = (20mins * 60) / 12 = 100. then adding 2 extra blocks for good measures.
8586
permit2: "0x000000000022d473030f116ddee9f6b43ac78ba3",
8687
nftxUniversalRouter: "0x250d62a67254A46c0De472d2c9215E1d890cC90f", // NOTE: update this if new UniswapV3Factory deployed.
8788
v2VaultFactory: "0xBE86f647b167567525cCAAfcd6f881F1Ee558216",
@@ -91,14 +92,16 @@ const config: {
9192
},
9293
arbitrum: {
9394
...commonConfig,
94-
treasury: "0x000000000000000000000000000000000000dEaD", // FIXME: set valid address
95+
treasury: "0x3863A65CE278a240f9Aa2A4b4A48493bE59E6139",
9596
WETH: "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",
96-
REWARD_TIER_CARDINALITY: "75",
97+
REWARD_TIER_CARDINALITY: "4617", // average block time = 0.26 seconds (https://arbiscan.io/chart/blocktime). Cardinality = (20mins * 60) / 0.26 = 4615. then adding 2 extra blocks for good measures.
9798
permit2: "0x000000000022d473030f116ddee9f6b43ac78ba3",
98-
nftxUniversalRouter: "0x000000000000000000000000000000000000dEaD", // FIXME: set valid address
99+
nftxUniversalRouter: "0x0DA69287B4C1B28181E5d155dDDda7Fa5C32E5Ad", // NOTE: update this if new UniswapV3Factory deployed.
99100
v2VaultFactory: "0xE77b89FEc41A7b7dC74eb33602e82F0672FbB33C",
100101
v2Inventory: "0x1A2C03ABD4Af7C87d8b4d5aD39b56fa98E8C4Cc6",
101102
sushiRouter: "0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506",
103+
multisig: "0x3863A65CE278a240f9Aa2A4b4A48493bE59E6139",
104+
UniswapV3Staker: "0xd4E155135b7dFf66c9C3B34EcA4aE7d9555FE31F",
102105
},
103106
};
104107

deploy/modules/ShutdownRedeemer.ts

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import { HardhatRuntimeEnvironment } from "hardhat/types";
2+
import { getConfig, handleUpgradeDeploy } from "../utils";
3+
4+
export const deployShutdownRedeemer = async ({
5+
hre,
6+
}: {
7+
hre: HardhatRuntimeEnvironment;
8+
}) => {
9+
const { deployer, config } = await getConfig(hre);
10+
11+
const shutdownRedeemer = await handleUpgradeDeploy({
12+
hre,
13+
contractName: "ShutdownRedeemerUpgradeable",
14+
deployOptions: {
15+
from: deployer,
16+
args: [config.v2VaultFactory],
17+
proxy: {
18+
proxyContract: "OpenZeppelinTransparentProxy",
19+
execute: {
20+
init: {
21+
methodName: "__ShutdownRedeemer_init",
22+
args: [],
23+
},
24+
},
25+
},
26+
log: true,
27+
},
28+
});
29+
30+
return {
31+
shutdownRedeemer: shutdownRedeemer.address,
32+
};
33+
};

deploy/scripts/TransferOwnership.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) {
1515
"DefaultProxyAdmin",
1616
"MarketplaceUniversalRouterZap",
1717
"MigratorZap",
18-
"FailSafe",
1918
"NFTXFeeDistributorV3",
2019
"NFTXInventoryStakingV3Upgradeable",
2120
"NFTXRouter",

deploy/utils/index.ts

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import path from "path";
55
import { format } from "prettier";
66
import { keccak256, toUtf8Bytes, defaultAbiCoder } from "ethers/lib/utils";
77
import deployConfig from "../deployConfig";
8+
import { Contract } from "ethers";
89

910
export const getConfig = async (hre: HardhatRuntimeEnvironment) => {
1011
const { deployments, getNamedAccounts, network } = hre;
@@ -118,13 +119,16 @@ export const handleUpgradeDeploy = async ({
118119
}): Promise<Deployment> => {
119120
const { deploy, network, deployments } = await getConfig(hre);
120121

121-
const defaultProxyAdminContract = await getContract(hre, "DefaultProxyAdmin");
122-
123-
// set the current owner of the proxy, in the deployOptions
124-
deployOptions.proxy = {
125-
...(typeof deployOptions.proxy === "object" ? deployOptions.proxy : {}),
126-
owner: await defaultProxyAdminContract.owner(),
127-
};
122+
let defaultProxyAdminContract: Contract | undefined;
123+
try {
124+
// if the DefaultProxyAdmin is already deployed
125+
defaultProxyAdminContract = await getContract(hre, "DefaultProxyAdmin");
126+
// set the current owner of the proxy, in the deployOptions
127+
deployOptions.proxy = {
128+
...(typeof deployOptions.proxy === "object" ? deployOptions.proxy : {}),
129+
owner: await defaultProxyAdminContract.owner(),
130+
};
131+
} catch {}
128132

129133
let deployment: Deployment | undefined = undefined;
130134
try {

deployments/arbitrum/.chainId

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
42161

0 commit comments

Comments
 (0)