@venusprotocol/governance-contracts 2.4.0 → 2.5.0-dev.2

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 (138) hide show
  1. package/artifacts/@layerzerolabs/solidity-examples/contracts/libraries/BytesLib.sol/BytesLib.dbg.json +1 -1
  2. package/artifacts/@layerzerolabs/solidity-examples/contracts/libraries/ExcessivelySafeCall.sol/ExcessivelySafeCall.dbg.json +1 -1
  3. package/artifacts/@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol/LzApp.dbg.json +1 -1
  4. package/artifacts/@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol/NonblockingLzApp.dbg.json +1 -1
  5. package/artifacts/@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroEndpoint.sol/ILayerZeroEndpoint.dbg.json +1 -1
  6. package/artifacts/@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroReceiver.sol/ILayerZeroReceiver.dbg.json +1 -1
  7. package/artifacts/@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroUserApplicationConfig.sol/ILayerZeroUserApplicationConfig.dbg.json +1 -1
  8. package/artifacts/@layerzerolabs/solidity-examples/contracts/lzApp/libs/LzLib.sol/LzLib.dbg.json +1 -1
  9. package/artifacts/@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol/LZEndpointMock.dbg.json +1 -1
  10. package/artifacts/@openzeppelin/contracts/access/AccessControl.sol/AccessControl.dbg.json +1 -1
  11. package/artifacts/@openzeppelin/contracts/access/IAccessControl.sol/IAccessControl.dbg.json +1 -1
  12. package/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.dbg.json +1 -1
  13. package/artifacts/@openzeppelin/contracts/security/Pausable.sol/Pausable.dbg.json +1 -1
  14. package/artifacts/@openzeppelin/contracts/security/ReentrancyGuard.sol/ReentrancyGuard.dbg.json +1 -1
  15. package/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json +1 -1
  16. package/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json +1 -1
  17. package/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.dbg.json +1 -1
  18. package/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.dbg.json +1 -1
  19. package/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.dbg.json +1 -1
  20. package/artifacts/@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol/Ownable2StepUpgradeable.dbg.json +1 -1
  21. package/artifacts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.dbg.json +1 -1
  22. package/artifacts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.dbg.json +1 -1
  23. package/artifacts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.dbg.json +1 -1
  24. package/artifacts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.dbg.json +1 -1
  25. package/artifacts/build-info/{d2df901c99f2b9e01cfffb9042af258b.json → 55c66c9e0f80b7f400934081cbca14cd.json} +1 -1
  26. package/artifacts/contracts/Cross-chain/BaseOmnichainControllerDest.sol/BaseOmnichainControllerDest.dbg.json +1 -1
  27. package/artifacts/contracts/Cross-chain/BaseOmnichainControllerSrc.sol/BaseOmnichainControllerSrc.dbg.json +1 -1
  28. package/artifacts/contracts/Cross-chain/OmnichainExecutorOwner.sol/OmnichainExecutorOwner.dbg.json +1 -1
  29. package/artifacts/contracts/Cross-chain/OmnichainGovernanceExecutor.sol/OmnichainGovernanceExecutor.dbg.json +1 -1
  30. package/artifacts/contracts/Cross-chain/OmnichainProposalSender.sol/OmnichainProposalSender.dbg.json +1 -1
  31. package/artifacts/contracts/Cross-chain/interfaces/IOmnichainGovernanceExecutor.sol/IOmnichainGovernanceExecutor.dbg.json +1 -1
  32. package/artifacts/contracts/Cross-chain/interfaces/ITimelock.sol/ITimelock.dbg.json +1 -1
  33. package/artifacts/contracts/Governance/AccessControlManager.sol/AccessControlManager.dbg.json +1 -1
  34. package/artifacts/contracts/Governance/AccessControlledV8.sol/AccessControlledV8.dbg.json +1 -1
  35. package/artifacts/contracts/Governance/IAccessControlManagerV8.sol/IAccessControlManagerV8.dbg.json +1 -1
  36. package/artifacts/contracts/Governance/TimelockV8.sol/TimelockV8.dbg.json +1 -1
  37. package/artifacts/contracts/Utils/ACMCommandsAggregator.sol/ACMCommandsAggregator.dbg.json +4 -0
  38. package/artifacts/contracts/Utils/ACMCommandsAggregator.sol/ACMCommandsAggregator.json +251 -0
  39. package/artifacts/contracts/test/MockAccessTest.sol/MockAccessTest.dbg.json +1 -1
  40. package/artifacts/contracts/test/MockXVSVault.sol/MockXVSVault.dbg.json +1 -1
  41. package/artifacts/contracts/test/TestTimelockV8.sol/TestTimelockV8.dbg.json +1 -1
  42. package/artifacts/hardhat-deploy/solc_0.8/openzeppelin/access/Ownable.sol/Ownable.dbg.json +1 -1
  43. package/artifacts/hardhat-deploy/solc_0.8/openzeppelin/interfaces/draft-IERC1822.sol/IERC1822Proxiable.dbg.json +1 -1
  44. package/artifacts/hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.dbg.json +1 -1
  45. package/artifacts/hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Upgrade.sol/ERC1967Upgrade.dbg.json +1 -1
  46. package/artifacts/hardhat-deploy/solc_0.8/openzeppelin/proxy/Proxy.sol/Proxy.dbg.json +1 -1
  47. package/artifacts/hardhat-deploy/solc_0.8/openzeppelin/proxy/beacon/IBeacon.sol/IBeacon.dbg.json +1 -1
  48. package/artifacts/hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.dbg.json +1 -1
  49. package/artifacts/hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.dbg.json +1 -1
  50. package/artifacts/hardhat-deploy/solc_0.8/openzeppelin/utils/Address.sol/Address.dbg.json +1 -1
  51. package/artifacts/hardhat-deploy/solc_0.8/openzeppelin/utils/Context.sol/Context.dbg.json +1 -1
  52. package/artifacts/hardhat-deploy/solc_0.8/openzeppelin/utils/StorageSlot.sol/StorageSlot.dbg.json +1 -1
  53. package/artifacts/hardhat-deploy/solc_0.8/proxy/OptimizedTransparentUpgradeableProxy.sol/OptimizedTransparentUpgradeableProxy.dbg.json +1 -1
  54. package/contracts/Utils/ACMCommandsAggregator.sol +153 -0
  55. package/deploy/007-acm-commands-aggregator.ts +23 -0
  56. package/deploy/008-configure-acm-commands-aggregator.ts +430 -0
  57. package/deploy/009-initial-configuration-multichain-governance.ts +122 -0
  58. package/deployments/arbitrumone/ACMCommandsAggregator.json +366 -0
  59. package/deployments/arbitrumone/solcInputs/c8adce9942919fd992f7532e82a0e082.json +43 -0
  60. package/deployments/arbitrumone.json +245 -0
  61. package/deployments/arbitrumone_addresses.json +1 -0
  62. package/deployments/arbitrumsepolia/ACMCommandsAggregator.json +366 -0
  63. package/deployments/arbitrumsepolia/solcInputs/8462bae4a0ff7e7203ecab090cdf091c.json +151 -0
  64. package/deployments/arbitrumsepolia.json +245 -0
  65. package/deployments/arbitrumsepolia_addresses.json +1 -0
  66. package/deployments/ethereum/ACMCommandsAggregator.json +366 -0
  67. package/deployments/ethereum/solcInputs/c8adce9942919fd992f7532e82a0e082.json +43 -0
  68. package/deployments/ethereum.json +245 -0
  69. package/deployments/ethereum_addresses.json +1 -0
  70. package/deployments/opbnbmainnet/ACMCommandsAggregator.json +366 -0
  71. package/deployments/opbnbmainnet/solcInputs/c8adce9942919fd992f7532e82a0e082.json +43 -0
  72. package/deployments/opbnbmainnet.json +245 -0
  73. package/deployments/opbnbmainnet_addresses.json +1 -0
  74. package/deployments/opbnbtestnet/ACMCommandsAggregator.json +366 -0
  75. package/deployments/opbnbtestnet/solcInputs/8462bae4a0ff7e7203ecab090cdf091c.json +151 -0
  76. package/deployments/opbnbtestnet.json +245 -0
  77. package/deployments/opbnbtestnet_addresses.json +1 -0
  78. package/deployments/sepolia/ACMCommandsAggregator.json +365 -0
  79. package/deployments/sepolia/solcInputs/06fc2b6f9f7e0e63c70222b8e0b27702.json +40 -0
  80. package/deployments/sepolia/solcInputs/8462bae4a0ff7e7203ecab090cdf091c.json +151 -0
  81. package/deployments/sepolia/solcInputs/c5ad99afd830582b4e18b887fc15722a.json +40 -0
  82. package/deployments/sepolia/solcInputs/d1b723608bc0e5c4e69b41a531154535.json +40 -0
  83. package/deployments/sepolia.json +245 -0
  84. package/deployments/sepolia_addresses.json +1 -0
  85. package/deployments/zksyncsepolia/ACMCommandsAggregator.json +465 -0
  86. package/deployments/zksyncsepolia/solcInputs/0be793521835d17f112344b451092640.json +43 -0
  87. package/deployments/zksyncsepolia.json +245 -0
  88. package/deployments/zksyncsepolia_addresses.json +1 -0
  89. package/dist/deploy/007-acm-commands-aggregator.d.ts +4 -0
  90. package/dist/deploy/007-acm-commands-aggregator.d.ts.map +1 -0
  91. package/dist/deploy/007-acm-commands-aggregator.js +30 -0
  92. package/dist/deploy/007-acm-commands-aggregator.js.map +1 -0
  93. package/dist/deploy/008-configure-acm-commands-aggregator.d.ts +4 -0
  94. package/dist/deploy/008-configure-acm-commands-aggregator.d.ts.map +1 -0
  95. package/dist/deploy/008-configure-acm-commands-aggregator.js +361 -0
  96. package/dist/deploy/008-configure-acm-commands-aggregator.js.map +1 -0
  97. package/dist/deploy/009-initial-configuration-multichain-governance.d.ts +4 -0
  98. package/dist/deploy/009-initial-configuration-multichain-governance.d.ts.map +1 -0
  99. package/dist/deploy/009-initial-configuration-multichain-governance.js +101 -0
  100. package/dist/deploy/009-initial-configuration-multichain-governance.js.map +1 -0
  101. package/dist/helpers/permissions.d.ts +46 -0
  102. package/dist/helpers/permissions.d.ts.map +1 -0
  103. package/dist/helpers/permissions.js +399 -0
  104. package/dist/helpers/permissions.js.map +1 -0
  105. package/dist/typechain/contracts/Utils/ACMCommandsAggregator.d.ts +229 -0
  106. package/dist/typechain/contracts/Utils/ACMCommandsAggregator.d.ts.map +1 -0
  107. package/dist/typechain/contracts/Utils/ACMCommandsAggregator.js +3 -0
  108. package/dist/typechain/contracts/Utils/ACMCommandsAggregator.js.map +1 -0
  109. package/dist/typechain/contracts/Utils/index.d.ts +2 -0
  110. package/dist/typechain/contracts/Utils/index.d.ts.map +1 -0
  111. package/dist/typechain/contracts/Utils/index.js +3 -0
  112. package/dist/typechain/contracts/Utils/index.js.map +1 -0
  113. package/dist/typechain/contracts/index.d.ts +2 -0
  114. package/dist/typechain/contracts/index.d.ts.map +1 -1
  115. package/dist/typechain/factories/contracts/Utils/ACMCommandsAggregator__factory.d.ts +206 -0
  116. package/dist/typechain/factories/contracts/Utils/ACMCommandsAggregator__factory.d.ts.map +1 -0
  117. package/dist/typechain/factories/contracts/Utils/ACMCommandsAggregator__factory.js +280 -0
  118. package/dist/typechain/factories/contracts/Utils/ACMCommandsAggregator__factory.js.map +1 -0
  119. package/dist/typechain/factories/contracts/Utils/index.d.ts +2 -0
  120. package/dist/typechain/factories/contracts/Utils/index.d.ts.map +1 -0
  121. package/dist/typechain/factories/contracts/Utils/index.js +6 -0
  122. package/dist/typechain/factories/contracts/Utils/index.js.map +1 -0
  123. package/dist/typechain/factories/contracts/index.d.ts +1 -0
  124. package/dist/typechain/factories/contracts/index.d.ts.map +1 -1
  125. package/dist/typechain/factories/contracts/index.js +2 -1
  126. package/dist/typechain/factories/contracts/index.js.map +1 -1
  127. package/dist/typechain/index.d.ts +2 -0
  128. package/dist/typechain/index.d.ts.map +1 -1
  129. package/dist/typechain/index.js +3 -1
  130. package/dist/typechain/index.js.map +1 -1
  131. package/package.json +1 -1
  132. package/typechain/contracts/Utils/ACMCommandsAggregator.ts +440 -0
  133. package/typechain/contracts/Utils/index.ts +4 -0
  134. package/typechain/contracts/index.ts +3 -0
  135. package/typechain/factories/contracts/Utils/ACMCommandsAggregator__factory.ts +314 -0
  136. package/typechain/factories/contracts/Utils/index.ts +4 -0
  137. package/typechain/factories/contracts/index.ts +1 -0
  138. package/typechain/index.ts +2 -0
