@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.
- package/contracts/access/DataPrivacyFramework/extensions/DataPrivacyFrameworkMpc.sol +112 -0
- package/contracts/mocks/utils/mpc/ShiftTestsContract.sol +126 -0
- package/contracts/utils/mpc/MpcCore.sol +40 -0
- package/contracts/utils/mpc/MpcInterface.sol +2 -0
- package/package.json +1 -1
- package/test/onboard/AccountOnboard.test.ts +2 -2
- package/test/utils/accounts.ts +2 -2
- package/test/utils/mpc/Precompile.test.ts +8 -0
- package/typechain-types/@openzeppelin/contracts/interfaces/index.ts +0 -2
- package/typechain-types/contracts/GasTest.ts +91 -0
- package/typechain-types/contracts/mocks/utils/mpc/index.ts +1 -0
- package/typechain-types/contracts/utils/mpc/MpcInterface.sol/ExtendedOperations.ts +38 -0
- package/typechain-types/factories/@openzeppelin/contracts/interfaces/index.ts +0 -1
- package/typechain-types/factories/contracts/GasTest__factory.ts +75 -0
- 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/BitwiseTestsContract__factory.ts +1 -1
- 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 +1 -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/utils/mpc/MpcCore__factory.ts +1 -1
- package/typechain-types/factories/contracts/utils/mpc/MpcInterface.sol/ExtendedOperations__factory.ts +58 -0
- package/typechain-types/hardhat.d.ts +18 -54
- package/typechain-types/index.ts +4 -6
- package/contracts/onboard/README.md +0 -65
package/typechain-types/index.ts
CHANGED
|
@@ -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.
|