@safe-global/protocol-kit 4.1.0 → 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 (214) 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/config.js +32 -1
  153. package/dist/src/utils/eip-3770/config.js.map +1 -1
  154. package/dist/src/utils/eip-3770/index.d.ts +1 -1
  155. package/dist/src/utils/eip-3770/index.js +2 -3
  156. package/dist/src/utils/eip-3770/index.js.map +1 -1
  157. package/dist/src/utils/eip-712/encode.d.ts +3 -0
  158. package/dist/src/utils/eip-712/encode.js +127 -0
  159. package/dist/src/utils/eip-712/encode.js.map +1 -0
  160. package/dist/src/utils/eip-712/index.d.ts +1 -1
  161. package/dist/src/utils/eip-712/index.js +5 -7
  162. package/dist/src/utils/eip-712/index.js.map +1 -1
  163. package/dist/src/utils/erc-20/index.d.ts +1 -1
  164. package/dist/src/utils/erc-20/index.js +12 -5
  165. package/dist/src/utils/erc-20/index.js.map +1 -1
  166. package/dist/src/utils/messages/SafeMessage.d.ts +1 -1
  167. package/dist/src/utils/passkeys/PasskeyClient.d.ts +5 -0
  168. package/dist/src/utils/passkeys/PasskeyClient.js +156 -0
  169. package/dist/src/utils/passkeys/PasskeyClient.js.map +1 -0
  170. package/dist/src/utils/passkeys/createPasskeyDeploymentTransaction.d.ts +2 -1
  171. package/dist/src/utils/passkeys/createPasskeyDeploymentTransaction.js +12 -12
  172. package/dist/src/utils/passkeys/createPasskeyDeploymentTransaction.js.map +1 -1
  173. package/dist/src/utils/passkeys/extractPasskeyData.d.ts +1 -2
  174. package/dist/src/utils/passkeys/extractPasskeyData.js +8 -15
  175. package/dist/src/utils/passkeys/extractPasskeyData.js.map +1 -1
  176. package/dist/src/utils/passkeys/getPasskeyOwnerAddress.js +10 -3
  177. package/dist/src/utils/passkeys/getPasskeyOwnerAddress.js.map +1 -1
  178. package/dist/src/utils/passkeys/index.d.ts +1 -1
  179. package/dist/src/utils/passkeys/index.js +1 -1
  180. package/dist/src/utils/passkeys/isSharedSigner.d.ts +2 -3
  181. package/dist/src/utils/passkeys/isSharedSigner.js +6 -5
  182. package/dist/src/utils/passkeys/isSharedSigner.js.map +1 -1
  183. package/dist/src/utils/provider.d.ts +3 -0
  184. package/dist/src/utils/provider.js +12 -0
  185. package/dist/src/utils/provider.js.map +1 -0
  186. package/dist/src/utils/safeVersions.js +2 -2
  187. package/dist/src/utils/safeVersions.js.map +1 -1
  188. package/dist/src/utils/signatures/SafeSignature.d.ts +1 -1
  189. package/dist/src/utils/signatures/utils.d.ts +4 -4
  190. package/dist/src/utils/signatures/utils.js +34 -20
  191. package/dist/src/utils/signatures/utils.js.map +1 -1
  192. package/dist/src/utils/transactions/SafeTransaction.d.ts +1 -1
  193. package/dist/src/utils/transactions/SafeTransaction.js.map +1 -1
  194. package/dist/src/utils/transactions/gas.d.ts +1 -1
  195. package/dist/src/utils/transactions/gas.js +37 -64
  196. package/dist/src/utils/transactions/gas.js.map +1 -1
  197. package/dist/src/utils/transactions/types.d.ts +17 -1
  198. package/dist/src/utils/transactions/utils.d.ts +11 -2
  199. package/dist/src/utils/transactions/utils.js +117 -27
  200. package/dist/src/utils/transactions/utils.js.map +1 -1
  201. package/dist/src/utils/types.d.ts +4 -0
  202. package/dist/src/utils/types.js +59 -1
  203. package/dist/src/utils/types.js.map +1 -1
  204. package/dist/tsconfig.build.tsbuildinfo +1 -1
  205. package/package.json +26 -35
  206. package/dist/src/SafeFactory.d.ts +0 -15
  207. package/dist/src/SafeFactory.js +0 -136
  208. package/dist/src/SafeFactory.js.map +0 -1
  209. package/dist/src/types/safeFactory.d.ts +0 -31
  210. package/dist/src/types/safeFactory.js +0 -3
  211. package/dist/src/types/safeFactory.js.map +0 -1
  212. package/dist/src/utils/passkeys/PasskeySigner.d.ts +0 -63
  213. package/dist/src/utils/passkeys/PasskeySigner.js +0 -163
  214. package/dist/src/utils/passkeys/PasskeySigner.js.map +0 -1
