2301 lines
328 KiB
JSON
Raw Normal View History

{
"address": "0x7c7a749DE7156305E55775e7Ab3931abd6f7300E",
"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_ProofNotSubmittedByHost",
"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": "0x57d3c1a6d5e61801b7942f148188de6170dc2e2f7aec3dc480b195d46f394540",
"receipt": {
"to": null,
"from": "0x3A39904B71595608524274BFD8c20FCfd9e77236",
"contractAddress": "0x7c7a749DE7156305E55775e7Ab3931abd6f7300E",
"transactionIndex": 0,
"gasUsed": "4297737",
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"blockHash": "0x75f4aeb01fdc63982d2958715ca366d12f703c215d0897f63be691d1a60cfdb2",
"transactionHash": "0x57d3c1a6d5e61801b7942f148188de6170dc2e2f7aec3dc480b195d46f394540",
"logs": [],
"blockNumber": 3825708,
"cumulativeGasUsed": "4297737",
"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",
"0x1f60B2329775545AaeF743dbC3571e699405263e"
],
"numDeployments": 9,
"solcInputHash": "063703ecb615b883c30155e6265b09d5",
"metadata": "{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"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_ProofNotSubmittedByHost\",\"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_Pro
"bytecode": "0x60c060405234801561001057600080fd5b50604051614f41380380614f4183398101604081905261002f9161053b565b602083015180516040850151516001805460ff191660ff90921691909117905582906001600160401b03811660000361007b5760405163015536c760e51b815260040160405180910390fd5b6001600160401b031660805261010043116100a9576040516338f5f66160e11b815260040160405180910390fd5b8151600280546020850151604086015160608701516001600160401b039586166001600160801b0319909416939093176801000000000000000095909216949094021761ffff60801b1916600160801b60ff9485160260ff60881b191617600160881b9390911692909202919091178155608083015183919060039061012f90826106d9565b5050600480546001600160a01b0319166001600160a01b0393841617905550831660a05250825151606460ff909116111561017d576040516302bd816360e41b815260040160405180910390fd5b606483600001516040015160ff1611156101aa576040516354e5e0ab60e11b815260040160405180910390fd5b825160408101516020909101516064916101c391610797565b60ff1611156101e5576040516317ff9d0f60e21b815260040160405180910390fd5b82518051600b805460208085015160408087015160609788015160ff90811663010000000263ff0000001992821662010000029290921663ffff0000199482166101000261ffff1990971698821698909817959095179290921695909517178355808801518051600c80549383015196830151978301518516600160881b0260ff60881b1998909516600160801b029790971661ffff60801b196001600160401b0397881668010000000000000000026001600160801b031990951697909216969096179290921791909116939093171783556080820151869391929190600d906102d090826106d9565b50505060408201515160038201805460ff191660ff909216919091179055606090910151600490910180546001600160401b0319166001600160401b03909216919091179055506107c8915050565b634e487b7160e01b600052604160045260246000fd5b60405160a081016001600160401b03811182821017156103575761035761031f565b60405290565b604051608081016001600160401b03811182821017156103575761035761031f565b604051601f8201601f191681016001600160401b03811182821017156103a7576103a761031f565b604052919050565b805160ff811681146103c057600080fd5b919050565b80516001600160401b03811681146103c057600080fd5b600060a082840312156103ee57600080fd5b6103f6610335565b9050610401826103c5565b815261040f602083016103c5565b6020820152610420604083016103af565b6040820152610431606083016103af565b606082015260808201516001600160401b0381111561044f57600080fd5b8201601f8101841361046057600080fd5b80516001600160401b038111156104795761047961031f565b61048c601f8201601f191660200161037f565b8181528560208385010111156104a157600080fd5b60005b828110156104c0576020818501810151838301820152016104a4565b5060006020838301015280608085015250505092915050565b6000602082840312156104eb57600080fd5b604051602081016001600160401b038111828210171561050d5761050d61031f565b60405290508061051c836103af565b905292915050565b80516001600160a01b03811681146103c057600080fd5b60008060006060848603121561055057600080fd5b83516001600160401b0381111561056657600080fd5b840180860360e081121561057957600080fd5b61058161035d565b608082121561058f57600080fd5b61059761035d565b91506105a2836103af565b82526105b0602084016103af565b60208301526105c1604084016103af565b60408301526105d2606084016103af565b60608301529081526080820151906001600160401b038211156105f457600080fd5b610600888385016103dc565b60208201526106128860a085016104d9565b604082015261062360c084016103c5565b6060820152945061063991505060208501610524565b915061064760408501610524565b90509250925092565b600181811c9082168061066457607f821691505b60208210810361068457634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156106d457806000526020600020601f840160051c810160208510156106b15750805b601f840160051c820191505b818110156106d157600081556001016106bd565b50505b505050565b81516001600160401b038111156106f2576106f261031f565b610706816107008454610650565b8461068a565b6020601f82116001811461073a57600083156107225750848201515b600019600385901b1c1916600184901b1784556106d1565b600084815260208120601f198516915b8281101561076a578785015182556020948501946001909201910161074a565b50848210156107885786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b60ff81811683821602908116908181146107c157634e487b7160e01b600052601160045260246000fd5b5092915050565b60805160a05161471c610825600039600081816104bf01528181610f700152818161201901528181612603015281
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101c45760003560e01c80636e2b54ee116100f9578063c0cc4add11610097578063e8aa0a0711610071578063e8aa0a0714610461578063f752196b14610474578063fb1e61ca1461049d578063fc0c546a146104bd57600080fd5b8063c0cc4add14610428578063c5d433511461043b578063d02bbe331461044e57600080fd5b8063a29c29a4116100d3578063a29c29a4146103b2578063a3a0807e146103c5578063b396dc79146103e8578063be5cdc481461040857600080fd5b80636e2b54ee146103845780639777b72c1461039757806399b6da0c1461039f57600080fd5b8063329b5a0b1161016657806351a766421161014057806351a76642146103035780635da73835146103165780636b00c8cf1461032b5780636c70bee91461036f57600080fd5b8063329b5a0b14610298578063458d2bf1146102cb5780634641dce6146102de57600080fd5b806312827602116101a2578063128276021461022e5780631d873c1b14610241578063237d84821461025457806326d6f8341461026757600080fd5b806302fa8e65146101c957806305b90773146101f95780630aefaabe14610219575b600080fd5b6101dc6101d73660046138ea565b6104e3565b6040516001600160401b0390911681526020015b60405180910390f35b61020c6102073660046138ea565b6105c1565b6040516101f09190613919565b61022c610227366004613948565b6106e4565b005b61022c61023c3660046139af565b610877565b61022c61024f3660046139f2565b610948565b61022c6102623660046139af565b610dfa565b61028a6102753660046138ea565b60009081526012602052604090206003015490565b6040519081526020016101f0565b6101dc6102a63660046138ea565b600090815260116020526040902060020154600160c01b90046001600160401b031690565b61028a6102d93660046138ea565b611046565b6102f16102ec3660046138ea565b61105f565b60405160ff90911681526020016101f0565b61028a6103113660046138ea565b611072565b61031e6110d1565b6040516101f09190613a32565b6103576103393660046138ea565b6000908152601260205260409020600401546001600160a01b031690565b6040516001600160a01b0390911681526020016101f0565b6103776110f8565b6040516101f09190613b10565b61022c6103923660046138ea565b61126f565b61031e61127c565b61022c6103ad366004613b98565b61129b565b61022c6103c03660046138ea565b6117e1565b6103d86103d33660046138ea565b611833565b60405190151581526020016101f0565b6103fb6103f63660046138ea565b61186f565b6040516101f09190613cc7565b61041b6104163660046138ea565b611b51565b6040516101f09190613d02565b6103d86104363660046138ea565b611c1f565b61022c610449366004613d16565b611c32565b6103d861045c3660046139af565b6120b3565b61022c61046f366004613d3b565b612155565b6101dc6104823660046138ea565b6000908152600660205260409020546001600160401b031690565b6104b06104ab3660046138ea565b6122ce565b6040516101f09190613d69565b7f0000000000000000000000000000000000000000000000000000000000000000610357565b6000806104ef836105c1565b9050600081600481111561050557610505613903565b14806105225750600181600481111561052057610520613903565b145b1561054e575050600090815260116020526040902060020154600160801b90046001600160401b031690565b600281600481111561056257610562613903565b0361058e575050600090815260116020526040902060020154600160c01b90046001600160401b031690565b6000838152601160205260409020600201546105ba90600160801b90046001600160401b0316426124e4565b9392505050565b60008181526010602052604081205482906001600160a01b03166105f857604051635eeb253d60e11b815260040160405180910390fd5b600083815260116020526040812090815460ff16600481111561061d5761061d613903565b14801561065c5750600084815260116020526040902060020154600160c01b90046001600160401b03166001600160401b0316426001600160401b0316115b1561066b5760029250506106de565b6001815460ff16600481111561068357610683613903565b14806106a457506000815460ff1660048111156106a2576106a2613903565b145b80156106c8575060028101546001600160401b03600160801b909104811642909116115b156106d75760039250506106de565b5460ff1691505b50919050565b826000808281526012602052604090205460ff16600681111561070957610709613903565b0361072757604051638b41ec7f60e01b815260040160405180910390fd5b600084815260126020526040902060048101546001600160a01b0316331461077b576040517f57a6f4e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061078686611b51565b9050600481600681111561079c5761079c613903565b036107d3576040517fc2cbf77700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60028160068111156107e7576107e7613903565b03610801576107fc826001
"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": 10735,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_reservations",
"offset": 0,
"slot": "0",
"type": "t_mapping(t_userDefinedValueType(SlotId)10546,t_struct(AddressSet)6593_storage)"
},
{
"astId": 10738,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_config",
"offset": 0,
"slot": "1",
"type": "t_struct(SlotReservationsConfig)6945_storage"
},
{
"astId": 9970,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_config",
"offset": 0,
"slot": "2",
"type": "t_struct(ProofConfig)6942_storage"
},
{
"astId": 9973,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_verifier",
"offset": 0,
"slot": "4",
"type": "t_contract(IGroth16Verifier)7138"
},
{
"astId": 10010,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_slotStarts",
"offset": 0,
"slot": "5",
"type": "t_mapping(t_userDefinedValueType(SlotId)10546,t_uint64)"
},
{
"astId": 10015,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_missed",
"offset": 0,
"slot": "6",
"type": "t_mapping(t_userDefinedValueType(SlotId)10546,t_uint64)"
},
{
"astId": 10023,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_received",
"offset": 0,
"slot": "7",
"type": "t_mapping(t_userDefinedValueType(SlotId)10546,t_mapping(t_userDefinedValueType(Period)9800,t_bool))"
},
{
"astId": 10031,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_missing",
"offset": 0,
"slot": "8",
"type": "t_mapping(t_userDefinedValueType(SlotId)10546,t_mapping(t_userDefinedValueType(Period)9800,t_bool))"
},
{
"astId": 10895,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_requestsPerClient",
"offset": 0,
"slot": "9",
"type": "t_mapping(t_address,t_struct(Bytes32Set)6459_storage)"
},
{
"astId": 10900,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_slotsPerHost",
"offset": 0,
"slot": "10",
"type": "t_mapping(t_address,t_struct(Bytes32Set)6459_storage)"
},
{
"astId": 7823,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_config",
"offset": 0,
"slot": "11",
"type": "t_struct(MarketplaceConfig)6921_storage"
},
{
"astId": 7829,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_requests",
"offset": 0,
"slot": "16",
"type": "t_mapping(t_userDefinedValueType(RequestId)10544,t_struct(Request)10559_storage)"
},
{
"astId": 7835,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_requestContexts",
"offset": 0,
"slot": "17",
"type": "t_mapping(t_userDefinedValueType(RequestId)10544,t_struct(RequestContext)7859_storage)"
},
{
"astId": 7841,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_slots",
"offset": 0,
"slot": "18",
"type": "t_mapping(t_userDefinedValueType(SlotId)10546,t_struct(Slot)7877_storage)"
},
{
"astId": 7844,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_marketplaceTotals",
"offset": 0,
"slot": "19",
"type": "t_struct(MarketplaceTotals)9793_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)7138": {
"encoding": "inplace",
"label": "contract IGroth16Verifier",
"numberOfBytes": "20"
},
"t_enum(RequestState)10585": {
"encoding": "inplace",
"label": "enum RequestState",
"numberOfBytes": "1"
},
"t_enum(SlotState)10593": {
"encoding": "inplace",
"label": "enum SlotState",
"numberOfBytes": "1"
},
"t_mapping(t_address,t_struct(Bytes32Set)6459_storage)": {
"encoding": "mapping",
"key": "t_address",
"label": "mapping(address => struct EnumerableSet.Bytes32Set)",
"numberOfBytes": "32",
"value": "t_struct(Bytes32Set)6459_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)9800,t_bool)": {
"encoding": "mapping",
"key": "t_userDefinedValueType(Period)9800",
"label": "mapping(Periods.Period => bool)",
"numberOfBytes": "32",
"value": "t_bool"
},
"t_mapping(t_userDefinedValueType(RequestId)10544,t_struct(Request)10559_storage)": {
"encoding": "mapping",
"key": "t_userDefinedValueType(RequestId)10544",
"label": "mapping(RequestId => struct Request)",
"numberOfBytes": "32",
"value": "t_struct(Request)10559_storage"
},
"t_mapping(t_userDefinedValueType(RequestId)10544,t_struct(RequestContext)7859_storage)": {
"encoding": "mapping",
"key": "t_userDefinedValueType(RequestId)10544",
"label": "mapping(RequestId => struct Marketplace.RequestContext)",
"numberOfBytes": "32",
"value": "t_struct(RequestContext)7859_storage"
},
"t_mapping(t_userDefinedValueType(SlotId)10546,t_mapping(t_userDefinedValueType(Period)9800,t_bool))": {
"encoding": "mapping",
"key": "t_userDefinedValueType(SlotId)10546",
"label": "mapping(SlotId => mapping(Periods.Period => bool))",
"numberOfBytes": "32",
"value": "t_mapping(t_userDefinedValueType(Period)9800,t_bool)"
},
"t_mapping(t_userDefinedValueType(SlotId)10546,t_struct(AddressSet)6593_storage)": {
"encoding": "mapping",
"key": "t_userDefinedValueType(SlotId)10546",
"label": "mapping(SlotId => struct EnumerableSet.AddressSet)",
"numberOfBytes": "32",
"value": "t_struct(AddressSet)6593_storage"
},
"t_mapping(t_userDefinedValueType(SlotId)10546,t_struct(Slot)7877_storage)": {
"encoding": "mapping",
"key": "t_userDefinedValueType(SlotId)10546",
"label": "mapping(SlotId => struct Marketplace.Slot)",
"numberOfBytes": "32",
"value": "t_struct(Slot)7877_storage"
},
"t_mapping(t_userDefinedValueType(SlotId)10546,t_uint64)": {
"encoding": "mapping",
"key": "t_userDefinedValueType(SlotId)10546",
"label": "mapping(SlotId => uint64)",
"numberOfBytes": "32",
"value": "t_uint64"
},
"t_string_storage": {
"encoding": "bytes",
"label": "string",
"numberOfBytes": "32"
},
"t_struct(AddressSet)6593_storage": {
"encoding": "inplace",
"label": "struct EnumerableSet.AddressSet",
"members": [
{
"astId": 6592,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_inner",
"offset": 0,
"slot": "0",
"type": "t_struct(Set)6222_storage"
}
],
"numberOfBytes": "64"
},
"t_struct(Ask)10574_storage": {
"encoding": "inplace",
"label": "struct Ask",
"members": [
{
"astId": 10561,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "proofProbability",
"offset": 0,
"slot": "0",
"type": "t_uint256"
},
{
"astId": 10563,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "pricePerBytePerSecond",
"offset": 0,
"slot": "1",
"type": "t_uint256"
},
{
"astId": 10565,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "collateralPerByte",
"offset": 0,
"slot": "2",
"type": "t_uint256"
},
{
"astId": 10567,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "slots",
"offset": 0,
"slot": "3",
"type": "t_uint64"
},
{
"astId": 10569,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "slotSize",
"offset": 8,
"slot": "3",
"type": "t_uint64"
},
{
"astId": 10571,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "duration",
"offset": 16,
"slot": "3",
"type": "t_uint64"
},
{
"astId": 10573,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "maxSlotLoss",
"offset": 24,
"slot": "3",
"type": "t_uint64"
}
],
"numberOfBytes": "128"
},
"t_struct(Bytes32Set)6459_storage": {
"encoding": "inplace",
"label": "struct EnumerableSet.Bytes32Set",
"members": [
{
"astId": 6458,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_inner",
"offset": 0,
"slot": "0",
"type": "t_struct(Set)6222_storage"
}
],
"numberOfBytes": "64"
},
"t_struct(CollateralConfig)6931_storage": {
"encoding": "inplace",
"label": "struct CollateralConfig",
"members": [
{
"astId": 6924,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "repairRewardPercentage",
"offset": 0,
"slot": "0",
"type": "t_uint8"
},
{
"astId": 6926,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "maxNumberOfSlashes",
"offset": 1,
"slot": "0",
"type": "t_uint8"
},
{
"astId": 6928,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "slashPercentage",
"offset": 2,
"slot": "0",
"type": "t_uint8"
},
{
"astId": 6930,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "validatorRewardPercentage",
"offset": 3,
"slot": "0",
"type": "t_uint8"
}
],
"numberOfBytes": "32"
},
"t_struct(Content)10579_storage": {
"encoding": "inplace",
"label": "struct Content",
"members": [
{
"astId": 10576,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "cid",
"offset": 0,
"slot": "0",
"type": "t_bytes_storage"
},
{
"astId": 10578,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "merkleRoot",
"offset": 0,
"slot": "1",
"type": "t_bytes32"
}
],
"numberOfBytes": "64"
},
"t_struct(MarketplaceConfig)6921_storage": {
"encoding": "inplace",
"label": "struct MarketplaceConfig",
"members": [
{
"astId": 6912,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "collateral",
"offset": 0,
"slot": "0",
"type": "t_struct(CollateralConfig)6931_storage"
},
{
"astId": 6915,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "proofs",
"offset": 0,
"slot": "1",
"type": "t_struct(ProofConfig)6942_storage"
},
{
"astId": 6918,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "reservations",
"offset": 0,
"slot": "3",
"type": "t_struct(SlotReservationsConfig)6945_storage"
},
{
"astId": 6920,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "requestDurationLimit",
"offset": 0,
"slot": "4",
"type": "t_uint64"
}
],
"numberOfBytes": "160"
},
"t_struct(MarketplaceTotals)9793_storage": {
"encoding": "inplace",
"label": "struct Marketplace.MarketplaceTotals",
"members": [
{
"astId": 9790,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "received",
"offset": 0,
"slot": "0",
"type": "t_uint256"
},
{
"astId": 9792,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "sent",
"offset": 0,
"slot": "1",
"type": "t_uint256"
}
],
"numberOfBytes": "64"
},
"t_struct(ProofConfig)6942_storage": {
"encoding": "inplace",
"label": "struct ProofConfig",
"members": [
{
"astId": 6933,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "period",
"offset": 0,
"slot": "0",
"type": "t_uint64"
},
{
"astId": 6935,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "timeout",
"offset": 8,
"slot": "0",
"type": "t_uint64"
},
{
"astId": 6937,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "downtime",
"offset": 16,
"slot": "0",
"type": "t_uint8"
},
{
"astId": 6939,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "downtimeProduct",
"offset": 17,
"slot": "0",
"type": "t_uint8"
},
{
"astId": 6941,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "zkeyHash",
"offset": 0,
"slot": "1",
"type": "t_string_storage"
}
],
"numberOfBytes": "64"
},
"t_struct(Request)10559_storage": {
"encoding": "inplace",
"label": "struct Request",
"members": [
{
"astId": 10548,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "client",
"offset": 0,
"slot": "0",
"type": "t_address"
},
{
"astId": 10551,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "ask",
"offset": 0,
"slot": "1",
"type": "t_struct(Ask)10574_storage"
},
{
"astId": 10554,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "content",
"offset": 0,
"slot": "5",
"type": "t_struct(Content)10579_storage"
},
{
"astId": 10556,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "expiry",
"offset": 0,
"slot": "7",
"type": "t_uint64"
},
{
"astId": 10558,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "nonce",
"offset": 0,
"slot": "8",
"type": "t_bytes32"
}
],
"numberOfBytes": "288"
},
"t_struct(RequestContext)7859_storage": {
"encoding": "inplace",
"label": "struct Marketplace.RequestContext",
"members": [
{
"astId": 7847,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "state",
"offset": 0,
"slot": "0",
"type": "t_enum(RequestState)10585"
},
{
"astId": 7850,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "fundsToReturnToClient",
"offset": 0,
"slot": "1",
"type": "t_uint256"
},
{
"astId": 7852,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "slotsFilled",
"offset": 0,
"slot": "2",
"type": "t_uint64"
},
{
"astId": 7854,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "startedAt",
"offset": 8,
"slot": "2",
"type": "t_uint64"
},
{
"astId": 7856,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "endsAt",
"offset": 16,
"slot": "2",
"type": "t_uint64"
},
{
"astId": 7858,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "expiresAt",
"offset": 24,
"slot": "2",
"type": "t_uint64"
}
],
"numberOfBytes": "96"
},
"t_struct(Set)6222_storage": {
"encoding": "inplace",
"label": "struct EnumerableSet.Set",
"members": [
{
"astId": 6217,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_values",
"offset": 0,
"slot": "0",
"type": "t_array(t_bytes32)dyn_storage"
},
{
"astId": 6221,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_positions",
"offset": 0,
"slot": "1",
"type": "t_mapping(t_bytes32,t_uint256)"
}
],
"numberOfBytes": "64"
},
"t_struct(Slot)7877_storage": {
"encoding": "inplace",
"label": "struct Marketplace.Slot",
"members": [
{
"astId": 7862,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "state",
"offset": 0,
"slot": "0",
"type": "t_enum(SlotState)10593"
},
{
"astId": 7865,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "requestId",
"offset": 0,
"slot": "1",
"type": "t_userDefinedValueType(RequestId)10544"
},
{
"astId": 7868,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "filledAt",
"offset": 0,
"slot": "2",
"type": "t_uint64"
},
{
"astId": 7870,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "slotIndex",
"offset": 8,
"slot": "2",
"type": "t_uint64"
},
{
"astId": 7873,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "currentCollateral",
"offset": 0,
"slot": "3",
"type": "t_uint256"
},
{
"astId": 7876,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "host",
"offset": 0,
"slot": "4",
"type": "t_address"
}
],
"numberOfBytes": "160"
},
"t_struct(SlotReservationsConfig)6945_storage": {
"encoding": "inplace",
"label": "struct SlotReservationsConfig",
"members": [
{
"astId": 6944,
"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)9800": {
"encoding": "inplace",
"label": "Periods.Period",
"numberOfBytes": "8"
},
"t_userDefinedValueType(RequestId)10544": {
"encoding": "inplace",
"label": "RequestId",
"numberOfBytes": "32"
},
"t_userDefinedValueType(SlotId)10546": {
"encoding": "inplace",
"label": "SlotId",
"numberOfBytes": "32"
}
}
}
}