UNPKG

@keccak256-evg/passport-sdk

Version:

T-REX Passport SDK for interacting with Passport and Registry contracts

63 lines 2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createViemPublicClient = createViemPublicClient; exports.createViemWalletClient = createViemWalletClient; exports.getPendingBindWalletsWithViem = getPendingBindWalletsWithViem; exports.createViemClientWithCustomChain = createViemClientWithCustomChain; const viem_1 = require("viem"); const abi_1 = require("../abi"); const chains_1 = require("../constants/chains"); /** * 创建 Public Client */ function createViemPublicClient(options) { const chain = options.chain || chains_1.tRexTestnet; return (0, viem_1.createPublicClient)({ chain, transport: (0, viem_1.http)(options.rpcUrl), }); } /** * 创建 Wallet Client */ function createViemWalletClient(options) { const chain = options.chain || chains_1.tRexTestnet; return (0, viem_1.createWalletClient)({ chain, transport: (0, viem_1.http)(options.rpcUrl), account: options.account, }); } /** * 使用 viem 调用 getPendingBindWallets 方法(需要 msg.sender 验证) */ async function getPendingBindWalletsWithViem(publicClient, passportAddress, account) { try { const result = await publicClient.readContract({ address: passportAddress, abi: abi_1.PASSPORT_ABI, functionName: 'getPendingBindWallets', account, }); return result; } catch (error) { console.error('Viem getPendingBindWallets error:', error); throw error; } } /** * 创建带有自定义链的 Public Client */ function createViemClientWithCustomChain(rpcUrl, chainConfig) { const defaultChain = chains_1.tRexTestnet; const customChain = chainConfig ? (0, viem_1.defineChain)({ ...defaultChain, ...chainConfig, }) : defaultChain; return (0, viem_1.createPublicClient)({ chain: customChain, transport: (0, viem_1.http)(rpcUrl), }); } //# sourceMappingURL=viem.js.map