@ar.io/sdk
Version:
[](https://codecov.io/gh/ar-io/ar-io-sdk)
160 lines (159 loc) • 7.73 kB
JavaScript
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;
}
;