enums.js 714 B

1234567891011121314
  1. const { ethers } = require('ethers');
  2. const Enum = (...options) => Object.fromEntries(options.map((key, i) => [key, BigInt(i)]));
  3. const EnumTyped = (...options) => Object.fromEntries(options.map((key, i) => [key, ethers.Typed.uint8(i)]));
  4. module.exports = {
  5. Enum,
  6. EnumTyped,
  7. ProposalState: Enum('Pending', 'Active', 'Canceled', 'Defeated', 'Succeeded', 'Queued', 'Expired', 'Executed'),
  8. VoteType: Object.assign(Enum('Against', 'For', 'Abstain'), { Parameters: 255n }),
  9. Rounding: EnumTyped('Floor', 'Ceil', 'Trunc', 'Expand'),
  10. OperationState: Enum('Unset', 'Waiting', 'Ready', 'Done'),
  11. RevertType: EnumTyped('None', 'RevertWithoutMessage', 'RevertWithMessage', 'RevertWithCustomError', 'Panic'),
  12. };