@biconomy-devx/ethers-lib
Version:
Ethers library adapter to be used by Biconomy SDK
119 lines • 6.53 kB
JavaScript
;
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
if (kind === "m") throw new TypeError("Private method is not writable");
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
};
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
};
var _EvmNetworkManager_ethers, _EvmNetworkManager_signer, _EvmNetworkManager_provider;
Object.defineProperty(exports, "__esModule", { value: true });
const bignumber_1 = require("@ethersproject/bignumber");
const safe_core_sdk_utils_1 = require("@gnosis.pm/safe-core-sdk-utils");
const contractInstancesEthers_1 = require("./contracts/contractInstancesEthers");
class EvmNetworkManager {
constructor({ ethers, signer, provider }) {
_EvmNetworkManager_ethers.set(this, void 0);
_EvmNetworkManager_signer.set(this, void 0);
_EvmNetworkManager_provider.set(this, void 0);
if (!ethers) {
throw new Error('ethers property missing from options');
}
if (!signer.provider) {
throw new Error('Signer must be connected to a provider');
}
__classPrivateFieldSet(this, _EvmNetworkManager_signer, signer, "f");
__classPrivateFieldSet(this, _EvmNetworkManager_provider, provider, "f");
__classPrivateFieldSet(this, _EvmNetworkManager_ethers, ethers, "f");
}
// Review
getProvider() {
return __classPrivateFieldGet(this, _EvmNetworkManager_provider, "f");
}
getSigner() {
return __classPrivateFieldGet(this, _EvmNetworkManager_signer, "f");
}
async getEip3770Address(fullAddress) {
const chainId = await this.getChainId();
return (0, safe_core_sdk_utils_1.validateEip3770Address)(fullAddress, chainId);
}
async getBalance(address) {
return bignumber_1.BigNumber.from(await __classPrivateFieldGet(this, _EvmNetworkManager_provider, "f").getBalance(address));
}
async getChainId() {
return (await __classPrivateFieldGet(this, _EvmNetworkManager_provider, "f").getNetwork()).chainId;
}
getSmartWalletContract(smartAccountVersion, address) {
if (!address) {
throw new Error('Invalid Smart Wallet contract address');
}
return (0, contractInstancesEthers_1.getSmartWalletContractInstance)(smartAccountVersion, address, __classPrivateFieldGet(this, _EvmNetworkManager_provider, "f"));
}
getMultiSendContract(smartAccountVersion, address) {
if (!address) {
throw new Error('Invalid Multi Send contract address');
}
return (0, contractInstancesEthers_1.getMultiSendContractInstance)(smartAccountVersion, address, __classPrivateFieldGet(this, _EvmNetworkManager_provider, "f"));
}
getMultiSendCallOnlyContract(smartAccountVersion, address) {
if (!address) {
throw new Error('Invalid Multi Send Call Only contract address');
}
return (0, contractInstancesEthers_1.getMultiSendCallOnlyContractInstance)(smartAccountVersion, address, __classPrivateFieldGet(this, _EvmNetworkManager_provider, "f"));
}
getSmartWalletFactoryContract(smartAccountVersion, address) {
if (!address) {
throw new Error('Invalid Wallet Factory contract address');
}
return (0, contractInstancesEthers_1.getSmartWalletFactoryContractInstance)(smartAccountVersion, address, __classPrivateFieldGet(this, _EvmNetworkManager_provider, "f"));
}
getFallbackGasTankContract(smartAccountVersion, address) {
if (!address) {
throw new Error('Invalid Fallback Gas Tank contract address');
}
return (0, contractInstancesEthers_1.getFallbackGasTankContractInstance)(smartAccountVersion, address, __classPrivateFieldGet(this, _EvmNetworkManager_provider, "f"));
}
getDefaultCallbackHandlerContract(smartAccountVersion, address) {
if (!address) {
throw new Error('Invalid Default Callback Handler contract address');
}
return (0, contractInstancesEthers_1.getDefaultCallbackHandlerInstance)(smartAccountVersion, address, __classPrivateFieldGet(this, _EvmNetworkManager_provider, "f"));
}
async getContractCode(address) {
return __classPrivateFieldGet(this, _EvmNetworkManager_provider, "f").getCode(address);
}
async isContractDeployed(address) {
let contractCode;
try {
contractCode = await __classPrivateFieldGet(this, _EvmNetworkManager_provider, "f").getCode(address);
return contractCode !== '0x';
}
catch (error) {
throw new Error('Unable to get Contract details');
}
}
async getTransaction(transactionHash) {
return __classPrivateFieldGet(this, _EvmNetworkManager_provider, "f").getTransaction(transactionHash);
}
async getSignerAddress() {
return __classPrivateFieldGet(this, _EvmNetworkManager_signer, "f").getAddress();
}
signMessage(message) {
const messageArray = __classPrivateFieldGet(this, _EvmNetworkManager_ethers, "f").utils.arrayify(message);
return __classPrivateFieldGet(this, _EvmNetworkManager_signer, "f").signMessage(messageArray);
}
// Review
async estimateGas(transaction) {
return (await __classPrivateFieldGet(this, _EvmNetworkManager_provider, "f").estimateGas(transaction)).toNumber();
}
call(transaction) {
return __classPrivateFieldGet(this, _EvmNetworkManager_provider, "f").call(transaction);
}
}
_EvmNetworkManager_ethers = new WeakMap(), _EvmNetworkManager_signer = new WeakMap(), _EvmNetworkManager_provider = new WeakMap();
exports.default = EvmNetworkManager;
//# sourceMappingURL=EvmNetworkManager.js.map