d656025378
* Moved audit to root directory. * Moved code of conduct, contributing and licence files. * Removed travis config and badge. * Updated repository links in CONTRIBUTING. * Moved Gitter badge to main readme. Updated links to contributing and licence. * Updated main readme. * Moved references to main readme. * Renamed token-bridge to oracle. * Update README.md Co-Authored-By: rzadp <rzadp@student.mini.pw.edu.pl>
75 lines
2.3 KiB
JavaScript
75 lines
2.3 KiB
JavaScript
const path = require('path')
|
|
require('dotenv').config({
|
|
path: path.join(__dirname, '../../.env')
|
|
})
|
|
const Web3 = require('web3')
|
|
const Web3Utils = require('web3-utils')
|
|
const rpcUrlsManager = require('../../src/services/getRpcUrlsManager')
|
|
const { sendTx, sendRawTx } = require('../../src/tx/sendTx')
|
|
|
|
const {
|
|
USER_ADDRESS,
|
|
USER_ADDRESS_PRIVATE_KEY,
|
|
FOREIGN_BRIDGE_ADDRESS,
|
|
FOREIGN_MIN_AMOUNT_PER_TX,
|
|
FOREIGN_TEST_TX_GAS_PRICE
|
|
} = process.env
|
|
|
|
const NUMBER_OF_DEPOSITS_TO_SEND = process.argv[2] || process.env.NUMBER_OF_DEPOSITS_TO_SEND || 1
|
|
|
|
const ERC20_ABI = require('../../abis/ERC20.abi')
|
|
const BRIDGE_ABI = require('../../abis/ForeignBridgeErcToNative.abi')
|
|
|
|
const foreignRpcUrl = rpcUrlsManager.foreignUrls[0]
|
|
const foreignProvider = new Web3.providers.HttpProvider(foreignRpcUrl)
|
|
const web3Foreign = new Web3(foreignProvider)
|
|
|
|
async function main() {
|
|
const bridge = new web3Foreign.eth.Contract(BRIDGE_ABI, FOREIGN_BRIDGE_ADDRESS)
|
|
const ERC20_TOKEN_ADDRESS = await bridge.methods.erc20token().call()
|
|
const poa20 = new web3Foreign.eth.Contract(ERC20_ABI, ERC20_TOKEN_ADDRESS)
|
|
|
|
try {
|
|
const foreignChaindId = 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_DEPOSITS_TO_SEND); i++) {
|
|
const gasLimit = await poa20.methods
|
|
.transfer(FOREIGN_BRIDGE_ADDRESS, Web3Utils.toWei(FOREIGN_MIN_AMOUNT_PER_TX))
|
|
.estimateGas({ from: USER_ADDRESS })
|
|
const data = await poa20.methods
|
|
.transfer(FOREIGN_BRIDGE_ADDRESS, Web3Utils.toWei(FOREIGN_MIN_AMOUNT_PER_TX))
|
|
.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: foreignChaindId
|
|
})
|
|
if (txHash !== undefined) {
|
|
nonce++
|
|
actualSent++
|
|
console.log(actualSent, ' # ', txHash)
|
|
}
|
|
}
|
|
} catch (e) {
|
|
console.log(e)
|
|
}
|
|
}
|
|
main()
|