@coti-io/coti-contracts 1.0.8 → 1.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 (36) hide show
  1. package/contracts/mocks/utils/mpc/Arithmetic128BitTestsContract.sol +260 -0
  2. package/contracts/mocks/utils/mpc/Arithmetic256BitTestsContract.sol +264 -0
  3. package/contracts/mocks/utils/mpc/Bitwise128BitTestsContract.sol +91 -0
  4. package/contracts/mocks/utils/mpc/Bitwise256BitTestsContract.sol +91 -0
  5. package/contracts/mocks/utils/mpc/Comparison128BitTestsContract.sol +158 -0
  6. package/contracts/mocks/utils/mpc/Comparison256BitTestsContract.sol +158 -0
  7. package/contracts/mocks/utils/mpc/Miscellaneous128BitTestsContract.sol +185 -0
  8. package/contracts/mocks/utils/mpc/Miscellaneous256BitTestsContract.sol +190 -0
  9. package/contracts/utils/mpc/MpcCore.sol +2804 -180
  10. package/hardhat.config.ts +6 -2
  11. package/package.json +2 -2
  12. package/test/token/PrivateERC20/PrivateERC20.test.ts +3 -3
  13. package/test/utils/mpc/Unsigned128BitIntegers.test.ts +945 -0
  14. package/test/utils/mpc/Unsigned256BitIntegers.test.ts +1124 -0
  15. package/test/utils/mpc/helpers.ts +77 -0
  16. package/typechain-types/contracts/mocks/utils/mpc/Arithmetic128BitTestsContract.ts +341 -0
  17. package/typechain-types/contracts/mocks/utils/mpc/Arithmetic256BitTestsContract.ts +347 -0
  18. package/typechain-types/contracts/mocks/utils/mpc/Bitwise128BitTestsContract.ts +186 -0
  19. package/typechain-types/contracts/mocks/utils/mpc/Bitwise256BitTestsContract.ts +186 -0
  20. package/typechain-types/contracts/mocks/utils/mpc/Comparison128BitTestsContract.ts +260 -0
  21. package/typechain-types/contracts/mocks/utils/mpc/Comparison256BitTestsContract.ts +260 -0
  22. package/typechain-types/contracts/mocks/utils/mpc/Miscellaneous128BitTestsContract.ts +302 -0
  23. package/typechain-types/contracts/mocks/utils/mpc/Miscellaneous256BitTestsContract.ts +322 -0
  24. package/typechain-types/contracts/mocks/utils/mpc/index.ts +8 -0
  25. package/typechain-types/factories/contracts/mocks/utils/mpc/Arithmetic128BitTestsContract__factory.ts +349 -0
  26. package/typechain-types/factories/contracts/mocks/utils/mpc/Arithmetic256BitTestsContract__factory.ts +364 -0
  27. package/typechain-types/factories/contracts/mocks/utils/mpc/Bitwise128BitTestsContract__factory.ts +182 -0
  28. package/typechain-types/factories/contracts/mocks/utils/mpc/Bitwise256BitTestsContract__factory.ts +182 -0
  29. package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison128BitTestsContract__factory.ts +255 -0
  30. package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison256BitTestsContract__factory.ts +255 -0
  31. package/typechain-types/factories/contracts/mocks/utils/mpc/Miscellaneous128BitTestsContract__factory.ts +332 -0
  32. package/typechain-types/factories/contracts/mocks/utils/mpc/Miscellaneous256BitTestsContract__factory.ts +380 -0
  33. package/typechain-types/factories/contracts/mocks/utils/mpc/index.ts +8 -0
  34. package/typechain-types/hardhat.d.ts +144 -0
  35. package/typechain-types/index.ts +16 -0
  36. package/contracts/package.json +0 -11
