@coti-io/coti-contracts 1.0.2 → 1.0.3

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 (42) hide show
  1. package/contracts/access/DataPrivacyFramework/extensions/DataPrivacyFrameworkMpc.sol +112 -0
  2. package/contracts/mocks/utils/mpc/ShiftTestsContract.sol +126 -0
  3. package/contracts/utils/mpc/MpcCore.sol +40 -0
  4. package/contracts/utils/mpc/MpcInterface.sol +2 -0
  5. package/package.json +1 -1
  6. package/test/onboard/AccountOnboard.test.ts +2 -2
  7. package/test/utils/accounts.ts +2 -2
  8. package/test/utils/mpc/Precompile.test.ts +8 -0
  9. package/typechain-types/@openzeppelin/contracts/interfaces/index.ts +0 -2
  10. package/typechain-types/contracts/GasTest.ts +91 -0
  11. package/typechain-types/contracts/mocks/utils/mpc/index.ts +1 -0
  12. package/typechain-types/contracts/utils/mpc/MpcInterface.sol/ExtendedOperations.ts +38 -0
  13. package/typechain-types/factories/@openzeppelin/contracts/interfaces/index.ts +0 -1
  14. package/typechain-types/factories/contracts/GasTest__factory.ts +75 -0
  15. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PrivateERC20Mock__factory.ts +1 -1
  16. package/typechain-types/factories/contracts/mocks/token/PrivateERC721/PrivateERC721URIStorageMock__factory.ts +1 -1
  17. package/typechain-types/factories/contracts/mocks/utils/mpc/ArithmeticTestsContract__factory.ts +1 -1
  18. package/typechain-types/factories/contracts/mocks/utils/mpc/BitwiseTestsContract__factory.ts +1 -1
  19. package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison1TestsContract__factory.ts +1 -1
  20. package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison2TestsContract__factory.ts +1 -1
  21. package/typechain-types/factories/contracts/mocks/utils/mpc/MinMaxTestsContract__factory.ts +1 -1
  22. package/typechain-types/factories/contracts/mocks/utils/mpc/Miscellaneous1TestsContract__factory.ts +1 -1
  23. package/typechain-types/factories/contracts/mocks/utils/mpc/MiscellaneousTestsContract__factory.ts +1 -1
  24. package/typechain-types/factories/contracts/mocks/utils/mpc/OffboardToUserKeyTestContract__factory.ts +1 -1
  25. package/typechain-types/factories/contracts/mocks/utils/mpc/ShiftTestsContract__factory.ts +1 -1
  26. package/typechain-types/factories/contracts/mocks/utils/mpc/StringTestsContract__factory.ts +1 -1
  27. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferScalarTestsContract__factory.ts +1 -1
  28. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferTestsContract__factory.ts +1 -1
  29. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_16TestsContract__factory.ts +1 -1
  30. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_32TestsContract__factory.ts +1 -1
  31. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_64TestsContract__factory.ts +1 -1
  32. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_8TestsContract__factory.ts +1 -1
  33. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowanceScalarTestsContract__factory.ts +1 -1
  34. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowanceTestsContract__factory.ts +1 -1
  35. package/typechain-types/factories/contracts/mocks/utils/mpc/index.ts +1 -0
  36. package/typechain-types/factories/contracts/mocks/wallet/PrivateERC20Wallet/PrivateERC20WalletMock__factory.ts +1 -1
  37. package/typechain-types/factories/contracts/onboard/AccountOnboard__factory.ts +1 -1
  38. package/typechain-types/factories/contracts/utils/mpc/MpcCore__factory.ts +1 -1
  39. package/typechain-types/factories/contracts/utils/mpc/MpcInterface.sol/ExtendedOperations__factory.ts +58 -0
  40. package/typechain-types/hardhat.d.ts +18 -54
  41. package/typechain-types/index.ts +4 -6
  42. package/contracts/onboard/README.md +0 -65
@@ -6,12 +6,6 @@ export type { openzeppelin };
6
6
  import type * as contracts from "./contracts";
7
7
  export type { contracts };
8
8
  export * as factories from "./factories";
9
- export type { IERC1155Errors } from "./@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors";
10
- export { IERC1155Errors__factory } from "./factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors__factory";
11
- export type { IERC20Errors } from "./@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors";
12
- export { IERC20Errors__factory } from "./factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors__factory";
13
- export type { IERC721Errors } from "./@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors";
14
- export { IERC721Errors__factory } from "./factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors__factory";
15
9
  export type { IERC4906 } from "./@openzeppelin/contracts/interfaces/IERC4906";
16
10
  export { IERC4906__factory } from "./factories/@openzeppelin/contracts/interfaces/IERC4906__factory";
17
11
  export type { IERC721 } from "./@openzeppelin/contracts/token/ERC721/IERC721";
@@ -48,6 +42,8 @@ export type { MiscellaneousTestsContract } from "./contracts/mocks/utils/mpc/Mis
48
42
  export { MiscellaneousTestsContract__factory } from "./factories/contracts/mocks/utils/mpc/MiscellaneousTestsContract__factory";
