UNPKG

@ar.io/sdk

Version:

[![codecov](https://codecov.io/gh/ar-io/ar-io-sdk/graph/badge.svg?token=7dXKcT7dJy)](https://codecov.io/gh/ar-io/ar-io-sdk)

160 lines (159 loc) 7.73 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.transferCLICommand = transferCLICommand; exports.vaultedTransferCLICommand = vaultedTransferCLICommand; exports.revokeVaultCLICommand = revokeVaultCLICommand; exports.createVaultCLICommand = createVaultCLICommand; exports.extendVaultCLICommand = extendVaultCLICommand; exports.increaseVaultCLICommand = increaseVaultCLICommand; const token_js_1 = require("../../types/token.js"); const utils_js_1 = require("../utils.js"); async function transferCLICommand(options) { const { target, arioQuantity } = (0, utils_js_1.requiredTargetAndQuantityFromOptions)(options); const { ario, signerAddress } = (0, utils_js_1.writeARIOFromOptions)(options); if (!options.skipConfirmation) { await (0, utils_js_1.assertEnoughMARIOBalance)({ ario, address: signerAddress, mARIOQuantity: arioQuantity.toMARIO(), }); const confirm = await (0, utils_js_1.confirmationPrompt)(`Are you sure you want to transfer ${(0, utils_js_1.formatARIOWithCommas)(arioQuantity)} ARIO to ${target}?`); if (!confirm) { return { message: 'Transfer aborted by user' }; } } const result = await ario.transfer({ target, qty: arioQuantity.toMARIO().valueOf(), }, (0, utils_js_1.customTagsFromOptions)(options)); const output = { senderAddress: signerAddress, transferResult: result, message: `Successfully transferred ${(0, utils_js_1.formatARIOWithCommas)(arioQuantity)} ARIO to ${target}`, }; return output; } async function vaultedTransferCLICommand(o) { const mARIOQuantity = (0, utils_js_1.requiredMARIOFromOptions)(o, 'quantity'); const recipient = (0, utils_js_1.requiredStringFromOptions)(o, 'recipient'); const { ario, signerAddress } = (0, utils_js_1.writeARIOFromOptions)(o); const lockLengthMs = (0, utils_js_1.requiredPositiveIntegerFromOptions)(o, 'lockLengthMs'); (0, utils_js_1.assertLockLengthInRange)(lockLengthMs); if (!o.skipConfirmation) { await (0, utils_js_1.assertEnoughMARIOBalance)({ ario, address: signerAddress, mARIOQuantity, }); const confirm = await (0, utils_js_1.confirmationPrompt)(`Are you sure you want transfer ${(0, utils_js_1.formatMARIOToARIOWithCommas)(mARIOQuantity)} ARIO to ${recipient}, locked in a ${o.revokable ? '' : 'non-'}revokable vault for ${lockLengthMs}ms?`); if (!confirm) { return { message: 'Transfer aborted by user' }; } } const result = await ario.vaultedTransfer({ recipient, quantity: mARIOQuantity, lockLengthMs, revokable: o.revokable, }, (0, utils_js_1.customTagsFromOptions)(o)); const output = { senderAddress: signerAddress, transferResult: result, message: `Successfully vaulted transferred ${(0, utils_js_1.formatMARIOToARIOWithCommas)(mARIOQuantity)} ARIO to ${recipient}`, }; return output; } async function revokeVaultCLICommand(o) { const { ario, signerAddress } = (0, utils_js_1.writeARIOFromOptions)(o); const vaultId = (0, utils_js_1.requiredStringFromOptions)(o, 'vaultId'); const recipient = (0, utils_js_1.requiredStringFromOptions)(o, 'recipient'); if (!o.skipConfirmation) { const vault = await ario.getVault({ vaultId, address: recipient }); const confirm = await (0, utils_js_1.confirmationPrompt)(`Are you sure you want to revoke vault with id ${vaultId} from ${recipient} with balance ${(0, utils_js_1.formatARIOWithCommas)(new token_js_1.mARIOToken(vault.balance).toARIO())} ARIO?`); if (!confirm) { return { message: 'Revoke aborted by user' }; } } const result = await ario.revokeVault({ vaultId, recipient, }, (0, utils_js_1.customTagsFromOptions)(o)); const output = { senderAddress: signerAddress, transferResult: result, message: `Successfully revoked vault with id ${vaultId}`, }; return output; } async function createVaultCLICommand(o) { const mARIOQuantity = (0, utils_js_1.requiredMARIOFromOptions)(o, 'quantity'); const { ario, signerAddress } = (0, utils_js_1.writeARIOFromOptions)(o); const lockLengthMs = (0, utils_js_1.requiredPositiveIntegerFromOptions)(o, 'lockLengthMs'); (0, utils_js_1.assertLockLengthInRange)(lockLengthMs); if (!o.skipConfirmation) { await (0, utils_js_1.assertEnoughMARIOBalance)({ ario, address: signerAddress, mARIOQuantity, }); const confirm = await (0, utils_js_1.confirmationPrompt)(`Are you sure you want to create a vault with ${(0, utils_js_1.formatMARIOToARIOWithCommas)(mARIOQuantity)} ARIO, locked for ${lockLengthMs}ms?`); if (!confirm) { return { message: 'Vault creation aborted by user' }; } } const result = await ario.createVault({ quantity: mARIOQuantity, lockLengthMs, }, (0, utils_js_1.customTagsFromOptions)(o)); const output = { senderAddress: signerAddress, transferResult: result, message: `Successfully created vault with ${(0, utils_js_1.formatMARIOToARIOWithCommas)(mARIOQuantity)} ARIO`, }; return output; } async function extendVaultCLICommand(o) { const { ario, signerAddress } = (0, utils_js_1.writeARIOFromOptions)(o); const vaultId = (0, utils_js_1.requiredStringFromOptions)(o, 'vaultId'); const extendLengthMs = (0, utils_js_1.requiredPositiveIntegerFromOptions)(o, 'extendLengthMs'); (0, utils_js_1.assertLockLengthInRange)(extendLengthMs, false); if (!o.skipConfirmation) { const vault = await ario.getVault({ vaultId, address: signerAddress }); const confirm = await (0, utils_js_1.confirmationPrompt)(`Are you sure you want to extend vault with id ${vaultId} for ${extendLengthMs}ms with balance ${(0, utils_js_1.formatARIOWithCommas)(new token_js_1.mARIOToken(vault.balance).toARIO())} ARIO?`); if (!confirm) { return { message: 'Vault extension aborted by user' }; } } const result = await ario.extendVault({ vaultId, extendLengthMs, }, (0, utils_js_1.customTagsFromOptions)(o)); const output = { senderAddress: signerAddress, transferResult: result, message: `Successfully extended vault with id ${vaultId}`, }; return output; } async function increaseVaultCLICommand(o) { const mARIOQuantity = (0, utils_js_1.requiredMARIOFromOptions)(o, 'quantity'); const { ario, signerAddress } = (0, utils_js_1.writeARIOFromOptions)(o); const vaultId = (0, utils_js_1.requiredStringFromOptions)(o, 'vaultId'); if (!o.skipConfirmation) { const vault = await ario.getVault({ vaultId, address: signerAddress }); const confirm = await (0, utils_js_1.confirmationPrompt)(`Are you sure you want to increase vault with id ${vaultId} by ${(0, utils_js_1.formatMARIOToARIOWithCommas)(mARIOQuantity)} ARIO with balance ${(0, utils_js_1.formatARIOWithCommas)(new token_js_1.mARIOToken(vault.balance).toARIO())} ARIO?`); if (!confirm) { return { message: 'Vault increase aborted by user' }; } } const result = await ario.increaseVault({ vaultId, quantity: mARIOQuantity, }, (0, utils_js_1.customTagsFromOptions)(o)); const output = { senderAddress: signerAddress, transferResult: result, message: `Successfully increased vault with id ${vaultId} by ${(0, utils_js_1.formatMARIOToARIOWithCommas)(mARIOQuantity)} ARIO`, }; return output; }