@vechain/vebetterdao-contracts
Version:
Open-source repository that houses the smart contracts powering the decentralized VeBetterDAO on the VeChain Thor blockchain.
305 lines (304 loc) • 24.9 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "NavigatorLifecycleUtils",
"sourceName": "contracts/navigator/libraries/NavigatorLifecycleUtils.sol",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "navigator",
"type": "address"
}
],
"name": "AlreadyDeactivated",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "navigator",
"type": "address"
}
],
"name": "AlreadyExiting",
"type": "error"
},
{
"inputs": [],
"name": "CheckpointUnorderedInsertion",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "navigator",
"type": "address"
}
],
"name": "NotExiting",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "navigator",
"type": "address"
}
],
"name": "NotRegistered",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint8",
"name": "bits",
"type": "uint8"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "SafeCastOverflowedUintDowncast",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "navigator",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "announcedAtRound",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "effectiveDeadline",
"type": "uint256"
}
],
"name": "ExitAnnounced",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "navigator",
"type": "address"
},
{
"indexed": false,
"internalType": "string",
"name": "newURI",
"type": "string"
}
],
"name": "MetadataURIUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "navigator",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "slashPercentage",
"type": "uint256"
}
],
"name": "NavigatorDeactivatedEvent",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "navigator",
"type": "address"
},
{
"indexed": true,
"internalType": "uint256",
"name": "roundId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "string",
"name": "reportURI",
"type": "string"
}
],
"name": "ReportSubmitted",
"type": "event"
},
{
"inputs": [],
"name": "getExitNoticePeriod",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "navigator",
"type": "address"
}
],
"name": "getLastReportRound",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "navigator",
"type": "address"
}
],
"name": "getLastReportURI",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "navigator",
"type": "address"
}
],
"name": "getMetadataURI",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getReportInterval",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "getStatus",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "navigator",
"type": "address"
}
],
"name": "isDeactivated",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "navigator",
"type": "address"
}
],
"name": "isExiting",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
}
],
"bytecode": "0x61121561003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100ae5760003560e01c80630f5f9711146100b35780630fcc3081146100ce5780631c260565146100ee57806330ccebb51461011057806332b20f341461013557806333cc75341461014857806333d0e2e41461016b57806338ac29a4146101735780633ea053eb14610186578063a0d721b6146101a6578063de9e9881146101b9578063fdf6b375146101d9575b600080fd5b6100bb6101f9565b6040519081526020015b60405180910390f35b6100e16100dc366004610e75565b61020c565b6040516100c59190610e90565b8180156100fa57600080fd5b5061010e610109366004610f26565b6102c2565b005b61012361011e366004610e75565b610384565b60405160ff90911681526020016100c5565b6100e1610143366004610e75565b610466565b61015b610156366004610e75565b610497565b60405190151581526020016100c5565b6100bb6104d1565b6100bb610181366004610e75565b6104e4565b81801561019257600080fd5b5061010e6101a1366004610e75565b61050f565b61015b6101b4366004610e75565b6106b1565b8180156101c557600080fd5b5061010e6101d4366004610f78565b6106e0565b8180156101e557600080fd5b5061010e6101f4366004610e75565b6107a8565b60006102036109c4565b601e0154905090565b60606102166109c4565b6001600160a01b0383166000908152601f9190910160205260409020805461023d90610fd1565b80601f016020809104026020016040519081016040528092919081815260200182805461026990610fd1565b80156102b65780601f1061028b576101008083540402835291602001916102b6565b820191906000526020600020905b81548152906001019060200180831161029957829003601f168201915b50505050509050919050565b60006102cc6109c4565b6001600160a01b0385166000908152601a8201602052604090205490915060ff16610315578360405163bfc6c33760e01b815260040161030c919061100b565b60405180910390fd5b6001600160a01b0384166000908152601f82016020526040902061033a838583611084565b50836001600160a01b03167f1b460238cb695fc31c141a22bca8cea3e92a6fa4ded4ccee2a33f9972f2eece08484604051610376929190611144565b60405180910390a250505050565b60008061038f6109c4565b6001600160a01b0384166000908152601a8201602052604090205490915060ff166103be5760005b9392505050565b6001600160a01b0383166000908152601b8201602052604090205460ff16156103e85760036103b7565b6001600160a01b0383166000908152601c820160205260409020541561045f576001600160a01b0383166000908152601d820160205260408120819061042d906109e8565b509150915081801561044757508065ffffffffffff164310155b156104585760035b95945050505050565b600261044f565b60016103b7565b60606104706109c4565b6001600160a01b038316600090815260219190910160205260409020805461023d90610fd1565b6000806104a26109c4565b601c016000846001600160a01b03166001600160a01b0316815260200190815260200160002054119050919050565b60006104db6109c4565b60220154905090565b60006104ee6109c4565b6001600160a01b039092166000908152602092830190925250604090205490565b60006105196109c4565b6001600160a01b0383166000908152601a8201602052604090205490915060ff16610559578160405163bfc6c33760e01b815260040161030c919061100b565b6001600160a01b0382166000908152601b8201602052604090205460ff16156105975781604051635c55561360e11b815260040161030c919061100b565b6001600160a01b0382166000908152601b820160205260409020805460ff191660011790556105c68183610a70565b6001600160a01b0382166000908152601d82016020526040902054158061061657506001600160a01b0382166000908152601d82016020526040902061060b90610b14565b6001600160d01b0316155b1561066957600061062682610b4d565b905060006106348383610be9565b905061066461064282610c59565b6001600160a01b0386166000908152601d860160205260409020906001610c90565b505050505b816001600160a01b03167f977dedc05c971c9d63031ccdfb015b55101eb7ab7d29e180ce5ae748fd9ee53a60006040516106a591815260200190565b60405180910390a25050565b60006106bb6109c4565b6001600160a01b039092166000908152601b9290920160205250604090205460ff1690565b60006106ea6109c4565b6001600160a01b0386166000908152601a8201602052604090205490915060ff1661072a578460405163bfc6c33760e01b815260040161030c919061100b565b6001600160a01b038516600090815260208083018152604080832087905560218401909152902061075c838583611084565b5083856001600160a01b03167f7f16abb02bdd9850897d6fe45c00ffa45a9f8d5047103f9da3adcc0f3fd76f0f8585604051610799929190611144565b60405180910390a35050505050565b60006107b26109c4565b6001600160a01b0383166000908152601a8201602052604090205490915060ff166107f2578160405163bfc6c33760e01b815260040161030c919061100b565b6001600160a01b0382166000908152601b8201602052604090205460ff16156108305781604051635c55561360e11b815260040161030c919061100b565b6001600160a01b0382166000908152601c820160205260409020541561086b578160405163a6613ec960e01b815260040161030c919061100b565b600061087682610b4d565b6001600160a01b0384166000908152601c840160205260409020819055905061089f8284610a70565b60006108ab8383610be9565b905060008360230160009054906101000a90046001600160a01b03166001600160a01b03166302a251a36040518163ffffffff1660e01b8152600401602060405180830381865afa158015610904573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109289190611173565b9050600084601e01548261093c91906111a2565b61094690846111b9565b905061097661095482610c59565b6001600160a01b0388166000908152601d880160205260409020906001610c90565b505060408051858152602081018390526001600160a01b038816917fa542d32ac71fcaee440e2537c820c341912c27de8dfb6621ccdd90a52f5f1236910160405180910390a2505050505050565b7f2556f61b975c74e3f128bbc478158bc306f6253c34d95084531f202ce74e570090565b805460009081908190808203610a0957600080600093509350935050610a69565b6000610a2886610a1a6001856111cc565b600091825260209091200190565b60408051808201909152905465ffffffffffff8116808352600160301b9091046001600160d01b031660209092018290526001965094509250610a69915050565b9193909250565b6001600160a01b0381166000908152600b8301602052604081205490819003610a9857505050565b6000610aa584600a015490565b15610ac457610ab684600a01610b14565b6001600160d01b0316610ac7565b60005b9050610af2610ad543610c59565b610ae7610ae285856111cc565b610cab565b600a87019190610c90565b505050506001600160a01b03166000908152600b919091016020526040812055565b80546000908015610b4457610b2e83610a1a6001846111cc565b54600160301b90046001600160d01b03166103b7565b60009392505050565b60238101546000906001600160a01b0316610b6a57506000919050565b8160230160009054906101000a90046001600160a01b03166001600160a01b0316639cbe5efd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bbf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be39190611173565b92915050565b602382015460405163d3a368bd60e01b8152600481018390526000916001600160a01b03169063d3a368bd90602401602060405180830381865afa158015610c35573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103b79190611173565b600065ffffffffffff821115610c8c576040516306dfcc6560e41b8152603060048201526024810183905260440161030c565b5090565b600080610c9e858585610cdf565b915091505b935093915050565b60006001600160d01b03821115610c8c576040516306dfcc6560e41b815260d060048201526024810183905260440161030c565b825460009081908015610dfe576000610cfd87610a1a6001856111cc565b60408051808201909152905465ffffffffffff808216808452600160301b9092046001600160d01b031660208401529192509087161015610d5157604051632520601d60e01b815260040160405180910390fd5b805165ffffffffffff808816911603610d9d5784610d7488610a1a6001866111cc565b80546001600160d01b0392909216600160301b0265ffffffffffff909216919091179055610dee565b6040805180820190915265ffffffffffff80881682526001600160d01b0380881660208085019182528b54600181018d5560008d81529190912094519151909216600160301b029216919091179101555b602001519250839150610ca39050565b50506040805180820190915265ffffffffffff80851682526001600160d01b0380851660208085019182528854600181018a5560008a815291822095519251909316600160301b029190931617920191909155905081610ca3565b80356001600160a01b0381168114610e7057600080fd5b919050565b600060208284031215610e8757600080fd5b6103b782610e59565b600060208083528351808285015260005b81811015610ebd57858101830151858201604001528201610ea1565b506000604082860101526040601f19601f8301168501019250505092915050565b60008083601f840112610ef057600080fd5b5081356001600160401b03811115610f0757600080fd5b602083019150836020828501011115610f1f57600080fd5b9250929050565b600080600060408486031215610f3b57600080fd5b610f4484610e59565b925060208401356001600160401b03811115610f5f57600080fd5b610f6b86828701610ede565b9497909650939450505050565b60008060008060608587031215610f8e57600080fd5b610f9785610e59565b93506020850135925060408501356001600160401b03811115610fb957600080fd5b610fc587828801610ede565b95989497509550505050565b600181811c90821680610fe557607f821691505b60208210810361100557634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b0391909116815260200190565b634e487b7160e01b600052604160045260246000fd5b601f82111561107f57600081815260208120601f850160051c8101602086101561105c5750805b601f850160051c820191505b8181101561107b57828155600101611068565b5050505b505050565b6001600160401b0383111561109b5761109b61101f565b6110af836110a98354610fd1565b83611035565b6000601f8411600181146110e357600085156110cb5750838201355b600019600387901b1c1916600186901b17835561113d565b600083815260209020601f19861690835b8281101561111457868501358255602094850194600190920191016110f4565b50868210156111315760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b60006020828403121561118557600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610be357610be361118c565b80820180821115610be357610be361118c565b81810381811115610be357610be361118c56fea264697066735822122042f9633ef871c56e78eb47c89e3c898eb3d8659394be78bdd306875963a198c364736f6c63430008140033",
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100ae5760003560e01c80630f5f9711146100b35780630fcc3081146100ce5780631c260565146100ee57806330ccebb51461011057806332b20f341461013557806333cc75341461014857806333d0e2e41461016b57806338ac29a4146101735780633ea053eb14610186578063a0d721b6146101a6578063de9e9881146101b9578063fdf6b375146101d9575b600080fd5b6100bb6101f9565b6040519081526020015b60405180910390f35b6100e16100dc366004610e75565b61020c565b6040516100c59190610e90565b8180156100fa57600080fd5b5061010e610109366004610f26565b6102c2565b005b61012361011e366004610e75565b610384565b60405160ff90911681526020016100c5565b6100e1610143366004610e75565b610466565b61015b610156366004610e75565b610497565b60405190151581526020016100c5565b6100bb6104d1565b6100bb610181366004610e75565b6104e4565b81801561019257600080fd5b5061010e6101a1366004610e75565b61050f565b61015b6101b4366004610e75565b6106b1565b8180156101c557600080fd5b5061010e6101d4366004610f78565b6106e0565b8180156101e557600080fd5b5061010e6101f4366004610e75565b6107a8565b60006102036109c4565b601e0154905090565b60606102166109c4565b6001600160a01b0383166000908152601f9190910160205260409020805461023d90610fd1565b80601f016020809104026020016040519081016040528092919081815260200182805461026990610fd1565b80156102b65780601f1061028b576101008083540402835291602001916102b6565b820191906000526020600020905b81548152906001019060200180831161029957829003601f168201915b50505050509050919050565b60006102cc6109c4565b6001600160a01b0385166000908152601a8201602052604090205490915060ff16610315578360405163bfc6c33760e01b815260040161030c919061100b565b60405180910390fd5b6001600160a01b0384166000908152601f82016020526040902061033a838583611084565b50836001600160a01b03167f1b460238cb695fc31c141a22bca8cea3e92a6fa4ded4ccee2a33f9972f2eece08484604051610376929190611144565b60405180910390a250505050565b60008061038f6109c4565b6001600160a01b0384166000908152601a8201602052604090205490915060ff166103be5760005b9392505050565b6001600160a01b0383166000908152601b8201602052604090205460ff16156103e85760036103b7565b6001600160a01b0383166000908152601c820160205260409020541561045f576001600160a01b0383166000908152601d820160205260408120819061042d906109e8565b509150915081801561044757508065ffffffffffff164310155b156104585760035b95945050505050565b600261044f565b60016103b7565b60606104706109c4565b6001600160a01b038316600090815260219190910160205260409020805461023d90610fd1565b6000806104a26109c4565b601c016000846001600160a01b03166001600160a01b0316815260200190815260200160002054119050919050565b60006104db6109c4565b60220154905090565b60006104ee6109c4565b6001600160a01b039092166000908152602092830190925250604090205490565b60006105196109c4565b6001600160a01b0383166000908152601a8201602052604090205490915060ff16610559578160405163bfc6c33760e01b815260040161030c919061100b565b6001600160a01b0382166000908152601b8201602052604090205460ff16156105975781604051635c55561360e11b815260040161030c919061100b565b6001600160a01b0382166000908152601b820160205260409020805460ff191660011790556105c68183610a70565b6001600160a01b0382166000908152601d82016020526040902054158061061657506001600160a01b0382166000908152601d82016020526040902061060b90610b14565b6001600160d01b0316155b1561066957600061062682610b4d565b905060006106348383610be9565b905061066461064282610c59565b6001600160a01b0386166000908152601d860160205260409020906001610c90565b505050505b816001600160a01b03167f977dedc05c971c9d63031ccdfb015b55101eb7ab7d29e180ce5ae748fd9ee53a60006040516106a591815260200190565b60405180910390a25050565b60006106bb6109c4565b6001600160a01b039092166000908152601b9290920160205250604090205460ff1690565b60006106ea6109c4565b6001600160a01b0386166000908152601a8201602052604090205490915060ff1661072a578460405163bfc6c33760e01b815260040161030c919061100b565b6001600160a01b038516600090815260208083018152604080832087905560218401909152902061075c838583611084565b5083856001600160a01b03167f7f16abb02bdd9850897d6fe45c00ffa45a9f8d5047103f9da3adcc0f3fd76f0f8585604051610799929190611144565b60405180910390a35050505050565b60006107b26109c4565b6001600160a01b0383166000908152601a8201602052604090205490915060ff166107f2578160405163bfc6c33760e01b815260040161030c919061100b565b6001600160a01b0382166000908152601b8201602052604090205460ff16156108305781604051635c55561360e11b815260040161030c919061100b565b6001600160a01b0382166000908152601c820160205260409020541561086b578160405163a6613ec960e01b815260040161030c919061100b565b600061087682610b4d565b6001600160a01b0384166000908152601c840160205260409020819055905061089f8284610a70565b60006108ab8383610be9565b905060008360230160009054906101000a90046001600160a01b03166001600160a01b03166302a251a36040518163ffffffff1660e01b8152600401602060405180830381865afa158015610904573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109289190611173565b9050600084601e01548261093c91906111a2565b61094690846111b9565b905061097661095482610c59565b6001600160a01b0388166000908152601d880160205260409020906001610c90565b505060408051858152602081018390526001600160a01b038816917fa542d32ac71fcaee440e2537c820c341912c27de8dfb6621ccdd90a52f5f1236910160405180910390a2505050505050565b7f2556f61b975c74e3f128bbc478158bc306f6253c34d95084531f202ce74e570090565b805460009081908190808203610a0957600080600093509350935050610a69565b6000610a2886610a1a6001856111cc565b600091825260209091200190565b60408051808201909152905465ffffffffffff8116808352600160301b9091046001600160d01b031660209092018290526001965094509250610a69915050565b9193909250565b6001600160a01b0381166000908152600b8301602052604081205490819003610a9857505050565b6000610aa584600a015490565b15610ac457610ab684600a01610b14565b6001600160d01b0316610ac7565b60005b9050610af2610ad543610c59565b610ae7610ae285856111cc565b610cab565b600a87019190610c90565b505050506001600160a01b03166000908152600b919091016020526040812055565b80546000908015610b4457610b2e83610a1a6001846111cc565b54600160301b90046001600160d01b03166103b7565b60009392505050565b60238101546000906001600160a01b0316610b6a57506000919050565b8160230160009054906101000a90046001600160a01b03166001600160a01b0316639cbe5efd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bbf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be39190611173565b92915050565b602382015460405163d3a368bd60e01b8152600481018390526000916001600160a01b03169063d3a368bd90602401602060405180830381865afa158015610c35573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103b79190611173565b600065ffffffffffff821115610c8c576040516306dfcc6560e41b8152603060048201526024810183905260440161030c565b5090565b600080610c9e858585610cdf565b915091505b935093915050565b60006001600160d01b03821115610c8c576040516306dfcc6560e41b815260d060048201526024810183905260440161030c565b825460009081908015610dfe576000610cfd87610a1a6001856111cc565b60408051808201909152905465ffffffffffff808216808452600160301b9092046001600160d01b031660208401529192509087161015610d5157604051632520601d60e01b815260040160405180910390fd5b805165ffffffffffff808816911603610d9d5784610d7488610a1a6001866111cc565b80546001600160d01b0392909216600160301b0265ffffffffffff909216919091179055610dee565b6040805180820190915265ffffffffffff80881682526001600160d01b0380881660208085019182528b54600181018d5560008d81529190912094519151909216600160301b029216919091179101555b602001519250839150610ca39050565b50506040805180820190915265ffffffffffff80851682526001600160d01b0380851660208085019182528854600181018a5560008a815291822095519251909316600160301b029190931617920191909155905081610ca3565b80356001600160a01b0381168114610e7057600080fd5b919050565b600060208284031215610e8757600080fd5b6103b782610e59565b600060208083528351808285015260005b81811015610ebd57858101830151858201604001528201610ea1565b506000604082860101526040601f19601f8301168501019250505092915050565b60008083601f840112610ef057600080fd5b5081356001600160401b03811115610f0757600080fd5b602083019150836020828501011115610f1f57600080fd5b9250929050565b600080600060408486031215610f3b57600080fd5b610f4484610e59565b925060208401356001600160401b03811115610f5f57600080fd5b610f6b86828701610ede565b9497909650939450505050565b60008060008060608587031215610f8e57600080fd5b610f9785610e59565b93506020850135925060408501356001600160401b03811115610fb957600080fd5b610fc587828801610ede565b95989497509550505050565b600181811c90821680610fe557607f821691505b60208210810361100557634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b0391909116815260200190565b634e487b7160e01b600052604160045260246000fd5b601f82111561107f57600081815260208120601f850160051c8101602086101561105c5750805b601f850160051c820191505b8181101561107b57828155600101611068565b5050505b505050565b6001600160401b0383111561109b5761109b61101f565b6110af836110a98354610fd1565b83611035565b6000601f8411600181146110e357600085156110cb5750838201355b600019600387901b1c1916600186901b17835561113d565b600083815260209020601f19861690835b8281101561111457868501358255602094850194600190920191016110f4565b50868210156111315760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b60006020828403121561118557600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610be357610be361118c565b80820180821115610be357610be361118c565b81810381811115610be357610be361118c56fea264697066735822122042f9633ef871c56e78eb47c89e3c898eb3d8659394be78bdd306875963a198c364736f6c63430008140033",
"linkReferences": {},
"deployedLinkReferences": {}
}