@1inch/solidity-utils 3.8.3 → 4.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 (280) hide show
  1. package/README.md +9 -208
  2. package/contracts/interfaces/ICreate3Deployer.sol +16 -0
  3. package/contracts/interfaces/IDaiLikePermit.sol +13 -0
  4. package/contracts/interfaces/IERC20MetadataUppercase.sol +12 -0
  5. package/contracts/interfaces/IERC7597Permit.sol +13 -0
  6. package/contracts/interfaces/IPermit2.sol +45 -12
  7. package/contracts/interfaces/IWETH.sol +17 -0
  8. package/contracts/libraries/AddressArray.sol +190 -61
  9. package/contracts/libraries/AddressLib.sol +2 -1
  10. package/contracts/libraries/AddressSet.sol +82 -18
  11. package/contracts/libraries/BySigTraits.sol +46 -0
  12. package/contracts/libraries/BytesMemory.sol +2 -1
  13. package/contracts/libraries/BytesStorage.sol +2 -1
  14. package/contracts/libraries/ECDSA.sol +111 -0
  15. package/contracts/libraries/RevertReasonForwarder.sol +13 -3
  16. package/contracts/libraries/RevertReasonParser.sol +11 -2
  17. package/contracts/libraries/SafeERC20.sol +7 -3
  18. package/contracts/libraries/StringUtil.sol +21 -3
  19. package/contracts/libraries/UniERC20.sol +57 -12
  20. package/contracts/mocks/ERC20PermitMock.sol +12 -0
  21. package/contracts/mocks/SelfdestructEthSenderMock.sol +17 -0
  22. package/contracts/mocks/TokenCustomDecimalsMock.sol +25 -4
  23. package/contracts/mocks/TokenMock.sol +19 -0
  24. package/dist/hardhat-setup/networks.d.ts +23 -0
  25. package/dist/hardhat-setup/networks.js +22 -0
  26. package/dist/hardhat-setup/networks.js.map +1 -1
  27. package/dist/src/expect.d.ts +12 -0
  28. package/dist/src/expect.js +12 -0
  29. package/dist/src/expect.js.map +1 -1
  30. package/dist/src/permit.d.ts +120 -1
  31. package/dist/src/permit.js +124 -8
  32. package/dist/src/permit.js.map +1 -1
  33. package/dist/src/prelude.d.ts +6 -0
  34. package/dist/src/prelude.js +6 -0
  35. package/dist/src/prelude.js.map +1 -1
  36. package/dist/src/profileEVM.d.ts +26 -0
  37. package/dist/src/profileEVM.js +30 -3
  38. package/dist/src/profileEVM.js.map +1 -1
  39. package/dist/src/utils.d.ts +79 -0
  40. package/dist/src/utils.js +92 -1
  41. package/dist/src/utils.js.map +1 -1
  42. package/dist/typechain-types/@openzeppelin/contracts/utils/Address.d.ts +20 -0
  43. package/dist/typechain-types/@openzeppelin/contracts/utils/Address.js +3 -0
  44. package/dist/typechain-types/@openzeppelin/contracts/utils/Address.js.map +1 -0
  45. package/dist/typechain-types/@openzeppelin/contracts/utils/index.d.ts +1 -0
  46. package/dist/typechain-types/contracts/index.d.ts +2 -3
  47. package/dist/typechain-types/contracts/interfaces/IERC7597Permit.d.ts +41 -0
  48. package/dist/typechain-types/contracts/interfaces/IERC7597Permit.js +3 -0
  49. package/dist/typechain-types/contracts/interfaces/IERC7597Permit.js.map +1 -0
  50. package/dist/typechain-types/contracts/interfaces/index.d.ts +1 -0
  51. package/dist/typechain-types/contracts/libraries/BySigTraits.d.ts +20 -0
  52. package/dist/typechain-types/contracts/libraries/BySigTraits.js +3 -0
  53. package/dist/typechain-types/contracts/libraries/BySigTraits.js.map +1 -0
  54. package/dist/typechain-types/contracts/libraries/index.d.ts +1 -0
  55. package/dist/typechain-types/contracts/mixins/BySig.d.ts +214 -0
  56. package/dist/typechain-types/contracts/mixins/BySig.js +3 -0
  57. package/dist/typechain-types/contracts/mixins/BySig.js.map +1 -0
  58. package/dist/typechain-types/contracts/{EthReceiver.d.ts → mixins/EthReceiver.d.ts} +1 -1
  59. package/dist/typechain-types/contracts/mixins/EthReceiver.js.map +1 -0
  60. package/dist/typechain-types/contracts/{OnlyWethReceiver.d.ts → mixins/OnlyWethReceiver.d.ts} +1 -1
  61. package/dist/typechain-types/contracts/mixins/OnlyWethReceiver.js.map +1 -0
  62. package/dist/typechain-types/contracts/{PermitAndCall.d.ts → mixins/PermitAndCall.d.ts} +1 -1
  63. package/dist/typechain-types/contracts/mixins/PermitAndCall.js.map +1 -0
  64. package/dist/typechain-types/contracts/mixins/SelfdestructEthSender.d.ts +29 -0
  65. package/dist/typechain-types/contracts/mixins/SelfdestructEthSender.js +3 -0
  66. package/dist/typechain-types/contracts/mixins/SelfdestructEthSender.js.map +1 -0
  67. package/dist/typechain-types/contracts/mixins/index.d.ts +5 -0
  68. package/dist/typechain-types/contracts/mixins/index.js +3 -0
  69. package/dist/typechain-types/contracts/mixins/index.js.map +1 -0
  70. package/dist/typechain-types/contracts/mocks/SelfdestructEthSenderMock.d.ts +37 -0
  71. package/dist/typechain-types/contracts/mocks/SelfdestructEthSenderMock.js +3 -0
  72. package/dist/typechain-types/contracts/mocks/SelfdestructEthSenderMock.js.map +1 -0
  73. package/dist/typechain-types/contracts/mocks/TokenCustomDecimalsMock.d.ts +1 -5
  74. package/dist/typechain-types/contracts/mocks/index.d.ts +1 -0
  75. package/dist/typechain-types/contracts/tests/mocks/AddressSetMock.d.ts +5 -1
  76. package/dist/typechain-types/contracts/tests/mocks/BySigTraitsMock.d.ts +47 -0
  77. package/dist/typechain-types/contracts/tests/mocks/BySigTraitsMock.js +3 -0
  78. package/dist/typechain-types/contracts/tests/mocks/BySigTraitsMock.js.map +1 -0
  79. package/dist/typechain-types/contracts/tests/mocks/TokenWithBySig.d.ts +422 -0
  80. package/dist/typechain-types/contracts/tests/mocks/TokenWithBySig.js +3 -0
  81. package/dist/typechain-types/contracts/tests/mocks/TokenWithBySig.js.map +1 -0
  82. package/dist/typechain-types/contracts/tests/mocks/USDCLikePermitMock.d.ts +260 -0
  83. package/dist/typechain-types/contracts/tests/mocks/USDCLikePermitMock.js +3 -0
  84. package/dist/typechain-types/contracts/tests/mocks/USDCLikePermitMock.js.map +1 -0
  85. package/dist/typechain-types/contracts/tests/mocks/index.d.ts +3 -0
  86. package/dist/typechain-types/factories/@openzeppelin/contracts/utils/Address__factory.d.ts +42 -0
  87. package/dist/typechain-types/factories/@openzeppelin/contracts/utils/Address__factory.js +67 -0
  88. package/dist/typechain-types/factories/@openzeppelin/contracts/utils/Address__factory.js.map +1 -0
  89. package/dist/typechain-types/factories/@openzeppelin/contracts/utils/ShortStrings__factory.d.ts +1 -1
  90. package/dist/typechain-types/factories/@openzeppelin/contracts/utils/ShortStrings__factory.js +1 -1
  91. package/dist/typechain-types/factories/@openzeppelin/contracts/utils/Strings__factory.d.ts +1 -1
  92. package/dist/typechain-types/factories/@openzeppelin/contracts/utils/Strings__factory.js +1 -1
  93. package/dist/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/ECDSA__factory.d.ts +1 -1
  94. package/dist/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/ECDSA__factory.js +1 -1
  95. package/dist/typechain-types/factories/@openzeppelin/contracts/utils/index.d.ts +1 -0
  96. package/dist/typechain-types/factories/@openzeppelin/contracts/utils/index.js +3 -1
  97. package/dist/typechain-types/factories/@openzeppelin/contracts/utils/index.js.map +1 -1
  98. package/dist/typechain-types/factories/@openzeppelin/contracts/utils/math/Math__factory.d.ts +1 -1
  99. package/dist/typechain-types/factories/@openzeppelin/contracts/utils/math/Math__factory.js +1 -1
  100. package/dist/typechain-types/factories/contracts/index.d.ts +1 -3
  101. package/dist/typechain-types/factories/contracts/index.js +2 -7
  102. package/dist/typechain-types/factories/contracts/index.js.map +1 -1
  103. package/dist/typechain-types/factories/contracts/interfaces/IERC7597Permit__factory.d.ts +33 -0
  104. package/dist/typechain-types/factories/contracts/interfaces/IERC7597Permit__factory.js +53 -0
  105. package/dist/typechain-types/factories/contracts/interfaces/IERC7597Permit__factory.js.map +1 -0
  106. package/dist/typechain-types/factories/contracts/interfaces/index.d.ts +1 -0
  107. package/dist/typechain-types/factories/contracts/interfaces/index.js +3 -1
  108. package/dist/typechain-types/factories/contracts/interfaces/index.js.map +1 -1
  109. package/dist/typechain-types/factories/contracts/libraries/AddressArray__factory.d.ts +1 -1
  110. package/dist/typechain-types/factories/contracts/libraries/AddressArray__factory.js +1 -1
  111. package/dist/typechain-types/factories/contracts/libraries/BySigTraits__factory.d.ts +26 -0
  112. package/dist/typechain-types/factories/contracts/libraries/BySigTraits__factory.js +45 -0
  113. package/dist/typechain-types/factories/contracts/libraries/BySigTraits__factory.js.map +1 -0
  114. package/dist/typechain-types/factories/contracts/libraries/BytesMemory__factory.d.ts +1 -1
  115. package/dist/typechain-types/factories/contracts/libraries/BytesMemory__factory.js +1 -1
  116. package/dist/typechain-types/factories/contracts/libraries/BytesStorage__factory.d.ts +1 -1
  117. package/dist/typechain-types/factories/contracts/libraries/BytesStorage__factory.js +1 -1
  118. package/dist/typechain-types/factories/contracts/libraries/RevertReasonParser__factory.d.ts +1 -1
  119. package/dist/typechain-types/factories/contracts/libraries/RevertReasonParser__factory.js +1 -1
  120. package/dist/typechain-types/factories/contracts/libraries/SafeERC20__factory.d.ts +1 -1
  121. package/dist/typechain-types/factories/contracts/libraries/SafeERC20__factory.js +1 -1
  122. package/dist/typechain-types/factories/contracts/libraries/UniERC20__factory.d.ts +1 -1
  123. package/dist/typechain-types/factories/contracts/libraries/UniERC20__factory.js +1 -1
  124. package/dist/typechain-types/factories/contracts/libraries/index.d.ts +1 -0
  125. package/dist/typechain-types/factories/contracts/libraries/index.js +3 -1
  126. package/dist/typechain-types/factories/contracts/libraries/index.js.map +1 -1
  127. package/dist/typechain-types/factories/contracts/mixins/BySig__factory.d.ts +286 -0
  128. package/dist/typechain-types/factories/contracts/mixins/BySig__factory.js +385 -0
  129. package/dist/typechain-types/factories/contracts/mixins/BySig__factory.js.map +1 -0
  130. package/dist/typechain-types/factories/contracts/{EthReceiver__factory.d.ts → mixins/EthReceiver__factory.d.ts} +1 -1
  131. package/dist/typechain-types/factories/contracts/mixins/EthReceiver__factory.js.map +1 -0
  132. package/dist/typechain-types/factories/contracts/{OnlyWethReceiver__factory.d.ts → mixins/OnlyWethReceiver__factory.d.ts} +1 -1
  133. package/dist/typechain-types/factories/contracts/mixins/OnlyWethReceiver__factory.js.map +1 -0
  134. package/dist/typechain-types/factories/contracts/{PermitAndCall__factory.d.ts → mixins/PermitAndCall__factory.d.ts} +1 -1
  135. package/dist/typechain-types/factories/contracts/mixins/PermitAndCall__factory.js.map +1 -0
  136. package/dist/typechain-types/factories/contracts/mixins/SelfdestructEthSender__factory.d.ts +17 -0
  137. package/dist/typechain-types/factories/contracts/mixins/SelfdestructEthSender__factory.js +33 -0
  138. package/dist/typechain-types/factories/contracts/mixins/SelfdestructEthSender__factory.js.map +1 -0
  139. package/dist/typechain-types/factories/contracts/mixins/index.d.ts +5 -0
  140. package/dist/typechain-types/factories/contracts/mixins/index.js +17 -0
  141. package/dist/typechain-types/factories/contracts/mixins/index.js.map +1 -0
  142. package/dist/typechain-types/factories/contracts/mocks/ERC20PermitMock__factory.d.ts +1 -1
  143. package/dist/typechain-types/factories/contracts/mocks/ERC20PermitMock__factory.js +1 -1
  144. package/dist/typechain-types/factories/contracts/mocks/ERC20PermitMock__factory.js.map +1 -1
  145. package/dist/typechain-types/factories/contracts/mocks/SelfdestructEthSenderMock__factory.d.ts +49 -0
  146. package/dist/typechain-types/factories/contracts/mocks/SelfdestructEthSenderMock__factory.js +75 -0
  147. package/dist/typechain-types/factories/contracts/mocks/SelfdestructEthSenderMock__factory.js.map +1 -0
  148. package/dist/typechain-types/factories/contracts/mocks/TokenCustomDecimalsMock__factory.d.ts +1 -11
  149. package/dist/typechain-types/factories/contracts/mocks/TokenCustomDecimalsMock__factory.js +1 -14
  150. package/dist/typechain-types/factories/contracts/mocks/TokenCustomDecimalsMock__factory.js.map +1 -1
  151. package/dist/typechain-types/factories/contracts/mocks/TokenMock__factory.d.ts +1 -1
  152. package/dist/typechain-types/factories/contracts/mocks/TokenMock__factory.js +1 -1
  153. package/dist/typechain-types/factories/contracts/mocks/TokenMock__factory.js.map +1 -1
  154. package/dist/typechain-types/factories/contracts/mocks/index.d.ts +1 -0
  155. package/dist/typechain-types/factories/contracts/mocks/index.js +3 -1
  156. package/dist/typechain-types/factories/contracts/mocks/index.js.map +1 -1
  157. package/dist/typechain-types/factories/contracts/tests/ECDSATest__factory.d.ts +1 -1
  158. package/dist/typechain-types/factories/contracts/tests/ECDSATest__factory.js +1 -1
  159. package/dist/typechain-types/factories/contracts/tests/ECDSATest__factory.js.map +1 -1
  160. package/dist/typechain-types/factories/contracts/tests/RevertReasonParserTest__factory.d.ts +1 -1
  161. package/dist/typechain-types/factories/contracts/tests/RevertReasonParserTest__factory.js +1 -1
  162. package/dist/typechain-types/factories/contracts/tests/RevertReasonParserTest__factory.js.map +1 -1
  163. package/dist/typechain-types/factories/contracts/tests/StringUtilTest__factory.d.ts +1 -1
  164. package/dist/typechain-types/factories/contracts/tests/StringUtilTest__factory.js +1 -1
  165. package/dist/typechain-types/factories/contracts/tests/StringUtilTest__factory.js.map +1 -1
  166. package/dist/typechain-types/factories/contracts/tests/mocks/AddressArrayMock__factory.d.ts +1 -5
  167. package/dist/typechain-types/factories/contracts/tests/mocks/AddressArrayMock__factory.js +1 -6
  168. package/dist/typechain-types/factories/contracts/tests/mocks/AddressArrayMock__factory.js.map +1 -1
  169. package/dist/typechain-types/factories/contracts/tests/mocks/AddressLibMock__factory.d.ts +1 -1
  170. package/dist/typechain-types/factories/contracts/tests/mocks/AddressLibMock__factory.js +1 -1
  171. package/dist/typechain-types/factories/contracts/tests/mocks/AddressLibMock__factory.js.map +1 -1
  172. package/dist/typechain-types/factories/contracts/tests/mocks/AddressSetMock__factory.d.ts +11 -5
  173. package/dist/typechain-types/factories/contracts/tests/mocks/AddressSetMock__factory.js +14 -6
  174. package/dist/typechain-types/factories/contracts/tests/mocks/AddressSetMock__factory.js.map +1 -1
  175. package/dist/typechain-types/factories/contracts/tests/mocks/BySigTraitsMock__factory.d.ts +86 -0
  176. package/dist/typechain-types/factories/contracts/tests/mocks/BySigTraitsMock__factory.js +126 -0
  177. package/dist/typechain-types/factories/contracts/tests/mocks/BySigTraitsMock__factory.js.map +1 -0
  178. package/dist/typechain-types/factories/contracts/tests/mocks/BytesMemoryMock__factory.d.ts +1 -1
  179. package/dist/typechain-types/factories/contracts/tests/mocks/BytesMemoryMock__factory.js +1 -1
  180. package/dist/typechain-types/factories/contracts/tests/mocks/BytesMemoryMock__factory.js.map +1 -1
  181. package/dist/typechain-types/factories/contracts/tests/mocks/BytesStorageMock__factory.d.ts +1 -1
  182. package/dist/typechain-types/factories/contracts/tests/mocks/BytesStorageMock__factory.js +1 -1
  183. package/dist/typechain-types/factories/contracts/tests/mocks/BytesStorageMock__factory.js.map +1 -1
  184. package/dist/typechain-types/factories/contracts/tests/mocks/DaiLikePermitMock__factory.d.ts +1 -1
  185. package/dist/typechain-types/factories/contracts/tests/mocks/DaiLikePermitMock__factory.js +1 -1
  186. package/dist/typechain-types/factories/contracts/tests/mocks/DaiLikePermitMock__factory.js.map +1 -1
  187. package/dist/typechain-types/factories/contracts/tests/mocks/ERC1271WalletMock__factory.d.ts +1 -1
  188. package/dist/typechain-types/factories/contracts/tests/mocks/ERC1271WalletMock__factory.js +1 -1
  189. package/dist/typechain-types/factories/contracts/tests/mocks/ERC1271WalletMock__factory.js.map +1 -1
  190. package/dist/typechain-types/factories/contracts/tests/mocks/EthReceiverMock__factory.d.ts +1 -1
  191. package/dist/typechain-types/factories/contracts/tests/mocks/EthReceiverMock__factory.js +1 -1
  192. package/dist/typechain-types/factories/contracts/tests/mocks/EthSenderMock__factory.d.ts +1 -1
  193. package/dist/typechain-types/factories/contracts/tests/mocks/EthSenderMock__factory.js +1 -1
  194. package/dist/typechain-types/factories/contracts/tests/mocks/EthSenderMock__factory.js.map +1 -1
  195. package/dist/typechain-types/factories/contracts/tests/mocks/PermitAndCallMock__factory.d.ts +1 -1
  196. package/dist/typechain-types/factories/contracts/tests/mocks/PermitAndCallMock__factory.js +1 -1
  197. package/dist/typechain-types/factories/contracts/tests/mocks/PermitAndCallMock__factory.js.map +1 -1
  198. package/dist/typechain-types/factories/contracts/tests/mocks/PermitableMock__factory.d.ts +1 -1
  199. package/dist/typechain-types/factories/contracts/tests/mocks/PermitableMock__factory.js +1 -1
  200. package/dist/typechain-types/factories/contracts/tests/mocks/PermitableMock__factory.js.map +1 -1
  201. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20NoReturnMock__factory.d.ts +1 -1
  202. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20NoReturnMock__factory.js +1 -1
  203. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20NoReturnMock__factory.js.map +1 -1
  204. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20PermitNoRevertMock__factory.d.ts +1 -1
  205. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20PermitNoRevertMock__factory.js +1 -1
  206. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20PermitNoRevertMock__factory.js.map +1 -1
  207. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20ReturnFalseMock__factory.d.ts +1 -1
  208. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20ReturnFalseMock__factory.js +1 -1
  209. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20ReturnFalseMock__factory.js.map +1 -1
  210. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20ReturnTrueMock__factory.d.ts +1 -1
  211. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20ReturnTrueMock__factory.js +1 -1
  212. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20ReturnTrueMock__factory.js.map +1 -1
  213. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20ThroughZeroApprove__factory.d.ts +1 -1
  214. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20ThroughZeroApprove__factory.js +1 -1
  215. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20ThroughZeroApprove__factory.js.map +1 -1
  216. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20WithSafeBalance__factory.d.ts +1 -1
  217. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20WithSafeBalance__factory.js +1 -1
  218. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20WithSafeBalance__factory.js.map +1 -1
  219. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/Permit2ReturnTrueMock__factory.d.ts +1 -1
  220. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/Permit2ReturnTrueMock__factory.js +1 -1
  221. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/Permit2ReturnTrueMock__factory.js.map +1 -1
  222. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/SafeERC20Wrapper__factory.d.ts +1 -1
  223. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/SafeERC20Wrapper__factory.js +1 -1
  224. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/SafeERC20Wrapper__factory.js.map +1 -1
  225. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/SafeWETHWrapper__factory.d.ts +1 -1
  226. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/SafeWETHWrapper__factory.js +1 -1
  227. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/SafeWETHWrapper__factory.js.map +1 -1
  228. package/dist/typechain-types/factories/contracts/tests/mocks/TokenWithBySig__factory.d.ts +675 -0
  229. package/dist/typechain-types/factories/contracts/tests/mocks/TokenWithBySig__factory.js +893 -0
  230. package/dist/typechain-types/factories/contracts/tests/mocks/TokenWithBySig__factory.js.map +1 -0
  231. package/dist/typechain-types/factories/contracts/tests/mocks/USDCLikePermitMock__factory.d.ts +481 -0
  232. package/dist/typechain-types/factories/contracts/tests/mocks/USDCLikePermitMock__factory.js +640 -0
  233. package/dist/typechain-types/factories/contracts/tests/mocks/USDCLikePermitMock__factory.js.map +1 -0
  234. package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ERC20Capitals__factory.d.ts +1 -1
  235. package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ERC20Capitals__factory.js +1 -1
  236. package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ERC20Capitals__factory.js.map +1 -1
  237. package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ERC20bytes32Capitals__factory.d.ts +1 -1
  238. package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ERC20bytes32Capitals__factory.js +1 -1
  239. package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ERC20bytes32Capitals__factory.js.map +1 -1
  240. package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ERC20bytes32__factory.d.ts +1 -1
  241. package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ERC20bytes32__factory.js +1 -1
  242. package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ERC20bytes32__factory.js.map +1 -1
  243. package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ETHBadReceiver__factory.d.ts +1 -1
  244. package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ETHBadReceiver__factory.js +1 -1
  245. package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ETHBadReceiver__factory.js.map +1 -1
  246. package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/UniERC20Wrapper__factory.d.ts +1 -1
  247. package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/UniERC20Wrapper__factory.js +1 -1
  248. package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/UniERC20Wrapper__factory.js.map +1 -1
  249. package/dist/typechain-types/factories/contracts/tests/mocks/WETH__factory.d.ts +1 -1
  250. package/dist/typechain-types/factories/contracts/tests/mocks/WETH__factory.js +1 -1
  251. package/dist/typechain-types/factories/contracts/tests/mocks/WETH__factory.js.map +1 -1
  252. package/dist/typechain-types/factories/contracts/tests/mocks/WethReceiverMock__factory.d.ts +1 -1
  253. package/dist/typechain-types/factories/contracts/tests/mocks/WethReceiverMock__factory.js +1 -1
  254. package/dist/typechain-types/factories/contracts/tests/mocks/WethReceiverMock__factory.js.map +1 -1
  255. package/dist/typechain-types/factories/contracts/tests/mocks/index.d.ts +3 -0
  256. package/dist/typechain-types/factories/contracts/tests/mocks/index.js +7 -1
  257. package/dist/typechain-types/factories/contracts/tests/mocks/index.js.map +1 -1
  258. package/dist/typechain-types/index.d.ts +24 -6
  259. package/dist/typechain-types/index.js +26 -8
  260. package/dist/typechain-types/index.js.map +1 -1
  261. package/package.json +23 -18
  262. package/utils/README.md +180 -0
  263. package/utils/docify.utils.js +3 -3
  264. package/utils/file-dependencies.js +0 -0
  265. package/utils/test-docgen.js +0 -0
  266. package/contracts/EthReceiver.sol +0 -16
  267. package/contracts/OnlyWethReceiver.sol +0 -17
  268. package/contracts/PermitAndCall.sol +0 -28
  269. package/dist/typechain-types/contracts/EthReceiver.js.map +0 -1
  270. package/dist/typechain-types/contracts/OnlyWethReceiver.js.map +0 -1
  271. package/dist/typechain-types/contracts/PermitAndCall.js.map +0 -1
  272. package/dist/typechain-types/factories/contracts/EthReceiver__factory.js.map +0 -1
  273. package/dist/typechain-types/factories/contracts/OnlyWethReceiver__factory.js.map +0 -1
  274. package/dist/typechain-types/factories/contracts/PermitAndCall__factory.js.map +0 -1
  275. /package/dist/typechain-types/contracts/{EthReceiver.js → mixins/EthReceiver.js} +0 -0
  276. /package/dist/typechain-types/contracts/{OnlyWethReceiver.js → mixins/OnlyWethReceiver.js} +0 -0
  277. /package/dist/typechain-types/contracts/{PermitAndCall.js → mixins/PermitAndCall.js} +0 -0
  278. /package/dist/typechain-types/factories/contracts/{EthReceiver__factory.js → mixins/EthReceiver__factory.js} +0 -0
  279. /package/dist/typechain-types/factories/contracts/{OnlyWethReceiver__factory.js → mixins/OnlyWethReceiver__factory.js} +0 -0
  280. /package/dist/typechain-types/factories/contracts/{PermitAndCall__factory.js → mixins/PermitAndCall__factory.js} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"networks.js","sourceRoot":"","sources":["../../hardhat-setup/networks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"networks.js","sourceRoot":"","sources":["../../hardhat-setup/networks.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,15 @@
1
1
  import { Assertion, AssertionError, assert, expect, config, should } from 'chai';
2
+ /**
3
+ * @category expect
4
+ * @dev Asserts that two values are roughly equal within a specified relative difference.
5
+ * This function is useful for cases where precision issues might cause direct comparisons to fail.
6
+ * @param expected The expected value as a string, number, or bigint.
7
+ * @param actual The actual value obtained, to compare against the expected value.
8
+ * @param relativeDiff The maximum allowed relative difference between the expected and actual values.
9
+ * The relative difference is calculated as the absolute difference divided by the expected value,
10
+ * ensuring that the actual value is within this relative difference from the expected value.
11
+ * @notice This function will revert with a message if the values are of different signs
12
+ * or if the actual value deviates from the expected by more than the specified relative difference.
13
+ */
2
14
  export declare function assertRoughlyEqualValues(expected: string | number | bigint, actual: string | number | bigint, relativeDiff: number): void;
3
15
  export { Assertion, AssertionError, assert, expect, config, should };
@@ -8,6 +8,18 @@ Object.defineProperty(exports, "assert", { enumerable: true, get: function () {
8
8
  Object.defineProperty(exports, "expect", { enumerable: true, get: function () { return chai_1.expect; } });
9
9
  Object.defineProperty(exports, "config", { enumerable: true, get: function () { return chai_1.config; } });
10
10
  Object.defineProperty(exports, "should", { enumerable: true, get: function () { return chai_1.should; } });
11
+ /**
12
+ * @category expect
13
+ * @dev Asserts that two values are roughly equal within a specified relative difference.
14
+ * This function is useful for cases where precision issues might cause direct comparisons to fail.
15
+ * @param expected The expected value as a string, number, or bigint.
16
+ * @param actual The actual value obtained, to compare against the expected value.
17
+ * @param relativeDiff The maximum allowed relative difference between the expected and actual values.
18
+ * The relative difference is calculated as the absolute difference divided by the expected value,
19
+ * ensuring that the actual value is within this relative difference from the expected value.
20
+ * @notice This function will revert with a message if the values are of different signs
21
+ * or if the actual value deviates from the expected by more than the specified relative difference.
22
+ */
11
23
  function assertRoughlyEqualValues(expected, actual, relativeDiff) {
12
24
  let expectedBN = BigInt(expected);
13
25
  let actualBN = BigInt(actual);
@@ -1 +1 @@
1
- {"version":3,"file":"expect.js","sourceRoot":"","sources":["../../src/expect.ts"],"names":[],"mappings":";;;AAAA,+BAAiF;AA4BxE,0FA5BA,gBAAS,OA4BA;AAAE,+FA5BA,qBAAc,OA4BA;AAAE,uFA5BA,aAAM,OA4BA;AAAE,uFA5BA,aAAM,OA4BA;AAAE,uFA5BA,aAAM,OA4BA;AAAE,uFA5BA,aAAM,OA4BA;AA1BlE,SAAgB,wBAAwB,CACpC,QAAkC,EAClC,MAAgC,EAChC,YAAoB;IAEpB,IAAI,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAClC,IAAI,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9B,IAAA,aAAM,EAAC,UAAU,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,8BAA8B,CAAC,CAAC;IAE3E,IAAI,UAAU,GAAG,CAAC;QAAE,UAAU,GAAG,CAAC,UAAU,CAAC;IAC7C,IAAI,QAAQ,GAAG,CAAC;QAAE,QAAQ,GAAG,CAAC,QAAQ,CAAC;IAEvC,IAAI,kBAAkB,GAAG,YAAY,CAAC;IACtC,IAAI,oBAAoB,GAAG,EAAE,CAAC;IAC9B,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,kBAAkB,CAAC,EAAE,CAAC;QAC3C,oBAAoB,GAAG,oBAAoB,GAAG,GAAG,CAAC;QAClD,kBAAkB,IAAI,EAAE,CAAC;IAC7B,CAAC;IACD,MAAM,IAAI,GAAG,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,GAAG,UAAU,CAAC;IACnF,MAAM,QAAQ,GAAG,CAAC,UAAU,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC,GAAG,oBAAoB,CAAC;IAClF,IAAI,IAAI,GAAG,QAAQ,EAAE,CAAC;QAClB,IAAA,aAAM,EAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,MAAM,OAAO,QAAQ,SAAS,YAAY,YAAY,CAAC,CAAC;IACxG,CAAC;AACL,CAAC;AAvBD,4DAuBC"}
1
+ {"version":3,"file":"expect.js","sourceRoot":"","sources":["../../src/expect.ts"],"names":[],"mappings":";;;AAAA,+BAAiF;AAwCxE,0FAxCA,gBAAS,OAwCA;AAAE,+FAxCA,qBAAc,OAwCA;AAAE,uFAxCA,aAAM,OAwCA;AAAE,uFAxCA,aAAM,OAwCA;AAAE,uFAxCA,aAAM,OAwCA;AAAE,uFAxCA,aAAM,OAwCA;AAtClE;;;;;;;;;;;GAWG;AACH,SAAgB,wBAAwB,CACpC,QAAkC,EAClC,MAAgC,EAChC,YAAoB;IAEpB,IAAI,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAClC,IAAI,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9B,IAAA,aAAM,EAAC,UAAU,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,8BAA8B,CAAC,CAAC;IAE3E,IAAI,UAAU,GAAG,CAAC;QAAE,UAAU,GAAG,CAAC,UAAU,CAAC;IAC7C,IAAI,QAAQ,GAAG,CAAC;QAAE,QAAQ,GAAG,CAAC,QAAQ,CAAC;IAEvC,IAAI,kBAAkB,GAAG,YAAY,CAAC;IACtC,IAAI,oBAAoB,GAAG,EAAE,CAAC;IAC9B,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,kBAAkB,CAAC,EAAE,CAAC;QAC3C,oBAAoB,GAAG,oBAAoB,GAAG,GAAG,CAAC;QAClD,kBAAkB,IAAI,EAAE,CAAC;IAC7B,CAAC;IACD,MAAM,IAAI,GAAG,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,GAAG,UAAU,CAAC;IACnF,MAAM,QAAQ,GAAG,CAAC,UAAU,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC,GAAG,oBAAoB,CAAC;IAClF,IAAI,IAAI,GAAG,QAAQ,EAAE,CAAC;QAClB,IAAA,aAAM,EAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,MAAM,OAAO,QAAQ,SAAS,YAAY,YAAY,CAAC,CAAC;IACxG,CAAC;AACL,CAAC;AAvBD,4DAuBC"}
@@ -2,7 +2,7 @@ import { SignTypedDataVersion } from '@metamask/eth-sig-util';
2
2
  import { Wallet } from 'ethers';
3
3
  import '@nomicfoundation/hardhat-ethers';
4
4
  import { SignerWithAddress } from '@nomicfoundation/hardhat-ethers/signers';
5
- import { DaiLikePermitMock, ERC20Permit } from '../typechain-types';
5
+ import { DaiLikePermitMock, ERC20Permit, USDCLikePermitMock } from '../typechain-types';
6
6
  export declare const TypedDataVersion = SignTypedDataVersion.V4;
7
7
  export declare const defaultDeadline: bigint;
8
8
  export declare const defaultDeadlinePermit2: bigint;
@@ -18,9 +18,43 @@ export declare const DaiLikePermit: {
18
18
  name: string;
19
19
  type: string;
20
20
  }[];
21
+ /**
22
+ * @category permit
23
+ * @dev Removes the '0x' prefix from a string. If no '0x' prefix is found, returns the original string.
24
+ * @param bigNumber The number (as a bigint or string) from which to remove the '0x' prefix.
25
+ * @return The string without the '0x' prefix.
26
+ */
21
27
  export declare function trim0x(bigNumber: bigint | string): string;
28
+ /**
29
+ * @category permit
30
+ * @dev Trims the method selector from transaction data, removing the first 8 characters (4 bytes of hexable string) after '0x' prefix.
31
+ * @param data The transaction data string from which to trim the selector.
32
+ * @return The trimmed selector string.
33
+ */
22
34
  export declare function cutSelector(data: string): string;
35
+ /**
36
+ * @category permit
37
+ * @dev Generates a domain separator for EIP-712 structured data using the provided parameters.
38
+ * @param name The user readable name of EIP-712 domain.
39
+ * @param version The version of the EIP-712 domain.
40
+ * @param chainId The unique identifier for the blockchain network.
41
+ * @param verifyingContract The Ethereum address of the contract that will verify the signature. This ties the signature to a specific contract.
42
+ * @return The domain separator as a hex string.
43
+ */
23
44
  export declare function domainSeparator(name: string, version: string, chainId: string, verifyingContract: string): string;
45
+ /**
46
+ * @category permit
47
+ * @dev Constructs structured data for EIP-2612 permit function, including types, domain, and message with details about the permit.
48
+ * @param name The user readable name of signing EIP-712 domain
49
+ * @param version The version of the signing EIP-712 domain.
50
+ * @param chainId The unique identifier for the blockchain network.
51
+ * @param verifyingContract The Ethereum address of the contract that will verify the signature. This ties the signature to a specific contract.
52
+ * @param owner The Ethereum address of the token owner granting permission to spend tokens on their behalf.
53
+ * @param spender The Ethereum address of the party being granted permission to spend tokens on behalf of the owner.
54
+ * @param value The amount of tokens the spender is permitted to spend.
55
+ * @param nonce An arbitrary number used once to prevent replay attacks. Typically, this is the number of transactions sent by the owner.
56
+ * @param deadline The timestamp until which the permit is valid. This provides a window of time in which the permit can be used.
57
+ */
24
58
  export declare function buildData(name: string, version: string, chainId: number, verifyingContract: string, owner: string, spender: string, value: string, nonce: string, deadline?: string): {
25
59
  readonly types: {
26
60
  readonly Permit: {
@@ -42,6 +76,20 @@ export declare function buildData(name: string, version: string, chainId: number
42
76
  readonly deadline: string;
43
77
  };
44
78
  };
79
+ /**
80
+ * @category permit
81
+ * @dev Prepares structured data similar to the Dai permit function, including types, domain, and message with permit details.
82
+ * @param name The user readable name of signing EIP-712 domain
83
+ * @param version The version of the signing EIP-712 domain.
84
+ * @param chainId The unique identifier for the blockchain network.
85
+ * @param verifyingContract The Ethereum address of the contract that will verify the signature. This ties the signature to a specific contract.
86
+ * @param holder The address of the token holder who is giving permission, establishing the source of the funds.
87
+ * @param spender The address allowed to spend tokens on behalf of the holder, essentially the recipient of the permit.
88
+ * @param nonce An arbitrary number used once to prevent replay attacks. Typically, this is the number of transactions sent by the owner.
89
+ * @param allowed A boolean indicating whether the spender is allowed to spend the tokens, providing a clear permit status.
90
+ * @param expiry The time until which the permit is valid, offering a window during which the spender can use the permit.
91
+ * @return Structured data prepared for a Dai-like permit function.
92
+ */
45
93
  export declare function buildDataLikeDai(name: string, version: string, chainId: number, verifyingContract: string, holder: string, spender: string, nonce: string, allowed: boolean, expiry?: string): {
46
94
  readonly types: {
47
95
  readonly Permit: {
@@ -63,10 +111,81 @@ export declare function buildDataLikeDai(name: string, version: string, chainId:
63
111
  readonly allowed: boolean;
64
112
  };
65
113
  };
114
+ /**
115
+ * @category permit
116
+ * @dev Ensures contract code is set for a given address and returns a contract instance.
117
+ * @return The contract instance of IPermit2.
118
+ */
66
119
  export declare function permit2Contract(): Promise<import("ethers").Contract>;
120
+ /**
121
+ * @category permit
122
+ * @notice Generates a permit signature for ERC20 tokens with EIP-2612 standard.
123
+ * @param owner The wallet or signer issuing the permit.
124
+ * @param permitContract The contract object with ERC20Permit type and token address for which the permit creating.
125
+ * @param tokenVersion The version of the token's EIP-712 domain.
126
+ * @param chainId The unique identifier for the blockchain network.
127
+ * @param spender The address allowed to spend the tokens.
128
+ * @param value The amount of tokens the spender is allowed to use.
129
+ * @param deadline Time until when the permit is valid.
130
+ * @param compact Indicates if the permit should be compressed.
131
+ * @return A signed permit string.
132
+ */
67
133
  export declare function getPermit(owner: Wallet | SignerWithAddress, permitContract: ERC20Permit, tokenVersion: string, chainId: number, spender: string, value: string, deadline?: string, compact?: boolean): Promise<string>;
134
+ /**
135
+ * @category permit
136
+ * @notice Creates a permit for spending tokens on Permit2 standard contracts.
137
+ * @param owner The wallet or signer issuing the permit.
138
+ * @param token The address of the token for which the permit is creates.
139
+ * @param chainId The unique identifier for the blockchain network.
140
+ * @param spender The address allowed to spend the tokens.
141
+ * @param amount The amount of tokens the spender is allowed to use.
142
+ * @param compact Indicates if the permit should be compressed.
143
+ * @param expiration The time until when the permit is valid for Permit2.
144
+ * @param sigDeadline Deadline for the signature to be considered valid.
145
+ * @return A signed permit string specific to Permit2 contracts.
146
+ */
68
147
  export declare function getPermit2(owner: Wallet | SignerWithAddress, token: string, chainId: number, spender: string, amount: bigint, compact?: boolean, expiration?: bigint, sigDeadline?: bigint): Promise<string>;
148
+ /**
149
+ * @category permit
150
+ * @notice Generates a Dai-like permit signature for tokens.
151
+ * @param holder The wallet or signer issuing the permit.
152
+ * @param permitContract The contract object with ERC20PermitLikeDai type and token address for which the permit creating.
153
+ * @param tokenVersion The version of the token's EIP-712 domain.
154
+ * @param chainId The unique identifier for the blockchain network.
155
+ * @param spender The address allowed to spend the tokens.
156
+ * @param allowed Boolean indicating whether the spender is allowed to spend.
157
+ * @param expiry Time until when the permit is valid.
158
+ * @param compact Indicates if the permit should be compressed.
159
+ * @return A signed permit string in Dai-like format.
160
+ */
69
161
  export declare function getPermitLikeDai(holder: Wallet | SignerWithAddress, permitContract: DaiLikePermitMock, tokenVersion: string, chainId: number, spender: string, allowed: boolean, expiry?: string, compact?: boolean): Promise<string>;
162
+ export declare function getPermitLikeUSDC(owner: string, // contract with isValidSignature function
163
+ signer: Wallet | SignerWithAddress, permitContract: USDCLikePermitMock, tokenVersion: string, chainId: number, spender: string, value: string, deadline?: string): Promise<string>;
164
+ /**
165
+ * @category permit
166
+ * @notice Concatenates a target address with data, trimming the '0x' prefix from the data.
167
+ * @param target The target address or value to prepend.
168
+ * @param data The data string to be concatenated after trimming.
169
+ * @return A concatenated string of target and data.
170
+ */
70
171
  export declare function withTarget(target: bigint | string, data: bigint | string): string;
172
+ /**
173
+ * @category permit
174
+ * @notice Compresses a permit function call to a shorter format based on its type.
175
+ * Type | EIP-2612 | DAI | Permit2
176
+ * Uncompressed | 224 | 256 | 352
177
+ * Compressed | 100 | 72 | 96
178
+ * @param permit The full permit function call string.
179
+ * @return A compressed permit string.
180
+ */
71
181
  export declare function compressPermit(permit: string): string;
182
+ /**
183
+ * @category permit
184
+ * @notice Decompresses a compressed permit function call back to its original full format.
185
+ * @param permit The compressed permit function call string.
186
+ * @param token The token address involved in the permit (for Permit2 type).
187
+ * @param owner The owner address involved in the permit.
188
+ * @param spender The spender address involved in the permit.
189
+ * @return The decompressed permit function call string.
190
+ */
72
191
  export declare function decompressPermit(permit: string, token: string, owner: string, spender: string): string;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.decompressPermit = exports.compressPermit = exports.withTarget = exports.getPermitLikeDai = exports.getPermit2 = exports.getPermit = exports.permit2Contract = exports.buildDataLikeDai = exports.buildData = exports.domainSeparator = exports.cutSelector = exports.trim0x = exports.DaiLikePermit = exports.Permit = exports.EIP712Domain = exports.defaultDeadlinePermit2 = exports.defaultDeadline = exports.TypedDataVersion = void 0;
3
+ exports.decompressPermit = exports.compressPermit = exports.withTarget = exports.getPermitLikeUSDC = exports.getPermitLikeDai = exports.getPermit2 = exports.getPermit = exports.permit2Contract = exports.buildDataLikeDai = exports.buildData = exports.domainSeparator = exports.cutSelector = exports.trim0x = exports.DaiLikePermit = exports.Permit = exports.EIP712Domain = exports.defaultDeadlinePermit2 = exports.defaultDeadline = exports.TypedDataVersion = void 0;
4
4
  const eth_sig_util_1 = require("@metamask/eth-sig-util");
5
5
  const prelude_1 = require("./prelude");
6
6
  const ethers_1 = require("ethers");
@@ -31,6 +31,12 @@ exports.DaiLikePermit = [
31
31
  { name: 'expiry', type: 'uint256' },
32
32
  { name: 'allowed', type: 'bool' },
33
33
  ];
34
+ /**
35
+ * @category permit
36
+ * @dev Removes the '0x' prefix from a string. If no '0x' prefix is found, returns the original string.
37
+ * @param bigNumber The number (as a bigint or string) from which to remove the '0x' prefix.
38
+ * @return The string without the '0x' prefix.
39
+ */
34
40
  function trim0x(bigNumber) {
35
41
  const s = bigNumber.toString();
36
42
  if (s.startsWith('0x')) {
@@ -39,16 +45,44 @@ function trim0x(bigNumber) {
39
45
  return s;
40
46
  }
41
47
  exports.trim0x = trim0x;
48
+ /**
49
+ * @category permit
50
+ * @dev Trims the method selector from transaction data, removing the first 8 characters (4 bytes of hexable string) after '0x' prefix.
51
+ * @param data The transaction data string from which to trim the selector.
52
+ * @return The trimmed selector string.
53
+ */
42
54
  function cutSelector(data) {
43
55
  const hexPrefix = '0x';
44
56
  return hexPrefix + data.substring(hexPrefix.length + 8);
45
57
  }
46
58
  exports.cutSelector = cutSelector;
59
+ /**
60
+ * @category permit
61
+ * @dev Generates a domain separator for EIP-712 structured data using the provided parameters.
62
+ * @param name The user readable name of EIP-712 domain.
63
+ * @param version The version of the EIP-712 domain.
64
+ * @param chainId The unique identifier for the blockchain network.
65
+ * @param verifyingContract The Ethereum address of the contract that will verify the signature. This ties the signature to a specific contract.
66
+ * @return The domain separator as a hex string.
67
+ */
47
68
  function domainSeparator(name, version, chainId, verifyingContract) {
48
69
  return ('0x' +
49
70
  eth_sig_util_1.TypedDataUtils.hashStruct('EIP712Domain', { name, version, chainId, verifyingContract }, { EIP712Domain: exports.EIP712Domain }, exports.TypedDataVersion).toString('hex'));
50
71
  }
51
72
  exports.domainSeparator = domainSeparator;
73
+ /**
74
+ * @category permit
75
+ * @dev Constructs structured data for EIP-2612 permit function, including types, domain, and message with details about the permit.
76
+ * @param name The user readable name of signing EIP-712 domain
77
+ * @param version The version of the signing EIP-712 domain.
78
+ * @param chainId The unique identifier for the blockchain network.
79
+ * @param verifyingContract The Ethereum address of the contract that will verify the signature. This ties the signature to a specific contract.
80
+ * @param owner The Ethereum address of the token owner granting permission to spend tokens on their behalf.
81
+ * @param spender The Ethereum address of the party being granted permission to spend tokens on behalf of the owner.
82
+ * @param value The amount of tokens the spender is permitted to spend.
83
+ * @param nonce An arbitrary number used once to prevent replay attacks. Typically, this is the number of transactions sent by the owner.
84
+ * @param deadline The timestamp until which the permit is valid. This provides a window of time in which the permit can be used.
85
+ */
52
86
  function buildData(name, version, chainId, verifyingContract, owner, spender, value, nonce, deadline = exports.defaultDeadline.toString()) {
53
87
  return {
54
88
  types: { Permit: exports.Permit },
@@ -57,6 +91,20 @@ function buildData(name, version, chainId, verifyingContract, owner, spender, va
57
91
  };
58
92
  }
59
93
  exports.buildData = buildData;
94
+ /**
95
+ * @category permit
96
+ * @dev Prepares structured data similar to the Dai permit function, including types, domain, and message with permit details.
97
+ * @param name The user readable name of signing EIP-712 domain
98
+ * @param version The version of the signing EIP-712 domain.
99
+ * @param chainId The unique identifier for the blockchain network.
100
+ * @param verifyingContract The Ethereum address of the contract that will verify the signature. This ties the signature to a specific contract.
101
+ * @param holder The address of the token holder who is giving permission, establishing the source of the funds.
102
+ * @param spender The address allowed to spend tokens on behalf of the holder, essentially the recipient of the permit.
103
+ * @param nonce An arbitrary number used once to prevent replay attacks. Typically, this is the number of transactions sent by the owner.
104
+ * @param allowed A boolean indicating whether the spender is allowed to spend the tokens, providing a clear permit status.
105
+ * @param expiry The time until which the permit is valid, offering a window during which the spender can use the permit.
106
+ * @return Structured data prepared for a Dai-like permit function.
107
+ */
60
108
  function buildDataLikeDai(name, version, chainId, verifyingContract, holder, spender, nonce, allowed, expiry = exports.defaultDeadline.toString()) {
61
109
  return {
62
110
  types: { Permit: exports.DaiLikePermit },
@@ -65,6 +113,11 @@ function buildDataLikeDai(name, version, chainId, verifyingContract, holder, spe
65
113
  };
66
114
  }
67
115
  exports.buildDataLikeDai = buildDataLikeDai;
116
+ /**
117
+ * @category permit
118
+ * @dev Ensures contract code is set for a given address and returns a contract instance.
119
+ * @return The contract instance of IPermit2.
120
+ */
68
121
  async function permit2Contract() {
69
122
  if ((await hardhat_1.ethers.provider.getCode(permit2_sdk_1.PERMIT2_ADDRESS)) === '0x') {
70
123
  await hardhat_1.ethers.provider.send('hardhat_setCode', [permit2_sdk_1.PERMIT2_ADDRESS, permit2_json_1.bytecode]);
@@ -72,8 +125,18 @@ async function permit2Contract() {
72
125
  return hardhat_1.ethers.getContractAt('IPermit2', permit2_sdk_1.PERMIT2_ADDRESS);
73
126
  }
74
127
  exports.permit2Contract = permit2Contract;
75
- /*
128
+ /**
129
+ * @category permit
130
+ * @notice Generates a permit signature for ERC20 tokens with EIP-2612 standard.
131
+ * @param owner The wallet or signer issuing the permit.
76
132
  * @param permitContract The contract object with ERC20Permit type and token address for which the permit creating.
133
+ * @param tokenVersion The version of the token's EIP-712 domain.
134
+ * @param chainId The unique identifier for the blockchain network.
135
+ * @param spender The address allowed to spend the tokens.
136
+ * @param value The amount of tokens the spender is allowed to use.
137
+ * @param deadline Time until when the permit is valid.
138
+ * @param compact Indicates if the permit should be compressed.
139
+ * @return A signed permit string.
77
140
  */
78
141
  async function getPermit(owner, permitContract, tokenVersion, chainId, spender, value, deadline = exports.defaultDeadline.toString(), compact = false) {
79
142
  const nonce = await permitContract.nonces(owner);
@@ -85,8 +148,18 @@ async function getPermit(owner, permitContract, tokenVersion, chainId, spender,
85
148
  return compact ? compressPermit(permitCall) : decompressPermit(compressPermit(permitCall), prelude_1.constants.ZERO_ADDRESS, owner.address, spender);
86
149
  }
87
150
  exports.getPermit = getPermit;
88
- /*
89
- * @param permit2Contract The contract object for Permit2 Uniswap contract.
151
+ /**
152
+ * @category permit
153
+ * @notice Creates a permit for spending tokens on Permit2 standard contracts.
154
+ * @param owner The wallet or signer issuing the permit.
155
+ * @param token The address of the token for which the permit is creates.
156
+ * @param chainId The unique identifier for the blockchain network.
157
+ * @param spender The address allowed to spend the tokens.
158
+ * @param amount The amount of tokens the spender is allowed to use.
159
+ * @param compact Indicates if the permit should be compressed.
160
+ * @param expiration The time until when the permit is valid for Permit2.
161
+ * @param sigDeadline Deadline for the signature to be considered valid.
162
+ * @return A signed permit string specific to Permit2 contracts.
90
163
  */
91
164
  async function getPermit2(owner, token, chainId, spender, amount, compact = false, expiration = exports.defaultDeadlinePermit2, sigDeadline = exports.defaultDeadlinePermit2) {
92
165
  const permitContract = await permit2Contract();
@@ -108,8 +181,18 @@ async function getPermit2(owner, token, chainId, spender, amount, compact = fals
108
181
  return compact ? compressPermit(permitCall) : decompressPermit(compressPermit(permitCall), token, owner.address, spender);
109
182
  }
110
183
  exports.getPermit2 = getPermit2;
111
- /*
184
+ /**
185
+ * @category permit
186
+ * @notice Generates a Dai-like permit signature for tokens.
187
+ * @param holder The wallet or signer issuing the permit.
112
188
  * @param permitContract The contract object with ERC20PermitLikeDai type and token address for which the permit creating.
189
+ * @param tokenVersion The version of the token's EIP-712 domain.
190
+ * @param chainId The unique identifier for the blockchain network.
191
+ * @param spender The address allowed to spend the tokens.
192
+ * @param allowed Boolean indicating whether the spender is allowed to spend.
193
+ * @param expiry Time until when the permit is valid.
194
+ * @param compact Indicates if the permit should be compressed.
195
+ * @return A signed permit string in Dai-like format.
113
196
  */
114
197
  async function getPermitLikeDai(holder, permitContract, tokenVersion, chainId, spender, allowed, expiry = exports.defaultDeadline.toString(), compact = false) {
115
198
  const nonce = await permitContract.nonces(holder);
@@ -121,13 +204,37 @@ async function getPermitLikeDai(holder, permitContract, tokenVersion, chainId, s
121
204
  return compact ? compressPermit(permitCall) : decompressPermit(compressPermit(permitCall), prelude_1.constants.ZERO_ADDRESS, holder.address, spender);
122
205
  }
123
206
  exports.getPermitLikeDai = getPermitLikeDai;
207
+ async function getPermitLikeUSDC(owner, // contract with isValidSignature function
208
+ signer, permitContract, tokenVersion, chainId, spender, value, deadline = exports.defaultDeadline.toString()) {
209
+ const nonce = await permitContract.nonces(owner);
210
+ const name = await permitContract.name();
211
+ const data = buildData(name, tokenVersion, chainId, await permitContract.getAddress(), owner, spender, value, nonce.toString(), deadline);
212
+ const signature = await signer.signTypedData(data.domain, data.types, data.message);
213
+ const { v, r, s } = ethers_1.Signature.from(signature);
214
+ const signatureBytes = hardhat_1.ethers.solidityPacked(['bytes32', 'bytes32', 'uint8'], [r, s, v]);
215
+ return cutSelector(permitContract.interface.encodeFunctionData('permit(address,address,uint256,uint256,bytes)', [owner, spender, value, deadline, signatureBytes]));
216
+ }
217
+ exports.getPermitLikeUSDC = getPermitLikeUSDC;
218
+ /**
219
+ * @category permit
220
+ * @notice Concatenates a target address with data, trimming the '0x' prefix from the data.
221
+ * @param target The target address or value to prepend.
222
+ * @param data The data string to be concatenated after trimming.
223
+ * @return A concatenated string of target and data.
224
+ */
124
225
  function withTarget(target, data) {
125
226
  return target.toString() + trim0x(data);
126
227
  }
127
228
  exports.withTarget = withTarget;
128
- // Type | EIP-2612 | DAI | Permit2
129
- // Uncompressed | 224 | 256 | 352
130
- // Compressed | 100 | 72 | 96
229
+ /**
230
+ * @category permit
231
+ * @notice Compresses a permit function call to a shorter format based on its type.
232
+ * Type | EIP-2612 | DAI | Permit2
233
+ * Uncompressed | 224 | 256 | 352
234
+ * Compressed | 100 | 72 | 96
235
+ * @param permit The full permit function call string.
236
+ * @return A compressed permit string.
237
+ */
131
238
  function compressPermit(permit) {
132
239
  const abiCoder = hardhat_1.ethers.AbiCoder.defaultAbiCoder();
133
240
  switch (permit.length) {
@@ -168,6 +275,15 @@ function compressPermit(permit) {
168
275
  }
169
276
  }
170
277
  exports.compressPermit = compressPermit;
278
+ /**
279
+ * @category permit
280
+ * @notice Decompresses a compressed permit function call back to its original full format.
281
+ * @param permit The compressed permit function call string.
282
+ * @param token The token address involved in the permit (for Permit2 type).
283
+ * @param owner The owner address involved in the permit.
284
+ * @param spender The spender address involved in the permit.
285
+ * @return The decompressed permit function call string.
286
+ */
171
287
  function decompressPermit(permit, token, owner, spender) {
172
288
  const abiCoder = hardhat_1.ethers.AbiCoder.defaultAbiCoder();
173
289
  switch (permit.length) {
@@ -1 +1 @@
1
- {"version":3,"file":"permit.js","sourceRoot":"","sources":["../../src/permit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"permit.js","sourceRoot":"","sources":["../../src/permit.ts"],"names":[],"mappings":"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"}
@@ -12,4 +12,10 @@ export declare const constants: {
12
12
  readonly DEV_CHAINS: string[];
13
13
  };
14
14
  export { time };
15
+ /**
16
+ * @category prelude
17
+ * @notice Converts an Ether amount represented as a string into its Wei equivalent as a bigint.
18
+ * @param n The amount of Ether to convert, specified as a string.
19
+ * @return The equivalent amount in Wei as a bigint.
20
+ */
15
21
  export declare function ether(n: string): bigint;
@@ -16,6 +16,12 @@ exports.constants = {
16
16
  MAX_UINT32: 2n ** 32n - 1n,
17
17
  DEV_CHAINS: ['hardhat', 'localhost'],
18
18
  };
19
+ /**
20
+ * @category prelude
21
+ * @notice Converts an Ether amount represented as a string into its Wei equivalent as a bigint.
22
+ * @param n The amount of Ether to convert, specified as a string.
23
+ * @return The equivalent amount in Wei as a bigint.
24
+ */
19
25
  function ether(n) {
20
26
  return (0, ethers_1.parseUnits)(n);
21
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"prelude.js","sourceRoot":"","sources":["../../src/prelude.ts"],"names":[],"mappings":";;;AAAA,mCAAoC;AACpC,sFAAgE;AAgBvD,qFAhBA,8BAAI,OAgBA;AAdA,QAAA,SAAS,GAAG;IACrB,YAAY,EAAE,4CAA4C;IAC1D,WAAW,EAAE,4CAA4C;IACzD,YAAY,EAAE,oEAAoE;IAClF,WAAW,EAAE,EAAE,IAAI,IAAI,GAAG,EAAE;IAC5B,UAAU,EAAE,EAAE,IAAI,IAAI,GAAG,EAAE;IAC3B,UAAU,EAAE,EAAE,IAAI,GAAG,GAAG,EAAE;IAC1B,UAAU,EAAE,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC;IACzB,WAAW,EAAE,EAAE,IAAI,IAAI,GAAG,EAAE;IAC5B,UAAU,EAAE,EAAE,IAAI,GAAG,GAAG,EAAE;IAC1B,UAAU,EAAE,CAAC,SAAS,EAAE,WAAW,CAAa;CAC1C,CAAC;AAKX,SAAgB,KAAK,CAAC,CAAS;IAC3B,OAAO,IAAA,mBAAU,EAAC,CAAC,CAAC,CAAC;AACzB,CAAC;AAFD,sBAEC"}
1
+ {"version":3,"file":"prelude.js","sourceRoot":"","sources":["../../src/prelude.ts"],"names":[],"mappings":";;;AAAA,mCAAoC;AACpC,sFAAgE;AAgBvD,qFAhBA,8BAAI,OAgBA;AAdA,QAAA,SAAS,GAAG;IACrB,YAAY,EAAE,4CAA4C;IAC1D,WAAW,EAAE,4CAA4C;IACzD,YAAY,EAAE,oEAAoE;IAClF,WAAW,EAAE,EAAE,IAAI,IAAI,GAAG,EAAE;IAC5B,UAAU,EAAE,EAAE,IAAI,IAAI,GAAG,EAAE;IAC3B,UAAU,EAAE,EAAE,IAAI,GAAG,GAAG,EAAE;IAC1B,UAAU,EAAE,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC;IACzB,WAAW,EAAE,EAAE,IAAI,IAAI,GAAG,EAAE;IAC5B,UAAU,EAAE,EAAE,IAAI,GAAG,GAAG,EAAE;IAC1B,UAAU,EAAE,CAAC,SAAS,EAAE,WAAW,CAAa;CAC1C,CAAC;AAKX;;;;;GAKG;AACH,SAAgB,KAAK,CAAC,CAAS;IAC3B,OAAO,IAAA,mBAAU,EAAC,CAAC,CAAC,CAAC;AACzB,CAAC;AAFD,sBAEC"}
@@ -2,14 +2,40 @@
2
2
  /// <reference types="node" />
3
3
  import { PathLike, promises as fs } from 'fs';
4
4
  import { JsonRpcProvider } from 'ethers';
5
+ /**
6
+ * @category profileEVM
7
+ * @dev Default configuration options for the `gasspectEVM` function to analyze gas usage in EVM transactions.
8
+ * @property minOpGasCost The minimal gas cost of operations to be returned in the analysis. Defaults to 300, filtering out less costly operations for clarity.
9
+ * @property args Boolean indicating whether to return the arguments of each operation in the analysis. Defaults to `false`, omitting arguments for simplicity.
10
+ * @property res Boolean indicating whether to return the results of each operation in the analysis. Defaults to `false`, omitting results to focus on gas usage.
11
+ */
5
12
  export declare const gasspectOptionsDefault: {
6
13
  minOpGasCost: number;
7
14
  args: boolean;
8
15
  res: boolean;
9
16
  };
17
+ /**
18
+ * @category profileEVM
19
+ * @notice Profiles EVM execution by counting occurrences of specified instructions in a transaction's execution trace.
20
+ * @param provider An Ethereum provider capable of sending custom RPC requests.
21
+ * @param txHash The hash of the transaction to profile.
22
+ * @param instruction An array of EVM instructions (opcodes) to count within the transaction's execution trace.
23
+ * @param optionalTraceFile An optional file path or handle where the full transaction trace will be saved.
24
+ * @return An array of numbers representing the counts of each instruction specified, in the order they were provided.
25
+ */
10
26
  export declare function profileEVM(provider: JsonRpcProvider | {
11
27
  send: (method: string, params: unknown[]) => Promise<any>;
12
28
  }, txHash: string, instruction: string[], optionalTraceFile?: PathLike | fs.FileHandle): Promise<number[]>;
29
+ /**
30
+ * @category profileEVM
31
+ * @notice Performs gas analysis on EVM transactions, highlighting operations that exceed a specified gas cost.
32
+ * Analyzes gas usage by operations within a transaction, applying filters and formatting based on options.
33
+ * @param provider The Ethereum JSON RPC provider or any custom provider with a `send` method.
34
+ * @param txHash Transaction hash to analyze.
35
+ * @param gasspectOptions Analysis configuration, specifying filters and formatting for gas analysis. See `gasspectOptionsDefault` for default values.
36
+ * @param optionalTraceFile Optional path or handle to save the detailed transaction trace.
37
+ * @return A detailed string array of operations meeting the criteria set in `gasspectOptions`.
38
+ */
13
39
  export declare function gasspectEVM(provider: JsonRpcProvider | {
14
40
  send: (method: string, params: unknown[]) => Promise<any>;
15
41
  }, txHash: string, gasspectOptions?: Record<string, unknown>, optionalTraceFile?: PathLike | fs.FileHandle): Promise<string[]>;