@coti-io/coti-contracts 1.0.3 → 1.0.5
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.
- package/contracts/access/DataPrivacyFramework/extensions/DataPrivacyFrameworkMpc.sol +6 -6
- package/contracts/mocks/utils/mpc/CheckedArithmeticWIthOverflowBitTestsContract.sol +309 -0
- package/contracts/token/PrivateERC721/extensions/IPrivateERC721URIStorage.sol +15 -0
- package/contracts/token/PrivateERC721/extensions/PrivateERC721URIStorage.sol +27 -1
- package/contracts/utils/mpc/MpcCore.sol +527 -18
- package/contracts/utils/mpc/MpcInterface.sol +1 -2
- package/package.json +1 -1
- package/test/utils/mpc/CheckedArithmetic.test.ts +41 -0
- package/typechain-types/contracts/mocks/utils/mpc/{ArithmeticTestsContract.sol → ArithmeticWithOverflowBitTestsContract.sol}/ArithmeticTestsContract.ts +52 -43
- package/typechain-types/contracts/mocks/utils/mpc/{ArithmeticTestsContract.sol → ArithmeticWithOverflowBitTestsContract.sol}/index.ts +0 -1
- package/typechain-types/contracts/mocks/utils/mpc/{ArithmeticTestsContract.sol/PrecompilesArythmeticTestsContract.ts → CheckedArithmeticWIthOverflowBitTestsContract.sol/CheckedArithmeticWithOverflowBitTestsContract.ts} +73 -60
- package/typechain-types/contracts/mocks/utils/mpc/CheckedArithmeticWIthOverflowBitTestsContract.sol/index.ts +4 -0
- package/typechain-types/contracts/mocks/utils/mpc/index.ts +4 -0
- package/typechain-types/contracts/{GasTest.ts → token/PrivateERC721/extensions/IPrivateERC721URIStorage.ts} +27 -18
- package/typechain-types/contracts/token/PrivateERC721/extensions/index.ts +1 -0
- package/typechain-types/contracts/utils/mpc/MpcInterface.sol/ExtendedOperations.ts +43 -18
- package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PrivateERC20Mock__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/token/PrivateERC721/PrivateERC721URIStorageMock__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/ArithmeticTestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/ArithmeticWithOverflowBitTestsContract.sol/ArithmeticTestsContract__factory.ts +387 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/{ArithmeticTestsContract.sol → ArithmeticWithOverflowBitTestsContract.sol}/index.ts +0 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/BitwiseTestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/CheckedArithmeticWIthOverflowBitTestsContract.sol/CheckedArithmeticWithOverflowBitTestsContract__factory.ts +397 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/CheckedArithmeticWIthOverflowBitTestsContract.sol/index.ts +4 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison1TestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison2TestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/MinMaxTestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/Miscellaneous1TestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/MiscellaneousTestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/OffboardToUserKeyTestContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/ShiftTestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/StringTestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferScalarTestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferTestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_16TestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_32TestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_64TestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_8TestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowanceScalarTestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowanceTestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/index.ts +2 -0
- package/typechain-types/factories/contracts/mocks/wallet/PrivateERC20Wallet/PrivateERC20WalletMock__factory.ts +1 -1
- package/typechain-types/factories/contracts/onboard/AccountOnboard__factory.ts +1 -1
- package/typechain-types/factories/contracts/token/PrivateERC721/extensions/IPrivateERC721URIStorage__factory.ts +55 -0
- package/typechain-types/factories/contracts/token/PrivateERC721/extensions/index.ts +1 -0
- package/typechain-types/factories/contracts/utils/mpc/MpcCore__factory.ts +1 -1
- package/typechain-types/factories/contracts/utils/mpc/MpcInterface.sol/ExtendedOperations__factory.ts +44 -19
- package/typechain-types/hardhat.d.ts +54 -0
- package/typechain-types/index.ts +4 -0
- package/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.ts +0 -69
- package/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.ts +0 -69
- package/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.ts +0 -69
- package/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/index.ts +0 -6
- package/typechain-types/contracts/mocks/utils/mpc/Comparison1Tests.Contract.sol/Comparison1TestsContract.ts +0 -340
- package/typechain-types/contracts/mocks/utils/mpc/Comparison1Tests.Contract.sol/index.ts +0 -4
- package/typechain-types/contracts/mocks/utils/mpc/Miscellaneous2TestsContract.ts +0 -384
- package/typechain-types/contracts/mocks/utils/mpc/OffboardToUserKeyTestsContract.sol/OffboardToUserKeyTestContract.ts +0 -221
- package/typechain-types/contracts/mocks/utils/mpc/OffboardToUserKeyTestsContract.sol/index.ts +0 -4
- package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowance64TestsContract.sol/TransferWithAllowance64TestsContract.ts +0 -251
- package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowance64TestsContract.sol/TransferWithAllowanceTestsContract.ts +0 -250
- package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowance64TestsContract.sol/index.ts +0 -5
- package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowance64TestsContract.ts +0 -389
- package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowance64_64TestsContract.sol/TransferWithAllowance64_64TestsContract.ts +0 -391
- package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowance64_64TestsContract.sol/TransferWithAllowance64_8TestsContract.ts +0 -391
- package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowance64_64TestsContract.sol/index.ts +0 -5
- package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowanceTestsContract.sol/TransferTestsContract.ts +0 -125
- package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowanceTestsContract.sol/TransferWithAllowanceTestsContract.ts +0 -125
- package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowanceTestsContract.sol/index.ts +0 -5
- package/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors__factory.ts +0 -127
- package/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors__factory.ts +0 -111
- package/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors__factory.ts +0 -128
- package/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/index.ts +0 -6
- package/typechain-types/factories/contracts/GasTest__factory.ts +0 -75
- package/typechain-types/factories/contracts/mocks/utils/mpc/ArithmeticTestsContract.sol/ArithmeticTestsContract__factory.ts +0 -387
- package/typechain-types/factories/contracts/mocks/utils/mpc/ArithmeticTestsContract.sol/PrecompilesArythmeticTestsContract__factory.ts +0 -388
- package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison1Tests.Contract.sol/Comparison1TestsContract__factory.ts +0 -361
- package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison1Tests.Contract.sol/index.ts +0 -4
- package/typechain-types/factories/contracts/mocks/utils/mpc/Miscellaneous2TestsContract__factory.ts +0 -432
- package/typechain-types/factories/contracts/mocks/utils/mpc/OffboardToUserKeyTestsContract.sol/OffboardToUserKeyTestContract__factory.ts +0 -261
- package/typechain-types/factories/contracts/mocks/utils/mpc/OffboardToUserKeyTestsContract.sol/index.ts +0 -4
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64TestsContract.sol/TransferWithAllowance64TestsContract__factory.ts +0 -294
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64TestsContract.sol/TransferWithAllowanceTestsContract__factory.ts +0 -292
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64TestsContract.sol/index.ts +0 -5
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64TestsContract__factory.ts +0 -720
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_64TestsContract.sol/TransferWithAllowance64_64TestsContract__factory.ts +0 -724
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_64TestsContract.sol/TransferWithAllowance64_8TestsContract__factory.ts +0 -724
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_64TestsContract.sol/index.ts +0 -5
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowanceTestsContract.sol/TransferTestsContract__factory.ts +0 -150
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowanceTestsContract.sol/TransferWithAllowanceTestsContract__factory.ts +0 -150
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowanceTestsContract.sol/index.ts +0 -5
|
@@ -103,8 +103,18 @@ library MpcCore {
|
|
|
103
103
|
}
|
|
104
104
|
|
|
105
105
|
function checkOverflow(gtBool bit) private {
|
|
106
|
+
// To revert on overflow, the require statement must fail when the overflow bit is set.
|
|
107
|
+
// Naturally, we would check that the overflow bit is 0.
|
|
108
|
+
// However, directly requiring the bit to be 0 causes gas estimation to fail, as it always returns 1.
|
|
109
|
+
// To handle this, we apply a NOT operation to the bit and require the result to be 1.
|
|
110
|
+
//
|
|
111
|
+
// Summary of all cases:
|
|
112
|
+
// 1. **Overflow scenario**: The overflow bit is 1 → NOT operation returns 0 → require fails → transaction reverts.
|
|
113
|
+
// 2. **No overflow**: The overflow bit is 0 → NOT operation returns 1 → require passes → transaction proceeds.
|
|
114
|
+
// 3. **Gas estimation**: Decrypt always returns 1 during gas estimation → require passes → no impact on actual execution.
|
|
115
|
+
gtBool notBit = not(bit);
|
|
106
116
|
// revert on overflow
|
|
107
|
-
require(decrypt(
|
|
117
|
+
require(decrypt(notBit) == true, "overflow error");
|
|
108
118
|
}
|
|
109
119
|
|
|
110
120
|
function checkRes8(gtBool bit, gtUint8 res) private returns (gtUint8) {
|
|
@@ -167,10 +177,6 @@ library MpcCore {
|
|
|
167
177
|
return (share0, share1);
|
|
168
178
|
}
|
|
169
179
|
|
|
170
|
-
function deleteUserKey(bytes calldata signature) internal{
|
|
171
|
-
ExtendedOperations(address(MPC_PRECOMPILE)).DeleteUserKey(signature);
|
|
172
|
-
}
|
|
173
|
-
|
|
174
180
|
|
|
175
181
|
|
|
176
182
|
// =========== 1 bit operations ==============
|
|
@@ -305,6 +311,13 @@ library MpcCore {
|
|
|
305
311
|
return checkRes8(gtBool.wrap(bit), gtUint8.wrap(res));
|
|
306
312
|
}
|
|
307
313
|
|
|
314
|
+
function checkedAddWithOverflowBit(gtUint8 a, gtUint8 b) internal returns (gtBool, gtUint8) {
|
|
315
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
316
|
+
CheckedAdd(combineEnumsToBytes3(MPC_TYPE.SUINT8_T, MPC_TYPE.SUINT8_T, ARGS.BOTH_SECRET), gtUint8.unwrap(a), gtUint8.unwrap(b));
|
|
317
|
+
|
|
318
|
+
return (gtBool.wrap(bit), gtUint8.wrap(res));
|
|
319
|
+
}
|
|
320
|
+
|
|
308
321
|
function sub(gtUint8 a, gtUint8 b) internal returns (gtUint8) {
|
|
309
322
|
return gtUint8.wrap(ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
310
323
|
Sub(combineEnumsToBytes3(MPC_TYPE.SUINT8_T, MPC_TYPE.SUINT8_T, ARGS.BOTH_SECRET), gtUint8.unwrap(a), gtUint8.unwrap(b)));
|
|
@@ -317,6 +330,13 @@ library MpcCore {
|
|
|
317
330
|
return checkRes8(gtBool.wrap(bit), gtUint8.wrap(res));
|
|
318
331
|
}
|
|
319
332
|
|
|
333
|
+
function checkedSubWithOverflowBit(gtUint8 a, gtUint8 b) internal returns (gtBool, gtUint8) {
|
|
334
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
335
|
+
CheckedSub(combineEnumsToBytes3(MPC_TYPE.SUINT8_T, MPC_TYPE.SUINT8_T, ARGS.BOTH_SECRET), gtUint8.unwrap(a), gtUint8.unwrap(b));
|
|
336
|
+
|
|
337
|
+
return (gtBool.wrap(bit), gtUint8.wrap(res));
|
|
338
|
+
}
|
|
339
|
+
|
|
320
340
|
function mul(gtUint8 a, gtUint8 b) internal returns (gtUint8) {
|
|
321
341
|
return gtUint8.wrap(ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
322
342
|
Mul(combineEnumsToBytes3(MPC_TYPE.SUINT8_T, MPC_TYPE.SUINT8_T, ARGS.BOTH_SECRET), gtUint8.unwrap(a), gtUint8.unwrap(b)));
|
|
@@ -328,6 +348,12 @@ library MpcCore {
|
|
|
328
348
|
return checkRes8(gtBool.wrap(bit), gtUint8.wrap(res));
|
|
329
349
|
}
|
|
330
350
|
|
|
351
|
+
function checkedMulWithOverflowBit(gtUint8 a, gtUint8 b) internal returns (gtBool, gtUint8) {
|
|
352
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
353
|
+
CheckedMul(combineEnumsToBytes3(MPC_TYPE.SUINT8_T, MPC_TYPE.SUINT8_T, ARGS.BOTH_SECRET), gtUint8.unwrap(a), gtUint8.unwrap(b));
|
|
354
|
+
return (gtBool.wrap(bit), gtUint8.wrap(res));
|
|
355
|
+
}
|
|
356
|
+
|
|
331
357
|
function div(gtUint8 a, gtUint8 b) internal returns (gtUint8) {
|
|
332
358
|
return gtUint8.wrap(ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
333
359
|
Div(combineEnumsToBytes3(MPC_TYPE.SUINT8_T, MPC_TYPE.SUINT8_T, ARGS.BOTH_SECRET), gtUint8.unwrap(a), gtUint8.unwrap(b)));
|
|
@@ -460,7 +486,7 @@ library MpcCore {
|
|
|
460
486
|
return gtUint16.wrap(ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
461
487
|
Add(combineEnumsToBytes3(MPC_TYPE.SUINT16_T, MPC_TYPE.SUINT16_T, ARGS.BOTH_SECRET), gtUint16.unwrap(a), gtUint16.unwrap(b)));
|
|
462
488
|
}
|
|
463
|
-
|
|
489
|
+
|
|
464
490
|
function checkedAdd(gtUint16 a, gtUint16 b) internal returns (gtUint16) {
|
|
465
491
|
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
466
492
|
CheckedAdd(combineEnumsToBytes3(MPC_TYPE.SUINT16_T, MPC_TYPE.SUINT16_T, ARGS.BOTH_SECRET), gtUint16.unwrap(a), gtUint16.unwrap(b));
|
|
@@ -468,6 +494,13 @@ library MpcCore {
|
|
|
468
494
|
return checkRes16(gtBool.wrap(bit), gtUint16.wrap(res));
|
|
469
495
|
}
|
|
470
496
|
|
|
497
|
+
function checkedAddWithOverflowBit(gtUint16 a, gtUint16 b) internal returns (gtBool, gtUint16) {
|
|
498
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
499
|
+
CheckedAdd(combineEnumsToBytes3(MPC_TYPE.SUINT16_T, MPC_TYPE.SUINT16_T, ARGS.BOTH_SECRET), gtUint16.unwrap(a), gtUint16.unwrap(b));
|
|
500
|
+
|
|
501
|
+
return (gtBool.wrap(bit), gtUint16.wrap(res));
|
|
502
|
+
}
|
|
503
|
+
|
|
471
504
|
function sub(gtUint16 a, gtUint16 b) internal returns (gtUint16) {
|
|
472
505
|
return gtUint16.wrap(ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
473
506
|
Sub(combineEnumsToBytes3(MPC_TYPE.SUINT16_T, MPC_TYPE.SUINT16_T, ARGS.BOTH_SECRET), gtUint16.unwrap(a), gtUint16.unwrap(b)));
|
|
@@ -480,6 +513,13 @@ library MpcCore {
|
|
|
480
513
|
return checkRes16(gtBool.wrap(bit), gtUint16.wrap(res));
|
|
481
514
|
}
|
|
482
515
|
|
|
516
|
+
function checkedSubWithOverflowBit(gtUint16 a, gtUint16 b) internal returns (gtBool, gtUint16) {
|
|
517
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
518
|
+
CheckedSub(combineEnumsToBytes3(MPC_TYPE.SUINT16_T, MPC_TYPE.SUINT16_T, ARGS.BOTH_SECRET), gtUint16.unwrap(a), gtUint16.unwrap(b));
|
|
519
|
+
|
|
520
|
+
return (gtBool.wrap(bit), gtUint16.wrap(res));
|
|
521
|
+
}
|
|
522
|
+
|
|
483
523
|
function mul(gtUint16 a, gtUint16 b) internal returns (gtUint16) {
|
|
484
524
|
return gtUint16.wrap(ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
485
525
|
Mul(combineEnumsToBytes3(MPC_TYPE.SUINT16_T, MPC_TYPE.SUINT16_T, ARGS.BOTH_SECRET), gtUint16.unwrap(a), gtUint16.unwrap(b)));
|
|
@@ -492,6 +532,13 @@ library MpcCore {
|
|
|
492
532
|
return checkRes16(gtBool.wrap(bit), gtUint16.wrap(res));
|
|
493
533
|
}
|
|
494
534
|
|
|
535
|
+
function checkedMulWithOverflowBit(gtUint16 a, gtUint16 b) internal returns (gtBool, gtUint16) {
|
|
536
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
537
|
+
CheckedMul(combineEnumsToBytes3(MPC_TYPE.SUINT16_T, MPC_TYPE.SUINT16_T, ARGS.BOTH_SECRET), gtUint16.unwrap(a), gtUint16.unwrap(b));
|
|
538
|
+
|
|
539
|
+
return (gtBool.wrap(bit), gtUint16.wrap(res));
|
|
540
|
+
}
|
|
541
|
+
|
|
495
542
|
function div(gtUint16 a, gtUint16 b) internal returns (gtUint16) {
|
|
496
543
|
return gtUint16.wrap(ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
497
544
|
Div(combineEnumsToBytes3(MPC_TYPE.SUINT16_T, MPC_TYPE.SUINT16_T, ARGS.BOTH_SECRET), gtUint16.unwrap(a), gtUint16.unwrap(b)));
|
|
@@ -632,6 +679,13 @@ library MpcCore {
|
|
|
632
679
|
return checkRes32(gtBool.wrap(bit), gtUint32.wrap(res));
|
|
633
680
|
}
|
|
634
681
|
|
|
682
|
+
function checkedAddWithOverflowBit(gtUint32 a, gtUint32 b) internal returns (gtBool, gtUint32) {
|
|
683
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
684
|
+
CheckedAdd(combineEnumsToBytes3(MPC_TYPE.SUINT32_T, MPC_TYPE.SUINT32_T, ARGS.BOTH_SECRET), gtUint32.unwrap(a), gtUint32.unwrap(b));
|
|
685
|
+
|
|
686
|
+
return (gtBool.wrap(bit), gtUint32.wrap(res));
|
|
687
|
+
}
|
|
688
|
+
|
|
635
689
|
function sub(gtUint32 a, gtUint32 b) internal returns (gtUint32) {
|
|
636
690
|
return gtUint32.wrap(ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
637
691
|
Sub(combineEnumsToBytes3(MPC_TYPE.SUINT32_T, MPC_TYPE.SUINT32_T, ARGS.BOTH_SECRET), gtUint32.unwrap(a), gtUint32.unwrap(b)));
|
|
@@ -644,6 +698,13 @@ library MpcCore {
|
|
|
644
698
|
return checkRes32(gtBool.wrap(bit), gtUint32.wrap(res));
|
|
645
699
|
}
|
|
646
700
|
|
|
701
|
+
function checkedSubWithOverflowBit(gtUint32 a, gtUint32 b) internal returns (gtBool, gtUint32) {
|
|
702
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
703
|
+
CheckedSub(combineEnumsToBytes3(MPC_TYPE.SUINT32_T, MPC_TYPE.SUINT32_T, ARGS.BOTH_SECRET), gtUint32.unwrap(a), gtUint32.unwrap(b));
|
|
704
|
+
|
|
705
|
+
return (gtBool.wrap(bit), gtUint32.wrap(res));
|
|
706
|
+
}
|
|
707
|
+
|
|
647
708
|
function mul(gtUint32 a, gtUint32 b) internal returns (gtUint32) {
|
|
648
709
|
return gtUint32.wrap(ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
649
710
|
Mul(combineEnumsToBytes3(MPC_TYPE.SUINT32_T, MPC_TYPE.SUINT32_T, ARGS.BOTH_SECRET), gtUint32.unwrap(a), gtUint32.unwrap(b)));
|
|
@@ -652,10 +713,17 @@ library MpcCore {
|
|
|
652
713
|
function checkedMul(gtUint32 a, gtUint32 b) internal returns (gtUint32) {
|
|
653
714
|
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
654
715
|
CheckedMul(combineEnumsToBytes3(MPC_TYPE.SUINT32_T, MPC_TYPE.SUINT32_T, ARGS.BOTH_SECRET), gtUint32.unwrap(a), gtUint32.unwrap(b));
|
|
655
|
-
|
|
716
|
+
|
|
656
717
|
return checkRes32(gtBool.wrap(bit), gtUint32.wrap(res));
|
|
657
718
|
}
|
|
658
719
|
|
|
720
|
+
function checkedMulWithOverflowBit(gtUint32 a, gtUint32 b) internal returns (gtBool, gtUint32) {
|
|
721
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
722
|
+
CheckedMul(combineEnumsToBytes3(MPC_TYPE.SUINT32_T, MPC_TYPE.SUINT32_T, ARGS.BOTH_SECRET), gtUint32.unwrap(a), gtUint32.unwrap(b));
|
|
723
|
+
|
|
724
|
+
return (gtBool.wrap(bit), gtUint32.wrap(res));
|
|
725
|
+
}
|
|
726
|
+
|
|
659
727
|
function div(gtUint32 a, gtUint32 b) internal returns (gtUint32) {
|
|
660
728
|
return gtUint32.wrap(ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
661
729
|
Div(combineEnumsToBytes3(MPC_TYPE.SUINT32_T, MPC_TYPE.SUINT32_T, ARGS.BOTH_SECRET), gtUint32.unwrap(a), gtUint32.unwrap(b)));
|
|
@@ -797,6 +865,13 @@ library MpcCore {
|
|
|
797
865
|
return checkRes64(gtBool.wrap(bit), gtUint64.wrap(res));
|
|
798
866
|
}
|
|
799
867
|
|
|
868
|
+
function checkedAddWithOverflowBit(gtUint64 a, gtUint64 b) internal returns (gtBool, gtUint64) {
|
|
869
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
870
|
+
CheckedAdd(combineEnumsToBytes3(MPC_TYPE.SUINT64_T, MPC_TYPE.SUINT64_T, ARGS.BOTH_SECRET), gtUint64.unwrap(a), gtUint64.unwrap(b));
|
|
871
|
+
|
|
872
|
+
return (gtBool.wrap(bit), gtUint64.wrap(res));
|
|
873
|
+
}
|
|
874
|
+
|
|
800
875
|
function sub(gtUint64 a, gtUint64 b) internal returns (gtUint64) {
|
|
801
876
|
return gtUint64.wrap(ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
802
877
|
Sub(combineEnumsToBytes3(MPC_TYPE.SUINT64_T, MPC_TYPE.SUINT64_T, ARGS.BOTH_SECRET), gtUint64.unwrap(a), gtUint64.unwrap(b)));
|
|
@@ -809,6 +884,13 @@ library MpcCore {
|
|
|
809
884
|
return checkRes64(gtBool.wrap(bit), gtUint64.wrap(res));
|
|
810
885
|
}
|
|
811
886
|
|
|
887
|
+
function checkedSubWithOverflowBit(gtUint64 a, gtUint64 b) internal returns (gtBool, gtUint64) {
|
|
888
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
889
|
+
CheckedSub(combineEnumsToBytes3(MPC_TYPE.SUINT64_T, MPC_TYPE.SUINT64_T, ARGS.BOTH_SECRET), gtUint64.unwrap(a), gtUint64.unwrap(b));
|
|
890
|
+
|
|
891
|
+
return (gtBool.wrap(bit), gtUint64.wrap(res));
|
|
892
|
+
}
|
|
893
|
+
|
|
812
894
|
function mul(gtUint64 a, gtUint64 b) internal returns (gtUint64) {
|
|
813
895
|
return gtUint64.wrap(ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
814
896
|
Mul(combineEnumsToBytes3(MPC_TYPE.SUINT64_T, MPC_TYPE.SUINT64_T, ARGS.BOTH_SECRET), gtUint64.unwrap(a), gtUint64.unwrap(b)));
|
|
@@ -821,6 +903,13 @@ library MpcCore {
|
|
|
821
903
|
return checkRes64(gtBool.wrap(bit), gtUint64.wrap(res));
|
|
822
904
|
}
|
|
823
905
|
|
|
906
|
+
function checkedMulWithOverflowBit(gtUint64 a, gtUint64 b) internal returns (gtBool, gtUint64) {
|
|
907
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
908
|
+
CheckedMul(combineEnumsToBytes3(MPC_TYPE.SUINT64_T, MPC_TYPE.SUINT64_T, ARGS.BOTH_SECRET), gtUint64.unwrap(a), gtUint64.unwrap(b));
|
|
909
|
+
|
|
910
|
+
return (gtBool.wrap(bit), gtUint64.wrap(res));
|
|
911
|
+
}
|
|
912
|
+
|
|
824
913
|
function div(gtUint64 a, gtUint64 b) internal returns (gtUint64) {
|
|
825
914
|
return gtUint64.wrap(ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
826
915
|
Div(combineEnumsToBytes3(MPC_TYPE.SUINT64_T, MPC_TYPE.SUINT64_T, ARGS.BOTH_SECRET), gtUint64.unwrap(a), gtUint64.unwrap(b)));
|
|
@@ -1067,6 +1156,13 @@ library MpcCore {
|
|
|
1067
1156
|
return checkRes8(gtBool.wrap(bit), gtUint8.wrap(res));
|
|
1068
1157
|
}
|
|
1069
1158
|
|
|
1159
|
+
function checkedAddWithOverflowBit(uint8 a, gtUint8 b) internal returns (gtBool, gtUint8) {
|
|
1160
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
1161
|
+
CheckedAdd(combineEnumsToBytes3(MPC_TYPE.SUINT8_T, MPC_TYPE.SUINT8_T, ARGS.LHS_PUBLIC), uint256(a), gtUint8.unwrap(b));
|
|
1162
|
+
|
|
1163
|
+
return (gtBool.wrap(bit), gtUint8.wrap(res));
|
|
1164
|
+
}
|
|
1165
|
+
|
|
1070
1166
|
function sub(uint8 a, gtUint8 b) internal returns (gtUint8) {
|
|
1071
1167
|
return gtUint8.wrap(ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
1072
1168
|
Sub(combineEnumsToBytes3(MPC_TYPE.SUINT8_T, MPC_TYPE.SUINT8_T, ARGS.LHS_PUBLIC), uint256(a), gtUint8.unwrap(b)));
|
|
@@ -1079,6 +1175,13 @@ library MpcCore {
|
|
|
1079
1175
|
return checkRes8(gtBool.wrap(bit), gtUint8.wrap(res));
|
|
1080
1176
|
}
|
|
1081
1177
|
|
|
1178
|
+
function checkedSubWithOverflowBit(uint8 a, gtUint8 b) internal returns (gtBool, gtUint8) {
|
|
1179
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
1180
|
+
CheckedSub(combineEnumsToBytes3(MPC_TYPE.SUINT8_T, MPC_TYPE.SUINT8_T, ARGS.LHS_PUBLIC), uint256(a), gtUint8.unwrap(b));
|
|
1181
|
+
|
|
1182
|
+
return (gtBool.wrap(bit), gtUint8.wrap(res));
|
|
1183
|
+
}
|
|
1184
|
+
|
|
1082
1185
|
function mul(uint8 a, gtUint8 b) internal returns (gtUint8) {
|
|
1083
1186
|
return gtUint8.wrap(ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
1084
1187
|
Mul(combineEnumsToBytes3(MPC_TYPE.SUINT8_T, MPC_TYPE.SUINT8_T, ARGS.LHS_PUBLIC), uint256(a), gtUint8.unwrap(b)));
|
|
@@ -1091,6 +1194,13 @@ library MpcCore {
|
|
|
1091
1194
|
return checkRes8(gtBool.wrap(bit), gtUint8.wrap(res));
|
|
1092
1195
|
}
|
|
1093
1196
|
|
|
1197
|
+
function checkedMulWithOverflowBit(uint8 a, gtUint8 b) internal returns (gtBool, gtUint8) {
|
|
1198
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
1199
|
+
CheckedMul(combineEnumsToBytes3(MPC_TYPE.SUINT8_T, MPC_TYPE.SUINT8_T, ARGS.LHS_PUBLIC), uint256(a), gtUint8.unwrap(b));
|
|
1200
|
+
|
|
1201
|
+
return (gtBool.wrap(bit), gtUint8.wrap(res));
|
|
1202
|
+
}
|
|
1203
|
+
|
|
1094
1204
|
function div(uint8 a, gtUint8 b) internal returns (gtUint8) {
|
|
1095
1205
|
return gtUint8.wrap(ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
1096
1206
|
Div(combineEnumsToBytes3(MPC_TYPE.SUINT8_T, MPC_TYPE.SUINT8_T, ARGS.LHS_PUBLIC), uint256(a), gtUint8.unwrap(b)));
|
|
@@ -1176,6 +1286,13 @@ library MpcCore {
|
|
|
1176
1286
|
return checkRes16(gtBool.wrap(bit), gtUint16.wrap(res));
|
|
1177
1287
|
}
|
|
1178
1288
|
|
|
1289
|
+
function checkedAddWithOverflowBit(uint16 a, gtUint16 b) internal returns (gtBool, gtUint16) {
|
|
1290
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
1291
|
+
CheckedAdd(combineEnumsToBytes3(MPC_TYPE.SUINT16_T, MPC_TYPE.SUINT16_T, ARGS.LHS_PUBLIC), uint256(a), gtUint16.unwrap(b));
|
|
1292
|
+
|
|
1293
|
+
return (gtBool.wrap(bit), gtUint16.wrap(res));
|
|
1294
|
+
}
|
|
1295
|
+
|
|
1179
1296
|
function sub(uint16 a, gtUint16 b) internal returns (gtUint16) {
|
|
1180
1297
|
return gtUint16.wrap(ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
1181
1298
|
Sub(combineEnumsToBytes3(MPC_TYPE.SUINT16_T, MPC_TYPE.SUINT16_T, ARGS.LHS_PUBLIC), uint256(a), gtUint16.unwrap(b)));
|
|
@@ -1188,6 +1305,13 @@ library MpcCore {
|
|
|
1188
1305
|
return checkRes16(gtBool.wrap(bit), gtUint16.wrap(res));
|
|
1189
1306
|
}
|
|
1190
1307
|
|
|
1308
|
+
function checkedSubWithOverflowBit(uint16 a, gtUint16 b) internal returns (gtBool, gtUint16) {
|
|
1309
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
1310
|
+
CheckedSub(combineEnumsToBytes3(MPC_TYPE.SUINT16_T, MPC_TYPE.SUINT16_T, ARGS.LHS_PUBLIC), uint256(a), gtUint16.unwrap(b));
|
|
1311
|
+
|
|
1312
|
+
return (gtBool.wrap(bit), gtUint16.wrap(res));
|
|
1313
|
+
}
|
|
1314
|
+
|
|
1191
1315
|
function mul(uint16 a, gtUint16 b) internal returns (gtUint16) {
|
|
1192
1316
|
return gtUint16.wrap(ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
1193
1317
|
Mul(combineEnumsToBytes3(MPC_TYPE.SUINT16_T, MPC_TYPE.SUINT16_T, ARGS.LHS_PUBLIC), uint256(a), gtUint16.unwrap(b)));
|
|
@@ -1200,6 +1324,13 @@ library MpcCore {
|
|
|
1200
1324
|
return checkRes16(gtBool.wrap(bit), gtUint16.wrap(res));
|
|
1201
1325
|
}
|
|
1202
1326
|
|
|
1327
|
+
function checkedMulWithOverflowBit(uint16 a, gtUint16 b) internal returns (gtBool, gtUint16) {
|
|
1328
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
1329
|
+
CheckedMul(combineEnumsToBytes3(MPC_TYPE.SUINT16_T, MPC_TYPE.SUINT16_T, ARGS.LHS_PUBLIC), uint256(a), gtUint16.unwrap(b));
|
|
1330
|
+
|
|
1331
|
+
return (gtBool.wrap(bit), gtUint16.wrap(res));
|
|
1332
|
+
}
|
|
1333
|
+
|
|
1203
1334
|
function div(uint16 a, gtUint16 b) internal returns (gtUint16) {
|
|
1204
1335
|
return gtUint16.wrap(ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
1205
1336
|
Div(combineEnumsToBytes3(MPC_TYPE.SUINT16_T, MPC_TYPE.SUINT16_T, ARGS.LHS_PUBLIC), uint256(a), gtUint16.unwrap(b)));
|
|
@@ -1285,6 +1416,13 @@ library MpcCore {
|
|
|
1285
1416
|
return checkRes32(gtBool.wrap(bit), gtUint32.wrap(res));
|
|
1286
1417
|
}
|
|
1287
1418
|
|
|
1419
|
+
function checkedAddWithOverflowBit(uint32 a, gtUint32 b) internal returns (gtBool, gtUint32) {
|
|
1420
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
1421
|
+
CheckedAdd(combineEnumsToBytes3(MPC_TYPE.SUINT32_T, MPC_TYPE.SUINT32_T, ARGS.LHS_PUBLIC), uint256(a), gtUint32.unwrap(b));
|
|
1422
|
+
|
|
1423
|
+
return (gtBool.wrap(bit), gtUint32.wrap(res));
|
|
1424
|
+
}
|
|
1425
|
+
|
|
1288
1426
|
function sub(uint32 a, gtUint32 b) internal returns (gtUint32) {
|
|
1289
1427
|
return gtUint32.wrap(ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
1290
1428
|
Sub(combineEnumsToBytes3(MPC_TYPE.SUINT32_T, MPC_TYPE.SUINT32_T, ARGS.LHS_PUBLIC), uint256(a), gtUint32.unwrap(b)));
|
|
@@ -1297,6 +1435,13 @@ library MpcCore {
|
|
|
1297
1435
|
return checkRes32(gtBool.wrap(bit), gtUint32.wrap(res));
|
|
1298
1436
|
}
|
|
1299
1437
|
|
|
1438
|
+
function checkedSubWithOverflowBit(uint32 a, gtUint32 b) internal returns (gtBool, gtUint32) {
|
|
1439
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
1440
|
+
CheckedSub(combineEnumsToBytes3(MPC_TYPE.SUINT32_T, MPC_TYPE.SUINT32_T, ARGS.LHS_PUBLIC), uint256(a), gtUint32.unwrap(b));
|
|
1441
|
+
|
|
1442
|
+
return (gtBool.wrap(bit), gtUint32.wrap(res));
|
|
1443
|
+
}
|
|
1444
|
+
|
|
1300
1445
|
function mul(uint32 a, gtUint32 b) internal returns (gtUint32) {
|
|
1301
1446
|
return gtUint32.wrap(ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
1302
1447
|
Mul(combineEnumsToBytes3(MPC_TYPE.SUINT32_T, MPC_TYPE.SUINT32_T, ARGS.LHS_PUBLIC), uint256(a), gtUint32.unwrap(b)));
|
|
@@ -1309,6 +1454,13 @@ library MpcCore {
|
|
|
1309
1454
|
return checkRes32(gtBool.wrap(bit), gtUint32.wrap(res));
|
|
1310
1455
|
}
|
|
1311
1456
|
|
|
1457
|
+
function checkedMulWithOverflowBit(uint32 a, gtUint32 b) internal returns (gtBool, gtUint32) {
|
|
1458
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
1459
|
+
CheckedMul(combineEnumsToBytes3(MPC_TYPE.SUINT32_T, MPC_TYPE.SUINT32_T, ARGS.LHS_PUBLIC), uint256(a), gtUint32.unwrap(b));
|
|
1460
|
+
|
|
1461
|
+
return (gtBool.wrap(bit), gtUint32.wrap(res));
|
|
1462
|
+
}
|
|
1463
|
+
|
|
1312
1464
|
function div(uint32 a, gtUint32 b) internal returns (gtUint32) {
|
|
1313
1465
|
return gtUint32.wrap(ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
1314
1466
|
Div(combineEnumsToBytes3(MPC_TYPE.SUINT32_T, MPC_TYPE.SUINT32_T, ARGS.LHS_PUBLIC), uint256(a), gtUint32.unwrap(b)));
|
|
@@ -1394,6 +1546,13 @@ library MpcCore {
|
|
|
1394
1546
|
return checkRes64(gtBool.wrap(bit), gtUint64.wrap(res));
|
|
1395
1547
|
}
|
|
1396
1548
|
|
|
1549
|
+
function checkedAddWithOverflowBit(uint64 a, gtUint64 b) internal returns (gtBool, gtUint64) {
|
|
1550
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
1551
|
+
CheckedAdd(combineEnumsToBytes3(MPC_TYPE.SUINT64_T, MPC_TYPE.SUINT64_T, ARGS.LHS_PUBLIC), uint256(a), gtUint64.unwrap(b));
|
|
1552
|
+
|
|
1553
|
+
return (gtBool.wrap(bit), gtUint64.wrap(res));
|
|
1554
|
+
}
|
|
1555
|
+
|
|
1397
1556
|
function sub(uint64 a, gtUint64 b) internal returns (gtUint64) {
|
|
1398
1557
|
return gtUint64.wrap(ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
1399
1558
|
Sub(combineEnumsToBytes3(MPC_TYPE.SUINT64_T, MPC_TYPE.SUINT64_T, ARGS.LHS_PUBLIC), uint256(a), gtUint64.unwrap(b)));
|
|
@@ -1406,6 +1565,13 @@ library MpcCore {
|
|
|
1406
1565
|
return checkRes64(gtBool.wrap(bit), gtUint64.wrap(res));
|
|
1407
1566
|
}
|
|
1408
1567
|
|
|
1568
|
+
function checkedSubWithOverflowBit(uint64 a, gtUint64 b) internal returns (gtBool, gtUint64) {
|
|
1569
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
1570
|
+
CheckedSub(combineEnumsToBytes3(MPC_TYPE.SUINT64_T, MPC_TYPE.SUINT64_T, ARGS.LHS_PUBLIC), uint256(a), gtUint64.unwrap(b));
|
|
1571
|
+
|
|
1572
|
+
return (gtBool.wrap(bit), gtUint64.wrap(res));
|
|
1573
|
+
}
|
|
1574
|
+
|
|
1409
1575
|
function mul(uint64 a, gtUint64 b) internal returns (gtUint64) {
|
|
1410
1576
|
return gtUint64.wrap(ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
1411
1577
|
Mul(combineEnumsToBytes3(MPC_TYPE.SUINT64_T, MPC_TYPE.SUINT64_T, ARGS.LHS_PUBLIC), uint256(a), gtUint64.unwrap(b)));
|
|
@@ -1418,6 +1584,13 @@ library MpcCore {
|
|
|
1418
1584
|
return checkRes64(gtBool.wrap(bit), gtUint64.wrap(res));
|
|
1419
1585
|
}
|
|
1420
1586
|
|
|
1587
|
+
function checkedMulWithOverflowBit(uint64 a, gtUint64 b) internal returns (gtBool, gtUint64) {
|
|
1588
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
1589
|
+
CheckedMul(combineEnumsToBytes3(MPC_TYPE.SUINT64_T, MPC_TYPE.SUINT64_T, ARGS.LHS_PUBLIC), uint256(a), gtUint64.unwrap(b));
|
|
1590
|
+
|
|
1591
|
+
return (gtBool.wrap(bit), gtUint64.wrap(res));
|
|
1592
|
+
}
|
|
1593
|
+
|
|
1421
1594
|
function div(uint64 a, gtUint64 b) internal returns (gtUint64) {
|
|
1422
1595
|
return gtUint64.wrap(ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
1423
1596
|
Div(combineEnumsToBytes3(MPC_TYPE.SUINT64_T, MPC_TYPE.SUINT64_T, ARGS.LHS_PUBLIC), uint256(a), gtUint64.unwrap(b)));
|
|
@@ -1504,6 +1677,13 @@ library MpcCore {
|
|
|
1504
1677
|
return checkRes8(gtBool.wrap(bit), gtUint8.wrap(res));
|
|
1505
1678
|
}
|
|
1506
1679
|
|
|
1680
|
+
function checkedAddWithOverflowBit(gtUint8 a, uint8 b) internal returns (gtBool, gtUint8) {
|
|
1681
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
1682
|
+
CheckedAdd(combineEnumsToBytes3(MPC_TYPE.SUINT8_T, MPC_TYPE.SUINT8_T, ARGS.RHS_PUBLIC), gtUint8.unwrap(a), uint256(b));
|
|
1683
|
+
|
|
1684
|
+
return (gtBool.wrap(bit), gtUint8.wrap(res));
|
|
1685
|
+
}
|
|
1686
|
+
|
|
1507
1687
|
function sub(gtUint8 a, uint8 b) internal returns (gtUint8) {
|
|
1508
1688
|
return gtUint8.wrap(ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
1509
1689
|
Sub(combineEnumsToBytes3(MPC_TYPE.SUINT8_T, MPC_TYPE.SUINT8_T, ARGS.RHS_PUBLIC), gtUint8.unwrap(a), uint256(b)));
|
|
@@ -1516,6 +1696,13 @@ library MpcCore {
|
|
|
1516
1696
|
return checkRes8(gtBool.wrap(bit), gtUint8.wrap(res));
|
|
1517
1697
|
}
|
|
1518
1698
|
|
|
1699
|
+
function checkedSubWithOverflowBit(gtUint8 a, uint8 b) internal returns (gtBool, gtUint8) {
|
|
1700
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
1701
|
+
CheckedSub(combineEnumsToBytes3(MPC_TYPE.SUINT8_T, MPC_TYPE.SUINT8_T, ARGS.RHS_PUBLIC), gtUint8.unwrap(a), uint256(b));
|
|
1702
|
+
|
|
1703
|
+
return (gtBool.wrap(bit), gtUint8.wrap(res));
|
|
1704
|
+
}
|
|
1705
|
+
|
|
1519
1706
|
function mul(gtUint8 a, uint8 b) internal returns (gtUint8) {
|
|
1520
1707
|
return gtUint8.wrap(ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
1521
1708
|
Mul(combineEnumsToBytes3(MPC_TYPE.SUINT8_T, MPC_TYPE.SUINT8_T, ARGS.RHS_PUBLIC), gtUint8.unwrap(a), uint256(b)));
|
|
@@ -1528,6 +1715,13 @@ library MpcCore {
|
|
|
1528
1715
|
return checkRes8(gtBool.wrap(bit), gtUint8.wrap(res));
|
|
1529
1716
|
}
|
|
1530
1717
|
|
|
1718
|
+
function checkedMulWithOverflowBit(gtUint8 a, uint8 b) internal returns (gtBool, gtUint8) {
|
|
1719
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
1720
|
+
CheckedMul(combineEnumsToBytes3(MPC_TYPE.SUINT8_T, MPC_TYPE.SUINT8_T, ARGS.RHS_PUBLIC), gtUint8.unwrap(a), uint256(b));
|
|
1721
|
+
|
|
1722
|
+
return (gtBool.wrap(bit), gtUint8.wrap(res));
|
|
1723
|
+
}
|
|
1724
|
+
|
|
1531
1725
|
function div(gtUint8 a, uint8 b) internal returns (gtUint8) {
|
|
1532
1726
|
return gtUint8.wrap(ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
1533
1727
|
Div(combineEnumsToBytes3(MPC_TYPE.SUINT8_T, MPC_TYPE.SUINT8_T, ARGS.RHS_PUBLIC), gtUint8.unwrap(a), uint256(b)));
|
|
@@ -1622,6 +1816,13 @@ library MpcCore {
|
|
|
1622
1816
|
return checkRes16(gtBool.wrap(bit), gtUint16.wrap(res));
|
|
1623
1817
|
}
|
|
1624
1818
|
|
|
1819
|
+
function checkedAddWithOverflowBit(gtUint16 a, uint16 b) internal returns (gtBool, gtUint16) {
|
|
1820
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
1821
|
+
CheckedAdd(combineEnumsToBytes3(MPC_TYPE.SUINT16_T, MPC_TYPE.SUINT16_T, ARGS.RHS_PUBLIC), gtUint16.unwrap(a), uint256(b));
|
|
1822
|
+
|
|
1823
|
+
return (gtBool.wrap(bit), gtUint16.wrap(res));
|
|
1824
|
+
}
|
|
1825
|
+
|
|
1625
1826
|
function sub(gtUint16 a, uint16 b) internal returns (gtUint16) {
|
|
1626
1827
|
return gtUint16.wrap(ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
1627
1828
|
Sub(combineEnumsToBytes3(MPC_TYPE.SUINT16_T, MPC_TYPE.SUINT16_T, ARGS.RHS_PUBLIC), gtUint16.unwrap(a), uint256(b)));
|
|
@@ -1634,6 +1835,13 @@ library MpcCore {
|
|
|
1634
1835
|
return checkRes16(gtBool.wrap(bit), gtUint16.wrap(res));
|
|
1635
1836
|
}
|
|
1636
1837
|
|
|
1838
|
+
function checkedSubWithOverflowBit(gtUint16 a, uint16 b) internal returns (gtBool, gtUint16) {
|
|
1839
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
1840
|
+
CheckedSub(combineEnumsToBytes3(MPC_TYPE.SUINT16_T, MPC_TYPE.SUINT16_T, ARGS.RHS_PUBLIC), gtUint16.unwrap(a), uint256(b));
|
|
1841
|
+
|
|
1842
|
+
return (gtBool.wrap(bit), gtUint16.wrap(res));
|
|
1843
|
+
}
|
|
1844
|
+
|
|
1637
1845
|
function mul(gtUint16 a, uint16 b) internal returns (gtUint16) {
|
|
1638
1846
|
return gtUint16.wrap(ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
1639
1847
|
Mul(combineEnumsToBytes3(MPC_TYPE.SUINT16_T, MPC_TYPE.SUINT16_T, ARGS.RHS_PUBLIC), gtUint16.unwrap(a), uint256(b)));
|
|
@@ -1646,6 +1854,13 @@ library MpcCore {
|
|
|
1646
1854
|
return checkRes16(gtBool.wrap(bit), gtUint16.wrap(res));
|
|
1647
1855
|
}
|
|
1648
1856
|
|
|
1857
|
+
function checkedMulWithOverflowBit(gtUint16 a, uint16 b) internal returns (gtBool, gtUint16) {
|
|
1858
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
1859
|
+
CheckedMul(combineEnumsToBytes3(MPC_TYPE.SUINT16_T, MPC_TYPE.SUINT16_T, ARGS.RHS_PUBLIC), gtUint16.unwrap(a), uint256(b));
|
|
1860
|
+
|
|
1861
|
+
return (gtBool.wrap(bit), gtUint16.wrap(res));
|
|
1862
|
+
}
|
|
1863
|
+
|
|
1649
1864
|
function div(gtUint16 a, uint16 b) internal returns (gtUint16) {
|
|
1650
1865
|
return gtUint16.wrap(ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
1651
1866
|
Div(combineEnumsToBytes3(MPC_TYPE.SUINT16_T, MPC_TYPE.SUINT16_T, ARGS.RHS_PUBLIC), gtUint16.unwrap(a), uint256(b)));
|
|
@@ -1671,12 +1886,12 @@ library MpcCore {
|
|
|
1671
1886
|
Xor(combineEnumsToBytes3(MPC_TYPE.SUINT16_T, MPC_TYPE.SUINT16_T, ARGS.RHS_PUBLIC), gtUint16.unwrap(a), uint256(b)));
|
|
1672
1887
|
}
|
|
1673
1888
|
|
|
1674
|
-
function shl(gtUint16 a,
|
|
1889
|
+
function shl(gtUint16 a, uint8 b) internal returns (gtUint16) {
|
|
1675
1890
|
return gtUint16.wrap(ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
1676
1891
|
Shl(combineEnumsToBytes3(MPC_TYPE.SUINT16_T, MPC_TYPE.SUINT8_T, ARGS.RHS_PUBLIC), gtUint16.unwrap(a), uint256(b)));
|
|
1677
1892
|
}
|
|
1678
1893
|
|
|
1679
|
-
function shr(gtUint16 a,
|
|
1894
|
+
function shr(gtUint16 a, uint8 b) internal returns (gtUint16) {
|
|
1680
1895
|
return gtUint16.wrap(ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
1681
1896
|
Shr(combineEnumsToBytes3(MPC_TYPE.SUINT16_T, MPC_TYPE.SUINT8_T, ARGS.RHS_PUBLIC), gtUint16.unwrap(a), uint256(b)));
|
|
1682
1897
|
}
|
|
@@ -1741,6 +1956,13 @@ library MpcCore {
|
|
|
1741
1956
|
return checkRes32(gtBool.wrap(bit), gtUint32.wrap(res));
|
|
1742
1957
|
}
|
|
1743
1958
|
|
|
1959
|
+
function checkedAddWithOverflowBit(gtUint32 a, uint32 b) internal returns (gtBool, gtUint32) {
|
|
1960
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
1961
|
+
CheckedAdd(combineEnumsToBytes3(MPC_TYPE.SUINT32_T, MPC_TYPE.SUINT32_T, ARGS.RHS_PUBLIC), gtUint32.unwrap(a), uint256(b));
|
|
1962
|
+
|
|
1963
|
+
return (gtBool.wrap(bit), gtUint32.wrap(res));
|
|
1964
|
+
}
|
|
1965
|
+
|
|
1744
1966
|
function sub(gtUint32 a, uint32 b) internal returns (gtUint32) {
|
|
1745
1967
|
return gtUint32.wrap(ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
1746
1968
|
Sub(combineEnumsToBytes3(MPC_TYPE.SUINT32_T, MPC_TYPE.SUINT32_T, ARGS.RHS_PUBLIC), gtUint32.unwrap(a), uint256(b)));
|
|
@@ -1753,6 +1975,13 @@ library MpcCore {
|
|
|
1753
1975
|
return checkRes32(gtBool.wrap(bit), gtUint32.wrap(res));
|
|
1754
1976
|
}
|
|
1755
1977
|
|
|
1978
|
+
function checkedSubWithOverflowBit(gtUint32 a, uint32 b) internal returns (gtBool, gtUint32) {
|
|
1979
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
1980
|
+
CheckedSub(combineEnumsToBytes3(MPC_TYPE.SUINT32_T, MPC_TYPE.SUINT32_T, ARGS.RHS_PUBLIC), gtUint32.unwrap(a), uint256(b));
|
|
1981
|
+
|
|
1982
|
+
return (gtBool.wrap(bit), gtUint32.wrap(res));
|
|
1983
|
+
}
|
|
1984
|
+
|
|
1756
1985
|
function mul(gtUint32 a, uint32 b) internal returns (gtUint32) {
|
|
1757
1986
|
return gtUint32.wrap(ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
1758
1987
|
Mul(combineEnumsToBytes3(MPC_TYPE.SUINT32_T, MPC_TYPE.SUINT32_T, ARGS.RHS_PUBLIC), gtUint32.unwrap(a), uint256(b)));
|
|
@@ -1765,6 +1994,13 @@ library MpcCore {
|
|
|
1765
1994
|
return checkRes32(gtBool.wrap(bit), gtUint32.wrap(res));
|
|
1766
1995
|
}
|
|
1767
1996
|
|
|
1997
|
+
function checkedMulWithOverflowBit(gtUint32 a, uint32 b) internal returns (gtBool, gtUint32) {
|
|
1998
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
1999
|
+
CheckedMul(combineEnumsToBytes3(MPC_TYPE.SUINT32_T, MPC_TYPE.SUINT32_T, ARGS.RHS_PUBLIC), gtUint32.unwrap(a), uint256(b));
|
|
2000
|
+
|
|
2001
|
+
return (gtBool.wrap(bit), gtUint32.wrap(res));
|
|
2002
|
+
}
|
|
2003
|
+
|
|
1768
2004
|
function div(gtUint32 a, uint32 b) internal returns (gtUint32) {
|
|
1769
2005
|
return gtUint32.wrap(ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
1770
2006
|
Div(combineEnumsToBytes3(MPC_TYPE.SUINT32_T, MPC_TYPE.SUINT32_T, ARGS.RHS_PUBLIC), gtUint32.unwrap(a), uint256(b)));
|
|
@@ -1789,14 +2025,14 @@ library MpcCore {
|
|
|
1789
2025
|
Xor(combineEnumsToBytes3(MPC_TYPE.SUINT32_T, MPC_TYPE.SUINT32_T, ARGS.RHS_PUBLIC), gtUint32.unwrap(a), uint256(b)));
|
|
1790
2026
|
}
|
|
1791
2027
|
|
|
1792
|
-
function shl(gtUint32 a,
|
|
2028
|
+
function shl(gtUint32 a, uint8 b) internal returns (gtUint32) {
|
|
1793
2029
|
return gtUint32.wrap(ExtendedOperations(MPC_PRECOMPILE).
|
|
1794
|
-
Shl(combineEnumsToBytes3(MPC_TYPE.SUINT32_T, MPC_TYPE.
|
|
2030
|
+
Shl(combineEnumsToBytes3(MPC_TYPE.SUINT32_T, MPC_TYPE.SUINT8_T, ARGS.RHS_PUBLIC), gtUint32.unwrap(a), uint256(b)));
|
|
1795
2031
|
}
|
|
1796
2032
|
|
|
1797
|
-
function shr(gtUint32 a,
|
|
2033
|
+
function shr(gtUint32 a, uint8 b) internal returns (gtUint32) {
|
|
1798
2034
|
return gtUint32.wrap(ExtendedOperations(MPC_PRECOMPILE).
|
|
1799
|
-
Shr(combineEnumsToBytes3(MPC_TYPE.SUINT32_T, MPC_TYPE.
|
|
2035
|
+
Shr(combineEnumsToBytes3(MPC_TYPE.SUINT32_T, MPC_TYPE.SUINT8_T, ARGS.RHS_PUBLIC), gtUint32.unwrap(a), uint256(b)));
|
|
1800
2036
|
}
|
|
1801
2037
|
|
|
1802
2038
|
function eq(gtUint32 a, uint32 b) internal returns (gtBool) {
|
|
@@ -1845,7 +2081,7 @@ library MpcCore {
|
|
|
1845
2081
|
}
|
|
1846
2082
|
|
|
1847
2083
|
|
|
1848
|
-
// =========== 64 bit operations ==============
|
|
2084
|
+
// =========== 64 bit operations ==============
|
|
1849
2085
|
|
|
1850
2086
|
function add(gtUint64 a, uint64 b) internal returns (gtUint64) {
|
|
1851
2087
|
return gtUint64.wrap(ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
@@ -1859,6 +2095,13 @@ library MpcCore {
|
|
|
1859
2095
|
return checkRes64(gtBool.wrap(bit), gtUint64.wrap(res));
|
|
1860
2096
|
}
|
|
1861
2097
|
|
|
2098
|
+
function checkedAddWithOverflowBit(gtUint64 a, uint64 b) internal returns (gtBool, gtUint64) {
|
|
2099
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
2100
|
+
CheckedAdd(combineEnumsToBytes3(MPC_TYPE.SUINT64_T, MPC_TYPE.SUINT64_T, ARGS.RHS_PUBLIC), gtUint64.unwrap(a), uint256(b));
|
|
2101
|
+
|
|
2102
|
+
return (gtBool.wrap(bit), gtUint64.wrap(res));
|
|
2103
|
+
}
|
|
2104
|
+
|
|
1862
2105
|
function sub(gtUint64 a, uint64 b) internal returns (gtUint64) {
|
|
1863
2106
|
return gtUint64.wrap(ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
1864
2107
|
Sub(combineEnumsToBytes3(MPC_TYPE.SUINT64_T, MPC_TYPE.SUINT64_T, ARGS.RHS_PUBLIC), gtUint64.unwrap(a), uint256(b)));
|
|
@@ -1871,6 +2114,13 @@ library MpcCore {
|
|
|
1871
2114
|
return checkRes64(gtBool.wrap(bit), gtUint64.wrap(res));
|
|
1872
2115
|
}
|
|
1873
2116
|
|
|
2117
|
+
function checkedSubWithOverflowBit(gtUint64 a, uint64 b) internal returns (gtBool, gtUint64) {
|
|
2118
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
2119
|
+
CheckedSub(combineEnumsToBytes3(MPC_TYPE.SUINT64_T, MPC_TYPE.SUINT64_T, ARGS.RHS_PUBLIC), gtUint64.unwrap(a), uint256(b));
|
|
2120
|
+
|
|
2121
|
+
return (gtBool.wrap(bit), gtUint64.wrap(res));
|
|
2122
|
+
}
|
|
2123
|
+
|
|
1874
2124
|
function mul(gtUint64 a, uint64 b) internal returns (gtUint64) {
|
|
1875
2125
|
return gtUint64.wrap(ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
1876
2126
|
Mul(combineEnumsToBytes3(MPC_TYPE.SUINT64_T, MPC_TYPE.SUINT64_T, ARGS.RHS_PUBLIC), gtUint64.unwrap(a), uint256(b)));
|
|
@@ -1883,6 +2133,13 @@ library MpcCore {
|
|
|
1883
2133
|
return checkRes64(gtBool.wrap(bit), gtUint64.wrap(res));
|
|
1884
2134
|
}
|
|
1885
2135
|
|
|
2136
|
+
function checkedMulWithOverflowBit(gtUint64 a, uint64 b) internal returns (gtBool, gtUint64) {
|
|
2137
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
2138
|
+
CheckedMul(combineEnumsToBytes3(MPC_TYPE.SUINT64_T, MPC_TYPE.SUINT64_T, ARGS.RHS_PUBLIC), gtUint64.unwrap(a), uint256(b));
|
|
2139
|
+
|
|
2140
|
+
return (gtBool.wrap(bit), gtUint64.wrap(res));
|
|
2141
|
+
}
|
|
2142
|
+
|
|
1886
2143
|
function div(gtUint64 a, uint64 b) internal returns (gtUint64) {
|
|
1887
2144
|
return gtUint64.wrap(ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
1888
2145
|
Div(combineEnumsToBytes3(MPC_TYPE.SUINT64_T, MPC_TYPE.SUINT64_T, ARGS.RHS_PUBLIC), gtUint64.unwrap(a), uint256(b)));
|
|
@@ -1908,14 +2165,14 @@ library MpcCore {
|
|
|
1908
2165
|
Xor(combineEnumsToBytes3(MPC_TYPE.SUINT64_T, MPC_TYPE.SUINT64_T, ARGS.RHS_PUBLIC), gtUint64.unwrap(a), uint256(b)));
|
|
1909
2166
|
}
|
|
1910
2167
|
|
|
1911
|
-
function shl(gtUint64 a,
|
|
2168
|
+
function shl(gtUint64 a, uint8 b) internal returns (gtUint64) {
|
|
1912
2169
|
return gtUint64.wrap(ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
1913
|
-
Shl(combineEnumsToBytes3(MPC_TYPE.SUINT64_T, MPC_TYPE.
|
|
2170
|
+
Shl(combineEnumsToBytes3(MPC_TYPE.SUINT64_T, MPC_TYPE.SUINT8_T, ARGS.RHS_PUBLIC), gtUint64.unwrap(a), uint256(b)));
|
|
1914
2171
|
}
|
|
1915
2172
|
|
|
1916
|
-
function shr(gtUint64 a,
|
|
2173
|
+
function shr(gtUint64 a, uint8 b) internal returns (gtUint64) {
|
|
1917
2174
|
return gtUint64.wrap(ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
1918
|
-
Shr(combineEnumsToBytes3(MPC_TYPE.SUINT64_T, MPC_TYPE.
|
|
2175
|
+
Shr(combineEnumsToBytes3(MPC_TYPE.SUINT64_T, MPC_TYPE.SUINT8_T, ARGS.RHS_PUBLIC), gtUint64.unwrap(a), uint256(b)));
|
|
1919
2176
|
}
|
|
1920
2177
|
|
|
1921
2178
|
function eq(gtUint64 a, uint64 b) internal returns (gtBool) {
|
|
@@ -2397,6 +2654,20 @@ library MpcCore {
|
|
|
2397
2654
|
return checkRes16(gtBool.wrap(bit), gtUint16.wrap(res));
|
|
2398
2655
|
}
|
|
2399
2656
|
|
|
2657
|
+
function checkedAddWithOverflowBit(gtUint8 a, gtUint16 b) internal returns (gtBool, gtUint16) {
|
|
2658
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
2659
|
+
CheckedAdd(combineEnumsToBytes3(MPC_TYPE.SUINT8_T, MPC_TYPE.SUINT16_T, ARGS.BOTH_SECRET), gtUint8.unwrap(a), gtUint16.unwrap(b));
|
|
2660
|
+
|
|
2661
|
+
return (gtBool.wrap(bit), gtUint16.wrap(res));
|
|
2662
|
+
}
|
|
2663
|
+
|
|
2664
|
+
function checkedAddWithOverflowBit(gtUint16 a, gtUint8 b) internal returns (gtBool, gtUint16) {
|
|
2665
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
2666
|
+
CheckedAdd(combineEnumsToBytes3(MPC_TYPE.SUINT16_T, MPC_TYPE.SUINT8_T, ARGS.BOTH_SECRET), gtUint16.unwrap(a), gtUint8.unwrap(b));
|
|
2667
|
+
|
|
2668
|
+
return (gtBool.wrap(bit), gtUint16.wrap(res));
|
|
2669
|
+
}
|
|
2670
|
+
|
|
2400
2671
|
function sub(gtUint8 a, gtUint16 b) internal returns (gtUint16) {
|
|
2401
2672
|
return gtUint16.wrap(ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
2402
2673
|
Sub(combineEnumsToBytes3(MPC_TYPE.SUINT8_T, MPC_TYPE.SUINT16_T, ARGS.BOTH_SECRET), gtUint8.unwrap(a), gtUint16.unwrap(b)));
|
|
@@ -2421,6 +2692,20 @@ library MpcCore {
|
|
|
2421
2692
|
return checkRes16(gtBool.wrap(bit), gtUint16.wrap(res));
|
|
2422
2693
|
}
|
|
2423
2694
|
|
|
2695
|
+
function checkedSubWithOverflowBit(gtUint8 a, gtUint16 b) internal returns (gtBool, gtUint16) {
|
|
2696
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
2697
|
+
CheckedSub(combineEnumsToBytes3(MPC_TYPE.SUINT8_T, MPC_TYPE.SUINT16_T, ARGS.BOTH_SECRET), gtUint8.unwrap(a), gtUint16.unwrap(b));
|
|
2698
|
+
|
|
2699
|
+
return (gtBool.wrap(bit), gtUint16.wrap(res));
|
|
2700
|
+
}
|
|
2701
|
+
|
|
2702
|
+
function checkedSubWithOverflowBit(gtUint16 a, gtUint8 b) internal returns (gtBool, gtUint16) {
|
|
2703
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
2704
|
+
CheckedSub(combineEnumsToBytes3(MPC_TYPE.SUINT16_T, MPC_TYPE.SUINT8_T, ARGS.BOTH_SECRET), gtUint16.unwrap(a), gtUint8.unwrap(b));
|
|
2705
|
+
|
|
2706
|
+
return (gtBool.wrap(bit), gtUint16.wrap(res));
|
|
2707
|
+
}
|
|
2708
|
+
|
|
2424
2709
|
function mul(gtUint8 a, gtUint16 b) internal returns (gtUint16) {
|
|
2425
2710
|
return gtUint16.wrap(ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
2426
2711
|
Mul(combineEnumsToBytes3(MPC_TYPE.SUINT8_T, MPC_TYPE.SUINT16_T, ARGS.BOTH_SECRET), gtUint8.unwrap(a), gtUint16.unwrap(b)));
|
|
@@ -2445,6 +2730,20 @@ library MpcCore {
|
|
|
2445
2730
|
return checkRes16(gtBool.wrap(bit), gtUint16.wrap(res));
|
|
2446
2731
|
}
|
|
2447
2732
|
|
|
2733
|
+
function checkedMulWithOverflowBit(gtUint8 a, gtUint16 b) internal returns (gtBool, gtUint16) {
|
|
2734
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
2735
|
+
CheckedMul(combineEnumsToBytes3(MPC_TYPE.SUINT8_T, MPC_TYPE.SUINT16_T, ARGS.BOTH_SECRET), gtUint8.unwrap(a), gtUint16.unwrap(b));
|
|
2736
|
+
|
|
2737
|
+
return (gtBool.wrap(bit), gtUint16.wrap(res));
|
|
2738
|
+
}
|
|
2739
|
+
|
|
2740
|
+
function checkedMulWithOverflowBit(gtUint16 a, gtUint8 b) internal returns (gtBool, gtUint16) {
|
|
2741
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
2742
|
+
CheckedMul(combineEnumsToBytes3(MPC_TYPE.SUINT16_T, MPC_TYPE.SUINT8_T, ARGS.BOTH_SECRET), gtUint16.unwrap(a), gtUint8.unwrap(b));
|
|
2743
|
+
|
|
2744
|
+
return (gtBool.wrap(bit), gtUint16.wrap(res));
|
|
2745
|
+
}
|
|
2746
|
+
|
|
2448
2747
|
function div(gtUint8 a, gtUint16 b) internal returns (gtUint16) {
|
|
2449
2748
|
return gtUint16.wrap(ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
2450
2749
|
Div(combineEnumsToBytes3(MPC_TYPE.SUINT8_T, MPC_TYPE.SUINT16_T, ARGS.BOTH_SECRET), gtUint8.unwrap(a), gtUint16.unwrap(b)));
|
|
@@ -2715,6 +3014,20 @@ library MpcCore {
|
|
|
2715
3014
|
return checkRes32(gtBool.wrap(bit), gtUint32.wrap(res));
|
|
2716
3015
|
}
|
|
2717
3016
|
|
|
3017
|
+
function checkedAddWithOverflowBit(gtUint8 a, gtUint32 b) internal returns (gtBool, gtUint32) {
|
|
3018
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
3019
|
+
CheckedAdd(combineEnumsToBytes3(MPC_TYPE.SUINT8_T, MPC_TYPE.SUINT32_T, ARGS.BOTH_SECRET), gtUint8.unwrap(a), gtUint32.unwrap(b));
|
|
3020
|
+
|
|
3021
|
+
return (gtBool.wrap(bit), gtUint32.wrap(res));
|
|
3022
|
+
}
|
|
3023
|
+
|
|
3024
|
+
function checkedAddWithOverflowBit(gtUint32 a, gtUint8 b) internal returns (gtBool, gtUint32) {
|
|
3025
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
3026
|
+
CheckedAdd(combineEnumsToBytes3(MPC_TYPE.SUINT32_T, MPC_TYPE.SUINT8_T, ARGS.BOTH_SECRET), gtUint32.unwrap(a), gtUint8.unwrap(b));
|
|
3027
|
+
|
|
3028
|
+
return (gtBool.wrap(bit), gtUint32.wrap(res));
|
|
3029
|
+
}
|
|
3030
|
+
|
|
2718
3031
|
function sub(gtUint8 a, gtUint32 b) internal returns (gtUint32) {
|
|
2719
3032
|
return gtUint32.wrap(ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
2720
3033
|
Sub(combineEnumsToBytes3(MPC_TYPE.SUINT8_T, MPC_TYPE.SUINT32_T, ARGS.BOTH_SECRET), gtUint8.unwrap(a), gtUint32.unwrap(b)));
|
|
@@ -2739,6 +3052,20 @@ library MpcCore {
|
|
|
2739
3052
|
return checkRes32(gtBool.wrap(bit), gtUint32.wrap(res));
|
|
2740
3053
|
}
|
|
2741
3054
|
|
|
3055
|
+
function checkedSubWithOverflowBit(gtUint8 a, gtUint32 b) internal returns (gtBool, gtUint32) {
|
|
3056
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
3057
|
+
CheckedSub(combineEnumsToBytes3(MPC_TYPE.SUINT8_T, MPC_TYPE.SUINT32_T, ARGS.BOTH_SECRET), gtUint8.unwrap(a), gtUint32.unwrap(b));
|
|
3058
|
+
|
|
3059
|
+
return (gtBool.wrap(bit), gtUint32.wrap(res));
|
|
3060
|
+
}
|
|
3061
|
+
|
|
3062
|
+
function checkedSubWithOverflowBit(gtUint32 a, gtUint8 b) internal returns (gtBool, gtUint32) {
|
|
3063
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
3064
|
+
CheckedSub(combineEnumsToBytes3(MPC_TYPE.SUINT32_T, MPC_TYPE.SUINT8_T, ARGS.BOTH_SECRET), gtUint32.unwrap(a), gtUint8.unwrap(b));
|
|
3065
|
+
|
|
3066
|
+
return (gtBool.wrap(bit), gtUint32.wrap(res));
|
|
3067
|
+
}
|
|
3068
|
+
|
|
2742
3069
|
function mul(gtUint8 a, gtUint32 b) internal returns (gtUint32) {
|
|
2743
3070
|
return gtUint32.wrap(ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
2744
3071
|
Mul(combineEnumsToBytes3(MPC_TYPE.SUINT8_T, MPC_TYPE.SUINT32_T, ARGS.BOTH_SECRET), gtUint8.unwrap(a), gtUint32.unwrap(b)));
|
|
@@ -2763,6 +3090,20 @@ library MpcCore {
|
|
|
2763
3090
|
return checkRes32(gtBool.wrap(bit), gtUint32.wrap(res));
|
|
2764
3091
|
}
|
|
2765
3092
|
|
|
3093
|
+
function checkedMulWithOverflowBit(gtUint8 a, gtUint32 b) internal returns (gtBool, gtUint32) {
|
|
3094
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
3095
|
+
CheckedMul(combineEnumsToBytes3(MPC_TYPE.SUINT8_T, MPC_TYPE.SUINT32_T, ARGS.BOTH_SECRET), gtUint8.unwrap(a), gtUint32.unwrap(b));
|
|
3096
|
+
|
|
3097
|
+
return (gtBool.wrap(bit), gtUint32.wrap(res));
|
|
3098
|
+
}
|
|
3099
|
+
|
|
3100
|
+
function checkedMulWithOverflowBit(gtUint32 a, gtUint8 b) internal returns (gtBool, gtUint32) {
|
|
3101
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
3102
|
+
CheckedMul(combineEnumsToBytes3(MPC_TYPE.SUINT32_T, MPC_TYPE.SUINT8_T, ARGS.BOTH_SECRET), gtUint32.unwrap(a), gtUint8.unwrap(b));
|
|
3103
|
+
|
|
3104
|
+
return (gtBool.wrap(bit), gtUint32.wrap(res));
|
|
3105
|
+
}
|
|
3106
|
+
|
|
2766
3107
|
function div(gtUint8 a, gtUint32 b) internal returns (gtUint32) {
|
|
2767
3108
|
return gtUint32.wrap(ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
2768
3109
|
Div(combineEnumsToBytes3(MPC_TYPE.SUINT8_T, MPC_TYPE.SUINT32_T, ARGS.BOTH_SECRET), gtUint8.unwrap(a), gtUint32.unwrap(b)));
|
|
@@ -3119,6 +3460,20 @@ library MpcCore {
|
|
|
3119
3460
|
return checkRes32(gtBool.wrap(bit), gtUint32.wrap(res));
|
|
3120
3461
|
}
|
|
3121
3462
|
|
|
3463
|
+
function checkedAddWithOverflowBit(gtUint16 a, gtUint32 b) internal returns (gtBool, gtUint32) {
|
|
3464
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
3465
|
+
CheckedAdd(combineEnumsToBytes3(MPC_TYPE.SUINT16_T, MPC_TYPE.SUINT32_T, ARGS.BOTH_SECRET), gtUint16.unwrap(a), gtUint32.unwrap(b));
|
|
3466
|
+
|
|
3467
|
+
return (gtBool.wrap(bit), gtUint32.wrap(res));
|
|
3468
|
+
}
|
|
3469
|
+
|
|
3470
|
+
function checkedAddWithOverflowBit(gtUint32 a, gtUint16 b) internal returns (gtBool, gtUint32) {
|
|
3471
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
3472
|
+
CheckedAdd(combineEnumsToBytes3(MPC_TYPE.SUINT32_T, MPC_TYPE.SUINT16_T, ARGS.BOTH_SECRET), gtUint32.unwrap(a), gtUint16.unwrap(b));
|
|
3473
|
+
|
|
3474
|
+
return (gtBool.wrap(bit), gtUint32.wrap(res));
|
|
3475
|
+
}
|
|
3476
|
+
|
|
3122
3477
|
function sub(gtUint16 a, gtUint32 b) internal returns (gtUint32) {
|
|
3123
3478
|
return gtUint32.wrap(ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
3124
3479
|
Sub(combineEnumsToBytes3(MPC_TYPE.SUINT16_T, MPC_TYPE.SUINT32_T, ARGS.BOTH_SECRET), gtUint16.unwrap(a), gtUint32.unwrap(b)));
|
|
@@ -3143,6 +3498,20 @@ library MpcCore {
|
|
|
3143
3498
|
return checkRes32(gtBool.wrap(bit), gtUint32.wrap(res));
|
|
3144
3499
|
}
|
|
3145
3500
|
|
|
3501
|
+
function checkedSubWithOverflowBit(gtUint16 a, gtUint32 b) internal returns (gtBool, gtUint32) {
|
|
3502
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
3503
|
+
CheckedSub(combineEnumsToBytes3(MPC_TYPE.SUINT16_T, MPC_TYPE.SUINT32_T, ARGS.BOTH_SECRET), gtUint16.unwrap(a), gtUint32.unwrap(b));
|
|
3504
|
+
|
|
3505
|
+
return (gtBool.wrap(bit), gtUint32.wrap(res));
|
|
3506
|
+
}
|
|
3507
|
+
|
|
3508
|
+
function checkedSubWithOverflowBit(gtUint32 a, gtUint16 b) internal returns (gtBool, gtUint32) {
|
|
3509
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
3510
|
+
CheckedSub(combineEnumsToBytes3(MPC_TYPE.SUINT32_T, MPC_TYPE.SUINT16_T, ARGS.BOTH_SECRET), gtUint32.unwrap(a), gtUint16.unwrap(b));
|
|
3511
|
+
|
|
3512
|
+
return (gtBool.wrap(bit), gtUint32.wrap(res));
|
|
3513
|
+
}
|
|
3514
|
+
|
|
3146
3515
|
function mul(gtUint16 a, gtUint32 b) internal returns (gtUint32) {
|
|
3147
3516
|
return gtUint32.wrap(ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
3148
3517
|
Mul(combineEnumsToBytes3(MPC_TYPE.SUINT16_T, MPC_TYPE.SUINT32_T, ARGS.BOTH_SECRET), gtUint16.unwrap(a), gtUint32.unwrap(b)));
|
|
@@ -3167,6 +3536,20 @@ library MpcCore {
|
|
|
3167
3536
|
return checkRes32(gtBool.wrap(bit), gtUint32.wrap(res));
|
|
3168
3537
|
}
|
|
3169
3538
|
|
|
3539
|
+
function checkedMulWithOverflowBit(gtUint16 a, gtUint32 b) internal returns (gtBool, gtUint32) {
|
|
3540
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
3541
|
+
CheckedMul(combineEnumsToBytes3(MPC_TYPE.SUINT16_T, MPC_TYPE.SUINT32_T, ARGS.BOTH_SECRET), gtUint16.unwrap(a), gtUint32.unwrap(b));
|
|
3542
|
+
|
|
3543
|
+
return (gtBool.wrap(bit), gtUint32.wrap(res));
|
|
3544
|
+
}
|
|
3545
|
+
|
|
3546
|
+
function checkedMulWithOverflowBit(gtUint32 a, gtUint16 b) internal returns (gtBool, gtUint32) {
|
|
3547
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
3548
|
+
CheckedMul(combineEnumsToBytes3(MPC_TYPE.SUINT32_T, MPC_TYPE.SUINT16_T, ARGS.BOTH_SECRET), gtUint32.unwrap(a), gtUint16.unwrap(b));
|
|
3549
|
+
|
|
3550
|
+
return (gtBool.wrap(bit), gtUint32.wrap(res));
|
|
3551
|
+
}
|
|
3552
|
+
|
|
3170
3553
|
function div(gtUint16 a, gtUint32 b) internal returns (gtUint32) {
|
|
3171
3554
|
return gtUint32.wrap(ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
3172
3555
|
Div(combineEnumsToBytes3(MPC_TYPE.SUINT16_T, MPC_TYPE.SUINT32_T, ARGS.BOTH_SECRET), gtUint16.unwrap(a), gtUint32.unwrap(b)));
|
|
@@ -3532,6 +3915,20 @@ library MpcCore {
|
|
|
3532
3915
|
return checkRes64(gtBool.wrap(bit), gtUint64.wrap(res));
|
|
3533
3916
|
}
|
|
3534
3917
|
|
|
3918
|
+
function checkedAddWithOverflowBit(gtUint8 a, gtUint64 b) internal returns (gtBool, gtUint64) {
|
|
3919
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
3920
|
+
CheckedAdd(combineEnumsToBytes3(MPC_TYPE.SUINT8_T, MPC_TYPE.SUINT64_T, ARGS.BOTH_SECRET), gtUint8.unwrap(a), gtUint64.unwrap(b));
|
|
3921
|
+
|
|
3922
|
+
return (gtBool.wrap(bit), gtUint64.wrap(res));
|
|
3923
|
+
}
|
|
3924
|
+
|
|
3925
|
+
function checkedAddWithOverflowBit(gtUint64 a, gtUint8 b) internal returns (gtBool, gtUint64) {
|
|
3926
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
3927
|
+
CheckedAdd(combineEnumsToBytes3(MPC_TYPE.SUINT64_T, MPC_TYPE.SUINT8_T, ARGS.BOTH_SECRET), gtUint64.unwrap(a), gtUint8.unwrap(b));
|
|
3928
|
+
|
|
3929
|
+
return (gtBool.wrap(bit), gtUint64.wrap(res));
|
|
3930
|
+
}
|
|
3931
|
+
|
|
3535
3932
|
function sub(gtUint8 a, gtUint64 b) internal returns (gtUint64) {
|
|
3536
3933
|
return gtUint64.wrap(ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
3537
3934
|
Sub(combineEnumsToBytes3(MPC_TYPE.SUINT8_T, MPC_TYPE.SUINT64_T, ARGS.BOTH_SECRET), gtUint8.unwrap(a), gtUint64.unwrap(b)));
|
|
@@ -3556,6 +3953,20 @@ library MpcCore {
|
|
|
3556
3953
|
return checkRes64(gtBool.wrap(bit), gtUint64.wrap(res));
|
|
3557
3954
|
}
|
|
3558
3955
|
|
|
3956
|
+
function checkedSubWithOverflowBit(gtUint8 a, gtUint64 b) internal returns (gtBool, gtUint64) {
|
|
3957
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
3958
|
+
CheckedSub(combineEnumsToBytes3(MPC_TYPE.SUINT8_T, MPC_TYPE.SUINT64_T, ARGS.BOTH_SECRET), gtUint8.unwrap(a), gtUint64.unwrap(b));
|
|
3959
|
+
|
|
3960
|
+
return (gtBool.wrap(bit), gtUint64.wrap(res));
|
|
3961
|
+
}
|
|
3962
|
+
|
|
3963
|
+
function checkedSubWithOverflowBit(gtUint64 a, gtUint8 b) internal returns (gtBool, gtUint64) {
|
|
3964
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
3965
|
+
CheckedSub(combineEnumsToBytes3(MPC_TYPE.SUINT64_T, MPC_TYPE.SUINT8_T, ARGS.BOTH_SECRET), gtUint64.unwrap(a), gtUint8.unwrap(b));
|
|
3966
|
+
|
|
3967
|
+
return (gtBool.wrap(bit), gtUint64.wrap(res));
|
|
3968
|
+
}
|
|
3969
|
+
|
|
3559
3970
|
function mul(gtUint8 a, gtUint64 b) internal returns (gtUint64) {
|
|
3560
3971
|
return gtUint64.wrap(ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
3561
3972
|
Mul(combineEnumsToBytes3(MPC_TYPE.SUINT8_T, MPC_TYPE.SUINT64_T, ARGS.BOTH_SECRET), gtUint8.unwrap(a), gtUint64.unwrap(b)));
|
|
@@ -3580,6 +3991,20 @@ library MpcCore {
|
|
|
3580
3991
|
return checkRes64(gtBool.wrap(bit), gtUint64.wrap(res));
|
|
3581
3992
|
}
|
|
3582
3993
|
|
|
3994
|
+
function checkedMulWithOverflowBit(gtUint8 a, gtUint64 b) internal returns (gtBool, gtUint64) {
|
|
3995
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
3996
|
+
CheckedMul(combineEnumsToBytes3(MPC_TYPE.SUINT8_T, MPC_TYPE.SUINT64_T, ARGS.BOTH_SECRET), gtUint8.unwrap(a), gtUint64.unwrap(b));
|
|
3997
|
+
|
|
3998
|
+
return (gtBool.wrap(bit), gtUint64.wrap(res));
|
|
3999
|
+
}
|
|
4000
|
+
|
|
4001
|
+
function checkedMulWithOverflowBit(gtUint64 a, gtUint8 b) internal returns (gtBool, gtUint64) {
|
|
4002
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
4003
|
+
CheckedMul(combineEnumsToBytes3(MPC_TYPE.SUINT64_T, MPC_TYPE.SUINT8_T, ARGS.BOTH_SECRET), gtUint64.unwrap(a), gtUint8.unwrap(b));
|
|
4004
|
+
|
|
4005
|
+
return (gtBool.wrap(bit), gtUint64.wrap(res));
|
|
4006
|
+
}
|
|
4007
|
+
|
|
3583
4008
|
function div(gtUint8 a, gtUint64 b) internal returns (gtUint64) {
|
|
3584
4009
|
return gtUint64.wrap(ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
3585
4010
|
Div(combineEnumsToBytes3(MPC_TYPE.SUINT8_T, MPC_TYPE.SUINT64_T, ARGS.BOTH_SECRET), gtUint8.unwrap(a), gtUint64.unwrap(b)));
|
|
@@ -4078,6 +4503,20 @@ library MpcCore {
|
|
|
4078
4503
|
return checkRes64(gtBool.wrap(bit), gtUint64.wrap(res));
|
|
4079
4504
|
}
|
|
4080
4505
|
|
|
4506
|
+
function checkedAddWithOverflowBit(gtUint16 a, gtUint64 b) internal returns (gtBool, gtUint64) {
|
|
4507
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
4508
|
+
CheckedAdd(combineEnumsToBytes3(MPC_TYPE.SUINT16_T, MPC_TYPE.SUINT64_T, ARGS.BOTH_SECRET), gtUint16.unwrap(a), gtUint64.unwrap(b));
|
|
4509
|
+
|
|
4510
|
+
return (gtBool.wrap(bit), gtUint64.wrap(res));
|
|
4511
|
+
}
|
|
4512
|
+
|
|
4513
|
+
function checkedAddWithOverflowBit(gtUint64 a, gtUint16 b) internal returns (gtBool, gtUint64) {
|
|
4514
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
4515
|
+
CheckedAdd(combineEnumsToBytes3(MPC_TYPE.SUINT64_T, MPC_TYPE.SUINT16_T, ARGS.BOTH_SECRET), gtUint64.unwrap(a), gtUint16.unwrap(b));
|
|
4516
|
+
|
|
4517
|
+
return (gtBool.wrap(bit), gtUint64.wrap(res));
|
|
4518
|
+
}
|
|
4519
|
+
|
|
4081
4520
|
function sub(gtUint16 a, gtUint64 b) internal returns (gtUint64) {
|
|
4082
4521
|
return gtUint64.wrap(ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
4083
4522
|
Sub(combineEnumsToBytes3(MPC_TYPE.SUINT16_T, MPC_TYPE.SUINT64_T, ARGS.BOTH_SECRET), gtUint16.unwrap(a), gtUint64.unwrap(b)));
|
|
@@ -4102,6 +4541,20 @@ library MpcCore {
|
|
|
4102
4541
|
return checkRes64(gtBool.wrap(bit), gtUint64.wrap(res));
|
|
4103
4542
|
}
|
|
4104
4543
|
|
|
4544
|
+
function checkedSubWithOverflowBit(gtUint16 a, gtUint64 b) internal returns (gtBool, gtUint64) {
|
|
4545
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
4546
|
+
CheckedSub(combineEnumsToBytes3(MPC_TYPE.SUINT16_T, MPC_TYPE.SUINT64_T, ARGS.BOTH_SECRET), gtUint16.unwrap(a), gtUint64.unwrap(b));
|
|
4547
|
+
|
|
4548
|
+
return (gtBool.wrap(bit), gtUint64.wrap(res));
|
|
4549
|
+
}
|
|
4550
|
+
|
|
4551
|
+
function checkedSubWithOverflowBit(gtUint64 a, gtUint16 b) internal returns (gtBool, gtUint64) {
|
|
4552
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
4553
|
+
CheckedSub(combineEnumsToBytes3(MPC_TYPE.SUINT64_T, MPC_TYPE.SUINT16_T, ARGS.BOTH_SECRET), gtUint64.unwrap(a), gtUint16.unwrap(b));
|
|
4554
|
+
|
|
4555
|
+
return (gtBool.wrap(bit), gtUint64.wrap(res));
|
|
4556
|
+
}
|
|
4557
|
+
|
|
4105
4558
|
function mul(gtUint16 a, gtUint64 b) internal returns (gtUint64) {
|
|
4106
4559
|
return gtUint64.wrap(ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
4107
4560
|
Mul(combineEnumsToBytes3(MPC_TYPE.SUINT16_T, MPC_TYPE.SUINT64_T, ARGS.BOTH_SECRET), gtUint16.unwrap(a), gtUint64.unwrap(b)));
|
|
@@ -4126,6 +4579,20 @@ library MpcCore {
|
|
|
4126
4579
|
return checkRes64(gtBool.wrap(bit), gtUint64.wrap(res));
|
|
4127
4580
|
}
|
|
4128
4581
|
|
|
4582
|
+
function checkedMulWithOverflowBit(gtUint16 a, gtUint64 b) internal returns (gtBool, gtUint64) {
|
|
4583
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
4584
|
+
CheckedMul(combineEnumsToBytes3(MPC_TYPE.SUINT16_T, MPC_TYPE.SUINT64_T, ARGS.BOTH_SECRET), gtUint16.unwrap(a), gtUint64.unwrap(b));
|
|
4585
|
+
|
|
4586
|
+
return (gtBool.wrap(bit), gtUint64.wrap(res));
|
|
4587
|
+
}
|
|
4588
|
+
|
|
4589
|
+
function checkedMulWithOverflowBit(gtUint64 a, gtUint16 b) internal returns (gtBool, gtUint64) {
|
|
4590
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
4591
|
+
CheckedMul(combineEnumsToBytes3(MPC_TYPE.SUINT64_T, MPC_TYPE.SUINT16_T, ARGS.BOTH_SECRET), gtUint64.unwrap(a), gtUint16.unwrap(b));
|
|
4592
|
+
|
|
4593
|
+
return (gtBool.wrap(bit), gtUint64.wrap(res));
|
|
4594
|
+
}
|
|
4595
|
+
|
|
4129
4596
|
function div(gtUint16 a, gtUint64 b) internal returns (gtUint64) {
|
|
4130
4597
|
return gtUint64.wrap(ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
4131
4598
|
Div(combineEnumsToBytes3(MPC_TYPE.SUINT16_T, MPC_TYPE.SUINT64_T, ARGS.BOTH_SECRET), gtUint16.unwrap(a), gtUint64.unwrap(b)));
|
|
@@ -4603,6 +5070,20 @@ library MpcCore {
|
|
|
4603
5070
|
return checkRes64(gtBool.wrap(bit), gtUint64.wrap(res));
|
|
4604
5071
|
}
|
|
4605
5072
|
|
|
5073
|
+
function checkedAddWithOverflowBit(gtUint32 a, gtUint64 b) internal returns (gtBool, gtUint64) {
|
|
5074
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
5075
|
+
CheckedAdd(combineEnumsToBytes3(MPC_TYPE.SUINT32_T, MPC_TYPE.SUINT64_T, ARGS.BOTH_SECRET), gtUint32.unwrap(a), gtUint64.unwrap(b));
|
|
5076
|
+
|
|
5077
|
+
return (gtBool.wrap(bit), gtUint64.wrap(res));
|
|
5078
|
+
}
|
|
5079
|
+
|
|
5080
|
+
function checkedAddWithOverflowBit(gtUint64 a, gtUint32 b) internal returns (gtBool, gtUint64) {
|
|
5081
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
5082
|
+
CheckedAdd(combineEnumsToBytes3(MPC_TYPE.SUINT64_T, MPC_TYPE.SUINT32_T, ARGS.BOTH_SECRET), gtUint64.unwrap(a), gtUint32.unwrap(b));
|
|
5083
|
+
|
|
5084
|
+
return (gtBool.wrap(bit), gtUint64.wrap(res));
|
|
5085
|
+
}
|
|
5086
|
+
|
|
4606
5087
|
function sub(gtUint32 a, gtUint64 b) internal returns (gtUint64) {
|
|
4607
5088
|
return gtUint64.wrap(ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
4608
5089
|
Sub(combineEnumsToBytes3(MPC_TYPE.SUINT32_T, MPC_TYPE.SUINT64_T, ARGS.BOTH_SECRET), gtUint32.unwrap(a), gtUint64.unwrap(b)));
|
|
@@ -4627,6 +5108,20 @@ library MpcCore {
|
|
|
4627
5108
|
return checkRes64(gtBool.wrap(bit), gtUint64.wrap(res));
|
|
4628
5109
|
}
|
|
4629
5110
|
|
|
5111
|
+
function checkedSubWithOverflowBit(gtUint32 a, gtUint64 b) internal returns (gtBool, gtUint64) {
|
|
5112
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
5113
|
+
CheckedSub(combineEnumsToBytes3(MPC_TYPE.SUINT32_T, MPC_TYPE.SUINT64_T, ARGS.BOTH_SECRET), gtUint32.unwrap(a), gtUint64.unwrap(b));
|
|
5114
|
+
|
|
5115
|
+
return (gtBool.wrap(bit), gtUint64.wrap(res));
|
|
5116
|
+
}
|
|
5117
|
+
|
|
5118
|
+
function checkedSubWithOverflowBit(gtUint64 a, gtUint32 b) internal returns (gtBool, gtUint64) {
|
|
5119
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
5120
|
+
CheckedSub(combineEnumsToBytes3(MPC_TYPE.SUINT64_T, MPC_TYPE.SUINT32_T, ARGS.BOTH_SECRET), gtUint64.unwrap(a), gtUint32.unwrap(b));
|
|
5121
|
+
|
|
5122
|
+
return (gtBool.wrap(bit), gtUint64.wrap(res));
|
|
5123
|
+
}
|
|
5124
|
+
|
|
4630
5125
|
function mul(gtUint32 a, gtUint64 b) internal returns (gtUint64) {
|
|
4631
5126
|
return gtUint64.wrap(ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
4632
5127
|
Mul(combineEnumsToBytes3(MPC_TYPE.SUINT32_T, MPC_TYPE.SUINT64_T, ARGS.BOTH_SECRET), gtUint32.unwrap(a), gtUint64.unwrap(b)));
|
|
@@ -4651,6 +5146,20 @@ library MpcCore {
|
|
|
4651
5146
|
return checkRes64(gtBool.wrap(bit), gtUint64.wrap(res));
|
|
4652
5147
|
}
|
|
4653
5148
|
|
|
5149
|
+
function checkedMulWithOverflowBit(gtUint32 a, gtUint64 b) internal returns (gtBool, gtUint64) {
|
|
5150
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
5151
|
+
CheckedMul(combineEnumsToBytes3(MPC_TYPE.SUINT32_T, MPC_TYPE.SUINT64_T, ARGS.BOTH_SECRET), gtUint32.unwrap(a), gtUint64.unwrap(b));
|
|
5152
|
+
|
|
5153
|
+
return (gtBool.wrap(bit), gtUint64.wrap(res));
|
|
5154
|
+
}
|
|
5155
|
+
|
|
5156
|
+
function checkedMulWithOverflowBit(gtUint64 a, gtUint32 b) internal returns (gtBool, gtUint64) {
|
|
5157
|
+
(uint256 bit, uint256 res) = ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
5158
|
+
CheckedMul(combineEnumsToBytes3(MPC_TYPE.SUINT64_T, MPC_TYPE.SUINT32_T, ARGS.BOTH_SECRET), gtUint64.unwrap(a), gtUint32.unwrap(b));
|
|
5159
|
+
|
|
5160
|
+
return (gtBool.wrap(bit), gtUint64.wrap(res));
|
|
5161
|
+
}
|
|
5162
|
+
|
|
4654
5163
|
function div(gtUint32 a, gtUint64 b) internal returns (gtUint64) {
|
|
4655
5164
|
return gtUint64.wrap(ExtendedOperations(address(MPC_PRECOMPILE)).
|
|
4656
5165
|
Div(combineEnumsToBytes3(MPC_TYPE.SUINT32_T, MPC_TYPE.SUINT64_T, ARGS.BOTH_SECRET), gtUint32.unwrap(a), gtUint64.unwrap(b)));
|