修正几个在钱包未安装的情况下, 可能引起无法获取数据的bug

This commit is contained in:
CounterFire2023 2024-06-27 13:35:08 +08:00
parent 87d8bc7a9c
commit bab12f4ba9
4 changed files with 22 additions and 39 deletions

View File

@ -7,3 +7,6 @@ VITE_ERC_ADDRESS='0xFd42bfb03212dA7e1A4608a44d7658641D99CF34'
VITE_CFNFT_ADDRESS='0xaa34B79A0Ab433eaC900fB3CB9f191F5Cd27501D' VITE_CFNFT_ADDRESS='0xaa34B79A0Ab433eaC900fB3CB9f191F5Cd27501D'
VITE_CLAIM_ADDRESS='0xf45702180314187a3549FEDac3B78349b47ca6A0' VITE_CLAIM_ADDRESS='0xf45702180314187a3549FEDac3B78349b47ca6A0'
VITE_CLAIMWL_ADDRESS='0xc43Efb17C24e4e027d3F2613DB858181abE2994e' VITE_CLAIMWL_ADDRESS='0xc43Efb17C24e4e027d3F2613DB858181abE2994e'
VITE_PASSPORT_PUBLISHABLE_KEY=pk_imapik-test-1E-detBXtG7U$5961WuL
VITE_PASSPORT_CLIENT_ID=gYQrjtct7CN4UVwDG2sb8yACfYRo3xQJ

View File

@ -53,16 +53,25 @@ export const queryMintStatus = async(user) => {
* feeToAddress: 0x1231231 // 接收代币的钱包地址, 前端不需要管 * feeToAddress: 0x1231231 // 接收代币的钱包地址, 前端不需要管
* } * }
*/ */
const fetchMintConfig = async() => { export const fetchMintConfig = async() => {
const data = '0xe7cc7244' const data = '0xe7cc7244'
return queryMintData(MINT_CONTRACT_ADDRESS, data) const res = await queryMintData(MINT_CONTRACT_ADDRESS, data)
let nums = res.slice(2).match(/.{64}/g)
const maxSupply = parseInt(nums[0], 16)
// remove all '0' of left side, and add '0x'
const currency = '0x' + nums[1].slice(-40)
const mintPrice = parseInt(nums[2], 16)
const feeToAddress = '0x' + nums[3].slice(-40)
const airdropCount = parseInt(nums[4], 16)
return {currency, mintPrice, maxSupply, feeToAddress, airdropCount}
} }
// 所有用户已mint的nft总数 // 所有用户已mint的nft总数
const fetchMintedCount = async()=> { export const fetchAllMintedCount = async()=> {
const data = '0x34eafb11' const data = '0x34eafb11'
return queryMintData(MINT_CONTRACT_ADDRESS, data) const res = await queryMintData(MINT_CONTRACT_ADDRESS, data)
return parseInt(res)
} }

View File

