@coti-io/coti-contracts 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (180) hide show
  1. package/.github/workflows/npm-publish.yml +52 -0
  2. package/CODE_OF_CONDUCT.md +44 -0
  3. package/CONTRIBUTING.md +101 -0
  4. package/LICENSE +201 -0
  5. package/README.md +48 -0
  6. package/contracts/access/DataPrivacyFramework/DataPrivacyFramework.sol +480 -0
  7. package/contracts/access/DataPrivacyFramework/README.md +68 -0
  8. package/contracts/access/DataPrivacyFramework/extensions/DataPrivacyFrameworkMpc.sol +1139 -0
  9. package/contracts/mocks/README.md +5 -0
  10. package/contracts/mocks/access/DataPrivacyFramework/DataPrivacyFrameworkMock.sol +9 -0
  11. package/contracts/mocks/token/PrivateERC20/PrivateERC20Mock.sol +17 -0
  12. package/contracts/mocks/token/PrivateERC721/PrivateERC721URIStorageMock.sol +34 -0
  13. package/contracts/mocks/utils/mpc/ArithmeticTestsContract.sol +431 -0
  14. package/contracts/mocks/utils/mpc/BitwiseTestsContract.sol +361 -0
  15. package/contracts/mocks/utils/mpc/Comparison1Tests.Contract.sol +307 -0
  16. package/contracts/mocks/utils/mpc/Comparison2TestsContract.sol +307 -0
  17. package/contracts/mocks/utils/mpc/MinMaxTestsContract.sol +297 -0
  18. package/contracts/mocks/utils/mpc/Miscellaneous1TestsContract.sol +185 -0
  19. package/contracts/mocks/utils/mpc/Miscellaneous2TestsContract.sol +448 -0
  20. package/contracts/mocks/utils/mpc/OffboardToUserKeyTestsContract.sol +81 -0
  21. package/contracts/mocks/utils/mpc/README.md +486 -0
  22. package/contracts/mocks/utils/mpc/ShiftTestsContract.sol +311 -0
  23. package/contracts/mocks/utils/mpc/StringTestsContract.sol +59 -0
  24. package/contracts/mocks/utils/mpc/TransferScalarTestsContract.sol +271 -0
  25. package/contracts/mocks/utils/mpc/TransferTestsContract.sol +715 -0
  26. package/contracts/mocks/wallet/PrivateERC20Wallet/PrivateERC20WalletMock.sol +25 -0
  27. package/contracts/onboard/AccountOnboard.sol +21 -0
  28. package/contracts/onboard/README.md +65 -0
  29. package/contracts/package.json +11 -0
  30. package/contracts/token/PrivateERC20/IPrivateERC20.sol +142 -0
  31. package/contracts/token/PrivateERC20/PrivateERC20.sol +478 -0
  32. package/contracts/token/PrivateERC20/README.md +104 -0
  33. package/contracts/token/PrivateERC721/PrivateERC721.sol +458 -0
  34. package/contracts/token/PrivateERC721/README.md +282 -0
  35. package/contracts/token/PrivateERC721/extensions/PrivateERC721URIStorage.sol +87 -0
  36. package/contracts/utils/mpc/MpcCore.sol +3215 -0
  37. package/contracts/utils/mpc/MpcInterface.sol +41 -0
  38. package/contracts/utils/mpc/README.md +82 -0
  39. package/hardhat.config.ts +18 -0
  40. package/package.json +14 -0
  41. package/test/access/DataPrivacyFramework/DataPrivacyFramework.test.ts +780 -0
  42. package/test/onboard/AccountOnboard.test.ts +45 -0
  43. package/test/token/PrivateERC20/PrivateERC20.test.ts +546 -0
  44. package/test/token/PrivateERC721/PrivateERC721.test.ts +223 -0
  45. package/test/utils/accounts.ts +55 -0
  46. package/test/utils/mpc/Precompile.test.ts +113 -0
  47. package/test/utils/mpc/String.test.ts +227 -0
  48. package/tsconfig.json +11 -0
  49. package/typechain-types/@openzeppelin/contracts/index.ts +9 -0
  50. package/typechain-types/@openzeppelin/contracts/interfaces/IERC4906.ts +462 -0
  51. package/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.ts +69 -0
  52. package/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.ts +69 -0
  53. package/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.ts +69 -0
  54. package/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/index.ts +6 -0
  55. package/typechain-types/@openzeppelin/contracts/interfaces/index.ts +6 -0
  56. package/typechain-types/@openzeppelin/contracts/token/ERC721/IERC721.ts +393 -0
  57. package/typechain-types/@openzeppelin/contracts/token/ERC721/IERC721Receiver.ts +110 -0
  58. package/typechain-types/@openzeppelin/contracts/token/ERC721/index.ts +5 -0
  59. package/typechain-types/@openzeppelin/contracts/token/index.ts +5 -0
  60. package/typechain-types/@openzeppelin/contracts/utils/index.ts +5 -0
  61. package/typechain-types/@openzeppelin/contracts/utils/introspection/ERC165.ts +94 -0
  62. package/typechain-types/@openzeppelin/contracts/utils/introspection/IERC165.ts +94 -0
  63. package/typechain-types/@openzeppelin/contracts/utils/introspection/index.ts +5 -0
  64. package/typechain-types/@openzeppelin/index.ts +5 -0
  65. package/typechain-types/common.ts +131 -0
  66. package/typechain-types/contracts/access/DataPrivacyFramework/DataPrivacyFramework.ts +598 -0
  67. package/typechain-types/contracts/access/DataPrivacyFramework/extensions/DataPrivacyFrameworkMpc.ts +598 -0
  68. package/typechain-types/contracts/access/DataPrivacyFramework/extensions/index.ts +4 -0
  69. package/typechain-types/contracts/access/DataPrivacyFramework/index.ts +6 -0
  70. package/typechain-types/contracts/access/index.ts +5 -0
  71. package/typechain-types/contracts/index.ts +13 -0
  72. package/typechain-types/contracts/mocks/access/DataPrivacyFramework/DataPrivacyFrameworkMock.ts +598 -0
  73. package/typechain-types/contracts/mocks/access/DataPrivacyFramework/index.ts +4 -0
  74. package/typechain-types/contracts/mocks/access/index.ts +5 -0
  75. package/typechain-types/contracts/mocks/index.ts +11 -0
  76. package/typechain-types/contracts/mocks/token/PrivateERC20/PrivateERC20Mock.ts +543 -0
  77. package/typechain-types/contracts/mocks/token/PrivateERC20/index.ts +4 -0
  78. package/typechain-types/contracts/mocks/token/PrivateERC721/PrivateERC721URIStorageMock.ts +576 -0
  79. package/typechain-types/contracts/mocks/token/PrivateERC721/index.ts +4 -0
  80. package/typechain-types/contracts/mocks/token/index.ts +7 -0
  81. package/typechain-types/contracts/mocks/utils/index.ts +5 -0
  82. package/typechain-types/contracts/mocks/utils/mpc/ArithmeticTestsContract.ts +354 -0
  83. package/typechain-types/contracts/mocks/utils/mpc/BitwiseTestsContract.ts +340 -0
  84. package/typechain-types/contracts/mocks/utils/mpc/Comparison1Tests.Contract.sol/Comparison1TestsContract.ts +340 -0
  85. package/typechain-types/contracts/mocks/utils/mpc/Comparison1Tests.Contract.sol/index.ts +4 -0
  86. package/typechain-types/contracts/mocks/utils/mpc/Comparison2TestsContract.ts +340 -0
  87. package/typechain-types/contracts/mocks/utils/mpc/MinMaxTestsContract.ts +321 -0
  88. package/typechain-types/contracts/mocks/utils/mpc/Miscellaneous1TestsContract.ts +199 -0
  89. package/typechain-types/contracts/mocks/utils/mpc/Miscellaneous2TestsContract.ts +384 -0
  90. package/typechain-types/contracts/mocks/utils/mpc/OffboardToUserKeyTestsContract.sol/OffboardToUserKeyTestContract.ts +218 -0
  91. package/typechain-types/contracts/mocks/utils/mpc/OffboardToUserKeyTestsContract.sol/index.ts +4 -0
  92. package/typechain-types/contracts/mocks/utils/mpc/ShiftTestsContract.ts +339 -0
  93. package/typechain-types/contracts/mocks/utils/mpc/StringTestsContract.ts +211 -0
  94. package/typechain-types/contracts/mocks/utils/mpc/TransferScalarTestsContract.ts +266 -0
  95. package/typechain-types/contracts/mocks/utils/mpc/TransferTestsContract.ts +288 -0
  96. package/typechain-types/contracts/mocks/utils/mpc/index.ts +17 -0
  97. package/typechain-types/contracts/mocks/wallet/PrivateERC20Wallet/PrivateERC20WalletMock.ts +173 -0
  98. package/typechain-types/contracts/mocks/wallet/PrivateERC20Wallet/index.ts +4 -0
  99. package/typechain-types/contracts/mocks/wallet/index.ts +5 -0
  100. package/typechain-types/contracts/onboard/AccountOnboard.ts +135 -0
  101. package/typechain-types/contracts/onboard/index.ts +4 -0
  102. package/typechain-types/contracts/token/PrivateERC20/IPrivateERC20.ts +437 -0
  103. package/typechain-types/contracts/token/PrivateERC20/PrivateERC20.ts +505 -0
  104. package/typechain-types/contracts/token/PrivateERC20/index.ts +5 -0
  105. package/typechain-types/contracts/token/PrivateERC721/PrivateERC721.ts +409 -0
  106. package/typechain-types/contracts/token/PrivateERC721/extensions/PrivateERC721URIStorage.ts +501 -0
  107. package/typechain-types/contracts/token/PrivateERC721/extensions/index.ts +4 -0
  108. package/typechain-types/contracts/token/PrivateERC721/index.ts +6 -0
  109. package/typechain-types/contracts/token/index.ts +7 -0
  110. package/typechain-types/contracts/utils/index.ts +5 -0
  111. package/typechain-types/contracts/utils/mpc/MpcInterface.sol/ExtendedOperations.ts +698 -0
  112. package/typechain-types/contracts/utils/mpc/MpcInterface.sol/index.ts +4 -0
  113. package/typechain-types/contracts/utils/mpc/index.ts +5 -0
  114. package/typechain-types/factories/@openzeppelin/contracts/index.ts +6 -0
  115. package/typechain-types/factories/@openzeppelin/contracts/interfaces/IERC4906__factory.ts +339 -0
  116. package/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors__factory.ts +127 -0
  117. package/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors__factory.ts +111 -0
  118. package/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors__factory.ts +128 -0
  119. package/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/index.ts +6 -0
  120. package/typechain-types/factories/@openzeppelin/contracts/interfaces/index.ts +5 -0
  121. package/typechain-types/factories/@openzeppelin/contracts/token/ERC721/IERC721Receiver__factory.ts +59 -0
  122. package/typechain-types/factories/@openzeppelin/contracts/token/ERC721/IERC721__factory.ts +307 -0
  123. package/typechain-types/factories/@openzeppelin/contracts/token/ERC721/index.ts +5 -0
  124. package/typechain-types/factories/@openzeppelin/contracts/token/index.ts +4 -0
  125. package/typechain-types/factories/@openzeppelin/contracts/utils/index.ts +4 -0
  126. package/typechain-types/factories/@openzeppelin/contracts/utils/introspection/ERC165__factory.ts +41 -0
  127. package/typechain-types/factories/@openzeppelin/contracts/utils/introspection/IERC165__factory.ts +41 -0
  128. package/typechain-types/factories/@openzeppelin/contracts/utils/introspection/index.ts +5 -0
  129. package/typechain-types/factories/@openzeppelin/index.ts +4 -0
  130. package/typechain-types/factories/contracts/access/DataPrivacyFramework/DataPrivacyFramework__factory.ts +621 -0
  131. package/typechain-types/factories/contracts/access/DataPrivacyFramework/extensions/DataPrivacyFrameworkMpc__factory.ts +621 -0
  132. package/typechain-types/factories/contracts/access/DataPrivacyFramework/extensions/index.ts +4 -0
  133. package/typechain-types/factories/contracts/access/DataPrivacyFramework/index.ts +5 -0
  134. package/typechain-types/factories/contracts/access/index.ts +4 -0
  135. package/typechain-types/factories/contracts/index.ts +8 -0
  136. package/typechain-types/factories/contracts/mocks/access/DataPrivacyFramework/DataPrivacyFrameworkMock__factory.ts +670 -0
  137. package/typechain-types/factories/contracts/mocks/access/DataPrivacyFramework/index.ts +4 -0
  138. package/typechain-types/factories/contracts/mocks/access/index.ts +4 -0
  139. package/typechain-types/factories/contracts/mocks/index.ts +7 -0
  140. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PrivateERC20Mock__factory.ts +615 -0
  141. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/index.ts +4 -0
  142. package/typechain-types/factories/contracts/mocks/token/PrivateERC721/PrivateERC721URIStorageMock__factory.ts +630 -0
  143. package/typechain-types/factories/contracts/mocks/token/PrivateERC721/index.ts +4 -0
  144. package/typechain-types/factories/contracts/mocks/token/index.ts +5 -0
  145. package/typechain-types/factories/contracts/mocks/utils/index.ts +4 -0
  146. package/typechain-types/factories/contracts/mocks/utils/mpc/ArithmeticTestsContract__factory.ts +374 -0
  147. package/typechain-types/factories/contracts/mocks/utils/mpc/BitwiseTestsContract__factory.ts +361 -0
  148. package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison1Tests.Contract.sol/Comparison1TestsContract__factory.ts +361 -0
  149. package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison1Tests.Contract.sol/index.ts +4 -0
  150. package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison2TestsContract__factory.ts +361 -0
  151. package/typechain-types/factories/contracts/mocks/utils/mpc/MinMaxTestsContract__factory.ts +337 -0
  152. package/typechain-types/factories/contracts/mocks/utils/mpc/Miscellaneous1TestsContract__factory.ts +236 -0
  153. package/typechain-types/factories/contracts/mocks/utils/mpc/Miscellaneous2TestsContract__factory.ts +432 -0
  154. package/typechain-types/factories/contracts/mocks/utils/mpc/OffboardToUserKeyTestsContract.sol/OffboardToUserKeyTestContract__factory.ts +245 -0
  155. package/typechain-types/factories/contracts/mocks/utils/mpc/OffboardToUserKeyTestsContract.sol/index.ts +4 -0
  156. package/typechain-types/factories/contracts/mocks/utils/mpc/ShiftTestsContract__factory.ts +374 -0
  157. package/typechain-types/factories/contracts/mocks/utils/mpc/StringTestsContract__factory.ts +264 -0
  158. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferScalarTestsContract__factory.ts +360 -0
  159. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferTestsContract__factory.ts +441 -0
  160. package/typechain-types/factories/contracts/mocks/utils/mpc/index.ts +15 -0
  161. package/typechain-types/factories/contracts/mocks/wallet/PrivateERC20Wallet/PrivateERC20WalletMock__factory.ts +194 -0
  162. package/typechain-types/factories/contracts/mocks/wallet/PrivateERC20Wallet/index.ts +4 -0
  163. package/typechain-types/factories/contracts/mocks/wallet/index.ts +4 -0
  164. package/typechain-types/factories/contracts/onboard/AccountOnboard__factory.ts +104 -0
  165. package/typechain-types/factories/contracts/onboard/index.ts +4 -0
  166. package/typechain-types/factories/contracts/token/PrivateERC20/IPrivateERC20__factory.ts +406 -0
  167. package/typechain-types/factories/contracts/token/PrivateERC20/PrivateERC20__factory.ts +532 -0
  168. package/typechain-types/factories/contracts/token/PrivateERC20/index.ts +5 -0
  169. package/typechain-types/factories/contracts/token/PrivateERC721/PrivateERC721__factory.ts +439 -0
  170. package/typechain-types/factories/contracts/token/PrivateERC721/extensions/PrivateERC721URIStorage__factory.ts +512 -0
  171. package/typechain-types/factories/contracts/token/PrivateERC721/extensions/index.ts +4 -0
  172. package/typechain-types/factories/contracts/token/PrivateERC721/index.ts +5 -0
  173. package/typechain-types/factories/contracts/token/index.ts +5 -0
  174. package/typechain-types/factories/contracts/utils/index.ts +4 -0
  175. package/typechain-types/factories/contracts/utils/mpc/MpcInterface.sol/ExtendedOperations__factory.ts +919 -0
  176. package/typechain-types/factories/contracts/utils/mpc/MpcInterface.sol/index.ts +4 -0
  177. package/typechain-types/factories/contracts/utils/mpc/index.ts +4 -0
  178. package/typechain-types/factories/index.ts +5 -0
  179. package/typechain-types/hardhat.d.ts +621 -0
  180. package/typechain-types/index.ts +72 -0
