UNPKG

send-crypto

Version:

A minimal JavaScript library / wallet for sending crypto assets

74 lines 7.95 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.TERRAHandler = exports.TerraNetwork = void 0; const bignumber_js_1 = __importDefault(require("bignumber.js")); const terra_js_1 = require("@terra-money/terra.js"); const promiEvent_1 = require("../../lib/promiEvent"); const utils_1 = require("../../lib/utils"); var TerraNetwork; (function (TerraNetwork) { TerraNetwork["Bombay"] = "bombay-12"; TerraNetwork["Columbus"] = "columbus-3"; })(TerraNetwork = exports.TerraNetwork || (exports.TerraNetwork = {})); const toDenom = (asset) => "uluna"; class TERRAHandler { constructor(privateKey, network, options = {}, sharedState) { this.decimals = 6; // Returns whether or not this can handle the asset this.handlesAsset = (asset) => typeof asset === "string" && ["LUNA"].indexOf(asset.toUpperCase()) !== -1; this.address = (asset, _options = {}) => { if (!this.handlesAsset(asset)) { throw new Error(`Asset ${asset} not supported.`); } return this.key.accAddress; }; // Balance this.getBalance = async (asset, options = {}) => (await this.getBalanceInSats(asset, options)).dividedBy(new bignumber_js_1.default(10).exponentiatedBy(this.decimals)); this.getBalanceInSats = async (asset, options = {}) => { if (!this.handlesAsset(asset)) { throw new Error(`Asset ${asset} not supported.`); } const balances = (await this.client.bank.balance((options && options.address) || (await this.address(asset))))[0]; const balance = balances.get(toDenom(asset)); return new bignumber_js_1.default(balance ? balance.amount.toFixed() : 0); }; // Transfer this.send = (to, value, asset, options = {}) => this.sendSats(to, value.times(new bignumber_js_1.default(10).exponentiatedBy(this.decimals)), asset, options); this.sendSats = (to, value, asset, options = {}) => { const promiEvent = (0, promiEvent_1.newPromiEvent)(); (async () => { const address = await this.address(asset); const send = new terra_js_1.MsgSend(address, to, { uluna: value.toFixed() }); const signedTx = await this.wallet.createAndSignTx({ msgs: [send], memo: options.memo, }); const result = await this.client.tx.broadcast(signedTx); const txHash = result.txhash; promiEvent.emit("transactionHash", txHash); promiEvent.resolve(txHash); })().catch((error) => { promiEvent.reject(error); }); return promiEvent; }; this.network = network === "mainnet" ? TerraNetwork.Columbus : TerraNetwork.Bombay; const client = sharedState.client || new terra_js_1.LCDClient({ URL: options && options.terra ? options.terra.URL : "", chainID: this.network, }); const key = new terra_js_1.RawKey(Buffer.from((0, utils_1.strip0x)(privateKey), "hex")); const wallet = client.wallet(key); this.client = client; this.wallet = wallet; this.key = key; } } exports.TERRAHandler = TERRAHandler; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVEVSUkFIYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2hhbmRsZXJzL1RFUlJBL1RFUlJBSGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxnRUFBcUM7QUFFckMsb0RBTStCO0FBRS9CLHFEQUFpRTtBQUNqRSwyQ0FBMEM7QUFHMUMsSUFBWSxZQUdYO0FBSEQsV0FBWSxZQUFZO0lBQ3BCLG9DQUFvQixDQUFBO0lBQ3BCLHVDQUF1QixDQUFBO0FBQzNCLENBQUMsRUFIVyxZQUFZLEdBQVosb0JBQVksS0FBWixvQkFBWSxRQUd2QjtBQWdCRCxNQUFNLE9BQU8sR0FBRyxDQUFDLEtBQWEsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDO0FBRTNDLE1BQWEsWUFBWTtJQVlyQixZQUNJLFVBQWtCLEVBQ2xCLE9BQWUsRUFDZixVQUE4QixFQUFFLEVBQ2hDLFdBQWlCO1FBVkosYUFBUSxHQUFHLENBQUMsQ0FBQztRQStCOUIsbURBQW1EO1FBQ25DLGlCQUFZLEdBQUcsQ0FBQyxLQUFZLEVBQVcsRUFBRSxDQUNyRCxPQUFPLEtBQUssS0FBSyxRQUFRO1lBQ3pCLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBRWpDLFlBQU8sR0FBRyxDQUN0QixLQUFZLEVBQ1osV0FBMkIsRUFBRSxFQUN2QixFQUFFO1lBQ1IsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQzNCLE1BQU0sSUFBSSxLQUFLLENBQUMsU0FBUyxLQUFLLGlCQUFpQixDQUFDLENBQUM7YUFDcEQ7WUFFRCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDO1FBQy9CLENBQUMsQ0FBQztRQUVGLFVBQVU7UUFDTSxlQUFVLEdBQUcsS0FBSyxFQUM5QixLQUFZLEVBQ1osVUFBMEIsRUFBRSxF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