@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,374 @@
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
+ ShiftTestsContract,
14
+ ShiftTestsContractInterface,
15
+ } from "../../../../../contracts/mocks/utils/mpc/ShiftTestsContract";
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 ShiftTestsContract.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 ShiftTestsContract.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 ShiftTestsContract.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: "getAllShiftResults",
159
+ outputs: [
160
+ {
161
+ internalType: "uint8",
162
+ name: "",
163
+ type: "uint8",
164
+ },
165
+ {
166
+ internalType: "uint16",
167
+ name: "",
168
+ type: "uint16",
169
+ },
170
+ {
171
+ internalType: "uint32",
172
+ name: "",
173
+ type: "uint32",
174
+ },
175
+ {
176
+ internalType: "uint64",
177
+ name: "",
178
+ type: "uint64",
179
+ },
180
+ ],
181
+ stateMutability: "view",
182
+ type: "function",
183
+ },
184
+ {
185
+ inputs: [],
186
+ name: "getResult",
187
+ outputs: [
188
+ {
189
+ internalType: "uint8",
190
+ name: "",
191
+ type: "uint8",
192
+ },
193
+ ],
194
+ stateMutability: "view",
195
+ type: "function",
196
+ },
197
+ {
198
+ inputs: [
199
+ {
200
+ components: [
201
+ {
202
+ internalType: "gtUint8",
203
+ name: "a8_s",
204
+ type: "uint256",
205
+ },
206
+ {
207
+ internalType: "gtUint8",
208
+ name: "b8_s",
209
+ type: "uint256",
210
+ },
211
+ {
212
+ internalType: "gtUint16",
213
+ name: "a16_s",
214
+ type: "uint256",
215
+ },
216
+ {
217
+ internalType: "gtUint16",
218
+ name: "b16_s",
219
+ type: "uint256",
220
+ },
221
+ {
222
+ internalType: "gtUint32",
223
+ name: "a32_s",
224
+ type: "uint256",
225
+ },
226
+ {
227
+ internalType: "gtUint32",
228
+ name: "b32_s",
229
+ type: "uint256",
230
+ },
231
+ {
232
+ internalType: "gtUint64",
233
+ name: "a64_s",
234
+ type: "uint256",
235
+ },
236
+ {
237
+ internalType: "gtUint64",
238
+ name: "b64_s",
239
+ type: "uint256",
240
+ },
241
+ ],
242
+ internalType: "struct ShiftTestsContract.AllGTCastingValues",
243
+ name: "castingValues",
244
+ type: "tuple",
245
+ },
246
+ {
247
+ internalType: "uint8",
248
+ name: "a",
249
+ type: "uint8",
250
+ },
251
+ {
252
+ internalType: "uint8",
253
+ name: "b",
254
+ type: "uint8",
255
+ },
256
+ ],
257
+ name: "setPublicValues",
258
+ outputs: [],
259
+ stateMutability: "nonpayable",
260
+ type: "function",
261
+ },
262
+ {
263
+ inputs: [
264
+ {
265
+ internalType: "uint8",
266
+ name: "a",
267
+ type: "uint8",
268
+ },
269
+ {
270
+ internalType: "uint8",
271
+ name: "b",
272
+ type: "uint8",
273
+ },
274
+ ],
275
+ name: "shlTest",
276
+ outputs: [
277
+ {
278
+ internalType: "uint8",
279
+ name: "",
280
+ type: "uint8",
281
+ },
282
+ {
283
+ internalType: "uint16",
284
+ name: "",
285
+ type: "uint16",
286
+ },
287
+ {
288
+ internalType: "uint32",
289
+ name: "",
290
+ type: "uint32",
291
+ },
292
+ {
293
+ internalType: "uint64",
294
+ name: "",
295
+ type: "uint64",
296
+ },
297
+ ],
298
+ stateMutability: "nonpayable",
299
+ type: "function",
300
+ },
301
+ {
302
+ inputs: [
303
+ {
304
+ internalType: "uint8",
305
+ name: "a",
306
+ type: "uint8",
307
+ },
308
+ {
309
+ internalType: "uint8",
310
+ name: "b",
311
+ type: "uint8",
312
+ },
313
+ ],
314
+ name: "shrTest",
315
+ outputs: [
316
+ {
317
+ internalType: "uint8",
318
+ name: "",
319
+ type: "uint8",
320
+ },
321
+ ],
322
+ stateMutability: "nonpayable",
323
+ type: "function",
324
+ },
325
+ ] as const;
326
+
327
+ const _bytecode =
328
+ "0x608060405234801561001057600080fd5b506142b9806100206000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063d2becd381161005b578063d2becd3814610150578063de29278914610171578063ebb571fd1461018f578063ee49a6ea146101ab57610088565b806308e9d12a1461008d5780632e544aa0146100c057806380f937bc146100f0578063acb3816914610120575b600080fd5b6100a760048036038101906100a29190613484565b6101db565b6040516100b79493929190613532565b60405180910390f35b6100da60048036038101906100d591906136a2565b610785565b6040516100e791906136cf565b60405180910390f35b61010a600480360381019061010591906137ca565b610815565b60405161011791906137f7565b60405180910390f35b61013a600480360381019061013591906138ca565b610969565b60405161014791906138f7565b60405180910390f35b610158610a47565b6040516101689493929190613532565b60405180910390f35b610179610aa4565b6040516101869190613912565b60405180910390f35b6101a960048036038101906101a49190613a23565b610aba565b005b6101c560048036038101906101c09190613484565b610b61565b6040516101d29190613912565b60405180910390f35b6000806000806101e961336a565b6101f16133af565b6101f96133d0565b6102016133ff565b61020c848b8b610aba565b61022661022185600001518660200151611140565b6111d7565b6000806101000a81548160ff021916908360ff16021790555061025184604001518560600151611275565b83600001818152505061026c8460000151856060015161130c565b836020018181525050610287846040015185602001516113a4565b83604001818152505061029983610785565b600060016101000a81548161ffff021916908361ffff1602179055506102c784608001518560a0015161143c565b8260000181815250506102e284600001518560a001516114d3565b8260200181815250506102fd8460800151856020015161156b565b82604001818152505061031884604001518560a00151611603565b8260600181815250506103338460800151856060015161169b565b82608001818152505061034582610969565b600060036101000a81548163ffffffff021916908363ffffffff1602179055506103778460c001518560e00151611733565b81600001818152505061039284600001518560e001516117ca565b8160200181815250506103ad8460c001518560200151611862565b8160400181815250506103c884604001518560e001516118fa565b8160600181815250506103e38460c001518560600151611992565b8160800181815250506103fe84608001518560e00151611a2a565b8160a00181815250506104198460c001518560a00151611ac2565b8160c001818152505061042b81610815565b600060076101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506104696104648b8660200151611b5a565b6111d7565b60ff1660008054906101000a900460ff1660ff161480156104b1575061049b61049685600001518b611bf4565b6111d7565b60ff1660008054906101000a900460ff1660ff16145b6104f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104e790613afc565b60405180910390fd5b6105096105048b60ff168660600151611c8e565b611d29565b61ffff16600060019054906101000a900461ffff1661ffff1614801561055e575061054361053e85604001518b60ff16611dc7565b611d29565b61ffff16600060019054906101000a900461ffff1661ffff16145b61059d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161059490613b8e565b60405180910390fd5b6105b66105b18b60ff168660a00151611e62565b611eff565b63ffffffff16600060039054906101000a900463ffffffff1663ffffffff1614801561061757506105f66105f185608001518b60ff16611f9d565b611eff565b63ffffffff16600060039054906101000a900463ffffffff1663ffffffff16145b610656576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064d90613c20565b60405180910390fd5b61066f61066a8b60ff168660e0015161203a565b6120db565b67ffffffffffffffff16600060079054906101000a900467ffffffffffffffff1667ffffffffffffffff161480156106e857506106bb6106b68560c001518b60ff16612178565b6120db565b67ffffffffffffffff16600060079054906101000a900467ffffffffffffffff1667ffffffffffffffff16145b610727576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071e90613cb2565b60405180910390fd5b60008054906101000a900460ff16600060019054906101000a900461ffff16600060039054906101000a900463ffffffff16600060079054906101000a900467ffffffffffffffff1697509750975097505050505092959194509250565b6000806107958360000151611d29565b90506107a48360200151611d29565b61ffff168161ffff161480156107cd57506107c28360400151611d29565b61ffff168161ffff16145b61080c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080390613d6a565b60405180910390fd5b80915050919050565b60008061082583600001516120db565b905061083483602001516120db565b67ffffffffffffffff168167ffffffffffffffff16148015610875575061085e83604001516120db565b67ffffffffffffffff168167ffffffffffffffff16145b80156108a0575061088983608001516120db565b67ffffffffffffffff168167ffffffffffffffff16145b80156108cb57506108b483606001516120db565b67ffffffffffffffff168167ffffffffffffffff16145b80156108f657506108df8360c001516120db565b67ffffffffffffffff168167ffffffffffffffff16145b8015610921575061090a8360a001516120db565b67ffffffffffffffff168167ffffffffffffffff16145b610960576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095790613d6a565b60405180910390fd5b80915050919050565b6000806109798360000151611eff565b90506109888360200151611eff565b63ffffffff168163ffffffff161480156109b957506109aa8360400151611eff565b63ffffffff168163ffffffff16145b80156109dc57506109cd8360800151611eff565b63ffffffff168163ffffffff16145b80156109ff57506109f08360600151611eff565b63ffffffff168163ffffffff16145b610a3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3590613d6a565b60405180910390fd5b80915050919050565b60008060008060008054906101000a900460ff16600060019054906101000a900461ffff16600060039054906101000a900463ffffffff16600060079054906101000a900467ffffffffffffffff16935093509350935090919293565b60008060009054906101000a900460ff16905090565b610ac382612219565b836000018181525050610ad581612219565b836020018181525050610aea8260ff166122ba565b836040018181525050610aff8160ff166122ba565b836060018181525050610b148260ff1661235c565b836080018181525050610b298160ff1661235c565b8360a0018181525050610b3e8260ff16612400565b8360c0018181525050610b538160ff16612400565b8360e0018181525050505050565b6000610b6b61336a565b610b736133af565b610b7b6133d0565b610b836133ff565b610b8e848888610aba565b610ba8610ba3856000015186602001516124a7565b6111d7565b6000806101000a81548160ff021916908360ff160217905550610bd38460400151856060015161253e565b836000018181525050610bee846000015185606001516125d5565b836020018181525050610c098460400151856020015161266d565b8360400181815250506000610c1d84610785565b905060008054906101000a900460ff1660ff168161ffff1614610c75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6c90613dd6565b60405180910390fd5b610c8785608001518660a00151612705565b836000018181525050610ca285600001518660a0015161279c565b836020018181525050610cbd85608001518660200151612834565b836040018181525050610cd885604001518660a001516128cc565b836060018181525050610cf385608001518660600151612964565b8360800181815250506000610d0784610969565b90508063ffffffff1660008054906101000a900460ff1660ff1614610d61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5890613e42565b60405180910390fd5b610d738660c001518760e001516129fc565b836000018181525050610d8e86600001518760e00151612a93565b836020018181525050610da98660c001518760200151612b2b565b836040018181525050610dc486604001518760e00151612bc3565b836060018181525050610ddf8660c001518760600151612c5b565b836080018181525050610dfa86608001518760e00151612cf3565b8360a0018181525050610e158660c001518760a00151612d8b565b8360c00181815250506000610e2984610815565b90508067ffffffffffffffff1660008054906101000a900460ff1660ff1614610e87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7e90613eae565b60405180910390fd5b610e9d610e988b8960200151612e23565b6111d7565b60ff1660008054906101000a900460ff1660ff16148015610ee55750610ecf610eca88600001518b612ebd565b6111d7565b60ff1660008054906101000a900460ff1660ff16145b610f24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1b90613f40565b60405180910390fd5b610f3d610f388b60ff168960600151612f57565b611d29565b61ffff1660008054906101000a900460ff1660ff16148015610f8a5750610f73610f6e88604001518b60ff16612ff2565b611d29565b61ffff1660008054906101000a900460ff1660ff16145b610fc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc090613fd2565b60405180910390fd5b610fe2610fdd8b60ff168960a0015161308d565b611eff565b63ffffffff1660008054906101000a900460ff1660ff16148015611033575061101a61101588608001518b60ff1661312a565b611eff565b63ffffffff1660008054906101000a900460ff1660ff16145b611072576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106990614064565b60405180910390fd5b61108b6110868b60ff168960e001516131c7565b6120db565b67ffffffffffffffff1660008054906101000a900460ff1660ff161480156110e457506110c76110c28860c001518b60ff16613268565b6120db565b67ffffffffffffffff1660008054906101000a900460ff1660ff16145b611123576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111a906140f6565b60405180910390fd5b60008054906101000a900460ff1697505050505050505092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16631135f71a61116c6001806000613309565b85856040518463ffffffff1660e01b815260040161118c93929190614160565b6020604051808303816000875af11580156111ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111cf91906141c3565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed5616001600481111561120a576112096141f0565b5b60f81b846040518363ffffffff1660e01b815260040161122b92919061425a565b6020604051808303816000875af115801561124a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061126e91906141c3565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff16631135f71a6112a16002806000613309565b85856040518463ffffffff1660e01b81526004016112c193929190614160565b6020604051808303816000875af11580156112e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130491906141c3565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16631135f71a611339600160026000613309565b85856040518463ffffffff1660e01b815260040161135993929190614160565b6020604051808303816000875af1158015611378573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061139c91906141c3565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16631135f71a6113d1600260016000613309565b85856040518463ffffffff1660e01b81526004016113f193929190614160565b6020604051808303816000875af1158015611410573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061143491906141c3565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16631135f71a6114686003806000613309565b85856040518463ffffffff1660e01b815260040161148893929190614160565b6020604051808303816000875af11580156114a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114cb91906141c3565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16631135f71a611500600160036000613309565b85856040518463ffffffff1660e01b815260040161152093929190614160565b6020604051808303816000875af115801561153f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061156391906141c3565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16631135f71a611598600360016000613309565b85856040518463ffffffff1660e01b81526004016115b893929190614160565b6020604051808303816000875af11580156115d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115fb91906141c3565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16631135f71a611630600260036000613309565b85856040518463ffffffff1660e01b815260040161165093929190614160565b6020604051808303816000875af115801561166f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061169391906141c3565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16631135f71a6116c8600360026000613309565b85856040518463ffffffff1660e01b81526004016116e893929190614160565b6020604051808303816000875af1158015611707573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061172b91906141c3565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16631135f71a61175f6004806000613309565b85856040518463ffffffff1660e01b815260040161177f93929190614160565b6020604051808303816000875af115801561179e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c291906141c3565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16631135f71a6117f7600160046000613309565b85856040518463ffffffff1660e01b815260040161181793929190614160565b6020604051808303816000875af1158015611836573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061185a91906141c3565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16631135f71a61188f600460016000613309565b85856040518463ffffffff1660e01b81526004016118af93929190614160565b6020604051808303816000875af11580156118ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118f291906141c3565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16631135f71a611927600260046000613309565b85856040518463ffffffff1660e01b815260040161194793929190614160565b6020604051808303816000875af1158015611966573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061198a91906141c3565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16631135f71a6119bf600460026000613309565b85856040518463ffffffff1660e01b81526004016119df93929190614160565b6020604051808303816000875af11580156119fe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a2291906141c3565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16631135f71a611a57600360046000613309565b85856040518463ffffffff1660e01b8152600401611a7793929190614160565b6020604051808303816000875af1158015611a96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aba91906141c3565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16631135f71a611aef600460036000613309565b85856040518463ffffffff1660e01b8152600401611b0f93929190614160565b6020604051808303816000875af1158015611b2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b5291906141c3565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16631135f71a611b866001806001613309565b8560ff16856040518463ffffffff1660e01b8152600401611ba993929190614160565b6020604051808303816000875af1158015611bc8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bec91906141c3565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16631135f71a611c206001806002613309565b858560ff166040518463ffffffff1660e01b8152600401611c4393929190614160565b6020604051808303816000875af1158015611c62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c8691906141c3565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16631135f71a611cba6002806001613309565b8561ffff16856040518463ffffffff1660e01b8152600401611cde93929190614160565b6020604051808303816000875af1158015611cfd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2191906141c3565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed56160026004811115611d5c57611d5b6141f0565b5b60f81b846040518363ffffffff1660e01b8152600401611d7d92919061425a565b6020604051808303816000875af1158015611d9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dc091906141c3565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff16631135f71a611df36001806002613309565b858561ffff166040518463ffffffff1660e01b8152600401611e1793929190614160565b6020604051808303816000875af1158015611e36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e5a91906141c3565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16631135f71a611e8e6003806001613309565b8563ffffffff16856040518463ffffffff1660e01b8152600401611eb493929190614160565b6020604051808303816000875af1158015611ed3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ef791906141c3565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed56160036004811115611f3257611f316141f0565b5b60f81b846040518363ffffffff1660e01b8152600401611f5392919061425a565b6020604051808303816000875af1158015611f72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f9691906141c3565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff16631135f71a611fc96003806002613309565b858563ffffffff166040518463ffffffff1660e01b8152600401611fef93929190614160565b6020604051808303816000875af115801561200e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061203291906141c3565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16631135f71a6120666004806001613309565b8567ffffffffffffffff16856040518463ffffffff1660e01b815260040161209093929190614160565b6020604051808303816000875af11580156120af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120d391906141c3565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed56160048081111561210d5761210c6141f0565b5b60f81b846040518363ffffffff1660e01b815260040161212e92919061425a565b6020604051808303816000875af115801561214d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061217191906141c3565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff16631135f71a6121a46004806002613309565b858567ffffffffffffffff166040518463ffffffff1660e01b81526004016121ce93929190614160565b6020604051808303816000875af11580156121ed573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061221191906141c3565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b606001600481111561224c5761224b6141f0565b5b60f81b8460ff166040518363ffffffff1660e01b815260040161227092919061425a565b6020604051808303816000875af115801561228f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122b391906141c3565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b60600260048111156122ed576122ec6141f0565b5b60f81b8461ffff166040518363ffffffff1660e01b815260040161231292919061425a565b6020604051808303816000875af1158015612331573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061235591906141c3565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b606003600481111561238f5761238e6141f0565b5b60f81b8463ffffffff166040518363ffffffff1660e01b81526004016123b692919061425a565b6020604051808303816000875af11580156123d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123f991906141c3565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b60600480811115612432576124316141f0565b5b60f81b8467ffffffffffffffff166040518363ffffffff1660e01b815260040161245d92919061425a565b6020604051808303816000875af115801561247c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124a091906141c3565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff166339bd1d8d6124d36001806000613309565b85856040518463ffffffff1660e01b81526004016124f393929190614160565b6020604051808303816000875af1158015612512573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061253691906141c3565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166339bd1d8d61256a6002806000613309565b85856040518463ffffffff1660e01b815260040161258a93929190614160565b6020604051808303816000875af11580156125a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125cd91906141c3565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166339bd1d8d612602600160026000613309565b85856040518463ffffffff1660e01b815260040161262293929190614160565b6020604051808303816000875af1158015612641573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061266591906141c3565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166339bd1d8d61269a600260016000613309565b85856040518463ffffffff1660e01b81526004016126ba93929190614160565b6020604051808303816000875af11580156126d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126fd91906141c3565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166339bd1d8d6127316003806000613309565b85856040518463ffffffff1660e01b815260040161275193929190614160565b6020604051808303816000875af1158015612770573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061279491906141c3565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166339bd1d8d6127c9600160036000613309565b85856040518463ffffffff1660e01b81526004016127e993929190614160565b6020604051808303816000875af1158015612808573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061282c91906141c3565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166339bd1d8d612861600360016000613309565b85856040518463ffffffff1660e01b815260040161288193929190614160565b6020604051808303816000875af11580156128a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128c491906141c3565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166339bd1d8d6128f9600260036000613309565b85856040518463ffffffff1660e01b815260040161291993929190614160565b6020604051808303816000875af1158015612938573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061295c91906141c3565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166339bd1d8d612991600360026000613309565b85856040518463ffffffff1660e01b81526004016129b193929190614160565b6020604051808303816000875af11580156129d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129f491906141c3565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166339bd1d8d612a286004806000613309565b85856040518463ffffffff1660e01b8152600401612a4893929190614160565b6020604051808303816000875af1158015612a67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a8b91906141c3565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166339bd1d8d612ac0600160046000613309565b85856040518463ffffffff1660e01b8152600401612ae093929190614160565b6020604051808303816000875af1158015612aff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b2391906141c3565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166339bd1d8d612b58600460016000613309565b85856040518463ffffffff1660e01b8152600401612b7893929190614160565b6020604051808303816000875af1158015612b97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bbb91906141c3565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166339bd1d8d612bf0600260046000613309565b85856040518463ffffffff1660e01b8152600401612c1093929190614160565b6020604051808303816000875af1158015612c2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c5391906141c3565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166339bd1d8d612c88600460026000613309565b85856040518463ffffffff1660e01b8152600401612ca893929190614160565b6020604051808303816000875af1158015612cc7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ceb91906141c3565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166339bd1d8d612d20600360046000613309565b85856040518463ffffffff1660e01b8152600401612d4093929190614160565b6020604051808303816000875af1158015612d5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d8391906141c3565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166339bd1d8d612db8600460036000613309565b85856040518463ffffffff1660e01b8152600401612dd893929190614160565b6020604051808303816000875af1158015612df7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e1b91906141c3565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166339bd1d8d612e4f6001806001613309565b8560ff16856040518463ffffffff1660e01b8152600401612e7293929190614160565b6020604051808303816000875af1158015612e91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612eb591906141c3565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166339bd1d8d612ee96001806002613309565b858560ff166040518463ffffffff1660e01b8152600401612f0c93929190614160565b6020604051808303816000875af1158015612f2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f4f91906141c3565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166339bd1d8d612f836002806001613309565b8561ffff16856040518463ffffffff1660e01b8152600401612fa793929190614160565b6020604051808303816000875af1158015612fc6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fea91906141c3565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166339bd1d8d61301e6001806002613309565b858561ffff166040518463ffffffff1660e01b815260040161304293929190614160565b6020604051808303816000875af1158015613061573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061308591906141c3565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166339bd1d8d6130b96003806001613309565b8563ffffffff16856040518463ffffffff1660e01b81526004016130df93929190614160565b6020604051808303816000875af11580156130fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061312291906141c3565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166339bd1d8d6131566003806002613309565b858563ffffffff166040518463ffffffff1660e01b815260040161317c93929190614160565b6020604051808303816000875af115801561319b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131bf91906141c3565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166339bd1d8d6131f36004806001613309565b8567ffffffffffffffff16856040518463ffffffff1660e01b815260040161321d93929190614160565b6020604051808303816000875af115801561323c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061326091906141c3565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166339bd1d8d6132946004806002613309565b858567ffffffffffffffff166040518463ffffffff1660e01b81526004016132be93929190614160565b6020604051808303816000875af11580156132dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061330191906141c3565b905092915050565b600081600281111561331e5761331d6141f0565b5b60ff166008846004811115613336576133356141f0565b5b61ffff16901b61ffff166010866004811115613355576133546141f0565b5b62ffffff16901b171760e81b90509392505050565b60405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60405180606001604052806000815260200160008152602001600081525090565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6040518060e00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6000604051905090565b600080fd5b600060ff82169050919050565b6134618161344b565b811461346c57600080fd5b50565b60008135905061347e81613458565b92915050565b6000806040838503121561349b5761349a613446565b5b60006134a98582860161346f565b92505060206134ba8582860161346f565b9150509250929050565b6134cd8161344b565b82525050565b600061ffff82169050919050565b6134ea816134d3565b82525050565b600063ffffffff82169050919050565b613509816134f0565b82525050565b600067ffffffffffffffff82169050919050565b61352c8161350f565b82525050565b600060808201905061354760008301876134c4565b61355460208301866134e1565b6135616040830185613500565b61356e6060830184613523565b95945050505050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6135c58261357c565b810181811067ffffffffffffffff821117156135e4576135e361358d565b5b80604052505050565b60006135f761343c565b905061360382826135bc565b919050565b6000819050919050565b61361b81613608565b811461362657600080fd5b50565b60008135905061363881613612565b92915050565b60006060828403121561365457613653613577565b5b61365e60606135ed565b9050600061366e84828501613629565b600083015250602061368284828501613629565b602083015250604061369684828501613629565b60408301525092915050565b6000606082840312156136b8576136b7613446565b5b60006136c68482850161363e565b91505092915050565b60006020820190506136e460008301846134e1565b92915050565b6136f381613608565b81146136fe57600080fd5b50565b600081359050613710816136ea565b92915050565b600060e0828403121561372c5761372b613577565b5b61373660e06135ed565b9050600061374684828501613701565b600083015250602061375a84828501613701565b602083015250604061376e84828501613701565b604083015250606061378284828501613701565b606083015250608061379684828501613701565b60808301525060a06137aa84828501613701565b60a08301525060c06137be84828501613701565b60c08301525092915050565b600060e082840312156137e0576137df613446565b5b60006137ee84828501613716565b91505092915050565b600060208201905061380c6000830184613523565b92915050565b61381b81613608565b811461382657600080fd5b50565b60008135905061383881613812565b92915050565b600060a0828403121561385457613853613577565b5b61385e60a06135ed565b9050600061386e84828501613829565b600083015250602061388284828501613829565b602083015250604061389684828501613829565b60408301525060606138aa84828501613829565b60608301525060806138be84828501613829565b60808301525092915050565b600060a082840312156138e0576138df613446565b5b60006138ee8482850161383e565b91505092915050565b600060208201905061390c6000830184613500565b92915050565b600060208201905061392760008301846134c4565b92915050565b61393681613608565b811461394157600080fd5b50565b6000813590506139538161392d565b92915050565b600061010082840312156139705761396f613577565b5b61397b6101006135ed565b9050600061398b84828501613944565b600083015250602061399f84828501613944565b60208301525060406139b384828501613629565b60408301525060606139c784828501613629565b60608301525060806139db84828501613829565b60808301525060a06139ef84828501613829565b60a08301525060c0613a0384828501613701565b60c08301525060e0613a1784828501613701565b60e08301525092915050565b60008060006101408486031215613a3d57613a3c613446565b5b6000613a4b86828701613959565b935050610100613a5d8682870161346f565b925050610120613a6f8682870161346f565b9150509250925092565b600082825260208201905092915050565b7f73686c546573743a2074657374203820626974732077697468207363616c617260008201527f206661696c656400000000000000000000000000000000000000000000000000602082015250565b6000613ae6602783613a79565b9150613af182613a8a565b604082019050919050565b60006020820190508181036000830152613b1581613ad9565b9050919050565b7f73686c546573743a207465737420313620626974732077697468207363616c6160008201527f72206661696c6564000000000000000000000000000000000000000000000000602082015250565b6000613b78602883613a79565b9150613b8382613b1c565b604082019050919050565b60006020820190508181036000830152613ba781613b6b565b9050919050565b7f73686c546573743a207465737420333220626974732077697468207363616c6160008201527f72206661696c6564000000000000000000000000000000000000000000000000602082015250565b6000613c0a602883613a79565b9150613c1582613bae565b604082019050919050565b60006020820190508181036000830152613c3981613bfd565b9050919050565b7f73686c546573743a207465737420363420626974732077697468207363616c6160008201527f72206661696c6564000000000000000000000000000000000000000000000000602082015250565b6000613c9c602883613a79565b9150613ca782613c40565b604082019050919050565b60006020820190508181036000830152613ccb81613c8f565b9050919050565b7f64656372797074416e64436f6d70617265416c6c526573756c74733a2046616960008201527f6c656420746f206465637279707420616e6420636f6d7061726520616c6c207260208201527f6573756c74730000000000000000000000000000000000000000000000000000604082015250565b6000613d54604683613a79565b9150613d5f82613cd2565b606082019050919050565b60006020820190508181036000830152613d8381613d47565b9050919050565b7f736872546573743a2063617374203136206661696c6564000000000000000000600082015250565b6000613dc0601783613a79565b9150613dcb82613d8a565b602082019050919050565b60006020820190508181036000830152613def81613db3565b9050919050565b7f736872546573743a2063617374203332206661696c6564000000000000000000600082015250565b6000613e2c601783613a79565b9150613e3782613df6565b602082019050919050565b60006020820190508181036000830152613e5b81613e1f565b9050919050565b7f736872546573743a2063617374203634206661696c6564000000000000000000600082015250565b6000613e98601783613a79565b9150613ea382613e62565b602082019050919050565b60006020820190508181036000830152613ec781613e8b565b9050919050565b7f736872546573743a2074657374203820626974732077697468207363616c617260008201527f206661696c656400000000000000000000000000000000000000000000000000602082015250565b6000613f2a602783613a79565b9150613f3582613ece565b604082019050919050565b60006020820190508181036000830152613f5981613f1d565b9050919050565b7f736872546573743a207465737420313620626974732077697468207363616c6160008201527f72206661696c6564000000000000000000000000000000000000000000000000602082015250565b6000613fbc602883613a79565b9150613fc782613f60565b604082019050919050565b60006020820190508181036000830152613feb81613faf565b9050919050565b7f736872546573743a207465737420333220626974732077697468207363616c6160008201527f72206661696c6564000000000000000000000000000000000000000000000000602082015250565b600061404e602883613a79565b915061405982613ff2565b604082019050919050565b6000602082019050818103600083015261407d81614041565b9050919050565b7f736872546573743a207465737420363420626974732077697468207363616c6160008201527f72206661696c6564000000000000000000000000000000000000000000000000602082015250565b60006140e0602883613a79565b91506140eb82614084565b604082019050919050565b6000602082019050818103600083015261410f816140d3565b9050919050565b60007fffffff000000000000000000000000000000000000000000000000000000000082169050919050565b61414b81614116565b82525050565b61415a81613608565b82525050565b60006060820190506141756000830186614142565b6141826020830185614151565b61418f6040830184614151565b949350505050565b6141a081613608565b81146141ab57600080fd5b50565b6000815190506141bd81614197565b92915050565b6000602082840312156141d9576141d8613446565b5b60006141e7848285016141ae565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b6142548161421f565b82525050565b600060408201905061426f600083018561424b565b61427c6020830184614151565b939250505056fea2646970667358221220d9f1748e409cd01a8fdeead6fad1f1892c480b33b1794e17fdab1ddbcf0c624464736f6c63430008140033";
329
+
330
+ type ShiftTestsContractConstructorParams =
331
+ | [signer?: Signer]
332
+ | ConstructorParameters<typeof ContractFactory>;
333
+
334
+ const isSuperArgs = (
335
+ xs: ShiftTestsContractConstructorParams
336
+ ): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;
337
+
338
+ export class ShiftTestsContract__factory extends ContractFactory {
339
+ constructor(...args: ShiftTestsContractConstructorParams) {
340
+ if (isSuperArgs(args)) {
341
+ super(...args);
342
+ } else {
343
+ super(_abi, _bytecode, args[0]);
344
+ }
345
+ }
346
+
347
+ override getDeployTransaction(
348
+ overrides?: NonPayableOverrides & { from?: string }
349
+ ): Promise<ContractDeployTransaction> {
350
+ return super.getDeployTransaction(overrides || {});
351
+ }
352
+ override deploy(overrides?: NonPayableOverrides & { from?: string }) {
353
+ return super.deploy(overrides || {}) as Promise<
354
+ ShiftTestsContract & {
355
+ deploymentTransaction(): ContractTransactionResponse;
356
+ }
357
+ >;
358
+ }
359
+ override connect(runner: ContractRunner | null): ShiftTestsContract__factory {
360
+ return super.connect(runner) as ShiftTestsContract__factory;
361
+ }
362
+
363
+ static readonly bytecode = _bytecode;
364
+ static readonly abi = _abi;
365
+ static createInterface(): ShiftTestsContractInterface {
366
+ return new Interface(_abi) as ShiftTestsContractInterface;
367
+ }
368
+ static connect(
369
+ address: string,
370
+ runner?: ContractRunner | null
371
+ ): ShiftTestsContract {
372
+ return new Contract(address, _abi, runner) as unknown as ShiftTestsContract;
373
+ }
374
+ }