UNPKG

@biconomy-devx/ethers-lib

Version:

Ethers library adapter to be used by Biconomy SDK

119 lines 6.53 kB
"use strict"; 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