@coti-io/coti-contracts 1.3.0 → 1.3.1

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 (360) hide show
  1. package/contracts/access/DataPrivacyFramework/DataPrivacyFramework.sol +1 -1
  2. package/contracts/access/DataPrivacyFramework/extensions/DataPrivacyFrameworkMpc.sol +1 -1
  3. package/contracts/disperse/coinByRatio/FixedRatioCoinDisperserUnlimitedWindow.sol +2 -4
  4. package/contracts/disperse/disperseToken/MintDisperser.sol +1 -3
  5. package/contracts/disperse/disperseToken/TokenDisperser.sol +1 -1
  6. package/contracts/messaging/PrivateMessaging.sol +1 -1
  7. package/contracts/mocks/access/DataPrivacyFramework/DataPrivacyFrameworkMock.sol +1 -1
  8. package/contracts/mocks/messaging/PrivateMessagingHarness.sol +1 -1
  9. package/contracts/mocks/oracle/CotiPriceConsumerMock.sol +1 -1
  10. package/contracts/mocks/token/ERC20DecimalsMock.sol +1 -1
  11. package/contracts/mocks/token/ERC20Mock.sol +1 -1
  12. package/contracts/mocks/token/PrivateERC20/EncryptedTokenReceiverMock.sol +1 -1
  13. package/contracts/mocks/token/PrivateERC20/PrivacyBridgeERC20Mock.sol +1 -1
  14. package/contracts/mocks/token/PrivateERC20/PrivateERC20AuditorSupplyMock.sol +1 -1
  15. package/contracts/mocks/token/PrivateERC20/PrivateERC20CappedMock.sol +1 -1
  16. package/contracts/mocks/token/PrivateERC20/PrivateERC20GtCallerMock.sol +1 -1
  17. package/contracts/mocks/token/PrivateERC20/PrivateERC20Mock.sol +1 -1
  18. package/contracts/mocks/token/PrivateERC20/PrivateERC20ReentrantReceiverMock.sol +1 -1
  19. package/contracts/mocks/token/PrivateERC20/PublicReentrantTokenReceiverMock.sol +1 -1
  20. package/contracts/mocks/token/PrivateERC20/PublicTokenReceiverBoolMock.sol +1 -1
  21. package/contracts/mocks/token/PrivateERC20/PublicTokenReceiverMock.sol +1 -1
  22. package/contracts/mocks/token/PrivateERC721/PrivateERC721URIStorageMock.sol +1 -1
  23. package/contracts/mocks/utils/mpc/Arithmetic128TestsContract.sol +1 -1
  24. package/contracts/mocks/utils/mpc/Arithmetic256TestsContract.sol +1 -1
  25. package/contracts/mocks/utils/mpc/ArithmeticAddTestsContract.sol +196 -0
  26. package/contracts/mocks/utils/mpc/ArithmeticMulTestsContract.sol +194 -0
  27. package/contracts/mocks/utils/mpc/ArithmeticSigned128TestsContract.sol +63 -0
  28. package/contracts/mocks/utils/mpc/ArithmeticSigned256TestsContract.sol +107 -0
  29. package/contracts/mocks/utils/mpc/ArithmeticSignedNarrowTestsContract.sol +123 -0
  30. package/contracts/mocks/utils/mpc/ArithmeticSubTestsContract.sol +196 -0
  31. package/contracts/mocks/utils/mpc/Bitwise128TestsContract.sol +1 -1
  32. package/contracts/mocks/utils/mpc/Bitwise256TestsContract.sol +1 -1
  33. package/contracts/mocks/utils/mpc/BitwiseTestsContract.sol +1 -1
  34. package/contracts/mocks/utils/mpc/CheckedArithmetic128WithOverflowBitTestsContract.sol +1 -1
  35. package/contracts/mocks/utils/mpc/CheckedArithmetic256WithOverflowBitTestsContract.sol +1 -1
  36. package/contracts/mocks/utils/mpc/CheckedArithmeticWIthOverflowBitTestsContract.sol +1 -1
  37. package/contracts/mocks/utils/mpc/Comparison128TestsContract.sol +1 -1
  38. package/contracts/mocks/utils/mpc/Comparison1TestsContract.sol +1 -1
  39. package/contracts/mocks/utils/mpc/Comparison256TestsContract.sol +1 -1
  40. package/contracts/mocks/utils/mpc/Comparison2TestsContract.sol +1 -1
  41. package/contracts/mocks/utils/mpc/MinMax128TestsContract.sol +1 -1
  42. package/contracts/mocks/utils/mpc/MinMax256TestsContract.sol +1 -1
  43. package/contracts/mocks/utils/mpc/MinMaxTestsContract.sol +1 -1
  44. package/contracts/mocks/utils/mpc/MinimalImplementation.sol +1 -1
  45. package/contracts/mocks/utils/mpc/MinimalProxy.sol +1 -1
  46. package/contracts/mocks/utils/mpc/Miscellaneous1TestsContract.sol +1 -1
  47. package/contracts/mocks/utils/mpc/MiscellaneousTestsContract.sol +1 -1
  48. package/contracts/mocks/utils/mpc/MpcOperations128TestContract.sol +1 -1
  49. package/contracts/mocks/utils/mpc/MpcOperationsTestContract.sol +4 -4
  50. package/contracts/mocks/utils/mpc/Mux128TestsContract.sol +1 -1
  51. package/contracts/mocks/utils/mpc/Mux256TestsContract.sol +1 -1
  52. package/contracts/mocks/utils/mpc/OffboardToUserKeyTestContract.sol +1 -1
  53. package/contracts/mocks/utils/mpc/OnBoard128TestsContract.sol +1 -1
  54. package/contracts/mocks/utils/mpc/OnBoard256TestsContract.sol +1 -1
  55. package/contracts/mocks/utils/mpc/PrivacyImplementationV1.sol +1 -1
  56. package/contracts/mocks/utils/mpc/PrivacyImplementationV2.sol +1 -1
  57. package/contracts/mocks/utils/mpc/PrivacyProxy.sol +1 -1
  58. package/contracts/mocks/utils/mpc/Random128TestsContract.sol +1 -1
  59. package/contracts/mocks/utils/mpc/Random256TestsContract.sol +1 -1
  60. package/contracts/mocks/utils/mpc/Shift128TestsContract.sol +1 -1
  61. package/contracts/mocks/utils/mpc/Shift256TestsContract.sol +1 -1
  62. package/contracts/mocks/utils/mpc/ShiftTestsContract.sol +1 -1
  63. package/contracts/mocks/utils/mpc/StringTestsContract.sol +1 -1
  64. package/contracts/mocks/utils/mpc/Transfer128TestsContract.sol +1 -1
  65. package/contracts/mocks/utils/mpc/Transfer256TestsContract.sol +1 -1
  66. package/contracts/mocks/utils/mpc/TransferScalarTestsContract.sol +1 -1
  67. package/contracts/mocks/utils/mpc/TransferTestsContract.sol +1 -1
  68. package/contracts/mocks/utils/mpc/TransferWithAllowance128TestsContract.sol +1 -1
  69. package/contracts/mocks/utils/mpc/TransferWithAllowance256TestsContract.sol +1 -1
  70. package/contracts/mocks/utils/mpc/TransferWithAllowance64_16TestsContract.sol +1 -1
  71. package/contracts/mocks/utils/mpc/TransferWithAllowance64_32TestsContract.sol +1 -1
  72. package/contracts/mocks/utils/mpc/TransferWithAllowance64_64TestsContract.sol +1 -1
  73. package/contracts/mocks/utils/mpc/TransferWithAllowance64_8TestsContract.sol +1 -1
  74. package/contracts/mocks/utils/mpc/TransferWithAllowanceScalarTestsContract.sol +1 -1
  75. package/contracts/mocks/utils/mpc/TransferWithAllowanceTestsContract.sol +1 -1
  76. package/contracts/mocks/utils/mpc/ValidateCiphertext128TestsContract.sol +1 -1
  77. package/contracts/mocks/utils/mpc/ValidateCiphertext256TestsContract.sol +2 -2
  78. package/contracts/mocks/utils/mpc/ValidateCiphertextTestsContract.sol +1 -1
  79. package/contracts/mocks/wallet/PrivateERC20Wallet/PrivateERC20WalletMock.sol +1 -1
  80. package/contracts/node/CotiNodeRewards.sol +3 -3
  81. package/contracts/node/SoulboundNodeNFT.sol +1 -2
  82. package/contracts/onboard/AccountOnboard.sol +1 -1
  83. package/contracts/oracle/ICotiPriceConsumer.sol +1 -1
  84. package/contracts/pod/IInbox.sol +231 -0
  85. package/contracts/pod/IInboxMiner.sol +53 -0
  86. package/contracts/pod/InboxUser.sol +29 -0
  87. package/contracts/pod/InboxUserCotiTestnet.sol +13 -0
  88. package/contracts/pod/PodNetworkConstants.sol +30 -0
  89. package/contracts/pod/examples/MpcAdder.sol +57 -0
  90. package/contracts/pod/examples/MpcAdderPausable.sol +25 -0
  91. package/contracts/pod/examples/MpcAdderPausable.sol.bak +25 -0
  92. package/contracts/pod/examples/it128/PodAdder128.sol +48 -0
  93. package/contracts/pod/examples/it256/PodAdder256.sol +48 -0
  94. package/contracts/pod/fee/IInboxFeeManager.sol +40 -0
  95. package/contracts/pod/manifest.json +52 -0
  96. package/contracts/pod/mpc/PodLib.sol +10 -0
  97. package/contracts/pod/mpc/PodLib128.sol +361 -0
  98. package/contracts/pod/mpc/PodLib256.sol +361 -0
  99. package/contracts/pod/mpc/PodLib64.sol +385 -0
  100. package/contracts/pod/mpc/PodLibBase.sol +72 -0
  101. package/contracts/pod/mpc/PodUser.sol +58 -0
  102. package/contracts/pod/mpc/PodUserFuji.sol +14 -0
  103. package/contracts/pod/mpc/PodUserSepolia.sol +13 -0
  104. package/contracts/pod/mpc/coti-side/IPodExecutorOps.sol +99 -0
  105. package/contracts/pod/mpccodec/MpcAbiCodec.sol +482 -0
  106. package/contracts/pod/privacy/IPodPriceOracle.sol +20 -0
  107. package/contracts/pod/privacy/IPrivacyPortal.sol +248 -0
  108. package/contracts/pod/privacy/IPrivacyPortalFactory.sol +88 -0
  109. package/contracts/pod/privacy/PortalFeeOracle.sol +51 -0
  110. package/contracts/pod/privacy/PrivacyPortal.sol +871 -0
  111. package/contracts/pod/privacy/PrivacyPortalFactory.sol +492 -0
  112. package/contracts/pod/privacy/PrivacyPortalFeeLib.sol +98 -0
  113. package/contracts/pod/privacy/mocks/CloneHelper.sol +14 -0
  114. package/contracts/pod/privacy/mocks/MockERC20.sol +26 -0
  115. package/contracts/pod/privacy/mocks/MockPodERC20ForPortal.sol +160 -0
  116. package/contracts/pod/privacy/mocks/MockPrivacyPortalFactory.sol +125 -0
  117. package/contracts/pod/privacy/mocks/MockWrappedNative.sol +24 -0
  118. package/contracts/pod/token/erc7984/Erc7984Constants.sol +9 -0
  119. package/contracts/pod/token/erc7984/Erc7984Pointers.sol +29 -0
  120. package/contracts/pod/token/erc7984/IERC7984.sol +69 -0
  121. package/contracts/pod/token/erc7984/IERC7984PortalWrapper.sol +31 -0
  122. package/contracts/pod/token/erc7984/PodErc7984Mixin.sol +125 -0
  123. package/contracts/pod/token/erc7984/README.md +60 -0
  124. package/contracts/pod/token/perc20/IPodERC20.sol +298 -0
  125. package/contracts/pod/token/perc20/PodERC20.sol +1021 -0
  126. package/contracts/pod/token/perc20/PodErc20Mintable.sol +88 -0
  127. package/contracts/pod/token/perc20/PodErc20MintableInitializable.sol +42 -0
  128. package/contracts/pod/token/perc20/cotiside/IPodErc20CotiSide.sol +88 -0
  129. package/contracts/pod/token/perc20/cotiside/PodErc20CotiMother.sol +529 -0
  130. package/contracts/pod/utils/IWrappedNative.sol +11 -0
  131. package/contracts/privacyBridge/PrivacyBridge.sol +5 -5
  132. package/contracts/privacyBridge/PrivacyBridgeCotiNative.sol +1 -1
  133. package/contracts/privacyBridge/PrivacyBridgeERC20.sol +1 -1
  134. package/contracts/privacyBridge/PrivacyBridgeUSDCe.sol +1 -1
  135. package/contracts/privacyBridge/PrivacyBridgeUSDT.sol +1 -1
  136. package/contracts/privacyBridge/PrivacyBridgeWADA.sol +1 -1
  137. package/contracts/privacyBridge/PrivacyBridgeWBTC.sol +1 -1
  138. package/contracts/privacyBridge/PrivacyBridgeWETH.sol +1 -1
  139. package/contracts/privacyBridge/PrivacyBridgegCoti.sol +1 -1
  140. package/contracts/token/PrivateERC20/IPrivateERC20.sol +1 -1
  141. package/contracts/token/PrivateERC20/ITokenReceiver.sol +1 -1
  142. package/contracts/token/PrivateERC20/ITokenReceiverEncrypted.sol +1 -1
  143. package/contracts/token/PrivateERC20/PrivateERC20.sol +5 -5
  144. package/contracts/token/PrivateERC20/tokens/PrivateBridgedUSDC.sol +1 -1
  145. package/contracts/token/PrivateERC20/tokens/PrivateCOTI.sol +1 -1
  146. package/contracts/token/PrivateERC20/tokens/PrivateCOTITreasuryGovernanceToken.sol +1 -1
  147. package/contracts/token/PrivateERC20/tokens/PrivateTetherUSD.sol +1 -1
  148. package/contracts/token/PrivateERC20/tokens/PrivateWrappedADA.sol +1 -1
  149. package/contracts/token/PrivateERC20/tokens/PrivateWrappedBTC.sol +1 -1
  150. package/contracts/token/PrivateERC20/tokens/PrivateWrappedEther.sol +1 -1
  151. package/contracts/token/PrivateERC721/IERC721Errors.sol +1 -1
  152. package/contracts/token/PrivateERC721/PrivateERC721.sol +1 -1
  153. package/contracts/token/PrivateERC721/extensions/IPrivateERC721URIStorage.sol +1 -1
  154. package/contracts/token/PrivateERC721/extensions/PrivateERC721URIStorage.sol +1 -1
  155. package/contracts/token/points/CotiTokenPoints004.sol +43 -0
  156. package/contracts/utils/mpc/MpcCore.sol +610 -1
  157. package/contracts/utils/mpc/MpcInterface.sol +1 -1
  158. package/hardhat.config.ts +5 -14
  159. package/package.json +4 -4
  160. package/scripts/deployCotiTokenPoints004.ts +61 -0
  161. package/scripts/deployFixedRatioCoinDisperserUnlimitedWindow.ts +68 -0
  162. package/scripts/verifyCotiTokenPoints004.ts +123 -0
  163. package/scripts/verifyFixedRatioCoinDisperserUnlimitedWindow.ts +112 -0
  164. package/test/messaging/PrivateMessaging.test.ts +5 -5
  165. package/test/pod/privacy/PrivacyPortal.access.test.ts +756 -0
  166. package/test/pod/privacy/PrivacyPortal.recovery.test.ts +263 -0
  167. package/test/privacyBridge/UnifiedPrivacyBridges.test.cjs +5 -3
  168. package/test/utils/mpc/CheckedSignedArithmetic256.test.ts +163 -0
  169. package/test/utils/mpc/NegativeCases.test.ts +3 -3
  170. package/test/utils/mpc/Precompile.test.ts +6 -6
  171. package/typechain-types/@openzeppelin/contracts/access/AccessControl.ts +2 -2
  172. package/typechain-types/@openzeppelin/contracts/access/IAccessControl.ts +2 -2
  173. package/typechain-types/@openzeppelin/contracts/access/extensions/AccessControlEnumerable.ts +375 -0
  174. package/typechain-types/@openzeppelin/contracts/access/extensions/IAccessControlEnumerable.ts +329 -0
  175. package/typechain-types/@openzeppelin/contracts/access/extensions/index.ts +5 -0
  176. package/typechain-types/@openzeppelin/contracts/access/index.ts +2 -0
  177. package/typechain-types/@openzeppelin/contracts/interfaces/IERC1363.ts +412 -0
  178. package/typechain-types/@openzeppelin/contracts/interfaces/IERC5267.ts +151 -0
  179. package/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.ts +69 -0
  180. package/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.ts +69 -0
  181. package/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.ts +69 -0
  182. package/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/index.ts +6 -0
  183. package/typechain-types/@openzeppelin/contracts/interfaces/index.ts +4 -0
  184. package/typechain-types/@openzeppelin/contracts/token/ERC20/ERC20.ts +6 -50
  185. package/typechain-types/@openzeppelin/contracts/token/ERC20/IERC20.ts +6 -6
  186. package/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.ts +313 -0
  187. package/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/ERC20Pausable.ts +356 -0
  188. package/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.ts +423 -0
  189. package/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.ts +6 -6
  190. package/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/index.ts +3 -0
  191. package/typechain-types/@openzeppelin/contracts/token/ERC20/index.ts +2 -0
  192. package/typechain-types/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.ts +69 -0
  193. package/typechain-types/@openzeppelin/contracts/token/ERC20/utils/index.ts +4 -0
  194. package/typechain-types/@openzeppelin/contracts/utils/Nonces.ts +85 -0
  195. package/typechain-types/@openzeppelin/contracts/utils/Pausable.ts +150 -0
  196. package/typechain-types/@openzeppelin/contracts/utils/ReentrancyGuard.ts +69 -0
  197. package/typechain-types/@openzeppelin/contracts/utils/ShortStrings.ts +69 -0
  198. package/typechain-types/@openzeppelin/contracts/utils/Strings.ts +69 -0
  199. package/typechain-types/@openzeppelin/contracts/utils/cryptography/ECDSA.ts +69 -0
  200. package/typechain-types/@openzeppelin/contracts/utils/cryptography/EIP712.ts +151 -0
  201. package/typechain-types/@openzeppelin/contracts/utils/cryptography/index.ts +5 -0
  202. package/typechain-types/@openzeppelin/contracts/utils/index.ts +9 -0
  203. package/typechain-types/@openzeppelin/contracts/utils/math/SafeCast.ts +69 -0
  204. package/typechain-types/@openzeppelin/contracts/utils/math/index.ts +4 -0
  205. package/typechain-types/contracts/mocks/token/ERC20DecimalsMock.ts +6 -50
  206. package/typechain-types/contracts/mocks/token/ERC20Mock.ts +6 -50
  207. package/typechain-types/contracts/mocks/token/PrivateERC20/PrivacyBridgeERC20Mock.ts +16 -2
  208. package/typechain-types/contracts/mocks/token/PrivateERC20/PrivateERC20AuditorSupplyMock.ts +2 -2
  209. package/typechain-types/contracts/mocks/token/PrivateERC20/PrivateERC20CappedMock.ts +2 -2
  210. package/typechain-types/contracts/mocks/token/PrivateERC20/PrivateERC20Mock.ts +2 -2
  211. package/typechain-types/contracts/privacyBridge/PrivacyBridge.ts +16 -2
  212. package/typechain-types/contracts/privacyBridge/PrivacyBridgeCotiNative.ts +16 -2
  213. package/typechain-types/contracts/privacyBridge/PrivacyBridgeERC20.sol/PrivacyBridgeERC20.ts +16 -2
  214. package/typechain-types/contracts/privacyBridge/PrivacyBridgeUSDCe.ts +16 -2
  215. package/typechain-types/contracts/privacyBridge/PrivacyBridgeUSDT.ts +16 -2
  216. package/typechain-types/contracts/privacyBridge/PrivacyBridgeWADA.ts +16 -2
  217. package/typechain-types/contracts/privacyBridge/PrivacyBridgeWBTC.ts +16 -2
  218. package/typechain-types/contracts/privacyBridge/PrivacyBridgeWETH.ts +16 -2
  219. package/typechain-types/contracts/privacyBridge/PrivacyBridgegCoti.ts +16 -2
  220. package/typechain-types/contracts/token/PrivateERC20/PrivateERC20.ts +2 -2
  221. package/typechain-types/contracts/token/PrivateERC20/tokens/PrivateBridgedUSDC.ts +2 -2
  222. package/typechain-types/contracts/token/PrivateERC20/tokens/PrivateCOTI.ts +2 -2
  223. package/typechain-types/contracts/token/PrivateERC20/tokens/PrivateCOTITreasuryGovernanceToken.ts +2 -2
  224. package/typechain-types/contracts/token/PrivateERC20/tokens/PrivateTetherUSD.ts +2 -2
  225. package/typechain-types/contracts/token/PrivateERC20/tokens/PrivateWrappedADA.ts +2 -2
  226. package/typechain-types/contracts/token/PrivateERC20/tokens/PrivateWrappedBTC.ts +2 -2
  227. package/typechain-types/contracts/token/PrivateERC20/tokens/PrivateWrappedEther.ts +2 -2
  228. package/typechain-types/contracts/token/index.ts +2 -0
  229. package/typechain-types/contracts/token/points/CotiTokenPoints004.sol/COTITokenPoints004.ts +826 -0
  230. package/typechain-types/contracts/token/points/CotiTokenPoints004.ts +826 -0
  231. package/typechain-types/contracts/token/points/index.ts +4 -0
  232. package/typechain-types/factories/@openzeppelin/contracts/access/AccessControl__factory.ts +22 -1
  233. package/typechain-types/factories/@openzeppelin/contracts/access/IAccessControl__factory.ts +22 -1
  234. package/typechain-types/factories/@openzeppelin/contracts/access/Ownable__factory.ts +22 -0
  235. package/typechain-types/factories/@openzeppelin/contracts/access/extensions/AccessControlEnumerable__factory.ts +316 -0
  236. package/typechain-types/factories/@openzeppelin/contracts/access/extensions/IAccessControlEnumerable__factory.ts +265 -0
  237. package/typechain-types/factories/@openzeppelin/contracts/access/extensions/index.ts +5 -0
  238. package/typechain-types/factories/@openzeppelin/contracts/access/index.ts +1 -0
  239. package/typechain-types/factories/@openzeppelin/contracts/interfaces/IERC1363__factory.ts +393 -0
  240. package/typechain-types/factories/@openzeppelin/contracts/interfaces/IERC5267__factory.ts +71 -0
  241. package/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors__factory.ts +127 -0
  242. package/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors__factory.ts +111 -0
  243. package/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors__factory.ts +128 -0
  244. package/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/index.ts +6 -0
  245. package/typechain-types/factories/@openzeppelin/contracts/interfaces/index.ts +3 -0
  246. package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/ERC20__factory.ts +84 -110
  247. package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/IERC20__factory.ts +3 -3
  248. package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable__factory.ts +364 -0
  249. package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/ERC20Pausable__factory.ts +382 -0
  250. package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit__factory.ts +540 -0
  251. package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata__factory.ts +3 -3
  252. package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/index.ts +3 -0
  253. package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/index.ts +1 -0
  254. package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/utils/SafeERC20__factory.ts +96 -0
  255. package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/utils/index.ts +4 -0
  256. package/typechain-types/factories/@openzeppelin/contracts/token/ERC721/ERC721__factory.ts +98 -59
  257. package/typechain-types/factories/@openzeppelin/contracts/utils/Nonces__factory.ts +57 -0
  258. package/typechain-types/factories/@openzeppelin/contracts/utils/Pausable__factory.ts +71 -0
  259. package/typechain-types/factories/@openzeppelin/contracts/utils/ReentrancyGuard__factory.ts +30 -0
  260. package/typechain-types/factories/@openzeppelin/contracts/utils/ShortStrings__factory.ts +83 -0
  261. package/typechain-types/factories/@openzeppelin/contracts/utils/Strings__factory.ts +90 -0
  262. package/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/ECDSA__factory.ts +91 -0
  263. package/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/EIP712__factory.ts +87 -0
  264. package/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/index.ts +5 -0
  265. package/typechain-types/factories/@openzeppelin/contracts/utils/index.ts +7 -0
  266. package/typechain-types/factories/@openzeppelin/contracts/utils/math/SafeCast__factory.ts +118 -0
  267. package/typechain-types/factories/@openzeppelin/contracts/utils/math/index.ts +4 -0
  268. package/typechain-types/factories/contracts/disperse/coinByRatio/FixedRatioCoinDisperserLeftoverS1__factory.ts +12 -1
  269. package/typechain-types/factories/contracts/disperse/coinByRatio/FixedRatioCoinDisperserUnlimitedWindow__factory.ts +39 -1
  270. package/typechain-types/factories/contracts/disperse/coinByRatio/FixedRatioCoinDisperser__factory.ts +12 -1
  271. package/typechain-types/factories/contracts/disperse/disperseToken/MintDisperser.sol/MintDisperser__factory.ts +23 -1
  272. package/typechain-types/factories/contracts/disperse/disperseToken/TokenDisperser__factory.ts +12 -1
  273. package/typechain-types/factories/contracts/messaging/PrivateMessaging__factory.ts +1 -1
  274. package/typechain-types/factories/contracts/mocks/messaging/PrivateMessagingHarness__factory.ts +1 -1
  275. package/typechain-types/factories/contracts/mocks/token/ERC20DecimalsMock__factory.ts +90 -52
  276. package/typechain-types/factories/contracts/mocks/token/ERC20Mock__factory.ts +90 -52
  277. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PrivacyBridgeERC20Mock__factory.ts +90 -2
  278. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PrivateERC20AuditorSupplyMock__factory.ts +28 -2
  279. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PrivateERC20CappedMock__factory.ts +28 -2
  280. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PrivateERC20GtCallerMock__factory.ts +1 -1
  281. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PrivateERC20Mock__factory.ts +28 -2
  282. package/typechain-types/factories/contracts/mocks/token/PrivateERC721/PrivateERC721URIStorageMock__factory.ts +1 -1
  283. package/typechain-types/factories/contracts/mocks/utils/mpc/Arithmetic128TestsContract__factory.ts +1 -1
  284. package/typechain-types/factories/contracts/mocks/utils/mpc/Arithmetic256TestsContract__factory.ts +1 -1
  285. package/typechain-types/factories/contracts/mocks/utils/mpc/ArithmeticTestsContract__factory.ts +1 -1
  286. package/typechain-types/factories/contracts/mocks/utils/mpc/Bitwise128TestsContract__factory.ts +1 -1
  287. package/typechain-types/factories/contracts/mocks/utils/mpc/Bitwise256TestsContract__factory.ts +1 -1
  288. package/typechain-types/factories/contracts/mocks/utils/mpc/BitwiseTestsContract__factory.ts +1 -1
  289. package/typechain-types/factories/contracts/mocks/utils/mpc/CheckedArithmetic128WithOverflowBitTestsContract__factory.ts +1 -1
  290. package/typechain-types/factories/contracts/mocks/utils/mpc/CheckedArithmetic256WithOverflowBitTestsContract__factory.ts +1 -1
  291. package/typechain-types/factories/contracts/mocks/utils/mpc/CheckedArithmeticWIthOverflowBitTestsContract.sol/CheckedArithmeticWithOverflowBitTestsContract__factory.ts +1 -1
  292. package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison128TestsContract__factory.ts +1 -1
  293. package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison1TestsContract__factory.ts +1 -1
  294. package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison256TestsContract__factory.ts +1 -1
  295. package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison2TestsContract__factory.ts +1 -1
  296. package/typechain-types/factories/contracts/mocks/utils/mpc/MinMax128TestsContract__factory.ts +1 -1
  297. package/typechain-types/factories/contracts/mocks/utils/mpc/MinMax256TestsContract__factory.ts +1 -1
  298. package/typechain-types/factories/contracts/mocks/utils/mpc/MinMaxTestsContract__factory.ts +1 -1
  299. package/typechain-types/factories/contracts/mocks/utils/mpc/MinimalImplementation__factory.ts +1 -1
  300. package/typechain-types/factories/contracts/mocks/utils/mpc/Miscellaneous1TestsContract__factory.ts +1 -1
  301. package/typechain-types/factories/contracts/mocks/utils/mpc/MiscellaneousTestsContract__factory.ts +1 -1
  302. package/typechain-types/factories/contracts/mocks/utils/mpc/MpcOperations128TestContract__factory.ts +1 -1
  303. package/typechain-types/factories/contracts/mocks/utils/mpc/MpcOperationsTestContract__factory.ts +1 -1
  304. package/typechain-types/factories/contracts/mocks/utils/mpc/Mux128TestsContract__factory.ts +1 -1
  305. package/typechain-types/factories/contracts/mocks/utils/mpc/Mux256TestsContract__factory.ts +1 -1
  306. package/typechain-types/factories/contracts/mocks/utils/mpc/OffboardToUserKeyTestContract__factory.ts +1 -1
  307. package/typechain-types/factories/contracts/mocks/utils/mpc/OnBoard128TestsContract__factory.ts +1 -1
  308. package/typechain-types/factories/contracts/mocks/utils/mpc/OnBoard256TestsContract__factory.ts +1 -1
  309. package/typechain-types/factories/contracts/mocks/utils/mpc/PrivacyImplementationV1__factory.ts +1 -1
  310. package/typechain-types/factories/contracts/mocks/utils/mpc/PrivacyImplementationV2__factory.ts +1 -1
  311. package/typechain-types/factories/contracts/mocks/utils/mpc/Random128TestsContract__factory.ts +1 -1
  312. package/typechain-types/factories/contracts/mocks/utils/mpc/Random256TestsContract__factory.ts +1 -1
  313. package/typechain-types/factories/contracts/mocks/utils/mpc/Shift128TestsContract__factory.ts +1 -1
  314. package/typechain-types/factories/contracts/mocks/utils/mpc/Shift256TestsContract__factory.ts +1 -1
  315. package/typechain-types/factories/contracts/mocks/utils/mpc/ShiftTestsContract__factory.ts +1 -1
  316. package/typechain-types/factories/contracts/mocks/utils/mpc/StringTestsContract__factory.ts +1 -1
  317. package/typechain-types/factories/contracts/mocks/utils/mpc/Transfer128TestsContract__factory.ts +1 -1
  318. package/typechain-types/factories/contracts/mocks/utils/mpc/Transfer256TestsContract__factory.ts +1 -1
  319. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferScalarTestsContract__factory.ts +1 -1
  320. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferTestsContract__factory.ts +1 -1
  321. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance128TestsContract__factory.ts +1 -1
  322. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance256TestsContract__factory.ts +1 -1
  323. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_16TestsContract__factory.ts +1 -1
  324. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_32TestsContract__factory.ts +1 -1
  325. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_64TestsContract__factory.ts +1 -1
  326. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_8TestsContract__factory.ts +1 -1
  327. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowanceScalarTestsContract__factory.ts +1 -1
  328. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowanceTestsContract__factory.ts +1 -1
  329. package/typechain-types/factories/contracts/mocks/utils/mpc/ValidateCiphertext128TestsContract__factory.ts +1 -1
  330. package/typechain-types/factories/contracts/mocks/utils/mpc/ValidateCiphertext256TestsContract__factory.ts +1 -1
  331. package/typechain-types/factories/contracts/mocks/utils/mpc/ValidateCiphertextTestsContract__factory.ts +1 -1
  332. package/typechain-types/factories/contracts/mocks/wallet/PrivateERC20Wallet/PrivateERC20WalletMock__factory.ts +1 -1
  333. package/typechain-types/factories/contracts/node/CotiNodeRewards__factory.ts +28 -1
  334. package/typechain-types/factories/contracts/node/SoulboundNodeNFT.sol/SoulboundNodeNFT__factory.ts +126 -1
  335. package/typechain-types/factories/contracts/onboard/AccountOnboard__factory.ts +1 -1
  336. package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgeCotiNative__factory.ts +79 -2
  337. package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgeERC20.sol/PrivacyBridgeERC20__factory.ts +89 -1
  338. package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgeUSDCe__factory.ts +90 -2
  339. package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgeUSDT__factory.ts +90 -2
  340. package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgeWADA__factory.ts +90 -2
  341. package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgeWBTC__factory.ts +90 -2
  342. package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgeWETH__factory.ts +90 -2
  343. package/typechain-types/factories/contracts/privacyBridge/PrivacyBridge__factory.ts +78 -1
  344. package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgegCoti__factory.ts +90 -2
  345. package/typechain-types/factories/contracts/token/PrivateERC20/PrivateERC20__factory.ts +27 -1
  346. package/typechain-types/factories/contracts/token/PrivateERC20/tokens/PrivateBridgedUSDC__factory.ts +28 -2
  347. package/typechain-types/factories/contracts/token/PrivateERC20/tokens/PrivateCOTITreasuryGovernanceToken__factory.ts +28 -2
  348. package/typechain-types/factories/contracts/token/PrivateERC20/tokens/PrivateCOTI__factory.ts +28 -2
  349. package/typechain-types/factories/contracts/token/PrivateERC20/tokens/PrivateTetherUSD__factory.ts +28 -2
  350. package/typechain-types/factories/contracts/token/PrivateERC20/tokens/PrivateWrappedADA__factory.ts +28 -2
  351. package/typechain-types/factories/contracts/token/PrivateERC20/tokens/PrivateWrappedBTC__factory.ts +28 -2
  352. package/typechain-types/factories/contracts/token/PrivateERC20/tokens/PrivateWrappedEther__factory.ts +28 -2
  353. package/typechain-types/factories/contracts/token/index.ts +1 -0
  354. package/typechain-types/factories/contracts/token/points/CotiTokenPoints004.sol/COTITokenPoints004__factory.ts +992 -0
  355. package/typechain-types/factories/contracts/token/points/CotiTokenPoints004__factory.ts +992 -0
  356. package/typechain-types/factories/contracts/token/points/index.ts +4 -0
  357. package/typechain-types/factories/contracts/utils/mpc/MpcCore__factory.ts +1 -1
  358. package/typechain-types/hardhat.d.ts +360 -0
  359. package/typechain-types/index.ts +36 -4
  360. package/contracts/mocks/utils/mpc/ArithmeticTestsContract.sol +0 -408
