@ensuro/access-managed-proxy 0.1.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.
Files changed (64) hide show
  1. package/README.md +47 -4
  2. package/build/build-info.json +1 -1
  3. package/build/contracts/AMPUtils.sol/AMPUtils.json +22 -0
  4. package/build/contracts/AccessManagedProxy.sol/AccessManagedProxy.json +71 -3
  5. package/build/contracts/AccessManagedProxyBase.sol/AccessManagedProxyBase.json +147 -0
  6. package/build/contracts/interfaces/IAccessManagedProxy.sol/IAccessManagedProxy.json +98 -0
  7. package/build/contracts/mock/DummyAccessManaged.sol/DummyAccessManaged.json +321 -0
  8. package/build/contracts/mock/DummyImplementation.sol/DummyImplementation.json +95 -2
  9. package/contracts/AMPUtils.sol +88 -0
  10. package/contracts/AccessManagedProxy.sol +39 -51
  11. package/contracts/AccessManagedProxyBase.sol +74 -0
  12. package/contracts/interfaces/IAccessManagedProxy.sol +51 -0
  13. package/contracts/mock/DummyAccessManaged.sol +56 -0
  14. package/contracts/mock/DummyImplementation.sol +19 -2
  15. package/js/deployProxy.js +69 -0
  16. package/package.json +1 -1
  17. package/build/contracts/amps/AccessManagedProxyS1.sol/AccessManagedProxyS1.json +0 -123
  18. package/build/contracts/amps/AccessManagedProxyS10.sol/AccessManagedProxyS10.json +0 -123
  19. package/build/contracts/amps/AccessManagedProxyS11.sol/AccessManagedProxyS11.json +0 -123
  20. package/build/contracts/amps/AccessManagedProxyS12.sol/AccessManagedProxyS12.json +0 -123
  21. package/build/contracts/amps/AccessManagedProxyS13.sol/AccessManagedProxyS13.json +0 -123
  22. package/build/contracts/amps/AccessManagedProxyS14.sol/AccessManagedProxyS14.json +0 -123
  23. package/build/contracts/amps/AccessManagedProxyS15.sol/AccessManagedProxyS15.json +0 -123
  24. package/build/contracts/amps/AccessManagedProxyS16.sol/AccessManagedProxyS16.json +0 -123
  25. package/build/contracts/amps/AccessManagedProxyS17.sol/AccessManagedProxyS17.json +0 -123
  26. package/build/contracts/amps/AccessManagedProxyS18.sol/AccessManagedProxyS18.json +0 -123
  27. package/build/contracts/amps/AccessManagedProxyS19.sol/AccessManagedProxyS19.json +0 -123
  28. package/build/contracts/amps/AccessManagedProxyS2.sol/AccessManagedProxyS2.json +0 -123
  29. package/build/contracts/amps/AccessManagedProxyS20.sol/AccessManagedProxyS20.json +0 -123
  30. package/build/contracts/amps/AccessManagedProxyS21.sol/AccessManagedProxyS21.json +0 -123
  31. package/build/contracts/amps/AccessManagedProxyS22.sol/AccessManagedProxyS22.json +0 -123
  32. package/build/contracts/amps/AccessManagedProxyS23.sol/AccessManagedProxyS23.json +0 -123
  33. package/build/contracts/amps/AccessManagedProxyS24.sol/AccessManagedProxyS24.json +0 -123
  34. package/build/contracts/amps/AccessManagedProxyS3.sol/AccessManagedProxyS3.json +0 -123
  35. package/build/contracts/amps/AccessManagedProxyS4.sol/AccessManagedProxyS4.json +0 -123
  36. package/build/contracts/amps/AccessManagedProxyS5.sol/AccessManagedProxyS5.json +0 -123
  37. package/build/contracts/amps/AccessManagedProxyS6.sol/AccessManagedProxyS6.json +0 -123
  38. package/build/contracts/amps/AccessManagedProxyS7.sol/AccessManagedProxyS7.json +0 -123
  39. package/build/contracts/amps/AccessManagedProxyS8.sol/AccessManagedProxyS8.json +0 -123
  40. package/build/contracts/amps/AccessManagedProxyS9.sol/AccessManagedProxyS9.json +0 -123
  41. package/contracts/amps/AccessManagedProxyS1.sol +0 -63
  42. package/contracts/amps/AccessManagedProxyS10.sol +0 -99
  43. package/contracts/amps/AccessManagedProxyS11.sol +0 -103
  44. package/contracts/amps/AccessManagedProxyS12.sol +0 -107
  45. package/contracts/amps/AccessManagedProxyS13.sol +0 -111
  46. package/contracts/amps/AccessManagedProxyS14.sol +0 -115
  47. package/contracts/amps/AccessManagedProxyS15.sol +0 -119
  48. package/contracts/amps/AccessManagedProxyS16.sol +0 -123
  49. package/contracts/amps/AccessManagedProxyS17.sol +0 -127
  50. package/contracts/amps/AccessManagedProxyS18.sol +0 -131
  51. package/contracts/amps/AccessManagedProxyS19.sol +0 -135
  52. package/contracts/amps/AccessManagedProxyS2.sol +0 -67
  53. package/contracts/amps/AccessManagedProxyS20.sol +0 -139
  54. package/contracts/amps/AccessManagedProxyS21.sol +0 -143
  55. package/contracts/amps/AccessManagedProxyS22.sol +0 -147
  56. package/contracts/amps/AccessManagedProxyS23.sol +0 -151
  57. package/contracts/amps/AccessManagedProxyS24.sol +0 -155
  58. package/contracts/amps/AccessManagedProxyS3.sol +0 -71
  59. package/contracts/amps/AccessManagedProxyS4.sol +0 -75
  60. package/contracts/amps/AccessManagedProxyS5.sol +0 -79
  61. package/contracts/amps/AccessManagedProxyS6.sol +0 -83
  62. package/contracts/amps/AccessManagedProxyS7.sol +0 -87
  63. package/contracts/amps/AccessManagedProxyS8.sol +0 -91
  64. package/contracts/amps/AccessManagedProxyS9.sol +0 -95
