@coti-io/coti-contracts 1.1.0 → 1.2.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 (265) hide show
  1. package/.github/workflows/npm-publish.yml +18 -14
  2. package/README.md +3 -1
  3. package/contracts/disperse/coinByRatio/FixedRatioCoinDisperser.sol +452 -0
  4. package/contracts/disperse/coinByRatio/FixedRatioCoinDisperserLeftoverS1.sol +490 -0
  5. package/contracts/disperse/coinByRatio/FixedRatioCoinDisperserUnlimitedWindow.sol +432 -0
  6. package/contracts/disperse/disperseToken/MintDisperser.sol +120 -0
  7. package/contracts/disperse/disperseToken/TokenDisperser.sol +139 -0
  8. package/contracts/mocks/token/ERC20Mock.sol +19 -0
  9. package/contracts/mocks/token/PrivateERC20/EncryptedTokenReceiverMock.sol +18 -0
  10. package/contracts/mocks/token/PrivateERC20/PrivacyBridgeERC20Mock.sol +13 -0
  11. package/contracts/mocks/token/PrivateERC20/PrivateERC20AuditorSupplyMock.sol +44 -0
  12. package/contracts/mocks/token/PrivateERC20/PrivateERC20CappedMock.sol +23 -0
  13. package/contracts/mocks/token/PrivateERC20/PrivateERC20GtCallerMock.sol +29 -0
  14. package/contracts/mocks/token/PrivateERC20/PrivateERC20Mock.sol +9 -4
  15. package/contracts/mocks/token/PrivateERC20/PrivateERC20ReentrantReceiverMock.sol +39 -0
  16. package/contracts/mocks/token/PrivateERC20/PublicReentrantTokenReceiverMock.sol +29 -0
  17. package/contracts/mocks/token/PrivateERC20/PublicTokenReceiverBoolMock.sol +18 -0
  18. package/contracts/mocks/token/PrivateERC20/PublicTokenReceiverMock.sol +12 -0
  19. package/contracts/mocks/utils/mpc/Arithmetic128TestsContract.sol +123 -0
  20. package/contracts/mocks/utils/mpc/Arithmetic256TestsContract.sol +122 -0
  21. package/contracts/mocks/utils/mpc/Bitwise128TestsContract.sol +65 -0
  22. package/contracts/mocks/utils/mpc/Bitwise256TestsContract.sol +65 -0
  23. package/contracts/mocks/utils/mpc/CheckedArithmetic128WithOverflowBitTestsContract.sol +64 -0
  24. package/contracts/mocks/utils/mpc/CheckedArithmetic256WithOverflowBitTestsContract.sol +64 -0
  25. package/contracts/mocks/utils/mpc/Comparison128TestsContract.sol +98 -0
  26. package/contracts/mocks/utils/mpc/Comparison256TestsContract.sol +98 -0
  27. package/contracts/mocks/utils/mpc/MinMax128TestsContract.sol +44 -0
  28. package/contracts/mocks/utils/mpc/MinMax256TestsContract.sol +44 -0
  29. package/contracts/mocks/utils/mpc/MinimalImplementation.sol +55 -0
  30. package/contracts/mocks/utils/mpc/MinimalProxy.sol +27 -0
  31. package/contracts/mocks/utils/mpc/MpcOperations128TestContract.sol +267 -0
  32. package/contracts/mocks/utils/mpc/MpcOperationsTestContract.sol +334 -0
  33. package/contracts/mocks/utils/mpc/Mux128TestsContract.sol +24 -0
  34. package/contracts/mocks/utils/mpc/Mux256TestsContract.sol +24 -0
  35. package/contracts/mocks/utils/mpc/OnBoard128TestsContract.sol +93 -0
  36. package/contracts/mocks/utils/mpc/OnBoard256TestsContract.sol +116 -0
  37. package/contracts/mocks/utils/mpc/PrivacyImplementationV1.sol +157 -0
  38. package/contracts/mocks/utils/mpc/PrivacyImplementationV2.sol +133 -0
  39. package/contracts/mocks/utils/mpc/PrivacyProxy.sol +137 -0
  40. package/contracts/mocks/utils/mpc/Random128TestsContract.sol +32 -0
  41. package/contracts/mocks/utils/mpc/Random256TestsContract.sol +32 -0
  42. package/contracts/mocks/utils/mpc/Shift128TestsContract.sol +36 -0
  43. package/contracts/mocks/utils/mpc/Shift256TestsContract.sol +36 -0
  44. package/contracts/mocks/utils/mpc/Transfer128TestsContract.sol +29 -0
  45. package/contracts/mocks/utils/mpc/Transfer256TestsContract.sol +29 -0
  46. package/contracts/mocks/utils/mpc/TransferWithAllowance128TestsContract.sol +32 -0
  47. package/contracts/mocks/utils/mpc/TransferWithAllowance256TestsContract.sol +32 -0
  48. package/contracts/mocks/utils/mpc/ValidateCiphertext128TestsContract.sol +59 -0
  49. package/contracts/mocks/utils/mpc/ValidateCiphertext256TestsContract.sol +63 -0
  50. package/contracts/mocks/utils/mpc/ValidateCiphertextTestsContract.sol +99 -0
  51. package/contracts/mocks/wallet/PrivateERC20Wallet/PrivateERC20WalletMock.sol +7 -6
  52. package/contracts/node/CotiNodeRewards.sol +199 -0
  53. package/contracts/node/SoulboundNodeNFT.sol +519 -0
  54. package/contracts/privacyBridge/PrivacyBridge.sol +318 -0
  55. package/contracts/privacyBridge/PrivacyBridgeCotiNative.sol +268 -0
  56. package/contracts/privacyBridge/PrivacyBridgeERC20.sol +251 -0
  57. package/contracts/privacyBridge/PrivacyBridgeUSDCe.sol +16 -0
  58. package/contracts/privacyBridge/PrivacyBridgeUSDT.sol +17 -0
  59. package/contracts/privacyBridge/PrivacyBridgeWADA.sol +17 -0
  60. package/contracts/privacyBridge/PrivacyBridgeWBTC.sol +17 -0
  61. package/contracts/privacyBridge/PrivacyBridgeWETH.sol +17 -0
  62. package/contracts/privacyBridge/PrivacyBridgegCoti.sol +17 -0
  63. package/contracts/token/PrivateERC20/IPrivateERC20.sol +273 -40
  64. package/contracts/token/PrivateERC20/ITokenReceiver.sol +17 -0
  65. package/contracts/token/PrivateERC20/ITokenReceiverEncrypted.sol +20 -0
  66. package/contracts/token/PrivateERC20/PrivateERC20.sol +861 -152
  67. package/contracts/token/PrivateERC20/tokens/PrivateBridgedUSDC.sol +17 -0
  68. package/contracts/token/PrivateERC20/tokens/PrivateCOTI.sol +13 -0
  69. package/contracts/token/PrivateERC20/tokens/PrivateCOTITreasuryGovernanceToken.sol +17 -0
  70. package/contracts/token/PrivateERC20/tokens/PrivateTetherUSD.sol +17 -0
  71. package/contracts/token/PrivateERC20/tokens/PrivateWrappedADA.sol +17 -0
  72. package/contracts/token/PrivateERC20/tokens/PrivateWrappedBTC.sol +17 -0
  73. package/contracts/token/PrivateERC20/tokens/PrivateWrappedEther.sol +13 -0
  74. package/contracts/utils/mpc/MpcCore.sol +10780 -4962
  75. package/contracts/utils/mpc/MpcInterface.sol +7 -2
  76. package/hardhat/gasPriceBump.ts +60 -0
  77. package/hardhat.config.ts +60 -12
  78. package/package.json +21 -3
  79. package/scripts/deploySoulboundNodeNFT.ts +57 -0
  80. package/test/token/PrivateERC20/PrivacyBridge.fees.test.ts +327 -0
  81. package/test/token/PrivateERC20/PrivateERC20.test.ts +1109 -268
  82. package/test/utils/mpc/Bitwise128.test.ts +92 -0
  83. package/test/utils/mpc/Bitwise256.test.ts +101 -0
  84. package/test/utils/mpc/BuildInputText128.test.ts +398 -0
  85. package/test/utils/mpc/CheckedArithmetic128.test.ts +45 -0
  86. package/test/utils/mpc/CheckedArithmetic256.test.ts +45 -0
  87. package/test/utils/mpc/Comparison128.test.ts +48 -0
  88. package/test/utils/mpc/Comparison256.test.ts +48 -0
  89. package/test/utils/mpc/InvalidCiphertext.test.ts +179 -0
  90. package/test/utils/mpc/InvalidCiphertext128.test.ts +179 -0
  91. package/test/utils/mpc/InvalidCiphertext256.test.ts +201 -0
  92. package/test/utils/mpc/InvalidTransfer128.test.ts +166 -0
  93. package/test/utils/mpc/InvalidTransfer256.test.ts +158 -0
  94. package/test/utils/mpc/MinMax128.test.ts +44 -0
  95. package/test/utils/mpc/MinMax256.test.ts +44 -0
  96. package/test/utils/mpc/MinimalProxyDemo.test.ts +280 -0
  97. package/test/utils/mpc/MpcOperations.test.ts +589 -0
  98. package/test/utils/mpc/MpcOperations128.test.ts +632 -0
  99. package/test/utils/mpc/Mux128.test.ts +41 -0
  100. package/test/utils/mpc/Mux256.test.ts +41 -0
  101. package/test/utils/mpc/NegativeCases.test.ts +478 -0
  102. package/test/utils/mpc/NegativeCases128.test.ts +237 -0
  103. package/test/utils/mpc/NegativeCases256.test.ts +236 -0
  104. package/test/utils/mpc/OnBoard128.test.ts +90 -0
  105. package/test/utils/mpc/OnBoard256.test.ts +114 -0
  106. package/test/utils/mpc/Precompile128.test.ts +51 -0
  107. package/test/utils/mpc/Precompile256.test.ts +115 -0
  108. package/test/utils/mpc/ProxyValidation.test.ts +199 -0
  109. package/test/utils/mpc/Random128.test.ts +47 -0
  110. package/test/utils/mpc/Random256.test.ts +47 -0
  111. package/test/utils/mpc/Shift128.test.ts +41 -0
  112. package/test/utils/mpc/Shift256.test.ts +41 -0
  113. package/test/utils/mpc/Transfer128.test.ts +46 -0
  114. package/test/utils/mpc/Transfer256.test.ts +46 -0
  115. package/test/utils/mpc/TransferWithAllowance128.test.ts +48 -0
  116. package/test/utils/mpc/TransferWithAllowance256.test.ts +48 -0
  117. package/test/utils/mpc/UpgradeablePrivacyProxy.test.ts +307 -0
  118. package/test/utils/mpc/ValidateCiphertext.test.ts +221 -0
  119. package/test/utils/mpc/ValidateCiphertext256.test.ts +161 -0
  120. package/test/utils/mpc/ValidateCiphertext256Decryption.test.ts +383 -0
  121. package/test/utils/mpc/WalletEncryptionFailures.test.ts +494 -0
  122. package/test/utils/privateErc20Helpers.ts +97 -0
  123. package/typechain-types/@openzeppelin/contracts/access/Ownable.ts +153 -0
  124. package/typechain-types/@openzeppelin/contracts/access/index.ts +4 -0
  125. package/typechain-types/@openzeppelin/contracts/index.ts +2 -0
  126. package/typechain-types/@openzeppelin/contracts/token/ERC20/IERC20.ts +262 -0
  127. package/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.ts +143 -0
  128. package/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/index.ts +4 -0
  129. package/typechain-types/@openzeppelin/contracts/token/ERC20/index.ts +6 -0
  130. package/typechain-types/@openzeppelin/contracts/token/index.ts +2 -0
  131. package/typechain-types/contracts/disperse/coinByRatio/FixedRatioCoinDisperser.ts +679 -0
  132. package/typechain-types/contracts/disperse/coinByRatio/index.ts +4 -0
  133. package/typechain-types/contracts/disperse/disperseToken/MintDisperser.sol/IMintableERC20.ts +97 -0
  134. package/typechain-types/contracts/disperse/disperseToken/MintDisperser.sol/MintDisperser.ts +206 -0
  135. package/typechain-types/contracts/disperse/disperseToken/MintDisperser.sol/index.ts +5 -0
  136. package/typechain-types/contracts/disperse/disperseToken/TokenDisperser.ts +191 -0
  137. package/typechain-types/contracts/disperse/disperseToken/index.ts +6 -0
  138. package/typechain-types/contracts/disperse/index.ts +7 -0
  139. package/typechain-types/contracts/index.ts +2 -0
  140. package/typechain-types/contracts/mocks/token/PrivateERC20/PrivateERC20Mock.ts +77 -60
  141. package/typechain-types/contracts/mocks/utils/mpc/Arithmetic128TestsContract.ts +311 -0
  142. package/typechain-types/contracts/mocks/utils/mpc/Arithmetic256TestsContract.ts +311 -0
  143. package/typechain-types/contracts/mocks/utils/mpc/Bitwise128TestsContract.ts +179 -0
  144. package/typechain-types/contracts/mocks/utils/mpc/Bitwise256TestsContract.ts +179 -0
  145. package/typechain-types/contracts/mocks/utils/mpc/CheckedArithmetic128WithOverflowBitTestsContract.ts +206 -0
  146. package/typechain-types/contracts/mocks/utils/mpc/CheckedArithmetic256WithOverflowBitTestsContract.ts +206 -0
  147. package/typechain-types/contracts/mocks/utils/mpc/Comparison128TestsContract.ts +278 -0
  148. package/typechain-types/contracts/mocks/utils/mpc/Comparison256TestsContract.ts +278 -0
  149. package/typechain-types/contracts/mocks/utils/mpc/MinMax128TestsContract.ts +142 -0
  150. package/typechain-types/contracts/mocks/utils/mpc/MinMax256TestsContract.ts +142 -0
  151. package/typechain-types/contracts/mocks/utils/mpc/MinimalImplementation.ts +259 -0
  152. package/typechain-types/contracts/mocks/utils/mpc/MinimalProxy.ts +90 -0
  153. package/typechain-types/contracts/mocks/utils/mpc/MpcOperations128TestContract.ts +388 -0
  154. package/typechain-types/contracts/mocks/utils/mpc/MpcOperationsTestContract.ts +455 -0
  155. package/typechain-types/contracts/mocks/utils/mpc/Mux128TestsContract.ts +109 -0
  156. package/typechain-types/contracts/mocks/utils/mpc/Mux256TestsContract.ts +109 -0
  157. package/typechain-types/contracts/mocks/utils/mpc/OnBoard128TestsContract.ts +166 -0
  158. package/typechain-types/contracts/mocks/utils/mpc/OnBoard256TestsContract.ts +194 -0
  159. package/typechain-types/contracts/mocks/utils/mpc/PrivacyImplementationV1.ts +385 -0
  160. package/typechain-types/contracts/mocks/utils/mpc/PrivacyImplementationV2.ts +441 -0
  161. package/typechain-types/contracts/mocks/utils/mpc/PrivacyProxy.ts +201 -0
  162. package/typechain-types/contracts/mocks/utils/mpc/Random128TestsContract.ts +131 -0
  163. package/typechain-types/contracts/mocks/utils/mpc/Random256TestsContract.ts +131 -0
  164. package/typechain-types/contracts/mocks/utils/mpc/Shift128TestsContract.ts +142 -0
  165. package/typechain-types/contracts/mocks/utils/mpc/Shift256TestsContract.ts +142 -0
  166. package/typechain-types/contracts/mocks/utils/mpc/Transfer128TestsContract.ts +109 -0
  167. package/typechain-types/contracts/mocks/utils/mpc/Transfer256TestsContract.ts +109 -0
  168. package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowance128TestsContract.ts +128 -0
  169. package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowance256TestsContract.ts +128 -0
  170. package/typechain-types/contracts/mocks/utils/mpc/ValidateCiphertext128TestsContract.ts +198 -0
  171. package/typechain-types/contracts/mocks/utils/mpc/ValidateCiphertext256TestsContract.ts +182 -0
  172. package/typechain-types/contracts/mocks/utils/mpc/ValidateCiphertextTestsContract.ts +257 -0
  173. package/typechain-types/contracts/mocks/utils/mpc/index.ts +32 -8
  174. package/typechain-types/contracts/token/PrivateERC20/IPrivateERC20.ts +77 -60
  175. package/typechain-types/contracts/token/PrivateERC20/PrivateERC20.ts +77 -60
  176. package/typechain-types/contracts/utils/mpc/MpcInterface.sol/ExtendedOperations.ts +111 -10
  177. package/typechain-types/factories/@openzeppelin/contracts/access/Ownable__factory.ts +74 -0
  178. package/typechain-types/factories/@openzeppelin/contracts/access/index.ts +4 -0
  179. package/typechain-types/factories/@openzeppelin/contracts/index.ts +1 -0
  180. package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/IERC20__factory.ts +205 -0
  181. package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit__factory.ts +100 -0
  182. package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/index.ts +4 -0
  183. package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/index.ts +5 -0
  184. package/typechain-types/factories/@openzeppelin/contracts/token/index.ts +1 -0
  185. package/typechain-types/factories/contracts/disperse/coinByRatio/FixedRatioCoinDisperser__factory.ts +759 -0
  186. package/typechain-types/factories/contracts/disperse/coinByRatio/index.ts +4 -0
  187. package/typechain-types/factories/contracts/disperse/disperseToken/MintDisperser.sol/IMintableERC20__factory.ts +43 -0
  188. package/typechain-types/factories/contracts/disperse/disperseToken/MintDisperser.sol/MintDisperser__factory.ts +185 -0
  189. package/typechain-types/factories/contracts/disperse/disperseToken/MintDisperser.sol/index.ts +5 -0
  190. package/typechain-types/factories/contracts/disperse/disperseToken/TokenDisperser__factory.ts +198 -0
  191. package/typechain-types/factories/contracts/disperse/disperseToken/index.ts +5 -0
  192. package/typechain-types/factories/contracts/disperse/index.ts +5 -0
  193. package/typechain-types/factories/contracts/index.ts +1 -0
  194. package/typechain-types/factories/contracts/mocks/access/DataPrivacyFramework/DataPrivacyFrameworkMock__factory.ts +1 -1
  195. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PrivateERC20Mock__factory.ts +179 -47
  196. package/typechain-types/factories/contracts/mocks/utils/mpc/Arithmetic128TestsContract__factory.ts +330 -0
  197. package/typechain-types/factories/contracts/mocks/utils/mpc/Arithmetic256TestsContract__factory.ts +330 -0
  198. package/typechain-types/factories/contracts/mocks/utils/mpc/ArithmeticTestsContract__factory.ts +1 -1
  199. package/typechain-types/factories/contracts/mocks/utils/mpc/Bitwise128TestsContract__factory.ts +184 -0
  200. package/typechain-types/factories/contracts/mocks/utils/mpc/Bitwise256TestsContract__factory.ts +184 -0
  201. package/typechain-types/factories/contracts/mocks/utils/mpc/BitwiseTestsContract__factory.ts +1 -1
  202. package/typechain-types/factories/contracts/mocks/utils/mpc/CheckedArithmetic128WithOverflowBitTestsContract__factory.ts +203 -0
  203. package/typechain-types/factories/contracts/mocks/utils/mpc/CheckedArithmetic256WithOverflowBitTestsContract__factory.ts +203 -0
  204. package/typechain-types/factories/contracts/mocks/utils/mpc/CheckedArithmeticWIthOverflowBitTestsContract.sol/CheckedArithmeticWithOverflowBitTestsContract__factory.ts +1 -1
  205. package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison128TestsContract__factory.ts +295 -0
  206. package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison1TestsContract__factory.ts +1 -1
  207. package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison256TestsContract__factory.ts +295 -0
  208. package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison2TestsContract__factory.ts +1 -1
  209. package/typechain-types/factories/contracts/mocks/utils/mpc/MinMax128TestsContract__factory.ts +147 -0
  210. package/typechain-types/factories/contracts/mocks/utils/mpc/MinMax256TestsContract__factory.ts +147 -0
  211. package/typechain-types/factories/contracts/mocks/utils/mpc/MinMaxTestsContract__factory.ts +1 -1
  212. package/typechain-types/factories/contracts/mocks/utils/mpc/MinimalImplementation__factory.ts +263 -0
  213. package/typechain-types/factories/contracts/mocks/utils/mpc/MinimalProxy__factory.ts +104 -0
  214. package/typechain-types/factories/contracts/mocks/utils/mpc/Miscellaneous1TestsContract__factory.ts +1 -1
  215. package/typechain-types/factories/contracts/mocks/utils/mpc/MiscellaneousTestsContract__factory.ts +1 -1
  216. package/typechain-types/factories/contracts/mocks/utils/mpc/MpcOperations128TestContract__factory.ts +723 -0
  217. package/typechain-types/factories/contracts/mocks/utils/mpc/MpcOperationsTestContract__factory.ts +1410 -0
  218. package/typechain-types/factories/contracts/mocks/utils/mpc/Mux128TestsContract__factory.ts +115 -0
  219. package/typechain-types/factories/contracts/mocks/utils/mpc/Mux256TestsContract__factory.ts +115 -0
  220. package/typechain-types/factories/contracts/mocks/utils/mpc/OffboardToUserKeyTestContract__factory.ts +1 -1
  221. package/typechain-types/factories/contracts/mocks/utils/mpc/OnBoard128TestsContract__factory.ts +175 -0
  222. package/typechain-types/factories/contracts/mocks/utils/mpc/OnBoard256TestsContract__factory.ts +205 -0
  223. package/typechain-types/factories/contracts/mocks/utils/mpc/PrivacyImplementationV1__factory.ts +521 -0
  224. package/typechain-types/factories/contracts/mocks/utils/mpc/PrivacyImplementationV2__factory.ts +648 -0
  225. package/typechain-types/factories/contracts/mocks/utils/mpc/PrivacyProxy__factory.ts +179 -0
  226. package/typechain-types/factories/contracts/mocks/utils/mpc/Random128TestsContract__factory.ts +131 -0
  227. package/typechain-types/factories/contracts/mocks/utils/mpc/Random256TestsContract__factory.ts +131 -0
  228. package/typechain-types/factories/contracts/mocks/utils/mpc/Shift128TestsContract__factory.ts +147 -0
  229. package/typechain-types/factories/contracts/mocks/utils/mpc/Shift256TestsContract__factory.ts +147 -0
  230. package/typechain-types/factories/contracts/mocks/utils/mpc/ShiftTestsContract__factory.ts +1 -1
  231. package/typechain-types/factories/contracts/mocks/utils/mpc/StringTestsContract__factory.ts +1 -1
  232. package/typechain-types/factories/contracts/mocks/utils/mpc/Transfer128TestsContract__factory.ts +135 -0
  233. package/typechain-types/factories/contracts/mocks/utils/mpc/Transfer256TestsContract__factory.ts +135 -0
  234. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferScalarTestsContract__factory.ts +1 -1
  235. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferTestsContract__factory.ts +1 -1
  236. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance128TestsContract__factory.ts +154 -0
  237. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance256TestsContract__factory.ts +154 -0
  238. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_16TestsContract__factory.ts +1 -1
  239. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_32TestsContract__factory.ts +1 -1
  240. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_64TestsContract__factory.ts +1 -1
  241. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_8TestsContract__factory.ts +1 -1
  242. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowanceScalarTestsContract__factory.ts +1 -1
  243. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowanceTestsContract__factory.ts +1 -1
  244. package/typechain-types/factories/contracts/mocks/utils/mpc/ValidateCiphertext128TestsContract__factory.ts +190 -0
  245. package/typechain-types/factories/contracts/mocks/utils/mpc/ValidateCiphertext256TestsContract__factory.ts +210 -0
  246. package/typechain-types/factories/contracts/mocks/utils/mpc/ValidateCiphertextTestsContract__factory.ts +260 -0
  247. package/typechain-types/factories/contracts/mocks/utils/mpc/index.ts +32 -8
  248. package/typechain-types/factories/contracts/mocks/wallet/PrivateERC20Wallet/PrivateERC20WalletMock__factory.ts +7 -7
  249. package/typechain-types/factories/contracts/token/PrivateERC20/IPrivateERC20__factory.ts +174 -42
  250. package/typechain-types/factories/contracts/token/PrivateERC20/PrivateERC20__factory.ts +174 -42
  251. package/typechain-types/factories/contracts/utils/mpc/MpcInterface.sol/ExtendedOperations__factory.ts +126 -0
  252. package/typechain-types/hardhat.d.ts +638 -80
  253. package/typechain-types/index.ts +78 -16
  254. package/contracts/mocks/utils/mpc/Arithmetic128BitTestsContract.sol +0 -260
  255. package/contracts/mocks/utils/mpc/Arithmetic256BitTestsContract.sol +0 -264
  256. package/contracts/mocks/utils/mpc/Bitwise128BitTestsContract.sol +0 -91
  257. package/contracts/mocks/utils/mpc/Bitwise256BitTestsContract.sol +0 -91
  258. package/contracts/mocks/utils/mpc/Comparison128BitTestsContract.sol +0 -158
  259. package/contracts/mocks/utils/mpc/Comparison256BitTestsContract.sol +0 -158
  260. package/contracts/mocks/utils/mpc/Miscellaneous128BitTestsContract.sol +0 -185
  261. package/contracts/mocks/utils/mpc/Miscellaneous256BitTestsContract.sol +0 -190
  262. package/contracts/mocks/utils/mpc/README.md +0 -486
  263. package/test/utils/mpc/Unsigned128BitIntegers.test.ts +0 -945
  264. package/test/utils/mpc/Unsigned256BitIntegers.test.ts +0 -1124
  265. package/test/utils/mpc/helpers.ts +0 -77