@@ -0,0 +1,399 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getOmniChainExecutorOwnerRevokePermissions = exports.getConvertersRevokePermissions = exports.getSFrxETHOracleRevokePermissions = exports.getConverterNetworkRevokePermissions = exports.getRedstoneOracleRevokePermissions = exports.getVTokenRevokePermissions = exports.getComptrollerRevokePermissions = exports.getPoolRegistryRevokePermissions = exports.getPoolRegistryRevokePermissionsForWildcard = exports.getIRMRevokePermissions = exports.getRewardDistributorRevokePermissions = exports.getXVSVaultRevokePermissions = exports.getBoundValidatorRevokePermissions = exports.getResilientOracleRevokePermissions = exports.getPrimeLiquidityProviderRevokePermissions = exports.getPrimeRevokePermissions = exports.getXVSVaultTreasuryRevokePermissions = exports.getXVSBridgeAdminRevokePermissions = exports.getOmniChainExecutorOwnerPermissions = exports.getXVSVaultTreasuryPermissions = exports.getConverterPermissions = exports.getIRMPermissions = exports.getRewardDistributorPermissionsBlockbased = exports.getRewardDistributorPermissionsTimebased = exports.getVTokenPermissions = exports.getComptrollerPermissions = exports.getConverterNetworkPermissions = exports.getProtocolShareReservePermissions = exports.getPrimeLiquidityProviderPermissions = exports.getPrimePermissions = exports.getPoolRegistryPermissions = exports.getXVSVaultPermissions = exports.getXVSBridgeAdminPermissions = exports.getXVSPermissions = exports.getBinanceOraclePermissions = exports.getSFrxETHOraclePermissions = exports.getBoundValidatorPermissions = exports.getRedstoneOraclePermissions = exports.getChainlinkOraclePermissions = exports.getResilientOraclePermissions = exports.AccountType = void 0;
4
+ const hardhat_1 = require("hardhat");
5
+ var AccountType;
6
+ (function (AccountType) {
7
+ AccountType["NORMAL_TIMELOCK"] = "NormalTimelock";
8
+ AccountType["FAST_TRACK_TIMELOCK"] = "FastTrackTimelock";
9
+ AccountType["CRITICAL_TIMELOCK"] = "CriticalTimelock";
10
+ })(AccountType = exports.AccountType || (exports.AccountType = {}));
11
+ const accounts = [AccountType.NORMAL_TIMELOCK]
12
+ .concat(AccountType.CRITICAL_TIMELOCK)
13
+ .concat(AccountType.FAST_TRACK_TIMELOCK);
14
+ const getResilientOraclePermissions = (resilientOracle) => {
15
+ return [
16
+ ...accounts.map(timelock => [resilientOracle, "pause()", timelock]),
17
+ ...accounts.map(timelock => [resilientOracle, "unpause()", timelock]),
18
+ ...accounts.map(timelock => [resilientOracle, "setTokenConfig(TokenConfig)", timelock]),
19
+ [resilientOracle, "setOracle(address,address,uint8)", AccountType.NORMAL_TIMELOCK],
20
+ [resilientOracle, "enableOracle(address,uint8,bool)", AccountType.NORMAL_TIMELOCK],
21
+ ];
22
+ };
23
+ exports.getResilientOraclePermissions = getResilientOraclePermissions;
24
+ const getChainlinkOraclePermissions = (chainlinkOracle) => {
25
+ return [
26
+ ...accounts.map(timelock => [chainlinkOracle, "setTokenConfig(TokenConfig)", timelock]),
27
+ ...accounts.map(timelock => [chainlinkOracle, "setDirectPrice(address,uint256)", timelock]),
28
+ ];
29
+ };
30
+ exports.getChainlinkOraclePermissions = getChainlinkOraclePermissions;
31
+ const getRedstoneOraclePermissions = (redstoneOracle) => {
32
+ return [
33
+ ...accounts.map(timelock => [redstoneOracle, "setTokenConfig(TokenConfig)", timelock]),
34
+ ...accounts.map(timelock => [redstoneOracle, "setDirectPrice(address,uint256)", timelock]),
35
+ ];
36
+ };
37
+ exports.getRedstoneOraclePermissions = getRedstoneOraclePermissions;
38
+ const getBoundValidatorPermissions = (boundValidator) => {
39
+ return [[boundValidator, "setValidateConfig(ValidateConfig)", AccountType.NORMAL_TIMELOCK]];
40
+ };
41
+ exports.getBoundValidatorPermissions = getBoundValidatorPermissions;
42
+ const getSFrxETHOraclePermissions = (sFrxETHOracle) => {
43
+ return [...accounts.map(timelock => [sFrxETHOracle, "setMaxAllowedPriceDifference(uint256)", timelock])];
44
+ };
45
+ exports.getSFrxETHOraclePermissions = getSFrxETHOraclePermissions;
46
+ const getBinanceOraclePermissions = (binanceOracle) => {
47
+ return [
48
+ ...accounts.map(timelock => [binanceOracle, "setMaxStalePeriod(string,uint256)", timelock]),
49
+ ...accounts.map(timelock => [binanceOracle, "setSymbolOverride(string,string)", timelock]),
50
+ ];
51
+ };
52
+ exports.getBinanceOraclePermissions = getBinanceOraclePermissions;
53
+ const getXVSPermissions = (xvs) => {
54
+ return [
55
+ ...accounts.map(timelock => [xvs, "migrateMinterTokens(address,address)", timelock]),
56
+ ...accounts.map(timelock => [xvs, "setMintCap(address,uint256)", timelock]),
57
+ ...accounts.map(timelock => [xvs, "updateBlacklist(address,bool)", timelock]),
58
+ ...accounts.map(timelock => [xvs, "pause()", timelock]),
59
+ ...accounts.map(timelock => [xvs, "unpause()", timelock]),
60
+ ];
61
+ };
62
+ exports.getXVSPermissions = getXVSPermissions;
63
+ const getXVSBridgeAdminPermissions = (xvsBridgeAdmin) => {
64
+ return [
65
+ ...accounts.map(timelock => [xvsBridgeAdmin, "setSendVersion(uint16)", timelock]),
66
+ ...accounts.map(timelock => [xvsBridgeAdmin, "setReceiveVersion(uint16)", timelock]),
67
+ ...accounts.map(timelock => [xvsBridgeAdmin, "forceResumeReceive(uint16,bytes)", timelock]),
68
+ ...accounts.map(timelock => [xvsBridgeAdmin, "setMaxSingleTransactionLimit(uint16,uint256)", timelock]),
69
+ [xvsBridgeAdmin, "setOracle(address)", AccountType.NORMAL_TIMELOCK],
70
+ ...accounts.map(timelock => [xvsBridgeAdmin, "setMaxDailyLimit(uint16,uint256)", timelock]),
71
+ ...accounts.map(timelock => [xvsBridgeAdmin, "setMaxSingleReceiveTransactionLimit(uint16,uint256)", timelock]),
72
+ ...accounts.map(timelock => [xvsBridgeAdmin, "setMaxDailyReceiveLimit(uint16,uint256)", timelock]),
73
+ ...accounts.map(timelock => [xvsBridgeAdmin, "pause()", timelock]),
74
+ ...accounts.map(timelock => [xvsBridgeAdmin, "unpause()", timelock]),
75
+ ...accounts.map(timelock => [xvsBridgeAdmin, "removeTrustedRemote(uint16)", timelock]),
76
+ ...accounts.map(timelock => [xvsBridgeAdmin, "dropFailedMessage(uint16,bytes,uint64)", timelock]),
77
+ [xvsBridgeAdmin, "setPrecrime(address)", AccountType.NORMAL_TIMELOCK],
78
+ ...accounts.map(timelock => [xvsBridgeAdmin, "setMinDstGas(uint16,uint16,uint256)", timelock]),
79
+ ...accounts.map(timelock => [xvsBridgeAdmin, "setPayloadSizeLimit(uint16,uint256)", timelock]),
80
+ ...accounts.map(timelock => [xvsBridgeAdmin, "setWhitelist(address,bool)", timelock]),
81
+ ...accounts.map(timelock => [xvsBridgeAdmin, "setConfig(uint16,uint16,uint256,bytes)", timelock]),
82
+ [xvsBridgeAdmin, "sweepToken(address,address,uint256)", AccountType.NORMAL_TIMELOCK],
83
+ ...accounts.map(timelock => [xvsBridgeAdmin, "updateSendAndCallEnabled(bool)", timelock]),
84
+ [xvsBridgeAdmin, "setTrustedRemoteAddress(uint16,bytes)", AccountType.NORMAL_TIMELOCK],
85
+ [xvsBridgeAdmin, "transferBridgeOwnership(address)", AccountType.NORMAL_TIMELOCK],
86
+ ];
87
+ };
88
+ exports.getXVSBridgeAdminPermissions = getXVSBridgeAdminPermissions;
89
+ const getXVSVaultPermissions = (xvsVault) => {
90
+ return [
91
+ [xvsVault, "pause()", AccountType.CRITICAL_TIMELOCK],
92
+ [xvsVault, "resume()", AccountType.CRITICAL_TIMELOCK],
93
+ [xvsVault, "setRewardAmountPerBlockOrSecond(address,uint256)", AccountType.CRITICAL_TIMELOCK],
94
+ [xvsVault, "pause()", AccountType.FAST_TRACK_TIMELOCK],
95
+ [xvsVault, "resume()", AccountType.FAST_TRACK_TIMELOCK],
96
+ [xvsVault, "setRewardAmountPerBlockOrSecond(address,uint256)", AccountType.FAST_TRACK_TIMELOCK],
97
+ [xvsVault, "pause()", AccountType.NORMAL_TIMELOCK],
98
+ [xvsVault, "resume()", AccountType.NORMAL_TIMELOCK],
99
+ [xvsVault, "add(address,uint256,address,uint256,uint256)", AccountType.NORMAL_TIMELOCK],
100
+ [xvsVault, "set(address,uint256,uint256)", AccountType.NORMAL_TIMELOCK],
101
+ [xvsVault, "setRewardAmountPerBlockOrSecond(address,uint256)", AccountType.NORMAL_TIMELOCK],
102
+ [xvsVault, "setWithdrawalLockingPeriod(address,uint256,uint256)", AccountType.NORMAL_TIMELOCK],
103
+ ];
104
+ };
105
+ exports.getXVSVaultPermissions = getXVSVaultPermissions;
106
+ const getPoolRegistryPermissions = (poolRegistry) => {
107
+ return [
108
+ [poolRegistry, "addPool(string,address,uint256,uint256,uint256)", AccountType.NORMAL_TIMELOCK],
109
+ [poolRegistry, "addMarket(AddMarketInput)", AccountType.NORMAL_TIMELOCK],
110
+ [poolRegistry, "setPoolName(address,string)", AccountType.NORMAL_TIMELOCK],
111
+ [poolRegistry, "updatePoolMetadata(address,VenusPoolMetaData)", AccountType.NORMAL_TIMELOCK],
112
+ ];
113
+ };
114
+ exports.getPoolRegistryPermissions = getPoolRegistryPermissions;
115
+ const getPrimePermissions = (prime) => {
116
+ return [
117
+ ...accounts.map(timelock => [prime, "updateAlpha(uint128,uint128)", timelock]),
118
+ ...accounts.map(timelock => [prime, "updateMultipliers(address,uint256,uint256)", timelock]),
119
+ ...accounts.map(timelock => [prime, "setStakedAt(address[],uint256[])", timelock]),
120
+ ...accounts.map(timelock => [prime, "addMarket(address,address,uint256,uint256)", timelock]),
121
+ ...accounts.map(timelock => [prime, "setLimit(uint256,uint256)", timelock]),
122
+ ...accounts.map(timelock => [prime, "setMaxLoopsLimit(uint256)", timelock]),
123
+ ...accounts.map(timelock => [prime, "issue(bool,address[])", timelock]),
124
+ ...accounts.map(timelock => [prime, "burn(address)", timelock]),
125
+ ...accounts.map(timelock => [prime, "togglePause()", timelock]),
126
+ ];
127
+ };
128
+ exports.getPrimePermissions = getPrimePermissions;
129
+ const getPrimeLiquidityProviderPermissions = (primeLiquidityProvider) => {
130
+ return [
131
+ ...accounts.map(timelock => [primeLiquidityProvider, "setTokensDistributionSpeed(address[],uint256[])", timelock]),
132
+ ...accounts.map(timelock => [
133
+ primeLiquidityProvider,
134
+ "setMaxTokensDistributionSpeed(address[],uint256[])",
135
+ timelock,
136
+ ]),
137
+ ...accounts.map(timelock => [primeLiquidityProvider, "setMaxLoopsLimit(uint256)", timelock]),
138
+ ...accounts.map(timelock => [primeLiquidityProvider, "pauseFundsTransfer()", timelock]),
139
+ ...accounts.map(timelock => [primeLiquidityProvider, "resumeFundsTransfer()", timelock]),
140
+ ];
141
+ };
142
+ exports.getPrimeLiquidityProviderPermissions = getPrimeLiquidityProviderPermissions;
143
+ const getProtocolShareReservePermissions = (protocolShareReserve) => {
144
+ return [
145
+ ...accounts.map(timelock => [
146
+ protocolShareReserve,
147
+ "addOrUpdateDistributionConfigs(DistributionConfig[])",
148
+ timelock,
149
+ ]),
150
+ ...accounts.map(timelock => [protocolShareReserve, "removeDistributionConfig(Schema,address)", timelock]),
151
+ ];
152
+ };
153
+ exports.getProtocolShareReservePermissions = getProtocolShareReservePermissions;
154
+ const getConverterNetworkPermissions = (converterNetwork) => {
155
+ return [
156
+ ...accounts.map(timelock => [converterNetwork, "addTokenConverter(address)", timelock]),
157
+ ...accounts.map(timelock => [converterNetwork, "removeTokenConverter(address)", timelock]),
158
+ ];
159
+ };
160
+ exports.getConverterNetworkPermissions = getConverterNetworkPermissions;
161
+ const getComptrollerPermissions = () => {
162
+ return [
163
+ ...accounts.map(timelock => [
164
+ hardhat_1.ethers.constants.AddressZero,
165
+ "setCollateralFactor(address,uint256,uint256)",
166
+ timelock,
167
+ ]),
168
+ ...accounts.map(timelock => [hardhat_1.ethers.constants.AddressZero, "setMarketBorrowCaps(address[],uint256[])", timelock]),
169
+ ...accounts.map(timelock => [hardhat_1.ethers.constants.AddressZero, "setMarketSupplyCaps(address[],uint256[])", timelock]),
170
+ ...accounts.map(timelock => [hardhat_1.ethers.constants.AddressZero, "setActionsPaused(address[],uint256[],bool)", timelock]),
171
+ ...accounts.map(timelock => [hardhat_1.ethers.constants.AddressZero, "setForcedLiquidation(address,bool)", timelock]),
172
+ ...accounts.map(timelock => [hardhat_1.ethers.constants.AddressZero, "unlistMarket(address)", timelock]),
173
+ [hardhat_1.ethers.constants.AddressZero, "setCloseFactor(uint256)", AccountType.NORMAL_TIMELOCK],
174
+ [hardhat_1.ethers.constants.AddressZero, "setLiquidationIncentive(uint256)", AccountType.NORMAL_TIMELOCK],
175
+ [hardhat_1.ethers.constants.AddressZero, "setMinLiquidatableCollateral(uint256)", AccountType.NORMAL_TIMELOCK],
176
+ ];
177
+ };
178
+ exports.getComptrollerPermissions = getComptrollerPermissions;
179
+ const getVTokenPermissions = () => {
180
+ return [
181
+ ...accounts.map(timelock => [hardhat_1.ethers.constants.AddressZero, "setReserveFactor(uint256)", timelock]),
182
+ ...accounts.map(timelock => [hardhat_1.ethers.constants.AddressZero, "setInterestRateModel(address)", timelock]),
183
+ ...accounts.map(timelock => [hardhat_1.ethers.constants.AddressZero, "setReduceReservesBlockDelta(uint256)", timelock]),
184
+ [hardhat_1.ethers.constants.AddressZero, "setProtocolSeizeShare(uint256)", AccountType.NORMAL_TIMELOCK],
185
+ ];
186
+ };
187
+ exports.getVTokenPermissions = getVTokenPermissions;
188
+ const getRewardDistributorPermissionsTimebased = () => {
189
+ return [
190
+ [hardhat_1.ethers.constants.AddressZero, "setRewardTokenSpeeds(address[],uint256[],uint256[])", AccountType.NORMAL_TIMELOCK],
191
+ [
192
+ hardhat_1.ethers.constants.AddressZero,
193
+ "setLastRewardingBlockTimestamps(address[],uint256[],uint256[])",
194
+ AccountType.NORMAL_TIMELOCK,
195
+ ],
196
+ ];
197
+ };
198
+ exports.getRewardDistributorPermissionsTimebased = getRewardDistributorPermissionsTimebased;
199
+ const getRewardDistributorPermissionsBlockbased = () => {
200
+ return [
201
+ [hardhat_1.ethers.constants.AddressZero, "setRewardTokenSpeeds(address[],uint256[],uint256[])", AccountType.NORMAL_TIMELOCK],
202
+ [hardhat_1.ethers.constants.AddressZero, "setLastRewardingBlocks(address[],uint32[],uint32[])", AccountType.NORMAL_TIMELOCK],
203
+ ];
204
+ };
205
+ exports.getRewardDistributorPermissionsBlockbased = getRewardDistributorPermissionsBlockbased;
206
+ const getIRMPermissions = () => {
207
+ return [
208
+ [hardhat_1.ethers.constants.AddressZero, "updateJumpRateModel(uint256,uint256,uint256,uint256)", AccountType.NORMAL_TIMELOCK],
209
+ ];
210
+ };
211
+ exports.getIRMPermissions = getIRMPermissions;
212
+ const getConverterPermissions = () => {
213
+ return [
214
+ ...accounts.map(timelock => [hardhat_1.ethers.constants.AddressZero, "pauseConversion()", timelock]),
215
+ ...accounts.map(timelock => [hardhat_1.ethers.constants.AddressZero, "resumeConversion()", timelock]),
216
+ ...accounts.map(timelock => [hardhat_1.ethers.constants.AddressZero, "setMinAmountToConvert(uint256)", timelock]),
217
+ ...accounts.map(timelock => [
218
+ hardhat_1.ethers.constants.AddressZero,
219
+ "setConversionConfig(address,address,ConversionConfig)",
220
+ timelock,
221
+ ]),
222
+ ];
223
+ };
224
+ exports.getConverterPermissions = getConverterPermissions;
225
+ const getXVSVaultTreasuryPermissions = (xvsVaultTreasury) => {
226
+ return [...accounts.map(timelock => [xvsVaultTreasury, "fundXVSVault(uint256)", timelock])];
227
+ };
228
+ exports.getXVSVaultTreasuryPermissions = getXVSVaultTreasuryPermissions;
229
+ const getOmniChainExecutorOwnerPermissions = (omniChainExecutor, guardian) => {
230
+ return [
231
+ [omniChainExecutor, "setSrcChainId(uint16)", AccountType.NORMAL_TIMELOCK],
232
+ [omniChainExecutor, "transferBridgeOwnership(address)", AccountType.NORMAL_TIMELOCK],
233
+ [omniChainExecutor, "setSrcChainId(uint16)", guardian],
234
+ [omniChainExecutor, "transferBridgeOwnership(address)", guardian],
235
+ ];
236
+ };
237
+ exports.getOmniChainExecutorOwnerPermissions = getOmniChainExecutorOwnerPermissions;
238
+ const getXVSBridgeAdminRevokePermissions = (xvsBridgeAdmin, guardian) => {
239
+ return [
240
+ [xvsBridgeAdmin, "setSendVersion(uint16)", guardian],
241
+ [xvsBridgeAdmin, "setReceiveVersion(uint16)", guardian],
242
+ [xvsBridgeAdmin, "forceResumeReceive(uint16,bytes)", guardian],
243
+ [xvsBridgeAdmin, "setOracle(address)", guardian],
244
+ [xvsBridgeAdmin, "removeTrustedRemote(uint16)", guardian],
245
+ [xvsBridgeAdmin, "dropFailedMessage(uint16,bytes,uint64)", guardian],
246
+ [xvsBridgeAdmin, "setPrecrime(address)", guardian],
247
+ [xvsBridgeAdmin, "setMinDstGas(uint16,uint16,uint256)", guardian],
248
+ [xvsBridgeAdmin, "setPayloadSizeLimit(uint16,uint256)", guardian],
249
+ [xvsBridgeAdmin, "setWhitelist(address,bool)", guardian],
250
+ [xvsBridgeAdmin, "setConfig(uint16,uint16,uint256,bytes)", guardian],
251
+ [xvsBridgeAdmin, "sweepToken(address,address,uint256)", guardian],
252
+ [xvsBridgeAdmin, "updateSendAndCallEnabled(bool)", guardian],
253
+ [xvsBridgeAdmin, "setTrustedRemoteAddress(uint16,bytes)", guardian],
254
+ [xvsBridgeAdmin, "transferBridgeOwnership(address)", guardian],
255
+ ];
256
+ };
257
+ exports.getXVSBridgeAdminRevokePermissions = getXVSBridgeAdminRevokePermissions;
258
+ const getXVSVaultTreasuryRevokePermissions = (xvsVaultTreasury, guardian) => {
259
+ return [[xvsVaultTreasury, "fundXVSVault(uint256)", guardian]];
260
+ };
261
+ exports.getXVSVaultTreasuryRevokePermissions = getXVSVaultTreasuryRevokePermissions;
262
+ const getPrimeRevokePermissions = (prime, guardian) => {
263
+ return [
264
+ [prime, "updateAlpha(uint128,uint128)", guardian],
265
+ [prime, "updateMultipliers(address,uint256,uint256)", guardian],
266
+ [prime, "setStakedAt(address[],uint256[])", guardian],
267
+ [prime, "addMarket(address,address,uint256,uint256)", guardian],
268
+ [prime, "setLimit(uint256,uint256)", guardian],
269
+ [prime, "setMaxLoopsLimit(uint256)", guardian],
270
+ [prime, "issue(bool,address[])", guardian],
271
+ [prime, "burn(address)", guardian],
272
+ ];
273
+ };
274
+ exports.getPrimeRevokePermissions = getPrimeRevokePermissions;
275
+ const getPrimeLiquidityProviderRevokePermissions = (primeLiquidityProvider, guardian) => {
276
+ return [
277
+ [primeLiquidityProvider, "setTokensDistributionSpeed(address[],uint256[])", guardian],
278
+ [primeLiquidityProvider, "setMaxTokensDistributionSpeed(address[],uint256[])", guardian],
279
+ [primeLiquidityProvider, "setMaxLoopsLimit(uint256)", guardian],
280
+ ];
281
+ };
282
+ exports.getPrimeLiquidityProviderRevokePermissions = getPrimeLiquidityProviderRevokePermissions;
283
+ const getResilientOracleRevokePermissions = (resilientOracle, guardian) => {
284
+ return [
285
+ [resilientOracle, "setOracle(address,address,uint8)", guardian],
286
+ [resilientOracle, "enableOracle(address,uint8,bool)", guardian],
287
+ ];
288
+ };
289
+ exports.getResilientOracleRevokePermissions = getResilientOracleRevokePermissions;
290
+ const getBoundValidatorRevokePermissions = (boundValidator, guardian) => {
291
+ return [[boundValidator, "setValidateConfig(ValidateConfig)", guardian]];
292
+ };
293
+ exports.getBoundValidatorRevokePermissions = getBoundValidatorRevokePermissions;
294
+ const getXVSVaultRevokePermissions = (xvsVault, guardian) => {
295
+ return [
296
+ [xvsVault, "add(address,uint256,address,uint256,uint256)", guardian],
297
+ [xvsVault, "set(address,uint256,uint256)", guardian],
298
+ [xvsVault, "setRewardAmountPerBlockOrSecond(address,uint256)", guardian],
299
+ [xvsVault, "setWithdrawalLockingPeriod(address,uint256,uint256)", guardian],
300
+ ];
301
+ };
302
+ exports.getXVSVaultRevokePermissions = getXVSVaultRevokePermissions;
303
+ const getRewardDistributorRevokePermissions = (guardian, lastRewardingBlockTimestamp) => {
304
+ const permissions = [
305
+ [hardhat_1.ethers.constants.AddressZero, "setLastRewardingBlock(address[],uint32[],uint32[])", guardian],
306
+ [hardhat_1.ethers.constants.AddressZero, "setLastRewardingBlocks(address[],uint32[],uint32[])", guardian],
307
+ [hardhat_1.ethers.constants.AddressZero, "setRewardTokenSpeeds(address[],uint256[],uint256[])", guardian],
308
+ ];
309
+ if (lastRewardingBlockTimestamp) {
310
+ permissions.push([
311
+ hardhat_1.ethers.constants.AddressZero,
312
+ "setLastRewardingBlockTimestamps(address[],uint256[],uint256[])",
313
+ guardian,
314
+ ]);
315
+ }
316
+ return permissions;
317
+ };
318
+ exports.getRewardDistributorRevokePermissions = getRewardDistributorRevokePermissions;
319
+ const getIRMRevokePermissions = (guardian) => {
320
+ return [[hardhat_1.ethers.constants.AddressZero, "updateJumpRateModel(uint256,uint256,uint256,uint256)", guardian]];
321
+ };
322
+ exports.getIRMRevokePermissions = getIRMRevokePermissions;
323
+ const getPoolRegistryRevokePermissionsForWildcard = (guardian) => {
324
+ return [
325
+ [hardhat_1.ethers.constants.AddressZero, "addPool(string,address,uint256,uint256,uint256)", guardian],
326
+ [hardhat_1.ethers.constants.AddressZero, "addMarket(AddMarketInput)", guardian],
327
+ [hardhat_1.ethers.constants.AddressZero, "setPoolName(address,string)", guardian],
328
+ [hardhat_1.ethers.constants.AddressZero, "updatePoolMetadata(address,VenusPoolMetaData)", guardian],
329
+ ];
330
+ };
331
+ exports.getPoolRegistryRevokePermissionsForWildcard = getPoolRegistryRevokePermissionsForWildcard;
332
+ const getPoolRegistryRevokePermissions = (poolRegistry, guardian) => {
333
+ return [
334
+ [poolRegistry, "addPool(string,address,uint256,uint256,uint256)", guardian],
335
+ [poolRegistry, "addMarket(AddMarketInput)", guardian],
336
+ [poolRegistry, "setPoolName(address,string)", guardian],
337
+ [poolRegistry, "updatePoolMetadata(address,VenusPoolMetaData)", guardian],
338
+ ];
339
+ };
340
+ exports.getPoolRegistryRevokePermissions = getPoolRegistryRevokePermissions;
341
+ const getComptrollerRevokePermissions = (guardian) => {
342
+ return [
343
+ [hardhat_1.ethers.constants.AddressZero, "setCloseFactor(uint256)", guardian],
344
+ [hardhat_1.ethers.constants.AddressZero, "setLiquidationIncentive(uint256)", guardian],
345
+ [hardhat_1.ethers.constants.AddressZero, "setMinLiquidatableCollateral(uint256)", guardian],
346
+ [hardhat_1.ethers.constants.AddressZero, "setForcedLiquidation(address,bool)", guardian],
347
+ ];
348
+ };
349
+ exports.getComptrollerRevokePermissions = getComptrollerRevokePermissions;
350
+ const getVTokenRevokePermissions = (guardian) => {
351
+ return [
352
+ [hardhat_1.ethers.constants.AddressZero, "setProtocolSeizeShare(uint256)", guardian],
353
+ [hardhat_1.ethers.constants.AddressZero, "setReserveFactor(uint256)", guardian],
354
+ [hardhat_1.ethers.constants.AddressZero, "setInterestRateModel(address)", guardian],
355
+ [hardhat_1.ethers.constants.AddressZero, "setReduceReservesBlockDelta(uint256)", guardian],
356
+ ];
357
+ };
358
+ exports.getVTokenRevokePermissions = getVTokenRevokePermissions;
359
+ const getRedstoneOracleRevokePermissions = (redstoneOracle, guardian) => {
360
+ return [
361
+ [redstoneOracle, "setTokenConfig(TokenConfig)", guardian],
362
+ [redstoneOracle, "setDirectPrice(address,uint256)", guardian],
363
+ ];
364
+ };
365
+ exports.getRedstoneOracleRevokePermissions = getRedstoneOracleRevokePermissions;
366
+ const getConverterNetworkRevokePermissions = (converterNetwork, guardian) => {
367
+ return [
368
+ [converterNetwork, "addTokenConverter(address)", guardian],
369
+ [converterNetwork, "removeTokenConverter(address)", guardian],
370
+ ];
371
+ };
372
+ exports.getConverterNetworkRevokePermissions = getConverterNetworkRevokePermissions;
373
+ const getSFrxETHOracleRevokePermissions = (sFrxETHOracle, guardian) => {
374
+ return [[sFrxETHOracle, "setMaxAllowedPriceDifference(uint256)", guardian]];
375
+ };
376
+ exports.getSFrxETHOracleRevokePermissions = getSFrxETHOracleRevokePermissions;
377
+ const getConvertersRevokePermissions = (converters, guardian) => {
378
+ return [
379
+ ...converters.map(converter => [converter, "setMinAmountToConvert(uint256)", guardian]),
380
+ ...converters.map(converter => [converter, "setConversionConfig(address,address,ConversionConfig)", guardian]),
381
+ ];
382
+ };
383
+ exports.getConvertersRevokePermissions = getConvertersRevokePermissions;
384
+ const getOmniChainExecutorOwnerRevokePermissions = (omniChainExecutor, guardian) => {
385
+ return [
386
+ [omniChainExecutor, "setTrustedRemoteAddress(uint16,bytes)", AccountType.CRITICAL_TIMELOCK],
387
+ [omniChainExecutor, "setTimelockPendingAdmin(address,uint8)", AccountType.CRITICAL_TIMELOCK],
388
+ [omniChainExecutor, "setGuardian(address)", AccountType.CRITICAL_TIMELOCK],
389
+ [omniChainExecutor, "setTrustedRemoteAddress(uint16,bytes)", AccountType.FAST_TRACK_TIMELOCK],
390
+ [omniChainExecutor, "setTimelockPendingAdmin(address,uint8)", AccountType.FAST_TRACK_TIMELOCK],
391
+ [omniChainExecutor, "setGuardian(address)", AccountType.FAST_TRACK_TIMELOCK],
392
+ [omniChainExecutor, "setSendVersion(uint16)", guardian],
393
+ [omniChainExecutor, "setPrecrime(address)", guardian],
394
+ [omniChainExecutor, "setMinDstGas(uint16,uint16,uint256)", guardian],
395
+ [omniChainExecutor, "setPayloadSizeLimit(uint16,uint256)", guardian],
396
+ ];
397
+ };
398
+ exports.getOmniChainExecutorOwnerRevokePermissions = getOmniChainExecutorOwnerRevokePermissions;
399
+ //# sourceMappingURL=permissions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../helpers/permissions.ts"],"names":[],"mappings":"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"}