@vechain/vebetterdao-contracts
Version:
Open-source repository that houses the smart contracts powering the decentralized VeBetterDAO on the VeChain Thor blockchain.
446 lines (445 loc) • 37.6 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "NavigatorStakingUtils",
"sourceName": "contracts/navigator/libraries/NavigatorStakingUtils.sol",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "navigator",
"type": "address"
}
],
"name": "AlreadyRegistered",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "navigator",
"type": "address"
}
],
"name": "AutoVotingMustBeDisabled",
"type": "error"
},
{
"inputs": [],
"name": "CheckpointUnorderedInsertion",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "delegator",
"type": "address"
},
{
"internalType": "address",
"name": "currentNavigator",
"type": "address"
}
],
"name": "DelegatorCannotRegister",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "available",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "requested",
"type": "uint256"
}
],
"name": "InsufficientStake",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "navigator",
"type": "address"
}
],
"name": "NavigatorDeactivated",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "navigator",
"type": "address"
}
],
"name": "NavigatorStillActive",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "navigator",
"type": "address"
}
],
"name": "NotRegistered",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "currentBlock",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "effectiveDeadline",
"type": "uint256"
}
],
"name": "NoticePeriodNotElapsed",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint8",
"name": "bits",
"type": "uint8"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "SafeCastOverflowedUintDowncast",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "provided",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "minimum",
"type": "uint256"
}
],
"name": "StakeBelowMinimum",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "provided",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "maximum",
"type": "uint256"
}
],
"name": "StakeExceedsMaximum",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "navigator",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "stakeAmount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "string",
"name": "metadataURI",
"type": "string"
}
],
"name": "NavigatorRegistered",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "navigator",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "newTotal",
"type": "uint256"
}
],
"name": "StakeAdded",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "navigator",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "remaining",
"type": "uint256"
}
],
"name": "StakeWithdrawn",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "navigator",
"type": "address"
}
],
"name": "canAcceptDelegations",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "navigator",
"type": "address"
}
],
"name": "getDelegationCapacity",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getMaxStake",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getMinStake",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "navigator",
"type": "address"
}
],
"name": "getRemainingCapacity",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "navigator",
"type": "address"
}
],
"name": "getStake",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "navigator",
"type": "address"
},
{
"internalType": "uint256",
"name": "timepoint",
"type": "uint256"
}
],
"name": "getStakedAmountAtTimepoint",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "navigator",
"type": "address"
},
{
"internalType": "uint256",
"name": "additionalDelegation",
"type": "uint256"
}
],
"name": "hasCapacity",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "isNavigator",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
}
],
"bytecode": "0x611b9961003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100b95760003560e01c8063085655df146100be578063253dbca4146100e05780632bcc7c5d1461010657806356a3b5fa146101295780636374299e146101315780637a766460146101515780637b13bd4c146101645780639124ac4814610177578063a624f5aa1461018a578063ab9d80f11461019d578063c6066272146101b0578063f11b1b88146101d0578063fe35505b146101f0575b600080fd5b8180156100ca57600080fd5b506100de6100d93660046117bf565b6101f8565b005b6100f36100ee3660046117bf565b6104ff565b6040519081526020015b60405180910390f35b6101196101143660046117bf565b610546565b60405190151581526020016100fd565b6100f36105fa565b81801561013d57600080fd5b506100de61014c3660046117bf565b61060d565b6100f361015f3660046117e9565b610820565b6101196101723660046117e9565b61083e565b6100f36101853660046117e9565b6108f3565b6101196101983660046117e9565b6109bb565b6100f36101ab3660046117e9565b610a95565b8180156101bc57600080fd5b506100de6101cb3660046117bf565b610ab8565b8180156101dc57600080fd5b506100de6101eb366004611804565b610d55565b6100f36110b4565b60006102026110d0565b6001600160a01b0384166000908152601a8201602052604090205490915060ff1661024b578260405163bfc6c33760e01b8152600401610242919061188a565b60405180910390fd5b6001600160a01b0383166000908152601b8201602052604090205460ff16156102895782604051634ebc012560e01b8152600401610242919061188a565b600061029582856110f4565b9050808311156102bc5780836040516322df051360e11b815260040161024292919061189e565b60006102c884836118c2565b905082600101548110156102f65760018301546040516378e030db60e01b815261024291839160040161189e565b604051636fb7f7eb60e01b815260009073__$77001f4f990daf096ecb913067ed8000fe$__90636fb7f7eb9061033090899060040161188a565b602060405180830381865af415801561034d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037191906118d5565b90508061037f600a846118ee565b10156103c35781600a60016103948285611905565b61039e91906118c2565b6103a8919061192e565b6040516378e030db60e01b815260040161024292919061189e565b6103d684876103d185611115565b61114d565b848460030160008282546103ea91906118c2565b90915550506005840154604051639ae05c3560e01b8152600481018790526001600160a01b0390911690639ae05c3590602401600060405180830381600087803b15801561043757600080fd5b505af115801561044b573d6000803e3d6000fd5b50505060048086015460405163a9059cbb60e01b81526001600160a01b03909116925063a9059cbb91610482918a918a9101611950565b6020604051808303816000875af11580156104a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104c59190611969565b50856001600160a01b0316600080516020611b4483398151915286846040516104ef92919061189e565b60405180910390a2505050505050565b600061053461050d8361117f565b6105156110d0565b6001600160a01b038616600090815260209190915260409020906111b2565b6001600160d01b031690505b92915050565b6000806105516110d0565b905060008373__$77001f4f990daf096ecb913067ed8000fe$__636fb7f7eb876040518263ffffffff1660e01b815260040161058d919061188a565b602060405180830381865af41580156105aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ce91906118d5565b6105d89190611905565b90506105e5600a8261192e565b6105ef83876110f4565b101595945050505050565b60006106046110d0565b60010154905090565b60006106176110d0565b6001600160a01b0384166000908152601a8201602052604090205490915060ff16610657578260405163bfc6c33760e01b8152600401610242919061188a565b6001600160a01b0383166000908152601b8201602052604090205460ff16156106955782604051634ebc012560e01b8152600401610242919061188a565b60006106a182856110f4565b905060006106af8483611905565b905060006106bc84611268565b9050808211156106e35781816040516301ce78ed60e01b815260040161024292919061189e565b6004808501546040516323b872dd60e01b81526001600160a01b03909116916323b872dd91610718918a9130918b910161198b565b6020604051808303816000875af1158015610737573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061075b9190611969565b506005840154604051630711942d60e51b8152600481018790526001600160a01b039091169063e23285a090602401600060405180830381600087803b1580156107a457600080fd5b505af11580156107b8573d6000803e3d6000fd5b505050506107ca84876103d185611115565b848460030160008282546107de9190611905565b92505081905550856001600160a01b03167f270d6dd254edd1d985c81cf7861b8f28fb06b6d719df04d90464034d4341244086846040516104ef92919061189e565b60008061082b6110d0565b905061083781846110f4565b9392505050565b6000806108496110d0565b6001600160a01b0384166000908152601a8201602052604090205490915060ff166108775750600092915050565b6001600160a01b0383166000908152601b8201602052604090205460ff16156108a35750600092915050565b6001600160a01b0383166000908152601c82016020526040902054156108cc5750600092915050565b80600101546108db82856110f4565b10156108ea5750600092915050565b50600192915050565b6000806108fe6110d0565b90506000600a61090e83866110f4565b61091891906118ee565b9050600073__$77001f4f990daf096ecb913067ed8000fe$__636fb7f7eb866040518263ffffffff1660e01b8152600401610953919061188a565b602060405180830381865af4158015610970573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099491906118d5565b90508181106109a857506000949350505050565b6109b281836118c2565b95945050505050565b6000806109c66110d0565b6001600160a01b0384166000908152601a8201602052604090205490915060ff161580610a0d57506001600160a01b0383166000908152601b8201602052604090205460ff165b15610a1b5750600092915050565b6001600160a01b0383166000908152601c82016020526040902054156108ea576001600160a01b0383166000908152601d8201602052604081208190610a6090611303565b5091509150818015610a7a57508065ffffffffffff164310155b15610a8a57506000949350505050565b505050600192915050565b600080610aa06110d0565b9050600a610aae82856110f4565b61083791906118ee565b6000610ac26110d0565b6001600160a01b0384166000908152601a8201602052604090205490915060ff16610b02578260405163bfc6c33760e01b8152600401610242919061188a565b6001600160a01b0383166000908152601c82016020908152604080832054601b850190925290912054901580159160ff169082610b3d575080155b15610b5d578460405163f1ac34f960e01b8152600401610242919061188a565b818015610b68575080155b15610bdc576001600160a01b0385166000908152601d8401602052604081208190610b9290611303565b5091509150818015610bab57508065ffffffffffff1643105b15610bd957604051633e556d8360e01b815243600482015265ffffffffffff82166024820152604401610242565b50505b6000610be884876110f4565b905080851115610c0f5780856040516322df051360e11b815260040161024292919061189e565b6000610c1b86836118c2565b9050610c2b85886103d184611115565b85856003016000828254610c3f91906118c2565b90915550506005850154604051639ae05c3560e01b8152600481018890526001600160a01b0390911690639ae05c3590602401600060405180830381600087803b158015610c8c57600080fd5b505af1158015610ca0573d6000803e3d6000fd5b50505060048087015460405163a9059cbb60e01b81526001600160a01b03909116925063a9059cbb91610cd7918b918b9101611950565b6020604051808303816000875af1158015610cf6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1a9190611969565b50866001600160a01b0316600080516020611b448339815191528783604051610d4492919061189e565b60405180910390a250505050505050565b6000610d5f6110d0565b6001600160a01b0386166000908152601a8201602052604090205490915060ff1615610da057846040516345ed80e960e01b8152600401610242919061188a565b6000610dac828761137d565b90506001600160a01b03811615801590610de157506001600160a01b0381166000908152601b8301602052604090205460ff16155b8015610e0557506001600160a01b0381166000908152601c83016020526040902054155b15610e3657604051635a7062ff60e11b81526001600160a01b03808816600483015282166024820152604401610242565b60238201546001600160a01b031615610edc57602382015460405163802d270960e01b81526001600160a01b039091169063802d270990610e7b90899060040161188a565b602060405180830381865afa158015610e98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebc9190611969565b15610edc57856040516375b1c4e160e01b8152600401610242919061188a565b8160010154851015610f085760018201546040516378e030db60e01b815261024291879160040161189e565b6000610f1383611268565b905080861115610f3a5785816040516301ce78ed60e01b815260040161024292919061189e565b6004808401546040516323b872dd60e01b81526001600160a01b03909116916323b872dd91610f6f918b9130918c910161198b565b6020604051808303816000875af1158015610f8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb29190611969565b506005830154604051630711942d60e51b8152600481018890526001600160a01b039091169063e23285a090602401600060405180830381600087803b158015610ffb57600080fd5b505af115801561100f573d6000803e3d6000fd5b5050505061102183886103d189611115565b858360030160008282546110359190611905565b90915550506001600160a01b0387166000908152601a840160209081526040808320805460ff19166001179055601f86019091529020611076858783611a4e565b50866001600160a01b03167f50201612cd681f55c5840e0c0b195a2f66f02a765808e40ede34fe429e9f3adc878787604051610d4493929190611b0d565b6000806110bf6110d0565b90506110ca81611268565b91505090565b7f2556f61b975c74e3f128bbc478158bc306f6253c34d95084531f202ce74e570090565b6001600160a01b0381166000908152602083905260408120610534906113c6565b60006001600160d01b03821115611149576040516306dfcc6560e41b815260d0600482015260248101839052604401610242565b5090565b6111786111594361117f565b6001600160a01b038416600090815260208690526040902090836113ff565b5050505050565b600065ffffffffffff821115611149576040516306dfcc6560e41b81526030600482015260248101839052604401610242565b8154600090818160058111156112115760006111cd8461141a565b6111d790856118c2565b60008881526020902090915081015465ffffffffffff90811690871610156112015780915061120f565b61120c816001611905565b92505b505b600061121f87878585611502565b9050801561125a57611244876112366001846118c2565b600091825260209091200190565b54600160301b90046001600160d01b031661125d565b60005b979650505050505050565b6000808260050160009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e491906118d5565b90506127108360020154826112f991906118ee565b610837919061192e565b80546000908190819080820361132457600080600093509350935050611376565b6000611335866112366001856118c2565b60408051808201909152905465ffffffffffff8116808352600160301b9091046001600160d01b031660209092018290526001965094509250611376915050565b9193909250565b6001600160a01b03811660009081526007830160205260408120546000036113a757506000610540565b6001600160a01b03821660009081526007840160205260409020610837905b805460009080156113f6576113e0836112366001846118c2565b54600160301b90046001600160d01b0316610837565b60009392505050565b60008061140d858585611564565b915091505b935093915050565b60008160000361142c57506000919050565b60006001611439846116de565b901c6001901b9050600181848161145257611452611918565b048201901c9050600181848161146a5761146a611918565b048201901c9050600181848161148257611482611918565b048201901c9050600181848161149a5761149a611918565b048201901c905060018184816114b2576114b2611918565b048201901c905060018184816114ca576114ca611918565b048201901c905060018184816114e2576114e2611918565b048201901c9050610837818285816114fc576114fc611918565b04611772565b60005b8183101561155c5760006115198484611788565b60008781526020902090915065ffffffffffff86169082015465ffffffffffff16111561154857809250611556565b611553816001611905565b93505b50611505565b509392505050565b825460009081908015611683576000611582876112366001856118c2565b60408051808201909152905465ffffffffffff808216808452600160301b9092046001600160d01b0316602084015291925090871610156115d657604051632520601d60e01b815260040160405180910390fd5b805165ffffffffffff80881691160361162257846115f9886112366001866118c2565b80546001600160d01b0392909216600160301b0265ffffffffffff909216919091179055611673565b6040805180820190915265ffffffffffff80881682526001600160d01b0380881660208085019182528b54600181018d5560008d81529190912094519151909216600160301b029216919091179101555b6020015192508391506114129050565b50506040805180820190915265ffffffffffff80851682526001600160d01b0380851660208085019182528854600181018a5560008a815291822095519251909316600160301b029190931617920191909155905081611412565b600080608083901c156116f357608092831c92015b604083901c1561170557604092831c92015b602083901c1561171757602092831c92015b601083901c1561172957601092831c92015b600883901c1561173b57600892831c92015b600483901c1561174d57600492831c92015b600283901c1561175f57600292831c92015b600183901c156105405760010192915050565b60008183106117815781610837565b5090919050565b6000611797600284841861192e565b61083790848416611905565b80356001600160a01b03811681146117ba57600080fd5b919050565b600080604083850312156117d257600080fd5b6117db836117a3565b946020939093013593505050565b6000602082840312156117fb57600080fd5b610837826117a3565b6000806000806060858703121561181a57600080fd5b611823856117a3565b93506020850135925060408501356001600160401b038082111561184657600080fd5b818701915087601f83011261185a57600080fd5b81358181111561186957600080fd5b88602082850101111561187b57600080fd5b95989497505060200194505050565b6001600160a01b0391909116815260200190565b918252602082015260400190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610540576105406118ac565b6000602082840312156118e757600080fd5b5051919050565b8082028115828204841417610540576105406118ac565b80820180821115610540576105406118ac565b634e487b7160e01b600052601260045260246000fd5b60008261194b57634e487b7160e01b600052601260045260246000fd5b500490565b6001600160a01b03929092168252602082015260400190565b60006020828403121561197b57600080fd5b8151801515811461083757600080fd5b6001600160a01b039384168152919092166020820152604081019190915260600190565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806119d957607f821691505b6020821081036119f957634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115611a4957600081815260208120601f850160051c81016020861015611a265750805b601f850160051c820191505b81811015611a4557828155600101611a32565b5050505b505050565b6001600160401b03831115611a6557611a656119af565b611a7983611a7383546119c5565b836119ff565b6000601f841160018114611aad5760008515611a955750838201355b600019600387901b1c1916600186901b178355611178565b600083815260209020601f19861690835b82811015611ade5786850135825560209485019460019092019101611abe565b5086821015611afb5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b83815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f191601019291505056fe933735aa8de6d7547d0126171b2f31b9c34dd00f3ecd4be85a0ba047db4fafefa2646970667358221220e8f6246943f2657d168b43bbaab88337f75eb5862bd598903293adadb9e5b48564736f6c63430008140033",
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100b95760003560e01c8063085655df146100be578063253dbca4146100e05780632bcc7c5d1461010657806356a3b5fa146101295780636374299e146101315780637a766460146101515780637b13bd4c146101645780639124ac4814610177578063a624f5aa1461018a578063ab9d80f11461019d578063c6066272146101b0578063f11b1b88146101d0578063fe35505b146101f0575b600080fd5b8180156100ca57600080fd5b506100de6100d93660046117bf565b6101f8565b005b6100f36100ee3660046117bf565b6104ff565b6040519081526020015b60405180910390f35b6101196101143660046117bf565b610546565b60405190151581526020016100fd565b6100f36105fa565b81801561013d57600080fd5b506100de61014c3660046117bf565b61060d565b6100f361015f3660046117e9565b610820565b6101196101723660046117e9565b61083e565b6100f36101853660046117e9565b6108f3565b6101196101983660046117e9565b6109bb565b6100f36101ab3660046117e9565b610a95565b8180156101bc57600080fd5b506100de6101cb3660046117bf565b610ab8565b8180156101dc57600080fd5b506100de6101eb366004611804565b610d55565b6100f36110b4565b60006102026110d0565b6001600160a01b0384166000908152601a8201602052604090205490915060ff1661024b578260405163bfc6c33760e01b8152600401610242919061188a565b60405180910390fd5b6001600160a01b0383166000908152601b8201602052604090205460ff16156102895782604051634ebc012560e01b8152600401610242919061188a565b600061029582856110f4565b9050808311156102bc5780836040516322df051360e11b815260040161024292919061189e565b60006102c884836118c2565b905082600101548110156102f65760018301546040516378e030db60e01b815261024291839160040161189e565b604051636fb7f7eb60e01b815260009073__$77001f4f990daf096ecb913067ed8000fe$__90636fb7f7eb9061033090899060040161188a565b602060405180830381865af415801561034d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037191906118d5565b90508061037f600a846118ee565b10156103c35781600a60016103948285611905565b61039e91906118c2565b6103a8919061192e565b6040516378e030db60e01b815260040161024292919061189e565b6103d684876103d185611115565b61114d565b848460030160008282546103ea91906118c2565b90915550506005840154604051639ae05c3560e01b8152600481018790526001600160a01b0390911690639ae05c3590602401600060405180830381600087803b15801561043757600080fd5b505af115801561044b573d6000803e3d6000fd5b50505060048086015460405163a9059cbb60e01b81526001600160a01b03909116925063a9059cbb91610482918a918a9101611950565b6020604051808303816000875af11580156104a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104c59190611969565b50856001600160a01b0316600080516020611b4483398151915286846040516104ef92919061189e565b60405180910390a2505050505050565b600061053461050d8361117f565b6105156110d0565b6001600160a01b038616600090815260209190915260409020906111b2565b6001600160d01b031690505b92915050565b6000806105516110d0565b905060008373__$77001f4f990daf096ecb913067ed8000fe$__636fb7f7eb876040518263ffffffff1660e01b815260040161058d919061188a565b602060405180830381865af41580156105aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ce91906118d5565b6105d89190611905565b90506105e5600a8261192e565b6105ef83876110f4565b101595945050505050565b60006106046110d0565b60010154905090565b60006106176110d0565b6001600160a01b0384166000908152601a8201602052604090205490915060ff16610657578260405163bfc6c33760e01b8152600401610242919061188a565b6001600160a01b0383166000908152601b8201602052604090205460ff16156106955782604051634ebc012560e01b8152600401610242919061188a565b60006106a182856110f4565b905060006106af8483611905565b905060006106bc84611268565b9050808211156106e35781816040516301ce78ed60e01b815260040161024292919061189e565b6004808501546040516323b872dd60e01b81526001600160a01b03909116916323b872dd91610718918a9130918b910161198b565b6020604051808303816000875af1158015610737573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061075b9190611969565b506005840154604051630711942d60e51b8152600481018790526001600160a01b039091169063e23285a090602401600060405180830381600087803b1580156107a457600080fd5b505af11580156107b8573d6000803e3d6000fd5b505050506107ca84876103d185611115565b848460030160008282546107de9190611905565b92505081905550856001600160a01b03167f270d6dd254edd1d985c81cf7861b8f28fb06b6d719df04d90464034d4341244086846040516104ef92919061189e565b60008061082b6110d0565b905061083781846110f4565b9392505050565b6000806108496110d0565b6001600160a01b0384166000908152601a8201602052604090205490915060ff166108775750600092915050565b6001600160a01b0383166000908152601b8201602052604090205460ff16156108a35750600092915050565b6001600160a01b0383166000908152601c82016020526040902054156108cc5750600092915050565b80600101546108db82856110f4565b10156108ea5750600092915050565b50600192915050565b6000806108fe6110d0565b90506000600a61090e83866110f4565b61091891906118ee565b9050600073__$77001f4f990daf096ecb913067ed8000fe$__636fb7f7eb866040518263ffffffff1660e01b8152600401610953919061188a565b602060405180830381865af4158015610970573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099491906118d5565b90508181106109a857506000949350505050565b6109b281836118c2565b95945050505050565b6000806109c66110d0565b6001600160a01b0384166000908152601a8201602052604090205490915060ff161580610a0d57506001600160a01b0383166000908152601b8201602052604090205460ff165b15610a1b5750600092915050565b6001600160a01b0383166000908152601c82016020526040902054156108ea576001600160a01b0383166000908152601d8201602052604081208190610a6090611303565b5091509150818015610a7a57508065ffffffffffff164310155b15610a8a57506000949350505050565b505050600192915050565b600080610aa06110d0565b9050600a610aae82856110f4565b61083791906118ee565b6000610ac26110d0565b6001600160a01b0384166000908152601a8201602052604090205490915060ff16610b02578260405163bfc6c33760e01b8152600401610242919061188a565b6001600160a01b0383166000908152601c82016020908152604080832054601b850190925290912054901580159160ff169082610b3d575080155b15610b5d578460405163f1ac34f960e01b8152600401610242919061188a565b818015610b68575080155b15610bdc576001600160a01b0385166000908152601d8401602052604081208190610b9290611303565b5091509150818015610bab57508065ffffffffffff1643105b15610bd957604051633e556d8360e01b815243600482015265ffffffffffff82166024820152604401610242565b50505b6000610be884876110f4565b905080851115610c0f5780856040516322df051360e11b815260040161024292919061189e565b6000610c1b86836118c2565b9050610c2b85886103d184611115565b85856003016000828254610c3f91906118c2565b90915550506005850154604051639ae05c3560e01b8152600481018890526001600160a01b0390911690639ae05c3590602401600060405180830381600087803b158015610c8c57600080fd5b505af1158015610ca0573d6000803e3d6000fd5b50505060048087015460405163a9059cbb60e01b81526001600160a01b03909116925063a9059cbb91610cd7918b918b9101611950565b6020604051808303816000875af1158015610cf6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1a9190611969565b50866001600160a01b0316600080516020611b448339815191528783604051610d4492919061189e565b60405180910390a250505050505050565b6000610d5f6110d0565b6001600160a01b0386166000908152601a8201602052604090205490915060ff1615610da057846040516345ed80e960e01b8152600401610242919061188a565b6000610dac828761137d565b90506001600160a01b03811615801590610de157506001600160a01b0381166000908152601b8301602052604090205460ff16155b8015610e0557506001600160a01b0381166000908152601c83016020526040902054155b15610e3657604051635a7062ff60e11b81526001600160a01b03808816600483015282166024820152604401610242565b60238201546001600160a01b031615610edc57602382015460405163802d270960e01b81526001600160a01b039091169063802d270990610e7b90899060040161188a565b602060405180830381865afa158015610e98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebc9190611969565b15610edc57856040516375b1c4e160e01b8152600401610242919061188a565b8160010154851015610f085760018201546040516378e030db60e01b815261024291879160040161189e565b6000610f1383611268565b905080861115610f3a5785816040516301ce78ed60e01b815260040161024292919061189e565b6004808401546040516323b872dd60e01b81526001600160a01b03909116916323b872dd91610f6f918b9130918c910161198b565b6020604051808303816000875af1158015610f8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb29190611969565b506005830154604051630711942d60e51b8152600481018890526001600160a01b039091169063e23285a090602401600060405180830381600087803b158015610ffb57600080fd5b505af115801561100f573d6000803e3d6000fd5b5050505061102183886103d189611115565b858360030160008282546110359190611905565b90915550506001600160a01b0387166000908152601a840160209081526040808320805460ff19166001179055601f86019091529020611076858783611a4e565b50866001600160a01b03167f50201612cd681f55c5840e0c0b195a2f66f02a765808e40ede34fe429e9f3adc878787604051610d4493929190611b0d565b6000806110bf6110d0565b90506110ca81611268565b91505090565b7f2556f61b975c74e3f128bbc478158bc306f6253c34d95084531f202ce74e570090565b6001600160a01b0381166000908152602083905260408120610534906113c6565b60006001600160d01b03821115611149576040516306dfcc6560e41b815260d0600482015260248101839052604401610242565b5090565b6111786111594361117f565b6001600160a01b038416600090815260208690526040902090836113ff565b5050505050565b600065ffffffffffff821115611149576040516306dfcc6560e41b81526030600482015260248101839052604401610242565b8154600090818160058111156112115760006111cd8461141a565b6111d790856118c2565b60008881526020902090915081015465ffffffffffff90811690871610156112015780915061120f565b61120c816001611905565b92505b505b600061121f87878585611502565b9050801561125a57611244876112366001846118c2565b600091825260209091200190565b54600160301b90046001600160d01b031661125d565b60005b979650505050505050565b6000808260050160009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e491906118d5565b90506127108360020154826112f991906118ee565b610837919061192e565b80546000908190819080820361132457600080600093509350935050611376565b6000611335866112366001856118c2565b60408051808201909152905465ffffffffffff8116808352600160301b9091046001600160d01b031660209092018290526001965094509250611376915050565b9193909250565b6001600160a01b03811660009081526007830160205260408120546000036113a757506000610540565b6001600160a01b03821660009081526007840160205260409020610837905b805460009080156113f6576113e0836112366001846118c2565b54600160301b90046001600160d01b0316610837565b60009392505050565b60008061140d858585611564565b915091505b935093915050565b60008160000361142c57506000919050565b60006001611439846116de565b901c6001901b9050600181848161145257611452611918565b048201901c9050600181848161146a5761146a611918565b048201901c9050600181848161148257611482611918565b048201901c9050600181848161149a5761149a611918565b048201901c905060018184816114b2576114b2611918565b048201901c905060018184816114ca576114ca611918565b048201901c905060018184816114e2576114e2611918565b048201901c9050610837818285816114fc576114fc611918565b04611772565b60005b8183101561155c5760006115198484611788565b60008781526020902090915065ffffffffffff86169082015465ffffffffffff16111561154857809250611556565b611553816001611905565b93505b50611505565b509392505050565b825460009081908015611683576000611582876112366001856118c2565b60408051808201909152905465ffffffffffff808216808452600160301b9092046001600160d01b0316602084015291925090871610156115d657604051632520601d60e01b815260040160405180910390fd5b805165ffffffffffff80881691160361162257846115f9886112366001866118c2565b80546001600160d01b0392909216600160301b0265ffffffffffff909216919091179055611673565b6040805180820190915265ffffffffffff80881682526001600160d01b0380881660208085019182528b54600181018d5560008d81529190912094519151909216600160301b029216919091179101555b6020015192508391506114129050565b50506040805180820190915265ffffffffffff80851682526001600160d01b0380851660208085019182528854600181018a5560008a815291822095519251909316600160301b029190931617920191909155905081611412565b600080608083901c156116f357608092831c92015b604083901c1561170557604092831c92015b602083901c1561171757602092831c92015b601083901c1561172957601092831c92015b600883901c1561173b57600892831c92015b600483901c1561174d57600492831c92015b600283901c1561175f57600292831c92015b600183901c156105405760010192915050565b60008183106117815781610837565b5090919050565b6000611797600284841861192e565b61083790848416611905565b80356001600160a01b03811681146117ba57600080fd5b919050565b600080604083850312156117d257600080fd5b6117db836117a3565b946020939093013593505050565b6000602082840312156117fb57600080fd5b610837826117a3565b6000806000806060858703121561181a57600080fd5b611823856117a3565b93506020850135925060408501356001600160401b038082111561184657600080fd5b818701915087601f83011261185a57600080fd5b81358181111561186957600080fd5b88602082850101111561187b57600080fd5b95989497505060200194505050565b6001600160a01b0391909116815260200190565b918252602082015260400190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610540576105406118ac565b6000602082840312156118e757600080fd5b5051919050565b8082028115828204841417610540576105406118ac565b80820180821115610540576105406118ac565b634e487b7160e01b600052601260045260246000fd5b60008261194b57634e487b7160e01b600052601260045260246000fd5b500490565b6001600160a01b03929092168252602082015260400190565b60006020828403121561197b57600080fd5b8151801515811461083757600080fd5b6001600160a01b039384168152919092166020820152604081019190915260600190565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806119d957607f821691505b6020821081036119f957634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115611a4957600081815260208120601f850160051c81016020861015611a265750805b601f850160051c820191505b81811015611a4557828155600101611a32565b5050505b505050565b6001600160401b03831115611a6557611a656119af565b611a7983611a7383546119c5565b836119ff565b6000601f841160018114611aad5760008515611a955750838201355b600019600387901b1c1916600186901b178355611178565b600083815260209020601f19861690835b82811015611ade5786850135825560209485019460019092019101611abe565b5086821015611afb5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b83815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f191601019291505056fe933735aa8de6d7547d0126171b2f31b9c34dd00f3ecd4be85a0ba047db4fafefa2646970667358221220e8f6246943f2657d168b43bbaab88337f75eb5862bd598903293adadb9e5b48564736f6c63430008140033",
"linkReferences": {
"contracts/navigator/libraries/NavigatorDelegationUtils.sol": {
"NavigatorDelegationUtils": [
{
"length": 20,
"start": 834
},
{
"length": 20,
"start": 1426
},
{
"length": 20,
"start": 2392
}
]
}
},
"deployedLinkReferences": {
"contracts/navigator/libraries/NavigatorDelegationUtils.sol": {
"NavigatorDelegationUtils": [
{
"length": 20,
"start": 776
},
{
"length": 20,
"start": 1368
},
{
"length": 20,
"start": 2334
}
]
}
}
}