UNPKG

vana-sdk

Version:

A TypeScript library for interacting with Vana Network smart contracts

30 lines 1.19 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getContractController = getContractController; const viem_1 = require("viem"); const abi_1 = require("../abi"); const addresses_1 = require("../config/addresses"); const client_1 = require("../core/client"); const chains_1 = require("../config/chains"); // Cache for contract instances const controllers = new Map(); /** * Gets a typed contract instance for the specified contract name * * @param contractName - Name of the contract to instantiate * @param client - Optional viem client instance * @returns A typed contract instance with methods corresponding to the contract's ABI */ function getContractController(contract, client = (0, client_1.createClient)()) { let controller = controllers.get(contract); if (!controller) { controller = (0, viem_1.getContract)({ address: (0, addresses_1.getContractAddress)(client.chain?.id ?? chains_1.vanaMainnet.id, contract), abi: (0, abi_1.getAbi)(contract), client, }); controllers.set(contract, controller); } return controller; } //# sourceMappingURL=contractController.js.map