Compare commits
2 Commits
d794064a91
...
2c04e6f0de
Author | SHA1 | Date | |
---|---|---|---|
|
2c04e6f0de | ||
|
ce3fc962d6 |
24
src/assets/rootstock.svg
Normal file
24
src/assets/rootstock.svg
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 30 KiB |
@ -7,6 +7,7 @@ const getTokenAddress = (network?: NetworkEnum): string => {
|
|||||||
const possibleTokenAddresses: { [key: string]: string } = {
|
const possibleTokenAddresses: { [key: string]: string } = {
|
||||||
Ethereum: "0x4A2886EAEc931e04297ed336Cc55c4eb7C75BA00",
|
Ethereum: "0x4A2886EAEc931e04297ed336Cc55c4eb7C75BA00",
|
||||||
Polygon: "0xC86042E9F2977C62Da8c9dDF7F9c40fde4796A29",
|
Polygon: "0xC86042E9F2977C62Da8c9dDF7F9c40fde4796A29",
|
||||||
|
Rootstock: "0xfE841c74250e57640390f46d914C88d22C51e82e",
|
||||||
};
|
};
|
||||||
|
|
||||||
return possibleTokenAddresses[network ? network : etherStore.networkName];
|
return possibleTokenAddresses[network ? network : etherStore.networkName];
|
||||||
@ -18,6 +19,7 @@ const getP2PixAddress = (network?: NetworkEnum): string => {
|
|||||||
const possibleP2PixAddresses: { [key: string]: string } = {
|
const possibleP2PixAddresses: { [key: string]: string } = {
|
||||||
Ethereum: "0x2414817FF64A114d91eCFA16a834d3fCf69103d4",
|
Ethereum: "0x2414817FF64A114d91eCFA16a834d3fCf69103d4",
|
||||||
Polygon: "0x4A2886EAEc931e04297ed336Cc55c4eb7C75BA00",
|
Polygon: "0x4A2886EAEc931e04297ed336Cc55c4eb7C75BA00",
|
||||||
|
Rootstock: "0x98ba35eb14b38D6Aa709338283af3e922476dE34",
|
||||||
};
|
};
|
||||||
|
|
||||||
return possibleP2PixAddresses[network ? network : etherStore.networkName];
|
return possibleP2PixAddresses[network ? network : etherStore.networkName];
|
||||||
@ -29,6 +31,7 @@ const getProviderUrl = (): string => {
|
|||||||
const possibleProvidersUrls: { [key: string]: string } = {
|
const possibleProvidersUrls: { [key: string]: string } = {
|
||||||
Ethereum: import.meta.env.VITE_GOERLI_API_URL,
|
Ethereum: import.meta.env.VITE_GOERLI_API_URL,
|
||||||
Polygon: import.meta.env.VITE_MUMBAI_API_URL,
|
Polygon: import.meta.env.VITE_MUMBAI_API_URL,
|
||||||
|
Rootstock: import.meta.env.VITE_RSK_API_URL,
|
||||||
};
|
};
|
||||||
|
|
||||||
return possibleProvidersUrls[etherStore.networkName];
|
return possibleProvidersUrls[etherStore.networkName];
|
||||||
@ -39,16 +42,18 @@ const possibleChains: { [key: string]: NetworkEnum } = {
|
|||||||
"5": NetworkEnum.ethereum,
|
"5": NetworkEnum.ethereum,
|
||||||
"0x13881": NetworkEnum.polygon,
|
"0x13881": NetworkEnum.polygon,
|
||||||
"80001": NetworkEnum.polygon,
|
"80001": NetworkEnum.polygon,
|
||||||
|
"31": NetworkEnum.rootstock,
|
||||||
};
|
};
|
||||||
|
|
||||||
const network2Chain: { [key: string]: string } = {
|
const network2Chain: { [key: string]: string } = {
|
||||||
Ethereum: "0x5",
|
Ethereum: "0x5",
|
||||||
Polygon: "0x13881",
|
Polygon: "0x13881",
|
||||||
Localhost: "0x7a69",
|
Localhost: "0x7a69",
|
||||||
|
Rootstock: "0x1f",
|
||||||
};
|
};
|
||||||
|
|
||||||
const isPossibleNetwork = (networkChain: string): boolean => {
|
const isPossibleNetwork = (networkChain: string): boolean => {
|
||||||
if (Object.keys(possibleChains).includes(networkChain)) {
|
if (Object.keys(possibleChains).includes(networkChain.toString())) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
@ -21,6 +21,10 @@ const getNetworksLiquidity = async (): Promise<void> => {
|
|||||||
import.meta.env.VITE_MUMBAI_API_URL,
|
import.meta.env.VITE_MUMBAI_API_URL,
|
||||||
80001
|
80001
|
||||||
); // mumbai provider
|
); // mumbai provider
|
||||||
|
const rootstockProvider = new ethers.providers.JsonRpcProvider(
|
||||||
|
import.meta.env.VITE_RSK_API_URL,
|
||||||
|
31
|
||||||
|
); // rootstock provider
|
||||||
|
|
||||||
const p2pContractGoerli = new ethers.Contract(
|
const p2pContractGoerli = new ethers.Contract(
|
||||||
getP2PixAddress(NetworkEnum.ethereum),
|
getP2PixAddress(NetworkEnum.ethereum),
|
||||||
@ -33,6 +37,12 @@ const getNetworksLiquidity = async (): Promise<void> => {
|
|||||||
mumbaiProvider
|
mumbaiProvider
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const p2pContractRootstock = new ethers.Contract(
|
||||||
|
getP2PixAddress(NetworkEnum.rootstock),
|
||||||
|
p2pix.abi,
|
||||||
|
rootstockProvider
|
||||||
|
);
|
||||||
|
|
||||||
etherStore.setLoadingNetworkLiquidity(true);
|
etherStore.setLoadingNetworkLiquidity(true);
|
||||||
const depositListGoerli = await getValidDeposits(
|
const depositListGoerli = await getValidDeposits(
|
||||||
getTokenAddress(NetworkEnum.ethereum),
|
getTokenAddress(NetworkEnum.ethereum),
|
||||||
@ -45,7 +55,12 @@ const getNetworksLiquidity = async (): Promise<void> => {
|
|||||||
);
|
);
|
||||||
|
|
||||||
etherStore.setDepositsValidListGoerli(depositListGoerli);
|
etherStore.setDepositsValidListGoerli(depositListGoerli);
|
||||||
|
const depositListRootstock = await getValidDeposits(
|
||||||
|
getTokenAddress(NetworkEnum.rootstock),
|
||||||
|
p2pContractRootstock
|
||||||
|
);
|
||||||
etherStore.setDepositsValidListMumbai(depositListMumbai);
|
etherStore.setDepositsValidListMumbai(depositListMumbai);
|
||||||
|
etherStore.setDepositsValidListRootstock(depositListRootstock);
|
||||||
etherStore.setLoadingNetworkLiquidity(false);
|
etherStore.setLoadingNetworkLiquidity(false);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import { useEtherStore } from "@/store/ether";
|
import { useEtherStore } from "@/store/ether";
|
||||||
|
|
||||||
import { getContract, getProvider } from "./provider";
|
import { getContract, getProvider } from "./provider";
|
||||||
import { getTokenAddress, possibleChains } from "./addresses";
|
import { getTokenAddress, possibleChains, isPossibleNetwork } from "./addresses";
|
||||||
|
|
||||||
import mockToken from "@/utils/smart_contract_files/MockToken.json";
|
import mockToken from "@/utils/smart_contract_files/MockToken.json";
|
||||||
|
|
||||||
@ -21,6 +21,10 @@ const updateWalletStatus = async (): Promise<void> => {
|
|||||||
const signer = provider.getSigner();
|
const signer = provider.getSigner();
|
||||||
|
|
||||||
const { chainId } = await provider.getNetwork();
|
const { chainId } = await provider.getNetwork();
|
||||||
|
if(!isPossibleNetwork(chainId.toString())){
|
||||||
|
window.alert("Invalid chain!:"+chainId);
|
||||||
|
return;
|
||||||
|
}
|
||||||
etherStore.setNetworkName(possibleChains[chainId]);
|
etherStore.setNetworkName(possibleChains[chainId]);
|
||||||
|
|
||||||
const mockTokenContract = new ethers.Contract(
|
const mockTokenContract = new ethers.Contract(
|
||||||
|
@ -30,6 +30,7 @@ const hasLiquidity = ref<boolean>(true);
|
|||||||
const validDecimals = ref<boolean>(true);
|
const validDecimals = ref<boolean>(true);
|
||||||
const selectedGoerliDeposit = ref<ValidDeposit>();
|
const selectedGoerliDeposit = ref<ValidDeposit>();
|
||||||
const selectedMumbaiDeposit = ref<ValidDeposit>();
|
const selectedMumbaiDeposit = ref<ValidDeposit>();
|
||||||
|
const selectedRootstockDeposit = ref<ValidDeposit>();
|
||||||
|
|
||||||
// Emits
|
// Emits
|
||||||
const emit = defineEmits(["tokenBuy"]);
|
const emit = defineEmits(["tokenBuy"]);
|
||||||
@ -70,6 +71,7 @@ const verifyLiquidity = (): void => {
|
|||||||
enableConfirmButton.value = false;
|
enableConfirmButton.value = false;
|
||||||
selectedGoerliDeposit.value = undefined;
|
selectedGoerliDeposit.value = undefined;
|
||||||
selectedMumbaiDeposit.value = undefined;
|
selectedMumbaiDeposit.value = undefined;
|
||||||
|
selectedRootstockDeposit.value = undefined;
|
||||||
|
|
||||||
if (tokenValue.value <= 0) {
|
if (tokenValue.value <= 0) {
|
||||||
enableWalletButton.value = false;
|
enableWalletButton.value = false;
|
||||||
|
@ -7,6 +7,7 @@ import { NetworkEnum } from "@/model/NetworkEnum";
|
|||||||
import { connectProvider, requestNetworkChange } from "@/blockchain/provider";
|
import { connectProvider, requestNetworkChange } from "@/blockchain/provider";
|
||||||
import ethereumImage from "@/assets/ethereum.svg";
|
import ethereumImage from "@/assets/ethereum.svg";
|
||||||
import polygonImage from "@/assets/polygon.svg";
|
import polygonImage from "@/assets/polygon.svg";
|
||||||
|
import rootstockImage from "@/assets/rootstock.svg";
|
||||||
|
|
||||||
// Store reference
|
// Store reference
|
||||||
const etherStore = useEtherStore();
|
const etherStore = useEtherStore();
|
||||||
@ -58,6 +59,7 @@ const getNetworkImage = (networkName: NetworkEnum): string => {
|
|||||||
let validImages = {
|
let validImages = {
|
||||||
Ethereum: ethereumImage,
|
Ethereum: ethereumImage,
|
||||||
Polygon: polygonImage,
|
Polygon: polygonImage,
|
||||||
|
Rootstock: rootstockImage,
|
||||||
Localhost: ethereumImage,
|
Localhost: ethereumImage,
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -233,6 +235,8 @@ onClickOutside(infoMenuRef, () => {
|
|||||||
<img
|
<img
|
||||||
alt="Choosed network image"
|
alt="Choosed network image"
|
||||||
:src="getNetworkImage(etherStore.networkName)"
|
:src="getNetworkImage(etherStore.networkName)"
|
||||||
|
height="24"
|
||||||
|
width="24"
|
||||||
/>
|
/>
|
||||||
<span
|
<span
|
||||||
class="default-text group-hover:text-gray-900 lg-view"
|
class="default-text group-hover:text-gray-900 lg-view"
|
||||||
@ -269,6 +273,23 @@ onClickOutside(infoMenuRef, () => {
|
|||||||
>
|
>
|
||||||
<div class="mt-2">
|
<div class="mt-2">
|
||||||
<div class="bg-white rounded-md z-10">
|
<div class="bg-white rounded-md z-10">
|
||||||
|
<div
|
||||||
|
class="menu-button gap-2 px-4 rounded-md cursor-pointer"
|
||||||
|
@click="networkChange(NetworkEnum.rootstock)"
|
||||||
|
>
|
||||||
|
<img
|
||||||
|
alt="Rootstock image"
|
||||||
|
width="20"
|
||||||
|
height="20"
|
||||||
|
src="@/assets/rootstock.svg"
|
||||||
|
/>
|
||||||
|
<span class="text-gray-900 py-4 text-end font-semibold text-sm">
|
||||||
|
Rootstock
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div class="w-full flex justify-center">
|
||||||
|
<hr class="w-4/5" />
|
||||||
|
</div>
|
||||||
<div
|
<div
|
||||||
class="menu-button gap-2 px-4 rounded-md cursor-pointer"
|
class="menu-button gap-2 px-4 rounded-md cursor-pointer"
|
||||||
@click="networkChange(NetworkEnum.ethereum)"
|
@click="networkChange(NetworkEnum.ethereum)"
|
||||||
@ -468,6 +489,23 @@ onClickOutside(infoMenuRef, () => {
|
|||||||
>
|
>
|
||||||
<div class="pl-4 mt-2 h-full">
|
<div class="pl-4 mt-2 h-full">
|
||||||
<div class="bg-white rounded-md z-10 h-full">
|
<div class="bg-white rounded-md z-10 h-full">
|
||||||
|
<div
|
||||||
|
class="menu-button gap-2 sm:px-4 rounded-md cursor-pointer py-2"
|
||||||
|
@click="networkChange(NetworkEnum.rootstock)"
|
||||||
|
>
|
||||||
|
<img
|
||||||
|
alt="Rootstock image"
|
||||||
|
width="20"
|
||||||
|
height="20"
|
||||||
|
src="@/assets/rootstock.svg"
|
||||||
|
/>
|
||||||
|
<span class="text-gray-900 py-4 text-end font-bold text-sm">
|
||||||
|
Rootstock
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div class="w-full flex justify-center pb-12">
|
||||||
|
<hr class="w-4/5" />
|
||||||
|
</div>
|
||||||
<div
|
<div
|
||||||
class="menu-button gap-2 sm:px-4 rounded-md cursor-pointer py-2"
|
class="menu-button gap-2 sm:px-4 rounded-md cursor-pointer py-2"
|
||||||
@click="networkChange(NetworkEnum.ethereum)"
|
@click="networkChange(NetworkEnum.ethereum)"
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
export enum NetworkEnum {
|
export enum NetworkEnum {
|
||||||
ethereum = "Ethereum",
|
ethereum = "Ethereum",
|
||||||
polygon = "Polygon",
|
polygon = "Polygon",
|
||||||
|
rootstock = "Rootstock",
|
||||||
}
|
}
|
||||||
|
@ -13,6 +13,8 @@ export const useEtherStore = defineStore("ether", {
|
|||||||
depositsValidListGoerli: [] as ValidDeposit[],
|
depositsValidListGoerli: [] as ValidDeposit[],
|
||||||
// Depósitos válidos para compra MUMBAI
|
// Depósitos válidos para compra MUMBAI
|
||||||
depositsValidListMumbai: [] as ValidDeposit[],
|
depositsValidListMumbai: [] as ValidDeposit[],
|
||||||
|
// Depósitos válidos para compra ROOTSTOCK
|
||||||
|
depositsValidListRootstock: [] as ValidDeposit[],
|
||||||
loadingWalletTransactions: false,
|
loadingWalletTransactions: false,
|
||||||
loadingNetworkLiquidity: false,
|
loadingNetworkLiquidity: false,
|
||||||
}),
|
}),
|
||||||
@ -38,6 +40,9 @@ export const useEtherStore = defineStore("ether", {
|
|||||||
setDepositsValidListMumbai(depositsValidList: ValidDeposit[]) {
|
setDepositsValidListMumbai(depositsValidList: ValidDeposit[]) {
|
||||||
this.depositsValidListMumbai = depositsValidList;
|
this.depositsValidListMumbai = depositsValidList;
|
||||||
},
|
},
|
||||||
|
setDepositsValidListRootstock(depositsValidList: ValidDeposit[]) {
|
||||||
|
this.depositsValidListRootstock = depositsValidList;
|
||||||
|
},
|
||||||
setLoadingWalletTransactions(isLoadingWalletTransactions: boolean) {
|
setLoadingWalletTransactions(isLoadingWalletTransactions: boolean) {
|
||||||
this.loadingWalletTransactions = isLoadingWalletTransactions;
|
this.loadingWalletTransactions = isLoadingWalletTransactions;
|
||||||
},
|
},
|
||||||
|
Loading…
x
Reference in New Issue
Block a user