ox 0.0.1 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (756) hide show
  1. package/Abi/package.json +6 -0
  2. package/Abi.ts +163 -0
  3. package/AbiConstructor/package.json +6 -0
  4. package/AbiConstructor.ts +413 -0
  5. package/AbiError/package.json +6 -0
  6. package/AbiError.ts +719 -0
  7. package/AbiEvent/package.json +6 -0
  8. package/AbiEvent.ts +1284 -0
  9. package/AbiFunction/package.json +6 -0
  10. package/AbiFunction.ts +813 -0
  11. package/AbiItem/package.json +6 -0
  12. package/AbiItem.ts +779 -0
  13. package/AbiParameters/package.json +6 -0
  14. package/AbiParameters.ts +712 -0
  15. package/AccessList/package.json +6 -0
  16. package/AccessList.ts +124 -0
  17. package/AccountProof/package.json +6 -0
  18. package/AccountProof.ts +35 -0
  19. package/Address/package.json +6 -0
  20. package/Address.ts +359 -0
  21. package/AesGcm/package.json +6 -0
  22. package/AesGcm.ts +220 -0
  23. package/Authorization/package.json +6 -0
  24. package/Authorization.ts +639 -0
  25. package/Base58/package.json +6 -0
  26. package/Base58.ts +180 -0
  27. package/Base64/package.json +6 -0
  28. package/Base64.ts +333 -0
  29. package/Blobs/package.json +6 -0
  30. package/Blobs.ts +982 -0
  31. package/Block/package.json +6 -0
  32. package/Block.ts +317 -0
  33. package/Bloom/package.json +6 -0
  34. package/Bloom.ts +80 -0
  35. package/Bls/package.json +6 -0
  36. package/Bls.ts +496 -0
  37. package/BlsPoint/package.json +6 -0
  38. package/BlsPoint.ts +232 -0
  39. package/Bytes/package.json +6 -0
  40. package/Bytes.ts +963 -0
  41. package/CHANGELOG.md +7 -0
  42. package/Caches/package.json +6 -0
  43. package/Caches.ts +21 -0
  44. package/ContractAddress/package.json +6 -0
  45. package/ContractAddress.ts +181 -0
  46. package/Ens/package.json +6 -0
  47. package/Ens.ts +116 -0
  48. package/Errors/package.json +6 -0
  49. package/Errors.ts +95 -0
  50. package/Fee/package.json +6 -0
  51. package/Fee.ts +57 -0
  52. package/Filter/package.json +6 -0
  53. package/Filter.ts +144 -0
  54. package/Hash/package.json +6 -0
  55. package/Hash.ts +210 -0
  56. package/HdKey/package.json +6 -0
  57. package/HdKey.ts +175 -0
  58. package/Hex/package.json +6 -0
  59. package/Hex.ts +1040 -0
  60. package/Json/package.json +6 -0
  61. package/Json.ts +84 -0
  62. package/Kzg/package.json +6 -0
  63. package/Kzg.ts +51 -0
  64. package/LICENSE +21 -0
  65. package/Log/package.json +6 -0
  66. package/Log.ts +248 -0
  67. package/Mnemonic/package.json +6 -0
  68. package/Mnemonic.ts +249 -0
  69. package/P256/package.json +6 -0
  70. package/P256.ts +230 -0
  71. package/PersonalMessage/package.json +6 -0
  72. package/PersonalMessage.ts +70 -0
  73. package/Provider/package.json +6 -0
  74. package/Provider.ts +354 -0
  75. package/PublicKey/package.json +6 -0
  76. package/PublicKey.ts +545 -0
  77. package/README.md +75 -26
  78. package/Rlp/package.json +6 -0
  79. package/Rlp.ts +390 -0
  80. package/RpcRequest/package.json +6 -0
  81. package/RpcRequest.ts +192 -0
  82. package/RpcResponse/package.json +6 -0
  83. package/RpcResponse.ts +389 -0
  84. package/RpcSchema/package.json +6 -0
  85. package/RpcSchema.ts +273 -0
  86. package/RpcTransport/package.json +6 -0
  87. package/RpcTransport.ts +198 -0
  88. package/Secp256k1/package.json +6 -0
  89. package/Secp256k1.ts +304 -0
  90. package/Signature/package.json +6 -0
  91. package/Signature.ts +909 -0
  92. package/Siwe/package.json +6 -0
  93. package/Siwe.ts +516 -0
  94. package/Solidity/package.json +6 -0
  95. package/Solidity.ts +109 -0
  96. package/Transaction/package.json +6 -0
  97. package/Transaction.ts +429 -0
  98. package/TransactionEnvelope/package.json +6 -0
  99. package/TransactionEnvelope.ts +205 -0
  100. package/TransactionEnvelopeEip1559/package.json +6 -0
  101. package/TransactionEnvelopeEip1559.ts +656 -0
  102. package/TransactionEnvelopeEip2930/package.json +6 -0
  103. package/TransactionEnvelopeEip2930.ts +624 -0
  104. package/TransactionEnvelopeEip4844/package.json +6 -0
  105. package/TransactionEnvelopeEip4844.ts +764 -0
  106. package/TransactionEnvelopeEip7702/package.json +6 -0
  107. package/TransactionEnvelopeEip7702.ts +639 -0
  108. package/TransactionEnvelopeLegacy/package.json +6 -0
  109. package/TransactionEnvelopeLegacy.ts +674 -0
  110. package/TransactionReceipt/package.json +6 -0
  111. package/TransactionReceipt.ts +341 -0
  112. package/TransactionRequest/package.json +6 -0
  113. package/TransactionRequest.ts +151 -0
  114. package/TypedData/package.json +6 -0
  115. package/TypedData.ts +931 -0
  116. package/ValidatorData/package.json +6 -0
  117. package/ValidatorData.ts +87 -0
  118. package/Value/package.json +6 -0
  119. package/Value.ts +242 -0
  120. package/WebAuthnP256/package.json +6 -0
  121. package/WebAuthnP256.ts +803 -0
  122. package/WebCryptoP256/package.json +6 -0
  123. package/WebCryptoP256.ts +190 -0
  124. package/Withdrawal/package.json +6 -0
  125. package/Withdrawal.ts +95 -0
  126. package/_cjs/Abi.js +17 -0
  127. package/_cjs/Abi.js.map +1 -0
  128. package/_cjs/AbiConstructor.js +42 -0
  129. package/_cjs/AbiConstructor.js.map +1 -0
  130. package/_cjs/AbiError.js +98 -0
  131. package/_cjs/AbiError.js.map +1 -0
  132. package/_cjs/AbiEvent.js +338 -0
  133. package/_cjs/AbiEvent.js.map +1 -0
  134. package/_cjs/AbiFunction.js +85 -0
  135. package/_cjs/AbiFunction.js.map +1 -0
  136. package/_cjs/AbiItem.js +180 -0
  137. package/_cjs/AbiItem.js.map +1 -0
  138. package/_cjs/AbiParameters.js +229 -0
  139. package/_cjs/AbiParameters.js.map +1 -0
  140. package/_cjs/AccessList.js +51 -0
  141. package/_cjs/AccessList.js.map +1 -0
  142. package/_cjs/AccountProof.js +3 -0
  143. package/_cjs/AccountProof.js.map +1 -0
  144. package/_cjs/Address.js +121 -0
  145. package/_cjs/Address.js.map +1 -0
  146. package/_cjs/AesGcm.js +55 -0
  147. package/_cjs/AesGcm.js.map +1 -0
  148. package/_cjs/Authorization.js +99 -0
  149. package/_cjs/Authorization.js.map +1 -0
  150. package/_cjs/Base58.js +52 -0
  151. package/_cjs/Base58.js.map +1 -0
  152. package/_cjs/Base64.js +76 -0
  153. package/_cjs/Base64.js.map +1 -0
  154. package/_cjs/Blobs.js +255 -0
  155. package/_cjs/Blobs.js.map +1 -0
  156. package/_cjs/Block.js +87 -0
  157. package/_cjs/Block.js.map +1 -0
  158. package/_cjs/Bloom.js +23 -0
  159. package/_cjs/Bloom.js.map +1 -0
  160. package/_cjs/Bls.js +79 -0
  161. package/_cjs/Bls.js.map +1 -0
  162. package/_cjs/BlsPoint.js +32 -0
  163. package/_cjs/BlsPoint.js.map +1 -0
  164. package/_cjs/Bytes.js +279 -0
  165. package/_cjs/Bytes.js.map +1 -0
  166. package/_cjs/Caches.js +14 -0
  167. package/_cjs/Caches.js.map +1 -0
  168. package/_cjs/ContractAddress.js +39 -0
  169. package/_cjs/ContractAddress.js.map +1 -0
  170. package/_cjs/Ens.js +37 -0
  171. package/_cjs/Ens.js.map +1 -0
  172. package/_cjs/Errors.js +99 -0
  173. package/_cjs/Errors.js.map +1 -0
  174. package/_cjs/Fee.js +3 -0
  175. package/_cjs/Fee.js.map +1 -0
  176. package/_cjs/Filter.js +43 -0
  177. package/_cjs/Filter.js.map +1 -0
  178. package/_cjs/Hash.js +40 -0
  179. package/_cjs/Hash.js.map +1 -0
  180. package/_cjs/HdKey.js +30 -0
  181. package/_cjs/HdKey.js.map +1 -0
  182. package/_cjs/Hex.js +324 -0
  183. package/_cjs/Hex.js.map +1 -0
  184. package/_cjs/Json.js +25 -0
  185. package/_cjs/Json.js.map +1 -0
  186. package/_cjs/Kzg.js +14 -0
  187. package/_cjs/Kzg.js.map +1 -0
  188. package/_cjs/Log.js +35 -0
  189. package/_cjs/Log.js.map +1 -0
  190. package/_cjs/Mnemonic.js +56 -0
  191. package/_cjs/Mnemonic.js.map +1 -0
  192. package/_cjs/P256.js +52 -0
  193. package/_cjs/P256.js.map +1 -0
  194. package/_cjs/PersonalMessage.js +16 -0
  195. package/_cjs/PersonalMessage.js.map +1 -0
  196. package/_cjs/Provider.js +90 -0
  197. package/_cjs/Provider.js.map +1 -0
  198. package/_cjs/PublicKey.js +192 -0
  199. package/_cjs/PublicKey.js.map +1 -0
  200. package/_cjs/Rlp.js +179 -0
  201. package/_cjs/Rlp.js.map +1 -0
  202. package/_cjs/RpcRequest.js +27 -0
  203. package/_cjs/RpcRequest.js.map +1 -0
  204. package/_cjs/RpcResponse.js +368 -0
  205. package/_cjs/RpcResponse.js.map +1 -0
  206. package/_cjs/RpcSchema.js +7 -0
  207. package/_cjs/RpcSchema.js.map +1 -0
  208. package/_cjs/RpcTransport.js +95 -0
  209. package/_cjs/RpcTransport.js.map +1 -0
  210. package/_cjs/Secp256k1.js +57 -0
  211. package/_cjs/Secp256k1.js.map +1 -0
  212. package/_cjs/Signature.js +305 -0
  213. package/_cjs/Signature.js.map +1 -0
  214. package/_cjs/Siwe.js +231 -0
  215. package/_cjs/Siwe.js.map +1 -0
  216. package/_cjs/Solidity.js +104 -0
  217. package/_cjs/Solidity.js.map +1 -0
  218. package/_cjs/Transaction.js +106 -0
  219. package/_cjs/Transaction.js.map +1 -0
  220. package/_cjs/TransactionEnvelope.js +80 -0
  221. package/_cjs/TransactionEnvelope.js.map +1 -0
  222. package/_cjs/TransactionEnvelopeEip1559.js +182 -0
  223. package/_cjs/TransactionEnvelopeEip1559.js.map +1 -0
  224. package/_cjs/TransactionEnvelopeEip2930.js +166 -0
  225. package/_cjs/TransactionEnvelopeEip2930.js.map +1 -0
  226. package/_cjs/TransactionEnvelopeEip4844.js +224 -0
  227. package/_cjs/TransactionEnvelopeEip4844.js.map +1 -0
  228. package/_cjs/TransactionEnvelopeEip7702.js +156 -0
  229. package/_cjs/TransactionEnvelopeEip7702.js.map +1 -0
  230. package/_cjs/TransactionEnvelopeLegacy.js +221 -0
  231. package/_cjs/TransactionEnvelopeLegacy.js.map +1 -0
  232. package/_cjs/TransactionReceipt.js +76 -0
  233. package/_cjs/TransactionReceipt.js.map +1 -0
  234. package/_cjs/TransactionRequest.js +51 -0
  235. package/_cjs/TransactionRequest.js.map +1 -0
  236. package/_cjs/TypedData.js +318 -0
  237. package/_cjs/TypedData.js.map +1 -0
  238. package/_cjs/ValidatorData.js +16 -0
  239. package/_cjs/ValidatorData.js.map +1 -0
  240. package/_cjs/Value.js +96 -0
  241. package/_cjs/Value.js.map +1 -0
  242. package/_cjs/WebAuthnP256.js +245 -0
  243. package/_cjs/WebAuthnP256.js.map +1 -0
  244. package/_cjs/WebCryptoP256.js +46 -0
  245. package/_cjs/WebCryptoP256.js.map +1 -0
  246. package/_cjs/Withdrawal.js +24 -0
  247. package/_cjs/Withdrawal.js.map +1 -0
  248. package/_cjs/index.js +66 -0
  249. package/_cjs/index.js.map +1 -0
  250. package/_cjs/internal/abi.js +11 -0
  251. package/_cjs/internal/abi.js.map +1 -0
  252. package/_cjs/internal/abiConstructor.js +3 -0
  253. package/_cjs/internal/abiConstructor.js.map +1 -0
  254. package/_cjs/internal/abiError.js +3 -0
  255. package/_cjs/internal/abiError.js.map +1 -0
  256. package/_cjs/internal/abiEvent.js +3 -0
  257. package/_cjs/internal/abiEvent.js.map +1 -0
  258. package/_cjs/internal/abiFunction.js +3 -0
  259. package/_cjs/internal/abiFunction.js.map +1 -0
  260. package/_cjs/internal/abiItem.js +110 -0
  261. package/_cjs/internal/abiItem.js.map +1 -0
  262. package/_cjs/internal/abiParameters.js +376 -0
  263. package/_cjs/internal/abiParameters.js.map +1 -0
  264. package/_cjs/internal/base58.js +89 -0
  265. package/_cjs/internal/base58.js.map +1 -0
  266. package/_cjs/internal/bytes.js +88 -0
  267. package/_cjs/internal/bytes.js.map +1 -0
  268. package/_cjs/internal/cursor.js +210 -0
  269. package/_cjs/internal/cursor.js.map +1 -0
  270. package/_cjs/internal/ens.js +43 -0
  271. package/_cjs/internal/ens.js.map +1 -0
  272. package/_cjs/internal/errors.js +28 -0
  273. package/_cjs/internal/errors.js.map +1 -0
  274. package/_cjs/internal/hdKey.js +19 -0
  275. package/_cjs/internal/hdKey.js.map +1 -0
  276. package/_cjs/internal/hex.js +66 -0
  277. package/_cjs/internal/hex.js.map +1 -0
  278. package/_cjs/internal/lru.js +34 -0
  279. package/_cjs/internal/lru.js.map +1 -0
  280. package/_cjs/internal/mnemonic/wordlists.js +24 -0
  281. package/_cjs/internal/mnemonic/wordlists.js.map +1 -0
  282. package/_cjs/internal/promise.js +49 -0
  283. package/_cjs/internal/promise.js.map +1 -0
  284. package/_cjs/internal/register.js +3 -0
  285. package/_cjs/internal/register.js.map +1 -0
  286. package/_cjs/internal/rpcSchema.js +3 -0
  287. package/_cjs/internal/rpcSchema.js.map +1 -0
  288. package/_cjs/internal/rpcSchemas/eth.js +3 -0
  289. package/_cjs/internal/rpcSchemas/eth.js.map +1 -0
  290. package/_cjs/internal/rpcSchemas/wallet.js +3 -0
  291. package/_cjs/internal/rpcSchemas/wallet.js.map +1 -0
  292. package/_cjs/internal/rpcTransport.js +19 -0
  293. package/_cjs/internal/rpcTransport.js.map +1 -0
  294. package/_cjs/internal/types.js +3 -0
  295. package/_cjs/internal/types.js.map +1 -0
  296. package/_cjs/internal/uid.js +17 -0
  297. package/_cjs/internal/uid.js.map +1 -0
  298. package/_cjs/internal/webauthn.js +28 -0
  299. package/_cjs/internal/webauthn.js.map +1 -0
  300. package/_cjs/package.json +1 -0
  301. package/_cjs/trusted-setups/Paths.js +6 -0
  302. package/_cjs/trusted-setups/Paths.js.map +1 -0
  303. package/_cjs/trusted-setups/index.js +5 -0
  304. package/_cjs/trusted-setups/index.js.map +1 -0
  305. package/_cjs/trusted-setups/internal/paths.js +11 -0
  306. package/_cjs/trusted-setups/internal/paths.js.map +1 -0
  307. package/_cjs/version.js +5 -0
  308. package/_cjs/version.js.map +1 -0
  309. package/_cjs/window/index.js +3 -0
  310. package/_cjs/window/index.js.map +1 -0
  311. package/_esm/Abi.js +19 -0
  312. package/_esm/Abi.js.map +1 -0
  313. package/_esm/AbiConstructor.js +102 -0
  314. package/_esm/AbiConstructor.js.map +1 -0
  315. package/_esm/AbiError.js +364 -0
  316. package/_esm/AbiError.js.map +1 -0
  317. package/_esm/AbiEvent.js +1038 -0
  318. package/_esm/AbiEvent.js.map +1 -0
  319. package/_esm/AbiFunction.js +549 -0
  320. package/_esm/AbiFunction.js.map +1 -0
  321. package/_esm/AbiItem.js +574 -0
  322. package/_esm/AbiItem.js.map +1 -0
  323. package/_esm/AbiParameters.js +543 -0
  324. package/_esm/AbiParameters.js.map +1 -0
  325. package/_esm/AccessList.js +105 -0
  326. package/_esm/AccessList.js.map +1 -0
  327. package/_esm/AccountProof.js +2 -0
  328. package/_esm/AccountProof.js.map +1 -0
  329. package/_esm/Address.js +268 -0
  330. package/_esm/Address.js.map +1 -0
  331. package/_esm/AesGcm.js +124 -0
  332. package/_esm/AesGcm.js.map +1 -0
  333. package/_esm/Authorization.js +441 -0
  334. package/_esm/Authorization.js.map +1 -0
  335. package/_esm/Base58.js +142 -0
  336. package/_esm/Base58.js.map +1 -0
  337. package/_esm/Base64.js +236 -0
  338. package/_esm/Base64.js.map +1 -0
  339. package/_esm/Blobs.js +624 -0
  340. package/_esm/Blobs.js.map +1 -0
  341. package/_esm/Block.js +177 -0
  342. package/_esm/Block.js.map +1 -0
  343. package/_esm/Bloom.js +57 -0
  344. package/_esm/Bloom.js.map +1 -0
  345. package/_esm/Bls.js +141 -0
  346. package/_esm/Bls.js.map +1 -0
  347. package/_esm/BlsPoint.js +59 -0
  348. package/_esm/BlsPoint.js.map +1 -0
  349. package/_esm/Bytes.js +719 -0
  350. package/_esm/Bytes.js.map +1 -0
  351. package/_esm/Caches.js +19 -0
  352. package/_esm/Caches.js.map +1 -0
  353. package/_esm/ContractAddress.js +110 -0
  354. package/_esm/ContractAddress.js.map +1 -0
  355. package/_esm/Ens.js +84 -0
  356. package/_esm/Ens.js.map +1 -0
  357. package/_esm/Errors.js +105 -0
  358. package/_esm/Errors.js.map +1 -0
  359. package/_esm/Fee.js +2 -0
  360. package/_esm/Fee.js.map +1 -0
  361. package/_esm/Filter.js +100 -0
  362. package/_esm/Filter.js.map +1 -0
  363. package/_esm/Hash.js +126 -0
  364. package/_esm/Hash.js.map +1 -0
  365. package/_esm/HdKey.js +107 -0
  366. package/_esm/HdKey.js.map +1 -0
  367. package/_esm/Hex.js +763 -0
  368. package/_esm/Hex.js.map +1 -0
  369. package/_esm/Json.js +62 -0
  370. package/_esm/Json.js.map +1 -0
  371. package/_esm/Kzg.js +30 -0
  372. package/_esm/Kzg.js.map +1 -0
  373. package/_esm/Log.js +181 -0
  374. package/_esm/Log.js.map +1 -0
  375. package/_esm/Mnemonic.js +154 -0
  376. package/_esm/Mnemonic.js.map +1 -0
  377. package/_esm/P256.js +131 -0
  378. package/_esm/P256.js.map +1 -0
  379. package/_esm/PersonalMessage.js +46 -0
  380. package/_esm/PersonalMessage.js.map +1 -0
  381. package/_esm/Provider.js +122 -0
  382. package/_esm/Provider.js.map +1 -0
  383. package/_esm/PublicKey.js +395 -0
  384. package/_esm/PublicKey.js.map +1 -0
  385. package/_esm/Rlp.js +267 -0
  386. package/_esm/Rlp.js.map +1 -0
  387. package/_esm/RpcRequest.js +131 -0
  388. package/_esm/RpcRequest.js.map +1 -0
  389. package/_esm/RpcResponse.js +457 -0
  390. package/_esm/RpcResponse.js.map +1 -0
  391. package/_esm/RpcSchema.js +46 -0
  392. package/_esm/RpcSchema.js.map +1 -0
  393. package/_esm/RpcTransport.js +110 -0
  394. package/_esm/RpcTransport.js.map +1 -0
  395. package/_esm/Secp256k1.js +173 -0
  396. package/_esm/Secp256k1.js.map +1 -0
  397. package/_esm/Signature.js +696 -0
  398. package/_esm/Signature.js.map +1 -0
  399. package/_esm/Siwe.js +374 -0
  400. package/_esm/Siwe.js.map +1 -0
  401. package/_esm/Solidity.js +104 -0
  402. package/_esm/Solidity.js.map +1 -0
  403. package/_esm/Transaction.js +176 -0
  404. package/_esm/Transaction.js.map +1 -0
  405. package/_esm/TransactionEnvelope.js +139 -0
  406. package/_esm/TransactionEnvelope.js.map +1 -0
  407. package/_esm/TransactionEnvelopeEip1559.js +455 -0
  408. package/_esm/TransactionEnvelopeEip1559.js.map +1 -0
  409. package/_esm/TransactionEnvelopeEip2930.js +439 -0
  410. package/_esm/TransactionEnvelopeEip2930.js.map +1 -0
  411. package/_esm/TransactionEnvelopeEip4844.js +542 -0
  412. package/_esm/TransactionEnvelopeEip4844.js.map +1 -0
  413. package/_esm/TransactionEnvelopeEip7702.js +442 -0
  414. package/_esm/TransactionEnvelopeEip7702.js.map +1 -0
  415. package/_esm/TransactionEnvelopeLegacy.js +495 -0
  416. package/_esm/TransactionEnvelopeLegacy.js.map +1 -0
  417. package/_esm/TransactionReceipt.js +229 -0
  418. package/_esm/TransactionReceipt.js.map +1 -0
  419. package/_esm/TransactionRequest.js +89 -0
  420. package/_esm/TransactionRequest.js.map +1 -0
  421. package/_esm/TypedData.js +635 -0
  422. package/_esm/TypedData.js.map +1 -0
  423. package/_esm/ValidatorData.js +52 -0
  424. package/_esm/ValidatorData.js.map +1 -0
  425. package/_esm/Value.js +196 -0
  426. package/_esm/Value.js.map +1 -0
  427. package/_esm/WebAuthnP256.js +471 -0
  428. package/_esm/WebAuthnP256.js.map +1 -0
  429. package/_esm/WebCryptoP256.js +116 -0
  430. package/_esm/WebCryptoP256.js.map +1 -0
  431. package/_esm/Withdrawal.js +72 -0
  432. package/_esm/Withdrawal.js.map +1 -0
  433. package/_esm/index.js +3366 -0
  434. package/_esm/index.js.map +1 -0
  435. package/_esm/internal/abi.js +9 -0
  436. package/_esm/internal/abi.js.map +1 -0
  437. package/_esm/internal/abiConstructor.js +2 -0
  438. package/_esm/internal/abiConstructor.js.map +1 -0
  439. package/_esm/internal/abiError.js +2 -0
  440. package/_esm/internal/abiError.js.map +1 -0
  441. package/_esm/internal/abiEvent.js +2 -0
  442. package/_esm/internal/abiEvent.js.map +1 -0
  443. package/_esm/internal/abiFunction.js +2 -0
  444. package/_esm/internal/abiFunction.js.map +1 -0
  445. package/_esm/internal/abiItem.js +122 -0
  446. package/_esm/internal/abiItem.js.map +1 -0
  447. package/_esm/internal/abiParameters.js +419 -0
  448. package/_esm/internal/abiParameters.js.map +1 -0
  449. package/_esm/internal/base58.js +91 -0
  450. package/_esm/internal/base58.js.map +1 -0
  451. package/_esm/internal/bytes.js +86 -0
  452. package/_esm/internal/bytes.js.map +1 -0
  453. package/_esm/internal/cursor.js +207 -0
  454. package/_esm/internal/cursor.js.map +1 -0
  455. package/_esm/internal/ens.js +47 -0
  456. package/_esm/internal/ens.js.map +1 -0
  457. package/_esm/internal/errors.js +26 -0
  458. package/_esm/internal/errors.js.map +1 -0
  459. package/_esm/internal/hdKey.js +17 -0
  460. package/_esm/internal/hdKey.js.map +1 -0
  461. package/_esm/internal/hex.js +64 -0
  462. package/_esm/internal/hex.js.map +1 -0
  463. package/_esm/internal/lru.js +36 -0
  464. package/_esm/internal/lru.js.map +1 -0
  465. package/_esm/internal/mnemonic/wordlists.js +11 -0
  466. package/_esm/internal/mnemonic/wordlists.js.map +1 -0
  467. package/_esm/internal/promise.js +52 -0
  468. package/_esm/internal/promise.js.map +1 -0
  469. package/_esm/internal/register.js +2 -0
  470. package/_esm/internal/register.js.map +1 -0
  471. package/_esm/internal/rpcSchema.js +2 -0
  472. package/_esm/internal/rpcSchema.js.map +1 -0
  473. package/_esm/internal/rpcSchemas/eth.js +2 -0
  474. package/_esm/internal/rpcSchemas/eth.js.map +1 -0
  475. package/_esm/internal/rpcSchemas/wallet.js +2 -0
  476. package/_esm/internal/rpcSchemas/wallet.js.map +1 -0
  477. package/_esm/internal/rpcTransport.js +20 -0
  478. package/_esm/internal/rpcTransport.js.map +1 -0
  479. package/_esm/internal/types.js +2 -0
  480. package/_esm/internal/types.js.map +1 -0
  481. package/_esm/internal/uid.js +15 -0
  482. package/_esm/internal/uid.js.map +1 -0
  483. package/_esm/internal/webauthn.js +35 -0
  484. package/_esm/internal/webauthn.js.map +1 -0
  485. package/_esm/package.json +1 -0
  486. package/_esm/trusted-setups/Paths.js +3 -0
  487. package/_esm/trusted-setups/Paths.js.map +1 -0
  488. package/_esm/trusted-setups/index.js +2 -0
  489. package/_esm/trusted-setups/index.js.map +1 -0
  490. package/_esm/trusted-setups/internal/paths.js +12 -0
  491. package/_esm/trusted-setups/internal/paths.js.map +1 -0
  492. package/_esm/version.js +3 -0
  493. package/_esm/version.js.map +1 -0
  494. package/_esm/window/index.js +2 -0
  495. package/_esm/window/index.js.map +1 -0
  496. package/_test/Abi.test-d/package.json +6 -0
  497. package/_test/AbiConstructor.test-d/package.json +6 -0
  498. package/_test/AbiError.test-d/package.json +6 -0
  499. package/_test/AbiEvent.snap-d/package.json +6 -0
  500. package/_test/AbiEvent.snap-d.ts +329 -0
  501. package/_test/AbiFunction.snap-d/package.json +6 -0
  502. package/_test/AbiFunction.snap-d.ts +262 -0
  503. package/_test/AbiItem.snap-d/package.json +6 -0
  504. package/_test/AbiItem.snap-d.ts +131 -0
  505. package/_test/AbiParameters.bench/package.json +6 -0
  506. package/_test/AbiParameters.snap-d/package.json +6 -0
  507. package/_test/AbiParameters.snap-d.ts +66 -0
  508. package/_test/Address.bench/package.json +6 -0
  509. package/_test/Base58.bench/package.json +6 -0
  510. package/_test/Hex.bench/package.json +6 -0
  511. package/_test/Hex.test-d/package.json +6 -0
  512. package/_test/PublicKey.test-d/package.json +6 -0
  513. package/_test/Rlp.bench/package.json +6 -0
  514. package/_test/Rlp.test-d/package.json +6 -0
  515. package/_test/Signature.snap-d/package.json +6 -0
  516. package/_test/Signature.snap-d.ts +96 -0
  517. package/_test/TransactionEnvelopeEip1559.test-d/package.json +6 -0
  518. package/_test/TransactionEnvelopeEip2930.test-d/package.json +6 -0
  519. package/_test/TransactionEnvelopeEip4844.test-d/package.json +6 -0
  520. package/_test/TransactionEnvelopeEip7702.test-d/package.json +6 -0
  521. package/_test/TransactionEnvelopeLegacy.test-d/package.json +6 -0
  522. package/_test/TypedData.test-d/package.json +6 -0
  523. package/_types/Abi.d.ts +137 -0
  524. package/_types/Abi.d.ts.map +1 -0
  525. package/_types/AbiConstructor.d.ts +305 -0
  526. package/_types/AbiConstructor.d.ts.map +1 -0
  527. package/_types/AbiError.d.ts +522 -0
  528. package/_types/AbiError.d.ts.map +1 -0
  529. package/_types/AbiEvent.d.ts +892 -0
  530. package/_types/AbiEvent.d.ts.map +1 -0
  531. package/_types/AbiFunction.d.ts +602 -0
  532. package/_types/AbiFunction.d.ts.map +1 -0
  533. package/_types/AbiItem.d.ts +544 -0
  534. package/_types/AbiItem.d.ts.map +1 -0
  535. package/_types/AbiParameters.d.ts +466 -0
  536. package/_types/AbiParameters.d.ts.map +1 -0
  537. package/_types/AccessList.d.ts +83 -0
  538. package/_types/AccessList.d.ts.map +1 -0
  539. package/_types/AccountProof.d.ts +32 -0
  540. package/_types/AccountProof.d.ts.map +1 -0
  541. package/_types/Address.d.ts +244 -0
  542. package/_types/Address.d.ts.map +1 -0
  543. package/_types/AesGcm.d.ts +116 -0
  544. package/_types/AesGcm.d.ts.map +1 -0
  545. package/_types/Authorization.d.ts +461 -0
  546. package/_types/Authorization.d.ts.map +1 -0
  547. package/_types/Base58.d.ts +131 -0
  548. package/_types/Base58.d.ts.map +1 -0
  549. package/_types/Base64.d.ts +244 -0
  550. package/_types/Base64.d.ts.map +1 -0
  551. package/_types/Blobs.d.ts +556 -0
  552. package/_types/Blobs.d.ts.map +1 -0
  553. package/_types/Block.d.ts +190 -0
  554. package/_types/Block.d.ts.map +1 -0
  555. package/_types/Bloom.d.ts +54 -0
  556. package/_types/Bloom.d.ts.map +1 -0
  557. package/_types/Bls.d.ts +365 -0
  558. package/_types/Bls.d.ts.map +1 -0
  559. package/_types/BlsPoint.d.ts +187 -0
  560. package/_types/BlsPoint.d.ts.map +1 -0
  561. package/_types/Bytes.d.ts +674 -0
  562. package/_types/Bytes.d.ts.map +1 -0
  563. package/_types/Caches.d.ts +13 -0
  564. package/_types/Caches.d.ts.map +1 -0
  565. package/_types/ContractAddress.d.ts +115 -0
  566. package/_types/ContractAddress.d.ts.map +1 -0
  567. package/_types/Ens.d.ts +72 -0
  568. package/_types/Ens.d.ts.map +1 -0
  569. package/_types/Errors.d.ts +33 -0
  570. package/_types/Errors.d.ts.map +1 -0
  571. package/_types/Fee.d.ts +41 -0
  572. package/_types/Fee.d.ts.map +1 -0
  573. package/_types/Filter.d.ts +100 -0
  574. package/_types/Filter.d.ts.map +1 -0
  575. package/_types/Hash.d.ts +135 -0
  576. package/_types/Hash.d.ts.map +1 -0
  577. package/_types/HdKey.d.ts +146 -0
  578. package/_types/HdKey.d.ts.map +1 -0
  579. package/_types/Hex.d.ts +711 -0
  580. package/_types/Hex.d.ts.map +1 -0
  581. package/_types/Json.d.ts +53 -0
  582. package/_types/Json.d.ts.map +1 -0
  583. package/_types/Kzg.d.ts +42 -0
  584. package/_types/Kzg.d.ts.map +1 -0
  585. package/_types/Log.d.ts +194 -0
  586. package/_types/Log.d.ts.map +1 -0
  587. package/_types/Mnemonic.d.ts +176 -0
  588. package/_types/Mnemonic.d.ts.map +1 -0
  589. package/_types/P256.d.ts +207 -0
  590. package/_types/P256.d.ts.map +1 -0
  591. package/_types/PersonalMessage.d.ts +49 -0
  592. package/_types/PersonalMessage.d.ts.map +1 -0
  593. package/_types/Provider.d.ts +268 -0
  594. package/_types/Provider.d.ts.map +1 -0
  595. package/_types/PublicKey.d.ts +327 -0
  596. package/_types/PublicKey.d.ts.map +1 -0
  597. package/_types/Rlp.d.ts +153 -0
  598. package/_types/Rlp.d.ts.map +1 -0
  599. package/_types/RpcRequest.d.ts +144 -0
  600. package/_types/RpcRequest.d.ts.map +1 -0
  601. package/_types/RpcResponse.d.ts +266 -0
  602. package/_types/RpcResponse.d.ts.map +1 -0
  603. package/_types/RpcSchema.d.ts +248 -0
  604. package/_types/RpcSchema.d.ts.map +1 -0
  605. package/_types/RpcTransport.d.ts +65 -0
  606. package/_types/RpcTransport.d.ts.map +1 -0
  607. package/_types/Secp256k1.d.ts +277 -0
  608. package/_types/Secp256k1.d.ts.map +1 -0
  609. package/_types/Signature.d.ts +601 -0
  610. package/_types/Signature.d.ts.map +1 -0
  611. package/_types/Siwe.d.ts +249 -0
  612. package/_types/Siwe.d.ts.map +1 -0
  613. package/_types/Solidity.d.ts +100 -0
  614. package/_types/Solidity.d.ts.map +1 -0
  615. package/_types/Transaction.d.ts +235 -0
  616. package/_types/Transaction.d.ts.map +1 -0
  617. package/_types/TransactionEnvelope.d.ts +141 -0
  618. package/_types/TransactionEnvelope.d.ts.map +1 -0
  619. package/_types/TransactionEnvelopeEip1559.d.ts +367 -0
  620. package/_types/TransactionEnvelopeEip1559.d.ts.map +1 -0
  621. package/_types/TransactionEnvelopeEip2930.d.ts +364 -0
  622. package/_types/TransactionEnvelopeEip2930.d.ts.map +1 -0
  623. package/_types/TransactionEnvelopeEip4844.d.ts +419 -0
  624. package/_types/TransactionEnvelopeEip4844.d.ts.map +1 -0
  625. package/_types/TransactionEnvelopeEip7702.d.ts +377 -0
  626. package/_types/TransactionEnvelopeEip7702.d.ts.map +1 -0
  627. package/_types/TransactionEnvelopeLegacy.d.ts +358 -0
  628. package/_types/TransactionEnvelopeLegacy.d.ts.map +1 -0
  629. package/_types/TransactionReceipt.d.ts +271 -0
  630. package/_types/TransactionReceipt.d.ts.map +1 -0
  631. package/_types/TransactionRequest.d.ts +92 -0
  632. package/_types/TransactionRequest.d.ts.map +1 -0
  633. package/_types/TypedData.d.ts +496 -0
  634. package/_types/TypedData.d.ts.map +1 -0
  635. package/_types/ValidatorData.d.ts +64 -0
  636. package/_types/ValidatorData.d.ts.map +1 -0
  637. package/_types/Value.d.ts +159 -0
  638. package/_types/Value.d.ts.map +1 -0
  639. package/_types/WebAuthnP256.d.ts +445 -0
  640. package/_types/WebAuthnP256.d.ts.map +1 -0
  641. package/_types/WebCryptoP256.d.ts +119 -0
  642. package/_types/WebCryptoP256.d.ts.map +1 -0
  643. package/_types/Withdrawal.d.ts +74 -0
  644. package/_types/Withdrawal.d.ts.map +1 -0
  645. package/_types/index.d.ts +3367 -0
  646. package/_types/index.d.ts.map +1 -0
  647. package/_types/internal/abi.d.ts +4 -0
  648. package/_types/internal/abi.d.ts.map +1 -0
  649. package/_types/internal/abiConstructor.d.ts +11 -0
  650. package/_types/internal/abiConstructor.d.ts.map +1 -0
  651. package/_types/internal/abiError.d.ts +11 -0
  652. package/_types/internal/abiError.d.ts.map +1 -0
  653. package/_types/internal/abiEvent.d.ts +60 -0
  654. package/_types/internal/abiEvent.d.ts.map +1 -0
  655. package/_types/internal/abiFunction.d.ts +11 -0
  656. package/_types/internal/abiFunction.d.ts.map +1 -0
  657. package/_types/internal/abiItem.d.ts +100 -0
  658. package/_types/internal/abiItem.d.ts.map +1 -0
  659. package/_types/internal/abiParameters.d.ts +169 -0
  660. package/_types/internal/abiParameters.d.ts.map +1 -0
  661. package/_types/internal/base58.d.ts +17 -0
  662. package/_types/internal/base58.d.ts.map +1 -0
  663. package/_types/internal/bytes.d.ts +52 -0
  664. package/_types/internal/bytes.d.ts.map +1 -0
  665. package/_types/internal/cursor.d.ts +70 -0
  666. package/_types/internal/cursor.d.ts.map +1 -0
  667. package/_types/internal/ens.d.ts +23 -0
  668. package/_types/internal/ens.d.ts.map +1 -0
  669. package/_types/internal/errors.d.ts +7 -0
  670. package/_types/internal/errors.d.ts.map +1 -0
  671. package/_types/internal/hdKey.d.ts +10 -0
  672. package/_types/internal/hdKey.d.ts.map +1 -0
  673. package/_types/internal/hex.d.ts +39 -0
  674. package/_types/internal/hex.d.ts.map +1 -0
  675. package/_types/internal/lru.d.ts +13 -0
  676. package/_types/internal/lru.d.ts.map +1 -0
  677. package/_types/internal/mnemonic/wordlists.d.ts +11 -0
  678. package/_types/internal/mnemonic/wordlists.d.ts.map +1 -0
  679. package/_types/internal/promise.d.ts +27 -0
  680. package/_types/internal/promise.d.ts.map +1 -0
  681. package/_types/internal/register.d.ts +13 -0
  682. package/_types/internal/register.d.ts.map +1 -0
  683. package/_types/internal/rpcSchema.d.ts +12 -0
  684. package/_types/internal/rpcSchema.d.ts.map +1 -0
  685. package/_types/internal/rpcSchemas/eth.d.ts +718 -0
  686. package/_types/internal/rpcSchemas/eth.d.ts.map +1 -0
  687. package/_types/internal/rpcSchemas/wallet.d.ts +416 -0
  688. package/_types/internal/rpcSchemas/wallet.d.ts.map +1 -0
  689. package/_types/internal/rpcTransport.d.ts +38 -0
  690. package/_types/internal/rpcTransport.d.ts.map +1 -0
  691. package/_types/internal/types.d.ts +284 -0
  692. package/_types/internal/types.d.ts.map +1 -0
  693. package/_types/internal/uid.d.ts +3 -0
  694. package/_types/internal/uid.d.ts.map +1 -0
  695. package/_types/internal/webauthn.d.ts +127 -0
  696. package/_types/internal/webauthn.d.ts.map +1 -0
  697. package/_types/trusted-setups/Paths.d.ts +2 -0
  698. package/_types/trusted-setups/Paths.d.ts.map +1 -0
  699. package/_types/trusted-setups/index.d.ts +2 -0
  700. package/_types/trusted-setups/index.d.ts.map +1 -0
  701. package/_types/trusted-setups/internal/paths.d.ts +3 -0
  702. package/_types/trusted-setups/internal/paths.d.ts.map +1 -0
  703. package/_types/version.d.ts +3 -0
  704. package/_types/version.d.ts.map +1 -0
  705. package/_types/window/index.d.ts +7 -0
  706. package/_types/window/index.d.ts.map +1 -0
  707. package/index.ts +3427 -0
  708. package/internal/abi.ts +11 -0
  709. package/internal/abiConstructor.ts +32 -0
  710. package/internal/abiError.ts +30 -0
  711. package/internal/abiEvent.ts +154 -0
  712. package/internal/abiFunction.ts +32 -0
  713. package/internal/abiItem.ts +593 -0
  714. package/internal/abiParameters.ts +741 -0
  715. package/internal/base58.ts +106 -0
  716. package/internal/bytes.ts +152 -0
  717. package/internal/cursor.ts +252 -0
  718. package/internal/ens.ts +64 -0
  719. package/internal/errors.ts +26 -0
  720. package/internal/hdKey.ts +25 -0
  721. package/internal/hex.ts +123 -0
  722. package/internal/lru.ts +34 -0
  723. package/internal/mnemonic/wordlists.ts +10 -0
  724. package/internal/promise.ts +66 -0
  725. package/internal/register.ts +15 -0
  726. package/internal/rpcSchema.ts +20 -0
  727. package/internal/rpcSchemas/eth.ts +727 -0
  728. package/internal/rpcSchemas/wallet.ts +428 -0
  729. package/internal/rpcTransport.ts +74 -0
  730. package/internal/types.ts +414 -0
  731. package/internal/uid.ts +15 -0
  732. package/internal/webauthn.ts +198 -0
  733. package/package.json +500 -20
  734. package/trusted-setups/Paths/package.json +6 -0
  735. package/trusted-setups/Paths.ts +3 -0
  736. package/trusted-setups/index.ts +1 -0
  737. package/trusted-setups/internal/paths.ts +13 -0
  738. package/trusted-setups/internal/setups/mainnet.json +8265 -0
  739. package/trusted-setups/internal/setups/mainnet.txt +4163 -0
  740. package/trusted-setups/package.json +6 -0
  741. package/tsdoc.json +4 -0
  742. package/version/package.json +6 -0
  743. package/version.ts +2 -0
  744. package/window/index.ts +7 -0
  745. package/window/package.json +6 -0
  746. package/cl/ansiesc.js +0 -25
  747. package/cl/deps.js +0 -7
  748. package/cl/editor.js +0 -141
  749. package/cl/index.html +0 -19
  750. package/cl/ox.js +0 -44
  751. package/cl/socket.io.js +0 -1922
  752. package/cl/style.css +0 -37
  753. package/srv/deps.js +0 -88
  754. package/srv/httpSrv.js +0 -82
  755. package/srv/ox.js +0 -44
  756. package/srv/remoteXtermReq.js +0 -70
