@safe-global/protocol-kit 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (238) hide show
  1. package/LICENSE.md +9 -0
  2. package/README.md +984 -0
  3. package/dist/src/Safe.d.ts +383 -0
  4. package/dist/src/Safe.js +715 -0
  5. package/dist/src/Safe.js.map +1 -0
  6. package/dist/src/adapters/ethers/EthersAdapter.d.ts +53 -0
  7. package/dist/src/adapters/ethers/EthersAdapter.js +189 -0
  8. package/dist/src/adapters/ethers/EthersAdapter.js.map +1 -0
  9. package/dist/src/adapters/ethers/contracts/CompatibilityFallbackHandler/CompatibilityFallbackHandlerEthersContract.d.ts +9 -0
  10. package/dist/src/adapters/ethers/contracts/CompatibilityFallbackHandler/CompatibilityFallbackHandlerEthersContract.js +15 -0
  11. package/dist/src/adapters/ethers/contracts/CompatibilityFallbackHandler/CompatibilityFallbackHandlerEthersContract.js.map +1 -0
  12. package/dist/src/adapters/ethers/contracts/CompatibilityFallbackHandler/v1.3.0/CompatibilityFallbackHandler_V1_3_0_Ethers.d.ts +7 -0
  13. package/dist/src/adapters/ethers/contracts/CompatibilityFallbackHandler/v1.3.0/CompatibilityFallbackHandler_V1_3_0_Ethers.js +14 -0
  14. package/dist/src/adapters/ethers/contracts/CompatibilityFallbackHandler/v1.3.0/CompatibilityFallbackHandler_V1_3_0_Ethers.js.map +1 -0
  15. package/dist/src/adapters/ethers/contracts/CreateCall/CreateCallEthersContract.d.ts +13 -0
  16. package/dist/src/adapters/ethers/contracts/CreateCall/CreateCallEthersContract.js +37 -0
  17. package/dist/src/adapters/ethers/contracts/CreateCall/CreateCallEthersContract.js.map +1 -0
  18. package/dist/src/adapters/ethers/contracts/CreateCall/v1.3.0/CreateCallEthersContract_V1_3_0_Ethers.d.ts +7 -0
  19. package/dist/src/adapters/ethers/contracts/CreateCall/v1.3.0/CreateCallEthersContract_V1_3_0_Ethers.js +14 -0
  20. package/dist/src/adapters/ethers/contracts/CreateCall/v1.3.0/CreateCallEthersContract_V1_3_0_Ethers.js.map +1 -0
  21. package/dist/src/adapters/ethers/contracts/GnosisSafe/GnosisSafeContractEthers.d.ts +28 -0
  22. package/dist/src/adapters/ethers/contracts/GnosisSafe/GnosisSafeContractEthers.js +91 -0
  23. package/dist/src/adapters/ethers/contracts/GnosisSafe/GnosisSafeContractEthers.js.map +1 -0
  24. package/dist/src/adapters/ethers/contracts/GnosisSafe/v1.0.0/GnosisSafeContract_V1_0_0_Ethers.d.ts +12 -0
  25. package/dist/src/adapters/ethers/contracts/GnosisSafe/v1.0.0/GnosisSafeContract_V1_0_0_Ethers.js +34 -0
  26. package/dist/src/adapters/ethers/contracts/GnosisSafe/v1.0.0/GnosisSafeContract_V1_0_0_Ethers.js.map +1 -0
  27. package/dist/src/adapters/ethers/contracts/GnosisSafe/v1.1.1/GnosisSafeContract_V1_1_1_Ethers.d.ts +12 -0
  28. package/dist/src/adapters/ethers/contracts/GnosisSafe/v1.1.1/GnosisSafeContract_V1_1_1_Ethers.js +34 -0
  29. package/dist/src/adapters/ethers/contracts/GnosisSafe/v1.1.1/GnosisSafeContract_V1_1_1_Ethers.js.map +1 -0
  30. package/dist/src/adapters/ethers/contracts/GnosisSafe/v1.2.0/GnosisSafeContract_V1_2_0_Ethers.d.ts +12 -0
  31. package/dist/src/adapters/ethers/contracts/GnosisSafe/v1.2.0/GnosisSafeContract_V1_2_0_Ethers.js +32 -0
  32. package/dist/src/adapters/ethers/contracts/GnosisSafe/v1.2.0/GnosisSafeContract_V1_2_0_Ethers.js.map +1 -0
  33. package/dist/src/adapters/ethers/contracts/GnosisSafe/v1.3.0/GnosisSafeContract_V1_3_0_Ethers.d.ts +12 -0
  34. package/dist/src/adapters/ethers/contracts/GnosisSafe/v1.3.0/GnosisSafeContract_V1_3_0_Ethers.js +33 -0
  35. package/dist/src/adapters/ethers/contracts/GnosisSafe/v1.3.0/GnosisSafeContract_V1_3_0_Ethers.js.map +1 -0
  36. package/dist/src/adapters/ethers/contracts/GnosisSafeProxyFactory/GnosisSafeProxyFactoryEthersContract.d.ts +22 -0
  37. package/dist/src/adapters/ethers/contracts/GnosisSafeProxyFactory/GnosisSafeProxyFactoryEthersContract.js +47 -0
  38. package/dist/src/adapters/ethers/contracts/GnosisSafeProxyFactory/GnosisSafeProxyFactoryEthersContract.js.map +1 -0
  39. package/dist/src/adapters/ethers/contracts/GnosisSafeProxyFactory/v1.0.0/GnosisSafeProxyFactoryContract_V1_0_0_Ethers.d.ts +7 -0
  40. package/dist/src/adapters/ethers/contracts/GnosisSafeProxyFactory/v1.0.0/GnosisSafeProxyFactoryContract_V1_0_0_Ethers.js +14 -0
  41. package/dist/src/adapters/ethers/contracts/GnosisSafeProxyFactory/v1.0.0/GnosisSafeProxyFactoryContract_V1_0_0_Ethers.js.map +1 -0
  42. package/dist/src/adapters/ethers/contracts/GnosisSafeProxyFactory/v1.1.1/GnosisSafeProxyFactoryContract_V1_1_1_Ethers.d.ts +7 -0
  43. package/dist/src/adapters/ethers/contracts/GnosisSafeProxyFactory/v1.1.1/GnosisSafeProxyFactoryContract_V1_1_1_Ethers.js +14 -0
  44. package/dist/src/adapters/ethers/contracts/GnosisSafeProxyFactory/v1.1.1/GnosisSafeProxyFactoryContract_V1_1_1_Ethers.js.map +1 -0
  45. package/dist/src/adapters/ethers/contracts/GnosisSafeProxyFactory/v1.3.0/GnosisSafeProxyFactoryContract_V1_3_0_Ethers.d.ts +7 -0
  46. package/dist/src/adapters/ethers/contracts/GnosisSafeProxyFactory/v1.3.0/GnosisSafeProxyFactoryContract_V1_3_0_Ethers.js +14 -0
  47. package/dist/src/adapters/ethers/contracts/GnosisSafeProxyFactory/v1.3.0/GnosisSafeProxyFactoryContract_V1_3_0_Ethers.js.map +1 -0
  48. package/dist/src/adapters/ethers/contracts/MultiSend/MultiSendEthersContract.d.ts +10 -0
  49. package/dist/src/adapters/ethers/contracts/MultiSend/MultiSendEthersContract.js +15 -0
  50. package/dist/src/adapters/ethers/contracts/MultiSend/MultiSendEthersContract.js.map +1 -0
  51. package/dist/src/adapters/ethers/contracts/MultiSend/v1.1.1/MultiSendContract_V1_1_1_Ethers.d.ts +7 -0
  52. package/dist/src/adapters/ethers/contracts/MultiSend/v1.1.1/MultiSendContract_V1_1_1_Ethers.js +14 -0
  53. package/dist/src/adapters/ethers/contracts/MultiSend/v1.1.1/MultiSendContract_V1_1_1_Ethers.js.map +1 -0
  54. package/dist/src/adapters/ethers/contracts/MultiSend/v1.3.0/MultiSendContract_V1_3_0_Ethers.d.ts +7 -0
  55. package/dist/src/adapters/ethers/contracts/MultiSend/v1.3.0/MultiSendContract_V1_3_0_Ethers.js +14 -0
  56. package/dist/src/adapters/ethers/contracts/MultiSend/v1.3.0/MultiSendContract_V1_3_0_Ethers.js.map +1 -0
  57. package/dist/src/adapters/ethers/contracts/MultiSendCallOnly/MultiSendCallOnlyEthersContract.d.ts +9 -0
  58. package/dist/src/adapters/ethers/contracts/MultiSendCallOnly/MultiSendCallOnlyEthersContract.js +15 -0
  59. package/dist/src/adapters/ethers/contracts/MultiSendCallOnly/MultiSendCallOnlyEthersContract.js.map +1 -0
  60. package/dist/src/adapters/ethers/contracts/MultiSendCallOnly/v1.3.0/MultiSendCallOnlyContract_V1_3_0_Ethers.d.ts +7 -0
  61. package/dist/src/adapters/ethers/contracts/MultiSendCallOnly/v1.3.0/MultiSendCallOnlyContract_V1_3_0_Ethers.js +14 -0
  62. package/dist/src/adapters/ethers/contracts/MultiSendCallOnly/v1.3.0/MultiSendCallOnlyContract_V1_3_0_Ethers.js.map +1 -0
  63. package/dist/src/adapters/ethers/contracts/SignMessageLib/SignMessageLibEthersContract.d.ts +13 -0
  64. package/dist/src/adapters/ethers/contracts/SignMessageLib/SignMessageLibEthersContract.js +29 -0
  65. package/dist/src/adapters/ethers/contracts/SignMessageLib/SignMessageLibEthersContract.js.map +1 -0
  66. package/dist/src/adapters/ethers/contracts/SignMessageLib/v1.3.0/SignMessageLibContract_V1_3_0_Ethers.d.ts +7 -0
  67. package/dist/src/adapters/ethers/contracts/SignMessageLib/v1.3.0/SignMessageLibContract_V1_3_0_Ethers.js +14 -0
  68. package/dist/src/adapters/ethers/contracts/SignMessageLib/v1.3.0/SignMessageLibContract_V1_3_0_Ethers.js.map +1 -0
  69. package/dist/src/adapters/ethers/contracts/contractInstancesEthers.d.ts +23 -0
  70. package/dist/src/adapters/ethers/contracts/contractInstancesEthers.js +139 -0
  71. package/dist/src/adapters/ethers/contracts/contractInstancesEthers.js.map +1 -0
  72. package/dist/src/adapters/ethers/index.d.ts +9 -0
  73. package/dist/src/adapters/ethers/index.js +21 -0
  74. package/dist/src/adapters/ethers/index.js.map +1 -0
  75. package/dist/src/adapters/ethers/types.d.ts +14 -0
  76. package/dist/src/adapters/ethers/types.js +3 -0
  77. package/dist/src/adapters/ethers/types.js.map +1 -0
  78. package/dist/src/adapters/ethers/utils/constants.d.ts +3 -0
  79. package/dist/src/adapters/ethers/utils/constants.js +7 -0
  80. package/dist/src/adapters/ethers/utils/constants.js.map +1 -0
  81. package/dist/src/adapters/ethers/utils/index.d.ts +6 -0
  82. package/dist/src/adapters/ethers/utils/index.js +20 -0
  83. package/dist/src/adapters/ethers/utils/index.js.map +1 -0
  84. package/dist/src/adapters/web3/Web3Adapter.d.ts +51 -0
  85. package/dist/src/adapters/web3/Web3Adapter.js +192 -0
  86. package/dist/src/adapters/web3/Web3Adapter.js.map +1 -0
  87. package/dist/src/adapters/web3/contracts/CompatibilityFallbackHandler/CompatibilityFallbackHandlerWeb3Contract.d.ts +9 -0
  88. package/dist/src/adapters/web3/contracts/CompatibilityFallbackHandler/CompatibilityFallbackHandlerWeb3Contract.js +15 -0
  89. package/dist/src/adapters/web3/contracts/CompatibilityFallbackHandler/CompatibilityFallbackHandlerWeb3Contract.js.map +1 -0
  90. package/dist/src/adapters/web3/contracts/CompatibilityFallbackHandler/v1.3.0/CompatibilityFallbackHandler_V1_3_0_Web3.d.ts +7 -0
  91. package/dist/src/adapters/web3/contracts/CompatibilityFallbackHandler/v1.3.0/CompatibilityFallbackHandler_V1_3_0_Web3.js +14 -0
  92. package/dist/src/adapters/web3/contracts/CompatibilityFallbackHandler/v1.3.0/CompatibilityFallbackHandler_V1_3_0_Web3.js.map +1 -0
  93. package/dist/src/adapters/web3/contracts/CreateCall/CreateCallWeb3Contract.d.ts +13 -0
  94. package/dist/src/adapters/web3/contracts/CreateCall/CreateCallWeb3Contract.js +42 -0
  95. package/dist/src/adapters/web3/contracts/CreateCall/CreateCallWeb3Contract.js.map +1 -0
  96. package/dist/src/adapters/web3/contracts/CreateCall/v1.3.0/CreateCallEthersContract_V1_3_0_Web3.d.ts +7 -0
  97. package/dist/src/adapters/web3/contracts/CreateCall/v1.3.0/CreateCallEthersContract_V1_3_0_Web3.js +14 -0
  98. package/dist/src/adapters/web3/contracts/CreateCall/v1.3.0/CreateCallEthersContract_V1_3_0_Web3.js.map +1 -0
  99. package/dist/src/adapters/web3/contracts/GnosisSafe/GnosisSafeContractWeb3.d.ts +28 -0
  100. package/dist/src/adapters/web3/contracts/GnosisSafe/GnosisSafeContractWeb3.js +103 -0
  101. package/dist/src/adapters/web3/contracts/GnosisSafe/GnosisSafeContractWeb3.js.map +1 -0
  102. package/dist/src/adapters/web3/contracts/GnosisSafe/v1.0.0/GnosisSafeContract_V1_0_0_Web3.d.ts +12 -0
  103. package/dist/src/adapters/web3/contracts/GnosisSafe/v1.0.0/GnosisSafeContract_V1_0_0_Web3.js +36 -0
  104. package/dist/src/adapters/web3/contracts/GnosisSafe/v1.0.0/GnosisSafeContract_V1_0_0_Web3.js.map +1 -0
  105. package/dist/src/adapters/web3/contracts/GnosisSafe/v1.1.1/GnosisSafeContract_V1_1_1_Web3.d.ts +12 -0
  106. package/dist/src/adapters/web3/contracts/GnosisSafe/v1.1.1/GnosisSafeContract_V1_1_1_Web3.js +36 -0
  107. package/dist/src/adapters/web3/contracts/GnosisSafe/v1.1.1/GnosisSafeContract_V1_1_1_Web3.js.map +1 -0
  108. package/dist/src/adapters/web3/contracts/GnosisSafe/v1.2.0/GnosisSafeContract_V1_2_0_Web3.d.ts +12 -0
  109. package/dist/src/adapters/web3/contracts/GnosisSafe/v1.2.0/GnosisSafeContract_V1_2_0_Web3.js +34 -0
  110. package/dist/src/adapters/web3/contracts/GnosisSafe/v1.2.0/GnosisSafeContract_V1_2_0_Web3.js.map +1 -0
  111. package/dist/src/adapters/web3/contracts/GnosisSafe/v1.3.0/GnosisSafeContract_V1_3_0_Web3.d.ts +12 -0
  112. package/dist/src/adapters/web3/contracts/GnosisSafe/v1.3.0/GnosisSafeContract_V1_3_0_Web3.js +35 -0
  113. package/dist/src/adapters/web3/contracts/GnosisSafe/v1.3.0/GnosisSafeContract_V1_3_0_Web3.js.map +1 -0
  114. package/dist/src/adapters/web3/contracts/GnosisSafeProxyFactory/GnosisSafeProxyFactoryWeb3Contract.d.ts +22 -0
  115. package/dist/src/adapters/web3/contracts/GnosisSafeProxyFactory/GnosisSafeProxyFactoryWeb3Contract.js +51 -0
  116. package/dist/src/adapters/web3/contracts/GnosisSafeProxyFactory/GnosisSafeProxyFactoryWeb3Contract.js.map +1 -0
  117. package/dist/src/adapters/web3/contracts/GnosisSafeProxyFactory/v1.0.0/GnosisSafeProxyFactoryContract_V1_0_0_Web3.d.ts +7 -0
  118. package/dist/src/adapters/web3/contracts/GnosisSafeProxyFactory/v1.0.0/GnosisSafeProxyFactoryContract_V1_0_0_Web3.js +14 -0
  119. package/dist/src/adapters/web3/contracts/GnosisSafeProxyFactory/v1.0.0/GnosisSafeProxyFactoryContract_V1_0_0_Web3.js.map +1 -0
  120. package/dist/src/adapters/web3/contracts/GnosisSafeProxyFactory/v1.1.1/GnosisSafeProxyFactoryContract_V1_1_1_Web3.d.ts +7 -0
  121. package/dist/src/adapters/web3/contracts/GnosisSafeProxyFactory/v1.1.1/GnosisSafeProxyFactoryContract_V1_1_1_Web3.js +14 -0
  122. package/dist/src/adapters/web3/contracts/GnosisSafeProxyFactory/v1.1.1/GnosisSafeProxyFactoryContract_V1_1_1_Web3.js.map +1 -0
  123. package/dist/src/adapters/web3/contracts/GnosisSafeProxyFactory/v1.3.0/GnosisSafeProxyFactoryContract_V1_3_0_Web3.d.ts +7 -0
  124. package/dist/src/adapters/web3/contracts/GnosisSafeProxyFactory/v1.3.0/GnosisSafeProxyFactoryContract_V1_3_0_Web3.js +14 -0
  125. package/dist/src/adapters/web3/contracts/GnosisSafeProxyFactory/v1.3.0/GnosisSafeProxyFactoryContract_V1_3_0_Web3.js.map +1 -0
  126. package/dist/src/adapters/web3/contracts/MultiSend/MultiSendWeb3Contract.d.ts +10 -0
  127. package/dist/src/adapters/web3/contracts/MultiSend/MultiSendWeb3Contract.js +15 -0
  128. package/dist/src/adapters/web3/contracts/MultiSend/MultiSendWeb3Contract.js.map +1 -0
  129. package/dist/src/adapters/web3/contracts/MultiSend/v1.1.1/MultiSendContract_V1_1_1_Web3.d.ts +7 -0
  130. package/dist/src/adapters/web3/contracts/MultiSend/v1.1.1/MultiSendContract_V1_1_1_Web3.js +14 -0
  131. package/dist/src/adapters/web3/contracts/MultiSend/v1.1.1/MultiSendContract_V1_1_1_Web3.js.map +1 -0
  132. package/dist/src/adapters/web3/contracts/MultiSend/v1.3.0/MultiSendContract_V1_3_0_Web3.d.ts +7 -0
  133. package/dist/src/adapters/web3/contracts/MultiSend/v1.3.0/MultiSendContract_V1_3_0_Web3.js +14 -0
  134. package/dist/src/adapters/web3/contracts/MultiSend/v1.3.0/MultiSendContract_V1_3_0_Web3.js.map +1 -0
  135. package/dist/src/adapters/web3/contracts/MultiSendCallOnly/MultiSendCallOnlyWeb3Contract.d.ts +9 -0
  136. package/dist/src/adapters/web3/contracts/MultiSendCallOnly/MultiSendCallOnlyWeb3Contract.js +15 -0
  137. package/dist/src/adapters/web3/contracts/MultiSendCallOnly/MultiSendCallOnlyWeb3Contract.js.map +1 -0
  138. package/dist/src/adapters/web3/contracts/MultiSendCallOnly/v1.3.0/MultiSendCallOnlyContract_V1_3_0_Web3.d.ts +7 -0
  139. package/dist/src/adapters/web3/contracts/MultiSendCallOnly/v1.3.0/MultiSendCallOnlyContract_V1_3_0_Web3.js +14 -0
  140. package/dist/src/adapters/web3/contracts/MultiSendCallOnly/v1.3.0/MultiSendCallOnlyContract_V1_3_0_Web3.js.map +1 -0
  141. package/dist/src/adapters/web3/contracts/SignMessageLib/SignMessageLibWeb3Contract.d.ts +13 -0
  142. package/dist/src/adapters/web3/contracts/SignMessageLib/SignMessageLibWeb3Contract.js +34 -0
  143. package/dist/src/adapters/web3/contracts/SignMessageLib/SignMessageLibWeb3Contract.js.map +1 -0
  144. package/dist/src/adapters/web3/contracts/SignMessageLib/v1.3.0/SignMessageLibContract_V1_3_0_Web3.d.ts +7 -0
  145. package/dist/src/adapters/web3/contracts/SignMessageLib/v1.3.0/SignMessageLibContract_V1_3_0_Web3.js +14 -0
  146. package/dist/src/adapters/web3/contracts/SignMessageLib/v1.3.0/SignMessageLibContract_V1_3_0_Web3.js.map +1 -0
  147. package/dist/src/adapters/web3/contracts/contractInstancesWeb3.d.ts +33 -0
  148. package/dist/src/adapters/web3/contracts/contractInstancesWeb3.js +106 -0
  149. package/dist/src/adapters/web3/contracts/contractInstancesWeb3.js.map +1 -0
  150. package/dist/src/adapters/web3/index.d.ts +9 -0
  151. package/dist/src/adapters/web3/index.js +21 -0
  152. package/dist/src/adapters/web3/index.js.map +1 -0
  153. package/dist/src/adapters/web3/types.d.ts +14 -0
  154. package/dist/src/adapters/web3/types.js +3 -0
  155. package/dist/src/adapters/web3/types.js.map +1 -0
  156. package/dist/src/adapters/web3/utils/constants.d.ts +3 -0
  157. package/dist/src/adapters/web3/utils/constants.js +7 -0
  158. package/dist/src/adapters/web3/utils/constants.js.map +1 -0
  159. package/dist/src/adapters/web3/utils/index.d.ts +4 -0
  160. package/dist/src/adapters/web3/utils/index.js +14 -0
  161. package/dist/src/adapters/web3/utils/index.js.map +1 -0
  162. package/dist/src/contracts/config.d.ts +18 -0
  163. package/dist/src/contracts/config.js +51 -0
  164. package/dist/src/contracts/config.js.map +1 -0
  165. package/dist/src/contracts/safeDeploymentContracts.d.ts +28 -0
  166. package/dist/src/contracts/safeDeploymentContracts.js +161 -0
  167. package/dist/src/contracts/safeDeploymentContracts.js.map +1 -0
  168. package/dist/src/index.d.ts +11 -0
  169. package/dist/src/index.js +40 -0
  170. package/dist/src/index.js.map +1 -0
  171. package/dist/src/managers/contractManager.d.ts +14 -0
  172. package/dist/src/managers/contractManager.js +83 -0
  173. package/dist/src/managers/contractManager.js.map +1 -0
  174. package/dist/src/managers/fallbackHandlerManager.d.ts +12 -0
  175. package/dist/src/managers/fallbackHandlerManager.js +65 -0
  176. package/dist/src/managers/fallbackHandlerManager.js.map +1 -0
  177. package/dist/src/managers/guardManager.d.ts +12 -0
  178. package/dist/src/managers/guardManager.js +65 -0
  179. package/dist/src/managers/guardManager.js.map +1 -0
  180. package/dist/src/managers/moduleManager.d.ts +13 -0
  181. package/dist/src/managers/moduleManager.js +67 -0
  182. package/dist/src/managers/moduleManager.js.map +1 -0
  183. package/dist/src/managers/ownerManager.d.ts +17 -0
  184. package/dist/src/managers/ownerManager.js +101 -0
  185. package/dist/src/managers/ownerManager.js.map +1 -0
  186. package/dist/src/safeFactory/index.d.ts +49 -0
  187. package/dist/src/safeFactory/index.js +165 -0
  188. package/dist/src/safeFactory/index.js.map +1 -0
  189. package/dist/src/safeFactory/utils.d.ts +3 -0
  190. package/dist/src/safeFactory/utils.js +19 -0
  191. package/dist/src/safeFactory/utils.js.map +1 -0
  192. package/dist/src/types/index.d.ts +35 -0
  193. package/dist/src/types/index.js +3 -0
  194. package/dist/src/types/index.js.map +1 -0
  195. package/dist/src/utils/address.d.ts +3 -0
  196. package/dist/src/utils/address.js +20 -0
  197. package/dist/src/utils/address.js.map +1 -0
  198. package/dist/src/utils/constants.d.ts +3 -0
  199. package/dist/src/utils/constants.js +7 -0
  200. package/dist/src/utils/constants.js.map +1 -0
  201. package/dist/src/utils/eip-3770/config.d.ts +6 -0
  202. package/dist/src/utils/eip-3770/config.js +116 -0
  203. package/dist/src/utils/eip-3770/config.js.map +1 -0
  204. package/dist/src/utils/eip-3770/index.d.ts +7 -0
  205. package/dist/src/utils/eip-3770/index.js +48 -0
  206. package/dist/src/utils/eip-3770/index.js.map +1 -0
  207. package/dist/src/utils/eip-712/index.d.ts +17 -0
  208. package/dist/src/utils/eip-712/index.js +68 -0
  209. package/dist/src/utils/eip-712/index.js.map +1 -0
  210. package/dist/src/utils/index.d.ts +5 -0
  211. package/dist/src/utils/index.js +22 -0
  212. package/dist/src/utils/index.js.map +1 -0
  213. package/dist/src/utils/safeVersions.d.ts +7 -0
  214. package/dist/src/utils/safeVersions.js +28 -0
  215. package/dist/src/utils/safeVersions.js.map +1 -0
  216. package/dist/src/utils/signatures/SafeSignature.d.ts +26 -0
  217. package/dist/src/utils/signatures/SafeSignature.js +33 -0
  218. package/dist/src/utils/signatures/SafeSignature.js.map +1 -0
  219. package/dist/src/utils/signatures/index.d.ts +12 -0
  220. package/dist/src/utils/signatures/index.js +94 -0
  221. package/dist/src/utils/signatures/index.js.map +1 -0
  222. package/dist/src/utils/transactions/SafeTransaction.d.ts +9 -0
  223. package/dist/src/utils/transactions/SafeTransaction.js +25 -0
  224. package/dist/src/utils/transactions/SafeTransaction.js.map +1 -0
  225. package/dist/src/utils/transactions/gas.d.ts +2 -0
  226. package/dist/src/utils/transactions/gas.js +75 -0
  227. package/dist/src/utils/transactions/gas.js.map +1 -0
  228. package/dist/src/utils/transactions/index.d.ts +4 -0
  229. package/dist/src/utils/transactions/index.js +21 -0
  230. package/dist/src/utils/transactions/index.js.map +1 -0
  231. package/dist/src/utils/transactions/types.d.ts +2 -0
  232. package/dist/src/utils/transactions/types.js +3 -0
  233. package/dist/src/utils/transactions/types.js.map +1 -0
  234. package/dist/src/utils/transactions/utils.d.ts +7 -0
  235. package/dist/src/utils/transactions/utils.js +98 -0
  236. package/dist/src/utils/transactions/utils.js.map +1 -0
  237. package/dist/tsconfig.build.tsbuildinfo +1 -0
  238. package/package.json +90 -0
