Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
168 changes: 84 additions & 84 deletions hardhat.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,91 +17,91 @@ const mnemonic = process.env.DEPLOYER_MNEMONIC as string;
const ganacheMnemonic = process.env.GANACHE_MNEMONIC as string;

const config: HardhatUserConfig = {
//@ts-ignore
namedAccounts: {
deployer: {
default: 0, // here this will by default take the first account as deployer
},
},
solidity: {
compilers: [
{
version: "0.7.5",
settings: { optimizer: { enabled: true, runs: 200 } },
},
{
version: "0.8.26",
settings: { viaIR: true, optimizer: { enabled: true, runs: 200 } },
},
]
},
networks: {
hardhat: {
forking: {
url: process.env.MAINNET_API_URL as string,
},
},
mainnet: {
url: process.env.MAINNET_API_URL,
accounts: { mnemonic: mnemonic },
},
polygon: {
url: process.env.POLYGON_API_URL,
accounts: { mnemonic: mnemonic },
},
ganache: {
url: "http://127.0.0.1:8545",
accounts: { mnemonic: ganacheMnemonic },
},
ropsten: {
url: process.env.ROPSTEN_API_URL,
accounts: { mnemonic: mnemonic },
},
rinkeby: {
url: process.env.RINKEBY_API_URL,
accounts: { mnemonic: mnemonic },
},
goerli: {
url: process.env.GOERLI_API_URL,
accounts: { mnemonic: mnemonic },
},
kovan: {
url: process.env.KOVAN_API_URL,
accounts: { mnemonic: mnemonic },
},
optimismKovan: {
url: process.env.OPTIMISM_KOVAN_API_URL,
accounts: { mnemonic: mnemonic },
},
optimism: {
url: process.env.OPTIMISM_API_URL,
accounts: { mnemonic: mnemonic },
},
mumbai: {
url: process.env.MUMBAI_API_URL,
accounts: { mnemonic: mnemonic },
},
arbitrumGoerli: {
url: process.env.ARBITRUM_GOERLI_API_URL,
accounts: { mnemonic: mnemonic },
},
//@ts-ignore
namedAccounts: {
deployer: {
default: 0, // here this will by default take the first account as deployer
},
},
solidity: {
compilers: [
{
version: "0.7.5",
settings: { optimizer: { enabled: true, runs: 200 } },
},
{
version: "0.8.26",
settings: { viaIR: true, optimizer: { enabled: true, runs: 200 } },
},
]
},
networks: {
hardhat: {
},
anvil: {
url: "http://127.0.0.1:8545",
},
mainnet: {
url: process.env.MAINNET_API_URL,
accounts: { mnemonic: mnemonic },
},
polygon: {
url: process.env.POLYGON_API_URL,
accounts: { mnemonic: mnemonic },
},
ganache: {
url: "http://127.0.0.1:8545",
accounts: { mnemonic: ganacheMnemonic },
},
ropsten: {
url: process.env.ROPSTEN_API_URL,
accounts: { mnemonic: mnemonic },
},
rinkeby: {
url: process.env.RINKEBY_API_URL,
accounts: { mnemonic: mnemonic },
},
goerli: {
url: process.env.GOERLI_API_URL,
accounts: { mnemonic: mnemonic },
},
kovan: {
url: process.env.KOVAN_API_URL,
accounts: { mnemonic: mnemonic },
},
optimismKovan: {
url: process.env.OPTIMISM_KOVAN_API_URL,
accounts: { mnemonic: mnemonic },
},
optimism: {
url: process.env.OPTIMISM_API_URL,
accounts: { mnemonic: mnemonic },
},
mumbai: {
url: process.env.MUMBAI_API_URL,
accounts: { mnemonic: mnemonic },
},
arbitrumGoerli: {
url: process.env.ARBITRUM_GOERLI_API_URL,
accounts: { mnemonic: mnemonic },
},
arbitrum: {
url: process.env.ARBITRUM_API_URL,
accounts: { mnemonic: mnemonic },
}
},
etherscan: {
apiKey: process.env.ETHERSCAN_API_KEY as string,
},
gasReporter: {
enabled: process.env.REPORT_GAS == "true",
currency: "USD",
gasPrice: 152,
coinmarketcap: process.env.COIN_API as string,
},
mocha: {
timeout: 100000,
},
url: process.env.ARBITRUM_API_URL,
accounts: { mnemonic: mnemonic },
}
},
etherscan: {
apiKey: process.env.ETHERSCAN_API_KEY as string,
},
gasReporter: {
enabled: process.env.REPORT_GAS == "true",
currency: "USD",
gasPrice: 152,
coinmarketcap: process.env.COIN_API as string,
},
mocha: {
timeout: 100000,
},
verify: {
etherscan: {
apiKey: process.env.ETHERSCAN_API_KEY as string,
Expand Down
70 changes: 70 additions & 0 deletions scripts/CIP-38.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
// run with
// npx hardhat run ./scripts/CIP-38.ts --network hardhat
import hre, { deployments, network, hardhatArguments } from "hardhat";
import {
castVote,
createProposal,
executeProposal,
fundMultisign,
queueProposal,
} from "./utils";
import { BigNumber } from "ethers";

async function main() {
const ethers = hre.ethers;
let davinciWallet = "0x55981Be98EEaF4E57aC466BE72C6323F2Cc659Aa";
let ctxAmount = ethers.utils.parseEther("300000");
let ctx = await deployments.get("Ctx");
let ctxContract = await ethers.getContractAt("Ctx", ctx.address);

const abi = new ethers.utils.AbiCoder();
const targets = [ctx.address];
const values = [BigNumber.from(0)];
const signatures = ["transfer(address,uint256)"];
const calldatas = [
abi.encode(["address", "uint256"], [davinciWallet, ctxAmount]),
];
const description =
"CIP-38: Renew Market Making Agreement with DaVinci Trading";
console.log(targets);
console.log(values.toString());
console.log(signatures);
console.log(calldatas);
console.log(description);

let ctxbalance = await ctxContract.balanceOf(davinciWallet);
console.log("davinci old CTX balance", ethers.utils.formatEther(ctxbalance));

if (hardhatArguments.network === "hardhat") {
//Fund Multisign with ETH
await fundMultisign("10000000000000000000");

// Create Proposal
await createProposal(targets, values, signatures, calldatas, description);

// Vote
await castVote(17, true);

// Wait to queue
await queueProposal(17);

// Execute transaction
await executeProposal(17);

// Validate Results
console.log("==================Check Results==================");

ctxbalance = await ctxContract.balanceOf(davinciWallet);
console.log(
"davinci new CTX balance",
ethers.utils.formatEther(ctxbalance)
);
}
}

main()
.then(() => process.exit(0))
.catch((error) => {
console.error(error);
process.exit(1);
});
Loading
Loading