UNPKG

chedder

Version:
148 lines (141 loc) 5.21 kB
"use strict"; 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