@@ -0,0 +1,715 @@
1
+ "use strict";
2
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
3
+ if (kind === "m") throw new TypeError("Private method is not writable");
4
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
5
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
6
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
7
+ };
8
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
9
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
10
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
11
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ var _Safe_ethAdapter, _Safe_contractManager, _Safe_ownerManager, _Safe_moduleManager, _Safe_guardManager, _Safe_fallbackHandlerManager;
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const bignumber_1 = require("@ethersproject/bignumber");
19
+ const safe_core_sdk_types_1 = require("@safe-global/safe-core-sdk-types");
20
+ const utils_1 = require("./utils");
21
+ const contractManager_1 = __importDefault(require("./managers/contractManager"));
22
+ const fallbackHandlerManager_1 = __importDefault(require("./managers/fallbackHandlerManager"));
23
+ const guardManager_1 = __importDefault(require("./managers/guardManager"));
24
+ const moduleManager_1 = __importDefault(require("./managers/moduleManager"));
25
+ const ownerManager_1 = __importDefault(require("./managers/ownerManager"));
26
+ const signatures_1 = require("./utils/signatures");
27
+ const SafeSignature_1 = __importDefault(require("./utils/signatures/SafeSignature"));
28
+ const SafeTransaction_1 = __importDefault(require("./utils/transactions/SafeTransaction"));
29
+ const utils_2 = require("./utils/transactions/utils");
30
+ class Safe {
31
+ constructor() {
32
+ _Safe_ethAdapter.set(this, void 0);
33
+ _Safe_contractManager.set(this, void 0);
34
+ _Safe_ownerManager.set(this, void 0);
35
+ _Safe_moduleManager.set(this, void 0);
36
+ _Safe_guardManager.set(this, void 0);
37
+ _Safe_fallbackHandlerManager.set(this, void 0);
38
+ }
39
+ /**
40
+ * Creates an instance of the Safe Core SDK.
41
+ * @param config - Ethers Safe configuration
42
+ * @returns The Safe Core SDK instance
43
+ * @throws "SafeProxy contract is not deployed on the current network"
44
+ * @throws "MultiSend contract is not deployed on the current network"
45
+ * @throws "MultiSendCallOnly contract is not deployed on the current network"
46
+ */
47
+ static async create({ ethAdapter, safeAddress, isL1SafeMasterCopy, contractNetworks }) {
48
+ const safeSdk = new Safe();
49
+ await safeSdk.init({ ethAdapter, safeAddress, isL1SafeMasterCopy, contractNetworks });
50
+ return safeSdk;
51
+ }
52
+ /**
53
+ * Initializes the Safe Core SDK instance.
54
+ * @param config - Safe configuration
55
+ * @throws "Signer must be connected to a provider"
56
+ * @throws "SafeProxy contract is not deployed on the current network"
57
+ * @throws "MultiSend contract is not deployed on the current network"
58
+ * @throws "MultiSendCallOnly contract is not deployed on the current network"
59
+ */
60
+ async init({ ethAdapter, safeAddress, isL1SafeMasterCopy, contractNetworks }) {
61
+ __classPrivateFieldSet(this, _Safe_ethAdapter, ethAdapter, "f");
62
+ __classPrivateFieldSet(this, _Safe_contractManager, await contractManager_1.default.create({
63
+ ethAdapter: __classPrivateFieldGet(this, _Safe_ethAdapter, "f"),
64
+ safeAddress,
65
+ isL1SafeMasterCopy,
66
+ contractNetworks
67
+ }), "f");
68
+ __classPrivateFieldSet(this, _Safe_ownerManager, new ownerManager_1.default(__classPrivateFieldGet(this, _Safe_ethAdapter, "f"), __classPrivateFieldGet(this, _Safe_contractManager, "f").safeContract), "f");
69
+ __classPrivateFieldSet(this, _Safe_moduleManager, new moduleManager_1.default(__classPrivateFieldGet(this, _Safe_ethAdapter, "f"), __classPrivateFieldGet(this, _Safe_contractManager, "f").safeContract), "f");
70
+ __classPrivateFieldSet(this, _Safe_guardManager, new guardManager_1.default(__classPrivateFieldGet(this, _Safe_ethAdapter, "f"), __classPrivateFieldGet(this, _Safe_contractManager, "f").safeContract), "f");
71
+ __classPrivateFieldSet(this, _Safe_fallbackHandlerManager, new fallbackHandlerManager_1.default(__classPrivateFieldGet(this, _Safe_ethAdapter, "f"), __classPrivateFieldGet(this, _Safe_contractManager, "f").safeContract), "f");
72
+ }
73
+ /**
74
+ * Returns a new instance of the Safe Core SDK.
75
+ * @param config - Connect Safe configuration
76
+ * @throws "SafeProxy contract is not deployed on the current network"
77
+ * @throws "MultiSend contract is not deployed on the current network"
78
+ * @throws "MultiSendCallOnly contract is not deployed on the current network"
79
+ */
80
+ async connect({ ethAdapter, safeAddress, isL1SafeMasterCopy, contractNetworks }) {
81
+ return await Safe.create({
82
+ ethAdapter: ethAdapter || __classPrivateFieldGet(this, _Safe_ethAdapter, "f"),
83
+ safeAddress: safeAddress || this.getAddress(),
84
+ isL1SafeMasterCopy: isL1SafeMasterCopy || __classPrivateFieldGet(this, _Safe_contractManager, "f").isL1SafeMasterCopy,
85
+ contractNetworks: contractNetworks || __classPrivateFieldGet(this, _Safe_contractManager, "f").contractNetworks
86
+ });
87
+ }
88
+ /**
89
+ * Returns the address of the current SafeProxy contract.
90
+ *
91
+ * @returns The address of the SafeProxy contract
92
+ */
93
+ getAddress() {
94
+ return __classPrivateFieldGet(this, _Safe_contractManager, "f").safeContract.getAddress();
95
+ }
96
+ /**
97
+ * Returns the ContractManager
98
+ *
99
+ * @returns The current ContractManager
100
+ * */
101
+ getContractManager() {
102
+ return __classPrivateFieldGet(this, _Safe_contractManager, "f");
103
+ }
104
+ /**
105
+ * Returns the current EthAdapter.
106
+ *
107
+ * @returns The current EthAdapter
108
+ */
109
+ getEthAdapter() {
110
+ return __classPrivateFieldGet(this, _Safe_ethAdapter, "f");
111
+ }
112
+ /**
113
+ * Returns the address of the MultiSend contract.
114
+ *
115
+ * @returns The address of the MultiSend contract
116
+ */
117
+ getMultiSendAddress() {
118
+ return __classPrivateFieldGet(this, _Safe_contractManager, "f").multiSendContract.getAddress();
119
+ }
120
+ /**
121
+ * Returns the address of the MultiSendCallOnly contract.
122
+ *
123
+ * @returns The address of the MultiSendCallOnly contract
124
+ */
125
+ getMultiSendCallOnlyAddress() {
126
+ return __classPrivateFieldGet(this, _Safe_contractManager, "f").multiSendCallOnlyContract.getAddress();
127
+ }
128
+ /**
129
+ * Returns the Safe Master Copy contract version.
130
+ *
131
+ * @returns The Safe Master Copy contract version
132
+ */
133
+ async getContractVersion() {
134
+ return __classPrivateFieldGet(this, _Safe_contractManager, "f").safeContract.getVersion();
135
+ }
136
+ /**
137
+ * Returns the list of Safe owner accounts.
138
+ *
139
+ * @returns The list of owners
140
+ */
141
+ async getOwners() {
142
+ return __classPrivateFieldGet(this, _Safe_ownerManager, "f").getOwners();
143
+ }
144
+ /**
145
+ * Returns the Safe nonce.
146
+ *
147
+ * @returns The Safe nonce
148
+ */
149
+ async getNonce() {
150
+ return __classPrivateFieldGet(this, _Safe_contractManager, "f").safeContract.getNonce();
151
+ }
152
+ /**
153
+ * Returns the Safe threshold.
154
+ *
155
+ * @returns The Safe threshold
156
+ */
157
+ async getThreshold() {
158
+ return __classPrivateFieldGet(this, _Safe_ownerManager, "f").getThreshold();
159
+ }
160
+ /**
161
+ * Returns the chainId of the connected network.
162
+ *
163
+ * @returns The chainId of the connected network
164
+ */
165
+ async getChainId() {
166
+ return __classPrivateFieldGet(this, _Safe_ethAdapter, "f").getChainId();
167
+ }
168
+ /**
169
+ * Returns the ETH balance of the Safe.
170
+ *
171
+ * @returns The ETH balance of the Safe
172
+ */
173
+ async getBalance() {
174
+ return __classPrivateFieldGet(this, _Safe_ethAdapter, "f").getBalance(this.getAddress());
175
+ }
176
+ /**
177
+ * Returns the address of the FallbackHandler contract.
178
+ *
179
+ * @returns The address of the FallbackHandler contract
180
+ */
181
+ getFallbackHandler() {
182
+ return __classPrivateFieldGet(this, _Safe_fallbackHandlerManager, "f").getFallbackHandler();
183
+ }
184
+ /**
185
+ * Returns the enabled Safe guard or 0x address if no guards are enabled.
186
+ *
187
+ * @returns The address of the enabled Safe guard
188
+ * @throws "Current version of the Safe does not support Safe transaction guards functionality"
189
+ */
190
+ async getGuard() {
191
+ return __classPrivateFieldGet(this, _Safe_guardManager, "f").getGuard();
192
+ }
193
+ /**
194
+ * Returns the list of addresses of all the enabled Safe modules.
195
+ *
196
+ * @returns The list of addresses of all the enabled Safe modules
197
+ */
198
+ async getModules() {
199
+ return __classPrivateFieldGet(this, _Safe_moduleManager, "f").getModules();
200
+ }
201
+ /**
202
+ * Checks if a specific Safe module is enabled for the current Safe.
203
+ *
204
+ * @param moduleAddress - The desired module address
205
+ * @returns TRUE if the module is enabled
206
+ */
207
+ async isModuleEnabled(moduleAddress) {
208
+ return __classPrivateFieldGet(this, _Safe_moduleManager, "f").isModuleEnabled(moduleAddress);
209
+ }
210
+ /**
211
+ * Checks if a specific address is an owner of the current Safe.
212
+ *
213
+ * @param ownerAddress - The account address
214
+ * @returns TRUE if the account is an owner
215
+ */
216
+ async isOwner(ownerAddress) {
217
+ return __classPrivateFieldGet(this, _Safe_ownerManager, "f").isOwner(ownerAddress);
218
+ }
219
+ /**
220
+ * Returns a Safe transaction ready to be signed by the owners.
221
+ *
222
+ * @param createTransactionProps - The createTransaction props
223
+ * @returns The Safe transaction
224
+ * @throws "Invalid empty array of transactions"
225
+ */
226
+ async createTransaction({ safeTransactionData, onlyCalls = false, options }) {
227
+ if ((0, utils_1.isMetaTransactionArray)(safeTransactionData) && safeTransactionData.length === 0) {
228
+ throw new Error('Invalid empty array of transactions');
229
+ }
230
+ let newTransaction;
231
+ if ((0, utils_1.isMetaTransactionArray)(safeTransactionData) && safeTransactionData.length > 1) {
232
+ const multiSendContract = onlyCalls
233
+ ? __classPrivateFieldGet(this, _Safe_contractManager, "f").multiSendCallOnlyContract
234
+ : __classPrivateFieldGet(this, _Safe_contractManager, "f").multiSendContract;
235
+ const multiSendData = (0, utils_2.encodeMultiSendData)(safeTransactionData.map(utils_2.standardizeMetaTransactionData));
236
+ const multiSendTransaction = {
237
+ ...options,
238
+ to: multiSendContract.getAddress(),
239
+ value: '0',
240
+ data: multiSendContract.encode('multiSend', [multiSendData]),
241
+ operation: safe_core_sdk_types_1.OperationType.DelegateCall
242
+ };
243
+ newTransaction = multiSendTransaction;
244
+ }
245
+ else {
246
+ newTransaction = (0, utils_1.isMetaTransactionArray)(safeTransactionData)
247
+ ? { ...options, ...safeTransactionData[0] }
248
+ : safeTransactionData;
249
+ }
250
+ const standardizedTransaction = await (0, utils_2.standardizeSafeTransactionData)(__classPrivateFieldGet(this, _Safe_contractManager, "f").safeContract, __classPrivateFieldGet(this, _Safe_ethAdapter, "f"), newTransaction);
251
+ return new SafeTransaction_1.default(standardizedTransaction);
252
+ }
253
+ /**
254
+ * Returns a Safe transaction ready to be signed by the owners that invalidates the pending Safe transaction/s with a specific nonce.
255
+ *
256
+ * @param nonce - The nonce of the transaction/s that are going to be rejected
257
+ * @returns The Safe transaction that invalidates the pending Safe transaction/s
258
+ */
259
+ async createRejectionTransaction(nonce) {
260
+ const safeTransactionData = {
261
+ to: this.getAddress(),
262
+ nonce,
263
+ value: '0',
264
+ data: '0x',
265
+ safeTxGas: 0
266
+ };
267
+ return this.createTransaction({ safeTransactionData });
268
+ }
269
+ /**
270
+ * Copies a Safe transaction
271
+ *
272
+ * @param safeTransaction - The Safe transaction
273
+ * @returns The new Safe transaction
274
+ */
275
+ async copyTransaction(safeTransaction) {
276
+ const signedSafeTransaction = await this.createTransaction({
277
+ safeTransactionData: safeTransaction.data
278
+ });
279
+ safeTransaction.signatures.forEach((signature) => {
280
+ signedSafeTransaction.addSignature(signature);
281
+ });
282
+ return signedSafeTransaction;
283
+ }
284
+ /**
285
+ * Returns the transaction hash of a Safe transaction.
286
+ *
287
+ * @param safeTransaction - The Safe transaction
288
+ * @returns The transaction hash of the Safe transaction
289
+ */
290
+ async getTransactionHash(safeTransaction) {
291
+ const safeTransactionData = safeTransaction.data;
292
+ const txHash = await __classPrivateFieldGet(this, _Safe_contractManager, "f").safeContract.getTransactionHash(safeTransactionData);
293
+ return txHash;
294
+ }
295
+ /**
296
+ * Signs a hash using the current signer account.
297
+ *
298
+ * @param hash - The hash to sign
299
+ * @returns The Safe signature
300
+ */
301
+ async signTransactionHash(hash) {
302
+ return (0, signatures_1.generateSignature)(__classPrivateFieldGet(this, _Safe_ethAdapter, "f"), hash);
303
+ }
304
+ /**
305
+ * Signs a transaction according to the EIP-712 using the current signer account.
306
+ *
307
+ * @param safeTransaction - The Safe transaction to be signed
308
+ * @param methodVersion - EIP-712 version. Optional
309
+ * @returns The Safe signature
310
+ */
311
+ async signTypedData(safeTransaction, methodVersion) {
312
+ const safeTransactionEIP712Args = {
313
+ safeAddress: this.getAddress(),
314
+ safeVersion: await this.getContractVersion(),
315
+ chainId: await this.getEthAdapter().getChainId(),
316
+ safeTransactionData: safeTransaction.data
317
+ };
318
+ return (0, signatures_1.generateEIP712Signature)(__classPrivateFieldGet(this, _Safe_ethAdapter, "f"), safeTransactionEIP712Args, methodVersion);
319
+ }
320
+ /**
321
+ * Adds the signature of the current signer to the Safe transaction object.
322
+ *
323
+ * @param safeTransaction - The Safe transaction to be signed
324
+ * @param signingMethod - Method followed to sign a transaction. Optional. Default value is "eth_sign"
325
+ * @returns The signed Safe transaction
326
+ * @throws "Transactions can only be signed by Safe owners"
327
+ */
328
+ async signTransaction(safeTransaction, signingMethod = 'eth_signTypedData_v4') {
329
+ const transaction = (0, utils_1.isSafeMultisigTransactionResponse)(safeTransaction)
330
+ ? await this.toSafeTransactionType(safeTransaction)
331
+ : safeTransaction;
332
+ const owners = await this.getOwners();
333
+ const signerAddress = await __classPrivateFieldGet(this, _Safe_ethAdapter, "f").getSignerAddress();
334
+ if (!signerAddress) {
335
+ throw new Error('EthAdapter must be initialized with a signer to use this method');
336
+ }
337
+ const addressIsOwner = owners.find((owner) => signerAddress && (0, utils_1.sameString)(owner, signerAddress));
338
+ if (!addressIsOwner) {
339
+ throw new Error('Transactions can only be signed by Safe owners');
340
+ }
341
+ let signature;
342
+ if (signingMethod === 'eth_signTypedData_v4') {
343
+ signature = await this.signTypedData(transaction, 'v4');
344
+ }
345
+ else if (signingMethod === 'eth_signTypedData_v3') {
346
+ signature = await this.signTypedData(transaction, 'v3');
347
+ }
348
+ else if (signingMethod === 'eth_signTypedData') {
349
+ signature = await this.signTypedData(transaction);
350
+ }
351
+ else {
352
+ const safeVersion = await this.getContractVersion();
353
+ if (!(0, utils_1.hasSafeFeature)(utils_1.SAFE_FEATURES.ETH_SIGN, safeVersion)) {
354
+ throw new Error('eth_sign is only supported by Safes >= v1.1.0');
355
+ }
356
+ const txHash = await this.getTransactionHash(transaction);
357
+ signature = await this.signTransactionHash(txHash);
358
+ }
359
+ const signedSafeTransaction = await this.createTransaction({
360
+ safeTransactionData: transaction.data
361
+ });
362
+ transaction.signatures.forEach((signature) => {
363
+ signedSafeTransaction.addSignature(signature);
364
+ });
365
+ signedSafeTransaction.addSignature(signature);
366
+ return signedSafeTransaction;
367
+ }
368
+ /**
369
+ * Approves on-chain a hash using the current signer account.
370
+ *
371
+ * @param hash - The hash to approve
372
+ * @param options - The Safe transaction execution options. Optional
373
+ * @returns The Safe transaction response
374
+ * @throws "Transaction hashes can only be approved by Safe owners"
375
+ * @throws "Cannot specify gas and gasLimit together in transaction options"
376
+ */
377
+ async approveTransactionHash(hash, options) {
378
+ const owners = await this.getOwners();
379
+ const signerAddress = await __classPrivateFieldGet(this, _Safe_ethAdapter, "f").getSignerAddress();
380
+ if (!signerAddress) {
381
+ throw new Error('EthAdapter must be initialized with a signer to use this method');
382
+ }
383
+ const addressIsOwner = owners.find((owner) => signerAddress && (0, utils_1.sameString)(owner, signerAddress));
384
+ if (!addressIsOwner) {
385
+ throw new Error('Transaction hashes can only be approved by Safe owners');
386
+ }
387
+ if ((options === null || options === void 0 ? void 0 : options.gas) && (options === null || options === void 0 ? void 0 : options.gasLimit)) {
388
+ throw new Error('Cannot specify gas and gasLimit together in transaction options');
389
+ }
390
+ return __classPrivateFieldGet(this, _Safe_contractManager, "f").safeContract.approveHash(hash, {
391
+ from: signerAddress,
392
+ ...options
393
+ });
394
+ }
395
+ /**
396
+ * Returns a list of owners who have approved a specific Safe transaction.
397
+ *
398
+ * @param txHash - The Safe transaction hash
399
+ * @returns The list of owners
400
+ */
401
+ async getOwnersWhoApprovedTx(txHash) {
402
+ const owners = await this.getOwners();
403
+ const ownersWhoApproved = [];
404
+ for (const owner of owners) {
405
+ const approved = await __classPrivateFieldGet(this, _Safe_contractManager, "f").safeContract.approvedHashes(owner, txHash);
406
+ if (approved.gt(0)) {
407
+ ownersWhoApproved.push(owner);
408
+ }
409
+ }
410
+ return ownersWhoApproved;
411
+ }
412
+ /**
413
+ * Returns the Safe transaction to enable the fallback handler.
414
+ *
415
+ * @param address - The new fallback handler address
416
+ * @param options - The transaction optional properties
417
+ * @returns The Safe transaction ready to be signed
418
+ * @throws "Invalid fallback handler address provided"
419
+ * @throws "Fallback handler provided is already enabled"
420
+ * @throws "Current version of the Safe does not support the fallback handler functionality"
421
+ */
422
+ async createEnableFallbackHandlerTx(fallbackHandlerAddress, options) {
423
+ const safeTransactionData = {
424
+ to: this.getAddress(),
425
+ value: '0',
426
+ data: await __classPrivateFieldGet(this, _Safe_fallbackHandlerManager, "f").encodeEnableFallbackHandlerData(fallbackHandlerAddress),
427
+ ...options
428
+ };
429
+ const safeTransaction = await this.createTransaction({ safeTransactionData });
430
+ return safeTransaction;
431
+ }
432
+ /**
433
+ * Returns the Safe transaction to disable the fallback handler.
434
+ *
435
+ * @param options - The transaction optional properties
436
+ * @returns The Safe transaction ready to be signed
437
+ * @throws "There is no fallback handler enabled yet"
438
+ * @throws "Current version of the Safe does not support the fallback handler functionality"
439
+ */
440
+ async createDisableFallbackHandlerTx(options) {
441
+ const safeTransactionData = {
442
+ to: this.getAddress(),
443
+ value: '0',
444
+ data: await __classPrivateFieldGet(this, _Safe_fallbackHandlerManager, "f").encodeDisableFallbackHandlerData(),
445
+ ...options
446
+ };
447
+ const safeTransaction = await this.createTransaction({ safeTransactionData });
448
+ return safeTransaction;
449
+ }
450
+ /**
451
+ * Returns the Safe transaction to enable a Safe guard.
452
+ *
453
+ * @param guardAddress - The desired guard address
454
+ * @param options - The transaction optional properties
455
+ * @returns The Safe transaction ready to be signed
456
+ * @throws "Invalid guard address provided"
457
+ * @throws "Guard provided is already enabled"
458
+ * @throws "Current version of the Safe does not support Safe transaction guards functionality"
459
+ */
460
+ async createEnableGuardTx(guardAddress, options) {
461
+ const safeTransactionData = {
462
+ to: this.getAddress(),
463
+ value: '0',
464
+ data: await __classPrivateFieldGet(this, _Safe_guardManager, "f").encodeEnableGuardData(guardAddress),
465
+ ...options
466
+ };
467
+ const safeTransaction = await this.createTransaction({ safeTransactionData });
468
+ return safeTransaction;
469
+ }
470
+ /**
471
+ * Returns the Safe transaction to disable a Safe guard.
472
+ *
473
+ * @param options - The transaction optional properties
474
+ * @returns The Safe transaction ready to be signed
475
+ * @throws "There is no guard enabled yet"
476
+ * @throws "Current version of the Safe does not support Safe transaction guards functionality"
477
+ */
478
+ async createDisableGuardTx(options) {
479
+ const safeTransactionData = {
480
+ to: this.getAddress(),
481
+ value: '0',
482
+ data: await __classPrivateFieldGet(this, _Safe_guardManager, "f").encodeDisableGuardData(),
483
+ ...options
484
+ };
485
+ const safeTransaction = await this.createTransaction({ safeTransactionData });
486
+ return safeTransaction;
487
+ }
488
+ /**
489
+ * Returns the Safe transaction to enable a Safe module.
490
+ *
491
+ * @param moduleAddress - The desired module address
492
+ * @param options - The transaction optional properties
493
+ * @returns The Safe transaction ready to be signed
494
+ * @throws "Invalid module address provided"
495
+ * @throws "Module provided is already enabled"
496
+ */
497
+ async createEnableModuleTx(moduleAddress, options) {
498
+ const safeTransactionData = {
499
+ to: this.getAddress(),
500
+ value: '0',
501
+ data: await __classPrivateFieldGet(this, _Safe_moduleManager, "f").encodeEnableModuleData(moduleAddress),
502
+ ...options
503
+ };
504
+ const safeTransaction = await this.createTransaction({ safeTransactionData });
505
+ return safeTransaction;
506
+ }
507
+ /**
508
+ * Returns the Safe transaction to disable a Safe module.
509
+ *
510
+ * @param moduleAddress - The desired module address
511
+ * @param options - The transaction optional properties
512
+ * @returns The Safe transaction ready to be signed
513
+ * @throws "Invalid module address provided"
514
+ * @throws "Module provided is not enabled already"
515
+ */
516
+ async createDisableModuleTx(moduleAddress, options) {
517
+ const safeTransactionData = {
518
+ to: this.getAddress(),
519
+ value: '0',
520
+ data: await __classPrivateFieldGet(this, _Safe_moduleManager, "f").encodeDisableModuleData(moduleAddress),
521
+ ...options
522
+ };
523
+ const safeTransaction = await this.createTransaction({ safeTransactionData });
524
+ return safeTransaction;
525
+ }
526
+ /**
527
+ * Returns the Safe transaction to add an owner and optionally change the threshold.
528
+ *
529
+ * @param params - The transaction params
530
+ * @param options - The transaction optional properties
531
+ * @returns The Safe transaction ready to be signed
532
+ * @throws "Invalid owner address provided"
533
+ * @throws "Address provided is already an owner"
534
+ * @throws "Threshold needs to be greater than 0"
535
+ * @throws "Threshold cannot exceed owner count"
536
+ */
537
+ async createAddOwnerTx({ ownerAddress, threshold }, options) {
538
+ const safeTransactionData = {
539
+ to: this.getAddress(),
540
+ value: '0',
541
+ data: await __classPrivateFieldGet(this, _Safe_ownerManager, "f").encodeAddOwnerWithThresholdData(ownerAddress, threshold),
542
+ ...options
543
+ };
544
+ const safeTransaction = await this.createTransaction({ safeTransactionData });
545
+ return safeTransaction;
546
+ }
547
+ /**
548
+ * Returns the Safe transaction to remove an owner and optionally change the threshold.
549
+ *
550
+ * @param params - The transaction params
551
+ * @param options - The transaction optional properties
552
+ * @returns The Safe transaction ready to be signed
553
+ * @throws "Invalid owner address provided"
554
+ * @throws "Address provided is not an owner"
555
+ * @throws "Threshold needs to be greater than 0"
556
+ * @throws "Threshold cannot exceed owner count"
557
+ */
558
+ async createRemoveOwnerTx({ ownerAddress, threshold }, options) {
559
+ const safeTransactionData = {
560
+ to: this.getAddress(),
561
+ value: '0',
562
+ data: await __classPrivateFieldGet(this, _Safe_ownerManager, "f").encodeRemoveOwnerData(ownerAddress, threshold),
563
+ ...options
564
+ };
565
+ const safeTransaction = await this.createTransaction({ safeTransactionData });
566
+ return safeTransaction;
567
+ }
568
+ /**
569
+ * Returns the Safe transaction to replace an owner of the Safe with a new one.
570
+ *
571
+ * @param params - The transaction params
572
+ * @param options - The transaction optional properties
573
+ * @returns The Safe transaction ready to be signed
574
+ * @throws "Invalid new owner address provided"
575
+ * @throws "Invalid old owner address provided"
576
+ * @throws "New address provided is already an owner"
577
+ * @throws "Old address provided is not an owner"
578
+ */
579
+ async createSwapOwnerTx({ oldOwnerAddress, newOwnerAddress }, options) {
580
+ const safeTransactionData = {
581
+ to: this.getAddress(),
582
+ value: '0',
583
+ data: await __classPrivateFieldGet(this, _Safe_ownerManager, "f").encodeSwapOwnerData(oldOwnerAddress, newOwnerAddress),
584
+ ...options
585
+ };
586
+ const safeTransaction = await this.createTransaction({ safeTransactionData });
587
+ return safeTransaction;
588
+ }
589
+ /**
590
+ * Returns the Safe transaction to change the threshold.
591
+ *
592
+ * @param threshold - The new threshold
593
+ * @param options - The transaction optional properties
594
+ * @returns The Safe transaction ready to be signed
595
+ * @throws "Threshold needs to be greater than 0"
596
+ * @throws "Threshold cannot exceed owner count"
597
+ */
598
+ async createChangeThresholdTx(threshold, options) {
599
+ const safeTransactionData = {
600
+ to: this.getAddress(),
601
+ value: '0',
602
+ data: await __classPrivateFieldGet(this, _Safe_ownerManager, "f").encodeChangeThresholdData(threshold),
603
+ ...options
604
+ };
605
+ const safeTransaction = await this.createTransaction({ safeTransactionData });
606
+ return safeTransaction;
607
+ }
608
+ /**
609
+ * Converts a transaction from type SafeMultisigTransactionResponse to type SafeTransaction
610
+ *
611
+ * @param serviceTransactionResponse - The transaction to convert
612
+ * @returns The converted transaction with type SafeTransaction
613
+ */
614
+ async toSafeTransactionType(serviceTransactionResponse) {
615
+ var _a;
616
+ const safeTransactionData = {
617
+ to: serviceTransactionResponse.to,
618
+ value: serviceTransactionResponse.value,
619
+ data: serviceTransactionResponse.data || '0x',
620
+ operation: serviceTransactionResponse.operation,
621
+ safeTxGas: serviceTransactionResponse.safeTxGas,
622
+ baseGas: serviceTransactionResponse.baseGas,
623
+ gasPrice: Number(serviceTransactionResponse.gasPrice),
624
+ gasToken: serviceTransactionResponse.gasToken,
625
+ refundReceiver: serviceTransactionResponse.refundReceiver,
626
+ nonce: serviceTransactionResponse.nonce
627
+ };
628
+ const safeTransaction = await this.createTransaction({ safeTransactionData });
629
+ (_a = serviceTransactionResponse.confirmations) === null || _a === void 0 ? void 0 : _a.map((confirmation) => {
630
+ const signature = new SafeSignature_1.default(confirmation.owner, confirmation.signature);
631
+ safeTransaction.addSignature(signature);
632
+ });
633
+ return safeTransaction;
634
+ }
635
+ /**
636
+ * Checks if a Safe transaction can be executed successfully with no errors.
637
+ *
638
+ * @param safeTransaction - The Safe transaction to check
639
+ * @param options - The Safe transaction execution options. Optional
640
+ * @returns TRUE if the Safe transaction can be executed successfully with no errors
641
+ */
642
+ async isValidTransaction(safeTransaction, options) {
643
+ const transaction = (0, utils_1.isSafeMultisigTransactionResponse)(safeTransaction)
644
+ ? await this.toSafeTransactionType(safeTransaction)
645
+ : safeTransaction;
646
+ const signedSafeTransaction = await this.copyTransaction(transaction);
647
+ const txHash = await this.getTransactionHash(signedSafeTransaction);
648
+ const ownersWhoApprovedTx = await this.getOwnersWhoApprovedTx(txHash);
649
+ for (const owner of ownersWhoApprovedTx) {
650
+ signedSafeTransaction.addSignature((0, signatures_1.generatePreValidatedSignature)(owner));
651
+ }
652
+ const owners = await this.getOwners();
653
+ const signerAddress = await __classPrivateFieldGet(this, _Safe_ethAdapter, "f").getSignerAddress();
654
+ if (!signerAddress) {
655
+ throw new Error('EthAdapter must be initialized with a signer to use this method');
656
+ }
657
+ if (owners.includes(signerAddress)) {
658
+ signedSafeTransaction.addSignature((0, signatures_1.generatePreValidatedSignature)(signerAddress));
659
+ }
660
+ const isTxValid = await __classPrivateFieldGet(this, _Safe_contractManager, "f").safeContract.isValidTransaction(signedSafeTransaction, {
661
+ from: signerAddress,
662
+ ...options
663
+ });
664
+ return isTxValid;
665
+ }
666
+ /**
667
+ * Executes a Safe transaction.
668
+ *
669
+ * @param safeTransaction - The Safe transaction to execute
670
+ * @param options - The Safe transaction execution options. Optional
671
+ * @returns The Safe transaction response
672
+ * @throws "No signer provided"
673
+ * @throws "There are X signatures missing"
674
+ * @throws "Cannot specify gas and gasLimit together in transaction options"
675
+ */
676
+ async executeTransaction(safeTransaction, options) {
677
+ const transaction = (0, utils_1.isSafeMultisigTransactionResponse)(safeTransaction)
678
+ ? await this.toSafeTransactionType(safeTransaction)
679
+ : safeTransaction;
680
+ const signedSafeTransaction = await this.copyTransaction(transaction);
681
+ const txHash = await this.getTransactionHash(signedSafeTransaction);
682
+ const ownersWhoApprovedTx = await this.getOwnersWhoApprovedTx(txHash);
683
+ for (const owner of ownersWhoApprovedTx) {
684
+ signedSafeTransaction.addSignature((0, signatures_1.generatePreValidatedSignature)(owner));
685
+ }
686
+ const owners = await this.getOwners();
687
+ const signerAddress = await __classPrivateFieldGet(this, _Safe_ethAdapter, "f").getSignerAddress();
688
+ if (signerAddress && owners.includes(signerAddress)) {
689
+ signedSafeTransaction.addSignature((0, signatures_1.generatePreValidatedSignature)(signerAddress));
690
+ }
691
+ const threshold = await this.getThreshold();
692
+ if (threshold > signedSafeTransaction.signatures.size) {
693
+ const signaturesMissing = threshold - signedSafeTransaction.signatures.size;
694
+ throw new Error(`There ${signaturesMissing > 1 ? 'are' : 'is'} ${signaturesMissing} signature${signaturesMissing > 1 ? 's' : ''} missing`);
695
+ }
696
+ const value = bignumber_1.BigNumber.from(signedSafeTransaction.data.value);
697
+ if (!value.isZero()) {
698
+ const balance = await this.getBalance();
699
+ if (value.gt(bignumber_1.BigNumber.from(balance))) {
700
+ throw new Error('Not enough Ether funds');
701
+ }
702
+ }
703
+ if ((options === null || options === void 0 ? void 0 : options.gas) && (options === null || options === void 0 ? void 0 : options.gasLimit)) {
704
+ throw new Error('Cannot specify gas and gasLimit together in transaction options');
705
+ }
706
+ const txResponse = await __classPrivateFieldGet(this, _Safe_contractManager, "f").safeContract.execTransaction(signedSafeTransaction, {
707
+ from: signerAddress,
708
+ ...options
709
+ });
710
+ return txResponse;
711
+ }
712
+ }
713
+ _Safe_ethAdapter = new WeakMap(), _Safe_contractManager = new WeakMap(), _Safe_ownerManager = new WeakMap(), _Safe_moduleManager = new WeakMap(), _Safe_guardManager = new WeakMap(), _Safe_fallbackHandlerManager = new WeakMap();
714
+ exports.default = Safe;
715
+ //# sourceMappingURL=Safe.js.map