Mock tokens implementation
This commit is contained in:
@@ -3,9 +3,11 @@ import { ethers } from "ethers";
|
||||
|
||||
// smart contract imports
|
||||
import mockToken from "./smart_contract_files/MockToken.json";
|
||||
//import p2pix from "./smart_contract_files/P2PIX.json";
|
||||
import p2pix from "./smart_contract_files/P2PIX.json";
|
||||
import addresses from "./smart_contract_files/localhost.json";
|
||||
|
||||
import { wallets } from "./smart_contract_files/wallets.json"
|
||||
|
||||
const updateWalletStatus = async (walletAddress: string) => {
|
||||
const etherStore = useEtherStore();
|
||||
const provider = getProvider();
|
||||
@@ -37,29 +39,89 @@ const connectProvider = async () => {
|
||||
etherStore.setWalletAddress(walletAddress[0]);
|
||||
etherStore.setBalance(String(balance));
|
||||
|
||||
const p2pContract = new ethers.Contract(addresses.p2pix, p2pix.abi, signer);
|
||||
|
||||
const filter = p2pContract.filters.DepositAdded(null);
|
||||
const events = await p2pContract.queryFilter(filter);
|
||||
|
||||
console.log(events)
|
||||
|
||||
etherStore.setDepositList(events);
|
||||
|
||||
connection.on("accountsChanged", (accounts: string[]) => {
|
||||
updateWalletStatus(accounts[0]);
|
||||
});
|
||||
};
|
||||
|
||||
const makeTransaction = async (
|
||||
receiverAccountAddress = "0x70997970C51812dc3A010C7d01b50e0d17dc79C8",
|
||||
ammount = "100.0"
|
||||
) => {
|
||||
const splitTokens = async () => {
|
||||
const etherStore = useEtherStore();
|
||||
const provider = getProvider();
|
||||
if (!provider) return;
|
||||
const window_ = window as any;
|
||||
const connection = window_.ethereum;
|
||||
let provider: ethers.providers.Web3Provider | null = null;
|
||||
|
||||
if (!connection) return;
|
||||
|
||||
provider = new ethers.providers.Web3Provider(connection);
|
||||
const signer = provider.getSigner();
|
||||
const contract = new ethers.Contract(addresses.token, mockToken.abi, signer);
|
||||
|
||||
const tx = await contract.transfer(
|
||||
receiverAccountAddress,
|
||||
ethers.utils.parseEther(ammount)
|
||||
);
|
||||
await tx.wait();
|
||||
for (var i = 0; i < wallets.length; i++){
|
||||
const tx = await contract.transfer(wallets[i], ethers.utils.parseEther("4000000.0"));
|
||||
await tx.wait()
|
||||
updateWalletStatus(etherStore.walletAddress);
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
const mockDeposit = async () => {
|
||||
const etherStore = useEtherStore();
|
||||
const window_ = window as any;
|
||||
const connection = window_.ethereum;
|
||||
let provider: ethers.providers.Web3Provider | null = null;
|
||||
|
||||
if (!connection) return;
|
||||
|
||||
provider = new ethers.providers.Web3Provider(connection);
|
||||
const signer = provider.getSigner();
|
||||
|
||||
const tokenContract = new ethers.Contract(addresses.token, mockToken.abi, signer);
|
||||
const p2pContract = new ethers.Contract(addresses.p2pix, p2pix.abi, signer);
|
||||
|
||||
// first get the approval
|
||||
const apprv = await tokenContract.approve(addresses.p2pix, ethers.utils.parseEther("1000.0"));
|
||||
await apprv.wait();
|
||||
|
||||
// deposit
|
||||
const mockPixKey = "00011122233";
|
||||
const deposit = await p2pContract.deposit(addresses.token, ethers.utils.parseEther("1000.0"), mockPixKey);
|
||||
await deposit.wait();
|
||||
|
||||
updateWalletStatus(etherStore.walletAddress);
|
||||
|
||||
const filter = p2pContract.filters.DepositAdded(null);
|
||||
const events = await p2pContract.queryFilter(filter);
|
||||
|
||||
console.log(events)
|
||||
|
||||
etherStore.setDepositList(events);
|
||||
|
||||
};
|
||||
|
||||
|
||||
const countDeposit = async () => {
|
||||
const window_ = window as any;
|
||||
const connection = window_.ethereum;
|
||||
let provider: ethers.providers.Web3Provider | null = null;
|
||||
|
||||
if (!connection) return;
|
||||
|
||||
provider = new ethers.providers.Web3Provider(connection);
|
||||
const signer = provider.getSigner();
|
||||
const contract = new ethers.Contract(addresses.p2pix, p2pix.abi, signer);
|
||||
|
||||
const count = await contract.depositCount();
|
||||
|
||||
console.log(Number(count))
|
||||
};
|
||||
|
||||
const formatEther = (balance: string) => {
|
||||
@@ -76,4 +138,4 @@ const getProvider = (): ethers.providers.Web3Provider | null => {
|
||||
return new ethers.providers.Web3Provider(connection);
|
||||
};
|
||||
|
||||
export default { connectProvider, formatEther, makeTransaction };
|
||||
export default { connectProvider, formatEther, splitTokens, mockDeposit, countDeposit };
|
||||
|
||||
8
src/utils/smart_contract_files/wallets.json
Normal file
8
src/utils/smart_contract_files/wallets.json
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"wallets":[
|
||||
"0x70997970C51812dc3A010C7d01b50e0d17dc79C8",
|
||||
"0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC",
|
||||
"0x90F79bf6EB2c4f870365E785982E1f101E93b906",
|
||||
"0x15d34AAf54267DB7D7c367839AAf71A00a2C6A65"
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user