diff --git a/.env.development b/.env.development index ebf25cc..21db239 100644 --- a/.env.development +++ b/.env.development @@ -6,4 +6,7 @@ VITE_TOKENID_ID='0x34a1' VITE_ERC_ADDRESS='0xFd42bfb03212dA7e1A4608a44d7658641D99CF34' VITE_CFNFT_ADDRESS='0xaa34B79A0Ab433eaC900fB3CB9f191F5Cd27501D' VITE_CLAIM_ADDRESS='0xf45702180314187a3549FEDac3B78349b47ca6A0' -VITE_CLAIMWL_ADDRESS='0xc43Efb17C24e4e027d3F2613DB858181abE2994e' \ No newline at end of file +VITE_CLAIMWL_ADDRESS='0xc43Efb17C24e4e027d3F2613DB858181abE2994e' + +VITE_PASSPORT_PUBLISHABLE_KEY=pk_imapik-test-1E-detBXtG7U$5961WuL +VITE_PASSPORT_CLIENT_ID=gYQrjtct7CN4UVwDG2sb8yACfYRo3xQJ \ No newline at end of file diff --git a/src/abi/mint.js b/src/abi/mint.js index edc18aa..909b7c9 100644 --- a/src/abi/mint.js +++ b/src/abi/mint.js @@ -53,16 +53,25 @@ export const queryMintStatus = async(user) => { * feeToAddress: 0x1231231 // 接收代币的钱包地址, 前端不需要管 * } */ -const fetchMintConfig = async() => { +export const fetchMintConfig = async() => { 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总数 -const fetchMintedCount = async()=> { +export const fetchAllMintedCount = async()=> { const data = '0x34eafb11' - return queryMintData(MINT_CONTRACT_ADDRESS, data) + const res = await queryMintData(MINT_CONTRACT_ADDRESS, data) + return parseInt(res) } diff --git a/src/wallet/index.js b/src/wallet/index.js index 8e3a776..d342bf0 100644 --- a/src/wallet/index.js +++ b/src/wallet/index.js @@ -4,7 +4,7 @@ import ERC_abi from './../abi/ImmutableERC20MinterBurnerPermit.json' import CFNFT_abi from './../abi/CFNFTGame.json' import CLAIM_abi from './../abi/NFTClaimStage2.json' import CLAIMWL_abi from './../abi/NFTClaimStage2WL.json' -import { queryMintStatus } from '../abi/mint.js' +import { queryMintStatus, fetchMintConfig, fetchAllMintedCount } from '../abi/mint.js' var abis = { "ERC": ERC_abi, "CFNFT": CFNFT_abi, @@ -38,14 +38,6 @@ const requestChain = async (rpc, method, params) => { } 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) { @@ -237,33 +229,13 @@ export const claimStage2Nft = async (name, myAddress, params, mintPrice, web3) = // 查询已Mint NFT数量 export const balanceOfAmount = async (name, myAddress) => { - let web3 - 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) + return fetchAllMintedCount() } // mint配置 export const mintConfig = async (name, myAddress) => { - let web3 - 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 + return fetchMintConfig() } // 当前用户白单数量 diff --git a/src/wallet/initPassport.js b/src/wallet/initPassport.js index 31f76ba..11a182c 100644 --- a/src/wallet/initPassport.js +++ b/src/wallet/initPassport.js @@ -1,13 +1,12 @@ -import { Web3 } from "web3" import { config, passport } from '@imtbl/sdk'; console.log(import.meta.env.VITE_GPAL_ROUTER,'import.meta.env.VITE_GPAL_ROUTER') const passportInstance = new passport.Passport({ baseConfig: { 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 }, - 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 logoutRedirectUri: `${import.meta.env.VITE_GPAL_ROUTER}`, // replace with one of your logout URIs from Hub logoutMode: 'silent',