{"version":3,"file":"WalletAdapters.types-DBvhI1hu.mjs","sources":["../src/WalletAdapters.types.ts"],"sourcesContent":["import { Availability } from \"./utils/createAdapterAvailability\"\n\nexport enum WalletAdapterBitcoinNetwork {\n  MAINNET = \"mainnet\",\n  TESTNET = \"testnet\",\n  UNKNOWN = \"unknown\",\n}\n\nexport enum WalletAdapterAddressPurpose {\n  Bitcoin = \"bitcoin\",\n  Ordinals = \"ordinals\",\n  BRC20 = \"brc20\",\n  Runes = \"runes\",\n}\n\n// prettier-ignore\nexport enum WalletAdapterAddressType {\n  P2SH_P2WPKH = \"p2sh-p2wpkh\", // aka Nested SegWit\n  P2WPKH = \"p2wpkh\",           // aka Native SegWit\n  P2TR = \"p2tr\",               // aka Taproot\n  P2PKH = \"p2pkh\",             // aka Legacy\n}\n\nexport enum SignMessageAlgorithm {\n  ECDSA = \"ECDSA\",\n  BIP322 = \"BIP322\",\n}\nexport type SignMessageResult =\n  | SignMessageResult.ECDSA\n  | SignMessageResult.BIP322\nexport namespace SignMessageResult {\n  export interface ECDSA {\n    algorithm: SignMessageAlgorithm.ECDSA\n    result: string\n    address: string\n    publicKey: string\n  }\n\n  export interface BIP322 {\n    algorithm: SignMessageAlgorithm.BIP322\n    result: string\n    address: string\n  }\n}\n\nexport interface WalletAdapterAddressBasic {\n  addressType: WalletAdapterAddressType\n  address: string\n  scriptPubKey: string\n}\n\nexport interface WalletAdapterAddressWithPublicKey {\n  /**\n   * Some wallet may won't give us the public key of the address, like Xverse\n   */\n  publicKey: string\n}\n\nexport interface WalletAdapterAddressWithRedeemScript {\n  /**\n   * Some address is SH address, which requires redeem script to spend, like Xverse\n   */\n  redeemScript: string\n}\n\nexport interface WalletAdapterAddressWithTapInternalKey {\n  /**\n   * Some address is taproot address, which requires taproot internal key to spend.\n   */\n  tapInternalKey: string\n}\n\nexport interface WalletAdapterAddress extends Partial<\n  WalletAdapterAddressWithPublicKey &\n    WalletAdapterAddressWithRedeemScript &\n    WalletAdapterAddressWithTapInternalKey\n> {\n  addressType: WalletAdapterAddressType\n  address: string\n  scriptPubKey: string\n  network: WalletAdapterBitcoinNetwork\n  purposes: WalletAdapterAddressPurpose[]\n}\n\nexport interface WalletAdapterMetadata {\n  name: string\n  iconUrl: () => Promise<string>\n  websiteUrl: string\n  downloadUrl: string\n}\n\nexport interface WalletAdapterFactory<T extends WalletAdapter> {\n  adapterId: string\n  metadata: WalletAdapterMetadata\n  getAdapter(): Availability<T>\n}\n\nexport interface WalletAdapter {\n  connect(): Promise<void>\n\n  disconnect(): Promise<void>\n\n  getAddresses(): Promise<WalletAdapterAddress[]>\n  onAddressesChanged(callback: WalletAdapter_onAddressesChanged_callback): {\n    unsubscribe: () => void\n  }\n\n  signMessage(address: string, message: string): Promise<SignMessageResult>\n\n  signAndFinalizePsbt(\n    psbtHex: string,\n    signIndices: [address: string, signIndex: number][],\n  ): Promise<{ signedPsbtHex: string }>\n\n  sendBitcoinFeeRateCapability: WalletAdapter_sendBitcoinFeeRateCapability\n  sendBitcoin(\n    fromAddress: string,\n    receiverAddress: string,\n    satoshiAmount: bigint,\n    options?: { feeRate?: number },\n  ): Promise<{ txid: string }>\n}\n\nexport type WalletAdapter_onAddressesChanged_callbackData = {\n  addresses: WalletAdapterAddress[]\n}\n\nexport type WalletAdapter_onAddressesChanged_callback = (\n  data: WalletAdapter_onAddressesChanged_callbackData,\n) => void\n\nexport type WalletAdapter_sendBitcoinFeeRateCapability =\n  | \"unavailable\"\n  | \"available\"\n  | \"required\"\n\nexport class WalletAdapterErrorBase extends Error {\n  constructor(message: string) {\n    super(message)\n    this.name = \"WalletAdapterErrorBase\"\n  }\n}\n\nexport class WalletAdapterNotConnectedError extends WalletAdapterErrorBase {\n  constructor(walletName: string, message?: string) {\n    super(message ?? `Wallet ${walletName} is not connected`)\n    this.name = \"WalletAdapterNotConnectedError\"\n  }\n}\n"],"names":["WalletAdapterBitcoinNetwork","WalletAdapterAddressPurpose","WalletAdapterAddressType","SignMessageAlgorithm","WalletAdapterErrorBase","message","WalletAdapterNotConnectedError","walletName"],"mappings":"AAEO,IAAKA,sBAAAA,OACVA,EAAA,UAAU,WACVA,EAAA,UAAU,WACVA,EAAA,UAAU,WAHAA,IAAAA,KAAA,CAAA,CAAA,GAMAC,sBAAAA,OACVA,EAAA,UAAU,WACVA,EAAA,WAAW,YACXA,EAAA,QAAQ,SACRA,EAAA,QAAQ,SAJEA,IAAAA,KAAA,CAAA,CAAA,GAQAC,sBAAAA,OACVA,EAAA,cAAc,eACdA,EAAA,SAAS,UACTA,EAAA,OAAO,QACPA,EAAA,QAAQ,SAJEA,IAAAA,KAAA,CAAA,CAAA,GAOAC,sBAAAA,OACVA,EAAA,QAAQ,SACRA,EAAA,SAAS,UAFCA,IAAAA,KAAA,CAAA,CAAA;AAiHL,MAAMC,UAA+B,MAAM;AAAA,EAChD,YAAYC,GAAiB;AAC3B,UAAMA,CAAO,GACb,KAAK,OAAO;AAAA,EACd;AACF;AAEO,MAAMC,UAAuCF,EAAuB;AAAA,EACzE,YAAYG,GAAoBF,GAAkB;AAChD,UAAMA,KAAW,UAAUE,CAAU,mBAAmB,GACxD,KAAK,OAAO;AAAA,EACd;AACF;"}