49
43
  export type { OffboardToUserKeyTestContract } from "./contracts/mocks/utils/mpc/OffboardToUserKeyTestContract";
50
44
  export { OffboardToUserKeyTestContract__factory } from "./factories/contracts/mocks/utils/mpc/OffboardToUserKeyTestContract__factory";
45
+ export type { ShiftTestsContract } from "./contracts/mocks/utils/mpc/ShiftTestsContract";
46
+ export { ShiftTestsContract__factory } from "./factories/contracts/mocks/utils/mpc/ShiftTestsContract__factory";
51
47
  export type { StringTestsContract } from "./contracts/mocks/utils/mpc/StringTestsContract";
52
48
  export { StringTestsContract__factory } from "./factories/contracts/mocks/utils/mpc/StringTestsContract__factory";
53
49
  export type { TransferScalarTestsContract } from "./contracts/mocks/utils/mpc/TransferScalarTestsContract";
@@ -76,6 +72,8 @@ export type { PrivateERC20 } from "./contracts/token/PrivateERC20/PrivateERC20";
76
72
  export { PrivateERC20__factory } from "./factories/contracts/token/PrivateERC20/PrivateERC20__factory";
77
73
  export type { PrivateERC721URIStorage } from "./contracts/token/PrivateERC721/extensions/PrivateERC721URIStorage";
78
74
  export { PrivateERC721URIStorage__factory } from "./factories/contracts/token/PrivateERC721/extensions/PrivateERC721URIStorage__factory";
75
+ export type { IERC721Errors } from "./contracts/token/PrivateERC721/IERC721Errors";
76
+ export { IERC721Errors__factory } from "./factories/contracts/token/PrivateERC721/IERC721Errors__factory";
79
77
  export type { PrivateERC721 } from "./contracts/token/PrivateERC721/PrivateERC721";
80
78
  export { PrivateERC721__factory } from "./factories/contracts/token/PrivateERC721/PrivateERC721__factory";
81
79
  export type { MpcCore } from "./contracts/utils/mpc/MpcCore";
@@ -1,65 +0,0 @@
1
- # AccountOnboard
2
-
3
- ## Overview
4
-
5
- The `AccountOnboard` contract is responsible for onboarding user accounts to the system, leveraging RSA public keys and AES encryption. During onboarding, the user's AES encryption key is emitted in an encrypted form. This contract interacts with a utility contract `MpcCore` to retrieve the user key.
6
-
7
- ## Prerequisites
8
-
9
- - **Solidity Version**: `^0.8.19`
10
- - **License**: MIT
11
- - **Dependencies**:
12
- - Imports from `../utils/mpc/MpcCore.sol`.
13
-
14
- ## Table of Contents
15
- - [Events](#events)
16
- - [AccountOnboarded](#accountonboarded)
17
- - [Functions](#functions)
18
- - [onboardAccount](#onboardaccount)
19
-
20
- ## Events
21
-
22
- ### AccountOnboarded
23
-
24
- This event is triggered when a new account is successfully onboarded. It logs the user's account information, including the sender's address and the AES encryption key in its encrypted form.
25
-
26
- #### Parameters:
27
- - **`_from`**: (`address`) The address of the account that initiated the onboarding process.
28
- - **`userKey`**: (`bytes`) The user's AES encryption key, encrypted using RSA. This key must be decrypted before use.
29
-
30
- ```solidity
31
- event AccountOnboarded(address indexed _from, bytes userKey);
32
- ```
33
-
34
- ## Functions
35
-
36
- ### onboardAccount
37
-
38
- The `onboardAccount` function is responsible for onboarding a new user account. It takes an RSA public key and a signed hash of the key, verifies the credentials, and emits the encrypted AES key.
39
-
40
- #### Function Definition:
41
-
42
- ```solidity
43
- function onboardAccount(bytes calldata publicKey, bytes calldata signedEK) public;
44
- ```
45
-
46
- #### Parameters:
47
- - **`publicKey`**: (`bytes`) The RSA public key of the user. This is used to verify and generate the AES encryption key.
48
- - **`signedEK`**: (`bytes`) A signed hash of the RSA public key, used to ensure the authenticity of the public key.
49
-
50
- #### Logic:
51
- 1. Calls the external `MpcCore.getUserKey()` function to retrieve the user's AES encryption key using the provided RSA public key and its signed hash.
52
- 2. Emits the `AccountOnboarded` event, logging the caller's address and the encrypted AES key.
53
-
54
- #### Example Usage:
55
-
56
- ```solidity
57
- function onboardAccount(bytes calldata publicKey, bytes calldata signedEK) public {
58
- bytes memory accountKey = MpcCore.getUserKey(publicKey, signedEK);
59
- emit AccountOnboarded(msg.sender, accountKey);
60
- }
61
- ```
62
-
63
- ### External Function Calls:
64
- - **`MpcCore.getUserKey(publicKey, signedEK)`**:
65
- - Retrieves the user's AES encryption key, based on the RSA public key and signed hash.