@1inch/solidity-utils 3.8.3 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (159) hide show
  1. package/contracts/interfaces/IERC7597Permit.sol +13 -0
  2. package/contracts/libraries/AddressArray.sol +133 -52
  3. package/contracts/libraries/AddressSet.sol +36 -10
  4. package/contracts/libraries/BySigTraits.sol +46 -0
  5. package/contracts/libraries/SafeERC20.sol +7 -3
  6. package/dist/src/permit.d.ts +3 -1
  7. package/dist/src/permit.js +12 -1
  8. package/dist/src/permit.js.map +1 -1
  9. package/dist/typechain-types/@openzeppelin/contracts/utils/Address.d.ts +20 -0
  10. package/dist/typechain-types/@openzeppelin/contracts/utils/Address.js +3 -0
  11. package/dist/typechain-types/@openzeppelin/contracts/utils/Address.js.map +1 -0
  12. package/dist/typechain-types/@openzeppelin/contracts/utils/index.d.ts +1 -0
  13. package/dist/typechain-types/contracts/index.d.ts +2 -3
  14. package/dist/typechain-types/contracts/interfaces/IERC7597Permit.d.ts +41 -0
  15. package/dist/typechain-types/contracts/interfaces/IERC7597Permit.js +3 -0
  16. package/dist/typechain-types/contracts/interfaces/IERC7597Permit.js.map +1 -0
  17. package/dist/typechain-types/contracts/interfaces/index.d.ts +1 -0
  18. package/dist/typechain-types/contracts/libraries/BySigTraits.d.ts +20 -0
  19. package/dist/typechain-types/contracts/libraries/BySigTraits.js +3 -0
  20. package/dist/typechain-types/contracts/libraries/BySigTraits.js.map +1 -0
  21. package/dist/typechain-types/contracts/libraries/index.d.ts +1 -0
  22. package/dist/typechain-types/contracts/mixins/BySig.d.ts +214 -0
  23. package/dist/typechain-types/contracts/mixins/BySig.js +3 -0
  24. package/dist/typechain-types/contracts/mixins/BySig.js.map +1 -0
  25. package/dist/typechain-types/contracts/{EthReceiver.d.ts → mixins/EthReceiver.d.ts} +1 -1
  26. package/dist/typechain-types/contracts/mixins/EthReceiver.js.map +1 -0
  27. package/dist/typechain-types/contracts/{OnlyWethReceiver.d.ts → mixins/OnlyWethReceiver.d.ts} +1 -1
  28. package/dist/typechain-types/contracts/mixins/OnlyWethReceiver.js.map +1 -0
  29. package/dist/typechain-types/contracts/{PermitAndCall.d.ts → mixins/PermitAndCall.d.ts} +1 -1
  30. package/dist/typechain-types/contracts/mixins/PermitAndCall.js.map +1 -0
  31. package/dist/typechain-types/contracts/mixins/index.d.ts +4 -0
  32. package/dist/typechain-types/contracts/mixins/index.js +3 -0
  33. package/dist/typechain-types/contracts/mixins/index.js.map +1 -0
  34. package/dist/typechain-types/contracts/tests/mocks/AddressSetMock.d.ts +5 -1
  35. package/dist/typechain-types/contracts/tests/mocks/BySigTraitsMock.d.ts +47 -0
  36. package/dist/typechain-types/contracts/tests/mocks/BySigTraitsMock.js +3 -0
  37. package/dist/typechain-types/contracts/tests/mocks/BySigTraitsMock.js.map +1 -0
  38. package/dist/typechain-types/contracts/tests/mocks/TokenWithBySig.d.ts +422 -0
  39. package/dist/typechain-types/contracts/tests/mocks/TokenWithBySig.js +3 -0
  40. package/dist/typechain-types/contracts/tests/mocks/TokenWithBySig.js.map +1 -0
  41. package/dist/typechain-types/contracts/tests/mocks/USDCLikePermitMock.d.ts +260 -0
  42. package/dist/typechain-types/contracts/tests/mocks/USDCLikePermitMock.js +3 -0
  43. package/dist/typechain-types/contracts/tests/mocks/USDCLikePermitMock.js.map +1 -0
  44. package/dist/typechain-types/contracts/tests/mocks/index.d.ts +3 -0
  45. package/dist/typechain-types/factories/@openzeppelin/contracts/utils/Address__factory.d.ts +42 -0
  46. package/dist/typechain-types/factories/@openzeppelin/contracts/utils/Address__factory.js +67 -0
  47. package/dist/typechain-types/factories/@openzeppelin/contracts/utils/Address__factory.js.map +1 -0
  48. package/dist/typechain-types/factories/@openzeppelin/contracts/utils/index.d.ts +1 -0
  49. package/dist/typechain-types/factories/@openzeppelin/contracts/utils/index.js +3 -1
  50. package/dist/typechain-types/factories/@openzeppelin/contracts/utils/index.js.map +1 -1
  51. package/dist/typechain-types/factories/contracts/index.d.ts +1 -3
  52. package/dist/typechain-types/factories/contracts/index.js +2 -7
  53. package/dist/typechain-types/factories/contracts/index.js.map +1 -1
  54. package/dist/typechain-types/factories/contracts/interfaces/IERC7597Permit__factory.d.ts +33 -0
  55. package/dist/typechain-types/factories/contracts/interfaces/IERC7597Permit__factory.js +53 -0
  56. package/dist/typechain-types/factories/contracts/interfaces/IERC7597Permit__factory.js.map +1 -0
  57. package/dist/typechain-types/factories/contracts/interfaces/index.d.ts +1 -0
  58. package/dist/typechain-types/factories/contracts/interfaces/index.js +3 -1
  59. package/dist/typechain-types/factories/contracts/interfaces/index.js.map +1 -1
  60. package/dist/typechain-types/factories/contracts/libraries/AddressArray__factory.d.ts +1 -1
  61. package/dist/typechain-types/factories/contracts/libraries/AddressArray__factory.js +1 -1
  62. package/dist/typechain-types/factories/contracts/libraries/BySigTraits__factory.d.ts +26 -0
  63. package/dist/typechain-types/factories/contracts/libraries/BySigTraits__factory.js +45 -0
  64. package/dist/typechain-types/factories/contracts/libraries/BySigTraits__factory.js.map +1 -0
  65. package/dist/typechain-types/factories/contracts/libraries/SafeERC20__factory.d.ts +1 -1
  66. package/dist/typechain-types/factories/contracts/libraries/SafeERC20__factory.js +1 -1
  67. package/dist/typechain-types/factories/contracts/libraries/UniERC20__factory.d.ts +1 -1
  68. package/dist/typechain-types/factories/contracts/libraries/UniERC20__factory.js +1 -1
  69. package/dist/typechain-types/factories/contracts/libraries/index.d.ts +1 -0
  70. package/dist/typechain-types/factories/contracts/libraries/index.js +3 -1
  71. package/dist/typechain-types/factories/contracts/libraries/index.js.map +1 -1
  72. package/dist/typechain-types/factories/contracts/mixins/BySig__factory.d.ts +286 -0
  73. package/dist/typechain-types/factories/contracts/mixins/BySig__factory.js +385 -0
  74. package/dist/typechain-types/factories/contracts/mixins/BySig__factory.js.map +1 -0
  75. package/dist/typechain-types/factories/contracts/{EthReceiver__factory.d.ts → mixins/EthReceiver__factory.d.ts} +1 -1
  76. package/dist/typechain-types/factories/contracts/mixins/EthReceiver__factory.js.map +1 -0
  77. package/dist/typechain-types/factories/contracts/{OnlyWethReceiver__factory.d.ts → mixins/OnlyWethReceiver__factory.d.ts} +1 -1
  78. package/dist/typechain-types/factories/contracts/mixins/OnlyWethReceiver__factory.js.map +1 -0
  79. package/dist/typechain-types/factories/contracts/{PermitAndCall__factory.d.ts → mixins/PermitAndCall__factory.d.ts} +1 -1
  80. package/dist/typechain-types/factories/contracts/mixins/PermitAndCall__factory.js.map +1 -0
  81. package/dist/typechain-types/factories/contracts/mixins/index.d.ts +4 -0
  82. package/dist/typechain-types/factories/contracts/mixins/index.js +15 -0
  83. package/dist/typechain-types/factories/contracts/mixins/index.js.map +1 -0
  84. package/dist/typechain-types/factories/contracts/tests/mocks/AddressArrayMock__factory.d.ts +1 -5
  85. package/dist/typechain-types/factories/contracts/tests/mocks/AddressArrayMock__factory.js +1 -6
  86. package/dist/typechain-types/factories/contracts/tests/mocks/AddressArrayMock__factory.js.map +1 -1
  87. package/dist/typechain-types/factories/contracts/tests/mocks/AddressSetMock__factory.d.ts +11 -5
  88. package/dist/typechain-types/factories/contracts/tests/mocks/AddressSetMock__factory.js +14 -6
  89. package/dist/typechain-types/factories/contracts/tests/mocks/AddressSetMock__factory.js.map +1 -1
  90. package/dist/typechain-types/factories/contracts/tests/mocks/BySigTraitsMock__factory.d.ts +86 -0
  91. package/dist/typechain-types/factories/contracts/tests/mocks/BySigTraitsMock__factory.js +126 -0
  92. package/dist/typechain-types/factories/contracts/tests/mocks/BySigTraitsMock__factory.js.map +1 -0
  93. package/dist/typechain-types/factories/contracts/tests/mocks/EthReceiverMock__factory.d.ts +1 -1
  94. package/dist/typechain-types/factories/contracts/tests/mocks/EthReceiverMock__factory.js +1 -1
  95. package/dist/typechain-types/factories/contracts/tests/mocks/PermitAndCallMock__factory.d.ts +1 -1
  96. package/dist/typechain-types/factories/contracts/tests/mocks/PermitAndCallMock__factory.js +1 -1
  97. package/dist/typechain-types/factories/contracts/tests/mocks/PermitAndCallMock__factory.js.map +1 -1
  98. package/dist/typechain-types/factories/contracts/tests/mocks/PermitableMock__factory.d.ts +1 -1
  99. package/dist/typechain-types/factories/contracts/tests/mocks/PermitableMock__factory.js +1 -1
  100. package/dist/typechain-types/factories/contracts/tests/mocks/PermitableMock__factory.js.map +1 -1
  101. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20NoReturnMock__factory.d.ts +1 -1
  102. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20NoReturnMock__factory.js +1 -1
  103. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20PermitNoRevertMock__factory.d.ts +1 -1
  104. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20PermitNoRevertMock__factory.js +1 -1
  105. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20ReturnFalseMock__factory.d.ts +1 -1
  106. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20ReturnFalseMock__factory.js +1 -1
  107. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20ReturnTrueMock__factory.d.ts +1 -1
  108. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20ReturnTrueMock__factory.js +1 -1
  109. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20ThroughZeroApprove__factory.d.ts +1 -1
  110. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20ThroughZeroApprove__factory.js +1 -1
  111. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20WithSafeBalance__factory.d.ts +1 -1
  112. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/ERC20WithSafeBalance__factory.js +1 -1
  113. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/Permit2ReturnTrueMock__factory.d.ts +1 -1
  114. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/Permit2ReturnTrueMock__factory.js +1 -1
  115. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/SafeERC20Wrapper__factory.d.ts +1 -1
  116. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/SafeERC20Wrapper__factory.js +1 -1
  117. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/SafeERC20Wrapper__factory.js.map +1 -1
  118. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/SafeWETHWrapper__factory.d.ts +1 -1
  119. package/dist/typechain-types/factories/contracts/tests/mocks/SafeERC20Helper.sol/SafeWETHWrapper__factory.js +1 -1
  120. package/dist/typechain-types/factories/contracts/tests/mocks/TokenWithBySig__factory.d.ts +675 -0
  121. package/dist/typechain-types/factories/contracts/tests/mocks/TokenWithBySig__factory.js +893 -0
  122. package/dist/typechain-types/factories/contracts/tests/mocks/TokenWithBySig__factory.js.map +1 -0
  123. package/dist/typechain-types/factories/contracts/tests/mocks/USDCLikePermitMock__factory.d.ts +481 -0
  124. package/dist/typechain-types/factories/contracts/tests/mocks/USDCLikePermitMock__factory.js +640 -0
  125. package/dist/typechain-types/factories/contracts/tests/mocks/USDCLikePermitMock__factory.js.map +1 -0
  126. package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ERC20Capitals__factory.d.ts +1 -1
  127. package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ERC20Capitals__factory.js +1 -1
  128. package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ERC20bytes32Capitals__factory.d.ts +1 -1
  129. package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ERC20bytes32Capitals__factory.js +1 -1
  130. package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ERC20bytes32__factory.d.ts +1 -1
  131. package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ERC20bytes32__factory.js +1 -1
  132. package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ETHBadReceiver__factory.d.ts +1 -1
  133. package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/ETHBadReceiver__factory.js +1 -1
  134. package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/UniERC20Wrapper__factory.d.ts +1 -1
  135. package/dist/typechain-types/factories/contracts/tests/mocks/UniERC20Helper.sol/UniERC20Wrapper__factory.js +1 -1
  136. package/dist/typechain-types/factories/contracts/tests/mocks/WethReceiverMock__factory.d.ts +1 -1
  137. package/dist/typechain-types/factories/contracts/tests/mocks/WethReceiverMock__factory.js +1 -1
  138. package/dist/typechain-types/factories/contracts/tests/mocks/index.d.ts +3 -0
  139. package/dist/typechain-types/factories/contracts/tests/mocks/index.js +7 -1
  140. package/dist/typechain-types/factories/contracts/tests/mocks/index.js.map +1 -1
  141. package/dist/typechain-types/index.d.ts +20 -6
  142. package/dist/typechain-types/index.js +22 -8
  143. package/dist/typechain-types/index.js.map +1 -1
  144. package/package.json +1 -1
  145. package/contracts/EthReceiver.sol +0 -16
  146. package/contracts/OnlyWethReceiver.sol +0 -17
  147. package/contracts/PermitAndCall.sol +0 -28
  148. package/dist/typechain-types/contracts/EthReceiver.js.map +0 -1
  149. package/dist/typechain-types/contracts/OnlyWethReceiver.js.map +0 -1
  150. package/dist/typechain-types/contracts/PermitAndCall.js.map +0 -1
  151. package/dist/typechain-types/factories/contracts/EthReceiver__factory.js.map +0 -1
  152. package/dist/typechain-types/factories/contracts/OnlyWethReceiver__factory.js.map +0 -1
  153. package/dist/typechain-types/factories/contracts/PermitAndCall__factory.js.map +0 -1
  154. /package/dist/typechain-types/contracts/{EthReceiver.js → mixins/EthReceiver.js} +0 -0
  155. /package/dist/typechain-types/contracts/{OnlyWethReceiver.js → mixins/OnlyWethReceiver.js} +0 -0
  156. /package/dist/typechain-types/contracts/{PermitAndCall.js → mixins/PermitAndCall.js} +0 -0
  157. /package/dist/typechain-types/factories/contracts/{EthReceiver__factory.js → mixins/EthReceiver__factory.js} +0 -0
  158. /package/dist/typechain-types/factories/contracts/{OnlyWethReceiver__factory.js → mixins/OnlyWethReceiver__factory.js} +0 -0
  159. /package/dist/typechain-types/factories/contracts/{PermitAndCall__factory.js → mixins/PermitAndCall__factory.js} +0 -0
