UNPKG

@okxweb3/coin-stellar

Version:

@okxweb3/coin-stellar is a Stellar SDK for building Web3 wallets and applications. It supports Stellar and PI blockchains, enabling private key management, address generation, transaction signing, trustline creation, and asset transfers

63 lines 2.54 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.SignerKey = void 0; const xdr_1 = __importDefault(require("./xdr")); const strkey_1 = require("./strkey"); class SignerKey { static decodeAddress(address) { const signerKeyMap = { ed25519PublicKey: xdr_1.default.SignerKey.signerKeyTypeEd25519, preAuthTx: xdr_1.default.SignerKey.signerKeyTypePreAuthTx, sha256Hash: xdr_1.default.SignerKey.signerKeyTypeHashX, signedPayload: xdr_1.default.SignerKey.signerKeyTypeEd25519SignedPayload }; const vb = strkey_1.StrKey.getVersionByteForPrefix(address); const encoder = signerKeyMap[vb]; if (!encoder) { throw new Error(`invalid signer key type (${vb})`); } const raw = (0, strkey_1.decodeCheck)(vb, address); switch (vb) { case 'signedPayload': return encoder(new xdr_1.default.SignerKeyEd25519SignedPayload({ ed25519: raw.slice(0, 32), payload: raw.slice(32 + 4) })); case 'ed25519PublicKey': case 'preAuthTx': case 'sha256Hash': default: return encoder(raw); } } static encodeSignerKey(signerKey) { let strkeyType; let raw; switch (signerKey.switch()) { case xdr_1.default.SignerKeyType.signerKeyTypeEd25519(): strkeyType = 'ed25519PublicKey'; raw = signerKey.value(); break; case xdr_1.default.SignerKeyType.signerKeyTypePreAuthTx(): strkeyType = 'preAuthTx'; raw = signerKey.value(); break; case xdr_1.default.SignerKeyType.signerKeyTypeHashX(): strkeyType = 'sha256Hash'; raw = signerKey.value(); break; case xdr_1.default.SignerKeyType.signerKeyTypeEd25519SignedPayload(): strkeyType = 'signedPayload'; raw = signerKey.ed25519SignedPayload().toXDR('raw'); break; default: throw new Error(`invalid SignerKey (type: ${signerKey.switch()})`); } return (0, strkey_1.encodeCheck)(strkeyType, raw); } } exports.SignerKey = SignerKey; //# sourceMappingURL=signerkey.js.map