Commit 23d4dad3 authored by vicotor's avatar vicotor

update script.

parent a0611ce6
...@@ -15,3 +15,4 @@ node_modules ...@@ -15,3 +15,4 @@ node_modules
# Hardhat Ignition default folder for deployments against a local node # Hardhat Ignition default folder for deployments against a local node
ignition/deployments/chain-31337 ignition/deployments/chain-31337
.idea
This diff is collapsed.
...@@ -3,10 +3,15 @@ pragma solidity ^0.8.0; ...@@ -3,10 +3,15 @@ pragma solidity ^0.8.0;
import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
contract GasToken is ERC20 { contract GasToken is ERC20 {
address owner;
modifier onlyOwner() {
require(msg.sender == owner, "only owner can call this function");
_;
}
constructor(uint256 initialSupply, string memory name, string memory symbol) ERC20(name, symbol) { constructor(uint256 initialSupply, string memory name, string memory symbol) ERC20(name, symbol) {
_mint(msg.sender, initialSupply); _mint(msg.sender, initialSupply);
} }
function mint(address to, uint256 amount) public { function mint(address to, uint256 amount) public onlyOwner {
_mint(to, amount * 10 **this.decimals()); _mint(to, amount * 10 **this.decimals());
} }
} }
\ No newline at end of file
...@@ -22,8 +22,8 @@ module.exports = { ...@@ -22,8 +22,8 @@ module.exports = {
}, },
networks: { networks: {
test:{ test:{
accounts, accounts: [process.env.PRIVATE_KEY],
url: "http://127.0.0.1:8545", url: "https://achain.bitheart.org",
}, },
}, },
}; };
This diff is collapsed.
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
"hardhat": "^2.22.19" "hardhat": "^2.22.19"
}, },
"dependencies": { "dependencies": {
"@ethereumjs/tx": "^5.4.0",
"@openzeppelin/contracts": "^4.9.6", "@openzeppelin/contracts": "^4.9.6",
"dotenv": "^16.4.7" "dotenv": "^16.4.7"
} }
......
...@@ -2,6 +2,13 @@ const { ethers } = require("hardhat"); ...@@ -2,6 +2,13 @@ const { ethers } = require("hardhat");
const tokenABI = require("../abi/token.json"); const tokenABI = require("../abi/token.json");
const portalABI = require("../abi/portal.json"); const portalABI = require("../abi/portal.json");
async function portalInfo(portalAddr) {
const provider = ethers.provider;
const portalContract = new ethers.Contract(portalAddr, portalABI, provider);
const [gasTokey,decimals] = await portalContract.gasPayingToken()
console.log("gas token:", gasTokey, " decimals:", decimals);
}
async function bridge(users, portalAddr, tokenAddr) { async function bridge(users, portalAddr, tokenAddr) {
const provider = ethers.provider; const provider = ethers.provider;
const portalContract = new ethers.Contract(portalAddr, portalABI, provider); const portalContract = new ethers.Contract(portalAddr, portalABI, provider);
...@@ -15,11 +22,14 @@ async function bridge(users, portalAddr, tokenAddr) { ...@@ -15,11 +22,14 @@ async function bridge(users, portalAddr, tokenAddr) {
const contractWithSigner = portalContract.connect(signer); const contractWithSigner = portalContract.connect(signer);
const usdxWithSigner = tokenContract.connect(signer); const usdxWithSigner = tokenContract.connect(signer);
console.log("bridge token for user:", user)
const approve = await usdxWithSigner.approve(portalAddr, value); const approve = await usdxWithSigner.approve(portalAddr, value);
await approve.wait(); await approve.wait();
console.log("approve token to portal contract tx hash:", approve.hash); console.log("approve token to portal contract tx hash:", approve.hash);
const deposit = await contractWithSigner.depositERC20Transaction(user, value, value, 0, false, ""); const nonce = await provider.getTransactionCount(user);
const deposit = await contractWithSigner.depositERC20Transaction(user, value, value, 250000, false, "0x", {gasPrice:1000000000,gasLimit:10000000,nonce:nonce});
await deposit.wait(); await deposit.wait();
console.log("deposit tx hash:", deposit.hash, " for user:", user); console.log("deposit tx hash:", deposit.hash, " for user:", user);
} }
...@@ -27,9 +37,9 @@ async function bridge(users, portalAddr, tokenAddr) { ...@@ -27,9 +37,9 @@ async function bridge(users, portalAddr, tokenAddr) {
async function main() { async function main() {
const users = require("../account.json") const users = require("../account.json")
const portalAddr = ""; const portalAddr = "0xea2e2269f5d0d327a740dcdc82f4e1c2da8453af";
const usdxTokenAddr = "" const usdxTokenAddr = "0x9C4bd341cF7134A53B1f34cFa9F3dEa4Fde61c9c"
// await portalInfo(portalAddr);
await bridge(users, portalAddr, usdxTokenAddr); await bridge(users, portalAddr, usdxTokenAddr);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment