@safe-global/protocol-kit 4.1.1 → 5.0.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 (212) hide show
  1. package/dist/src/Safe.d.ts +12 -17
  2. package/dist/src/Safe.js +159 -112
  3. package/dist/src/Safe.js.map +1 -1
  4. package/dist/src/SafeProvider.d.ts +11 -20
  5. package/dist/src/SafeProvider.js +141 -90
  6. package/dist/src/SafeProvider.js.map +1 -1
  7. package/dist/src/contracts/BaseContract.d.ts +26 -6
  8. package/dist/src/contracts/BaseContract.js +101 -14
  9. package/dist/src/contracts/BaseContract.js.map +1 -1
  10. package/dist/src/contracts/CompatibilityFallbackHandler/CompatibilityFallbackHandlerBaseContract.d.ts +5 -4
  11. package/dist/src/contracts/CompatibilityFallbackHandler/CompatibilityFallbackHandlerBaseContract.js +3 -2
  12. package/dist/src/contracts/CompatibilityFallbackHandler/CompatibilityFallbackHandlerBaseContract.js.map +1 -1
  13. package/dist/src/contracts/CompatibilityFallbackHandler/v1.3.0/CompatibilityFallbackHandlerContract_v1_3_0.d.ts +4 -3
  14. package/dist/src/contracts/CompatibilityFallbackHandler/v1.3.0/CompatibilityFallbackHandlerContract_v1_3_0.js +5 -5
  15. package/dist/src/contracts/CompatibilityFallbackHandler/v1.3.0/CompatibilityFallbackHandlerContract_v1_3_0.js.map +1 -1
  16. package/dist/src/contracts/CompatibilityFallbackHandler/v1.4.1/CompatibilityFallbackHandlerContract_v1_4_1.d.ts +4 -3
  17. package/dist/src/contracts/CompatibilityFallbackHandler/v1.4.1/CompatibilityFallbackHandlerContract_v1_4_1.js +5 -5
  18. package/dist/src/contracts/CompatibilityFallbackHandler/v1.4.1/CompatibilityFallbackHandlerContract_v1_4_1.js.map +1 -1
  19. package/dist/src/contracts/CreateCall/CreateCallBaseContract.d.ts +5 -4
  20. package/dist/src/contracts/CreateCall/CreateCallBaseContract.js +3 -2
  21. package/dist/src/contracts/CreateCall/CreateCallBaseContract.js.map +1 -1
  22. package/dist/src/contracts/CreateCall/v1.3.0/CreateCallContract_v1_3_0.d.ts +4 -3
  23. package/dist/src/contracts/CreateCall/v1.3.0/CreateCallContract_v1_3_0.js +7 -9
  24. package/dist/src/contracts/CreateCall/v1.3.0/CreateCallContract_v1_3_0.js.map +1 -1
  25. package/dist/src/contracts/CreateCall/v1.4.1/CreateCallContract_v1_4_1.d.ts +4 -3
  26. package/dist/src/contracts/CreateCall/v1.4.1/CreateCallContract_v1_4_1.js +7 -9
  27. package/dist/src/contracts/CreateCall/v1.4.1/CreateCallContract_v1_4_1.js.map +1 -1
  28. package/dist/src/contracts/MultiSend/MultiSendBaseContract.d.ts +5 -4
  29. package/dist/src/contracts/MultiSend/MultiSendBaseContract.js +3 -2
  30. package/dist/src/contracts/MultiSend/MultiSendBaseContract.js.map +1 -1
  31. package/dist/src/contracts/MultiSend/MultiSendCallOnlyBaseContract.d.ts +5 -4
  32. package/dist/src/contracts/MultiSend/MultiSendCallOnlyBaseContract.js +3 -2
  33. package/dist/src/contracts/MultiSend/MultiSendCallOnlyBaseContract.js.map +1 -1
  34. package/dist/src/contracts/MultiSend/v1.1.1/MultiSendContract_v1_1_1.d.ts +4 -3
  35. package/dist/src/contracts/MultiSend/v1.1.1/MultiSendContract_v1_1_1.js +5 -5
  36. package/dist/src/contracts/MultiSend/v1.1.1/MultiSendContract_v1_1_1.js.map +1 -1
  37. package/dist/src/contracts/MultiSend/v1.3.0/MultiSendCallOnlyContract_v1_3_0.d.ts +4 -3
  38. package/dist/src/contracts/MultiSend/v1.3.0/MultiSendCallOnlyContract_v1_3_0.js +5 -5
  39. package/dist/src/contracts/MultiSend/v1.3.0/MultiSendCallOnlyContract_v1_3_0.js.map +1 -1
  40. package/dist/src/contracts/MultiSend/v1.3.0/MultiSendContract_v1_3_0.d.ts +4 -3
  41. package/dist/src/contracts/MultiSend/v1.3.0/MultiSendContract_v1_3_0.js +5 -5
  42. package/dist/src/contracts/MultiSend/v1.3.0/MultiSendContract_v1_3_0.js.map +1 -1
  43. package/dist/src/contracts/MultiSend/v1.4.1/MultiSendCallOnlyContract_v1_4_1.d.ts +4 -3
  44. package/dist/src/contracts/MultiSend/v1.4.1/MultiSendCallOnlyContract_v1_4_1.js +5 -5
  45. package/dist/src/contracts/MultiSend/v1.4.1/MultiSendCallOnlyContract_v1_4_1.js.map +1 -1
  46. package/dist/src/contracts/MultiSend/v1.4.1/MultiSendContract_v1_4_1.d.ts +4 -3
  47. package/dist/src/contracts/MultiSend/v1.4.1/MultiSendContract_v1_4_1.js +5 -5
  48. package/dist/src/contracts/MultiSend/v1.4.1/MultiSendContract_v1_4_1.js.map +1 -1
  49. package/dist/src/contracts/Safe/SafeBaseContract.d.ts +5 -4
  50. package/dist/src/contracts/Safe/SafeBaseContract.js +3 -2
  51. package/dist/src/contracts/Safe/SafeBaseContract.js.map +1 -1
  52. package/dist/src/contracts/Safe/v1.0.0/SafeContract_v1_0_0.d.ts +7 -11
  53. package/dist/src/contracts/Safe/v1.0.0/SafeContract_v1_0_0.js +64 -42
  54. package/dist/src/contracts/Safe/v1.0.0/SafeContract_v1_0_0.js.map +1 -1
  55. package/dist/src/contracts/Safe/v1.1.1/SafeContract_v1_1_1.d.ts +4 -9
  56. package/dist/src/contracts/Safe/v1.1.1/SafeContract_v1_1_1.js +61 -39
  57. package/dist/src/contracts/Safe/v1.1.1/SafeContract_v1_1_1.js.map +1 -1
  58. package/dist/src/contracts/Safe/v1.2.0/SafeContract_v1_2_0.d.ts +5 -10
  59. package/dist/src/contracts/Safe/v1.2.0/SafeContract_v1_2_0.js +63 -41
  60. package/dist/src/contracts/Safe/v1.2.0/SafeContract_v1_2_0.js.map +1 -1
  61. package/dist/src/contracts/Safe/v1.3.0/SafeContract_v1_3_0.d.ts +5 -10
  62. package/dist/src/contracts/Safe/v1.3.0/SafeContract_v1_3_0.js +63 -41
  63. package/dist/src/contracts/Safe/v1.3.0/SafeContract_v1_3_0.js.map +1 -1
  64. package/dist/src/contracts/Safe/v1.4.1/SafeContract_v1_4_1.d.ts +5 -10
  65. package/dist/src/contracts/Safe/v1.4.1/SafeContract_v1_4_1.js +63 -41
  66. package/dist/src/contracts/Safe/v1.4.1/SafeContract_v1_4_1.js.map +1 -1
  67. package/dist/src/contracts/SafeProxyFactory/SafeProxyFactoryBaseContract.d.ts +5 -7
  68. package/dist/src/contracts/SafeProxyFactory/SafeProxyFactoryBaseContract.js +3 -2
  69. package/dist/src/contracts/SafeProxyFactory/SafeProxyFactoryBaseContract.js.map +1 -1
  70. package/dist/src/contracts/SafeProxyFactory/v1.0.0/SafeProxyFactoryContract_v1_0_0.d.ts +5 -11
  71. package/dist/src/contracts/SafeProxyFactory/v1.0.0/SafeProxyFactoryContract_v1_0_0.js +9 -38
  72. package/dist/src/contracts/SafeProxyFactory/v1.0.0/SafeProxyFactoryContract_v1_0_0.js.map +1 -1
  73. package/dist/src/contracts/SafeProxyFactory/v1.1.1/SafeProxyFactoryContract_v1_1_1.d.ts +6 -12
  74. package/dist/src/contracts/SafeProxyFactory/v1.1.1/SafeProxyFactoryContract_v1_1_1.js +12 -41
  75. package/dist/src/contracts/SafeProxyFactory/v1.1.1/SafeProxyFactoryContract_v1_1_1.js.map +1 -1
  76. package/dist/src/contracts/SafeProxyFactory/v1.3.0/SafeProxyFactoryContract_v1_3_0.d.ts +5 -11
  77. package/dist/src/contracts/SafeProxyFactory/v1.3.0/SafeProxyFactoryContract_v1_3_0.js +11 -40
  78. package/dist/src/contracts/SafeProxyFactory/v1.3.0/SafeProxyFactoryContract_v1_3_0.js.map +1 -1
  79. package/dist/src/contracts/SafeProxyFactory/v1.4.1/SafeProxyFactoryContract_v1_4_1.d.ts +5 -11
  80. package/dist/src/contracts/SafeProxyFactory/v1.4.1/SafeProxyFactoryContract_v1_4_1.js +10 -39
  81. package/dist/src/contracts/SafeProxyFactory/v1.4.1/SafeProxyFactoryContract_v1_4_1.js.map +1 -1
  82. package/dist/src/contracts/SafeWebAuthnSharedSigner/SafeWebAuthnSharedSignerBaseContract.d.ts +5 -7
  83. package/dist/src/contracts/SafeWebAuthnSharedSigner/SafeWebAuthnSharedSignerBaseContract.js +3 -2
  84. package/dist/src/contracts/SafeWebAuthnSharedSigner/SafeWebAuthnSharedSignerBaseContract.js.map +1 -1
  85. package/dist/src/contracts/SafeWebAuthnSharedSigner/v0.2.1/SafeWebAuthnSharedSignerContract_v0_2_1.d.ts +4 -3
  86. package/dist/src/contracts/SafeWebAuthnSharedSigner/v0.2.1/SafeWebAuthnSharedSignerContract_v0_2_1.js +9 -9
  87. package/dist/src/contracts/SafeWebAuthnSharedSigner/v0.2.1/SafeWebAuthnSharedSignerContract_v0_2_1.js.map +1 -1
  88. package/dist/src/contracts/SafeWebAuthnSignerFactory/SafeWebAuthnSignerFactoryBaseContract.d.ts +5 -7
  89. package/dist/src/contracts/SafeWebAuthnSignerFactory/SafeWebAuthnSignerFactoryBaseContract.js +3 -2
  90. package/dist/src/contracts/SafeWebAuthnSignerFactory/SafeWebAuthnSignerFactoryBaseContract.js.map +1 -1
  91. package/dist/src/contracts/SafeWebAuthnSignerFactory/v0.2.1/SafeWebAuthnSignerFactoryContract_v0_2_1.d.ts +4 -3
  92. package/dist/src/contracts/SafeWebAuthnSignerFactory/v0.2.1/SafeWebAuthnSignerFactoryContract_v0_2_1.js +8 -8
  93. package/dist/src/contracts/SafeWebAuthnSignerFactory/v0.2.1/SafeWebAuthnSignerFactoryContract_v0_2_1.js.map +1 -1
  94. package/dist/src/contracts/SignMessageLib/SignMessageLibBaseContract.d.ts +5 -4
  95. package/dist/src/contracts/SignMessageLib/SignMessageLibBaseContract.js +3 -2
  96. package/dist/src/contracts/SignMessageLib/SignMessageLibBaseContract.js.map +1 -1
  97. package/dist/src/contracts/SignMessageLib/v1.3.0/SignMessageLibContract_v1_3_0.d.ts +4 -3
  98. package/dist/src/contracts/SignMessageLib/v1.3.0/SignMessageLibContract_v1_3_0.js +7 -8
  99. package/dist/src/contracts/SignMessageLib/v1.3.0/SignMessageLibContract_v1_3_0.js.map +1 -1
  100. package/dist/src/contracts/SignMessageLib/v1.4.1/SignMessageLibContract_v1_4_1.d.ts +4 -3
  101. package/dist/src/contracts/SignMessageLib/v1.4.1/SignMessageLibContract_v1_4_1.js +7 -8
  102. package/dist/src/contracts/SignMessageLib/v1.4.1/SignMessageLibContract_v1_4_1.js.map +1 -1
  103. package/dist/src/contracts/SimulateTxAccessor/SimulateTxAccessorBaseContract.d.ts +5 -4
  104. package/dist/src/contracts/SimulateTxAccessor/SimulateTxAccessorBaseContract.js +3 -2
  105. package/dist/src/contracts/SimulateTxAccessor/SimulateTxAccessorBaseContract.js.map +1 -1
  106. package/dist/src/contracts/SimulateTxAccessor/v1.3.0/SimulateTxAccessorContract_v1_3_0.d.ts +4 -3
  107. package/dist/src/contracts/SimulateTxAccessor/v1.3.0/SimulateTxAccessorContract_v1_3_0.js +9 -7
  108. package/dist/src/contracts/SimulateTxAccessor/v1.3.0/SimulateTxAccessorContract_v1_3_0.js.map +1 -1
  109. package/dist/src/contracts/SimulateTxAccessor/v1.4.1/SimulateTxAccessorContract_v1_4_1.d.ts +4 -3
  110. package/dist/src/contracts/SimulateTxAccessor/v1.4.1/SimulateTxAccessorContract_v1_4_1.js +9 -7
  111. package/dist/src/contracts/SimulateTxAccessor/v1.4.1/SimulateTxAccessorContract_v1_4_1.js.map +1 -1
  112. package/dist/src/contracts/config.d.ts +8 -1
  113. package/dist/src/contracts/config.js +47 -16
  114. package/dist/src/contracts/config.js.map +1 -1
  115. package/dist/src/contracts/constants.d.ts +4 -3
  116. package/dist/src/contracts/constants.js +2 -1
  117. package/dist/src/contracts/constants.js.map +1 -1
  118. package/dist/src/contracts/contractInstances.d.ts +13 -12
  119. package/dist/src/contracts/contractInstances.js +34 -34
  120. package/dist/src/contracts/contractInstances.js.map +1 -1
  121. package/dist/src/contracts/safeDeploymentContracts.d.ts +6 -5
  122. package/dist/src/contracts/safeDeploymentContracts.js +26 -66
  123. package/dist/src/contracts/safeDeploymentContracts.js.map +1 -1
  124. package/dist/src/contracts/utils.d.ts +35 -13
  125. package/dist/src/contracts/utils.js +136 -55
  126. package/dist/src/contracts/utils.js.map +1 -1
  127. package/dist/src/index.d.ts +10 -6
  128. package/dist/src/index.js +7 -9
  129. package/dist/src/index.js.map +1 -1
  130. package/dist/src/managers/contractManager.js +12 -17
  131. package/dist/src/managers/contractManager.js.map +1 -1
  132. package/dist/src/managers/fallbackHandlerManager.js +5 -4
  133. package/dist/src/managers/fallbackHandlerManager.js.map +1 -1
  134. package/dist/src/managers/guardManager.js +5 -4
  135. package/dist/src/managers/guardManager.js.map +1 -1
  136. package/dist/src/types/contracts.d.ts +13 -13
  137. package/dist/src/types/index.d.ts +0 -1
  138. package/dist/src/types/index.js +0 -1
  139. package/dist/src/types/index.js.map +1 -1
  140. package/dist/src/types/safeConfig.d.ts +3 -1
  141. package/dist/src/types/safeProvider.d.ts +33 -5
  142. package/dist/src/types/transactions.d.ts +1 -1
  143. package/dist/src/utils/address.d.ts +1 -1
  144. package/dist/src/utils/address.js +1 -1
  145. package/dist/src/utils/address.js.map +1 -1
  146. package/dist/src/utils/block.d.ts +6 -0
  147. package/dist/src/utils/block.js +14 -0
  148. package/dist/src/utils/block.js.map +1 -0
  149. package/dist/src/utils/constants.d.ts +4 -3
  150. package/dist/src/utils/constants.js +2 -1
  151. package/dist/src/utils/constants.js.map +1 -1
  152. package/dist/src/utils/eip-3770/index.d.ts +1 -1
  153. package/dist/src/utils/eip-3770/index.js +2 -3
  154. package/dist/src/utils/eip-3770/index.js.map +1 -1
  155. package/dist/src/utils/eip-712/encode.d.ts +3 -0
  156. package/dist/src/utils/eip-712/encode.js +127 -0
  157. package/dist/src/utils/eip-712/encode.js.map +1 -0
  158. package/dist/src/utils/eip-712/index.d.ts +1 -1
  159. package/dist/src/utils/eip-712/index.js +5 -7
  160. package/dist/src/utils/eip-712/index.js.map +1 -1
  161. package/dist/src/utils/erc-20/index.d.ts +1 -1
  162. package/dist/src/utils/erc-20/index.js +12 -5
  163. package/dist/src/utils/erc-20/index.js.map +1 -1
  164. package/dist/src/utils/messages/SafeMessage.d.ts +1 -1
  165. package/dist/src/utils/passkeys/PasskeyClient.d.ts +5 -0
  166. package/dist/src/utils/passkeys/PasskeyClient.js +156 -0
  167. package/dist/src/utils/passkeys/PasskeyClient.js.map +1 -0
  168. package/dist/src/utils/passkeys/createPasskeyDeploymentTransaction.d.ts +2 -1
  169. package/dist/src/utils/passkeys/createPasskeyDeploymentTransaction.js +12 -12
  170. package/dist/src/utils/passkeys/createPasskeyDeploymentTransaction.js.map +1 -1
  171. package/dist/src/utils/passkeys/extractPasskeyData.d.ts +1 -2
  172. package/dist/src/utils/passkeys/extractPasskeyData.js +8 -15
  173. package/dist/src/utils/passkeys/extractPasskeyData.js.map +1 -1
  174. package/dist/src/utils/passkeys/getPasskeyOwnerAddress.js +10 -3
  175. package/dist/src/utils/passkeys/getPasskeyOwnerAddress.js.map +1 -1
  176. package/dist/src/utils/passkeys/index.d.ts +1 -1
  177. package/dist/src/utils/passkeys/index.js +1 -1
  178. package/dist/src/utils/passkeys/isSharedSigner.d.ts +2 -3
  179. package/dist/src/utils/passkeys/isSharedSigner.js +6 -5
  180. package/dist/src/utils/passkeys/isSharedSigner.js.map +1 -1
  181. package/dist/src/utils/provider.d.ts +3 -0
  182. package/dist/src/utils/provider.js +12 -0
  183. package/dist/src/utils/provider.js.map +1 -0
  184. package/dist/src/utils/safeVersions.js +2 -2
  185. package/dist/src/utils/safeVersions.js.map +1 -1
  186. package/dist/src/utils/signatures/SafeSignature.d.ts +1 -1
  187. package/dist/src/utils/signatures/utils.d.ts +4 -4
  188. package/dist/src/utils/signatures/utils.js +34 -20
  189. package/dist/src/utils/signatures/utils.js.map +1 -1
  190. package/dist/src/utils/transactions/SafeTransaction.d.ts +1 -1
  191. package/dist/src/utils/transactions/SafeTransaction.js.map +1 -1
  192. package/dist/src/utils/transactions/gas.d.ts +1 -1
  193. package/dist/src/utils/transactions/gas.js +37 -64
  194. package/dist/src/utils/transactions/gas.js.map +1 -1
  195. package/dist/src/utils/transactions/types.d.ts +17 -1
  196. package/dist/src/utils/transactions/utils.d.ts +11 -2
  197. package/dist/src/utils/transactions/utils.js +117 -27
  198. package/dist/src/utils/transactions/utils.js.map +1 -1
  199. package/dist/src/utils/types.d.ts +4 -0
  200. package/dist/src/utils/types.js +59 -1
  201. package/dist/src/utils/types.js.map +1 -1
  202. package/dist/tsconfig.build.tsbuildinfo +1 -1
  203. package/package.json +25 -34
  204. package/dist/src/SafeFactory.d.ts +0 -15
  205. package/dist/src/SafeFactory.js +0 -136
  206. package/dist/src/SafeFactory.js.map +0 -1
  207. package/dist/src/types/safeFactory.d.ts +0 -31
  208. package/dist/src/types/safeFactory.js +0 -3
  209. package/dist/src/types/safeFactory.js.map +0 -1
  210. package/dist/src/utils/passkeys/PasskeySigner.d.ts +0 -63
  211. package/dist/src/utils/passkeys/PasskeySigner.js +0 -163
  212. package/dist/src/utils/passkeys/PasskeySigner.js.map +0 -1
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.validateEip3770Address = exports.validateEthereumAddress = exports.validateEip3770NetworkPrefix = exports.isValidEip3770NetworkPrefix = exports.getEip3770NetworkPrefixFromChainId = exports.parseEip3770Address = void 0;
4
- const ethers_1 = require("ethers");
4
+ const viem_1 = require("viem");
5
5
  const config_1 = require("./config");
