UNPKG

@hashlike-official/extend-web3-react-wrapper

Version:

web3-react wrapper - it offers a common interface for different wallet providers

72 lines (71 loc) 3.45 kB
"use strict"; /* eslint-disable @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-explicit-any, */ 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.parseUnits = exports.formatUnits = exports.parseEther = exports.formatEther = exports.MetamaskLibrary = void 0; const units_1 = require("@ethersproject/units"); Object.defineProperty(exports, "formatEther", { enumerable: true, get: function () { return units_1.formatEther; } }); Object.defineProperty(exports, "parseEther", { enumerable: true, get: function () { return units_1.parseEther; } }); Object.defineProperty(exports, "formatUnits", { enumerable: true, get: function () { return units_1.formatUnits; } }); Object.defineProperty(exports, "parseUnits", { enumerable: true, get: function () { return units_1.parseUnits; } }); const contracts_1 = require("@ethersproject/contracts"); const WalletLibrary_1 = require("../types/WalletLibrary"); const contract_1 = require("../contract"); class MetamaskLibrary extends WalletLibrary_1.WalletLibrary { getBalanceOf(address) { return __awaiter(this, void 0, void 0, function* () { const balance = yield this.provider.getBalance(address); return (0, units_1.formatEther)(balance); }); } getBlockNumber() { return __awaiter(this, void 0, void 0, function* () { const blockNumber = yield this.provider.getBlockNumber(); return blockNumber; }); } transfer(from, to, value) { return __awaiter(this, void 0, void 0, function* () { const signer = this.provider.getSigner(from); const gasPrice = yield this.provider.getGasPrice(); const estimatedGas = yield this.provider.estimateGas({ to, value: (0, units_1.parseEther)(String(value)), gasPrice, }); const response = yield signer.sendTransaction({ to, value: (0, units_1.parseEther)(String(value)), gasPrice, gasLimit: estimatedGas, }); const receipt = yield response.wait(); if (receipt.status && receipt.status === 0) { return false; } return true; }); } contract(jsonInterface, address, account) { let signer; if (account) { signer = this.provider.getSigner(account); } const originContract = new contracts_1.Contract(address, jsonInterface, signer ? signer : this.provider); return new contract_1.MetamaskContract(originContract); } } exports.MetamaskLibrary = MetamaskLibrary;