diff --git a/src/constants/api.js b/src/constants/api.js index 527b4f7..5931f6b 100644 --- a/src/constants/api.js +++ b/src/constants/api.js @@ -4,6 +4,6 @@ const base_url = server_url + '/api/v1'; module.exports = { REGISTER: base_url + '/vendors/register', NFT: server_url + '/nft', - VENDORS: base_url + '/vendors/', + VENDORS: base_url + '/vendors', SERVER_URL: server_url }; diff --git a/src/modules/assets/index.js b/src/modules/assets/index.js index d87ee71..86a2a63 100644 --- a/src/modules/assets/index.js +++ b/src/modules/assets/index.js @@ -11,7 +11,7 @@ export default function Asset() { useEffect(() => { async function listNfts() { const nftList = await DataService.listNft(); - setNfts(nftList); + setNfts(nftList || []); } listNfts(); diff --git a/src/modules/setup/index.js b/src/modules/setup/index.js index a489f92..f3b687d 100644 --- a/src/modules/setup/index.js +++ b/src/modules/setup/index.js @@ -2,7 +2,7 @@ import React, { useState, useEffect, useCallback } from 'react'; import { Link, useHistory } from 'react-router-dom'; import { IoWalletOutline } from 'react-icons/io5'; import { FaGoogleDrive, FaKey } from 'react-icons/fa'; - +import PackageJson from '../../../package.json'; import PasscodeModal from '../global/SetPasscodeModal'; import DataService from '../../services/db'; @@ -124,6 +124,10 @@ export default function Main() { )} + +
+ Version: {PackageJson.version} +
); diff --git a/src/modules/syncDb/index.js b/src/modules/syncDb/index.js index 90adf8a..5e3d8b2 100644 --- a/src/modules/syncDb/index.js +++ b/src/modules/syncDb/index.js @@ -38,8 +38,9 @@ function SyncDb() { setLoadingMsg({ percent: 80, message: 'Syncing Profile details...' }); if (!wallet) return; const vendorProfile = await getVendorByWallet(wallet?.address); - const { name, phone, organization, address, email, photo, govt_id_image } = vendorProfile; - await DataService.saveProfile({ name, phone, organization, address, email }); + const { name, phone, address, email, photo, govt_id_image } = vendorProfile; + + await DataService.saveProfile({ name, phone, address, email }); photo && photo.length && (await DataService.saveProfileImage(photo[0])); govt_id_image && (await DataService.saveProfileIdCard(govt_id_image)); setLoadingMsg({ percent: 100, message: 'Succesfully synced...', showHome: true }); diff --git a/src/services/db.js b/src/services/db.js index ec17474..6a3097e 100644 --- a/src/services/db.js +++ b/src/services/db.js @@ -52,6 +52,7 @@ const DataService = { saveHasBackedUp(hasBackedUp) { return this.save('hasBackedUp', hasBackedUp); }, + async initAppData() { let network = await this.getNetwork(); let address = await this.getAddress(); @@ -70,10 +71,14 @@ const DataService = { setSynchronizing(val) { return this.save('synchronizing', val); }, + async clearAll() { await db.data.clear(); await db.assets.clear(); await db.documents.clear(); + await db.nfts.clear(); + await db.transactions.clear(); + await db.agencies.clear(); }, saveNetwork(network) { @@ -131,8 +136,8 @@ const DataService = { return db.agencies.get(address); }, - async updateAgency(key, data) { - return db.agencies.update(key, data); + async updateAgency(agencyAddress, data) { + return db.agencies.update(agencyAddress, data); }, listAgencies() { @@ -155,7 +160,25 @@ const DataService = { listTx(type) { if (!type) return db.transactions.orderBy('timestamp').reverse().toArray(); - return db.transactions.get({ type }).orderBy('timestamp').reverse(); + return db.transactions.where({ type: type }).reverse().sortBy('timestamp'); + + // return db.transactions.get({ type }).orderBy('timestamp').reverse(); + }, + + async addNft(nft) { + const { tokenId } = nft; + const storedNft = await this.getNft(tokenId); + if (!storedNft) return db.nfts.put({ ...nft, amount: nft.amount ? nft.amount : 1 }); + storedNft.amount++; + return db.nfts.put(storedNft); + }, + + getNft(id) { + return db.nfts.get(parseInt(id)); + }, + + listNft() { + return db.nfts?.toArray(); }, async saveDocuments(docs) { @@ -181,13 +204,18 @@ const DataService = { async getAssetBySymbol(symbol, network) { if (!network) return db.assets.get({ symbol }); - if (symbol.toUpperCase() === 'ETH') return db.assets.get({ symbol }); return db.assets.filter(a => a.symbol === symbol && a.network && a.network.name === network).first(); }, async addDefaultAsset(symbol, name) { let asset = await this.getAsset('default'); if (!asset) return db.assets.add({ address: 'default', symbol, name, decimal: 18, balance: 0 }); + asset = { + ...asset, + symbol, + name + }; + return this.updateAsset(asset.address, asset); }, async addMultiAssets(assets) { diff --git a/src/services/index.js b/src/services/index.js index f8206c6..9fb4f07 100644 --- a/src/services/index.js +++ b/src/services/index.js @@ -42,8 +42,8 @@ export const getDefautAgency = async () => { address: appData.agency.contracts.rahat, adminAddress: appData.agency.contracts.rahat_admin, network: appData.networkUrl, - erc20Address: appData.agency.contracts.rahat_erc20, - erc1155Address: appData.agency.contracts.rahat_erc1155, + tokenAddress: appData.agency.contracts.rahat_erc20, + nftAddress: appData.agency.contracts.rahat_erc1155, name: appData.agency.name, email: appData.agency.email, isApproved: false