@@ -0,0 +1,255 @@
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
+ Comparison256BitTestsContract,
14
+ Comparison256BitTestsContractInterface,
15
+ } from "../../../../../contracts/mocks/utils/mpc/Comparison256BitTestsContract";
16
+
17
+ const _abi = [
18
+ {
19
+ inputs: [
20
+ {
21
+ internalType: "uint256",
22
+ name: "",
23
+ type: "uint256",
24
+ },
25
+ ],
26
+ name: "boolResults",
27
+ outputs: [
28
+ {
29
+ internalType: "bool",
30
+ name: "",
31
+ type: "bool",
32
+ },
33
+ ],
34
+ stateMutability: "view",
35
+ type: "function",
36
+ },
37
+ {
38
+ inputs: [
39
+ {
40
+ internalType: "uint256[]",
41
+ name: "a",
42
+ type: "uint256[]",
43
+ },
44
+ {
45
+ internalType: "uint256[]",
46
+ name: "b",
47
+ type: "uint256[]",
48
+ },
49
+ ],
50
+ name: "eqTest",
51
+ outputs: [],
52
+ stateMutability: "nonpayable",
53
+ type: "function",
54
+ },
55
+ {
56
+ inputs: [
57
+ {
58
+ internalType: "uint256[]",
59
+ name: "a",
60
+ type: "uint256[]",
61
+ },
62
+ {
63
+ internalType: "uint256[]",
64
+ name: "b",
65
+ type: "uint256[]",
66
+ },
67
+ ],
68
+ name: "geTest",
69
+ outputs: [],
70
+ stateMutability: "nonpayable",
71
+ type: "function",
72
+ },
73
+ {
74
+ inputs: [
75
+ {
76
+ internalType: "uint256[]",
77
+ name: "a",
78
+ type: "uint256[]",
79
+ },
80
+ {
81
+ internalType: "uint256[]",
82
+ name: "b",
83
+ type: "uint256[]",
84
+ },
85
+ ],
86
+ name: "gtTest",
87
+ outputs: [],
88
+ stateMutability: "nonpayable",
89
+ type: "function",
90
+ },
91
+ {
92
+ inputs: [
93
+ {
94
+ internalType: "uint256[]",
95
+ name: "a",
96
+ type: "uint256[]",
97
+ },
98
+ {
99
+ internalType: "uint256[]",
100
+ name: "b",
101
+ type: "uint256[]",
102
+ },
103
+ ],
104
+ name: "leTest",
105
+ outputs: [],
106
+ stateMutability: "nonpayable",
107
+ type: "function",
108
+ },
109
+ {
110
+ inputs: [
111
+ {
112
+ internalType: "uint256[]",
113
+ name: "a",
114
+ type: "uint256[]",
115
+ },
116
+ {
117
+ internalType: "uint256[]",
118
+ name: "b",
119
+ type: "uint256[]",
120
+ },
121
+ ],
122
+ name: "ltTest",
123
+ outputs: [],
124
+ stateMutability: "nonpayable",
125
+ type: "function",
126
+ },
127
+ {
128
+ inputs: [
129
+ {
130
+ internalType: "uint256[]",
131
+ name: "a",
132
+ type: "uint256[]",
133
+ },
134
+ {
135
+ internalType: "uint256[]",
136
+ name: "b",
137
+ type: "uint256[]",
138
+ },
139
+ ],
140
+ name: "maxTest",
141
+ outputs: [],
142
+ stateMutability: "nonpayable",
143
+ type: "function",
144
+ },
145
+ {
146
+ inputs: [
147
+ {
148
+ internalType: "uint256[]",
149
+ name: "a",
150
+ type: "uint256[]",
151
+ },
152
+ {
153
+ internalType: "uint256[]",
154
+ name: "b",
155
+ type: "uint256[]",
156
+ },
157
+ ],
158
+ name: "minTest",
159
+ outputs: [],
160
+ stateMutability: "nonpayable",
161
+ type: "function",
162
+ },
163
+ {
164
+ inputs: [
165
+ {
166
+ internalType: "uint256[]",
167
+ name: "a",
168
+ type: "uint256[]",
169
+ },
170
+ {
171
+ internalType: "uint256[]",
172
+ name: "b",
173
+ type: "uint256[]",
174
+ },
175
+ ],
176
+ name: "neTest",
177
+ outputs: [],
178
+ stateMutability: "nonpayable",
179
+ type: "function",
180
+ },
181
+ {
182
+ inputs: [
183
+ {
184
+ internalType: "uint256",
185
+ name: "",
186
+ type: "uint256",
187
+ },
188
+ ],
189
+ name: "uintResults2",
190
+ outputs: [
191
+ {
192
+ internalType: "uint256",
193
+ name: "",
194
+ type: "uint256",
195
+ },
196
+ ],
197
+ stateMutability: "view",
198
+ type: "function",
199
+ },
200
+ ] as const;
201
+
202
+ const _bytecode =
203
+ "0x608060405234801561001057600080fd5b5061284a806100206000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c80636def39161161007657806392946f801161005b57806392946f801461016d578063b356af5214610180578063dec18ca31461019357600080fd5b80636def3916146101375780636f9494e21461014a57600080fd5b806331f05986116100a757806331f05986146100eb5780635eca5dc9146100fe57806368dc7d881461012457600080fd5b80632540d671146100c357806327f9f040146100d8575b600080fd5b6100d66100d13660046126b3565b6101a6565b005b6100d66100e63660046126b3565b610351565b6100d66100f93660046126b3565b610533565b61011161010c36600461271f565b6106c1565b6040519081526020015b60405180910390f35b6100d66101323660046126b3565b6106e2565b6100d66101453660046126b3565b6108bf565b61015d61015836600461271f565b610a9c565b604051901515815260200161011b565b6100d661017b3660046126b3565b610ad0565b6100d661018e3660046126b3565b610cad565b6100d66101a13660046126b3565b610e8a565b828114610214576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f496e707574206c656e677468206d69736d61746368000000000000000000000060448201526064015b60405180910390fd5b61021d83611067565b60005b8381101561034a57600061024b86868481811061023f5761023f612738565b905060200201356110c5565b9050600061026485858581811061023f5761023f612738565b905061027861027383836110fd565b61116c565b6001848154811061028b5761028b612738565b6000918252602090912001556102bc6102738888868181106102af576102af612738565b90506020020135836111c3565b600184815481106102cf576102cf612738565b9060005260206000200154146102e7576102e7612767565b61030c6102738387878781811061030057610300612738565b9050602002013561122f565b6001848154811061031f5761031f612738565b90600052602060002001541461033757610337612767565b50508061034390612796565b9050610220565b5050505050565b8281146103ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f496e707574206c656e677468206d69736d617463680000000000000000000000604482015260640161020b565b6103c38361128e565b60005b8381101561034a5760006103e586868481811061023f5761023f612738565b905060006103fe85858581811061023f5761023f612738565b905061041261040d83836112fd565b611349565b6000848154811061042557610425612738565b90600052602060002090602091828204019190066101000a81548160ff02191690831515021790555061047361040d88888681811061046657610466612738565b90506020020135836113da565b15156000848154811061048857610488612738565b90600052602060002090602091828204019190069054906101000a900460ff161515146104b7576104b7612767565b6104dc61040d838787878181106104d0576104d0612738565b90506020020135611416565b1515600084815481106104f1576104f1612738565b90600052602060002090602091828204019190069054906101000a900460ff1615151461052057610520612767565b50508061052c90612796565b90506103c6565b82811461059c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f496e707574206c656e677468206d69736d617463680000000000000000000000604482015260640161020b565b6105a583611067565b60005b8381101561034a5760006105c786868481811061023f5761023f612738565b905060006105e085858581811061023f5761023f612738565b90506105ef6102738383611451565b6001848154811061060257610602612738565b60009182526020909120015561063361027388888681811061062657610626612738565b9050602002013583611495565b6001848154811061064657610646612738565b90600052602060002001541461065e5761065e612767565b6106836102738387878781811061067757610677612738565b905060200201356114d9565b6001848154811061069657610696612738565b9060005260206000200154146106ae576106ae612767565b5050806106ba90612796565b90506105a8565b600181815481106106d157600080fd5b600091825260209091200154905081565b82811461074b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f496e707574206c656e677468206d69736d617463680000000000000000000000604482015260640161020b565b6107548361128e565b60005b8381101561034a57600061077686868481811061023f5761023f612738565b9050600061078f85858581811061023f5761023f612738565b905061079e61040d838361151c565b600084815481106107b1576107b1612738565b90600052602060002090602091828204019190066101000a81548160ff0219169083151502179055506107ff61040d8888868181106107f2576107f2612738565b905060200201358361155b565b15156000848154811061081457610814612738565b90600052602060002090602091828204019190069054906101000a900460ff1615151461084357610843612767565b61086861040d8387878781811061085c5761085c612738565b90506020020135611597565b15156000848154811061087d5761087d612738565b90600052602060002090602091828204019190069054906101000a900460ff161515146108ac576108ac612767565b5050806108b890612796565b9050610757565b828114610928576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f496e707574206c656e677468206d69736d617463680000000000000000000000604482015260640161020b565b6109318361128e565b60005b8381101561034a57600061095386868481811061023f5761023f612738565b9050600061096c85858581811061023f5761023f612738565b905061097b61040d83836115d2565b6000848154811061098e5761098e612738565b90600052602060002090602091828204019190066101000a81548160ff0219169083151502179055506109dc61040d8888868181106109cf576109cf612738565b9050602002013583611611565b1515600084815481106109f1576109f1612738565b90600052602060002090602091828204019190069054906101000a900460ff16151514610a2057610a20612767565b610a4561040d83878787818110610a3957610a39612738565b9050602002013561164d565b151560008481548110610a5a57610a5a612738565b90600052602060002090602091828204019190069054906101000a900460ff16151514610a8957610a89612767565b505080610a9590612796565b9050610934565b60008181548110610aac57600080fd5b9060005260206000209060209182820401919006915054906101000a900460ff1681565b828114610b39576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f496e707574206c656e677468206d69736d617463680000000000000000000000604482015260640161020b565b610b428361128e565b60005b8381101561034a576000610b6486868481811061023f5761023f612738565b90506000610b7d85858581811061023f5761023f612738565b9050610b8c61040d8383611688565b60008481548110610b9f57610b9f612738565b90600052602060002090602091828204019190066101000a81548160ff021916908315150217905550610bed61040d888886818110610be057610be0612738565b90506020020135836116b9565b151560008481548110610c0257610c02612738565b90600052602060002090602091828204019190069054906101000a900460ff16151514610c3157610c31612767565b610c5661040d83878787818110610c4a57610c4a612738565b905060200201356116ef565b151560008481548110610c6b57610c6b612738565b90600052602060002090602091828204019190069054906101000a900460ff16151514610c9a57610c9a612767565b505080610ca690612796565b9050610b45565b828114610d16576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f496e707574206c656e677468206d69736d617463680000000000000000000000604482015260640161020b565b610d1f8361128e565b60005b8381101561034a576000610d4186868481811061023f5761023f612738565b90506000610d5a85858581811061023f5761023f612738565b9050610d6961040d8383611719565b60008481548110610d7c57610d7c612738565b90600052602060002090602091828204019190066101000a81548160ff021916908315150217905550610dca61040d888886818110610dbd57610dbd612738565b9050602002013583611743565b151560008481548110610ddf57610ddf612738565b90600052602060002090602091828204019190069054906101000a900460ff16151514610e0e57610e0e612767565b610e3361040d83878787818110610e2757610e27612738565b90506020020135611770565b151560008481548110610e4857610e48612738565b90600052602060002090602091828204019190069054906101000a900460ff16151514610e7757610e77612767565b505080610e8390612796565b9050610d22565b828114610ef3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f496e707574206c656e677468206d69736d617463680000000000000000000000604482015260640161020b565b610efc8361128e565b60005b8381101561034a576000610f1e86868481811061023f5761023f612738565b90506000610f3785858581811061023f5761023f612738565b9050610f4661040d838361179a565b60008481548110610f5957610f59612738565b90600052602060002090602091828204019190066101000a81548160ff021916908315150217905550610fa761040d888886818110610f9a57610f9a612738565b90506020020135836117d9565b151560008481548110610fbc57610fbc612738565b90600052602060002090602091828204019190069054906101000a900460ff16151514610feb57610feb612767565b61101061040d8387878781811061100457611004612738565b90506020020135611815565b15156000848154811061102557611025612738565b90600052602060002090602091828204019190069054906101000a900460ff1615151461105457611054612767565b50508061106090612796565b9050610eff565b611073600160006125c8565b60005b818110156110c15760018054808201825560009182527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60155806110b981612796565b915050611076565b5050565b6110cd6125e9565b6110d56125e9565b82608081901c6110e481611850565b83526110ef82611850565b602084015250909392505050565b6111056125e9565b825182516000916111159161189c565b9050600061112b856000015185600001516118c1565b90506000611141866020015186602001516118c1565b90506111628361115284888a611900565b61115d84898b611900565b611900565b9695505050505050565b60008061117c8360000151611941565b9050600061118d8460200151611941565b9050806fffffffffffffffffffffffffffffffff166080836fffffffffffffffffffffffffffffffff16901b1792505050919050565b6111cb6125e9565b8151608084901c9084906000906111e390849061199a565b905060006111f58487600001516119d1565b905060006112078488602001516119d1565b905061122383611218848a8c611a17565b61115d848b8d611a17565b98975050505050505050565b6112376125e9565b8251608083901c90839060009061124e9084611a60565b90506000611260876000015185611a94565b90506000611272886020015185611a94565b905061122383611283848a8c611ad9565b61115d848b8d611ad9565b61129960008061262d565b60005b818110156110c157600080546001810182559080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56360208204018054601f9092166101000a60ff02199091169055806112f581612796565b91505061129c565b6000806113128460000151846000015161189c565b90506113418161132a86600001518660000151611b17565b61133c87602001518760200151611b17565b611b56565b949350505050565b6040517f0cfed56100000000000000000000000000000000000000000000000000000000815260006004820181905260248201839052908190606490630cfed561906044016020604051808303816000875af11580156113ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113d19190612824565b15159392505050565b8051600090608084901c90849083906113f490849061199a565b905061116281611408858860000151611c1b565b61133c858960200151611c1b565b8151600090608083901c908390839061142f9084611a60565b905061116281611443886000015186611c61565b61133c896020015186611c61565b6114596125e9565b825182516000916114699161189c565b9050600061147f85600001518560000151611b17565b9050600061114186602001518660200151611b17565b61149d6125e9565b8151608084901c9084906000906114b590849061199a565b905060006114c7848760000151611c1b565b90506000611207848860200151611c1b565b6114e16125e9565b8251608083901c9083906000906114f89084611a60565b9050600061150a876000015185611c61565b90506000611272886020015185611c61565b6000806115318460000151846000015161189c565b905061134181611549866000015186600001516118c1565b61133c876020015187602001516118c1565b8051600090608084901c908490839061157590849061199a565b9050611162816115898588600001516119d1565b61133c8589602001516119d1565b8151600090608083901c90839083906115b09084611a60565b9050611162816115c4886000015186611a94565b61133c896020015186611a94565b6000806115e78460000151846000015161189c565b9050611341816115ff86600001518660000151611b17565b61133c87602001518760200151611ca6565b8051600090608084901c908490839061162b90849061199a565b90506111628161163f858860000151611c1b565b61133c858960200151611ce5565b8151600090608083901c90839083906116669084611a60565b90506111628161167a886000015186611c61565b61133c896020015186611d2b565b60006116b261169f84602001518460200151611d70565b845184516116ad9190611d70565b611d95565b9392505050565b60008080608085901c85915091506116e66116d8828660200151611e53565b6116ad848760000151611e53565b95945050505050565b6020820151600090608083901c9083906116e69061170d9083611e8a565b86516116ad9085611e8a565b60006116b26117308460200151846020015161189c565b8451845161173e919061189c565b611ebe565b60008080608085901c85915091506116e661176282866020015161199a565b61173e84876000015161199a565b6020820151600090608083901c9083906116e69061178e9083611a60565b865161173e9085611a60565b6000806117af8460000151846000015161189c565b9050611341816117c7866000015186600001516118c1565b61133c87602001518760200151611ed2565b8051600090608084901c90849083906117f390849061199a565b9050611162816118078588600001516119d1565b61133c858960200151611f11565b8151600090608083901c908390839061182e9084611a60565b905061116281611842886000015186611a94565b61133c896020015186611f57565b604080518082019091526000808252602082015260408051808201909152600080825260208201528267ffffffffffffffff604082901c1661189181611f9c565b83526110ef82611f9c565b60006116b26118b384602001518460200151612051565b8451845161173e9190612051565b6000806118d684600001518460000151612051565b9050611341816118ee86600001518660000151612066565b61133c87602001518760200151612066565b6119086125e9565b6119106125e9565b611923858560200151856020015161207b565b60208201528351835161193791879161207b565b8152949350505050565b60008061195183600001516120ca565b9050600061196284602001516120ca565b90508067ffffffffffffffff1660408367ffffffffffffffff166fffffffffffffffffffffffffffffffff16901b1792505050919050565b60008080604085901c67ffffffffffffffff1685915091506116e66119c3828660200151612131565b61173e848760000151612131565b805160009067ffffffffffffffff604085901c1690849083906119f5908490612131565b905061116281611a098588600001516121bb565b61133c8589602001516121bb565b611a1f6125e9565b611a276125e9565b6020840151608084901c908490611a40908890836121d1565b60208401528551611a53908890846121d1565b8352509095945050505050565b602082015160009067ffffffffffffffff604084901c169083906116e690611a889083612232565b865161173e9085612232565b815160009067ffffffffffffffff604084901c169083908390611ab79084612232565b905061116281611acb8860000151866122bc565b61133c8960200151866122bc565b611ae16125e9565b611ae96125e9565b6020830151608085901c908590611b0390889083906122d2565b60208401528451611a5390889084906122d2565b600080611b2c84600001518460000151612051565b905061134181611b4486600001518660000151612334565b61133c87602001518760200151612334565b600060646320cc408d611b6a838080612345565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff000000000000000000000000000000000000000000000000000000000090911660048201526024810187905260448101869052606481018590526084015b6020604051808303816000875af1158015611bf7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113419190612824565b805160009067ffffffffffffffff604085901c169084908390611c3f908490612131565b905061116281611c538588600001516123a2565b61133c8589602001516123a2565b815160009067ffffffffffffffff604084901c169083908390611c849084612232565b905061116281611c988860000151866123b8565b61133c8960200151866123b8565b600080611cbb84600001518460000151612051565b905061134181611cd386600001518660000151612334565b61133c876020015187602001516123ce565b805160009067ffffffffffffffff604085901c169084908390611d09908490612131565b905061116281611d1d8588600001516123a2565b61133c8589602001516123e3565b815160009067ffffffffffffffff604084901c169083908390611d4e9084612232565b905061116281611d628860000151866123b8565b61133c8960200151866123f9565b60006116b2611d878460200151846020015161240f565b845184516116ad919061240f565b6000606463fb7da35f611da9838080612345565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff0000000000000000000000000000000000000000000000000000000000909116600482015260248101869052604481018590526064015b6020604051808303816000875af1158015611e2f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116b29190612824565b60008080604085901c67ffffffffffffffff1685915091506116e6611e7c828660200151612424565b6116ad848760000151612424565b602082015160009067ffffffffffffffff604084901c169083906116e690611eb2908361243a565b86516116ad908561243a565b6000606463fe9c73d1611da9838080612345565b600080611ee784600001518460000151612051565b905061134181611eff86600001518660000151612066565b61133c87602001518760200151612450565b805160009067ffffffffffffffff604085901c169084908390611f35908490612131565b905061116281611f498588600001516121bb565b61133c858960200151612465565b815160009067ffffffffffffffff604084901c169083908390611f7a9084612232565b905061116281611f8e8860000151866122bc565b61133c89602001518661247b565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0400000000000000000000000000000000000000000000000000000000000000600482015267ffffffffffffffff8216602482015260009060649063d9b60b60906044015b6020604051808303816000875af1158015612027573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061204b9190612824565b92915050565b60006064637c12a1eb611da960048085612345565b6000606463dd148693611da960048085612345565b604080518082019091526000808252602082015260408051808201909152600080825260208201526120b68585602001518560200151612491565b602082015283518351611937918791612491565b6040517f0cfed5610000000000000000000000000000000000000000000000000000000081527f0400000000000000000000000000000000000000000000000000000000000000600482015260248101829052600090606490630cfed56190604401612008565b60006064637c12a1eb6121476004806001612345565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff0000000000000000000000000000000000000000000000000000000000909116600482015267ffffffffffffffff8616602482015260448101859052606401611e10565b6000606463dd1486936121476004806001612345565b60408051808201909152600080825260208201526040805180820190915260008082526020820152600080604085901c67ffffffffffffffff16859150915061221f878760200151836124a6565b60208401528551611a53908890846124a6565b60006064637c12a1eb6122486004806002612345565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff000000000000000000000000000000000000000000000000000000000090911660048201526024810186905267ffffffffffffffff85166044820152606401611e10565b6000606463dd1486936122486004806002612345565b60408051808201909152600080825260208201526040805180820190915260008082526020820152600080604086901c67ffffffffffffffff16869150915061232087828760200151612537565b60208401528451611a539088908490612537565b60006064636d82e45e611da9600480855b6000816002811115612359576123596127f5565b60ff166008846004811115612370576123706127f5565b61ffff16901b61ffff16601086600481111561238e5761238e6127f5565b62ffffff16901b171760e81b949350505050565b60006064636d82e45e6121476004806001612345565b60006064636d82e45e6122486004806002612345565b6000606463813b2074611da960048085612345565b6000606463813b20746121476004806001612345565b6000606463813b20746122486004806002612345565b600060646342094c56611da960048085612345565b600060646342094c566121476004806001612345565b600060646342094c566122486004806002612345565b6000606463145fca2c611da960048085612345565b6000606463145fca2c6121476004806001612345565b6000606463145fca2c6122486004806002612345565b600060646320cc408d611b6a60048085612345565b600060646320cc408d6124bc6004806002612345565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff00000000000000000000000000000000000000000000000000000000009091166004820152602481018790526044810186905267ffffffffffffffff85166064820152608401611bd8565b600060646320cc408d61254d6004806001612345565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff000000000000000000000000000000000000000000000000000000000090911660048201526024810187905267ffffffffffffffff8616604482015260648101859052608401611bd8565b50805460008255906000526020600020908101906125e6919061264e565b50565b60408051608081018252600091810182815260608201929092529081908152602001612628604051806040016040528060008152602001600081525090565b905290565b50805460008255601f0160209004906000526020600020908101906125e691905b5b80821115612663576000815560010161264f565b5090565b60008083601f84011261267957600080fd5b50813567ffffffffffffffff81111561269157600080fd5b6020830191508360208260051b85010111156126ac57600080fd5b9250929050565b600080600080604085870312156126c957600080fd5b843567ffffffffffffffff808211156126e157600080fd5b6126ed88838901612667565b9096509450602087013591508082111561270657600080fd5b5061271387828801612667565b95989497509550505050565b60006020828403121561273157600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036127ee577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60006020828403121561283657600080fd5b505191905056fea164736f6c6343000813000a";
204
+
205
+ type Comparison256BitTestsContractConstructorParams =
206
+ | [signer?: Signer]
207
+ | ConstructorParameters<typeof ContractFactory>;
208
+
209
+ const isSuperArgs = (
210
+ xs: Comparison256BitTestsContractConstructorParams
211
+ ): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;
212
+
213
+ export class Comparison256BitTestsContract__factory extends ContractFactory {
214
+ constructor(...args: Comparison256BitTestsContractConstructorParams) {
215
+ if (isSuperArgs(args)) {
216
+ super(...args);
217
+ } else {
218
+ super(_abi, _bytecode, args[0]);
219
+ }
220
+ }
221
+
222
+ override getDeployTransaction(
223
+ overrides?: NonPayableOverrides & { from?: string }
224
+ ): Promise<ContractDeployTransaction> {
225
+ return super.getDeployTransaction(overrides || {});
226
+ }
227
+ override deploy(overrides?: NonPayableOverrides & { from?: string }) {
228
+ return super.deploy(overrides || {}) as Promise<
229
+ Comparison256BitTestsContract & {
230
+ deploymentTransaction(): ContractTransactionResponse;
231
+ }
232
+ >;
233
+ }
234
+ override connect(
235
+ runner: ContractRunner | null
236
+ ): Comparison256BitTestsContract__factory {
237
+ return super.connect(runner) as Comparison256BitTestsContract__factory;
238
+ }
239
+
240
+ static readonly bytecode = _bytecode;
241
+ static readonly abi = _abi;
242
+ static createInterface(): Comparison256BitTestsContractInterface {
243
+ return new Interface(_abi) as Comparison256BitTestsContractInterface;
244
+ }
245
+ static connect(
246
+ address: string,
247
+ runner?: ContractRunner | null
248
+ ): Comparison256BitTestsContract {
249
+ return new Contract(
250
+ address,
251
+ _abi,
252
+ runner
253
+ ) as unknown as Comparison256BitTestsContract;
254
+ }
255
+ }
@@ -0,0 +1,332 @@
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
+ Miscellaneous128BitTestsContract,
14
+ Miscellaneous128BitTestsContractInterface,
15
+ } from "../../../../../contracts/mocks/utils/mpc/Miscellaneous128BitTestsContract";
16
+
17
+ const _abi = [
18
+ {
19
+ inputs: [
20
+ {
21
+ internalType: "uint256",
22
+ name: "",
23
+ type: "uint256",
24
+ },
25
+ ],
26
+ name: "a",
27
+ outputs: [
28
+ {
29
+ internalType: "uint128",
30
+ name: "",
31
+ type: "uint128",
32
+ },
33
+ ],
34
+ stateMutability: "view",
35
+ type: "function",
36
+ },
37
+ {
38
+ inputs: [
39
+ {
40
+ internalType: "uint256",
41
+ name: "",
42
+ type: "uint256",
43
+ },
44
+ ],
45
+ name: "allowance",
46
+ outputs: [
47
+ {
48
+ internalType: "uint128",
49
+ name: "",
50
+ type: "uint128",
51
+ },
52
+ ],
53
+ stateMutability: "view",
54
+ type: "function",
55
+ },
56
+ {
57
+ inputs: [
58
+ {
59
+ internalType: "uint256",
60
+ name: "",
61
+ type: "uint256",
62
+ },
63
+ ],
64
+ name: "b",
65
+ outputs: [
66
+ {
67
+ internalType: "uint128",
68
+ name: "",
69
+ type: "uint128",
70
+ },
71
+ ],
72
+ stateMutability: "view",
73
+ type: "function",
74
+ },
75
+ {
76
+ inputs: [
77
+ {
78
+ internalType: "uint256",
79
+ name: "",
80
+ type: "uint256",
81
+ },
82
+ ],
83
+ name: "ctNumbers",
84
+ outputs: [
85
+ {
86
+ internalType: "ctUint64",
87
+ name: "high",
88
+ type: "uint256",
89
+ },
90
+ {
91
+ internalType: "ctUint64",
92
+ name: "low",
93
+ type: "uint256",
94
+ },
95
+ ],
96
+ stateMutability: "view",
97
+ type: "function",
98
+ },
99
+ {
100
+ inputs: [
101
+ {
102
+ internalType: "uint256",
103
+ name: "",
104
+ type: "uint256",
105
+ },
106
+ ],
107
+ name: "numbers",
108
+ outputs: [
109
+ {
110
+ internalType: "uint128",
111
+ name: "",
112
+ type: "uint128",
113
+ },
114
+ ],
115
+ stateMutability: "view",
116
+ type: "function",
117
+ },
118
+ {
119
+ inputs: [
120
+ {
121
+ internalType: "uint128[]",
122
+ name: "a_",
123
+ type: "uint128[]",
124
+ },
125
+ ],
126
+ name: "offBoardToUserTest",
127
+ outputs: [],
128
+ stateMutability: "nonpayable",
129
+ type: "function",
130
+ },
131
+ {
132
+ inputs: [
133
+ {
134
+ internalType: "uint8[]",
135
+ name: "numBits",
136
+ type: "uint8[]",
137
+ },
138
+ ],
139
+ name: "randBoundedBitsTest",
140
+ outputs: [],
141
+ stateMutability: "nonpayable",
142
+ type: "function",
143
+ },
144
+ {
145
+ inputs: [
146
+ {
147
+ internalType: "uint256",
148
+ name: "length",
149
+ type: "uint256",
150
+ },
151
+ ],
152
+ name: "randTest",
153
+ outputs: [],
154
+ stateMutability: "nonpayable",
155
+ type: "function",
156
+ },
157
+ {
158
+ inputs: [
159
+ {
160
+ internalType: "uint128[]",
161
+ name: "a_",
162
+ type: "uint128[]",
163
+ },
164
+ ],
165
+ name: "setPublicTest",
166
+ outputs: [],
167
+ stateMutability: "nonpayable",
168
+ type: "function",
169
+ },
170
+ {
171
+ inputs: [
172
+ {
173
+ internalType: "uint256",
174
+ name: "",
175
+ type: "uint256",
176
+ },
177
+ ],
178
+ name: "success",
179
+ outputs: [
180
+ {
181
+ internalType: "bool",
182
+ name: "",
183
+ type: "bool",
184
+ },
185
+ ],
186
+ stateMutability: "view",
187
+ type: "function",
188
+ },
189
+ {
190
+ inputs: [
191
+ {
192
+ internalType: "uint128[]",
193
+ name: "a_",
194
+ type: "uint128[]",
195
+ },
196
+ {
197
+ internalType: "uint128[]",
198
+ name: "b_",
199
+ type: "uint128[]",
200
+ },
201
+ {
202
+ internalType: "uint128[]",
203
+ name: "amount_",
204
+ type: "uint128[]",
205
+ },
206
+ ],
207
+ name: "transferTest",
208
+ outputs: [],
209
+ stateMutability: "nonpayable",
210
+ type: "function",
211
+ },
212
+ {
213
+ inputs: [
214
+ {
215
+ internalType: "uint128[]",
216
+ name: "a_",
217
+ type: "uint128[]",
218
+ },
219
+ {
220
+ internalType: "uint128[]",
221
+ name: "b_",
222
+ type: "uint128[]",
223
+ },
224
+ {
225
+ internalType: "uint128[]",
226
+ name: "amount_",
227
+ type: "uint128[]",
228
+ },
229
+ {
230
+ internalType: "uint128[]",
231
+ name: "allowance_",
232
+ type: "uint128[]",
233
+ },
234
+ ],
235
+ name: "transferWithAllowanceTest",
236
+ outputs: [],
237
+ stateMutability: "nonpayable",
238
+ type: "function",
239
+ },
240
+ {
241
+ inputs: [
242
+ {
243
+ components: [
244
+ {
245
+ components: [
246
+ {
247
+ internalType: "ctUint64",
248
+ name: "high",
249
+ type: "uint256",
250
+ },
251
+ {
252
+ internalType: "ctUint64",
253
+ name: "low",
254
+ type: "uint256",
255
+ },
256
+ ],
257
+ internalType: "struct ctUint128",
258
+ name: "ciphertext",
259
+ type: "tuple",
260
+ },
261
+ {
262
+ internalType: "bytes[2]",
263
+ name: "signature",
264
+ type: "bytes[2]",
265
+ },
266
+ ],
267
+ internalType: "struct itUint128[]",
268
+ name: "a_",
269
+ type: "tuple[]",
270
+ },
271
+ ],
272
+ name: "validateCiphertextTest",
273
+ outputs: [],
274
+ stateMutability: "nonpayable",
275
+ type: "function",
276
+ },
277
+ ] as const;
278
+
279
+ const _bytecode =
280
+ "0x608060405234801561001057600080fd5b5061215f806100206000396000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c8063cd580ff31161008c578063d39fa23311610066578063d39fa233146101dc578063d736d514146101ef578063e08fa2a314610202578063f0fdf8341461021557600080fd5b8063cd580ff31461018e578063d0ed1a3e146101a1578063d1eaa4cf146101b457600080fd5b8063888ea243116100bd578063888ea24314610145578063a2240c3414610168578063a681f5851461017b57600080fd5b80632e43d7dc146100e4578063419e6fbe1461011d57806347136a3c14610132575b600080fd5b6100f76100f2366004611b3c565b610228565b6040516fffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61013061012b366004611ba1565b61026e565b005b610130610140366004611be3565b61032d565b610158610153366004611b3c565b610610565b6040519015158152602001610114565b610130610176366004611b3c565b610644565b610130610189366004611ba1565b6106d6565b6100f761019c366004611b3c565b61077c565b6101306101af366004611ca7565b61078c565b6101c76101c2366004611b3c565b6109b5565b60408051928352602083019190915201610114565b6100f76101ea366004611b3c565b6109e3565b6101306101fd366004611ba1565b6109f3565b610130610210366004611ba1565b610ab9565b6100f7610223366004611b3c565b610b33565b6005818154811061023857600080fd5b9060005260206000209060029182820401919006601002915054906101000a90046fffffffffffffffffffffffffffffffff1681565b61027781610b43565b60005b81811015610328576102b96102b484848481811061029a5761029a611d41565b90506020020160208101906102af9190611d70565b610bc4565b610c43565b600082815481106102cc576102cc611d41565b90600052602060002090600291828204019190066010026101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055508061032190611dc2565b905061027a565b505050565b868514801561033b57508683145b801561034657508681145b6103b1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f496e707574206c656e677468206d69736d61746368000000000000000000000060448201526064015b60405180910390fd5b6103ba87610c9c565b6103c387610d22565b6103cc87610da7565b6103d587610e1a565b6000805b888110156106045760006104128b8b848181106103f8576103f8611d41565b905060200201602081019061040d9190611dfa565b610e9f565b9050600061042b8a8a858181106103f8576103f8611d41565b905060006104448989868181106103f8576103f8611d41565b9050600061045d8888878181106103f8576103f8611d41565b905061046b84848484610ef9565b9098509195509350905061047e84610c43565b6002868154811061049157610491611d41565b90600052602060002090600291828204019190066010026101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506104e583610c43565b600386815481106104f8576104f8611d41565b90600052602060002090600291828204019190066010026101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555061054c86610fb0565b6004868154811061055f5761055f611d41565b90600052602060002090602091828204019190066101000a81548160ff02191690831515021790555061059181610c43565b600586815481106105a4576105a4611d41565b90600052602060002090600291828204019190066010026101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050505050806105fd90611dc2565b90506103d9565b50505050505050505050565b6004818154811061062057600080fd5b9060005260206000209060209182820401919006915054906101000a900460ff1681565b61064d81610b43565b60005b818110156106d2576106636102b4611041565b6000828154811061067657610676611d41565b90600052602060002090600291828204019190066010026101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550806106cb90611dc2565b9050610650565b5050565b6106df81610b43565b60005b818110156103285760006107018484848181106103f8576103f8611d41565b905061070c81610c43565b6000838154811061071f5761071f611d41565b90600052602060002090600291828204019190066010026101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550508061077590611dc2565b90506106e2565b6003818154811061023857600080fd5b848314801561079a57508481145b610800576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f496e707574206c656e677468206d69736d61746368000000000000000000000060448201526064016103a8565b61080985610c9c565b61081285610d22565b61081b85610da7565b6000805b868110156109ab57600061083e8989848181106103f8576103f8611d41565b905060006108578888858181106103f8576103f8611d41565b905060006108708787868181106103f8576103f8611d41565b905061087d838383611085565b9650909350915061088d83610c43565b600285815481106108a0576108a0611d41565b90600052602060002090600291828204019190066010026101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506108f482610c43565b6003858154811061090757610907611d41565b90600052602060002090600291828204019190066010026101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555061095b85610fb0565b6004858154811061096e5761096e611d41565b90600052602060002090602091828204019190066101000a81548160ff021916908315150217905550505050806109a490611dc2565b905061081f565b5050505050505050565b600181815481106109c557600080fd5b60009182526020909120600290910201805460019091015490915082565b6000818154811061023857600080fd5b6109fc81610b43565b60005b81811015610328576000610a3e848484818110610a1e57610a1e611d41565b9050602002810190610a309190611e2c565b610a3990611f11565b6110f0565b9050610a4981610c43565b60008381548110610a5c57610a5c611d41565b90600052602060002090600291828204019190066010026101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055505080610ab290611dc2565b90506109ff565b610ac281611170565b60005b81811015610328576000610ae48484848181106103f8576103f8611d41565b9050610af0813361120d565b60018381548110610b0357610b03611d41565b6000918252602091829020835160029092020190815591015160019091015550610b2c81611dc2565b9050610ac5565b6002818154811061023857600080fd5b610b4e600080611a9a565b60005b818110156106d25760008054600180820183559180527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56360028204018054929091166010026101000a6fffffffffffffffffffffffffffffffff0219909116905580610bbc81611dc2565b915050610b51565b60408051808201909152600080825260208201526040805180820190915260008082526020820152600060408460ff1611610bff5783610c02565b60405b9050610c0d81611260565b6020830152604060ff851611610c24576000610c2f565b610c2f604085612054565b9050610c3a81611260565b82525092915050565b600080610c538360000151611308565b90506000610c648460200151611308565b90508067ffffffffffffffff1660408367ffffffffffffffff166fffffffffffffffffffffffffffffffff16901b1792505050919050565b610ca860026000611a9a565b60005b818110156106d257600280546001808201835560008390527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace928204929092018054929091166010026101000a6fffffffffffffffffffffffffffffffff0219909116905580610d1a81611dc2565b915050610cab565b610d2e60036000611a9a565b60005b818110156106d25760038054600180820183556000929092527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b60028204018054929091166010026101000a6fffffffffffffffffffffffffffffffff0219909116905580610d9f81611dc2565b915050610d31565b610db360046000611ac2565b60005b818110156106d257600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b60208204018054601f9092166101000a60ff0219909116905580610e1281611dc2565b915050610db6565b610e2660056000611a9a565b60005b818110156106d25760058054600180820183556000929092527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db060028204018054929091166010026101000a6fffffffffffffffffffffffffffffffff0219909116905580610e9781611dc2565b915050610e29565b604080518082019091526000808252602082015260408051808201909152600080825260208201528267ffffffffffffffff604082901c16610ee08161136f565b8352610eeb8261136f565b602084015250909392505050565b604080518082019091526000808252602082015260408051808201909152600080825260208201526000610f40604051806040016040528060008152602001600081525090565b6000610f5e610f4f8a896113df565b610f59898961142b565b61146a565b90506000610f76828b610f718d8c61152f565b6115b9565b90506000610f89838b610f718d8d611612565b90506000610f9c848a610f718c8e61152f565b929c919b5092995090975095505050505050565b6040517f0cfed56100000000000000000000000000000000000000000000000000000000815260006004820181905260248201839052908190606490630cfed561906044016020604051808303816000875af1158015611014573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611038919061209c565b15159392505050565b60408051808201909152600080825260208201526040805180820190915260008082526020820152611071611687565b815261107b611687565b6020820152919050565b604080518082019091526000808252602082015260408051808201909152600080825260208201526000806110ba87866113df565b905060006110cd8289610f718b8a61152f565b905060006110e08389610f718b8b611612565b9199919850919650945050505050565b6040805180820182526000808252602080830182905283518085018552828152808201839052845180860186528381526060818401818152885151835288850180515190915287518089019098529487528684019081528751840151875293519092015190925291929091906111658261172a565b8352610eeb8161172a565b61117c60016000611ae7565b60005b818110156106d25760408051808201909152600080825260208201818152600180548082018255925291517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf660029092029182015590517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf7909101558061120581611dc2565b91505061117f565b6040805180820190915260008082526020820152604080518082019091526000808252602082015283516112419084611793565b815260208401516112529084611793565b602082015290505b92915050565b6040517f072d17fc0000000000000000000000000000000000000000000000000000000081527f0400000000000000000000000000000000000000000000000000000000000000600482015260ff8216602482015260009060649063072d17fc906044015b6020604051808303816000875af11580156112e4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125a919061209c565b6040517f0cfed5610000000000000000000000000000000000000000000000000000000081527f0400000000000000000000000000000000000000000000000000000000000000600482015260248101829052600090606490630cfed561906044016112c5565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0400000000000000000000000000000000000000000000000000000000000000600482015267ffffffffffffffff8216602482015260009060649063d9b60b60906044016112c5565b6000806113f484600001518460000151611835565b90506114238161140c8660000151866000015161184a565b61141e8760200151876020015161185f565b611874565b949350505050565b60008061144084600001518460000151611835565b90506114238161145886600001518660000151611938565b61141e8760200151876020015161194d565b6000606463fe9c73d161147e83808061195e565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff0000000000000000000000000000000000000000000000000000000000909116600482015260248101869052604481018590526064015b6020604051808303816000875af1158015611504573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611528919061209c565b9392505050565b60408051808201909152600080825260208201526040805180820190915260008082526020820152611569846020015184602001516119bb565b816020018181525050600061158685602001518560200151611938565b85518551919250611596916119bb565b8083526115af9082906115aa8160016119d0565b611a5a565b8252509392505050565b604080518082019091526000808252602082015260408051808201909152600080825260208201526115f48585602001518560200151611a5a565b602082015283518351611608918791611a5a565b8152949350505050565b6040805180820190915260008082526020820152604080518082019091526000808252602082015261164c84602001518460200151611a6f565b602080830182905285015160009161166391611938565b8551855191925061167391611a6f565b8083526115af9082906115aa816001611a84565b6040517f134eb8900000000000000000000000000000000000000000000000000000000081527f0400000000000000000000000000000000000000000000000000000000000000600482015260009060649063134eb890906024016020604051808303816000875af1158015611701573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611725919061209c565b905090565b805160208201516040517fe4f36e1000000000000000000000000000000000000000000000000000000000815260009260649263e4f36e10926112c5927f04000000000000000000000000000000000000000000000000000000000000009290916004016120b5565b60408051606083901b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660208201528151601481830301815260348201928390527f3c6f0e6800000000000000000000000000000000000000000000000000000000909252600091606491633c6f0e68916114e5917f04000000000000000000000000000000000000000000000000000000000000009188916038016120b5565b60006064637c12a1eb61147e6004808561195e565b60006064636d82e45e61147e6004808561195e565b6000606463813b207461147e6004808561195e565b600060646320cc408d61188883808061195e565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff000000000000000000000000000000000000000000000000000000000090911660048201526024810187905260448101869052606481018590526084016020604051808303816000875af1158015611914573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611423919061209c565b6000606463dd14869361147e6004808561195e565b6000606463145fca2c61147e600480855b60008160028111156119725761197261206d565b60ff1660088460048111156119895761198961206d565b61ffff16901b61ffff1660108660048111156119a7576119a761206d565b62ffffff16901b171760e81b949350505050565b6000606463371d1bf261147e6004808561195e565b6000606463371d1bf26119e6600480600261195e565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff000000000000000000000000000000000000000000000000000000000090911660048201526024810186905267ffffffffffffffff851660448201526064016114e5565b600060646320cc408d6118886004808561195e565b60006064638c5d015061147e6004808561195e565b60006064638c5d01506119e6600480600261195e565b508054600082556001016002900490600052602060002090810190611abf9190611b08565b50565b50805460008255601f016020900490600052602060002090810190611abf9190611b08565b5080546000825560020290600052602060002090810190611abf9190611b21565b5b80821115611b1d5760008155600101611b09565b5090565b5b80821115611b1d5760008082556001820155600201611b22565b600060208284031215611b4e57600080fd5b5035919050565b60008083601f840112611b6757600080fd5b50813567ffffffffffffffff811115611b7f57600080fd5b6020830191508360208260051b8501011115611b9a57600080fd5b9250929050565b60008060208385031215611bb457600080fd5b823567ffffffffffffffff811115611bcb57600080fd5b611bd785828601611b55565b90969095509350505050565b6000806000806000806000806080898b031215611bff57600080fd5b883567ffffffffffffffff80821115611c1757600080fd5b611c238c838d01611b55565b909a50985060208b0135915080821115611c3c57600080fd5b611c488c838d01611b55565b909850965060408b0135915080821115611c6157600080fd5b611c6d8c838d01611b55565b909650945060608b0135915080821115611c8657600080fd5b50611c938b828c01611b55565b999c989b5096995094979396929594505050565b60008060008060008060608789031215611cc057600080fd5b863567ffffffffffffffff80821115611cd857600080fd5b611ce48a838b01611b55565b90985096506020890135915080821115611cfd57600080fd5b611d098a838b01611b55565b90965094506040890135915080821115611d2257600080fd5b50611d2f89828a01611b55565b979a9699509497509295939492505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060208284031215611d8257600080fd5b813560ff8116811461152857600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611df357611df3611d93565b5060010190565b600060208284031215611e0c57600080fd5b81356fffffffffffffffffffffffffffffffff8116811461152857600080fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1833603018112611e6057600080fd5b9190910192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715611ebc57611ebc611e6a565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715611f0957611f09611e6a565b604052919050565b60008136036060811215611f2457600080fd5b611f2c611e99565b6040821215611f3a57600080fd5b611f42611e99565b84358152602080860135818301529082526040850135925067ffffffffffffffff80841115611f7057600080fd5b92850192601f3681860112611f8457600080fd5b611f8c611e99565b806040870136811115611f9e57600080fd5b875b8181101561204057803586811115611fb85760008081fd5b89013686820112611fc95760008081fd5b803587811115611fdb57611fdb611e6a565b61200a897fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08984011601611ec2565b818152368a83850101111561201f5760008081fd5b818a84018b83013760009181018a0191909152855250928601928601611fa0565b505093850193909352509195945050505050565b60ff828116828216039081111561125a5761125a611d93565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6000602082840312156120ae57600080fd5b5051919050565b7fff000000000000000000000000000000000000000000000000000000000000008416815260006020848184015260606040840152835180606085015260005b81811015612111578581018301518582016080015282016120f5565b5060006080828601015260807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505094935050505056fea164736f6c6343000813000a";
281
+
282
+ type Miscellaneous128BitTestsContractConstructorParams =
283
+ | [signer?: Signer]
284
+ | ConstructorParameters<typeof ContractFactory>;
285
+
286
+ const isSuperArgs = (
287
+ xs: Miscellaneous128BitTestsContractConstructorParams
288
+ ): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;
289
+
290
+ export class Miscellaneous128BitTestsContract__factory extends ContractFactory {
291
+ constructor(...args: Miscellaneous128BitTestsContractConstructorParams) {
292
+ if (isSuperArgs(args)) {
293
+ super(...args);
294
+ } else {
295
+ super(_abi, _bytecode, args[0]);
296
+ }
297
+ }
298
+
299
+ override getDeployTransaction(
300
+ overrides?: NonPayableOverrides & { from?: string }
301
+ ): Promise<ContractDeployTransaction> {
302
+ return super.getDeployTransaction(overrides || {});
303
+ }
304
+ override deploy(overrides?: NonPayableOverrides & { from?: string }) {
305
+ return super.deploy(overrides || {}) as Promise<
306
+ Miscellaneous128BitTestsContract & {
307
+ deploymentTransaction(): ContractTransactionResponse;
308
+ }
309
+ >;
310
+ }
311
+ override connect(
312
+ runner: ContractRunner | null
313
+ ): Miscellaneous128BitTestsContract__factory {
314
+ return super.connect(runner) as Miscellaneous128BitTestsContract__factory;
315
+ }
316
+
317
+ static readonly bytecode = _bytecode;
318
+ static readonly abi = _abi;
319
+ static createInterface(): Miscellaneous128BitTestsContractInterface {
320
+ return new Interface(_abi) as Miscellaneous128BitTestsContractInterface;
321
+ }
322
+ static connect(
323
+ address: string,
324
+ runner?: ContractRunner | null
325
+ ): Miscellaneous128BitTestsContract {
326
+ return new Contract(
327
+ address,
328
+ _abi,
329
+ runner
330
+ ) as unknown as Miscellaneous128BitTestsContract;
331
+ }
332
+ }