@@ -1,28 +0,0 @@
1
- // SPDX-License-Identifier: MIT
2
-
3
- pragma solidity ^0.8.0;
4
-
5
- import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
6
- import { SafeERC20 } from "./libraries/SafeERC20.sol";
7
-
8
- abstract contract PermitAndCall {
9
- using SafeERC20 for IERC20;
10
-
11
- function permitAndCall(bytes calldata permit, bytes calldata action) external payable {
12
- IERC20(address(bytes20(permit))).tryPermit(permit[20:]);
13
- // solhint-disable-next-line no-inline-assembly
14
- assembly ("memory-safe") {
15
- let ptr := mload(0x40)
16
- calldatacopy(ptr, action.offset, action.length)
17
- let success := delegatecall(gas(), address(), ptr, action.length, 0, 0)
18
- returndatacopy(ptr, 0, returndatasize())
19
- switch success
20
- case 0 {
21
- revert(ptr, returndatasize())
22
- }
23
- default {
24
- return(ptr, returndatasize())
25
- }
26
- }
27
- }
28
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"EthReceiver.js","sourceRoot":"","sources":["../../../typechain-types/contracts/EthReceiver.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"OnlyWethReceiver.js","sourceRoot":"","sources":["../../../typechain-types/contracts/OnlyWethReceiver.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"PermitAndCall.js","sourceRoot":"","sources":["../../../typechain-types/contracts/PermitAndCall.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"EthReceiver__factory.js","sourceRoot":"","sources":["../../../../typechain-types/factories/contracts/EthReceiver__factory.ts"],"names":[],"mappings":";AAAA,+CAA+C;AAC/C,oBAAoB;AACpB,oBAAoB;;;AAEpB,mCAAkE;AAMlE,MAAM,IAAI,GAAG;IACX;QACE,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,oBAAoB;QAC1B,IAAI,EAAE,OAAO;KACd;IACD;QACE,eAAe,EAAE,SAAS;QAC1B,IAAI,EAAE,SAAS;KAChB;CACO,CAAC;AAEX,MAAa,oBAAoB;IAE/B,MAAM,CAAC,eAAe;QACpB,OAAO,IAAI,kBAAS,CAAC,IAAI,CAAyB,CAAC;IACrD,CAAC;IACD,MAAM,CAAC,OAAO,CAAC,OAAe,EAAE,MAA8B;QAC5D,OAAO,IAAI,iBAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAA2B,CAAC;IACvE,CAAC;;AAPH,oDAQC;AAPiB,wBAAG,GAAG,IAAI,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"OnlyWethReceiver__factory.js","sourceRoot":"","sources":["../../../../typechain-types/factories/contracts/OnlyWethReceiver__factory.ts"],"names":[],"mappings":";AAAA,+CAA+C;AAC/C,oBAAoB;AACpB,oBAAoB;;;AAEpB,mCAAkE;AAMlE,MAAM,IAAI,GAAG;IACX;QACE,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,oBAAoB;QAC1B,IAAI,EAAE,OAAO;KACd;IACD;QACE,eAAe,EAAE,SAAS;QAC1B,IAAI,EAAE,SAAS;KAChB;CACO,CAAC;AAEX,MAAa,yBAAyB;IAEpC,MAAM,CAAC,eAAe;QACpB,OAAO,IAAI,kBAAS,CAAC,IAAI,CAA8B,CAAC;IAC1D,CAAC;IACD,MAAM,CAAC,OAAO,CACZ,OAAe,EACf,MAA8B;QAE9B,OAAO,IAAI,iBAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAgC,CAAC;IAC5E,CAAC;;AAVH,8DAWC;AAViB,6BAAG,GAAG,IAAI,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"PermitAndCall__factory.js","sourceRoot":"","sources":["../../../../typechain-types/factories/contracts/PermitAndCall__factory.ts"],"names":[],"mappings":";AAAA,+CAA+C;AAC/C,oBAAoB;AACpB,oBAAoB;;;AAEpB,mCAAkE;AAMlE,MAAM,IAAI,GAAG;IACX;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,OAAO;gBACrB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,OAAO;aACd;YACD;gBACE,YAAY,EAAE,OAAO;gBACrB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,OAAO;aACd;SACF;QACD,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,EAAE;QACX,eAAe,EAAE,SAAS;QAC1B,IAAI,EAAE,UAAU;KACjB;CACO,CAAC;AAEX,MAAa,sBAAsB;IAEjC,MAAM,CAAC,eAAe;QACpB,OAAO,IAAI,kBAAS,CAAC,IAAI,CAA2B,CAAC;IACvD,CAAC;IACD,MAAM,CAAC,OAAO,CACZ,OAAe,EACf,MAA8B;QAE9B,OAAO,IAAI,iBAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAA6B,CAAC;IACzE,CAAC;;AAVH,wDAWC;AAViB,0BAAG,GAAG,IAAI,CAAC"}