2296 lines
235 KiB
JSON
Raw Normal View History

{
"address": "0xfFaF679D5Cbfdd5Dbc9Be61C616ed115DFb597ed",
"abi": [
{
"inputs": [
{
"components": [
{
"components": [
{
"internalType": "uint8",
"name": "repairRewardPercentage",
"type": "uint8"
},
{
"internalType": "uint8",
"name": "maxNumberOfSlashes",
"type": "uint8"
},
{
"internalType": "uint8",
"name": "slashPercentage",
"type": "uint8"
},
{
"internalType": "uint8",
"name": "validatorRewardPercentage",
"type": "uint8"
}
],
"internalType": "struct CollateralConfig",
"name": "collateral",
"type": "tuple"
},
{
"components": [
{
"internalType": "uint64",
"name": "period",
"type": "uint64"
},
{
"internalType": "uint64",
"name": "timeout",
"type": "uint64"
},
{
"internalType": "uint8",
"name": "downtime",
"type": "uint8"
},
{
"internalType": "uint8",
"name": "downtimeProduct",
"type": "uint8"
},
{
"internalType": "string",
"name": "zkeyHash",
"type": "string"
}
],
"internalType": "struct ProofConfig",
"name": "proofs",
"type": "tuple"
},
{
"components": [
{
"internalType": "uint8",
"name": "maxReservations",
"type": "uint8"
}
],
"internalType": "struct SlotReservationsConfig",
"name": "reservations",
"type": "tuple"
},
{
"internalType": "uint64",
"name": "requestDurationLimit",
"type": "uint64"
}
],
"internalType": "struct MarketplaceConfig",
"name": "config",
"type": "tuple"
},
{
"internalType": "contract IERC20",
"name": "token_",
"type": "address"
},
{
"internalType": "contract IGroth16Verifier",
"name": "verifier",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "Marketplace_AlreadyPaid",
"type": "error"
},
{
"inputs": [],
"name": "Marketplace_DurationExceedsLimit",
"type": "error"
},
{
"inputs": [],
"name": "Marketplace_InsufficientCollateral",
"type": "error"
},
{
"inputs": [],
"name": "Marketplace_InsufficientDuration",
"type": "error"
},
{
"inputs": [],
"name": "Marketplace_InsufficientProofProbability",
"type": "error"
},
{
"inputs": [],
"name": "Marketplace_InsufficientReward",
"type": "error"
},
{
"inputs": [],
"name": "Marketplace_InsufficientSlots",
"type": "error"
},
{
"inputs": [],
"name": "Marketplace_InvalidCid",
"type": "error"
},
{
"inputs": [],
"name": "Marketplace_InvalidClientAddress",
"type": "error"
},
{
"inputs": [],
"name": "Marketplace_InvalidExpiry",
"type": "error"
},
{
"inputs": [],
"name": "Marketplace_InvalidMaxSlotLoss",
"type": "error"
},
{
"inputs": [],
"name": "Marketplace_InvalidSlot",
"type": "error"
},
{
"inputs": [],
"name": "Marketplace_InvalidSlotHost",
"type": "error"
},
{
"inputs": [],
"name": "Marketplace_InvalidState",
"type": "error"
},
{
"inputs": [],
"name": "Marketplace_MaximumSlashingTooHigh",
"type": "error"
},
{
"inputs": [],
"name": "Marketplace_NothingToWithdraw",
"type": "error"
},
{
"inputs": [],
"name": "Marketplace_RepairRewardPercentageTooHigh",
"type": "error"
},
{
"inputs": [],
"name": "Marketplace_RequestAlreadyExists",
"type": "error"
},
{
"inputs": [],
"name": "Marketplace_ReservationRequired",
"type": "error"
},
{
"inputs": [],
"name": "Marketplace_SlashPercentageTooHigh",
"type": "error"
},
{
"inputs": [],
"name": "Marketplace_SlotIsFree",
"type": "error"
},
{
"inputs": [],
"name": "Marketplace_SlotNotAcceptingProofs",
"type": "error"
},
{
"inputs": [],
"name": "Marketplace_SlotNotFree",
"type": "error"
},
{
"inputs": [],
"name": "Marketplace_StartNotBeforeExpiry",
"type": "error"
},
{
"inputs": [],
"name": "Marketplace_TransferFailed",
"type": "error"
},
{
"inputs": [],
"name": "Marketplace_UnknownRequest",
"type": "error"
},
{
"inputs": [],
"name": "Periods_InvalidSecondsPerPeriod",
"type": "error"
},
{
"inputs": [],
"name": "Proofs_InsufficientBlockHeight",
"type": "error"
},
{
"inputs": [],
"name": "Proofs_InvalidProof",
"type": "error"
},
{
"inputs": [],
"name": "Proofs_PeriodNotEnded",
"type": "error"
},
{
"inputs": [],
"name": "Proofs_ProofAlreadyMarkedMissing",
"type": "error"
},
{
"inputs": [],
"name": "Proofs_ProofAlreadySubmitted",
"type": "error"
},
{
"inputs": [],
"name": "Proofs_ProofNotMissing",
"type": "error"
},
{
"inputs": [],
"name": "Proofs_ProofNotRequired",
"type": "error"
},
{
"inputs": [],
"name": "Proofs_ValidationTimedOut",
"type": "error"
},
{
"inputs": [],
"name": "SlotReservations_ReservationNotAllowed",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "SlotId",
"name": "id",
"type": "bytes32"
}
],
"name": "ProofSubmitted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "RequestId",
"name": "requestId",
"type": "bytes32"
}
],
"name": "RequestCancelled",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "RequestId",
"name": "requestId",
"type": "bytes32"
}
],
"name": "RequestFailed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "RequestId",
"name": "requestId",
"type": "bytes32"
}
],
"name": "RequestFulfilled",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "RequestId",
"name": "requestId",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "uint64",
"name": "slotIndex",
"type": "uint64"
}
],
"name": "SlotFilled",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "RequestId",
"name": "requestId",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "uint64",
"name": "slotIndex",
"type": "uint64"
}
],
"name": "SlotFreed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "RequestId",
"name": "requestId",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "uint64",
"name": "slotIndex",
"type": "uint64"
}
],
"name": "SlotReservationsFull",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "RequestId",
"name": "requestId",
"type": "bytes32"
},
{
"components": [
{
"internalType": "uint256",
"name": "proofProbability",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "pricePerBytePerSecond",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "collateralPerByte",
"type": "uint256"
},
{
"internalType": "uint64",
"name": "slots",
"type": "uint64"
},
{
"internalType": "uint64",
"name": "slotSize",
"type": "uint64"
},
{
"internalType": "uint64",
"name": "duration",
"type": "uint64"
},
{
"internalType": "uint64",
"name": "maxSlotLoss",
"type": "uint64"
}
],
"indexed": false,
"internalType": "struct Ask",
"name": "ask",
"type": "tuple"
},
{
"indexed": false,
"internalType": "uint64",
"name": "expiry",
"type": "uint64"
}
],
"name": "StorageRequested",
"type": "event"
},
{
"inputs": [
{
"internalType": "RequestId",
"name": "requestId",
"type": "bytes32"
},
{
"internalType": "uint64",
"name": "slotIndex",
"type": "uint64"
}
],
"name": "canReserveSlot",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "configuration",
"outputs": [
{
"components": [
{
"components": [
{
"internalType": "uint8",
"name": "repairRewardPercentage",
"type": "uint8"
},
{
"internalType": "uint8",
"name": "maxNumberOfSlashes",
"type": "uint8"
},
{
"internalType": "uint8",
"name": "slashPercentage",
"type": "uint8"
},
{
"internalType": "uint8",
"name": "validatorRewardPercentage",
"type": "uint8"
}
],
"internalType": "struct CollateralConfig",
"name": "collateral",
"type": "tuple"
},
{
"components": [
{
"internalType": "uint64",
"name": "period",
"type": "uint64"
},
{
"internalType": "uint64",
"name": "timeout",
"type": "uint64"
},
{
"internalType": "uint8",
"name": "downtime",
"type": "uint8"
},
{
"internalType": "uint8",
"name": "downtimeProduct",
"type": "uint8"
},
{
"internalType": "string",
"name": "zkeyHash",
"type": "string"
}
],
"internalType": "struct ProofConfig",
"name": "proofs",
"type": "tuple"
},
{
"components": [
{
"internalType": "uint8",
"name": "maxReservations",
"type": "uint8"
}
],
"internalType": "struct SlotReservationsConfig",
"name": "reservations",
"type": "tuple"
},
{
"internalType": "uint64",
"name": "requestDurationLimit",
"type": "uint64"
}
],
"internalType": "struct MarketplaceConfig",
"name": "",
"type": "tuple"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "SlotId",
"name": "slotId",
"type": "bytes32"
}
],
"name": "currentCollateral",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "RequestId",
"name": "requestId",
"type": "bytes32"
},
{
"internalType": "uint64",
"name": "slotIndex",
"type": "uint64"
},
{
"components": [
{
"components": [
{
"internalType": "uint256",
"name": "x",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "y",
"type": "uint256"
}
],
"internalType": "struct G1Point",
"name": "a",
"type": "tuple"
},
{
"components": [
{
"components": [
{
"internalType": "uint256",
"name": "real",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "imag",
"type": "uint256"
}
],
"internalType": "struct Fp2Element",
"name": "x",
"type": "tuple"
},
{
"components": [
{
"internalType": "uint256",
"name": "real",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "imag",
"type": "uint256"
}
],
"internalType": "struct Fp2Element",
"name": "y",
"type": "tuple"
}
],
"internalType": "struct G2Point",
"name": "b",
"type": "tuple"
},
{
"components": [
{
"internalType": "uint256",
"name": "x",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "y",
"type": "uint256"
}
],
"internalType": "struct G1Point",
"name": "c",
"type": "tuple"
}
],
"internalType": "struct Groth16Proof",
"name": "proof",
"type": "tuple"
}
],
"name": "fillSlot",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "SlotId",
"name": "slotId",
"type": "bytes32"
},
{
"internalType": "address",
"name": "rewardRecipient",
"type": "address"
},
{
"internalType": "address",
"name": "collateralRecipient",
"type": "address"
}
],
"name": "freeSlot",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "SlotId",
"name": "slotId",
"type": "bytes32"
}
],
"name": "freeSlot",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "SlotId",
"name": "slotId",
"type": "bytes32"
}
],
"name": "getActiveSlot",
"outputs": [
{
"components": [
{
"components": [
{
"internalType": "address",
"name": "client",
"type": "address"
},
{
"components": [
{
"internalType": "uint256",
"name": "proofProbability",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "pricePerBytePerSecond",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "collateralPerByte",
"type": "uint256"
},
{
"internalType": "uint64",
"name": "slots",
"type": "uint64"
},
{
"internalType": "uint64",
"name": "slotSize",
"type": "uint64"
},
{
"internalType": "uint64",
"name": "duration",
"type": "uint64"
},
{
"internalType": "uint64",
"name": "maxSlotLoss",
"type": "uint64"
}
],
"internalType": "struct Ask",
"name": "ask",
"type": "tuple"
},
{
"components": [
{
"internalType": "bytes",
"name": "cid",
"type": "bytes"
},
{
"internalType": "bytes32",
"name": "merkleRoot",
"type": "bytes32"
}
],
"internalType": "struct Content",
"name": "content",
"type": "tuple"
},
{
"internalType": "uint64",
"name": "expiry",
"type": "uint64"
},
{
"internalType": "bytes32",
"name": "nonce",
"type": "bytes32"
}
],
"internalType": "struct Request",
"name": "request",
"type": "tuple"
},
{
"internalType": "uint64",
"name": "slotIndex",
"type": "uint64"
}
],
"internalType": "struct Marketplace.ActiveSlot",
"name": "",
"type": "tuple"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "SlotId",
"name": "id",
"type": "bytes32"
}
],
"name": "getChallenge",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "SlotId",
"name": "slotId",
"type": "bytes32"
}
],
"name": "getHost",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "SlotId",
"name": "id",
"type": "bytes32"
}
],
"name": "getPointer",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "RequestId",
"name": "requestId",
"type": "bytes32"
}
],
"name": "getRequest",
"outputs": [
{
"components": [
{
"internalType": "address",
"name": "client",
"type": "address"
},
{
"components": [
{
"internalType": "uint256",
"name": "proofProbability",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "pricePerBytePerSecond",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "collateralPerByte",
"type": "uint256"
},
{
"internalType": "uint64",
"name": "slots",
"type": "uint64"
},
{
"internalType": "uint64",
"name": "slotSize",
"type": "uint64"
},
{
"internalType": "uint64",
"name": "duration",
"type": "uint64"
},
{
"internalType": "uint64",
"name": "maxSlotLoss",
"type": "uint64"
}
],
"internalType": "struct Ask",
"name": "ask",
"type": "tuple"
},
{
"components": [
{
"internalType": "bytes",
"name": "cid",
"type": "bytes"
},
{
"internalType": "bytes32",
"name": "merkleRoot",
"type": "bytes32"
}
],
"internalType": "struct Content",
"name": "content",
"type": "tuple"
},
{
"internalType": "uint64",
"name": "expiry",
"type": "uint64"
},
{
"internalType": "bytes32",
"name": "nonce",
"type": "bytes32"
}
],
"internalType": "struct Request",
"name": "",
"type": "tuple"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "SlotId",
"name": "id",
"type": "bytes32"
}
],
"name": "isProofRequired",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "SlotId",
"name": "slotId",
"type": "bytes32"
},
{
"internalType": "Periods.Period",
"name": "period",
"type": "uint64"
}
],
"name": "markProofAsMissing",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "SlotId",
"name": "slotId",
"type": "bytes32"
}
],
"name": "missingProofs",
"outputs": [
{
"internalType": "uint64",
"name": "",
"type": "uint64"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "myRequests",
"outputs": [
{
"internalType": "RequestId[]",
"name": "",
"type": "bytes32[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "mySlots",
"outputs": [
{
"internalType": "SlotId[]",
"name": "",
"type": "bytes32[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "RequestId",
"name": "requestId",
"type": "bytes32"
}
],
"name": "requestEnd",
"outputs": [
{
"internalType": "uint64",
"name": "",
"type": "uint64"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "RequestId",
"name": "requestId",
"type": "bytes32"
}
],
"name": "requestExpiry",
"outputs": [
{
"internalType": "uint64",
"name": "",
"type": "uint64"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "RequestId",
"name": "requestId",
"type": "bytes32"
}
],
"name": "requestState",
"outputs": [
{
"internalType": "enum RequestState",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "address",
"name": "client",
"type": "address"
},
{
"components": [
{
"internalType": "uint256",
"name": "proofProbability",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "pricePerBytePerSecond",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "collateralPerByte",
"type": "uint256"
},
{
"internalType": "uint64",
"name": "slots",
"type": "uint64"
},
{
"internalType": "uint64",
"name": "slotSize",
"type": "uint64"
},
{
"internalType": "uint64",
"name": "duration",
"type": "uint64"
},
{
"internalType": "uint64",
"name": "maxSlotLoss",
"type": "uint64"
}
],
"internalType": "struct Ask",
"name": "ask",
"type": "tuple"
},
{
"components": [
{
"internalType": "bytes",
"name": "cid",
"type": "bytes"
},
{
"internalType": "bytes32",
"name": "merkleRoot",
"type": "bytes32"
}
],
"internalType": "struct Content",
"name": "content",
"type": "tuple"
},
{
"internalType": "uint64",
"name": "expiry",
"type": "uint64"
},
{
"internalType": "bytes32",
"name": "nonce",
"type": "bytes32"
}
],
"internalType": "struct Request",
"name": "request",
"type": "tuple"
}
],
"name": "requestStorage",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "RequestId",
"name": "requestId",
"type": "bytes32"
},
{
"internalType": "uint64",
"name": "slotIndex",
"type": "uint64"
}
],
"name": "reserveSlot",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "SlotId",
"name": "slotId",
"type": "bytes32"
}
],
"name": "slotProbability",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "SlotId",
"name": "slotId",
"type": "bytes32"
}
],
"name": "slotState",
"outputs": [
{
"internalType": "enum SlotState",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "SlotId",
"name": "id",
"type": "bytes32"
},
{
"components": [
{
"components": [
{
"internalType": "uint256",
"name": "x",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "y",
"type": "uint256"
}
],
"internalType": "struct G1Point",
"name": "a",
"type": "tuple"
},
{
"components": [
{
"components": [
{
"internalType": "uint256",
"name": "real",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "imag",
"type": "uint256"
}
],
"internalType": "struct Fp2Element",
"name": "x",
"type": "tuple"
},
{
"components": [
{
"internalType": "uint256",
"name": "real",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "imag",
"type": "uint256"
}
],
"internalType": "struct Fp2Element",
"name": "y",
"type": "tuple"
}
],
"internalType": "struct G2Point",
"name": "b",
"type": "tuple"
},
{
"components": [
{
"internalType": "uint256",
"name": "x",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "y",
"type": "uint256"
}
],
"internalType": "struct G1Point",
"name": "c",
"type": "tuple"
}
],
"internalType": "struct Groth16Proof",
"name": "proof",
"type": "tuple"
}
],
"name": "submitProof",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "token",
"outputs": [
{
"internalType": "contract IERC20",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "SlotId",
"name": "id",
"type": "bytes32"
}
],
"name": "willProofBeRequired",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "RequestId",
"name": "requestId",
"type": "bytes32"
}
],
"name": "withdrawFunds",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "RequestId",
"name": "requestId",
"type": "bytes32"
},
{
"internalType": "address",
"name": "withdrawRecipient",
"type": "address"
}
],
"name": "withdrawFunds",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"transactionHash": "0x89ee66ffd30b7f5d12bdce74907e5a04d49f558c2839f3d45e23bec149e4c4e8",
"receipt": {
"to": null,
"from": "0x3A39904B71595608524274BFD8c20FCfd9e77236",
"contractAddress": "0xfFaF679D5Cbfdd5Dbc9Be61C616ed115DFb597ed",
"transactionIndex": 0,
"gasUsed": "4236077",
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"blockHash": "0x54b28674a85560238c8917fb0abb59f4ff8930401556766c355fc4b48234eb7d",
"transactionHash": "0x89ee66ffd30b7f5d12bdce74907e5a04d49f558c2839f3d45e23bec149e4c4e8",
"logs": [],
"blockNumber": 3013506,
"cumulativeGasUsed": "4236077",
"status": 1,
"byzantium": true
},
"args": [
{
"collateral": {
"repairRewardPercentage": 10,
"maxNumberOfSlashes": 2,
"slashPercentage": 20,
"validatorRewardPercentage": 20
},
"proofs": {
"period": 120,
"timeout": 30,
"downtime": 64,
"downtimeProduct": 67,
"zkeyHash": "afc470031923f60982f36932686665a55b88c4ef4ee4b7ae21e6dc6685cfae4b"
},
"reservations": {
"maxReservations": 3
},
"requestDurationLimit": 2592000
},
"0x34a22f3911De437307c6f4485931779670f78764",
"0x02dd582726F7507D7d0F8bD8bf8053d3006F9092"
],
"numDeployments": 7,
"solcInputHash": "62478d275926ca2a01e7974e918885d1",
"metadata": "{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"repairRewardPercentage\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"maxNumberOfSlashes\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"slashPercentage\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"validatorRewardPercentage\",\"type\":\"uint8\"}],\"internalType\":\"struct CollateralConfig\",\"name\":\"collateral\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"period\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"timeout\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"downtime\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"downtimeProduct\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"zkeyHash\",\"type\":\"string\"}],\"internalType\":\"struct ProofConfig\",\"name\":\"proofs\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"maxReservations\",\"type\":\"uint8\"}],\"internalType\":\"struct SlotReservationsConfig\",\"name\":\"reservations\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"requestDurationLimit\",\"type\":\"uint64\"}],\"internalType\":\"struct MarketplaceConfig\",\"name\":\"config\",\"type\":\"tuple\"},{\"internalType\":\"contract IERC20\",\"name\":\"token_\",\"type\":\"address\"},{\"internalType\":\"contract IGroth16Verifier\",\"name\":\"verifier\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"Marketplace_AlreadyPaid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Marketplace_DurationExceedsLimit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Marketplace_InsufficientCollateral\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Marketplace_InsufficientDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Marketplace_InsufficientProofProbability\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Marketplace_InsufficientReward\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Marketplace_InsufficientSlots\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Marketplace_InvalidCid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Marketplace_InvalidClientAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Marketplace_InvalidExpiry\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Marketplace_InvalidMaxSlotLoss\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Marketplace_InvalidSlot\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Marketplace_InvalidSlotHost\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Marketplace_InvalidState\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Marketplace_MaximumSlashingTooHigh\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Marketplace_NothingToWithdraw\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Marketplace_RepairRewardPercentageTooHigh\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Marketplace_RequestAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Marketplace_ReservationRequired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Marketplace_SlashPercentageTooHigh\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Marketplace_SlotIsFree\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Marketplace_SlotNotAcceptingProofs\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Marketplace_SlotNotFree\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Marketplace_StartNotBeforeExpiry\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Marketplace_TransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Marketplace_UnknownRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Periods_InvalidSecondsPerPeriod\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Proofs_InsufficientBlockHeight\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Proofs_InvalidProof\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Proofs_PeriodNotEnded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Proofs_ProofAlreadyMarkedMissing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Proofs_ProofA
"bytecode": "0x60c06040523480156200001157600080fd5b5060405162004e8438038062004e8483398101604081905262000034916200056f565b602083015180516040850151516001805460ff191660ff90921691909117905582906001600160401b038116600003620000815760405163015536c760e51b815260040160405180910390fd5b6001600160401b03166080526101004311620000b0576040516338f5f66160e11b815260040160405180910390fd5b8151600280546020850151604086015160608701516001600160401b039586166001600160801b0319909416939093176801000000000000000095909216949094021761ffff60801b1916600160801b60ff9485160260ff60881b191617600160881b939091169290920291909117815560808301518391906003906200013890826200072d565b5050600480546001600160a01b0319166001600160a01b0393841617905550831660a05250825151606460ff909116111562000187576040516302bd816360e41b815260040160405180910390fd5b606483600001516040015160ff161115620001b5576040516354e5e0ab60e11b815260040160405180910390fd5b82516040810151602090910151606491620001d091620007f9565b60ff161115620001f3576040516317ff9d0f60e21b815260040160405180910390fd5b82518051600b805460208085015160408087015160609788015160ff90811663010000000263ff0000001992821662010000029290921663ffff0000199482166101000261ffff1990971698821698909817959095179290921695909517178355808801518051600c80549383015196830151978301518516600160881b0260ff60881b1998909516600160801b029790971661ffff60801b196001600160401b0397881668010000000000000000026001600160801b031990951697909216969096179290921791909116939093171783556080820151869391929190600d90620002e090826200072d565b50505060408201515160038201805460ff191660ff909216919091179055606090910151600490910180546001600160401b0319166001600160401b03909216919091179055506200082b915050565b634e487b7160e01b600052604160045260246000fd5b60405160a081016001600160401b03811182821017156200036b576200036b62000330565b60405290565b604051608081016001600160401b03811182821017156200036b576200036b62000330565b604051601f8201601f191681016001600160401b0381118282101715620003c157620003c162000330565b604052919050565b805160ff81168114620003db57600080fd5b919050565b80516001600160401b0381168114620003db57600080fd5b600060a082840312156200040b57600080fd5b6200041562000346565b90506200042282620003e0565b8152602062000433818401620003e0565b818301526200044560408401620003c9565b60408301526200045860608401620003c9565b606083015260808301516001600160401b03808211156200047857600080fd5b818501915085601f8301126200048d57600080fd5b815181811115620004a257620004a262000330565b620004b6601f8201601f1916850162000396565b91508082528684828501011115620004cd57600080fd5b60005b81811015620004ed578381018501518382018601528401620004d0565b5060008482840101525080608085015250505092915050565b6000602082840312156200051957600080fd5b604051602081016001600160401b03811182821017156200053e576200053e62000330565b6040529050806200054f83620003c9565b905292915050565b80516001600160a01b0381168114620003db57600080fd5b6000806000606084860312156200058557600080fd5b83516001600160401b03808211156200059d57600080fd5b9085019081870360e0811215620005b357600080fd5b620005bd62000371565b6080821215620005cc57600080fd5b620005d662000371565b9150620005e384620003c9565b8252620005f360208501620003c9565b60208301526200060660408501620003c9565b60408301526200061960608501620003c9565b6060830152908152608083015190828211156200063557600080fd5b6200064389838601620003f8565b6020820152620006578960a0860162000506565b60408201526200066a60c08501620003e0565b6060820152955062000683925050506020850162000557565b9150620006936040850162000557565b90509250925092565b600181811c90821680620006b157607f821691505b602082108103620006d257634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000728576000816000526020600020601f850160051c81016020861015620007035750805b601f850160051c820191505b8181101562000724578281556001016200070f565b5050505b505050565b81516001600160401b0381111562000749576200074962000330565b62000761816200075a84546200069c565b84620006d8565b602080601f831160018114620007995760008415620007805750858301515b600019600386901b1c1916600185901b17855562000724565b600085815260208120601f198616915b82811015620007ca57888601518255948401946001909101908401620007a9565b5085821015620007e95787850151600019600388901b60f8161c191681555b5050505050600190811b019055
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101c45760003560e01c80636e2b54ee116100f9578063c0cc4add11610097578063e8aa0a0711610071578063e8aa0a0714610461578063f752196b14610474578063fb1e61ca1461049d578063fc0c546a146104bd57600080fd5b8063c0cc4add14610428578063c5d433511461043b578063d02bbe331461044e57600080fd5b8063a29c29a4116100d3578063a29c29a4146103b2578063a3a0807e146103c5578063b396dc79146103e8578063be5cdc481461040857600080fd5b80636e2b54ee146103845780639777b72c1461039757806399b6da0c1461039f57600080fd5b8063329b5a0b1161016657806351a766421161014057806351a76642146103035780635da73835146103165780636b00c8cf1461032b5780636c70bee91461036f57600080fd5b8063329b5a0b14610298578063458d2bf1146102cb5780634641dce6146102de57600080fd5b806312827602116101a2578063128276021461022e5780631d873c1b14610241578063237d84821461025457806326d6f8341461026757600080fd5b806302fa8e65146101c957806305b90773146101f95780630aefaabe14610219575b600080fd5b6101dc6101d736600461380a565b6104e3565b6040516001600160401b0390911681526020015b60405180910390f35b61020c61020736600461380a565b610573565b6040516101f09190613839565b61022c610227366004613868565b610696565b005b61022c61023c3660046138cf565b610829565b61022c61024f366004613912565b6108fa565b61022c6102623660046138cf565b610da0565b61028a61027536600461380a565b60009081526012602052604090206003015490565b6040519081526020016101f0565b6101dc6102a636600461380a565b600090815260116020526040902060020154600160c01b90046001600160401b031690565b61028a6102d936600461380a565b610fec565b6102f16102ec36600461380a565b611005565b60405160ff90911681526020016101f0565b61028a61031136600461380a565b611018565b61031e61106f565b6040516101f09190613952565b61035761033936600461380a565b6000908152601260205260409020600401546001600160a01b031690565b6040516001600160a01b0390911681526020016101f0565b610377611096565b6040516101f091906139dc565b61022c61039236600461380a565b61120d565b61031e61121a565b61022c6103ad366004613aad565b611239565b61022c6103c036600461380a565b61177f565b6103d86103d336600461380a565b6117d1565b60405190151581526020016101f0565b6103fb6103f636600461380a565b61180d565b6040516101f09190613bcb565b61041b61041636600461380a565b611aef565b6040516101f09190613c06565b6103d861043636600461380a565b611bbd565b61022c610449366004613c1a565b611bd0565b6103d861045c3660046138cf565b612051565b61022c61046f366004613c3f565b6120bd565b6101dc61048236600461380a565b6000908152600660205260409020546001600160401b031690565b6104b06104ab36600461380a565b6121ed565b6040516101f09190613c6d565b7f0000000000000000000000000000000000000000000000000000000000000000610357565b600081815260116020526040812060020154600160801b90046001600160401b03168161050f84610573565b9050600081600481111561052557610525613823565b14806105425750600181600481111561054057610540613823565b145b1561054e575092915050565b61056b6001600160401b038316610566600142613c96565b612403565b949350505050565b60008181526010602052604081205482906001600160a01b03166105aa57604051635eeb253d60e11b815260040160405180910390fd5b600083815260116020526040812090815460ff1660048111156105cf576105cf613823565b14801561060e5750600084815260116020526040902060020154600160c01b90046001600160401b03166001600160401b0316426001600160401b0316115b1561061d576002925050610690565b6001815460ff16600481111561063557610635613823565b148061065657506000815460ff16600481111561065457610654613823565b145b801561067a575060028101546001600160401b03600160801b909104811642909116115b15610689576003925050610690565b5460ff1691505b50919050565b826000808281526012602052604090205460ff1660068111156106bb576106bb613823565b036106d957604051638b41ec7f60e01b815260040160405180910390fd5b600084815260126020526040902060048101546001600160a01b0316331461072d576040517f57a6f4e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061073886611aef565b9050600481600681111561074e5761074e613823565b03610785576040517fc2cbf77700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600281600681111561079957610799613823565b036107b3576107ae826001015487878761241b565b610821565b60058160068111156107c7576107c7613823565b036107dc576107ae8260010154878787612664565b60038160068111156107f0576107f0613823565b0361
"devdoc": {
"kind": "dev",
"methods": {
"fillSlot(bytes32,uint64,((uint256,uint256),((uint256,uint256),(uint256,uint256)),(uint256,uint256)))": {
"params": {
"proof": "Groth16 proof procing possession of the slot data.",
"requestId": "RequestId identifying the request containing the slot to fill.",
"slotIndex": "Index of the slot in the request."
}
},
"freeSlot(bytes32)": {
"details": "The host that filled the slot must have initiated the transaction (msg.sender). This overload allows `rewardRecipient` and `collateralRecipient` to be optional.",
"params": {
"slotId": "id of the slot to free"
}
},
"freeSlot(bytes32,address,address)": {
"params": {
"collateralRecipient": "address to refund collateral to",
"rewardRecipient": "address to send rewards to",
"slotId": "id of the slot to free"
}
},
"getChallenge(bytes32)": {
"params": {
"id": "Slot's ID for which the challenge should be calculated"
},
"returns": {
"_0": "Challenge for current Period that should be used for generation of proofs"
}
},
"getPointer(bytes32)": {
"details": "For more information see [timing of storage proofs](https://github.com/codex-storage/codex-research/blob/41c4b4409d2092d0a5475aca0f28995034e58d14/design/storage-proof-timing.md)",
"params": {
"id": "Slot's ID for which the pointer should be calculated"
},
"returns": {
"_0": "Uint8 pointer that is stable over current Period, ie an integer offset [0-255] of the last 256 blocks, pointing to a block that remains constant for the entire Period's duration."
}
},
"isProofRequired(bytes32)": {
"params": {
"id": "Slot's ID for which the proof requirements should be checked. If the Slot's state is other than Filled, `false` is always returned."
},
"returns": {
"_0": "bool indicating if proof is required for current period"
}
},
"missingProofs(bytes32)": {
"returns": {
"_0": "Number of missed proofs since Slot was Filled"
}
},
"willProofBeRequired(bytes32)": {
"details": "for more info about downtime see [timing of storage proofs](https://github.com/codex-storage/codex-research/blob/41c4b4409d2092d0a5475aca0f28995034e58d14/design/storage-proof-timing.md#pointer-downtime)",
"params": {
"id": "SlotId for which the proof requirements should be checked. If the Slot's state is other than Filled, `false` is always returned."
},
"returns": {
"_0": "bool"
}
},
"withdrawFunds(bytes32)": {
"details": "Request must be cancelled, failed or finished, and the transaction must originate from the depositor address.",
"params": {
"requestId": "the id of the request"
}
},
"withdrawFunds(bytes32,address)": {
"details": "Request must be expired, must be in RequestState.New, and the transaction must originate from the depositer address.",
"params": {
"requestId": "the id of the request",
"withdrawRecipient": "address to return the remaining funds to"
}
}
},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {
"fillSlot(bytes32,uint64,((uint256,uint256),((uint256,uint256),(uint256,uint256)),(uint256,uint256)))": {
"notice": "Fills a slot. Reverts if an invalid proof of the slot data is provided."
},
"freeSlot(bytes32)": {
"notice": "Frees a slot, paying out rewards and returning collateral for finished or cancelled requests to the host that has filled the slot."
},
"freeSlot(bytes32,address,address)": {
"notice": "Frees a slot, paying out rewards and returning collateral for finished or cancelled requests."
},
"willProofBeRequired(bytes32)": {
"notice": "Proof Downtime specifies part of the Period when the proof is not required even if the proof should be required. This function returns true if the pointer is in downtime (hence no proof required now) and at the same time the proof will be required later on in the Period."
},
"withdrawFunds(bytes32)": {
"notice": "Withdraws remaining storage request funds back to the client that deposited them."
},
"withdrawFunds(bytes32,address)": {
"notice": "Withdraws storage request funds to the provided address."
}
},
"version": 1
},
"storageLayout": {
"storage": [
{
"astId": 6014,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_reservations",
"offset": 0,
"slot": "0",
"type": "t_mapping(t_userDefinedValueType(SlotId)5825,t_struct(AddressSet)1902_storage)"
},
{
"astId": 6017,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_config",
"offset": 0,
"slot": "1",
"type": "t_struct(SlotReservationsConfig)2228_storage"
},
{
"astId": 5249,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_config",
"offset": 0,
"slot": "2",
"type": "t_struct(ProofConfig)2225_storage"
},
{
"astId": 5252,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_verifier",
"offset": 0,
"slot": "4",
"type": "t_contract(IGroth16Verifier)2421"
},
{
"astId": 5289,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_slotStarts",
"offset": 0,
"slot": "5",
"type": "t_mapping(t_userDefinedValueType(SlotId)5825,t_uint64)"
},
{
"astId": 5294,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_missed",
"offset": 0,
"slot": "6",
"type": "t_mapping(t_userDefinedValueType(SlotId)5825,t_uint64)"
},
{
"astId": 5302,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_received",
"offset": 0,
"slot": "7",
"type": "t_mapping(t_userDefinedValueType(SlotId)5825,t_mapping(t_userDefinedValueType(Period)5079,t_bool))"
},
{
"astId": 5310,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_missing",
"offset": 0,
"slot": "8",
"type": "t_mapping(t_userDefinedValueType(SlotId)5825,t_mapping(t_userDefinedValueType(Period)5079,t_bool))"
},
{
"astId": 6159,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_requestsPerClient",
"offset": 0,
"slot": "9",
"type": "t_mapping(t_address,t_struct(Bytes32Set)1781_storage)"
},
{
"astId": 6164,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_slotsPerHost",
"offset": 0,
"slot": "10",
"type": "t_mapping(t_address,t_struct(Bytes32Set)1781_storage)"
},
{
"astId": 3104,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_config",
"offset": 0,
"slot": "11",
"type": "t_struct(MarketplaceConfig)2204_storage"
},
{
"astId": 3110,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_requests",
"offset": 0,
"slot": "16",
"type": "t_mapping(t_userDefinedValueType(RequestId)5823,t_struct(Request)5838_storage)"
},
{
"astId": 3116,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_requestContexts",
"offset": 0,
"slot": "17",
"type": "t_mapping(t_userDefinedValueType(RequestId)5823,t_struct(RequestContext)3140_storage)"
},
{
"astId": 3122,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_slots",
"offset": 0,
"slot": "18",
"type": "t_mapping(t_userDefinedValueType(SlotId)5825,t_struct(Slot)3158_storage)"
},
{
"astId": 3125,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_marketplaceTotals",
"offset": 0,
"slot": "19",
"type": "t_struct(MarketplaceTotals)5072_storage"
}
],
"types": {
"t_address": {
"encoding": "inplace",
"label": "address",
"numberOfBytes": "20"
},
"t_array(t_bytes32)dyn_storage": {
"base": "t_bytes32",
"encoding": "dynamic_array",
"label": "bytes32[]",
"numberOfBytes": "32"
},
"t_bool": {
"encoding": "inplace",
"label": "bool",
"numberOfBytes": "1"
},
"t_bytes32": {
"encoding": "inplace",
"label": "bytes32",
"numberOfBytes": "32"
},
"t_bytes_storage": {
"encoding": "bytes",
"label": "bytes",
"numberOfBytes": "32"
},
"t_contract(IGroth16Verifier)2421": {
"encoding": "inplace",
"label": "contract IGroth16Verifier",
"numberOfBytes": "20"
},
"t_enum(RequestState)5864": {
"encoding": "inplace",
"label": "enum RequestState",
"numberOfBytes": "1"
},
"t_enum(SlotState)5872": {
"encoding": "inplace",
"label": "enum SlotState",
"numberOfBytes": "1"
},
"t_mapping(t_address,t_struct(Bytes32Set)1781_storage)": {
"encoding": "mapping",
"key": "t_address",
"label": "mapping(address => struct EnumerableSet.Bytes32Set)",
"numberOfBytes": "32",
"value": "t_struct(Bytes32Set)1781_storage"
},
"t_mapping(t_bytes32,t_uint256)": {
"encoding": "mapping",
"key": "t_bytes32",
"label": "mapping(bytes32 => uint256)",
"numberOfBytes": "32",
"value": "t_uint256"
},
"t_mapping(t_userDefinedValueType(Period)5079,t_bool)": {
"encoding": "mapping",
"key": "t_userDefinedValueType(Period)5079",
"label": "mapping(Periods.Period => bool)",
"numberOfBytes": "32",
"value": "t_bool"
},
"t_mapping(t_userDefinedValueType(RequestId)5823,t_struct(Request)5838_storage)": {
"encoding": "mapping",
"key": "t_userDefinedValueType(RequestId)5823",
"label": "mapping(RequestId => struct Request)",
"numberOfBytes": "32",
"value": "t_struct(Request)5838_storage"
},
"t_mapping(t_userDefinedValueType(RequestId)5823,t_struct(RequestContext)3140_storage)": {
"encoding": "mapping",
"key": "t_userDefinedValueType(RequestId)5823",
"label": "mapping(RequestId => struct Marketplace.RequestContext)",
"numberOfBytes": "32",
"value": "t_struct(RequestContext)3140_storage"
},
"t_mapping(t_userDefinedValueType(SlotId)5825,t_mapping(t_userDefinedValueType(Period)5079,t_bool))": {
"encoding": "mapping",
"key": "t_userDefinedValueType(SlotId)5825",
"label": "mapping(SlotId => mapping(Periods.Period => bool))",
"numberOfBytes": "32",
"value": "t_mapping(t_userDefinedValueType(Period)5079,t_bool)"
},
"t_mapping(t_userDefinedValueType(SlotId)5825,t_struct(AddressSet)1902_storage)": {
"encoding": "mapping",
"key": "t_userDefinedValueType(SlotId)5825",
"label": "mapping(SlotId => struct EnumerableSet.AddressSet)",
"numberOfBytes": "32",
"value": "t_struct(AddressSet)1902_storage"
},
"t_mapping(t_userDefinedValueType(SlotId)5825,t_struct(Slot)3158_storage)": {
"encoding": "mapping",
"key": "t_userDefinedValueType(SlotId)5825",
"label": "mapping(SlotId => struct Marketplace.Slot)",
"numberOfBytes": "32",
"value": "t_struct(Slot)3158_storage"
},
"t_mapping(t_userDefinedValueType(SlotId)5825,t_uint64)": {
"encoding": "mapping",
"key": "t_userDefinedValueType(SlotId)5825",
"label": "mapping(SlotId => uint64)",
"numberOfBytes": "32",
"value": "t_uint64"
},
"t_string_storage": {
"encoding": "bytes",
"label": "string",
"numberOfBytes": "32"
},
"t_struct(AddressSet)1902_storage": {
"encoding": "inplace",
"label": "struct EnumerableSet.AddressSet",
"members": [
{
"astId": 1901,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_inner",
"offset": 0,
"slot": "0",
"type": "t_struct(Set)1587_storage"
}
],
"numberOfBytes": "64"
},
"t_struct(Ask)5853_storage": {
"encoding": "inplace",
"label": "struct Ask",
"members": [
{
"astId": 5840,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "proofProbability",
"offset": 0,
"slot": "0",
"type": "t_uint256"
},
{
"astId": 5842,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "pricePerBytePerSecond",
"offset": 0,
"slot": "1",
"type": "t_uint256"
},
{
"astId": 5844,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "collateralPerByte",
"offset": 0,
"slot": "2",
"type": "t_uint256"
},
{
"astId": 5846,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "slots",
"offset": 0,
"slot": "3",
"type": "t_uint64"
},
{
"astId": 5848,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "slotSize",
"offset": 8,
"slot": "3",
"type": "t_uint64"
},
{
"astId": 5850,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "duration",
"offset": 16,
"slot": "3",
"type": "t_uint64"
},
{
"astId": 5852,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "maxSlotLoss",
"offset": 24,
"slot": "3",
"type": "t_uint64"
}
],
"numberOfBytes": "128"
},
"t_struct(Bytes32Set)1781_storage": {
"encoding": "inplace",
"label": "struct EnumerableSet.Bytes32Set",
"members": [
{
"astId": 1780,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_inner",
"offset": 0,
"slot": "0",
"type": "t_struct(Set)1587_storage"
}
],
"numberOfBytes": "64"
},
"t_struct(CollateralConfig)2214_storage": {
"encoding": "inplace",
"label": "struct CollateralConfig",
"members": [
{
"astId": 2207,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "repairRewardPercentage",
"offset": 0,
"slot": "0",
"type": "t_uint8"
},
{
"astId": 2209,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "maxNumberOfSlashes",
"offset": 1,
"slot": "0",
"type": "t_uint8"
},
{
"astId": 2211,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "slashPercentage",
"offset": 2,
"slot": "0",
"type": "t_uint8"
},
{
"astId": 2213,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "validatorRewardPercentage",
"offset": 3,
"slot": "0",
"type": "t_uint8"
}
],
"numberOfBytes": "32"
},
"t_struct(Content)5858_storage": {
"encoding": "inplace",
"label": "struct Content",
"members": [
{
"astId": 5855,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "cid",
"offset": 0,
"slot": "0",
"type": "t_bytes_storage"
},
{
"astId": 5857,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "merkleRoot",
"offset": 0,
"slot": "1",
"type": "t_bytes32"
}
],
"numberOfBytes": "64"
},
"t_struct(MarketplaceConfig)2204_storage": {
"encoding": "inplace",
"label": "struct MarketplaceConfig",
"members": [
{
"astId": 2195,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "collateral",
"offset": 0,
"slot": "0",
"type": "t_struct(CollateralConfig)2214_storage"
},
{
"astId": 2198,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "proofs",
"offset": 0,
"slot": "1",
"type": "t_struct(ProofConfig)2225_storage"
},
{
"astId": 2201,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "reservations",
"offset": 0,
"slot": "3",
"type": "t_struct(SlotReservationsConfig)2228_storage"
},
{
"astId": 2203,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "requestDurationLimit",
"offset": 0,
"slot": "4",
"type": "t_uint64"
}
],
"numberOfBytes": "160"
},
"t_struct(MarketplaceTotals)5072_storage": {
"encoding": "inplace",
"label": "struct Marketplace.MarketplaceTotals",
"members": [
{
"astId": 5069,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "received",
"offset": 0,
"slot": "0",
"type": "t_uint256"
},
{
"astId": 5071,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "sent",
"offset": 0,
"slot": "1",
"type": "t_uint256"
}
],
"numberOfBytes": "64"
},
"t_struct(ProofConfig)2225_storage": {
"encoding": "inplace",
"label": "struct ProofConfig",
"members": [
{
"astId": 2216,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "period",
"offset": 0,
"slot": "0",
"type": "t_uint64"
},
{
"astId": 2218,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "timeout",
"offset": 8,
"slot": "0",
"type": "t_uint64"
},
{
"astId": 2220,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "downtime",
"offset": 16,
"slot": "0",
"type": "t_uint8"
},
{
"astId": 2222,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "downtimeProduct",
"offset": 17,
"slot": "0",
"type": "t_uint8"
},
{
"astId": 2224,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "zkeyHash",
"offset": 0,
"slot": "1",
"type": "t_string_storage"
}
],
"numberOfBytes": "64"
},
"t_struct(Request)5838_storage": {
"encoding": "inplace",
"label": "struct Request",
"members": [
{
"astId": 5827,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "client",
"offset": 0,
"slot": "0",
"type": "t_address"
},
{
"astId": 5830,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "ask",
"offset": 0,
"slot": "1",
"type": "t_struct(Ask)5853_storage"
},
{
"astId": 5833,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "content",
"offset": 0,
"slot": "5",
"type": "t_struct(Content)5858_storage"
},
{
"astId": 5835,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "expiry",
"offset": 0,
"slot": "7",
"type": "t_uint64"
},
{
"astId": 5837,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "nonce",
"offset": 0,
"slot": "8",
"type": "t_bytes32"
}
],
"numberOfBytes": "288"
},
"t_struct(RequestContext)3140_storage": {
"encoding": "inplace",
"label": "struct Marketplace.RequestContext",
"members": [
{
"astId": 3128,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "state",
"offset": 0,
"slot": "0",
"type": "t_enum(RequestState)5864"
},
{
"astId": 3131,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "fundsToReturnToClient",
"offset": 0,
"slot": "1",
"type": "t_uint256"
},
{
"astId": 3133,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "slotsFilled",
"offset": 0,
"slot": "2",
"type": "t_uint64"
},
{
"astId": 3135,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "startedAt",
"offset": 8,
"slot": "2",
"type": "t_uint64"
},
{
"astId": 3137,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "endsAt",
"offset": 16,
"slot": "2",
"type": "t_uint64"
},
{
"astId": 3139,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "expiresAt",
"offset": 24,
"slot": "2",
"type": "t_uint64"
}
],
"numberOfBytes": "96"
},
"t_struct(Set)1587_storage": {
"encoding": "inplace",
"label": "struct EnumerableSet.Set",
"members": [
{
"astId": 1582,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_values",
"offset": 0,
"slot": "0",
"type": "t_array(t_bytes32)dyn_storage"
},
{
"astId": 1586,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_indexes",
"offset": 0,
"slot": "1",
"type": "t_mapping(t_bytes32,t_uint256)"
}
],
"numberOfBytes": "64"
},
"t_struct(Slot)3158_storage": {
"encoding": "inplace",
"label": "struct Marketplace.Slot",
"members": [
{
"astId": 3143,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "state",
"offset": 0,
"slot": "0",
"type": "t_enum(SlotState)5872"
},
{
"astId": 3146,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "requestId",
"offset": 0,
"slot": "1",
"type": "t_userDefinedValueType(RequestId)5823"
},
{
"astId": 3149,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "filledAt",
"offset": 0,
"slot": "2",
"type": "t_uint64"
},
{
"astId": 3151,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "slotIndex",
"offset": 8,
"slot": "2",
"type": "t_uint64"
},
{
"astId": 3154,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "currentCollateral",
"offset": 0,
"slot": "3",
"type": "t_uint256"
},
{
"astId": 3157,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "host",
"offset": 0,
"slot": "4",
"type": "t_address"
}
],
"numberOfBytes": "160"
},
"t_struct(SlotReservationsConfig)2228_storage": {
"encoding": "inplace",
"label": "struct SlotReservationsConfig",
"members": [
{
"astId": 2227,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "maxReservations",
"offset": 0,
"slot": "0",
"type": "t_uint8"
}
],
"numberOfBytes": "32"
},
"t_uint256": {
"encoding": "inplace",
"label": "uint256",
"numberOfBytes": "32"
},
"t_uint64": {
"encoding": "inplace",
"label": "uint64",
"numberOfBytes": "8"
},
"t_uint8": {
"encoding": "inplace",
"label": "uint8",
"numberOfBytes": "1"
},
"t_userDefinedValueType(Period)5079": {
"encoding": "inplace",
"label": "Periods.Period",
"numberOfBytes": "8"
},
"t_userDefinedValueType(RequestId)5823": {
"encoding": "inplace",
"label": "RequestId",
"numberOfBytes": "32"
},
"t_userDefinedValueType(SlotId)5825": {
"encoding": "inplace",
"label": "SlotId",
"numberOfBytes": "32"
}
}
}
}