8b010f887d
* Add console.table * First steps in validate script * env rename * Added parameter names * Descriptions * Print and configuration * Added more parameters * Rename gas oracle to gas supplier * More changes * Removed env examples for now * RPC rename * Bridge address rename * More changes * jobs * Renames * Typo * jobs * Changes * jobs * Changes * Monitor changes * jovs * Typo * Changes * REACT_APP_ env prefix * Typo * Rollback changes * Oracle deployment * Defaults * Monitor * Naming * Typo * Typo * Envs * ui deployment * ALl jobs * Vars in ultimate * Lint * Lint * Lint * Another way to add REACT_APP prefixing * Unnecessary mapping * No output timeout * No output timeout * Got rid of ERC20_TOKEN_ADDRESS * Configuration readme * Configuration * Prefixes * timeout * Docs * Docs * docs * docs * docs * Roll back ERC20_TOKEN_ADDRESS for erc-to-erc * Typo * lint * Rollback * ROllback validator * Rollback yarn.lock * dai and wetc update * Rollback ERC20_TOKEN_ADDRESS * erc to native * examples * all jobs * roll back * roll back ERC20_TOKEN_ADDRESS: "0xdbeE25CbE97e4A5CC6c499875774dc7067E9426B" * ui env example * typo * Allow rpc for ultimate * Test * ERC20_TOKEN_ADDRESS rollback * Specify port * React port * All jobs * cosmetics * Values * Restore erc20 token * Rearrange example for easier comparision * Rearrange ultimate for easier comparision * Rearrange for easier comparision * Refactor * Conditional app styles * Loading environment variables in react app * Add missing vars for UI in wetc and dai * Bring back test parameters readme * Readme for monitor vars * Reading environment variables in e2e-commons (#207)
98 lines
2.6 KiB
JavaScript
98 lines
2.6 KiB
JavaScript
require('../../env')
|
|
const Web3Utils = require('web3-utils')
|
|
const { web3Foreign } = require('../../src/services/web3')
|
|
const { sendTx, sendRawTx } = require('../../src/tx/sendTx')
|
|
const { isValidAmount } = require('../utils/utils')
|
|
const { FOREIGN_NATIVE_TO_ERC_ABI } = require('../../../commons')
|
|
|
|
const {
|
|
USER_ADDRESS,
|
|
USER_ADDRESS_PRIVATE_KEY,
|
|
COMMON_FOREIGN_BRIDGE_ADDRESS,
|
|
FOREIGN_MIN_AMOUNT_PER_TX,
|
|
FOREIGN_TEST_TX_GAS_PRICE
|
|
} = process.env
|
|
|
|
const NUMBER_OF_WITHDRAWALS_TO_SEND = process.argv[2] || process.env.NUMBER_OF_WITHDRAWALS_TO_SEND || 1
|
|
|
|
const ERC677_ABI = [
|
|
{
|
|
constant: false,
|
|
inputs: [
|
|
{
|
|
name: '',
|
|
type: 'address'
|
|
},
|
|
{
|
|
name: '',
|
|
type: 'uint256'
|
|
},
|
|
{
|
|
name: '',
|
|
type: 'bytes'
|
|
}
|
|
],
|
|
name: 'transferAndCall',
|
|
outputs: [
|
|
{
|
|
name: '',
|
|
type: 'bool'
|
|
}
|
|
],
|
|
payable: false,
|
|
stateMutability: 'nonpayable',
|
|
type: 'function'
|
|
}
|
|
]
|
|
|
|
async function main() {
|
|
const bridge = new web3Foreign.eth.Contract(FOREIGN_NATIVE_TO_ERC_ABI, COMMON_FOREIGN_BRIDGE_ADDRESS)
|
|
const ERC20_TOKEN_ADDRESS = await bridge.methods.erc677token().call()
|
|
const poa20 = new web3Foreign.eth.Contract(ERC677_ABI, ERC20_TOKEN_ADDRESS)
|
|
|
|
try {
|
|
await isValidAmount(FOREIGN_MIN_AMOUNT_PER_TX, bridge)
|
|
|
|
const foreignChainId = await sendRawTx({
|
|
chain: 'foreign',
|
|
params: [],
|
|
method: 'net_version'
|
|
})
|
|
let nonce = await sendRawTx({
|
|
chain: 'foreign',
|
|
method: 'eth_getTransactionCount',
|
|
params: [USER_ADDRESS, 'latest']
|
|
})
|
|
nonce = Web3Utils.hexToNumber(nonce)
|
|
let actualSent = 0
|
|
for (let i = 0; i < Number(NUMBER_OF_WITHDRAWALS_TO_SEND); i++) {
|
|
const gasLimit = await poa20.methods
|
|
.transferAndCall(COMMON_FOREIGN_BRIDGE_ADDRESS, Web3Utils.toWei(FOREIGN_MIN_AMOUNT_PER_TX), '0x')
|
|
.estimateGas({ from: USER_ADDRESS })
|
|
const data = await poa20.methods
|
|
.transferAndCall(COMMON_FOREIGN_BRIDGE_ADDRESS, Web3Utils.toWei(FOREIGN_MIN_AMOUNT_PER_TX), '0x')
|
|
.encodeABI({ from: USER_ADDRESS })
|
|
const txHash = await sendTx({
|
|
chain: 'foreign',
|
|
privateKey: USER_ADDRESS_PRIVATE_KEY,
|
|
data,
|
|
nonce,
|
|
gasPrice: FOREIGN_TEST_TX_GAS_PRICE,
|
|
amount: '0',
|
|
gasLimit,
|
|
to: ERC20_TOKEN_ADDRESS,
|
|
web3: web3Foreign,
|
|
chainId: foreignChainId
|
|
})
|
|
if (txHash !== undefined) {
|
|
nonce++
|
|
actualSent++
|
|
console.log(actualSent, ' # ', txHash)
|
|
}
|
|
}
|
|
} catch (e) {
|
|
console.log(e)
|
|
}
|
|
}
|
|
main()
|