6
6
  function parseEip3770Address(fullAddress) {
7
7
  const parts = fullAddress.split(':');
@@ -30,8 +30,7 @@ function validateEip3770NetworkPrefix(prefix, currentChainId) {
30
30
  }
31
31
  exports.validateEip3770NetworkPrefix = validateEip3770NetworkPrefix;
32
32
  function validateEthereumAddress(address) {
33
- const isValidAddress = ethers_1.ethers.isHexString(address) && ethers_1.ethers.isAddress(address);
34
- if (!isValidAddress) {
33
+ if (!(0, viem_1.isAddress)(address)) {
35
34
  throw new Error(`Invalid Ethereum address ${address}`);
36
35
  }
37
36
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/eip-3770/index.ts"],"names":[],"mappings":";;;AAAA,mCAA+B;AAE/B,qCAAmC;AAEnC,SAAgB,mBAAmB,CAAC,WAAmB;IACrD,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACpC,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACtD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC/C,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAA;AAC5B,CAAC;AALD,kDAKC;AAED,SAAgB,kCAAkC,CAAC,OAAe;IAChE,MAAM,OAAO,GAAG,iBAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IACvE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAA;IACxE,CAAC;IACD,OAAO,OAAO,CAAC,SAAS,CAAA;AAC1B,CAAC;AAND,gFAMC;AAED,SAAgB,2BAA2B,CAAC,MAAc;IACxD,OAAO,iBAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,SAAS,KAAK,MAAM,CAAC,CAAA;AAC/D,CAAC;AAFD,kEAEC;AAED,SAAgB,4BAA4B,CAAC,MAAc,EAAE,cAAsB;IACjF,MAAM,sBAAsB,GAAG,MAAM,KAAK,kCAAkC,CAAC,cAAc,CAAC,CAAA;IAC5F,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACpE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAA;IACtE,CAAC;AACH,CAAC;AALD,oEAKC;AAED,SAAgB,uBAAuB,CAAC,OAAe;IACrD,MAAM,cAAc,GAAG,eAAM,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,eAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;IAC/E,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,4BAA4B,OAAO,EAAE,CAAC,CAAA;IACxD,CAAC;AACH,CAAC;AALD,0DAKC;AAED,SAAgB,sBAAsB,CACpC,WAAmB,EACnB,cAAsB;IAEtB,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAA;IAC5D,uBAAuB,CAAC,OAAO,CAAC,CAAA;IAChC,IAAI,MAAM,EAAE,CAAC;QACX,4BAA4B,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;IACtD,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAA;AAC5B,CAAC;AAVD,wDAUC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/eip-3770/index.ts"],"names":[],"mappings":";;;AAAA,+BAAgC;AAEhC,qCAAmC;AAEnC,SAAgB,mBAAmB,CAAC,WAAmB;IACrD,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACpC,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACtD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC/C,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAA;AAC5B,CAAC;AALD,kDAKC;AAED,SAAgB,kCAAkC,CAAC,OAAe;IAChE,MAAM,OAAO,GAAG,iBAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IACvE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAA;IACxE,CAAC;IACD,OAAO,OAAO,CAAC,SAAS,CAAA;AAC1B,CAAC;AAND,gFAMC;AAED,SAAgB,2BAA2B,CAAC,MAAc;IACxD,OAAO,iBAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,SAAS,KAAK,MAAM,CAAC,CAAA;AAC/D,CAAC;AAFD,kEAEC;AAED,SAAgB,4BAA4B,CAAC,MAAc,EAAE,cAAsB;IACjF,MAAM,sBAAsB,GAAG,MAAM,KAAK,kCAAkC,CAAC,cAAc,CAAC,CAAA;IAC5F,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACpE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAA;IACtE,CAAC;AACH,CAAC;AALD,oEAKC;AAED,SAAgB,uBAAuB,CAAC,OAAe;IACrD,IAAI,CAAC,IAAA,gBAAS,EAAC,OAAO,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,4BAA4B,OAAO,EAAE,CAAC,CAAA;IACxD,CAAC;AACH,CAAC;AAJD,0DAIC;AAED,SAAgB,sBAAsB,CACpC,WAAmB,EACnB,cAAsB;IAEtB,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAA;IAC5D,uBAAuB,CAAC,OAAO,CAAC,CAAA;IAChC,IAAI,MAAM,EAAE,CAAC;QACX,4BAA4B,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;IACtD,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAA;AAC5B,CAAC;AAVD,wDAUC"}
@@ -0,0 +1,3 @@
1
+ import { EIP712TypedData } from '@safe-global/types-kit';
2
+ export declare function hashTypedData(typedData: EIP712TypedData): string;
3
+ export declare function encodeTypedData(typedData: EIP712TypedData): string;
@@ -0,0 +1,127 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.encodeTypedData = exports.hashTypedData = void 0;
4
+ const viem_1 = require("viem");
5
+ const types_1 = require("../types");
6
+ /*
7
+ * This whole file was copied (and softly adapted) from viem in order to expose the function that provides just the encoding. The purpose is to expose `encodeTypedData` (viem only exports the hashTypedData)
8
+ * That function are used by preimageSafeTransactionHash, preimageSafeMessageHash.
9
+ */
10
+ function encodeField({ types, name, type, value }) {
11
+ if (types[type] !== undefined) {
12
+ return [{ type: 'bytes32' }, (0, viem_1.keccak256)(encodeData({ data: value, primaryType: type, types }))];
13
+ }
14
+ if (type === 'bytes') {
15
+ const prepend = value.length % 2 ? '0' : '';
16
+ value = `0x${prepend + value.slice(2)}`;
17
+ return [{ type: 'bytes32' }, (0, viem_1.keccak256)(value)];
18
+ }
19
+ if (type === 'string')
20
+ return [{ type: 'bytes32' }, (0, viem_1.keccak256)((0, viem_1.toHex)(value))];
21
+ if (type.lastIndexOf(']') === type.length - 1) {
22
+ const parsedType = type.slice(0, type.lastIndexOf('['));
23
+ const typeValuePairs = value.map((item) => encodeField({
24
+ name,
25
+ type: parsedType,
26
+ types,
27
+ value: item
28
+ }));
29
+ return [
30
+ { type: 'bytes32' },
31
+ (0, viem_1.keccak256)((0, viem_1.encodeAbiParameters)(typeValuePairs.map(([t]) => t), typeValuePairs.map(([, v]) => v)))
32
+ ];
33
+ }
34
+ return [{ type }, value];
35
+ }
36
+ function findTypeDependencies({ primaryType: primaryType_, types }, results = new Set()) {
37
+ const match = primaryType_.match(/^\w*/u);
38
+ const primaryType = match?.[0] || '';
39
+ if (results.has(primaryType) || types[primaryType] === undefined) {
40
+ return results;
41
+ }
42
+ results.add(primaryType);
43
+ for (const field of types[primaryType]) {
44
+ findTypeDependencies({ primaryType: field.type, types }, results);
45
+ }
46
+ return results;
47
+ }
48
+ function encodeType({ primaryType, types }) {
49
+ let result = '';
50
+ const unsortedDeps = findTypeDependencies({ primaryType, types });
51
+ unsortedDeps.delete(primaryType);
52
+ const deps = [primaryType, ...Array.from(unsortedDeps).sort()];
53
+ for (const type of deps) {
54
+ result += `${type}(${types[type].map(({ name, type: t }) => `${t} ${name}`).join(',')})`;
55
+ }
56
+ return result;
57
+ }
58
+ function hashType({ primaryType, types }) {
59
+ const encodedHashType = (0, viem_1.toHex)(encodeType({ primaryType, types }));
60
+ return (0, viem_1.keccak256)(encodedHashType);
61
+ }
62
+ function encodeData({ data, primaryType, types }) {
63
+ const encodedTypes = [{ type: 'bytes32' }];
64
+ const encodedValues = [hashType({ primaryType, types })];
65
+ for (const field of types[primaryType]) {
66
+ const [type, value] = encodeField({
67
+ types,
68
+ name: field.name,
69
+ type: field.type,
70
+ value: data[field.name]
71
+ });
72
+ encodedTypes.push(type);
73
+ encodedValues.push(value);
74
+ }
75
+ return (0, viem_1.encodeAbiParameters)(encodedTypes, encodedValues);
76
+ }
77
+ function hashStruct({ data, primaryType, types }) {
78
+ const encoded = encodeData({
79
+ data,
80
+ primaryType,
81
+ types
82
+ });
83
+ return (0, viem_1.keccak256)(encoded);
84
+ }
85
+ function deducePrimaryType(types) {
86
+ // In ethers the primaryType is assumed to be the first yielded by a forEach of the types keys
87
+ // https://github.com/ethers-io/ethers.js/blob/a4b1d1f43fca14f2e826e3c60e0d45f5b6ef3ec4/src.ts/hash/typed-data.ts#L278C13-L278C20
88
+ return Object.keys(types)[0];
89
+ }
90
+ function hashTypedData(typedData) {
91
+ const data = encodeTypedData(typedData);
92
+ return (0, viem_1.keccak256)((0, types_1.asHex)(data));
93
+ }
94
+ exports.hashTypedData = hashTypedData;
95
+ function encodeTypedData(typedData) {
96
+ typedData.primaryType = !typedData?.primaryType
97
+ ? deducePrimaryType(typedData.types)
98
+ : typedData?.primaryType;
99
+ const { domain = {}, message, primaryType } = typedData;
100
+ const types = {
101
+ EIP712Domain: (0, viem_1.getTypesForEIP712Domain)({ domain: domain }),
102
+ ...typedData.types
103
+ };
104
+ // Need to do a runtime validation check on addresses, byte ranges, integer ranges, etc
105
+ // as we can't statically check this with TypeScript.
106
+ (0, viem_1.validateTypedData)({
107
+ domain: domain,
108
+ message,
109
+ primaryType: primaryType,
110
+ types
111
+ });
112
+ const parts = ['0x1901'];
113
+ if (domain)
114
+ parts.push((0, viem_1.hashDomain)({
115
+ domain,
116
+ types: types
117
+ }));
118
+ if (primaryType !== 'EIP712Domain')
119
+ parts.push(hashStruct({
120
+ data: message,
121
+ primaryType: primaryType,
122
+ types: types
123
+ }));
124
+ return (0, viem_1.concat)(parts);
125
+ }
126
+ exports.encodeTypedData = encodeTypedData;
127
+ //# sourceMappingURL=encode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encode.js","sourceRoot":"","sources":["../../../../src/utils/eip-712/encode.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { EIP712MessageTypes, EIP712TxTypes, EIP712TypedData, SafeEIP712Args, EIP712TypedDataMessage, EIP712TypedDataTx } from '@safe-global/safe-core-sdk-types';
1
+ import { EIP712MessageTypes, EIP712TxTypes, EIP712TypedData, SafeEIP712Args, EIP712TypedDataMessage, EIP712TypedDataTx } from '@safe-global/types-kit';
2
2
  export declare const EIP712_DOMAIN_BEFORE_V130: {
3
3
  type: string;
4
4
  name: string;
@@ -4,8 +4,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.generateTypedData = exports.hashSafeMessage = exports.hashTypedData = exports.getEip712MessageTypes = exports.getEip712TxTypes = exports.EIP712_DOMAIN = exports.EIP712_DOMAIN_BEFORE_V130 = void 0;
7
- const ethers_1 = require("ethers");
7
+ const viem_1 = require("viem");
8
8
  const satisfies_1 = __importDefault(require("semver/functions/satisfies"));
9
+ const encode_1 = require("./encode");
9
10
  const EQ_OR_GT_1_3_0 = '>=1.3.0';
10
11
  exports.EIP712_DOMAIN_BEFORE_V130 = [
11
12
  {
@@ -52,14 +53,11 @@ function getEip712MessageTypes(safeVersion) {
52
53
  }
53
54
  exports.getEip712MessageTypes = getEip712MessageTypes;
54
55
  const hashTypedData = (typedData) => {
55
- // `ethers` doesn't require `EIP712Domain` and otherwise throws
56
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
57
- const { EIP712Domain: _, ...types } = typedData.types;
58
- return ethers_1.ethers.TypedDataEncoder.hash(typedData.domain, types, typedData.message);
56
+ return (0, encode_1.hashTypedData)(typedData);
59
57
  };
60
58
  exports.hashTypedData = hashTypedData;
61
59
  const hashMessage = (message) => {
62
- return ethers_1.ethers.hashMessage(message);
60
+ return (0, viem_1.hashMessage)(message);
63
61
  };
64
62
  const hashSafeMessage = (message) => {
65
63
  return typeof message === 'string' ? hashMessage(message) : (0, exports.hashTypedData)(message);
@@ -99,7 +97,7 @@ function generateTypedData({ safeAddress, safeVersion, chainId, data }) {
99
97
  };
100
98
  }
101
99
  if (eip712WithChainId) {
102
- typedData.domain.chainId = chainId.toString();
100
+ typedData.domain.chainId = Number(chainId);
103
101
  }
104
102
  return typedData;
105
103
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/eip-712/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/eip-712/index.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import Safe from '../../Safe';
2
- import { Transaction } from '@safe-global/safe-core-sdk-types';
2
+ import { Transaction } from '@safe-global/types-kit';
3
3
  /**
4
4
  * Returns the number of decimals of a given ERC-20 token.
5
5
  *
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createERC20TokenTransferTransaction = exports.isGasTokenCompatibleWithHandlePayment = exports.getERC20Decimals = void 0;
4
- const ethers_1 = require("ethers");
4
+ const viem_1 = require("viem");
5
5
  const constants_1 = require("../constants");
6
6
  const ERC20_ABI = [
7
7
  'function transfer(address recipient, uint256 amount) returns (bool)',
@@ -18,12 +18,15 @@ const ERC20_ABI = [
18
18
  */
19
19
  async function getERC20Decimals(tokenAddress, safe) {
20
20
  const safeProvider = safe.getSafeProvider();
21
- const erc20Interface = new ethers_1.Interface(ERC20_ABI);
21
+ const data = (0, viem_1.encodeFunctionData)({
22
+ abi: (0, viem_1.parseAbi)(ERC20_ABI),
23
+ functionName: 'decimals'
24
+ });
22
25
  const getTokenDecimalsTransaction = {
23
26
  to: tokenAddress,
24
27
  from: tokenAddress,
25
28
  value: '0',
26
- data: erc20Interface.encodeFunctionData('decimals')
29
+ data
27
30
  };
28
31
  const response = await safeProvider.call(getTokenDecimalsTransaction);
29
32
  const decimals = Number(response);
@@ -65,11 +68,15 @@ exports.isGasTokenCompatibleWithHandlePayment = isGasTokenCompatibleWithHandlePa
65
68
  * @returns {Transaction} Returns a transaction object that represents the transfer.
66
69
  */
67
70
  function createERC20TokenTransferTransaction(tokenAddress, toAddress, amount) {
68
- const erc20Interface = new ethers_1.Interface(ERC20_ABI);
71
+ const data = (0, viem_1.encodeFunctionData)({
72
+ abi: (0, viem_1.parseAbi)(ERC20_ABI),
73
+ functionName: 'transfer',
74
+ args: [toAddress, amount]
75
+ });
69
76
  const transferTransaction = {
70
77
  to: tokenAddress,
71
78
  value: '0',
72
- data: erc20Interface.encodeFunctionData('transfer', [toAddress, amount])
79
+ data
73
80
  };
74
81
  return transferTransaction;
75
82
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/erc-20/index.ts"],"names":[],"mappings":";;;AAAA,mCAAkC;AAIlC,4CAA2C;AAE3C,MAAM,SAAS,GAAG;IAChB,qEAAqE;IACrE,0CAA0C;CAC3C,CAAA;AAED;;;;;;;;GAQG;AACI,KAAK,UAAU,gBAAgB,CAAC,YAAoB,EAAE,IAAU;IACrE,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAA;IAC3C,MAAM,cAAc,GAAG,IAAI,kBAAS,CAAC,SAAS,CAAC,CAAA;IAE/C,MAAM,2BAA2B,GAAG;QAClC,EAAE,EAAE,YAAY;QAChB,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,cAAc,CAAC,kBAAkB,CAAC,UAAU,CAAC;KACpD,CAAA;IAED,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAA;IAErE,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAA;IAEjC,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,CAAC;IAED,OAAO,QAAQ,CAAA;AACjB,CAAC;AApBD,4CAoBC;AAED,MAAM,uBAAuB,GAAG,EAAE,CAAA;AAElC;;;;;;;;;GASG;AACI,KAAK,UAAU,qCAAqC,CACzD,QAAgB,EAChB,IAAU;IAEV,MAAM,aAAa,GAAG,QAAQ,KAAK,wBAAY,CAAA;IAE/C,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,iEAAiE;IACjE,MAAM,gBAAgB,GAAG,MAAM,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;IAC/D,MAAM,6BAA6B,GAAG,gBAAgB,KAAK,uBAAuB,CAAA;IAElF,OAAO,6BAA6B,CAAA;AACtC,CAAC;AAfD,sFAeC;AAED;;;;;;;;GAQG;AACH,SAAgB,mCAAmC,CACjD,YAAoB,EACpB,SAAiB,EACjB,MAAc;IAEd,MAAM,cAAc,GAAG,IAAI,kBAAS,CAAC,SAAS,CAAC,CAAA;IAE/C,MAAM,mBAAmB,GAAG;QAC1B,EAAE,EAAE,YAAY;QAChB,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,cAAc,CAAC,kBAAkB,CAAC,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;KACzE,CAAA;IAED,OAAO,mBAAmB,CAAA;AAC5B,CAAC;AAdD,kFAcC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/erc-20/index.ts"],"names":[],"mappings":";;;AAEA,+BAAmD;AACnD,4CAA2C;AAE3C,MAAM,SAAS,GAAG;IAChB,qEAAqE;IACrE,0CAA0C;CAC3C,CAAA;AAED;;;;;;;;GAQG;AACI,KAAK,UAAU,gBAAgB,CAAC,YAAoB,EAAE,IAAU;IACrE,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAA;IAC3C,MAAM,IAAI,GAAG,IAAA,yBAAkB,EAAC;QAC9B,GAAG,EAAE,IAAA,eAAQ,EAAC,SAAS,CAAC;QACxB,YAAY,EAAE,UAAU;KACzB,CAAC,CAAA;IAEF,MAAM,2BAA2B,GAAG;QAClC,EAAE,EAAE,YAAY;QAChB,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,GAAG;QACV,IAAI;KACL,CAAA;IAED,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAA;IAErE,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAA;IAEjC,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,CAAC;IAED,OAAO,QAAQ,CAAA;AACjB,CAAC;AAvBD,4CAuBC;AAED,MAAM,uBAAuB,GAAG,EAAE,CAAA;AAElC;;;;;;;;;GASG;AACI,KAAK,UAAU,qCAAqC,CACzD,QAAgB,EAChB,IAAU;IAEV,MAAM,aAAa,GAAG,QAAQ,KAAK,wBAAY,CAAA;IAE/C,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,iEAAiE;IACjE,MAAM,gBAAgB,GAAG,MAAM,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;IAC/D,MAAM,6BAA6B,GAAG,gBAAgB,KAAK,uBAAuB,CAAA;IAElF,OAAO,6BAA6B,CAAA;AACtC,CAAC;AAfD,sFAeC;AAED;;;;;;;;GAQG;AACH,SAAgB,mCAAmC,CACjD,YAAoB,EACpB,SAAiB,EACjB,MAAc;IAEd,MAAM,IAAI,GAAG,IAAA,yBAAkB,EAAC;QAC9B,GAAG,EAAE,IAAA,eAAQ,EAAC,SAAS,CAAC;QACxB,YAAY,EAAE,UAAU;QACxB,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;KAC1B,CAAC,CAAA;IAEF,MAAM,mBAAmB,GAAG;QAC1B,EAAE,EAAE,YAAY;QAChB,KAAK,EAAE,GAAG;QACV,IAAI;KACL,CAAA;IAED,OAAO,mBAAmB,CAAA;AAC5B,CAAC;AAlBD,kFAkBC"}
@@ -1,4 +1,4 @@
1
- import { EIP712TypedData, SafeMessage, SafeSignature } from '@safe-global/safe-core-sdk-types';
1
+ import { EIP712TypedData, SafeMessage, SafeSignature } from '@safe-global/types-kit';
2
2
  declare class EthSafeMessage implements SafeMessage {
3
3
  data: EIP712TypedData | string;
4
4
  signatures: Map<string, SafeSignature>;
@@ -0,0 +1,5 @@
1
+ import { Client } from 'viem';
2
+ import { PasskeyArgType, PasskeyClient, SafeWebAuthnSignerFactoryContractImplementationType, SafeWebAuthnSharedSignerContractImplementationType } from '../../types';
3
+ export declare const PASSKEY_CLIENT_KEY = "passkeyWallet";
4
+ export declare const PASSKEY_CLIENT_NAME = "Passkey Wallet Client";
5
+ export declare const createPasskeyClient: (passkey: PasskeyArgType, safeWebAuthnSignerFactoryContract: SafeWebAuthnSignerFactoryContractImplementationType, safeWebAuthnSharedSignerContract: SafeWebAuthnSharedSignerContractImplementationType, provider: Client, safeAddress: string, owners: string[], chainId: string) => Promise<PasskeyClient>;
@@ -0,0 +1,156 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createPasskeyClient = exports.PASSKEY_CLIENT_NAME = exports.PASSKEY_CLIENT_KEY = void 0;
7
+ const viem_1 = require("viem");
8
+ const extractPasskeyData_1 = require("./extractPasskeyData");
9
+ const types_1 = require("../types");
10
+ const isSharedSigner_1 = __importDefault(require("./isSharedSigner"));
11
+ exports.PASSKEY_CLIENT_KEY = 'passkeyWallet';
12
+ exports.PASSKEY_CLIENT_NAME = 'Passkey Wallet Client';
13
+ const sign = async (passkeyRawId, data) => {
14
+ const assertion = (await navigator.credentials.get({
15
+ publicKey: {
16
+ challenge: data,
17
+ allowCredentials: [{ type: 'public-key', id: passkeyRawId }],
18
+ userVerification: 'required'
19
+ }
20
+ }));
21
+ if (!assertion?.response?.authenticatorData) {
22
+ throw new Error('Failed to sign data with passkey Signer');
23
+ }
24
+ const { authenticatorData, signature, clientDataJSON } = assertion.response;
25
+ return (0, viem_1.encodeAbiParameters)((0, viem_1.parseAbiParameters)('bytes, bytes, uint256[2]'), [
26
+ (0, viem_1.toHex)(new Uint8Array(authenticatorData)),
27
+ extractClientDataFields(clientDataJSON),
28
+ extractSignature(signature)
29
+ ]);
30
+ };
31
+ const signTransaction = () => {
32
+ throw new Error('Passkey Signers cannot sign transactions, they can only sign data.');
33
+ };
34
+ const signTypedData = () => {
35
+ throw new Error('Passkey Signers cannot sign signTypedData, they can only sign data.');
36
+ };
37
+ const createPasskeyClient = async (passkey, safeWebAuthnSignerFactoryContract, safeWebAuthnSharedSignerContract, provider, safeAddress, owners, chainId) => {
38
+ const { rawId, coordinates, customVerifierAddress } = passkey;
39
+ const passkeyRawId = (0, viem_1.hexToBytes)((0, types_1.asHex)(rawId));
40
+ const verifierAddress = customVerifierAddress || (0, extractPasskeyData_1.getDefaultFCLP256VerifierAddress)(chainId);
41
+ const isPasskeySharedSigner = await (0, isSharedSigner_1.default)(passkey, safeWebAuthnSharedSignerContract, safeAddress, owners, chainId);
42
+ let signerAddress;
43
+ if (isPasskeySharedSigner) {
44
+ signerAddress = safeWebAuthnSharedSignerContract.getAddress();
45
+ }
46
+ else {
47
+ ;
48
+ [signerAddress] = await safeWebAuthnSignerFactoryContract.getSigner([
49
+ BigInt(coordinates.x),
50
+ BigInt(coordinates.y),
51
+ (0, viem_1.fromHex)((0, types_1.asHex)(verifierAddress), 'bigint')
52
+ ]);
53
+ }
54
+ return (0, viem_1.createClient)({
55
+ account: signerAddress,
56
+ name: exports.PASSKEY_CLIENT_NAME,
57
+ key: exports.PASSKEY_CLIENT_KEY,
58
+ transport: (0, viem_1.custom)(provider.transport)
59
+ })
60
+ .extend(viem_1.walletActions)
61
+ .extend(() => ({
62
+ signMessage({ message }) {
63
+ if (typeof message === 'string') {
64
+ return sign(passkeyRawId, (0, viem_1.toBytes)(message));
65
+ }
66
+ return sign(passkeyRawId, (0, viem_1.isHex)(message.raw) ? (0, viem_1.toBytes)(message.raw) : message.raw);
67
+ },
68
+ signTransaction,
69
+ signTypedData,
70
+ encodeConfigure() {
71
+ return (0, viem_1.encodeFunctionData)({
72
+ abi: (0, viem_1.parseAbi)(['function configure((uint256 x, uint256 y, uint176 verifiers) signer)']),
73
+ functionName: 'configure',
74
+ args: [
75
+ {
76
+ x: BigInt(passkey.coordinates.x),
77
+ y: BigInt(passkey.coordinates.y),
78
+ verifiers: (0, viem_1.fromHex)((0, types_1.asHex)(verifierAddress), 'bigint')
79
+ }
80
+ ]
81
+ });
82
+ },
83
+ encodeCreateSigner() {
84
+ return (0, types_1.asHex)(safeWebAuthnSignerFactoryContract.encode('createSigner', [
85
+ BigInt(coordinates.x),
86
+ BigInt(coordinates.y),
87
+ BigInt(verifierAddress)
88
+ ]));
89
+ },
90
+ createDeployTxRequest() {
91
+ const passkeySignerDeploymentTransaction = {
92
+ to: safeWebAuthnSignerFactoryContract.getAddress(),
93
+ value: '0',
94
+ data: this.encodeCreateSigner()
95
+ };
96
+ return passkeySignerDeploymentTransaction;
97
+ }
98
+ }));
99
+ };
100
+ exports.createPasskeyClient = createPasskeyClient;
101
+ /**
102
+ * Compute the additional client data JSON fields. This is the fields other than `type` and
103
+ * `challenge` (including `origin` and any other additional client data fields that may be
104
+ * added by the authenticator).
105
+ *
106
+ * See <https://w3c.github.io/webauthn/#clientdatajson-serialization>
107
+ *
108
+ * @param {ArrayBuffer} clientDataJSON - The client data JSON.
109
+ * @returns {Hex} A hex string of the additional fields from the client data JSON.
110
+ * @throws {Error} Throws an error if the client data JSON does not contain the expected 'challenge' field pattern.
111
+ */
112
+ function extractClientDataFields(clientDataJSON) {
113
+ const decodedClientDataJSON = new TextDecoder('utf-8').decode(clientDataJSON);
114
+ const match = decodedClientDataJSON.match(/^\{"type":"webauthn.get","challenge":"[A-Za-z0-9\-_]{43}",(.*)\}$/);
115
+ if (!match) {
116
+ throw new Error('challenge not found in client data JSON');
117
+ }
118
+ const [, fields] = match;
119
+ return (0, viem_1.toHex)((0, viem_1.stringToBytes)(fields));
120
+ }
121
+ /**
122
+ * Extracts the numeric values r and s from a DER-encoded ECDSA signature.
123
+ * This function decodes the signature based on a specific format and validates the encoding at each step.
124
+ *
125
+ * @param {ArrayBuffer} signature - The DER-encoded signature to be decoded.
126
+ * @returns {[bigint, bigint]} A tuple containing two BigInt values, r and s, which are the numeric values extracted from the signature.
127
+ * @throws {Error} Throws an error if the signature encoding is invalid or does not meet expected conditions.
128
+ */
129
+ function extractSignature(signature) {
130
+ const check = (x) => {
131
+ if (!x) {
132
+ throw new Error('invalid signature encoding');
133
+ }
134
+ };
135
+ // Decode the DER signature. Note that we assume that all lengths fit into 8-bit integers,
136
+ // which is true for the kinds of signatures we are decoding but generally false. I.e. this
137
+ // code should not be used in any serious application.
138
+ const view = new DataView(signature);
139
+ // check that the sequence header is valid
140
+ check(view.getUint8(0) === 0x30);
141
+ check(view.getUint8(1) === view.byteLength - 2);
142
+ // read r and s
143
+ const readInt = (offset) => {
144
+ check(view.getUint8(offset) === 0x02);
145
+ const len = view.getUint8(offset + 1);
146
+ const start = offset + 2;
147
+ const end = start + len;
148
+ const n = (0, viem_1.fromBytes)(new Uint8Array(view.buffer.slice(start, end)), 'bigint');
149
+ check(n < viem_1.maxUint256);
150
+ return [n, end];
151
+ };
152
+ const [r, sOffset] = readInt(2);
153
+ const [s] = readInt(sOffset);
154
+ return [r, s];
155
+ }
156
+ //# sourceMappingURL=PasskeyClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PasskeyClient.js","sourceRoot":"","sources":["../../../../src/utils/passkeys/PasskeyClient.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { Hex } from 'viem';
1
2
  import Safe from '../../Safe';
2
3
  import { PasskeyArgType } from '../../types';
3
4
  /**
@@ -10,6 +11,6 @@ import { PasskeyArgType } from '../../types';
10
11
  declare function createPasskeyDeploymentTransaction(safe: Safe, passkey: PasskeyArgType): Promise<{
11
12
  to: string;
12
13
  value: string;
13
- data: string;
14
+ data: Hex;
14
15
  }>;
15
16
  export default createPasskeyDeploymentTransaction;
@@ -3,7 +3,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const constants_1 = require("../constants");
7
6
  const SafeProvider_1 = __importDefault(require("../../SafeProvider"));
8
7
  /**
9
8
  * Creates the deployment transaction to create a passkey signer.
@@ -13,23 +12,24 @@ const SafeProvider_1 = __importDefault(require("../../SafeProvider"));
13
12
  * @returns {Promise<{ to: string; value: string; data: string; }>} The deployment transaction to create a passkey signer.
14
13
  */
15
14
  async function createPasskeyDeploymentTransaction(safe, passkey) {
16
- const safeVersion = await safe.getContractVersion();
15
+ const safeVersion = safe.getContractVersion();
17
16
  const safeAddress = await safe.getAddress();
18
17
  const owners = await safe.getOwners();
19
- const safePasskeyProvider = await SafeProvider_1.default.init(safe.getSafeProvider().provider, passkey, safeVersion, safe.getContractManager().contractNetworks, safeAddress, owners);
18
+ const safePasskeyProvider = await SafeProvider_1.default.init({
19
+ provider: safe.getSafeProvider().provider,
20
+ signer: passkey,
21
+ safeVersion,
22
+ contractNetworks: safe.getContractManager().contractNetworks,
23
+ safeAddress,
24
+ owners
25
+ });
20
26
  const passkeySigner = (await safePasskeyProvider.getExternalSigner());
21
- const passkeyAddress = await passkeySigner.getAddress();
22
- const provider = safe.getSafeProvider().getExternalProvider();
23
- const isPasskeyDeployed = (await provider.getCode(passkeyAddress)) !== constants_1.EMPTY_DATA;
27
+ const passkeyAddress = passkeySigner.account.address;
28
+ const isPasskeyDeployed = await safe.getSafeProvider().isContractDeployed(passkeyAddress);
24
29
  if (isPasskeyDeployed) {
25
30
  throw new Error('Passkey Signer contract already deployed');
26
31
  }
27
- const passkeySignerDeploymentTransaction = {
28
- to: await passkeySigner.safeWebAuthnSignerFactoryContract.getAddress(),
29
- value: '0',
30
- data: passkeySigner.encodeCreateSigner()
31
- };
32
- return passkeySignerDeploymentTransaction;
32
+ return passkeySigner.createDeployTxRequest();
33
33
  }
34
34
  exports.default = createPasskeyDeploymentTransaction;
35
35
  //# sourceMappingURL=createPasskeyDeploymentTransaction.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createPasskeyDeploymentTransaction.js","sourceRoot":"","sources":["../../../../src/utils/passkeys/createPasskeyDeploymentTransaction.ts"],"names":[],"mappings":";;;;;AAEA,4CAAyC;AACzC,sEAA6C;AAG7C;;;;;;GAMG;AACH,KAAK,UAAU,kCAAkC,CAC/C,IAAU,EACV,OAAuB;IAEvB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAA;IACnD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;IAC3C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAA;IAErC,MAAM,mBAAmB,GAAG,MAAM,sBAAY,CAAC,IAAI,CACjD,IAAI,CAAC,eAAe,EAAE,CAAC,QAAQ,EAC/B,OAAO,EACP,WAAW,EACX,IAAI,CAAC,kBAAkB,EAAE,CAAC,gBAAgB,EAC1C,WAAW,EACX,MAAM,CACP,CAAA;IAED,MAAM,aAAa,GAAG,CAAC,MAAM,mBAAmB,CAAC,iBAAiB,EAAE,CAAkB,CAAA;IACtF,MAAM,cAAc,GAAG,MAAM,aAAc,CAAC,UAAU,EAAE,CAAA;IACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,mBAAmB,EAAE,CAAA;IAE7D,MAAM,iBAAiB,GAAG,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,KAAK,sBAAU,CAAA;IAEjF,IAAI,iBAAiB,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;IAC7D,CAAC;IAED,MAAM,kCAAkC,GAAG;QACzC,EAAE,EAAE,MAAM,aAAa,CAAC,iCAAiC,CAAC,UAAU,EAAE;QACtE,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,aAAa,CAAC,kBAAkB,EAAE;KACzC,CAAA;IAED,OAAO,kCAAkC,CAAA;AAC3C,CAAC;AAED,kBAAe,kCAAkC,CAAA"}
1
+ {"version":3,"file":"createPasskeyDeploymentTransaction.js","sourceRoot":"","sources":["../../../../src/utils/passkeys/createPasskeyDeploymentTransaction.ts"],"names":[],"mappings":";;;;;AAGA,0FAAiE;AAGjE;;;;;;GAMG;AACH,KAAK,UAAU,kCAAkC,CAC/C,IAAU,EACV,OAAuB;IAEvB,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAA;IAC7C,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;IAC3C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAA;IAErC,MAAM,mBAAmB,GAAG,MAAM,sBAAY,CAAC,IAAI,CAAC;QAClD,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,QAAQ;QACzC,MAAM,EAAE,OAAO;QACf,WAAW;QACX,gBAAgB,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC,gBAAgB;QAC5D,WAAW;QACX,MAAM;KACP,CAAC,CAAA;IAEF,MAAM,aAAa,GAAG,CAAC,MAAM,mBAAmB,CAAC,iBAAiB,EAAE,CAAkB,CAAA;IACtF,MAAM,cAAc,GAAG,aAAc,CAAC,OAAO,CAAC,OAAO,CAAA;IAErD,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAA;IAEzF,IAAI,iBAAiB,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;IAC7D,CAAC;IAED,OAAO,aAAa,CAAC,qBAAqB,EAAE,CAAA;AAC9C,CAAC;AAED,kBAAe,kCAAkC,CAAA"}
@@ -1,4 +1,4 @@
1
- import { PasskeyCoordinates, PasskeyArgType } from '../../types/passkeys';
1
+ import { PasskeyCoordinates, PasskeyArgType } from '../../types';
2
2
  /**
3
3
  * Extracts and returns the passkey data (coordinates and rawId) from a given passkey Credential.
4
4
  *
@@ -15,5 +15,4 @@ export declare function extractPasskeyData(passkeyCredential: Credential): Promi
15
15
  * @throws {Error} Throws an error if the coordinates could not be extracted via `crypto.subtle.exportKey()`
16
16
  */
17
17
  export declare function extractPasskeyCoordinates(publicKey: ArrayBuffer): Promise<PasskeyCoordinates>;
18
- export declare function hexStringToUint8Array(hexString: string): Uint8Array;
19
18
  export declare function getDefaultFCLP256VerifierAddress(chainId: string): string;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getDefaultFCLP256VerifierAddress = exports.hexStringToUint8Array = exports.extractPasskeyCoordinates = exports.extractPasskeyData = void 0;
3
+ exports.getDefaultFCLP256VerifierAddress = exports.extractPasskeyCoordinates = exports.extractPasskeyData = void 0;
4
4
  const safe_modules_deployments_1 = require("@safe-global/safe-modules-deployments");
5
5
  const buffer_1 = require("buffer");
6
6
  /**
@@ -50,25 +50,18 @@ async function extractPasskeyCoordinates(publicKey) {
50
50
  };
51
51
  }
52
52
  exports.extractPasskeyCoordinates = extractPasskeyCoordinates;
53
- // FIXME use Viem `hexToBytes`
54
- function hexStringToUint8Array(hexString) {
55
- const arr = [];
56
- for (let i = 0; i < hexString.length; i += 2) {
57
- arr.push(parseInt(hexString.substr(i, 2), 16));
58
- }
59
- return new Uint8Array(arr);
60
- }
61
- exports.hexStringToUint8Array = hexStringToUint8Array;
62
53
  function getDefaultFCLP256VerifierAddress(chainId) {
63
- const network = BigInt(chainId).toString();
64
54
  const FCLP256VerifierDeployment = (0, safe_modules_deployments_1.getFCLP256VerifierDeployment)({
65
- version: '0.2.0',
55
+ version: '0.2.1',
66
56
  released: true,
67
- network
57
+ network: chainId
68
58
  });
69
- const verifierAddress = FCLP256VerifierDeployment?.networkAddresses[network];
59
+ if (!FCLP256VerifierDeployment) {
60
+ throw new Error(`Failed to load FCLP256Verifier deployment for chain ID ${chainId}`);
61
+ }
62
+ const verifierAddress = FCLP256VerifierDeployment.networkAddresses[chainId];
70
63
  if (!verifierAddress) {
71
- throw new Error('FCLP256Verifier address not found');
64
+ throw new Error(`FCLP256Verifier address not found for chain ID ${chainId}`);
72
65
  }
73
66
  return verifierAddress;
74
67
  }
@@ -1 +1 @@
1
- {"version":3,"file":"extractPasskeyData.js","sourceRoot":"","sources":["../../../../src/utils/passkeys/extractPasskeyData.ts"],"names":[],"mappings":";;;AAAA,oFAAoF;AACpF,mCAA+B;AAG/B;;;;;;GAMG;AACI,KAAK,UAAU,kBAAkB,CAAC,iBAA6B;IACpE,MAAM,OAAO,GAAG,iBAAwC,CAAA;IACxD,MAAM,mBAAmB,GAAG,OAAO,CAAC,QAA4C,CAAA;IAEhF,MAAM,SAAS,GAAG,mBAAmB,CAAC,YAAY,EAAE,CAAA;IAEpD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAA;IAClF,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,yBAAyB,CAAC,SAAS,CAAC,CAAA;IAC9D,MAAM,KAAK,GAAG,eAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAExD,OAAO;QACL,KAAK;QACL,WAAW;KACZ,CAAA;AACH,CAAC;AAjBD,gDAiBC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,yBAAyB,CAC7C,SAAsB;IAEtB,MAAM,SAAS,GAAG;QAChB,IAAI,EAAE,OAAO;QACb,UAAU,EAAE,OAAO;QACnB,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;KAC1B,CAAA;IAED,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEzF,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;IAE1D,MAAM,kBAAkB,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAErC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAA;IAC7F,CAAC;IAED,OAAO;QACL,CAAC,EAAE,IAAI,GAAG,eAAM,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QAClD,CAAC,EAAE,IAAI,GAAG,eAAM,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;KACnD,CAAA;AACH,CAAC;AAvBD,8DAuBC;AAED,8BAA8B;AAC9B,SAAgB,qBAAqB,CAAC,SAAiB;IACrD,MAAM,GAAG,GAAG,EAAE,CAAA;IACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7C,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;IAChD,CAAC;IACD,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,CAAA;AAC5B,CAAC;AAND,sDAMC;AAED,SAAgB,gCAAgC,CAAC,OAAe;IAC9D,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAA;IAE1C,MAAM,yBAAyB,GAAG,IAAA,uDAA4B,EAAC;QAC7D,OAAO,EAAE,OAAO;QAChB,QAAQ,EAAE,IAAI;QACd,OAAO;KACR,CAAC,CAAA;IAEF,MAAM,eAAe,GAAG,yBAAyB,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAE5E,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;IACtD,CAAC;IAED,OAAO,eAAe,CAAA;AACxB,CAAC;AAhBD,4EAgBC"}
1
+ {"version":3,"file":"extractPasskeyData.js","sourceRoot":"","sources":["../../../../src/utils/passkeys/extractPasskeyData.ts"],"names":[],"mappings":";;;AAAA,oFAAoF;AACpF,mCAA+B;AAG/B;;;;;;GAMG;AACI,KAAK,UAAU,kBAAkB,CAAC,iBAA6B;IACpE,MAAM,OAAO,GAAG,iBAAwC,CAAA;IACxD,MAAM,mBAAmB,GAAG,OAAO,CAAC,QAA4C,CAAA;IAEhF,MAAM,SAAS,GAAG,mBAAmB,CAAC,YAAY,EAAE,CAAA;IAEpD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAA;IAClF,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,yBAAyB,CAAC,SAAS,CAAC,CAAA;IAC9D,MAAM,KAAK,GAAG,eAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAExD,OAAO;QACL,KAAK;QACL,WAAW;KACZ,CAAA;AACH,CAAC;AAjBD,gDAiBC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,yBAAyB,CAC7C,SAAsB;IAEtB,MAAM,SAAS,GAAG;QAChB,IAAI,EAAE,OAAO;QACb,UAAU,EAAE,OAAO;QACnB,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;KAC1B,CAAA;IAED,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEzF,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;IAE1D,MAAM,kBAAkB,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAErC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAA;IAC7F,CAAC;IAED,OAAO;QACL,CAAC,EAAE,IAAI,GAAG,eAAM,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QAClD,CAAC,EAAE,IAAI,GAAG,eAAM,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;KACnD,CAAA;AACH,CAAC;AAvBD,8DAuBC;AAED,SAAgB,gCAAgC,CAAC,OAAe;IAC9D,MAAM,yBAAyB,GAAG,IAAA,uDAA4B,EAAC;QAC7D,OAAO,EAAE,OAAO;QAChB,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,OAAO;KACjB,CAAC,CAAA;IAEF,IAAI,CAAC,yBAAyB,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,0DAA0D,OAAO,EAAE,CAAC,CAAA;IACtF,CAAC;IAED,MAAM,eAAe,GAAG,yBAAyB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAE3E,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,kDAAkD,OAAO,EAAE,CAAC,CAAA;IAC9E,CAAC;IAED,OAAO,eAAe,CAAA;AACxB,CAAC;AAlBD,4EAkBC"}