44 lines
1.6 KiB
JavaScript
44 lines
1.6 KiB
JavaScript
|
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 ERC677MultiBridgeToken = require(`${contractsPath}/build/contracts/ERC677MultiBridgeToken.json`)
|
||
|
|
||
|
const { DEPLOYMENT_ACCOUNT_PRIVATE_KEY } = process.env
|
||
|
const DEPLOYMENT_ACCOUNT_ADDRESS = privateKeyToAddress(DEPLOYMENT_ACCOUNT_PRIVATE_KEY)
|
||
|
|
||
|
async function deployMultiBridgeToken() {
|
||
|
try {
|
||
|
let foreignNonce = await web3Foreign.eth.getTransactionCount(DEPLOYMENT_ACCOUNT_ADDRESS)
|
||
|
console.log('\n[Foreign] Deploying ERC677MultiBridgeToken Test token')
|
||
|
const stakeToken = await deployContract(ERC677MultiBridgeToken, ['STAKE', 'STAKE', '18', '42'], {
|
||
|
from: DEPLOYMENT_ACCOUNT_ADDRESS,
|
||
|
network: 'foreign',
|
||
|
nonce: foreignNonce
|
||
|
})
|
||
|
foreignNonce++
|
||
|
console.log('[Foreign] Stake Token: ', stakeToken.options.address)
|
||
|
|
||
|
const mintData = await stakeToken.methods
|
||
|
.mint(user.address, '500000000000000000000')
|
||
|
.encodeABI({ from: DEPLOYMENT_ACCOUNT_ADDRESS })
|
||
|
await sendRawTxForeign({
|
||
|
data: mintData,
|
||
|
nonce: foreignNonce,
|
||
|
to: stakeToken.options.address,
|
||
|
privateKey: deploymentPrivateKey,
|
||
|
url: process.env.FOREIGN_RPC_URL
|
||
|
})
|
||
|
} catch (e) {
|
||
|
console.log(e)
|
||
|
throw e
|
||
|
}
|
||
|
}
|
||
|
|
||
|
deployMultiBridgeToken()
|