UNPKG

locklift

Version:

Node JS framework for working with Ever contracts. Inspired by Truffle and Hardhat. Helps you to build, test, run and maintain your smart contracts.

57 lines (56 loc) 2.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Network = void 0; const everscale_inpage_provider_1 = require("everscale-inpage-provider"); const nodejs_1 = require("everscale-standalone-client/nodejs"); const boc_1 = require("./lockliftWallet/boc"); const constants_1 = require("../../constants"); class Network { signer; accountStorage; provider; proxyNetwork = {}; snapshots; clearBlockchainState; constructor(proxyNetwork, signer, accountStorage, provider) { this.signer = signer; this.accountStorage = accountStorage; this.provider = provider; this.proxyNetwork = proxyNetwork; this.snapshots = { saveSnapshot: proxyNetwork.saveSnapshot.bind(proxyNetwork), loadSnapshot: proxyNetwork.loadSnapshot.bind(proxyNetwork), clearSnapshots: proxyNetwork.clearSnapshots.bind(proxyNetwork), }; this.clearBlockchainState = this.proxyNetwork.resetBlockchainState.bind(proxyNetwork); } insertWallet = (address) => { this.proxyNetwork.setAccount(address, boc_1.LOCKLIFT_WALLET_BOC, "accountStuffBoc"); const lockliftWallet = new nodejs_1.MsigAccount({ address, type: "SafeMultisig", publicKey: this.signer.publicKey, }); this.accountStorage.addAccount(lockliftWallet); return lockliftWallet; }; insertAccount = ({ boc, address, abi, type, }) => { this.proxyNetwork.setAccount(address, boc, type || "accountStuffBoc"); return new this.provider.Contract(abi, address); }; getWallet = (id) => { const address = getLockliftWalletAddress(id.toString()); return this.insertWallet(new everscale_inpage_provider_1.Address(address)); }; getWallets = (count) => { return Array.from({ length: count }, (_, i) => { return this.getWallet(i); }); }; getBlockchainConfig = () => this.proxyNetwork.getBlockchainConfig(); } exports.Network = Network; const getLockliftWalletAddress = (id = "0") => { const [, addressTail] = constants_1.zeroAddress.toString().split(":"); return `${0}:777${addressTail}`.slice(0, constants_1.zeroAddress.toString().length - id.length).concat(id); };