Skip to content

Commit

Permalink
Merge pull request #146 from poanetwork/develop
Browse files Browse the repository at this point in the history
Merge the develop branch to the master branch, preparation to v1.3.0
  • Loading branch information
akolotov committed May 23, 2019
2 parents 24c4d6e + ac4c704 commit db1d695
Show file tree
Hide file tree
Showing 14 changed files with 1,387 additions and 32 deletions.
597 changes: 597 additions & 0 deletions abis/ERC677BridgeToken.abi.json

Large diffs are not rendered by default.

699 changes: 699 additions & 0 deletions abis/ForeignBridgeErc677ToErc677.abi.json

Large diffs are not rendered by default.

21 changes: 20 additions & 1 deletion config/affirmation-request-watcher.config.js
@@ -1,11 +1,30 @@
require('dotenv').config()
const baseConfig = require('./base.config')
const erc20Abi = require('../abis/ERC20.abi')
const { ERC_TYPES } = require('../src/utils/constants')

const initialChecksJson = process.argv[3]

if (!initialChecksJson) {
throw new Error('initial check parameter was not provided.')
}

let initialChecks
try {
initialChecks = JSON.parse(initialChecksJson)
} catch (e) {
throw new Error('Error on decoding values from initial checks.')
}

if (baseConfig.id === 'erc-erc' && initialChecks.foreignERC === ERC_TYPES.ERC677) {
baseConfig.id = 'erc677-erc677'
}

const id = `${baseConfig.id}-affirmation-request`

