@etherisc/registry-contracts
Version:
Etherisc's smart contracts for the registry.
2,002 lines • 265 kB
JSON
{
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "NftId",
"name": "target",
"type": "uint96"
},
{
"indexed": false,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": false,
"internalType": "NftId",
"name": "id",
"type": "uint96"
}
],
"name": "LogStakingNewStakeCreated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "NftId",
"name": "oldTarget",
"type": "uint96"
},
{
"indexed": false,
"internalType": "NftId",
"name": "newTrget",
"type": "uint96"
},
{
"indexed": false,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": false,
"internalType": "NftId",
"name": "stakeId",
"type": "uint96"
},
{
"indexed": false,
"internalType": "uint256",
"name": "stakingAmount",
"type": "uint256"
}
],
"name": "LogStakingRestaked",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": false,
"internalType": "UFixed",
"name": "oldRewardRate",
"type": "uint256"
},
{
"indexed": false,
"internalType": "UFixed",
"name": "newRewardRate",
"type": "uint256"
}
],
"name": "LogStakingRewardRateSet",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "newBalance",
"type": "uint256"
}
],
"name": "LogStakingRewardReservesDecreased",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "newBalance",
"type": "uint256"
}
],
"name": "LogStakingRewardReservesIncreased",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "NftId",
"name": "id",
"type": "uint96"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "newBalance",
"type": "uint256"
}
],
"name": "LogStakingRewardsClaimed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "NftId",
"name": "id",
"type": "uint96"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "newBalance",
"type": "uint256"
}
],
"name": "LogStakingRewardsUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "NftId",
"name": "target",
"type": "uint96"
},
{
"indexed": false,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": false,
"internalType": "NftId",
"name": "id",
"type": "uint96"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "newBalance",
"type": "uint256"
}
],
"name": "LogStakingStaked",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": false,
"internalType": "ChainId",
"name": "chain",
"type": "bytes5"
},
{
"indexed": false,
"internalType": "address",
"name": "token",
"type": "address"
},
{
"indexed": false,
"internalType": "UFixed",
"name": "oldStakingRate",
"type": "uint256"
},
{
"indexed": false,
"internalType": "UFixed",
"name": "newStakingRate",
"type": "uint256"
}
],
"name": "LogStakingStakingRateSet",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "NftId",
"name": "target",
"type": "uint96"
},
{
"indexed": false,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": false,
"internalType": "NftId",
"name": "id",
"type": "uint96"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "newBalance",
"type": "uint256"
}
],
"name": "LogStakingUnstaked",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "oldWallet",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "newWallet",
"type": "address"
}
],
"name": "LogStakingWalletChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": false,
"internalType": "NftId",
"name": "target",
"type": "uint96"
},
{
"indexed": false,
"internalType": "UFixed",
"name": "oldRewardRate",
"type": "uint256"
},
{
"indexed": false,
"internalType": "UFixed",
"name": "newRewardRate",
"type": "uint256"
}
],
"name": "LogTargetRewardRateSet",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "Version",
"name": "version",
"type": "uint48"
},
{
"indexed": false,
"internalType": "address",
"name": "implementation",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "activatedBy",
"type": "address"
}
],
"name": "LogVersionableActivated",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "implementation",
"type": "address"
},
{
"internalType": "address",
"name": "activatedBy",
"type": "address"
}
],
"name": "activate",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "ChainId",
"name": "chain",
"type": "bytes5"
},
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "dipAmount",
"type": "uint256"
}
],
"name": "calculateCapitalSupport",
"outputs": [
{
"internalType": "uint256",
"name": "tokenAmount",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "ChainId",
"name": "chain",
"type": "bytes5"
},
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenAmount",
"type": "uint256"
}
],
"name": "calculateRequiredStaking",
"outputs": [
{
"internalType": "uint256",
"name": "dipAmount",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "duration",
"type": "uint256"
}
],
"name": "calculateRewards",
"outputs": [
{
"internalType": "uint256",
"name": "rewardAmount",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "NftId",
"name": "id",
"type": "uint96"
},
{
"internalType": "NftId",
"name": "target",
"type": "uint96"
},
{
"internalType": "uint256",
"name": "stakeBalance",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "rewardBalance",
"type": "uint256"
},
{
"internalType": "Timestamp",
"name": "createdAt",
"type": "uint40"
},
{
"internalType": "Timestamp",
"name": "updatedAt",
"type": "uint40"
},
{
"internalType": "Version",
"name": "version",
"type": "uint48"
},
{
"internalType": "Timestamp",
"name": "lockedUntil",
"type": "uint40"
}
],
"internalType": "struct IStaking.StakeInfo",
"name": "stakeInfo",
"type": "tuple"
}
],
"name": "calculateRewardsIncrement",
"outputs": [
{
"internalType": "uint256",
"name": "rewardsAmount",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "NftId",
"name": "target",
"type": "uint96"
}
],
"name": "capitalSupport",
"outputs": [
{
"internalType": "uint256",
"name": "capitalAmount",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "NftId",
"name": "id",
"type": "uint96"
}
],
"name": "claimRewards",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "NftId",
"name": "target",
"type": "uint96"
},
{
"internalType": "uint256",
"name": "dipAmount",
"type": "uint256"
}
],
"name": "createStake",
"outputs": [
{
"internalType": "NftId",
"name": "id",
"type": "uint96"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "NftId",
"name": "target",
"type": "uint96"
},
{
"internalType": "uint256",
"name": "dipAmount",
"type": "uint256"
},
{
"internalType": "bytes32",
"name": "signatureId",
"type": "bytes32"
},
{
"internalType": "bytes",
"name": "signature",
"type": "bytes"
}
],
"name": "createStakeWithSignature",
"outputs": [
{
"internalType": "NftId",
"name": "stakeId",
"type": "uint96"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "NftId",
"name": "bundle",
"type": "uint96"
}
],
"name": "getBundleInfo",
"outputs": [
{
"internalType": "bytes32",
"name": "instanceId",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "riskpoolId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "bundleId",
"type": "uint256"
},
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "string",
"name": "displayName",
"type": "string"
},
{
"internalType": "enum IInstanceServiceFacade.BundleState",
"name": "bundleState",
"type": "uint8"
},
{
"internalType": "Timestamp",
"name": "expiryAt",
"type": "uint40"
},
{
"internalType": "bool",
"name": "stakingSupported",
"type": "bool"
},
{
"internalType": "bool",
"name": "unstakingSupported",
"type": "bool"
},
{
"internalType": "uint256",
"name": "stakeBalance",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getDip",
"outputs": [
{
"internalType": "contract IERC20Metadata",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "NftId",
"name": "id",
"type": "uint96"
}
],
"name": "getInfo",
"outputs": [
{
"components": [
{
"internalType": "NftId",
"name": "id",
"type": "uint96"
},
{
"internalType": "NftId",
"name": "target",
"type": "uint96"
},
{
"internalType": "uint256",
"name": "stakeBalance",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "rewardBalance",
"type": "uint256"
},
{
"internalType": "Timestamp",
"name": "createdAt",
"type": "uint40"
},
{
"internalType": "Timestamp",
"name": "updatedAt",
"type": "uint40"
},
{
"internalType": "Version",
"name": "version",
"type": "uint48"
},
{
"internalType": "Timestamp",
"name": "lockedUntil",
"type": "uint40"
}
],
"internalType": "struct IStaking.StakeInfo",
"name": "info",
"type": "tuple"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getMessageHelperAddress",
"outputs": [
{
"internalType": "address",
"name": "messageHelperAddress",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getRegistry",
"outputs": [
{
"internalType": "contract IChainRegistry",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getStakingWallet",
"outputs": [
{
"internalType": "address",
"name": "stakingWallet",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "NftId",
"name": "target",
"type": "uint96"
}
],
"name": "getTargetRewardRate",
"outputs": [
{
"internalType": "UFixed",
"name": "rewardRate",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "idx",
"type": "uint256"
}
],
"name": "getVersion",
"outputs": [
{
"internalType": "Version",
"name": "",
"type": "uint48"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "Version",
"name": "_version",
"type": "uint48"
}
],
"name": "getVersionInfo",
"outputs": [
{
"components": [
{
"internalType": "Version",
"name": "version",
"type": "uint48"
},
{
"internalType": "address",
"name": "implementation",
"type": "address"
},
{
"internalType": "address",
"name": "activatedBy",
"type": "address"
},
{
"internalType": "Blocknumber",
"name": "activatedIn",
"type": "uint32"
},
{
"internalType": "Timestamp",
"name": "activatedAt",
"type": "uint40"
}
],
"internalType": "struct IVersionable.VersionInfo",
"name": "",
"type": "tuple"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "implementsIStaking",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "Version",
"name": "_version",
"type": "uint48"
}
],
"name": "isActivated",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "NftId",
"name": "target",
"type": "uint96"
}
],
"name": "isStakingSupported",
"outputs": [
{
"internalType": "bool",
"name": "isSupported",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "ObjectType",
"name": "targetType",
"type": "uint8"
}
],
"name": "isStakingSupportedForType",
"outputs": [
{
"internalType": "bool",
"name": "isSupported",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "NftId",
"name": "stakeId",
"type": "uint96"
}
],
"name": "isUnstakingAvailable",
"outputs": [
{
"internalType": "bool",
"name": "isAvailable",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "NftId",
"name": "target",
"type": "uint96"
}
],
"name": "isUnstakingSupported",
"outputs": [
{
"internalType": "bool",
"name": "isSupported",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "maxRewardRate",
"outputs": [
{
"internalType": "UFixed",
"name": "rate",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "rateDecimals",
"outputs": [
{
"internalType": "uint256",
"name": "decimals",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "dipAmount",
"type": "uint256"
}
],
"name": "refillRewardReserves",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "NftId",
"name": "id",
"type": "uint96"
},
{
"internalType": "NftId",
"name": "newTarget",
"type": "uint96"
}
],
"name": "restake",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "NftId",
"name": "stakeId",
"type": "uint96"
},
{
"internalType": "NftId",
"name": "newTarget",
"type": "uint96"
},
{
"internalType": "bytes32",
"name": "signatureId",
"type": "bytes32"
},
{
"internalType": "bytes",
"name": "signature",
"type": "bytes"
}
],
"name": "restakeWithSignature",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "rewardBalance",
"outputs": [
{
"internalType": "uint256",
"name": "dipAmount",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "rewardRate",
"outputs": [
{
"internalType": "UFixed",
"name": "rate",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "rewardReserves",
"outputs": [
{
"internalType": "uint256",
"name": "dipAmount",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "UFixed",
"name": "rewardRate",
"type": "uint256"
}
],
"name": "setRewardRate",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "ChainId",
"name": "chain",
"type": "bytes5"
},
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "UFixed",
"name": "stakingRate",
"type": "uint256"
}
],
"name": "setStakingRate",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "stakingWalletNew",
"type": "address"
}
],
"name": "setStakingWallet",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "NftId",
"name": "id",
"type": "uint96"
},
{
"internalType": "uint256",
"name": "dipAmount",
"type": "uint256"
}
],
"name": "stake",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "stakeBalance",
"outputs": [
{
"internalType": "uint256",
"name": "dipAmount",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "NftId",
"name": "target",
"type": "uint96"
}
],
"name": "stakes",
"outputs": [
{
"internalType": "uint256",
"name": "dipAmount",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "ChainId",
"name": "chain",
"type": "bytes5"
},
{
"internalType": "address",
"name": "token",
"type": "address"
}
],
"name": "stakingRate",
"outputs": [
{
"internalType": "UFixed",
"name": "stakingRate",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "chainId",
"type": "uint256"
}
],
"name": "toChain",
"outputs": [
{
"internalType": "ChainId",
"name": "",
"type": "bytes5"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
},
{
"internalType": "int8",
"name": "exp",
"type": "int8"
}
],
"name": "toRate",
"outputs": [
{
"internalType": "UFixed",
"name": "",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "Version",
"name": "_version",
"type": "uint48"
}
],
"name": "toVersionParts",
"outputs": [
{
"internalType": "VersionPart",
"name": "major",
"type": "uint16"
},
{
"internalType": "VersionPart",
"name": "minor",
"type": "uint16"
},
{
"internalType": "VersionPart",
"name": "patch",
"type": "uint16"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "NftId",
"name": "id",
"type": "uint96"
},
{
"internalType": "uint256",
"name": "dipAmount",
"type": "uint256"
}
],
"name": "unstake",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "NftId",
"name": "id",
"type": "uint96"
}
],
"name": "unstakeAndClaimRewards",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "version",
"outputs": [
{
"internalType": "Version",
"name": "",
"type": "uint48"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [],
"name": "versionParts",
"outputs": [
{
"internalType": "VersionPart",
"name": "major",
"type": "uint16"
},
{
"internalType": "VersionPart",
"name": "minor",
"type": "uint16"
},
{
"internalType": "VersionPart",
"name": "patch",
"type": "uint16"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [],
"name": "versions",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "dipAmount",
"type": "uint256"
}
],
"name": "withdrawRewardReserves",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"allSourcePaths": {
"14": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/token/ERC20/IERC20.sol",
"15": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/token/ERC20/extensions/IERC20Metadata.sol",
"17": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/token/ERC721/IERC721.sol",
"20": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/token/ERC721/extensions/IERC721Enumerable.sol",
"29": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/utils/introspection/IERC165.sol",
"34": "contracts/registry/IChainNft.sol",
"36": "contracts/registry/IChainRegistry.sol",
"39": "contracts/registry/IInstanceServiceFacade.sol",
"43": "contracts/shared/IBaseTypes.sol",
"44": "contracts/shared/IVersionType.sol",
"45": "contracts/shared/IVersionable.sol",
"47": "contracts/shared/UFixedMath.sol",
"50": "contracts/staking/IStaking.sol"
},
"ast": {
"absolutePath": "contracts/staking/IStaking.sol",
"exportedSymbols": {
"ChainId": [
4447
],
"IChainRegistry": [
4025
],
"IERC20Metadata": [
12510
],
"IInstanceServiceFacade": [
4295
],
"IStaking": [
6479
],
"IVersionable": [
4856
],
"NftId": [
3353
],
"ObjectType": [
3555
],
"Timestamp": [
4530
],
"UFixed": [
5099
],
"Version": [
12269
]
},
"id": 6480,
"license": "Apache-2.0",
"nodeType": "SourceUnit",
"nodes": [
{
"id": 5967,
"literals": [
"solidity",
"^",
"0.8",
".19"
],
"nodeType": "PragmaDirective",
"src": "39:24:50"
},
{
"absolutePath": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/token/ERC20/extensions/IERC20Metadata.sol",
"file": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol",
"id": 5969,
"nameLocation": "-1:-1:-1",
"nodeType": "ImportDirective",
"scope": 6480,
"sourceUnit": 12511,
"src": "65:97:50",
"symbolAliases": [
{
"foreign": {
"id": 5968,
"name": "IERC20Metadata",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 12510,
"src": "73:14:50",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"absolutePath": "contracts/shared/IBaseTypes.sol",
"file": "../shared/IBaseTypes.sol",
"id": 5972,
"nameLocation": "-1:-1:-1",
"nodeType": "ImportDirective",
"scope": 6480,
"sourceUnit": 4754,
"src": "164:60:50",
"symbolAliases": [
{
"foreign": {
"id": 5970,
"name": "ChainId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4447,
"src": "172:7:50",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
},
{
"foreign": {
"id": 5971,
"name": "Timestamp",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4530,
"src": "181:9:50",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"absolutePath": "contracts/shared/IVersionType.sol",
"file": "../shared/IVersionType.sol",
"id": 5974,
"nameLocation": "-1:-1:-1",
"nodeType": "ImportDirective",
"scope": 6480,
"sourceUnit": 12455,
"src": "225:51:50",
"symbolAliases": [
{
"foreign": {
"id": 5973,
"name": "Version",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 12269,
"src": "233:7:50",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"absolutePath": "contracts/shared/IVersionable.sol",
"file": "../shared/IVersionable.sol",
"id": 5976,
"nameLocation": "-1:-1:-1",
"nodeType": "ImportDirective",
"scope": 6480,
"sourceUnit": 4857,
"src": "277:56:50",
"symbolAliases": [
{
"foreign": {
"id": 5975,
"name": "IVersionable",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4856,
"src": "285:12:50",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"absolutePath": "contracts/shared/UFixedMath.sol",
"file": "../shared/UFixedMath.sol",
"id": 5978,
"nameLocation": "-1:-1:-1",
"nodeType": "ImportDirective",
"scope": 6480,
"sourceUnit": 5592,
"src": "335:48:50",
"symbolAliases": [
{
"foreign": {
"id": 5977,
"name": "UFixed",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5099,
"src": "343:6:50",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"absolutePath": "contracts/registry/IChainNft.sol",
"file": "../registry/IChainNft.sol",
"id": 5980,
"nameLocation": "-1:-1:-1",
"nodeType": "ImportDirective",
"scope": 6480,
"sourceUnit": 3495,
"src": "385:48:50",
"symbolAliases": [
{
"foreign": {
"id": 5979,
"name": "NftId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3353,
"src": "393:5:50",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"absolutePath": "contracts/registry/IChainRegistry.sol",
"file": "../registry/IChainRegistry.sol",
"id": 5983,
"nameLocation": "-1:-1:-1",
"nodeType": "ImportDirective",
"scope": 6480,
"sourceUnit": 4026,
"src": "434:74:50",
"symbolAliases": [
{
"foreign": {
"id": 5981,
"name": "IChainRegistry",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4025,
"src": "442:14:50",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
},
{
"foreign": {
"id": 5982,
"name": "ObjectType",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3555,
"src": "458:10:50",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"absolutePath": "contracts/registry/IInstanceServiceFacade.sol",
"file": "../registry/IInstanceServiceFacade.sol",
"id": 5985,
"nameLocation": "-1:-1:-1",
"nodeType": "ImportDirective",
"scope": 6480,
"sourceUnit": 4296,
"src": "509:78:50",
"symbolAliases": [
{
"foreign": {
"id": 5984,
"name": "IInstanceServiceFacade",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4295,
"src": "517:22:50",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"abstract": false,
"baseContracts": [
{
"baseName": {
"id": 5986,
"name": "IVersionable",
"nameLocations": [
"616:12:50"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 4856,
"src": "616:12:50"
},
"id": 5987,
"nodeType": "InheritanceSpecifier",
"src": "616:12:50"
}
],
"canonicalName": "IStaking",
"contractDependencies": [],
"contractKind": "interface",
"fullyImplemented": false,
"id": 6479,
"linearizedBaseContracts": [
6479,
4856
],
"name": "IStaking",
"nameLocation": "600:8:50",
"nodeType": "ContractDefinition",
"nodes": [
{
"canonicalName": "IStaking.StakeInfo",
"id": 6010,
"members": [
{
"constant": false,
"id": 5990,
"mutability": "mutable",
"name": "id",
"nameLocation": "669:2:50",
"nodeType": "VariableDeclaration",
"scope": 6010,
"src": "663:8:50",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
"typeString": "NftId"
},
"typeName": {
"id": 5989,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 5988,
"name": "NftId",
"nameLocations": [
"663:5:50"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 3353,
"src": "663:5:50"
},
"referencedDeclaration": 3353,
"src": "663:5:50",
"typeDescriptions": {
"typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
"typeString": "NftId"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 5993,
"mutability": "mutable",
"name": "target",
"nameLocation": "687:6:50",
"nodeType": "VariableDeclaration",
"scope": 6010,
"src": "681:12:50",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
"typeString": "NftId"
},
"typeName": {
"id": 5992,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 5991,
"name": "NftId",
"nameLocations": [
"681:5:50"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 3353,
"src": "681:5:50"
},
"referencedDeclaration": 3353,
"src": "681:5:50",
"typeDescriptions": {
"typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
"typeString": "NftId"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 5995,
"mutability": "mutable",
"name": "stakeBalance",
"nameLocation": "711:12:50",
"nodeType": "VariableDeclaration",
"scope": 6010,
"src": "703:20:50",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 5994,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "703:7:50",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 5997,
"mutability": "mutable",
"name": "rewardBalance",
"nameLocation": "741:13:50",
"nodeType": "VariableDeclaration",
"scope": 6010,
"src": "733:21:50",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 5996,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "733:7:50",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 6000,
"mutability": "mutable",
"name": "createdAt",
"nameLocation": "774:9:50",
"nodeType": "VariableDeclaration",
"scope": 6010,
"src": "764:19:50",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_userDefinedValueType$_Timestamp_$4530",
"typeString": "Timestamp"
},
"typeName": {
"id": 5999,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 5998,
"name": "Timestamp",
"nameLocations": [
"764:9:50"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 4530,
"src": "764:9:50"
},
"referencedDeclaration": 4530,
"src": "764:9:50",
"typeDescriptions": {
"typeIdentifier": "t_userDefinedValueType$_Timestamp_$4530",
"typeString": "Timestamp"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 6003,
"mutability": "mutable",
"name": "updatedAt",
"nameLocation": "803:9:50",
"nodeType": "VariableDeclaration",
"scope": 6010,
"src": "793:19:50",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_userDefinedValueType$_Timestamp_$4530",
"typeString": "Timestamp"
},
"typeName": {
"id": 6002,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 6001,
"name": "Timestamp",
"nameLocations": [
"793:9:50"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 4530,
"src": "793:9:50"
},
"referencedDeclaration": 4530,
"src": "793:9:50",
"typeDescriptions": {
"typeIdentifier": "t_userDefinedValueType$_Timestamp_$4530",
"typeString": "Timestamp"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 6006,
"mutability": "mutable",
"name": "version",
"nameLocation": "830:7:50",
"nodeType": "VariableDeclaration",
"scope": 6010,
"src": "822:15:50",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_userDefinedValueType$_Version_$12269",
"typeString": "Version"
},
"typeName": {
"id": 6005,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 6004,
"name": "Version",
"nameLocations": [
"822:7:50"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 12269,
"src": "822:7:50"
},
"referencedDeclaration": 12269,
"src": "822:7:50",
"typeDescriptions": {
"typeIdentifier": "t_userDefinedValueType$_Version_$12269",
"typeString": "Version"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 6009,
"mutability": "mutable",
"name": "lockedUntil",
"nameLocation": "857:11:50",
"nodeType": "VariableDeclaration",
"scope": 6010,
"src": "847:21:50",
"stateVariable": false,
"storageLocation": "default",
"typeDescript