@@ -1,123 +0,0 @@
1
- {
2
- "_format": "hh-sol-artifact-1",
3
- "contractName": "AccessManagedProxyS7",
4
- "sourceName": "contracts/amps/AccessManagedProxyS7.sol",
5
- "abi": [
6
- {
7
- "inputs": [
8
- {
9
- "internalType": "address",
10
- "name": "implementation",
11
- "type": "address"
12
- },
13
- {
14
- "internalType": "bytes",
15
- "name": "_data",
16
- "type": "bytes"
17
- },
18
- {
19
- "internalType": "contract IAccessManager",
20
- "name": "manager",
21
- "type": "address"
22
- },
23
- {
24
- "internalType": "bytes4[7]",
25
- "name": "passThruMethods",
26
- "type": "bytes4[7]"
27
- }
28
- ],
29
- "stateMutability": "payable",
30
- "type": "constructor"
31
- },
32
- {
33
- "inputs": [
34
- {
35
- "internalType": "address",
36
- "name": "caller",
37
- "type": "address"
38
- }
39
- ],
40
- "name": "AccessManagedUnauthorized",
41
- "type": "error"
42
- },
43
- {
44
- "inputs": [
45
- {
46
- "internalType": "address",
47
- "name": "target",
48
- "type": "address"
49
- }
50
- ],
51
- "name": "AddressEmptyCode",
52
- "type": "error"
53
- },
54
- {
55
- "inputs": [
56
- {
57
- "internalType": "address",
58
- "name": "implementation",
59
- "type": "address"
60
- }
61
- ],
62
- "name": "ERC1967InvalidImplementation",
63
- "type": "error"
64
- },
65
- {
66
- "inputs": [],
67
- "name": "ERC1967NonPayable",
68
- "type": "error"
69
- },
70
- {
71
- "inputs": [],
72
- "name": "FailedCall",
73
- "type": "error"
74
- },
75
- {
76
- "anonymous": false,
77
- "inputs": [
78
- {
79
- "indexed": true,
80
- "internalType": "address",
81
- "name": "implementation",
82
- "type": "address"
83
- }
84
- ],
85
- "name": "Upgraded",
86
- "type": "event"
87
- },
88
- {
89
- "stateMutability": "payable",
90
- "type": "fallback"
91
- },
92
- {
93
- "inputs": [],
94
- "name": "ACCESS_MANAGER",
95
- "outputs": [
96
- {
97
- "internalType": "contract IAccessManager",
98
- "name": "",
99
- "type": "address"
100
- }
101
- ],
102
- "stateMutability": "view",
103
- "type": "function"
104
- },
105
- {
106
- "inputs": [],
107
- "name": "PASS_THRU_METHODS",
108
- "outputs": [
109
- {
110
- "internalType": "bytes4[]",
111
- "name": "methods",
112
- "type": "bytes4[]"
113
- }
114
- ],
115
- "stateMutability": "view",
116
- "type": "function"
117
- }
118
- ],
119
- "bytecode": "0x610180604052604051610c54380380610c548339810160408190526100239161037c565b8383838282610032828261009e565b50506001600160a01b0316608090815283516001600160e01b031990811660a09081526020860151821660c09081526040870151831660e052606087015183166101005292860151821661012052850151811661014052930151909216610160525061045a9350505050565b6100a7826100fc565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a28051156100f0576100eb8282610177565b505050565b6100f86101ea565b5050565b806001600160a01b03163b5f0361013657604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60605f5f846001600160a01b0316846040516101939190610444565b5f60405180830381855af49150503d805f81146101cb576040519150601f19603f3d011682016040523d82523d5f602084013e6101d0565b606091505b5090925090506101e185838361020b565b95945050505050565b34156102095760405163b398979f60e01b815260040160405180910390fd5b565b6060826102205761021b8261026a565b610263565b815115801561023757506001600160a01b0384163b155b1561026057604051639996b31560e01b81526001600160a01b038516600482015260240161012d565b50805b9392505050565b80511561027957805160208201fd5b60405163d6bda27560e01b815260040160405180910390fd5b50565b6001600160a01b0381168114610292575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b03811182821017156102e5576102e56102a9565b604052919050565b80516102f881610295565b919050565b5f82601f83011261030c575f5ffd5b60405160e081016001600160401b038111828210171561032e5761032e6102a9565b6040528060e0840185811115610342575f5ffd5b845b818110156103715780516001600160e01b031981168114610363575f5ffd5b835260209283019201610344565b509195945050505050565b5f5f5f5f6101408587031215610390575f5ffd5b845161039b81610295565b60208601519094506001600160401b038111156103b6575f5ffd5b8501601f810187136103c6575f5ffd5b80516001600160401b038111156103df576103df6102a9565b6103f2601f8201601f19166020016102bd565b818152886020838501011115610406575f5ffd5b8160208401602083015e5f6020838301015280955050505061042a604086016102ed565b915061043986606087016102fd565b905092959194509250565b5f82518060208501845e5f920191825250919050565b60805160a05160c05160e051610100516101205161014051610160516107696104eb5f395f81816102e201526105d601525f818161028c015261059801525f8181610236015261055a01525f81816101e0015261051c01525f818161018a01526104de01525f818161013401526104a001525f818160df015261046301525f8181606d01526103bc01526107695ff3fe608060405260043610610028575f3560e01c806314416c03146100325780633a7b7a391461005c575b6100306100a7565b005b34801561003d575f5ffd5b506100466100b9565b6040516100539190610630565b60405180910390f35b348015610067575f5ffd5b5061008f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610053565b6100b76100b2610330565b610367565b565b60408051600780825261010082019092526060916020820160e0803683370190505090507f0000000000000000000000000000000000000000000000000000000000000000815f815181106101105761011061067c565b60200260200101906001600160e01b03191690816001600160e01b031916815250507f0000000000000000000000000000000000000000000000000000000000000000816001815181106101665761016661067c565b60200260200101906001600160e01b03191690816001600160e01b031916815250507f0000000000000000000000000000000000000000000000000000000000000000816002815181106101bc576101bc61067c565b60200260200101906001600160e01b03191690816001600160e01b031916815250507f0000000000000000000000000000000000000000000000000000000000000000816003815181106102125761021261067c565b60200260200101906001600160e01b03191690816001600160e01b031916815250507f0000000000000000000000000000000000000000000000000000000000000000816004815181106102685761026861067c565b60200260200101906001600160e01b03191690816001600160e01b031916815250507f0000000000000000000000000000000000000000000000000000000000000000816005815181106102be576102be61067c565b60200260200101906001600160e01b03191690816001600160e01b031916815250507f0000000000000000000000000000000000000000000000000000000000000000816006815181106103145761031461067c565b6001600160e01b03199092166020928302919091019091015290565b5f6103627f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b5f6103756004823681610690565b61037e916106b7565b90505f61038a82610460565b9050806104525760405163b700961360e01b81523360048201523060248201526001600160e01b0319831660448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063b7009613906064016040805180830381865afa158015610408573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061042c91906106ef565b509050806104525760405162d1953b60e31b815233600482015260240160405180910390fd5b61045b83610612565b505050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160e01b031916826001600160e01b03191614806104d657507f00000000000000000000000000000000000000000000000000000000000000006001600160e01b031916826001600160e01b031916145b8061051457507f00000000000000000000000000000000000000000000000000000000000000006001600160e01b031916826001600160e01b031916145b8061055257507f00000000000000000000000000000000000000000000000000000000000000006001600160e01b031916826001600160e01b031916145b8061059057507f00000000000000000000000000000000000000000000000000000000000000006001600160e01b031916826001600160e01b031916145b806105ce57507f00000000000000000000000000000000000000000000000000000000000000006001600160e01b031916826001600160e01b031916145b8061060c57507f00000000000000000000000000000000000000000000000000000000000000006001600160e01b031916826001600160e01b031916145b92915050565b365f5f375f5f365f845af43d5f5f3e80801561062c573d5ff35b3d5ffd5b602080825282518282018190525f918401906040840190835b818110156106715783516001600160e01b031916835260209384019390920191600101610649565b509095945050505050565b634e487b7160e01b5f52603260045260245ffd5b5f5f8585111561069e575f5ffd5b838611156106aa575f5ffd5b5050820193919092039150565b80356001600160e01b031981169060048410156106e8576001600160e01b0319600485900360031b81901b82161691505b5092915050565b5f5f60408385031215610700575f5ffd5b8251801515811461070f575f5ffd5b602084015190925063ffffffff81168114610728575f5ffd5b80915050925092905056fea26469706673582212205c9c0ddc9c5f3993cff2c5b140a968dc6619d03451ef45568be7bf42788c53a764736f6c634300081c0033",
120
- "deployedBytecode": "0x608060405260043610610028575f3560e01c806314416c03146100325780633a7b7a391461005c575b6100306100a7565b005b34801561003d575f5ffd5b506100466100b9565b6040516100539190610630565b60405180910390f35b348015610067575f5ffd5b5061008f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610053565b6100b76100b2610330565b610367565b565b60408051600780825261010082019092526060916020820160e0803683370190505090507f0000000000000000000000000000000000000000000000000000000000000000815f815181106101105761011061067c565b60200260200101906001600160e01b03191690816001600160e01b031916815250507f0000000000000000000000000000000000000000000000000000000000000000816001815181106101665761016661067c565b60200260200101906001600160e01b03191690816001600160e01b031916815250507f0000000000000000000000000000000000000000000000000000000000000000816002815181106101bc576101bc61067c565b60200260200101906001600160e01b03191690816001600160e01b031916815250507f0000000000000000000000000000000000000000000000000000000000000000816003815181106102125761021261067c565b60200260200101906001600160e01b03191690816001600160e01b031916815250507f0000000000000000000000000000000000000000000000000000000000000000816004815181106102685761026861067c565b60200260200101906001600160e01b03191690816001600160e01b031916815250507f0000000000000000000000000000000000000000000000000000000000000000816005815181106102be576102be61067c565b60200260200101906001600160e01b03191690816001600160e01b031916815250507f0000000000000000000000000000000000000000000000000000000000000000816006815181106103145761031461067c565b6001600160e01b03199092166020928302919091019091015290565b5f6103627f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b5f6103756004823681610690565b61037e916106b7565b90505f61038a82610460565b9050806104525760405163b700961360e01b81523360048201523060248201526001600160e01b0319831660448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063b7009613906064016040805180830381865afa158015610408573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061042c91906106ef565b509050806104525760405162d1953b60e31b815233600482015260240160405180910390fd5b61045b83610612565b505050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160e01b031916826001600160e01b03191614806104d657507f00000000000000000000000000000000000000000000000000000000000000006001600160e01b031916826001600160e01b031916145b8061051457507f00000000000000000000000000000000000000000000000000000000000000006001600160e01b031916826001600160e01b031916145b8061055257507f00000000000000000000000000000000000000000000000000000000000000006001600160e01b031916826001600160e01b031916145b8061059057507f00000000000000000000000000000000000000000000000000000000000000006001600160e01b031916826001600160e01b031916145b806105ce57507f00000000000000000000000000000000000000000000000000000000000000006001600160e01b031916826001600160e01b031916145b8061060c57507f00000000000000000000000000000000000000000000000000000000000000006001600160e01b031916826001600160e01b031916145b92915050565b365f5f375f5f365f845af43d5f5f3e80801561062c573d5ff35b3d5ffd5b602080825282518282018190525f918401906040840190835b818110156106715783516001600160e01b031916835260209384019390920191600101610649565b509095945050505050565b634e487b7160e01b5f52603260045260245ffd5b5f5f8585111561069e575f5ffd5b838611156106aa575f5ffd5b5050820193919092039150565b80356001600160e01b031981169060048410156106e8576001600160e01b0319600485900360031b81901b82161691505b5092915050565b5f5f60408385031215610700575f5ffd5b8251801515811461070f575f5ffd5b602084015190925063ffffffff81168114610728575f5ffd5b80915050925092905056fea26469706673582212205c9c0ddc9c5f3993cff2c5b140a968dc6619d03451ef45568be7bf42788c53a764736f6c634300081c0033",
121
- "linkReferences": {},
122
- "deployedLinkReferences": {}
123
- }
@@ -1,123 +0,0 @@
1
- {
2
- "_format": "hh-sol-artifact-1",
3
- "contractName": "AccessManagedProxyS8",
4
- "sourceName": "contracts/amps/AccessManagedProxyS8.sol",
5
- "abi": [
6
- {
7
- "inputs": [
8
- {
9
- "internalType": "address",
10
- "name": "implementation",
11
- "type": "address"
12
- },
13
- {
14
- "internalType": "bytes",
15
- "name": "_data",
16
- "type": "bytes"
17
- },
18
- {
19
- "internalType": "contract IAccessManager",
20
- "name": "manager",
21
- "type": "address"
22
- },
23
- {
24
- "internalType": "bytes4[8]",
25
- "name": "passThruMethods",
26
- "type": "bytes4[8]"
27
- }
28
- ],
29
- "stateMutability": "payable",
30
- "type": "constructor"
31
- },
32
- {
33
- "inputs": [
34
- {
35
- "internalType": "address",
36
- "name": "caller",
37
- "type": "address"
38
- }
39
- ],
40
- "name": "AccessManagedUnauthorized",
41
- "type": "error"
42
- },
43
- {
44
- "inputs": [
45
- {
46
- "internalType": "address",
47
- "name": "target",
48
- "type": "address"
49
- }
50
- ],
51
- "name": "AddressEmptyCode",
52
- "type": "error"
53
- },
54
- {
55
- "inputs": [
56
- {
57
- "internalType": "address",
58
- "name": "implementation",
59
- "type": "address"
60
- }
61
- ],
62
- "name": "ERC1967InvalidImplementation",
63
- "type": "error"
64
- },
65
- {
66
- "inputs": [],
67
- "name": "ERC1967NonPayable",
68
- "type": "error"
69
- },
70
- {
71
- "inputs": [],
72
- "name": "FailedCall",
73
- "type": "error"
74
- },
75
- {
76
- "anonymous": false,
77
- "inputs": [
78
- {
79
- "indexed": true,
80
- "internalType": "address",
81
- "name": "implementation",
82
- "type": "address"
83
- }
84
- ],
85
- "name": "Upgraded",
86
- "type": "event"
87
- },
88
- {
89
- "stateMutability": "payable",
90
- "type": "fallback"
91
- },
92
- {
93
- "inputs": [],
94
- "name": "ACCESS_MANAGER",
95
- "outputs": [
96
- {
97
- "internalType": "contract IAccessManager",
98
- "name": "",
99
- "type": "address"
100
- }
101
- ],
102
- "stateMutability": "view",
103
- "type": "function"
104
- },
105
- {
106
- "inputs": [],
107
- "name": "PASS_THRU_METHODS",
108
- "outputs": [
109
- {
110
- "internalType": "bytes4[]",
111
- "name": "methods",
112
- "type": "bytes4[]"
113
- }
114
- ],
115
- "stateMutability": "view",
116
- "type": "function"
117
- }
118
- ],
119
- "bytecode": "0x6101a0604052604051610d08380380610d088339810160408190526100239161038a565b838383828261003282826100aa565b50506001600160a01b0316608090815283516001600160e01b031990811660a09081526020860151821660c09081526040870151831660e09081526060880151841661010052938701518316610120529086015182166101405285015181166101605293015190921661018052506104689350505050565b6100b382610108565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a28051156100fc576100f78282610183565b505050565b6101046101f6565b5050565b806001600160a01b03163b5f0361014257604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60605f5f846001600160a01b03168460405161019f9190610452565b5f60405180830381855af49150503d805f81146101d7576040519150601f19603f3d011682016040523d82523d5f602084013e6101dc565b606091505b5090925090506101ed858383610217565b95945050505050565b34156102155760405163b398979f60e01b815260040160405180910390fd5b565b60608261022c5761022782610276565b61026f565b815115801561024357506001600160a01b0384163b155b1561026c57604051639996b31560e01b81526001600160a01b0385166004820152602401610139565b50805b9392505050565b80511561028557805160208201fd5b60405163d6bda27560e01b815260040160405180910390fd5b50565b6001600160a01b038116811461029e575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b03811182821017156102f1576102f16102b5565b604052919050565b8051610304816102a1565b919050565b5f82601f830112610318575f5ffd5b60405161010081016001600160401b038111828210171561033b5761033b6102b5565b60405280610100840185811115610350575f5ffd5b845b8181101561037f5780516001600160e01b031981168114610371575f5ffd5b835260209283019201610352565b509195945050505050565b5f5f5f5f610160858703121561039e575f5ffd5b84516103a9816102a1565b60208601519094506001600160401b038111156103c4575f5ffd5b8501601f810187136103d4575f5ffd5b80516001600160401b038111156103ed576103ed6102b5565b610400601f8201601f19166020016102c9565b818152886020838501011115610414575f5ffd5b8160208401602083015e5f60208383010152809550505050610438604086016102f9565b91506104478660608701610309565b905092959194509250565b5f82518060208501845e5f920191825250919050565b60805160a05160c05160e05161010051610120516101405161016051610180516107fe61050a5f395f8181610339015261066b01525f81816102e3015261062d01525f818161028d01526105ef01525f818161023701526105b101525f81816101e1015261057301525f818161018b015261053501525f818161013501526104f701525f818160e001526104ba01525f8181606d015261041301526107fe5ff3fe608060405260043610610028575f3560e01c806314416c03146100325780633a7b7a391461005c575b6100306100a7565b005b34801561003d575f5ffd5b506100466100b9565b60405161005391906106c5565b60405180910390f35b348015610067575f5ffd5b5061008f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610053565b6100b76100b2610387565b6103be565b565b604080516008808252610120820190925260609160208201610100803683370190505090507f0000000000000000000000000000000000000000000000000000000000000000815f8151811061011157610111610711565b60200260200101906001600160e01b03191690816001600160e01b031916815250507f00000000000000000000000000000000000000000000000000000000000000008160018151811061016757610167610711565b60200260200101906001600160e01b03191690816001600160e01b031916815250507f0000000000000000000000000000000000000000000000000000000000000000816002815181106101bd576101bd610711565b60200260200101906001600160e01b03191690816001600160e01b031916815250507f00000000000000000000000000000000000000000000000000000000000000008160038151811061021357610213610711565b60200260200101906001600160e01b03191690816001600160e01b031916815250507f00000000000000000000000000000000000000000000000000000000000000008160048151811061026957610269610711565b60200260200101906001600160e01b03191690816001600160e01b031916815250507f0000000000000000000000000000000000000000000000000000000000000000816005815181106102bf576102bf610711565b60200260200101906001600160e01b03191690816001600160e01b031916815250507f00000000000000000000000000000000000000000000000000000000000000008160068151811061031557610315610711565b60200260200101906001600160e01b03191690816001600160e01b031916815250507f00000000000000000000000000000000000000000000000000000000000000008160078151811061036b5761036b610711565b6001600160e01b03199092166020928302919091019091015290565b5f6103b97f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b5f6103cc6004823681610725565b6103d59161074c565b90505f6103e1826104b7565b9050806104a95760405163b700961360e01b81523360048201523060248201526001600160e01b0319831660448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063b7009613906064016040805180830381865afa15801561045f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104839190610784565b509050806104a95760405162d1953b60e31b815233600482015260240160405180910390fd5b6104b2836106a7565b505050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160e01b031916826001600160e01b031916148061052d57507f00000000000000000000000000000000000000000000000000000000000000006001600160e01b031916826001600160e01b031916145b8061056b57507f00000000000000000000000000000000000000000000000000000000000000006001600160e01b031916826001600160e01b031916145b806105a957507f00000000000000000000000000000000000000000000000000000000000000006001600160e01b031916826001600160e01b031916145b806105e757507f00000000000000000000000000000000000000000000000000000000000000006001600160e01b031916826001600160e01b031916145b8061062557507f00000000000000000000000000000000000000000000000000000000000000006001600160e01b031916826001600160e01b031916145b8061066357507f00000000000000000000000000000000000000000000000000000000000000006001600160e01b031916826001600160e01b031916145b806106a157507f00000000000000000000000000000000000000000000000000000000000000006001600160e01b031916826001600160e01b031916145b92915050565b365f5f375f5f365f845af43d5f5f3e8080156106c1573d5ff35b3d5ffd5b602080825282518282018190525f918401906040840190835b818110156107065783516001600160e01b0319168352602093840193909201916001016106de565b509095945050505050565b634e487b7160e01b5f52603260045260245ffd5b5f5f85851115610733575f5ffd5b8386111561073f575f5ffd5b5050820193919092039150565b80356001600160e01b0319811690600484101561077d576001600160e01b0319600485900360031b81901b82161691505b5092915050565b5f5f60408385031215610795575f5ffd5b825180151581146107a4575f5ffd5b602084015190925063ffffffff811681146107bd575f5ffd5b80915050925092905056fea26469706673582212207d2da9f078e7b5c13b98f2dc206d6cb83b759e4e4a34e4050423205530573dcb64736f6c634300081c0033",
120
- "deployedBytecode": "0x608060405260043610610028575f3560e01c806314416c03146100325780633a7b7a391461005c575b6100306100a7565b005b34801561003d575f5ffd5b506100466100b9565b60405161005391906106c5565b60405180910390f35b348015610067575f5ffd5b5061008f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610053565b6100b76100b2610387565b6103be565b565b604080516008808252610120820190925260609160208201610100803683370190505090507f0000000000000000000000000000000000000000000000000000000000000000815f8151811061011157610111610711565b60200260200101906001600160e01b03191690816001600160e01b031916815250507f00000000000000000000000000000000000000000000000000000000000000008160018151811061016757610167610711565b60200260200101906001600160e01b03191690816001600160e01b031916815250507f0000000000000000000000000000000000000000000000000000000000000000816002815181106101bd576101bd610711565b60200260200101906001600160e01b03191690816001600160e01b031916815250507f00000000000000000000000000000000000000000000000000000000000000008160038151811061021357610213610711565b60200260200101906001600160e01b03191690816001600160e01b031916815250507f00000000000000000000000000000000000000000000000000000000000000008160048151811061026957610269610711565b60200260200101906001600160e01b03191690816001600160e01b031916815250507f0000000000000000000000000000000000000000000000000000000000000000816005815181106102bf576102bf610711565b60200260200101906001600160e01b03191690816001600160e01b031916815250507f00000000000000000000000000000000000000000000000000000000000000008160068151811061031557610315610711565b60200260200101906001600160e01b03191690816001600160e01b031916815250507f00000000000000000000000000000000000000000000000000000000000000008160078151811061036b5761036b610711565b6001600160e01b03199092166020928302919091019091015290565b5f6103b97f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b5f6103cc6004823681610725565b6103d59161074c565b90505f6103e1826104b7565b9050806104a95760405163b700961360e01b81523360048201523060248201526001600160e01b0319831660448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063b7009613906064016040805180830381865afa15801561045f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104839190610784565b509050806104a95760405162d1953b60e31b815233600482015260240160405180910390fd5b6104b2836106a7565b505050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160e01b031916826001600160e01b031916148061052d57507f00000000000000000000000000000000000000000000000000000000000000006001600160e01b031916826001600160e01b031916145b8061056b57507f00000000000000000000000000000000000000000000000000000000000000006001600160e01b031916826001600160e01b031916145b806105a957507f00000000000000000000000000000000000000000000000000000000000000006001600160e01b031916826001600160e01b031916145b806105e757507f00000000000000000000000000000000000000000000000000000000000000006001600160e01b031916826001600160e01b031916145b8061062557507f00000000000000000000000000000000000000000000000000000000000000006001600160e01b031916826001600160e01b031916145b8061066357507f00000000000000000000000000000000000000000000000000000000000000006001600160e01b031916826001600160e01b031916145b806106a157507f00000000000000000000000000000000000000000000000000000000000000006001600160e01b031916826001600160e01b031916145b92915050565b365f5f375f5f365f845af43d5f5f3e8080156106c1573d5ff35b3d5ffd5b602080825282518282018190525f918401906040840190835b818110156107065783516001600160e01b0319168352602093840193909201916001016106de565b509095945050505050565b634e487b7160e01b5f52603260045260245ffd5b5f5f85851115610733575f5ffd5b8386111561073f575f5ffd5b5050820193919092039150565b80356001600160e01b0319811690600484101561077d576001600160e01b0319600485900360031b81901b82161691505b5092915050565b5f5f60408385031215610795575f5ffd5b825180151581146107a4575f5ffd5b602084015190925063ffffffff811681146107bd575f5ffd5b80915050925092905056fea26469706673582212207d2da9f078e7b5c13b98f2dc206d6cb83b759e4e4a34e4050423205530573dcb64736f6c634300081c0033",
121
- "linkReferences": {},
122
- "deployedLinkReferences": {}
123
- }
@@ -1,123 +0,0 @@
1
- {
2
- "_format": "hh-sol-artifact-1",
3
- "contractName": "AccessManagedProxyS9",
4
- "sourceName": "contracts/amps/AccessManagedProxyS9.sol",
5
- "abi": [
6
- {
7
- "inputs": [
8
- {
9
- "internalType": "address",
10
- "name": "implementation",
11
- "type": "address"
12
- },
13
- {
14
- "internalType": "bytes",
15
- "name": "_data",
16
- "type": "bytes"
17
- },
18
- {
19
- "internalType": "contract IAccessManager",
20
- "name": "manager",
21
- "type": "address"
22
- },
23
- {
24
- "internalType": "bytes4[9]",
25
- "name": "passThruMethods",
26
- "type": "bytes4[9]"
27
- }
28
- ],
29
- "stateMutability": "payable",
30
- "type": "constructor"
31
- },
32
- {
33
- "inputs": [
34
- {
35
- "internalType": "address",
36
- "name": "caller",
37
- "type": "address"
38
- }
39
- ],
40
- "name": "AccessManagedUnauthorized",
41
- "type": "error"
42
- },
43
- {
44
- "inputs": [
45
- {
46
- "internalType": "address",
47
- "name": "target",
48
- "type": "address"
49
- }
50
- ],
51
- "name": "AddressEmptyCode",
52
- "type": "error"
53
- },
54
- {
55
- "inputs": [
56
- {
57
- "internalType": "address",
58
- "name": "implementation",
59
- "type": "address"
60
- }
61
- ],
62
- "name": "ERC1967InvalidImplementation",
63
- "type": "error"
64
- },
65
- {
66
- "inputs": [],
67
- "name": "ERC1967NonPayable",
68
- "type": "error"
69
- },
70
- {
71
- "inputs": [],
72
- "name": "FailedCall",
73
- "type": "error"
74
- },
75
- {
76
- "anonymous": false,
77
- "inputs": [
78
- {
79
- "indexed": true,
80
- "internalType": "address",
81
- "name": "implementation",
82
- "type": "address"
83
- }
84
- ],
85
- "name": "Upgraded",
86
- "type": "event"
87
- },
88
- {
89
- "stateMutability": "payable",
90
- "type": "fallback"
91
- },
92
- {
93
- "inputs": [],
94
- "name": "ACCESS_MANAGER",
95
- "outputs": [
96
- {
97
- "internalType": "contract IAccessManager",
98
- "name": "",
99
- "type": "address"
100
- }
101
- ],
102
- "stateMutability": "view",
103
- "type": "function"
104
- },
105
- {
106
- "inputs": [],
107
- "name": "PASS_THRU_METHODS",
108
- "outputs": [
109
- {
110
- "internalType": "bytes4[]",
111
- "name": "methods",
112
- "type": "bytes4[]"
113
- }
114
- ],
115
- "stateMutability": "view",
116
- "type": "function"
117
- }
118
- ],
119
- "bytecode": "0x6101c0604052604051610db8380380610db883398101604081905261002391610395565b838383828261003282826100b5565b50506001600160a01b0316608090815283516001600160e01b031990811660a09081526020860151821660c09081526040870151831660e09081526060880151841661010090815294880151841661012052918701518316610140528601518216610160528501518116610180529301519092166101a052506104739350505050565b6100be82610113565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a280511561010757610102828261018e565b505050565b61010f610201565b5050565b806001600160a01b03163b5f0361014d57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60605f5f846001600160a01b0316846040516101aa919061045d565b5f60405180830381855af49150503d805f81146101e2576040519150601f19603f3d011682016040523d82523d5f602084013e6101e7565b606091505b5090925090506101f8858383610222565b95945050505050565b34156102205760405163b398979f60e01b815260040160405180910390fd5b565b6060826102375761023282610281565b61027a565b815115801561024e57506001600160a01b0384163b155b1561027757604051639996b31560e01b81526001600160a01b0385166004820152602401610144565b50805b9392505050565b80511561029057805160208201fd5b60405163d6bda27560e01b815260040160405180910390fd5b50565b6001600160a01b03811681146102a9575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b03811182821017156102fc576102fc6102c0565b604052919050565b805161030f816102ac565b919050565b5f82601f830112610323575f5ffd5b60405161012081016001600160401b0381118282101715610346576103466102c0565b6040528061012084018581111561035b575f5ffd5b845b8181101561038a5780516001600160e01b03198116811461037c575f5ffd5b83526020928301920161035d565b509195945050505050565b5f5f5f5f61018085870312156103a9575f5ffd5b84516103b4816102ac565b60208601519094506001600160401b038111156103cf575f5ffd5b8501601f810187136103df575f5ffd5b80516001600160401b038111156103f8576103f86102c0565b61040b601f8201601f19166020016102d4565b81815288602083850101111561041f575f5ffd5b8160208401602083015e5f6020838301015280955050505061044360408601610304565b91506104528660608701610314565b905092959194509250565b5f82518060208501845e5f920191825250919050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516108926105265f395f818161038f01526106ff01525f818161033901526106c101525f81816102e3015261068301525f818161028d015261064501525f8181610237015261060701525f81816101e101526105c901525f818161018b015261058b01525f8181610135015261054d01525f818160e0015261051001525f8181606d015261046901526108925ff3fe608060405260043610610028575f3560e01c806314416c03146100325780633a7b7a391461005c575b6100306100a7565b005b34801561003d575f5ffd5b506100466100b9565b6040516100539190610759565b60405180910390f35b348015610067575f5ffd5b5061008f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610053565b6100b76100b26103dd565b610414565b565b604080516009808252610140820190925260609160208201610120803683370190505090507f0000000000000000000000000000000000000000000000000000000000000000815f81518110610111576101116107a5565b60200260200101906001600160e01b03191690816001600160e01b031916815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110610167576101676107a5565b60200260200101906001600160e01b03191690816001600160e01b031916815250507f0000000000000000000000000000000000000000000000000000000000000000816002815181106101bd576101bd6107a5565b60200260200101906001600160e01b03191690816001600160e01b031916815250507f000000000000000000000000000000000000000000000000000000000000000081600381518110610213576102136107a5565b60200260200101906001600160e01b03191690816001600160e01b031916815250507f000000000000000000000000000000000000000000000000000000000000000081600481518110610269576102696107a5565b60200260200101906001600160e01b03191690816001600160e01b031916815250507f0000000000000000000000000000000000000000000000000000000000000000816005815181106102bf576102bf6107a5565b60200260200101906001600160e01b03191690816001600160e01b031916815250507f000000000000000000000000000000000000000000000000000000000000000081600681518110610315576103156107a5565b60200260200101906001600160e01b03191690816001600160e01b031916815250507f00000000000000000000000000000000000000000000000000000000000000008160078151811061036b5761036b6107a5565b60200260200101906001600160e01b03191690816001600160e01b031916815250507f0000000000000000000000000000000000000000000000000000000000000000816008815181106103c1576103c16107a5565b6001600160e01b03199092166020928302919091019091015290565b5f61040f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b5f61042260048236816107b9565b61042b916107e0565b90505f6104378261050d565b9050806104ff5760405163b700961360e01b81523360048201523060248201526001600160e01b0319831660448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063b7009613906064016040805180830381865afa1580156104b5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104d99190610818565b509050806104ff5760405162d1953b60e31b815233600482015260240160405180910390fd5b6105088361073b565b505050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160e01b031916826001600160e01b031916148061058357507f00000000000000000000000000000000000000000000000000000000000000006001600160e01b031916826001600160e01b031916145b806105c157507f00000000000000000000000000000000000000000000000000000000000000006001600160e01b031916826001600160e01b031916145b806105ff57507f00000000000000000000000000000000000000000000000000000000000000006001600160e01b031916826001600160e01b031916145b8061063d57507f00000000000000000000000000000000000000000000000000000000000000006001600160e01b031916826001600160e01b031916145b8061067b57507f00000000000000000000000000000000000000000000000000000000000000006001600160e01b031916826001600160e01b031916145b806106b957507f00000000000000000000000000000000000000000000000000000000000000006001600160e01b031916826001600160e01b031916145b806106f757507f00000000000000000000000000000000000000000000000000000000000000006001600160e01b031916826001600160e01b031916145b8061073557507f00000000000000000000000000000000000000000000000000000000000000006001600160e01b031916826001600160e01b031916145b92915050565b365f5f375f5f365f845af43d5f5f3e808015610755573d5ff35b3d5ffd5b602080825282518282018190525f918401906040840190835b8181101561079a5783516001600160e01b031916835260209384019390920191600101610772565b509095945050505050565b634e487b7160e01b5f52603260045260245ffd5b5f5f858511156107c7575f5ffd5b838611156107d3575f5ffd5b5050820193919092039150565b80356001600160e01b03198116906004841015610811576001600160e01b0319600485900360031b81901b82161691505b5092915050565b5f5f60408385031215610829575f5ffd5b82518015158114610838575f5ffd5b602084015190925063ffffffff81168114610851575f5ffd5b80915050925092905056fea26469706673582212206460973825867c720121f3bf916539e19779b999b27b8001127cfb946ae456e264736f6c634300081c0033",
120
- "deployedBytecode": "0x608060405260043610610028575f3560e01c806314416c03146100325780633a7b7a391461005c575b6100306100a7565b005b34801561003d575f5ffd5b506100466100b9565b6040516100539190610759565b60405180910390f35b348015610067575f5ffd5b5061008f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610053565b6100b76100b26103dd565b610414565b565b604080516009808252610140820190925260609160208201610120803683370190505090507f0000000000000000000000000000000000000000000000000000000000000000815f81518110610111576101116107a5565b60200260200101906001600160e01b03191690816001600160e01b031916815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110610167576101676107a5565b60200260200101906001600160e01b03191690816001600160e01b031916815250507f0000000000000000000000000000000000000000000000000000000000000000816002815181106101bd576101bd6107a5565b60200260200101906001600160e01b03191690816001600160e01b031916815250507f000000000000000000000000000000000000000000000000000000000000000081600381518110610213576102136107a5565b60200260200101906001600160e01b03191690816001600160e01b031916815250507f000000000000000000000000000000000000000000000000000000000000000081600481518110610269576102696107a5565b60200260200101906001600160e01b03191690816001600160e01b031916815250507f0000000000000000000000000000000000000000000000000000000000000000816005815181106102bf576102bf6107a5565b60200260200101906001600160e01b03191690816001600160e01b031916815250507f000000000000000000000000000000000000000000000000000000000000000081600681518110610315576103156107a5565b60200260200101906001600160e01b03191690816001600160e01b031916815250507f00000000000000000000000000000000000000000000000000000000000000008160078151811061036b5761036b6107a5565b60200260200101906001600160e01b03191690816001600160e01b031916815250507f0000000000000000000000000000000000000000000000000000000000000000816008815181106103c1576103c16107a5565b6001600160e01b03199092166020928302919091019091015290565b5f61040f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b5f61042260048236816107b9565b61042b916107e0565b90505f6104378261050d565b9050806104ff5760405163b700961360e01b81523360048201523060248201526001600160e01b0319831660448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063b7009613906064016040805180830381865afa1580156104b5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104d99190610818565b509050806104ff5760405162d1953b60e31b815233600482015260240160405180910390fd5b6105088361073b565b505050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160e01b031916826001600160e01b031916148061058357507f00000000000000000000000000000000000000000000000000000000000000006001600160e01b031916826001600160e01b031916145b806105c157507f00000000000000000000000000000000000000000000000000000000000000006001600160e01b031916826001600160e01b031916145b806105ff57507f00000000000000000000000000000000000000000000000000000000000000006001600160e01b031916826001600160e01b031916145b8061063d57507f00000000000000000000000000000000000000000000000000000000000000006001600160e01b031916826001600160e01b031916145b8061067b57507f00000000000000000000000000000000000000000000000000000000000000006001600160e01b031916826001600160e01b031916145b806106b957507f00000000000000000000000000000000000000000000000000000000000000006001600160e01b031916826001600160e01b031916145b806106f757507f00000000000000000000000000000000000000000000000000000000000000006001600160e01b031916826001600160e01b031916145b8061073557507f00000000000000000000000000000000000000000000000000000000000000006001600160e01b031916826001600160e01b031916145b92915050565b365f5f375f5f365f845af43d5f5f3e808015610755573d5ff35b3d5ffd5b602080825282518282018190525f918401906040840190835b8181101561079a5783516001600160e01b031916835260209384019390920191600101610772565b509095945050505050565b634e487b7160e01b5f52603260045260245ffd5b5f5f858511156107c7575f5ffd5b838611156107d3575f5ffd5b5050820193919092039150565b80356001600160e01b03198116906004841015610811576001600160e01b0319600485900360031b81901b82161691505b5092915050565b5f5f60408385031215610829575f5ffd5b82518015158114610838575f5ffd5b602084015190925063ffffffff81168114610851575f5ffd5b80915050925092905056fea26469706673582212206460973825867c720121f3bf916539e19779b999b27b8001127cfb946ae456e264736f6c634300081c0033",
121
- "linkReferences": {},
122
- "deployedLinkReferences": {}
123
- }
@@ -1,63 +0,0 @@
1
- // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.0;
3
-
4
- import {AccessManagedProxy} from "../AccessManagedProxy.sol";
5
- import {IAccessManager} from "@openzeppelin/contracts/access/manager/IAccessManager.sol";
6
-
7
- /**
8
- * @title AccessManagedProxyS1
9
- * @notice Specialization of AccessManagedProxy with pass thru (skips AM) for some messages for gas optimization
10
- *
11
- * @custom:security-contact security@ensuro.co
12
- * @author Ensuro
13
- */
14
- contract AccessManagedProxyS1 is AccessManagedProxy {
15
- bytes4 internal immutable PASS_THRU_METHODS_0;
16
-
17
- /**
18
- * @notice Constructor of the proxy, defining the implementation and the access manager
19
- * @dev Initializes the upgradeable proxy with an initial implementation specified by `implementation` and
20
- * with `manager` as the ACCESS_MANAGER that will handle access control.
21
- *
22
- * @param implementation The initial implementation contract.
23
- * @param _data If nonempty, it's used as data in a delegate call to `implementation`. This will typically be an
24
- * encoded function call, and allows initializing the storage of the proxy like a Solidity constructor.
25
- * @param manager The access manager that will handle access control
26
- * @param passThruMethods The selector of methods that will skip the access control validation, typically used for
27
- * views and other methods for gas optimization.
28
- *
29
- * Requirements:
30
- *
31
- * - If `data` is empty, `msg.value` must be zero.
32
- */
33
- constructor(
34
- address implementation,
35
- bytes memory _data,
36
- IAccessManager manager,
37
- bytes4[1] memory passThruMethods
38
- ) payable AccessManagedProxy(implementation, _data, manager) {
39
- PASS_THRU_METHODS_0 = passThruMethods[0];
40
- }
41
-
42
- /*
43
- * @notice Skips the access control if the method called is one of the passThruMethods
44
- * @dev See {PASS_THRU_METHODS()}
45
- * @param selector The selector of the method called
46
- * @return Whether the access control using ACCESS_MANAGER should be skipped or not
47
- */
48
- function _skipAC(bytes4 selector) internal view override returns (bool) {
49
- return
50
- selector == PASS_THRU_METHODS_0;
51
- }
52
-
53
- /**
54
- * @notice Gives observability to the methods that are skipped from access control
55
- * @dev This list is fixed and defined on contract construction
56
- * @return methods The list of method selectors that skip ACCESS_MANAGER access control
57
- */
58
- // solhint-disable-next-line func-name-mixedcase
59
- function PASS_THRU_METHODS() external view returns (bytes4[] memory methods) {
60
- methods = new bytes4[](1);
61
- methods[0] = PASS_THRU_METHODS_0;
62
- }
63
- }
@@ -1,99 +0,0 @@
1
- // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.0;
3
-
4
- import {AccessManagedProxy} from "../AccessManagedProxy.sol";
5
- import {IAccessManager} from "@openzeppelin/contracts/access/manager/IAccessManager.sol";
6
-
7
- /**
8
- * @title AccessManagedProxyS10
9
- * @notice Specialization of AccessManagedProxy with pass thru (skips AM) for some messages for gas optimization
10
- *
11
- * @custom:security-contact security@ensuro.co
12
- * @author Ensuro
13
- */
14
- contract AccessManagedProxyS10 is AccessManagedProxy {
15
- bytes4 internal immutable PASS_THRU_METHODS_0;
16
- bytes4 internal immutable PASS_THRU_METHODS_1;
17
- bytes4 internal immutable PASS_THRU_METHODS_2;
18
- bytes4 internal immutable PASS_THRU_METHODS_3;
19
- bytes4 internal immutable PASS_THRU_METHODS_4;
20
- bytes4 internal immutable PASS_THRU_METHODS_5;
21
- bytes4 internal immutable PASS_THRU_METHODS_6;
22
- bytes4 internal immutable PASS_THRU_METHODS_7;
23
- bytes4 internal immutable PASS_THRU_METHODS_8;
24
- bytes4 internal immutable PASS_THRU_METHODS_9;
25
-
26
- /**
27
- * @notice Constructor of the proxy, defining the implementation and the access manager
28
- * @dev Initializes the upgradeable proxy with an initial implementation specified by `implementation` and
29
- * with `manager` as the ACCESS_MANAGER that will handle access control.
30
- *
31
- * @param implementation The initial implementation contract.
32
- * @param _data If nonempty, it's used as data in a delegate call to `implementation`. This will typically be an
33
- * encoded function call, and allows initializing the storage of the proxy like a Solidity constructor.
34
- * @param manager The access manager that will handle access control
35
- * @param passThruMethods The selector of methods that will skip the access control validation, typically used for
36
- * views and other methods for gas optimization.
37
- *
38
- * Requirements:
39
- *
40
- * - If `data` is empty, `msg.value` must be zero.
41
- */
42
- constructor(
43
- address implementation,
44
- bytes memory _data,
45
- IAccessManager manager,
46
- bytes4[10] memory passThruMethods
47
- ) payable AccessManagedProxy(implementation, _data, manager) {
48
- PASS_THRU_METHODS_0 = passThruMethods[0];
49
- PASS_THRU_METHODS_1 = passThruMethods[1];
50
- PASS_THRU_METHODS_2 = passThruMethods[2];
51
- PASS_THRU_METHODS_3 = passThruMethods[3];
52
- PASS_THRU_METHODS_4 = passThruMethods[4];
53
- PASS_THRU_METHODS_5 = passThruMethods[5];
54
- PASS_THRU_METHODS_6 = passThruMethods[6];
55
- PASS_THRU_METHODS_7 = passThruMethods[7];
56
- PASS_THRU_METHODS_8 = passThruMethods[8];
57
- PASS_THRU_METHODS_9 = passThruMethods[9];
58
- }
59
-
60
- /*
61
- * @notice Skips the access control if the method called is one of the passThruMethods
62
- * @dev See {PASS_THRU_METHODS()}
63
- * @param selector The selector of the method called
64
- * @return Whether the access control using ACCESS_MANAGER should be skipped or not
65
- */
66
- function _skipAC(bytes4 selector) internal view override returns (bool) {
67
- return
68
- selector == PASS_THRU_METHODS_0 ||
69
- selector == PASS_THRU_METHODS_1 ||
70
- selector == PASS_THRU_METHODS_2 ||
71
- selector == PASS_THRU_METHODS_3 ||
72
- selector == PASS_THRU_METHODS_4 ||
73
- selector == PASS_THRU_METHODS_5 ||
74
- selector == PASS_THRU_METHODS_6 ||
75
- selector == PASS_THRU_METHODS_7 ||
76
- selector == PASS_THRU_METHODS_8 ||
77
- selector == PASS_THRU_METHODS_9;
78
- }
79
-
80
- /**
81
- * @notice Gives observability to the methods that are skipped from access control
82
- * @dev This list is fixed and defined on contract construction
83
- * @return methods The list of method selectors that skip ACCESS_MANAGER access control
84
- */
85
- // solhint-disable-next-line func-name-mixedcase
86
- function PASS_THRU_METHODS() external view returns (bytes4[] memory methods) {
87
- methods = new bytes4[](10);
88
- methods[0] = PASS_THRU_METHODS_0;
89
- methods[1] = PASS_THRU_METHODS_1;
90
- methods[2] = PASS_THRU_METHODS_2;
91
- methods[3] = PASS_THRU_METHODS_3;
92
- methods[4] = PASS_THRU_METHODS_4;
93
- methods[5] = PASS_THRU_METHODS_5;
94
- methods[6] = PASS_THRU_METHODS_6;
95
- methods[7] = PASS_THRU_METHODS_7;
96
- methods[8] = PASS_THRU_METHODS_8;
97
- methods[9] = PASS_THRU_METHODS_9;
98
- }
99
- }