RcleydsonR d78f7f1fdf Adjust search component and home view to new approaching using alchemy
Co-authored-by: brunoedcf <brest.dallacosta@outlook.com>
2023-01-17 19:27:00 -03:00

85 lines
2.4 KiB
TypeScript

import { useEtherStore } from "@/store/ether";
import { Contract, ethers } from "ethers";
import p2pix from "../utils/smart_contract_files/P2PIX.json";
import { formatEther } from "ethers/lib/utils";
import { getProvider } from "./provider";
import { getP2PixAddress } from "./addresses";
const getNetworksLiquidity = async () => {
const etherStore = useEtherStore();
console.log("Loading events");
const goerliProvider = new ethers.providers.JsonRpcProvider(
import.meta.env.VITE_GOERLI_API_URL,
5
); // goerli provider
const mumbaiProvider = new ethers.providers.JsonRpcProvider(
import.meta.env.VITE_MUMBAI_API_URL,
80001
); // mumbai provider
const p2pContractGoerli = new ethers.Contract(
"0x5f3EFA9A90532914545CEf527C530658af87e196",
p2pix.abi,
goerliProvider
);
const p2pContractMumbai = new ethers.Contract(
"0x5f3EFA9A90532914545CEf527C530658af87e196",
p2pix.abi,
mumbaiProvider
);
const depositListGoerli = await getValidDeposits(p2pContractGoerli);
const depositListMumbai = await getValidDeposits(p2pContractMumbai);
etherStore.setDepositsValidListGoerli(depositListGoerli);
console.log(depositListGoerli);
etherStore.setDepositsValidListMumbai(depositListMumbai);
console.log(depositListMumbai);
};
const getValidDeposits = async ( contract?: Contract ): Promise<any[]> => {
let p2pContract: Contract;
if (contract){
p2pContract = contract;
}
else{
const provider = getProvider();
const signer = provider.getSigner();
p2pContract = new ethers.Contract(getP2PixAddress(), p2pix.abi, signer);
}
const filterDeposits = p2pContract.filters.DepositAdded(null);
const eventsDeposits = await p2pContract.queryFilter(filterDeposits);
const depositList: any[] = await Promise.all(
eventsDeposits
.map(async (deposit) => {
const mappedDeposit = await p2pContract.mapDeposits(deposit.args?.depositID);
let validDeposit = {};
if (mappedDeposit.valid) {
validDeposit = {
blockNumber: deposit.blockNumber,
depositID: deposit.args?.depositID,
remaining: formatEther(mappedDeposit.remaining),
seller: mappedDeposit.seller,
pixKey: mappedDeposit.pixTarget
};
}
return validDeposit;
})
.filter((deposit) => deposit)
);
return depositList;
};
export { getValidDeposits, getNetworksLiquidity };