bitcoin-wallet-connector 0.1.0 → 0.2.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 (140) hide show
  1. package/README.md +24 -21
  2. package/lib/BitcoinConnectionProvider.d.ts +3 -3
  3. package/lib/BitcoinWalletConnector-BC92ulXx.js +2 -0
  4. package/lib/BitcoinWalletConnector-BC92ulXx.js.map +1 -0
  5. package/lib/{BitcoinWalletAdapterConnector-Bq835yj0.mjs → BitcoinWalletConnector-CS0BshOl.mjs} +11 -19
  6. package/lib/BitcoinWalletConnector-CS0BshOl.mjs.map +1 -0
  7. package/lib/{BitcoinWalletAdapterConnector.d.ts → BitcoinWalletConnector.d.ts} +4 -5
  8. package/lib/BitgetWalletAdapter.impl-D8kqiYDi.mjs +11 -0
  9. package/lib/BitgetWalletAdapter.impl-D8kqiYDi.mjs.map +1 -0
  10. package/lib/BitgetWalletAdapter.impl-DiyzNQ9d.js +2 -0
  11. package/lib/BitgetWalletAdapter.impl-DiyzNQ9d.js.map +1 -0
  12. package/lib/{LeatherWalletAdapter.impl-RUYx555r.mjs → LeatherWalletAdapter.impl-B1PoZS7z.mjs} +48 -37
  13. package/lib/LeatherWalletAdapter.impl-B1PoZS7z.mjs.map +1 -0
  14. package/lib/LeatherWalletAdapter.impl-BIWirus3.js +2 -0
  15. package/lib/LeatherWalletAdapter.impl-BIWirus3.js.map +1 -0
  16. package/lib/{MagicEdenWalletAdapter.impl-CrA6SGvG.mjs → MagicEdenWalletAdapter.impl-B3d5lbkD.mjs} +31 -20
  17. package/lib/MagicEdenWalletAdapter.impl-B3d5lbkD.mjs.map +1 -0
  18. package/lib/MagicEdenWalletAdapter.impl-DLBP3p4o.js +2 -0
  19. package/lib/MagicEdenWalletAdapter.impl-DLBP3p4o.js.map +1 -0
  20. package/lib/OkxWalletAdapter.impl-7cj96tmr.js +2 -0
  21. package/lib/OkxWalletAdapter.impl-7cj96tmr.js.map +1 -0
  22. package/lib/{OkxWalletAdapter.impl-BepoUL1B.mjs → OkxWalletAdapter.impl-nRgHsPTn.mjs} +13 -9
  23. package/lib/OkxWalletAdapter.impl-nRgHsPTn.mjs.map +1 -0
  24. package/lib/{UnisatCompatibleWalletAdapterImpl-M38FqkZI.mjs → UnisatCompatibleWalletAdapterImpl-8lRRF7Zj.mjs} +18 -10
  25. package/lib/UnisatCompatibleWalletAdapterImpl-8lRRF7Zj.mjs.map +1 -0
  26. package/lib/{UnisatCompatibleWalletAdapterImpl-Cq2Oqk1b.js → UnisatCompatibleWalletAdapterImpl-C-JWrc9s.js} +2 -2
  27. package/lib/UnisatCompatibleWalletAdapterImpl-C-JWrc9s.js.map +1 -0
  28. package/lib/UnisatWalletAdapter.impl-DXDfnHz_.js +2 -0
  29. package/lib/UnisatWalletAdapter.impl-DXDfnHz_.js.map +1 -0
  30. package/lib/UnisatWalletAdapter.impl-DvA33Ikj.mjs +19 -0
  31. package/lib/UnisatWalletAdapter.impl-DvA33Ikj.mjs.map +1 -0
  32. package/lib/WalletAdapters.types-CExaiK0o.js +2 -0
  33. package/lib/WalletAdapters.types-CExaiK0o.js.map +1 -0
  34. package/lib/WalletAdapters.types-DBvhI1hu.mjs +20 -0
  35. package/lib/WalletAdapters.types-DBvhI1hu.mjs.map +1 -0
  36. package/lib/WalletAdapters.types.d.ts +7 -12
  37. package/lib/{XverseCompatibleWalletAdapterImpl-Bf-BK5VK.js → XverseCompatibleWalletAdapterImpl-Dp_GUxQM.js} +2 -2
  38. package/lib/XverseCompatibleWalletAdapterImpl-Dp_GUxQM.js.map +1 -0
  39. package/lib/{XverseCompatibleWalletAdapterImpl-DXKnO_-V.mjs → XverseCompatibleWalletAdapterImpl-bgp9xDYH.mjs} +12 -8
  40. package/lib/XverseCompatibleWalletAdapterImpl-bgp9xDYH.mjs.map +1 -0
  41. package/lib/{XverseWalletAdapter.impl-CZO0RQva.mjs → XverseWalletAdapter.impl-BOpY4Vf8.mjs} +15 -15
  42. package/lib/XverseWalletAdapter.impl-BOpY4Vf8.mjs.map +1 -0
  43. package/lib/XverseWalletAdapter.impl-D0eOtEOa.js +2 -0
  44. package/lib/XverseWalletAdapter.impl-D0eOtEOa.js.map +1 -0
  45. package/lib/adapters/BitgetWalletAdapter.d.ts +6 -2
  46. package/lib/adapters/LeatherWalletAdapter.d.ts +4 -2
  47. package/lib/adapters/LeatherWalletAdapter.impl.d.ts +8 -1
  48. package/lib/adapters/MagicEdenWalletAdapter.d.ts +5 -2
  49. package/lib/adapters/MagicEdenWalletAdapter.impl.d.ts +1 -1
  50. package/lib/adapters/MockAddressWalletAdapter.d.ts +8 -32
  51. package/lib/adapters/OkxWalletAdapter.d.ts +3 -2
  52. package/lib/adapters/OkxWalletAdapter.impl.d.ts +5 -1
  53. package/lib/adapters/UnisatWalletAdapter.d.ts +3 -2
  54. package/lib/adapters/UnisatWalletAdapter.impl.d.ts +4 -0
  55. package/lib/adapters/XverseWalletAdapter.d.ts +3 -2
  56. package/lib/adapters/XverseWalletAdapter.impl.d.ts +1 -1
  57. package/lib/adapters/index.d.ts +6 -6
  58. package/lib/adapters.js +1 -1
  59. package/lib/adapters.mjs +8 -8
  60. package/lib/constants-B7qVf97f.mjs +5 -0
  61. package/lib/constants-B7qVf97f.mjs.map +1 -0
  62. package/lib/constants-Dr0_Mix2.js +2 -0
  63. package/lib/constants-Dr0_Mix2.js.map +1 -0
  64. package/lib/constants.d.ts +1 -0
  65. package/lib/{index-D7YwhNAG.mjs → index-DM4G-LJz.mjs} +639 -590
  66. package/lib/index-DM4G-LJz.mjs.map +1 -0
  67. package/lib/index-jRY8YhyK.js +2 -0
  68. package/lib/index-jRY8YhyK.js.map +1 -0
  69. package/lib/index.d.ts +1 -1
  70. package/lib/index.js +1 -1
  71. package/lib/index.mjs +13 -13
  72. package/lib/react.js +1 -1
  73. package/lib/react.js.map +1 -1
  74. package/lib/react.mjs +7 -7
  75. package/lib/react.mjs.map +1 -1
  76. package/lib/{transaction-CiLOYSE_.mjs → transaction-4ShhFCwN.mjs} +2 -2
  77. package/lib/{transaction-CiLOYSE_.mjs.map → transaction-4ShhFCwN.mjs.map} +1 -1
  78. package/lib/{transaction-CzdnbXSo.js → transaction-B6SlpRzN.js} +2 -2
  79. package/lib/{transaction-CzdnbXSo.js.map → transaction-B6SlpRzN.js.map} +1 -1
  80. package/lib/utils/UnisatCompatibleWalletAdapterImpl.d.ts +11 -3
  81. package/lib/utils/XverseCompatibleWalletAdapterImpl.d.ts +4 -0
  82. package/lib/utils/XverseCompatibleWalletAdapterImpl_legacy.d.ts +7 -2
  83. package/package.json +9 -10
  84. package/src/BitcoinConnectionProvider.stories.tsx +111 -43
  85. package/src/BitcoinConnectionProvider.tsx +5 -5
  86. package/src/{BitcoinWalletAdapterConnector.ts → BitcoinWalletConnector.ts} +18 -26
  87. package/src/WalletAdapters.types.ts +13 -22
  88. package/src/adapters/BitgetWalletAdapter.impl.ts +2 -1
  89. package/src/adapters/BitgetWalletAdapter.ts +9 -7
  90. package/src/adapters/LeatherWalletAdapter.impl.ts +23 -13
  91. package/src/adapters/LeatherWalletAdapter.ts +11 -8
  92. package/src/adapters/MagicEdenWalletAdapter.impl.ts +9 -8
  93. package/src/adapters/MagicEdenWalletAdapter.ts +17 -14
  94. package/src/adapters/MockAddressWalletAdapter.ts +61 -35
  95. package/src/adapters/OkxWalletAdapter.impl.ts +12 -7
  96. package/src/adapters/OkxWalletAdapter.ts +10 -7
  97. package/src/adapters/UnisatWalletAdapter.impl.ts +8 -2
  98. package/src/adapters/UnisatWalletAdapter.ts +9 -7
  99. package/src/adapters/XverseWalletAdapter.impl.ts +6 -6
  100. package/src/adapters/XverseWalletAdapter.ts +10 -7
  101. package/src/adapters/index.ts +6 -6
  102. package/src/constants.ts +1 -0
  103. package/src/index.ts +1 -1
  104. package/src/utils/UnisatCompatibleWalletAdapterImpl.ts +11 -2
  105. package/src/utils/XverseCompatibleWalletAdapterImpl.ts +4 -0
  106. package/src/utils/XverseCompatibleWalletAdapterImpl_legacy.ts +19 -7
  107. package/lib/BitcoinWalletAdapterConnector-Bq835yj0.mjs.map +0 -1
  108. package/lib/BitcoinWalletAdapterConnector-DMef0iHV.js +0 -2
  109. package/lib/BitcoinWalletAdapterConnector-DMef0iHV.js.map +0 -1
  110. package/lib/BitgetWalletAdapter.impl-C_HLO7Oi.mjs +0 -10
  111. package/lib/BitgetWalletAdapter.impl-C_HLO7Oi.mjs.map +0 -1
  112. package/lib/BitgetWalletAdapter.impl-CxnKMf7U.js +0 -2
  113. package/lib/BitgetWalletAdapter.impl-CxnKMf7U.js.map +0 -1
  114. package/lib/LeatherWalletAdapter.impl-B2QgX_tO.js +0 -2
  115. package/lib/LeatherWalletAdapter.impl-B2QgX_tO.js.map +0 -1
  116. package/lib/LeatherWalletAdapter.impl-RUYx555r.mjs.map +0 -1
  117. package/lib/MagicEdenWalletAdapter.impl-CrA6SGvG.mjs.map +0 -1
  118. package/lib/MagicEdenWalletAdapter.impl-Di3Nu2S5.js +0 -2
  119. package/lib/MagicEdenWalletAdapter.impl-Di3Nu2S5.js.map +0 -1
  120. package/lib/OkxWalletAdapter.impl-BepoUL1B.mjs.map +0 -1
  121. package/lib/OkxWalletAdapter.impl-C8kesjGu.js +0 -2
  122. package/lib/OkxWalletAdapter.impl-C8kesjGu.js.map +0 -1
  123. package/lib/UnisatCompatibleWalletAdapterImpl-Cq2Oqk1b.js.map +0 -1
  124. package/lib/UnisatCompatibleWalletAdapterImpl-M38FqkZI.mjs.map +0 -1
  125. package/lib/UnisatWalletAdapter.impl-CJB22se8.mjs +0 -14
  126. package/lib/UnisatWalletAdapter.impl-CJB22se8.mjs.map +0 -1
  127. package/lib/UnisatWalletAdapter.impl-EISvxdpc.js +0 -2
  128. package/lib/UnisatWalletAdapter.impl-EISvxdpc.js.map +0 -1
  129. package/lib/WalletAdapters.types-CnvOqHFH.mjs +0 -32
  130. package/lib/WalletAdapters.types-CnvOqHFH.mjs.map +0 -1
  131. package/lib/WalletAdapters.types-De_x1lzr.js +0 -2
  132. package/lib/WalletAdapters.types-De_x1lzr.js.map +0 -1
  133. package/lib/XverseCompatibleWalletAdapterImpl-Bf-BK5VK.js.map +0 -1
  134. package/lib/XverseCompatibleWalletAdapterImpl-DXKnO_-V.mjs.map +0 -1
  135. package/lib/XverseWalletAdapter.impl-CZO0RQva.mjs.map +0 -1
  136. package/lib/XverseWalletAdapter.impl-lJwMi-Iv.js +0 -2
  137. package/lib/XverseWalletAdapter.impl-lJwMi-Iv.js.map +0 -1
  138. package/lib/index-D7YwhNAG.mjs.map +0 -1
  139. package/lib/index-Zx0KcpYx.js +0 -2
  140. package/lib/index-Zx0KcpYx.js.map +0 -1