@@ -0,0 +1,337 @@
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
+ MinMaxTestsContract,
14
+ MinMaxTestsContractInterface,
15
+ } from "../../../../../contracts/mocks/utils/mpc/MinMaxTestsContract";
16
+
17
+ const _abi = [
18
+ {
19
+ inputs: [
20
+ {
21
+ components: [
22
+ {
23
+ internalType: "gtUint16",
24
+ name: "res16_16",
25
+ type: "uint256",
26
+ },
27
+ {
28
+ internalType: "gtUint16",
29
+ name: "res8_16",
30
+ type: "uint256",
31
+ },
32
+ {
33
+ internalType: "gtUint16",
34
+ name: "res16_8",
35
+ type: "uint256",
36
+ },
37
+ ],
38
+ internalType: "struct MinMaxTestsContract.Check16",
39
+ name: "check16",
40
+ type: "tuple",
41
+ },
42
+ ],
43
+ name: "decryptAndCompareResults16",
44
+ outputs: [
45
+ {
46
+ internalType: "uint16",
47
+ name: "",
48
+ type: "uint16",
49
+ },
50
+ ],
51
+ stateMutability: "nonpayable",
52
+ type: "function",
53
+ },
54
+ {
55
+ inputs: [
56
+ {
57
+ components: [
58
+ {
59
+ internalType: "gtUint32",
60
+ name: "res32_32",
61
+ type: "uint256",
62
+ },
63
+ {
64
+ internalType: "gtUint32",
65
+ name: "res8_32",
66
+ type: "uint256",
67
+ },
68
+ {
69
+ internalType: "gtUint32",
70
+ name: "res32_8",
71
+ type: "uint256",
72
+ },
73
+ {
74
+ internalType: "gtUint32",
75
+ name: "res16_32",
76
+ type: "uint256",
77
+ },
78
+ {
79
+ internalType: "gtUint32",
80
+ name: "res32_16",
81
+ type: "uint256",
82
+ },
83
+ ],
84
+ internalType: "struct MinMaxTestsContract.Check32",
85
+ name: "check32",
86
+ type: "tuple",
87
+ },
88
+ ],
89
+ name: "decryptAndCompareResults32",
90
+ outputs: [
91
+ {
92
+ internalType: "uint32",
93
+ name: "",
94
+ type: "uint32",
95
+ },
96
+ ],
97
+ stateMutability: "nonpayable",
98
+ type: "function",
99
+ },
100
+ {
101
+ inputs: [
102
+ {
103
+ components: [
104
+ {
105
+ internalType: "gtUint64",
106
+ name: "res64_64",
107
+ type: "uint256",
108
+ },
109
+ {
110
+ internalType: "gtUint64",
111
+ name: "res8_64",
112
+ type: "uint256",
113
+ },
114
+ {
115
+ internalType: "gtUint64",
116
+ name: "res64_8",
117
+ type: "uint256",
118
+ },
119
+ {
120
+ internalType: "gtUint64",
121
+ name: "res16_64",
122
+ type: "uint256",
123
+ },
124
+ {
125
+ internalType: "gtUint64",
126
+ name: "res64_16",
127
+ type: "uint256",
128
+ },
129
+ {
130
+ internalType: "gtUint64",
131
+ name: "res32_64",
132
+ type: "uint256",
133
+ },
134
+ {
135
+ internalType: "gtUint64",
136
+ name: "res64_32",
137
+ type: "uint256",
138
+ },
139
+ ],
140
+ internalType: "struct MinMaxTestsContract.Check64",
141
+ name: "check64",
142
+ type: "tuple",
143
+ },
144
+ ],
145
+ name: "decryptAndCompareResults64",
146
+ outputs: [
147
+ {
148
+ internalType: "uint64",
149
+ name: "",
150
+ type: "uint64",
151
+ },
152
+ ],
153
+ stateMutability: "nonpayable",
154
+ type: "function",
155
+ },
156
+ {
157
+ inputs: [],
158
+ name: "getResult",
159
+ outputs: [
160
+ {
161
+ internalType: "uint8",
162
+ name: "",
163
+ type: "uint8",
164
+ },
165
+ ],
166
+ stateMutability: "view",
167
+ type: "function",
168
+ },
169
+ {
170
+ inputs: [
171
+ {
172
+ internalType: "uint8",
173
+ name: "a",
174
+ type: "uint8",
175
+ },
176
+ {
177
+ internalType: "uint8",
178
+ name: "b",
179
+ type: "uint8",
180
+ },
181
+ ],
182
+ name: "maxTest",
183
+ outputs: [
184
+ {
185
+ internalType: "uint8",
186
+ name: "",
187
+ type: "uint8",
188
+ },
189
+ ],
190
+ stateMutability: "nonpayable",
191
+ type: "function",
192
+ },
193
+ {
194
+ inputs: [
195
+ {
196
+ internalType: "uint8",
197
+ name: "a",
198
+ type: "uint8",
199
+ },
200
+ {
201
+ internalType: "uint8",
202
+ name: "b",
203
+ type: "uint8",
204
+ },
205
+ ],
206
+ name: "minTest",
207
+ outputs: [
208
+ {
209
+ internalType: "uint8",
210
+ name: "",
211
+ type: "uint8",
212
+ },
213
+ ],
214
+ stateMutability: "nonpayable",
215
+ type: "function",
216
+ },
217
+ {
218
+ inputs: [
219
+ {
220
+ components: [
221
+ {
222
+ internalType: "gtUint8",
223
+ name: "a8_s",
224
+ type: "uint256",
225
+ },
226
+ {
227
+ internalType: "gtUint8",
228
+ name: "b8_s",
229
+ type: "uint256",
230
+ },
231
+ {
232
+ internalType: "gtUint16",
233
+ name: "a16_s",
234
+ type: "uint256",
235
+ },
236
+ {
237
+ internalType: "gtUint16",
238
+ name: "b16_s",
239
+ type: "uint256",
240
+ },
241
+ {
242
+ internalType: "gtUint32",
243
+ name: "a32_s",
244
+ type: "uint256",
245
+ },
246
+ {
247
+ internalType: "gtUint32",
248
+ name: "b32_s",
249
+ type: "uint256",
250
+ },
251
+ {
252
+ internalType: "gtUint64",
253
+ name: "a64_s",
254
+ type: "uint256",
255
+ },
256
+ {
257
+ internalType: "gtUint64",
258
+ name: "b64_s",
259
+ type: "uint256",
260
+ },
261
+ ],
262
+ internalType: "struct MinMaxTestsContract.AllGTCastingValues",
263
+ name: "castingValues",
264
+ type: "tuple",
265
+ },
266
+ {
267
+ internalType: "uint8",
268
+ name: "a",
269
+ type: "uint8",
270
+ },
271
+ {
272
+ internalType: "uint8",
273
+ name: "b",
274
+ type: "uint8",
275
+ },
276
+ ],
277
+ name: "setPublicValues",
278
+ outputs: [],
279
+ stateMutability: "nonpayable",
280
+ type: "function",
281
+ },
282
+ ] as const;
283
+
284
+ const _bytecode =
285
+ "0x608060405234801561001057600080fd5b506140a9806100206000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063dad85e0a1161005b578063dad85e0a14610112578063de29278914610142578063e23a217614610160578063ebb571fd146101905761007d565b80632e544aa01461008257806380f937bc146100b2578063acb38169146100e2575b600080fd5b61009c600480360381019061009791906134af565b6101ac565b6040516100a991906134f9565b60405180910390f35b6100cc60048036038101906100c791906135f4565b61023c565b6040516100d99190613644565b60405180910390f35b6100fc60048036038101906100f79190613717565b610390565b6040516101099190613763565b60405180910390f35b61012c600480360381019061012791906137b7565b61046e565b6040516101399190613806565b60405180910390f35b61014a610a15565b6040516101579190613806565b60405180910390f35b61017a600480360381019061017591906137b7565b610a2b565b6040516101879190613806565b60405180910390f35b6101aa60048036038101906101a59190613917565b610fd2565b005b6000806101bc8360000151611079565b90506101cb8360200151611079565b61ffff168161ffff161480156101f457506101e98360400151611079565b61ffff168161ffff16145b610233576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161022a90613a16565b60405180910390fd5b80915050919050565b60008061024c8360000151611117565b905061025b8360200151611117565b67ffffffffffffffff168167ffffffffffffffff1614801561029c57506102858360400151611117565b67ffffffffffffffff168167ffffffffffffffff16145b80156102c757506102b08360800151611117565b67ffffffffffffffff168167ffffffffffffffff16145b80156102f257506102db8360600151611117565b67ffffffffffffffff168167ffffffffffffffff16145b801561031d57506103068360c00151611117565b67ffffffffffffffff168167ffffffffffffffff16145b801561034857506103318360a00151611117565b67ffffffffffffffff168167ffffffffffffffff16145b610387576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161037e90613a16565b60405180910390fd5b80915050919050565b6000806103a083600001516111b4565b90506103af83602001516111b4565b63ffffffff168163ffffffff161480156103e057506103d183604001516111b4565b63ffffffff168163ffffffff16145b801561040357506103f483608001516111b4565b63ffffffff168163ffffffff16145b8015610426575061041783606001516111b4565b63ffffffff168163ffffffff16145b610465576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161045c90613a16565b60405180910390fd5b80915050919050565b60006104786132a3565b6104806132e8565b610488613309565b610490613338565b61049b848888610fd2565b6104b56104b085600001518660200151611252565b6112e9565b6000806101000a81548160ff021916908360ff1602179055506104e084604001518560600151611387565b8360000181815250506104fb8460000151856060015161141e565b836020018181525050610516846040015185602001516114b6565b836040018181525050600061052a846101ac565b905060008054906101000a900460ff1660ff168161ffff1614610582576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057990613a82565b60405180910390fd5b61059485608001518660a0015161154e565b8360000181815250506105af85600001518660a001516115e5565b8360200181815250506105ca8560800151866020015161167d565b8360400181815250506105e585604001518660a00151611715565b836060018181525050610600856080015186606001516117ad565b836080018181525050600061061484610390565b90508063ffffffff1660008054906101000a900460ff1660ff161461066e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066590613aee565b60405180910390fd5b6106808660c001518760e00151611845565b83600001818152505061069b86600001518760e001516118dc565b8360200181815250506106b68660c001518760200151611974565b8360400181815250506106d186604001518760e00151611a0c565b8360600181815250506106ec8660c001518760600151611aa4565b83608001818152505061070786608001518760e00151611b3c565b8360a00181815250506107228660c001518760a00151611bd4565b8360c001818152505060006107368461023c565b90508067ffffffffffffffff1660008054906101000a900460ff1660ff1614610794576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078b90613b5a565b60405180910390fd5b6107aa6107a58b8960200151611c6c565b6112e9565b60ff1660008054906101000a900460ff1660ff161480156107f257506107dc6107d788600001518b611d06565b6112e9565b60ff1660008054906101000a900460ff1660ff16145b610831576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082890613bec565b60405180910390fd5b61084a6108458b60ff168960600151611da0565b611079565b61ffff168361ffff1614801561087f575061087461086f88604001518b60ff16611e3b565b611079565b61ffff168361ffff16145b6108be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b590613c7e565b60405180910390fd5b6108d76108d28b60ff168960a00151611ed6565b6111b4565b63ffffffff168263ffffffff16148015610914575061090561090088608001518b60ff16611f73565b6111b4565b63ffffffff168263ffffffff16145b610953576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094a90613d10565b60405180910390fd5b61096c6109678b60ff168960e00151612010565b611117565b67ffffffffffffffff168167ffffffffffffffff161480156109b957506109a261099d8860c001518b60ff166120b1565b611117565b67ffffffffffffffff168167ffffffffffffffff16145b6109f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ef90613da2565b60405180910390fd5b60008054906101000a900460ff1697505050505050505092915050565b60008060009054906101000a900460ff16905090565b6000610a356132a3565b610a3d6132e8565b610a45613309565b610a4d613338565b610a58848888610fd2565b610a72610a6d85600001518660200151612152565b6112e9565b6000806101000a81548160ff021916908360ff160217905550610a9d846040015185606001516121e9565b836000018181525050610ab884600001518560600151612280565b836020018181525050610ad384604001518560200151612318565b8360400181815250506000610ae7846101ac565b905060008054906101000a900460ff1660ff168161ffff1614610b3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3690613e0e565b60405180910390fd5b610b5185608001518660a001516123b0565b836000018181525050610b6c85600001518660a00151612447565b836020018181525050610b87856080015186602001516124df565b836040018181525050610ba285604001518660a00151612577565b836060018181525050610bbd8560800151866060015161260f565b8360800181815250506000610bd184610390565b90508063ffffffff1660008054906101000a900460ff1660ff1614610c2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2290613e7a565b60405180910390fd5b610c3d8660c001518760e001516126a7565b836000018181525050610c5886600001518760e0015161273e565b836020018181525050610c738660c0015187602001516127d6565b836040018181525050610c8e86604001518760e0015161286e565b836060018181525050610ca98660c001518760600151612906565b836080018181525050610cc486608001518760e0015161299e565b8360a0018181525050610cdf8660c001518760a00151612a36565b8360c00181815250506000610cf38461023c565b90508067ffffffffffffffff1660008054906101000a900460ff1660ff1614610d51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4890613ee6565b60405180910390fd5b610d67610d628b8960200151612ace565b6112e9565b60ff1660008054906101000a900460ff1660ff16148015610daf5750610d99610d9488600001518b612b68565b6112e9565b60ff1660008054906101000a900460ff1660ff16145b610dee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de590613bec565b60405180910390fd5b610e07610e028b60ff168960600151612c02565b611079565b61ffff168361ffff16148015610e3c5750610e31610e2c88604001518b60ff16612c9d565b611079565b61ffff168361ffff16145b610e7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7290613c7e565b60405180910390fd5b610e94610e8f8b60ff168960a00151612d38565b6111b4565b63ffffffff168263ffffffff16148015610ed15750610ec2610ebd88608001518b60ff16612dd5565b6111b4565b63ffffffff168263ffffffff16145b610f10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0790613d10565b60405180910390fd5b610f29610f248b60ff168960e00151612e72565b611117565b67ffffffffffffffff168167ffffffffffffffff16148015610f765750610f5f610f5a8860c001518b60ff16612f13565b611117565b67ffffffffffffffff168167ffffffffffffffff16145b610fb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fac90613da2565b60405180910390fd5b60008054906101000a900460ff1697505050505050505092915050565b610fdb82612fb4565b836000018181525050610fed81612fb4565b8360200181815250506110028260ff16613055565b8360400181815250506110178160ff16613055565b83606001818152505061102c8260ff166130f7565b8360800181815250506110418160ff166130f7565b8360a00181815250506110568260ff1661319b565b8360c001818152505061106b8160ff1661319b565b8360e0018181525050505050565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed561600260048111156110ac576110ab613f06565b5b60f81b846040518363ffffffff1660e01b81526004016110cd929190613f7f565b6020604051808303816000875af11580156110ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111109190613fd4565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed56160048081111561114957611148613f06565b5b60f81b846040518363ffffffff1660e01b815260040161116a929190613f7f565b6020604051808303816000875af1158015611189573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111ad9190613fd4565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed561600360048111156111e7576111e6613f06565b5b60f81b846040518363ffffffff1660e01b8152600401611208929190613f7f565b6020604051808303816000875af1158015611227573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124b9190613fd4565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff166369ca087461127e6001806000613242565b85856040518463ffffffff1660e01b815260040161129e9392919061403c565b6020604051808303816000875af11580156112bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e19190613fd4565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed5616001600481111561131c5761131b613f06565b5b60f81b846040518363ffffffff1660e01b815260040161133d929190613f7f565b6020604051808303816000875af115801561135c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113809190613fd4565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff166369ca08746113b36002806000613242565b85856040518463ffffffff1660e01b81526004016113d39392919061403c565b6020604051808303816000875af11580156113f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114169190613fd4565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166369ca087461144b600160026000613242565b85856040518463ffffffff1660e01b815260040161146b9392919061403c565b6020604051808303816000875af115801561148a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ae9190613fd4565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166369ca08746114e3600260016000613242565b85856040518463ffffffff1660e01b81526004016115039392919061403c565b6020604051808303816000875af1158015611522573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115469190613fd4565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166369ca087461157a6003806000613242565b85856040518463ffffffff1660e01b815260040161159a9392919061403c565b6020604051808303816000875af11580156115b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115dd9190613fd4565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166369ca0874611612600160036000613242565b85856040518463ffffffff1660e01b81526004016116329392919061403c565b6020604051808303816000875af1158015611651573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116759190613fd4565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166369ca08746116aa600360016000613242565b85856040518463ffffffff1660e01b81526004016116ca9392919061403c565b6020604051808303816000875af11580156116e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061170d9190613fd4565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166369ca0874611742600260036000613242565b85856040518463ffffffff1660e01b81526004016117629392919061403c565b6020604051808303816000875af1158015611781573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a59190613fd4565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166369ca08746117da600360026000613242565b85856040518463ffffffff1660e01b81526004016117fa9392919061403c565b6020604051808303816000875af1158015611819573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061183d9190613fd4565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166369ca08746118716004806000613242565b85856040518463ffffffff1660e01b81526004016118919392919061403c565b6020604051808303816000875af11580156118b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118d49190613fd4565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166369ca0874611909600160046000613242565b85856040518463ffffffff1660e01b81526004016119299392919061403c565b6020604051808303816000875af1158015611948573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196c9190613fd4565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166369ca08746119a1600460016000613242565b85856040518463ffffffff1660e01b81526004016119c19392919061403c565b6020604051808303816000875af11580156119e0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a049190613fd4565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166369ca0874611a39600260046000613242565b85856040518463ffffffff1660e01b8152600401611a599392919061403c565b6020604051808303816000875af1158015611a78573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a9c9190613fd4565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166369ca0874611ad1600460026000613242565b85856040518463ffffffff1660e01b8152600401611af19392919061403c565b6020604051808303816000875af1158015611b10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b349190613fd4565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166369ca0874611b69600360046000613242565b85856040518463ffffffff1660e01b8152600401611b899392919061403c565b6020604051808303816000875af1158015611ba8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bcc9190613fd4565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166369ca0874611c01600460036000613242565b85856040518463ffffffff1660e01b8152600401611c219392919061403c565b6020604051808303816000875af1158015611c40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c649190613fd4565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166369ca0874611c986001806001613242565b8560ff16856040518463ffffffff1660e01b8152600401611cbb9392919061403c565b6020604051808303816000875af1158015611cda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cfe9190613fd4565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166369ca0874611d326001806002613242565b858560ff166040518463ffffffff1660e01b8152600401611d559392919061403c565b6020604051808303816000875af1158015611d74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d989190613fd4565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166369ca0874611dcc6002806001613242565b8561ffff16856040518463ffffffff1660e01b8152600401611df09392919061403c565b6020604051808303816000875af1158015611e0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e339190613fd4565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166369ca0874611e676001806002613242565b858561ffff166040518463ffffffff1660e01b8152600401611e8b9392919061403c565b6020604051808303816000875af1158015611eaa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ece9190613fd4565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166369ca0874611f026003806001613242565b8563ffffffff16856040518463ffffffff1660e01b8152600401611f289392919061403c565b6020604051808303816000875af1158015611f47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f6b9190613fd4565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166369ca0874611f9f6003806002613242565b858563ffffffff166040518463ffffffff1660e01b8152600401611fc59392919061403c565b6020604051808303816000875af1158015611fe4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120089190613fd4565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166369ca087461203c6004806001613242565b8567ffffffffffffffff16856040518463ffffffff1660e01b81526004016120669392919061403c565b6020604051808303816000875af1158015612085573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120a99190613fd4565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166369ca08746120dd6004806002613242565b858567ffffffffffffffff166040518463ffffffff1660e01b81526004016121079392919061403c565b6020604051808303816000875af1158015612126573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061214a9190613fd4565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16639bda078261217e6001806000613242565b85856040518463ffffffff1660e01b815260040161219e9392919061403c565b6020604051808303816000875af11580156121bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121e19190613fd4565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16639bda07826122156002806000613242565b85856040518463ffffffff1660e01b81526004016122359392919061403c565b6020604051808303816000875af1158015612254573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122789190613fd4565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16639bda07826122ad600160026000613242565b85856040518463ffffffff1660e01b81526004016122cd9392919061403c565b6020604051808303816000875af11580156122ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123109190613fd4565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16639bda0782612345600260016000613242565b85856040518463ffffffff1660e01b81526004016123659392919061403c565b6020604051808303816000875af1158015612384573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123a89190613fd4565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16639bda07826123dc6003806000613242565b85856040518463ffffffff1660e01b81526004016123fc9392919061403c565b6020604051808303816000875af115801561241b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061243f9190613fd4565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16639bda0782612474600160036000613242565b85856040518463ffffffff1660e01b81526004016124949392919061403c565b6020604051808303816000875af11580156124b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124d79190613fd4565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16639bda078261250c600360016000613242565b85856040518463ffffffff1660e01b815260040161252c9392919061403c565b6020604051808303816000875af115801561254b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061256f9190613fd4565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16639bda07826125a4600260036000613242565b85856040518463ffffffff1660e01b81526004016125c49392919061403c565b6020604051808303816000875af11580156125e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126079190613fd4565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16639bda078261263c600360026000613242565b85856040518463ffffffff1660e01b815260040161265c9392919061403c565b6020604051808303816000875af115801561267b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061269f9190613fd4565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16639bda07826126d36004806000613242565b85856040518463ffffffff1660e01b81526004016126f39392919061403c565b6020604051808303816000875af1158015612712573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127369190613fd4565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16639bda078261276b600160046000613242565b85856040518463ffffffff1660e01b815260040161278b9392919061403c565b6020604051808303816000875af11580156127aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127ce9190613fd4565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16639bda0782612803600460016000613242565b85856040518463ffffffff1660e01b81526004016128239392919061403c565b6020604051808303816000875af1158015612842573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128669190613fd4565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16639bda078261289b600260046000613242565b85856040518463ffffffff1660e01b81526004016128bb9392919061403c565b6020604051808303816000875af11580156128da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128fe9190613fd4565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16639bda0782612933600460026000613242565b85856040518463ffffffff1660e01b81526004016129539392919061403c565b6020604051808303816000875af1158015612972573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129969190613fd4565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16639bda07826129cb600360046000613242565b85856040518463ffffffff1660e01b81526004016129eb9392919061403c565b6020604051808303816000875af1158015612a0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a2e9190613fd4565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16639bda0782612a63600460036000613242565b85856040518463ffffffff1660e01b8152600401612a839392919061403c565b6020604051808303816000875af1158015612aa2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ac69190613fd4565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16639bda0782612afa6001806001613242565b8560ff16856040518463ffffffff1660e01b8152600401612b1d9392919061403c565b6020604051808303816000875af1158015612b3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b609190613fd4565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16639bda0782612b946001806002613242565b858560ff166040518463ffffffff1660e01b8152600401612bb79392919061403c565b6020604051808303816000875af1158015612bd6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bfa9190613fd4565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16639bda0782612c2e6002806001613242565b8561ffff16856040518463ffffffff1660e01b8152600401612c529392919061403c565b6020604051808303816000875af1158015612c71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c959190613fd4565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16639bda0782612cc96001806002613242565b858561ffff166040518463ffffffff1660e01b8152600401612ced9392919061403c565b6020604051808303816000875af1158015612d0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d309190613fd4565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16639bda0782612d646003806001613242565b8563ffffffff16856040518463ffffffff1660e01b8152600401612d8a9392919061403c565b6020604051808303816000875af1158015612da9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dcd9190613fd4565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16639bda0782612e016003806002613242565b858563ffffffff166040518463ffffffff1660e01b8152600401612e279392919061403c565b6020604051808303816000875af1158015612e46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e6a9190613fd4565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16639bda0782612e9e6004806001613242565b8567ffffffffffffffff16856040518463ffffffff1660e01b8152600401612ec89392919061403c565b6020604051808303816000875af1158015612ee7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f0b9190613fd4565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16639bda0782612f3f6004806002613242565b858567ffffffffffffffff166040518463ffffffff1660e01b8152600401612f699392919061403c565b6020604051808303816000875af1158015612f88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fac9190613fd4565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b6060016004811115612fe757612fe6613f06565b5b60f81b8460ff166040518363ffffffff1660e01b815260040161300b929190613f7f565b6020604051808303816000875af115801561302a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061304e9190613fd4565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b606002600481111561308857613087613f06565b5b60f81b8461ffff166040518363ffffffff1660e01b81526004016130ad929190613f7f565b6020604051808303816000875af11580156130cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130f09190613fd4565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b606003600481111561312a57613129613f06565b5b60f81b8463ffffffff166040518363ffffffff1660e01b8152600401613151929190613f7f565b6020604051808303816000875af1158015613170573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131949190613fd4565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b606004808111156131cd576131cc613f06565b5b60f81b8467ffffffffffffffff166040518363ffffffff1660e01b81526004016131f8929190613f7f565b6020604051808303816000875af1158015613217573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061323b9190613fd4565b9050919050565b600081600281111561325757613256613f06565b5b60ff16600884600481111561326f5761326e613f06565b5b61ffff16901b61ffff16601086600481111561328e5761328d613f06565b5b62ffffff16901b171760e81b90509392505050565b60405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60405180606001604052806000815260200160008152602001600081525090565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6040518060e00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6000604051905090565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6133d282613389565b810181811067ffffffffffffffff821117156133f1576133f061339a565b5b80604052505050565b6000613404613375565b905061341082826133c9565b919050565b6000819050919050565b61342881613415565b811461343357600080fd5b50565b6000813590506134458161341f565b92915050565b60006060828403121561346157613460613384565b5b61346b60606133fa565b9050600061347b84828501613436565b600083015250602061348f84828501613436565b60208301525060406134a384828501613436565b60408301525092915050565b6000606082840312156134c5576134c461337f565b5b60006134d38482850161344b565b91505092915050565b600061ffff82169050919050565b6134f3816134dc565b82525050565b600060208201905061350e60008301846134ea565b92915050565b61351d81613415565b811461352857600080fd5b50565b60008135905061353a81613514565b92915050565b600060e0828403121561355657613555613384565b5b61356060e06133fa565b905060006135708482850161352b565b60008301525060206135848482850161352b565b60208301525060406135988482850161352b565b60408301525060606135ac8482850161352b565b60608301525060806135c08482850161352b565b60808301525060a06135d48482850161352b565b60a08301525060c06135e88482850161352b565b60c08301525092915050565b600060e0828403121561360a5761360961337f565b5b600061361884828501613540565b91505092915050565b600067ffffffffffffffff82169050919050565b61363e81613621565b82525050565b60006020820190506136596000830184613635565b92915050565b61366881613415565b811461367357600080fd5b50565b6000813590506136858161365f565b92915050565b600060a082840312156136a1576136a0613384565b5b6136ab60a06133fa565b905060006136bb84828501613676565b60008301525060206136cf84828501613676565b60208301525060406136e384828501613676565b60408301525060606136f784828501613676565b606083015250608061370b84828501613676565b60808301525092915050565b600060a0828403121561372d5761372c61337f565b5b600061373b8482850161368b565b91505092915050565b600063ffffffff82169050919050565b61375d81613744565b82525050565b60006020820190506137786000830184613754565b92915050565b600060ff82169050919050565b6137948161377e565b811461379f57600080fd5b50565b6000813590506137b18161378b565b92915050565b600080604083850312156137ce576137cd61337f565b5b60006137dc858286016137a2565b92505060206137ed858286016137a2565b9150509250929050565b6138008161377e565b82525050565b600060208201905061381b60008301846137f7565b92915050565b61382a81613415565b811461383557600080fd5b50565b60008135905061384781613821565b92915050565b6000610100828403121561386457613863613384565b5b61386f6101006133fa565b9050600061387f84828501613838565b600083015250602061389384828501613838565b60208301525060406138a784828501613436565b60408301525060606138bb84828501613436565b60608301525060806138cf84828501613676565b60808301525060a06138e384828501613676565b60a08301525060c06138f78482850161352b565b60c08301525060e061390b8482850161352b565b60e08301525092915050565b600080600061014084860312156139315761393061337f565b5b600061393f8682870161384d565b935050610100613951868287016137a2565b925050610120613963868287016137a2565b9150509250925092565b600082825260208201905092915050565b7f64656372797074416e64436f6d70617265416c6c526573756c74733a2046616960008201527f6c656420746f206465637279707420616e6420636f6d7061726520616c6c207260208201527f6573756c74730000000000000000000000000000000000000000000000000000604082015250565b6000613a0060468361396d565b9150613a0b8261397e565b606082019050919050565b60006020820190508181036000830152613a2f816139f3565b9050919050565b7f6d696e546573743a2063617374203136206661696c6564000000000000000000600082015250565b6000613a6c60178361396d565b9150613a7782613a36565b602082019050919050565b60006020820190508181036000830152613a9b81613a5f565b9050919050565b7f6d696e546573743a2063617374203332206661696c6564000000000000000000600082015250565b6000613ad860178361396d565b9150613ae382613aa2565b602082019050919050565b60006020820190508181036000830152613b0781613acb565b9050919050565b7f6d696e546573743a2063617374203634206661696c6564000000000000000000600082015250565b6000613b4460178361396d565b9150613b4f82613b0e565b602082019050919050565b60006020820190508181036000830152613b7381613b37565b9050919050565b7f6d696e546573743a2074657374203820626974732077697468207363616c617260008201527f206661696c656400000000000000000000000000000000000000000000000000602082015250565b6000613bd660278361396d565b9150613be182613b7a565b604082019050919050565b60006020820190508181036000830152613c0581613bc9565b9050919050565b7f6d696e546573743a207465737420313620626974732077697468207363616c6160008201527f72206661696c6564000000000000000000000000000000000000000000000000602082015250565b6000613c6860288361396d565b9150613c7382613c0c565b604082019050919050565b60006020820190508181036000830152613c9781613c5b565b9050919050565b7f6d696e546573743a207465737420333220626974732077697468207363616c6160008201527f72206661696c6564000000000000000000000000000000000000000000000000602082015250565b6000613cfa60288361396d565b9150613d0582613c9e565b604082019050919050565b60006020820190508181036000830152613d2981613ced565b9050919050565b7f6d696e546573743a207465737420363420626974732077697468207363616c6160008201527f72206661696c6564000000000000000000000000000000000000000000000000602082015250565b6000613d8c60288361396d565b9150613d9782613d30565b604082019050919050565b60006020820190508181036000830152613dbb81613d7f565b9050919050565b7f6d6178546573743a2063617374203136206661696c6564000000000000000000600082015250565b6000613df860178361396d565b9150613e0382613dc2565b602082019050919050565b60006020820190508181036000830152613e2781613deb565b9050919050565b7f6d6178546573743a2063617374203332206661696c6564000000000000000000600082015250565b6000613e6460178361396d565b9150613e6f82613e2e565b602082019050919050565b60006020820190508181036000830152613e9381613e57565b9050919050565b7f6d6178546573743a2063617374203634206661696c6564000000000000000000600082015250565b6000613ed060178361396d565b9150613edb82613e9a565b602082019050919050565b60006020820190508181036000830152613eff81613ec3565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b613f6a81613f35565b82525050565b613f7981613415565b82525050565b6000604082019050613f946000830185613f61565b613fa16020830184613f70565b9392505050565b613fb181613415565b8114613fbc57600080fd5b50565b600081519050613fce81613fa8565b92915050565b600060208284031215613fea57613fe961337f565b5b6000613ff884828501613fbf565b91505092915050565b60007fffffff000000000000000000000000000000000000000000000000000000000082169050919050565b61403681614001565b82525050565b6000606082019050614051600083018661402d565b61405e6020830185613f70565b61406b6040830184613f70565b94935050505056fea264697066735822122070ef2a729bd3b07add77857202e4aa0ba6a00add4960ea5e4e62f6442b2ae7ed64736f6c63430008140033";
286
+
287
+ type MinMaxTestsContractConstructorParams =
288
+ | [signer?: Signer]
289
+ | ConstructorParameters<typeof ContractFactory>;
290
+
291
+ const isSuperArgs = (
292
+ xs: MinMaxTestsContractConstructorParams
293
+ ): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;
294
+
295
+ export class MinMaxTestsContract__factory extends ContractFactory {
296
+ constructor(...args: MinMaxTestsContractConstructorParams) {
297
+ if (isSuperArgs(args)) {
298
+ super(...args);
299
+ } else {
300
+ super(_abi, _bytecode, args[0]);
301
+ }
302
+ }
303
+
304
+ override getDeployTransaction(
305
+ overrides?: NonPayableOverrides & { from?: string }
306
+ ): Promise<ContractDeployTransaction> {
307
+ return super.getDeployTransaction(overrides || {});
308
+ }
309
+ override deploy(overrides?: NonPayableOverrides & { from?: string }) {
310
+ return super.deploy(overrides || {}) as Promise<
311
+ MinMaxTestsContract & {
312
+ deploymentTransaction(): ContractTransactionResponse;
313
+ }
314
+ >;
315
+ }
316
+ override connect(
317
+ runner: ContractRunner | null
318
+ ): MinMaxTestsContract__factory {
319
+ return super.connect(runner) as MinMaxTestsContract__factory;
320
+ }
321
+
322
+ static readonly bytecode = _bytecode;
323
+ static readonly abi = _abi;
324
+ static createInterface(): MinMaxTestsContractInterface {
325
+ return new Interface(_abi) as MinMaxTestsContractInterface;
326
+ }
327
+ static connect(
328
+ address: string,
329
+ runner?: ContractRunner | null
330
+ ): MinMaxTestsContract {
331
+ return new Contract(
332
+ address,
333
+ _abi,
334
+ runner
335
+ ) as unknown as MinMaxTestsContract;
336
+ }
337
+ }
@@ -0,0 +1,236 @@
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
+ Miscellaneous1TestsContract,
14
+ Miscellaneous1TestsContractInterface,
15
+ } from "../../../../../contracts/mocks/utils/mpc/Miscellaneous1TestsContract";
16
+
17
+ const _abi = [
18
+ {
19
+ inputs: [
20
+ {
21
+ internalType: "bool",
22
+ name: "a",
23
+ type: "bool",
24
+ },
25
+ {
26
+ internalType: "bool",
27
+ name: "b",
28
+ type: "bool",
29
+ },
30
+ {
31
+ internalType: "bool",
32
+ name: "bit",
33
+ type: "bool",
34
+ },
35
+ ],
36
+ name: "booleanTest",
37
+ outputs: [],
38
+ stateMutability: "nonpayable",
39
+ type: "function",
40
+ },
41
+ {
42
+ inputs: [
43
+ {
44
+ internalType: "uint64[10]",
45
+ name: "randoms",
46
+ type: "uint64[10]",
47
+ },
48
+ {
49
+ internalType: "uint256",
50
+ name: "size",
51
+ type: "uint256",
52
+ },
53
+ {
54
+ internalType: "uint8",
55
+ name: "numBits",
56
+ type: "uint8",
57
+ },
58
+ ],
59
+ name: "checkBound",
60
+ outputs: [],
61
+ stateMutability: "nonpayable",
62
+ type: "function",
63
+ },
64
+ {
65
+ inputs: [],
66
+ name: "getBooleanResults",
67
+ outputs: [
68
+ {
69
+ internalType: "bool",
70
+ name: "",
71
+ type: "bool",
72
+ },
73
+ {
74
+ internalType: "bool",
75
+ name: "",
76
+ type: "bool",
77
+ },
78
+ {
79
+ internalType: "bool",
80
+ name: "",
81
+ type: "bool",
82
+ },
83
+ {
84
+ internalType: "bool",
85
+ name: "",
86
+ type: "bool",
87
+ },
88
+ {
89
+ internalType: "bool",
90
+ name: "",
91
+ type: "bool",
92
+ },
93
+ {
94
+ internalType: "bool",
95
+ name: "",
96
+ type: "bool",
97
+ },
98
+ {
99
+ internalType: "bool",
100
+ name: "",
101
+ type: "bool",
102
+ },
103
+ {
104
+ internalType: "bool",
105
+ name: "",
106
+ type: "bool",
107
+ },
108
+ ],
109
+ stateMutability: "view",
110
+ type: "function",
111
+ },
112
+ {
113
+ inputs: [],
114
+ name: "getRandom",
115
+ outputs: [
116
+ {
117
+ internalType: "uint64",
118
+ name: "",
119
+ type: "uint64",
120
+ },
121
+ ],
122
+ stateMutability: "view",
123
+ type: "function",
124
+ },
125
+ {
126
+ inputs: [
127
+ {
128
+ internalType: "bool",
129
+ name: "isBounded",
130
+ type: "bool",
131
+ },
132
+ {
133
+ internalType: "uint8",
134
+ name: "numBits",
135
+ type: "uint8",
136
+ },
137
+ ],
138
+ name: "randTest_",
139
+ outputs: [
140
+ {
141
+ internalType: "uint64",
142
+ name: "",
143
+ type: "uint64",
144
+ },
145
+ ],
146
+ stateMutability: "nonpayable",
147
+ type: "function",
148
+ },
149
+ {
150
+ inputs: [
151
+ {
152
+ internalType: "uint8",
153
+ name: "numBits",
154
+ type: "uint8",
155
+ },
156
+ ],
157
+ name: "randomBoundedTest",
158
+ outputs: [
159
+ {
160
+ internalType: "uint64",
161
+ name: "",
162
+ type: "uint64",
163
+ },
164
+ ],
165
+ stateMutability: "nonpayable",
166
+ type: "function",
167
+ },
168
+ {
169
+ inputs: [],
170
+ name: "randomTest",
171
+ outputs: [
172
+ {
173
+ internalType: "uint64",
174
+ name: "",
175
+ type: "uint64",
176
+ },
177
+ ],
178
+ stateMutability: "nonpayable",
179
+ type: "function",
180
+ },
181
+ ] as const;
182
+
183
+ const _bytecode =
184
+ "0x608060405260008060006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555034801561003957600080fd5b50611fc5806100496000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063926605781161005b57806392660578146100f5578063aacc5a1714610111578063dbc221d01461012f578063dfbba08f1461014b5761007d565b8063103bdb8714610082578063598f9579146100a75780635adb5778146100d7575b600080fd5b61008a61017b565b60405161009e9897969594939291906117d7565b60405180910390f35b6100c160048036038101906100bc919061189d565b610221565b6040516100ce91906118ed565b60405180910390f35b6100df610235565b6040516100ec91906118ed565b60405180910390f35b61010f600480360381019061010a9190611934565b610247565b005b6101196103db565b60405161012691906118ed565b60405180910390f35b61014960048036038101906101449190611b30565b6103f8565b005b61016560048036038101906101609190611b86565b610486565b60405161017291906118ed565b60405180910390f35b600080600080600080600080600060089054906101000a900460ff16600060099054906101000a900460ff166000600a9054906101000a900460ff166000600b9054906101000a900460ff166000600c9054906101000a900460ff166000600d9054906101000a900460ff166000600e9054906101000a900460ff166000600f9054906101000a900460ff16975097509750975097509750975097509091929394959697565b600061022e600183610486565b9050919050565b6000610242600080610486565b905090565b600061025284610858565b9050600061025f84610858565b9050600061026c84610858565b905061028061027b848461090c565b6109a3565b600060086101000a81548160ff0219169083151502179055506102ab6102a68484610a4a565b6109a3565b600060096101000a81548160ff0219169083151502179055506102d66102d18484610ae1565b6109a3565b6000600a6101000a81548160ff0219169083151502179055506103006102fb84610b78565b6109a3565b6000600b6101000a81548160ff02191690831515021790555061032b6103268484610c16565b6109a3565b6000600c6101000a81548160ff0219169083151502179055506103566103518484610cad565b6109a3565b6000600d6101000a81548160ff02191690831515021790555061038261037d828585610d44565b6109a3565b6000600e6101000a81548160ff02191690831515021790555060006103a684610dde565b90506103b96103b482610e7c565b6109a3565b6000600f6101000a81548160ff02191690831515021790555050505050505050565b60008060009054906101000a900467ffffffffffffffff16905090565b60005b82811015610480578160ff166001901b8482600a811061041e5761041d611bc6565b5b602002015167ffffffffffffffff161061046d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161046490611c78565b60405180910390fd5b808061047890611cc7565b9150506103fb565b50505050565b600080600a9050610495611799565b60005b8281101561054957856104ef576104b56104b0610f1a565b610fb4565b60ff168282600a81106104cb576104ca611bc6565b5b602002019067ffffffffffffffff16908167ffffffffffffffff1681525050610536565b6105006104fb86611052565b610fb4565b60ff168282600a811061051657610515611bc6565b5b602002019067ffffffffffffffff16908167ffffffffffffffff16815250505b808061054190611cc7565b915050610498565b50806000600a811061055e5761055d611bc6565b5b60200201516000806101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550841561059c5761059b8183866103f8565b5b6105a681836110f0565b846105b057600391505b60005b82811015610666578561060b576105d06105cb6111b9565b611253565b61ffff168282600a81106105e7576105e6611bc6565b5b602002019067ffffffffffffffff16908167ffffffffffffffff1681525050610653565b61061c610617866112f1565b611253565b61ffff168282600a811061063357610632611bc6565b5b602002019067ffffffffffffffff16908167ffffffffffffffff16815250505b808061065e90611cc7565b9150506105b3565b508415610679576106788183866103f8565b5b61068381836110f0565b8461068d57600391505b60005b8281101561074757856106ea576106ad6106a861138f565b611429565b63ffffffff168282600a81106106c6576106c5611bc6565b5b602002019067ffffffffffffffff16908167ffffffffffffffff1681525050610734565b6106fb6106f6866114c7565b611429565b63ffffffff168282600a811061071457610713611bc6565b5b602002019067ffffffffffffffff16908167ffffffffffffffff16815250505b808061073f90611cc7565b915050610690565b50841561075a576107598183866103f8565b5b61076481836110f0565b8461076e57600291505b60005b8281101561081c57856107c55761078e610789611565565b6115fe565b8282600a81106107a1576107a0611bc6565b5b602002019067ffffffffffffffff16908167ffffffffffffffff1681525050610809565b6107d66107d18661169b565b6115fe565b8282600a81106107e9576107e8611bc6565b5b602002019067ffffffffffffffff16908167ffffffffffffffff16815250505b808061081490611cc7565b915050610771565b50841561082f5761082e8183866103f8565b5b61083981836110f0565b60008054906101000a900467ffffffffffffffff169250505092915050565b6000808261086757600061086a565b60015b60ff169050606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b60600060048111156108a05761089f611d0f565b5b60f81b836040518363ffffffff1660e01b81526004016108c1929190611d88565b6020604051808303816000875af11580156108e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109049190611dc6565b915050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663fe9c73d16109386000806000611738565b85856040518463ffffffff1660e01b815260040161095893929190611e2e565b6020604051808303816000875af1158015610977573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099b9190611dc6565b905092915050565b600080606473ffffffffffffffffffffffffffffffffffffffff16630cfed561600060048111156109d7576109d6611d0f565b5b60f81b856040518363ffffffff1660e01b81526004016109f8929190611d88565b6020604051808303816000875af1158015610a17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3b9190611dc6565b90506000811415915050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663fb7da35f610a766000806000611738565b85856040518463ffffffff1660e01b8152600401610a9693929190611e2e565b6020604051808303816000875af1158015610ab5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad99190611dc6565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16636f962e2c610b0d6000806000611738565b85856040518463ffffffff1660e01b8152600401610b2d93929190611e2e565b6020604051808303816000875af1158015610b4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b709190611dc6565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16631d79e49a60006004811115610bab57610baa611d0f565b5b60f81b846040518363ffffffff1660e01b8152600401610bcc929190611d88565b6020604051808303816000875af1158015610beb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0f9190611dc6565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff16637c12a1eb610c426000806000611738565b85856040518463ffffffff1660e01b8152600401610c6293929190611e2e565b6020604051808303816000875af1158015610c81573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca59190611dc6565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166342094c56610cd96000806000611738565b85856040518463ffffffff1660e01b8152600401610cf993929190611e2e565b6020604051808303816000875af1158015610d18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d3c9190611dc6565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166320cc408d610d706000806000611738565b8686866040518563ffffffff1660e01b8152600401610d929493929190611e65565b6020604051808303816000875af1158015610db1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd59190611dc6565b90509392505050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663c50c9c0260006004811115610e1157610e10611d0f565b5b60f81b846040518363ffffffff1660e01b8152600401610e32929190611d88565b6020604051808303816000875af1158015610e51573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e759190611dc6565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d2c135e560006004811115610eaf57610eae611d0f565b5b60f81b846040518363ffffffff1660e01b8152600401610ed0929190611d88565b6020604051808303816000875af1158015610eef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f139190611dc6565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663134eb89060016004811115610f4d57610f4c611d0f565b5b60f81b6040518263ffffffff1660e01b8152600401610f6c9190611eaa565b6020604051808303816000875af1158015610f8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610faf9190611dc6565b905090565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed56160016004811115610fe757610fe6611d0f565b5b60f81b846040518363ffffffff1660e01b8152600401611008929190611d88565b6020604051808303816000875af1158015611027573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104b9190611dc6565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663072d17fc6001600481111561108557611084611d0f565b5b60f81b846040518363ffffffff1660e01b81526004016110a6929190611ed4565b6020604051808303816000875af11580156110c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e99190611dc6565b9050919050565b6000600190506000600190505b82811015611171578381600a811061111857611117611bc6565b5b602002015167ffffffffffffffff16846000600a811061113b5761113a611bc6565b5b602002015167ffffffffffffffff160361115e57818061115a90611cc7565b9250505b808061116990611cc7565b9150506110fd565b508181036111b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ab90611f6f565b60405180910390fd5b505050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663134eb890600260048111156111ec576111eb611d0f565b5b60f81b6040518263ffffffff1660e01b815260040161120b9190611eaa565b6020604051808303816000875af115801561122a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124e9190611dc6565b905090565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed5616002600481111561128657611285611d0f565b5b60f81b846040518363ffffffff1660e01b81526004016112a7929190611d88565b6020604051808303816000875af11580156112c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ea9190611dc6565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663072d17fc6002600481111561132457611323611d0f565b5b60f81b846040518363ffffffff1660e01b8152600401611345929190611ed4565b6020604051808303816000875af1158015611364573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113889190611dc6565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663134eb890600360048111156113c2576113c1611d0f565b5b60f81b6040518263ffffffff1660e01b81526004016113e19190611eaa565b6020604051808303816000875af1158015611400573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114249190611dc6565b905090565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed5616003600481111561145c5761145b611d0f565b5b60f81b846040518363ffffffff1660e01b815260040161147d929190611d88565b6020604051808303816000875af115801561149c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114c09190611dc6565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663072d17fc600360048111156114fa576114f9611d0f565b5b60f81b846040518363ffffffff1660e01b815260040161151b929190611ed4565b6020604051808303816000875af115801561153a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061155e9190611dc6565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663134eb89060048081111561159757611596611d0f565b5b60f81b6040518263ffffffff1660e01b81526004016115b69190611eaa565b6020604051808303816000875af11580156115d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f99190611dc6565b905090565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed5616004808111156116305761162f611d0f565b5b60f81b846040518363ffffffff1660e01b8152600401611651929190611d88565b6020604051808303816000875af1158015611670573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116949190611dc6565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663072d17fc6004808111156116cd576116cc611d0f565b5b60f81b846040518363ffffffff1660e01b81526004016116ee929190611ed4565b6020604051808303816000875af115801561170d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117319190611dc6565b9050919050565b600081600281111561174d5761174c611d0f565b5b60ff16600884600481111561176557611764611d0f565b5b61ffff16901b61ffff16601086600481111561178457611783611d0f565b5b62ffffff16901b171760e81b90509392505050565b604051806101400160405280600a90602082028036833780820191505090505090565b60008115159050919050565b6117d1816117bc565b82525050565b6000610100820190506117ed600083018b6117c8565b6117fa602083018a6117c8565b61180760408301896117c8565b61181460608301886117c8565b61182160808301876117c8565b61182e60a08301866117c8565b61183b60c08301856117c8565b61184860e08301846117c8565b9998505050505050505050565b6000604051905090565b600080fd5b600060ff82169050919050565b61187a81611864565b811461188557600080fd5b50565b60008135905061189781611871565b92915050565b6000602082840312156118b3576118b261185f565b5b60006118c184828501611888565b91505092915050565b600067ffffffffffffffff82169050919050565b6118e7816118ca565b82525050565b600060208201905061190260008301846118de565b92915050565b611911816117bc565b811461191c57600080fd5b50565b60008135905061192e81611908565b92915050565b60008060006060848603121561194d5761194c61185f565b5b600061195b8682870161191f565b935050602061196c8682870161191f565b925050604061197d8682870161191f565b9150509250925092565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6119d58261198c565b810181811067ffffffffffffffff821117156119f4576119f361199d565b5b80604052505050565b6000611a07611855565b9050611a1382826119cc565b919050565b600067ffffffffffffffff821115611a3357611a3261199d565b5b602082029050919050565b600080fd5b611a4c816118ca565b8114611a5757600080fd5b50565b600081359050611a6981611a43565b92915050565b6000611a82611a7d84611a18565b6119fd565b90508060208402830185811115611a9c57611a9b611a3e565b5b835b81811015611ac55780611ab18882611a5a565b845260208401935050602081019050611a9e565b5050509392505050565b600082601f830112611ae457611ae3611987565b5b600a611af1848285611a6f565b91505092915050565b6000819050919050565b611b0d81611afa565b8114611b1857600080fd5b50565b600081359050611b2a81611b04565b92915050565b60008060006101808486031215611b4a57611b4961185f565b5b6000611b5886828701611acf565b935050610140611b6a86828701611b1b565b925050610160611b7c86828701611888565b9150509250925092565b60008060408385031215611b9d57611b9c61185f565b5b6000611bab8582860161191f565b9250506020611bbc85828601611888565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082825260208201905092915050565b7f72616e646f6d546573743a2072616e646f6d206661696c65642c206f7574206f60008201527f6620626f756e6473000000000000000000000000000000000000000000000000602082015250565b6000611c62602883611bf5565b9150611c6d82611c06565b604082019050919050565b60006020820190508181036000830152611c9181611c55565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611cd282611afa565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611d0457611d03611c98565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b611d7381611d3e565b82525050565b611d8281611afa565b82525050565b6000604082019050611d9d6000830185611d6a565b611daa6020830184611d79565b9392505050565b600081519050611dc081611b04565b92915050565b600060208284031215611ddc57611ddb61185f565b5b6000611dea84828501611db1565b91505092915050565b60007fffffff000000000000000000000000000000000000000000000000000000000082169050919050565b611e2881611df3565b82525050565b6000606082019050611e436000830186611e1f565b611e506020830185611d79565b611e5d6040830184611d79565b949350505050565b6000608082019050611e7a6000830187611e1f565b611e876020830186611d79565b611e946040830185611d79565b611ea16060830184611d79565b95945050505050565b6000602082019050611ebf6000830184611d6a565b92915050565b611ece81611864565b82525050565b6000604082019050611ee96000830185611d6a565b611ef66020830184611ec5565b9392505050565b7f72616e646f6d546573743a2072616e646f6d206661696c65642c20616c6c207660008201527f616c75657320617265207468652073616d650000000000000000000000000000602082015250565b6000611f59603283611bf5565b9150611f6482611efd565b604082019050919050565b60006020820190508181036000830152611f8881611f4c565b905091905056fea2646970667358221220f20996b8e6f5adfd164a85027d33fe534d931940f9c4a8e8896c3eb452bc4cbd64736f6c63430008140033";
185
+
186
+ type Miscellaneous1TestsContractConstructorParams =
187
+ | [signer?: Signer]
188
+ | ConstructorParameters<typeof ContractFactory>;
189
+
190
+ const isSuperArgs = (
191
+ xs: Miscellaneous1TestsContractConstructorParams
192
+ ): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;
193
+
194
+ export class Miscellaneous1TestsContract__factory extends ContractFactory {
195
+ constructor(...args: Miscellaneous1TestsContractConstructorParams) {
196
+ if (isSuperArgs(args)) {
197
+ super(...args);
198
+ } else {
199
+ super(_abi, _bytecode, args[0]);
200
+ }
201
+ }
202
+
203
+ override getDeployTransaction(
204
+ overrides?: NonPayableOverrides & { from?: string }
205
+ ): Promise<ContractDeployTransaction> {
206
+ return super.getDeployTransaction(overrides || {});
207
+ }
208
+ override deploy(overrides?: NonPayableOverrides & { from?: string }) {
209
+ return super.deploy(overrides || {}) as Promise<
210
+ Miscellaneous1TestsContract & {
211
+ deploymentTransaction(): ContractTransactionResponse;
212
+ }
213
+ >;
214
+ }
215
+ override connect(
216
+ runner: ContractRunner | null
217
+ ): Miscellaneous1TestsContract__factory {
218
+ return super.connect(runner) as Miscellaneous1TestsContract__factory;
219
+ }
220
+
221
+ static readonly bytecode = _bytecode;
222
+ static readonly abi = _abi;
223
+ static createInterface(): Miscellaneous1TestsContractInterface {
224
+ return new Interface(_abi) as Miscellaneous1TestsContractInterface;
225
+ }
226
+ static connect(
227
+ address: string,
228
+ runner?: ContractRunner | null
229
+ ): Miscellaneous1TestsContract {
230
+ return new Contract(
231
+ address,
232
+ _abi,
233
+ runner
234
+ ) as unknown as Miscellaneous1TestsContract;
235
+ }
236
+ }