52 lines
1.6 KiB
JavaScript
52 lines
1.6 KiB
JavaScript
/* eslint import/no-unresolved: 0 node/no-missing-require: 0 */
|
|
const path = require('path')
|
|
const {user} = require('../constants.json')
|
|
const contractsPath = '../../contracts';
|
|
require('dotenv').config({
|
|
path: path.join(__dirname, contractsPath, '/deploy/.env')
|
|
})
|
|
|
|
const {
|
|
deployContract,
|
|
sendRawTxForeign,
|
|
privateKeyToAddress
|
|
} = require(`${contractsPath}/deploy/src/deploymentUtils`)
|
|
const {
|
|
web3Foreign,
|
|
deploymentPrivateKey
|
|
} = require(`${contractsPath}/deploy/src/web3`)
|
|
const POA20 = require(`${contractsPath}/build/contracts/ERC677BridgeToken.json`)
|
|
|
|
const { DEPLOYMENT_ACCOUNT_PRIVATE_KEY } = process.env
|
|
const DEPLOYMENT_ACCOUNT_ADDRESS = privateKeyToAddress(DEPLOYMENT_ACCOUNT_PRIVATE_KEY)
|
|
|
|
async function deployErc20() {
|
|
try {
|
|
let foreignNonce = await web3Foreign.eth.getTransactionCount(DEPLOYMENT_ACCOUNT_ADDRESS)
|
|
console.log('\n[Foreign] Deploying POA20 Test token')
|
|
const poa20foreign = await deployContract(POA20, ['POA ERC20 Test', 'POA20', 18], {
|
|
from: DEPLOYMENT_ACCOUNT_ADDRESS,
|
|
network: 'foreign',
|
|
nonce: foreignNonce
|
|
})
|
|
foreignNonce++
|
|
console.log('[Foreign] POA20 Test: ', poa20foreign.options.address)
|
|
|
|
const mintData = await poa20foreign.methods
|
|
.mint(user.address, '500000000000000000000')
|
|
.encodeABI({ from: DEPLOYMENT_ACCOUNT_ADDRESS })
|
|
await sendRawTxForeign({
|
|
data: mintData,
|
|
nonce: foreignNonce,
|
|
to: poa20foreign.options.address,
|
|
privateKey: deploymentPrivateKey,
|
|
url: process.env.FOREIGN_RPC_URL
|
|
})
|
|
} catch (e) {
|
|
console.log(e)
|
|
throw e;
|
|
}
|
|
}
|
|
|
|
deployErc20()
|