@@ -0,0 +1,2 @@
1
+ "use strict";const M=require("./WalletAdapters.types-CExaiK0o.js");function Le({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 Yn="bitget.bitcoin",Or={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"},Xn=Le({getPrecondition:()=>window.bitkeep?.unisat==null?null:{value:window.bitkeep.unisat},initializer:async e=>{const{BitgetWalletAdapterImpl:t}=await Promise.resolve().then(()=>require("./BitgetWalletAdapter.impl-DiyzNQ9d.js"));return new t(e)}});function Qn(){return{adapterId:Yn,metadata:Or,getAdapter:()=>Xn}}const Ur="LeatherProvider.BitcoinProvider",kr={name:"Leather",iconUrl:()=>Promise.resolve().then(()=>require("./leather-DJ8nWmM8.js")).then(e=>e.default),websiteUrl:"https://leather.io/",downloadUrl:"https://leather.io/wallet"},Jn=Le({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-BIWirus3.js"));return new t(e)}});function eo(){return{adapterId:Ur,metadata:kr,getAdapter:()=>Jn}}const Pr="magiceden.bitcoin",_r={name:"Magic Eden",iconUrl:()=>Promise.resolve().then(()=>require("./magiceden-B36CEQa6.js")).then(e=>e.default),websiteUrl:"https://wallet.magiceden.io/",downloadUrl:"https://wallet.magiceden.io/download"},to=e=>Le({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-DLBP3p4o.js"));return new n(e,t)}}),ro=e=>{const t=to(e.network);return{adapterId:Pr,metadata:_r,getAdapter:()=>t}};function Oe(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function Hr(e){if(!Oe(e))throw new Error("Uint8Array expected")}function Lr(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 Wt(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 Te(e){if(!Number.isSafeInteger(e))throw new Error(`invalid integer: ${e}`)}function nt(e){if(!Array.isArray(e))throw new Error("array expected")}function ot(e,t){if(!Lr(!0,t))throw new Error(`${e}: array of strings expected`)}function Kt(e,t){if(!Lr(!1,t))throw new Error(`${e}: array of numbers expected`)}function Ve(...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 lt(e){const t=typeof e=="string"?e.split(""):e,n=t.length;ot("alphabet",t);const r=new Map(t.map((o,s)=>[o,s]));return{encode:o=>(nt(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=>(nt(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 pt(e=""){return we("join",e),{encode:t=>(ot("join.decode",t),t.join(e)),decode:t=>(we("join.decode",t),t.split(e))}}function no(e,t="="){return Te(e),we("padding",t),{encode(n){for(ot("padding.encode",n);n.length*e%8;)n.push(t);return n},decode(n){ot("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 oo(e){return Wt(e),{encode:t=>t,decode:t=>e(t)}}function cr(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(nt(e),!e.length)return[];let r=0;const o=[],s=Array.from(e,c=>{if(Te(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 Tr=(e,t)=>t===0?e:Tr(t,e%t),st=(e,t)=>e+(t-Tr(e,t)),tt=(()=>{let e=[];for(let t=0;t<40;t++)e.push(2**t);return e})();function kt(e,t,n,r){if(nt(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(st(t,n)>32)throw new Error(`convertRadix2: carry overflow from=${t} to=${n} carryBits=${st(t,n)}`);let o=0,s=0;const i=tt[t],c=tt[n]-1,a=[];for(const f of e){if(Te(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=tt[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 so(e){Te(e);const t=2**8;return{encode:n=>{if(!Oe(n))throw new Error("radix.encode input should be Uint8Array");return cr(Array.from(n),t,e)},decode:n=>(Kt("radix.decode",n),Uint8Array.from(cr(n,e,t)))}}function qt(e,t=!1){if(Te(e),e<=0||e>32)throw new Error("radix2: bits should be in (0..32]");if(st(8,e)>32||st(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 kt(Array.from(n),8,e,!t)},decode:n=>(Kt("radix2.decode",n),Uint8Array.from(kt(n,e,8,t)))}}function ar(e){return Wt(e),function(...t){try{return e.apply(null,t)}catch{}}}function io(e,t){return Te(e),Wt(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 co=typeof Uint8Array.from([]).toBase64=="function"&&typeof Uint8Array.fromBase64=="function",ao=(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"})},fo=co?{encode(e){return Hr(e),e.toBase64()},decode(e){return ao(e)}}:Ve(qt(6),lt("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),no(6),pt("")),uo=e=>Ve(so(58),lt(e),pt("")),ho=uo("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"),lo=e=>Ve(io(4,t=>e(e(t))),ho),Pt=Ve(lt("qpzry9x8gf2tvdw0s3jn54khce6mua7l"),pt("")),fr=[996825010,642813549,513874426,1027748829,705979059];function Ke(e){const t=e>>25;let n=(e&33554431)<<5;for(let r=0;r<fr.length;r++)(t>>r&1)===1&&(n^=fr[r]);return n}function ur(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=Ke(o)^i>>5}o=Ke(o);for(let s=0;s<r;s++)o=Ke(o)^e.charCodeAt(s)&31;for(let s of t)o=Ke(o)^s;for(let s=0;s<6;s++)o=Ke(o);return o^=n,Pt.encode(kt([o%tt[30]],30,5,!1))}function Nr(e){const t=e==="bech32"?1:734539939,n=qt(5),r=n.decode,o=n.encode,s=ar(r);function i(u,y,l=90){we("bech32.encode prefix",u),Oe(y)&&(y=Array.from(y)),Kt("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 B=u.toLowerCase(),$=ur(B,y,t);return`${B}1${Pt.encode(y)}${$}`}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 B=b.slice(0,v),$=b.slice(v+1);if($.length<6)throw new Error("Data must be at least 6 characters long");const K=Pt.decode($).slice(0,-6),Z=ur(B,K,t);if(!$.endsWith(Z))throw new Error(`Invalid checksum in ${u}: expected "${Z}"`);return{prefix:B,words:K}}const a=ar(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 _t=Nr("bech32"),Cr=Nr("bech32m"),po={encode:e=>new TextDecoder().decode(e),decode:e=>new TextEncoder().encode(e)},wo=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",yo={encode(e){return Hr(e),e.toHex()},decode(e){return we("hex",e),Uint8Array.fromHex(e)}},J=wo?yo:Ve(qt(4),lt("0123456789abcdef"),pt(""),oo(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 Vt(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=Vt(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 Dr(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 it(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 go(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 Ue(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function vt(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function ne(e,t){return e<<32-t|e>>>t}function Xe(e,t){return e<<t|e>>>32-t>>>0}const Wr=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",bo=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function wt(e){if(k(e),Wr)return e.toHex();let t="";for(let n=0;n<e.length;n++)t+=bo[e[n]];return t}const ae={_0:48,_9:57,A:65,F:70,a:97,f:102};function dr(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 ct(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);if(Wr)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=dr(e.charCodeAt(s)),c=dr(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 Kr(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 yt(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 Eo=e=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,e])});function mo(e,t,n){return e&t^~e&n}function xo(e,t,n){return e&t^e&n^t&n}class qr{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=vt(this.buffer)}update(t){it(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=vt(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){it(this),go(t,this),this.finished=!0;const{buffer:n,view:r,blockLen:o,isLE:s}=this;let{pos:i}=this;n[i++]=128,Ue(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=vt(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]),Ao=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 So extends qr{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+mo(c,a,f)+Ao[u]+le[u]|0,v=(ne(r,2)^ne(r,13)^ne(r,22))+xo(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(){Ue(le)}destroy(){this.set(0,0,0,0,0,0,0,0),Ue(this.buffer)}}class Bo extends So{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=Kr(()=>new Bo,Eo(1));const Mt=BigInt(0),Ht=BigInt(1);function at(e,t=""){if(typeof e!="boolean"){const n=t&&`"${t}" `;throw new Error(n+"expected boolean, got type="+typeof e)}return e}function Vr(e){if(typeof e=="bigint"){if(!rt(e))throw new Error("positive bigint expected, got "+e)}else Ae(e);return e}function Qe(e){const t=Vr(e).toString(16);return t.length&1?"0"+t:t}function Mr(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);return e===""?Mt:BigInt("0x"+e)}function de(e){return Mr(wt(e))}function Fr(e){return Mr(wt(vo(k(e)).reverse()))}function gt(e,t){Ae(t),e=Vr(e);const n=ct(e.toString(16).padStart(t*2,"0"));if(n.length!==t)throw new Error("number too large");return n}function jr(e,t){return gt(e,t).reverse()}function vo(e){return Uint8Array.from(e)}function Io(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 rt=e=>typeof e=="bigint"&&Mt<=e;function Ro(e,t,n){return rt(e)&&rt(t)&&rt(n)&&t<=e&&e<n}function $o(e,t,n,r){if(!Ro(t,n,r))throw new Error("expected valid "+e+": "+n+" <= n < "+r+", got "+t)}function Oo(e){let t;for(t=0;e>Mt;e>>=Ht,t+=1);return t}const Ft=e=>(Ht<<BigInt(e))-Ht;function Uo(e,t,n){if(Ae(e,"hashLen"),Ae(t,"qByteLen"),typeof n!="function")throw new Error("hmacFn must be a function");const r=B=>new Uint8Array(B),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=(...B)=>n(f,oe(a,...B)),l=(B=o)=>{f=y(s,B),a=y(),B.length!==0&&(f=y(i,B),a=y())},b=()=>{if(d++>=c)throw new Error("drbg: tried max amount of iterations");let B=0;const $=[];for(;B<t;){a=y();const K=a.slice();$.push(K),B+=a.length}return oe(...$)};return(B,$)=>{u(),l(B);let K;for(;!(K=$(b()));)l();return u(),K}}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 hr(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 j=BigInt(0),F=BigInt(1),Ee=BigInt(2),zr=BigInt(3),Zr=BigInt(4),Gr=BigInt(5),ko=BigInt(7),Yr=BigInt(8),Po=BigInt(9),Xr=BigInt(16);function Q(e,t){const n=e%t;return n>=j?n:t+n}function Y(e,t,n){let r=e;for(;t-- >j;)r*=r,r%=n;return r}function lr(e,t){if(e===j)throw new Error("invert: expected non-zero number");if(t<=j)throw new Error("invert: expected positive modulus, got "+t);let n=Q(e,t),r=t,o=j,s=F;for(;n!==j;){const c=r/n,a=r%n,f=o-s*c;r=n,n=a,o=s,s=f}if(r!==F)throw new Error("invert: does not exist");return Q(o,t)}function zt(e,t,n){if(!e.eql(e.sqr(t),n))throw new Error("Cannot find square root")}function Qr(e,t){const n=(e.ORDER+F)/Zr,r=e.pow(t,n);return zt(e,r,t),r}function _o(e,t){const n=(e.ORDER-Gr)/Yr,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 zt(e,c,t),c}function Ho(e){const t=bt(e),n=Jr(e),r=n(t,t.neg(t.ONE)),o=n(t,r),s=n(t,t.neg(r)),i=(e+ko)/Xr;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),B=c.cmov(f,d,v);return zt(c,B,a),B}}function Jr(e){if(e<zr)throw new Error("sqrt is not defined for small field");let t=e-F,n=0;for(;t%Ee===j;)t/=Ee,n++;let r=Ee;const o=bt(e);for(;pr(o,r)===1;)if(r++>1e3)throw new Error("Cannot find square root: probably non-prime P");if(n===1)return Qr;let s=o.pow(r,t);const i=(t+F)/Ee;return function(a,f){if(a.is0(f))return f;if(pr(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 B=F<<BigInt(d-b-1),$=a.pow(u,B);d=b,u=a.sqr($),y=a.mul(y,u),l=a.mul(l,$)}return l}}function Lo(e){return e%Zr===zr?Qr:e%Yr===Gr?_o:e%Xr===Po?Ho(e):Jr(e)}const To=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function No(e){const t={ORDER:"bigint",BYTES:"number",BITS:"number"},n=To.reduce((r,o)=>(r[o]="function",r),t);return jt(e,n),e}function Co(e,t,n){if(n<j)throw new Error("invalid exponent, negatives unsupported");if(n===j)return e.ONE;if(n===F)return t;let r=e.ONE,o=t;for(;n>j;)n&F&&(r=e.mul(r,o)),o=e.sqr(o),n>>=F;return r}function en(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 pr(e,t){const n=(e.ORDER-F)/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 Do(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 Wo{ORDER;BITS;BYTES;isLE;ZERO=j;ONE=F;_lengths;_sqrt;_mod;constructor(t,n={}){if(t<=j)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}=Do(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 j<=t&&t<this.ORDER}is0(t){return t===j}isValidNot0(t){return!this.is0(t)&&this.isValid(t)}isOdd(t){return(t&F)===F}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 Co(this,t,n)}div(t,n){return Q(t*lr(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 lr(t,this.ORDER)}sqrt(t){return this._sqrt||(this._sqrt=Lo(this.ORDER)),this._sqrt(this,t)}toBytes(t){return this.isLE?jr(t,this.BYTES):gt(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?Fr(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 en(this,t)}cmov(t,n,r){return r?n:t}}function bt(e,t={}){return new Wo(e,t)}function tn(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 rn(e){const t=tn(e);return t+Math.ceil(t/2)}function nn(e,t,n=!1){k(e);const r=e.length,o=tn(t),s=rn(t);if(r<16||r<s||r>1024)throw new Error("expected "+s+"-1024 bytes of input, got "+r);const i=n?Fr(e):de(e),c=Q(i,t-F)+F;return n?jr(c,o):gt(c,o)}const ke=BigInt(0),me=BigInt(1);function ft(e,t){const n=t.negate();return e?n:t}function wr(e,t){const n=en(e.Fp,t.map(r=>r.Z));return t.map((r,o)=>e.fromAffine(r.toAffine(n[o])))}function on(e,t){if(!Number.isSafeInteger(e)||e<=0||e>t)throw new Error("invalid window size, expected [1.."+t+"], got W="+e)}function It(e,t){on(e,t);const n=Math.ceil(t/e)+1,r=2**(e-1),o=2**e,s=Ft(e),i=BigInt(e);return{windows:n,windowSize:r,mask:s,maxNumber:o,shiftBy:i}}function yr(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 Rt=new WeakMap,sn=new WeakMap;function $t(e){return sn.get(e)||1}function gr(e){if(e!==ke)throw new Error("invalid wNAF")}class Ko{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>ke;)n&me&&(r=r.add(o)),o=o.double(),n>>=me;return r}precomputeWindow(t,n){const{windows:r,windowSize:o}=It(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=It(t,this.bits);for(let c=0;c<i.windows;c++){const{nextN:a,offset:f,isZero:d,isNeg:u,isNegF:y,offsetF:l}=yr(r,c,i);r=a,d?s=s.add(ft(y,n[l])):o=o.add(ft(u,n[f]))}return gr(r),{p:o,f:s}}wNAFUnsafe(t,n,r,o=this.ZERO){const s=It(t,this.bits);for(let i=0;i<s.windows&&r!==ke;i++){const{nextN:c,offset:a,isZero:f,isNeg:d}=yr(r,i,s);if(r=c,!f){const u=n[a];o=o.add(d?u.negate():u)}}return gr(r),o}getPrecomputes(t,n,r){let o=Rt.get(n);return o||(o=this.precomputeWindow(n,t),t!==1&&(typeof r=="function"&&(o=r(o)),Rt.set(n,o))),o}cached(t,n,r){const o=$t(t);return this.wNAF(o,this.getPrecomputes(o,t,r),n)}unsafe(t,n,r,o){const s=$t(t);return s===1?this._unsafeLadder(t,n,o):this.wNAFUnsafe(s,this.getPrecomputes(s,t,r),n,o)}createCache(t,n){on(n,this.bits),sn.set(t,n),Rt.delete(t)}hasCache(t){return $t(t)!==1}}function qo(e,t,n,r){let o=t,s=e.ZERO,i=e.ZERO;for(;n>ke||r>ke;)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 br(e,t,n){if(t){if(t.ORDER!==e)throw new Error("Field.ORDER must match order: Fp == p, Fn == n");return No(t),t}else return bt(e,{isLE:n})}function Vo(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>ke))throw new Error(`CURVE.${a} must be positive bigint`)}const o=br(t.p,n.Fp,r),s=br(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 cn(e,t){return function(r){const o=e(r);return{secretKey:o,publicKey:t(o)}}}class an{oHash;iHash;blockLen;outputLen;finished=!1;destroyed=!1;constructor(t,n){if(Dr(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),Ue(o)}update(t){return it(this),this.iHash.update(t),this}digestInto(t){it(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 fn=(e,t,n)=>new an(e,t).update(n).digest();fn.create=(e,t)=>new an(e,t);const Er=(e,t)=>(e+(e>=0?t:-t)/un)/t;function Mo(e,t,n){const[[r,o],[s,i]]=t,c=Er(i*e,n),a=Er(-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=Ft(Math.ceil(Oo(n)/2))+$e;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 Lt(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 at(n.lowS,"lowS"),at(n.prehash,"prehash"),n.format!==void 0&&Lt(n.format),n}class Fo extends Error{constructor(t=""){super(t)}}const pe={Err:Fo,_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=Qe(r);if(o.length/2&128)throw new n("tlv.encode: long form length too big");const s=r>127?Qe(o.length/2|128):"";return Qe(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=Qe(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),$e=BigInt(1),un=BigInt(2),Je=BigInt(3),jo=BigInt(4);function zo(e,t={}){const n=Vo("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=hn(r,o);function d(){if(!r.isOdd)throw new Error("compression is not supported: Field does not have .isOdd()")}function u(O,w,p){const{x:h,y:g}=w.toAffine(),m=r.toBytes(h);if(at(p,"isCompressed"),p){d();const A=!r.isOdd(g);return oe(dn(A),m)}else return oe(Uint8Array.of(4),m,r.toBytes(g))}function y(O){k(O,void 0,"Point");const{publicKey:w,publicKeyUncompressed:p}=f,h=O.length,g=O[0],m=O.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 S=r.isOdd(E);return(g&1)===1!==S&&(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(!B(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(O){const w=r.sqr(O),p=r.mul(w,O);return r.add(r.add(p,r.mul(O,s.a)),s.b)}function B(O,w){const p=r.sqr(w),h=v(O);return r.eql(p,h)}if(!B(s.Gx,s.Gy))throw new Error("bad curve params: generator point");const $=r.mul(r.pow(s.a,Je),jo),K=r.mul(r.sqr(s.b),BigInt(27));if(r.is0(r.add($,K)))throw new Error("bad curve params: a or b");function Z(O,w,p=!1){if(!r.isValid(w)||p&&r.is0(w))throw new Error(`bad point coordinate ${O}`);return w}function q(O){if(!(O instanceof U))throw new Error("Weierstrass Point expected")}function C(O){if(!a||!a.basises)throw new Error("no endo");return Mo(O,a.basises,o.ORDER)}const G=hr((O,w)=>{const{X:p,Y:h,Z:g}=O;if(r.eql(g,r.ONE))return{x:p,y:h};const m=O.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=hr(O=>{if(O.is0()){if(t.allowInfinityPoint&&!r.is0(O.Y))return;throw new Error("bad point: ZERO")}const{x:w,y:p}=O.toAffine();if(!r.isValid(w)||!r.isValid(p))throw new Error("bad point: x or y not field elements");if(!B(w,p))throw new Error("bad point: equation left != right");if(!O.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});function We(O,w,p,h,g){return p=new U(r.mul(p.X,O),p.Y,p.Z),w=ft(h,w),p=ft(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(ct(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(Je),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){q(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)),S=r.eql(r.mul(h,x),r.mul(A,g));return E&&S}negate(){return new U(this.X,r.neg(this.Y),this.Z)}double(){const{a:w,b:p}=s,h=r.mul(p,Je),{X:g,Y:m,Z:A}=this;let x=r.ZERO,E=r.ZERO,S=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),S=r.mul(g,A),S=r.add(S,S),x=r.mul(w,S),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),S=r.mul(h,S),P=r.mul(w,P),R=r.sub(I,P),R=r.mul(w,R),R=r.add(R,S),S=r.add(I,I),I=r.add(S,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),S=r.mul(P,L),S=r.add(S,S),S=r.add(S,S),new U(x,E,S)}add(w){q(w);const{X:p,Y:h,Z:g}=this,{X:m,Y:A,Z:x}=w;let E=r.ZERO,S=r.ZERO,I=r.ZERO;const L=s.a,P=r.mul(s.b,Je);let R=r.mul(p,m),_=r.mul(h,A),D=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 V=r.add(m,x);return H=r.mul(H,V),V=r.add(R,D),H=r.sub(H,V),V=r.add(h,g),E=r.add(A,x),V=r.mul(V,E),E=r.add(_,D),V=r.sub(V,E),I=r.mul(L,H),E=r.mul(P,D),I=r.add(E,I),E=r.sub(_,I),I=r.add(_,I),S=r.mul(E,I),_=r.add(R,R),_=r.add(_,R),D=r.mul(L,D),H=r.mul(P,H),_=r.add(_,D),D=r.sub(R,D),D=r.mul(L,D),H=r.add(H,D),R=r.mul(_,H),S=r.add(S,R),R=r.mul(V,H),E=r.mul(re,E),E=r.sub(E,R),R=r.mul(re,_),I=r.mul(V,I),I=r.add(I,R),new U(E,S,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=>wr(U,x));if(p){const{k1neg:A,k1:x,k2neg:E,k2:S}=C(w),{p:I,f:L}=m(x),{p:P,f:R}=m(S);g=L.add(R),h=We(p.beta,I,P,A,E)}else{const{p:A,f:x}=m(w);h=A,g=x}return wr(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===$e)return h;if(be.hasCache(this))return this.multiply(w);if(p){const{k1neg:g,k1:m,k2neg:A,k2:x}=C(w),{p1:E,p2:S}=qo(U,h,m,x);return We(p.beta,E,S,g,A)}else return be.unsafe(h,w)}toAffine(w){return G(this,w)}isTorsionFree(){const{isTorsionFree:w}=t;return i===$e?!0:w?w(U,this):be.unsafe(this,c).is0()}clearCofactor(){const{clearCofactor:w}=t;return i===$e?this:w?w(U,this):this.multiplyUnsafe(i)}isSmallOrder(){return this.multiplyUnsafe(i).is0()}toBytes(w=!0){return at(w,"isCompressed"),this.assertValidity(),l(U,this,w)}toHex(w=!0){return wt(this.toBytes(w))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}}const Ge=o.BITS,be=new Ko(U,t.endo?Math.ceil(Ge/2):Ge);return U.BASE.precompute(8),U}function dn(e){return Uint8Array.of(e?2:3)}function hn(e,t){return{secretKey:t.BYTES,publicKey:1+e.BYTES,publicKeyUncompressed:1+2*e.BYTES,publicKeyHasPrefix:!0,signature:2*t.BYTES}}function Zo(e,t={}){const{Fn:n}=e,r=t.randomBytes||yt,o=Object.assign(hn(e.Fp,n),{seed:rn(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:B}=o;try{const $=l.length;return b===!0&&$!==v||b===!1&&$!==B?!1:!!e.fromBytes(l)}catch{return!1}}function c(l=r(o.seed)){return nn(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:B}=o;if(!Vt(l)||"_lengths"in n&&n._lengths||b===v)return;const $=k(l,void 0,"key").length;return $===v||$===B}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 B=n.fromBytes(l);return e.fromBytes(b).multiply(B).toBytes(v)}const u={isValidSecretKey:s,isValidPublicKey:i,randomSecretKey:c},y=cn(c,a);return Object.freeze({getPublicKey:a,getSharedSecret:d,keygen:y,Point:e,utils:u,lengths:o})}function Go(e,t,n={}){Dr(t),jt(n,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"}),n=Object.assign({},n);const r=n.randomBytes||yt,o=n.hmac||((p,h)=>fn(t,p,h)),{Fp:s,Fn:i}=e,{ORDER:c,BITS:a}=i,{keygen:f,getPublicKey:d,getSharedSecret:u,utils:y,lengths:l}=Zo(e,n),b={prehash:!0,lowS:typeof n.lowS=="boolean"?n.lowS:!0,format:"compact",extraEntropy:!1},v=c*un<s.ORDER;function B(p){const h=c>>$e;return p>h}function $(p,h){if(!i.isValidNot0(h))throw new Error(`invalid signature ${p}: out of range 1..Point.Fn.ORDER`);return h}function K(){if(v)throw new Error('"recovered" sig type is not supported for cofactor >2 curves')}function Z(p,h){Lt(h);const g=l.signature,m=h==="compact"?g:h==="recovered"?g+1:void 0;return k(p,m)}class q{r;s;recovery;constructor(h,g,m){if(this.r=$("r",h),this.s=$("s",g),m!=null){if(K(),![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:S,s:I}=pe.toSig(k(h));return new q(S,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 q(i.fromBytes(x),i.fromBytes(E),m)}static fromHex(h,g){return this.fromBytes(ct(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 q(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),S=e.fromBytes(oe(dn((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(S.multiplyUnsafe(R));if(_.is0())throw new Error("invalid recovery: point at infinify");return _.assertValidity(),_}hasHighS(){return B(this.s)}toBytes(h=b.format){if(Lt(h),h==="der")return ct(pe.hexFromSig(this));const{r:g,s:m}=this,A=i.toBytes(g),x=i.toBytes(m);return h==="recovered"?(K(),oe(Uint8Array.of(this.assertRecovery()),A,x)):oe(A,x)}toHex(h){return wt(this.toBytes(h))}}const C=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(C(h))},Bt=Ft(a);function We(p){return $o("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 Ge(p,h,g){const{lowS:m,prehash:A,extraEntropy:x}=Ot(g,b);p=U(p,A);const E=G(p),S=i.fromBytes(h);if(!i.isValidNot0(S))throw new Error("invalid private key");const I=[We(S),We(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 D=C(_);if(!i.isValidNot0(D))return;const re=i.inv(D),H=e.BASE.multiply(D).toAffine(),V=i.create(H.x);if(V===fe)return;const Ye=i.create(re*i.create(P+V*S));if(Ye===fe)return;let sr=(H.x===V?0:2)|Number(H.y&$e),ir=Ye;return m&&B(Ye)&&(ir=i.neg(Ye),sr^=1),new q(V,ir,v?void 0:sr)}return{seed:L,k2sig:R}}function be(p,h,g={}){const{seed:m,k2sig:A}=Ge(p,h,g);return Uo(t.outputLen,i.BYTES,o)(m,A).toBytes(g.format)}function O(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),!Vt(p)){const S=p instanceof q?", use sig.toBytes()":"";throw new Error("verify expects Uint8Array signature"+S)}Z(p,E);try{const S=q.fromBytes(p,E),I=e.fromBytes(g);if(A&&S.hasHighS())return!1;const{r:L,s:P}=S,R=G(h),_=i.inv(P),D=i.create(R*_),re=i.create(L*_),H=e.BASE.multiplyUnsafe(D).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),q.fromBytes(p,"recovered").recoverPublicKey(h).toBytes()}return Object.freeze({keygen:f,getPublicKey:d,getSharedSecret:u,utils:y,lengths:l,Point:e,sign:be,verify:O,recoverPublicKey:w,Signature:q,hash:t})}const Et={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},Yo={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]},Xo=BigInt(0),Tt=BigInt(2);function Qo(e){const t=Et.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,Tt,t)*f%t,b=Y(l,o,t)*l%t,v=Y(b,s,t)*b%t,B=Y(v,c,t)*v%t,$=Y(B,a,t)*B%t,K=Y($,c,t)*v%t,Z=Y(K,n,t)*d%t,q=Y(Z,i,t)*b%t,C=Y(q,r,t)*f%t,G=Y(C,Tt,t);if(!ut.eql(ut.sqr(G),e))throw new Error("Cannot find square root");return G}const ut=bt(Et.p,{sqrt:Qo}),Be=zo(Et,{Fp:ut,endo:Yo}),Ie=Go(Be,ie),mr={};function dt(e,...t){let n=mr[e];if(n===void 0){const r=ie(Io(e));n=oe(r,r),mr[e]=n}return ie(oe(n,...t))}const Zt=e=>e.toBytes(!0).slice(1),Gt=e=>e%Tt===Xo;function Nt(e){const{Fn:t,BASE:n}=Be,r=t.fromBytes(e),o=n.multiply(r);return{scalar:Gt(o.y)?r:t.neg(r),bytes:Zt(o)}}function ln(e){const t=ut;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);Gt(o)||(o=t.neg(o));const s=Be.fromAffine({x:e,y:o});return s.assertValidity(),s}const qe=de;function pn(...e){return Be.Fn.create(qe(dt("BIP0340/challenge",...e)))}function xr(e){return Nt(e).bytes}function Jo(e,t,n=yt(32)){const{Fn:r}=Be,o=k(e,void 0,"message"),{bytes:s,scalar:i}=Nt(t),c=k(n,32,"auxRand"),a=r.toBytes(i^qe(dt("BIP0340/aux",c))),f=dt("BIP0340/nonce",a,s,o),{bytes:d,scalar:u}=Nt(f),y=pn(d,s,o),l=new Uint8Array(64);if(l.set(d,0),l.set(r.toBytes(r.create(u+y*i)),32),!wn(l,o,s))throw new Error("sign: Invalid signature produced");return l}function wn(e,t,n){const{Fp:r,Fn:o,BASE:s}=Be,i=k(e,64,"signature"),c=k(t,void 0,"message"),a=k(n,32,"publicKey");try{const f=ln(qe(a)),d=qe(i.subarray(0,32));if(!r.isValidNot0(d))return!1;const u=qe(i.subarray(32,64));if(!o.isValidNot0(u))return!1;const y=pn(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()||!Gt(v)||b!==d)}catch{return!1}}const ve=(()=>{const n=(r=yt(48))=>nn(r,Et.n);return{keygen:cn(n,xr),getPublicKey:xr,sign:Jo,verify:wn,Point:Be,utils:{randomSecretKey:n,taggedHash:dt,lift_x:ln,pointToBytes:Zt},lengths:{secretKey:32,publicKey:32,publicKeyHasPrefix:!1,signature:64,seed:48}}})(),es=Uint8Array.from([7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8]),yn=Uint8Array.from(new Array(16).fill(0).map((e,t)=>t)),ts=yn.map(e=>(9*e+5)%16),gn=(()=>{const n=[[yn],[ts]];for(let r=0;r<4;r++)for(let o of n)o.push(o[r].map(s=>es[s]));return n})(),bn=gn[0],En=gn[1],mn=[[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)),rs=bn.map((e,t)=>e.map(n=>mn[t][n])),ns=En.map((e,t)=>e.map(n=>mn[t][n])),os=Uint32Array.from([0,1518500249,1859775393,2400959708,2840853838]),ss=Uint32Array.from([1352829926,1548603684,1836072691,2053994217,0]);function Ar(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 et=new Uint32Array(16);class is extends qr{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)et[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=os[l],B=ss[l],$=bn[l],K=En[l],Z=rs[l],q=ns[l];for(let C=0;C<16;C++){const G=Xe(r+Ar(l,s,c,f)+et[$[C]]+v,Z[C])+u|0;r=u,u=f,f=Xe(c,10)|0,c=s,s=G}for(let C=0;C<16;C++){const G=Xe(o+Ar(b,i,a,d)+et[K[C]]+B,q[C])+y|0;o=y,y=d,d=Xe(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(){Ue(et)}destroy(){this.destroyed=!0,Ue(this.buffer),this.set(0,0,0,0,0)}}const cs=Kr(()=>new is),xn=Uint8Array.of(),as=Uint8Array.of(0);function Pe(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 fs(...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 An=e=>new DataView(e.buffer,e.byteOffset,e.byteLength);function Me(e){return Object.prototype.toString.call(e)==="[object Object]"}function ce(e){return Number.isSafeInteger(e)}const Yt={equalBytes:Pe,isBytes:X,concatBytes:fs},Sn=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}}},N={BITS:32,FULL_MASK:-1>>>0,len:e=>Math.ceil(e/32),create:e=>new Uint32Array(N.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(N.len(t)!==e.length)throw new Error(`wrong length=${e.length}. Expected: ${N.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)=>{N.checkLen(e,t);const{FULL_MASK:r,BITS:o}=N,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)=>`[${N.range(N.indices(e,t,n)).map(r=>`(${r.pos}/${r.length})`).join(", ")}]`,setRange:(e,t,n,r,o=!0)=>{N.chunkLen(t,n,r);const{FULL_MASK:s,BITS:i}=N,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 N.set(e,c,s>>>i-r<<i-r-n,o);if(c!==void 0&&!N.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(!N.set(e,y,s,o))return!1;return!(f!==void 0&&c!==f&&!N.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 Xt{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=An(t)}_enablePointers(){if(this.parent)return this.parent._enablePointers();this.bs||(this.bs=N.create(this.data.length),N.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:N.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=N.indices(this.bs,this.data.length,!0);if(t.length){const n=N.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 Xt(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(Pe(t,this.data.subarray(r,r+t.length)))return r}}}class us{pos=0;stack;buffers=[];ptrs=[];bitBuf=0;bitPos=0;viewBuf=new Uint8Array(8);view;finished=!1;constructor(t=[]){this.stack=t,this.view=An(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 Ct=e=>Uint8Array.from(e).reverse();function ds(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 us;return e.encodeStream(n,t),n.finish()},decode:(t,n={})=>{const r=new Xt(t,n),o=e.decodeStream(r);return r.finish(),o}}}function Fe(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?Fe(t,e.validate):t},mt=e=>Me(e)&&typeof e.decode=="function"&&typeof e.encode=="function";function ee(e){return Me(e)&&mt(e)&&typeof e.encodeStream=="function"&&typeof e.decodeStream=="function"&&(e.size===void 0||ce(e.size))}function hs(){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(!Me(e))throw new Error(`expected plain object, got ${e}`);return Object.entries(e)}}}const ls={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 ps(e){if(!Me(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 ws(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 ys(e){if(!Array.isArray(e))throw new Error(`expected array, got ${typeof e}`);for(const t of e)if(!mt(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 vn=e=>{if(!mt(e))throw new Error("BaseCoder expected");return{encode:e.decode,decode:e.encode}},Qt={dict:hs,numberBigint:ls,tsEnum:ps,decimal:ws,match:ys,reverse:vn},Jt=(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:Ct(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 ds(i,8n*o,!!n),i}})},gs=Jt(32,!1),In=Jt(8,!0),bs=Jt(8,!0,!0),Es=(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 Es(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)}),ms=je(4,!1,{read:(e,t)=>e.getUint32(t,!1),write:(e,t)=>e.setUint32(0,t,!1)}),er=je(4,!0,{read:(e,t)=>e.getInt32(t,!0),write:(e,t)=>e.setInt32(0,t,!0)}),Sr=je(2,!1,{read:(e,t)=>e.getUint16(t,!0),write:(e,t)=>e.setUint16(0,t,!0)}),Rn=je(1,!1,{read:(e,t)=>e.getUint8(t),write:(e,t)=>e.setUint8(0,t)}),Ne=(e,t=!1)=>{if(typeof t!="boolean")throw new Error(`bytes/le: expected boolean, got ${typeof t}`);const n=Sn(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?Ct(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?Ct(s):s},validate:o=>{if(!X(o))throw new Error(`bytes: invalid value ${o}`);return o}})};function xs(e,t){if(!ee(t))throw new Error(`prefix: invalid inner value ${t}`);return Se(Ne(e),vn(t))}const As=(e,t=!1)=>Fe(Se(Ne(e,t),po),n=>{if(typeof n!="string")throw new Error(`expected string, got ${typeof n}`);return n}),Ss=(e,t={isLE:!1,with0x:!1})=>{let n=Se(Ne(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=Se(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 Se(e,t){if(!ee(e))throw new Error(`apply: invalid inner value ${e}`);if(!mt(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 Bs=(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=Pe(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 vs(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 Is(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)&&!Pe(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 $n(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 ze(e){if(!Me(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:$n(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 Rs(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:$n(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 xt(e,t){if(!ee(t))throw new Error(`array: invalid inner value ${t}`);const n=Sn(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(Pe(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(Pe(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 Ce=Ie.Point,Br=Ce.Fn,On=Ce.Fn.ORDER,Un=e=>e%2n===0n,T=Yt.isBytes,tr=Yt.concatBytes,rr=Yt.equalBytes,At=e=>cs(ie(e)),$s=(...e)=>ie(ie(tr(...e))),Os=ve.getPublicKey,Us=Ie.getPublicKey,vr=e=>e.r<On/2n;function ks(e,t,n=!1){let r=Ie.Signature.fromBytes(Ie.sign(e,t,{prehash:!1}));if(n&&!vr(r)){const o=new Uint8Array(32);let s=0;for(;!vr(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 Ps=ve.sign,kn=ve.utils.taggedHash,se={ecdsa:0,schnorr:1};function Pn(e,t){const n=e.length;if(t===se.ecdsa){if(n===32)throw new Error("Expected non-Schnorr key");return Ce.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 _n(e,t){const r=ve.utils.taggedHash("TapTweak",e,t),o=de(r);if(o>=On)throw new Error("tweak higher than curve order");return o}function _s(e,t=Uint8Array.of()){const n=ve.utils,r=de(e),o=Ce.BASE.multiply(r),s=Un(o.y)?r:Br.neg(r),i=n.pointToBytes(o),c=_n(i,t);return gt(Br.add(s,c),32)}function Hn(e,t){const n=ve.utils,r=_n(e,t),s=n.lift_x(de(e)).add(Ce.BASE.multiply(r)),i=Un(s.y)?0:1;return[n.pointToBytes(s),i]}const Hs=ie(Ce.BASE.toBytes(!1)),ge={bech32:"bc",pubKeyHash:0,scriptHash:5,wif:128},Ls={bech32:"tb",pubKeyHash:111,scriptHash:196,wif:239};function Ts(e,t){if(!T(e)||!T(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 Ln(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 W={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},Ns=Ln(W);function Tn(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 Cs(e,t=4,n=!0){if(typeof e=="number")return e;if(T(e))try{const r=Tn(t,n).decode(e);return r>Number.MAX_SAFE_INTEGER?void 0:Number(r)}catch{return}}const _e=z({encodeStream:(e,t)=>{for(let n of t){if(typeof n=="string"){if(W[n]===void 0)throw new Error(`Unknown opcode=${n}`);e.byte(W[n]);continue}else if(typeof n=="number"){if(n===0){e.byte(0);continue}else if(1<=n&&n<=16){e.byte(W.OP_1-1+n);continue}}if(typeof n=="number"&&(n=Tn().encode(BigInt(n))),!T(n))throw new Error(`Wrong Script OP=${n} (${typeof n})`);const r=n.length;r<W.PUSHDATA1?e.byte(r):r<=255?(e.byte(W.PUSHDATA1),e.byte(r)):r<=65535?(e.byte(W.PUSHDATA2),e.bytes(Sr.encode(r))):(e.byte(W.PUSHDATA4),e.bytes(ye.encode(r))),e.bytes(n)}},decodeStream:e=>{const t=[];for(;!e.isEnd();){const n=e.byte();if(W.OP_0<n&&n<=W.PUSHDATA4){let r;if(n<W.PUSHDATA1)r=n;else if(n===W.PUSHDATA1)r=Rn.decodeStream(e);else if(n===W.PUSHDATA2)r=Sr.decodeStream(e);else if(n===W.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(W.OP_1<=n&&n<=W.OP_16)t.push(n-(W.OP_1-1));else{const r=Ns[n];if(r===void 0)throw new Error(`Unknown opcode=${n.toString(16)}`);t.push(r)}}return t}}),Ir={253:[253,2,253n,65535n],254:[254,4,65536n,4294967295n],255:[255,8,4294967296n,18446744073709551615n]},St=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(Ir))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]=Ir[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}}),Nn=Se(St,Qt.numberBigint),Ze=Ne(St),Cn=xt(Nn,Ze),ht=e=>xt(St,e),Dn=ze({txid:Ne(32,!0),index:ye,finalScriptSig:Ze,sequence:ye}),nr=ze({amount:In,script:Ze}),Ds=ze({version:er,segwitFlag:Bs(new Uint8Array([0,1])),inputs:ht(Dn),outputs:ht(nr),witnesses:vs("segwitFlag",xt("inputs/length",Cn)),lockTime:ye});function Ws(e){if(e.segwitFlag&&e.witnesses&&!e.witnesses.length)throw new Error("Segwit flag with empty witnesses array");return e}const Ks=Fe(Ds,Ws),qs=ze({version:er,inputs:ht(Dn),outputs:ht(nr),lockTime:ye}),Vs={encode(e){if(!(e.length!==2||e[0]!==1||!T(e[1])||J.encode(e[1])!=="4e73"))return{type:"p2a",script:_e.encode(e)}},decode:e=>{if(e.type==="p2a")return[1,J.decode("4e73")]}};function xe(e,t){try{return Pn(e,t),!0}catch{return!1}}const Ms={encode(e){if(!(e.length!==2||!T(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},Fs={encode(e){if(!(e.length!==5||e[0]!=="DUP"||e[1]!=="HASH160"||!T(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},js={encode(e){if(!(e.length!==3||e[0]!=="HASH160"||!T(e[1])||e[2]!=="EQUAL"))return{type:"sh",hash:e[1]}},decode:e=>e.type==="sh"?["HASH160",e.hash,"EQUAL"]:void 0},zs={encode(e){if(!(e.length!==2||e[0]!==0||!T(e[1]))&&e[1].length===32)return{type:"wsh",hash:e[1]}},decode:e=>e.type==="wsh"?[0,e.hash]:void 0},Zs={encode(e){if(!(e.length!==2||e[0]!==0||!T(e[1]))&&e[1].length===20)return{type:"wpkh",hash:e[1]}},decode:e=>e.type==="wpkh"?[0,e.hash]:void 0},Gs={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(!T(s))return;return{type:"ms",m:n,pubkeys:o}}},decode:e=>e.type==="ms"?[e.m,...e.pubkeys,e.pubkeys.length,"CHECKMULTISIG"]:void 0},Ys={encode(e){if(!(e.length!==2||e[0]!==1||!T(e[1])))return{type:"tr",pubkey:e[1]}},decode:e=>e.type==="tr"?[1,e.pubkey]:void 0},Xs={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(!T(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}},Qs={encode(e){const t=e.length-1;if(e[t]!=="NUMEQUAL"||e[1]!=="CHECKSIG")return;const n=[],r=Cs(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(!T(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}},Js={encode(e){return{type:"unknown",script:_e.encode(e)}},decode:e=>e.type==="unknown"?_e.decode(e.script):void 0},ei=[Vs,Ms,Fs,js,zs,Zs,Gs,Ys,Xs,Qs,Js],ti=Se(_e,Qt.match(ei)),te=Fe(ti,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")&&(!T(e.hash)||e.hash.length!==20))throw new Error(`OutScript/${e.type}: wrong hash`);if(e.type==="wsh"&&(!T(e.hash)||e.hash.length!==32))throw new Error("OutScript/wsh: wrong hash");if(e.type==="tr"&&(!T(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 Rr(e,t){if(!rr(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 Wn(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(!rr(r.hash,At(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&&Rr(r,n)}if(t){const r=te.decode(t);r.type==="wsh"&&n&&Rr(r,n)}}const ri=(e,t=ge)=>{const n=e.script;if(!T(n))throw new Error(`Wrong script: ${typeof e.script}, expected Uint8Array`);const r=At(n),o=te.encode({type:"sh",hash:r});return Wn(o,n,e.witnessScript),e.witnessScript?{type:"sh",redeemScript:n,script:te.encode({type:"sh",hash:r}),address:He(t).encode({type:"sh",hash:r}),hash:r,witnessScript:e.witnessScript}:{type:"sh",redeemScript:n,script:te.encode({type:"sh",hash:r}),address:He(t).encode({type:"sh",hash:r}),hash:r}},ni=(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=At(e);return{type:"wpkh",script:te.encode({type:"wpkh",hash:n}),address:He(t).encode({type:"wpkh",hash:n}),hash:n}},oi=192,si=(e,t=oi)=>kn("TapLeaf",new Uint8Array([t]),Ze.encode(e));function ii(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||Hs;if(!xe(s,se.schnorr))throw new Error("p2tr: non-schnorr pubkey");{const i=Hn(s,xn)[0];return{type:"tr",script:te.encode({type:"tr",pubkey:i}),address:He(n).encode({type:"tr",pubkey:i}),tweakedPubkey:i,tapInternalKey:s}}}const Kn=lo(ie);function qn(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 Ut(e,t,n=ge){qn(e,t);const r=e===0?_t:Cr;return r.encode(n.bech32,[e].concat(r.toWords(t)))}function $r(e,t){return Kn.encode(tr(Uint8Array.from(t),e))}function He(e=ge){return{encode(t){const{type:n}=t;if(n==="wpkh")return Ut(0,t.hash,e);if(n==="wsh")return Ut(0,t.hash,e);if(n==="tr")return Ut(1,t.pubkey,e);if(n==="pkh")return $r(t.hash,[e.pubKeyHash]);if(n==="sh")return $r(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=_t.decode(t),r.words[0]!==0)throw new Error(`bech32: wrong version=${r.words[0]}`)}catch{if(r=Cr.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=_t.fromWords(s);if(qn(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=Kn.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 Dt(e){return e==="mainnet"?ge:e==="testnet"?Ls:ge}function De(e){return e.bech32==="bc"}function Vn(e,t){return ci(e,t)?"p2pkh":ai(e,t)?"p2sh":Mn(e,t)?"p2wpkh":fi(e,t)?"p2wsh":Fn(e,t)?"p2tr":"unknown"}function ci(e,t){return De(e)?t.startsWith("1"):t.startsWith("m")||t.startsWith("n")}function ai(e,t){return De(e)?t.startsWith("3"):t.startsWith("2")}function Mn(e,t){return De(e)?t.startsWith("bc1q"):t.startsWith("tb1q")}function Fn(e,t){return De(e)?t.startsWith("bc1p"):t.startsWith("tb1p")}function fi(e,t){return Fn(e,t)||Mn(e,t)?!1:De(e)?t.startsWith("bc1"):t.startsWith("tb1")}function ui(e,t){if(t.byteLength!==33)throw new Error("Invalid public key length");return t.slice(1)}function di(e,t){return ii(ui(e,t),void 0,e).tapInternalKey}function hi(e,t){return ri(ni(t,e),e).redeemScript}function jn(e,t){const n=He(e).decode(t);return te.encode(n)}function li(e,t){return J.encode(jn(e,t))}class Re extends Error{constructor(t,n){super(t,n),this.name="BitcoinWalletAdapterError"}}class pi extends Re{constructor(t,n){super(t,n),this.name="UserRejectError"}}const wi="0000000000000000000000000000000000000000000000000000000000000000",zn="0000000000000000000000000000000000000000000000000000000000000000",yi=J.encode(_e.encode(["OP_1",J.decode(zn),"OP_1","CHECKMULTISIG"])),gi=(e,t,n)=>({adapterId:`mocked.${t.adapterId}`,metadata:{...t.metadata,name:`Mocked ${t.metadata.name}`},getAdapter(){const r=t.getAdapter();return{subscribe(o){return r.subscribe(s=>{o(new bi(e,s,n))})}}}});class bi{constructor(t,n,r){this.inner=n,this.addresses=r,this.network=t===M.WalletAdapterBitcoinNetwork.TESTNET?Dt("testnet"):Dt("mainnet")}network;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=Vn(this.network,i.address),a=c==="p2tr"?M.WalletAdapterAddressType.P2TR:c==="p2sh"?M.WalletAdapterAddressType.P2SH_P2WPKH:c==="p2wpkh"?M.WalletAdapterAddressType.P2WPKH:c==="p2pkh"?M.WalletAdapterAddressType.P2PKH:void 0;if(a==null)throw new Re(`[MockAddressWalletAdapter] Please provide a supported ${s} address`);return{network:De(this.network)?M.WalletAdapterBitcoinNetwork.MAINNET:M.WalletAdapterBitcoinNetwork.TESTNET,purposes:i.purposes,addressType:a,address:i.address,scriptPubKey:li(this.network,i.address),publicKey:zn,redeemScript:yi,tapInternalKey:wi}};let r,o;return this.addresses.bitcoin!=null&&(r=n("bitcoin",{...this.addresses.bitcoin,purposes:[M.WalletAdapterAddressPurpose.Bitcoin]})),this.addresses.ordinals!=null&&(o=n("ordinals",{...this.addresses.ordinals,purposes:[M.WalletAdapterAddressPurpose.Ordinals,M.WalletAdapterAddressPurpose.BRC20,M.WalletAdapterAddressPurpose.Runes]})),t.flatMap(s=>{const i=[];let c=s.purposes;return r!=null&&c.includes(M.WalletAdapterAddressPurpose.Bitcoin)&&(i.push(r),c=c.filter(a=>a!==M.WalletAdapterAddressPurpose.Bitcoin)),o!=null&&c.includes(M.WalletAdapterAddressPurpose.Ordinals)&&(i.push(o),c=c.filter(a=>a!==M.WalletAdapterAddressPurpose.Ordinals)),c.length>0&&i.push({...s,purposes:c}),i})}async signMessage(t,n){throw new Re("[MockAddressWalletAdapter] it's a mock adapter, can't send inscription")}signAndFinalizePsbt(t){throw new Re("[MockAddressWalletAdapter] it's a mock adapter, can't sign transaction")}onAddressesChanged(t){return{unsubscribe:()=>{}}}get sendBitcoinFeeRateCapability(){return this.inner.sendBitcoinFeeRateCapability}sendBitcoin(t,n,r){throw new Re("[MockAddressWalletAdapter] it's a mock adapter, can't send bitcoin")}}const Ei="okxwallet.bitcoin",mi={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"},xi=Le({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-7cj96tmr.js"));return new t(e)}});function Ai(){return{adapterId:Ei,metadata:mi,getAdapter:()=>xi}}const Si="unisat",Zn={name:"UniSat",iconUrl:()=>Promise.resolve().then(()=>require("./unisat-BvZW5h0U.js")).then(e=>e.default),websiteUrl:"https://unisat.io/",downloadUrl:"https://unisat.io/download"},Bi=Le({getPrecondition:()=>{const e=window.unisat;return e==null?null:{value:e}},initializer:async e=>{const{UnisatWalletAdapterImpl:t}=await Promise.resolve().then(()=>require("./UnisatWalletAdapter.impl-DXDfnHz_.js"));return new t(e)}});function vi(){return{adapterId:Si,metadata:Zn,getAdapter:()=>Bi}}const or="XverseProviders.BitcoinProvider",Gn={name:"Xverse",iconUrl:()=>Promise.resolve().then(()=>require("./xverse-IKOHyGi-.js")).then(e=>e.default),websiteUrl:"https://xverse.app/",downloadUrl:"https://www.xverse.app/download"},Ii=Le({getPrecondition:()=>{const e=(window.btc_providers??[]).find(t=>t.id===or);return e==null?null:{value:e}},initializer:async()=>{const{XverseWalletAdapterImpl:e}=await Promise.resolve().then(()=>require("./XverseWalletAdapter.impl-D0eOtEOa.js"));return new e}});function Ri(){return{adapterId:or,metadata:Gn,getAdapter:()=>Ii}}exports.Address=He;exports.BitcoinWalletAdapterError=Re;exports.BitgetWalletAdapterFactory=Qn;exports.CompactSize=St;exports.CompactSizeLen=Nn;exports.EMPTY=xn;exports.I32LE=er;exports.I64LE=bs;exports.LeatherWalletAdapterFactory=eo;exports.MAGICEDEN_PROVIDER_ID=Pr;exports.MagicEdenWalletAdapterFactory=ro;exports.MockAddressWalletAdapterFactory=gi;exports.NETWORK=ge;exports.NULL=as;exports.OkxWalletAdapterFactory=Ai;exports.OutScript=te;exports.PubT=se;exports.RawOldTx=qs;exports.RawOutput=nr;exports.RawTx=Ks;exports.RawWitness=Cn;exports.Script=_e;exports.U256BE=gs;exports.U32BE=ms;exports.U32LE=ye;exports.U64LE=In;exports.U8=Rn;exports.UnisatWalletAdapterFactory=vi;exports.UserRejectError=pi;exports.VarBytes=Ze;exports.XVERSE_PROVIDER_ID=or;exports.XverseWalletAdapterFactory=Ri;exports.adapterId=Ur;exports.addressToScriptPubKey=jn;exports.apply=Se;exports.array=xt;exports.base64=fo;exports.checkScript=Wn;exports.coders=Qt;exports.compareBytes=Ts;exports.concatBytes=tr;exports.createBytes=Ne;exports.createHex=Ss;exports.equalBytes=rr;exports.getAddressType=Vn;exports.getBitcoinNetwork=Dt;exports.getRedeemScriptOf_P2SH_P2WPKH_publicKey=hi;exports.getTapInternalKeyOf_P2TR_publicKey=di;exports.hash160=At;exports.hex=J;exports.isBytes=T;exports.magic=Is;exports.metadata=Or;exports.metadata$1=kr;exports.metadata$2=Zn;exports.metadata$3=Gn;exports.metadata$4=_r;exports.prefix=xs;exports.pubECDSA=Us;exports.pubSchnorr=Os;exports.reverseObject=Ln;exports.sha256=ie;exports.sha256x2=$s;exports.signECDSA=ks;exports.signSchnorr=Ps;exports.string=As;exports.struct=ze;exports.tagSchnorr=kn;exports.tapLeafHash=si;exports.taprootTweakPrivKey=_s;exports.taprootTweakPubkey=Hn;exports.tuple=Rs;exports.validate=Fe;exports.validatePubkey=Pn;exports.wrap=z;
2
+ //# sourceMappingURL=index-jRY8YhyK.js.map