@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,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateEip3770Address = exports.validateEthereumAddress = exports.validateEip3770NetworkPrefix = exports.isValidEip3770NetworkPrefix = exports.getEip3770NetworkPrefixFromChainId = exports.parseEip3770Address = void 0;
4
+ const web3_utils_1 = require("web3-utils");
5
+ const config_1 = require("./config");
6
+ function parseEip3770Address(fullAddress) {
7
+ const parts = fullAddress.split(':');
8
+ const address = parts.length > 1 ? parts[1] : parts[0];
9
+ const prefix = parts.length > 1 ? parts[0] : '';
10
+ return { prefix, address };
11
+ }
12
+ exports.parseEip3770Address = parseEip3770Address;
13
+ function getEip3770NetworkPrefixFromChainId(chainId) {
14
+ const network = config_1.networks.find((network) => chainId === network.chainId);
15
+ if (!network) {
16
+ throw new Error('No network prefix supported for the current chainId');
17
+ }
18
+ return network.shortName;
19
+ }
20
+ exports.getEip3770NetworkPrefixFromChainId = getEip3770NetworkPrefixFromChainId;
21
+ function isValidEip3770NetworkPrefix(prefix) {
22
+ return config_1.networks.some(({ shortName }) => shortName === prefix);
23
+ }
24
+ exports.isValidEip3770NetworkPrefix = isValidEip3770NetworkPrefix;
25
+ function validateEip3770NetworkPrefix(prefix, currentChainId) {
26
+ const isCurrentNetworkPrefix = prefix === getEip3770NetworkPrefixFromChainId(currentChainId);
27
+ if (!isValidEip3770NetworkPrefix(prefix) || !isCurrentNetworkPrefix) {
28
+ throw new Error('The network prefix must match the current network');
29
+ }
30
+ }
31
+ exports.validateEip3770NetworkPrefix = validateEip3770NetworkPrefix;
32
+ function validateEthereumAddress(address) {
33
+ const isValidAddress = (0, web3_utils_1.isHexStrict)(address) && (0, web3_utils_1.isAddress)(address);
34
+ if (!isValidAddress) {
35
+ throw new Error(`Invalid Ethereum address ${address}`);
36
+ }
37
+ }
38
+ exports.validateEthereumAddress = validateEthereumAddress;
39
+ function validateEip3770Address(fullAddress, currentChainId) {
40
+ const { address, prefix } = parseEip3770Address(fullAddress);
41
+ validateEthereumAddress(address);
42
+ if (prefix) {
43
+ validateEip3770NetworkPrefix(prefix, currentChainId);
44
+ }
45
+ return { address, prefix };
46
+ }
47
+ exports.validateEip3770Address = validateEip3770Address;
48
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/eip-3770/index.ts"],"names":[],"mappings":";;;AACA,2CAAmD;AACnD,qCAAmC;AAEnC,SAAgB,mBAAmB,CAAC,WAAmB;IACrD,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACpC,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACtD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC/C,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAA;AAC5B,CAAC;AALD,kDAKC;AAED,SAAgB,kCAAkC,CAAC,OAAe;IAChE,MAAM,OAAO,GAAG,iBAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IACvE,IAAI,CAAC,OAAO,EAAE;QACZ,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAA;KACvE;IACD,OAAO,OAAO,CAAC,SAAS,CAAA;AAC1B,CAAC;AAND,gFAMC;AAED,SAAgB,2BAA2B,CAAC,MAAc;IACxD,OAAO,iBAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,SAAS,KAAK,MAAM,CAAC,CAAA;AAC/D,CAAC;AAFD,kEAEC;AAED,SAAgB,4BAA4B,CAAC,MAAc,EAAE,cAAsB;IACjF,MAAM,sBAAsB,GAAG,MAAM,KAAK,kCAAkC,CAAC,cAAc,CAAC,CAAA;IAC5F,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE;QACnE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAA;KACrE;AACH,CAAC;AALD,oEAKC;AAED,SAAgB,uBAAuB,CAAC,OAAe;IACrD,MAAM,cAAc,GAAG,IAAA,wBAAW,EAAC,OAAO,CAAC,IAAI,IAAA,sBAAS,EAAC,OAAO,CAAC,CAAA;IACjE,IAAI,CAAC,cAAc,EAAE;QACnB,MAAM,IAAI,KAAK,CAAC,4BAA4B,OAAO,EAAE,CAAC,CAAA;KACvD;AACH,CAAC;AALD,0DAKC;AAED,SAAgB,sBAAsB,CACpC,WAAmB,EACnB,cAAsB;IAEtB,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAA;IAC5D,uBAAuB,CAAC,OAAO,CAAC,CAAA;IAChC,IAAI,MAAM,EAAE;QACV,4BAA4B,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;KACrD;IACD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAA;AAC5B,CAAC;AAVD,wDAUC"}
@@ -0,0 +1,17 @@
1
+ import { GenerateTypedData, SafeTransactionEIP712Args } from '@safe-global/safe-core-sdk-types';
2
+ export declare const EIP712_DOMAIN_BEFORE_V130: {
3
+ type: string;
4
+ name: string;
5
+ }[];
6
+ export declare const EIP712_DOMAIN: {
7
+ type: string;
8
+ name: string;
9
+ }[];
10
+ export declare function getEip712MessageTypes(safeVersion: string): {
11
+ EIP712Domain: typeof EIP712_DOMAIN | typeof EIP712_DOMAIN_BEFORE_V130;
12
+ SafeTx: Array<{
13
+ type: string;
14
+ name: string;
15
+ }>;
16
+ };
17
+ export declare function generateTypedData({ safeAddress, safeVersion, chainId, safeTransactionData }: SafeTransactionEIP712Args): GenerateTypedData;
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.generateTypedData = exports.getEip712MessageTypes = exports.EIP712_DOMAIN = exports.EIP712_DOMAIN_BEFORE_V130 = void 0;
7
+ const satisfies_1 = __importDefault(require("semver/functions/satisfies"));
8
+ const EQ_OR_GT_1_3_0 = '>=1.3.0';
9
+ exports.EIP712_DOMAIN_BEFORE_V130 = [
10
+ {
11
+ type: 'address',
12
+ name: 'verifyingContract'
13
+ }
14
+ ];
15
+ exports.EIP712_DOMAIN = [
16
+ {
17
+ type: 'uint256',
18
+ name: 'chainId'
19
+ },
20
+ {
21
+ type: 'address',
22
+ name: 'verifyingContract'
23
+ }
24
+ ];
25
+ // This function returns the types structure for signing off-chain messages according to EIP-712
26
+ function getEip712MessageTypes(safeVersion) {
27
+ const eip712WithChainId = (0, satisfies_1.default)(safeVersion, EQ_OR_GT_1_3_0);
28
+ return {
29
+ EIP712Domain: eip712WithChainId ? exports.EIP712_DOMAIN : exports.EIP712_DOMAIN_BEFORE_V130,
30
+ SafeTx: [
31
+ { type: 'address', name: 'to' },
32
+ { type: 'uint256', name: 'value' },
33
+ { type: 'bytes', name: 'data' },
34
+ { type: 'uint8', name: 'operation' },
35
+ { type: 'uint256', name: 'safeTxGas' },
36
+ { type: 'uint256', name: 'baseGas' },
37
+ { type: 'uint256', name: 'gasPrice' },
38
+ { type: 'address', name: 'gasToken' },
39
+ { type: 'address', name: 'refundReceiver' },
40
+ { type: 'uint256', name: 'nonce' }
41
+ ]
42
+ };
43
+ }
44
+ exports.getEip712MessageTypes = getEip712MessageTypes;
45
+ function generateTypedData({ safeAddress, safeVersion, chainId, safeTransactionData }) {
46
+ const eip712WithChainId = (0, satisfies_1.default)(safeVersion, EQ_OR_GT_1_3_0);
47
+ const typedData = {
48
+ types: getEip712MessageTypes(safeVersion),
49
+ domain: {
50
+ verifyingContract: safeAddress
51
+ },
52
+ primaryType: 'SafeTx',
53
+ message: {
54
+ ...safeTransactionData,
55
+ value: safeTransactionData.value,
56
+ safeTxGas: safeTransactionData.safeTxGas,
57
+ baseGas: safeTransactionData.baseGas,
58
+ gasPrice: safeTransactionData.gasPrice,
59
+ nonce: safeTransactionData.nonce
60
+ }
61
+ };
62
+ if (eip712WithChainId) {
63
+ typedData.domain.chainId = chainId;
64
+ }
65
+ return typedData;
66
+ }
67
+ exports.generateTypedData = generateTypedData;
68
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/eip-712/index.ts"],"names":[],"mappings":";;;;;;AACA,2EAAwD;AAExD,MAAM,cAAc,GAAG,SAAS,CAAA;AAEnB,QAAA,yBAAyB,GAAG;IACvC;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,mBAAmB;KAC1B;CACF,CAAA;AAEY,QAAA,aAAa,GAAG;IAC3B;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,SAAS;KAChB;IACD;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,mBAAmB;KAC1B;CACF,CAAA;AAED,gGAAgG;AAChG,SAAgB,qBAAqB,CAAC,WAAmB;IAIvD,MAAM,iBAAiB,GAAG,IAAA,mBAAe,EAAC,WAAW,EAAE,cAAc,CAAC,CAAA;IACtE,OAAO;QACL,YAAY,EAAE,iBAAiB,CAAC,CAAC,CAAC,qBAAa,CAAC,CAAC,CAAC,iCAAyB;QAC3E,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE;YAC/B,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE;YAClC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE;YAC/B,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE;YACpC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE;YACtC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;YACpC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE;YACrC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE;YACrC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,gBAAgB,EAAE;YAC3C,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE;SACnC;KACF,CAAA;AACH,CAAC;AApBD,sDAoBC;AAED,SAAgB,iBAAiB,CAAC,EAChC,WAAW,EACX,WAAW,EACX,OAAO,EACP,mBAAmB,EACO;IAC1B,MAAM,iBAAiB,GAAG,IAAA,mBAAe,EAAC,WAAW,EAAE,cAAc,CAAC,CAAA;IACtE,MAAM,SAAS,GAAsB;QACnC,KAAK,EAAE,qBAAqB,CAAC,WAAW,CAAC;QACzC,MAAM,EAAE;YACN,iBAAiB,EAAE,WAAW;SAC/B;QACD,WAAW,EAAE,QAAQ;QACrB,OAAO,EAAE;YACP,GAAG,mBAAmB;YACtB,KAAK,EAAE,mBAAmB,CAAC,KAAK;YAChC,SAAS,EAAE,mBAAmB,CAAC,SAAS;YACxC,OAAO,EAAE,mBAAmB,CAAC,OAAO;YACpC,QAAQ,EAAE,mBAAmB,CAAC,QAAQ;YACtC,KAAK,EAAE,mBAAmB,CAAC,KAAK;SACjC;KACF,CAAA;IACD,IAAI,iBAAiB,EAAE;QACrB,SAAS,CAAC,MAAM,CAAC,OAAO,GAAG,OAAO,CAAA;KACnC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AA1BD,8CA0BC"}
@@ -0,0 +1,5 @@
1
+ export * from './eip-3770';
2
+ export * from './eip-712';
3
+ export * from './safeVersions';
4
+ export * from './address';
5
+ export * from './transactions';
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./eip-3770"), exports);
18
+ __exportStar(require("./eip-712"), exports);
19
+ __exportStar(require("./safeVersions"), exports);
20
+ __exportStar(require("./address"), exports);
21
+ __exportStar(require("./transactions"), exports);
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA0B;AAC1B,4CAAyB;AACzB,iDAA8B;AAC9B,4CAAyB;AACzB,iDAA8B"}
@@ -0,0 +1,7 @@
1
+ export declare enum SAFE_FEATURES {
2
+ SAFE_TX_GAS_OPTIONAL = "SAFE_TX_GAS_OPTIONAL",
3
+ SAFE_TX_GUARDS = "SAFE_TX_GUARDS",
4
+ SAFE_FALLBACK_HANDLER = "SAFE_FALLBACK_HANDLER",
5
+ ETH_SIGN = "ETH_SIGN"
6
+ }
7
+ export declare const hasSafeFeature: (feature: SAFE_FEATURES, version: string) => boolean;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.hasSafeFeature = exports.SAFE_FEATURES = void 0;
7
+ const satisfies_1 = __importDefault(require("semver/functions/satisfies"));
8
+ var SAFE_FEATURES;
9
+ (function (SAFE_FEATURES) {
10
+ SAFE_FEATURES["SAFE_TX_GAS_OPTIONAL"] = "SAFE_TX_GAS_OPTIONAL";
11
+ SAFE_FEATURES["SAFE_TX_GUARDS"] = "SAFE_TX_GUARDS";
12
+ SAFE_FEATURES["SAFE_FALLBACK_HANDLER"] = "SAFE_FALLBACK_HANDLER";
13
+ SAFE_FEATURES["ETH_SIGN"] = "ETH_SIGN";
14
+ })(SAFE_FEATURES = exports.SAFE_FEATURES || (exports.SAFE_FEATURES = {}));
15
+ const SAFE_FEATURES_BY_VERSION = {
16
+ [SAFE_FEATURES.SAFE_TX_GAS_OPTIONAL]: '>=1.3.0',
17
+ [SAFE_FEATURES.SAFE_TX_GUARDS]: '>=1.3.0',
18
+ [SAFE_FEATURES.SAFE_FALLBACK_HANDLER]: '>=1.1.1',
19
+ [SAFE_FEATURES.ETH_SIGN]: '>=1.1.0'
20
+ };
21
+ const hasSafeFeature = (feature, version) => {
22
+ if (!(feature in SAFE_FEATURES_BY_VERSION)) {
23
+ return false;
24
+ }
25
+ return (0, satisfies_1.default)(version, SAFE_FEATURES_BY_VERSION[feature]);
26
+ };
27
+ exports.hasSafeFeature = hasSafeFeature;
28
+ //# sourceMappingURL=safeVersions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safeVersions.js","sourceRoot":"","sources":["../../../src/utils/safeVersions.ts"],"names":[],"mappings":";;;;;;AAAA,2EAAwD;AAExD,IAAY,aAKX;AALD,WAAY,aAAa;IACvB,8DAA6C,CAAA;IAC7C,kDAAiC,CAAA;IACjC,gEAA+C,CAAA;IAC/C,sCAAqB,CAAA;AACvB,CAAC,EALW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAKxB;AAED,MAAM,wBAAwB,GAAkC;IAC9D,CAAC,aAAa,CAAC,oBAAoB,CAAC,EAAE,SAAS;IAC/C,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,SAAS;IACzC,CAAC,aAAa,CAAC,qBAAqB,CAAC,EAAE,SAAS;IAChD,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,SAAS;CACpC,CAAA;AAEM,MAAM,cAAc,GAAG,CAAC,OAAsB,EAAE,OAAe,EAAW,EAAE;IACjF,IAAI,CAAC,CAAC,OAAO,IAAI,wBAAwB,CAAC,EAAE;QAC1C,OAAO,KAAK,CAAA;KACb;IAED,OAAO,IAAA,mBAAe,EAAC,OAAO,EAAE,wBAAwB,CAAC,OAAO,CAAC,CAAC,CAAA;AACpE,CAAC,CAAA;AANY,QAAA,cAAc,kBAM1B"}
@@ -0,0 +1,26 @@
1
+ import { SafeSignature } from '@safe-global/safe-core-sdk-types';
2
+ declare class EthSignSignature implements SafeSignature {
3
+ signer: string;
4
+ data: string;
5
+ /**
6
+ * Creates an instance of a Safe signature.
7
+ *
8
+ * @param signer - Ethers signer
9
+ * @param signature - The Safe signature
10
+ * @returns The Safe signature instance
11
+ */
12
+ constructor(signer: string, signature: string);
13
+ /**
14
+ * Returns the static part of the Safe signature.
15
+ *
16
+ * @returns The static part of the Safe signature
17
+ */
18
+ staticPart(): string;
19
+ /**
20
+ * Returns the dynamic part of the Safe signature.
21
+ *
22
+ * @returns The dynamic part of the Safe signature
23
+ */
24
+ dynamicPart(): string;
25
+ }
26
+ export default EthSignSignature;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class EthSignSignature {
4
+ /**
5
+ * Creates an instance of a Safe signature.
6
+ *
7
+ * @param signer - Ethers signer
8
+ * @param signature - The Safe signature
9
+ * @returns The Safe signature instance
10
+ */
11
+ constructor(signer, signature) {
12
+ this.signer = signer;
13
+ this.data = signature;
14
+ }
15
+ /**
16
+ * Returns the static part of the Safe signature.
17
+ *
18
+ * @returns The static part of the Safe signature
19
+ */
20
+ staticPart( /* dynamicOffset: number */) {
21
+ return this.data;
22
+ }
23
+ /**
24
+ * Returns the dynamic part of the Safe signature.
25
+ *
26
+ * @returns The dynamic part of the Safe signature
27
+ */
28
+ dynamicPart() {
29
+ return '';
30
+ }
31
+ }
32
+ exports.default = EthSignSignature;
33
+ //# sourceMappingURL=SafeSignature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SafeSignature.js","sourceRoot":"","sources":["../../../../src/utils/signatures/SafeSignature.ts"],"names":[],"mappings":";;AAEA,MAAM,gBAAgB;IAIpB;;;;;;OAMG;IACH,YAAY,MAAc,EAAE,SAAiB;QAC3C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,IAAI,GAAG,SAAS,CAAA;IACvB,CAAC;IAED;;;;OAIG;IACH,UAAU,EAAC,2BAA2B;QACpC,OAAO,IAAI,CAAC,IAAI,CAAA;IAClB,CAAC;IAED;;;;OAIG;IACH,WAAW;QACT,OAAO,EAAE,CAAA;IACX,CAAC;CACF;AAED,kBAAe,gBAAgB,CAAA"}
@@ -0,0 +1,12 @@
1
+ import { EthAdapter, SafeSignature, SafeTransactionEIP712Args } from '@safe-global/safe-core-sdk-types';
2
+ import EthSignSignature from './SafeSignature';
3
+ export declare function generatePreValidatedSignature(ownerAddress: string): SafeSignature;
4
+ export declare function isTxHashSignedWithPrefix(txHash: string, signature: string, ownerAddress: string): boolean;
5
+ type AdjustVOverload = {
6
+ (signingMethod: 'eth_signTypedData', signature: string): string;
7
+ (signingMethod: 'eth_sign', signature: string, safeTxHash: string, sender: string): string;
8
+ };
9
+ export declare const adjustVInSignature: AdjustVOverload;
10
+ export declare function generateSignature(ethAdapter: EthAdapter, hash: string): Promise<EthSignSignature>;
11
+ export declare function generateEIP712Signature(ethAdapter: EthAdapter, safeTransactionEIP712Args: SafeTransactionEIP712Args, methodVersion?: 'v3' | 'v4'): Promise<EthSignSignature>;
12
+ export {};
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.generateEIP712Signature = exports.generateSignature = exports.adjustVInSignature = exports.isTxHashSignedWithPrefix = exports.generatePreValidatedSignature = void 0;
7
+ const ethereumjs_util_1 = require("ethereumjs-util");
8
+ const address_1 = require("../address");
9
+ const SafeSignature_1 = __importDefault(require("./SafeSignature"));
10
+ function generatePreValidatedSignature(ownerAddress) {
11
+ const signature = '0x000000000000000000000000' +
12
+ ownerAddress.slice(2) +
13
+ '0000000000000000000000000000000000000000000000000000000000000000' +
14
+ '01';
15
+ return new SafeSignature_1.default(ownerAddress, signature);
16
+ }
17
+ exports.generatePreValidatedSignature = generatePreValidatedSignature;
18
+ function isTxHashSignedWithPrefix(txHash, signature, ownerAddress) {
19
+ let hasPrefix;
20
+ try {
21
+ const rsvSig = {
22
+ r: Buffer.from(signature.slice(2, 66), 'hex'),
23
+ s: Buffer.from(signature.slice(66, 130), 'hex'),
24
+ v: parseInt(signature.slice(130, 132), 16)
25
+ };
26
+ const recoveredData = (0, ethereumjs_util_1.ecrecover)(Buffer.from(txHash.slice(2), 'hex'), rsvSig.v, rsvSig.r, rsvSig.s);
27
+ const recoveredAddress = (0, ethereumjs_util_1.bufferToHex)((0, ethereumjs_util_1.pubToAddress)(recoveredData));
28
+ hasPrefix = !(0, address_1.sameString)(recoveredAddress, ownerAddress);
29
+ }
30
+ catch (e) {
31
+ hasPrefix = true;
32
+ }
33
+ return hasPrefix;
34
+ }
35
+ exports.isTxHashSignedWithPrefix = isTxHashSignedWithPrefix;
36
+ const adjustVInSignature = (signingMethod, signature, safeTxHash, signerAddress) => {
37
+ const ETHEREUM_V_VALUES = [0, 1, 27, 28];
38
+ const MIN_VALID_V_VALUE_FOR_SAFE_ECDSA = 27;
39
+ let signatureV = parseInt(signature.slice(-2), 16);
40
+ if (!ETHEREUM_V_VALUES.includes(signatureV)) {
41
+ throw new Error('Invalid signature');
42
+ }
43
+ if (signingMethod === 'eth_sign') {
44
+ /*
45
+ The Safe's expected V value for ECDSA signature is:
46
+ - 27 or 28
47
+ - 31 or 32 if the message was signed with a EIP-191 prefix. Should be calculated as ECDSA V value + 4
48
+ Some wallets do that, some wallets don't, V > 30 is used by contracts to differentiate between
49
+ prefixed and non-prefixed messages. The only way to know if the message was signed with a
50
+ prefix is to check if the signer address is the same as the recovered address.
51
+
52
+ More info:
53
+ https://docs.safe.global/learn/signatures
54
+ */
55
+ if (signatureV < MIN_VALID_V_VALUE_FOR_SAFE_ECDSA) {
56
+ signatureV += MIN_VALID_V_VALUE_FOR_SAFE_ECDSA;
57
+ }
58
+ const adjustedSignature = signature.slice(0, -2) + signatureV.toString(16);
59
+ const signatureHasPrefix = isTxHashSignedWithPrefix(safeTxHash, adjustedSignature, signerAddress);
60
+ if (signatureHasPrefix) {
61
+ signatureV += 4;
62
+ }
63
+ }
64
+ if (signingMethod === 'eth_signTypedData') {
65
+ // Metamask with ledger returns V=0/1 here too, we need to adjust it to be ethereum's valid value (27 or 28)
66
+ if (signatureV < MIN_VALID_V_VALUE_FOR_SAFE_ECDSA) {
67
+ signatureV += MIN_VALID_V_VALUE_FOR_SAFE_ECDSA;
68
+ }
69
+ }
70
+ signature = signature.slice(0, -2) + signatureV.toString(16);
71
+ return signature;
72
+ };
73
+ exports.adjustVInSignature = adjustVInSignature;
74
+ async function generateSignature(ethAdapter, hash) {
75
+ const signerAddress = await ethAdapter.getSignerAddress();
76
+ if (!signerAddress) {
77
+ throw new Error('EthAdapter must be initialized with a signer to use this method');
78
+ }
79
+ let signature = await ethAdapter.signMessage(hash);
80
+ signature = (0, exports.adjustVInSignature)('eth_sign', signature, hash, signerAddress);
81
+ return new SafeSignature_1.default(signerAddress, signature);
82
+ }
83
+ exports.generateSignature = generateSignature;
84
+ async function generateEIP712Signature(ethAdapter, safeTransactionEIP712Args, methodVersion) {
85
+ const signerAddress = await ethAdapter.getSignerAddress();
86
+ if (!signerAddress) {
87
+ throw new Error('EthAdapter must be initialized with a signer to use this method');
88
+ }
89
+ let signature = await ethAdapter.signTypedData(safeTransactionEIP712Args, methodVersion);
90
+ signature = (0, exports.adjustVInSignature)('eth_signTypedData', signature);
91
+ return new SafeSignature_1.default(signerAddress, signature);
92
+ }
93
+ exports.generateEIP712Signature = generateEIP712Signature;
94
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/signatures/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { SafeSignature, SafeTransaction, SafeTransactionData } from '@safe-global/safe-core-sdk-types';
2
+ declare class EthSafeTransaction implements SafeTransaction {
3
+ data: SafeTransactionData;
4
+ signatures: Map<string, SafeSignature>;
5
+ constructor(data: SafeTransactionData);
6
+ addSignature(signature: SafeSignature): void;
7
+ encodedSignatures(): string;
8
+ }
9
+ export default EthSafeTransaction;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class EthSafeTransaction {
4
+ constructor(data) {
5
+ this.signatures = new Map();
6
+ this.data = data;
7
+ }
8
+ addSignature(signature) {
9
+ this.signatures.set(signature.signer.toLowerCase(), signature);
10
+ }
11
+ encodedSignatures() {
12
+ const signers = Array.from(this.signatures.keys()).sort();
13
+ const baseOffset = signers.length * 65;
14
+ let staticParts = '';
15
+ let dynamicParts = '';
16
+ signers.forEach((signerAddress) => {
17
+ const signature = this.signatures.get(signerAddress);
18
+ staticParts += signature === null || signature === void 0 ? void 0 : signature.staticPart( /*baseOffset + dynamicParts.length / 2*/).slice(2);
19
+ dynamicParts += signature === null || signature === void 0 ? void 0 : signature.dynamicPart();
20
+ });
21
+ return '0x' + staticParts + dynamicParts;
22
+ }
23
+ }
24
+ exports.default = EthSafeTransaction;
25
+ //# sourceMappingURL=SafeTransaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SafeTransaction.js","sourceRoot":"","sources":["../../../../src/utils/transactions/SafeTransaction.ts"],"names":[],"mappings":";;AAMA,MAAM,kBAAkB;IAItB,YAAY,IAAyB;QAFrC,eAAU,GAA+B,IAAI,GAAG,EAAE,CAAA;QAGhD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;IAED,YAAY,CAAC,SAAwB;QACnC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,SAAS,CAAC,CAAA;IAChE,CAAC;IAED,iBAAiB;QACf,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;QACzD,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,GAAG,EAAE,CAAA;QACtC,IAAI,WAAW,GAAG,EAAE,CAAA;QACpB,IAAI,YAAY,GAAG,EAAE,CAAA;QACrB,OAAO,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,EAAE;YAChC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;YACpD,WAAW,IAAI,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,UAAU,EAAC,wCAAwC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAA;YACvF,YAAY,IAAI,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,WAAW,EAAE,CAAA;QAC1C,CAAC,CAAC,CAAA;QACF,OAAO,IAAI,GAAG,WAAW,GAAG,YAAY,CAAA;IAC1C,CAAC;CACF;AAED,kBAAe,kBAAkB,CAAA"}
@@ -0,0 +1,2 @@
1
+ import { EthAdapter, GnosisSafeContract, OperationType } from '@safe-global/safe-core-sdk-types';
2
+ export declare function estimateTxGas(safeContract: GnosisSafeContract, ethAdapter: EthAdapter, to: string, valueInWei: string, data: string, operation: OperationType): Promise<number>;
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.estimateTxGas = void 0;
4
+ const bignumber_1 = require("@ethersproject/bignumber");
5
+ const safe_core_sdk_types_1 = require("@safe-global/safe-core-sdk-types");
6
+ function estimateDataGasCosts(data) {
7
+ const reducer = (accumulator, currentValue) => {
8
+ if (currentValue === '0x') {
9
+ return accumulator + 0;
10
+ }
11
+ if (currentValue === '00') {
12
+ return accumulator + 4;
13
+ }
14
+ return accumulator + 16;
15
+ };
16
+ return data.match(/.{2}/g).reduce(reducer, 0);
17
+ }
18
+ async function estimateTxGas(safeContract, ethAdapter, to, valueInWei, data, operation) {
19
+ let txGasEstimation = 0;
20
+ const safeAddress = safeContract.getAddress();
21
+ const estimateData = safeContract.encode('requiredTxGas', [
22
+ to,
23
+ valueInWei,
24
+ data,
25
+ operation
26
+ ]);
27
+ try {
28
+ const estimateResponse = (await ethAdapter.estimateGas({
29
+ to: safeAddress,
30
+ from: safeAddress,
31
+ data: estimateData
32
+ })).toString();
33
+ txGasEstimation = bignumber_1.BigNumber.from('0x' + estimateResponse.substring(138)).toNumber() + 10000;
34
+ }
35
+ catch (error) { }
36
+ if (txGasEstimation > 0) {
37
+ const dataGasEstimation = estimateDataGasCosts(estimateData);
38
+ let additionalGas = 10000;
39
+ for (let i = 0; i < 10; i++) {
40
+ try {
41
+ const estimateResponse = await ethAdapter.call({
42
+ to: safeAddress,
43
+ from: safeAddress,
44
+ data: estimateData,
45
+ gasPrice: 0,
46
+ gasLimit: txGasEstimation + dataGasEstimation + additionalGas
47
+ });
48
+ if (estimateResponse !== '0x') {
49
+ break;
50
+ }
51
+ }
52
+ catch (error) { }
53
+ txGasEstimation += additionalGas;
54
+ additionalGas *= 2;
55
+ }
56
+ return txGasEstimation + additionalGas;
57
+ }
58
+ try {
59
+ const estimateGas = await ethAdapter.estimateGas({
60
+ to,
61
+ from: safeAddress,
62
+ value: valueInWei,
63
+ data
64
+ });
65
+ return estimateGas;
66
+ }
67
+ catch (error) {
68
+ if (operation === safe_core_sdk_types_1.OperationType.DelegateCall) {
69
+ return 0;
70
+ }
71
+ return Promise.reject(error);
72
+ }
73
+ }
74
+ exports.estimateTxGas = estimateTxGas;
75
+ //# sourceMappingURL=gas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gas.js","sourceRoot":"","sources":["../../../../src/utils/transactions/gas.ts"],"names":[],"mappings":";;;AAAA,wDAAoD;AACpD,0EAAgG;AAEhG,SAAS,oBAAoB,CAAC,IAAY;IACxC,MAAM,OAAO,GAAG,CAAC,WAAmB,EAAE,YAAoB,EAAE,EAAE;QAC5D,IAAI,YAAY,KAAK,IAAI,EAAE;YACzB,OAAO,WAAW,GAAG,CAAC,CAAA;SACvB;QACD,IAAI,YAAY,KAAK,IAAI,EAAE;YACzB,OAAO,WAAW,GAAG,CAAC,CAAA;SACvB;QACD,OAAO,WAAW,GAAG,EAAE,CAAA;IACzB,CAAC,CAAA;IACD,OAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAc,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;AAC7D,CAAC;AAEM,KAAK,UAAU,aAAa,CACjC,YAAgC,EAChC,UAAsB,EACtB,EAAU,EACV,UAAkB,EAClB,IAAY,EACZ,SAAwB;IAExB,IAAI,eAAe,GAAG,CAAC,CAAA;IACvB,MAAM,WAAW,GAAG,YAAY,CAAC,UAAU,EAAE,CAAA;IAE7C,MAAM,YAAY,GAAW,YAAY,CAAC,MAAM,CAAC,eAAe,EAAE;QAChE,EAAE;QACF,UAAU;QACV,IAAI;QACJ,SAAS;KACV,CAAC,CAAA;IACF,IAAI;QACF,MAAM,gBAAgB,GAAG,CACvB,MAAM,UAAU,CAAC,WAAW,CAAC;YAC3B,EAAE,EAAE,WAAW;YACf,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,YAAY;SACnB,CAAC,CACH,CAAC,QAAQ,EAAE,CAAA;QACZ,eAAe,GAAG,qBAAS,CAAC,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,KAAK,CAAA;KAC5F;IAAC,OAAO,KAAK,EAAE,GAAE;IAElB,IAAI,eAAe,GAAG,CAAC,EAAE;QACvB,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,YAAY,CAAC,CAAA;QAC5D,IAAI,aAAa,GAAG,KAAK,CAAA;QACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;YAC3B,IAAI;gBACF,MAAM,gBAAgB,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC;oBAC7C,EAAE,EAAE,WAAW;oBACf,IAAI,EAAE,WAAW;oBACjB,IAAI,EAAE,YAAY;oBAClB,QAAQ,EAAE,CAAC;oBACX,QAAQ,EAAE,eAAe,GAAG,iBAAiB,GAAG,aAAa;iBAC9D,CAAC,CAAA;gBACF,IAAI,gBAAgB,KAAK,IAAI,EAAE;oBAC7B,MAAK;iBACN;aACF;YAAC,OAAO,KAAK,EAAE,GAAE;YAClB,eAAe,IAAI,aAAa,CAAA;YAChC,aAAa,IAAI,CAAC,CAAA;SACnB;QACD,OAAO,eAAe,GAAG,aAAa,CAAA;KACvC;IAED,IAAI;QACF,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC;YAC/C,EAAE;YACF,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,UAAU;YACjB,IAAI;SACL,CAAC,CAAA;QACF,OAAO,WAAW,CAAA;KACnB;IAAC,OAAO,KAAK,EAAE;QACd,IAAI,SAAS,KAAK,mCAAa,CAAC,YAAY,EAAE;YAC5C,OAAO,CAAC,CAAA;SACT;QACD,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;KAC7B;AACH,CAAC;AAhED,sCAgEC"}
@@ -0,0 +1,4 @@
1
+ export * from './gas';
2
+ export * from './SafeTransaction';
3
+ export * from './types';
4
+ export * from './utils';
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./gas"), exports);
18
+ __exportStar(require("./SafeTransaction"), exports);
19
+ __exportStar(require("./types"), exports);
20
+ __exportStar(require("./utils"), exports);
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/transactions/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wCAAqB;AACrB,oDAAiC;AACjC,0CAAuB;AACvB,0CAAuB"}
@@ -0,0 +1,2 @@
1
+ import { SafeTransactionDataPartial } from '@safe-global/safe-core-sdk-types';
2
+ export type SafeTransactionOptionalProps = Pick<SafeTransactionDataPartial, 'safeTxGas' | 'baseGas' | 'gasPrice' | 'gasToken' | 'refundReceiver' | 'nonce'>;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/utils/transactions/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import { EthAdapter, GnosisSafeContract, MetaTransactionData, SafeMultisigTransactionResponse, SafeTransaction, SafeTransactionData, SafeTransactionDataPartial } from '@safe-global/safe-core-sdk-types';
2
+ export declare function standardizeMetaTransactionData(tx: SafeTransactionDataPartial): MetaTransactionData;
3
+ export declare function standardizeSafeTransactionData(safeContract: GnosisSafeContract, ethAdapter: EthAdapter, tx: SafeTransactionDataPartial): Promise<SafeTransactionData>;
4
+ export declare function encodeMultiSendData(txs: MetaTransactionData[]): string;
5
+ export declare function decodeMultiSendData(encodedData: string): MetaTransactionData[];
6
+ export declare function isMetaTransactionArray(safeTransactions: SafeTransactionDataPartial | MetaTransactionData[]): safeTransactions is MetaTransactionData[];
7
+ export declare function isSafeMultisigTransactionResponse(safeTransaction: SafeTransaction | SafeMultisigTransactionResponse): safeTransaction is SafeMultisigTransactionResponse;