@ -4,7 +4,7 @@ import ERC_abi from './../abi/ImmutableERC20MinterBurnerPermit.json'
import CFNFT_abi from './../abi/CFNFTGame.json' import CFNFT_abi from './../abi/CFNFTGame.json'
import CLAIM_abi from './../abi/NFTClaimStage2.json' import CLAIM_abi from './../abi/NFTClaimStage2.json'
import CLAIMWL_abi from './../abi/NFTClaimStage2WL.json' import CLAIMWL_abi from './../abi/NFTClaimStage2WL.json'
import { queryMintStatus } from '../abi/mint.js' import { queryMintStatus, fetchMintConfig, fetchAllMintedCount } from '../abi/mint.js'
var abis = { var abis = {
"ERC": ERC_abi, "ERC": ERC_abi,
"CFNFT": CFNFT_abi, "CFNFT": CFNFT_abi,
@ -38,14 +38,6 @@ const requestChain = async (rpc, method, params) => {
} }
return fetch(rpc, options, DEFAULT_TIMEOUT).then(res => res.json()) return fetch(rpc, options, DEFAULT_TIMEOUT).then(res => res.json())
} }
const queryMintData = async (user, data) => {
const params = [{
from: user,
to: MINT_CONTRACT_ADDRESS,
data,
}, 'latest']
return requestChain(RPC, 'eth_call', params)
}
export async function linkWallet(val) { export async function linkWallet(val) {
@ -237,33 +229,13 @@ export const claimStage2Nft = async (name, myAddress, params, mintPrice, web3) =
// 查询已Mint NFT数量 // 查询已Mint NFT数量
export const balanceOfAmount = async (name, myAddress) => { export const balanceOfAmount = async (name, myAddress) => {
let web3 return fetchAllMintedCount()
if (name == 'ethereum') {
web3 = new Web3(window.ethereum);
} else if (name == 'okxwallet') {
web3 = new Web3(okxwallet)
} else if (name == 'connect') {
web3 = new Web3(provider)
}
let contract = new web3.eth.Contract(abis['CLAIMWL'].abi, claimWlAddress, { from: myAddress })
const tokenId = await contract.methods.totalCount(myAddress).call();
return parseInt(tokenId)
} }
// mint配置 // mint配置
export const mintConfig = async (name, myAddress) => { export const mintConfig = async (name, myAddress) => {
let web3 return fetchMintConfig()
if (name == 'ethereum') {
web3 = new Web3(window.ethereum);
} else if (name == 'okxwallet') {
web3 = new Web3(okxwallet)
} else if (name == 'connect') {
web3 = new Web3(provider)
}
let contract = new web3.eth.Contract(abis['CLAIMWL'].abi, claimWlAddress, { from: myAddress })
const mintArr = await contract.methods.mintConfig(myAddress).call();
return mintArr
} }
// 当前用户白单数量 // 当前用户白单数量

View File

@ -1,13 +1,12 @@
import { Web3 } from "web3"
import { config, passport } from '@imtbl/sdk'; import { config, passport } from '@imtbl/sdk';
console.log(import.meta.env.VITE_GPAL_ROUTER,'import.meta.env.VITE_GPAL_ROUTER') console.log(import.meta.env.VITE_GPAL_ROUTER,'import.meta.env.VITE_GPAL_ROUTER')
const passportInstance = new passport.Passport({ const passportInstance = new passport.Passport({
baseConfig: { baseConfig: {
environment: config.Environment.SANDBOX, // or Environment.PRODUCTION environment: config.Environment.SANDBOX, // or Environment.PRODUCTION
publishableKey: 'pk_imapik-test-1E-detBXtG7U$5961WuL', // replace with your publishable API key from Hub pk_imapik-tU10buLqoyLZ0o54rcub pk_imapik-test-1E-detBXtG7U$5961WuL publishableKey: import.meta.env.VITE_PASSPORT_PUBLISHABLE_KEY, // replace with your publishable API key from Hub pk_imapik-tU10buLqoyLZ0o54rcub pk_imapik-test-1E-detBXtG7U$5961WuL
// publishableKey: '', // replace with your publishable API key from Hub // publishableKey: '', // replace with your publishable API key from Hub
}, },
clientId: 'gYQrjtct7CN4UVwDG2sb8yACfYRo3xQJ', // replace with your client ID from Hub gYQrjtct7CN4UVwDG2sb8yACfYRo3xQJ tTB5eEedqDOHPHMI41sRDGmqAQwus9oE clientId: import.meta.env.VITE_PASSPORT_CLIENT_ID, // replace with your client ID from Hub gYQrjtct7CN4UVwDG2sb8yACfYRo3xQJ tTB5eEedqDOHPHMI41sRDGmqAQwus9oE
redirectUri: `${import.meta.env.VITE_GPAL_ROUTER}/redirect`, // replace with one of your redirect URIs from Hub redirectUri: `${import.meta.env.VITE_GPAL_ROUTER}/redirect`, // replace with one of your redirect URIs from Hub
logoutRedirectUri: `${import.meta.env.VITE_GPAL_ROUTER}`, // replace with one of your logout URIs from Hub logoutRedirectUri: `${import.meta.env.VITE_GPAL_ROUTER}`, // replace with one of your logout URIs from Hub
logoutMode: 'silent', logoutMode: 'silent',