chedder
Version:
148 lines (141 loc) • 5.21 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.CommandsAPI = exports.nickname = void 0;
const fs = __importStar(require("fs"));
const util = __importStar(require("util"));
const chedder_js_1 = require("./contracts/chedder.js");
const near_rpc_js_1 = require("./near-api/near-rpc.js");
const conversion_js_1 = require("./util/conversion.js");
// name of this script
exports.nickname = "chedder";
// one function for each pub fn in the contract
// get parameters by consuming from CommandLineParser
class CommandsAPI {
mint_HELP() {
return `
Mints more tokens in the owner account
usage:
> chedder mint amount
`;
}
;
async mint(a) {
//--these are some examples on how to consume arguments
//const toAccount = a.consumeString("to Account")
//const argumentJson = a.consumeJSON("{ account:userAccount, amount:xxN }")
//get fn arguments as JSON
const amount = a.consumeAmount("amount", 'Y'); // get amount converted to Yoctos
a.noMoreArgs(); // no more positional args should remain
await chedder_js_1.chedder.mint(amount);
console.log("minted " + conversion_js_1.yton(amount));
}
get_owner_HELP() {
return `
Returns account ID of the token owner.
usage:
> chedder get_owner
`;
}
;
async get_owner(a) {
a.noMoreArgs(); // no more positional args should remain
let owner = await chedder_js_1.chedder.get_owner_id();
console.log(owner);
}
transfer_HELP() {
return `
Transfer amount from signer to receiver with optional memo
usage:
> chedder transfer receiverId amount memo
`;
}
;
async transfer(a) {
const receiverId = a.consumeString("receiverId");
let state = await near_rpc_js_1.queryAccount(receiverId);
let tokenBalance = await chedder_js_1.chedder.ft_balance_of(receiverId);
console.log(`receiver_id:${receiverId}, Token Balance:${conversion_js_1.yton(tokenBalance)} CHDR, Native Balance:${conversion_js_1.yton(state.amount)} N`);
const amount = a.consumeAmount("amount", 'Y'); // get amount converted to Yoctos
let memo = undefined;
if (a.moreArgs())
memo = a.consumeString("memo");
a.noMoreArgs(); // no more positional args should remain
await chedder_js_1.chedder.ft_transfer(receiverId, amount, memo);
console.log(`transferred to ${receiverId} ${conversion_js_1.yton(amount)} tokens`);
}
get_supply_HELP() {
return `
Returns token supply
usage:
> chedder get_supply
`;
}
;
async get_supply(a) {
a.noMoreArgs(); // no more positional args should remain
let supply = await chedder_js_1.chedder.ft_total_supply();
console.log(`total supply ${conversion_js_1.yton(supply)}`);
}
balance_HELP() {
return `
Returns token balance for an account
usage:
> chedder balance account_id
`;
}
;
async balance(a) {
const account = a.consumeString("account");
a.noMoreArgs(); // no more positional args should remain
let balance = await chedder_js_1.chedder.ft_balance_of(account);
console.log(`${account} balance: ${conversion_js_1.yton(balance)}`);
}
get_metadata_HELP() {
return `
Returns token metadata
usage:
> chedder get_metadata
`;
}
;
async get_metadata(a) {
a.noMoreArgs(); // no more positional args should remain
let metadata = await chedder_js_1.chedder.ft_metadata();
console.log(util.inspect(metadata));
}
set_icon_HELP() {
return `
sets metadata icon as an optimized SVG. Use https://petercollingridge.appspot.com/svg-optimiser to create the file
usage:
> chedder set_icon file.svg
`;
}
;
async set_icon(a) {
const filename = a.consumeString("filename");
a.noMoreArgs(); // no more positional args should remain
const svgData = fs.readFileSync(filename);
await chedder_js_1.chedder.set_metadata_icon(svgData.toString());
}
}
exports.CommandsAPI = CommandsAPI;
//# sourceMappingURL=CommandsAPI.js.map