@ensuro/access-managed-proxy 0.2.0 → 0.3.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 +12 -5
- package/build/build-info.json +1 -1
- package/build/contracts/AMPUtils.sol/AMPUtils.json +2 -2
- package/build/contracts/AccessManagedProxy.sol/AccessManagedProxy.json +71 -3
- package/build/contracts/AccessManagedProxyBase.sol/AccessManagedProxyBase.json +147 -0
- package/build/contracts/interfaces/IAccessManagedProxy.sol/IAccessManagedProxy.json +98 -0
- package/build/contracts/mock/DummyAccessManaged.sol/DummyAccessManaged.json +321 -0
- package/build/contracts/mock/DummyImplementation.sol/DummyImplementation.json +95 -2
- package/contracts/AMPUtils.sol +54 -3
- package/contracts/AccessManagedProxy.sol +39 -51
- package/contracts/AccessManagedProxyBase.sol +74 -0
- package/contracts/interfaces/IAccessManagedProxy.sol +51 -0
- package/contracts/mock/DummyAccessManaged.sol +56 -0
- package/contracts/mock/DummyImplementation.sol +19 -2
- package/js/deployProxy.js +5 -11
- package/package.json +1 -1
- package/build/contracts/amps/AccessManagedProxyS1.sol/AccessManagedProxyS1.json +0 -123
- package/build/contracts/amps/AccessManagedProxyS10.sol/AccessManagedProxyS10.json +0 -123
- package/build/contracts/amps/AccessManagedProxyS11.sol/AccessManagedProxyS11.json +0 -123
- package/build/contracts/amps/AccessManagedProxyS12.sol/AccessManagedProxyS12.json +0 -123
- package/build/contracts/amps/AccessManagedProxyS13.sol/AccessManagedProxyS13.json +0 -123
- package/build/contracts/amps/AccessManagedProxyS14.sol/AccessManagedProxyS14.json +0 -123
- package/build/contracts/amps/AccessManagedProxyS15.sol/AccessManagedProxyS15.json +0 -123
- package/build/contracts/amps/AccessManagedProxyS16.sol/AccessManagedProxyS16.json +0 -123
- package/build/contracts/amps/AccessManagedProxyS17.sol/AccessManagedProxyS17.json +0 -123
- package/build/contracts/amps/AccessManagedProxyS18.sol/AccessManagedProxyS18.json +0 -123
- package/build/contracts/amps/AccessManagedProxyS19.sol/AccessManagedProxyS19.json +0 -123
- package/build/contracts/amps/AccessManagedProxyS2.sol/AccessManagedProxyS2.json +0 -123
- package/build/contracts/amps/AccessManagedProxyS20.sol/AccessManagedProxyS20.json +0 -123
- package/build/contracts/amps/AccessManagedProxyS21.sol/AccessManagedProxyS21.json +0 -123
- package/build/contracts/amps/AccessManagedProxyS22.sol/AccessManagedProxyS22.json +0 -123
- package/build/contracts/amps/AccessManagedProxyS23.sol/AccessManagedProxyS23.json +0 -123
- package/build/contracts/amps/AccessManagedProxyS24.sol/AccessManagedProxyS24.json +0 -123
- package/build/contracts/amps/AccessManagedProxyS25.sol/AccessManagedProxyS25.json +0 -123
- package/build/contracts/amps/AccessManagedProxyS26.sol/AccessManagedProxyS26.json +0 -123
- package/build/contracts/amps/AccessManagedProxyS27.sol/AccessManagedProxyS27.json +0 -123
- package/build/contracts/amps/AccessManagedProxyS28.sol/AccessManagedProxyS28.json +0 -123
- package/build/contracts/amps/AccessManagedProxyS29.sol/AccessManagedProxyS29.json +0 -123
- package/build/contracts/amps/AccessManagedProxyS3.sol/AccessManagedProxyS3.json +0 -123
- package/build/contracts/amps/AccessManagedProxyS30.sol/AccessManagedProxyS30.json +0 -123
- package/build/contracts/amps/AccessManagedProxyS31.sol/AccessManagedProxyS31.json +0 -123
- package/build/contracts/amps/AccessManagedProxyS32.sol/AccessManagedProxyS32.json +0 -123
- package/build/contracts/amps/AccessManagedProxyS33.sol/AccessManagedProxyS33.json +0 -123
- package/build/contracts/amps/AccessManagedProxyS34.sol/AccessManagedProxyS34.json +0 -123
- package/build/contracts/amps/AccessManagedProxyS35.sol/AccessManagedProxyS35.json +0 -123
- package/build/contracts/amps/AccessManagedProxyS36.sol/AccessManagedProxyS36.json +0 -123
- package/build/contracts/amps/AccessManagedProxyS37.sol/AccessManagedProxyS37.json +0 -123
- package/build/contracts/amps/AccessManagedProxyS38.sol/AccessManagedProxyS38.json +0 -123
- package/build/contracts/amps/AccessManagedProxyS39.sol/AccessManagedProxyS39.json +0 -123
- package/build/contracts/amps/AccessManagedProxyS4.sol/AccessManagedProxyS4.json +0 -123
- package/build/contracts/amps/AccessManagedProxyS40.sol/AccessManagedProxyS40.json +0 -123
- package/build/contracts/amps/AccessManagedProxyS5.sol/AccessManagedProxyS5.json +0 -123
- package/build/contracts/amps/AccessManagedProxyS6.sol/AccessManagedProxyS6.json +0 -123
- package/build/contracts/amps/AccessManagedProxyS7.sol/AccessManagedProxyS7.json +0 -123
- package/build/contracts/amps/AccessManagedProxyS8.sol/AccessManagedProxyS8.json +0 -123
- package/build/contracts/amps/AccessManagedProxyS9.sol/AccessManagedProxyS9.json +0 -123
- package/contracts/amps/AccessManagedProxyS1.sol +0 -63
- package/contracts/amps/AccessManagedProxyS10.sol +0 -99
- package/contracts/amps/AccessManagedProxyS11.sol +0 -103
- package/contracts/amps/AccessManagedProxyS12.sol +0 -107
- package/contracts/amps/AccessManagedProxyS13.sol +0 -111
- package/contracts/amps/AccessManagedProxyS14.sol +0 -115
- package/contracts/amps/AccessManagedProxyS15.sol +0 -119
- package/contracts/amps/AccessManagedProxyS16.sol +0 -123
- package/contracts/amps/AccessManagedProxyS17.sol +0 -127
- package/contracts/amps/AccessManagedProxyS18.sol +0 -131
- package/contracts/amps/AccessManagedProxyS19.sol +0 -135
- package/contracts/amps/AccessManagedProxyS2.sol +0 -67
- package/contracts/amps/AccessManagedProxyS20.sol +0 -139
- package/contracts/amps/AccessManagedProxyS21.sol +0 -143
- package/contracts/amps/AccessManagedProxyS22.sol +0 -147
- package/contracts/amps/AccessManagedProxyS23.sol +0 -151
- package/contracts/amps/AccessManagedProxyS24.sol +0 -155
- package/contracts/amps/AccessManagedProxyS25.sol +0 -159
- package/contracts/amps/AccessManagedProxyS26.sol +0 -163
- package/contracts/amps/AccessManagedProxyS27.sol +0 -167
- package/contracts/amps/AccessManagedProxyS28.sol +0 -171
- package/contracts/amps/AccessManagedProxyS29.sol +0 -175
- package/contracts/amps/AccessManagedProxyS3.sol +0 -71
- package/contracts/amps/AccessManagedProxyS30.sol +0 -179
- package/contracts/amps/AccessManagedProxyS31.sol +0 -183
- package/contracts/amps/AccessManagedProxyS32.sol +0 -187
- package/contracts/amps/AccessManagedProxyS33.sol +0 -191
- package/contracts/amps/AccessManagedProxyS34.sol +0 -195
- package/contracts/amps/AccessManagedProxyS35.sol +0 -199
- package/contracts/amps/AccessManagedProxyS36.sol +0 -203
- package/contracts/amps/AccessManagedProxyS37.sol +0 -207
- package/contracts/amps/AccessManagedProxyS38.sol +0 -211
- package/contracts/amps/AccessManagedProxyS39.sol +0 -215
- package/contracts/amps/AccessManagedProxyS4.sol +0 -75
- package/contracts/amps/AccessManagedProxyS40.sol +0 -219
- package/contracts/amps/AccessManagedProxyS5.sol +0 -79
- package/contracts/amps/AccessManagedProxyS6.sol +0 -83
- package/contracts/amps/AccessManagedProxyS7.sol +0 -87
- package/contracts/amps/AccessManagedProxyS8.sol +0 -91
- package/contracts/amps/AccessManagedProxyS9.sol +0 -95
package/README.md
CHANGED
|
@@ -34,18 +34,25 @@ configuration for that method.
|
|
|
34
34
|
|
|
35
35
|
More details on the motivation of this idea here: https://forum.openzeppelin.com/t/accessmanagedproxy-is-a-good-idea/41917
|
|
36
36
|
|
|
37
|
+
Also check https://www.youtube.com/watch?v=DKdwJ9Ap9vM for a presentation on this approach.
|
|
38
|
+
|
|
37
39
|
## 📝 Details
|
|
38
40
|
|
|
39
|
-
The
|
|
40
|
-
|
|
41
|
-
|
|
41
|
+
The AccessManagedProxy contract stores the configuration in the storage (uses namespaced storage layout, see EIP-7201),
|
|
42
|
+
but it doesn't include in the proxy functions to modify it. The implementation contracts should add the functions to
|
|
43
|
+
change the access manager (`setAuthority(...)`, following IAccessManaged interface of OZ 5.x) or the passThruMethods.
|
|
44
|
+
|
|
45
|
+
The AMPUtils library includes several functions to modify the custom storage and other operations like making custom
|
|
46
|
+
access control checks.
|
|
47
|
+
|
|
48
|
+
Also, an AccessManagedProxyBase abstract contract is provided in case you prefer to use immutable storage or other
|
|
49
|
+
variants.
|
|
42
50
|
|
|
43
51
|
## Development
|
|
44
52
|
|
|
45
53
|
Try running some of the following tasks:
|
|
46
54
|
|
|
47
55
|
```shell
|
|
48
|
-
npx hardhat help
|
|
49
|
-
npx hardhat test
|
|
50
56
|
REPORT_GAS=true npx hardhat test
|
|
57
|
+
npx hardhat coverage
|
|
51
58
|
```
|