UNPKG

vasku

Version:

TVM-Solidity contract development framework

106 lines (105 loc) 4.03 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.giverDeploy = exports.giverSend = exports.giverInfo = void 0; const createGlobal_1 = require("../../global/createGlobal"); const printContract_1 = require("./printContract"); const contract_1 = require("../../../contract"); const validate_1 = require("./validate"); const suffixes_1 = require("../../../utils/suffixes"); const DEPLOY_VALUE = 0.1; async function giverInfo(config, network) { const global = await (0, createGlobal_1.createGlobal)(config, network); try { await (0, printContract_1.printContract)(global.giver.contract); } catch (e) { await (0, printContract_1.printError)(e); } global.client.close(); } exports.giverInfo = giverInfo; async function giverSend(config, network, options) { const sendParameters = (0, validate_1.validate)(options); const global = await (0, createGlobal_1.createGlobal)(config, network); const giver = global.giver; const target = new contract_1.Contract({ address: options.to }, { client: global.client }); //////////////////////// // Check giver active // //////////////////////// const giverAccountType = await giver.contract.accountType(); if (giverAccountType !== contract_1.AccountType.active) { global.client.close(); await (0, printContract_1.printError)('Giver is not active'); await (0, printContract_1.printContract)(giver.contract); return; } ///////////////////////// // Check giver balance // ///////////////////////// const balance = await giver.contract.balance(); if (balance <= sendParameters.value) { global.client.close(); await (0, printContract_1.printError)('Not enough balance on giver'); await (0, printContract_1.printContract)(giver.contract); return; } ///////////// // Execute // ///////////// try { await (0, printContract_1.printContract)(giver.contract); await (0, printContract_1.printEmptyLine)(); await (0, printContract_1.printContract)(target); await (0, printContract_1.printMessage)('send'); await giver.send(sendParameters); await target.wait(); await (0, printContract_1.printContract)(giver.contract); await (0, printContract_1.printEmptyLine)(); await (0, printContract_1.printContract)(target); } catch (e) { await (0, printContract_1.printError)(e); } global.client.close(); } exports.giverSend = giverSend; async function giverDeploy(config, network) { const global = await (0, createGlobal_1.createGlobal)(config, network); const giver = global.giver; //////////////////////// // Check giver active // //////////////////////// const giverAccountType = await giver.contract.accountType(); if (giverAccountType === contract_1.AccountType.active) { global.client.close(); await (0, printContract_1.printError)('Giver is already deployed'); await (0, printContract_1.printContract)(giver.contract); return; } ///////////////////////// // Check giver balance // ///////////////////////// const balance = await giver.contract.balance(); if (balance <= BigInt(DEPLOY_VALUE * parseFloat(suffixes_1.B.toString()))) { global.client.close(); await (0, printContract_1.printError)(`Not enough balance to deploy. ${DEPLOY_VALUE} coins is required`); await (0, printContract_1.printContract)(giver.contract); return; } ///////////// // Execute // ///////////// try { await (0, printContract_1.printContract)(giver.contract); await (0, printContract_1.printMessage)('deploy'); await giver.deploy(DEPLOY_VALUE); await (0, printContract_1.printContract)(giver.contract); } catch (e) { await (0, printContract_1.printError)(e); } global.client.close(); } exports.giverDeploy = giverDeploy;