@@ -1,40 +1,28 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getSafeWebAuthnSharedSignerContract = exports.getSafeWebAuthnSignerFactoryContract = exports.getSimulateTxAccessorContract = exports.getCreateCallContract = exports.getSignMessageLibContract = exports.getMultiSendCallOnlyContract = exports.getMultiSendContract = exports.getCompatibilityFallbackHandlerContract = exports.getProxyFactoryContract = exports.getSafeContract = void 0;
4
- async function getSafeContract({ safeProvider, safeVersion, customSafeAddress, isL1SafeSingleton, customContracts }) {
5
- const safeContract = await safeProvider.getSafeContract({
6
- safeVersion,
7
- customContractAddress: customSafeAddress ?? customContracts?.safeSingletonAddress,
8
- customContractAbi: customContracts?.safeSingletonAbi,
9
- isL1SafeSingleton
10
- });
11
- const isContractDeployed = await safeProvider.isContractDeployed(await safeContract.getAddress());
3
+ exports.getSafeWebAuthnSharedSignerContract = exports.getSafeWebAuthnSignerFactoryContract = exports.getSimulateTxAccessorContract = exports.getCreateCallContract = exports.getSignMessageLibContract = exports.getMultiSendCallOnlyContract = exports.getMultiSendContract = exports.getCompatibilityFallbackHandlerContract = exports.getSafeProxyFactoryContract = exports.getSafeContract = void 0;
4
+ const contractInstances_1 = require("../contracts/contractInstances");
5
+ async function getSafeContract({ safeProvider, safeVersion, customSafeAddress, isL1SafeSingleton, customContracts, deploymentType }) {
6
+ const safeContract = await (0, contractInstances_1.getSafeContractInstance)(safeVersion, safeProvider, customSafeAddress ?? customContracts?.safeSingletonAddress, customContracts?.safeSingletonAbi, isL1SafeSingleton, deploymentType);
7
+ const isContractDeployed = await safeProvider.isContractDeployed(safeContract.getAddress());
12
8
  if (!isContractDeployed) {
13
9
  throw new Error('SafeProxy contract is not deployed on the current network');
14
10
  }
15
11
  return safeContract;
16
12
  }
17
13
  exports.getSafeContract = getSafeContract;
18
- async function getProxyFactoryContract({ safeProvider, safeVersion, customContracts }) {
19
- const safeProxyFactoryContract = await safeProvider.getSafeProxyFactoryContract({
20
- safeVersion,
21
- customContractAddress: customContracts?.safeProxyFactoryAddress,
22
- customContractAbi: customContracts?.safeProxyFactoryAbi
23
- });
24
- const isContractDeployed = await safeProvider.isContractDeployed(await safeProxyFactoryContract.getAddress());
14
+ async function getSafeProxyFactoryContract({ safeProvider, safeVersion, customContracts, deploymentType }) {
15
+ const safeProxyFactoryContract = await (0, contractInstances_1.getSafeProxyFactoryContractInstance)(safeVersion, safeProvider, customContracts?.safeProxyFactoryAddress, customContracts?.safeProxyFactoryAbi, deploymentType);
16
+ const isContractDeployed = await safeProvider.isContractDeployed(safeProxyFactoryContract.getAddress());
25
17
  if (!isContractDeployed) {
26
18
  throw new Error('SafeProxyFactory contract is not deployed on the current network');
27
19
  }
28
20
  return safeProxyFactoryContract;
29
21
  }
30
- exports.getProxyFactoryContract = getProxyFactoryContract;
31
- async function getCompatibilityFallbackHandlerContract({ safeProvider, safeVersion, customContracts }) {
32
- const fallbackHandlerContract = await safeProvider.getCompatibilityFallbackHandlerContract({
33
- safeVersion,
34
- customContractAddress: customContracts?.fallbackHandlerAddress,
35
- customContractAbi: customContracts?.fallbackHandlerAbi
36
- });
37
- const isContractDeployed = await safeProvider.isContractDeployed(await fallbackHandlerContract.getAddress());
22
+ exports.getSafeProxyFactoryContract = getSafeProxyFactoryContract;
23
+ async function getCompatibilityFallbackHandlerContract({ safeProvider, safeVersion, customContracts, deploymentType }) {
24
+ const fallbackHandlerContract = await (0, contractInstances_1.getCompatibilityFallbackHandlerContractInstance)(safeVersion, safeProvider, customContracts?.fallbackHandlerAddress, customContracts?.fallbackHandlerAbi, deploymentType);
25
+ const isContractDeployed = await safeProvider.isContractDeployed(fallbackHandlerContract.getAddress());
38
26
  if (!isContractDeployed) {
39
27
  throw new Error('CompatibilityFallbackHandler contract is not deployed on the current network');
40
28
  }
@@ -42,12 +30,8 @@ async function getCompatibilityFallbackHandlerContract({ safeProvider, safeVersi
42
30
  }
43
31
  exports.getCompatibilityFallbackHandlerContract = getCompatibilityFallbackHandlerContract;
44
32
  async function getMultiSendContract({ safeProvider, safeVersion, customContracts }) {
45
- const multiSendContract = await safeProvider.getMultiSendContract({
46
- safeVersion,
47
- customContractAddress: customContracts?.multiSendAddress,
48
- customContractAbi: customContracts?.multiSendAbi
49
- });
50
- const isContractDeployed = await safeProvider.isContractDeployed(await multiSendContract.getAddress());
33
+ const multiSendContract = await (0, contractInstances_1.getMultiSendContractInstance)(safeVersion, safeProvider, customContracts?.multiSendAddress, customContracts?.multiSendAbi);
34
+ const isContractDeployed = await safeProvider.isContractDeployed(multiSendContract.getAddress());
51
35
  if (!isContractDeployed) {
52
36
  throw new Error('MultiSend contract is not deployed on the current network');
53
37
  }
@@ -55,12 +39,8 @@ async function getMultiSendContract({ safeProvider, safeVersion, customContracts
55
39
  }
56
40
  exports.getMultiSendContract = getMultiSendContract;
57
41
  async function getMultiSendCallOnlyContract({ safeProvider, safeVersion, customContracts }) {
58
- const multiSendCallOnlyContract = await safeProvider.getMultiSendCallOnlyContract({
59
- safeVersion,
60
- customContractAddress: customContracts?.multiSendCallOnlyAddress,
61
- customContractAbi: customContracts?.multiSendCallOnlyAbi
62
- });
63
- const isContractDeployed = await safeProvider.isContractDeployed(await multiSendCallOnlyContract.getAddress());
42
+ const multiSendCallOnlyContract = await (0, contractInstances_1.getMultiSendCallOnlyContractInstance)(safeVersion, safeProvider, customContracts?.multiSendCallOnlyAddress, customContracts?.multiSendCallOnlyAbi);
43
+ const isContractDeployed = await safeProvider.isContractDeployed(multiSendCallOnlyContract.getAddress());
64
44
  if (!isContractDeployed) {
65
45
  throw new Error('MultiSendCallOnly contract is not deployed on the current network');
66
46
  }
@@ -68,12 +48,8 @@ async function getMultiSendCallOnlyContract({ safeProvider, safeVersion, customC
68
48
  }
69
49
  exports.getMultiSendCallOnlyContract = getMultiSendCallOnlyContract;
70
50
  async function getSignMessageLibContract({ safeProvider, safeVersion, customContracts }) {
71
- const signMessageLibContract = await safeProvider.getSignMessageLibContract({
72
- safeVersion,
73
- customContractAddress: customContracts?.signMessageLibAddress,
74
- customContractAbi: customContracts?.signMessageLibAbi
75
- });
76
- const isContractDeployed = await safeProvider.isContractDeployed(await signMessageLibContract.getAddress());
51
+ const signMessageLibContract = await (0, contractInstances_1.getSignMessageLibContractInstance)(safeVersion, safeProvider, customContracts?.signMessageLibAddress, customContracts?.signMessageLibAbi);
52
+ const isContractDeployed = await safeProvider.isContractDeployed(signMessageLibContract.getAddress());
77
53
  if (!isContractDeployed) {
78
54
  throw new Error('SignMessageLib contract is not deployed on the current network');
79
55
  }
@@ -81,12 +57,8 @@ async function getSignMessageLibContract({ safeProvider, safeVersion, customCont
81
57
  }
82
58
  exports.getSignMessageLibContract = getSignMessageLibContract;
83
59
  async function getCreateCallContract({ safeProvider, safeVersion, customContracts }) {
84
- const createCallContract = await safeProvider.getCreateCallContract({
85
- safeVersion,
86
- customContractAddress: customContracts?.createCallAddress,
87
- customContractAbi: customContracts?.createCallAbi
88
- });
89
- const isContractDeployed = await safeProvider.isContractDeployed(await createCallContract.getAddress());
60
+ const createCallContract = await (0, contractInstances_1.getCreateCallContractInstance)(safeVersion, safeProvider, customContracts?.createCallAddress, customContracts?.createCallAbi);
61
+ const isContractDeployed = await safeProvider.isContractDeployed(createCallContract.getAddress());
90
62
  if (!isContractDeployed) {
91
63
  throw new Error('CreateCall contract is not deployed on the current network');
92
64
  }
@@ -94,12 +66,8 @@ async function getCreateCallContract({ safeProvider, safeVersion, customContract
94
66
  }
95
67
  exports.getCreateCallContract = getCreateCallContract;
96
68
  async function getSimulateTxAccessorContract({ safeProvider, safeVersion, customContracts }) {
97
- const simulateTxAccessorContract = await safeProvider.getSimulateTxAccessorContract({
98
- safeVersion,
99
- customContractAddress: customContracts?.simulateTxAccessorAddress,
100
- customContractAbi: customContracts?.simulateTxAccessorAbi
101
- });
102
- const isContractDeployed = await safeProvider.isContractDeployed(await simulateTxAccessorContract.getAddress());
69
+ const simulateTxAccessorContract = await (0, contractInstances_1.getSimulateTxAccessorContractInstance)(safeVersion, safeProvider, customContracts?.simulateTxAccessorAddress, customContracts?.simulateTxAccessorAbi);
70
+ const isContractDeployed = await safeProvider.isContractDeployed(simulateTxAccessorContract.getAddress());
103
71
  if (!isContractDeployed) {
104
72
  throw new Error('SimulateTxAccessor contract is not deployed on the current network');
105
73
  }
@@ -107,12 +75,8 @@ async function getSimulateTxAccessorContract({ safeProvider, safeVersion, custom
107
75
  }
108
76
  exports.getSimulateTxAccessorContract = getSimulateTxAccessorContract;
109
77
  async function getSafeWebAuthnSignerFactoryContract({ safeProvider, safeVersion, customContracts }) {
110
- const safeWebAuthnSignerFactoryContract = await safeProvider.getSafeWebAuthnSignerFactoryContract({
111
- safeVersion,
112
- customContractAddress: customContracts?.safeWebAuthnSignerFactoryAddress,
113
- customContractAbi: customContracts?.safeWebAuthnSignerFactoryAbi
114
- });
115
- const isContractDeployed = await safeProvider.isContractDeployed(await safeWebAuthnSignerFactoryContract.getAddress());
78
+ const safeWebAuthnSignerFactoryContract = await (0, contractInstances_1.getSafeWebAuthnSignerFactoryContractInstance)(safeVersion, safeProvider, customContracts?.safeWebAuthnSignerFactoryAddress, customContracts?.safeWebAuthnSignerFactoryAbi);
79
+ const isContractDeployed = await safeProvider.isContractDeployed(safeWebAuthnSignerFactoryContract.getAddress());
116
80
  if (!isContractDeployed) {
117
81
  throw new Error('safeWebAuthnSignerFactory contract is not deployed on the current network');
118
82
  }
@@ -120,12 +84,8 @@ async function getSafeWebAuthnSignerFactoryContract({ safeProvider, safeVersion,
120
84
  }
121
85
  exports.getSafeWebAuthnSignerFactoryContract = getSafeWebAuthnSignerFactoryContract;
122
86
  async function getSafeWebAuthnSharedSignerContract({ safeProvider, safeVersion, customContracts }) {
123
- const safeWebAuthnSharedSignerContract = await safeProvider.getSafeWebAuthnSharedSignerContract({
124
- safeVersion,
125
- customContractAddress: customContracts?.safeWebAuthnSharedSignerAddress,
126
- customContractAbi: customContracts?.safeWebAuthnSharedSignerAbi
127
- });
128
- const isContractDeployed = await safeProvider.isContractDeployed(await safeWebAuthnSharedSignerContract.getAddress());
87
+ const safeWebAuthnSharedSignerContract = await (0, contractInstances_1.getSafeWebAuthnSharedSignerContractInstance)(safeVersion, safeProvider, customContracts?.safeWebAuthnSharedSignerAddress, customContracts?.safeWebAuthnSharedSignerAbi);
88
+ const isContractDeployed = await safeProvider.isContractDeployed(safeWebAuthnSharedSignerContract.getAddress());
129
89
  if (!isContractDeployed) {
130
90
  throw new Error('safeWebAuthnSharedSigner contract is not deployed on the current network');
131
91
  }
@@ -1 +1 @@
1
- {"version":3,"file":"safeDeploymentContracts.js","sourceRoot":"","sources":["../../../src/contracts/safeDeploymentContracts.ts"],"names":[],"mappings":";;;AA2BO,KAAK,UAAU,eAAe,CAAC,EACpC,YAAY,EACZ,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACc;IAC7B,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,eAAe,CAAC;QACtD,WAAW;QACX,qBAAqB,EAAE,iBAAiB,IAAI,eAAe,EAAE,oBAAoB;QACjF,iBAAiB,EAAE,eAAe,EAAE,gBAAgB;QACpD,iBAAiB;KAClB,CAAC,CAAA;IACF,MAAM,kBAAkB,GAAG,MAAM,YAAY,CAAC,kBAAkB,CAAC,MAAM,YAAY,CAAC,UAAU,EAAE,CAAC,CAAA;IACjG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAA;IAC9E,CAAC;IACD,OAAO,YAAY,CAAA;AACrB,CAAC;AAlBD,0CAkBC;AAEM,KAAK,UAAU,uBAAuB,CAAC,EAC5C,YAAY,EACZ,WAAW,EACX,eAAe,EACU;IACzB,MAAM,wBAAwB,GAAG,MAAM,YAAY,CAAC,2BAA2B,CAAC;QAC9E,WAAW;QACX,qBAAqB,EAAE,eAAe,EAAE,uBAAuB;QAC/D,iBAAiB,EAAE,eAAe,EAAE,mBAAmB;KACxD,CAAC,CAAA;IACF,MAAM,kBAAkB,GAAG,MAAM,YAAY,CAAC,kBAAkB,CAC9D,MAAM,wBAAwB,CAAC,UAAU,EAAE,CAC5C,CAAA;IACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAA;IACrF,CAAC;IACD,OAAO,wBAAwB,CAAA;AACjC,CAAC;AAjBD,0DAiBC;AAEM,KAAK,UAAU,uCAAuC,CAAC,EAC5D,YAAY,EACZ,WAAW,EACX,eAAe,EACU;IACzB,MAAM,uBAAuB,GAAG,MAAM,YAAY,CAAC,uCAAuC,CAAC;QACzF,WAAW;QACX,qBAAqB,EAAE,eAAe,EAAE,sBAAsB;QAC9D,iBAAiB,EAAE,eAAe,EAAE,kBAAkB;KACvD,CAAC,CAAA;IACF,MAAM,kBAAkB,GAAG,MAAM,YAAY,CAAC,kBAAkB,CAC9D,MAAM,uBAAuB,CAAC,UAAU,EAAE,CAC3C,CAAA;IACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC,CAAA;IACjG,CAAC;IACD,OAAO,uBAAuB,CAAA;AAChC,CAAC;AAjBD,0FAiBC;AAEM,KAAK,UAAU,oBAAoB,CAAC,EACzC,YAAY,EACZ,WAAW,EACX,eAAe,EACU;IACzB,MAAM,iBAAiB,GAAG,MAAM,YAAY,CAAC,oBAAoB,CAAC;QAChE,WAAW;QACX,qBAAqB,EAAE,eAAe,EAAE,gBAAgB;QACxD,iBAAiB,EAAE,eAAe,EAAE,YAAY;KACjD,CAAC,CAAA;IACF,MAAM,kBAAkB,GAAG,MAAM,YAAY,CAAC,kBAAkB,CAC9D,MAAM,iBAAiB,CAAC,UAAU,EAAE,CACrC,CAAA;IACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAA;IAC9E,CAAC;IACD,OAAO,iBAAiB,CAAA;AAC1B,CAAC;AAjBD,oDAiBC;AAEM,KAAK,UAAU,4BAA4B,CAAC,EACjD,YAAY,EACZ,WAAW,EACX,eAAe,EACU;IACzB,MAAM,yBAAyB,GAAG,MAAM,YAAY,CAAC,4BAA4B,CAAC;QAChF,WAAW;QACX,qBAAqB,EAAE,eAAe,EAAE,wBAAwB;QAChE,iBAAiB,EAAE,eAAe,EAAE,oBAAoB;KACzD,CAAC,CAAA;IACF,MAAM,kBAAkB,GAAG,MAAM,YAAY,CAAC,kBAAkB,CAC9D,MAAM,yBAAyB,CAAC,UAAU,EAAE,CAC7C,CAAA;IACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAA;IACtF,CAAC;IACD,OAAO,yBAAyB,CAAA;AAClC,CAAC;AAjBD,oEAiBC;AAEM,KAAK,UAAU,yBAAyB,CAAC,EAC9C,YAAY,EACZ,WAAW,EACX,eAAe,EACU;IACzB,MAAM,sBAAsB,GAAG,MAAM,YAAY,CAAC,yBAAyB,CAAC;QAC1E,WAAW;QACX,qBAAqB,EAAE,eAAe,EAAE,qBAAqB;QAC7D,iBAAiB,EAAE,eAAe,EAAE,iBAAiB;KACtD,CAAC,CAAA;IACF,MAAM,kBAAkB,GAAG,MAAM,YAAY,CAAC,kBAAkB,CAC9D,MAAM,sBAAsB,CAAC,UAAU,EAAE,CAC1C,CAAA;IACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAA;IACnF,CAAC;IACD,OAAO,sBAAsB,CAAA;AAC/B,CAAC;AAjBD,8DAiBC;AAEM,KAAK,UAAU,qBAAqB,CAAC,EAC1C,YAAY,EACZ,WAAW,EACX,eAAe,EACU;IACzB,MAAM,kBAAkB,GAAG,MAAM,YAAY,CAAC,qBAAqB,CAAC;QAClE,WAAW;QACX,qBAAqB,EAAE,eAAe,EAAE,iBAAiB;QACzD,iBAAiB,EAAE,eAAe,EAAE,aAAa;KAClD,CAAC,CAAA;IACF,MAAM,kBAAkB,GAAG,MAAM,YAAY,CAAC,kBAAkB,CAC9D,MAAM,kBAAkB,CAAC,UAAU,EAAE,CACtC,CAAA;IACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAA;IAC/E,CAAC;IACD,OAAO,kBAAkB,CAAA;AAC3B,CAAC;AAjBD,sDAiBC;AAEM,KAAK,UAAU,6BAA6B,CAAC,EAClD,YAAY,EACZ,WAAW,EACX,eAAe,EACU;IACzB,MAAM,0BAA0B,GAAG,MAAM,YAAY,CAAC,6BAA6B,CAAC;QAClF,WAAW;QACX,qBAAqB,EAAE,eAAe,EAAE,yBAAyB;QACjE,iBAAiB,EAAE,eAAe,EAAE,qBAAqB;KAC1D,CAAC,CAAA;IACF,MAAM,kBAAkB,GAAG,MAAM,YAAY,CAAC,kBAAkB,CAC9D,MAAM,0BAA0B,CAAC,UAAU,EAAE,CAC9C,CAAA;IACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAA;IACvF,CAAC;IACD,OAAO,0BAA0B,CAAA;AACnC,CAAC;AAjBD,sEAiBC;AAEM,KAAK,UAAU,oCAAoC,CAAC,EACzD,YAAY,EACZ,WAAW,EACX,eAAe,EACU;IACzB,MAAM,iCAAiC,GAAG,MAAM,YAAY,CAAC,oCAAoC,CAC/F;QACE,WAAW;QACX,qBAAqB,EAAE,eAAe,EAAE,gCAAgC;QACxE,iBAAiB,EAAE,eAAe,EAAE,4BAA4B;KACjE,CACF,CAAA;IAED,MAAM,kBAAkB,GAAG,MAAM,YAAY,CAAC,kBAAkB,CAC9D,MAAM,iCAAiC,CAAC,UAAU,EAAE,CACrD,CAAA;IACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAA;IAC9F,CAAC;IACD,OAAO,iCAAiC,CAAA;AAC1C,CAAC;AApBD,oFAoBC;AAEM,KAAK,UAAU,mCAAmC,CAAC,EACxD,YAAY,EACZ,WAAW,EACX,eAAe,EACU;IACzB,MAAM,gCAAgC,GAAG,MAAM,YAAY,CAAC,mCAAmC,CAAC;QAC9F,WAAW;QACX,qBAAqB,EAAE,eAAe,EAAE,+BAA+B;QACvE,iBAAiB,EAAE,eAAe,EAAE,2BAA2B;KAChE,CAAC,CAAA;IAEF,MAAM,kBAAkB,GAAG,MAAM,YAAY,CAAC,kBAAkB,CAC9D,MAAM,gCAAgC,CAAC,UAAU,EAAE,CACpD,CAAA;IACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAA;IAC7F,CAAC;IACD,OAAO,gCAAgC,CAAA;AACzC,CAAC;AAlBD,kFAkBC"}
1
+ {"version":3,"file":"safeDeploymentContracts.js","sourceRoot":"","sources":["../../../src/contracts/safeDeploymentContracts.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- /// <reference types="node" />
2
- import { ContractTransactionResponse, Provider, AbstractSigner } from 'ethers';
3
- import { SafeProxyFactoryContractType, SafeVersion, TransactionOptions, TransactionResult } from '@safe-global/safe-core-sdk-types';
4
- import { ContractNetworkConfig, SafeAccountConfig, SafeContractImplementationType, SafeDeploymentConfig } from '../types';
1
+ import { Hash, Hex, Client, WalletClient, FormattedTransactionReceipt } from 'viem';
2
+ import { DeploymentType } from '../types';
3
+ import { SafeProxyFactoryContractType, SafeVersion, TransactionOptions, TransactionResult } from '@safe-global/types-kit';
4
+ import { ContractNetworkConfig, ExternalClient, SafeAccountConfig, SafeContractImplementationType, SafeDeploymentConfig } from '../types';
5
5
  import SafeProvider from '../SafeProvider';
6
6
  export declare const PREDETERMINED_SALT_NONCE = "0xb1073742015cbcf5a3a4d9d1ae33ecf619439710b89475f92e2abd2117e90f90";
7
7
  export interface PredictSafeAddressProps {
@@ -18,9 +18,20 @@ export interface encodeSetupCallDataProps {
18
18
  safeContract: SafeContractImplementationType;
19
19
  customContracts?: ContractNetworkConfig;
20
20
  customSafeVersion?: SafeVersion;
21
+ deploymentType?: DeploymentType;
21
22
  }
22
23
  export declare function encodeCreateProxyWithNonce(safeProxyFactoryContract: SafeProxyFactoryContractType, safeSingletonAddress: string, initializer: string, salt?: string): string;
23
- export declare function encodeSetupCallData({ safeProvider, safeAccountConfig, safeContract, customContracts, customSafeVersion }: encodeSetupCallDataProps): Promise<string>;
24
+ export declare function encodeSetupCallData({ safeProvider, safeAccountConfig, safeContract, customContracts, customSafeVersion, deploymentType }: encodeSetupCallDataProps): Promise<string>;
25
+ /**
26
+ * Retrieves the version of the Safe contract associated with the given Safe address from the blockchain.
27
+ *
28
+ * @param {SafeProvider} safeProvider The provider to use when reading the contract.
29
+ * @param {string} safeAddress The address of the Safe contract for which to retrieve the version.
30
+ *
31
+ * @returns {Promise<SafeVersion>} A promise resolving to the version of the Safe contract.
32
+ * @throws when fetching an address which doesn't have a Safe deployed in it.
33
+ */
34
+ export declare function getSafeContractVersion(safeProvider: SafeProvider, safeAddress: string): Promise<SafeVersion>;
24
35
  /**
25
36
  * Provides a chain-specific default salt nonce for generating unique addresses
26
37
  * for the same Safe configuration across different chains.
@@ -33,23 +44,34 @@ export declare function getPredictedSafeAddressInitCode({ safeProvider, chainId,
33
44
  export declare function predictSafeAddress({ safeProvider, chainId, safeAccountConfig, safeDeploymentConfig, isL1SafeSingleton, customContracts }: PredictSafeAddressProps): Promise<string>;
34
45
  export declare const validateSafeAccountConfig: ({ owners, threshold }: SafeAccountConfig) => void;
35
46
  export declare const validateSafeDeploymentConfig: ({ saltNonce }: SafeDeploymentConfig) => void;
47
+ /**
48
+ * Returns the address of a SafeProxy Address from the transaction receipt.
49
+ *
50
+ * This function looks for a ProxyCreation event in the transaction receipt logs to get address of the deployed SafeProxy.
51
+ *
52
+ * @param {FormattedTransactionReceipt} txReceipt - The transaction receipt containing logs.
53
+ * @param {safeVersion} safeVersion - The Safe Version.
54
+ * @returns {string} - The address of the deployed SafeProxy.
55
+ * @throws {Error} - Throws an error if the SafeProxy was not deployed correctly.
56
+ */
57
+ export declare function getSafeAddressFromDeploymentTx(txReceipt: FormattedTransactionReceipt, safeVersion: SafeVersion): string;
36
58
  /**
37
59
  * Generates a zkSync Era address. zkSync Era uses a distinct address derivation method compared to Ethereum
38
- * see: https://era.zksync.io/docs/reference/architecture/differences-with-ethereum.html#address-derivation
60
+ * see: https://docs.zksync.io/build/developer-reference/ethereum-differences/evm-instructions/#address-derivation
39
61
  *
40
- * @param {string} from - The sender's address.
62
+ * @param {`string`} from - The sender's address.
41
63
  * @param {SafeVersion} safeVersion - The version of the safe.
42
- * @param {Buffer} salt - The salt used for address derivation.
43
- * @param {string} input - Additional input data for the derivation.
64
+ * @param {`0x${string}`} salt - The salt used for address derivation.
65
+ * @param {`0x${string}`} input - Additional input data for the derivation.
44
66
  *
45
67
  * @returns {string} The derived zkSync Era address.
46
68
  */
47
- export declare function zkSyncEraCreate2Address(from: string, safeVersion: SafeVersion, salt: Buffer, input: string): string;
48
- export declare function toTxResult(transactionResponse: ContractTransactionResponse, options?: TransactionOptions): TransactionResult;
49
- export declare function isTypedDataSigner(signer: any): signer is AbstractSigner;
69
+ export declare function zkSyncEraCreate2Address(from: string, safeVersion: SafeVersion, salt: Hex, input: Hex): string;
70
+ export declare function toTxResult(runner: ExternalClient, hash: Hash, options?: TransactionOptions): TransactionResult;
71
+ export declare function isTypedDataSigner(signer: any): signer is Client;
50
72
  /**
51
73
  * Check if the signerOrProvider is compatible with `Signer`
52
74
  * @param signerOrProvider - Signer or provider
53
75
  * @returns true if the parameter is compatible with `Signer`
54
76
  */
55
- export declare function isSignerCompatible(signerOrProvider: AbstractSigner | Provider): boolean;
77
+ export declare function isSignerCompatible(signerOrProvider: Client | WalletClient): boolean;
@@ -3,14 +3,14 @@ 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
- exports.isSignerCompatible = exports.isTypedDataSigner = exports.toTxResult = exports.zkSyncEraCreate2Address = exports.validateSafeDeploymentConfig = exports.validateSafeAccountConfig = exports.predictSafeAddress = exports.getPredictedSafeAddressInitCode = exports.getChainSpecificDefaultSaltNonce = exports.encodeSetupCallData = exports.encodeCreateProxyWithNonce = exports.PREDETERMINED_SALT_NONCE = void 0;
7
- const ethers_1 = require("ethers");
8
- const sha3_1 = require("@noble/hashes/sha3");
6
+ exports.isSignerCompatible = exports.isTypedDataSigner = exports.toTxResult = exports.zkSyncEraCreate2Address = exports.getSafeAddressFromDeploymentTx = exports.validateSafeDeploymentConfig = exports.validateSafeAccountConfig = exports.predictSafeAddress = exports.getPredictedSafeAddressInitCode = exports.getChainSpecificDefaultSaltNonce = exports.getSafeContractVersion = exports.encodeSetupCallData = exports.encodeCreateProxyWithNonce = exports.PREDETERMINED_SALT_NONCE = void 0;
7
+ const viem_1 = require("viem");
8
+ const actions_1 = require("viem/actions");
9
9
  const config_1 = require("../contracts/config");
10
10
  const constants_1 = require("../utils/constants");
11
11
  const memoized_1 = require("../utils/memoized");
12
- const ethereumjs_util_1 = require("ethereumjs-util");
13
12
  const satisfies_1 = __importDefault(require("semver/functions/satisfies"));
13
+ const types_1 = require("../utils/types");
14
14
  const safeDeploymentContracts_1 = require("../contracts/safeDeploymentContracts");
15
15
  // keccak256(toUtf8Bytes('Safe Account Abstraction'))
16
16
  exports.PREDETERMINED_SALT_NONCE = '0xb1073742015cbcf5a3a4d9d1ae33ecf619439710b89475f92e2abd2117e90f90';
@@ -34,35 +34,36 @@ const ZKSYNC_CREATE2_PREFIX = '0x2020dba91b30cc0006188af794c2fb30dd8520db7e2c088
34
34
  function encodeCreateProxyWithNonce(safeProxyFactoryContract, safeSingletonAddress, initializer, salt) {
35
35
  return safeProxyFactoryContract.encode('createProxyWithNonce', [
36
36
  safeSingletonAddress,
37
- initializer,
37
+ (0, types_1.asHex)(initializer),
38
38
  BigInt(salt || exports.PREDETERMINED_SALT_NONCE)
39
39
  ]);
40
40
  }
41
41
  exports.encodeCreateProxyWithNonce = encodeCreateProxyWithNonce;
42
42
  const memoizedGetCompatibilityFallbackHandlerContract = (0, memoized_1.createMemoizedFunction)(safeDeploymentContracts_1.getCompatibilityFallbackHandlerContract);
43
- async function encodeSetupCallData({ safeProvider, safeAccountConfig, safeContract, customContracts, customSafeVersion }) {
43
+ async function encodeSetupCallData({ safeProvider, safeAccountConfig, safeContract, customContracts, customSafeVersion, deploymentType }) {
44
44
  const { owners, threshold, to = constants_1.ZERO_ADDRESS, data = constants_1.EMPTY_DATA, fallbackHandler, paymentToken = constants_1.ZERO_ADDRESS, payment = 0, paymentReceiver = constants_1.ZERO_ADDRESS } = safeAccountConfig;
45
- const safeVersion = customSafeVersion || (await safeContract.getVersion());
45
+ const safeVersion = customSafeVersion || safeContract.safeVersion;
46
46
  if ((0, satisfies_1.default)(safeVersion, '<=1.0.0')) {
47
47
  return safeContract.encode('setup', [
48
48
  owners,
49
49
  threshold,
50
50
  to,
51
- data,
51
+ (0, types_1.asHex)(data),
52
52
  paymentToken,
53
53
  payment,
54
54
  paymentReceiver
55
55
  ]);
56
56
  }
57
57
  let fallbackHandlerAddress = fallbackHandler;
58
- const isValidAddress = fallbackHandlerAddress !== undefined && (0, ethers_1.isAddress)(fallbackHandlerAddress);
58
+ const isValidAddress = fallbackHandlerAddress !== undefined && (0, viem_1.isAddress)(fallbackHandlerAddress);
59
59
  if (!isValidAddress) {
60
60
  const fallbackHandlerContract = await memoizedGetCompatibilityFallbackHandlerContract({
61
61
  safeProvider,
62
62
  safeVersion,
63
- customContracts
63
+ customContracts,
64
+ deploymentType
64
65
  });
65
- fallbackHandlerAddress = await fallbackHandlerContract.getAddress();
66
+ fallbackHandlerAddress = fallbackHandlerContract.getAddress();
66
67
  }
67
68
  return safeContract.encode('setup', [
68
69
  owners,
@@ -76,17 +77,41 @@ async function encodeSetupCallData({ safeProvider, safeAccountConfig, safeContra
76
77
  ]);
77
78
  }
78
79
  exports.encodeSetupCallData = encodeSetupCallData;
79
- const memoizedGetProxyFactoryContract = (0, memoized_1.createMemoizedFunction)(({ safeProvider, safeVersion, customContracts }) => (0, safeDeploymentContracts_1.getProxyFactoryContract)({ safeProvider, safeVersion, customContracts }));
80
- const memoizedGetProxyCreationCode = (0, memoized_1.createMemoizedFunction)(async ({ safeProvider, safeVersion, customContracts, chainId }) => {
80
+ const memoizedGetProxyFactoryContract = (0, memoized_1.createMemoizedFunction)(({ safeProvider, safeVersion, customContracts, deploymentType }) => (0, safeDeploymentContracts_1.getSafeProxyFactoryContract)({ safeProvider, safeVersion, customContracts, deploymentType }));
81
+ const memoizedGetProxyCreationCode = (0, memoized_1.createMemoizedFunction)(async ({ safeProvider, safeVersion, customContracts, chainId, deploymentType }) => {
81
82
  const safeProxyFactoryContract = await memoizedGetProxyFactoryContract({
82
83
  safeProvider,
83
84
  safeVersion,
84
85
  customContracts,
85
- chainId
86
+ chainId,
87
+ deploymentType
86
88
  });
87
89
  return safeProxyFactoryContract.proxyCreationCode();
88
90
  });
89
- const memoizedGetSafeContract = (0, memoized_1.createMemoizedFunction)(({ safeProvider, safeVersion, isL1SafeSingleton, customContracts }) => (0, safeDeploymentContracts_1.getSafeContract)({ safeProvider, safeVersion, isL1SafeSingleton, customContracts }));
91
+ const memoizedGetSafeContract = (0, memoized_1.createMemoizedFunction)(({ safeProvider, safeVersion, isL1SafeSingleton, customContracts, deploymentType }) => (0, safeDeploymentContracts_1.getSafeContract)({
92
+ safeProvider,
93
+ safeVersion,
94
+ isL1SafeSingleton,
95
+ customContracts,
96
+ deploymentType
97
+ }));
98
+ /**
99
+ * Retrieves the version of the Safe contract associated with the given Safe address from the blockchain.
100
+ *
101
+ * @param {SafeProvider} safeProvider The provider to use when reading the contract.
102
+ * @param {string} safeAddress The address of the Safe contract for which to retrieve the version.
103
+ *
104
+ * @returns {Promise<SafeVersion>} A promise resolving to the version of the Safe contract.
105
+ * @throws when fetching an address which doesn't have a Safe deployed in it.
106
+ */
107
+ async function getSafeContractVersion(safeProvider, safeAddress) {
108
+ return (await safeProvider.readContract({
109
+ address: safeAddress,
110
+ abi: (0, viem_1.parseAbi)(['function VERSION() view returns (string)']),
111
+ functionName: 'VERSION'
112
+ }));
113
+ }
114
+ exports.getSafeContractVersion = getSafeContractVersion;
90
115
  /**
91
116
  * Provides a chain-specific default salt nonce for generating unique addresses
92
117
  * for the same Safe configuration across different chains.
@@ -95,37 +120,40 @@ const memoizedGetSafeContract = (0, memoized_1.createMemoizedFunction)(({ safePr
95
120
  * @returns {string} The chain-specific salt nonce in hexadecimal format.
96
121
  */
97
122
  function getChainSpecificDefaultSaltNonce(chainId) {
98
- return `0x${Buffer.from((0, sha3_1.keccak_256)(exports.PREDETERMINED_SALT_NONCE + chainId)).toString('hex')}`;
123
+ return (0, viem_1.keccak256)((0, viem_1.toHex)(exports.PREDETERMINED_SALT_NONCE + chainId));
99
124
  }
100
125
  exports.getChainSpecificDefaultSaltNonce = getChainSpecificDefaultSaltNonce;
101
126
  async function getPredictedSafeAddressInitCode({ safeProvider, chainId, safeAccountConfig, safeDeploymentConfig = {}, isL1SafeSingleton = false, customContracts }) {
102
127
  (0, exports.validateSafeAccountConfig)(safeAccountConfig);
103
128
  (0, exports.validateSafeDeploymentConfig)(safeDeploymentConfig);
104
- const { safeVersion = config_1.DEFAULT_SAFE_VERSION, saltNonce = getChainSpecificDefaultSaltNonce(chainId) } = safeDeploymentConfig;
129
+ const { safeVersion = config_1.DEFAULT_SAFE_VERSION, saltNonce = getChainSpecificDefaultSaltNonce(chainId), deploymentType } = safeDeploymentConfig;
105
130
  const safeProxyFactoryContract = await memoizedGetProxyFactoryContract({
106
131
  safeProvider,
107
132
  safeVersion,
108
133
  customContracts,
109
- chainId: chainId.toString()
134
+ chainId: chainId.toString(),
135
+ deploymentType
110
136
  });
111
137
  const safeContract = await memoizedGetSafeContract({
112
138
  safeProvider,
113
139
  safeVersion,
114
140
  isL1SafeSingleton,
115
141
  customContracts,
116
- chainId: chainId.toString()
142
+ chainId: chainId.toString(),
143
+ deploymentType
117
144
  });
118
145
  const initializer = await encodeSetupCallData({
119
146
  safeProvider,
120
147
  safeAccountConfig,
121
148
  safeContract,
122
149
  customContracts,
123
- customSafeVersion: safeVersion // it is more efficient if we provide the safeVersion manually
150
+ customSafeVersion: safeVersion, // it is more efficient if we provide the safeVersion manually
151
+ deploymentType
124
152
  });
125
- const encodedNonce = (0, ethereumjs_util_1.toBuffer)(safeProvider.encodeParameters(['uint256'], [saltNonce])).toString('hex');
126
- const safeSingletonAddress = await safeContract.getAddress();
127
- const initCodeCallData = encodeCreateProxyWithNonce(safeProxyFactoryContract, safeSingletonAddress, initializer, '0x' + encodedNonce);
128
- const safeProxyFactoryAddress = await safeProxyFactoryContract.getAddress();
153
+ const encodedNonce = safeProvider.encodeParameters('uint256', [saltNonce]);
154
+ const safeSingletonAddress = safeContract.getAddress();
155
+ const initCodeCallData = encodeCreateProxyWithNonce(safeProxyFactoryContract, safeSingletonAddress, initializer, encodedNonce);
156
+ const safeProxyFactoryAddress = safeProxyFactoryContract.getAddress();
129
157
  const initCode = `0x${[safeProxyFactoryAddress, initCodeCallData].reduce((acc, x) => acc + x.replace('0x', ''), '')}`;
130
158
  return initCode;
131
159
  }
@@ -133,46 +161,55 @@ exports.getPredictedSafeAddressInitCode = getPredictedSafeAddressInitCode;
133
161
  async function predictSafeAddress({ safeProvider, chainId, safeAccountConfig, safeDeploymentConfig = {}, isL1SafeSingleton = false, customContracts }) {
134
162
  (0, exports.validateSafeAccountConfig)(safeAccountConfig);
135
163
  (0, exports.validateSafeDeploymentConfig)(safeDeploymentConfig);
136
- const { safeVersion = config_1.DEFAULT_SAFE_VERSION, saltNonce = getChainSpecificDefaultSaltNonce(chainId) } = safeDeploymentConfig;
164
+ const { safeVersion = config_1.DEFAULT_SAFE_VERSION, saltNonce = getChainSpecificDefaultSaltNonce(chainId), deploymentType } = safeDeploymentConfig;
137
165
  const safeProxyFactoryContract = await memoizedGetProxyFactoryContract({
138
166
  safeProvider,
139
167
  safeVersion,
140
168
  customContracts,
141
- chainId: chainId.toString()
169
+ chainId: chainId.toString(),
170
+ deploymentType
142
171
  });
143
- const proxyCreationCode = await memoizedGetProxyCreationCode({
172
+ const [proxyCreationCode] = await memoizedGetProxyCreationCode({
144
173
  safeProvider,
145
174
  safeVersion,
146
175
  customContracts,
147
- chainId: chainId.toString()
176
+ chainId: chainId.toString(),
177
+ deploymentType
148
178
  });
149
179
  const safeContract = await memoizedGetSafeContract({
150
180
  safeProvider,
151
181
  safeVersion,
152
182
  isL1SafeSingleton,
153
183
  customContracts,
154
- chainId: chainId.toString()
184
+ chainId: chainId.toString(),
185
+ deploymentType
155
186
  });
156
187
  const initializer = await encodeSetupCallData({
157
188
  safeProvider,
158
189
  safeAccountConfig,
159
190
  safeContract,
160
191
  customContracts,
161
- customSafeVersion: safeVersion // it is more efficient if we provide the safeVersion manually
192
+ customSafeVersion: safeVersion, // it is more efficient if we provide the safeVersion manuall
193
+ deploymentType
162
194
  });
163
- const encodedNonce = (0, ethereumjs_util_1.toBuffer)(safeProvider.encodeParameters(['uint256'], [saltNonce])).toString('hex');
164
- const salt = (0, ethereumjs_util_1.keccak256)((0, ethereumjs_util_1.toBuffer)('0x' + (0, ethereumjs_util_1.keccak256)((0, ethereumjs_util_1.toBuffer)(initializer)).toString('hex') + encodedNonce));
165
- const input = safeProvider.encodeParameters(['address'], [await safeContract.getAddress()]);
166
- const from = await safeProxyFactoryContract.getAddress();
195
+ const initializerHash = (0, viem_1.keccak256)((0, types_1.asHex)(initializer));
196
+ const encodedNonce = (0, types_1.asHex)(safeProvider.encodeParameters('uint256', [saltNonce]));
197
+ const salt = (0, viem_1.keccak256)((0, viem_1.concat)([initializerHash, encodedNonce]));
198
+ const input = safeProvider.encodeParameters('address', [safeContract.getAddress()]);
199
+ const from = safeProxyFactoryContract.getAddress();
167
200
  // On the zkSync Era chain, the counterfactual deployment address is calculated differently
168
201
  const isZkSyncEraChain = [ZKSYNC_MAINNET, ZKSYNC_TESTNET].includes(chainId);
169
202
  if (isZkSyncEraChain) {
170
- const proxyAddress = zkSyncEraCreate2Address(from, safeVersion, salt, input);
203
+ const proxyAddress = zkSyncEraCreate2Address(from, safeVersion, salt, (0, types_1.asHex)(input));
171
204
  return safeProvider.getChecksummedAddress(proxyAddress);
172
205
  }
173
- const constructorData = (0, ethereumjs_util_1.toBuffer)(input).toString('hex');
174
- const initCode = proxyCreationCode + constructorData;
175
- const proxyAddress = '0x' + (0, ethereumjs_util_1.generateAddress2)((0, ethereumjs_util_1.toBuffer)(from), (0, ethereumjs_util_1.toBuffer)(salt), (0, ethereumjs_util_1.toBuffer)(initCode)).toString('hex');
206
+ const initCode = (0, viem_1.concat)([proxyCreationCode, (0, types_1.asHex)(input)]);
207
+ const proxyAddress = (0, viem_1.getContractAddress)({
208
+ from,
209
+ bytecode: initCode,
210
+ opcode: 'CREATE2',
211
+ salt
212
+ });
176
213
  return safeProvider.getChecksummedAddress(proxyAddress);
177
214
  }
178
215
  exports.predictSafeAddress = predictSafeAddress;
@@ -190,35 +227,79 @@ const validateSafeDeploymentConfig = ({ saltNonce }) => {
190
227
  throw new Error('saltNonce must be greater than or equal to 0');
191
228
  };
192
229
  exports.validateSafeDeploymentConfig = validateSafeDeploymentConfig;
230
+ /**
231
+ * Returns the ProxyCreation Event based on the Safe version
232
+ *
233
+ * based on the Safe Version, we have different proxyCreation events
234
+ *
235
+ * @param {safeVersion} safeVersion - The Safe Version.
236
+ * @returns {string} - The ProxyCreation event.
237
+ */
238
+ function getProxyCreationEvent(safeVersion) {
239
+ // Events inputs here are left unnamed to deal with the decoding as a list: https://github.com/wevm/viem/blob/632d4b9fa074f4da722e26b28607947d2c14ad2d/src/utils/abi/decodeEventLog.ts#L128
240
+ const isLegacyProxyCreationEvent = (0, satisfies_1.default)(safeVersion, '<1.3.0');
241
+ if (isLegacyProxyCreationEvent) {
242
+ return 'event ProxyCreation(address)'; // v1.0.0, 1.1.1 & v1.2.0
243
+ }
244
+ if ((0, satisfies_1.default)(safeVersion, '=1.3.0')) {
245
+ return 'event ProxyCreation(address, address)'; // v1.3.0
246
+ }
247
+ return 'event ProxyCreation(address indexed, address)'; // >= v1.4.1
248
+ }
249
+ /**
250
+ * Returns the address of a SafeProxy Address from the transaction receipt.
251
+ *
252
+ * This function looks for a ProxyCreation event in the transaction receipt logs to get address of the deployed SafeProxy.
253
+ *
254
+ * @param {FormattedTransactionReceipt} txReceipt - The transaction receipt containing logs.
255
+ * @param {safeVersion} safeVersion - The Safe Version.
256
+ * @returns {string} - The address of the deployed SafeProxy.
257
+ * @throws {Error} - Throws an error if the SafeProxy was not deployed correctly.
258
+ */
259
+ function getSafeAddressFromDeploymentTx(txReceipt, safeVersion) {
260
+ const eventHash = (0, viem_1.toEventHash)(getProxyCreationEvent(safeVersion));
261
+ const proxyCreationEvent = txReceipt?.logs.find((event) => event.topics[0] === eventHash);
262
+ if (!proxyCreationEvent) {
263
+ throw new Error('SafeProxy was not deployed correctly');
264
+ }
265
+ const { data, topics } = proxyCreationEvent;
266
+ const { args } = (0, viem_1.decodeEventLog)({
267
+ abi: (0, viem_1.parseAbi)([getProxyCreationEvent(safeVersion)]),
268
+ eventName: 'ProxyCreation',
269
+ data,
270
+ topics
271
+ });
272
+ if (!args || !args.length) {
273
+ throw new Error('SafeProxy was not deployed correctly');
274
+ }
275
+ return args[0];
276
+ }
277
+ exports.getSafeAddressFromDeploymentTx = getSafeAddressFromDeploymentTx;
193
278
  /**
194
279
  * Generates a zkSync Era address. zkSync Era uses a distinct address derivation method compared to Ethereum
195
- * see: https://era.zksync.io/docs/reference/architecture/differences-with-ethereum.html#address-derivation
280
+ * see: https://docs.zksync.io/build/developer-reference/ethereum-differences/evm-instructions/#address-derivation
196
281
  *
197
- * @param {string} from - The sender's address.
282
+ * @param {`string`} from - The sender's address.
198
283
  * @param {SafeVersion} safeVersion - The version of the safe.
199
- * @param {Buffer} salt - The salt used for address derivation.
200
- * @param {string} input - Additional input data for the derivation.
284
+ * @param {`0x${string}`} salt - The salt used for address derivation.
285
+ * @param {`0x${string}`} input - Additional input data for the derivation.
201
286
  *
202
287
  * @returns {string} The derived zkSync Era address.
203
288
  */
204
289
  function zkSyncEraCreate2Address(from, safeVersion, salt, input) {
205
290
  const bytecodeHash = ZKSYNC_SAFE_PROXY_DEPLOYED_BYTECODE[safeVersion].deployedBytecodeHash;
206
- const inputHash = (0, ethereumjs_util_1.keccak256)((0, ethereumjs_util_1.toBuffer)(input));
207
- const addressBytes = (0, ethereumjs_util_1.keccak256)((0, ethereumjs_util_1.toBuffer)(ZKSYNC_CREATE2_PREFIX +
208
- (0, ethers_1.zeroPadValue)(from, 32).slice(2) +
209
- salt.toString('hex') +
210
- bytecodeHash.slice(2) +
211
- inputHash.toString('hex')))
212
- .toString('hex')
213
- .slice(24);
214
- return addressBytes;
291
+ const inputHash = (0, viem_1.keccak256)(input);
292
+ const addressBytes = (0, viem_1.keccak256)((0, viem_1.concat)([ZKSYNC_CREATE2_PREFIX, (0, viem_1.pad)((0, types_1.asHex)(from)), salt, bytecodeHash, inputHash])).slice(26);
293
+ return `0x${addressBytes}`;
215
294
  }
216
295
  exports.zkSyncEraCreate2Address = zkSyncEraCreate2Address;
217
- function toTxResult(transactionResponse, options) {
296
+ function toTxResult(runner, hash, options) {
218
297
  return {
219
- hash: transactionResponse.hash,
298
+ hash,
220
299
  options,
221
- transactionResponse
300
+ transactionResponse: {
301
+ wait: async () => (0, actions_1.waitForTransactionReceipt)(runner, { hash })
302
+ }
222
303
  };
223
304
  }
224
305
  exports.toTxResult = toTxResult;
@@ -236,7 +317,7 @@ function isSignerCompatible(signerOrProvider) {
236
317
  const candidate = signerOrProvider;
237
318
  const isSigntransactionCompatible = typeof candidate.signTransaction === 'function';
238
319
  const isSignMessageCompatible = typeof candidate.signMessage === 'function';
239
- const isGetAddressCompatible = typeof candidate.getAddress === 'function';
320
+ const isGetAddressCompatible = typeof candidate.getAddresses === 'function';
240
321
  return isSigntransactionCompatible && isSignMessageCompatible && isGetAddressCompatible;
241
322
  }
242
323
  exports.isSignerCompatible = isSignerCompatible;