bitcoin-wallet-connector 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) hide show
  1. package/README.md +208 -0
  2. package/lib/BitcoinConnectionProvider.d.ts +23 -0
  3. package/lib/BitcoinWalletAdapterConnector-Bq835yj0.mjs +123 -0
  4. package/lib/BitcoinWalletAdapterConnector-Bq835yj0.mjs.map +1 -0
  5. package/lib/BitcoinWalletAdapterConnector-DMef0iHV.js +2 -0
  6. package/lib/BitcoinWalletAdapterConnector-DMef0iHV.js.map +1 -0
  7. package/lib/BitcoinWalletAdapterConnector.d.ts +30 -0
  8. package/lib/BitgetWalletAdapter.impl-C_HLO7Oi.mjs +10 -0
  9. package/lib/BitgetWalletAdapter.impl-C_HLO7Oi.mjs.map +1 -0
  10. package/lib/BitgetWalletAdapter.impl-CxnKMf7U.js +2 -0
  11. package/lib/BitgetWalletAdapter.impl-CxnKMf7U.js.map +1 -0
  12. package/lib/LeatherWalletAdapter.impl-B2QgX_tO.js +2 -0
  13. package/lib/LeatherWalletAdapter.impl-B2QgX_tO.js.map +1 -0
  14. package/lib/LeatherWalletAdapter.impl-RUYx555r.mjs +184 -0
  15. package/lib/LeatherWalletAdapter.impl-RUYx555r.mjs.map +1 -0
  16. package/lib/MagicEdenWalletAdapter.impl-CrA6SGvG.mjs +235 -0
  17. package/lib/MagicEdenWalletAdapter.impl-CrA6SGvG.mjs.map +1 -0
  18. package/lib/MagicEdenWalletAdapter.impl-Di3Nu2S5.js +2 -0
  19. package/lib/MagicEdenWalletAdapter.impl-Di3Nu2S5.js.map +1 -0
  20. package/lib/OkxWalletAdapter.impl-BepoUL1B.mjs +67 -0
  21. package/lib/OkxWalletAdapter.impl-BepoUL1B.mjs.map +1 -0
  22. package/lib/OkxWalletAdapter.impl-C8kesjGu.js +2 -0
  23. package/lib/OkxWalletAdapter.impl-C8kesjGu.js.map +1 -0
  24. package/lib/UnisatCompatibleWalletAdapterImpl-Cq2Oqk1b.js +2 -0
  25. package/lib/UnisatCompatibleWalletAdapterImpl-Cq2Oqk1b.js.map +1 -0
  26. package/lib/UnisatCompatibleWalletAdapterImpl-M38FqkZI.mjs +137 -0
  27. package/lib/UnisatCompatibleWalletAdapterImpl-M38FqkZI.mjs.map +1 -0
  28. package/lib/UnisatWalletAdapter.impl-CJB22se8.mjs +14 -0
  29. package/lib/UnisatWalletAdapter.impl-CJB22se8.mjs.map +1 -0
  30. package/lib/UnisatWalletAdapter.impl-EISvxdpc.js +2 -0
  31. package/lib/UnisatWalletAdapter.impl-EISvxdpc.js.map +1 -0
  32. package/lib/WalletAdapters.types-CnvOqHFH.mjs +32 -0
  33. package/lib/WalletAdapters.types-CnvOqHFH.mjs.map +1 -0
  34. package/lib/WalletAdapters.types-De_x1lzr.js +2 -0
  35. package/lib/WalletAdapters.types-De_x1lzr.js.map +1 -0
  36. package/lib/WalletAdapters.types.d.ts +110 -0
  37. package/lib/XverseCompatibleWalletAdapterImpl-Bf-BK5VK.js +2 -0
  38. package/lib/XverseCompatibleWalletAdapterImpl-Bf-BK5VK.js.map +1 -0
  39. package/lib/XverseCompatibleWalletAdapterImpl-DXKnO_-V.mjs +151 -0
  40. package/lib/XverseCompatibleWalletAdapterImpl-DXKnO_-V.mjs.map +1 -0
  41. package/lib/XverseWalletAdapter.impl-CZO0RQva.mjs +105 -0
  42. package/lib/XverseWalletAdapter.impl-CZO0RQva.mjs.map +1 -0
  43. package/lib/XverseWalletAdapter.impl-lJwMi-Iv.js +2 -0
  44. package/lib/XverseWalletAdapter.impl-lJwMi-Iv.js.map +1 -0
  45. package/lib/adapters/BitgetWalletAdapter.d.ts +2 -0
  46. package/lib/adapters/BitgetWalletAdapter.impl.d.ts +8 -0
  47. package/lib/adapters/LeatherWalletAdapter.d.ts +2 -0
  48. package/lib/adapters/LeatherWalletAdapter.impl.d.ts +41 -0
  49. package/lib/adapters/MagicEdenWalletAdapter.d.ts +11 -0
  50. package/lib/adapters/MagicEdenWalletAdapter.impl.d.ts +22 -0
  51. package/lib/adapters/MockAddressWalletAdapter.d.ts +33 -0
  52. package/lib/adapters/OkxWalletAdapter.d.ts +2 -0
  53. package/lib/adapters/OkxWalletAdapter.impl.d.ts +51 -0
  54. package/lib/adapters/UnisatWalletAdapter.d.ts +2 -0
  55. package/lib/adapters/UnisatWalletAdapter.impl.d.ts +14 -0
  56. package/lib/adapters/XverseWalletAdapter.d.ts +3 -0
  57. package/lib/adapters/XverseWalletAdapter.impl.d.ts +14 -0
  58. package/lib/adapters/index.d.ts +7 -0
  59. package/lib/adapters.js +2 -0
  60. package/lib/adapters.js.map +1 -0
  61. package/lib/adapters.mjs +11 -0
  62. package/lib/adapters.mjs.map +1 -0
  63. package/lib/bitget-C7oB4Ffq.mjs +5 -0
  64. package/lib/bitget-C7oB4Ffq.mjs.map +1 -0
  65. package/lib/bitget-DXnsxx_y.js +2 -0
  66. package/lib/bitget-DXnsxx_y.js.map +1 -0
  67. package/lib/index-CaV3F1Nm.js +424 -0
  68. package/lib/index-CaV3F1Nm.js.map +1 -0
  69. package/lib/index-CcQUdePc.mjs +12224 -0
  70. package/lib/index-CcQUdePc.mjs.map +1 -0
  71. package/lib/index-D7YwhNAG.mjs +3946 -0
  72. package/lib/index-D7YwhNAG.mjs.map +1 -0
  73. package/lib/index-Zx0KcpYx.js +2 -0
  74. package/lib/index-Zx0KcpYx.js.map +1 -0
  75. package/lib/index.d.ts +3 -0
  76. package/lib/index.js +2 -0
  77. package/lib/index.js.map +1 -0
  78. package/lib/index.mjs +20 -0
  79. package/lib/index.mjs.map +1 -0
  80. package/lib/leather-BoQG_CPn.mjs +5 -0
  81. package/lib/leather-BoQG_CPn.mjs.map +1 -0
  82. package/lib/leather-DJ8nWmM8.js +2 -0
  83. package/lib/leather-DJ8nWmM8.js.map +1 -0
  84. package/lib/magiceden-B36CEQa6.js +2 -0
  85. package/lib/magiceden-B36CEQa6.js.map +1 -0
  86. package/lib/magiceden-Cg7d3agI.mjs +5 -0
  87. package/lib/magiceden-Cg7d3agI.mjs.map +1 -0
  88. package/lib/misc-B5EWO_dn.mjs +10 -0
  89. package/lib/misc-B5EWO_dn.mjs.map +1 -0
  90. package/lib/misc-CigR0RqC.js +2 -0
  91. package/lib/misc-CigR0RqC.js.map +1 -0
  92. package/lib/okx-ChwzM0dK.js +2 -0
  93. package/lib/okx-ChwzM0dK.js.map +1 -0
  94. package/lib/okx-DWbHwazu.mjs +5 -0
  95. package/lib/okx-DWbHwazu.mjs.map +1 -0
  96. package/lib/react.d.ts +2 -0
  97. package/lib/react.js +2 -0
  98. package/lib/react.js.map +1 -0
  99. package/lib/react.mjs +128 -0
  100. package/lib/react.mjs.map +1 -0
  101. package/lib/transaction-CiLOYSE_.mjs +1063 -0
  102. package/lib/transaction-CiLOYSE_.mjs.map +1 -0
  103. package/lib/transaction-CzdnbXSo.js +2 -0
  104. package/lib/transaction-CzdnbXSo.js.map +1 -0
  105. package/lib/unisat-BvZW5h0U.js +2 -0
  106. package/lib/unisat-BvZW5h0U.js.map +1 -0
  107. package/lib/unisat-pLgab4nG.mjs +5 -0
  108. package/lib/unisat-pLgab4nG.mjs.map +1 -0
  109. package/lib/utils/StateChannel.d.ts +14 -0
  110. package/lib/utils/UnisatCompatibleWalletAdapterImpl.d.ts +99 -0
  111. package/lib/utils/XverseCompatibleWalletAdapterImpl.d.ts +80 -0
  112. package/lib/utils/XverseCompatibleWalletAdapterImpl_legacy.d.ts +44 -0
  113. package/lib/utils/bitcoinAddressHelpers.d.ts +14 -0
  114. package/lib/utils/bitcoinNetworkHelpers.d.ts +4 -0
  115. package/lib/utils/createAdapterAvailability.d.ts +15 -0
  116. package/lib/utils/error.d.ts +6 -0
  117. package/lib/utils/misc.d.ts +3 -0
  118. package/lib/xverse-IKOHyGi-.js +2 -0
  119. package/lib/xverse-IKOHyGi-.js.map +1 -0
  120. package/lib/xverse-iHLNanCB.mjs +5 -0
  121. package/lib/xverse-iHLNanCB.mjs.map +1 -0
  122. package/package.json +86 -0
  123. package/src/BitcoinConnectionProvider.stories.tsx +329 -0
  124. package/src/BitcoinConnectionProvider.tsx +234 -0
  125. package/src/BitcoinWalletAdapterConnector.ts +166 -0
  126. package/src/WalletAdapters.types.ts +154 -0
  127. package/src/_/bitget.png +0 -0
  128. package/src/_/leather.svg +4 -0
  129. package/src/_/magiceden.png +0 -0
  130. package/src/_/okx.png +0 -0
  131. package/src/_/unisat.svg +31 -0
  132. package/src/_/xverse.png +0 -0
  133. package/src/adapters/BitgetWalletAdapter.impl.ts +22 -0
  134. package/src/adapters/BitgetWalletAdapter.ts +44 -0
  135. package/src/adapters/LeatherWalletAdapter.impl.ts +324 -0
  136. package/src/adapters/LeatherWalletAdapter.ts +35 -0
  137. package/src/adapters/MagicEdenWalletAdapter.impl.ts +139 -0
  138. package/src/adapters/MagicEdenWalletAdapter.ts +51 -0
  139. package/src/adapters/MockAddressWalletAdapter.ts +199 -0
  140. package/src/adapters/OkxWalletAdapter.impl.ts +168 -0
  141. package/src/adapters/OkxWalletAdapter.ts +37 -0
  142. package/src/adapters/UnisatWalletAdapter.impl.ts +32 -0
  143. package/src/adapters/UnisatWalletAdapter.ts +50 -0
  144. package/src/adapters/XverseWalletAdapter.impl.ts +150 -0
  145. package/src/adapters/XverseWalletAdapter.ts +37 -0
  146. package/src/adapters/index.ts +7 -0
  147. package/src/env.d.ts +9 -0
  148. package/src/index.ts +3 -0
  149. package/src/react.ts +9 -0
  150. package/src/utils/StateChannel.ts +39 -0
  151. package/src/utils/UnisatCompatibleWalletAdapterImpl.ts +342 -0
  152. package/src/utils/XverseCompatibleWalletAdapterImpl.ts +288 -0
  153. package/src/utils/XverseCompatibleWalletAdapterImpl_legacy.ts +278 -0
  154. package/src/utils/bitcoinAddressHelpers.ts +132 -0
  155. package/src/utils/bitcoinNetworkHelpers.ts +17 -0
  156. package/src/utils/createAdapterAvailability.ts +92 -0
  157. package/src/utils/error.ts +13 -0
  158. package/src/utils/misc.ts +10 -0
