@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
JavaScript
;
/* 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;