permissionless 0.3.3 → 0.3.5

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 (290) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/_cjs/accounts/biconomy/toBiconomySmartAccount.js.map +1 -1
  3. package/_cjs/accounts/etherspot/constants.js +1 -1
  4. package/_cjs/accounts/etherspot/constants.js.map +1 -1
  5. package/_cjs/accounts/etherspot/toEtherspotSmartAccount.js.map +1 -1
  6. package/_cjs/accounts/etherspot/utils/getInitMSAData.js.map +1 -1
  7. package/_cjs/accounts/etherspot/utils/getNonceKey.js +3 -3
  8. package/_cjs/accounts/etherspot/utils/getNonceKey.js.map +1 -1
  9. package/_cjs/accounts/etherspot/utils/wrapMessageHash.js.map +1 -1
  10. package/_cjs/accounts/index.js +12 -12
  11. package/_cjs/accounts/index.js.map +1 -1
  12. package/_cjs/accounts/kernel/constants.js.map +1 -1
  13. package/_cjs/accounts/kernel/to7702KernelSmartAccount.js.map +1 -1
  14. package/_cjs/accounts/kernel/toEcdsaKernelSmartAccount.js.map +1 -1
  15. package/_cjs/accounts/kernel/toKernelSmartAccount.js.map +1 -1
  16. package/_cjs/accounts/kernel/utils/decodeCallData.js.map +1 -1
  17. package/_cjs/accounts/kernel/utils/encodeCallData.js.map +1 -1
  18. package/_cjs/accounts/kernel/utils/getNonceKey.js +3 -3
  19. package/_cjs/accounts/kernel/utils/getNonceKey.js.map +1 -1
  20. package/_cjs/accounts/kernel/utils/isKernelV2.js.map +1 -1
  21. package/_cjs/accounts/kernel/utils/isWebAuthnAccount.js.map +1 -1
  22. package/_cjs/accounts/kernel/utils/signMessage.js +1 -1
  23. package/_cjs/accounts/kernel/utils/signMessage.js.map +1 -1
  24. package/_cjs/accounts/kernel/utils/signTypedData.js.map +1 -1
  25. package/_cjs/accounts/kernel/utils/wrapMessageHash.js.map +1 -1
  26. package/_cjs/accounts/light/toLightSmartAccount.js.map +1 -1
  27. package/_cjs/accounts/nexus/toNexusSmartAccount.js.map +1 -1
  28. package/_cjs/accounts/safe/signUserOperation.js.map +1 -1
  29. package/_cjs/accounts/safe/toSafeSmartAccount.js +25 -5
  30. package/_cjs/accounts/safe/toSafeSmartAccount.js.map +1 -1
  31. package/_cjs/accounts/simple/to7702SimpleSmartAccount.js.map +1 -1
  32. package/_cjs/accounts/simple/toSimpleSmartAccount.js.map +1 -1
  33. package/_cjs/accounts/thirdweb/toThirdwebSmartAccount.js.map +1 -1
  34. package/_cjs/accounts/thirdweb/utils/decodeCallData.js.map +1 -1
  35. package/_cjs/accounts/thirdweb/utils/encodeCallData.js.map +1 -1
  36. package/_cjs/accounts/thirdweb/utils/getAccountAddress.js.map +1 -1
  37. package/_cjs/accounts/thirdweb/utils/getFactoryData.js.map +1 -1
  38. package/_cjs/accounts/thirdweb/utils/signMessage.js.map +1 -1
  39. package/_cjs/accounts/thirdweb/utils/signTypedData.js.map +1 -1
  40. package/_cjs/accounts/trust/toTrustSmartAccount.js.map +1 -1
  41. package/_cjs/accounts/trust/utils/decodeCallData.js.map +1 -1
  42. package/_cjs/accounts/trust/utils/encodeCallData.js.map +1 -1
  43. package/_cjs/accounts/trust/utils/getFactoryData.js.map +1 -1
  44. package/_cjs/actions/erc7579/accountId.js.map +1 -1
  45. package/_cjs/actions/erc7579/installModule.js.map +1 -1
  46. package/_cjs/actions/erc7579/installModules.js.map +1 -1
  47. package/_cjs/actions/erc7579/isModuleInstalled.js.map +1 -1
  48. package/_cjs/actions/erc7579/supportsExecutionMode.js.map +1 -1
  49. package/_cjs/actions/erc7579/supportsModule.js.map +1 -1
  50. package/_cjs/actions/erc7579/uninstallModule.js.map +1 -1
  51. package/_cjs/actions/erc7579/uninstallModules.js.map +1 -1
  52. package/_cjs/actions/erc7579.js.map +1 -1
  53. package/_cjs/actions/etherspot/getUserOperationGasPrice.js.map +1 -1
  54. package/_cjs/actions/etherspot.js +1 -1
  55. package/_cjs/actions/etherspot.js.map +1 -1
  56. package/_cjs/actions/index.js +2 -2
  57. package/_cjs/actions/index.js.map +1 -1
  58. package/_cjs/actions/passkeyServer/getCredentials.js.map +1 -1
  59. package/_cjs/actions/passkeyServer/startAuthentication.js.map +1 -1
  60. package/_cjs/actions/passkeyServer/startRegistration.js.map +1 -1
  61. package/_cjs/actions/passkeyServer/verifyAuthentication.js.map +1 -1
  62. package/_cjs/actions/passkeyServer/verifyRegistration.js.map +1 -1
  63. package/_cjs/actions/passkeyServer.js +3 -3
  64. package/_cjs/actions/passkeyServer.js.map +1 -1
  65. package/_cjs/actions/pimlico/estimateErc20PaymasterCost.js.map +1 -1
  66. package/_cjs/actions/pimlico/getTokenQuotes.js.map +1 -1
  67. package/_cjs/actions/pimlico/getUserOperationGasPrice.js.map +1 -1
  68. package/_cjs/actions/pimlico/getUserOperationStatus.js.map +1 -1
  69. package/_cjs/actions/pimlico/sendCompressedUserOperation.js.map +1 -1
  70. package/_cjs/actions/pimlico/sponsorUserOperation.js.map +1 -1
  71. package/_cjs/actions/pimlico/validateSponsorshipPolicies.js.map +1 -1
  72. package/_cjs/actions/pimlico.js +7 -7
  73. package/_cjs/actions/pimlico.js.map +1 -1
  74. package/_cjs/actions/public/getAccountNonce.js.map +1 -1
  75. package/_cjs/actions/public/getSenderAddress.js +1 -6
  76. package/_cjs/actions/public/getSenderAddress.js.map +1 -1
  77. package/_cjs/actions/smartAccount/getCallsStatus.js.map +1 -1
  78. package/_cjs/actions/smartAccount/sendCalls.js.map +1 -1
  79. package/_cjs/actions/smartAccount/sendTransaction.js.map +1 -1
  80. package/_cjs/actions/smartAccount/signMessage.js.map +1 -1
  81. package/_cjs/actions/smartAccount/signTypedData.js.map +1 -1
  82. package/_cjs/actions/smartAccount/writeContract.js +1 -1
  83. package/_cjs/actions/smartAccount/writeContract.js.map +1 -1
  84. package/_cjs/actions/smartAccount.js +4 -4
  85. package/_cjs/actions/smartAccount.js.map +1 -1
  86. package/_cjs/clients/createSmartAccountClient.js.map +1 -1
  87. package/_cjs/clients/decorators/passkeyServer.js.map +1 -1
  88. package/_cjs/clients/decorators/pimlico.js.map +1 -1
  89. package/_cjs/clients/decorators/smartAccount.js.map +1 -1
  90. package/_cjs/clients/passkeyServer.js.map +1 -1
  91. package/_cjs/clients/pimlico.js.map +1 -1
  92. package/_cjs/errors/index.js.map +1 -1
  93. package/_cjs/experimental/pimlico/index.js +1 -1
  94. package/_cjs/experimental/pimlico/index.js.map +1 -1
  95. package/_cjs/experimental/pimlico/utils/prepareUserOperationForErc20Paymaster.js +1 -1
  96. package/_cjs/experimental/pimlico/utils/prepareUserOperationForErc20Paymaster.js.map +1 -1
  97. package/_cjs/utils/decode7579Calls.js.map +1 -1
  98. package/_cjs/utils/decodeNonce.js.map +1 -1
  99. package/_cjs/utils/deepHexlify.js.map +1 -1
  100. package/_cjs/utils/encode7579Calls.js.map +1 -1
  101. package/_cjs/utils/encodeInstallModule.js.map +1 -1
  102. package/_cjs/utils/encodeNonce.js.map +1 -1
  103. package/_cjs/utils/encodeUninstallModule.js.map +1 -1
  104. package/_cjs/utils/erc20AllowanceOverride.js.map +1 -1
  105. package/_cjs/utils/erc20BalanceOverride.js.map +1 -1
  106. package/_cjs/utils/getAddressFromInitCodeOrPaymasterAndData.js.map +1 -1
  107. package/_cjs/utils/getEstimationCallData.js.map +1 -1
  108. package/_cjs/utils/getPackedUserOperation.js.map +1 -1
  109. package/_cjs/utils/getRequiredPrefund.js.map +1 -1
  110. package/_cjs/utils/index.js +15 -15
  111. package/_cjs/utils/index.js.map +1 -1
  112. package/_cjs/utils/isSmartAccountDeployed.js.map +1 -1
  113. package/_cjs/utils/ox.js +3 -1
  114. package/_cjs/utils/ox.js.map +1 -1
  115. package/_cjs/utils/toOwner.js.map +1 -1
  116. package/_esm/accounts/biconomy/toBiconomySmartAccount.js.map +1 -1
  117. package/_esm/accounts/etherspot/constants.js +2 -1
  118. package/_esm/accounts/etherspot/constants.js.map +1 -1
  119. package/_esm/accounts/etherspot/toEtherspotSmartAccount.js.map +1 -1
  120. package/_esm/accounts/etherspot/utils/getInitMSAData.js.map +1 -1
  121. package/_esm/accounts/etherspot/utils/getNonceKey.js.map +1 -1
  122. package/_esm/accounts/etherspot/utils/wrapMessageHash.js.map +1 -1
  123. package/_esm/accounts/kernel/constants.js +2 -1
  124. package/_esm/accounts/kernel/constants.js.map +1 -1
  125. package/_esm/accounts/kernel/to7702KernelSmartAccount.js.map +1 -1
  126. package/_esm/accounts/kernel/toEcdsaKernelSmartAccount.js.map +1 -1
  127. package/_esm/accounts/kernel/toKernelSmartAccount.js.map +1 -1
  128. package/_esm/accounts/kernel/utils/decodeCallData.js.map +1 -1
  129. package/_esm/accounts/kernel/utils/encodeCallData.js.map +1 -1
  130. package/_esm/accounts/kernel/utils/getNonceKey.js.map +1 -1
  131. package/_esm/accounts/kernel/utils/isKernelV2.js.map +1 -1
  132. package/_esm/accounts/kernel/utils/isWebAuthnAccount.js.map +1 -1
  133. package/_esm/accounts/kernel/utils/signMessage.js +1 -1
  134. package/_esm/accounts/kernel/utils/signMessage.js.map +1 -1
  135. package/_esm/accounts/kernel/utils/signTypedData.js.map +1 -1
  136. package/_esm/accounts/kernel/utils/wrapMessageHash.js.map +1 -1
  137. package/_esm/accounts/light/toLightSmartAccount.js.map +1 -1
  138. package/_esm/accounts/nexus/toNexusSmartAccount.js.map +1 -1
  139. package/_esm/accounts/safe/signUserOperation.js.map +1 -1
  140. package/_esm/accounts/safe/toSafeSmartAccount.js +24 -4
  141. package/_esm/accounts/safe/toSafeSmartAccount.js.map +1 -1
  142. package/_esm/accounts/simple/to7702SimpleSmartAccount.js.map +1 -1
  143. package/_esm/accounts/simple/toSimpleSmartAccount.js.map +1 -1
  144. package/_esm/accounts/thirdweb/toThirdwebSmartAccount.js.map +1 -1
  145. package/_esm/accounts/thirdweb/utils/decodeCallData.js.map +1 -1
  146. package/_esm/accounts/thirdweb/utils/encodeCallData.js.map +1 -1
  147. package/_esm/accounts/thirdweb/utils/getAccountAddress.js.map +1 -1
  148. package/_esm/accounts/thirdweb/utils/getFactoryData.js.map +1 -1
  149. package/_esm/accounts/thirdweb/utils/signMessage.js.map +1 -1
  150. package/_esm/accounts/thirdweb/utils/signTypedData.js.map +1 -1
  151. package/_esm/accounts/trust/toTrustSmartAccount.js.map +1 -1
  152. package/_esm/accounts/trust/utils/decodeCallData.js.map +1 -1
  153. package/_esm/accounts/trust/utils/encodeCallData.js.map +1 -1
  154. package/_esm/accounts/trust/utils/getFactoryData.js.map +1 -1
  155. package/_esm/actions/erc7579/accountId.js.map +1 -1
  156. package/_esm/actions/erc7579/installModule.js.map +1 -1
  157. package/_esm/actions/erc7579/installModules.js.map +1 -1
  158. package/_esm/actions/erc7579/isModuleInstalled.js.map +1 -1
  159. package/_esm/actions/erc7579/supportsExecutionMode.js.map +1 -1
  160. package/_esm/actions/erc7579/supportsModule.js.map +1 -1
  161. package/_esm/actions/erc7579/uninstallModule.js.map +1 -1
  162. package/_esm/actions/erc7579/uninstallModules.js.map +1 -1
  163. package/_esm/actions/erc7579.js.map +1 -1
  164. package/_esm/actions/etherspot/getUserOperationGasPrice.js.map +1 -1
  165. package/_esm/actions/passkeyServer/getCredentials.js.map +1 -1
  166. package/_esm/actions/passkeyServer/startAuthentication.js.map +1 -1
  167. package/_esm/actions/passkeyServer/startRegistration.js.map +1 -1
  168. package/_esm/actions/passkeyServer/verifyAuthentication.js.map +1 -1
  169. package/_esm/actions/passkeyServer/verifyRegistration.js.map +1 -1
  170. package/_esm/actions/pimlico/estimateErc20PaymasterCost.js.map +1 -1
  171. package/_esm/actions/pimlico/getTokenQuotes.js.map +1 -1
  172. package/_esm/actions/pimlico/getUserOperationGasPrice.js.map +1 -1
  173. package/_esm/actions/pimlico/getUserOperationStatus.js.map +1 -1
  174. package/_esm/actions/pimlico/sendCompressedUserOperation.js.map +1 -1
  175. package/_esm/actions/pimlico/sponsorUserOperation.js.map +1 -1
  176. package/_esm/actions/pimlico/validateSponsorshipPolicies.js.map +1 -1
  177. package/_esm/actions/public/getAccountNonce.js.map +1 -1
  178. package/_esm/actions/public/getSenderAddress.js +1 -6
  179. package/_esm/actions/public/getSenderAddress.js.map +1 -1
  180. package/_esm/actions/smartAccount/getCallsStatus.js.map +1 -1
  181. package/_esm/actions/smartAccount/sendCalls.js.map +1 -1
  182. package/_esm/actions/smartAccount/sendTransaction.js.map +1 -1
  183. package/_esm/actions/smartAccount/signMessage.js.map +1 -1
  184. package/_esm/actions/smartAccount/signTypedData.js.map +1 -1
  185. package/_esm/actions/smartAccount/writeContract.js +1 -1
  186. package/_esm/actions/smartAccount/writeContract.js.map +1 -1
  187. package/_esm/clients/createSmartAccountClient.js.map +1 -1
  188. package/_esm/clients/decorators/smartAccount.js.map +1 -1
  189. package/_esm/clients/passkeyServer.js.map +1 -1
  190. package/_esm/clients/pimlico.js.map +1 -1
  191. package/_esm/errors/index.js.map +1 -1
  192. package/_esm/experimental/pimlico/utils/prepareUserOperationForErc20Paymaster.js.map +1 -1
  193. package/_esm/utils/decode7579Calls.js.map +1 -1
  194. package/_esm/utils/decodeNonce.js.map +1 -1
  195. package/_esm/utils/deepHexlify.js.map +1 -1
  196. package/_esm/utils/encode7579Calls.js.map +1 -1
  197. package/_esm/utils/encodeInstallModule.js.map +1 -1
  198. package/_esm/utils/encodeNonce.js.map +1 -1
  199. package/_esm/utils/encodeUninstallModule.js.map +1 -1
  200. package/_esm/utils/erc20AllowanceOverride.js.map +1 -1
  201. package/_esm/utils/erc20BalanceOverride.js.map +1 -1
  202. package/_esm/utils/getAddressFromInitCodeOrPaymasterAndData.js.map +1 -1
  203. package/_esm/utils/getEstimationCallData.js.map +1 -1
  204. package/_esm/utils/getPackedUserOperation.js.map +1 -1
  205. package/_esm/utils/getRequiredPrefund.js.map +1 -1
  206. package/_esm/utils/isSmartAccountDeployed.js.map +1 -1
  207. package/_esm/utils/ox.js.map +1 -1
  208. package/_esm/utils/toOwner.js.map +1 -1
  209. package/_types/accounts/etherspot/utils/getInitMSAData.d.ts +1 -2
  210. package/_types/accounts/etherspot/utils/getInitMSAData.d.ts.map +1 -1
  211. package/_types/accounts/etherspot/utils/getNonceKey.d.ts +1 -2
  212. package/_types/accounts/etherspot/utils/getNonceKey.d.ts.map +1 -1
  213. package/_types/accounts/etherspot/utils/wrapMessageHash.d.ts +2 -2
  214. package/_types/accounts/etherspot/utils/wrapMessageHash.d.ts.map +1 -1
  215. package/_types/accounts/kernel/toKernelSmartAccount.d.ts +1 -1
  216. package/_types/accounts/kernel/toKernelSmartAccount.d.ts.map +1 -1
  217. package/_types/accounts/kernel/utils/decodeCallData.d.ts +3 -4
  218. package/_types/accounts/kernel/utils/decodeCallData.d.ts.map +1 -1
  219. package/_types/accounts/kernel/utils/encodeCallData.d.ts +2 -3
  220. package/_types/accounts/kernel/utils/encodeCallData.d.ts.map +1 -1
  221. package/_types/accounts/kernel/utils/getNonceKey.d.ts +1 -2
  222. package/_types/accounts/kernel/utils/getNonceKey.d.ts.map +1 -1
  223. package/_types/accounts/kernel/utils/isKernelV2.d.ts.map +1 -1
  224. package/_types/accounts/kernel/utils/isWebAuthnAccount.d.ts.map +1 -1
  225. package/_types/accounts/kernel/utils/wrapMessageHash.d.ts +2 -2
  226. package/_types/accounts/kernel/utils/wrapMessageHash.d.ts.map +1 -1
  227. package/_types/accounts/safe/signUserOperation.d.ts +4 -4
  228. package/_types/accounts/safe/signUserOperation.d.ts.map +1 -1
  229. package/_types/accounts/safe/toSafeSmartAccount.d.ts +19 -10
  230. package/_types/accounts/safe/toSafeSmartAccount.d.ts.map +1 -1
  231. package/_types/accounts/simple/toSimpleSmartAccount.d.ts +603 -603
  232. package/_types/accounts/simple/toSimpleSmartAccount.d.ts.map +1 -1
  233. package/_types/accounts/thirdweb/toThirdwebSmartAccount.d.ts +2 -2
  234. package/_types/accounts/thirdweb/toThirdwebSmartAccount.d.ts.map +1 -1
  235. package/_types/accounts/thirdweb/utils/decodeCallData.d.ts +4 -5
  236. package/_types/accounts/thirdweb/utils/decodeCallData.d.ts.map +1 -1
  237. package/_types/accounts/thirdweb/utils/encodeCallData.d.ts +2 -3
  238. package/_types/accounts/thirdweb/utils/encodeCallData.d.ts.map +1 -1
  239. package/_types/accounts/thirdweb/utils/getAccountAddress.d.ts +1 -1
  240. package/_types/accounts/thirdweb/utils/getAccountAddress.d.ts.map +1 -1
  241. package/_types/accounts/thirdweb/utils/getFactoryData.d.ts +2 -3
  242. package/_types/accounts/thirdweb/utils/getFactoryData.d.ts.map +1 -1
  243. package/_types/accounts/trust/utils/decodeCallData.d.ts +4 -5
  244. package/_types/accounts/trust/utils/decodeCallData.d.ts.map +1 -1
  245. package/_types/accounts/trust/utils/encodeCallData.d.ts +2 -3
  246. package/_types/accounts/trust/utils/encodeCallData.d.ts.map +1 -1
  247. package/_types/accounts/trust/utils/getFactoryData.d.ts +2 -3
  248. package/_types/accounts/trust/utils/getFactoryData.d.ts.map +1 -1
  249. package/_types/actions/erc7579.d.ts.map +1 -1
  250. package/_types/actions/etherspot/getUserOperationGasPrice.d.ts.map +1 -1
  251. package/_types/actions/passkeyServer/getCredentials.d.ts +1 -1
  252. package/_types/actions/passkeyServer/getCredentials.d.ts.map +1 -1
  253. package/_types/actions/passkeyServer/startAuthentication.d.ts.map +1 -1
  254. package/_types/actions/passkeyServer/startRegistration.d.ts.map +1 -1
  255. package/_types/actions/passkeyServer/verifyAuthentication.d.ts.map +1 -1
  256. package/_types/actions/passkeyServer/verifyRegistration.d.ts.map +1 -1
  257. package/_types/actions/pimlico/estimateErc20PaymasterCost.d.ts.map +1 -1
  258. package/_types/actions/pimlico/getTokenQuotes.d.ts.map +1 -1
  259. package/_types/actions/pimlico/getUserOperationGasPrice.d.ts.map +1 -1
  260. package/_types/actions/pimlico/getUserOperationStatus.d.ts +1 -1
  261. package/_types/actions/pimlico/getUserOperationStatus.d.ts.map +1 -1
  262. package/_types/actions/pimlico/sendCompressedUserOperation.d.ts +2 -2
  263. package/_types/actions/pimlico/sendCompressedUserOperation.d.ts.map +1 -1
  264. package/_types/actions/pimlico/sponsorUserOperation.d.ts.map +1 -1
  265. package/_types/actions/pimlico/validateSponsorshipPolicies.d.ts.map +1 -1
  266. package/_types/actions/public/getAccountNonce.d.ts.map +1 -1
  267. package/_types/actions/public/getSenderAddress.d.ts +1 -1
  268. package/_types/actions/public/getSenderAddress.d.ts.map +1 -1
  269. package/_types/clients/decorators/passkeyServer.d.ts.map +1 -1
  270. package/_types/clients/decorators/pimlico.d.ts +2 -2
  271. package/_types/clients/decorators/pimlico.d.ts.map +1 -1
  272. package/_types/errors/index.d.ts.map +1 -1
  273. package/_types/experimental/pimlico/utils/prepareUserOperationForErc20Paymaster.d.ts +67 -4
  274. package/_types/experimental/pimlico/utils/prepareUserOperationForErc20Paymaster.d.ts.map +1 -1
  275. package/_types/utils/getPackedUserOperation.d.ts +18 -1
  276. package/_types/utils/getPackedUserOperation.d.ts.map +1 -1
  277. package/_types/utils/getRequiredPrefund.d.ts.map +1 -1
  278. package/_types/utils/isSmartAccountDeployed.d.ts +2 -2
  279. package/_types/utils/isSmartAccountDeployed.d.ts.map +1 -1
  280. package/accounts/kernel/utils/isWebAuthnAccount.ts +2 -2
  281. package/accounts/kernel/utils/signMessage.ts +1 -1
  282. package/accounts/safe/toSafeSmartAccount.ts +38 -1
  283. package/actions/passkeyServer/startRegistration.ts +2 -2
  284. package/package.json +3 -3
  285. package/_cjs/vitest.config.js +0 -33
  286. package/_cjs/vitest.config.js.map +0 -1
  287. package/_esm/vitest.config.js +0 -31
  288. package/_esm/vitest.config.js.map +0 -1
  289. package/_types/vitest.config.d.ts +0 -3
  290. package/_types/vitest.config.d.ts.map +0 -1
