UNPKG

@citizenwallet/sdk

Version:

An sdk to easily work with citizen wallet.

72 lines 2.84 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getTokenMetadata = exports.getTokenSymbol = exports.getTokenName = exports.getTokenDecimals = void 0; const ethers_1 = require("ethers"); const ERC20_abi_json_1 = __importDefault(require("../abi/ERC20.abi.json")); const getTokenDecimals = async (config, options) => { const { tokenAddress, rpcUrl } = options ?? {}; const rpc = new ethers_1.JsonRpcProvider(rpcUrl ?? config.primaryRPCUrl); const token = config.getToken(tokenAddress); const contract = new ethers_1.Contract(token.address, ERC20_abi_json_1.default, rpc); try { const decimals = await contract.getFunction("decimals")(); return decimals; } catch (error) { console.error("Error fetching token decimals:", error); return null; } }; exports.getTokenDecimals = getTokenDecimals; const getTokenName = async (config, options) => { const { tokenAddress, rpcUrl } = options ?? {}; const rpc = new ethers_1.JsonRpcProvider(rpcUrl ?? config.primaryRPCUrl); const token = config.getToken(tokenAddress); const contract = new ethers_1.Contract(token.address, ERC20_abi_json_1.default, rpc); try { const name = await contract.getFunction("name")(); return name; } catch (error) { console.error("Error fetching token name:", error); return null; } }; exports.getTokenName = getTokenName; const getTokenSymbol = async (config, options) => { const { tokenAddress, rpcUrl } = options ?? {}; const rpc = new ethers_1.JsonRpcProvider(rpcUrl ?? config.primaryRPCUrl); const token = config.getToken(tokenAddress); const contract = new ethers_1.Contract(token.address, ERC20_abi_json_1.default, rpc); try { const symbol = await contract.getFunction("symbol")(); return symbol; } catch (error) { console.error("Error fetching token symbol:", error); return null; } }; exports.getTokenSymbol = getTokenSymbol; const getTokenMetadata = async (config, options) => { const { tokenAddress, rpcUrl } = options ?? {}; try { const decimals = await (0, exports.getTokenDecimals)(config, { tokenAddress, rpcUrl }); const name = await (0, exports.getTokenName)(config, { tokenAddress, rpcUrl }); const symbol = await (0, exports.getTokenSymbol)(config, { tokenAddress, rpcUrl }); return { decimals, name, symbol, }; } catch (error) { console.error("Error fetching token metadata:", error); return null; } }; exports.getTokenMetadata = getTokenMetadata; //# sourceMappingURL=index.js.map