2319 lines
330 KiB
JSON
Raw Normal View History

{
"address": "0xd53a4181862f42641ccA02Fb4CED7D7f19C6920B",
"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": "SlotId",
"name": "slotId",
"type": "bytes32"
},
{
"internalType": "Periods.Period",
"name": "period",
"type": "uint64"
}
],
"name": "canMarkProofAsMissing",
"outputs": [],
"stateMutability": "view",
"type": "function"
},
{
"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": "0x8d8e8f82345530926751888838a6815a0bfd64b34763450822a504f0d6c13af2",
"receipt": {
"to": null,
"from": "0x3A39904B71595608524274BFD8c20FCfd9e77236",
"contractAddress": "0xd53a4181862f42641ccA02Fb4CED7D7f19C6920B",
"transactionIndex": 0,
"gasUsed": "4320966",
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"blockHash": "0x8661eb6611b467efcb6810a2be6e8a80132d71616eb29933e879ba2aff49eb3f",
"transactionHash": "0x8d8e8f82345530926751888838a6815a0bfd64b34763450822a504f0d6c13af2",
"logs": [],
"blockNumber": 3932819,
"cumulativeGasUsed": "4320966",
"status": 1,
"byzantium": true
},
"args": [
{
"collateral": {
"repairRewardPercentage": 10,
"maxNumberOfSlashes": 2,
"slashPercentage": 20,
"validatorRewardPercentage": 20
},
"proofs": {
"period": 120,
"timeout": 30,
"downtime": 64,
"downtimeProduct": 67,
"zkeyHash": "fd338cf5f846a3385efce8d10db33f262bafd0260b2211e27b5e461a45a8df94"
},
"reservations": {
"maxReservations": 3
},
"requestDurationLimit": 2592000
},
"0x34a22f3911De437307c6f4485931779670f78764",
"0x1f60B2329775545AaeF743dbC3571e699405263e"
],
"numDeployments": 10,
"solcInputHash": "eae4c6107a8ac2a19ef4d8c910f117dc",
"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": "0x60c060405234801561001057600080fd5b50604051614fab380380614fab83398101604081905261002f9161053b565b602083015180516040850151516001805460ff191660ff90921691909117905582906001600160401b03811660000361007b5760405163015536c760e51b815260040160405180910390fd5b6001600160401b031660805261010043116100a9576040516338f5f66160e11b815260040160405180910390fd5b8151600280546020850151604086015160608701516001600160401b039586166001600160801b0319909416939093176801000000000000000095909216949094021761ffff60801b1916600160801b60ff9485160260ff60881b191617600160881b9390911692909202919091178155608083015183919060039061012f90826106d9565b5050600480546001600160a01b0319166001600160a01b0393841617905550831660a05250825151606460ff909116111561017d576040516302bd816360e41b815260040160405180910390fd5b606483600001516040015160ff1611156101aa576040516354e5e0ab60e11b815260040160405180910390fd5b825160408101516020909101516064916101c391610797565b60ff1611156101e5576040516317ff9d0f60e21b815260040160405180910390fd5b82518051600b805460208085015160408087015160609788015160ff90811663010000000263ff0000001992821662010000029290921663ffff0000199482166101000261ffff1990971698821698909817959095179290921695909517178355808801518051600c80549383015196830151978301518516600160881b0260ff60881b1998909516600160801b029790971661ffff60801b196001600160401b0397881668010000000000000000026001600160801b031990951697909216969096179290921791909116939093171783556080820151869391929190600d906102d090826106d9565b50505060408201515160038201805460ff191660ff909216919091179055606090910151600490910180546001600160401b0319166001600160401b03909216919091179055506107c8915050565b634e487b7160e01b600052604160045260246000fd5b60405160a081016001600160401b03811182821017156103575761035761031f565b60405290565b604051608081016001600160401b03811182821017156103575761035761031f565b604051601f8201601f191681016001600160401b03811182821017156103a7576103a761031f565b604052919050565b805160ff811681146103c057600080fd5b919050565b80516001600160401b03811681146103c057600080fd5b600060a082840312156103ee57600080fd5b6103f6610335565b9050610401826103c5565b815261040f602083016103c5565b6020820152610420604083016103af565b6040820152610431606083016103af565b606082015260808201516001600160401b0381111561044f57600080fd5b8201601f8101841361046057600080fd5b80516001600160401b038111156104795761047961031f565b61048c601f8201601f191660200161037f565b8181528560208385010111156104a157600080fd5b60005b828110156104c0576020818501810151838301820152016104a4565b5060006020838301015280608085015250505092915050565b6000602082840312156104eb57600080fd5b604051602081016001600160401b038111828210171561050d5761050d61031f565b60405290508061051c836103af565b905292915050565b80516001600160a01b03811681146103c057600080fd5b60008060006060848603121561055057600080fd5b83516001600160401b0381111561056657600080fd5b840180860360e081121561057957600080fd5b61058161035d565b608082121561058f57600080fd5b61059761035d565b91506105a2836103af565b82526105b0602084016103af565b60208301526105c1604084016103af565b60408301526105d2606084016103af565b60608301529081526080820151906001600160401b038211156105f457600080fd5b610600888385016103dc565b60208201526106128860a085016104d9565b604082015261062360c084016103c5565b6060820152945061063991505060208501610524565b915061064760408501610524565b90509250925092565b600181811c9082168061066457607f821691505b60208210810361068457634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156106d457806000526020600020601f840160051c810160208510156106b15750805b601f840160051c820191505b818110156106d157600081556001016106bd565b50505b505050565b81516001600160401b038111156106f2576106f261031f565b610706816107008454610650565b8461068a565b6020601f82116001811461073a57600083156107225750848201515b600019600385901b1c1916600184901b1784556106d1565b600084815260208120601f198516915b8281101561076a578785015182556020948501946001909201910161074a565b50848210156107885786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b60ff81811683821602908116908181146107c157634e487b7160e01b600052601160045260246000fd5b5092915050565b60805160a051614786610825600039600081816104dd01528181610f760152818161203501528181612664015281
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101cf5760003560e01c80636e2b54ee11610104578063c0cc4add116100a2578063e8aa0a0711610071578063e8aa0a071461047f578063f752196b14610492578063fb1e61ca146104bb578063fc0c546a146104db57600080fd5b8063c0cc4add14610433578063c5d4335114610446578063d02bbe3314610459578063d1bb36b61461046c57600080fd5b8063a29c29a4116100de578063a29c29a4146103bd578063a3a0807e146103d0578063b396dc79146103f3578063be5cdc481461041357600080fd5b80636e2b54ee1461038f5780639777b72c146103a257806399b6da0c146103aa57600080fd5b8063329b5a0b1161017157806351a766421161014b57806351a766421461030e5780635da73835146103215780636b00c8cf146103365780636c70bee91461037a57600080fd5b8063329b5a0b146102a3578063458d2bf1146102d65780634641dce6146102e957600080fd5b806312827602116101ad57806312827602146102395780631d873c1b1461024c578063237d84821461025f57806326d6f8341461027257600080fd5b806302fa8e65146101d457806305b90773146102045780630aefaabe14610224575b600080fd5b6101e76101e2366004613954565b610501565b6040516001600160401b0390911681526020015b60405180910390f35b610217610212366004613954565b6105df565b6040516101fb9190613983565b6102376102323660046139b2565b610702565b005b610237610247366004613a19565b610895565b61023761025a366004613a5c565b610966565b61023761026d366004613a19565b610e18565b610295610280366004613954565b60009081526012602052604090206003015490565b6040519081526020016101fb565b6101e76102b1366004613954565b600090815260116020526040902060020154600160c01b90046001600160401b031690565b6102956102e4366004613954565b611066565b6102fc6102f7366004613954565b61107f565b60405160ff90911681526020016101fb565b61029561031c366004613954565b611092565b6103296110f1565b6040516101fb9190613a9c565b610362610344366004613954565b6000908152601260205260409020600401546001600160a01b031690565b6040516001600160a01b0390911681526020016101fb565b610382611118565b6040516101fb9190613b7a565b61023761039d366004613954565b61128f565b61032961129c565b6102376103b8366004613c02565b6112bb565b6102376103cb366004613954565b611801565b6103e36103de366004613954565b611853565b60405190151581526020016101fb565b610406610401366004613954565b61188f565b6040516101fb9190613d31565b610426610421366004613954565b611b6d565b6040516101fb9190613d6c565b6103e3610441366004613954565b611c3b565b610237610454366004613d80565b611c4e565b6103e3610467366004613a19565b6120cf565b61023761047a366004613a19565b612171565b61023761048d366004613da5565b6121b6565b6101e76104a0366004613954565b6000908152600660205260409020546001600160401b031690565b6104ce6104c9366004613954565b61232f565b6040516101fb9190613dd3565b7f0000000000000000000000000000000000000000000000000000000000000000610362565b60008061050d836105df565b905060008160048111156105235761052361396d565b14806105405750600181600481111561053e5761053e61396d565b145b1561056c575050600090815260116020526040902060020154600160801b90046001600160401b031690565b60028160048111156105805761058061396d565b036105ac575050600090815260116020526040902060020154600160c01b90046001600160401b031690565b6000838152601160205260409020600201546105d890600160801b90046001600160401b031642612545565b9392505050565b60008181526010602052604081205482906001600160a01b031661061657604051635eeb253d60e11b815260040160405180910390fd5b600083815260116020526040812090815460ff16600481111561063b5761063b61396d565b14801561067a5750600084815260116020526040902060020154600160c01b90046001600160401b03166001600160401b0316426001600160401b0316115b156106895760029250506106fc565b6001815460ff1660048111156106a1576106a161396d565b14806106c257506000815460ff1660048111156106c0576106c061396d565b145b80156106e6575060028101546001600160401b03600160801b909104811642909116115b156106f55760039250506106fc565b5460ff1691505b50919050565b826000808281526012602052604090205460ff1660068111156107275761072761396d565b0361074557604051638b41ec7f60e01b815260040160405180910390fd5b600084815260126020526040902060048101546001600160a01b03163314610799576040517f57a6f4e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006107a486611b6d565b905060048160068111156107ba576107ba61396d565b036107f1576040517fc2cbf77700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60
"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": 10789,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_reservations",
"offset": 0,
"slot": "0",
"type": "t_mapping(t_userDefinedValueType(SlotId)10600,t_struct(AddressSet)6593_storage)"
},
{
"astId": 10792,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_config",
"offset": 0,
"slot": "1",
"type": "t_struct(SlotReservationsConfig)6945_storage"
},
{
"astId": 10009,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_config",
"offset": 0,
"slot": "2",
"type": "t_struct(ProofConfig)6942_storage"
},
{
"astId": 10012,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_verifier",
"offset": 0,
"slot": "4",
"type": "t_contract(IGroth16Verifier)7138"
},
{
"astId": 10049,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_slotStarts",
"offset": 0,
"slot": "5",
"type": "t_mapping(t_userDefinedValueType(SlotId)10600,t_uint64)"
},
{
"astId": 10054,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_missed",
"offset": 0,
"slot": "6",
"type": "t_mapping(t_userDefinedValueType(SlotId)10600,t_uint64)"
},
{
"astId": 10062,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_received",
"offset": 0,
"slot": "7",
"type": "t_mapping(t_userDefinedValueType(SlotId)10600,t_mapping(t_userDefinedValueType(Period)9839,t_bool))"
},
{
"astId": 10070,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_missing",
"offset": 0,
"slot": "8",
"type": "t_mapping(t_userDefinedValueType(SlotId)10600,t_mapping(t_userDefinedValueType(Period)9839,t_bool))"
},
{
"astId": 10949,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_requestsPerClient",
"offset": 0,
"slot": "9",
"type": "t_mapping(t_address,t_struct(Bytes32Set)6459_storage)"
},
{
"astId": 10954,
"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)10598,t_struct(Request)10613_storage)"
},
{
"astId": 7835,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_requestContexts",
"offset": 0,
"slot": "17",
"type": "t_mapping(t_userDefinedValueType(RequestId)10598,t_struct(RequestContext)7859_storage)"
},
{
"astId": 7841,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_slots",
"offset": 0,
"slot": "18",
"type": "t_mapping(t_userDefinedValueType(SlotId)10600,t_struct(Slot)7877_storage)"
},
{
"astId": 7844,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_marketplaceTotals",
"offset": 0,
"slot": "19",
"type": "t_struct(MarketplaceTotals)9832_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)10639": {
"encoding": "inplace",
"label": "enum RequestState",
"numberOfBytes": "1"
},
"t_enum(SlotState)10647": {
"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)9839,t_bool)": {
"encoding": "mapping",
"key": "t_userDefinedValueType(Period)9839",
"label": "mapping(Periods.Period => bool)",
"numberOfBytes": "32",
"value": "t_bool"
},
"t_mapping(t_userDefinedValueType(RequestId)10598,t_struct(Request)10613_storage)": {
"encoding": "mapping",
"key": "t_userDefinedValueType(RequestId)10598",
"label": "mapping(RequestId => struct Request)",
"numberOfBytes": "32",
"value": "t_struct(Request)10613_storage"
},
"t_mapping(t_userDefinedValueType(RequestId)10598,t_struct(RequestContext)7859_storage)": {
"encoding": "mapping",
"key": "t_userDefinedValueType(RequestId)10598",
"label": "mapping(RequestId => struct Marketplace.RequestContext)",
"numberOfBytes": "32",
"value": "t_struct(RequestContext)7859_storage"
},
"t_mapping(t_userDefinedValueType(SlotId)10600,t_mapping(t_userDefinedValueType(Period)9839,t_bool))": {
"encoding": "mapping",
"key": "t_userDefinedValueType(SlotId)10600",
"label": "mapping(SlotId => mapping(Periods.Period => bool))",
"numberOfBytes": "32",
"value": "t_mapping(t_userDefinedValueType(Period)9839,t_bool)"
},
"t_mapping(t_userDefinedValueType(SlotId)10600,t_struct(AddressSet)6593_storage)": {
"encoding": "mapping",
"key": "t_userDefinedValueType(SlotId)10600",
"label": "mapping(SlotId => struct EnumerableSet.AddressSet)",
"numberOfBytes": "32",
"value": "t_struct(AddressSet)6593_storage"
},
"t_mapping(t_userDefinedValueType(SlotId)10600,t_struct(Slot)7877_storage)": {
"encoding": "mapping",
"key": "t_userDefinedValueType(SlotId)10600",
"label": "mapping(SlotId => struct Marketplace.Slot)",
"numberOfBytes": "32",
"value": "t_struct(Slot)7877_storage"
},
"t_mapping(t_userDefinedValueType(SlotId)10600,t_uint64)": {
"encoding": "mapping",
"key": "t_userDefinedValueType(SlotId)10600",
"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)10628_storage": {
"encoding": "inplace",
"label": "struct Ask",
"members": [
{
"astId": 10615,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "proofProbability",
"offset": 0,
"slot": "0",
"type": "t_uint256"
},
{
"astId": 10617,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "pricePerBytePerSecond",
"offset": 0,
"slot": "1",
"type": "t_uint256"
},
{
"astId": 10619,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "collateralPerByte",
"offset": 0,
"slot": "2",
"type": "t_uint256"
},
{
"astId": 10621,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "slots",
"offset": 0,
"slot": "3",
"type": "t_uint64"
},
{
"astId": 10623,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "slotSize",
"offset": 8,
"slot": "3",
"type": "t_uint64"
},
{
"astId": 10625,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "duration",
"offset": 16,
"slot": "3",
"type": "t_uint64"
},
{
"astId": 10627,
"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)10633_storage": {
"encoding": "inplace",
"label": "struct Content",
"members": [
{
"astId": 10630,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "cid",
"offset": 0,
"slot": "0",
"type": "t_bytes_storage"
},
{
"astId": 10632,
"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)9832_storage": {
"encoding": "inplace",
"label": "struct Marketplace.MarketplaceTotals",
"members": [
{
"astId": 9829,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "received",
"offset": 0,
"slot": "0",
"type": "t_uint256"
},
{
"astId": 9831,
"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)10613_storage": {
"encoding": "inplace",
"label": "struct Request",
"members": [
{
"astId": 10602,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "client",
"offset": 0,
"slot": "0",
"type": "t_address"
},
{
"astId": 10605,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "ask",
"offset": 0,
"slot": "1",
"type": "t_struct(Ask)10628_storage"
},
{
"astId": 10608,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "content",
"offset": 0,
"slot": "5",
"type": "t_struct(Content)10633_storage"
},
{
"astId": 10610,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "expiry",
"offset": 0,
"slot": "7",
"type": "t_uint64"
},
{
"astId": 10612,
"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)10639"
},
{
"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)10647"
},
{
"astId": 7865,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "requestId",
"offset": 0,
"slot": "1",
"type": "t_userDefinedValueType(RequestId)10598"
},
{
"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)9839": {
"encoding": "inplace",
"label": "Periods.Period",
"numberOfBytes": "8"
},
"t_userDefinedValueType(RequestId)10598": {
"encoding": "inplace",
"label": "RequestId",
"numberOfBytes": "32"
},
"t_userDefinedValueType(SlotId)10600": {
"encoding": "inplace",
"label": "SlotId",
"numberOfBytes": "32"
}
}
}
}