You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
70 lines
1.7 KiB
70 lines
1.7 KiB
1 year ago
|
const { time } = require('@openzeppelin/test-helpers');
|
||
|
const { MAX_UINT64 } = require('./constants');
|
||
|
const { artifacts } = require('hardhat');
|
||
|
|
||
|
function buildBaseRoles() {
|
||
|
const roles = {
|
||
|
ADMIN: {
|
||
|
id: web3.utils.toBN(0),
|
||
|
},
|
||
|
SOME_ADMIN: {
|
||
|
id: web3.utils.toBN(17),
|
||
|
},
|
||
|
SOME_GUARDIAN: {
|
||
|
id: web3.utils.toBN(35),
|
||
|
},
|
||
|
SOME: {
|
||
|
id: web3.utils.toBN(42),
|
||
|
},
|
||
|
PUBLIC: {
|
||
|
id: MAX_UINT64,
|
||
|
},
|
||
|
};
|
||
|
|
||
|
// Names
|
||
|
Object.entries(roles).forEach(([name, role]) => (role.name = name));
|
||
|
|
||
|
// Defaults
|
||
|
for (const role of Object.keys(roles)) {
|
||
|
roles[role].admin = roles.ADMIN;
|
||
|
roles[role].guardian = roles.ADMIN;
|
||
|
}
|
||
|
|
||
|
// Admins
|
||
|
roles.SOME.admin = roles.SOME_ADMIN;
|
||
|
|
||
|
// Guardians
|
||
|
roles.SOME.guardian = roles.SOME_GUARDIAN;
|
||
|
|
||
|
return roles;
|
||
|
}
|
||
|
|
||
|
const formatAccess = access => [access[0], access[1].toString()];
|
||
|
|
||
|
const MINSETBACK = time.duration.days(5);
|
||
|
const EXPIRATION = time.duration.weeks(1);
|
||
|
|
||
|
let EXECUTION_ID_STORAGE_SLOT = 3n;
|
||
|
let CONSUMING_SCHEDULE_STORAGE_SLOT = 0n;
|
||
|
try {
|
||
|
// Try to get the artifact paths, will throw if it doesn't exist
|
||
|
artifacts._getArtifactPathSync('AccessManagerUpgradeable');
|
||
|
artifacts._getArtifactPathSync('AccessManagedUpgradeable');
|
||
|
|
||
|
// ERC-7201 namespace location for AccessManager
|
||
|
EXECUTION_ID_STORAGE_SLOT += 0x40c6c8c28789853c7efd823ab20824bbd71718a8a5915e855f6f288c9a26ad00n;
|
||
|
// ERC-7201 namespace location for AccessManaged
|
||
|
CONSUMING_SCHEDULE_STORAGE_SLOT += 0xf3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00n;
|
||
|
} catch (_) {
|
||
|
// eslint-disable-next-line no-empty
|
||
|
}
|
||
|
|
||
|
module.exports = {
|
||
|
buildBaseRoles,
|
||
|
formatAccess,
|
||
|
MINSETBACK,
|
||
|
EXPIRATION,
|
||
|
EXECUTION_ID_STORAGE_SLOT,
|
||
|
CONSUMING_SCHEDULE_STORAGE_SLOT,
|
||
|
};
|