@citizenwallet/sdk
Version:
An sdk to easily work with citizen wallet.
72 lines • 2.84 kB
JavaScript
;
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