@@ -0,0 +1,2 @@
1
+ "use strict";const T=require("./WalletAdapters.types-De_x1lzr.js");function He({getPrecondition:e,initializer:t,pollIntervalMs:n=300}){let r=null,o=null,s=!1;const i=new Set,c=()=>{o!=null&&(clearInterval(o),o=null)},a=u=>{r=u;for(const y of i)y(u)},f=async()=>{if(r!=null||s)return;const u=e();if(u!=null){s=!0;try{const y=await t(u.value);a(y),c()}catch(y){console.warn("[WalletAdapter] Failed to initialize adapter",y)}finally{s=!1}}},d=()=>{r==null&&(f(),!(r!=null||o!=null)&&(o=setInterval(()=>{f()},n)))};return{subscribe:u=>r!=null?(u(r),{unsubscribe:()=>{}}):(i.add(u),d(),{unsubscribe:()=>{i.delete(u),i.size===0&&c()}})}}const qn="bitget.bitcoin",Vn={name:"Bitget",iconUrl:Promise.resolve().then(()=>require("./bitget-DXnsxx_y.js")).then(e=>e.default),websiteUrl:"https://web3.bitget.com/",downloadUrl:"https://web3.bitget.com/en/wallet-download"},Mn=He({getPrecondition:()=>window.bitkeep?.unisat==null?null:{value:window.bitkeep.unisat},initializer:async e=>{const{BitgetWalletAdapterImpl:t}=await Promise.resolve().then(()=>require("./BitgetWalletAdapter.impl-CxnKMf7U.js"));return new t(e)}}),jn={adapterId:qn,metadata:Vn,getAdapter:()=>Mn},Fn="LeatherProvider.BitcoinProvider",zn={name:"Leather",iconUrl:Promise.resolve().then(()=>require("./leather-DJ8nWmM8.js")).then(e=>e.default),websiteUrl:"https://leather.io/",downloadUrl:"https://leather.io/wallet"},Zn=He({getPrecondition:()=>{const e=window.LeatherProvider?.request;return e==null?null:{value:e}},initializer:async e=>{const{LeatherWalletAdapterImpl:t}=await Promise.resolve().then(()=>require("./LeatherWalletAdapter.impl-B2QgX_tO.js"));return new t(e)}}),Gn={adapterId:Fn,metadata:zn,getAdapter:()=>Zn},Rr="magiceden.bitcoin",Yn=e=>He({getPrecondition:()=>{const t=window.magicEden?.bitcoin;return t?.isMagicEden?{value:t}:null},initializer:async t=>{const{MagicEdenWalletAdapterImpl:n}=await Promise.resolve().then(()=>require("./MagicEdenWalletAdapter.impl-Di3Nu2S5.js"));return new n(e,t)}}),Xn=e=>{const t=Yn(e);return{adapterId:Rr,metadata:{name:"Magic Eden",iconUrl:Promise.resolve().then(()=>require("./magiceden-B36CEQa6.js")).then(n=>n.default),websiteUrl:"https://wallet.magiceden.io/",downloadUrl:"https://wallet.magiceden.io/download"},getAdapter:()=>t}},Qn="okxwallet.bitcoin",Jn={name:"OKX Wallet",iconUrl:Promise.resolve().then(()=>require("./okx-ChwzM0dK.js")).then(e=>e.default),websiteUrl:"https://web3.okx.com/",downloadUrl:"https://web3.okx.com/download"},eo=He({getPrecondition:()=>{const e=window.okxwallet?.bitcoin;return e==null?null:{value:e}},initializer:async e=>{const{OkxWalletAdapterImpl:t}=await Promise.resolve().then(()=>require("./OkxWalletAdapter.impl-C8kesjGu.js"));return new t(e)}}),to={adapterId:Qn,metadata:Jn,getAdapter:()=>eo},ro="unisat",no={name:"UniSat",iconUrl:Promise.resolve().then(()=>require("./unisat-BvZW5h0U.js")).then(e=>e.default),websiteUrl:"https://unisat.io/",downloadUrl:"https://unisat.io/download"},oo=He({getPrecondition:()=>{const e=window.unisat;return e==null?null:{value:e}},initializer:async e=>{const{UnisatWalletAdapterImpl:t}=await Promise.resolve().then(()=>require("./UnisatWalletAdapter.impl-EISvxdpc.js"));return new t(e)}}),so={adapterId:ro,metadata:no,getAdapter:()=>oo},Ct="XverseProviders.BitcoinProvider",io={name:"Xverse",iconUrl:Promise.resolve().then(()=>require("./xverse-IKOHyGi-.js")).then(e=>e.default),websiteUrl:"https://xverse.app/",downloadUrl:"https://www.xverse.app/download"},co=He({getPrecondition:()=>{const e=(window.btc_providers??[]).find(t=>t.id===Ct);return e==null?null:{value:e}},initializer:async()=>{const{XverseWalletAdapterImpl:e}=await Promise.resolve().then(()=>require("./XverseWalletAdapter.impl-lJwMi-Iv.js"));return new e}}),ao={adapterId:Ct,metadata:io,getAdapter:()=>co};function Oe(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function Or(e){if(!Oe(e))throw new Error("Uint8Array expected")}function $r(e,t){return Array.isArray(t)?t.length===0?!0:e?t.every(n=>typeof n=="string"):t.every(n=>Number.isSafeInteger(n)):!1}function Dt(e){if(typeof e!="function")throw new Error("function expected");return!0}function we(e,t){if(typeof t!="string")throw new Error(`${e}: string expected`);return!0}function Le(e){if(!Number.isSafeInteger(e))throw new Error(`invalid integer: ${e}`)}function rt(e){if(!Array.isArray(e))throw new Error("array expected")}function nt(e,t){if(!$r(!0,t))throw new Error(`${e}: array of strings expected`)}function Wt(e,t){if(!$r(!1,t))throw new Error(`${e}: array of numbers expected`)}function qe(...e){const t=s=>s,n=(s,i)=>c=>s(i(c)),r=e.map(s=>s.encode).reduceRight(n,t),o=e.map(s=>s.decode).reduce(n,t);return{encode:r,decode:o}}function ht(e){const t=typeof e=="string"?e.split(""):e,n=t.length;nt("alphabet",t);const r=new Map(t.map((o,s)=>[o,s]));return{encode:o=>(rt(o),o.map(s=>{if(!Number.isSafeInteger(s)||s<0||s>=n)throw new Error(`alphabet.encode: digit index outside alphabet "${s}". Allowed: ${e}`);return t[s]})),decode:o=>(rt(o),o.map(s=>{we("alphabet.decode",s);const i=r.get(s);if(i===void 0)throw new Error(`Unknown letter: "${s}". Allowed: ${e}`);return i}))}}function lt(e=""){return we("join",e),{encode:t=>(nt("join.decode",t),t.join(e)),decode:t=>(we("join.decode",t),t.split(e))}}function fo(e,t="="){return Le(e),we("padding",t),{encode(n){for(nt("padding.encode",n);n.length*e%8;)n.push(t);return n},decode(n){nt("padding.decode",n);let r=n.length;if(r*e%8)throw new Error("padding: invalid, string should have whole number of bytes");for(;r>0&&n[r-1]===t;r--)if((r-1)*e%8===0)throw new Error("padding: invalid, string has too much padding");return n.slice(0,r)}}}function uo(e){return Dt(e),{encode:t=>t,decode:t=>e(t)}}function sr(e,t,n){if(t<2)throw new Error(`convertRadix: invalid from=${t}, base cannot be less than 2`);if(n<2)throw new Error(`convertRadix: invalid to=${n}, base cannot be less than 2`);if(rt(e),!e.length)return[];let r=0;const o=[],s=Array.from(e,c=>{if(Le(c),c<0||c>=t)throw new Error(`invalid integer: ${c}`);return c}),i=s.length;for(;;){let c=0,a=!0;for(let f=r;f<i;f++){const d=s[f],u=t*c,y=u+d;if(!Number.isSafeInteger(y)||u/t!==c||y-d!==u)throw new Error("convertRadix: carry overflow");const l=y/n;c=y%n;const b=Math.floor(l);if(s[f]=b,!Number.isSafeInteger(b)||b*n+c!==y)throw new Error("convertRadix: carry overflow");if(a)b?a=!1:r=f;else continue}if(o.push(c),a)break}for(let c=0;c<e.length-1&&e[c]===0;c++)o.push(0);return o.reverse()}const Ur=(e,t)=>t===0?e:Ur(t,e%t),ot=(e,t)=>e+(t-Ur(e,t)),et=(()=>{let e=[];for(let t=0;t<40;t++)e.push(2**t);return e})();function Ut(e,t,n,r){if(rt(e),t<=0||t>32)throw new Error(`convertRadix2: wrong from=${t}`);if(n<=0||n>32)throw new Error(`convertRadix2: wrong to=${n}`);if(ot(t,n)>32)throw new Error(`convertRadix2: carry overflow from=${t} to=${n} carryBits=${ot(t,n)}`);let o=0,s=0;const i=et[t],c=et[n]-1,a=[];for(const f of e){if(Le(f),f>=i)throw new Error(`convertRadix2: invalid data word=${f} from=${t}`);if(o=o<<t|f,s+t>32)throw new Error(`convertRadix2: carry overflow pos=${s} from=${t}`);for(s+=t;s>=n;s-=n)a.push((o>>s-n&c)>>>0);const d=et[s];if(d===void 0)throw new Error("invalid carry");o&=d-1}if(o=o<<n-s&c,!r&&s>=t)throw new Error("Excess padding");if(!r&&o>0)throw new Error(`Non-zero padding: ${o}`);return r&&s>0&&a.push(o>>>0),a}function ho(e){Le(e);const t=2**8;return{encode:n=>{if(!Oe(n))throw new Error("radix.encode input should be Uint8Array");return sr(Array.from(n),t,e)},decode:n=>(Wt("radix.decode",n),Uint8Array.from(sr(n,e,t)))}}function Kt(e,t=!1){if(Le(e),e<=0||e>32)throw new Error("radix2: bits should be in (0..32]");if(ot(8,e)>32||ot(e,8)>32)throw new Error("radix2: carry overflow");return{encode:n=>{if(!Oe(n))throw new Error("radix2.encode input should be Uint8Array");return Ut(Array.from(n),8,e,!t)},decode:n=>(Wt("radix2.decode",n),Uint8Array.from(Ut(n,e,8,t)))}}function ir(e){return Dt(e),function(...t){try{return e.apply(null,t)}catch{}}}function lo(e,t){return Le(e),Dt(t),{encode(n){if(!Oe(n))throw new Error("checksum.encode: input should be Uint8Array");const r=t(n).slice(0,e),o=new Uint8Array(n.length+e);return o.set(n),o.set(r,n.length),o},decode(n){if(!Oe(n))throw new Error("checksum.decode: input should be Uint8Array");const r=n.slice(0,-e),o=n.slice(-e),s=t(r).slice(0,e);for(let i=0;i<e;i++)if(s[i]!==o[i])throw new Error("Invalid checksum");return r}}}const po=typeof Uint8Array.from([]).toBase64=="function"&&typeof Uint8Array.fromBase64=="function",wo=(e,t)=>{we("base64",e);const n=/^[A-Za-z0-9=+/]+$/,r="base64";if(e.length>0&&!n.test(e))throw new Error("invalid base64");return Uint8Array.fromBase64(e,{alphabet:r,lastChunkHandling:"strict"})},yo=po?{encode(e){return Or(e),e.toBase64()},decode(e){return wo(e)}}:qe(Kt(6),ht("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),fo(6),lt("")),go=e=>qe(ho(58),ht(e),lt("")),bo=go("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"),Eo=e=>qe(lo(4,t=>e(e(t))),bo),kt=qe(ht("qpzry9x8gf2tvdw0s3jn54khce6mua7l"),lt("")),cr=[996825010,642813549,513874426,1027748829,705979059];function We(e){const t=e>>25;let n=(e&33554431)<<5;for(let r=0;r<cr.length;r++)(t>>r&1)===1&&(n^=cr[r]);return n}function ar(e,t,n=1){const r=e.length;let o=1;for(let s=0;s<r;s++){const i=e.charCodeAt(s);if(i<33||i>126)throw new Error(`Invalid prefix (${e})`);o=We(o)^i>>5}o=We(o);for(let s=0;s<r;s++)o=We(o)^e.charCodeAt(s)&31;for(let s of t)o=We(o)^s;for(let s=0;s<6;s++)o=We(o);return o^=n,kt.encode(Ut([o%et[30]],30,5,!1))}function kr(e){const t=e==="bech32"?1:734539939,n=Kt(5),r=n.decode,o=n.encode,s=ir(r);function i(u,y,l=90){we("bech32.encode prefix",u),Oe(y)&&(y=Array.from(y)),Wt("bech32.encode",y);const b=u.length;if(b===0)throw new TypeError(`Invalid prefix length ${b}`);const v=b+7+y.length;if(l!==!1&&v>l)throw new TypeError(`Length ${v} exceeds limit ${l}`);const S=u.toLowerCase(),O=ar(S,y,t);return`${S}1${kt.encode(y)}${O}`}function c(u,y=90){we("bech32.decode input",u);const l=u.length;if(l<8||y!==!1&&l>y)throw new TypeError(`invalid string length: ${l} (${u}). Expected (8..${y})`);const b=u.toLowerCase();if(u!==b&&u!==u.toUpperCase())throw new Error("String must be lowercase or uppercase");const v=b.lastIndexOf("1");if(v===0||v===-1)throw new Error('Letter "1" must be present between prefix and data only');const S=b.slice(0,v),O=b.slice(v+1);if(O.length<6)throw new Error("Data must be at least 6 characters long");const q=kt.decode(O).slice(0,-6),Z=ar(S,q,t);if(!O.endsWith(Z))throw new Error(`Invalid checksum in ${u}: expected "${Z}"`);return{prefix:S,words:q}}const a=ir(c);function f(u){const{prefix:y,words:l}=c(u,!1);return{prefix:y,words:l,bytes:r(l)}}function d(u,y){return i(u,o(y))}return{encode:i,decode:c,encodeFromBytes:d,decodeToBytes:f,decodeUnsafe:a,fromWords:r,fromWordsUnsafe:s,toWords:o}}const Pt=kr("bech32"),Pr=kr("bech32m"),mo={encode:e=>new TextDecoder().decode(e),decode:e=>new TextEncoder().encode(e)},xo=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",Ao={encode(e){return Or(e),e.toHex()},decode(e){return we("hex",e),Uint8Array.fromHex(e)}},J=xo?Ao:qe(Kt(4),ht("0123456789abcdef"),lt(""),uo(e=>{if(typeof e!="string"||e.length%2!==0)throw new TypeError(`hex.decode: expected string, got ${typeof e} with length ${e.length}`);return e.toLowerCase()}));function qt(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function Ae(e,t=""){if(!Number.isSafeInteger(e)||e<0){const n=t&&`"${t}" `;throw new Error(`${n}expected integer >= 0, got ${e}`)}}function k(e,t,n=""){const r=qt(e),o=e?.length,s=t!==void 0;if(!r||s&&o!==t){const i=n&&`"${n}" `,c=s?` of length ${t}`:"",a=r?`length=${o}`:`type=${typeof e}`;throw new Error(i+"expected Uint8Array"+c+", got "+a)}return e}function _r(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash must wrapped by utils.createHasher");Ae(e.outputLen),Ae(e.blockLen)}function st(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function Bo(e,t){k(e,void 0,"digestInto() output");const n=t.outputLen;if(e.length<n)throw new Error('"digestInto() output" expected to be of length >='+n)}function $e(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function St(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function ne(e,t){return e<<32-t|e>>>t}function Ye(e,t){return e<<t|e>>>32-t>>>0}const Hr=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",So=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function pt(e){if(k(e),Hr)return e.toHex();let t="";for(let n=0;n<e.length;n++)t+=So[e[n]];return t}const ae={_0:48,_9:57,A:65,F:70,a:97,f:102};function fr(e){if(e>=ae._0&&e<=ae._9)return e-ae._0;if(e>=ae.A&&e<=ae.F)return e-(ae.A-10);if(e>=ae.a&&e<=ae.f)return e-(ae.a-10)}function it(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);if(Hr)return Uint8Array.fromHex(e);const t=e.length,n=t/2;if(t%2)throw new Error("hex string expected, got unpadded hex of length "+t);const r=new Uint8Array(n);for(let o=0,s=0;o<n;o++,s+=2){const i=fr(e.charCodeAt(s)),c=fr(e.charCodeAt(s+1));if(i===void 0||c===void 0){const a=e[s]+e[s+1];throw new Error('hex string expected, got non-hex character "'+a+'" at index '+s)}r[o]=i*16+c}return r}function oe(...e){let t=0;for(let r=0;r<e.length;r++){const o=e[r];k(o),t+=o.length}const n=new Uint8Array(t);for(let r=0,o=0;r<e.length;r++){const s=e[r];n.set(s,o),o+=s.length}return n}function Lr(e,t={}){const n=(o,s)=>e(s).update(o).digest(),r=e(void 0);return n.outputLen=r.outputLen,n.blockLen=r.blockLen,n.create=o=>e(o),Object.assign(n,t),Object.freeze(n)}function wt(e=32){const t=typeof globalThis=="object"?globalThis.crypto:null;if(typeof t?.getRandomValues!="function")throw new Error("crypto.getRandomValues must be defined");return t.getRandomValues(new Uint8Array(e))}const vo=e=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,e])});function Io(e,t,n){return e&t^~e&n}function Ro(e,t,n){return e&t^e&n^t&n}class Tr{blockLen;outputLen;padOffset;isLE;buffer;view;finished=!1;length=0;pos=0;destroyed=!1;constructor(t,n,r,o){this.blockLen=t,this.outputLen=n,this.padOffset=r,this.isLE=o,this.buffer=new Uint8Array(t),this.view=St(this.buffer)}update(t){st(this),k(t);const{view:n,buffer:r,blockLen:o}=this,s=t.length;for(let i=0;i<s;){const c=Math.min(o-this.pos,s-i);if(c===o){const a=St(t);for(;o<=s-i;i+=o)this.process(a,i);continue}r.set(t.subarray(i,i+c),this.pos),this.pos+=c,i+=c,this.pos===o&&(this.process(n,0),this.pos=0)}return this.length+=t.length,this.roundClean(),this}digestInto(t){st(this),Bo(t,this),this.finished=!0;const{buffer:n,view:r,blockLen:o,isLE:s}=this;let{pos:i}=this;n[i++]=128,$e(this.buffer.subarray(i)),this.padOffset>o-i&&(this.process(r,0),i=0);for(let u=i;u<o;u++)n[u]=0;r.setBigUint64(o-8,BigInt(this.length*8),s),this.process(r,0);const c=St(t),a=this.outputLen;if(a%4)throw new Error("_sha2: outputLen must be aligned to 32bit");const f=a/4,d=this.get();if(f>d.length)throw new Error("_sha2: outputLen bigger than state");for(let u=0;u<f;u++)c.setUint32(4*u,d[u],s)}digest(){const{buffer:t,outputLen:n}=this;this.digestInto(t);const r=t.slice(0,n);return this.destroy(),r}_cloneInto(t){t||=new this.constructor,t.set(...this.get());const{blockLen:n,buffer:r,length:o,finished:s,destroyed:i,pos:c}=this;return t.destroyed=i,t.finished=s,t.length=o,t.pos=c,o%n&&t.buffer.set(r),t}clone(){return this._cloneInto()}}const he=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Oo=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),le=new Uint32Array(64);class $o extends Tr{constructor(t){super(64,t,8,!1)}get(){const{A:t,B:n,C:r,D:o,E:s,F:i,G:c,H:a}=this;return[t,n,r,o,s,i,c,a]}set(t,n,r,o,s,i,c,a){this.A=t|0,this.B=n|0,this.C=r|0,this.D=o|0,this.E=s|0,this.F=i|0,this.G=c|0,this.H=a|0}process(t,n){for(let u=0;u<16;u++,n+=4)le[u]=t.getUint32(n,!1);for(let u=16;u<64;u++){const y=le[u-15],l=le[u-2],b=ne(y,7)^ne(y,18)^y>>>3,v=ne(l,17)^ne(l,19)^l>>>10;le[u]=v+le[u-7]+b+le[u-16]|0}let{A:r,B:o,C:s,D:i,E:c,F:a,G:f,H:d}=this;for(let u=0;u<64;u++){const y=ne(c,6)^ne(c,11)^ne(c,25),l=d+y+Io(c,a,f)+Oo[u]+le[u]|0,v=(ne(r,2)^ne(r,13)^ne(r,22))+Ro(r,o,s)|0;d=f,f=a,a=c,c=i+l|0,i=s,s=o,o=r,r=l+v|0}r=r+this.A|0,o=o+this.B|0,s=s+this.C|0,i=i+this.D|0,c=c+this.E|0,a=a+this.F|0,f=f+this.G|0,d=d+this.H|0,this.set(r,o,s,i,c,a,f,d)}roundClean(){$e(le)}destroy(){this.set(0,0,0,0,0,0,0,0),$e(this.buffer)}}class Uo extends $o{A=he[0]|0;B=he[1]|0;C=he[2]|0;D=he[3]|0;E=he[4]|0;F=he[5]|0;G=he[6]|0;H=he[7]|0;constructor(){super(32)}}const ie=Lr(()=>new Uo,vo(1));const Vt=BigInt(0),_t=BigInt(1);function ct(e,t=""){if(typeof e!="boolean"){const n=t&&`"${t}" `;throw new Error(n+"expected boolean, got type="+typeof e)}return e}function Nr(e){if(typeof e=="bigint"){if(!tt(e))throw new Error("positive bigint expected, got "+e)}else Ae(e);return e}function Xe(e){const t=Nr(e).toString(16);return t.length&1?"0"+t:t}function Cr(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);return e===""?Vt:BigInt("0x"+e)}function de(e){return Cr(pt(e))}function Dr(e){return Cr(pt(ko(k(e)).reverse()))}function yt(e,t){Ae(t),e=Nr(e);const n=it(e.toString(16).padStart(t*2,"0"));if(n.length!==t)throw new Error("number too large");return n}function Wr(e,t){return yt(e,t).reverse()}function ko(e){return Uint8Array.from(e)}function Po(e){return Uint8Array.from(e,(t,n)=>{const r=t.charCodeAt(0);if(t.length!==1||r>127)throw new Error(`string contains non-ASCII character "${e[n]}" with code ${r} at position ${n}`);return r})}const tt=e=>typeof e=="bigint"&&Vt<=e;function _o(e,t,n){return tt(e)&&tt(t)&&tt(n)&&t<=e&&e<n}function Ho(e,t,n,r){if(!_o(t,n,r))throw new Error("expected valid "+e+": "+n+" <= n < "+r+", got "+t)}function Lo(e){let t;for(t=0;e>Vt;e>>=_t,t+=1);return t}const Mt=e=>(_t<<BigInt(e))-_t;function To(e,t,n){if(Ae(e,"hashLen"),Ae(t,"qByteLen"),typeof n!="function")throw new Error("hmacFn must be a function");const r=S=>new Uint8Array(S),o=Uint8Array.of(),s=Uint8Array.of(0),i=Uint8Array.of(1),c=1e3;let a=r(e),f=r(e),d=0;const u=()=>{a.fill(1),f.fill(0),d=0},y=(...S)=>n(f,oe(a,...S)),l=(S=o)=>{f=y(s,S),a=y(),S.length!==0&&(f=y(i,S),a=y())},b=()=>{if(d++>=c)throw new Error("drbg: tried max amount of iterations");let S=0;const O=[];for(;S<t;){a=y();const q=a.slice();O.push(q),S+=a.length}return oe(...O)};return(S,O)=>{u(),l(S);let q;for(;!(q=O(b()));)l();return u(),q}}function jt(e,t={},n={}){if(!e||typeof e!="object")throw new Error("expected valid options object");function r(s,i,c){const a=e[s];if(c&&a===void 0)return;const f=typeof a;if(f!==i||a===null)throw new Error(`param "${s}" is invalid: expected ${i}, got ${f}`)}const o=(s,i)=>Object.entries(s).forEach(([c,a])=>r(c,a,i));o(t,!1),o(n,!0)}function ur(e){const t=new WeakMap;return(n,...r)=>{const o=t.get(n);if(o!==void 0)return o;const s=e(n,...r);return t.set(n,s),s}}const F=BigInt(0),j=BigInt(1),Ee=BigInt(2),Kr=BigInt(3),qr=BigInt(4),Vr=BigInt(5),No=BigInt(7),Mr=BigInt(8),Co=BigInt(9),jr=BigInt(16);function Q(e,t){const n=e%t;return n>=F?n:t+n}function Y(e,t,n){let r=e;for(;t-- >F;)r*=r,r%=n;return r}function dr(e,t){if(e===F)throw new Error("invert: expected non-zero number");if(t<=F)throw new Error("invert: expected positive modulus, got "+t);let n=Q(e,t),r=t,o=F,s=j;for(;n!==F;){const c=r/n,a=r%n,f=o-s*c;r=n,n=a,o=s,s=f}if(r!==j)throw new Error("invert: does not exist");return Q(o,t)}function Ft(e,t,n){if(!e.eql(e.sqr(t),n))throw new Error("Cannot find square root")}function Fr(e,t){const n=(e.ORDER+j)/qr,r=e.pow(t,n);return Ft(e,r,t),r}function Do(e,t){const n=(e.ORDER-Vr)/Mr,r=e.mul(t,Ee),o=e.pow(r,n),s=e.mul(t,o),i=e.mul(e.mul(s,Ee),o),c=e.mul(s,e.sub(i,e.ONE));return Ft(e,c,t),c}function Wo(e){const t=gt(e),n=zr(e),r=n(t,t.neg(t.ONE)),o=n(t,r),s=n(t,t.neg(r)),i=(e+No)/jr;return(c,a)=>{let f=c.pow(a,i),d=c.mul(f,r);const u=c.mul(f,o),y=c.mul(f,s),l=c.eql(c.sqr(d),a),b=c.eql(c.sqr(u),a);f=c.cmov(f,d,l),d=c.cmov(y,u,b);const v=c.eql(c.sqr(d),a),S=c.cmov(f,d,v);return Ft(c,S,a),S}}function zr(e){if(e<Kr)throw new Error("sqrt is not defined for small field");let t=e-j,n=0;for(;t%Ee===F;)t/=Ee,n++;let r=Ee;const o=gt(e);for(;hr(o,r)===1;)if(r++>1e3)throw new Error("Cannot find square root: probably non-prime P");if(n===1)return Fr;let s=o.pow(r,t);const i=(t+j)/Ee;return function(a,f){if(a.is0(f))return f;if(hr(a,f)!==1)throw new Error("Cannot find square root");let d=n,u=a.mul(a.ONE,s),y=a.pow(f,t),l=a.pow(f,i);for(;!a.eql(y,a.ONE);){if(a.is0(y))return a.ZERO;let b=1,v=a.sqr(y);for(;!a.eql(v,a.ONE);)if(b++,v=a.sqr(v),b===d)throw new Error("Cannot find square root");const S=j<<BigInt(d-b-1),O=a.pow(u,S);d=b,u=a.sqr(O),y=a.mul(y,u),l=a.mul(l,O)}return l}}function Ko(e){return e%qr===Kr?Fr:e%Mr===Vr?Do:e%jr===Co?Wo(e):zr(e)}const qo=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function Vo(e){const t={ORDER:"bigint",BYTES:"number",BITS:"number"},n=qo.reduce((r,o)=>(r[o]="function",r),t);return jt(e,n),e}function Mo(e,t,n){if(n<F)throw new Error("invalid exponent, negatives unsupported");if(n===F)return e.ONE;if(n===j)return t;let r=e.ONE,o=t;for(;n>F;)n&j&&(r=e.mul(r,o)),o=e.sqr(o),n>>=j;return r}function Zr(e,t,n=!1){const r=new Array(t.length).fill(n?e.ZERO:void 0),o=t.reduce((i,c,a)=>e.is0(c)?i:(r[a]=i,e.mul(i,c)),e.ONE),s=e.inv(o);return t.reduceRight((i,c,a)=>e.is0(c)?i:(r[a]=e.mul(i,r[a]),e.mul(i,c)),s),r}function hr(e,t){const n=(e.ORDER-j)/Ee,r=e.pow(t,n),o=e.eql(r,e.ONE),s=e.eql(r,e.ZERO),i=e.eql(r,e.neg(e.ONE));if(!o&&!s&&!i)throw new Error("invalid Legendre symbol result");return o?1:s?0:-1}function jo(e,t){t!==void 0&&Ae(t);const n=t!==void 0?t:e.toString(2).length,r=Math.ceil(n/8);return{nBitLength:n,nByteLength:r}}class Fo{ORDER;BITS;BYTES;isLE;ZERO=F;ONE=j;_lengths;_sqrt;_mod;constructor(t,n={}){if(t<=F)throw new Error("invalid field: expected ORDER > 0, got "+t);let r;this.isLE=!1,n!=null&&typeof n=="object"&&(typeof n.BITS=="number"&&(r=n.BITS),typeof n.sqrt=="function"&&(this.sqrt=n.sqrt),typeof n.isLE=="boolean"&&(this.isLE=n.isLE),n.allowedLengths&&(this._lengths=n.allowedLengths?.slice()),typeof n.modFromBytes=="boolean"&&(this._mod=n.modFromBytes));const{nBitLength:o,nByteLength:s}=jo(t,r);if(s>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");this.ORDER=t,this.BITS=o,this.BYTES=s,this._sqrt=void 0,Object.preventExtensions(this)}create(t){return Q(t,this.ORDER)}isValid(t){if(typeof t!="bigint")throw new Error("invalid field element: expected bigint, got "+typeof t);return F<=t&&t<this.ORDER}is0(t){return t===F}isValidNot0(t){return!this.is0(t)&&this.isValid(t)}isOdd(t){return(t&j)===j}neg(t){return Q(-t,this.ORDER)}eql(t,n){return t===n}sqr(t){return Q(t*t,this.ORDER)}add(t,n){return Q(t+n,this.ORDER)}sub(t,n){return Q(t-n,this.ORDER)}mul(t,n){return Q(t*n,this.ORDER)}pow(t,n){return Mo(this,t,n)}div(t,n){return Q(t*dr(n,this.ORDER),this.ORDER)}sqrN(t){return t*t}addN(t,n){return t+n}subN(t,n){return t-n}mulN(t,n){return t*n}inv(t){return dr(t,this.ORDER)}sqrt(t){return this._sqrt||(this._sqrt=Ko(this.ORDER)),this._sqrt(this,t)}toBytes(t){return this.isLE?Wr(t,this.BYTES):yt(t,this.BYTES)}fromBytes(t,n=!1){k(t);const{_lengths:r,BYTES:o,isLE:s,ORDER:i,_mod:c}=this;if(r){if(!r.includes(t.length)||t.length>o)throw new Error("Field.fromBytes: expected "+r+" bytes, got "+t.length);const f=new Uint8Array(o);f.set(t,s?0:f.length-t.length),t=f}if(t.length!==o)throw new Error("Field.fromBytes: expected "+o+" bytes, got "+t.length);let a=s?Dr(t):de(t);if(c&&(a=Q(a,i)),!n&&!this.isValid(a))throw new Error("invalid field element: outside of range 0..ORDER");return a}invertBatch(t){return Zr(this,t)}cmov(t,n,r){return r?n:t}}function gt(e,t={}){return new Fo(e,t)}function Gr(e){if(typeof e!="bigint")throw new Error("field order must be bigint");const t=e.toString(2).length;return Math.ceil(t/8)}function Yr(e){const t=Gr(e);return t+Math.ceil(t/2)}function Xr(e,t,n=!1){k(e);const r=e.length,o=Gr(t),s=Yr(t);if(r<16||r<s||r>1024)throw new Error("expected "+s+"-1024 bytes of input, got "+r);const i=n?Dr(e):de(e),c=Q(i,t-j)+j;return n?Wr(c,o):yt(c,o)}const Ue=BigInt(0),me=BigInt(1);function at(e,t){const n=t.negate();return e?n:t}function lr(e,t){const n=Zr(e.Fp,t.map(r=>r.Z));return t.map((r,o)=>e.fromAffine(r.toAffine(n[o])))}function Qr(e,t){if(!Number.isSafeInteger(e)||e<=0||e>t)throw new Error("invalid window size, expected [1.."+t+"], got W="+e)}function vt(e,t){Qr(e,t);const n=Math.ceil(t/e)+1,r=2**(e-1),o=2**e,s=Mt(e),i=BigInt(e);return{windows:n,windowSize:r,mask:s,maxNumber:o,shiftBy:i}}function pr(e,t,n){const{windowSize:r,mask:o,maxNumber:s,shiftBy:i}=n;let c=Number(e&o),a=e>>i;c>r&&(c-=s,a+=me);const f=t*r,d=f+Math.abs(c)-1,u=c===0,y=c<0,l=t%2!==0;return{nextN:a,offset:d,isZero:u,isNeg:y,isNegF:l,offsetF:f}}const It=new WeakMap,Jr=new WeakMap;function Rt(e){return Jr.get(e)||1}function wr(e){if(e!==Ue)throw new Error("invalid wNAF")}class zo{BASE;ZERO;Fn;bits;constructor(t,n){this.BASE=t.BASE,this.ZERO=t.ZERO,this.Fn=t.Fn,this.bits=n}_unsafeLadder(t,n,r=this.ZERO){let o=t;for(;n>Ue;)n&me&&(r=r.add(o)),o=o.double(),n>>=me;return r}precomputeWindow(t,n){const{windows:r,windowSize:o}=vt(n,this.bits),s=[];let i=t,c=i;for(let a=0;a<r;a++){c=i,s.push(c);for(let f=1;f<o;f++)c=c.add(i),s.push(c);i=c.double()}return s}wNAF(t,n,r){if(!this.Fn.isValid(r))throw new Error("invalid scalar");let o=this.ZERO,s=this.BASE;const i=vt(t,this.bits);for(let c=0;c<i.windows;c++){const{nextN:a,offset:f,isZero:d,isNeg:u,isNegF:y,offsetF:l}=pr(r,c,i);r=a,d?s=s.add(at(y,n[l])):o=o.add(at(u,n[f]))}return wr(r),{p:o,f:s}}wNAFUnsafe(t,n,r,o=this.ZERO){const s=vt(t,this.bits);for(let i=0;i<s.windows&&r!==Ue;i++){const{nextN:c,offset:a,isZero:f,isNeg:d}=pr(r,i,s);if(r=c,!f){const u=n[a];o=o.add(d?u.negate():u)}}return wr(r),o}getPrecomputes(t,n,r){let o=It.get(n);return o||(o=this.precomputeWindow(n,t),t!==1&&(typeof r=="function"&&(o=r(o)),It.set(n,o))),o}cached(t,n,r){const o=Rt(t);return this.wNAF(o,this.getPrecomputes(o,t,r),n)}unsafe(t,n,r,o){const s=Rt(t);return s===1?this._unsafeLadder(t,n,o):this.wNAFUnsafe(s,this.getPrecomputes(s,t,r),n,o)}createCache(t,n){Qr(n,this.bits),Jr.set(t,n),It.delete(t)}hasCache(t){return Rt(t)!==1}}function Zo(e,t,n,r){let o=t,s=e.ZERO,i=e.ZERO;for(;n>Ue||r>Ue;)n&me&&(s=s.add(o)),r&me&&(i=i.add(o)),o=o.double(),n>>=me,r>>=me;return{p1:s,p2:i}}function yr(e,t,n){if(t){if(t.ORDER!==e)throw new Error("Field.ORDER must match order: Fp == p, Fn == n");return Vo(t),t}else return gt(e,{isLE:n})}function Go(e,t,n={},r){if(r===void 0&&(r=e==="edwards"),!t||typeof t!="object")throw new Error(`expected valid ${e} CURVE object`);for(const a of["p","n","h"]){const f=t[a];if(!(typeof f=="bigint"&&f>Ue))throw new Error(`CURVE.${a} must be positive bigint`)}const o=yr(t.p,n.Fp,r),s=yr(t.n,n.Fn,r),c=["Gx","Gy","a","b"];for(const a of c)if(!o.isValid(t[a]))throw new Error(`CURVE.${a} must be valid field element of CURVE.Fp`);return t=Object.freeze(Object.assign({},t)),{CURVE:t,Fp:o,Fn:s}}function en(e,t){return function(r){const o=e(r);return{secretKey:o,publicKey:t(o)}}}class tn{oHash;iHash;blockLen;outputLen;finished=!1;destroyed=!1;constructor(t,n){if(_r(t),k(n,void 0,"key"),this.iHash=t.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const r=this.blockLen,o=new Uint8Array(r);o.set(n.length>r?t.create().update(n).digest():n);for(let s=0;s<o.length;s++)o[s]^=54;this.iHash.update(o),this.oHash=t.create();for(let s=0;s<o.length;s++)o[s]^=106;this.oHash.update(o),$e(o)}update(t){return st(this),this.iHash.update(t),this}digestInto(t){st(this),k(t,this.outputLen,"output"),this.finished=!0,this.iHash.digestInto(t),this.oHash.update(t),this.oHash.digestInto(t),this.destroy()}digest(){const t=new Uint8Array(this.oHash.outputLen);return this.digestInto(t),t}_cloneInto(t){t||=Object.create(Object.getPrototypeOf(this),{});const{oHash:n,iHash:r,finished:o,destroyed:s,blockLen:i,outputLen:c}=this;return t=t,t.finished=o,t.destroyed=s,t.blockLen=i,t.outputLen=c,t.oHash=n._cloneInto(t.oHash),t.iHash=r._cloneInto(t.iHash),t}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}const rn=(e,t,n)=>new tn(e,t).update(n).digest();rn.create=(e,t)=>new tn(e,t);const gr=(e,t)=>(e+(e>=0?t:-t)/nn)/t;function Yo(e,t,n){const[[r,o],[s,i]]=t,c=gr(i*e,n),a=gr(-o*e,n);let f=e-c*r-a*s,d=-c*o-a*i;const u=f<fe,y=d<fe;u&&(f=-f),y&&(d=-d);const l=Mt(Math.ceil(Lo(n)/2))+Re;if(f<fe||f>=l||d<fe||d>=l)throw new Error("splitScalar (endomorphism): failed, k="+e);return{k1neg:u,k1:f,k2neg:y,k2:d}}function Ht(e){if(!["compact","recovered","der"].includes(e))throw new Error('Signature format must be "compact", "recovered", or "der"');return e}function Ot(e,t){const n={};for(let r of Object.keys(t))n[r]=e[r]===void 0?t[r]:e[r];return ct(n.lowS,"lowS"),ct(n.prehash,"prehash"),n.format!==void 0&&Ht(n.format),n}class Xo extends Error{constructor(t=""){super(t)}}const pe={Err:Xo,_tlv:{encode:(e,t)=>{const{Err:n}=pe;if(e<0||e>256)throw new n("tlv.encode: wrong tag");if(t.length&1)throw new n("tlv.encode: unpadded data");const r=t.length/2,o=Xe(r);if(o.length/2&128)throw new n("tlv.encode: long form length too big");const s=r>127?Xe(o.length/2|128):"";return Xe(e)+s+o+t},decode(e,t){const{Err:n}=pe;let r=0;if(e<0||e>256)throw new n("tlv.encode: wrong tag");if(t.length<2||t[r++]!==e)throw new n("tlv.decode: wrong tlv");const o=t[r++],s=!!(o&128);let i=0;if(!s)i=o;else{const a=o&127;if(!a)throw new n("tlv.decode(long): indefinite length not supported");if(a>4)throw new n("tlv.decode(long): byte length is too big");const f=t.subarray(r,r+a);if(f.length!==a)throw new n("tlv.decode: length bytes not complete");if(f[0]===0)throw new n("tlv.decode(long): zero leftmost byte");for(const d of f)i=i<<8|d;if(r+=a,i<128)throw new n("tlv.decode(long): not minimal encoding")}const c=t.subarray(r,r+i);if(c.length!==i)throw new n("tlv.decode: wrong value length");return{v:c,l:t.subarray(r+i)}}},_int:{encode(e){const{Err:t}=pe;if(e<fe)throw new t("integer: negative integers are not allowed");let n=Xe(e);if(Number.parseInt(n[0],16)&8&&(n="00"+n),n.length&1)throw new t("unexpected DER parsing assertion: unpadded hex");return n},decode(e){const{Err:t}=pe;if(e[0]&128)throw new t("invalid signature integer: negative");if(e[0]===0&&!(e[1]&128))throw new t("invalid signature integer: unnecessary leading zero");return de(e)}},toSig(e){const{Err:t,_int:n,_tlv:r}=pe,o=k(e,void 0,"signature"),{v:s,l:i}=r.decode(48,o);if(i.length)throw new t("invalid signature: left bytes after parsing");const{v:c,l:a}=r.decode(2,s),{v:f,l:d}=r.decode(2,a);if(d.length)throw new t("invalid signature: left bytes after parsing");return{r:n.decode(c),s:n.decode(f)}},hexFromSig(e){const{_tlv:t,_int:n}=pe,r=t.encode(2,n.encode(e.r)),o=t.encode(2,n.encode(e.s)),s=r+o;return t.encode(48,s)}},fe=BigInt(0),Re=BigInt(1),nn=BigInt(2),Qe=BigInt(3),Qo=BigInt(4);function Jo(e,t={}){const n=Go("weierstrass",e,t),{Fp:r,Fn:o}=n;let s=n.CURVE;const{h:i,n:c}=s;jt(t,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object"});const{endo:a}=t;if(a&&(!r.is0(s.a)||typeof a.beta!="bigint"||!Array.isArray(a.basises)))throw new Error('invalid endo: expected "beta": bigint and "basises": array');const f=sn(r,o);function d(){if(!r.isOdd)throw new Error("compression is not supported: Field does not have .isOdd()")}function u($,w,p){const{x:h,y:g}=w.toAffine(),m=r.toBytes(h);if(ct(p,"isCompressed"),p){d();const A=!r.isOdd(g);return oe(on(A),m)}else return oe(Uint8Array.of(4),m,r.toBytes(g))}function y($){k($,void 0,"Point");const{publicKey:w,publicKeyUncompressed:p}=f,h=$.length,g=$[0],m=$.subarray(1);if(h===w&&(g===2||g===3)){const A=r.fromBytes(m);if(!r.isValid(A))throw new Error("bad point: is not on curve, wrong x");const x=v(A);let E;try{E=r.sqrt(x)}catch(L){const P=L instanceof Error?": "+L.message:"";throw new Error("bad point: is not on curve, sqrt error"+P)}d();const B=r.isOdd(E);return(g&1)===1!==B&&(E=r.neg(E)),{x:A,y:E}}else if(h===p&&g===4){const A=r.BYTES,x=r.fromBytes(m.subarray(0,A)),E=r.fromBytes(m.subarray(A,A*2));if(!S(x,E))throw new Error("bad point: is not on curve");return{x,y:E}}else throw new Error(`bad point: got length ${h}, expected compressed=${w} or uncompressed=${p}`)}const l=t.toBytes||u,b=t.fromBytes||y;function v($){const w=r.sqr($),p=r.mul(w,$);return r.add(r.add(p,r.mul($,s.a)),s.b)}function S($,w){const p=r.sqr(w),h=v($);return r.eql(p,h)}if(!S(s.Gx,s.Gy))throw new Error("bad curve params: generator point");const O=r.mul(r.pow(s.a,Qe),Qo),q=r.mul(r.sqr(s.b),BigInt(27));if(r.is0(r.add(O,q)))throw new Error("bad curve params: a or b");function Z($,w,p=!1){if(!r.isValid(w)||p&&r.is0(w))throw new Error(`bad point coordinate ${$}`);return w}function V($){if(!($ instanceof U))throw new Error("Weierstrass Point expected")}function D($){if(!a||!a.basises)throw new Error("no endo");return Yo($,a.basises,o.ORDER)}const G=ur(($,w)=>{const{X:p,Y:h,Z:g}=$;if(r.eql(g,r.ONE))return{x:p,y:h};const m=$.is0();w==null&&(w=m?r.ONE:r.inv(g));const A=r.mul(p,w),x=r.mul(h,w),E=r.mul(g,w);if(m)return{x:r.ZERO,y:r.ZERO};if(!r.eql(E,r.ONE))throw new Error("invZ was invalid");return{x:A,y:x}}),Bt=ur($=>{if($.is0()){if(t.allowInfinityPoint&&!r.is0($.Y))return;throw new Error("bad point: ZERO")}const{x:w,y:p}=$.toAffine();if(!r.isValid(w)||!r.isValid(p))throw new Error("bad point: x or y not field elements");if(!S(w,p))throw new Error("bad point: equation left != right");if(!$.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});function De($,w,p,h,g){return p=new U(r.mul(p.X,$),p.Y,p.Z),w=at(h,w),p=at(g,p),w.add(p)}class U{static BASE=new U(s.Gx,s.Gy,r.ONE);static ZERO=new U(r.ZERO,r.ONE,r.ZERO);static Fp=r;static Fn=o;X;Y;Z;constructor(w,p,h){this.X=Z("x",w),this.Y=Z("y",p,!0),this.Z=Z("z",h),Object.freeze(this)}static CURVE(){return s}static fromAffine(w){const{x:p,y:h}=w||{};if(!w||!r.isValid(p)||!r.isValid(h))throw new Error("invalid affine point");if(w instanceof U)throw new Error("projective point not allowed");return r.is0(p)&&r.is0(h)?U.ZERO:new U(p,h,r.ONE)}static fromBytes(w){const p=U.fromAffine(b(k(w,void 0,"point")));return p.assertValidity(),p}static fromHex(w){return U.fromBytes(it(w))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(w=8,p=!0){return be.createCache(this,w),p||this.multiply(Qe),this}assertValidity(){Bt(this)}hasEvenY(){const{y:w}=this.toAffine();if(!r.isOdd)throw new Error("Field doesn't support isOdd");return!r.isOdd(w)}equals(w){V(w);const{X:p,Y:h,Z:g}=this,{X:m,Y:A,Z:x}=w,E=r.eql(r.mul(p,x),r.mul(m,g)),B=r.eql(r.mul(h,x),r.mul(A,g));return E&&B}negate(){return new U(this.X,r.neg(this.Y),this.Z)}double(){const{a:w,b:p}=s,h=r.mul(p,Qe),{X:g,Y:m,Z:A}=this;let x=r.ZERO,E=r.ZERO,B=r.ZERO,I=r.mul(g,g),L=r.mul(m,m),P=r.mul(A,A),R=r.mul(g,m);return R=r.add(R,R),B=r.mul(g,A),B=r.add(B,B),x=r.mul(w,B),E=r.mul(h,P),E=r.add(x,E),x=r.sub(L,E),E=r.add(L,E),E=r.mul(x,E),x=r.mul(R,x),B=r.mul(h,B),P=r.mul(w,P),R=r.sub(I,P),R=r.mul(w,R),R=r.add(R,B),B=r.add(I,I),I=r.add(B,I),I=r.add(I,P),I=r.mul(I,R),E=r.add(E,I),P=r.mul(m,A),P=r.add(P,P),I=r.mul(P,R),x=r.sub(x,I),B=r.mul(P,L),B=r.add(B,B),B=r.add(B,B),new U(x,E,B)}add(w){V(w);const{X:p,Y:h,Z:g}=this,{X:m,Y:A,Z:x}=w;let E=r.ZERO,B=r.ZERO,I=r.ZERO;const L=s.a,P=r.mul(s.b,Qe);let R=r.mul(p,m),_=r.mul(h,A),W=r.mul(g,x),re=r.add(p,h),H=r.add(m,A);re=r.mul(re,H),H=r.add(R,_),re=r.sub(re,H),H=r.add(p,g);let M=r.add(m,x);return H=r.mul(H,M),M=r.add(R,W),H=r.sub(H,M),M=r.add(h,g),E=r.add(A,x),M=r.mul(M,E),E=r.add(_,W),M=r.sub(M,E),I=r.mul(L,H),E=r.mul(P,W),I=r.add(E,I),E=r.sub(_,I),I=r.add(_,I),B=r.mul(E,I),_=r.add(R,R),_=r.add(_,R),W=r.mul(L,W),H=r.mul(P,H),_=r.add(_,W),W=r.sub(R,W),W=r.mul(L,W),H=r.add(H,W),R=r.mul(_,H),B=r.add(B,R),R=r.mul(M,H),E=r.mul(re,E),E=r.sub(E,R),R=r.mul(re,_),I=r.mul(M,I),I=r.add(I,R),new U(E,B,I)}subtract(w){return this.add(w.negate())}is0(){return this.equals(U.ZERO)}multiply(w){const{endo:p}=t;if(!o.isValidNot0(w))throw new Error("invalid scalar: out of range");let h,g;const m=A=>be.cached(this,A,x=>lr(U,x));if(p){const{k1neg:A,k1:x,k2neg:E,k2:B}=D(w),{p:I,f:L}=m(x),{p:P,f:R}=m(B);g=L.add(R),h=De(p.beta,I,P,A,E)}else{const{p:A,f:x}=m(w);h=A,g=x}return lr(U,[h,g])[0]}multiplyUnsafe(w){const{endo:p}=t,h=this;if(!o.isValid(w))throw new Error("invalid scalar: out of range");if(w===fe||h.is0())return U.ZERO;if(w===Re)return h;if(be.hasCache(this))return this.multiply(w);if(p){const{k1neg:g,k1:m,k2neg:A,k2:x}=D(w),{p1:E,p2:B}=Zo(U,h,m,x);return De(p.beta,E,B,g,A)}else return be.unsafe(h,w)}toAffine(w){return G(this,w)}isTorsionFree(){const{isTorsionFree:w}=t;return i===Re?!0:w?w(U,this):be.unsafe(this,c).is0()}clearCofactor(){const{clearCofactor:w}=t;return i===Re?this:w?w(U,this):this.multiplyUnsafe(i)}isSmallOrder(){return this.multiplyUnsafe(i).is0()}toBytes(w=!0){return ct(w,"isCompressed"),this.assertValidity(),l(U,this,w)}toHex(w=!0){return pt(this.toBytes(w))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}}const Ze=o.BITS,be=new zo(U,t.endo?Math.ceil(Ze/2):Ze);return U.BASE.precompute(8),U}function on(e){return Uint8Array.of(e?2:3)}function sn(e,t){return{secretKey:t.BYTES,publicKey:1+e.BYTES,publicKeyUncompressed:1+2*e.BYTES,publicKeyHasPrefix:!0,signature:2*t.BYTES}}function es(e,t={}){const{Fn:n}=e,r=t.randomBytes||wt,o=Object.assign(sn(e.Fp,n),{seed:Yr(n.ORDER)});function s(l){try{const b=n.fromBytes(l);return n.isValidNot0(b)}catch{return!1}}function i(l,b){const{publicKey:v,publicKeyUncompressed:S}=o;try{const O=l.length;return b===!0&&O!==v||b===!1&&O!==S?!1:!!e.fromBytes(l)}catch{return!1}}function c(l=r(o.seed)){return Xr(k(l,o.seed,"seed"),n.ORDER)}function a(l,b=!0){return e.BASE.multiply(n.fromBytes(l)).toBytes(b)}function f(l){const{secretKey:b,publicKey:v,publicKeyUncompressed:S}=o;if(!qt(l)||"_lengths"in n&&n._lengths||b===v)return;const O=k(l,void 0,"key").length;return O===v||O===S}function d(l,b,v=!0){if(f(l)===!0)throw new Error("first arg must be private key");if(f(b)===!1)throw new Error("second arg must be public key");const S=n.fromBytes(l);return e.fromBytes(b).multiply(S).toBytes(v)}const u={isValidSecretKey:s,isValidPublicKey:i,randomSecretKey:c},y=en(c,a);return Object.freeze({getPublicKey:a,getSharedSecret:d,keygen:y,Point:e,utils:u,lengths:o})}function ts(e,t,n={}){_r(t),jt(n,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"}),n=Object.assign({},n);const r=n.randomBytes||wt,o=n.hmac||((p,h)=>rn(t,p,h)),{Fp:s,Fn:i}=e,{ORDER:c,BITS:a}=i,{keygen:f,getPublicKey:d,getSharedSecret:u,utils:y,lengths:l}=es(e,n),b={prehash:!0,lowS:typeof n.lowS=="boolean"?n.lowS:!0,format:"compact",extraEntropy:!1},v=c*nn<s.ORDER;function S(p){const h=c>>Re;return p>h}function O(p,h){if(!i.isValidNot0(h))throw new Error(`invalid signature ${p}: out of range 1..Point.Fn.ORDER`);return h}function q(){if(v)throw new Error('"recovered" sig type is not supported for cofactor >2 curves')}function Z(p,h){Ht(h);const g=l.signature,m=h==="compact"?g:h==="recovered"?g+1:void 0;return k(p,m)}class V{r;s;recovery;constructor(h,g,m){if(this.r=O("r",h),this.s=O("s",g),m!=null){if(q(),![0,1,2,3].includes(m))throw new Error("invalid recovery id");this.recovery=m}Object.freeze(this)}static fromBytes(h,g=b.format){Z(h,g);let m;if(g==="der"){const{r:B,s:I}=pe.toSig(k(h));return new V(B,I)}g==="recovered"&&(m=h[0],g="compact",h=h.subarray(1));const A=l.signature/2,x=h.subarray(0,A),E=h.subarray(A,A*2);return new V(i.fromBytes(x),i.fromBytes(E),m)}static fromHex(h,g){return this.fromBytes(it(h),g)}assertRecovery(){const{recovery:h}=this;if(h==null)throw new Error("invalid recovery id: must be present");return h}addRecoveryBit(h){return new V(this.r,this.s,h)}recoverPublicKey(h){const{r:g,s:m}=this,A=this.assertRecovery(),x=A===2||A===3?g+c:g;if(!s.isValid(x))throw new Error("invalid recovery id: sig.r+curve.n != R.x");const E=s.toBytes(x),B=e.fromBytes(oe(on((A&1)===0),E)),I=i.inv(x),L=G(k(h,void 0,"msgHash")),P=i.create(-L*I),R=i.create(m*I),_=e.BASE.multiplyUnsafe(P).add(B.multiplyUnsafe(R));if(_.is0())throw new Error("invalid recovery: point at infinify");return _.assertValidity(),_}hasHighS(){return S(this.s)}toBytes(h=b.format){if(Ht(h),h==="der")return it(pe.hexFromSig(this));const{r:g,s:m}=this,A=i.toBytes(g),x=i.toBytes(m);return h==="recovered"?(q(),oe(Uint8Array.of(this.assertRecovery()),A,x)):oe(A,x)}toHex(h){return pt(this.toBytes(h))}}const D=n.bits2int||function(h){if(h.length>8192)throw new Error("input is too large");const g=de(h),m=h.length*8-a;return m>0?g>>BigInt(m):g},G=n.bits2int_modN||function(h){return i.create(D(h))},Bt=Mt(a);function De(p){return Ho("num < 2^"+a,p,fe,Bt),i.toBytes(p)}function U(p,h){return k(p,void 0,"message"),h?k(t(p),void 0,"prehashed message"):p}function Ze(p,h,g){const{lowS:m,prehash:A,extraEntropy:x}=Ot(g,b);p=U(p,A);const E=G(p),B=i.fromBytes(h);if(!i.isValidNot0(B))throw new Error("invalid private key");const I=[De(B),De(E)];if(x!=null&&x!==!1){const _=x===!0?r(l.secretKey):x;I.push(k(_,void 0,"extraEntropy"))}const L=oe(...I),P=E;function R(_){const W=D(_);if(!i.isValidNot0(W))return;const re=i.inv(W),H=e.BASE.multiply(W).toAffine(),M=i.create(H.x);if(M===fe)return;const Ge=i.create(re*i.create(P+M*B));if(Ge===fe)return;let nr=(H.x===M?0:2)|Number(H.y&Re),or=Ge;return m&&S(Ge)&&(or=i.neg(Ge),nr^=1),new V(M,or,v?void 0:nr)}return{seed:L,k2sig:R}}function be(p,h,g={}){const{seed:m,k2sig:A}=Ze(p,h,g);return To(t.outputLen,i.BYTES,o)(m,A).toBytes(g.format)}function $(p,h,g,m={}){const{lowS:A,prehash:x,format:E}=Ot(m,b);if(g=k(g,void 0,"publicKey"),h=U(h,x),!qt(p)){const B=p instanceof V?", use sig.toBytes()":"";throw new Error("verify expects Uint8Array signature"+B)}Z(p,E);try{const B=V.fromBytes(p,E),I=e.fromBytes(g);if(A&&B.hasHighS())return!1;const{r:L,s:P}=B,R=G(h),_=i.inv(P),W=i.create(R*_),re=i.create(L*_),H=e.BASE.multiplyUnsafe(W).add(I.multiplyUnsafe(re));return H.is0()?!1:i.create(H.x)===L}catch{return!1}}function w(p,h,g={}){const{prehash:m}=Ot(g,b);return h=U(h,m),V.fromBytes(p,"recovered").recoverPublicKey(h).toBytes()}return Object.freeze({keygen:f,getPublicKey:d,getSharedSecret:u,utils:y,lengths:l,Point:e,sign:be,verify:$,recoverPublicKey:w,Signature:V,hash:t})}const bt={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},rs={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]},ns=BigInt(0),Lt=BigInt(2);function os(e){const t=bt.p,n=BigInt(3),r=BigInt(6),o=BigInt(11),s=BigInt(22),i=BigInt(23),c=BigInt(44),a=BigInt(88),f=e*e*e%t,d=f*f*e%t,u=Y(d,n,t)*d%t,y=Y(u,n,t)*d%t,l=Y(y,Lt,t)*f%t,b=Y(l,o,t)*l%t,v=Y(b,s,t)*b%t,S=Y(v,c,t)*v%t,O=Y(S,a,t)*S%t,q=Y(O,c,t)*v%t,Z=Y(q,n,t)*d%t,V=Y(Z,i,t)*b%t,D=Y(V,r,t)*f%t,G=Y(D,Lt,t);if(!ft.eql(ft.sqr(G),e))throw new Error("Cannot find square root");return G}const ft=gt(bt.p,{sqrt:os}),Se=Jo(bt,{Fp:ft,endo:rs}),Ie=ts(Se,ie),br={};function ut(e,...t){let n=br[e];if(n===void 0){const r=ie(Po(e));n=oe(r,r),br[e]=n}return ie(oe(n,...t))}const zt=e=>e.toBytes(!0).slice(1),Zt=e=>e%Lt===ns;function Tt(e){const{Fn:t,BASE:n}=Se,r=t.fromBytes(e),o=n.multiply(r);return{scalar:Zt(o.y)?r:t.neg(r),bytes:zt(o)}}function cn(e){const t=ft;if(!t.isValidNot0(e))throw new Error("invalid x: Fail if x ≥ p");const n=t.create(e*e),r=t.create(n*e+BigInt(7));let o=t.sqrt(r);Zt(o)||(o=t.neg(o));const s=Se.fromAffine({x:e,y:o});return s.assertValidity(),s}const Ke=de;function an(...e){return Se.Fn.create(Ke(ut("BIP0340/challenge",...e)))}function Er(e){return Tt(e).bytes}function ss(e,t,n=wt(32)){const{Fn:r}=Se,o=k(e,void 0,"message"),{bytes:s,scalar:i}=Tt(t),c=k(n,32,"auxRand"),a=r.toBytes(i^Ke(ut("BIP0340/aux",c))),f=ut("BIP0340/nonce",a,s,o),{bytes:d,scalar:u}=Tt(f),y=an(d,s,o),l=new Uint8Array(64);if(l.set(d,0),l.set(r.toBytes(r.create(u+y*i)),32),!fn(l,o,s))throw new Error("sign: Invalid signature produced");return l}function fn(e,t,n){const{Fp:r,Fn:o,BASE:s}=Se,i=k(e,64,"signature"),c=k(t,void 0,"message"),a=k(n,32,"publicKey");try{const f=cn(Ke(a)),d=Ke(i.subarray(0,32));if(!r.isValidNot0(d))return!1;const u=Ke(i.subarray(32,64));if(!o.isValidNot0(u))return!1;const y=an(o.toBytes(d),zt(f),c),l=s.multiplyUnsafe(u).add(f.multiplyUnsafe(o.neg(y))),{x:b,y:v}=l.toAffine();return!(l.is0()||!Zt(v)||b!==d)}catch{return!1}}const ve=(()=>{const n=(r=wt(48))=>Xr(r,bt.n);return{keygen:en(n,Er),getPublicKey:Er,sign:ss,verify:fn,Point:Se,utils:{randomSecretKey:n,taggedHash:ut,lift_x:cn,pointToBytes:zt},lengths:{secretKey:32,publicKey:32,publicKeyHasPrefix:!1,signature:64,seed:48}}})(),is=Uint8Array.from([7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8]),un=Uint8Array.from(new Array(16).fill(0).map((e,t)=>t)),cs=un.map(e=>(9*e+5)%16),dn=(()=>{const n=[[un],[cs]];for(let r=0;r<4;r++)for(let o of n)o.push(o[r].map(s=>is[s]));return n})(),hn=dn[0],ln=dn[1],pn=[[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8],[12,13,11,15,6,9,9,7,12,15,11,13,7,8,7,7],[13,15,14,11,7,7,6,8,13,14,13,12,5,5,6,9],[14,11,12,14,8,6,5,5,15,12,15,14,9,9,8,6],[15,12,13,13,9,5,8,6,14,11,12,11,8,6,5,5]].map(e=>Uint8Array.from(e)),as=hn.map((e,t)=>e.map(n=>pn[t][n])),fs=ln.map((e,t)=>e.map(n=>pn[t][n])),us=Uint32Array.from([0,1518500249,1859775393,2400959708,2840853838]),ds=Uint32Array.from([1352829926,1548603684,1836072691,2053994217,0]);function mr(e,t,n,r){return e===0?t^n^r:e===1?t&n|~t&r:e===2?(t|~n)^r:e===3?t&r|n&~r:t^(n|~r)}const Je=new Uint32Array(16);class hs extends Tr{h0=1732584193;h1=-271733879;h2=-1732584194;h3=271733878;h4=-1009589776;constructor(){super(64,20,8,!0)}get(){const{h0:t,h1:n,h2:r,h3:o,h4:s}=this;return[t,n,r,o,s]}set(t,n,r,o,s){this.h0=t|0,this.h1=n|0,this.h2=r|0,this.h3=o|0,this.h4=s|0}process(t,n){for(let l=0;l<16;l++,n+=4)Je[l]=t.getUint32(n,!0);let r=this.h0|0,o=r,s=this.h1|0,i=s,c=this.h2|0,a=c,f=this.h3|0,d=f,u=this.h4|0,y=u;for(let l=0;l<5;l++){const b=4-l,v=us[l],S=ds[l],O=hn[l],q=ln[l],Z=as[l],V=fs[l];for(let D=0;D<16;D++){const G=Ye(r+mr(l,s,c,f)+Je[O[D]]+v,Z[D])+u|0;r=u,u=f,f=Ye(c,10)|0,c=s,s=G}for(let D=0;D<16;D++){const G=Ye(o+mr(b,i,a,d)+Je[q[D]]+S,V[D])+y|0;o=y,y=d,d=Ye(a,10)|0,a=i,i=G}}this.set(this.h1+c+d|0,this.h2+f+y|0,this.h3+u+o|0,this.h4+r+i|0,this.h0+s+a|0)}roundClean(){$e(Je)}destroy(){this.destroyed=!0,$e(this.buffer),this.set(0,0,0,0,0)}}const ls=Lr(()=>new hs),wn=Uint8Array.of(),ps=Uint8Array.of(0);function ke(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function X(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function ws(...e){let t=0;for(let r=0;r<e.length;r++){const o=e[r];if(!X(o))throw new Error("Uint8Array expected");t+=o.length}const n=new Uint8Array(t);for(let r=0,o=0;r<e.length;r++){const s=e[r];n.set(s,o),o+=s.length}return n}const yn=e=>new DataView(e.buffer,e.byteOffset,e.byteLength);function Ve(e){return Object.prototype.toString.call(e)==="[object Object]"}function ce(e){return Number.isSafeInteger(e)}const Gt={equalBytes:ke,isBytes:X,concatBytes:ws},gn=e=>{if(e!==null&&typeof e!="string"&&!ee(e)&&!X(e)&&!ce(e))throw new Error(`lengthCoder: expected null | number | Uint8Array | CoderType, got ${e} (${typeof e})`);return{encodeStream(t,n){if(e===null)return;if(ee(e))return e.encodeStream(t,n);let r;if(typeof e=="number"?r=e:typeof e=="string"&&(r=ue.resolve(t.stack,e)),typeof r=="bigint"&&(r=Number(r)),r===void 0||r!==n)throw t.err(`Wrong length: ${r} len=${e} exp=${n} (${typeof n})`)},decodeStream(t){let n;if(ee(e)?n=Number(e.decodeStream(t)):typeof e=="number"?n=e:typeof e=="string"&&(n=ue.resolve(t.stack,e)),typeof n=="bigint"&&(n=Number(n)),typeof n!="number")throw t.err(`Wrong length: ${n}`);return n}}},C={BITS:32,FULL_MASK:-1>>>0,len:e=>Math.ceil(e/32),create:e=>new Uint32Array(C.len(e)),clean:e=>e.fill(0),debug:e=>Array.from(e).map(t=>(t>>>0).toString(2).padStart(32,"0")),checkLen:(e,t)=>{if(C.len(t)!==e.length)throw new Error(`wrong length=${e.length}. Expected: ${C.len(t)}`)},chunkLen:(e,t,n)=>{if(t<0)throw new Error(`wrong pos=${t}`);if(t+n>e)throw new Error(`wrong range=${t}/${n} of ${e}`)},set:(e,t,n,r=!0)=>!r&&(e[t]&n)!==0?!1:(e[t]|=n,!0),pos:(e,t)=>({chunk:Math.floor((e+t)/32),mask:1<<32-(e+t)%32-1}),indices:(e,t,n=!1)=>{C.checkLen(e,t);const{FULL_MASK:r,BITS:o}=C,s=o-t%o,i=s?r>>>s<<s:r,c=[];for(let a=0;a<e.length;a++){let f=e[a];if(n&&(f=~f),a===e.length-1&&(f&=i),f!==0)for(let d=0;d<o;d++){const u=1<<o-d-1;f&u&&c.push(a*o+d)}}return c},range:e=>{const t=[];let n;for(const r of e)n===void 0||r!==n.pos+n.length?t.push(n={pos:r,length:1}):n.length+=1;return t},rangeDebug:(e,t,n=!1)=>`[${C.range(C.indices(e,t,n)).map(r=>`(${r.pos}/${r.length})`).join(", ")}]`,setRange:(e,t,n,r,o=!0)=>{C.chunkLen(t,n,r);const{FULL_MASK:s,BITS:i}=C,c=n%i?Math.floor(n/i):void 0,a=n+r,f=a%i?Math.floor(a/i):void 0;if(c!==void 0&&c===f)return C.set(e,c,s>>>i-r<<i-r-n,o);if(c!==void 0&&!C.set(e,c,s>>>n%i,o))return!1;const d=c!==void 0?c+1:n/i,u=f!==void 0?f:a/i;for(let y=d;y<u;y++)if(!C.set(e,y,s,o))return!1;return!(f!==void 0&&c!==f&&!C.set(e,f,s<<i-a%i,o))}},ue={pushObj:(e,t,n)=>{const r={obj:t};e.push(r),n((o,s)=>{r.field=o,s(),r.field=void 0}),e.pop()},path:e=>{const t=[];for(const n of e)n.field!==void 0&&t.push(n.field);return t.join("/")},err:(e,t,n)=>{const r=new Error(`${e}(${ue.path(t)}): ${typeof n=="string"?n:n.message}`);return n instanceof Error&&n.stack&&(r.stack=n.stack),r},resolve:(e,t)=>{const n=t.split("/"),r=e.map(i=>i.obj);let o=0;for(;o<n.length&&n[o]==="..";o++)r.pop();let s=r.pop();for(;o<n.length;o++){if(!s||s[n[o]]===void 0)return;s=s[n[o]]}return s}};class Yt{pos=0;data;opts;stack;parent;parentOffset;bitBuf=0;bitPos=0;bs;view;constructor(t,n={},r=[],o=void 0,s=0){this.data=t,this.opts=n,this.stack=r,this.parent=o,this.parentOffset=s,this.view=yn(t)}_enablePointers(){if(this.parent)return this.parent._enablePointers();this.bs||(this.bs=C.create(this.data.length),C.setRange(this.bs,this.data.length,0,this.pos,this.opts.allowMultipleReads))}markBytesBS(t,n){return this.parent?this.parent.markBytesBS(this.parentOffset+t,n):!n||!this.bs?!0:C.setRange(this.bs,this.data.length,t,n,!1)}markBytes(t){const n=this.pos;this.pos+=t;const r=this.markBytesBS(n,t);if(!this.opts.allowMultipleReads&&!r)throw this.err(`multiple read pos=${this.pos} len=${t}`);return r}pushObj(t,n){return ue.pushObj(this.stack,t,n)}readView(t,n){if(!Number.isFinite(t))throw this.err(`readView: wrong length=${t}`);if(this.pos+t>this.data.length)throw this.err("readView: Unexpected end of buffer");const r=n(this.view,this.pos);return this.markBytes(t),r}absBytes(t){if(t>this.data.length)throw new Error("Unexpected end of buffer");return this.data.subarray(t)}finish(){if(!this.opts.allowUnreadBytes){if(this.bitPos)throw this.err(`${this.bitPos} bits left after unpack: ${J.encode(this.data.slice(this.pos))}`);if(this.bs&&!this.parent){const t=C.indices(this.bs,this.data.length,!0);if(t.length){const n=C.range(t).map(({pos:r,length:o})=>`(${r}/${o})[${J.encode(this.data.subarray(r,r+o))}]`).join(", ");throw this.err(`unread byte ranges: ${n} (total=${this.data.length})`)}else return}if(!this.isEnd())throw this.err(`${this.leftBytes} bytes ${this.bitPos} bits left after unpack: ${J.encode(this.data.slice(this.pos))}`)}}err(t){return ue.err("Reader",this.stack,t)}offsetReader(t){if(t>this.data.length)throw this.err("offsetReader: Unexpected end of buffer");return new Yt(this.absBytes(t),this.opts,this.stack,this,t)}bytes(t,n=!1){if(this.bitPos)throw this.err("readBytes: bitPos not empty");if(!Number.isFinite(t))throw this.err(`readBytes: wrong length=${t}`);if(this.pos+t>this.data.length)throw this.err("readBytes: Unexpected end of buffer");const r=this.data.subarray(this.pos,this.pos+t);return n||this.markBytes(t),r}byte(t=!1){if(this.bitPos)throw this.err("readByte: bitPos not empty");if(this.pos+1>this.data.length)throw this.err("readBytes: Unexpected end of buffer");const n=this.data[this.pos];return t||this.markBytes(1),n}get leftBytes(){return this.data.length-this.pos}get totalBytes(){return this.data.length}isEnd(){return this.pos>=this.data.length&&!this.bitPos}bits(t){if(t>32)throw this.err("BitReader: cannot read more than 32 bits in single call");let n=0;for(;t;){this.bitPos||(this.bitBuf=this.byte(),this.bitPos=8);const r=Math.min(t,this.bitPos);this.bitPos-=r,n=n<<r|this.bitBuf>>this.bitPos&2**r-1,this.bitBuf&=2**this.bitPos-1,t-=r}return n>>>0}find(t,n=this.pos){if(!X(t))throw this.err(`find: needle is not bytes! ${t}`);if(this.bitPos)throw this.err("findByte: bitPos not empty");if(!t.length)throw this.err("find: needle is empty");for(let r=n;(r=this.data.indexOf(t[0],r))!==-1;r++){if(r===-1||this.data.length-r<t.length)return;if(ke(t,this.data.subarray(r,r+t.length)))return r}}}class ys{pos=0;stack;buffers=[];ptrs=[];bitBuf=0;bitPos=0;viewBuf=new Uint8Array(8);view;finished=!1;constructor(t=[]){this.stack=t,this.view=yn(this.viewBuf)}pushObj(t,n){return ue.pushObj(this.stack,t,n)}writeView(t,n){if(this.finished)throw this.err("buffer: finished");if(!ce(t)||t>8)throw new Error(`wrong writeView length=${t}`);n(this.view),this.bytes(this.viewBuf.slice(0,t)),this.viewBuf.fill(0)}err(t){if(this.finished)throw this.err("buffer: finished");return ue.err("Reader",this.stack,t)}bytes(t){if(this.finished)throw this.err("buffer: finished");if(this.bitPos)throw this.err("writeBytes: ends with non-empty bit buffer");this.buffers.push(t),this.pos+=t.length}byte(t){if(this.finished)throw this.err("buffer: finished");if(this.bitPos)throw this.err("writeByte: ends with non-empty bit buffer");this.buffers.push(new Uint8Array([t])),this.pos++}finish(t=!0){if(this.finished)throw this.err("buffer: finished");if(this.bitPos)throw this.err("buffer: ends with non-empty bit buffer");const n=this.buffers.concat(this.ptrs.map(s=>s.buffer)),r=n.map(s=>s.length).reduce((s,i)=>s+i,0),o=new Uint8Array(r);for(let s=0,i=0;s<n.length;s++){const c=n[s];o.set(c,i),i+=c.length}for(let s=this.pos,i=0;i<this.ptrs.length;i++){const c=this.ptrs[i];o.set(c.ptr.encode(s),c.pos),s+=c.buffer.length}if(t){this.buffers=[];for(const s of this.ptrs)s.buffer.fill(0);this.ptrs=[],this.finished=!0,this.bitBuf=0}return o}bits(t,n){if(n>32)throw this.err("writeBits: cannot write more than 32 bits in single call");if(t>=2**n)throw this.err(`writeBits: value (${t}) >= 2**bits (${n})`);for(;n;){const r=Math.min(n,8-this.bitPos);this.bitBuf=this.bitBuf<<r|t>>n-r,this.bitPos+=r,n-=r,t&=2**n-1,this.bitPos===8&&(this.bitPos=0,this.buffers.push(new Uint8Array([this.bitBuf])),this.pos++)}}}const Nt=e=>Uint8Array.from(e).reverse();function gs(e,t,n){if(n){const r=2n**(t-1n);if(e<-r||e>=r)throw new Error(`value out of signed bounds. Expected ${-r} <= ${e} < ${r}`)}else if(0n>e||e>=2n**t)throw new Error(`value out of unsigned bounds. Expected 0 <= ${e} < ${2n**t}`)}function bn(e){return{encodeStream:e.encodeStream,decodeStream:e.decodeStream,size:e.size,encode:t=>{const n=new ys;return e.encodeStream(n,t),n.finish()},decode:(t,n={})=>{const r=new Yt(t,n),o=e.decodeStream(r);return r.finish(),o}}}function Me(e,t){if(!ee(e))throw new Error(`validate: invalid inner value ${e}`);if(typeof t!="function")throw new Error("validate: fn should be function");return bn({size:e.size,encodeStream:(n,r)=>{let o;try{o=t(r)}catch(s){throw n.err(s)}e.encodeStream(n,o)},decodeStream:n=>{const r=e.decodeStream(n);try{return t(r)}catch(o){throw n.err(o)}}})}const z=e=>{const t=bn(e);return e.validate?Me(t,e.validate):t},Et=e=>Ve(e)&&typeof e.decode=="function"&&typeof e.encode=="function";function ee(e){return Ve(e)&&Et(e)&&typeof e.encodeStream=="function"&&typeof e.decodeStream=="function"&&(e.size===void 0||ce(e.size))}function bs(){return{encode:e=>{if(!Array.isArray(e))throw new Error("array expected");const t={};for(const n of e){if(!Array.isArray(n)||n.length!==2)throw new Error("array of two elements expected");const r=n[0],o=n[1];if(t[r]!==void 0)throw new Error(`key(${r}) appears twice in struct`);t[r]=o}return t},decode:e=>{if(!Ve(e))throw new Error(`expected plain object, got ${e}`);return Object.entries(e)}}}const Es={encode:e=>{if(typeof e!="bigint")throw new Error(`expected bigint, got ${typeof e}`);if(e>BigInt(Number.MAX_SAFE_INTEGER))throw new Error(`element bigger than MAX_SAFE_INTEGER=${e}`);return Number(e)},decode:e=>{if(!ce(e))throw new Error("element is not a safe integer");return BigInt(e)}};function ms(e){if(!Ve(e))throw new Error("plain object expected");return{encode:t=>{if(!ce(t)||!(t in e))throw new Error(`wrong value ${t}`);return e[t]},decode:t=>{if(typeof t!="string")throw new Error(`wrong value ${typeof t}`);return e[t]}}}function xs(e,t=!1){if(!ce(e))throw new Error(`decimal/precision: wrong value ${e}`);if(typeof t!="boolean")throw new Error(`decimal/round: expected boolean, got ${typeof t}`);const n=10n**BigInt(e);return{encode:r=>{if(typeof r!="bigint")throw new Error(`expected bigint, got ${typeof r}`);let o=(r<0n?-r:r).toString(10),s=o.length-e;s<0&&(o=o.padStart(o.length-s,"0"),s=0);let i=o.length-1;for(;i>=s&&o[i]==="0";i--);let c=o.slice(0,s),a=o.slice(s,i+1);return c||(c="0"),r<0n&&(c="-"+c),a?`${c}.${a}`:c},decode:r=>{if(typeof r!="string")throw new Error(`expected string, got ${typeof r}`);if(r==="-0")throw new Error("negative zero is not allowed");let o=!1;if(r.startsWith("-")&&(o=!0,r=r.slice(1)),!/^(0|[1-9]\d*)(\.\d+)?$/.test(r))throw new Error(`wrong string value=${r}`);let s=r.indexOf(".");s=s===-1?r.length:s;const i=r.slice(0,s),c=r.slice(s+1).replace(/0+$/,""),a=BigInt(i)*n;if(!t&&c.length>e)throw new Error(`fractional part cannot be represented with this precision (num=${r}, prec=${e})`);const f=Math.min(c.length,e),d=BigInt(c.slice(0,f))*10n**BigInt(e-f),u=a+d;return o?-u:u}}}function As(e){if(!Array.isArray(e))throw new Error(`expected array, got ${typeof e}`);for(const t of e)if(!Et(t))throw new Error(`wrong base coder ${t}`);return{encode:t=>{for(const n of e){const r=n.encode(t);if(r!==void 0)return r}throw new Error(`match/encode: cannot find match in ${t}`)},decode:t=>{for(const n of e){const r=n.decode(t);if(r!==void 0)return r}throw new Error(`match/decode: cannot find match in ${t}`)}}}const En=e=>{if(!Et(e))throw new Error("BaseCoder expected");return{encode:e.decode,decode:e.encode}},Xt={dict:bs,numberBigint:Es,tsEnum:ms,decimal:xs,match:As,reverse:En},Qt=(e,t=!1,n=!1,r=!0)=>{if(!ce(e))throw new Error(`bigint/size: wrong value ${e}`);if(typeof t!="boolean")throw new Error(`bigint/le: expected boolean, got ${typeof t}`);if(typeof n!="boolean")throw new Error(`bigint/signed: expected boolean, got ${typeof n}`);if(typeof r!="boolean")throw new Error(`bigint/sized: expected boolean, got ${typeof r}`);const o=BigInt(e),s=2n**(8n*o-1n);return z({size:r?e:void 0,encodeStream:(i,c)=>{n&&c<0&&(c=c|s);const a=[];for(let d=0;d<e;d++)a.push(Number(c&255n)),c>>=8n;let f=new Uint8Array(a).reverse();if(!r){let d=0;for(d=0;d<f.length&&f[d]===0;d++);f=f.subarray(d)}i.bytes(t?f.reverse():f)},decodeStream:i=>{const c=i.bytes(r?e:Math.min(e,i.leftBytes)),a=t?c:Nt(c);let f=0n;for(let d=0;d<a.length;d++)f|=BigInt(a[d])<<8n*BigInt(d);return n&&f&s&&(f=(f^s)-s),f},validate:i=>{if(typeof i!="bigint")throw new Error(`bigint: invalid value: ${i}`);return gs(i,8n*o,!!n),i}})},Bs=Qt(32,!1),mn=Qt(8,!0),Ss=Qt(8,!0,!0),vs=(e,t)=>z({size:e,encodeStream:(n,r)=>n.writeView(e,o=>t.write(o,r)),decodeStream:n=>n.readView(e,t.read),validate:n=>{if(typeof n!="number")throw new Error(`viewCoder: expected number, got ${typeof n}`);return t.validate&&t.validate(n),n}}),je=(e,t,n)=>{const r=e*8,o=2**(r-1),s=a=>{if(!ce(a))throw new Error(`sintView: value is not safe integer: ${a}`);if(a<-o||a>=o)throw new Error(`sintView: value out of bounds. Expected ${-o} <= ${a} < ${o}`)},i=2**r,c=a=>{if(!ce(a))throw new Error(`uintView: value is not safe integer: ${a}`);if(0>a||a>=i)throw new Error(`uintView: value out of bounds. Expected 0 <= ${a} < ${i}`)};return vs(e,{write:n.write,read:n.read,validate:t?s:c})},ye=je(4,!1,{read:(e,t)=>e.getUint32(t,!0),write:(e,t)=>e.setUint32(0,t,!0)}),Is=je(4,!1,{read:(e,t)=>e.getUint32(t,!1),write:(e,t)=>e.setUint32(0,t,!1)}),Jt=je(4,!0,{read:(e,t)=>e.getInt32(t,!0),write:(e,t)=>e.setInt32(0,t,!0)}),xr=je(2,!1,{read:(e,t)=>e.getUint16(t,!0),write:(e,t)=>e.setUint16(0,t,!0)}),xn=je(1,!1,{read:(e,t)=>e.getUint8(t),write:(e,t)=>e.setUint8(0,t)}),Te=(e,t=!1)=>{if(typeof t!="boolean")throw new Error(`bytes/le: expected boolean, got ${typeof t}`);const n=gn(e),r=X(e);return z({size:typeof e=="number"?e:void 0,encodeStream:(o,s)=>{r||n.encodeStream(o,s.length),o.bytes(t?Nt(s):s),r&&o.bytes(e)},decodeStream:o=>{let s;if(r){const i=o.find(e);if(!i)throw o.err("bytes: cannot find terminator");s=o.bytes(i-o.pos),o.bytes(e.length)}else s=o.bytes(e===null?o.leftBytes:n.decodeStream(o));return t?Nt(s):s},validate:o=>{if(!X(o))throw new Error(`bytes: invalid value ${o}`);return o}})};function Rs(e,t){if(!ee(t))throw new Error(`prefix: invalid inner value ${t}`);return Be(Te(e),En(t))}const Os=(e,t=!1)=>Me(Be(Te(e,t),mo),n=>{if(typeof n!="string")throw new Error(`expected string, got ${typeof n}`);return n}),$s=(e,t={isLE:!1,with0x:!1})=>{let n=Be(Te(e,t.isLE),J);const r=t.with0x;if(typeof r!="boolean")throw new Error(`hex/with0x: expected boolean, got ${typeof r}`);return r&&(n=Be(n,{encode:o=>`0x${o}`,decode:o=>{if(!o.startsWith("0x"))throw new Error("hex(with0x=true).encode input should start with 0x");return o.slice(2)}})),n};function Be(e,t){if(!ee(e))throw new Error(`apply: invalid inner value ${e}`);if(!Et(t))throw new Error(`apply: invalid base value ${e}`);return z({size:e.size,encodeStream:(n,r)=>{let o;try{o=t.decode(r)}catch(s){throw n.err(""+s)}return e.encodeStream(n,o)},decodeStream:n=>{const r=e.decodeStream(n);try{return t.encode(r)}catch(o){throw n.err(""+o)}}})}const Us=(e,t=!1)=>{if(!X(e))throw new Error(`flag/flagValue: expected Uint8Array, got ${typeof e}`);if(typeof t!="boolean")throw new Error(`flag/xor: expected boolean, got ${typeof t}`);return z({size:e.length,encodeStream:(n,r)=>{!!r!==t&&n.bytes(e)},decodeStream:n=>{let r=n.leftBytes>=e.length;return r&&(r=ke(n.bytes(e.length,!0),e),r&&n.bytes(e.length)),r!==t},validate:n=>{if(n!==void 0&&typeof n!="boolean")throw new Error(`flag: expected boolean value or undefined, got ${typeof n}`);return n}})};function ks(e,t,n){if(!ee(t))throw new Error(`flagged: invalid inner value ${t}`);return z({encodeStream:(r,o)=>{ue.resolve(r.stack,e)&&t.encodeStream(r,o)},decodeStream:r=>{let o=!1;if(o=!!ue.resolve(r.stack,e),o)return t.decodeStream(r)}})}function Ps(e,t,n=!0){if(!ee(e))throw new Error(`magic: invalid inner value ${e}`);if(typeof n!="boolean")throw new Error(`magic: expected boolean, got ${typeof n}`);return z({size:e.size,encodeStream:(r,o)=>e.encodeStream(r,t),decodeStream:r=>{const o=e.decodeStream(r);if(n&&typeof o!="object"&&o!==t||X(t)&&!ke(t,o))throw r.err(`magic: invalid value: ${o} !== ${t}`)},validate:r=>{if(r!==void 0)throw new Error(`magic: wrong value=${typeof r}`);return r}})}function An(e){let t=0;for(const n of e){if(n.size===void 0)return;if(!ce(n.size))throw new Error(`sizeof: wrong element size=${t}`);t+=n.size}return t}function Fe(e){if(!Ve(e))throw new Error(`struct: expected plain object, got ${e}`);for(const t in e)if(!ee(e[t]))throw new Error(`struct: field ${t} is not CoderType`);return z({size:An(Object.values(e)),encodeStream:(t,n)=>{t.pushObj(n,r=>{for(const o in e)r(o,()=>e[o].encodeStream(t,n[o]))})},decodeStream:t=>{const n={};return t.pushObj(n,r=>{for(const o in e)r(o,()=>n[o]=e[o].decodeStream(t))}),n},validate:t=>{if(typeof t!="object"||t===null)throw new Error(`struct: invalid value ${t}`);return t}})}function _s(e){if(!Array.isArray(e))throw new Error(`Packed.Tuple: got ${typeof e} instead of array`);for(let t=0;t<e.length;t++)if(!ee(e[t]))throw new Error(`tuple: field ${t} is not CoderType`);return z({size:An(e),encodeStream:(t,n)=>{if(!Array.isArray(n))throw t.err(`tuple: invalid value ${n}`);t.pushObj(n,r=>{for(let o=0;o<e.length;o++)r(`${o}`,()=>e[o].encodeStream(t,n[o]))})},decodeStream:t=>{const n=[];return t.pushObj(n,r=>{for(let o=0;o<e.length;o++)r(`${o}`,()=>n.push(e[o].decodeStream(t)))}),n},validate:t=>{if(!Array.isArray(t))throw new Error(`tuple: invalid value ${t}`);if(t.length!==e.length)throw new Error(`tuple: wrong length=${t.length}, expected ${e.length}`);return t}})}function mt(e,t){if(!ee(t))throw new Error(`array: invalid inner value ${t}`);const n=gn(typeof e=="string"?`../${e}`:e);return z({size:typeof e=="number"&&t.size?e*t.size:void 0,encodeStream:(r,o)=>{const s=r;s.pushObj(o,i=>{X(e)||n.encodeStream(r,o.length);for(let c=0;c<o.length;c++)i(`${c}`,()=>{const a=o[c],f=r.pos;if(t.encodeStream(r,a),X(e)){if(e.length>s.pos-f)return;const d=s.finish(!1).subarray(f,s.pos);if(ke(d.subarray(0,e.length),e))throw s.err(`array: inner element encoding same as separator. elm=${a} data=${d}`)}})}),X(e)&&r.bytes(e)},decodeStream:r=>{const o=[];return r.pushObj(o,s=>{if(e===null)for(let i=0;!r.isEnd()&&(s(`${i}`,()=>o.push(t.decodeStream(r))),!(t.size&&r.leftBytes<t.size));i++);else if(X(e))for(let i=0;;i++){if(ke(r.bytes(e.length,!0),e)){r.bytes(e.length);break}s(`${i}`,()=>o.push(t.decodeStream(r)))}else{let i;s("arrayLen",()=>i=n.decodeStream(r));for(let c=0;c<i;c++)s(`${c}`,()=>o.push(t.decodeStream(r)))}}),o},validate:r=>{if(!Array.isArray(r))throw new Error(`array: invalid value ${r}`);return r}})}const Ne=Ie.Point,Ar=Ne.Fn,Bn=Ne.Fn.ORDER,Sn=e=>e%2n===0n,N=Gt.isBytes,er=Gt.concatBytes,tr=Gt.equalBytes,xt=e=>ls(ie(e)),Hs=(...e)=>ie(ie(er(...e))),Ls=ve.getPublicKey,Ts=Ie.getPublicKey,Br=e=>e.r<Bn/2n;function Ns(e,t,n=!1){let r=Ie.Signature.fromBytes(Ie.sign(e,t,{prehash:!1}));if(n&&!Br(r)){const o=new Uint8Array(32);let s=0;for(;!Br(r);)if(o.set(ye.encode(s++)),r=Ie.Signature.fromBytes(Ie.sign(e,t,{prehash:!1,extraEntropy:o})),s>4294967295)throw new Error("lowR counter overflow: report the error")}return r.toBytes("der")}const Cs=ve.sign,vn=ve.utils.taggedHash,se={ecdsa:0,schnorr:1};function In(e,t){const n=e.length;if(t===se.ecdsa){if(n===32)throw new Error("Expected non-Schnorr key");return Ne.fromBytes(e),e}else if(t===se.schnorr){if(n!==32)throw new Error("Expected 32-byte Schnorr key");return ve.utils.lift_x(de(e)),e}else throw new Error("Unknown key type")}function Rn(e,t){const r=ve.utils.taggedHash("TapTweak",e,t),o=de(r);if(o>=Bn)throw new Error("tweak higher than curve order");return o}function Ds(e,t=Uint8Array.of()){const n=ve.utils,r=de(e),o=Ne.BASE.multiply(r),s=Sn(o.y)?r:Ar.neg(r),i=n.pointToBytes(o),c=Rn(i,t);return yt(Ar.add(s,c),32)}function On(e,t){const n=ve.utils,r=Rn(e,t),s=n.lift_x(de(e)).add(Ne.BASE.multiply(r)),i=Sn(s.y)?0:1;return[n.pointToBytes(s),i]}const Ws=ie(Ne.BASE.toBytes(!1)),ge={bech32:"bc",pubKeyHash:0,scriptHash:5,wif:128},Ks={bech32:"tb",pubKeyHash:111,scriptHash:196,wif:239};function qs(e,t){if(!N(e)||!N(t))throw new Error(`cmp: wrong type a=${typeof e} b=${typeof t}`);const n=Math.min(e.length,t.length);for(let r=0;r<n;r++)if(e[r]!=t[r])return Math.sign(e[r]-t[r]);return Math.sign(e.length-t.length)}function $n(e){const t={};for(const n in e){if(t[e[n]]!==void 0)throw new Error("duplicate key");t[e[n]]=n}return t}const K={OP_0:0,PUSHDATA1:76,PUSHDATA2:77,PUSHDATA4:78,"1NEGATE":79,RESERVED:80,OP_1:81,OP_2:82,OP_3:83,OP_4:84,OP_5:85,OP_6:86,OP_7:87,OP_8:88,OP_9:89,OP_10:90,OP_11:91,OP_12:92,OP_13:93,OP_14:94,OP_15:95,OP_16:96,NOP:97,VER:98,IF:99,NOTIF:100,VERIF:101,VERNOTIF:102,ELSE:103,ENDIF:104,VERIFY:105,RETURN:106,TOALTSTACK:107,FROMALTSTACK:108,"2DROP":109,"2DUP":110,"3DUP":111,"2OVER":112,"2ROT":113,"2SWAP":114,IFDUP:115,DEPTH:116,DROP:117,DUP:118,NIP:119,OVER:120,PICK:121,ROLL:122,ROT:123,SWAP:124,TUCK:125,CAT:126,SUBSTR:127,LEFT:128,RIGHT:129,SIZE:130,INVERT:131,AND:132,OR:133,XOR:134,EQUAL:135,EQUALVERIFY:136,RESERVED1:137,RESERVED2:138,"1ADD":139,"1SUB":140,"2MUL":141,"2DIV":142,NEGATE:143,ABS:144,NOT:145,"0NOTEQUAL":146,ADD:147,SUB:148,MUL:149,DIV:150,MOD:151,LSHIFT:152,RSHIFT:153,BOOLAND:154,BOOLOR:155,NUMEQUAL:156,NUMEQUALVERIFY:157,NUMNOTEQUAL:158,LESSTHAN:159,GREATERTHAN:160,LESSTHANOREQUAL:161,GREATERTHANOREQUAL:162,MIN:163,MAX:164,WITHIN:165,RIPEMD160:166,SHA1:167,SHA256:168,HASH160:169,HASH256:170,CODESEPARATOR:171,CHECKSIG:172,CHECKSIGVERIFY:173,CHECKMULTISIG:174,CHECKMULTISIGVERIFY:175,NOP1:176,CHECKLOCKTIMEVERIFY:177,CHECKSEQUENCEVERIFY:178,NOP4:179,NOP5:180,NOP6:181,NOP7:182,NOP8:183,NOP9:184,NOP10:185,CHECKSIGADD:186,INVALID:255},Vs=$n(K);function Un(e=6,t=!1){return z({encodeStream:(n,r)=>{if(r===0n)return;const o=r<0,s=BigInt(r),i=[];for(let c=o?-s:s;c;c>>=8n)i.push(Number(c&0xffn));i[i.length-1]>=128?i.push(o?128:0):o&&(i[i.length-1]|=128),n.bytes(new Uint8Array(i))},decodeStream:n=>{const r=n.leftBytes;if(r>e)throw new Error(`ScriptNum: number (${r}) bigger than limit=${e}`);if(r===0)return 0n;if(t){const i=n.bytes(r,!0);if((i[i.length-1]&127)===0&&(r<=1||(i[i.length-2]&128)===0))throw new Error("Non-minimally encoded ScriptNum")}let o=0,s=0n;for(let i=0;i<r;++i)o=n.byte(),s|=BigInt(o)<<8n*BigInt(i);return o>=128&&(s&=2n**BigInt(r*8)-1n>>1n,s=-s),s}})}function Ms(e,t=4,n=!0){if(typeof e=="number")return e;if(N(e))try{const r=Un(t,n).decode(e);return r>Number.MAX_SAFE_INTEGER?void 0:Number(r)}catch{return}}const Pe=z({encodeStream:(e,t)=>{for(let n of t){if(typeof n=="string"){if(K[n]===void 0)throw new Error(`Unknown opcode=${n}`);e.byte(K[n]);continue}else if(typeof n=="number"){if(n===0){e.byte(0);continue}else if(1<=n&&n<=16){e.byte(K.OP_1-1+n);continue}}if(typeof n=="number"&&(n=Un().encode(BigInt(n))),!N(n))throw new Error(`Wrong Script OP=${n} (${typeof n})`);const r=n.length;r<K.PUSHDATA1?e.byte(r):r<=255?(e.byte(K.PUSHDATA1),e.byte(r)):r<=65535?(e.byte(K.PUSHDATA2),e.bytes(xr.encode(r))):(e.byte(K.PUSHDATA4),e.bytes(ye.encode(r))),e.bytes(n)}},decodeStream:e=>{const t=[];for(;!e.isEnd();){const n=e.byte();if(K.OP_0<n&&n<=K.PUSHDATA4){let r;if(n<K.PUSHDATA1)r=n;else if(n===K.PUSHDATA1)r=xn.decodeStream(e);else if(n===K.PUSHDATA2)r=xr.decodeStream(e);else if(n===K.PUSHDATA4)r=ye.decodeStream(e);else throw new Error("Should be not possible");t.push(e.bytes(r))}else if(n===0)t.push(0);else if(K.OP_1<=n&&n<=K.OP_16)t.push(n-(K.OP_1-1));else{const r=Vs[n];if(r===void 0)throw new Error(`Unknown opcode=${n.toString(16)}`);t.push(r)}}return t}}),Sr={253:[253,2,253n,65535n],254:[254,4,65536n,4294967295n],255:[255,8,4294967296n,18446744073709551615n]},At=z({encodeStream:(e,t)=>{if(typeof t=="number"&&(t=BigInt(t)),0n<=t&&t<=252n)return e.byte(Number(t));for(const[n,r,o,s]of Object.values(Sr))if(!(o>t||t>s)){e.byte(n);for(let i=0;i<r;i++)e.byte(Number(t>>8n*BigInt(i)&0xffn));return}throw e.err(`VarInt too big: ${t}`)},decodeStream:e=>{const t=e.byte();if(t<=252)return BigInt(t);const[n,r,o]=Sr[t];let s=0n;for(let i=0;i<r;i++)s|=BigInt(e.byte())<<8n*BigInt(i);if(s<o)throw e.err(`Wrong CompactSize(${8*r})`);return s}}),kn=Be(At,Xt.numberBigint),ze=Te(At),Pn=mt(kn,ze),dt=e=>mt(At,e),_n=Fe({txid:Te(32,!0),index:ye,finalScriptSig:ze,sequence:ye}),rr=Fe({amount:mn,script:ze}),js=Fe({version:Jt,segwitFlag:Us(new Uint8Array([0,1])),inputs:dt(_n),outputs:dt(rr),witnesses:ks("segwitFlag",mt("inputs/length",Pn)),lockTime:ye});function Fs(e){if(e.segwitFlag&&e.witnesses&&!e.witnesses.length)throw new Error("Segwit flag with empty witnesses array");return e}const zs=Me(js,Fs),Zs=Fe({version:Jt,inputs:dt(_n),outputs:dt(rr),lockTime:ye}),Gs={encode(e){if(!(e.length!==2||e[0]!==1||!N(e[1])||J.encode(e[1])!=="4e73"))return{type:"p2a",script:Pe.encode(e)}},decode:e=>{if(e.type==="p2a")return[1,J.decode("4e73")]}};function xe(e,t){try{return In(e,t),!0}catch{return!1}}const Ys={encode(e){if(!(e.length!==2||!N(e[0])||!xe(e[0],se.ecdsa)||e[1]!=="CHECKSIG"))return{type:"pk",pubkey:e[0]}},decode:e=>e.type==="pk"?[e.pubkey,"CHECKSIG"]:void 0},Xs={encode(e){if(!(e.length!==5||e[0]!=="DUP"||e[1]!=="HASH160"||!N(e[2]))&&!(e[3]!=="EQUALVERIFY"||e[4]!=="CHECKSIG"))return{type:"pkh",hash:e[2]}},decode:e=>e.type==="pkh"?["DUP","HASH160",e.hash,"EQUALVERIFY","CHECKSIG"]:void 0},Qs={encode(e){if(!(e.length!==3||e[0]!=="HASH160"||!N(e[1])||e[2]!=="EQUAL"))return{type:"sh",hash:e[1]}},decode:e=>e.type==="sh"?["HASH160",e.hash,"EQUAL"]:void 0},Js={encode(e){if(!(e.length!==2||e[0]!==0||!N(e[1]))&&e[1].length===32)return{type:"wsh",hash:e[1]}},decode:e=>e.type==="wsh"?[0,e.hash]:void 0},ei={encode(e){if(!(e.length!==2||e[0]!==0||!N(e[1]))&&e[1].length===20)return{type:"wpkh",hash:e[1]}},decode:e=>e.type==="wpkh"?[0,e.hash]:void 0},ti={encode(e){const t=e.length-1;if(e[t]!=="CHECKMULTISIG")return;const n=e[0],r=e[t-1];if(typeof n!="number"||typeof r!="number")return;const o=e.slice(1,-2);if(r===o.length){for(const s of o)if(!N(s))return;return{type:"ms",m:n,pubkeys:o}}},decode:e=>e.type==="ms"?[e.m,...e.pubkeys,e.pubkeys.length,"CHECKMULTISIG"]:void 0},ri={encode(e){if(!(e.length!==2||e[0]!==1||!N(e[1])))return{type:"tr",pubkey:e[1]}},decode:e=>e.type==="tr"?[1,e.pubkey]:void 0},ni={encode(e){const t=e.length-1;if(e[t]!=="CHECKSIG")return;const n=[];for(let r=0;r<t;r++){const o=e[r];if(r&1){if(o!=="CHECKSIGVERIFY"||r===t-1)return;continue}if(!N(o))return;n.push(o)}return{type:"tr_ns",pubkeys:n}},decode:e=>{if(e.type!=="tr_ns")return;const t=[];for(let n=0;n<e.pubkeys.length-1;n++)t.push(e.pubkeys[n],"CHECKSIGVERIFY");return t.push(e.pubkeys[e.pubkeys.length-1],"CHECKSIG"),t}},oi={encode(e){const t=e.length-1;if(e[t]!=="NUMEQUAL"||e[1]!=="CHECKSIG")return;const n=[],r=Ms(e[t-1]);if(typeof r=="number"){for(let o=0;o<t-1;o++){const s=e[o];if(o&1){if(s!==(o===1?"CHECKSIG":"CHECKSIGADD"))throw new Error("OutScript.encode/tr_ms: wrong element");continue}if(!N(s))throw new Error("OutScript.encode/tr_ms: wrong key element");n.push(s)}return{type:"tr_ms",pubkeys:n,m:r}}},decode:e=>{if(e.type!=="tr_ms")return;const t=[e.pubkeys[0],"CHECKSIG"];for(let n=1;n<e.pubkeys.length;n++)t.push(e.pubkeys[n],"CHECKSIGADD");return t.push(e.m,"NUMEQUAL"),t}},si={encode(e){return{type:"unknown",script:Pe.encode(e)}},decode:e=>e.type==="unknown"?Pe.decode(e.script):void 0},ii=[Gs,Ys,Xs,Qs,Js,ei,ti,ri,ni,oi,si],ci=Be(Pe,Xt.match(ii)),te=Me(ci,e=>{if(e.type==="pk"&&!xe(e.pubkey,se.ecdsa))throw new Error("OutScript/pk: wrong key");if((e.type==="pkh"||e.type==="sh"||e.type==="wpkh")&&(!N(e.hash)||e.hash.length!==20))throw new Error(`OutScript/${e.type}: wrong hash`);if(e.type==="wsh"&&(!N(e.hash)||e.hash.length!==32))throw new Error("OutScript/wsh: wrong hash");if(e.type==="tr"&&(!N(e.pubkey)||!xe(e.pubkey,se.schnorr)))throw new Error("OutScript/tr: wrong taproot public key");if((e.type==="ms"||e.type==="tr_ns"||e.type==="tr_ms")&&!Array.isArray(e.pubkeys))throw new Error("OutScript/multisig: wrong pubkeys array");if(e.type==="ms"){const t=e.pubkeys.length;for(const n of e.pubkeys)if(!xe(n,se.ecdsa))throw new Error("OutScript/multisig: wrong pubkey");if(e.m<=0||t>16||e.m>t)throw new Error("OutScript/multisig: invalid params")}if(e.type==="tr_ns"||e.type==="tr_ms"){for(const t of e.pubkeys)if(!xe(t,se.schnorr))throw new Error(`OutScript/${e.type}: wrong pubkey`)}if(e.type==="tr_ms"){const t=e.pubkeys.length;if(e.m<=0||t>999||e.m>t)throw new Error("OutScript/tr_ms: invalid params")}return e});function vr(e,t){if(!tr(e.hash,ie(t)))throw new Error("checkScript: wsh wrong witnessScript hash");const n=te.decode(t);if(n.type==="tr"||n.type==="tr_ns"||n.type==="tr_ms")throw new Error(`checkScript: P2${n.type} cannot be wrapped in P2SH`);if(n.type==="wpkh"||n.type==="sh")throw new Error(`checkScript: P2${n.type} cannot be wrapped in P2WSH`)}function Hn(e,t,n){if(e){const r=te.decode(e);if(r.type==="tr_ns"||r.type==="tr_ms"||r.type==="ms"||r.type=="pk")throw new Error(`checkScript: non-wrapped ${r.type}`);if(r.type==="sh"&&t){if(!tr(r.hash,xt(t)))throw new Error("checkScript: sh wrong redeemScript hash");const o=te.decode(t);if(o.type==="tr"||o.type==="tr_ns"||o.type==="tr_ms")throw new Error(`checkScript: P2${o.type} cannot be wrapped in P2SH`);if(o.type==="sh")throw new Error("checkScript: P2SH cannot be wrapped in P2SH")}r.type==="wsh"&&n&&vr(r,n)}if(t){const r=te.decode(t);r.type==="wsh"&&n&&vr(r,n)}}const ai=(e,t=ge)=>{const n=e.script;if(!N(n))throw new Error(`Wrong script: ${typeof e.script}, expected Uint8Array`);const r=xt(n),o=te.encode({type:"sh",hash:r});return Hn(o,n,e.witnessScript),e.witnessScript?{type:"sh",redeemScript:n,script:te.encode({type:"sh",hash:r}),address:_e(t).encode({type:"sh",hash:r}),hash:r,witnessScript:e.witnessScript}:{type:"sh",redeemScript:n,script:te.encode({type:"sh",hash:r}),address:_e(t).encode({type:"sh",hash:r}),hash:r}},fi=(e,t=ge)=>{if(!xe(e,se.ecdsa))throw new Error("P2WPKH: invalid publicKey");if(e.length===65)throw new Error("P2WPKH: uncompressed public key");const n=xt(e);return{type:"wpkh",script:te.encode({type:"wpkh",hash:n}),address:_e(t).encode({type:"wpkh",hash:n}),hash:n}},ui=192,di=(e,t=ui)=>vn("TapLeaf",new Uint8Array([t]),ze.encode(e));function hi(e,t,n=ge,r=!1,o){if(!e)throw new Error("p2tr: should have pubKey or scriptTree (or both)");const s=typeof e=="string"?J.decode(e):e||Ws;if(!xe(s,se.schnorr))throw new Error("p2tr: non-schnorr pubkey");{const i=On(s,wn)[0];return{type:"tr",script:te.encode({type:"tr",pubkey:i}),address:_e(n).encode({type:"tr",pubkey:i}),tweakedPubkey:i,tapInternalKey:s}}}const Ln=Eo(ie);function Tn(e,t){if(t.length<2||t.length>40)throw new Error("Witness: invalid length");if(e>16)throw new Error("Witness: invalid version");if(e===0&&!(t.length===20||t.length===32))throw new Error("Witness: invalid length for version")}function $t(e,t,n=ge){Tn(e,t);const r=e===0?Pt:Pr;return r.encode(n.bech32,[e].concat(r.toWords(t)))}function Ir(e,t){return Ln.encode(er(Uint8Array.from(t),e))}function _e(e=ge){return{encode(t){const{type:n}=t;if(n==="wpkh")return $t(0,t.hash,e);if(n==="wsh")return $t(0,t.hash,e);if(n==="tr")return $t(1,t.pubkey,e);if(n==="pkh")return Ir(t.hash,[e.pubKeyHash]);if(n==="sh")return Ir(t.hash,[e.scriptHash]);throw new Error(`Unknown address type=${n}`)},decode(t){if(t.length<14||t.length>74)throw new Error("Invalid address length");if(e.bech32&&t.toLowerCase().startsWith(`${e.bech32}1`)){let r;try{if(r=Pt.decode(t),r.words[0]!==0)throw new Error(`bech32: wrong version=${r.words[0]}`)}catch{if(r=Pr.decode(t),r.words[0]===0)throw new Error(`bech32m: wrong version=${r.words[0]}`)}if(r.prefix!==e.bech32)throw new Error(`wrong bech32 prefix=${r.prefix}`);const[o,...s]=r.words,i=Pt.fromWords(s);if(Tn(o,i),o===0&&i.length===32)return{type:"wsh",hash:i};if(o===0&&i.length===20)return{type:"wpkh",hash:i};if(o===1&&i.length===32)return{type:"tr",pubkey:i};throw new Error("Unknown witness program")}const n=Ln.decode(t);if(n.length!==21)throw new Error("Invalid base58 address");if(n[0]===e.pubKeyHash)return{type:"pkh",hash:n.slice(1)};if(n[0]===e.scriptHash)return{type:"sh",hash:n.slice(1)};throw new Error(`Invalid address prefix=${n[0]}`)}}}function li(e){return e==="mainnet"?ge:e==="testnet"?Ks:ge}function Ce(e){return e.bech32==="bc"}function Nn(e,t){return pi(e,t)?"p2pkh":wi(e,t)?"p2sh":Cn(e,t)?"p2wpkh":yi(e,t)?"p2wsh":Dn(e,t)?"p2tr":"unknown"}function pi(e,t){return Ce(e)?t.startsWith("1"):t.startsWith("m")||t.startsWith("n")}function wi(e,t){return Ce(e)?t.startsWith("3"):t.startsWith("2")}function Cn(e,t){return Ce(e)?t.startsWith("bc1q"):t.startsWith("tb1q")}function Dn(e,t){return Ce(e)?t.startsWith("bc1p"):t.startsWith("tb1p")}function yi(e,t){return Dn(e,t)||Cn(e,t)?!1:Ce(e)?t.startsWith("bc1"):t.startsWith("tb1")}function gi(e,t){if(t.byteLength!==33)throw new Error("Invalid public key length");return t.slice(1)}function bi(e,t){return hi(gi(e,t),void 0,e).tapInternalKey}function Ei(e,t){return ai(fi(t,e),e).redeemScript}function Wn(e,t){const n=_e(e).decode(t);return te.encode(n)}function mi(e,t){return J.encode(Wn(e,t))}const xi="0000000000000000000000000000000000000000000000000000000000000000",Kn="0000000000000000000000000000000000000000000000000000000000000000",Ai=J.encode(Pe.encode(["OP_1",J.decode(Kn),"OP_1","CHECKMULTISIG"]));class Bi{constructor(t,n,r){this.network=t,this.inner=n,this.addresses=r}async connect(){await this.inner.connect()}async disconnect(){await this.inner.disconnect()}async getAddresses(){const t=await this.inner.getAddresses(),n=(s,i)=>{const c=Nn(this.network,i.address),a=c==="p2tr"?T.WalletAdapterAddressType.P2TR:c==="p2sh"?T.WalletAdapterAddressType.P2SH_P2WPKH:c==="p2wpkh"?T.WalletAdapterAddressType.P2WPKH:c==="p2pkh"?T.WalletAdapterAddressType.P2PKH:void 0;if(a==null)throw new T.BitcoinWalletAdapterError(`[MockAddressWalletAdapter] Please provide a supported ${s} address`);return{network:Ce(this.network)?T.WalletAdapterBitcoinNetwork.MAINNET:T.WalletAdapterBitcoinNetwork.TESTNET,purposes:i.purposes,addressType:a,address:i.address,scriptPubKey:mi(this.network,i.address),publicKey:Kn,redeemScript:Ai,tapInternalKey:xi}};let r,o;return this.addresses.bitcoin!=null&&(r=n("bitcoin",{...this.addresses.bitcoin,purposes:[T.WalletAdapterAddressPurpose.Bitcoin]})),this.addresses.ordinals!=null&&(o=n("ordinals",{...this.addresses.ordinals,purposes:[T.WalletAdapterAddressPurpose.Ordinals,T.WalletAdapterAddressPurpose.BRC20,T.WalletAdapterAddressPurpose.Runes]})),t.flatMap(s=>{const i=[];let c=s.purposes;return r!=null&&c.includes(T.WalletAdapterAddressPurpose.Bitcoin)&&(i.push(r),c=c.filter(a=>a!==T.WalletAdapterAddressPurpose.Bitcoin)),o!=null&&c.includes(T.WalletAdapterAddressPurpose.Ordinals)&&(i.push(o),c=c.filter(a=>a!==T.WalletAdapterAddressPurpose.Ordinals)),c.length>0&&i.push({...s,purposes:c}),i})}async signMessage(t,n){throw new T.BitcoinWalletAdapterError("[MockAddressWalletAdapter] it's a mock adapter, can't send inscription")}get sendBitcoinFeeRateCapability(){return this.inner.sendBitcoinFeeRateCapability}get sendInscriptionFeeRateCapability(){return this.inner.sendInscriptionFeeRateCapability}sendBitcoin(t,n,r){throw new T.BitcoinWalletAdapterError("[MockAddressWalletAdapter] it's a mock adapter, can't send bitcoin")}sendInscription(t,n,r){throw new T.BitcoinWalletAdapterError("[MockAddressWalletAdapter] it's a mock adapter, can't send inscription")}signAndFinalizePsbt(t){throw new T.BitcoinWalletAdapterError("[MockAddressWalletAdapter] it's a mock adapter, can't sign transaction")}onAddressesChanged(t){return{unsubscribe:()=>{}}}}exports.Address=_e;exports.BitgetWalletAdapter=jn;exports.CompactSize=At;exports.CompactSizeLen=kn;exports.EMPTY=wn;exports.I32LE=Jt;exports.I64LE=Ss;exports.LeatherWalletAdapter=Gn;exports.MAGICEDEN_PROVIDER_ID=Rr;exports.MagicEdenWalletAdapterFactory=Xn;exports.MockAddressWalletAdapter=Bi;exports.NETWORK=ge;exports.NULL=ps;exports.OkxWalletAdapter=to;exports.OutScript=te;exports.PubT=se;exports.RawOldTx=Zs;exports.RawOutput=rr;exports.RawTx=zs;exports.RawWitness=Pn;exports.Script=Pe;exports.U256BE=Bs;exports.U32BE=Is;exports.U32LE=ye;exports.U64LE=mn;exports.U8=xn;exports.UnisatWalletAdapter=so;exports.VarBytes=ze;exports.XVERSE_PROVIDER_ID=Ct;exports.XverseWalletAdapter=ao;exports.addressToScriptPubKey=Wn;exports.apply=Be;exports.array=mt;exports.base64=yo;exports.checkScript=Hn;exports.coders=Xt;exports.compareBytes=qs;exports.concatBytes=er;exports.createBytes=Te;exports.createHex=$s;exports.equalBytes=tr;exports.getAddressType=Nn;exports.getBitcoinNetwork=li;exports.getRedeemScriptOf_P2SH_P2WPKH_publicKey=Ei;exports.getTapInternalKeyOf_P2TR_publicKey=bi;exports.hash160=xt;exports.hex=J;exports.isBytes=N;exports.magic=Ps;exports.prefix=Rs;exports.pubECDSA=Ts;exports.pubSchnorr=Ls;exports.reverseObject=$n;exports.sha256=ie;exports.sha256x2=Hs;exports.signECDSA=Ns;exports.signSchnorr=Cs;exports.string=Os;exports.struct=Fe;exports.tagSchnorr=vn;exports.tapLeafHash=di;exports.taprootTweakPrivKey=Ds;exports.taprootTweakPubkey=On;exports.tuple=_s;exports.validate=Me;exports.validatePubkey=In;exports.wrap=z;
2
+ //# sourceMappingURL=index-Zx0KcpYx.js.map