UNPKG

@devasher/kuru-sdk

Version:

Ethers v6 SDK to interact with Kuru (forked from @kuru-labs/kuru-sdk)

71 lines 3.18 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.MonadDeployer = void 0; // ============ External Imports ============ const ethers_1 = require("ethers"); const utils_1 = require("../utils"); // ============ Config Imports ============ const MonadDeployer_json_1 = __importDefault(require("../../abi/MonadDeployer.json")); const txConfig_1 = __importDefault(require("../utils/txConfig")); class MonadDeployer { static async constructDeployTokenAndMarketTransaction(signer, deployerAddress, tokenParams, marketParams, txOptions) { const address = await signer.getAddress(); const deployer = new ethers_1.ethers.Contract(deployerAddress, MonadDeployer_json_1.default.abi, signer); // Get the kuruCollectiveFee const kuruCollectiveFee = await deployer.kuruCollectiveFee(); const deployerInterface = new ethers_1.ethers.Interface(MonadDeployer_json_1.default.abi); const data = deployerInterface.encodeFunctionData('deployTokenAndMarket', [tokenParams, marketParams]); return (0, txConfig_1.default)({ from: address, to: deployerAddress, data, value: marketParams.nativeTokenAmount + kuruCollectiveFee, signer, txOptions, }); } async deployTokenAndMarket(signer, deployerAddress, tokenParams, marketParams, txOptions) { const deployer = new ethers_1.ethers.Contract(deployerAddress, MonadDeployer_json_1.default.abi, signer); try { const tx = await MonadDeployer.constructDeployTokenAndMarketTransaction(signer, deployerAddress, tokenParams, marketParams, txOptions); const transaction = await signer.sendTransaction(tx); const receipt = await transaction.wait(1); if (!receipt) { throw new Error('Transaction receipt is null'); } const pumpingTimeLog = receipt.logs.find((log) => { try { const parsedLog = deployer.interface.parseLog(log); return parsedLog && parsedLog.name === 'PumpingTime'; } catch (_a) { return false; } }); if (!pumpingTimeLog) { throw new Error('PumpingTime event not found in transaction receipt'); } const parsedLog = deployer.interface.parseLog(pumpingTimeLog); if (!parsedLog) { throw new Error('Failed to parse PumpingTime event log'); } return { tokenAddress: parsedLog.args.token, marketAddress: parsedLog.args.market, hash: receipt.hash, }; } catch (e) { console.log({ e }); if (!e.error) { throw e; } throw (0, utils_1.extractErrorMessage)(e); } } } exports.MonadDeployer = MonadDeployer; //# sourceMappingURL=monadDeployer.js.map