1918 lines
200 KiB
JSON
Raw Normal View History

{
"address": "0xCDef8d6884557be4F68dC265b6bB2E3e52a6C9d6",
"abi": [
{
"inputs": [
{
"components": [
{
"components": [
{
"internalType": "uint8",
"name": "repairRewardPercentage",
"type": "uint8"
},
{
"internalType": "uint8",
"name": "maxNumberOfSlashes",
"type": "uint8"
},
{
"internalType": "uint16",
"name": "slashCriterion",
"type": "uint16"
},
{
"internalType": "uint8",
"name": "slashPercentage",
"type": "uint8"
}
],
"internalType": "struct CollateralConfig",
"name": "collateral",
"type": "tuple"
},
{
"components": [
{
"internalType": "uint256",
"name": "period",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "timeout",
"type": "uint256"
},
{
"internalType": "uint8",
"name": "downtime",
"type": "uint8"
},
{
"internalType": "string",
"name": "zkeyHash",
"type": "string"
},
{
"internalType": "uint8",
"name": "downtimeProduct",
"type": "uint8"
}
],
"internalType": "struct ProofConfig",
"name": "proofs",
"type": "tuple"
}
],
"internalType": "struct MarketplaceConfig",
"name": "configuration",
"type": "tuple"
},
{
"internalType": "contract IERC20",
"name": "token_",
"type": "address"
},
{
"internalType": "contract IGroth16Verifier",
"name": "verifier",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"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": "uint256",
"name": "slotIndex",
"type": "uint256"
}
],
"name": "SlotFilled",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "RequestId",
"name": "requestId",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "uint256",
"name": "slotIndex",
"type": "uint256"
}
],
"name": "SlotFreed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "RequestId",
"name": "requestId",
"type": "bytes32"
},
{
"components": [
{
"internalType": "uint64",
"name": "slots",
"type": "uint64"
},
{
"internalType": "uint256",
"name": "slotSize",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "duration",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "proofProbability",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reward",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "collateral",
"type": "uint256"
},
{
"internalType": "uint64",
"name": "maxSlotLoss",
"type": "uint64"
}
],
"indexed": false,
"internalType": "struct Ask",
"name": "ask",
"type": "tuple"
},
{
"indexed": false,
"internalType": "uint256",
"name": "expiry",
"type": "uint256"
}
],
"name": "StorageRequested",
"type": "event"
},
{
"inputs": [],
"name": "config",
"outputs": [
{
"components": [
{
"components": [
{
"internalType": "uint8",
"name": "repairRewardPercentage",
"type": "uint8"
},
{
"internalType": "uint8",
"name": "maxNumberOfSlashes",
"type": "uint8"
},
{
"internalType": "uint16",
"name": "slashCriterion",
"type": "uint16"
},
{
"internalType": "uint8",
"name": "slashPercentage",
"type": "uint8"
}
],
"internalType": "struct CollateralConfig",
"name": "collateral",
"type": "tuple"
},
{
"components": [
{
"internalType": "uint256",
"name": "period",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "timeout",
"type": "uint256"
},
{
"internalType": "uint8",
"name": "downtime",
"type": "uint8"
},
{
"internalType": "string",
"name": "zkeyHash",
"type": "string"
},
{
"internalType": "uint8",
"name": "downtimeProduct",
"type": "uint8"
}
],
"internalType": "struct ProofConfig",
"name": "proofs",
"type": "tuple"
}
],
"internalType": "struct MarketplaceConfig",
"name": "",
"type": "tuple"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "RequestId",
"name": "requestId",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "slotIndex",
"type": "uint256"
},
{
"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": "uint64",
"name": "slots",
"type": "uint64"
},
{
"internalType": "uint256",
"name": "slotSize",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "duration",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "proofProbability",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reward",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "collateral",
"type": "uint256"
},
{
"internalType": "uint64",
"name": "maxSlotLoss",
"type": "uint64"
}
],
"internalType": "struct Ask",
"name": "ask",
"type": "tuple"
},
{
"components": [
{
"internalType": "string",
"name": "cid",
"type": "string"
},
{
"internalType": "bytes32",
"name": "merkleRoot",
"type": "bytes32"
}
],
"internalType": "struct Content",
"name": "content",
"type": "tuple"
},
{
"internalType": "uint256",
"name": "expiry",
"type": "uint256"
},
{
"internalType": "bytes32",
"name": "nonce",
"type": "bytes32"
}
],
"internalType": "struct Request",
"name": "request",
"type": "tuple"
},
{
"internalType": "uint256",
"name": "slotIndex",
"type": "uint256"
}
],
"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": "uint64",
"name": "slots",
"type": "uint64"
},
{
"internalType": "uint256",
"name": "slotSize",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "duration",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "proofProbability",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reward",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "collateral",
"type": "uint256"
},
{
"internalType": "uint64",
"name": "maxSlotLoss",
"type": "uint64"
}
],
"internalType": "struct Ask",
"name": "ask",
"type": "tuple"
},
{
"components": [
{
"internalType": "string",
"name": "cid",
"type": "string"
},
{
"internalType": "bytes32",
"name": "merkleRoot",
"type": "bytes32"
}
],
"internalType": "struct Content",
"name": "content",
"type": "tuple"
},
{
"internalType": "uint256",
"name": "expiry",
"type": "uint256"
},
{
"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": "uint256"
}
],
"name": "markProofAsMissing",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "SlotId",
"name": "slotId",
"type": "bytes32"
}
],
"name": "missingProofs",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"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": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "RequestId",
"name": "requestId",
"type": "bytes32"
}
],
"name": "requestExpiry",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"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": "uint64",
"name": "slots",
"type": "uint64"
},
{
"internalType": "uint256",
"name": "slotSize",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "duration",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "proofProbability",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reward",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "collateral",
"type": "uint256"
},
{
"internalType": "uint64",
"name": "maxSlotLoss",
"type": "uint64"
}
],
"internalType": "struct Ask",
"name": "ask",
"type": "tuple"
},
{
"components": [
{
"internalType": "string",
"name": "cid",
"type": "string"
},
{
"internalType": "bytes32",
"name": "merkleRoot",
"type": "bytes32"
}
],
"internalType": "struct Content",
"name": "content",
"type": "tuple"
},
{
"internalType": "uint256",
"name": "expiry",
"type": "uint256"
},
{
"internalType": "bytes32",
"name": "nonce",
"type": "bytes32"
}
],
"internalType": "struct Request",
"name": "request",
"type": "tuple"
}
],
"name": "requestStorage",
"outputs": [],
"stateMutability": "nonpayable",
"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": "0x898fc921a591df60f98aa65a2c808de094cf6a203f566310524ad69d50dfee06",
"receipt": {
"to": null,
"from": "0x3A39904B71595608524274BFD8c20FCfd9e77236",
"contractAddress": "0xCDef8d6884557be4F68dC265b6bB2E3e52a6C9d6",
"transactionIndex": 0,
"gasUsed": "3589965",
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"blockHash": "0x21f9b9b346ac6f2f5f745c8409dc659ab3ef20c72b32277cdd714f321365ba6a",
"transactionHash": "0x898fc921a591df60f98aa65a2c808de094cf6a203f566310524ad69d50dfee06",
"logs": [],
"blockNumber": 1683237,
"cumulativeGasUsed": "3589965",
"status": 1,
"byzantium": true
},
"args": [
{
"collateral": {
"repairRewardPercentage": 10,
"maxNumberOfSlashes": 2,
"slashCriterion": 2,
"slashPercentage": 20
},
"proofs": {
"period": 60,
"timeout": 30,
"downtime": 64,
"downtimeProduct": 67,
"zkeyHash": "afc470031923f60982f36932686665a55b88c4ef4ee4b7ae21e6dc6685cfae4b"
}
},
"0x34a22f3911De437307c6f4485931779670f78764",
"0x02dd582726F7507D7d0F8bD8bf8053d3006F9092"
],
"numDeployments": 2,
"solcInputHash": "3a588acfa01d533bd1d8c93ca5daf963",
"metadata": "{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"repairRewardPercentage\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"maxNumberOfSlashes\",\"type\":\"uint8\"},{\"internalType\":\"uint16\",\"name\":\"slashCriterion\",\"type\":\"uint16\"},{\"internalType\":\"uint8\",\"name\":\"slashPercentage\",\"type\":\"uint8\"}],\"internalType\":\"struct CollateralConfig\",\"name\":\"collateral\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"period\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timeout\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"downtime\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"zkeyHash\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"downtimeProduct\",\"type\":\"uint8\"}],\"internalType\":\"struct ProofConfig\",\"name\":\"proofs\",\"type\":\"tuple\"}],\"internalType\":\"struct MarketplaceConfig\",\"name\":\"configuration\",\"type\":\"tuple\"},{\"internalType\":\"contract IERC20\",\"name\":\"token_\",\"type\":\"address\"},{\"internalType\":\"contract IGroth16Verifier\",\"name\":\"verifier\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":\"uint256\",\"name\":\"slotIndex\",\"type\":\"uint256\"}],\"name\":\"SlotFilled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"RequestId\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slotIndex\",\"type\":\"uint256\"}],\"name\":\"SlotFreed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"RequestId\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"slots\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"slotSize\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"proofProbability\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reward\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateral\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"maxSlotLoss\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct Ask\",\"name\":\"ask\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"name\":\"StorageRequested\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"config\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"repairRewardPercentage\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"maxNumberOfSlashes\",\"type\":\"uint8\"},{\"internalType\":\"uint16\",\"name\":\"slashCriterion\",\"type\":\"uint16\"},{\"internalType\":\"uint8\",\"name\":\"slashPercentage\",\"type\":\"uint8\"}],\"internalType\":\"struct CollateralConfig\",\"name\":\"collateral\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"period\",\"type\":\"uint256\"},{\"internalType\":\"uint256\"
"bytecode": "0x60c06040523480156200001157600080fd5b50604051620040ef380380620040ef8339810160408190526200003491620004f1565b60208301518051608052816101004311620000965760405162461bcd60e51b815260206004820152601960248201527f496e73756666696369656e7420626c6f636b206865696768740000000000000060448201526064015b60405180910390fd5b81516000908155602083015160015560408301516002805460ff191660ff9092169190911790556060830151839190600390620000d4908262000691565b50608091909101516004909101805460ff191660ff928316179055600580546001600160a01b0319166001600160a01b0393841617905590841660a05284515160649116111590506200016a5760405162461bcd60e51b815260206004820152601560248201527f4d757374206265206c657373207468616e20313030000000000000000000000060448201526064016200008d565b606483600001516060015160ff161115620001c85760405162461bcd60e51b815260206004820152601560248201527f4d757374206265206c657373207468616e20313030000000000000000000000060448201526064016200008d565b82516060810151602090910151606491620001e3916200075d565b60ff161115620002365760405162461bcd60e51b815260206004820152601d60248201527f4d6178696d756d20736c617368696e672065786365656473203130302500000060448201526064016200008d565b82518051600d805460208085015160408087015160609788015160ff9081166401000000000260ff60201b1961ffff90931662010000029290921664ffffff0000199482166101000261ffff1990971698821698909817959095179290921695909517178355808801518051600e90815591810151600f5593840151601080549190931660ff19919091161790915592820151869391929190601190620002de908262000691565b50608091909101516004909101805460ff191660ff909216919091179055506200078f9350505050565b634e487b7160e01b600052604160045260246000fd5b60405160a081016001600160401b038111828210171562000343576200034362000308565b60405290565b604080519081016001600160401b038111828210171562000343576200034362000308565b604051608081016001600160401b038111828210171562000343576200034362000308565b604051601f8201601f191681016001600160401b0381118282101715620003be57620003be62000308565b604052919050565b805160ff81168114620003d857600080fd5b919050565b600060a08284031215620003f057600080fd5b620003fa6200031e565b905081518152602080830151818301526200041860408401620003c6565b604083015260608301516001600160401b03808211156200043857600080fd5b818501915085601f8301126200044d57600080fd5b81518181111562000462576200046262000308565b62000476601f8201601f1916850162000393565b915080825286848285010111156200048d57600080fd5b60005b81811015620004ad57838101850151838201860152840162000490565b50600084828401015250806060850152505050620004ce60808301620003c6565b608082015292915050565b80516001600160a01b0381168114620003d857600080fd5b6000806000606084860312156200050757600080fd5b83516001600160401b03808211156200051f57600080fd5b9085019081870360a08112156200053557600080fd5b6200053f62000349565b60808212156200054e57600080fd5b620005586200036e565b91506200056584620003c6565b82526200057560208501620003c6565b6020830152604084015161ffff811681146200059057600080fd5b6040830152620005a360608501620003c6565b606083015290815260808301519082821115620005bf57600080fd5b620005cd89838601620003dd565b602082015280965050505050620005e760208501620004d9565b9150620005f760408501620004d9565b90509250925092565b600181811c908216806200061557607f821691505b6020821081036200063657634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200068c576000816000526020600020601f850160051c81016020861015620006675750805b601f850160051c820191505b81811015620006885782815560010162000673565b5050505b505050565b81516001600160401b03811115620006ad57620006ad62000308565b620006c581620006be845462000600565b846200063c565b602080601f831160018114620006fd5760008415620006e45750858301515b600019600386901b1c1916600185901b17855562000688565b600085815260208120601f198616915b828110156200072e578886015182559484019460019091019084016200070d565b50858210156200074d5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60ff81811683821602908116908181146200078857634e487b7160e01b600052601160045260246000fd5b5092915050565b60805160a051613909620007e6600039600081816104060152818161167c0152818161203a015281816120d90152818161224e015281816122ed015261250f0152600081816129c60152612b3d01526139096000f3fe608060405234801561001057600080fd5b
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101985760003560e01c80639777b72c116100e3578063c0cc4add1161008c578063f752196b11610066578063f752196b146103c4578063fb1e61ca146103e4578063fc0c546a1461040457600080fd5b8063c0cc4add1461038b578063c5d433511461039e578063e8aa0a07146103b157600080fd5b8063a6af384b116100bd578063a6af384b14610338578063b396dc791461034b578063be5cdc481461036b57600080fd5b80639777b72c146102fa578063a29c29a414610302578063a3a0807e1461031557600080fd5b80634641dce6116101455780636b00c8cf1161011f5780636b00c8cf1461028e5780636e2b54ee146102d257806379502c55146102e557600080fd5b80634641dce61461024157806359cc89ed146102665780635da738351461027957600080fd5b80630aefaabe116101765780630aefaabe146101f8578063329b5a0b1461020b578063458d2bf11461022e57600080fd5b806302fa8e651461019d57806305b90773146101c357806308695fcd146101e3575b600080fd5b6101b06101ab366004612d73565b61042a565b6040519081526020015b60405180910390f35b6101d66101d1366004612d73565b6104a1565b6040516101ba9190612da2565b6101f66101f1366004612dbc565b6105b3565b005b6101f6610206366004612df3565b610709565b6101b0610219366004612d73565b60009081526014602052604090206005015490565b6101b061023c366004612d73565b6108e6565b61025461024f366004612d73565b6108ff565b60405160ff90911681526020016101ba565b6101f6610274366004612e48565b610912565b610281610c16565b6040516101ba9190612e7f565b6102ba61029c366004612d73565b6000908152601560205260409020600501546001600160a01b031690565b6040516001600160a01b0390911681526020016101ba565b6101f66102e0366004612d73565b610c3d565b6102ed610c4a565b6040516101ba9190612f09565b610281610dd3565b6101f6610310366004612d73565b610df2565b610328610323366004612d73565b610e62565b60405190151581526020016101ba565b6101f6610346366004612fa4565b610e97565b61035e610359366004612d73565b6111ec565b6040516101ba91906130ad565b61037e610379366004612d73565b6113d5565b6040516101ba91906130df565b610328610399366004612d73565b6114a3565b6101f66103ac3660046130f3565b6114b6565b6101f66103bf366004613123565b6116f5565b6101b06103d2366004612d73565b60009081526008602052604090205490565b6103f76103f2366004612d73565b61182a565b6040516101ba9190613151565b7f00000000000000000000000000000000000000000000000000000000000000006102ba565b60008181526014602052604081206004015481610446846104a1565b9050600081600481111561045c5761045c612d8c565b14806104795750600181600481111561047757610477612d8c565b145b15610485575092915050565b6104998261049460014261317a565b6119e1565b949350505050565b60008181526013602052604081205482906001600160a01b03166104fe5760405162461bcd60e51b815260206004820152600f60248201526e155b9adb9bdddb881c995c5d595cdd608a1b60448201526064015b60405180910390fd5b600083815260146020526040812090815460ff16600481111561052357610523612d8c565b148015610540575060008481526014602052604090206005015442115b1561054f5760029250506105ad565b6001815460ff16600481111561056757610567612d8c565b148061058857506000815460ff16600481111561058657610586612d8c565b145b80156105975750806004015442115b156105a65760039250506105ad565b5460ff1691505b50919050565b60016105be836113d5565b60058111156105cf576105cf612d8c565b1461061c5760405162461bcd60e51b815260206004820152601960248201527f536c6f74206e6f7420616363657074696e672070726f6f66730000000000000060448201526064016104f5565b61062682826119f9565b6000828152601560209081526040808320600181015484526013909252909120600d5461ffff620100009091041661066a8560009081526008602052604090205490565b61067491906131a3565b60000361070357600d54600682015460009160649161069e91640100000000900460ff16906131b7565b6106a891906131ce565b9050808360040160008282546106be919061317a565b9091555050600d54600086815260086020526040902054610100820460ff169162010000900461ffff16906106f391906131ce565b106107015761070185611c26565b505b50505050565b826000808281526015602052604090205460ff16600581111561072e5761072e612d8c565b0361076a5760405162461bcd60e51b815260206004820152600c60248201526b536c6f74206973206672656560a01b60448201526064016104f5565b600084815260156020526040902060058101546001600160a01b031633146107d45760405162461bcd60e51b815260206004820152601960248201527f536c6f742066696c6c6564206279206f7468657220686f73740000000000000060448201526064016104f5565b60006107df866113d5565b905060048160058111156107f5576107f5612d
"devdoc": {
"kind": "dev",
"methods": {
"fillSlot(bytes32,uint256,((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 expired, must be in RequestStat e.New, and the transaction must originate from the depositer 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,uint256,((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": 4767,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_config",
"offset": 0,
"slot": "0",
"type": "t_struct(ProofConfig)2220_storage"
},
{
"astId": 4770,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_verifier",
"offset": 0,
"slot": "5",
"type": "t_contract(IGroth16Verifier)2403"
},
{
"astId": 4806,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_slotStarts",
"offset": 0,
"slot": "6",
"type": "t_mapping(t_userDefinedValueType(SlotId)5353,t_uint256)"
},
{
"astId": 4811,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_probabilities",
"offset": 0,
"slot": "7",
"type": "t_mapping(t_userDefinedValueType(SlotId)5353,t_uint256)"
},
{
"astId": 4816,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_missed",
"offset": 0,
"slot": "8",
"type": "t_mapping(t_userDefinedValueType(SlotId)5353,t_uint256)"
},
{
"astId": 4824,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_received",
"offset": 0,
"slot": "9",
"type": "t_mapping(t_userDefinedValueType(SlotId)5353,t_mapping(t_userDefinedValueType(Period)4624,t_bool))"
},
{
"astId": 4832,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_missing",
"offset": 0,
"slot": "10",
"type": "t_mapping(t_userDefinedValueType(SlotId)5353,t_mapping(t_userDefinedValueType(Period)4624,t_bool))"
},
{
"astId": 5518,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_requestsPerClient",
"offset": 0,
"slot": "11",
"type": "t_mapping(t_address,t_struct(Bytes32Set)1781_storage)"
},
{
"astId": 5523,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_slotsPerHost",
"offset": 0,
"slot": "12",
"type": "t_mapping(t_address,t_struct(Bytes32Set)1781_storage)"
},
{
"astId": 3023,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_config",
"offset": 0,
"slot": "13",
"type": "t_struct(MarketplaceConfig)2199_storage"
},
{
"astId": 3029,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_requests",
"offset": 0,
"slot": "19",
"type": "t_mapping(t_userDefinedValueType(RequestId)5351,t_struct(Request)5366_storage)"
},
{
"astId": 3035,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_requestContexts",
"offset": 0,
"slot": "20",
"type": "t_mapping(t_userDefinedValueType(RequestId)5351,t_struct(RequestContext)3059_storage)"
},
{
"astId": 3041,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_slots",
"offset": 0,
"slot": "21",
"type": "t_mapping(t_userDefinedValueType(SlotId)5353,t_struct(Slot)3076_storage)"
},
{
"astId": 3044,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_marketplaceTotals",
"offset": 0,
"slot": "22",
"type": "t_struct(MarketplaceTotals)4619_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_contract(IGroth16Verifier)2403": {
"encoding": "inplace",
"label": "contract IGroth16Verifier",
"numberOfBytes": "20"
},
"t_enum(RequestState)5392": {
"encoding": "inplace",
"label": "enum RequestState",
"numberOfBytes": "1"
},
"t_enum(SlotState)5399": {
"encoding": "inplace",
"label": "enum SlotState",
"numberOfBytes": "1"
},
"t_mapping(t_address,t_struct(Bytes32Set)1781_storage)": {
"encoding": "mapping",
"key": "t_address",
"label": "mapping(address => struct EnumerableSet.Bytes32Set)",
"numberOfBytes": "32",
"value": "t_struct(Bytes32Set)1781_storage"
},
"t_mapping(t_bytes32,t_uint256)": {
"encoding": "mapping",
"key": "t_bytes32",
"label": "mapping(bytes32 => uint256)",
"numberOfBytes": "32",
"value": "t_uint256"
},
"t_mapping(t_userDefinedValueType(Period)4624,t_bool)": {
"encoding": "mapping",
"key": "t_userDefinedValueType(Period)4624",
"label": "mapping(Periods.Period => bool)",
"numberOfBytes": "32",
"value": "t_bool"
},
"t_mapping(t_userDefinedValueType(RequestId)5351,t_struct(Request)5366_storage)": {
"encoding": "mapping",
"key": "t_userDefinedValueType(RequestId)5351",
"label": "mapping(RequestId => struct Request)",
"numberOfBytes": "32",
"value": "t_struct(Request)5366_storage"
},
"t_mapping(t_userDefinedValueType(RequestId)5351,t_struct(RequestContext)3059_storage)": {
"encoding": "mapping",
"key": "t_userDefinedValueType(RequestId)5351",
"label": "mapping(RequestId => struct Marketplace.RequestContext)",
"numberOfBytes": "32",
"value": "t_struct(RequestContext)3059_storage"
},
"t_mapping(t_userDefinedValueType(SlotId)5353,t_mapping(t_userDefinedValueType(Period)4624,t_bool))": {
"encoding": "mapping",
"key": "t_userDefinedValueType(SlotId)5353",
"label": "mapping(SlotId => mapping(Periods.Period => bool))",
"numberOfBytes": "32",
"value": "t_mapping(t_userDefinedValueType(Period)4624,t_bool)"
},
"t_mapping(t_userDefinedValueType(SlotId)5353,t_struct(Slot)3076_storage)": {
"encoding": "mapping",
"key": "t_userDefinedValueType(SlotId)5353",
"label": "mapping(SlotId => struct Marketplace.Slot)",
"numberOfBytes": "32",
"value": "t_struct(Slot)3076_storage"
},
"t_mapping(t_userDefinedValueType(SlotId)5353,t_uint256)": {
"encoding": "mapping",
"key": "t_userDefinedValueType(SlotId)5353",
"label": "mapping(SlotId => uint256)",
"numberOfBytes": "32",
"value": "t_uint256"
},
"t_string_storage": {
"encoding": "bytes",
"label": "string",
"numberOfBytes": "32"
},
"t_struct(Ask)5381_storage": {
"encoding": "inplace",
"label": "struct Ask",
"members": [
{
"astId": 5368,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "slots",
"offset": 0,
"slot": "0",
"type": "t_uint64"
},
{
"astId": 5370,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "slotSize",
"offset": 0,
"slot": "1",
"type": "t_uint256"
},
{
"astId": 5372,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "duration",
"offset": 0,
"slot": "2",
"type": "t_uint256"
},
{
"astId": 5374,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "proofProbability",
"offset": 0,
"slot": "3",
"type": "t_uint256"
},
{
"astId": 5376,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "reward",
"offset": 0,
"slot": "4",
"type": "t_uint256"
},
{
"astId": 5378,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "collateral",
"offset": 0,
"slot": "5",
"type": "t_uint256"
},
{
"astId": 5380,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "maxSlotLoss",
"offset": 0,
"slot": "6",
"type": "t_uint64"
}
],
"numberOfBytes": "224"
},
"t_struct(Bytes32Set)1781_storage": {
"encoding": "inplace",
"label": "struct EnumerableSet.Bytes32Set",
"members": [
{
"astId": 1780,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_inner",
"offset": 0,
"slot": "0",
"type": "t_struct(Set)1587_storage"
}
],
"numberOfBytes": "64"
},
"t_struct(CollateralConfig)2209_storage": {
"encoding": "inplace",
"label": "struct CollateralConfig",
"members": [
{
"astId": 2202,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "repairRewardPercentage",
"offset": 0,
"slot": "0",
"type": "t_uint8"
},
{
"astId": 2204,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "maxNumberOfSlashes",
"offset": 1,
"slot": "0",
"type": "t_uint8"
},
{
"astId": 2206,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "slashCriterion",
"offset": 2,
"slot": "0",
"type": "t_uint16"
},
{
"astId": 2208,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "slashPercentage",
"offset": 4,
"slot": "0",
"type": "t_uint8"
}
],
"numberOfBytes": "32"
},
"t_struct(Content)5386_storage": {
"encoding": "inplace",
"label": "struct Content",
"members": [
{
"astId": 5383,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "cid",
"offset": 0,
"slot": "0",
"type": "t_string_storage"
},
{
"astId": 5385,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "merkleRoot",
"offset": 0,
"slot": "1",
"type": "t_bytes32"
}
],
"numberOfBytes": "64"
},
"t_struct(MarketplaceConfig)2199_storage": {
"encoding": "inplace",
"label": "struct MarketplaceConfig",
"members": [
{
"astId": 2195,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "collateral",
"offset": 0,
"slot": "0",
"type": "t_struct(CollateralConfig)2209_storage"
},
{
"astId": 2198,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "proofs",
"offset": 0,
"slot": "1",
"type": "t_struct(ProofConfig)2220_storage"
}
],
"numberOfBytes": "192"
},
"t_struct(MarketplaceTotals)4619_storage": {
"encoding": "inplace",
"label": "struct Marketplace.MarketplaceTotals",
"members": [
{
"astId": 4616,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "received",
"offset": 0,
"slot": "0",
"type": "t_uint256"
},
{
"astId": 4618,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "sent",
"offset": 0,
"slot": "1",
"type": "t_uint256"
}
],
"numberOfBytes": "64"
},
"t_struct(ProofConfig)2220_storage": {
"encoding": "inplace",
"label": "struct ProofConfig",
"members": [
{
"astId": 2211,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "period",
"offset": 0,
"slot": "0",
"type": "t_uint256"
},
{
"astId": 2213,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "timeout",
"offset": 0,
"slot": "1",
"type": "t_uint256"
},
{
"astId": 2215,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "downtime",
"offset": 0,
"slot": "2",
"type": "t_uint8"
},
{
"astId": 2217,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "zkeyHash",
"offset": 0,
"slot": "3",
"type": "t_string_storage"
},
{
"astId": 2219,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "downtimeProduct",
"offset": 0,
"slot": "4",
"type": "t_uint8"
}
],
"numberOfBytes": "160"
},
"t_struct(Request)5366_storage": {
"encoding": "inplace",
"label": "struct Request",
"members": [
{
"astId": 5355,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "client",
"offset": 0,
"slot": "0",
"type": "t_address"
},
{
"astId": 5358,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "ask",
"offset": 0,
"slot": "1",
"type": "t_struct(Ask)5381_storage"
},
{
"astId": 5361,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "content",
"offset": 0,
"slot": "8",
"type": "t_struct(Content)5386_storage"
},
{
"astId": 5363,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "expiry",
"offset": 0,
"slot": "10",
"type": "t_uint256"
},
{
"astId": 5365,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "nonce",
"offset": 0,
"slot": "11",
"type": "t_bytes32"
}
],
"numberOfBytes": "384"
},
"t_struct(RequestContext)3059_storage": {
"encoding": "inplace",
"label": "struct Marketplace.RequestContext",
"members": [
{
"astId": 3047,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "state",
"offset": 0,
"slot": "0",
"type": "t_enum(RequestState)5392"
},
{
"astId": 3049,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "slotsFilled",
"offset": 0,
"slot": "1",
"type": "t_uint256"
},
{
"astId": 3052,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "expiryFundsWithdraw",
"offset": 0,
"slot": "2",
"type": "t_uint256"
},
{
"astId": 3054,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "startedAt",
"offset": 0,
"slot": "3",
"type": "t_uint256"
},
{
"astId": 3056,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "endsAt",
"offset": 0,
"slot": "4",
"type": "t_uint256"
},
{
"astId": 3058,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "expiresAt",
"offset": 0,
"slot": "5",
"type": "t_uint256"
}
],
"numberOfBytes": "192"
},
"t_struct(Set)1587_storage": {
"encoding": "inplace",
"label": "struct EnumerableSet.Set",
"members": [
{
"astId": 1582,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_values",
"offset": 0,
"slot": "0",
"type": "t_array(t_bytes32)dyn_storage"
},
{
"astId": 1586,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "_indexes",
"offset": 0,
"slot": "1",
"type": "t_mapping(t_bytes32,t_uint256)"
}
],
"numberOfBytes": "64"
},
"t_struct(Slot)3076_storage": {
"encoding": "inplace",
"label": "struct Marketplace.Slot",
"members": [
{
"astId": 3062,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "state",
"offset": 0,
"slot": "0",
"type": "t_enum(SlotState)5399"
},
{
"astId": 3065,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "requestId",
"offset": 0,
"slot": "1",
"type": "t_userDefinedValueType(RequestId)5351"
},
{
"astId": 3068,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "filledAt",
"offset": 0,
"slot": "2",
"type": "t_uint256"
},
{
"astId": 3070,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "slotIndex",
"offset": 0,
"slot": "3",
"type": "t_uint256"
},
{
"astId": 3073,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "currentCollateral",
"offset": 0,
"slot": "4",
"type": "t_uint256"
},
{
"astId": 3075,
"contract": "contracts/Marketplace.sol:Marketplace",
"label": "host",
"offset": 0,
"slot": "5",
"type": "t_address"
}
],
"numberOfBytes": "192"
},
"t_uint16": {
"encoding": "inplace",
"label": "uint16",
"numberOfBytes": "2"
},
"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)4624": {
"encoding": "inplace",
"label": "Periods.Period",
"numberOfBytes": "32"
},
"t_userDefinedValueType(RequestId)5351": {
"encoding": "inplace",
"label": "RequestId",
"numberOfBytes": "32"
},
"t_userDefinedValueType(SlotId)5353": {
"encoding": "inplace",
"label": "SlotId",
"numberOfBytes": "32"
}
}
}
}