@@ -0,0 +1,330 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ import {
5
+ Contract,
6
+ ContractFactory,
7
+ ContractTransactionResponse,
8
+ Interface,
9
+ } from "ethers";
10
+ import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers";
11
+ import type { NonPayableOverrides } from "../../../../../common";
12
+ import type {
13
+ Arithmetic128TestsContract,
14
+ Arithmetic128TestsContractInterface,
15
+ } from "../../../../../contracts/mocks/utils/mpc/Arithmetic128TestsContract";
16
+
17
+ const _abi = [
18
+ {
19
+ inputs: [
20
+ {
21
+ internalType: "uint128",
22
+ name: "a",
23
+ type: "uint128",
24
+ },
25
+ {
26
+ internalType: "uint128",
27
+ name: "b",
28
+ type: "uint128",
29
+ },
30
+ ],
31
+ name: "addTest",
32
+ outputs: [
33
+ {
34
+ internalType: "uint128",
35
+ name: "",
36
+ type: "uint128",
37
+ },
38
+ ],
39
+ stateMutability: "nonpayable",
40
+ type: "function",
41
+ },
42
+ {
43
+ inputs: [
44
+ {
45
+ internalType: "uint128",
46
+ name: "a",
47
+ type: "uint128",
48
+ },
49
+ {
50
+ internalType: "uint128",
51
+ name: "b",
52
+ type: "uint128",
53
+ },
54
+ ],
55
+ name: "checkedAddTest",
56
+ outputs: [
57
+ {
58
+ internalType: "uint128",
59
+ name: "",
60
+ type: "uint128",
61
+ },
62
+ ],
63
+ stateMutability: "nonpayable",
64
+ type: "function",
65
+ },
66
+ {
67
+ inputs: [
68
+ {
69
+ internalType: "uint128",
70
+ name: "a",
71
+ type: "uint128",
72
+ },
73
+ {
74
+ internalType: "uint128",
75
+ name: "b",
76
+ type: "uint128",
77
+ },
78
+ ],
79
+ name: "checkedMulTest",
80
+ outputs: [
81
+ {
82
+ internalType: "uint128",
83
+ name: "",
84
+ type: "uint128",
85
+ },
86
+ ],
87
+ stateMutability: "nonpayable",
88
+ type: "function",
89
+ },
90
+ {
91
+ inputs: [
92
+ {
93
+ internalType: "uint128",
94
+ name: "a",
95
+ type: "uint128",
96
+ },
97
+ {
98
+ internalType: "uint128",
99
+ name: "b",
100
+ type: "uint128",
101
+ },
102
+ ],
103
+ name: "checkedSubTest",
104
+ outputs: [
105
+ {
106
+ internalType: "uint128",
107
+ name: "",
108
+ type: "uint128",
109
+ },
110
+ ],
111
+ stateMutability: "nonpayable",
112
+ type: "function",
113
+ },
114
+ {
115
+ inputs: [
116
+ {
117
+ internalType: "uint128",
118
+ name: "a",
119
+ type: "uint128",
120
+ },
121
+ {
122
+ internalType: "uint128",
123
+ name: "b",
124
+ type: "uint128",
125
+ },
126
+ ],
127
+ name: "divTest",
128
+ outputs: [
129
+ {
130
+ internalType: "uint128",
131
+ name: "",
132
+ type: "uint128",
133
+ },
134
+ ],
135
+ stateMutability: "nonpayable",
136
+ type: "function",
137
+ },
138
+ {
139
+ inputs: [],
140
+ name: "getAddResult",
141
+ outputs: [
142
+ {
143
+ internalType: "uint128",
144
+ name: "",
145
+ type: "uint128",
146
+ },
147
+ ],
148
+ stateMutability: "view",
149
+ type: "function",
150
+ },
151
+ {
152
+ inputs: [],
153
+ name: "getDivResult",
154
+ outputs: [
155
+ {
156
+ internalType: "uint128",
157
+ name: "",
158
+ type: "uint128",
159
+ },
160
+ ],
161
+ stateMutability: "view",
162
+ type: "function",
163
+ },
164
+ {
165
+ inputs: [],
166
+ name: "getMulResult",
167
+ outputs: [
168
+ {
169
+ internalType: "uint128",
170
+ name: "",
171
+ type: "uint128",
172
+ },
173
+ ],
174
+ stateMutability: "view",
175
+ type: "function",
176
+ },
177
+ {
178
+ inputs: [],
179
+ name: "getRemResult",
180
+ outputs: [
181
+ {
182
+ internalType: "uint128",
183
+ name: "",
184
+ type: "uint128",
185
+ },
186
+ ],
187
+ stateMutability: "view",
188
+ type: "function",
189
+ },
190
+ {
191
+ inputs: [],
192
+ name: "getSubResult",
193
+ outputs: [
194
+ {
195
+ internalType: "uint128",
196
+ name: "",
197
+ type: "uint128",
198
+ },
199
+ ],
200
+ stateMutability: "view",
201
+ type: "function",
202
+ },
203
+ {
204
+ inputs: [
205
+ {
206
+ internalType: "uint128",
207
+ name: "a",
208
+ type: "uint128",
209
+ },
210
+ {
211
+ internalType: "uint128",
212
+ name: "b",
213
+ type: "uint128",
214
+ },
215
+ ],
216
+ name: "mulTest",
217
+ outputs: [
218
+ {
219
+ internalType: "uint128",
220
+ name: "",
221
+ type: "uint128",
222
+ },
223
+ ],
224
+ stateMutability: "nonpayable",
225
+ type: "function",
226
+ },
227
+ {
228
+ inputs: [
229
+ {
230
+ internalType: "uint128",
231
+ name: "a",
232
+ type: "uint128",
233
+ },
234
+ {
235
+ internalType: "uint128",
236
+ name: "b",
237
+ type: "uint128",
238
+ },
239
+ ],
240
+ name: "remTest",
241
+ outputs: [
242
+ {
243
+ internalType: "uint128",
244
+ name: "",
245
+ type: "uint128",
246
+ },
247
+ ],
248
+ stateMutability: "nonpayable",
249
+ type: "function",
250
+ },
251
+ {
252
+ inputs: [
253
+ {
254
+ internalType: "uint128",
255
+ name: "a",
256
+ type: "uint128",
257
+ },
258
+ {
259
+ internalType: "uint128",
260
+ name: "b",
261
+ type: "uint128",
262
+ },
263
+ ],
264
+ name: "subTest",
265
+ outputs: [
266
+ {
267
+ internalType: "uint128",
268
+ name: "",
269
+ type: "uint128",
270
+ },
271
+ ],
272
+ stateMutability: "nonpayable",
273
+ type: "function",
274
+ },
275
+ ] as const;
276
+
277
+ const _bytecode =
278
+ "0x608060405234801561001057600080fd5b5061103e806100206000396000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c80637abbe1c81161008c578063998352ca11610066578063998352ca146101f4578063aaadb54f14610207578063d3e4744d1461021a578063f86bdefe1461023457600080fd5b80637abbe1c8146101a057806387b1e833146101b3578063971bbe6f146101c657600080fd5b806347c3852b116100bd57806347c3852b146101675780634c656f201461017a57806356ba93e51461018d57600080fd5b806324ad7b30146100e45780632684f8631461011f5780632e5dda1e1461014d575b600080fd5b6000546fffffffffffffffffffffffffffffffff165b6040516fffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff166100fa565b6002546fffffffffffffffffffffffffffffffff166100fa565b6100fa610175366004610f92565b610247565b6100fa610188366004610f92565b6102b1565b6100fa61019b366004610f92565b610321565b6100fa6101ae366004610f92565b610391565b6100fa6101c1366004610f92565b610539565b60005470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff166100fa565b6100fa610202366004610f92565b6105a9565b6100fa610215366004610f92565b61060e565b6001546fffffffffffffffffffffffffffffffff166100fa565b6100fa610242366004610f92565b6107a8565b60008061025384610936565b9050600061026084610936565b9050600061027661027184846109f3565b610ac0565b600080546fffffffffffffffffffffffffffffffff808416700100000000000000000000000000000000029116179055935050505092915050565b6000806102bd84610936565b905060006102ca84610936565b905060006102db6102718484610b1a565b600080547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff83161790559695505050505050565b60008061032d84610936565b9050600061033a84610936565b9050600061034b6102718484610b31565b600180547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff83161790559695505050505050565b60008061039d84610936565b905060006103aa84610936565b905060006103bb6102718484610b48565b600080547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff831617905590506104066102718784610c0e565b6fffffffffffffffffffffffffffffffff16816fffffffffffffffffffffffffffffffff1614610497576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f616464546573743a207363616c6172206661696c65640000000000000000000060448201526064015b60405180910390fd5b6104a46102718487610ca0565b6fffffffffffffffffffffffffffffffff16816fffffffffffffffffffffffffffffffff1614610530576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f616464546573743a207363616c6172206661696c656400000000000000000000604482015260640161048e565b95945050505050565b60008061054584610936565b9050600061055284610936565b905060006105636102718484610d32565b600280547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff83161790559695505050505050565b6000806105b584610936565b905060006105c284610936565b905060006105d36102718484610d47565b600180546fffffffffffffffffffffffffffffffff808416700100000000000000000000000000000000029116179055935050505092915050565b60008061061a84610936565b9050600061062784610936565b905060006106386102718484610d5c565b600180547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff831617905590506106836102718784610d71565b6fffffffffffffffffffffffffffffffff16816fffffffffffffffffffffffffffffffff161461070f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f6d756c546573743a207363616c6172206661696c656400000000000000000000604482015260640161048e565b61071c6102718487610d87565b6fffffffffffffffffffffffffffffffff16816fffffffffffffffffffffffffffffffff1614610530576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f6d756c546573743a207363616c6172206661696c656400000000000000000000604482015260640161048e565b6000806107b484610936565b905060006107c184610936565b905060006107d26102718484610d9d565b600080546fffffffffffffffffffffffffffffffff80841670010000000000000000000000000000000002911617905590506108116102718784610db2565b6fffffffffffffffffffffffffffffffff16816fffffffffffffffffffffffffffffffff161461089d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f737562546573743a207363616c6172206661696c656400000000000000000000604482015260640161048e565b6108aa6102718487610dc8565b6fffffffffffffffffffffffffffffffff16816fffffffffffffffffffffffffffffffff1614610530576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f737562546573743a207363616c6172206661696c656400000000000000000000604482015260640161048e565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f050000000000000000000000000000000000000000000000000000000000000060048201526fffffffffffffffffffffffffffffffff8216602482015260009060649063d9b60b60906044015b6020604051808303816000875af11580156109c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ed9190610ff4565b92915050565b60008080606463ce8c713d610a0a60058085610dda565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff00000000000000000000000000000000000000000000000000000000009091166004820152602481018890526044810187905260640160408051808303816000875af1158015610a8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab2919061100d565b915091506105308282610e37565b60006064630cfed56160055b60f81b846040518363ffffffff1660e01b81526004016109aa9291907fff00000000000000000000000000000000000000000000000000000000000000929092168252602082015260400190565b60008080606463f581fa20610a0a60058085610dda565b600080806064630915497f610a0a60058085610dda565b60006064638c5d0150610b5d60058085610dda565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff0000000000000000000000000000000000000000000000000000000000909116600482015260248101869052604481018590526064015b6020604051808303816000875af1158015610be3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c079190610ff4565b9392505050565b60006064638c5d0150610c246005806001610dda565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff000000000000000000000000000000000000000000000000000000000090911660048201526fffffffffffffffffffffffffffffffff8616602482015260448101859052606401610bc4565b60006064638c5d0150610cb66005806002610dda565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff00000000000000000000000000000000000000000000000000000000009091166004820152602481018690526fffffffffffffffffffffffffffffffff85166044820152606401610bc4565b600060646386e3b7b9610b5d60058085610dda565b60006064634e9ba4b5610b5d60058085610dda565b6000606463f1d21bb4610b5d60058085610dda565b6000606463f1d21bb4610c246005806001610dda565b6000606463f1d21bb4610cb66005806002610dda565b6000606463371d1bf2610b5d60058085610dda565b6000606463371d1bf2610c246005806001610dda565b6000606463371d1bf2610cb660058060025b6000816002811115610dee57610dee610fc5565b60ff166008846006811115610e0557610e05610fc5565b61ffff16901b61ffff166010866006811115610e2357610e23610fc5565b62ffffff16901b171760e81b949350505050565b6000610e4283610e48565b50919050565b6000610e5382610ecd565b9050610e5e81610edc565b1515600114610ec9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f6f766572666c6f77206572726f72000000000000000000000000000000000000604482015260640161048e565b5050565b60006064631d79e49a82610acc565b6040517f0cfed56100000000000000000000000000000000000000000000000000000000815260006004820181905260248201839052908190606490630cfed561906044016020604051808303816000875af1158015610f40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f649190610ff4565b15159392505050565b80356fffffffffffffffffffffffffffffffff81168114610f8d57600080fd5b919050565b60008060408385031215610fa557600080fd5b610fae83610f6d565b9150610fbc60208401610f6d565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60006020828403121561100657600080fd5b5051919050565b6000806040838503121561102057600080fd5b50508051602090910151909290915056fea164736f6c6343000813000a";
279
+
280
+ type Arithmetic128TestsContractConstructorParams =
281
+ | [signer?: Signer]
282
+ | ConstructorParameters<typeof ContractFactory>;
283
+
284
+ const isSuperArgs = (
285
+ xs: Arithmetic128TestsContractConstructorParams
286
+ ): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;
287
+
288
+ export class Arithmetic128TestsContract__factory extends ContractFactory {
289
+ constructor(...args: Arithmetic128TestsContractConstructorParams) {
290
+ if (isSuperArgs(args)) {
291
+ super(...args);
292
+ } else {
293
+ super(_abi, _bytecode, args[0]);
294
+ }
295
+ }
296
+
297
+ override getDeployTransaction(
298
+ overrides?: NonPayableOverrides & { from?: string }
299
+ ): Promise<ContractDeployTransaction> {
300
+ return super.getDeployTransaction(overrides || {});
301
+ }
302
+ override deploy(overrides?: NonPayableOverrides & { from?: string }) {
303
+ return super.deploy(overrides || {}) as Promise<
304
+ Arithmetic128TestsContract & {
305
+ deploymentTransaction(): ContractTransactionResponse;
306
+ }
307
+ >;
308
+ }
309
+ override connect(
310
+ runner: ContractRunner | null
311
+ ): Arithmetic128TestsContract__factory {
312
+ return super.connect(runner) as Arithmetic128TestsContract__factory;
313
+ }
314
+
315
+ static readonly bytecode = _bytecode;
316
+ static readonly abi = _abi;
317
+ static createInterface(): Arithmetic128TestsContractInterface {
318
+ return new Interface(_abi) as Arithmetic128TestsContractInterface;
319
+ }
320
+ static connect(
321
+ address: string,
322
+ runner?: ContractRunner | null
323
+ ): Arithmetic128TestsContract {
324
+ return new Contract(
325
+ address,
326
+ _abi,
327
+ runner
328
+ ) as unknown as Arithmetic128TestsContract;
329
+ }
330
+ }
@@ -0,0 +1,330 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ import {
5
+ Contract,
6
+ ContractFactory,
7
+ ContractTransactionResponse,
8
+ Interface,
9
+ } from "ethers";
10
+ import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers";
11
+ import type { NonPayableOverrides } from "../../../../../common";
12
+ import type {
13
+ Arithmetic256TestsContract,
14
+ Arithmetic256TestsContractInterface,
15
+ } from "../../../../../contracts/mocks/utils/mpc/Arithmetic256TestsContract";
16
+
17
+ const _abi = [
18
+ {
19
+ inputs: [
20
+ {
21
+ internalType: "uint256",
22
+ name: "a",
23
+ type: "uint256",
24
+ },
25
+ {
26
+ internalType: "uint256",
27
+ name: "b",
28
+ type: "uint256",
29
+ },
30
+ ],
31
+ name: "addTest",
32
+ outputs: [
33
+ {
34
+ internalType: "uint256",
35
+ name: "",
36
+ type: "uint256",
37
+ },
38
+ ],
39
+ stateMutability: "nonpayable",
40
+ type: "function",
41
+ },
42
+ {
43
+ inputs: [
44
+ {
45
+ internalType: "uint256",
46
+ name: "a",
47
+ type: "uint256",
48
+ },
49
+ {
50
+ internalType: "uint256",
51
+ name: "b",
52
+ type: "uint256",
53
+ },
54
+ ],
55
+ name: "checkedAddTest",
56
+ outputs: [
57
+ {
58
+ internalType: "uint256",
59
+ name: "",
60
+ type: "uint256",
61
+ },
62
+ ],
63
+ stateMutability: "nonpayable",
64
+ type: "function",
65
+ },
66
+ {
67
+ inputs: [
68
+ {
69
+ internalType: "uint256",
70
+ name: "a",
71
+ type: "uint256",
72
+ },
73
+ {
74
+ internalType: "uint256",
75
+ name: "b",
76
+ type: "uint256",
77
+ },
78
+ ],
79
+ name: "checkedMulTest",
80
+ outputs: [
81
+ {
82
+ internalType: "uint256",
83
+ name: "",
84
+ type: "uint256",
85
+ },
86
+ ],
87
+ stateMutability: "nonpayable",
88
+ type: "function",
89
+ },
90
+ {
91
+ inputs: [
92
+ {
93
+ internalType: "uint256",
94
+ name: "a",
95
+ type: "uint256",
96
+ },
97
+ {
98
+ internalType: "uint256",
99
+ name: "b",
100
+ type: "uint256",
101
+ },
102
+ ],
103
+ name: "checkedSubTest",
104
+ outputs: [
105
+ {
106
+ internalType: "uint256",
107
+ name: "",
108
+ type: "uint256",
109
+ },
110
+ ],
111
+ stateMutability: "nonpayable",
112
+ type: "function",
113
+ },
114
+ {
115
+ inputs: [
116
+ {
117
+ internalType: "uint256",
118
+ name: "a",
119
+ type: "uint256",
120
+ },
121
+ {
122
+ internalType: "uint256",
123
+ name: "b",
124
+ type: "uint256",
125
+ },
126
+ ],
127
+ name: "divTest",
128
+ outputs: [
129
+ {
130
+ internalType: "uint256",
131
+ name: "",
132
+ type: "uint256",
133
+ },
134
+ ],
135
+ stateMutability: "nonpayable",
136
+ type: "function",
137
+ },
138
+ {
139
+ inputs: [],
140
+ name: "getAddResult",
141
+ outputs: [
142
+ {
143
+ internalType: "uint256",
144
+ name: "",
145
+ type: "uint256",
146
+ },
147
+ ],
148
+ stateMutability: "view",
149
+ type: "function",
150
+ },
151
+ {
152
+ inputs: [],
153
+ name: "getDivResult",
154
+ outputs: [
155
+ {
156
+ internalType: "uint256",
157
+ name: "",
158
+ type: "uint256",
159
+ },
160
+ ],
161
+ stateMutability: "view",
162
+ type: "function",
163
+ },
164
+ {
165
+ inputs: [],
166
+ name: "getMulResult",
167
+ outputs: [
168
+ {
169
+ internalType: "uint256",
170
+ name: "",
171
+ type: "uint256",
172
+ },
173
+ ],
174
+ stateMutability: "view",
175
+ type: "function",
176
+ },
177
+ {
178
+ inputs: [],
179
+ name: "getRemResult",
180
+ outputs: [
181
+ {
182
+ internalType: "uint256",
183
+ name: "",
184
+ type: "uint256",
185
+ },
186
+ ],
187
+ stateMutability: "view",
188
+ type: "function",
189
+ },
190
+ {
191
+ inputs: [],
192
+ name: "getSubResult",
193
+ outputs: [
194
+ {
195
+ internalType: "uint256",
196
+ name: "",
197
+ type: "uint256",
198
+ },
199
+ ],
200
+ stateMutability: "view",
201
+ type: "function",
202
+ },
203
+ {
204
+ inputs: [
205
+ {
206
+ internalType: "uint256",
207
+ name: "a",
208
+ type: "uint256",
209
+ },
210
+ {
211
+ internalType: "uint256",
212
+ name: "b",
213
+ type: "uint256",
214
+ },
215
+ ],
216
+ name: "mulTest",
217
+ outputs: [
218
+ {
219
+ internalType: "uint256",
220
+ name: "",
221
+ type: "uint256",
222
+ },
223
+ ],
224
+ stateMutability: "nonpayable",
225
+ type: "function",
226
+ },
227
+ {
228
+ inputs: [
229
+ {
230
+ internalType: "uint256",
231
+ name: "a",
232
+ type: "uint256",
233
+ },
234
+ {
235
+ internalType: "uint256",
236
+ name: "b",
237
+ type: "uint256",
238
+ },
239
+ ],
240
+ name: "remTest",
241
+ outputs: [
242
+ {
243
+ internalType: "uint256",
244
+ name: "",
245
+ type: "uint256",
246
+ },
247
+ ],
248
+ stateMutability: "nonpayable",
249
+ type: "function",
250
+ },
251
+ {
252
+ inputs: [
253
+ {
254
+ internalType: "uint256",
255
+ name: "a",
256
+ type: "uint256",
257
+ },
258
+ {
259
+ internalType: "uint256",
260
+ name: "b",
261
+ type: "uint256",
262
+ },
263
+ ],
264
+ name: "subTest",
265
+ outputs: [
266
+ {
267
+ internalType: "uint256",
268
+ name: "",
269
+ type: "uint256",
270
+ },
271
+ ],
272
+ stateMutability: "nonpayable",
273
+ type: "function",
274
+ },
275
+ ] as const;
276
+
277
+ const _bytecode =
278
+ "0x608060405234801561001057600080fd5b50610bac806100206000396000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c80637d32f1a51161008c578063d3e4744d11610066578063d3e4744d14610175578063eda754ef1461017d578063ef4b448114610190578063fe374062146101a357600080fd5b80637d32f1a514610147578063971bbe6f1461015a578063b24a07431461016257600080fd5b80632c669185116100bd5780632c669185146101195780632e5dda1e1461012c5780633b8dc7641461013457600080fd5b806320016fbc146100e457806324ad7b30146101095780632684f86314610111575b600080fd5b6100f76100f2366004610b11565b6101b6565b60405190815260200160405180910390f35b6000546100f7565b6003546100f7565b6100f7610127366004610b11565b6101f4565b6004546100f7565b6100f7610142366004610b11565b61022d565b6100f7610155366004610b11565b610266565b6001546100f7565b6100f7610170366004610b11565b61038f565b6002546100f7565b6100f761018b366004610b11565b6103c8565b6100f761019e366004610b11565b6104e3565b6100f76101b1366004610b11565b61051c565b6000806101c284610637565b905060006101cf84610637565b905060006101e56101e084846106da565b6107a7565b60018190559695505050505050565b60008061020084610637565b9050600061020d84610637565b9050600061021e6101e084846107b7565b60028190559695505050505050565b60008061023984610637565b9050600061024684610637565b905060006102576101e084846107ce565b60048190559695505050505050565b60008061027284610637565b9050600061027f84610637565b905060006102906101e08484610893565b600281905590506102a46101e087846108a8565b8114610311576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f6d756c546573743a207363616c6172206661696c65640000000000000000000060448201526064015b60405180910390fd5b61031e6101e084876108be565b8114610386576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f6d756c546573743a207363616c6172206661696c6564000000000000000000006044820152606401610308565b95945050505050565b60008061039b84610637565b905060006103a884610637565b905060006103b96101e084846108d4565b60008190559695505050505050565b6000806103d484610637565b905060006103e184610637565b905060006103f26101e084846108eb565b600181905590506104066101e08784610900565b811461046e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f737562546573743a207363616c6172206661696c6564000000000000000000006044820152606401610308565b61047b6101e08487610916565b8114610386576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f737562546573743a207363616c6172206661696c6564000000000000000000006044820152606401610308565b6000806104ef84610637565b905060006104fc84610637565b9050600061050d6101e0848461092c565b60038190559695505050505050565b60008061052884610637565b9050600061053584610637565b905060006105466101e08484610941565b6000819055905061055a6101e08784610956565b81146105c2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f616464546573743a207363616c6172206661696c6564000000000000000000006044820152606401610308565b6105cf6101e0848761096c565b8114610386576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f616464546573743a207363616c6172206661696c6564000000000000000000006044820152606401610308565b6000606463d9b60b6060065b60f81b846040518363ffffffff1660e01b81526004016106919291907fff00000000000000000000000000000000000000000000000000000000000000929092168252602082015260400190565b6020604051808303816000875af11580156106b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106d49190610b62565b92915050565b60008080606463ce8c713d6106f16006808561097e565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff00000000000000000000000000000000000000000000000000000000009091166004820152602481018890526044810187905260640160408051808303816000875af1158015610775573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107999190610b7b565b9150915061038682826109db565b60006064630cfed5616006610643565b600080806064630915497f6106f16006808561097e565b600060646386e3b7b96107e36006808561097e565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff0000000000000000000000000000000000000000000000000000000000909116600482015260248101869052604481018590526064016020604051808303816000875af1158015610868573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088c9190610b62565b9392505050565b6000606463f1d21bb46107e36006808561097e565b6000606463f1d21bb46107e3600680600161097e565b6000606463f1d21bb46107e3600680600261097e565b60008080606463f581fa206106f16006808561097e565b6000606463371d1bf26107e36006808561097e565b6000606463371d1bf26107e3600680600161097e565b6000606463371d1bf26107e3600680600261097e565b60006064634e9ba4b56107e36006808561097e565b60006064638c5d01506107e36006808561097e565b60006064638c5d01506107e3600680600161097e565b60006064638c5d01506107e360068060025b600081600281111561099257610992610b33565b60ff1660088460068111156109a9576109a9610b33565b61ffff16901b61ffff1660108660068111156109c7576109c7610b33565b62ffffff16901b171760e81b949350505050565b60006109e6836109ec565b50919050565b60006109f782610a71565b9050610a0281610a80565b1515600114610a6d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f6f766572666c6f77206572726f720000000000000000000000000000000000006044820152606401610308565b5050565b60006064631d79e49a82610643565b6040517f0cfed56100000000000000000000000000000000000000000000000000000000815260006004820181905260248201839052908190606490630cfed561906044016020604051808303816000875af1158015610ae4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b089190610b62565b15159392505050565b60008060408385031215610b2457600080fd5b50508035926020909101359150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600060208284031215610b7457600080fd5b5051919050565b60008060408385031215610b8e57600080fd5b50508051602090910151909290915056fea164736f6c6343000813000a";
279
+
280
+ type Arithmetic256TestsContractConstructorParams =
281
+ | [signer?: Signer]
282
+ | ConstructorParameters<typeof ContractFactory>;
283
+
284
+ const isSuperArgs = (
285
+ xs: Arithmetic256TestsContractConstructorParams
286
+ ): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;
287
+
288
+ export class Arithmetic256TestsContract__factory extends ContractFactory {
289
+ constructor(...args: Arithmetic256TestsContractConstructorParams) {
290
+ if (isSuperArgs(args)) {
291
+ super(...args);
292
+ } else {
293
+ super(_abi, _bytecode, args[0]);
294
+ }
295
+ }
296
+
297
+ override getDeployTransaction(
298
+ overrides?: NonPayableOverrides & { from?: string }
299
+ ): Promise<ContractDeployTransaction> {
300
+ return super.getDeployTransaction(overrides || {});
301
+ }
302
+ override deploy(overrides?: NonPayableOverrides & { from?: string }) {
303
+ return super.deploy(overrides || {}) as Promise<
304
+ Arithmetic256TestsContract & {
305
+ deploymentTransaction(): ContractTransactionResponse;
306
+ }
307
+ >;
308
+ }
309
+ override connect(
310
+ runner: ContractRunner | null
311
+ ): Arithmetic256TestsContract__factory {
312
+ return super.connect(runner) as Arithmetic256TestsContract__factory;
313
+ }
314
+
315
+ static readonly bytecode = _bytecode;
316
+ static readonly abi = _abi;
317
+ static createInterface(): Arithmetic256TestsContractInterface {
318
+ return new Interface(_abi) as Arithmetic256TestsContractInterface;
319
+ }
320
+ static connect(
321
+ address: string,
322
+ runner?: ContractRunner | null
323
+ ): Arithmetic256TestsContract {
324
+ return new Contract(
325
+ address,
326
+ _abi,
327
+ runner
328
+ ) as unknown as Arithmetic256TestsContract;
329
+ }
330
+ }