@@ -0,0 +1,803 @@
1
+ import * as Base64 from './Base64.js'
2
+ import * as Bytes from './Bytes.js'
3
+ import * as Errors from './Errors.js'
4
+ import * as Hash from './Hash.js'
5
+ import * as Hex from './Hex.js'
6
+ import * as P256 from './P256.js'
7
+ import type * as PublicKey from './PublicKey.js'
8
+ import type * as Signature from './Signature.js'
9
+ import type { Compute, OneOf } from './internal/types.js'
10
+ import * as internal from './internal/webauthn.js'
11
+
12
+ /** A WebAuthn-flavored P256 credential. */
13
+ export type P256Credential = {
14
+ id: string
15
+ publicKey: PublicKey.PublicKey
16
+ raw: internal.PublicKeyCredential
17
+ }
18
+
19
+ /** Metadata for a WebAuthn P256 signature. */
20
+ export type SignMetadata = Compute<{
21
+ authenticatorData: Hex.Hex
22
+ challengeIndex: number
23
+ clientDataJSON: string
24
+ typeIndex: number
25
+ userVerificationRequired: boolean
26
+ }>
27
+
28
+ export const createChallenge = Uint8Array.from([
29
+ 105, 171, 180, 181, 160, 222, 75, 198, 42, 42, 32, 31, 141, 37, 186, 233,
30
+ ])
31
+
32
+ /**
33
+ * Creates a new WebAuthn P256 Credential, which can be stored and later used for signing.
34
+ *
35
+ * @example
36
+ * ```ts twoslash
37
+ * import { WebAuthnP256 } from 'ox'
38
+ *
39
+ * const credential = await WebAuthnP256.createCredential({ name: 'Example' }) // [!code focus]
40
+ * // @log: {
41
+ * // @log: id: 'oZ48...',
42
+ * // @log: publicKey: { x: 51421...5123n, y: 12345...6789n },
43
+ * // @log: raw: PublicKeyCredential {},
44
+ * // @log: }
45
+ *
46
+ * const { metadata, signature } = await WebAuthnP256.sign({
47
+ * credentialId: credential.id,
48
+ * challenge: '0xdeadbeef',
49
+ * })
50
+ * ```
51
+ *
52
+ * @param options - Credential creation options.
53
+ * @returns A WebAuthn P256 credential.
54
+ */
55
+ export async function createCredential(
56
+ options: createCredential.Options,
57
+ ): Promise<P256Credential> {
58
+ const {
59
+ createFn = window.navigator.credentials.create.bind(
60
+ window.navigator.credentials,
61
+ ),
62
+ ...rest
63
+ } = options
64
+ const creationOptions = getCredentialCreationOptions(rest)
65
+ try {
66
+ const credential = (await createFn(
67
+ creationOptions,
68
+ )) as internal.PublicKeyCredential
69
+ if (!credential) throw new CredentialCreationFailedError()
70
+ const publicKey = await internal.parseCredentialPublicKey(
71
+ new Uint8Array((credential.response as any).getPublicKey()),
72
+ )
73
+ return {
74
+ id: credential.id,
75
+ publicKey,
76
+ raw: credential,
77
+ }
78
+ } catch (error) {
79
+ throw new CredentialCreationFailedError({
80
+ cause: error as Error,
81
+ })
82
+ }
83
+ }
84
+
85
+ export declare namespace createCredential {
86
+ type Options = getCredentialCreationOptions.Options & {
87
+ /**
88
+ * Credential creation function. Useful for environments that do not support
89
+ * the WebAuthn API natively (i.e. React Native or testing environments).
90
+ *
91
+ * @default window.navigator.credentials.create
92
+ */
93
+ createFn?:
94
+ | ((
95
+ options?: internal.CredentialCreationOptions | undefined,
96
+ ) => Promise<internal.Credential | null>)
97
+ | undefined
98
+ }
99
+
100
+ type ErrorType =
101
+ | getCredentialCreationOptions.ErrorType
102
+ | Errors.GlobalErrorType
103
+ }
104
+
105
+ createCredential.parseError = (error: unknown) =>
106
+ /* v8 ignore next */
107
+ error as createCredential.ErrorType
108
+
109
+ /**
110
+ * Gets the authenticator data which contains information about the
111
+ * processing of an authenticator request (ie. from `WebAuthnP256.sign`).
112
+ *
113
+ * :::warning
114
+ *
115
+ * This function is mainly for testing purposes or for manually constructing
116
+ * autenticator data. In most cases you will not need this function.
117
+ * `authenticatorData` is typically returned as part of the
118
+ * {@link ox#WebAuthnP256.(sign:function)} response (ie. an authenticator response).
119
+ *
120
+ * :::
121
+ *
122
+ * @example
123
+ * ```ts twoslash
124
+ * import { WebAuthnP256 } from 'ox'
125
+ *
126
+ * const authenticatorData = WebAuthnP256.getAuthenticatorData({
127
+ * rpId: 'example.com',
128
+ * signCount: 420,
129
+ * })
130
+ * // @log: "0xa379a6f6eeafb9a55e378c118034e2751e682fab9f2d30ab13d2125586ce194705000001a4"
131
+ * ```
132
+ *
133
+ * @param options - Options to construct the authenticator data.
134
+ * @returns The authenticator data.
135
+ */
136
+ export function getAuthenticatorData(
137
+ options: getAuthenticatorData.Options = {},
138
+ ): Hex.Hex {
139
+ const { flag = 5, rpId = window.location.hostname, signCount = 0 } = options
140
+ const rpIdHash = Hash.sha256(Hex.fromString(rpId))
141
+ const flag_bytes = Hex.fromNumber(flag, { size: 1 })
142
+ const signCount_bytes = Hex.fromNumber(signCount, { size: 4 })
143
+ return Hex.concat(rpIdHash, flag_bytes, signCount_bytes)
144
+ }
145
+
146
+ export declare namespace getAuthenticatorData {
147
+ type Options = {
148
+ /** A bitfield that indicates various attributes that were asserted by the authenticator. [Read more](https://developer.mozilla.org/en-US/docs/Web/API/Web_Authentication_API/Authenticator_data#flags) */
149
+ flag?: number | undefined
150
+ /** The [Relying Party ID](https://w3c.github.io/webauthn/#relying-party-identifier) that the credential is scoped to. */
151
+ rpId?: internal.PublicKeyCredentialRequestOptions['rpId'] | undefined
152
+ /** A signature counter, if supported by the authenticator (set to 0 otherwise). */
153
+ signCount?: number | undefined
154
+ }
155
+
156
+ type ErrorType = Errors.GlobalErrorType
157
+ }
158
+
159
+ getAuthenticatorData.parseError = (error: unknown) =>
160
+ /* v8 ignore next */
161
+ error as getAuthenticatorData.ErrorType
162
+
163
+ /**
164
+ * Constructs the Client Data in stringified JSON format which represents client data that
165
+ * was passed to `credentials.get()` in {@link ox#WebAuthnP256.(sign:function)}.
166
+ *
167
+ * :::warning
168
+ *
169
+ * This function is mainly for testing purposes or for manually constructing
170
+ * client data. In most cases you will not need this function.
171
+ * `clientDataJSON` is typically returned as part of the
172
+ * {@link ox#WebAuthnP256.(sign:function)} response (ie. an authenticator response).
173
+ *
174
+ * :::
175
+ *
176
+ * @example
177
+ * ```ts twoslash
178
+ * import { WebAuthnP256 } from 'ox'
179
+ *
180
+ * const clientDataJSON = WebAuthnP256.getClientDataJSON({
181
+ * challenge: '0xdeadbeef',
182
+ * origin: 'https://example.com',
183
+ * })
184
+ * // @log: "{"type":"webauthn.get","challenge":"3q2-7w","origin":"https://example.com","crossOrigin":false}"
185
+ * ```
186
+ *
187
+ * @param options - Options to construct the client data.
188
+ * @returns The client data.
189
+ */
190
+ export function getClientDataJSON(options: getClientDataJSON.Options): string {
191
+ const {
192
+ challenge,
193
+ crossOrigin = false,
194
+ extraClientData,
195
+ origin = window.location.origin,
196
+ } = options
197
+
198
+ return JSON.stringify({
199
+ type: 'webauthn.get',
200
+ challenge: Base64.fromHex(challenge, { url: true, pad: false }),
201
+ origin,
202
+ crossOrigin,
203
+ ...extraClientData,
204
+ })
205
+ }
206
+
207
+ export declare namespace getClientDataJSON {
208
+ type Options = {
209
+ /** The challenge to sign. */
210
+ challenge: Hex.Hex
211
+ /** If set to `true`, it means that the calling context is an `<iframe>` that is not same origin with its ancestor frames. */
212
+ crossOrigin?: boolean | undefined
213
+ /** Additional client data to include in the client data JSON. */
214
+ extraClientData?: Record<string, unknown> | undefined
215
+ /** The fully qualified origin of the relying party which has been given by the client/browser to the authenticator. */
216
+ origin?: string | undefined
217
+ }
218
+
219
+ type ErrorType = Errors.GlobalErrorType
220
+ }
221
+
222
+ getClientDataJSON.parseError = (error: unknown) =>
223
+ /* v8 ignore next */
224
+ error as getClientDataJSON.ErrorType
225
+
226
+ /**
227
+ * Returns the creation options for a P256 WebAuthn Credential to be used with
228
+ * the Web Authentication API.
229
+ *
230
+ * @example
231
+ * ```ts twoslash
232
+ * import { WebAuthnP256 } from 'ox'
233
+ *
234
+ * const options = WebAuthnP256.getCredentialCreationOptions({ name: 'Example' })
235
+ *
236
+ * const credential = await window.navigator.credentials.create(options)
237
+ * ```
238
+ *
239
+ * @param options - Options.
240
+ * @returns The credential creation options.
241
+ */
242
+ export function getCredentialCreationOptions(
243
+ options: getCredentialCreationOptions.Options,
244
+ ): internal.CredentialCreationOptions {
245
+ const {
246
+ attestation = 'none',
247
+ authenticatorSelection = {
248
+ residentKey: 'preferred',
249
+ requireResidentKey: false,
250
+ userVerification: 'required',
251
+ },
252
+ challenge = createChallenge,
253
+ excludeCredentialIds,
254
+ name: name_,
255
+ rp = {
256
+ id: window.location.hostname,
257
+ name: window.document.title,
258
+ },
259
+ user,
260
+ extensions,
261
+ } = options
262
+ const name = (user?.name ?? name_)!
263
+ return {
264
+ publicKey: {
265
+ attestation,
266
+ authenticatorSelection,
267
+ challenge,
268
+ ...(excludeCredentialIds
269
+ ? {
270
+ excludeCredentials: excludeCredentialIds?.map((id) => ({
271
+ id: Base64.toBytes(id),
272
+ type: 'public-key',
273
+ })),
274
+ }
275
+ : {}),
276
+ pubKeyCredParams: [
277
+ {
278
+ type: 'public-key',
279
+ alg: -7, // p256
280
+ },
281
+ ],
282
+ rp,
283
+ user: {
284
+ id: user?.id ?? Hash.keccak256(Bytes.fromString(name), { as: 'Bytes' }),
285
+ name,
286
+ displayName: user?.displayName ?? name,
287
+ },
288
+ extensions,
289
+ },
290
+ } as internal.CredentialCreationOptions
291
+ }
292
+
293
+ export declare namespace getCredentialCreationOptions {
294
+ type Options = {
295
+ /**
296
+ * A string specifying the relying party's preference for how the attestation statement
297
+ * (i.e., provision of verifiable evidence of the authenticity of the authenticator and its data)
298
+ * is conveyed during credential creation.
299
+ */
300
+ attestation?:
301
+ | internal.PublicKeyCredentialCreationOptions['attestation']
302
+ | undefined
303
+ /**
304
+ * An object whose properties are criteria used to filter out the potential authenticators
305
+ * for the credential creation operation.
306
+ */
307
+ authenticatorSelection?:
308
+ | internal.PublicKeyCredentialCreationOptions['authenticatorSelection']
309
+ | undefined
310
+ /**
311
+ * An `ArrayBuffer`, `TypedArray`, or `DataView` used as a cryptographic challenge.
312
+ */
313
+ challenge?:
314
+ | internal.PublicKeyCredentialCreationOptions['challenge']
315
+ | undefined
316
+ /**
317
+ * List of credential IDs to exclude from the creation. This property can be used
318
+ * to prevent creation of a credential if it already exists.
319
+ */
320
+ excludeCredentialIds?: readonly string[] | undefined
321
+ /**
322
+ * List of Web Authentication API credentials to use during creation or authentication.
323
+ */
324
+ extensions?:
325
+ | internal.PublicKeyCredentialCreationOptions['extensions']
326
+ | undefined
327
+ /**
328
+ * An object describing the relying party that requested the credential creation
329
+ */
330
+ rp?:
331
+ | {
332
+ id: string
333
+ name: string
334
+ }
335
+ | undefined
336
+ /**
337
+ * A numerical hint, in milliseconds, which indicates the time the calling web app is willing to wait for the creation operation to complete.
338
+ */
339
+ timeout?: internal.PublicKeyCredentialCreationOptions['timeout'] | undefined
340
+ } & OneOf<
341
+ | {
342
+ /** Name for the credential (user.name). */
343
+ name: string
344
+ }
345
+ | {
346
+ /**
347
+ * An object describing the user account for which the credential is generated.
348
+ */
349
+ user: {
350
+ displayName?: string
351
+ id?: BufferSource
352
+ name: string
353
+ }
354
+ }
355
+ >
356
+
357
+ type ErrorType =
358
+ | Base64.toBytes.ErrorType
359
+ | Hash.keccak256.ErrorType
360
+ | Bytes.fromString.ErrorType
361
+ | Errors.GlobalErrorType
362
+ }
363
+
364
+ getCredentialCreationOptions.parseError = (error: unknown) =>
365
+ /* v8 ignore next */
366
+ error as getCredentialCreationOptions.ErrorType
367
+
368
+ /**
369
+ * Returns the request options to sign a challenge with the Web Authentication API.
370
+ *
371
+ * @example
372
+ * ```ts twoslash
373
+ * import { WebAuthnP256 } from 'ox'
374
+ *
375
+ * const options = WebAuthnP256.getCredentialRequestOptions({
376
+ * challenge: '0xdeadbeef',
377
+ * })
378
+ *
379
+ * const credential = await window.navigator.credentials.get(options)
380
+ * ```
381
+ *
382
+ * @param options - Options.
383
+ * @returns The credential request options.
384
+ */
385
+ export function getCredentialRequestOptions(
386
+ options: getCredentialRequestOptions.Options,
387
+ ): internal.CredentialRequestOptions {
388
+ const {
389
+ credentialId,
390
+ challenge,
391
+ rpId = window.location.hostname,
392
+ userVerification = 'required',
393
+ } = options
394
+ return {
395
+ publicKey: {
396
+ ...(credentialId
397
+ ? {
398
+ allowCredentials: [
399
+ {
400
+ id: Base64.toBytes(credentialId),
401
+ type: 'public-key',
402
+ },
403
+ ],
404
+ }
405
+ : {}),
406
+ challenge: Bytes.fromHex(challenge),
407
+ rpId,
408
+ userVerification,
409
+ },
410
+ }
411
+ }
412
+
413
+ export declare namespace getCredentialRequestOptions {
414
+ type Options = {
415
+ /** The credential ID to use. */
416
+ credentialId?: string | undefined
417
+ /** The challenge to sign. */
418
+ challenge: Hex.Hex
419
+ /** The relying party identifier to use. */
420
+ rpId?: internal.PublicKeyCredentialRequestOptions['rpId'] | undefined
421
+ /** The user verification requirement. */
422
+ userVerification?:
423
+ | internal.PublicKeyCredentialRequestOptions['userVerification']
424
+ | undefined
425
+ }
426
+
427
+ type ErrorType =
428
+ | Bytes.fromHex.ErrorType
429
+ | Base64.toBytes.ErrorType
430
+ | Errors.GlobalErrorType
431
+ }
432
+
433
+ getCredentialRequestOptions.parseError = (error: unknown) =>
434
+ error as getCredentialRequestOptions.ErrorType
435
+
436
+ /**
437
+ * Constructs the final digest that was signed and computed by the authenticator. This payload includes
438
+ * the cryptographic `challenge`, as well as authenticator metadata (`authenticatorData` + `clientDataJSON`).
439
+ * This value can be also used with raw P256 verification (such as {@link ox#P256.(verify:function)} or
440
+ * {@link ox#WebCryptoP256.(verify:function)}).
441
+ *
442
+ * :::warning
443
+ *
444
+ * This function is mainly for testing purposes or for manually constructing
445
+ * signing payloads. In most cases you will not need this function and
446
+ * instead use {@link ox#WebAuthnP256.(sign:function)}.
447
+ *
448
+ * :::
449
+ *
450
+ * @example
451
+ * ```ts twoslash
452
+ * import { WebAuthnP256, WebCryptoP256 } from 'ox'
453
+ *
454
+ * const { metadata, payload } = WebAuthnP256.getSignPayload({ // [!code focus]
455
+ * challenge: '0xdeadbeef', // [!code focus]
456
+ * }) // [!code focus]
457
+ * // @log: {
458
+ * // @log: metadata: {
459
+ * // @log: authenticatorData: "0x49960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97630500000000",
460
+ * // @log: challengeIndex: 23,
461
+ * // @log: clientDataJSON: "{"type":"webauthn.get","challenge":"9jEFijuhEWrM4SOW-tChJbUEHEP44VcjcJ-Bqo1fTM8","origin":"http://localhost:5173","crossOrigin":false}",
462
+ * // @log: typeIndex: 1,
463
+ * // @log: userVerificationRequired: true,
464
+ * // @log: },
465
+ * // @log: payload: "0x49960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d9763050000000045086dcb06a5f234db625bcdc94e657f86b76b6fd3eb9c30543eabc1e577a4b0",
466
+ * // @log: }
467
+ *
468
+ * const { publicKey, privateKey } = await WebCryptoP256.createKeyPair()
469
+ *
470
+ * const signature = await WebCryptoP256.sign({
471
+ * payload,
472
+ * privateKey,
473
+ * })
474
+ * ```
475
+ *
476
+ * @param options - Options to construct the signing payload.
477
+ * @returns The signing payload.
478
+ */
479
+ export function getSignPayload(
480
+ options: getSignPayload.Options,
481
+ ): getSignPayload.ReturnType {
482
+ const {
483
+ challenge,
484
+ crossOrigin,
485
+ extraClientData,
486
+ flag,
487
+ origin,
488
+ rpId,
489
+ signCount,
490
+ userVerification = 'required',
491
+ } = options
492
+
493
+ const authenticatorData = getAuthenticatorData({
494
+ flag,
495
+ rpId,
496
+ signCount,
497
+ })
498
+ const clientDataJSON = getClientDataJSON({
499
+ challenge,
500
+ crossOrigin,
501
+ extraClientData,
502
+ origin,
503
+ })
504
+ const clientDataJSONHash = Hash.sha256(Hex.fromString(clientDataJSON))
505
+
506
+ const challengeIndex = clientDataJSON.indexOf('"challenge"')
507
+ const typeIndex = clientDataJSON.indexOf('"type"')
508
+
509
+ const metadata = {
510
+ authenticatorData,
511
+ clientDataJSON,
512
+ challengeIndex,
513
+ typeIndex,
514
+ userVerificationRequired: userVerification === 'required',
515
+ }
516
+
517
+ const payload = Hex.concat(authenticatorData, clientDataJSONHash)
518
+
519
+ return { metadata, payload }
520
+ }
521
+
522
+ export declare namespace getSignPayload {
523
+ type Options = {
524
+ /** The challenge to sign. */
525
+ challenge: Hex.Hex
526
+ /** If set to `true`, it means that the calling context is an `<iframe>` that is not same origin with its ancestor frames. */
527
+ crossOrigin?: boolean | undefined
528
+ /** Additional client data to include in the client data JSON. */
529
+ extraClientData?: Record<string, unknown> | undefined
530
+ /** If set to `true`, the payload will be hashed before being returned. */
531
+ hash?: boolean | undefined
532
+ /** A bitfield that indicates various attributes that were asserted by the authenticator. [Read more](https://developer.mozilla.org/en-US/docs/Web/API/Web_Authentication_API/Authenticator_data#flags) */
533
+ flag?: number | undefined
534
+ /** The fully qualified origin of the relying party which has been given by the client/browser to the authenticator. */
535
+ origin?: string | undefined
536
+ /** The [Relying Party ID](https://w3c.github.io/webauthn/#relying-party-identifier) that the credential is scoped to. */
537
+ rpId?: internal.PublicKeyCredentialRequestOptions['rpId'] | undefined
538
+ /** A signature counter, if supported by the authenticator (set to 0 otherwise). */
539
+ signCount?: number | undefined
540
+ /** The user verification requirement that the authenticator will enforce. */
541
+ userVerification?:
542
+ | internal.PublicKeyCredentialRequestOptions['userVerification']
543
+ | undefined
544
+ }
545
+
546
+ type ReturnType = {
547
+ metadata: SignMetadata
548
+ payload: Hex.Hex
549
+ }
550
+
551
+ type ErrorType =
552
+ | Hash.sha256.ErrorType
553
+ | Hex.concat.ErrorType
554
+ | Hex.fromString.ErrorType
555
+ | getAuthenticatorData.ErrorType
556
+ | getClientDataJSON.ErrorType
557
+ | Errors.GlobalErrorType
558
+ }
559
+
560
+ getSignPayload.parseError = (error: unknown) =>
561
+ /* v8 ignore next */
562
+ error as getSignPayload.ErrorType
563
+
564
+ /**
565
+ * Signs a challenge using a stored WebAuthn P256 Credential. If no Credential is provided,
566
+ * a prompt will be displayed for the user to select an existing Credential
567
+ * that was previously registered.
568
+ *
569
+ * @example
570
+ * ```ts twoslash
571
+ * import { WebAuthnP256 } from 'ox'
572
+ *
573
+ * const credential = await WebAuthnP256.createCredential({
574
+ * name: 'Example',
575
+ * })
576
+ *
577
+ * const { metadata, signature } = await WebAuthnP256.sign({ // [!code focus]
578
+ * credentialId: credential.id, // [!code focus]
579
+ * challenge: '0xdeadbeef', // [!code focus]
580
+ * }) // [!code focus]
581
+ * // @log: {
582
+ * // @log: metadata: {
583
+ * // @log: authenticatorData: '0x49960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97630500000000',
584
+ * // @log: clientDataJSON: '{"type":"webauthn.get","challenge":"9jEFijuhEWrM4SOW-tChJbUEHEP44VcjcJ-Bqo1fTM8","origin":"http://localhost:5173","crossOrigin":false}',
585
+ * // @log: challengeIndex: 23,
586
+ * // @log: typeIndex: 1,
587
+ * // @log: userVerificationRequired: true,
588
+ * // @log: },
589
+ * // @log: signature: { r: 51231...4215n, s: 12345...6789n },
590
+ * // @log: }
591
+ * ```
592
+ *
593
+ * @param options - Options.
594
+ * @returns The signature.
595
+ */
596
+ export async function sign(options: sign.Options): Promise<sign.ReturnType> {
597
+ const {
598
+ getFn = window.navigator.credentials.get.bind(window.navigator.credentials),
599
+ ...rest
600
+ } = options
601
+ const requestOptions = getCredentialRequestOptions(rest)
602
+ try {
603
+ const credential = (await getFn(
604
+ requestOptions,
605
+ )) as internal.PublicKeyCredential
606
+ if (!credential) throw new CredentialRequestFailedError()
607
+ const response = credential.response as AuthenticatorAssertionResponse
608
+
609
+ const clientDataJSON = String.fromCharCode(
610
+ ...new Uint8Array(response.clientDataJSON),
611
+ )
612
+ const challengeIndex = clientDataJSON.indexOf('"challenge"')
613
+ const typeIndex = clientDataJSON.indexOf('"type"')
614
+
615
+ const signature = internal.parseAsn1Signature(
616
+ new Uint8Array(response.signature),
617
+ )
618
+
619
+ return {
620
+ metadata: {
621
+ authenticatorData: Hex.fromBytes(
622
+ new Uint8Array(response.authenticatorData),
623
+ ),
624
+ clientDataJSON,
625
+ challengeIndex,
626
+ typeIndex,
627
+ userVerificationRequired:
628
+ requestOptions.publicKey!.userVerification === 'required',
629
+ },
630
+ signature,
631
+ raw: credential,
632
+ }
633
+ } catch (error) {
634
+ throw new CredentialRequestFailedError({
635
+ cause: error as Error,
636
+ })
637
+ }
638
+ }
639
+
640
+ export declare namespace sign {
641
+ type Options = getCredentialRequestOptions.Options & {
642
+ /**
643
+ * Credential request function. Useful for environments that do not support
644
+ * the WebAuthn API natively (i.e. React Native or testing environments).
645
+ *
646
+ * @default window.navigator.credentials.get
647
+ */
648
+ getFn?:
649
+ | ((
650
+ options?: internal.CredentialRequestOptions | undefined,
651
+ ) => Promise<internal.Credential | null>)
652
+ | undefined
653
+ }
654
+
655
+ type ReturnType = {
656
+ metadata: SignMetadata
657
+ raw: internal.PublicKeyCredential
658
+ signature: Signature.Signature<false>
659
+ }
660
+
661
+ type ErrorType =
662
+ | Hex.fromBytes.ErrorType
663
+ | getCredentialRequestOptions.ErrorType
664
+ | Errors.GlobalErrorType
665
+ }
666
+
667
+ sign.parseError = (error: unknown) =>
668
+ /* v8 ignore next */
669
+ error as sign.ErrorType
670
+
671
+ /**
672
+ * Verifies a signature using the Credential's public key and the challenge which was signed.
673
+ *
674
+ * @example
675
+ * ```ts twoslash
676
+ * import { WebAuthnP256 } from 'ox'
677
+ *
678
+ * const credential = await WebAuthnP256.createCredential({
679
+ * name: 'Example',
680
+ * })
681
+ *
682
+ * const { metadata, signature } = await WebAuthnP256.sign({
683
+ * credentialId: credential.id,
684
+ * challenge: '0xdeadbeef',
685
+ * })
686
+ *
687
+ * const result = await WebAuthnP256.verify({ // [!code focus]
688
+ * metadata, // [!code focus]
689
+ * challenge: '0xdeadbeef', // [!code focus]
690
+ * publicKey: credential.publicKey, // [!code focus]
691
+ * signature, // [!code focus]
692
+ * }) // [!code focus]
693
+ * // @log: true
694
+ * ```
695
+ *
696
+ * @param options - Options.
697
+ * @returns Whether the signature is valid.
698
+ */
699
+ export function verify(options: verify.Options): boolean {
700
+ const { challenge, hash = true, metadata, publicKey, signature } = options
701
+ const {
702
+ authenticatorData,
703
+ challengeIndex,
704
+ clientDataJSON,
705
+ typeIndex,
706
+ userVerificationRequired,
707
+ } = metadata
708
+
709
+ const authenticatorDataBytes = Bytes.fromHex(authenticatorData)
710
+
711
+ // Check length of `authenticatorData`.
712
+ if (authenticatorDataBytes.length < 37) return false
713
+
714
+ const flag = authenticatorDataBytes[32]!
715
+
716
+ // Verify that the UP bit of the flags in authData is set.
717
+ if ((flag & 0x01) !== 0x01) return false
718
+
719
+ // If user verification was determined to be required, verify that
720
+ // the UV bit of the flags in authData is set. Otherwise, ignore the
721
+ // value of the UV flag.
722
+ if (userVerificationRequired && (flag & 0x04) !== 0x04) return false
723
+
724
+ // If the BE bit of the flags in authData is not set, verify that
725
+ // the BS bit is not set.
726
+ if ((flag & 0x08) !== 0x08 && (flag & 0x10) === 0x10) return false
727
+
728
+ // Check that response is for an authentication assertion
729
+ const type = '"type":"webauthn.get"'
730
+ if (type !== clientDataJSON.slice(Number(typeIndex), type.length + 1))
731
+ return false
732
+
733
+ // Check that hash is in the clientDataJSON.
734
+ const match = clientDataJSON
735
+ .slice(Number(challengeIndex))
736
+ .match(/^"challenge":"(.*?)"/)
737
+ if (!match) return false
738
+
739
+ // Validate the challenge in the clientDataJSON.
740
+ const [_, challenge_extracted] = match
741
+ if (Hex.fromBytes(Base64.toBytes(challenge_extracted!)) !== challenge)
742
+ return false
743
+
744
+ const clientDataJSONHash = Hash.sha256(Bytes.fromString(clientDataJSON), {
745
+ as: 'Bytes',
746
+ })
747
+ const payload = Bytes.concat(authenticatorDataBytes, clientDataJSONHash)
748
+
749
+ return P256.verify({
750
+ hash,
751
+ payload,
752
+ publicKey,
753
+ signature,
754
+ })
755
+ }
756
+
757
+ export declare namespace verify {
758
+ type Options = {
759
+ /** The challenge to verify. */
760
+ challenge: Hex.Hex
761
+ /** If set to `true`, the payload will be hashed (sha256) before being verified. */
762
+ hash?: boolean | undefined
763
+ /** The public key to verify the signature with. */
764
+ publicKey: PublicKey.PublicKey
765
+ /** The signature to verify. */
766
+ signature: Signature.Signature<false>
767
+ /** The metadata to verify the signature with. */
768
+ metadata: SignMetadata
769
+ }
770
+
771
+ type ErrorType =
772
+ | Base64.toBytes.ErrorType
773
+ | Bytes.concat.ErrorType
774
+ | Bytes.fromHex.ErrorType
775
+ | P256.verify.ErrorType
776
+ | Errors.GlobalErrorType
777
+ }
778
+
779
+ verify.parseError = (error: unknown) =>
780
+ /* v8 ignore next */
781
+ error as verify.ErrorType
782
+
783
+ /** Thrown when a WebAuthn P256 credential creation fails. */
784
+ export class CredentialCreationFailedError extends Errors.BaseError<Error> {
785
+ override readonly name = 'WebAuthnP256.CredentialCreationFailedError'
786
+
787
+ constructor({ cause }: { cause?: Error | undefined } = {}) {
788
+ super('Failed to create credential.', {
789
+ cause,
790
+ })
791
+ }
792
+ }
793
+
794
+ /** Thrown when a WebAuthn P256 credential request fails. */
795
+ export class CredentialRequestFailedError extends Errors.BaseError<Error> {
796
+ override readonly name = 'WebAuthnP256.CredentialRequestFailedError'
797
+
798
+ constructor({ cause }: { cause?: Error | undefined } = {}) {
799
+ super('Failed to request credential.', {
800
+ cause,
801
+ })
802
+ }
803
+ }