module.exports =
baseConfig.id === 'erc-erc' || baseConfig.id === 'erc-native'
(baseConfig.id === 'erc-erc' && initialChecks.foreignERC === ERC_TYPES.ERC20) ||
baseConfig.id === 'erc-native'
? {
...baseConfig.bridgeConfig,
...baseConfig.foreignConfig,
Expand Down
4 changes: 2 additions & 2 deletions config/base.config.js
Expand Up @@ -8,7 +8,7 @@ const homeNativeErcAbi = require('../abis/HomeBridgeNativeToErc.abi')
const foreignNativeErcAbi = require('../abis/ForeignBridgeNativeToErc.abi')

const homeErcErcAbi = require('../abis/HomeBridgeErcToErc.abi')
const foreignErcErcAbi = require('../abis/ForeignBridgeErcToErc.abi')
const foreignErc677Erc677Abi = require('../abis/ForeignBridgeErc677ToErc677.abi')

const homeErcNativeAbi = require('../abis/HomeBridgeErcToNative.abi')
const foreignErcNativeAbi = require('../abis/ForeignBridgeErcToNative.abi')
Expand All @@ -27,7 +27,7 @@ switch (process.env.BRIDGE_MODE) {
break
case 'ERC_TO_ERC':
homeAbi = homeErcErcAbi
foreignAbi = foreignErcErcAbi
foreignAbi = foreignErc677Erc677Abi
id = 'erc-erc'
break
case 'ERC_TO_NATIVE':
Expand Down
2 changes: 1 addition & 1 deletion e2e/Dockerfile
Expand Up @@ -12,7 +12,7 @@ RUN mkdir submodules && \
mv poa-bridge-contracts submodules && \
cd submodules/poa-bridge-contracts && \
git fetch && \
git checkout 2.1.0
git checkout 2.2.0

RUN npm install --unsafe-perm

Expand Down
15 changes: 7 additions & 8 deletions e2e/envs/contracts-deploy.env
@@ -1,7 +1,6 @@
BRIDGE_MODE=NATIVE_TO_ERC
DEPLOYMENT_ACCOUNT_ADDRESS=0xaaB52d66283F7A1D5978bcFcB55721ACB467384b
DEPLOYMENT_ACCOUNT_PRIVATE_KEY=8e829f695aed89a154550f30262f1529582cc49dc30eff74a6b491359e0230f9
DEPLOYMENT_GAS_LIMIT=4000000
DEPLOYMENT_GAS_LIMIT=4600000
HOME_DEPLOYMENT_GAS_PRICE=10000000000
FOREIGN_DEPLOYMENT_GAS_PRICE=10000000000
GET_RECEIPT_INTERVAL_IN_MILLISECONDS=50
Expand All @@ -11,19 +10,19 @@ BRIDGEABLE_TOKEN_SYMBOL="TEST"
BRIDGEABLE_TOKEN_DECIMALS="18"

HOME_RPC_URL=http://parity1:8545
HOME_OWNER_MULTISIG=0xaaB52d66283F7A1D5978bcFcB55721ACB467384b
HOME_UPGRADEABLE_ADMIN_VALIDATORS=0xaaB52d66283F7A1D5978bcFcB55721ACB467384b
HOME_UPGRADEABLE_ADMIN_BRIDGE=0xaaB52d66283F7A1D5978bcFcB55721ACB467384b
HOME_BRIDGE_OWNER=0xaaB52d66283F7A1D5978bcFcB55721ACB467384b
HOME_VALIDATORS_OWNER=0xaaB52d66283F7A1D5978bcFcB55721ACB467384b
HOME_UPGRADEABLE_ADMIN=0xaaB52d66283F7A1D5978bcFcB55721ACB467384b
HOME_DAILY_LIMIT=30000000000000000000000000
HOME_MAX_AMOUNT_PER_TX=1500000000000000000000000
HOME_MIN_AMOUNT_PER_TX=10000000000000000
HOME_REQUIRED_BLOCK_CONFIRMATIONS=1
HOME_GAS_PRICE=1000000000

FOREIGN_RPC_URL=http://parity2:8545
FOREIGN_OWNER_MULTISIG=0xaaB52d66283F7A1D5978bcFcB55721ACB467384b
FOREIGN_UPGRADEABLE_ADMIN_VALIDATORS=0xaaB52d66283F7A1D5978bcFcB55721ACB467384b
FOREIGN_UPGRADEABLE_ADMIN_BRIDGE=0xaaB52d66283F7A1D5978bcFcB55721ACB467384b
FOREIGN_BRIDGE_OWNER=0xaaB52d66283F7A1D5978bcFcB55721ACB467384b
FOREIGN_VALIDATORS_OWNER=0xaaB52d66283F7A1D5978bcFcB55721ACB467384b
FOREIGN_UPGRADEABLE_ADMIN=0xaaB52d66283F7A1D5978bcFcB55721ACB467384b
FOREIGN_DAILY_LIMIT=15000000000000000000000000
FOREIGN_MAX_AMOUNT_PER_TX=750000000000000000000000
FOREIGN_MIN_AMOUNT_PER_TX=10000000000000000
Expand Down
15 changes: 7 additions & 8 deletions e2e/envs/erc-contracts-deploy.env
@@ -1,7 +1,6 @@
BRIDGE_MODE=ERC_TO_ERC
DEPLOYMENT_ACCOUNT_ADDRESS=0xaaB52d66283F7A1D5978bcFcB55721ACB467384b
DEPLOYMENT_ACCOUNT_PRIVATE_KEY=8e829f695aed89a154550f30262f1529582cc49dc30eff74a6b491359e0230f9
DEPLOYMENT_GAS_LIMIT=4000000
DEPLOYMENT_GAS_LIMIT=4600000
HOME_DEPLOYMENT_GAS_PRICE=10000000000
FOREIGN_DEPLOYMENT_GAS_PRICE=10000000000
GET_RECEIPT_INTERVAL_IN_MILLISECONDS=50
Expand All @@ -11,19 +10,19 @@ BRIDGEABLE_TOKEN_SYMBOL="TEST"
BRIDGEABLE_TOKEN_DECIMALS="18"

HOME_RPC_URL=http://parity1:8545
HOME_OWNER_MULTISIG=0xaaB52d66283F7A1D5978bcFcB55721ACB467384b
HOME_UPGRADEABLE_ADMIN_VALIDATORS=0xaaB52d66283F7A1D5978bcFcB55721ACB467384b
HOME_UPGRADEABLE_ADMIN_BRIDGE=0xaaB52d66283F7A1D5978bcFcB55721ACB467384b
HOME_BRIDGE_OWNER=0xaaB52d66283F7A1D5978bcFcB55721ACB467384b
HOME_VALIDATORS_OWNER=0xaaB52d66283F7A1D5978bcFcB55721ACB467384b
HOME_UPGRADEABLE_ADMIN=0xaaB52d66283F7A1D5978bcFcB55721ACB467384b
HOME_DAILY_LIMIT=30000000000000000000000000
HOME_MAX_AMOUNT_PER_TX=1500000000000000000000000
HOME_MIN_AMOUNT_PER_TX=10000000000000000
HOME_REQUIRED_BLOCK_CONFIRMATIONS=1
HOME_GAS_PRICE=1000000000

FOREIGN_RPC_URL=http://parity2:8545
FOREIGN_OWNER_MULTISIG=0xaaB52d66283F7A1D5978bcFcB55721ACB467384b
FOREIGN_UPGRADEABLE_ADMIN_VALIDATORS=0xaaB52d66283F7A1D5978bcFcB55721ACB467384b
FOREIGN_UPGRADEABLE_ADMIN_BRIDGE=0xaaB52d66283F7A1D5978bcFcB55721ACB467384b
FOREIGN_BRIDGE_OWNER=0xaaB52d66283F7A1D5978bcFcB55721ACB467384b
FOREIGN_VALIDATORS_OWNER=0xaaB52d66283F7A1D5978bcFcB55721ACB467384b
FOREIGN_UPGRADEABLE_ADMIN=0xaaB52d66283F7A1D5978bcFcB55721ACB467384b
FOREIGN_DAILY_LIMIT=15000000000000000000000000
FOREIGN_MAX_AMOUNT_PER_TX=750000000000000000000000
FOREIGN_MIN_AMOUNT_PER_TX=10000000000000000
Expand Down
14 changes: 7 additions & 7 deletions e2e/envs/erc-native-contracts-deploy.env
@@ -1,6 +1,6 @@
BRIDGE_MODE=ERC_TO_NATIVE
DEPLOYMENT_ACCOUNT_PRIVATE_KEY=8e829f695aed89a154550f30262f1529582cc49dc30eff74a6b491359e0230f9
DEPLOYMENT_GAS_LIMIT=4000000
DEPLOYMENT_GAS_LIMIT=4600000
HOME_DEPLOYMENT_GAS_PRICE=10000000000
FOREIGN_DEPLOYMENT_GAS_PRICE=10000000000
GET_RECEIPT_INTERVAL_IN_MILLISECONDS=50
Expand All @@ -10,19 +10,19 @@ BRIDGEABLE_TOKEN_SYMBOL="TEST"
BRIDGEABLE_TOKEN_DECIMALS="18"

HOME_RPC_URL=http://parity1:8545
HOME_OWNER_MULTISIG=0xaaB52d66283F7A1D5978bcFcB55721ACB467384b
HOME_UPGRADEABLE_ADMIN_VALIDATORS=0xaaB52d66283F7A1D5978bcFcB55721ACB467384b
HOME_UPGRADEABLE_ADMIN_BRIDGE=0xaaB52d66283F7A1D5978bcFcB55721ACB467384b
HOME_BRIDGE_OWNER=0xaaB52d66283F7A1D5978bcFcB55721ACB467384b
HOME_VALIDATORS_OWNER=0xaaB52d66283F7A1D5978bcFcB55721ACB467384b
HOME_UPGRADEABLE_ADMIN=0xaaB52d66283F7A1D5978bcFcB55721ACB467384b
HOME_DAILY_LIMIT=30000000000000000000000000
HOME_MAX_AMOUNT_PER_TX=1500000000000000000000000
HOME_MIN_AMOUNT_PER_TX=10000000000000000
HOME_REQUIRED_BLOCK_CONFIRMATIONS=1
HOME_GAS_PRICE=1000000000

FOREIGN_RPC_URL=http://parity2:8545
FOREIGN_OWNER_MULTISIG=0xaaB52d66283F7A1D5978bcFcB55721ACB467384b
FOREIGN_UPGRADEABLE_ADMIN_VALIDATORS=0xaaB52d66283F7A1D5978bcFcB55721ACB467384b
FOREIGN_UPGRADEABLE_ADMIN_BRIDGE=0xaaB52d66283F7A1D5978bcFcB55721ACB467384b
FOREIGN_BRIDGE_OWNER=0xaaB52d66283F7A1D5978bcFcB55721ACB467384b
FOREIGN_VALIDATORS_OWNER=0xaaB52d66283F7A1D5978bcFcB55721ACB467384b
FOREIGN_UPGRADEABLE_ADMIN=0xaaB52d66283F7A1D5978bcFcB55721ACB467384b
FOREIGN_DAILY_LIMIT=15000000000000000000000000
FOREIGN_MAX_AMOUNT_PER_TX=750000000000000000000000
FOREIGN_MIN_AMOUNT_PER_TX=10000000000000000
Expand Down
2 changes: 1 addition & 1 deletion e2e/parity/Dockerfile
@@ -1,4 +1,4 @@
FROM parity/parity:v2.2.11
FROM parity/parity:v2.3.3

WORKDIR /stuff

Expand Down
6 changes: 4 additions & 2 deletions e2e/scripts/deployERC20.js
Expand Up @@ -6,7 +6,8 @@ require('dotenv').config({

const {
deployContract,
sendRawTx
sendRawTx,
privateKeyToAddress
} = require('../submodules/poa-bridge-contracts/deploy/src/deploymentUtils')
const {
web3Foreign,
Expand All @@ -15,7 +16,8 @@ const {
const POA20 = require('../submodules/poa-bridge-contracts/build/contracts/ERC677BridgeToken.json')
const { user } = require('../constants.json')

const { DEPLOYMENT_ACCOUNT_ADDRESS } = process.env
const { DEPLOYMENT_ACCOUNT_PRIVATE_KEY } = process.env
const DEPLOYMENT_ACCOUNT_ADDRESS = privateKeyToAddress(DEPLOYMENT_ACCOUNT_PRIVATE_KEY)

async function deployErc20() {
try {
Expand Down
33 changes: 33 additions & 0 deletions scripts/initialChecks.js
@@ -0,0 +1,33 @@
const path = require('path')
require('dotenv').config({
path: path.join(__dirname, '../.env')
})
const Web3 = require('web3')
const ERC677BridgeTokenABI = require('../abis/ERC677BridgeToken.abi')
const { ERC_TYPES } = require('../src/utils/constants')

async function initialChecks() {
const { ERC20_TOKEN_ADDRESS, BRIDGE_MODE, FOREIGN_RPC_URL, FOREIGN_BRIDGE_ADDRESS } = process.env
const result = {}

if (BRIDGE_MODE === 'ERC_TO_ERC') {
const foreignWeb3 = new Web3(new Web3.providers.HttpProvider(FOREIGN_RPC_URL))
const tokenContract = new foreignWeb3.eth.Contract(ERC677BridgeTokenABI, ERC20_TOKEN_ADDRESS)
try {
const bridgeContract = await tokenContract.methods.bridgeContract().call()
if (bridgeContract === FOREIGN_BRIDGE_ADDRESS) {
result.foreignERC = ERC_TYPES.ERC677
} else {
result.foreignERC = ERC_TYPES.ERC20
}
} catch (e) {
result.foreignERC = ERC_TYPES.ERC20
}
}
console.log(JSON.stringify(result))
return result
}

initialChecks()

module.exports = initialChecks
6 changes: 4 additions & 2 deletions scripts/start-worker.sh
Expand Up @@ -9,8 +9,10 @@ WORKER="${WORKERS_DIR}${1}.js"
CONFIG="${2}.config.js"
LOG="${LOGS_DIR}${2}.txt"

CHECKS=$(node scripts/initialChecks.js)

if [ "${NODE_ENV}" = "production" ]; then
exec node "${WORKER}" "${CONFIG}"
exec node "${WORKER}" "${CONFIG}" "$CHECKS"
else
node "${WORKER}" "${CONFIG}" | tee -a "${LOG}" | pino-pretty
node "${WORKER}" "${CONFIG}" "$CHECKS" | tee -a "${LOG}" | pino-pretty
fi
4 changes: 4 additions & 0 deletions src/utils/constants.js
Expand Up @@ -16,5 +16,9 @@ module.exports = {
GAS_PRICE_BOUNDARIES: {
MIN: 1,
MAX: 250
},
ERC_TYPES: {
ERC20: 'ERC20',
ERC677: 'ERC677'
}
}
1 change: 1 addition & 0 deletions src/watcher.js
Expand Up @@ -95,6 +95,7 @@ function processEvents(events) {
case 'erc-native-collected-signatures':
return processCollectedSignatures(events)
case 'native-erc-affirmation-request':
case 'erc677-erc677-affirmation-request':
return processAffirmationRequests(events)
case 'erc-erc-affirmation-request':
case 'erc-native-affirmation-request':
Expand Down

0 comments on commit db1d695

Please sign in to comment.