@@ -704,6 +704,7 @@ const getInitializerCode = async ({
704
704
  erc7579LaunchpadAddress,
705
705
  setupTransactions = [],
706
706
  safeModules = [],
707
+ useMultiSendForSetup = true,
707
708
  validators = [],
708
709
  executors = [],
709
710
  fallbacks = [],
@@ -729,6 +730,7 @@ const getInitializerCode = async ({
729
730
  value: bigint
730
731
  }[]
731
732
  safeModules?: Address[]
733
+ useMultiSendForSetup?: boolean
732
734
  validators?: { address: Address; context: Address }[]
733
735
  executors?: {
734
736
  address: Address
@@ -902,6 +904,23 @@ const getInitializerCode = async ({
902
904
  })
903
905
  }
904
906
 
907
+ if (!useMultiSendForSetup && multiCalls.length === 1) {
908
+ return encodeFunctionData({
909
+ abi: setupAbi,
910
+ functionName: "setup",
911
+ args: [
912
+ ownerAddresses,
913
+ threshold,
914
+ multiCalls[0].to,
915
+ multiCalls[0].data,
916
+ safe4337ModuleAddress,
917
+ paymentToken,
918
+ payment,
919
+ paymentReceiver
920
+ ]
921
+ })
922
+ }
923
+
905
924
  const multiSendCallData = encodeMultiSend(multiCalls)
906
925
 
907
926
  return encodeFunctionData({
@@ -962,6 +981,7 @@ const getAccountInitCode = async ({
962
981
  saltNonce = BigInt(0),
963
982
  setupTransactions = [],
964
983
  safeModules = [],
984
+ useMultiSendForSetup = true,
965
985
  validators = [],
966
986
  executors = [],
967
987
  fallbacks = [],
@@ -985,6 +1005,7 @@ const getAccountInitCode = async ({
985
1005
  value: bigint
986
1006
  }[]
987
1007
  safeModules?: Address[]
1008
+ useMultiSendForSetup?: boolean
988
1009
  validators?: { address: Address; context: Address }[]
989
1010
  executors?: {
990
1011
  address: Address
@@ -1009,6 +1030,7 @@ const getAccountInitCode = async ({
1009
1030
  setupTransactions,
1010
1031
  safeSingletonAddress,
1011
1032
  safeModules,
1033
+ useMultiSendForSetup,
1012
1034
  erc7579LaunchpadAddress,
1013
1035
  validators,
1014
1036
  executors,
@@ -1183,6 +1205,15 @@ export type ToSafeSmartAccountParameters<
1183
1205
  payment?: bigint
1184
1206
  paymentReceiver?: Address
1185
1207
  onchainIdentifier?: Hex
1208
+ /**
1209
+ * When true (default), the Safe setup always routes through MultiSend,
1210
+ * even for a single setup transaction. When false, a single setup
1211
+ * transaction (e.g. just enableModules) is called directly without
1212
+ * MultiSend wrapping. This produces a different counterfactual address
1213
+ * and is compatible with Safe Protocol Kit / relay-kit address derivation.
1214
+ * @default true
1215
+ */
1216
+ useMultiSendForSetup?: boolean
1186
1217
  } & GetErc7579Params<TErc7579>
1187
1218
 
1188
1219
  function isErc7579Args<entryPointVersion extends "0.6" | "0.7" = "0.7">(
@@ -1224,6 +1255,7 @@ const getAccountAddress = async ({
1224
1255
  paymentReceiver,
1225
1256
  setupTransactions = [],
1226
1257
  safeModules = [],
1258
+ useMultiSendForSetup = true,
1227
1259
  saltNonce = BigInt(0),
1228
1260
  validators = [],
1229
1261
  executors = [],
@@ -1251,6 +1283,7 @@ const getAccountAddress = async ({
1251
1283
  payment?: bigint
1252
1284
  paymentReceiver?: Address
1253
1285
  safeModules?: Address[]
1286
+ useMultiSendForSetup?: boolean
1254
1287
  saltNonce?: bigint
1255
1288
  erc7579LaunchpadAddress?: Address
1256
1289
  validators?: { address: Address; context: Address }[]
@@ -1280,6 +1313,7 @@ const getAccountAddress = async ({
1280
1313
  setupTransactions,
1281
1314
  safeSingletonAddress,
1282
1315
  safeModules,
1316
+ useMultiSendForSetup,
1283
1317
  erc7579LaunchpadAddress,
1284
1318
  validators,
1285
1319
  executors,
@@ -1364,7 +1398,8 @@ export async function toSafeSmartAccount<
1364
1398
  paymentToken,
1365
1399
  payment,
1366
1400
  paymentReceiver,
1367
- onchainIdentifier
1401
+ onchainIdentifier,
1402
+ useMultiSendForSetup = true
1368
1403
  } = parameters
1369
1404
 
1370
1405
  const owners = await Promise.all(
@@ -1511,6 +1546,7 @@ export async function toSafeSmartAccount<
1511
1546
  saltNonce,
1512
1547
  setupTransactions,
1513
1548
  safeModules,
1549
+ useMultiSendForSetup,
1514
1550
  validators,
1515
1551
  executors,
1516
1552
  fallbacks,
@@ -1547,6 +1583,7 @@ export async function toSafeSmartAccount<
1547
1583
  saltNonce,
1548
1584
  setupTransactions,
1549
1585
  safeModules,
1586
+ useMultiSendForSetup,
1550
1587
  validators,
1551
1588
  executors,
1552
1589
  fallbacks,
@@ -78,7 +78,7 @@ export type StartRegistrationParameters = {
78
78
  }
79
79
  export type StartRegistrationReturnType = CreateWebAuthnCredentialParameters
80
80
 
81
- export const startRegistration = async (
81
+ export const startRegistration: (
82
82
  client: Client<
83
83
  Transport,
84
84
  Chain | undefined,
@@ -86,7 +86,7 @@ export const startRegistration = async (
86
86
  PasskeyServerRpcSchema
87
87
  >,
88
88
  args?: StartRegistrationParameters
89
- ): Promise<StartRegistrationReturnType> => {
89
+ ) => Promise<StartRegistrationReturnType> = async (client, args) => {
90
90
  const response = await client.request({
91
91
  method: "pks_startRegistration",
92
92
  params: [args?.context]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "permissionless",
3
- "version": "0.3.3",
3
+ "version": "0.3.5",
4
4
  "author": "Pimlico",
5
5
  "homepage": "https://docs.pimlico.io/permissionless",
6
6
  "repository": "github:pimlicolabs/permissionless.js",
@@ -97,8 +97,8 @@
97
97
  }
98
98
  },
99
99
  "peerDependencies": {
100
- "viem": "^2.28.1",
101
- "ox": "^0.8.0"
100
+ "viem": "^2.44.4",
101
+ "ox": "^0.11.3"
102
102
  },
103
103
  "peerDependenciesMeta": {
104
104
  "ox": {
@@ -1,33 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const node_path_1 = require("node:path");
4
- const vite_1 = require("vite");
5
- const config_1 = require("vitest/config");
6
- exports.default = (0, config_1.defineConfig)({
7
- test: {
8
- coverage: {
9
- all: true,
10
- provider: "v8",
11
- reporter: process.env.CI ? ["lcov"] : ["text", "json", "html"],
12
- include: ["**/permissionless/**"],
13
- exclude: [
14
- "**/errors/utils.ts",
15
- "**/*.test.ts",
16
- "**/permissionless-test/**",
17
- "**/_cjs/**",
18
- "**/_esm/**",
19
- "**/_types/**"
20
- ]
21
- },
22
- sequence: {
23
- concurrent: false
24
- },
25
- fileParallelism: true,
26
- environment: "node",
27
- testTimeout: 60_000,
28
- hookTimeout: 45_000,
29
- include: [(0, node_path_1.join)(__dirname, "./**/*.test.ts")],
30
- env: (0, vite_1.loadEnv)("test", process.cwd())
31
- }
32
- });
33
- //# sourceMappingURL=vitest.config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vitest.config.js","sourceRoot":"","sources":["../vitest.config.ts"],"names":[],"mappings":";;AAAA,yCAAgC;AAChC,+BAA8B;AAC9B,0CAA4C;AAE5C,kBAAe,IAAA,qBAAY,EAAC;IACxB,IAAI,EAAE;QACF,QAAQ,EAAE;YACN,GAAG,EAAE,IAAI;YACT,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC9D,OAAO,EAAE,CAAC,sBAAsB,CAAC;YACjC,OAAO,EAAE;gBACL,oBAAoB;gBACpB,cAAc;gBACd,2BAA2B;gBAC3B,YAAY;gBACZ,YAAY;gBACZ,cAAc;aACjB;SACJ;QACD,QAAQ,EAAE;YACN,UAAU,EAAE,KAAK;SACpB;QACD,eAAe,EAAE,IAAI;QACrB,WAAW,EAAE,MAAM;QACnB,WAAW,EAAE,MAAM;QACnB,WAAW,EAAE,MAAM;QACnB,OAAO,EAAE,CAAC,IAAA,gBAAI,EAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;QAC5C,GAAG,EAAE,IAAA,cAAO,EAAC,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;KACtC;CACJ,CAAC,CAAA"}
@@ -1,31 +0,0 @@
1
- import { join } from "node:path";
2
- import { loadEnv } from "vite";
3
- import { defineConfig } from "vitest/config";
4
- export default defineConfig({
5
- test: {
6
- coverage: {
7
- all: true,
8
- provider: "v8",
9
- reporter: process.env.CI ? ["lcov"] : ["text", "json", "html"],
10
- include: ["**/permissionless/**"],
11
- exclude: [
12
- "**/errors/utils.ts",
13
- "**/*.test.ts",
14
- "**/permissionless-test/**",
15
- "**/_cjs/**",
16
- "**/_esm/**",
17
- "**/_types/**"
18
- ]
19
- },
20
- sequence: {
21
- concurrent: false
22
- },
23
- fileParallelism: true,
24
- environment: "node",
25
- testTimeout: 60_000,
26
- hookTimeout: 45_000,
27
- include: [join(__dirname, "./**/*.test.ts")],
28
- env: loadEnv("test", process.cwd())
29
- }
30
- });
31
- //# sourceMappingURL=vitest.config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vitest.config.js","sourceRoot":"","sources":["../vitest.config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAE5C,eAAe,YAAY,CAAC;IACxB,IAAI,EAAE;QACF,QAAQ,EAAE;YACN,GAAG,EAAE,IAAI;YACT,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC9D,OAAO,EAAE,CAAC,sBAAsB,CAAC;YACjC,OAAO,EAAE;gBACL,oBAAoB;gBACpB,cAAc;gBACd,2BAA2B;gBAC3B,YAAY;gBACZ,YAAY;gBACZ,cAAc;aACjB;SACJ;QACD,QAAQ,EAAE;YACN,UAAU,EAAE,KAAK;SACpB;QACD,eAAe,EAAE,IAAI;QACrB,WAAW,EAAE,MAAM;QACnB,WAAW,EAAE,MAAM;QACnB,WAAW,EAAE,MAAM;QACnB,OAAO,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;QAC5C,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;KACtC;CACJ,CAAC,CAAA"}
@@ -1,3 +0,0 @@
1
- declare const _default: import("vite").UserConfig;
2
- export default _default;
3
- //# sourceMappingURL=vitest.config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vitest.config.d.ts","sourceRoot":"","sources":["../vitest.config.ts"],"names":[],"mappings":";AAIA,wBA0BE"}