Skip to content

Commit

Permalink
Update initialize parameters in foreign erc20-to-native
Browse files Browse the repository at this point in the history
  • Loading branch information
patitonar committed Oct 3, 2019
1 parent 8f94411 commit f9cf92c
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 15 deletions.
2 changes: 1 addition & 1 deletion deploy/deploy.js
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ async function deployErcToNative() {
const deployForeign = require('./src/erc_to_native/foreign')
await preDeploy()
const { homeBridge } = await deployHome()
const { foreignBridge } = await deployForeign()
const { foreignBridge } = await deployForeign(homeBridge.address)
console.log('\nDeployment has been completed.\n\n')
console.log(`[ Home ] HomeBridge: ${homeBridge.address} at block ${homeBridge.deployedBlockNumber}`)
console.log(`[ Foreign ] ForeignBridge: ${foreignBridge.address} at block ${foreignBridge.deployedBlockNumber}`)
Expand Down
24 changes: 17 additions & 7 deletions deploy/src/erc_to_native/foreign.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,9 @@ const {
FOREIGN_UPGRADEABLE_ADMIN,
FOREIGN_REQUIRED_BLOCK_CONFIRMATIONS,
ERC20_TOKEN_ADDRESS,
FOREIGN_DAILY_LIMIT,
FOREIGN_MAX_AMOUNT_PER_TX,
FOREIGN_MIN_AMOUNT_PER_TX,
HOME_DAILY_LIMIT,
HOME_MAX_AMOUNT_PER_TX,
FOREIGN_TO_HOME_DECIMAL_SHIFT
Expand All @@ -37,27 +39,34 @@ const DEPLOYMENT_ACCOUNT_ADDRESS = privateKeyToAddress(DEPLOYMENT_ACCOUNT_PRIVAT

const foreignToHomeDecimalShift = FOREIGN_TO_HOME_DECIMAL_SHIFT || 0

async function initializeBridge({ validatorsBridge, bridge, nonce }) {
async function initializeBridge({ validatorsBridge, bridge, nonce, homeBridgeAddress }) {
console.log(`Foreign Validators: ${validatorsBridge.options.address},
ERC20_TOKEN_ADDRESS: ${ERC20_TOKEN_ADDRESS},
FOREIGN_DAILY_LIMIT: ${FOREIGN_DAILY_LIMIT} which is ${Web3Utils.fromWei(FOREIGN_DAILY_LIMIT)} in eth,
FOREIGN_MAX_AMOUNT_PER_TX: ${FOREIGN_MAX_AMOUNT_PER_TX} which is ${Web3Utils.fromWei(
FOREIGN_MAX_AMOUNT_PER_TX
)} in eth,
FOREIGN_MIN_AMOUNT_PER_TX: ${FOREIGN_MIN_AMOUNT_PER_TX} which is ${Web3Utils.fromWei(
FOREIGN_MIN_AMOUNT_PER_TX
)} in eth,
FOREIGN_GAS_PRICE: ${FOREIGN_GAS_PRICE}, FOREIGN_REQUIRED_BLOCK_CONFIRMATIONS : ${FOREIGN_REQUIRED_BLOCK_CONFIRMATIONS},
HOME_DAILY_LIMIT: ${HOME_DAILY_LIMIT} which is ${Web3Utils.fromWei(HOME_DAILY_LIMIT)} in eth,
HOME_DAILY_LIMIT: ${HOME_DAILY_LIMIT} which is ${Web3Utils.fromWei(HOME_DAILY_LIMIT)} in eth,
HOME_MAX_AMOUNT_PER_TX: ${HOME_MAX_AMOUNT_PER_TX} which is ${Web3Utils.fromWei(HOME_MAX_AMOUNT_PER_TX)} in eth,
FOREIGN_BRIDGE_OWNER: ${FOREIGN_BRIDGE_OWNER},
FOREIGN_TO_HOME_DECIMAL_SHIFT: ${foreignToHomeDecimalShift}
FOREIGN_TO_HOME_DECIMAL_SHIFT: ${foreignToHomeDecimalShift},
Home bridge Address: ${homeBridgeAddress}
`)
const initializeFBridgeData = await bridge.methods
.initialize(
validatorsBridge.options.address,
ERC20_TOKEN_ADDRESS,
FOREIGN_REQUIRED_BLOCK_CONFIRMATIONS,
FOREIGN_GAS_PRICE,
[FOREIGN_MAX_AMOUNT_PER_TX, HOME_DAILY_LIMIT, HOME_MAX_AMOUNT_PER_TX],
[FOREIGN_DAILY_LIMIT, FOREIGN_MAX_AMOUNT_PER_TX, FOREIGN_MIN_AMOUNT_PER_TX],
[HOME_DAILY_LIMIT, HOME_MAX_AMOUNT_PER_TX],
FOREIGN_BRIDGE_OWNER,
foreignToHomeDecimalShift
foreignToHomeDecimalShift,
homeBridgeAddress
)
.encodeABI()
const txInitializeBridge = await sendRawTxForeign({
Expand All @@ -74,7 +83,7 @@ async function initializeBridge({ validatorsBridge, bridge, nonce }) {
}
}

async function deployForeign() {
async function deployForeign(homeBridgeAddress) {
if (!Web3Utils.isAddress(ERC20_TOKEN_ADDRESS)) {
throw new Error('ERC20_TOKEN_ADDRESS env var is not defined')
}
Expand Down Expand Up @@ -167,7 +176,8 @@ async function deployForeign() {
await initializeBridge({
validatorsBridge: storageValidatorsForeign,
bridge: foreignBridgeImplementation,
nonce
nonce,
homeBridgeAddress
})
nonce++

Expand Down
11 changes: 4 additions & 7 deletions deploy/src/loadEnv.js
Original file line number Diff line number Diff line change
Expand Up @@ -248,7 +248,8 @@ if (BRIDGE_MODE === 'ERC_TO_NATIVE') {
ERC20_TOKEN_ADDRESS: addressValidator(),
BLOCK_REWARD_ADDRESS: addressValidator({
default: ZERO_ADDRESS
})
}),
FOREIGN_MIN_AMOUNT_PER_TX: bigNumValidator()
}
}

Expand Down Expand Up @@ -282,9 +283,7 @@ if (env.BRIDGE_MODE === 'NATIVE_TO_ERC') {

if (env.HOME_REWARDABLE === 'BOTH_DIRECTIONS' && env.FOREIGN_REWARDABLE === 'ONE_DIRECTION') {
throw new Error(
`Combination of HOME_REWARDABLE: ${env.HOME_REWARDABLE} and FOREIGN_REWARDABLE: ${
env.FOREIGN_REWARDABLE
} should be avoided on ${env.BRIDGE_MODE} bridge mode.`
`Combination of HOME_REWARDABLE: ${env.HOME_REWARDABLE} and FOREIGN_REWARDABLE: ${env.FOREIGN_REWARDABLE} should be avoided on ${env.BRIDGE_MODE} bridge mode.`
)
}
}
Expand All @@ -308,9 +307,7 @@ if (env.BRIDGE_MODE === 'ERC_TO_ERC') {
}

if (env.BRIDGE_MODE === 'ERC_TO_NATIVE') {
if (env.FOREIGN_MAX_AMOUNT_PER_TX.gte(env.FOREIGN_DAILY_LIMIT)) {
throw new Error(`FOREIGN_DAILY_LIMIT should be greater than FOREIGN_MAX_AMOUNT_PER_TX`)
}
checkLimits(env.FOREIGN_MIN_AMOUNT_PER_TX, env.FOREIGN_MAX_AMOUNT_PER_TX, env.FOREIGN_DAILY_LIMIT, foreignPrefix)

if (HOME_REWARDABLE === 'ONE_DIRECTION') {
throw new Error(
Expand Down

0 comments on commit f9cf92c

Please sign in to comment.