Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
gravity,
testERC20,
checkpoint: deployCheckpoint,
} = await deployContracts(gravityId, validators, powers, powerThreshold);
// First we deploy the logic batch middleware contract. This makes it easy to call a logic
// contract a bunch of times in a batch.
const SimpleLogicBatchMiddleware = await ethers.getContractFactory(
"SimpleLogicBatchMiddleware"
);
const logicBatch = (await SimpleLogicBatchMiddleware.deploy()) as SimpleLogicBatchMiddleware;
// We set the ownership to gravity so that nobody else can call it.
await logicBatch.transferOwnership(gravity.address);
// Then we deploy the actual logic contract.
const TestUniswapLiquidityContract = await ethers.getContractFactory(
"TestUniswapLiquidity"
);
const logicContract = (await TestUniswapLiquidityContract.deploy(
uniswap_router_address
)) as TestUniswapLiquidity;
// We set its owner to the batch contract.
await logicContract.transferOwnership(logicBatch.address);
let logic_contract_balance_start = await usdc_eth_lp.balanceOf(logicContract.address)
console.log(`Logic Contract Balance ${logic_contract_balance_start}`);
// Transfer out to Cosmos, locking coins
// Transfer out to Cosmos, locking coins
// =====================================
await usdc_eth_lp.functions.approve(gravity.address, lp_provider_balance);
// Swap the signer of Gravity to the whale liqudity provider.
let gravity_lp_signer = gravity.connect(lp_signer);
await gravity_lp_signer.functions.sendToCosmos(
usdc_eth_lp.address,
ethers.utils.formatBytes32String("myCosmosAddress"),
lp_balance_to_send *500
);
let post_gas_balance = await ethers.provider.getBalance(await lp_signer.getAddress());
console.log(`Post_gas_balance ${post_gas_balance}`);
// Prepare batch
// ===============================
// This code prepares the batch of transactions by encoding the arguments to the logicContract.
// This batch contains 10 transactions which each:
// - Transfer 5 coins to the logic contract
// - Call transferTokens on the logic contract, transferring 2+2 coins to signer 20
//
// After the batch runs, signer 20 should have 40 coins, Gravity should have 940 coins,
// and the logic contract should have 10 coins
const numTxs = 3;
const txPayloads = new Array(numTxs);
let lp_balance_to_send = 2_000_000_000_000;
let eth_per_lp_unit = reserve1.div(total_lp_supply);
console.log(`Eth per lp token:${eth_per_lp_unit}`)
// USDC ethereum address
let usdc_address = "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48";
let wrapped_eth_address ="0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2";
// Prep and deploy contract
// ========================
const signers = await ethers.getSigners();
const gravityId = ethers.utils.formatBytes32String("foo");
// This is the power distribution on the Cosmos hub as of 7/14/2020
let powers = examplePowers();
let validators = signers.slice(0, powers.length);
const powerThreshold = 6666;
const {
gravity,
testERC20,
checkpoint: deployCheckpoint,
} = await deployContracts(gravityId, validators, powers, powerThreshold);
// First we deploy the logic batch middleware contract. This makes it easy to call a logic
// contract a bunch of times in a batch.
const SimpleLogicBatchMiddleware = await ethers.getContractFactory(
"SimpleLogicBatchMiddleware"
);
let lp_balance_to_send = 2_000_000_000_000;
let eth_per_lp_unit = reserve1.div(total_lp_supply);
console.log(`Eth per lp token:${eth_per_lp_unit}`)
// USDC ethereum address
let usdc_address = "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48";
let wrapped_eth_address ="0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2";
// Prep and deploy contract
// ========================
const signers = await ethers.getSigners();
const gravityId = ethers.utils.formatBytes32String("foo");
// This is the power distribution on the Cosmos hub as of 7/14/2020
let powers = examplePowers();
let validators = signers.slice(0, powers.length);
const powerThreshold = 6666;
const {
gravity,
testERC20,
checkpoint: deployCheckpoint,
} = await deployContracts(gravityId, validators, powers, powerThreshold);
// First we deploy the logic batch middleware contract. This makes it easy to call a logic
// contract a bunch of times in a batch.
const SimpleLogicBatchMiddleware = await ethers.getContractFactory(
"SimpleLogicBatchMiddleware"
);
const logicBatch = (await SimpleLogicBatchMiddleware.deploy()) as SimpleLogicBatchMiddleware;
// ========================
const signers = await ethers.getSigners();
const gravityId = ethers.utils.formatBytes32String("foo");
// This is the power distribution on the Cosmos hub as of 7/14/2020
let powers = examplePowers();
let validators = signers.slice(0, powers.length);
const powerThreshold = 6666;
const {
gravity,
testERC20,
checkpoint: deployCheckpoint,
} = await deployContracts(gravityId, validators, powers, powerThreshold);
// First we deploy the logic batch middleware contract. This makes it easy to call a logic
// contract a bunch of times in a batch.
const SimpleLogicBatchMiddleware = await ethers.getContractFactory(
"SimpleLogicBatchMiddleware"
);
const logicBatch = (await SimpleLogicBatchMiddleware.deploy()) as SimpleLogicBatchMiddleware;
// We set the ownership to gravity so that nobody else can call it.
await logicBatch.transferOwnership(gravity.address);
// Then we deploy the actual logic contract.
const TestUniswapLiquidityContract = await ethers.getContractFactory(
"TestUniswapLiquidity"
);
const logicContract = (await TestUniswapLiquidityContract.deploy(
uniswap_router_address
)) as TestUniswapLiquidity;
// We set its owner to the batch contract.
await logicContract.transferOwnership(logicBatch.address);
const main = async () => {
const accounts = await ethers.getSigners()
const StandardArbERC20 = await ethers.getContractFactory('StandardArbERC20')
const StandardArbERC777 = await ethers.getContractFactory('StandardArbERC777')
const standardArbERC20Logic = await StandardArbERC20.deploy()
await standardArbERC20Logic.deployed()
console.log(`erc20 logic at ${standardArbERC20Logic.address}`)
const standardArbERC777Logic = await StandardArbERC777.deploy()
await standardArbERC777Logic.deployed()
console.log(`erc777 logic at ${standardArbERC777Logic.address}`)
// const ProxyAdmin = await ethers.getContractFactory('ProxyAdmin')
// const proxyAdmin = await ProxyAdmin.deploy()
// await proxyAdmin.deployed()
// console.log("Admin proxy deployed to", proxyAdmin.address)
const UpgradeableBeacon = await ethers.getContractFactory('UpgradeableBeacon')
const withdrawalId = buddyDeployEvents[0].withdrawalId
const logs = await BridgeHelper.getWithdrawalsInL2Transaction(
l2TransactionReceipt,
ethers.provider
)
const filteredLogs = logs.filter(log => log.uniqueId.eq(withdrawalId))
if (filteredLogs.length !== 1)
throw new Error('Should have exactly one matching unique id')
const { batchNumber, indexInBatch } = filteredLogs[0]
const proofData = await BridgeHelper.tryGetProof(
batchNumber,
indexInBatch,
ethers.provider
)
console.log(JSON.stringify(proofData))
// return proofData;
}
console.log(`erc20 proxy at ${standardArbERC20Proxy.address}`)
const standardArbERC777Proxy = await UpgradeableBeacon.deploy(
standardArbERC777Logic.address
)
await standardArbERC777Proxy.deployed()
console.log(`erc777 proxy at ${standardArbERC777Proxy.address}`)
const contracts = JSON.stringify({
...deployments,
// standardArbERC20: standardArbERC20Logic.address,
// standardArbERC777: standardArbERC777Logic.address,
standardArbERC20: standardArbERC20Proxy.address,
standardArbERC777: standardArbERC777Proxy.address,
l2ChainId: ethers.BigNumber.from(
ethers.provider.network.chainId
).toHexString(),
})
const path = './deployment.json'
console.log(`Writing to JSON at ${path}`)
// TODO: should append/check if previous entries
writeFileSync(path, contracts)
console.log('Almost done')
await deploy1820Registry(accounts[0])
console.log('Done')
}
const main = async () => {
const accounts = await ethers.getSigners()
const StandardArbERC20 = await ethers.getContractFactory('StandardArbERC20')
const StandardArbERC777 = await ethers.getContractFactory('StandardArbERC777')
const standardArbERC20Logic = await StandardArbERC20.deploy()
await standardArbERC20Logic.deployed()
console.log(`erc20 logic at ${standardArbERC20Logic.address}`)
const standardArbERC777Logic = await StandardArbERC777.deploy()
await standardArbERC777Logic.deployed()
console.log(`erc777 logic at ${standardArbERC777Logic.address}`)
// const ProxyAdmin = await ethers.getContractFactory('ProxyAdmin')
// const proxyAdmin = await ProxyAdmin.deploy()
// await proxyAdmin.deployed()
// console.log("Admin proxy deployed to", proxyAdmin.address)
const deployFn: DeployFunction = async (hre) => {
const { deployer } = await hre.getNamedAccounts()
// Fund all default hardhat signers with ETH if deploying on a local hardhat network
const { chainId } = await ethers.provider.getNetwork()
if (chainId === 31337) {
const Proxy__OVM_L1ETHGateway = await getDeployedContract(
hre,
'Proxy__OVM_L1ETHGateway',
{
signerOrProvider: deployer,
iface: 'OVM_L1ETHGateway',
}
)
const signers = await ethers.getSigners()
for (const signer of signers) {
const to = await signer.getAddress()
const l2gas = 8_000_000
const amount = '100'
const value = ethers.utils.parseEther(amount)
await Proxy__OVM_L1ETHGateway.depositTo(to, l2gas, '0x', { value })
console.log(`✓ Funded ${to} on L2 with ${amount} ETH`)
}
}
}