diff --git a/src/assets/rootstock.svg b/src/assets/rootstock.svg
new file mode 100644
index 0000000..bee9d1f
--- /dev/null
+++ b/src/assets/rootstock.svg
@@ -0,0 +1,24 @@
+
+
+
+
diff --git a/src/blockchain/addresses.ts b/src/blockchain/addresses.ts
index 661b267..556797a 100644
--- a/src/blockchain/addresses.ts
+++ b/src/blockchain/addresses.ts
@@ -7,6 +7,7 @@ const getTokenAddress = (network?: NetworkEnum): string => {
const possibleTokenAddresses: { [key: string]: string } = {
Ethereum: "0x4A2886EAEc931e04297ed336Cc55c4eb7C75BA00",
Polygon: "0xC86042E9F2977C62Da8c9dDF7F9c40fde4796A29",
+ Rootstock: "0xfE841c74250e57640390f46d914C88d22C51e82e",
};
return possibleTokenAddresses[network ? network : etherStore.networkName];
@@ -18,6 +19,7 @@ const getP2PixAddress = (network?: NetworkEnum): string => {
const possibleP2PixAddresses: { [key: string]: string } = {
Ethereum: "0x2414817FF64A114d91eCFA16a834d3fCf69103d4",
Polygon: "0x4A2886EAEc931e04297ed336Cc55c4eb7C75BA00",
+ Rootstock: "0x98ba35eb14b38D6Aa709338283af3e922476dE34",
};
return possibleP2PixAddresses[network ? network : etherStore.networkName];
@@ -29,6 +31,7 @@ const getProviderUrl = (): string => {
const possibleProvidersUrls: { [key: string]: string } = {
Ethereum: import.meta.env.VITE_GOERLI_API_URL,
Polygon: import.meta.env.VITE_MUMBAI_API_URL,
+ Rootstock: import.meta.env.VITE_RSK_API_URL,
};
return possibleProvidersUrls[etherStore.networkName];
@@ -39,12 +42,14 @@ const possibleChains: { [key: string]: NetworkEnum } = {
"5": NetworkEnum.ethereum,
"0x13881": NetworkEnum.polygon,
"80001": NetworkEnum.polygon,
+ "31": NetworkEnum.rootstock,
};
const network2Chain: { [key: string]: string } = {
Ethereum: "0x5",
Polygon: "0x13881",
Localhost: "0x7a69",
+ Rootstock: "0x1f",
};
const isPossibleNetwork = (networkChain: string): boolean => {
diff --git a/src/blockchain/events.ts b/src/blockchain/events.ts
index 18ae3be..03640de 100644
--- a/src/blockchain/events.ts
+++ b/src/blockchain/events.ts
@@ -21,6 +21,10 @@ const getNetworksLiquidity = async (): Promise => {
import.meta.env.VITE_MUMBAI_API_URL,
80001
); // mumbai provider
+ const rootstockProvider = new ethers.providers.JsonRpcProvider(
+ import.meta.env.VITE_RSK_API_URL,
+ 31
+ ); // rootstock provider
const p2pContractGoerli = new ethers.Contract(
getP2PixAddress(NetworkEnum.ethereum),
@@ -33,6 +37,12 @@ const getNetworksLiquidity = async (): Promise => {
mumbaiProvider
);
+ const p2pContractRootstock = new ethers.Contract(
+ getP2PixAddress(NetworkEnum.rootstock),
+ p2pix.abi,
+ rootstockProvider
+ );
+
etherStore.setLoadingNetworkLiquidity(true);
const depositListGoerli = await getValidDeposits(
getTokenAddress(NetworkEnum.ethereum),
@@ -45,7 +55,12 @@ const getNetworksLiquidity = async (): Promise => {
);
etherStore.setDepositsValidListGoerli(depositListGoerli);
+ const depositListRootstock = await getValidDeposits(
+ getTokenAddress(NetworkEnum.rootstock),
+ p2pContractRootstock
+ );
etherStore.setDepositsValidListMumbai(depositListMumbai);
+ etherStore.setDepositsValidListRootstock(depositListRootstock);
etherStore.setLoadingNetworkLiquidity(false);
};
diff --git a/src/components/SearchComponent.vue b/src/components/SearchComponent.vue
index 3983fd5..5077c6b 100644
--- a/src/components/SearchComponent.vue
+++ b/src/components/SearchComponent.vue
@@ -30,6 +30,7 @@ const hasLiquidity = ref(true);
const validDecimals = ref(true);
const selectedGoerliDeposit = ref();
const selectedMumbaiDeposit = ref();
+const selectedRootstockDeposit = ref();
// Emits
const emit = defineEmits(["tokenBuy"]);
@@ -70,6 +71,7 @@ const verifyLiquidity = (): void => {
enableConfirmButton.value = false;
selectedGoerliDeposit.value = undefined;
selectedMumbaiDeposit.value = undefined;
+ selectedRootstockDeposit.value = undefined;
if (tokenValue.value <= 0) {
enableWalletButton.value = false;
diff --git a/src/components/TopBar/TopBar.vue b/src/components/TopBar/TopBar.vue
index 03b96b5..a2cfcd7 100644
--- a/src/components/TopBar/TopBar.vue
+++ b/src/components/TopBar/TopBar.vue
@@ -7,6 +7,7 @@ import { NetworkEnum } from "@/model/NetworkEnum";
import { connectProvider, requestNetworkChange } from "@/blockchain/provider";
import ethereumImage from "@/assets/ethereum.svg";
import polygonImage from "@/assets/polygon.svg";
+import rootstockImage from "@/assets/rootstock.svg";
// Store reference
const etherStore = useEtherStore();
@@ -58,6 +59,7 @@ const getNetworkImage = (networkName: NetworkEnum): string => {
let validImages = {
Ethereum: ethereumImage,
Polygon: polygonImage,
+ Rootstock: rootstockImage,
Localhost: ethereumImage,
};
@@ -233,6 +235,8 @@ onClickOutside(infoMenuRef, () => {
{
>