diff --git a/src/components/ListingComponent.vue b/src/components/ListingComponent.vue
index c6d6ac6..5bfee8b 100644
--- a/src/components/ListingComponent.vue
+++ b/src/components/ListingComponent.vue
@@ -77,15 +77,16 @@ const emit = defineEmits(["cancelDeposit", "withdrawDeposit"]);
:key="item?.blockNumber"
>
- {{ formatEventsAmount(item?.args.amount) }} BRZ
+ {{ formatEventsAmount(item?.args ? item?.args.amount : item?.remaining) }} BRZ
- 20 out 2022
+
+ 20 out 2022
Cancelar

@@ -115,7 +116,7 @@ const emit = defineEmits(["cancelDeposit", "withdrawDeposit"]);
Retirar

diff --git a/src/utils/blockchain.ts b/src/utils/blockchain.ts
index 91a943e..c7919c2 100644
--- a/src/utils/blockchain.ts
+++ b/src/utils/blockchain.ts
@@ -93,6 +93,25 @@ const listDepositTransactionByWalletAddress = async (
});
};
+// get wallet's deposit transactions
+// const listValidDepositTransactionsByWalletAddress = async (
+// walletAddress: string
+// ): Promise
=> {
+// const provider = getProvider();
+// const etherStore = useEtherStore();
+// if (!provider) return [];
+
+// const signer = provider.getSigner();
+// const p2pContract = new ethers.Contract(addresses.p2pix, p2pix.abi, signer);
+
+// const filterDeposits = p2pContract.filters.DepositAdded([walletAddress]);
+// const eventsDeposits = await p2pContract.queryFilter(filterDeposits);
+
+// console.log()
+
+
+// };
+
// get wallet's lock transactions
const listLockTransactionByWalletAddress = async (
walletAddress: string
@@ -155,10 +174,10 @@ const updateValidDeposits = async () => {
remaining: formatBigNumber(mappedDeposit.remaining),
seller: mappedDeposit.seller,
pixKey: mappedDeposit.pixTarget,
- valid: mappedDeposit.valid,
};
- depositList.push(validDeposit);
+ if (mappedDeposit.valid)
+ depositList.push(validDeposit);
});
etherStore.setDepositsValidList(depositList);
@@ -275,7 +294,7 @@ const addDeposit = async (tokenQty: Number, pixKey: string) => {
await updateValidDeposits();
};
-// cancel a deposit by ots Id
+// cancel a deposit by its Id
const cancelDeposit = async (depositId: BigNumber): Promise => {
const provider = getProvider();
@@ -286,7 +305,21 @@ const cancelDeposit = async (depositId: BigNumber): Promise => {
await contract.cancelDeposit(depositId);
await updateWalletStatus();
- await updateDepositAddedEvents();
+ await updateValidDeposits();
+ return true;
+};
+
+// withdraw a deposit by its Id
+const withdrawDeposit = async (depositId: BigNumber): Promise => {
+ const provider = getProvider();
+
+ if (!provider) return false;
+
+ const signer = provider.getSigner();
+ const contract = new ethers.Contract(addresses.p2pix, p2pix.abi, signer);
+ await contract.withdraw(depositId, []);
+
+ await updateWalletStatus();
await updateValidDeposits();
return true;
};
@@ -409,6 +442,7 @@ export default {
listLockTransactionByWalletAddress,
addDeposit,
cancelDeposit,
+ withdrawDeposit,
mapDeposits,
formatBigNumber,
addLock,
diff --git a/src/views/ManageBidsView.vue b/src/views/ManageBidsView.vue
index 8d16bf5..d1dcb2b 100644
--- a/src/views/ManageBidsView.vue
+++ b/src/views/ManageBidsView.vue
@@ -7,46 +7,50 @@ import type { BigNumber } from "ethers";
import { ref } from "vue";
const etherStore = useEtherStore();
-const { walletAddress } = storeToRefs(etherStore);
+const { walletAddress, depositsValidList } = storeToRefs(etherStore);
const depositList = ref([]);
-if (walletAddress.value) {
- await blockchain
- .listDepositTransactionByWalletAddress(walletAddress.value)
- .then((value) => (depositList.value = value));
+const listValidDepositTransactionsByWalletAddress = (walletAddress: string, deposits: any[]) => {
+ depositList.value = deposits.filter((deposit) => deposit.seller === walletAddress)
}
const handleCancelDeposit = async (depositID: BigNumber) => {
- console.log(depositID);
const response = await blockchain.cancelDeposit(depositID);
if (response == true) console.log("Depósito cancelado com sucesso.");
};
-etherStore.$subscribe(async (mutation, state) => {
- if (mutation.events.key == "walletAddress") {
- if (state.walletAddress) {
- await blockchain
- .listDepositTransactionByWalletAddress(state.walletAddress)
- .then((value) => (depositList.value = value));
- }
- }
+const handleWithDrawDeposit = async (depositID: BigNumber) => {
+ const response = await blockchain.withdrawDeposit(depositID);
+ if (response == true) console.log("Token retirado com sucesso.");
+};
+
+if (walletAddress.value) {
+ listValidDepositTransactionsByWalletAddress(walletAddress.value, depositsValidList.value)
+}
+
+etherStore.$subscribe((_mutation, state) => {
+ if(state.walletAddress != "")
+ listValidDepositTransactionsByWalletAddress(state.walletAddress, state.depositsValidList)
});