@coti-io/coti-contracts 1.0.9 → 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 (271) 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 +10891 -2449
  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/Arithmetic128BitTestsContract.ts +341 -0
  142. package/typechain-types/contracts/mocks/utils/mpc/Arithmetic128TestsContract.ts +311 -0
  143. package/typechain-types/contracts/mocks/utils/mpc/Arithmetic256BitTestsContract.ts +347 -0
  144. package/typechain-types/contracts/mocks/utils/mpc/Arithmetic256TestsContract.ts +311 -0
  145. package/typechain-types/contracts/mocks/utils/mpc/Bitwise128BitTestsContract.ts +186 -0
  146. package/typechain-types/contracts/mocks/utils/mpc/Bitwise128TestsContract.ts +179 -0
  147. package/typechain-types/contracts/mocks/utils/mpc/Bitwise256BitTestsContract.ts +186 -0
  148. package/typechain-types/contracts/mocks/utils/mpc/Bitwise256TestsContract.ts +179 -0
  149. package/typechain-types/contracts/mocks/utils/mpc/CheckedArithmetic128WithOverflowBitTestsContract.ts +206 -0
  150. package/typechain-types/contracts/mocks/utils/mpc/CheckedArithmetic256WithOverflowBitTestsContract.ts +206 -0
  151. package/typechain-types/contracts/mocks/utils/mpc/Comparison128BitTestsContract.ts +260 -0
  152. package/typechain-types/contracts/mocks/utils/mpc/Comparison128TestsContract.ts +278 -0
  153. package/typechain-types/contracts/mocks/utils/mpc/Comparison256BitTestsContract.ts +260 -0
  154. package/typechain-types/contracts/mocks/utils/mpc/Comparison256TestsContract.ts +278 -0
  155. package/typechain-types/contracts/mocks/utils/mpc/MinMax128TestsContract.ts +142 -0
  156. package/typechain-types/contracts/mocks/utils/mpc/MinMax256TestsContract.ts +142 -0
  157. package/typechain-types/contracts/mocks/utils/mpc/MinimalImplementation.ts +259 -0
  158. package/typechain-types/contracts/mocks/utils/mpc/MinimalProxy.ts +90 -0
  159. package/typechain-types/contracts/mocks/utils/mpc/Miscellaneous128BitTestsContract.ts +302 -0
  160. package/typechain-types/contracts/mocks/utils/mpc/Miscellaneous256BitTestsContract.ts +322 -0
  161. package/typechain-types/contracts/mocks/utils/mpc/MpcOperations128TestContract.ts +388 -0
  162. package/typechain-types/contracts/mocks/utils/mpc/MpcOperationsTestContract.ts +455 -0
  163. package/typechain-types/contracts/mocks/utils/mpc/Mux128TestsContract.ts +109 -0
  164. package/typechain-types/contracts/mocks/utils/mpc/Mux256TestsContract.ts +109 -0
  165. package/typechain-types/contracts/mocks/utils/mpc/OnBoard128TestsContract.ts +166 -0
  166. package/typechain-types/contracts/mocks/utils/mpc/OnBoard256TestsContract.ts +194 -0
  167. package/typechain-types/contracts/mocks/utils/mpc/PrivacyImplementationV1.ts +385 -0
  168. package/typechain-types/contracts/mocks/utils/mpc/PrivacyImplementationV2.ts +441 -0
  169. package/typechain-types/contracts/mocks/utils/mpc/PrivacyProxy.ts +201 -0
  170. package/typechain-types/contracts/mocks/utils/mpc/Random128TestsContract.ts +131 -0
  171. package/typechain-types/contracts/mocks/utils/mpc/Random256TestsContract.ts +131 -0
  172. package/typechain-types/contracts/mocks/utils/mpc/Shift128TestsContract.ts +142 -0
  173. package/typechain-types/contracts/mocks/utils/mpc/Shift256TestsContract.ts +142 -0
  174. package/typechain-types/contracts/mocks/utils/mpc/Transfer128TestsContract.ts +109 -0
  175. package/typechain-types/contracts/mocks/utils/mpc/Transfer256TestsContract.ts +109 -0
  176. package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowance128TestsContract.ts +128 -0
  177. package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowance256TestsContract.ts +128 -0
  178. package/typechain-types/contracts/mocks/utils/mpc/ValidateCiphertext128TestsContract.ts +198 -0
  179. package/typechain-types/contracts/mocks/utils/mpc/ValidateCiphertext256TestsContract.ts +182 -0
  180. package/typechain-types/contracts/mocks/utils/mpc/ValidateCiphertextTestsContract.ts +257 -0
  181. package/typechain-types/contracts/mocks/utils/mpc/index.ts +32 -0
  182. package/typechain-types/contracts/token/PrivateERC20/IPrivateERC20.ts +77 -60
  183. package/typechain-types/contracts/token/PrivateERC20/PrivateERC20.ts +77 -60
  184. package/typechain-types/contracts/utils/mpc/MpcInterface.sol/ExtendedOperations.ts +111 -10
  185. package/typechain-types/factories/@openzeppelin/contracts/access/Ownable__factory.ts +74 -0
  186. package/typechain-types/factories/@openzeppelin/contracts/access/index.ts +4 -0
  187. package/typechain-types/factories/@openzeppelin/contracts/index.ts +1 -0
  188. package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/IERC20__factory.ts +205 -0
  189. package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit__factory.ts +100 -0
  190. package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/index.ts +4 -0
  191. package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/index.ts +5 -0
  192. package/typechain-types/factories/@openzeppelin/contracts/token/index.ts +1 -0
  193. package/typechain-types/factories/contracts/disperse/coinByRatio/FixedRatioCoinDisperser__factory.ts +759 -0
  194. package/typechain-types/factories/contracts/disperse/coinByRatio/index.ts +4 -0
  195. package/typechain-types/factories/contracts/disperse/disperseToken/MintDisperser.sol/IMintableERC20__factory.ts +43 -0
  196. package/typechain-types/factories/contracts/disperse/disperseToken/MintDisperser.sol/MintDisperser__factory.ts +185 -0
  197. package/typechain-types/factories/contracts/disperse/disperseToken/MintDisperser.sol/index.ts +5 -0
  198. package/typechain-types/factories/contracts/disperse/disperseToken/TokenDisperser__factory.ts +198 -0
  199. package/typechain-types/factories/contracts/disperse/disperseToken/index.ts +5 -0
  200. package/typechain-types/factories/contracts/disperse/index.ts +5 -0
  201. package/typechain-types/factories/contracts/index.ts +1 -0
  202. package/typechain-types/factories/contracts/mocks/access/DataPrivacyFramework/DataPrivacyFrameworkMock__factory.ts +1 -1
  203. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PrivateERC20Mock__factory.ts +179 -47
  204. package/typechain-types/factories/contracts/mocks/utils/mpc/Arithmetic128BitTestsContract__factory.ts +349 -0
  205. package/typechain-types/factories/contracts/mocks/utils/mpc/Arithmetic128TestsContract__factory.ts +330 -0
  206. package/typechain-types/factories/contracts/mocks/utils/mpc/Arithmetic256BitTestsContract__factory.ts +364 -0
  207. package/typechain-types/factories/contracts/mocks/utils/mpc/Arithmetic256TestsContract__factory.ts +330 -0
  208. package/typechain-types/factories/contracts/mocks/utils/mpc/ArithmeticTestsContract__factory.ts +1 -1
  209. package/typechain-types/factories/contracts/mocks/utils/mpc/Bitwise128BitTestsContract__factory.ts +182 -0
  210. package/typechain-types/factories/contracts/mocks/utils/mpc/Bitwise128TestsContract__factory.ts +184 -0
  211. package/typechain-types/factories/contracts/mocks/utils/mpc/Bitwise256BitTestsContract__factory.ts +182 -0
  212. package/typechain-types/factories/contracts/mocks/utils/mpc/Bitwise256TestsContract__factory.ts +184 -0
  213. package/typechain-types/factories/contracts/mocks/utils/mpc/BitwiseTestsContract__factory.ts +1 -1
  214. package/typechain-types/factories/contracts/mocks/utils/mpc/CheckedArithmetic128WithOverflowBitTestsContract__factory.ts +203 -0
  215. package/typechain-types/factories/contracts/mocks/utils/mpc/CheckedArithmetic256WithOverflowBitTestsContract__factory.ts +203 -0
  216. package/typechain-types/factories/contracts/mocks/utils/mpc/CheckedArithmeticWIthOverflowBitTestsContract.sol/CheckedArithmeticWithOverflowBitTestsContract__factory.ts +1 -1
  217. package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison128BitTestsContract__factory.ts +255 -0
  218. package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison128TestsContract__factory.ts +295 -0
  219. package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison1TestsContract__factory.ts +1 -1
  220. package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison256BitTestsContract__factory.ts +255 -0
  221. package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison256TestsContract__factory.ts +295 -0
  222. package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison2TestsContract__factory.ts +1 -1
  223. package/typechain-types/factories/contracts/mocks/utils/mpc/MinMax128TestsContract__factory.ts +147 -0
  224. package/typechain-types/factories/contracts/mocks/utils/mpc/MinMax256TestsContract__factory.ts +147 -0
  225. package/typechain-types/factories/contracts/mocks/utils/mpc/MinMaxTestsContract__factory.ts +1 -1
  226. package/typechain-types/factories/contracts/mocks/utils/mpc/MinimalImplementation__factory.ts +263 -0
  227. package/typechain-types/factories/contracts/mocks/utils/mpc/MinimalProxy__factory.ts +104 -0
  228. package/typechain-types/factories/contracts/mocks/utils/mpc/Miscellaneous128BitTestsContract__factory.ts +332 -0
  229. package/typechain-types/factories/contracts/mocks/utils/mpc/Miscellaneous1TestsContract__factory.ts +1 -1
  230. package/typechain-types/factories/contracts/mocks/utils/mpc/Miscellaneous256BitTestsContract__factory.ts +380 -0
  231. package/typechain-types/factories/contracts/mocks/utils/mpc/MiscellaneousTestsContract__factory.ts +1 -1
  232. package/typechain-types/factories/contracts/mocks/utils/mpc/MpcOperations128TestContract__factory.ts +723 -0
  233. package/typechain-types/factories/contracts/mocks/utils/mpc/MpcOperationsTestContract__factory.ts +1410 -0
  234. package/typechain-types/factories/contracts/mocks/utils/mpc/Mux128TestsContract__factory.ts +115 -0
  235. package/typechain-types/factories/contracts/mocks/utils/mpc/Mux256TestsContract__factory.ts +115 -0
  236. package/typechain-types/factories/contracts/mocks/utils/mpc/OffboardToUserKeyTestContract__factory.ts +1 -1
  237. package/typechain-types/factories/contracts/mocks/utils/mpc/OnBoard128TestsContract__factory.ts +175 -0
  238. package/typechain-types/factories/contracts/mocks/utils/mpc/OnBoard256TestsContract__factory.ts +205 -0
  239. package/typechain-types/factories/contracts/mocks/utils/mpc/PrivacyImplementationV1__factory.ts +521 -0
  240. package/typechain-types/factories/contracts/mocks/utils/mpc/PrivacyImplementationV2__factory.ts +648 -0
  241. package/typechain-types/factories/contracts/mocks/utils/mpc/PrivacyProxy__factory.ts +179 -0
  242. package/typechain-types/factories/contracts/mocks/utils/mpc/Random128TestsContract__factory.ts +131 -0
  243. package/typechain-types/factories/contracts/mocks/utils/mpc/Random256TestsContract__factory.ts +131 -0
  244. package/typechain-types/factories/contracts/mocks/utils/mpc/Shift128TestsContract__factory.ts +147 -0
  245. package/typechain-types/factories/contracts/mocks/utils/mpc/Shift256TestsContract__factory.ts +147 -0
  246. package/typechain-types/factories/contracts/mocks/utils/mpc/ShiftTestsContract__factory.ts +1 -1
  247. package/typechain-types/factories/contracts/mocks/utils/mpc/StringTestsContract__factory.ts +1 -1
  248. package/typechain-types/factories/contracts/mocks/utils/mpc/Transfer128TestsContract__factory.ts +135 -0
  249. package/typechain-types/factories/contracts/mocks/utils/mpc/Transfer256TestsContract__factory.ts +135 -0
  250. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferScalarTestsContract__factory.ts +1 -1
  251. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferTestsContract__factory.ts +1 -1
  252. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance128TestsContract__factory.ts +154 -0
  253. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance256TestsContract__factory.ts +154 -0
  254. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_16TestsContract__factory.ts +1 -1
  255. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_32TestsContract__factory.ts +1 -1
  256. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_64TestsContract__factory.ts +1 -1
  257. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_8TestsContract__factory.ts +1 -1
  258. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowanceScalarTestsContract__factory.ts +1 -1
  259. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowanceTestsContract__factory.ts +1 -1
  260. package/typechain-types/factories/contracts/mocks/utils/mpc/ValidateCiphertext128TestsContract__factory.ts +190 -0
  261. package/typechain-types/factories/contracts/mocks/utils/mpc/ValidateCiphertext256TestsContract__factory.ts +210 -0
  262. package/typechain-types/factories/contracts/mocks/utils/mpc/ValidateCiphertextTestsContract__factory.ts +260 -0
  263. package/typechain-types/factories/contracts/mocks/utils/mpc/index.ts +32 -0
  264. package/typechain-types/factories/contracts/mocks/wallet/PrivateERC20Wallet/PrivateERC20WalletMock__factory.ts +7 -7
  265. package/typechain-types/factories/contracts/token/PrivateERC20/IPrivateERC20__factory.ts +174 -42
  266. package/typechain-types/factories/contracts/token/PrivateERC20/PrivateERC20__factory.ts +174 -42
  267. package/typechain-types/factories/contracts/utils/mpc/MpcInterface.sol/ExtendedOperations__factory.ts +126 -0
  268. package/typechain-types/hardhat.d.ts +702 -0
  269. package/typechain-types/index.ts +78 -0
  270. package/contracts/mocks/utils/mpc/README.md +0 -486
  271. package/contracts/package.json +0 -11
