UNPKG

@xpla/xpla

Version:

<p align="center"> <img src="https://user-images.githubusercontent.com/545047/188804067-28e67e5e-0214-4449-ab04-2e0c564a6885.svg" width="80"> </p>

32 lines (30 loc) 1.13 kB
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); const require_runtime = require('../_virtual/_rolldown/runtime.cjs'); let bech32 = require("bech32"); let _noble_hashes_sha3 = require("@noble/hashes/sha3"); //#region src/auth/strategy.ts const COSMOS_EVM_ADDRESS_STRATEGY = { name: "cosmos_evm", preprocessPublicKey: (pubKeyBytes, compressed, algo) => { let ethPubKey = compressed ? algo.uncompress(pubKeyBytes) : pubKeyBytes; return ethPubKey[0] === 4 ? ethPubKey.slice(1) : ethPubKey; }, hash: (bytes) => (0, _noble_hashes_sha3.keccak_256)(bytes).slice(-20), encode: (bytes, prefix = "xpla") => { const words = bech32.bech32.toWords(Buffer.from(bytes)); return bech32.bech32.encode(prefix, words); }, decode: (address) => { const decoded = bech32.bech32.decode(address); return { bytes: new Uint8Array(bech32.bech32.fromWords(decoded.words)), prefix: decoded.prefix }; }, extractPrefix: (address) => { const match = address.match(/^([a-z]+)1/); return match ? match[1] : void 0; } }; //#endregion exports.COSMOS_EVM_ADDRESS_STRATEGY = COSMOS_EVM_ADDRESS_STRATEGY;