UNPKG

@tatumio/tatum-v1

Version:

Tatum API client allows browsers and Node.js clients to interact with Tatum API.

40 lines 4.08 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.signBnbKMSTransaction = void 0; const javascript_sdk_1 = require("@binance-chain/javascript-sdk"); const crypto_1 = require("@binance-chain/javascript-sdk/lib/crypto"); const blockchain_1 = require("../blockchain"); const model_1 = require("../model"); /** * Sign Bnb pending transaction from Tatum KMS * @param tx pending transaction from KMS * @param fromPrivateKey private key to sign transaction with. * @param testnet mainnet or testnet version * @param provider url of the Bnb Server to connect to. If not set, default public server will be used. * @returns transaction data to be broadcast to blockchain. */ const signBnbKMSTransaction = async (tx, fromPrivateKey, testnet, provider) => { if (tx.chain !== model_1.Currency.BNB) { throw Error('Unsupported chain.'); } const bnbClient = new javascript_sdk_1.BncClient(provider ? provider : (testnet ? 'https://testnet-dex-atlantic.binance.org' : 'https://dex-european.binance.org')); bnbClient.chooseNetwork(testnet ? 'testnet' : 'mainnet'); await bnbClient.setPrivateKey(fromPrivateKey, true); await bnbClient.initChain(); const fromAddress = crypto_1.getAddressFromPrivateKey(fromPrivateKey, testnet ? 'tbnb' : 'bnb'); const account = await blockchain_1.bnbGetAccount(fromAddress); bnbClient.setAccountNumber(account.account_number); const { msg, signMsg, memo } = JSON.parse(tx.serializedTransaction); msg.inputs = msg.inputs.map((i) => { i.address = Buffer.from(i.address.data); return i; }); msg.outputs = msg.outputs.map((i) => { i.address = Buffer.from(i.address.data); return i; }); const signedTx = await bnbClient._prepareTransaction(msg, signMsg, fromAddress, account.sequence, memo); return signedTx.serialize(); }; exports.signBnbKMSTransaction = signBnbKMSTransaction; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm5iLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL2JuYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxrRUFBdUQ7QUFDdkQscUVBQWlGO0FBQ2pGLDhDQUEyQztBQUMzQyxvQ0FBaUQ7QUFFakQ7Ozs7Ozs7R0FPRztBQUNJLE1BQU0scUJBQXFCLEdBQUcsS0FBSyxFQUFFLEVBQWtCLEVBQUUsY0FBc0IsRUFBRSxPQUFnQixFQUFFLFFBQWlCLEVBQUUsRUFBRTtJQUMzSCxJQUFJLEVBQUUsQ0FBQyxLQUFLLEtBQUssZ0JBQVEsQ0FBQyxHQUFHLEVBQUU7UUFDM0IsTUFBTSxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQTtLQUNwQztJQUNELE1BQU0sU0FBUyxHQUFHLElBQUksMEJBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLDBDQUEwQyxDQUFDLENBQUMsQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDLENBQUE7SUFDbEosU0FBUyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUE7SUFDeEQsTUFBTSxTQUFTLENBQUMsYUFBYSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUNuRCxNQUFNLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQTtJQUMzQixNQUFNLFdBQVcsR0FBRyxpQ0FBd0IsQ0FBQyxjQUFjLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3RGLE1BQU0sT0FBTyxHQUFHLE1BQU0sMEJBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQTtJQUNoRCxTQUFTLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFBO0lBQ2xELE1BQU0sRUFBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLHFCQUFxQixDQUFDLENBQUE7SUFDakUsR0FBRyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFO1FBQ25DLENBQUMsQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3ZDLE9BQU8sQ0FBQyxDQUFBO0lBQ1osQ0FBQyxDQUFDLENBQUE7SUFDRixHQUFHLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUU7UUFDckMsQ0FBQyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDdkMsT0FBTyxDQUFDLENBQUE7SUFDWixDQUFDLENBQUMsQ0FBQTtJQUNGLE1BQU0sUUFBUSxHQUFHLE1BQU0sU0FBUyxDQUFDLG1CQUFtQixDQUNoRCxHQUFHLEVBQ0gsT0FBTyxFQUNQLFdBQVcsRUFDWCxPQUFPLENBQUMsUUFBUSxFQUNoQixJQUFJLENBQ1AsQ0FBQTtJQUNELE9BQU8sUUFBUSxDQUFDLFNBQVMsRUFBRSxDQUFBO0FBQy9CLENBQUMsQ0FBQTtBQTVCWSxRQUFBLHFCQUFxQix5QkE0QmpDIn0=