@@ -0,0 +1,364 @@
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
+ Arithmetic256BitTestsContract,
14
+ Arithmetic256BitTestsContractInterface,
15
+ } from "../../../../../contracts/mocks/utils/mpc/Arithmetic256BitTestsContract";
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
+ stateMutability: "nonpayable",
34
+ type: "function",
35
+ },
36
+ {
37
+ inputs: [
38
+ {
39
+ internalType: "uint256",
40
+ name: "a",
41
+ type: "uint256",
42
+ },
43
+ {
44
+ internalType: "uint256",
45
+ name: "b",
46
+ type: "uint256",
47
+ },
48
+ ],
49
+ name: "checkedAddTest",
50
+ outputs: [],
51
+ stateMutability: "nonpayable",
52
+ type: "function",
53
+ },
54
+ {
55
+ inputs: [
56
+ {
57
+ internalType: "uint256[]",
58
+ name: "a",
59
+ type: "uint256[]",
60
+ },
61
+ {
62
+ internalType: "uint256[]",
63
+ name: "b",
64
+ type: "uint256[]",
65
+ },
66
+ ],
67
+ name: "checkedAddWithOverflowBitTest",
68
+ outputs: [],
69
+ stateMutability: "nonpayable",
70
+ type: "function",
71
+ },
72
+ {
73
+ inputs: [
74
+ {
75
+ internalType: "uint256",
76
+ name: "a",
77
+ type: "uint256",
78
+ },
79
+ {
80
+ internalType: "uint256",
81
+ name: "b",
82
+ type: "uint256",
83
+ },
84
+ {
85
+ internalType: "enum Arithmetic256BitTestsContract.PrivateInput",
86
+ name: "privateInput",
87
+ type: "uint8",
88
+ },
89
+ ],
90
+ name: "checkedMulTest",
91
+ outputs: [],
92
+ stateMutability: "nonpayable",
93
+ type: "function",
94
+ },
95
+ {
96
+ inputs: [
97
+ {
98
+ internalType: "uint256[]",
99
+ name: "a",
100
+ type: "uint256[]",
101
+ },
102
+ {
103
+ internalType: "uint256[]",
104
+ name: "b",
105
+ type: "uint256[]",
106
+ },
107
+ {
108
+ internalType: "enum Arithmetic256BitTestsContract.PrivateInput",
109
+ name: "privateInput",
110
+ type: "uint8",
111
+ },
112
+ ],
113
+ name: "checkedMulWithOverflowBitTest",
114
+ outputs: [],
115
+ stateMutability: "nonpayable",
116
+ type: "function",
117
+ },
118
+ {
119
+ inputs: [
120
+ {
121
+ internalType: "uint256",
122
+ name: "a",
123
+ type: "uint256",
124
+ },
125
+ {
126
+ internalType: "uint256",
127
+ name: "b",
128
+ type: "uint256",
129
+ },
130
+ ],
131
+ name: "checkedSubTest",
132
+ outputs: [],
133
+ stateMutability: "nonpayable",
134
+ type: "function",
135
+ },
136
+ {
137
+ inputs: [
138
+ {
139
+ internalType: "uint256[]",
140
+ name: "a",
141
+ type: "uint256[]",
142
+ },
143
+ {
144
+ internalType: "uint256[]",
145
+ name: "b",
146
+ type: "uint256[]",
147
+ },
148
+ ],
149
+ name: "checkedSubWithOverflowBitTest",
150
+ outputs: [],
151
+ stateMutability: "nonpayable",
152
+ type: "function",
153
+ },
154
+ {
155
+ inputs: [
156
+ {
157
+ internalType: "uint256[]",
158
+ name: "a",
159
+ type: "uint256[]",
160
+ },
161
+ {
162
+ internalType: "uint256[]",
163
+ name: "b",
164
+ type: "uint256[]",
165
+ },
166
+ {
167
+ internalType: "enum Arithmetic256BitTestsContract.PrivateInput",
168
+ name: "privateInput",
169
+ type: "uint8",
170
+ },
171
+ ],
172
+ name: "mulTest",
173
+ outputs: [],
174
+ stateMutability: "nonpayable",
175
+ type: "function",
176
+ },
177
+ {
178
+ inputs: [
179
+ {
180
+ internalType: "uint256",
181
+ name: "",
182
+ type: "uint256",
183
+ },
184
+ ],
185
+ name: "numbers2",
186
+ outputs: [
187
+ {
188
+ internalType: "uint256",
189
+ name: "",
190
+ type: "uint256",
191
+ },
192
+ ],
193
+ stateMutability: "view",
194
+ type: "function",
195
+ },
196
+ {
197
+ inputs: [
198
+ {
199
+ internalType: "uint256",
200
+ name: "",
201
+ type: "uint256",
202
+ },
203
+ ],
204
+ name: "numbersLHS2",
205
+ outputs: [
206
+ {
207
+ internalType: "uint256",
208
+ name: "",
209
+ type: "uint256",
210
+ },
211
+ ],
212
+ stateMutability: "view",
213
+ type: "function",
214
+ },
215
+ {
216
+ inputs: [
217
+ {
218
+ internalType: "uint256",
219
+ name: "",
220
+ type: "uint256",
221
+ },
222
+ ],
223
+ name: "numbersRHS2",
224
+ outputs: [
225
+ {
226
+ internalType: "uint256",
227
+ name: "",
228
+ type: "uint256",
229
+ },
230
+ ],
231
+ stateMutability: "view",
232
+ type: "function",
233
+ },
234
+ {
235
+ inputs: [
236
+ {
237
+ internalType: "uint256",
238
+ name: "",
239
+ type: "uint256",
240
+ },
241
+ ],
242
+ name: "overflows",
243
+ outputs: [
244
+ {
245
+ internalType: "bool",
246
+ name: "",
247
+ type: "bool",
248
+ },
249
+ ],
250
+ stateMutability: "view",
251
+ type: "function",
252
+ },
253
+ {
254
+ inputs: [
255
+ {
256
+ internalType: "uint256",
257
+ name: "",
258
+ type: "uint256",
259
+ },
260
+ ],
261
+ name: "overflowsLHS",
262
+ outputs: [
263
+ {
264
+ internalType: "bool",
265
+ name: "",
266
+ type: "bool",
267
+ },
268
+ ],
269
+ stateMutability: "view",
270
+ type: "function",
271
+ },
272
+ {
273
+ inputs: [
274
+ {
275
+ internalType: "uint256",
276
+ name: "",
277
+ type: "uint256",
278
+ },
279
+ ],
280
+ name: "overflowsRHS",
281
+ outputs: [
282
+ {
283
+ internalType: "bool",
284
+ name: "",
285
+ type: "bool",
286
+ },
287
+ ],
288
+ stateMutability: "view",
289
+ type: "function",
290
+ },
291
+ {
292
+ inputs: [
293
+ {
294
+ internalType: "uint256[]",
295
+ name: "a",
296
+ type: "uint256[]",
297
+ },
298
+ {
299
+ internalType: "uint256[]",
300
+ name: "b",
301
+ type: "uint256[]",
302
+ },
303
+ ],
304
+ name: "subTest",
305
+ outputs: [],
306
+ stateMutability: "nonpayable",
307
+ type: "function",
308
+ },
309
+ ] as const;
310
+
311
+ const _bytecode =
312
+ "0x608060405234801561001057600080fd5b50614797806100206000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c806383ee8b0811610097578063c7b20e1211610066578063c7b20e12146101f0578063cadc466414610203578063d9bf2dff14610216578063e7bd89a81461022957600080fd5b806383ee8b08146101a4578063859cc7d6146101b7578063ab2eae7e146101ca578063b24a0743146101dd57600080fd5b80633d35258b116100d35780633d35258b1461014857806346125d481461016b57806350cdee371461017e5780635a5a1a771461019157600080fd5b806320016fbc146100fa57806322f876121461010f57806333e9b8b314610122575b600080fd5b61010d61010836600461448a565b61023c565b005b61010d61011d3660046144f1565b61030a565b61013561013036600461455d565b6105d8565b6040519081526020015b60405180910390f35b61015b61015636600461455d565b6105f9565b604051901515815260200161013f565b61010d61017936600461458a565b61062d565b61010d61018c3660046144f1565b6107dd565b61010d61019f36600461458a565b610a8d565b61010d6101b236600461460b565b610c82565b6101356101c536600461455d565b610d65565b61015b6101d836600461455d565b610d75565b61010d6101eb36600461448a565b610d85565b61015b6101fe36600461455d565b610e1c565b61010d6102113660046144f1565b610e2c565b61013561022436600461455d565b610fba565b61010d6102373660046144f1565b610fca565b6102466001611158565b6000610251836111b7565b9050600061025e836111b7565b905061027261026d83836111ef565b611277565b600360008154811061028657610286614640565b60009182526020909120015561029f61026d85836112ce565b60036000815481106102b3576102b3614640565b9060005260206000200154146102cb576102cb61466f565b6102d861026d838561134d565b60036000815481106102ec576102ec614640565b9060005260206000200154146103045761030461466f565b50505050565b828114610378576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f496e707574206c656e677468206d69736d61746368000000000000000000000060448201526064015b60405180910390fd5b6103818361139c565b61038a8361140b565b6103938361147d565b61039c83611158565b6103a5836114f0565b6103ae8361154b565b60008060006103bb6143eb565b6103c36143eb565b6103cb6143eb565b60005b898110156105cb5760006103f98c8c848181106103ed576103ed614640565b905060200201356111b7565b905060006104128b8b858181106103ed576103ed614640565b905061041e82826115a6565b90995095506104458d8d8581811061043857610438614640565b9050602002013582611652565b909850945061046c828c8c8681811061046057610460614640565b905060200201356116f8565b909750935061047a89611759565b6000848154811061048d5761048d614640565b90600052602060002090602091828204019190066101000a81548160ff0219169083151502179055506104bf88611759565b600184815481106104d2576104d2614640565b90600052602060002090602091828204019190066101000a81548160ff02191690831515021790555061050487611759565b6002848154811061051757610517614640565b90600052602060002090602091828204019190066101000a81548160ff02191690831515021790555061054986611277565b6003848154811061055c5761055c614640565b60009182526020909120015561057185611277565b6004848154811061058457610584614640565b60009182526020909120015561059984611277565b600584815481106105ac576105ac614640565b600091825260209091200155506105c49050816146cd565b90506103ce565b5050505050505050505050565b600581815481106105e857600080fd5b600091825260209091200154905081565b6002818154811061060957600080fd5b9060005260206000209060209182820401919006915054906101000a900460ff1681565b838214610696576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f496e707574206c656e677468206d69736d617463680000000000000000000000604482015260640161036f565b61069f84611158565b60005b848110156107d55760006106c18787848181106103ed576103ed614640565b905060006106da8686858181106103ed576103ed614640565b905060008460028111156106f0576106f0614705565b036107265761070261026d83836117ea565b6003848154811061071557610715614640565b6000918252602090912001556107c2565b600184600281111561073a5761073a614705565b036107645761070261026d8388888781811061075857610758614640565b90506020020135611865565b600284600281111561077857610778614705565b036107c2576107a261026d89898681811061079557610795614640565b90506020020135836118dc565b600384815481106107b5576107b5614640565b6000918252602090912001555b5050806107ce906146cd565b90506106a2565b505050505050565b828114610846576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f496e707574206c656e677468206d69736d617463680000000000000000000000604482015260640161036f565b61084f8361139c565b6108588361140b565b6108618361147d565b61086a83611158565b610873836114f0565b61087c8361154b565b60008060006108896143eb565b6108916143eb565b6108996143eb565b60005b898110156105cb5760006108bb8c8c848181106103ed576103ed614640565b905060006108d48b8b858181106103ed576103ed614640565b90506108e08282611931565b90995095506109078d8d858181106108fa576108fa614640565b90506020020135826119a8565b909850945061092e828c8c8681811061092257610922614640565b90506020020135611a1d565b909750935061093c89611759565b6000848154811061094f5761094f614640565b90600052602060002090602091828204019190066101000a81548160ff02191690831515021790555061098188611759565b6001848154811061099457610994614640565b90600052602060002090602091828204019190066101000a81548160ff0219169083151502179055506109c687611759565b600284815481106109d9576109d9614640565b90600052602060002090602091828204019190066101000a81548160ff021916908315150217905550610a0b86611277565b60038481548110610a1e57610a1e614640565b600091825260209091200155610a3385611277565b60048481548110610a4657610a46614640565b600091825260209091200155610a5b84611277565b60058481548110610a6e57610a6e614640565b60009182526020909120015550610a869050816146cd565b905061089c565b838214610af6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f496e707574206c656e677468206d69736d617463680000000000000000000000604482015260640161036f565b610aff8461139c565b610b0884611158565b6000610b126143eb565b60005b86811015610c78576000610b348989848181106103ed576103ed614640565b90506000610b4d8888858181106103ed576103ed614640565b90506000866002811115610b6357610b63614705565b03610b7c57610b728282611a7f565b9095509350610bf8565b6001866002811115610b9057610b90614705565b03610bb757610b728a8a85818110610baa57610baa614640565b9050602002013582611b6f565b6002866002811115610bcb57610bcb614705565b03610bf857610bf282898986818110610be657610be6614640565b90506020020135611cd0565b90955093505b610c0185611759565b60008481548110610c1457610c14614640565b90600052602060002090602091828204019190066101000a81548160ff021916908315150217905550610c4684611277565b60038481548110610c5957610c59614640565b60009182526020909120015550610c719050816146cd565b9050610b15565b5050505050505050565b610c8c6001611158565b6000610c97846111b7565b90506000610ca4846111b7565b90506000836002811115610cba57610cba614705565b03610cf157610ccc61026d8383611ddf565b6003600081548110610ce057610ce0614640565b600091825260209091200155610d5e565b6001836002811115610d0557610d05614705565b03610d1757610ccc61026d8386611ea1565b6002836002811115610d2b57610d2b614705565b03610d5e57610d3d61026d8683611f4b565b6003600081548110610d5157610d51614640565b6000918252602090912001555b5050505050565b600381815481106105e857600080fd5b6001818154811061060957600080fd5b610d8f6001611158565b6000610d9a836111b7565b90506000610da7836111b7565b9050610db661026d8383611fb8565b6003600081548110610dca57610dca614640565b600091825260209091200155610de361026d8583612015565b6003600081548110610df757610df7614640565b906000526020600020015414610e0f57610e0f61466f565b6102d861026d8385612075565b6000818154811061060957600080fd5b828114610e95576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f496e707574206c656e677468206d69736d617463680000000000000000000000604482015260640161036f565b610e9e83611158565b60005b83811015610d5e576000610ec08686848181106103ed576103ed614640565b90506000610ed98585858181106103ed576103ed614640565b9050610ee861026d83836120c3565b60038481548110610efb57610efb614640565b600091825260209091200155610f2c61026d888886818110610f1f57610f1f614640565b9050602002013583612120565b60038481548110610f3f57610f3f614640565b906000526020600020015414610f5757610f5761466f565b610f7c61026d83878787818110610f7057610f70614640565b90506020020135612180565b60038481548110610f8f57610f8f614640565b906000526020600020015414610fa757610fa761466f565b505080610fb3906146cd565b9050610ea1565b600481815481106105e857600080fd5b828114611033576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f496e707574206c656e677468206d69736d617463680000000000000000000000604482015260640161036f565b61103c83611158565b60005b83811015610d5e57600061105e8686848181106103ed576103ed614640565b905060006110778585858181106103ed576103ed614640565b905061108661026d83836121ce565b6003848154811061109957611099614640565b6000918252602090912001556110ca61026d8888868181106110bd576110bd614640565b9050602002013583612230565b600384815481106110dd576110dd614640565b9060005260206000200154146110f5576110f561466f565b61111a61026d8387878781811061110e5761110e614640565b90506020020135612294565b6003848154811061112d5761112d614640565b9060005260206000200154146111455761114561466f565b505080611151906146cd565b905061103f565b6111646003600061442f565b60005b818110156111b3576003805460018101825560009182527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0155806111ab816146cd565b915050611167565b5050565b6111bf6143eb565b6111c76143eb565b82608081901c6111d6816122e3565b83526111e1826122e3565b602084015250909392505050565b6111f76143eb565b6111ff6143eb565b6112118460200151846020015161232f565b8160200181905250600061122d856020015185602001516123af565b8551855191925061123d916123f6565b80835261126b90829061126661125f83611258846001612486565b885161250e565b6001612567565b61250e565b82525090505b92915050565b60008061128783600001516125ff565b9050600061129884602001516125ff565b9050806fffffffffffffffffffffffffffffffff166080836fffffffffffffffffffffffffffffffff16901b1792505050919050565b6112d66143eb565b6112de6143eb565b6020830151608085901c9085906112f6908290612658565b8360200181905250600061130e8287602001516126e2565b905061131e838760000151612732565b80855261134090829061126661125f83611339846001612486565b8a5161250e565b8452509195945050505050565b6113556143eb565b61135d6143eb565b6020840151608084901c90849061137490826127a8565b8360200181905250600061138c87602001518361281e565b905061131e876000015184612567565b6113a7600080614450565b60005b818110156111b357600080546001810182559080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56360208204018054601f9092166101000a60ff0219909116905580611403816146cd565b9150506113aa565b61141760016000614450565b60005b818110156111b3576001805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf660208204018054601f9092166101000a60ff0219909116905580611475816146cd565b91505061141a565b61148960026000614450565b60005b818110156111b357600280546001810182556000919091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace60208204018054601f9092166101000a60ff02199091169055806114e8816146cd565b91505061148c565b6114fc6004600061442f565b60005b818110156111b3576004805460018101825560009182527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b015580611543816146cd565b9150506114ff565b6115576005600061442f565b60005b818110156111b3576005805460018101825560009182527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db001558061159e816146cd565b91505061155a565b60006115b06143eb565b60006115bc6000612863565b90506115c66143eb565b6115d886602001518660200151612908565b60208083018290528701516000916115ef916123af565b90506000806116068960000151896000015161297d565b91509150600080611618836001612a39565b91509150611630858561162b8786612b00565b612b99565b965061163d85848361250e565b865250949650929450505050505b9250929050565b600061165c6143eb565b60006116686000612863565b90506116726143eb565b6020850151608087901c90879061168a908290612c5d565b6020840181905260009061169e908361281e565b90506000806116b1858b60000151612cce565b915091506000806116c3836001612a39565b915091506116d6858561162b8786612b00565b98506116e385848361250e565b885250969b959a509498505050505050505050565b60006117026143eb565b600061170e6000612863565b90506117186143eb565b6020860151608086901c90869061172f9082612486565b6020808501829052890151600091611746916123af565b90506000806116b18b6000015186612a39565b6040517f0cfed56100000000000000000000000000000000000000000000000000000000815260006004820181905260248201839052908190606490630cfed561906044016020604051808303816000875af11580156117bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117e19190614734565b15159392505050565b6117f26143eb565b6117fa6143eb565b60008061180f86602001518660200151612d61565b91509150600061182787600001518760200151612d61565b915050600061183e88602001518860000151612d61565b91505061185461184e8584612908565b82612908565b855250506020830152509392505050565b61186d6143eb565b6118756143eb565b6020840151608084901c90849060009081906118919084612eef565b9150915060006118a5896000015185612eef565b91505060006118b88a6020015187612eef565b9150506118c861184e8584612908565b875250506020850152509195945050505050565b6118e46143eb565b6118ec6143eb565b600080608086901c869150915060008061190a838860200151612fcf565b91509150600061191e858960200151612fcf565b91505060006118b8858a60000151612fcf565b600061193b6143eb565b60006119476000612863565b90506119516143eb565b6119638660200151866020015161232f565b8160200181905250600061197f876020015187602001516123af565b9050600080611996896000015189600001516130af565b91509150600080611618836001613151565b60006119b26143eb565b60006119be6000612863565b90506119c86143eb565b6020850151608087901c9087906119e0908290612658565b836020018190525060006119f88289602001516126e2565b9050600080611a0b858b600001516131fa565b915091506000806116c3836001613151565b6000611a276143eb565b6000611a336000612863565b9050611a3d6143eb565b6020860151608086901c908690611a5490826127a8565b83602001819052506000611a6c89602001518361281e565b9050600080611a0b8b6000015186613151565b6000611a896143eb565b611a916143eb565b600080611aa687602001518760200151612d61565b91509150600080611abf89600001518960200151612d61565b91509150600080611ad88b602001518b60000151612d61565b91509150600080611af18d600001518d60000151612d61565b915091506000806000611b048b8961297d565b91509150611b12818761297d565b8d5260208d018b905292506000611b57611b2c8486612b00565b611b52611b4b611b3c8e8d612908565b611b468a8c612908565b612908565b6000613292565b612b00565b9e509b9c505050505050505050505050509250929050565b6000611b796143eb565b611b816143eb565b6040805180820190915260008082526020820152604080518082019091526000808252602082015260408051808201909152600080825260208201526040805180820190915260008082526020820152604080518082019091526000808252602082015260408051808201909152600080825260208201526040805180820190915260008082526020820152604080518082019091526000808252602082015260008060808f901c8f91509150611c3c818f60200151612fcf565b809b50819a505050611c52828f60200151612fcf565b8f51909950909750611c65908290612fcf565b8f51909750909550611c78908390612fcf565b945092506000915081905080611c8e8a8a61297d565b91509150611c9c818861297d565b8d5260208d018c905292506000611b57611cb68486612b00565b611b52611b4b611cc68d8c612908565b611b468b8b612908565b6000611cda6143eb565b611ce26143eb565b6040805180820190915260008082526020820152604080518082019091526000808252602082015260408051808201909152600080825260208201526040805180820190915260008082526020820152604080518082019091526000808252602082015260408051808201909152600080825260208201526040805180820190915260008082526020820152604080518082019091526000808252602082015260008060808e901c8e91509150611d9d8f6020015182612eef565b809b50819a505050611db38f6000015182612eef565b8099508198505050611dc98f6020015183612eef565b8097508196505050611c788f6000015183612eef565b611de76143eb565b611def6143eb565b600080611e0486602001518660200151612d61565b91509150600080611e1d88600001518860200151612d61565b91509150600080611e368a602001518a60000151612d61565b91509150600080611e4f8c600001518c60000151612d61565b91509150611e66611e6089876132d7565b846132d7565b895260208901879052611e906000611e8b611e818988612908565b611b468587612908565b612732565b50979b9a5050505050505050505050565b611ea96143eb565b611eb16143eb565b6020840151608084901c9084906000908190611ecd9084612eef565b91509150600080611ee28a6000015186612eef565b91509150600080611ef78c6020015189612eef565b91509150600080611f0c8e600001518b612eef565b91509150611f1d611e6089876132d7565b8b5260208b01879052611f386000611e8b611e818988612908565b50999d9c50505050505050505050505050565b611f536143eb565b611f5b6143eb565b600080608086901c8691509150600080611f79838860200151612fcf565b91509150600080611f8e868a60200151612fcf565b91509150600080611fa3878c60000151612fcf565b91509150600080611f0c8a8e60000151612fcf565b611fc06143eb565b611fc86143eb565b611fda84602001518460200151612908565b6020808301829052850151600091611ff1916123af565b85518551919250612001916132d7565b80835261126b90829061126681600161334c565b61201d6143eb565b6120256143eb565b6020830151608085901c90859061203d908290612c5d565b60208401819052600090612051908361281e565b90506120618387600001516133d4565b80855261134090829061126681600161334c565b61207d6143eb565b6120856143eb565b6020840151608084901c90849061209c9082612486565b60208085018290528701516000916120b3916123af565b905061206187600001518461334c565b6120cb6143eb565b6120d36143eb565b6120e584602001518460200151612908565b60208083018290528501516000916120fc916123af565b8551855191925061210c91612908565b80835261126b908290611266816001612486565b6121286143eb565b6121306143eb565b6020830151608085901c908590612148908290612c5d565b6020840181905260009061215c908361281e565b905061216c838760000151612c5d565b808552611340908290611266816001612486565b6121886143eb565b6121906143eb565b6020840151608084901c9084906121a79082612486565b60208085018290528701516000916121be916123af565b905061216c876000015184612486565b6121d66143eb565b6121de6143eb565b6121f08460200151846020015161232f565b8160200181905250600061220c856020015185602001516123af565b8551855191925061221c9161232f565b80835261126b9082906112668160016127a8565b6122386143eb565b6122406143eb565b6020830151608085901c908590612258908290612658565b836020018190525060006122708287602001516126e2565b9050612280838760000151612658565b8085526113409082906112668160016127a8565b61229c6143eb565b6122a46143eb565b6020840151608084901c9084906122bb90826127a8565b836020018190525060006122d387602001518361281e565b90506122808760000151846127a8565b604080518082019091526000808252602082015260408051808201909152600080825260208201528267ffffffffffffffff604082901c1661232481613445565b83526111e182613445565b60408051808201909152600080825260208201526040805180820190915260008082526020820152612369846020015184602001516134f4565b816020018181525050600061238685602001518560200151613509565b85518551919250612396916134f4565b80835261126b9082906123aa81600161351e565b6135a8565b6000806123c4846000015184600001516135bd565b90506123ee816123dc86600001518660000151613509565b61162b87602001518760200151613509565b949350505050565b60408051808201909152600080825260208201526040805180820190915260008082526020820152612430846020015184602001516134f4565b816020018181525050600061244d85602001518560200151613509565b8551855191925061245d916135d2565b80835261126b9082906123aa61247f836124788460016136a9565b88516135a8565b60016136bf565b60408051808201909152600080825260208201526040805180820190915260008082526020820152600080604085901c67ffffffffffffffff1685915091506124d38660200151826136a9565b60208085018290528701516000916124ea91613509565b90506124fa8760000151846136a9565b8085526113409082906123aa8160016136a9565b6040805180820190915260008082526020820152604080518082019091526000808252602082015261254985856020015185602001516135a8565b60208201528351835161255d9187916135a8565b8152949350505050565b60408051808201909152600080825260208201526040805180820190915260008082526020820152600080604085901c67ffffffffffffffff1685915091506125b486602001518261351e565b83602001818152505060006125cd87602001518361374b565b90506125dd8760000151846136bf565b8085526113409082906123aa61247f836125f88460016136a9565b8a516135a8565b60008061260f8360000151613761565b905060006126208460200151613761565b90508067ffffffffffffffff1660408367ffffffffffffffff166fffffffffffffffffffffffffffffffff16901b1792505050919050565b60408051808201909152600080825260208201526040805180820190915260008082526020820152600080604086901c67ffffffffffffffff1686915091506126a58186602001516137bb565b83602001818152505060006126be828760200151613845565b90506126ce8387600001516137bb565b8085526113409082906123aa81600161351e565b805160009067ffffffffffffffff604085901c16908490839061270690849061385b565b90506127288161271a858860000151613845565b61162b858960200151613845565b9695505050505050565b60408051808201909152600080825260208201526040805180820190915260008082526020820152600080604086901c67ffffffffffffffff16869150915061277f8186602001516137bb565b8360200181815250506000612798828760200151613845565b90506125dd838760000151613871565b60408051808201909152600080825260208201526040805180820190915260008082526020820152600080604085901c67ffffffffffffffff1685915091506127f586602001518261351e565b836020018181525050600061280e87602001518361374b565b90506126ce87600001518461351e565b815160009067ffffffffffffffff604084901c16908390839061284190846138fd565b90506127288161285588600001518661374b565b61162b89602001518661374b565b60008082612872576000612875565b60015b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081526000600482015260ff9190911660248201819052915060649063d9b60b60906044015b6020604051808303816000875af11580156128dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129019190614734565b9392505050565b6040805180820190915260008082526020820152604080518082019091526000808252602082015261294284602001518460200151613913565b602080830182905285015160009161295991613509565b8551855191925061296991613913565b80835261126b9082906123aa8160016136a9565b600061299c604051806040016040528060008152602001600081525090565b60006129a86000612863565b90506129c7604051806040016040528060008152602001600081525090565b6129d986602001518660200151613913565b60208083018290528701516000916129f091613509565b9050600080612a0789600001518960000151613928565b91509150600080612a198360016139f6565b91509150612a2c858561162b8786612b00565b965061163d8584836135a8565b6000612a58604051806040016040528060008152602001600081525090565b6000612a646000612863565b9050612a83604051806040016040528060008152602001600081525090565b602086015167ffffffffffffffff604087901c16908690612aa490826136a9565b6020808501829052890151600091612abb91613509565b9050600080612ace8b60000151866139f6565b91509150600080612ae08360016139f6565b91509150612af3858561162b8786612b00565b98506116e38584836135a8565b6000606463fb7da35f612b14838080613a83565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff0000000000000000000000000000000000000000000000000000000000909116600482015260248101869052604481018590526064016020604051808303816000875af11580156128dd573d6000803e3d6000fd5b600060646320cc408d612bad838080613a83565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff000000000000000000000000000000000000000000000000000000000090911660048201526024810187905260448101869052606481018590526084016020604051808303816000875af1158015612c39573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123ee9190614734565b60408051808201909152600080825260208201526040805180820190915260008082526020820152600080604086901c67ffffffffffffffff168691509150612caa818660200151613ae0565b60208401819052600090612cbe908361374b565b90506124fa838760000151613ae0565b6000612ced604051806040016040528060008152602001600081525090565b6000612cf96000612863565b9050612d18604051806040016040528060008152602001600081525090565b602085015167ffffffffffffffff604088901c16908790612d3a908290613ae0565b60208401819052600090612d4e908361374b565b9050600080612ace858b60000151613af6565b60408051808201909152600080825260208201526040805180820190915260008082526020820152604080518082019091526000808252602082015267ffffffffffffffff906040805180820190915260008082526020820152604080518082019091526000808252602082015260408051808201909152600080825260208201526000612def8a87613b83565b90506000612dfe8b6040613bed565b90506000612e0c8b89613b83565b90506000612e1b8c6040613bed565b9050612e278483613d02565b9750612e338482613d02565b9650612e3f8383613d02565b9550612e4b8382613d02565b9450505050506000612e78612e6e612e64876040613bed565b611b46878a613b83565b611b468589613b83565b90506000612e87826040613bed565b90506000612eb1612e9d85611b46896040613bed565b611b46612eab886040613bed565b85612908565b90506000612edb612ec2898b613b83565b612ed6612ecf878d613b83565b6040613d84565b613e69565b919d919c50909a5050505050505050505050565b60408051808201909152600080825260208201526040805180820190915260008082526020820152604080518082019091526000808252602082015267ffffffffffffffff906040805180820190915260008082526020820152604080518082019091526000808252602082015260408051808201909152600080825260208201526000612f7d8a87613b83565b90506000612f8c8b6040613bed565b905067ffffffffffffffff8a81169060408c901c16612fab8483613ebf565b9750612fb78482613ebf565b9650612fc38383613ebf565b9550612e4b8382613ebf565b60408051808201909152600080825260208201526040805180820190915260008082526020820152604080518082019091526000808252602082015267ffffffffffffffff9060408051808201909152600080825260208201526040805180820190915260008082526020820152604080518082019091526000808252602082015267ffffffffffffffff8981169060408b901c1660006130708b89613b83565b9050600061307f8c6040613bed565b905061308b8483613f48565b97506130978482613f48565b96506130a38383613f48565b9550612e4b8382613f48565b60006130ce604051806040016040528060008152602001600081525090565b60006130da6000612863565b90506130f9604051806040016040528060008152602001600081525090565b61310b866020015186602001516134f4565b816020018181525050600061312887602001518760200151613509565b905060008061313f89600001518960000151613fd4565b91509150600080612a19836001613fec565b6000613170604051806040016040528060008152602001600081525090565b600061317c6000612863565b905061319b604051806040016040528060008152602001600081525090565b602086015167ffffffffffffffff604087901c169086906131bc908261351e565b83602001818152505060006131d589602001518361374b565b90506000806131e88b6000015186613fec565b91509150600080612ae0836001613fec565b6000613219604051806040016040528060008152602001600081525090565b60006132256000612863565b9050613244604051806040016040528060008152602001600081525090565b602085015167ffffffffffffffff604088901c169087906132669082906137bb565b836020018181525050600061327f828960200151613845565b90506000806131e8858b60000151614005565b815160009067ffffffffffffffff604084901c1690839083906132b590846138fd565b9050612728816132c988600001518661401e565b61162b89602001518661401e565b6040805180820190915260008082526020820152604080518082019091526000808252602082015261331184602001518460200151613913565b602080830182905285015160009161332891613509565b8551855191925061333891614034565b80835261126b9082906123aa81600161404b565b60408051808201909152600080825260208201526040805180820190915260008082526020820152600080604085901c67ffffffffffffffff1685915091506133998660200151826136a9565b60208085018290528701516000916133b091613509565b90506133c087600001518461404b565b8085526113409082906123aa81600161404b565b60408051808201909152600080825260208201526040805180820190915260008082526020820152600080604086901c67ffffffffffffffff168691509150613421818660200151613ae0565b60208401819052600090613435908361374b565b90506133c0838760000151614063565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0400000000000000000000000000000000000000000000000000000000000000600482015267ffffffffffffffff8216602482015260009060649063d9b60b60906044015b6020604051808303816000875af11580156134d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112719190614734565b6000606463371d1bf2612b1460048085613a83565b6000606463dd148693612b1460048085613a83565b6000606463371d1bf26135346004806002613a83565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff000000000000000000000000000000000000000000000000000000000090911660048201526024810186905267ffffffffffffffff851660448201526064016128be565b600060646320cc408d612bad60048085613a83565b60006064637c12a1eb612b1460048085613a83565b60008080606463ce8c713d6135e960048085613a83565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff0000000000000000000000000000000000000000000000000000000000909116600482015260248101889052604481018790526064015b60408051808303816000875af115801561366e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613692919061474d565b915091506136a0828261407b565b95945050505050565b60006064638c5d01506135346004806002613a83565b60008080606463ce8c713d6136d76004806002613a83565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff000000000000000000000000000000000000000000000000000000000090911660048201526024810188905267ffffffffffffffff87166044820152606401613650565b6000606463dd1486936135346004806002613a83565b60006064630cfed56160045b60f81b846040518363ffffffff1660e01b81526004016134b19291907fff00000000000000000000000000000000000000000000000000000000000000929092168252602082015260400190565b6000606463371d1bf26137d16004806001613a83565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff0000000000000000000000000000000000000000000000000000000000909116600482015267ffffffffffffffff86166024820152604481018590526064016128be565b6000606463dd1486936137d16004806001613a83565b60006064637c12a1eb6137d16004806001613a83565b60008080606463ce8c713d6138896004806001613a83565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff0000000000000000000000000000000000000000000000000000000000909116600482015267ffffffffffffffff8816602482015260448101879052606401613650565b60006064637c12a1eb6135346004806002613a83565b60006064638c5d0150612b1460048085613a83565b6000808080606463f581fa2061394060048085613a83565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff0000000000000000000000000000000000000000000000000000000000909116600482015260248101899052604481018890526064015b60408051808303816000875af11580156139c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139e9919061474d565b9097909650945050505050565b6000808080606463f581fa20613a0f6004806002613a83565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff000000000000000000000000000000000000000000000000000000000090911660048201526024810189905267ffffffffffffffff881660448201526064016139a7565b6000816002811115613a9757613a97614705565b60ff166008846004811115613aae57613aae614705565b61ffff16901b61ffff166010866004811115613acc57613acc614705565b62ffffff16901b171760e81b949350505050565b60006064638c5d01506137d16004806001613a83565b6000808080606463f581fa20613b0f6004806001613a83565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff0000000000000000000000000000000000000000000000000000000000909116600482015267ffffffffffffffff89166024820152604481018890526064016139a7565b60408051808201909152600080825260208201526040805180820190915260008082526020820152600080604085901c67ffffffffffffffff168591509150613bd086602001518261408c565b60208401528551613be1908361408c565b83525090949350505050565b6040805180820190915260008082526020820152604080518082019091526000808252602082015260408360ff1610613c5b57613c2e8460200151846140a2565b508351613c4590613c40604086614771565b6140a2565b6020820152613c546000613445565b8152612901565b60ff831615613ced576000613c71846040614771565b60ff1667ffffffffffffffff8016901c9050613cba613c948660200151866140a2565b613cb5613ca588600001518561408c565b613cb0886040614771565b614126565b61413d565b602083015250835167ffffffffffffffff60ff85161b90613ce590613cdf908361408c565b856140a2565b825250612901565b60208085015190820152835181529392505050565b60408051808201909152600080825260208201526040805180820190915260008082526020820152600080613d3f86602001518660200151614152565b915091506000613d5787600001518760200151614152565b9150506000613d6e88602001518860000151614152565b915050611854613d7e8584613913565b82613913565b6040805180820190915260008082526020820152604080518082019091526000808252602082015260408360ff1610613de9578351613dc39084614126565b50613dce6000613445565b602080830191909152840151613c5490613cb0604086614771565b60ff831615613ced57602084015167ffffffffffffffff60ff85161c90613e1a90613e14908361408c565b85614126565b6020830152613e2a846040614771565b60ff1667ffffffffffffffff8016901b9050613ce5613e4d866000015186614126565b613cb5613e5e88602001518561408c565b613c40886040614771565b60408051808201909152600080825260208201526040805180820190915260008082526020820152613ea38460200151846020015161413d565b602082015283518351613eb6919061413d565b81529392505050565b60408051808201909152600080825260208201526040805180820190915260008082526020820152602084015167ffffffffffffffff84811691604086901c909116906000908190613f119085614255565b915091506000613f25896000015186614255565b9150506000613f388a6020015186614255565b9150506118c8613d7e8584613913565b60408051808201909152600080825260208201526040805180820190915260008082526020820152600067ffffffffffffffff80168516905060006040866fffffffffffffffffffffffffffffffff16901c9050600080613fad8488602001516142ba565b915091506000613fc18489602001516142ba565b9150506000613f38868a600001516142ba565b6000808080606463ce8c713d61394060048085613a83565b6000808080606463ce8c713d613a0f6004806002613a83565b6000808080606463ce8c713d613b0f6004806001613a83565b60006064636d82e45e6135346004806002613a83565b60008080606463f581fa206135e960048085613a83565b60008080606463f581fa206136d76004806002613a83565b60008080606463f581fa206138896004806001613a83565b60006140868361431a565b50919050565b6000606463fe9c73d16135346004806002613a83565b600060646339bd1d8d6140b9600460016002613a83565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff000000000000000000000000000000000000000000000000000000000090911660048201526024810186905260ff851660448201526064016128be565b60006064631135f71a6140b9600460016002613a83565b6000606463fb7da35f612b1460048085613a83565b60008063ffffffff81808080806141698a8761408c565b905060006141788b60206140a2565b905060006141868b8961408c565b905060006141958c60206140a2565b90506141a1848361439b565b97506141ad848261439b565b96506141b9838361439b565b95506141c5838261439b565b94505050505060006141f76141ed6141de8760206140a2565b6141e8878a61408c565b613913565b6141e8858961408c565b905060006142068260206140a2565b9050600061423061421c856141e88960206140a2565b6141e861422a8860206140a2565b85613913565b90506000612edb614241898b61408c565b613cb561424e878d61408c565b6020614126565b60008063ffffffff818080808061426c8a8761408c565b9050600061427b8b60206140a2565b905063ffffffff8a81169060208c901c1661429684836143b0565b97506142a284826143b0565b96506142ae83836143b0565b95506141c583826143b0565b60008063ffffffff8180808088851660208a901c8616826142db8b8961408c565b905060006142ea8c60206140a2565b90506142f684836143c6565b975061430284826143c6565b965061430e83836143c6565b95506141c583826143c6565b6000614325826143dc565b905061433081611759565b15156001146111b3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f6f766572666c6f77206572726f72000000000000000000000000000000000000604482015260640161036f565b6000606463f1d21bb4612b1460048085613a83565b6000606463f1d21bb46135346004806002613a83565b6000606463f1d21bb46137d16004806001613a83565b60006064631d79e49a8261376d565b6040805160808101825260009181018281526060820192909252908190815260200161442a604051806040016040528060008152602001600081525090565b905290565b508054600082559060005260206000209081019061444d9190614471565b50565b50805460008255601f01602090049060005260206000209081019061444d91905b5b808211156144865760008155600101614472565b5090565b6000806040838503121561449d57600080fd5b50508035926020909101359150565b60008083601f8401126144be57600080fd5b50813567ffffffffffffffff8111156144d657600080fd5b6020830191508360208260051b850101111561164b57600080fd5b6000806000806040858703121561450757600080fd5b843567ffffffffffffffff8082111561451f57600080fd5b61452b888389016144ac565b9096509450602087013591508082111561454457600080fd5b50614551878288016144ac565b95989497509550505050565b60006020828403121561456f57600080fd5b5035919050565b80356003811061458557600080fd5b919050565b6000806000806000606086880312156145a257600080fd5b853567ffffffffffffffff808211156145ba57600080fd5b6145c689838a016144ac565b909750955060208801359150808211156145df57600080fd5b506145ec888289016144ac565b90945092506145ff905060408701614576565b90509295509295909350565b60008060006060848603121561462057600080fd5b833592506020840135915061463760408501614576565b90509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036146fe576146fe61469e565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60006020828403121561474657600080fd5b5051919050565b6000806040838503121561476057600080fd5b505080516020909101519092909150565b60ff82811682821603908111156112715761127161469e56fea164736f6c6343000813000a";
313
+
314
+ type Arithmetic256BitTestsContractConstructorParams =
315
+ | [signer?: Signer]
316
+ | ConstructorParameters<typeof ContractFactory>;
317
+
318
+ const isSuperArgs = (
319
+ xs: Arithmetic256BitTestsContractConstructorParams
320
+ ): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;
321
+
322
+ export class Arithmetic256BitTestsContract__factory extends ContractFactory {
323
+ constructor(...args: Arithmetic256BitTestsContractConstructorParams) {
324
+ if (isSuperArgs(args)) {
325
+ super(...args);
326
+ } else {
327
+ super(_abi, _bytecode, args[0]);
328
+ }
329
+ }
330
+
331
+ override getDeployTransaction(
332
+ overrides?: NonPayableOverrides & { from?: string }
333
+ ): Promise<ContractDeployTransaction> {
334
+ return super.getDeployTransaction(overrides || {});
335
+ }
336
+ override deploy(overrides?: NonPayableOverrides & { from?: string }) {
337
+ return super.deploy(overrides || {}) as Promise<
338
+ Arithmetic256BitTestsContract & {
339
+ deploymentTransaction(): ContractTransactionResponse;
340
+ }
341
+ >;
342
+ }
343
+ override connect(
344
+ runner: ContractRunner | null
345
+ ): Arithmetic256BitTestsContract__factory {
346
+ return super.connect(runner) as Arithmetic256BitTestsContract__factory;
347
+ }
348
+
349
+ static readonly bytecode = _bytecode;
350
+ static readonly abi = _abi;
351
+ static createInterface(): Arithmetic256BitTestsContractInterface {
352
+ return new Interface(_abi) as Arithmetic256BitTestsContractInterface;
353
+ }
354
+ static connect(
355
+ address: string,
356
+ runner?: ContractRunner | null
357
+ ): Arithmetic256BitTestsContract {
358
+ return new Contract(
359
+ address,
360
+ _abi,
361
+ runner
362
+ ) as unknown as Arithmetic256BitTestsContract;
363
+ }
364
+ }