UNPKG

@asset-projects/ethers-wrapper

Version:
230 lines (229 loc) 8.7 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getERC20TransferEstimateGas = exports.erc20CallStaticTransfer = exports.getERC20Allowance = exports.erc20Approve = exports.erc20Transfer = exports.getERC20Balance = exports.getERC20TokenData = exports.getERC20TotalSupply = exports.getERC20Decimals = exports.getERC20Symbol = exports.getERC20Name = void 0; const ethers_1 = require("ethers"); const helpers_1 = require("../../helpers"); const getERC20Contract = (provider, contractAddress) => { return new ethers_1.ethers.Contract(contractAddress, helpers_1.ERC20_ABI, provider); }; const getERC20ContractSigner = (signer, contractAddress) => { return new ethers_1.ethers.Contract(contractAddress, helpers_1.ERC20_ABI, signer); }; /** * @param provider Provider; * @param contractAddress string; 0x299533fC... * @returns Promise<string | undefined>; */ const getERC20Name = (provider, contractAddress) => __awaiter(void 0, void 0, void 0, function* () { const contract = getERC20Contract(provider, contractAddress); try { return (yield contract.name()); } catch (e) { console.log(e); return; } }); exports.getERC20Name = getERC20Name; /** * @param provider Provider; * @param contractAddress string; 0x299533fC... * @returns Promise<string | undefined>; */ const getERC20Symbol = (provider, contractAddress) => __awaiter(void 0, void 0, void 0, function* () { const contract = getERC20Contract(provider, contractAddress); try { return (yield contract.symbol()); } catch (e) { console.log(e); return; } }); exports.getERC20Symbol = getERC20Symbol; /** * @param provider Provider; * @param contractAddress string; 0x299533fC... * @returns Promise<number | undefined>; */ const getERC20Decimals = (provider, contractAddress) => __awaiter(void 0, void 0, void 0, function* () { const contract = getERC20Contract(provider, contractAddress); try { return (yield contract.decimals()); } catch (e) { console.log(e); return; } }); exports.getERC20Decimals = getERC20Decimals; /** * @param provider Provider; * @param contractAddress string; 0x299533fC... * @returns Promise<ethers.BigNumber | undefined>; */ const getERC20TotalSupply = (provider, contractAddress) => __awaiter(void 0, void 0, void 0, function* () { const contract = getERC20Contract(provider, contractAddress); try { return (yield contract.totalSupply()); } catch (e) { console.log(e); return; } }); exports.getERC20TotalSupply = getERC20TotalSupply; /** * @param provider Provider; * @param contractAddress string; 0x299533fC... * @returns Promise<[string | undefined, string | undefined, number | undefined, ethers.BigNumber | undefined]>; */ const getERC20TokenData = (provider, contractAddress) => __awaiter(void 0, void 0, void 0, function* () { return yield Promise.all([ (() => __awaiter(void 0, void 0, void 0, function* () { return yield (0, exports.getERC20Name)(provider, contractAddress); }))(), (() => __awaiter(void 0, void 0, void 0, function* () { return yield (0, exports.getERC20Symbol)(provider, contractAddress); }))(), (() => __awaiter(void 0, void 0, void 0, function* () { return yield (0, exports.getERC20Decimals)(provider, contractAddress); }))(), (() => __awaiter(void 0, void 0, void 0, function* () { return yield (0, exports.getERC20TotalSupply)(provider, contractAddress); }))(), ]); }); exports.getERC20TokenData = getERC20TokenData; /** * @param provider Provider; * @param contractAddress string; 0x299533fC... * @param targetAddress string; 0xb3A566Ff63c... * @returns Promise<ethers.BigNumber | undefined>; */ const getERC20Balance = (provider, contractAddress, targetAddress) => __awaiter(void 0, void 0, void 0, function* () { const contract = getERC20Contract(provider, contractAddress); try { return (yield contract.balanceOf(targetAddress)); } catch (e) { console.log(e); return; } }); exports.getERC20Balance = getERC20Balance; /** * @param signer ethers.Signer; * @param contractAddress string; 0x299533fC... * @param to string; 0xb3A566Ff63c... * @param amount ethers.utils.BigNumber; ethers.utils.parseEther('0.1', 18) * @param overrides overrides: { gasLimit, maxFeePerGas, maxPriorityFeePerGas } | undefined; * @returns Promise<ethers.providers.TransactionResponse | undefined>; */ const erc20Transfer = (signer, contractAddress, to, amount, overrides) => __awaiter(void 0, void 0, void 0, function* () { const contract = getERC20ContractSigner(signer, contractAddress); const args = [to, amount]; if (overrides) args.push(overrides); try { const tx = yield contract.transfer(...args); return tx; } catch (e) { console.error(e); return; } }); exports.erc20Transfer = erc20Transfer; /** * @param signer ethers.Signer; * @param contractAddress string; 0x299533fC... * @param spender string; 0xb3A566Ff63c... * @param amount BigNumber; ethers.utils.parseEther('0.1', 18) * @param overrides overrides: { gasLimit, maxFeePerGas, maxPriorityFeePerGas } | undefined; * @returns Promise<ethers.providers.TransactionResponse | undefined>; */ const erc20Approve = (signer, contractAddress, spender, amount, overrides) => __awaiter(void 0, void 0, void 0, function* () { const contract = getERC20ContractSigner(signer, contractAddress); const args = [spender, amount]; if (overrides) args.push(overrides); try { const tx = yield contract.approve(...args); return tx; } catch (e) { console.error(e); return; } }); exports.erc20Approve = erc20Approve; /** * @param provider Provider; * @param contractAddress string; 0x299533fC... * @param owner string; 0xb3A566Ff63c... * @param spender string; 0xb3A566Ff63c... * @returns Promise<ethers.BigNumber | undefined>; */ const getERC20Allowance = (provider, contractAddress, owner, spender) => __awaiter(void 0, void 0, void 0, function* () { const contract = getERC20Contract(provider, contractAddress); try { return (yield contract.allowance(owner, spender)); } catch (e) { console.error(e); return; } }); exports.getERC20Allowance = getERC20Allowance; /** * @param signer ethers.Signer; * @param contractAddress string; 0x299533fC... * @param to string; 0xb3A566Ff63c... * @param amount ethers.utils.BigNumber; ethers.utils.parseEther('0.1', 18) * @param overrides overrides: { gasLimit, maxFeePerGas, maxPriorityFeePerGas } | undefined; * @returns Promise<boolean>; */ const erc20CallStaticTransfer = (signer, contractAddress, to, amount, overrides) => __awaiter(void 0, void 0, void 0, function* () { const contract = getERC20ContractSigner(signer, contractAddress); const args = [to, amount]; if (overrides) args.push(overrides); try { yield contract.callStatic.transfer(...args); return true; } catch (e) { console.log(e); return false; } }); exports.erc20CallStaticTransfer = erc20CallStaticTransfer; /** * @param signer ethers.Signer; * @param contractAddress string; 0x299533fC... * @param to string; 0xb3A566Ff63c... * @param amount ethers.utils.BigNumber; ethers.utils.parseEther('0.1', 18) * @returns Promise<ethers.BigNumber | undefined>; */ const getERC20TransferEstimateGas = (signer, contractAddress, to, amount) => __awaiter(void 0, void 0, void 0, function* () { const contract = getERC20ContractSigner(signer, contractAddress); try { const result = yield contract.estimateGas.transfer(to, amount); return result; } catch (e) { console.error(e); return; } }); exports.getERC20TransferEstimateGas = getERC20TransferEstimateGas;