From b75b0087d4658e006b5c71913407f362d26683b9 Mon Sep 17 00:00:00 2001
From: lza_menace
Date: Wed, 28 Dec 2022 02:11:30 -0800
Subject: [PATCH] setting up contract interactions
---
src/template/Sections.jsx | 36 ++++++++++++++++++++++++++++++------
1 file changed, 30 insertions(+), 6 deletions(-)
diff --git a/src/template/Sections.jsx b/src/template/Sections.jsx
index 16fa489..d990d20 100644
--- a/src/template/Sections.jsx
+++ b/src/template/Sections.jsx
@@ -1,5 +1,5 @@
import React, { useState } from 'react';
-import { ethers } from 'ethers';
+import { ethers, BigNumber } from 'ethers';
import { useAccount, useContractReads, usePrepareContractWrite, useContractWrite } from 'wagmi';
import Typewriter from 'react-ts-typewriter';
import Slider from 'rc-slider';
@@ -102,14 +102,38 @@ export function Section3() {
args: [address]
}
],
+ watch: true,
onSuccess(data) {
setBoomerPrice(data[0].toString());
setBombPrice(data[1].toString());
setBoomerBalance(data[2].toString());
setBombBalance(data[3].toString());
}
-
});
+ const radicalizeBoomersPrepare = usePrepareContractWrite({
+ address: contractAddress,
+ abi: MainABI,
+ enabled: isConnected,
+ functionName: 'radicalizeBoomers',
+ args: [boomerAmount],
+ overrides: {
+ from: address,
+ value: BigNumber.from((boomerPrice * boomerAmount).toString())
+ }
+ });
+ const radicalizeBoomersWrite = useContractWrite(radicalizeBoomersPrepare.config);
+ const assembleBombsPrepare = usePrepareContractWrite({
+ address: contractAddress,
+ abi: MainABI,
+ enabled: isConnected,
+ functionName: 'assembleBombs',
+ args: [bombAmount],
+ overrides: {
+ from: address,
+ value: BigNumber.from((bombPrice * bombAmount).toString())
+ }
+ });
+ const assembleBombsWrite = useContractWrite(assembleBombsPrepare.config);
return (
{isConnected &&
@@ -120,8 +144,8 @@ export function Section3() {
You have {boomerBalance} BOOMR
-
- mint {boomerAmount} ({ethers.utils.formatEther((boomerPrice * boomerAmount).toString())} Ξ)
+ radicalizeBoomersWrite.write?.()}>
+ {radicalizeBoomersWrite.isLoading && <>minting {boomerAmount}> || <>mint {boomerAmount} ({ethers.utils.formatEther((boomerPrice * boomerAmount).toString())} Ξ)>}
You have {bombBalance} BOMB
-
- mint {bombAmount} ({ethers.utils.formatEther((bombPrice * bombAmount).toString())} Ξ)
+ assembleBombsWrite.write?.()}>
+ {assembleBombsWrite.isLoading && <>minting {bombAmount}> || <>mint {bombAmount} ({ethers.utils.formatEther((bombPrice * bombAmount).toString())} Ξ)>}