@@ -0,0 +1,63 @@
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity ^0.8.19;
3
+
4
+ import "../../../utils/mpc/MpcCore.sol";
5
+
6
+ /// @dev Signed int128 coverage — split from ArithmeticSigned256TestsContract for EIP-170.
7
+ contract ArithmeticSigned128TestsContract {
8
+ function basicSigned128Test() public {
9
+ gtInt128 a = MpcCore.setPublic128(int128(-12));
10
+ gtInt128 b = MpcCore.setPublic128(int128(3));
11
+ gtInt128 sameA = MpcCore.setPublic128(int128(-12));
12
+
13
+ require(MpcCore.decrypt(MpcCore.add(a, b)) == -9, "int128 add");
14
+ require(MpcCore.decrypt(MpcCore.sub(a, b)) == -15, "int128 sub");
15
+ require(MpcCore.decrypt(MpcCore.mul(a, b)) == -36, "int128 mul");
16
+ require(MpcCore.decrypt(MpcCore.div(a, b)) == -4, "int128 div");
17
+ require(MpcCore.decrypt(MpcCore.checkedAdd(a, b)) == -9, "int128 checked add");
18
+ require(MpcCore.decrypt(MpcCore.checkedSub(a, b)) == -15, "int128 checked sub");
19
+ require(MpcCore.decrypt(MpcCore.checkedMul(a, b)) == -36, "int128 checked mul");
20
+ require(MpcCore.decrypt(MpcCore.eq(a, sameA)), "int128 eq");
21
+ require(MpcCore.decrypt(MpcCore.ne(a, b)), "int128 ne");
22
+ require(MpcCore.decrypt(MpcCore.lt(a, b)), "int128 lt");
23
+ require(MpcCore.decrypt(MpcCore.le(a, sameA)), "int128 le");
24
+ require(MpcCore.decrypt(MpcCore.gt(b, a)), "int128 gt");
25
+ require(MpcCore.decrypt(MpcCore.ge(sameA, a)), "int128 ge");
26
+ require(MpcCore.decrypt(MpcCore.mux(MpcCore.setPublic(true), a, b)) == 3, "int128 mux true");
27
+ require(MpcCore.decrypt(MpcCore.mux(MpcCore.setPublic(false), a, b)) == -12, "int128 mux false");
28
+ require(MpcCore.decrypt(MpcCore.toSigned(MpcCore.fromSigned(a))) == -12, "int128 conversion");
29
+ require(MpcCore.decrypt(MpcCore.negate(a)) == 12, "int128 negate");
30
+ require(MpcCore.decrypt(MpcCore.shl(MpcCore.setPublic128(int128(-8)), 1)) == -16, "int128 shl");
31
+ require(MpcCore.decrypt(MpcCore.shr(MpcCore.setPublic128(int128(-8)), 1)) == -4, "int128 shr");
32
+ require(MpcCore.int128ToUint128(-1) == type(uint128).max, "int128 to uint128");
33
+ require(MpcCore.uint128ToInt128(type(uint128).max) == -1, "uint128 to int128");
34
+ }
35
+
36
+ function minDivMinusOne128Test() public {
37
+ require(
38
+ MpcCore.decrypt(MpcCore.div(MpcCore.setPublic128(type(int128).min), MpcCore.setPublic128(int128(-1))))
39
+ == type(int128).min,
40
+ "int128 min div -1"
41
+ );
42
+ }
43
+
44
+ function plainMul128WrapTest() public {
45
+ require(
46
+ MpcCore.decrypt(MpcCore.mul(MpcCore.setPublic128(int128(1) << 64), MpcCore.setPublic128(int128(1) << 64)))
47
+ == 0,
48
+ "int128 mul wrap"
49
+ );
50
+ }
51
+
52
+ function checkedAdd128OverflowTest() public {
53
+ MpcCore.checkedAdd(MpcCore.setPublic128(type(int128).max), MpcCore.setPublic128(int128(1)));
54
+ }
55
+
56
+ function checkedSub128UnderflowTest() public {
57
+ MpcCore.checkedSub(MpcCore.setPublic128(type(int128).min), MpcCore.setPublic128(int128(1)));
58
+ }
59
+
60
+ function checkedMul128OverflowTest() public {
61
+ MpcCore.checkedMul(MpcCore.setPublic128(int128(1) << 64), MpcCore.setPublic128(int128(1) << 64));
62
+ }
63
+ }
@@ -0,0 +1,107 @@
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity ^0.8.19;
3
+
4
+ import "../../../utils/mpc/MpcCore.sol";
5
+
6
+ /// @dev Signed int256 + checked storage helpers — narrow/128 widths live in sibling mocks (EIP-170).
7
+ contract ArithmeticSigned256TestsContract {
8
+ int256 addResult;
9
+ int256 subResult;
10
+ int256 mulResult;
11
+
12
+ function getAddResult() public view returns (int256) {
13
+ return addResult;
14
+ }
15
+
16
+ function getSubResult() public view returns (int256) {
17
+ return subResult;
18
+ }
19
+
20
+ function getMulResult() public view returns (int256) {
21
+ return mulResult;
22
+ }
23
+
24
+ function checkedAddTest(int256 a, int256 b) public returns (int256) {
25
+ gtInt256 a256 = MpcCore.setPublic256(a);
26
+ gtInt256 b256 = MpcCore.setPublic256(b);
27
+
28
+ int256 result = MpcCore.decrypt(MpcCore.checkedAdd(a256, b256));
29
+ addResult = result;
30
+
31
+ return result;
32
+ }
33
+
34
+ function checkedSubTest(int256 a, int256 b) public returns (int256) {
35
+ gtInt256 a256 = MpcCore.setPublic256(a);
36
+ gtInt256 b256 = MpcCore.setPublic256(b);
37
+
38
+ int256 result = MpcCore.decrypt(MpcCore.checkedSub(a256, b256));
39
+ subResult = result;
40
+
41
+ return result;
42
+ }
43
+
44
+ function checkedMulTest(int256 a, int256 b) public returns (int256) {
45
+ gtInt256 a256 = MpcCore.setPublic256(a);
46
+ gtInt256 b256 = MpcCore.setPublic256(b);
47
+
48
+ int256 result = MpcCore.decrypt(MpcCore.checkedMul(a256, b256));
49
+ mulResult = result;
50
+
51
+ return result;
52
+ }
53
+
54
+ function basicSigned256ArithmeticTest() public {
55
+ gtInt256 a = MpcCore.setPublic256(int256(-12));
56
+ gtInt256 b = MpcCore.setPublic256(int256(3));
57
+
58
+ require(MpcCore.decrypt(MpcCore.add(a, b)) == -9, "int256 add");
59
+ require(MpcCore.decrypt(MpcCore.sub(a, b)) == -15, "int256 sub");
60
+ require(MpcCore.decrypt(MpcCore.mul(a, b)) == -36, "int256 mul");
61
+ require(MpcCore.decrypt(MpcCore.div(a, b)) == -4, "int256 div");
62
+ require(MpcCore.decrypt(MpcCore.checkedAdd(a, b)) == -9, "int256 checked add");
63
+ require(MpcCore.decrypt(MpcCore.checkedSub(a, b)) == -15, "int256 checked sub");
64
+ require(MpcCore.decrypt(MpcCore.checkedMul(a, b)) == -36, "int256 checked mul");
65
+ }
66
+
67
+ function basicSigned256ComparisonTest() public {
68
+ gtInt256 a = MpcCore.setPublic256(int256(-12));
69
+ gtInt256 b = MpcCore.setPublic256(int256(3));
70
+ gtInt256 sameA = MpcCore.setPublic256(int256(-12));
71
+
72
+ require(MpcCore.decrypt(MpcCore.eq(a, sameA)), "int256 eq");
73
+ require(MpcCore.decrypt(MpcCore.ne(a, b)), "int256 ne");
74
+ require(MpcCore.decrypt(MpcCore.lt(a, b)), "int256 lt");
75
+ require(MpcCore.decrypt(MpcCore.le(a, sameA)), "int256 le");
76
+ require(MpcCore.decrypt(MpcCore.gt(b, a)), "int256 gt");
77
+ require(MpcCore.decrypt(MpcCore.ge(sameA, a)), "int256 ge");
78
+ }
79
+
80
+ function basicSigned256MuxAndHelpersTest() public {
81
+ gtInt256 a = MpcCore.setPublic256(int256(-12));
82
+ gtInt256 b = MpcCore.setPublic256(int256(3));
83
+
84
+ require(MpcCore.decrypt(MpcCore.mux(MpcCore.setPublic(true), a, b)) == 3, "int256 mux true");
85
+ require(MpcCore.decrypt(MpcCore.mux(MpcCore.setPublic(false), a, b)) == -12, "int256 mux false");
86
+ require(MpcCore.decrypt(MpcCore.toSigned(MpcCore.fromSigned(a))) == -12, "int256 conversion");
87
+ require(MpcCore.decrypt(MpcCore.negate(a)) == 12, "int256 negate");
88
+ require(MpcCore.int64ToUint64(-1) == type(uint64).max, "int64 to uint64");
89
+ require(MpcCore.uint64ToInt64(type(uint64).max) == -1, "uint64 to int64");
90
+ }
91
+
92
+ function minDivMinusOne256Test() public {
93
+ require(
94
+ MpcCore.decrypt(MpcCore.div(MpcCore.setPublic256(type(int256).min), MpcCore.setPublic256(int256(-1))))
95
+ == type(int256).min,
96
+ "int256 min div -1"
97
+ );
98
+ }
99
+
100
+ function plainMul256WrapTest() public {
101
+ require(
102
+ MpcCore.decrypt(MpcCore.mul(MpcCore.setPublic256(int256(1) << 128), MpcCore.setPublic256(int256(1) << 128)))
103
+ == 0,
104
+ "int256 mul wrap"
105
+ );
106
+ }
107
+ }
@@ -0,0 +1,123 @@
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity ^0.8.19;
3
+
4
+ import "../../../utils/mpc/MpcCore.sol";
5
+
6
+ /// @dev Narrow signed widths (8/16/32/64) — split from ArithmeticSigned256TestsContract for EIP-170.
7
+ contract ArithmeticSignedNarrowTestsContract {
8
+ function basicSigned8Test() public {
9
+ gtInt8 a = MpcCore.setPublic8(int8(-12));
10
+ gtInt8 b = MpcCore.setPublic8(int8(3));
11
+ gtInt8 sameA = MpcCore.setPublic8(int8(-12));
12
+
13
+ require(MpcCore.decrypt(MpcCore.add(a, b)) == -9, "int8 add");
14
+ require(MpcCore.decrypt(MpcCore.sub(a, b)) == -15, "int8 sub");
15
+ require(MpcCore.decrypt(MpcCore.mul(a, b)) == -36, "int8 mul");
16
+ require(MpcCore.decrypt(MpcCore.div(a, b)) == -4, "int8 div");
17
+ require(MpcCore.decrypt(MpcCore.checkedAdd(a, b)) == -9, "int8 checked add");
18
+ require(MpcCore.decrypt(MpcCore.checkedSub(a, b)) == -15, "int8 checked sub");
19
+ require(MpcCore.decrypt(MpcCore.checkedMul(a, b)) == -36, "int8 checked mul");
20
+ require(MpcCore.decrypt(MpcCore.eq(a, sameA)), "int8 eq");
21
+ require(MpcCore.decrypt(MpcCore.ne(a, b)), "int8 ne");
22
+ require(MpcCore.decrypt(MpcCore.lt(a, b)), "int8 lt");
23
+ require(MpcCore.decrypt(MpcCore.le(a, sameA)), "int8 le");
24
+ require(MpcCore.decrypt(MpcCore.gt(b, a)), "int8 gt");
25
+ require(MpcCore.decrypt(MpcCore.ge(sameA, a)), "int8 ge");
26
+ require(MpcCore.decrypt(MpcCore.mux(MpcCore.setPublic(true), a, b)) == 3, "int8 mux true");
27
+ require(MpcCore.decrypt(MpcCore.mux(MpcCore.setPublic(false), a, b)) == -12, "int8 mux false");
28
+ require(MpcCore.decrypt(MpcCore.shl(MpcCore.setPublic8(int8(-8)), 1)) == -16, "int8 shl");
29
+ require(MpcCore.decrypt(MpcCore.shr(MpcCore.setPublic8(int8(-8)), 1)) == -4, "int8 shr");
30
+ }
31
+
32
+ function basicSigned16Test() public {
33
+ gtInt16 a = MpcCore.setPublic16(int16(-12));
34
+ gtInt16 b = MpcCore.setPublic16(int16(3));
35
+ gtInt16 sameA = MpcCore.setPublic16(int16(-12));
36
+
37
+ require(MpcCore.decrypt(MpcCore.add(a, b)) == -9, "int16 add");
38
+ require(MpcCore.decrypt(MpcCore.sub(a, b)) == -15, "int16 sub");
39
+ require(MpcCore.decrypt(MpcCore.mul(a, b)) == -36, "int16 mul");
40
+ require(MpcCore.decrypt(MpcCore.div(a, b)) == -4, "int16 div");
41
+ require(MpcCore.decrypt(MpcCore.checkedAdd(a, b)) == -9, "int16 checked add");
42
+ require(MpcCore.decrypt(MpcCore.checkedSub(a, b)) == -15, "int16 checked sub");
43
+ require(MpcCore.decrypt(MpcCore.checkedMul(a, b)) == -36, "int16 checked mul");
44
+ require(MpcCore.decrypt(MpcCore.eq(a, sameA)), "int16 eq");
45
+ require(MpcCore.decrypt(MpcCore.ne(a, b)), "int16 ne");
46
+ require(MpcCore.decrypt(MpcCore.lt(a, b)), "int16 lt");
47
+ require(MpcCore.decrypt(MpcCore.le(a, sameA)), "int16 le");
48
+ require(MpcCore.decrypt(MpcCore.gt(b, a)), "int16 gt");
49
+ require(MpcCore.decrypt(MpcCore.ge(sameA, a)), "int16 ge");
50
+ require(MpcCore.decrypt(MpcCore.mux(MpcCore.setPublic(true), a, b)) == 3, "int16 mux true");
51
+ require(MpcCore.decrypt(MpcCore.mux(MpcCore.setPublic(false), a, b)) == -12, "int16 mux false");
52
+ require(MpcCore.decrypt(MpcCore.shl(MpcCore.setPublic16(int16(-8)), 1)) == -16, "int16 shl");
53
+ require(MpcCore.decrypt(MpcCore.shr(MpcCore.setPublic16(int16(-8)), 1)) == -4, "int16 shr");
54
+ }
55
+
56
+ function basicSigned32Test() public {
57
+ gtInt32 a = MpcCore.setPublic32(int32(-12));
58
+ gtInt32 b = MpcCore.setPublic32(int32(3));
59
+ gtInt32 sameA = MpcCore.setPublic32(int32(-12));
60
+
61
+ require(MpcCore.decrypt(MpcCore.add(a, b)) == -9, "int32 add");
62
+ require(MpcCore.decrypt(MpcCore.sub(a, b)) == -15, "int32 sub");
63
+ require(MpcCore.decrypt(MpcCore.mul(a, b)) == -36, "int32 mul");
64
+ require(MpcCore.decrypt(MpcCore.div(a, b)) == -4, "int32 div");
65
+ require(MpcCore.decrypt(MpcCore.checkedAdd(a, b)) == -9, "int32 checked add");
66
+ require(MpcCore.decrypt(MpcCore.checkedSub(a, b)) == -15, "int32 checked sub");
67
+ require(MpcCore.decrypt(MpcCore.checkedMul(a, b)) == -36, "int32 checked mul");
68
+ require(MpcCore.decrypt(MpcCore.eq(a, sameA)), "int32 eq");
69
+ require(MpcCore.decrypt(MpcCore.ne(a, b)), "int32 ne");
70
+ require(MpcCore.decrypt(MpcCore.lt(a, b)), "int32 lt");
71
+ require(MpcCore.decrypt(MpcCore.le(a, sameA)), "int32 le");
72
+ require(MpcCore.decrypt(MpcCore.gt(b, a)), "int32 gt");
73
+ require(MpcCore.decrypt(MpcCore.ge(sameA, a)), "int32 ge");
74
+ require(MpcCore.decrypt(MpcCore.mux(MpcCore.setPublic(true), a, b)) == 3, "int32 mux true");
75
+ require(MpcCore.decrypt(MpcCore.mux(MpcCore.setPublic(false), a, b)) == -12, "int32 mux false");
76
+ require(MpcCore.decrypt(MpcCore.shl(MpcCore.setPublic32(int32(-8)), 1)) == -16, "int32 shl");
77
+ require(MpcCore.decrypt(MpcCore.shr(MpcCore.setPublic32(int32(-8)), 1)) == -4, "int32 shr");
78
+ }
79
+
80
+ function basicSigned64Test() public {
81
+ gtInt64 a = MpcCore.setPublic64(int64(-12));
82
+ gtInt64 b = MpcCore.setPublic64(int64(3));
83
+ gtInt64 sameA = MpcCore.setPublic64(int64(-12));
84
+
85
+ require(MpcCore.decrypt(MpcCore.add(a, b)) == -9, "int64 add");
86
+ require(MpcCore.decrypt(MpcCore.sub(a, b)) == -15, "int64 sub");
87
+ require(MpcCore.decrypt(MpcCore.mul(a, b)) == -36, "int64 mul");
88
+ require(MpcCore.decrypt(MpcCore.div(a, b)) == -4, "int64 div");
89
+ require(MpcCore.decrypt(MpcCore.checkedAdd(a, b)) == -9, "int64 checked add");
90
+ require(MpcCore.decrypt(MpcCore.checkedSub(a, b)) == -15, "int64 checked sub");
91
+ require(MpcCore.decrypt(MpcCore.checkedMul(a, b)) == -36, "int64 checked mul");
92
+ require(MpcCore.decrypt(MpcCore.eq(a, sameA)), "int64 eq");
93
+ require(MpcCore.decrypt(MpcCore.ne(a, b)), "int64 ne");
94
+ require(MpcCore.decrypt(MpcCore.lt(a, b)), "int64 lt");
95
+ require(MpcCore.decrypt(MpcCore.le(a, sameA)), "int64 le");
96
+ require(MpcCore.decrypt(MpcCore.gt(b, a)), "int64 gt");
97
+ require(MpcCore.decrypt(MpcCore.ge(sameA, a)), "int64 ge");
98
+ require(MpcCore.decrypt(MpcCore.mux(MpcCore.setPublic(true), a, b)) == 3, "int64 mux true");
99
+ require(MpcCore.decrypt(MpcCore.mux(MpcCore.setPublic(false), a, b)) == -12, "int64 mux false");
100
+ require(MpcCore.decrypt(MpcCore.shl(MpcCore.setPublic64(int64(-8)), 1)) == -16, "int64 shl");
101
+ require(MpcCore.decrypt(MpcCore.shr(MpcCore.setPublic64(int64(-8)), 1)) == -4, "int64 shr");
102
+ }
103
+
104
+ function minDivMinusOne8Test() public {
105
+ require(
106
+ MpcCore.decrypt(MpcCore.div(MpcCore.setPublic8(type(int8).min), MpcCore.setPublic8(int8(-1))))
107
+ == type(int8).min,
108
+ "int8 min div -1"
109
+ );
110
+ }
111
+
112
+ function checkedAdd8OverflowTest() public {
113
+ MpcCore.checkedAdd(MpcCore.setPublic8(type(int8).max), MpcCore.setPublic8(int8(1)));
114
+ }
115
+
116
+ function checkedSub8UnderflowTest() public {
117
+ MpcCore.checkedSub(MpcCore.setPublic8(type(int8).min), MpcCore.setPublic8(int8(1)));
118
+ }
119
+
120
+ function checkedMul8OverflowTest() public {
121
+ MpcCore.checkedMul(MpcCore.setPublic8(int8(64)), MpcCore.setPublic8(int8(2)));
122
+ }
123
+ }
@@ -0,0 +1,196 @@
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity ^0.8.20;
3
+
4
+ import "../../../utils/mpc/MpcCore.sol";
5
+
6
+ contract ArithmeticSubTestsContract {
7
+
8
+ struct AllGTCastingValues {
9
+ gtUint8 a8_s;
10
+ gtUint8 b8_s;
11
+ gtUint16 a16_s;
12
+ gtUint16 b16_s;
13
+ gtUint32 a32_s;
14
+ gtUint32 b32_s;
15
+ gtUint64 a64_s;
16
+ gtUint64 b64_s;
17
+ }
18
+
19
+ struct Check16 {
20
+ gtUint16 res16_16;
21
+ gtUint16 res8_16;
22
+ gtUint16 res16_8;
23
+ }
24
+
25
+ struct Check32 {
26
+ gtUint32 res32_32;
27
+ gtUint32 res8_32;
28
+ gtUint32 res32_8;
29
+ gtUint32 res16_32;
30
+ gtUint32 res32_16;
31
+ }
32
+
33
+ struct Check64 {
34
+ gtUint64 res64_64;
35
+ gtUint64 res8_64;
36
+ gtUint64 res64_8;
37
+ gtUint64 res16_64;
38
+ gtUint64 res64_16;
39
+ gtUint64 res32_64;
40
+ gtUint64 res64_32;
41
+ }
42
+
43
+ uint8 subResult;
44
+
45
+ function getSubResult() public view returns (uint8) {
46
+ return subResult;
47
+ }
48
+
49
+ function setPublicValues(AllGTCastingValues memory castingValues, uint8 a, uint8 b) public{
50
+ castingValues.a8_s = MpcCore.setPublic8(a);
51
+ castingValues.b8_s = MpcCore.setPublic8(b);
52
+ castingValues.a16_s = MpcCore.setPublic16(a);
53
+ castingValues.b16_s = MpcCore.setPublic16(b);
54
+ castingValues.a32_s = MpcCore.setPublic32(a);
55
+ castingValues.b32_s = MpcCore.setPublic32(b);
56
+ castingValues.a64_s = MpcCore.setPublic64(a);
57
+ castingValues.b64_s = MpcCore.setPublic64(b);
58
+ }
59
+
60
+ function decryptAndCompareResults16(Check16 memory check16) public returns (uint16){
61
+
62
+ // Calculate the result
63
+ uint16 result = MpcCore.decrypt(check16.res16_16);
64
+
65
+ require(result == MpcCore.decrypt(check16.res8_16) && result == MpcCore.decrypt(check16.res16_8),
66
+ "decryptAndCompareAllResults: Failed to decrypt and compare all results");
67
+ return result;
68
+ }
69
+
70
+ function decryptAndCompareResults32(Check32 memory check32) public returns (uint32){
71
+
72
+ // Calculate the result
73
+ uint32 result = MpcCore.decrypt(check32.res32_32);
74
+
75
+ require(result == MpcCore.decrypt(check32.res8_32) && result == MpcCore.decrypt(check32.res32_8)
76
+ && result == MpcCore.decrypt(check32.res32_16) && result == MpcCore.decrypt(check32.res16_32),
77
+ "decryptAndCompareAllResults: Failed to decrypt and compare all results");
78
+
79
+ return result;
80
+ }
81
+
82
+ function decryptAndCompareResults64(Check64 memory check64) public returns (uint64){
83
+
84
+ // Calculate the result
85
+ uint64 result = MpcCore.decrypt(check64.res64_64);
86
+
87
+ require(result == MpcCore.decrypt(check64.res8_64) && result == MpcCore.decrypt(check64.res64_8)
88
+ && result == MpcCore.decrypt(check64.res64_16) && result == MpcCore.decrypt(check64.res16_64)
89
+ && result == MpcCore.decrypt(check64.res64_32) && result == MpcCore.decrypt(check64.res32_64),
90
+ "decryptAndCompareAllResults: Failed to decrypt and compare all results");
91
+
92
+ return result;
93
+ }
94
+
95
+ function subTest(uint8 a, uint8 b) public returns (uint8) {
96
+ AllGTCastingValues memory castingValues;
97
+ Check16 memory check16;
98
+ Check32 memory check32;
99
+ Check64 memory check64;
100
+ setPublicValues(castingValues, a, b);
101
+
102
+ // Calculate the expected result
103
+ uint8 result = MpcCore.decrypt(MpcCore.sub(castingValues.a8_s, castingValues.b8_s));
104
+ subResult = result;
105
+
106
+ // Calculate the results with casting to 16
107
+ check16.res16_16 = MpcCore.sub(castingValues.a16_s, castingValues.b16_s);
108
+ check16.res8_16 = MpcCore.sub(castingValues.a8_s, castingValues.b16_s);
109
+ check16.res16_8 = MpcCore.sub(castingValues.a16_s, castingValues.b8_s);
110
+ uint16 res16 = decryptAndCompareResults16(check16);
111
+ require(res16 == result, "subTest: cast 16 failed");
112
+
113
+ // Calculate the result with casting to 32
114
+ check32.res32_32 = MpcCore.sub(castingValues.a32_s, castingValues.b32_s);
115
+ check32.res8_32 = MpcCore.sub(castingValues.a8_s, castingValues.b32_s);
116
+ check32.res32_8 = MpcCore.sub(castingValues.a32_s, castingValues.b8_s);
117
+ check32.res16_32 = MpcCore.sub(castingValues.a16_s, castingValues.b32_s);
118
+ check32.res32_16 = MpcCore.sub(castingValues.a32_s, castingValues.b16_s);
119
+ uint32 res32 = decryptAndCompareResults32(check32);
120
+ require(result == res32, "subTest: cast 32 failed");
121
+
122
+ // Calculate the result with casting to 64
123
+ check64.res64_64 = MpcCore.sub(castingValues.a64_s, castingValues.b64_s);
124
+ check64.res8_64 = MpcCore.sub(castingValues.a8_s, castingValues.b64_s);
125
+ check64.res64_8 = MpcCore.sub(castingValues.a64_s, castingValues.b8_s);
126
+ check64.res16_64 = MpcCore.sub(castingValues.a16_s, castingValues.b64_s);
127
+ check64.res64_16 = MpcCore.sub(castingValues.a64_s, castingValues.b16_s);
128
+ check64.res32_64 = MpcCore.sub(castingValues.a32_s, castingValues.b64_s);
129
+ check64.res64_32 = MpcCore.sub(castingValues.a64_s, castingValues.b32_s);
130
+ uint64 res64 = decryptAndCompareResults64(check64);
131
+ require(result == res64, "subTest: cast 64 failed");
132
+
133
+ // Check the result with scalar
134
+ require(result == MpcCore.decrypt(MpcCore.sub(a, castingValues.b8_s)) && result == MpcCore.decrypt(MpcCore.sub(castingValues.a8_s, b)),
135
+ "subTest: test 8 bits with scalar failed");
136
+ require(result == MpcCore.decrypt(MpcCore.sub(a, castingValues.b16_s)) && result == MpcCore.decrypt(MpcCore.sub(castingValues.a16_s, b)),
137
+ "subTest: test 16 bits with scalar failed");
138
+ require(result == MpcCore.decrypt(MpcCore.sub(a, castingValues.b32_s)) && result == MpcCore.decrypt(MpcCore.sub(castingValues.a32_s, b)),
139
+ "subTest: test 32 bits with scalar failed");
140
+ require(result == MpcCore.decrypt(MpcCore.sub(a, castingValues.b64_s)) && result == MpcCore.decrypt(MpcCore.sub(castingValues.a64_s, b)),
141
+ "subTest: test 64 bits with scalar failed");
142
+
143
+ return result;
144
+ }
145
+
146
+ function checkedSubTest(uint8 a, uint8 b) public returns (uint8) {
147
+ AllGTCastingValues memory castingValues;
148
+ Check16 memory check16;
149
+ Check32 memory check32;
150
+ Check64 memory check64;
151
+ setPublicValues(castingValues, a, b);
152
+
153
+ // Calculate the expected result
154
+ uint8 result = MpcCore.decrypt(MpcCore.checkedSub(castingValues.a8_s, castingValues.b8_s));
155
+ subResult = result;
156
+
157
+ // Calculate the results with casting to 16
158
+ check16.res16_16 = MpcCore.checkedSub(castingValues.a16_s, castingValues.b16_s);
159
+ check16.res8_16 = MpcCore.checkedSub(castingValues.a8_s, castingValues.b16_s);
160
+ check16.res16_8 = MpcCore.checkedSub(castingValues.a16_s, castingValues.b8_s);
161
+ uint16 res16 = decryptAndCompareResults16(check16);
162
+ require(res16 == result, "subTest: cast 16 failed");
163
+
164
+ // Calculate the result with casting to 32
165
+ check32.res32_32 = MpcCore.checkedSub(castingValues.a32_s, castingValues.b32_s);
166
+ check32.res8_32 = MpcCore.checkedSub(castingValues.a8_s, castingValues.b32_s);
167
+ check32.res32_8 = MpcCore.checkedSub(castingValues.a32_s, castingValues.b8_s);
168
+ check32.res16_32 = MpcCore.checkedSub(castingValues.a16_s, castingValues.b32_s);
169
+ check32.res32_16 = MpcCore.checkedSub(castingValues.a32_s, castingValues.b16_s);
170
+ uint32 res32 = decryptAndCompareResults32(check32);
171
+ require(result == res32, "subTest: cast 32 failed");
172
+
173
+ // Calculate the result with casting to 64
174
+ check64.res64_64 = MpcCore.checkedSub(castingValues.a64_s, castingValues.b64_s);
175
+ check64.res8_64 = MpcCore.checkedSub(castingValues.a8_s, castingValues.b64_s);
176
+ check64.res64_8 = MpcCore.checkedSub(castingValues.a64_s, castingValues.b8_s);
177
+ check64.res16_64 = MpcCore.checkedSub(castingValues.a16_s, castingValues.b64_s);
178
+ check64.res64_16 = MpcCore.checkedSub(castingValues.a64_s, castingValues.b16_s);
179
+ check64.res32_64 = MpcCore.checkedSub(castingValues.a32_s, castingValues.b64_s);
180
+ check64.res64_32 = MpcCore.checkedSub(castingValues.a64_s, castingValues.b32_s);
181
+ uint64 res64 = decryptAndCompareResults64(check64);
182
+ require(result == res64, "subTest: cast 64 failed");
183
+
184
+ // Check the result with scalar
185
+ require(result == MpcCore.decrypt(MpcCore.checkedSub(a, castingValues.b8_s)) && result == MpcCore.decrypt(MpcCore.checkedSub(castingValues.a8_s, b)),
186
+ "subTest: test 8 bits with scalar failed");
187
+ require(result == MpcCore.decrypt(MpcCore.checkedSub(a, castingValues.b16_s)) && result == MpcCore.decrypt(MpcCore.checkedSub(castingValues.a16_s, b)),
188
+ "subTest: test 16 bits with scalar failed");
189
+ require(result == MpcCore.decrypt(MpcCore.checkedSub(a, castingValues.b32_s)) && result == MpcCore.decrypt(MpcCore.checkedSub(castingValues.a32_s, b)),
190
+ "subTest: test 32 bits with scalar failed");
191
+ require(result == MpcCore.decrypt(MpcCore.checkedSub(a, castingValues.b64_s)) && result == MpcCore.decrypt(MpcCore.checkedSub(castingValues.a64_s, b)),
192
+ "subTest: test 64 bits with scalar failed");
193
+
194
+ return result;
195
+ }
196
+ }
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  import "../../../utils/mpc/MpcCore.sol";
5
5
 
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  import "../../../utils/mpc/MpcCore.sol";
5
5
 
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  import "../../../utils/mpc/MpcCore.sol";
5
5
 
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  import "../../../utils/mpc/MpcCore.sol";
5
5
 
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  import "../../../utils/mpc/MpcCore.sol";
5
5
 
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  import "../../../utils/mpc/MpcCore.sol";
5
5
 
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  import "../../../utils/mpc/MpcCore.sol";
5
5
 
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  import "../../../utils/mpc/MpcCore.sol";
5
5
 
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  import "../../../utils/mpc/MpcCore.sol";
5
5
 
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  import "../../../utils/mpc/MpcCore.sol";
5
5
 
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  import "../../../utils/mpc/MpcCore.sol";
5
5
 
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  import "../../../utils/mpc/MpcCore.sol";
5
5
 
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  import "../../../utils/mpc/MpcCore.sol";
5
5
 
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  import "../../../utils/mpc/MpcCore.sol";
5
5
 
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  /**
5
5
  * @title MinimalProxy
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  import "../../../utils/mpc/MpcCore.sol";
5
5
 
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  import "../../../utils/mpc/MpcCore.sol";
5
5
 
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  import "../../../utils/mpc/MpcCore.sol";
5
5