@mapprotocol/common-contracts 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +107 -0
- package/artifacts/contracts/AuthorityManager.sol/AuthorityManager.json +1237 -0
- package/artifacts/contracts/base/BaseImplemention.sol/BaseImplementation.json +298 -0
- package/contracts/AuthorityManager.sol +60 -0
- package/contracts/base/BaseImplemention.sol +38 -0
- package/package.json +73 -0
- package/typechain-types/@openzeppelin/contracts/access/index.ts +5 -0
- package/typechain-types/@openzeppelin/contracts/access/manager/AccessManager.ts +1109 -0
- package/typechain-types/@openzeppelin/contracts/access/manager/IAccessManaged.ts +148 -0
- package/typechain-types/@openzeppelin/contracts/access/manager/IAccessManager.ts +1073 -0
- package/typechain-types/@openzeppelin/contracts/access/manager/IAuthority.ts +96 -0
- package/typechain-types/@openzeppelin/contracts/access/manager/index.ts +7 -0
- package/typechain-types/@openzeppelin/contracts/index.ts +11 -0
- package/typechain-types/@openzeppelin/contracts/interfaces/IERC1967.ts +168 -0
- package/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.ts +90 -0
- package/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/index.ts +4 -0
- package/typechain-types/@openzeppelin/contracts/interfaces/index.ts +6 -0
- package/typechain-types/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.ts +69 -0
- package/typechain-types/@openzeppelin/contracts/proxy/ERC1967/index.ts +4 -0
- package/typechain-types/@openzeppelin/contracts/proxy/beacon/IBeacon.ts +90 -0
- package/typechain-types/@openzeppelin/contracts/proxy/beacon/index.ts +4 -0
- package/typechain-types/@openzeppelin/contracts/proxy/index.ts +7 -0
- package/typechain-types/@openzeppelin/contracts/utils/Address.ts +69 -0
- package/typechain-types/@openzeppelin/contracts/utils/Errors.ts +69 -0
- package/typechain-types/@openzeppelin/contracts/utils/Multicall.ts +87 -0
- package/typechain-types/@openzeppelin/contracts/utils/index.ts +8 -0
- package/typechain-types/@openzeppelin/contracts/utils/math/SafeCast.ts +69 -0
- package/typechain-types/@openzeppelin/contracts/utils/math/index.ts +4 -0
- package/typechain-types/@openzeppelin/contracts-upgradeable/access/index.ts +5 -0
- package/typechain-types/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.ts +185 -0
- package/typechain-types/@openzeppelin/contracts-upgradeable/access/manager/index.ts +4 -0
- package/typechain-types/@openzeppelin/contracts-upgradeable/index.ts +9 -0
- package/typechain-types/@openzeppelin/contracts-upgradeable/proxy/index.ts +5 -0
- package/typechain-types/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.ts +105 -0
- package/typechain-types/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.ts +196 -0
- package/typechain-types/@openzeppelin/contracts-upgradeable/proxy/utils/index.ts +5 -0
- package/typechain-types/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.ts +105 -0
- package/typechain-types/@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.ts +183 -0
- package/typechain-types/@openzeppelin/contracts-upgradeable/utils/index.ts +5 -0
- package/typechain-types/@openzeppelin/index.ts +7 -0
- package/typechain-types/common.ts +131 -0
- package/typechain-types/contracts/AuthorityManager.ts +1163 -0
- package/typechain-types/contracts/base/BaseImplemention.sol/BaseImplementation.ts +363 -0
- package/typechain-types/contracts/base/BaseImplemention.sol/index.ts +4 -0
- package/typechain-types/contracts/base/index.ts +5 -0
- package/typechain-types/contracts/index.ts +6 -0
- package/typechain-types/factories/@openzeppelin/contracts/access/index.ts +4 -0
- package/typechain-types/factories/@openzeppelin/contracts/access/manager/AccessManager__factory.ts +1240 -0
- package/typechain-types/factories/@openzeppelin/contracts/access/manager/IAccessManaged__factory.ts +115 -0
- package/typechain-types/factories/@openzeppelin/contracts/access/manager/IAccessManager__factory.ts +1085 -0
- package/typechain-types/factories/@openzeppelin/contracts/access/manager/IAuthority__factory.ts +51 -0
- package/typechain-types/factories/@openzeppelin/contracts/access/manager/index.ts +7 -0
- package/typechain-types/factories/@openzeppelin/contracts/index.ts +7 -0
- package/typechain-types/factories/@openzeppelin/contracts/interfaces/IERC1967__factory.ts +67 -0
- package/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable__factory.ts +38 -0
- package/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/index.ts +4 -0
- package/typechain-types/factories/@openzeppelin/contracts/interfaces/index.ts +5 -0
- package/typechain-types/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils__factory.ts +105 -0
- package/typechain-types/factories/@openzeppelin/contracts/proxy/ERC1967/index.ts +4 -0
- package/typechain-types/factories/@openzeppelin/contracts/proxy/beacon/IBeacon__factory.ts +35 -0
- package/typechain-types/factories/@openzeppelin/contracts/proxy/beacon/index.ts +4 -0
- package/typechain-types/factories/@openzeppelin/contracts/proxy/index.ts +5 -0
- package/typechain-types/factories/@openzeppelin/contracts/utils/Address__factory.ts +75 -0
- package/typechain-types/factories/@openzeppelin/contracts/utils/Errors__factory.ts +101 -0
- package/typechain-types/factories/@openzeppelin/contracts/utils/Multicall__factory.ts +57 -0
- package/typechain-types/factories/@openzeppelin/contracts/utils/index.ts +7 -0
- package/typechain-types/factories/@openzeppelin/contracts/utils/math/SafeCast__factory.ts +118 -0
- package/typechain-types/factories/@openzeppelin/contracts/utils/math/index.ts +4 -0
- package/typechain-types/factories/@openzeppelin/contracts-upgradeable/access/index.ts +4 -0
- package/typechain-types/factories/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable__factory.ts +142 -0
- package/typechain-types/factories/@openzeppelin/contracts-upgradeable/access/manager/index.ts +4 -0
- package/typechain-types/factories/@openzeppelin/contracts-upgradeable/index.ts +6 -0
- package/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/index.ts +4 -0
- package/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable__factory.ts +48 -0
- package/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable__factory.ts +153 -0
- package/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/utils/index.ts +5 -0
- package/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable__factory.ts +48 -0
- package/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable__factory.ts +101 -0
- package/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/index.ts +5 -0
- package/typechain-types/factories/@openzeppelin/index.ts +5 -0
- package/typechain-types/factories/contracts/AuthorityManager__factory.ts +1302 -0
- package/typechain-types/factories/contracts/base/BaseImplemention.sol/BaseImplementation__factory.ts +312 -0
- package/typechain-types/factories/contracts/base/BaseImplemention.sol/index.ts +4 -0
- package/typechain-types/factories/contracts/base/index.ts +4 -0
- package/typechain-types/factories/contracts/index.ts +5 -0
- package/typechain-types/factories/index.ts +5 -0
- package/typechain-types/hardhat.d.ts +387 -0
- package/typechain-types/index.ts +46 -0
package/README.md
ADDED
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
# @mapprotocol/common-contracts
|
|
2
|
+
|
|
3
|
+
Common smart contracts library for MAP Protocol.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @mapprotocol/common-contracts
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
or
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
yarn add @mapprotocol/common-contracts
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Usage
|
|
18
|
+
|
|
19
|
+
### Solidity Contracts
|
|
20
|
+
|
|
21
|
+
Import contracts in your Solidity files:
|
|
22
|
+
|
|
23
|
+
```solidity
|
|
24
|
+
import "@mapprotocol/common-contracts/contracts/base/BaseImplemention.sol";
|
|
25
|
+
import "@mapprotocol/common-contracts/contracts/AuthorityManager.sol";
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
### TypeScript/JavaScript
|
|
29
|
+
|
|
30
|
+
Use TypeChain generated types for type-safe contract interactions:
|
|
31
|
+
|
|
32
|
+
```typescript
|
|
33
|
+
import { BaseImplement__factory } from "@mapprotocol/common-contracts";
|
|
34
|
+
import { ethers } from "ethers";
|
|
35
|
+
|
|
36
|
+
// Deploy or connect to contract
|
|
37
|
+
const signer = await ethers.getSigner();
|
|
38
|
+
const baseContract = await BaseImplement__factory.deploy(signer);
|
|
39
|
+
|
|
40
|
+
// Or connect to existing contract
|
|
41
|
+
const contractAddress = "0x...";
|
|
42
|
+
const contract = BaseImplement__factory.connect(contractAddress, signer);
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Contracts Overview
|
|
46
|
+
|
|
47
|
+
### Base Contracts
|
|
48
|
+
- `BaseImplemention.sol` - Base implementation with common functionality including pausable, reentrancy guard, and UUPS upgradeable patterns
|
|
49
|
+
|
|
50
|
+
### Authority Management
|
|
51
|
+
- `AuthorityManager.sol` - Authority and access control management
|
|
52
|
+
|
|
53
|
+
## Features
|
|
54
|
+
|
|
55
|
+
- **Upgradeable**: Contracts use UUPS (Universal Upgradeable Proxy Standard) pattern
|
|
56
|
+
- **Pausable**: Emergency pause functionality for critical operations
|
|
57
|
+
- **Reentrancy Protection**: Built-in reentrancy guards for secure operations
|
|
58
|
+
- **Access Control**: Flexible authority management system
|
|
59
|
+
- **TypeScript Support**: Full TypeChain generated types for type-safe development
|
|
60
|
+
|
|
61
|
+
## Development
|
|
62
|
+
|
|
63
|
+
This library uses a dual toolchain setup:
|
|
64
|
+
|
|
65
|
+
### Foundry
|
|
66
|
+
```bash
|
|
67
|
+
forge build # Build contracts
|
|
68
|
+
forge test # Run tests
|
|
69
|
+
forge fmt # Format code
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### Hardhat
|
|
73
|
+
```bash
|
|
74
|
+
npm run build:hardhat # Build with Hardhat
|
|
75
|
+
npm run test:hardhat # Run Hardhat tests
|
|
76
|
+
npm run compile # Compile and generate types
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### Other Commands
|
|
80
|
+
```bash
|
|
81
|
+
npm run clean # Clean all artifacts
|
|
82
|
+
npm run typecheck # Check TypeScript types
|
|
83
|
+
npm run gas-report # Generate gas usage report
|
|
84
|
+
npm run coverage # Generate test coverage
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## Requirements
|
|
88
|
+
|
|
89
|
+
- Node.js >= 18.0.0
|
|
90
|
+
- Solidity 0.8.20
|
|
91
|
+
|
|
92
|
+
## Dependencies
|
|
93
|
+
|
|
94
|
+
- OpenZeppelin Contracts v5.0.0
|
|
95
|
+
- OpenZeppelin Contracts Upgradeable v5.0.0
|
|
96
|
+
|
|
97
|
+
## License
|
|
98
|
+
|
|
99
|
+
MIT
|
|
100
|
+
|
|
101
|
+
## Repository
|
|
102
|
+
|
|
103
|
+
[GitHub](https://github.com/mapprotocol/mapo-contracts-v2/tree/main/common)
|
|
104
|
+
|
|
105
|
+
## Issues
|
|
106
|
+
|
|
107
|
+
Please report issues at [GitHub Issues](https://github.com/mapprotocol/mapo-contracts-v2/issues)
|