{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "definitions": {
        "Address": {
            "description": "Ethereum Address",
            "pattern": "^0x([a-fA-F0-9]{40})|0$",
            "type": "string"
        },
        "Allocation": {
            "additionalProperties": false,
            "description": "Array of destination-amount pairings for a given token",
            "properties": {
                "allocationItems": {
                    "description": "Array of destination-amount pairings",
                    "items": {
                        "$ref": "#/definitions/AllocationItem"
                    },
                    "type": "array"
                },
                "asset": {
                    "$ref": "#/definitions/Address",
                    "description": "The contract address of the asset"
                }
            },
            "required": [
                "asset",
                "allocationItems"
            ],
            "type": "object"
        },
        "AllocationItem": {
            "additionalProperties": false,
            "description": "Assigns some amount of an unspecified asset to a destination",
            "properties": {
                "amount": {
                    "$ref": "#/definitions/Uint256",
                    "description": "How much funds will be transferred to the destination address."
                },
                "destination": {
                    "$ref": "#/definitions/Address",
                    "description": "Address of EOA to receive channel proceeds."
                }
            },
            "required": [
                "destination",
                "amount"
            ],
            "type": "object"
        },
        "ApproveBudgetAndFundParams": {
            "additionalProperties": false,
            "properties": {
                "asset": {
                    "$ref": "#/definitions/Address"
                },
                "hub": {
                    "$ref": "#/definitions/Participant"
                },
                "playerParticipantId": {
                    "type": "string"
                },
                "requestedReceiveCapacity": {
                    "$ref": "#/definitions/Uint256"
                },
                "requestedSendCapacity": {
                    "$ref": "#/definitions/Uint256"
                }
            },
            "required": [
                "hub",
                "playerParticipantId",
                "asset",
                "requestedSendCapacity",
                "requestedReceiveCapacity"
            ],
            "type": "object"
        },
        "ApproveBudgetAndFundRequest": {
            "$ref": "#/definitions/JsonRpcRequest%3C%22ApproveBudgetAndFund%22%2CApproveBudgetAndFundParams%3E"
        },
        "ApproveBudgetAndFundResponse": {
            "$ref": "#/definitions/JsonRpcResponse%3CDomainBudget%3E"
        },
        "BudgetUpdatedNotification": {
            "$ref": "#/definitions/JsonRpcNotification%3C%22BudgetUpdated%22%2CDomainBudget%3E"
        },
        "Bytes32": {
            "description": "Bytes32",
            "pattern": "^0x([a-fA-F0-9]{64})$",
            "type": "string"
        },
        "ChallengeChannelError": {
            "$ref": "#/definitions/JsonRpcError%3C1300%2C%22Could%20not%20find%20channel%22%3E"
        },
        "ChallengeChannelParams": {
            "additionalProperties": false,
            "properties": {
                "channelId": {
                    "$ref": "#/definitions/ChannelId"
                }
            },
            "required": [
                "channelId"
            ],
            "type": "object"
        },
        "ChallengeChannelRequest": {
            "$ref": "#/definitions/JsonRpcRequest%3C%22ChallengeChannel%22%2CChallengeChannelParams%3E"
        },
        "ChallengeChannelResponse": {
            "$ref": "#/definitions/JsonRpcResponse%3CChannelResult%3E"
        },
        "ChannelBudget": {
            "additionalProperties": false,
            "properties": {
                "amount": {
                    "$ref": "#/definitions/Uint256"
                },
                "channelId": {
                    "$ref": "#/definitions/Bytes32"
                }
            },
            "required": [
                "channelId",
                "amount"
            ],
            "type": "object"
        },
        "ChannelClosed": {
            "$ref": "#/definitions/JsonRpcError%3C404%2C%22Channel%20closed%22%3E"
        },
        "ChannelClosingNotification": {
            "$ref": "#/definitions/JsonRpcNotification%3C%22ChannelClosed%22%2CChannelResult%3E"
        },
        "ChannelId": {
            "description": "Nitro ChannelId",
            "pattern": "^0x([a-fA-F0-9]{64})$",
            "type": "string"
        },
        "ChannelNotFound": {
            "$ref": "#/definitions/JsonRpcError%3C400%2C%22Channel%20not%20found%22%3E"
        },
        "ChannelProposedNotification": {
            "$ref": "#/definitions/JsonRpcNotification%3C%22ChannelProposed%22%2CChannelResult%3E"
        },
        "ChannelResult": {
            "additionalProperties": false,
            "properties": {
                "adjudicatorStatus": {
                    "enum": [
                        "Challenge",
                        "Open",
                        "Finalized"
                    ],
                    "type": "string"
                },
                "allocations": {
                    "items": {
                        "$ref": "#/definitions/Allocation"
                    },
                    "type": "array"
                },
                "appData": {
                    "type": "string"
                },
                "appDefinition": {
                    "$ref": "#/definitions/Address"
                },
                "channelId": {
                    "$ref": "#/definitions/ChannelId"
                },
                "fundingStatus": {
                    "$ref": "#/definitions/FundingStatus"
                },
                "participants": {
                    "items": {
                        "$ref": "#/definitions/Participant"
                    },
                    "type": "array"
                },
                "status": {
                    "$ref": "#/definitions/ChannelStatus"
                },
                "turnNum": {
                    "$ref": "#/definitions/Uint48"
                }
            },
            "required": [
                "participants",
                "allocations",
                "appData",
                "appDefinition",
                "channelId",
                "status",
                "turnNum",
                "adjudicatorStatus"
            ],
            "type": "object"
        },
        "ChannelStatus": {
            "enum": [
                "proposed",
                "opening",
                "funding",
                "running",
                "challenging",
                "responding",
                "closing",
                "closed"
            ],
            "type": "string"
        },
        "ChannelUpdatedNotification": {
            "$ref": "#/definitions/JsonRpcNotification%3C%22ChannelUpdated%22%2CChannelResult%3E"
        },
        "CloseAndWithdrawError": {
            "$ref": "#/definitions/JsonRpcError%3C200%2C%22User%20declined%22%3E"
        },
        "CloseAndWithdrawParams": {
            "additionalProperties": false,
            "properties": {
                "hubParticipantId": {
                    "type": "string"
                }
            },
            "required": [
                "hubParticipantId"
            ],
            "type": "object"
        },
        "CloseAndWithdrawRequest": {
            "$ref": "#/definitions/JsonRpcRequest%3C%22CloseAndWithdraw%22%2CCloseAndWithdrawParams%3E"
        },
        "CloseAndWithdrawResponse": {
            "$ref": "#/definitions/JsonRpcResponse%3Cstructure-1049299556-356-374-1049299556-339-375-1049299556-300-376-1049299556-0-498%3E"
        },
        "CloseChannelError": {
            "anyOf": [
                {
                    "$ref": "#/definitions/JsonRpcError%3C300%2C%22Not%20your%20turn%22%3E"
                },
                {
                    "$ref": "#/definitions/JsonRpcError%3C301%2C%22Channel%20not%20found%22%3E"
                }
            ]
        },
        "CloseChannelParams": {
            "additionalProperties": false,
            "properties": {
                "channelId": {
                    "$ref": "#/definitions/ChannelId"
                }
            },
            "required": [
                "channelId"
            ],
            "type": "object"
        },
        "CloseChannelRequest": {
            "$ref": "#/definitions/JsonRpcRequest%3C%22CloseChannel%22%2CCloseChannelParams%3E"
        },
        "CloseChannelResponse": {
            "$ref": "#/definitions/JsonRpcResponse%3CChannelResult%3E"
        },
        "CreateChannelError": {
            "anyOf": [
                {
                    "$ref": "#/definitions/JsonRpcError%3C1000%2C%22Could%20not%20find%20signing%20address%22%3E"
                },
                {
                    "$ref": "#/definitions/JsonRpcError%3C1001%2C%22Invalid%20App%20Definition%22%3E"
                }
            ]
        },
        "CreateChannelParams": {
            "additionalProperties": false,
            "properties": {
                "allocations": {
                    "items": {
                        "$ref": "#/definitions/Allocation"
                    },
                    "type": "array"
                },
                "appData": {
                    "type": "string"
                },
                "appDefinition": {
                    "$ref": "#/definitions/Address"
                },
                "challengeDuration": {
                    "type": "number"
                },
                "fundingLedgerChannelId": {
                    "$ref": "#/definitions/Address"
                },
                "fundingStrategy": {
                    "$ref": "#/definitions/FundingStrategy"
                },
                "participants": {
                    "items": {
                        "$ref": "#/definitions/Participant"
                    },
                    "type": "array"
                }
            },
            "required": [
                "participants",
                "allocations",
                "appDefinition",
                "appData",
                "fundingStrategy",
                "challengeDuration"
            ],
            "type": "object"
        },
        "CreateChannelRequest": {
            "$ref": "#/definitions/JsonRpcRequest%3C%22CreateChannel%22%2CCreateChannelParams%3E"
        },
        "CreateChannelResponse": {
            "$ref": "#/definitions/JsonRpcResponse%3CChannelResult%3E"
        },
        "DomainBudget": {
            "additionalProperties": false,
            "properties": {
                "budgets": {
                    "items": {
                        "$ref": "#/definitions/TokenBudget"
                    },
                    "type": "array"
                },
                "domain": {
                    "type": "string"
                },
                "hubAddress": {
                    "type": "string"
                }
            },
            "required": [
                "domain",
                "hubAddress",
                "budgets"
            ],
            "type": "object"
        },
        "EnableEthereumError": {
            "$ref": "#/definitions/JsonRpcError%3C100%2C%22Ethereum%20Not%20Enabled%22%3E"
        },
        "EnableEthereumRequest": {
            "$ref": "#/definitions/JsonRpcRequest%3C%22EnableEthereum%22%2Cstructure-152724555-295-298-152724555-262-299-152724555-168-300-152724555-0-574%3E"
        },
        "EnableEthereumResponse": {
            "$ref": "#/definitions/JsonRpcResponse%3Cstructure-152724555-354-440-152724555-337-441-152724555-300-442-152724555-0-574%3E"
        },
        "FundingStatus": {
            "enum": [
                "Uncategorized",
                "ReadyToFund",
                "Funded",
                "Defunded"
            ],
            "type": "string"
        },
        "FundingStrategy": {
            "enum": [
                "Direct",
                "Ledger",
                "Virtual",
                "Fake",
                "Unknown"
            ],
            "type": "string"
        },
        "GetBudgetParams": {
            "additionalProperties": false,
            "properties": {
                "hubParticipantId": {
                    "type": "string"
                }
            },
            "required": [
                "hubParticipantId"
            ],
            "type": "object"
        },
        "GetBudgetRequest": {
            "$ref": "#/definitions/JsonRpcRequest%3C%22GetBudget%22%2CGetBudgetParams%3E"
        },
        "GetBudgetResponse": {
            "$ref": "#/definitions/JsonRpcResponse%3C(DomainBudget%7Cstructure-310555162-379-382-310555162-365-382-310555162-348-383-310555162-259-384-310555162-0-385)%3E"
        },
        "GetChannelsRequest": {
            "$ref": "#/definitions/JsonRpcRequest%3C%22GetChannels%22%2Cstructure-1978982097-247-273-1978982097-217-274-1978982097-184-275-1978982097-0-344%3E"
        },
        "GetChannelsResponse": {
            "$ref": "#/definitions/JsonRpcResponse%3Cdef-interface-src_data-types.ts-3336-3684-src_data-types.ts-0-4103%5B%5D%3E"
        },
        "GetStateError": {
            "$ref": "#/definitions/JsonRpcError%3C1200%2C%22Could%20not%20find%20channel%22%3E"
        },
        "GetStateParams": {
            "additionalProperties": false,
            "properties": {
                "channelId": {
                    "$ref": "#/definitions/ChannelId"
                }
            },
            "required": [
                "channelId"
            ],
            "type": "object"
        },
        "GetStateRequest": {
            "$ref": "#/definitions/JsonRpcRequest%3C%22GetState%22%2CGetStateParams%3E"
        },
        "GetStateResponse": {
            "$ref": "#/definitions/JsonRpcResponse%3CChannelResult%3E"
        },
        "GetWalletInformationRequest": {
            "$ref": "#/definitions/JsonRpcRequest%3C%22GetWalletInformation%22%2Cstructure-91574456-250-253-91574456-211-254-91574456-111-255-91574456-0-416%3E"
        },
        "GetWalletInformationResponse": {
            "$ref": "#/definitions/JsonRpcResponse%3Cstructure-91574456-315-413-91574456-298-414-91574456-255-415-91574456-0-416%3E"
        },
        "InvalidAppData": {
            "$ref": "#/definitions/JsonRpcError%3C402%2C%22Invalid%20app%20data%22%2Cstructure-778394619-912-932-778394619-844-934-778394619-815-935-778394619-0-1239%3E"
        },
        "InvalidTransition": {
            "$ref": "#/definitions/JsonRpcError%3C401%2C%22Invalid%20transition%22%2Cstructure-778394619-742-812-778394619-669-814-778394619-637-815-778394619-0-1239%3E"
        },
        "JoinChannelError": {
            "anyOf": [
                {
                    "$ref": "#/definitions/JsonRpcError%3C1100%2C%22Could%20not%20find%20channel%22%3E"
                },
                {
                    "$ref": "#/definitions/JsonRpcError%3C1101%2C%22Invalid%20Transition%22%3E"
                }
            ]
        },
        "JoinChannelParams": {
            "additionalProperties": false,
            "properties": {
                "channelId": {
                    "$ref": "#/definitions/ChannelId"
                }
            },
            "required": [
                "channelId"
            ],
            "type": "object"
        },
        "JoinChannelRequest": {
            "$ref": "#/definitions/JsonRpcRequest%3C%22JoinChannel%22%2CJoinChannelParams%3E"
        },
        "JoinChannelResponse": {
            "$ref": "#/definitions/JsonRpcResponse%3CChannelResult%3E"
        },
        "JsonRpcError<100,\"Ethereum Not Enabled\">": {
            "additionalProperties": false,
            "description": "Specifies error object as per {@link https://www.jsonrpc.org/specification | JSON-RPC 2.0 Specification }",
            "properties": {
                "code": {
                    "const": 100,
                    "description": "Error code",
                    "type": "number"
                },
                "data": {
                    "description": "Error data",
                    "not": {}
                },
                "message": {
                    "const": "Ethereum Not Enabled",
                    "description": "Error message",
                    "type": "string"
                }
            },
            "required": [
                "code",
                "message"
            ],
            "type": "object"
        },
        "JsonRpcError<1000,\"Could not find signing address\">": {
            "additionalProperties": false,
            "description": "Specifies error object as per {@link https://www.jsonrpc.org/specification | JSON-RPC 2.0 Specification }",
            "properties": {
                "code": {
                    "const": 1000,
                    "description": "Error code",
                    "type": "number"
                },
                "data": {
                    "description": "Error data",
                    "not": {}
                },
                "message": {
                    "const": "Could not find signing address",
                    "description": "Error message",
                    "type": "string"
                }
            },
            "required": [
                "code",
                "message"
            ],
            "type": "object"
        },
        "JsonRpcError<1001,\"Invalid App Definition\">": {
            "additionalProperties": false,
            "description": "Specifies error object as per {@link https://www.jsonrpc.org/specification | JSON-RPC 2.0 Specification }",
            "properties": {
                "code": {
                    "const": 1001,
                    "description": "Error code",
                    "type": "number"
                },
                "data": {
                    "description": "Error data",
                    "not": {}
                },
                "message": {
                    "const": "Invalid App Definition",
                    "description": "Error message",
                    "type": "string"
                }
            },
            "required": [
                "code",
                "message"
            ],
            "type": "object"
        },
        "JsonRpcError<1100,\"Could not find channel\">": {
            "additionalProperties": false,
            "description": "Specifies error object as per {@link https://www.jsonrpc.org/specification | JSON-RPC 2.0 Specification }",
            "properties": {
                "code": {
                    "const": 1100,
                    "description": "Error code",
                    "type": "number"
                },
                "data": {
                    "description": "Error data",
                    "not": {}
                },
                "message": {
                    "const": "Could not find channel",
                    "description": "Error message",
                    "type": "string"
                }
            },
            "required": [
                "code",
                "message"
            ],
            "type": "object"
        },
        "JsonRpcError<1101,\"Invalid Transition\">": {
            "additionalProperties": false,
            "description": "Specifies error object as per {@link https://www.jsonrpc.org/specification | JSON-RPC 2.0 Specification }",
            "properties": {
                "code": {
                    "const": 1101,
                    "description": "Error code",
                    "type": "number"
                },
                "data": {
                    "description": "Error data",
                    "not": {}
                },
                "message": {
                    "const": "Invalid Transition",
                    "description": "Error message",
                    "type": "string"
                }
            },
            "required": [
                "code",
                "message"
            ],
            "type": "object"
        },
        "JsonRpcError<1200,\"Could not find channel\">": {
            "additionalProperties": false,
            "description": "Specifies error object as per {@link https://www.jsonrpc.org/specification | JSON-RPC 2.0 Specification }",
            "properties": {
                "code": {
                    "const": 1200,
                    "description": "Error code",
                    "type": "number"
                },
                "data": {
                    "description": "Error data",
                    "not": {}
                },
                "message": {
                    "const": "Could not find channel",
                    "description": "Error message",
                    "type": "string"
                }
            },
            "required": [
                "code",
                "message"
            ],
            "type": "object"
        },
        "JsonRpcError<1300,\"Could not find channel\">": {
            "additionalProperties": false,
            "description": "Specifies error object as per {@link https://www.jsonrpc.org/specification | JSON-RPC 2.0 Specification }",
            "properties": {
                "code": {
                    "const": 1300,
                    "description": "Error code",
                    "type": "number"
                },
                "data": {
                    "description": "Error data",
                    "not": {}
                },
                "message": {
                    "const": "Could not find channel",
                    "description": "Error message",
                    "type": "string"
                }
            },
            "required": [
                "code",
                "message"
            ],
            "type": "object"
        },
        "JsonRpcError<200,\"User declined\">": {
            "additionalProperties": false,
            "description": "Specifies error object as per {@link https://www.jsonrpc.org/specification | JSON-RPC 2.0 Specification }",
            "properties": {
                "code": {
                    "const": 200,
                    "description": "Error code",
                    "type": "number"
                },
                "data": {
                    "description": "Error data",
                    "not": {}
                },
                "message": {
                    "const": "User declined",
                    "description": "Error message",
                    "type": "string"
                }
            },
            "required": [
                "code",
                "message"
            ],
            "type": "object"
        },
        "JsonRpcError<300,\"Not your turn\">": {
            "additionalProperties": false,
            "description": "Specifies error object as per {@link https://www.jsonrpc.org/specification | JSON-RPC 2.0 Specification }",
            "properties": {
                "code": {
                    "const": 300,
                    "description": "Error code",
                    "type": "number"
                },
                "data": {
                    "description": "Error data",
                    "not": {}
                },
                "message": {
                    "const": "Not your turn",
                    "description": "Error message",
                    "type": "string"
                }
            },
            "required": [
                "code",
                "message"
            ],
            "type": "object"
        },
        "JsonRpcError<301,\"Channel not found\">": {
            "additionalProperties": false,
            "description": "Specifies error object as per {@link https://www.jsonrpc.org/specification | JSON-RPC 2.0 Specification }",
            "properties": {
                "code": {
                    "const": 301,
                    "description": "Error code",
                    "type": "number"
                },
                "data": {
                    "description": "Error data",
                    "not": {}
                },
                "message": {
                    "const": "Channel not found",
                    "description": "Error message",
                    "type": "string"
                }
            },
            "required": [
                "code",
                "message"
            ],
            "type": "object"
        },
        "JsonRpcError<400,\"Channel not found\">": {
            "additionalProperties": false,
            "description": "Specifies error object as per {@link https://www.jsonrpc.org/specification | JSON-RPC 2.0 Specification }",
            "properties": {
                "code": {
                    "const": 400,
                    "description": "Error code",
                    "type": "number"
                },
                "data": {
                    "description": "Error data",
                    "not": {}
                },
                "message": {
                    "const": "Channel not found",
                    "description": "Error message",
                    "type": "string"
                }
            },
            "required": [
                "code",
                "message"
            ],
            "type": "object"
        },
        "JsonRpcError<401,\"Invalid transition\",structure-778394619-742-812-778394619-669-814-778394619-637-815-778394619-0-1239>": {
            "additionalProperties": false,
            "description": "Specifies error object as per {@link https://www.jsonrpc.org/specification | JSON-RPC 2.0 Specification }",
            "properties": {
                "code": {
                    "const": 401,
                    "description": "Error code",
                    "type": "number"
                },
                "data": {
                    "additionalProperties": false,
                    "description": "Error data",
                    "properties": {
                        "channelStatus": {
                            "$ref": "#/definitions/ChannelStatus"
                        },
                        "proposedUpdate": {
                            "$ref": "#/definitions/UpdateChannelParams"
                        }
                    },
                    "required": [
                        "channelStatus",
                        "proposedUpdate"
                    ],
                    "type": "object"
                },
                "message": {
                    "const": "Invalid transition",
                    "description": "Error message",
                    "type": "string"
                }
            },
            "required": [
                "code",
                "message"
            ],
            "type": "object"
        },
        "JsonRpcError<402,\"Invalid app data\",structure-778394619-912-932-778394619-844-934-778394619-815-935-778394619-0-1239>": {
            "additionalProperties": false,
            "description": "Specifies error object as per {@link https://www.jsonrpc.org/specification | JSON-RPC 2.0 Specification }",
            "properties": {
                "code": {
                    "const": 402,
                    "description": "Error code",
                    "type": "number"
                },
                "data": {
                    "additionalProperties": false,
                    "description": "Error data",
                    "properties": {
                        "appData": {
                            "type": "string"
                        }
                    },
                    "required": [
                        "appData"
                    ],
                    "type": "object"
                },
                "message": {
                    "const": "Invalid app data",
                    "description": "Error message",
                    "type": "string"
                }
            },
            "required": [
                "code",
                "message"
            ],
            "type": "object"
        },
        "JsonRpcError<403,\"Not your turn\">": {
            "additionalProperties": false,
            "description": "Specifies error object as per {@link https://www.jsonrpc.org/specification | JSON-RPC 2.0 Specification }",
            "properties": {
                "code": {
                    "const": 403,
                    "description": "Error code",
                    "type": "number"
                },
                "data": {
                    "description": "Error data",
                    "not": {}
                },
                "message": {
                    "const": "Not your turn",
                    "description": "Error message",
                    "type": "string"
                }
            },
            "required": [
                "code",
                "message"
            ],
            "type": "object"
        },
        "JsonRpcError<404,\"Channel closed\">": {
            "additionalProperties": false,
            "description": "Specifies error object as per {@link https://www.jsonrpc.org/specification | JSON-RPC 2.0 Specification }",
            "properties": {
                "code": {
                    "const": 404,
                    "description": "Error code",
                    "type": "number"
                },
                "data": {
                    "description": "Error data",
                    "not": {}
                },
                "message": {
                    "const": "Channel closed",
                    "description": "Error message",
                    "type": "string"
                }
            },
            "required": [
                "code",
                "message"
            ],
            "type": "object"
        },
        "JsonRpcError<500,\"Wallet error\">": {
            "additionalProperties": false,
            "description": "Specifies error object as per {@link https://www.jsonrpc.org/specification | JSON-RPC 2.0 Specification }",
            "properties": {
                "code": {
                    "const": 500,
                    "description": "Error code",
                    "type": "number"
                },
                "data": {
                    "description": "Error data",
                    "not": {}
                },
                "message": {
                    "const": "Wallet error",
                    "description": "Error message",
                    "type": "string"
                }
            },
            "required": [
                "code",
                "message"
            ],
            "type": "object"
        },
        "JsonRpcError<900,\"Wrong participant\">": {
            "additionalProperties": false,
            "description": "Specifies error object as per {@link https://www.jsonrpc.org/specification | JSON-RPC 2.0 Specification }",
            "properties": {
                "code": {
                    "const": 900,
                    "description": "Error code",
                    "type": "number"
                },
                "data": {
                    "description": "Error data",
                    "not": {}
                },
                "message": {
                    "const": "Wrong participant",
                    "description": "Error message",
                    "type": "string"
                }
            },
            "required": [
                "code",
                "message"
            ],
            "type": "object"
        },
        "JsonRpcErrorResponse<StateChannelsError>": {
            "additionalProperties": false,
            "description": "Specifies response headers as per {@link https://www.jsonrpc.org/specification | JSON-RPC 2.0 Specification }",
            "properties": {
                "error": {
                    "$ref": "#/definitions/StateChannelsError",
                    "description": "The generic type of the response"
                },
                "id": {
                    "description": "Identifier for the response",
                    "type": "number"
                },
                "jsonrpc": {
                    "const": "2.0",
                    "description": "Spec version",
                    "type": "string"
                }
            },
            "required": [
                "id",
                "jsonrpc",
                "error"
            ],
            "type": "object"
        },
        "JsonRpcNotification<\"BudgetUpdated\",DomainBudget>": {
            "additionalProperties": false,
            "description": "Specifies notification headers as per {@link https://www.jsonrpc.org/specification | JSON-RPC 2.0 Specification }",
            "properties": {
                "jsonrpc": {
                    "const": "2.0",
                    "description": "Spec version",
                    "type": "string"
                },
                "method": {
                    "const": "BudgetUpdated",
                    "description": "Generic type of the Notification name",
                    "type": "string"
                },
                "params": {
                    "$ref": "#/definitions/DomainBudget",
                    "description": "Generic type of the Notification parameters"
                }
            },
            "required": [
                "jsonrpc",
                "method",
                "params"
            ],
            "type": "object"
        },
        "JsonRpcNotification<\"ChannelClosed\",ChannelResult>": {
            "additionalProperties": false,
            "description": "Specifies notification headers as per {@link https://www.jsonrpc.org/specification | JSON-RPC 2.0 Specification }",
            "properties": {
                "jsonrpc": {
                    "const": "2.0",
                    "description": "Spec version",
                    "type": "string"
                },
                "method": {
                    "const": "ChannelClosed",
                    "description": "Generic type of the Notification name",
                    "type": "string"
                },
                "params": {
                    "$ref": "#/definitions/ChannelResult",
                    "description": "Generic type of the Notification parameters"
                }
            },
            "required": [
                "jsonrpc",
                "method",
                "params"
            ],
            "type": "object"
        },
        "JsonRpcNotification<\"ChannelProposed\",ChannelResult>": {
            "additionalProperties": false,
            "description": "Specifies notification headers as per {@link https://www.jsonrpc.org/specification | JSON-RPC 2.0 Specification }",
            "properties": {
                "jsonrpc": {
                    "const": "2.0",
                    "description": "Spec version",
                    "type": "string"
                },
                "method": {
                    "const": "ChannelProposed",
                    "description": "Generic type of the Notification name",
                    "type": "string"
                },
                "params": {
                    "$ref": "#/definitions/ChannelResult",
                    "description": "Generic type of the Notification parameters"
                }
            },
            "required": [
                "jsonrpc",
                "method",
                "params"
            ],
            "type": "object"
        },
        "JsonRpcNotification<\"ChannelUpdated\",ChannelResult>": {
            "additionalProperties": false,
            "description": "Specifies notification headers as per {@link https://www.jsonrpc.org/specification | JSON-RPC 2.0 Specification }",
            "properties": {
                "jsonrpc": {
                    "const": "2.0",
                    "description": "Spec version",
                    "type": "string"
                },
                "method": {
                    "const": "ChannelUpdated",
                    "description": "Generic type of the Notification name",
                    "type": "string"
                },
                "params": {
                    "$ref": "#/definitions/ChannelResult",
                    "description": "Generic type of the Notification parameters"
                }
            },
            "required": [
                "jsonrpc",
                "method",
                "params"
            ],
            "type": "object"
        },
        "JsonRpcNotification<\"MessageQueued\",Message>": {
            "additionalProperties": false,
            "description": "Specifies notification headers as per {@link https://www.jsonrpc.org/specification | JSON-RPC 2.0 Specification }",
            "properties": {
                "jsonrpc": {
                    "const": "2.0",
                    "description": "Spec version",
                    "type": "string"
                },
                "method": {
                    "const": "MessageQueued",
                    "description": "Generic type of the Notification name",
                    "type": "string"
                },
                "params": {
                    "$ref": "#/definitions/Message",
                    "description": "Generic type of the Notification parameters"
                }
            },
            "required": [
                "jsonrpc",
                "method",
                "params"
            ],
            "type": "object"
        },
        "JsonRpcNotification<\"UIUpdate\",structure-148781504-869-891-148781504-837-892-148781504-808-893-148781504-0-1484>": {
            "additionalProperties": false,
            "description": "Specifies notification headers as per {@link https://www.jsonrpc.org/specification | JSON-RPC 2.0 Specification }",
            "properties": {
                "jsonrpc": {
                    "const": "2.0",
                    "description": "Spec version",
                    "type": "string"
                },
                "method": {
                    "const": "UIUpdate",
                    "description": "Generic type of the Notification name",
                    "type": "string"
                },
                "params": {
                    "additionalProperties": false,
                    "description": "Generic type of the Notification parameters",
                    "properties": {
                        "showWallet": {
                            "type": "boolean"
                        }
                    },
                    "required": [
                        "showWallet"
                    ],
                    "type": "object"
                }
            },
            "required": [
                "jsonrpc",
                "method",
                "params"
            ],
            "type": "object"
        },
        "JsonRpcNotification<\"WalletReady\",structure-148781504-1011-1014-148781504-976-1015-148781504-893-1016-148781504-0-1484>": {
            "additionalProperties": false,
            "description": "Specifies notification headers as per {@link https://www.jsonrpc.org/specification | JSON-RPC 2.0 Specification }",
            "properties": {
                "jsonrpc": {
                    "const": "2.0",
                    "description": "Spec version",
                    "type": "string"
                },
                "method": {
                    "const": "WalletReady",
                    "description": "Generic type of the Notification name",
                    "type": "string"
                },
                "params": {
                    "additionalProperties": false,
                    "description": "Generic type of the Notification parameters",
                    "type": "object"
                }
            },
            "required": [
                "jsonrpc",
                "method",
                "params"
            ],
            "type": "object"
        },
        "JsonRpcRequest<\"ApproveBudgetAndFund\",ApproveBudgetAndFundParams>": {
            "additionalProperties": false,
            "description": "Specifies request headers as per {@link https://www.jsonrpc.org/specification | JSON-RPC 2.0 Specification }",
            "properties": {
                "id": {
                    "description": "Identifier for the resquest",
                    "type": "number"
                },
                "jsonrpc": {
                    "const": "2.0",
                    "description": "Spec version",
                    "type": "string"
                },
                "method": {
                    "const": "ApproveBudgetAndFund",
                    "description": "Generic type of the request method",
                    "type": "string"
                },
                "params": {
                    "$ref": "#/definitions/ApproveBudgetAndFundParams",
                    "description": "Request parameters"
                }
            },
            "required": [
                "id",
                "jsonrpc",
                "method",
                "params"
            ],
            "type": "object"
        },
        "JsonRpcRequest<\"ChallengeChannel\",ChallengeChannelParams>": {
            "additionalProperties": false,
            "description": "Specifies request headers as per {@link https://www.jsonrpc.org/specification | JSON-RPC 2.0 Specification }",
            "properties": {
                "id": {
                    "description": "Identifier for the resquest",
                    "type": "number"
                },
                "jsonrpc": {
                    "const": "2.0",
                    "description": "Spec version",
                    "type": "string"
                },
                "method": {
                    "const": "ChallengeChannel",
                    "description": "Generic type of the request method",
                    "type": "string"
                },
                "params": {
                    "$ref": "#/definitions/ChallengeChannelParams",
                    "description": "Request parameters"
                }
            },
            "required": [
                "id",
                "jsonrpc",
                "method",
                "params"
            ],
            "type": "object"
        },
        "JsonRpcRequest<\"CloseAndWithdraw\",CloseAndWithdrawParams>": {
            "additionalProperties": false,
            "description": "Specifies request headers as per {@link https://www.jsonrpc.org/specification | JSON-RPC 2.0 Specification }",
            "properties": {
                "id": {
                    "description": "Identifier for the resquest",
                    "type": "number"
                },
                "jsonrpc": {
                    "const": "2.0",
                    "description": "Spec version",
                    "type": "string"
                },
                "method": {
                    "const": "CloseAndWithdraw",
                    "description": "Generic type of the request method",
                    "type": "string"
                },
                "params": {
                    "$ref": "#/definitions/CloseAndWithdrawParams",
                    "description": "Request parameters"
                }
            },
            "required": [
                "id",
                "jsonrpc",
                "method",
                "params"
            ],
            "type": "object"
        },
        "JsonRpcRequest<\"CloseChannel\",CloseChannelParams>": {
            "additionalProperties": false,
            "description": "Specifies request headers as per {@link https://www.jsonrpc.org/specification | JSON-RPC 2.0 Specification }",
            "properties": {
                "id": {
                    "description": "Identifier for the resquest",
                    "type": "number"
                },
                "jsonrpc": {
                    "const": "2.0",
                    "description": "Spec version",
                    "type": "string"
                },
                "method": {
                    "const": "CloseChannel",
                    "description": "Generic type of the request method",
                    "type": "string"
                },
                "params": {
                    "$ref": "#/definitions/CloseChannelParams",
                    "description": "Request parameters"
                }
            },
            "required": [
                "id",
                "jsonrpc",
                "method",
                "params"
            ],
            "type": "object"
        },
        "JsonRpcRequest<\"CreateChannel\",CreateChannelParams>": {
            "additionalProperties": false,
            "description": "Specifies request headers as per {@link https://www.jsonrpc.org/specification | JSON-RPC 2.0 Specification }",
            "properties": {
                "id": {
                    "description": "Identifier for the resquest",
                    "type": "number"
                },
                "jsonrpc": {
                    "const": "2.0",
                    "description": "Spec version",
                    "type": "string"
                },
                "method": {
                    "const": "CreateChannel",
                    "description": "Generic type of the request method",
                    "type": "string"
                },
                "params": {
                    "$ref": "#/definitions/CreateChannelParams",
                    "description": "Request parameters"
                }
            },
            "required": [
                "id",
                "jsonrpc",
                "method",
                "params"
            ],
            "type": "object"
        },
        "JsonRpcRequest<\"EnableEthereum\",structure-152724555-295-298-152724555-262-299-152724555-168-300-152724555-0-574>": {
            "additionalProperties": false,
            "description": "Specifies request headers as per {@link https://www.jsonrpc.org/specification | JSON-RPC 2.0 Specification }",
            "properties": {
                "id": {
                    "description": "Identifier for the resquest",
                    "type": "number"
                },
                "jsonrpc": {
                    "const": "2.0",
                    "description": "Spec version",
                    "type": "string"
                },
                "method": {
                    "const": "EnableEthereum",
                    "description": "Generic type of the request method",
                    "type": "string"
                },
                "params": {
                    "additionalProperties": false,
                    "description": "Request parameters",
                    "type": "object"
                }
            },
            "required": [
                "id",
                "jsonrpc",
                "method",
                "params"
            ],
            "type": "object"
        },
        "JsonRpcRequest<\"GetBudget\",GetBudgetParams>": {
            "additionalProperties": false,
            "description": "Specifies request headers as per {@link https://www.jsonrpc.org/specification | JSON-RPC 2.0 Specification }",
            "properties": {
                "id": {
                    "description": "Identifier for the resquest",
                    "type": "number"
                },
                "jsonrpc": {
                    "const": "2.0",
                    "description": "Spec version",
                    "type": "string"
                },
                "method": {
                    "const": "GetBudget",
                    "description": "Generic type of the request method",
                    "type": "string"
                },
                "params": {
                    "$ref": "#/definitions/GetBudgetParams",
                    "description": "Request parameters"
                }
            },
            "required": [
                "id",
                "jsonrpc",
                "method",
                "params"
            ],
            "type": "object"
        },
        "JsonRpcRequest<\"GetChannels\",structure-1978982097-247-273-1978982097-217-274-1978982097-184-275-1978982097-0-344>": {
            "additionalProperties": false,
            "description": "Specifies request headers as per {@link https://www.jsonrpc.org/specification | JSON-RPC 2.0 Specification }",
            "properties": {
                "id": {
                    "description": "Identifier for the resquest",
                    "type": "number"
                },
                "jsonrpc": {
                    "const": "2.0",
                    "description": "Spec version",
                    "type": "string"
                },
                "method": {
                    "const": "GetChannels",
                    "description": "Generic type of the request method",
                    "type": "string"
                },
                "params": {
                    "additionalProperties": false,
                    "description": "Request parameters",
                    "properties": {
                        "includeClosed": {
                            "type": "boolean"
                        }
                    },
                    "type": "object"
                }
            },
            "required": [
                "id",
                "jsonrpc",
                "method",
                "params"
            ],
            "type": "object"
        },
        "JsonRpcRequest<\"GetState\",GetStateParams>": {
            "additionalProperties": false,
            "description": "Specifies request headers as per {@link https://www.jsonrpc.org/specification | JSON-RPC 2.0 Specification }",
            "properties": {
                "id": {
                    "description": "Identifier for the resquest",
                    "type": "number"
                },
                "jsonrpc": {
                    "const": "2.0",
                    "description": "Spec version",
                    "type": "string"
                },
                "method": {
                    "const": "GetState",
                    "description": "Generic type of the request method",
                    "type": "string"
                },
                "params": {
                    "$ref": "#/definitions/GetStateParams",
                    "description": "Request parameters"
                }
            },
            "required": [
                "id",
                "jsonrpc",
                "method",
                "params"
            ],
            "type": "object"
        },
        "JsonRpcRequest<\"GetWalletInformation\",structure-91574456-250-253-91574456-211-254-91574456-111-255-91574456-0-416>": {
            "additionalProperties": false,
            "description": "Specifies request headers as per {@link https://www.jsonrpc.org/specification | JSON-RPC 2.0 Specification }",
            "properties": {
                "id": {
                    "description": "Identifier for the resquest",
                    "type": "number"
                },
                "jsonrpc": {
                    "const": "2.0",
                    "description": "Spec version",
                    "type": "string"
                },
                "method": {
                    "const": "GetWalletInformation",
                    "description": "Generic type of the request method",
                    "type": "string"
                },
                "params": {
                    "additionalProperties": false,
                    "description": "Request parameters",
                    "type": "object"
                }
            },
            "required": [
                "id",
                "jsonrpc",
                "method",
                "params"
            ],
            "type": "object"
        },
        "JsonRpcRequest<\"JoinChannel\",JoinChannelParams>": {
            "additionalProperties": false,
            "description": "Specifies request headers as per {@link https://www.jsonrpc.org/specification | JSON-RPC 2.0 Specification }",
            "properties": {
                "id": {
                    "description": "Identifier for the resquest",
                    "type": "number"
                },
                "jsonrpc": {
                    "const": "2.0",
                    "description": "Spec version",
                    "type": "string"
                },
                "method": {
                    "const": "JoinChannel",
                    "description": "Generic type of the request method",
                    "type": "string"
                },
                "params": {
                    "$ref": "#/definitions/JoinChannelParams",
                    "description": "Request parameters"
                }
            },
            "required": [
                "id",
                "jsonrpc",
                "method",
                "params"
            ],
            "type": "object"
        },
        "JsonRpcRequest<\"PushMessage\",Message>": {
            "additionalProperties": false,
            "description": "Specifies request headers as per {@link https://www.jsonrpc.org/specification | JSON-RPC 2.0 Specification }",
            "properties": {
                "id": {
                    "description": "Identifier for the resquest",
                    "type": "number"
                },
                "jsonrpc": {
                    "const": "2.0",
                    "description": "Spec version",
                    "type": "string"
                },
                "method": {
                    "const": "PushMessage",
                    "description": "Generic type of the request method",
                    "type": "string"
                },
                "params": {
                    "$ref": "#/definitions/Message",
                    "description": "Request parameters"
                }
            },
            "required": [
                "id",
                "jsonrpc",
                "method",
                "params"
            ],
            "type": "object"
        },
        "JsonRpcRequest<\"SyncChannel\",SyncChannelParams>": {
            "additionalProperties": false,
            "description": "Specifies request headers as per {@link https://www.jsonrpc.org/specification | JSON-RPC 2.0 Specification }",
            "properties": {
                "id": {
                    "description": "Identifier for the resquest",
                    "type": "number"
                },
                "jsonrpc": {
                    "const": "2.0",
                    "description": "Spec version",
                    "type": "string"
                },
                "method": {
                    "const": "SyncChannel",
                    "description": "Generic type of the request method",
                    "type": "string"
                },
                "params": {
                    "$ref": "#/definitions/SyncChannelParams",
                    "description": "Request parameters"
                }
            },
            "required": [
                "id",
                "jsonrpc",
                "method",
                "params"
            ],
            "type": "object"
        },
        "JsonRpcRequest<\"UpdateChannel\",UpdateChannelParams>": {
            "additionalProperties": false,
            "description": "Specifies request headers as per {@link https://www.jsonrpc.org/specification | JSON-RPC 2.0 Specification }",
            "properties": {
                "id": {
                    "description": "Identifier for the resquest",
                    "type": "number"
                },
                "jsonrpc": {
                    "const": "2.0",
                    "description": "Spec version",
                    "type": "string"
                },
                "method": {
                    "const": "UpdateChannel",
                    "description": "Generic type of the request method",
                    "type": "string"
                },
                "params": {
                    "$ref": "#/definitions/UpdateChannelParams",
                    "description": "Request parameters"
                }
            },
            "required": [
                "id",
                "jsonrpc",
                "method",
                "params"
            ],
            "type": "object"
        },
        "JsonRpcResponse<(DomainBudget|structure-310555162-379-382-310555162-365-382-310555162-348-383-310555162-259-384-310555162-0-385)>": {
            "additionalProperties": false,
            "description": "Specifies response headers as per {@link https://www.jsonrpc.org/specification | JSON-RPC 2.0 Specification }",
            "properties": {
                "id": {
                    "description": "Identifier for the response",
                    "type": "number"
                },
                "jsonrpc": {
                    "const": "2.0",
                    "description": "Spec version",
                    "type": "string"
                },
                "result": {
                    "anyOf": [
                        {
                            "$ref": "#/definitions/DomainBudget"
                        },
                        {
                            "additionalProperties": false,
                            "type": "object"
                        }
                    ],
                    "description": "The generic type of the response"
                }
            },
            "required": [
                "id",
                "jsonrpc",
                "result"
            ],
            "type": "object"
        },
        "JsonRpcResponse<ChannelResult>": {
            "additionalProperties": false,
            "description": "Specifies response headers as per {@link https://www.jsonrpc.org/specification | JSON-RPC 2.0 Specification }",
            "properties": {
                "id": {
                    "description": "Identifier for the response",
                    "type": "number"
                },
                "jsonrpc": {
                    "const": "2.0",
                    "description": "Spec version",
                    "type": "string"
                },
                "result": {
                    "$ref": "#/definitions/ChannelResult",
                    "description": "The generic type of the response"
                }
            },
            "required": [
                "id",
                "jsonrpc",
                "result"
            ],
            "type": "object"
        },
        "JsonRpcResponse<DomainBudget>": {
            "additionalProperties": false,
            "description": "Specifies response headers as per {@link https://www.jsonrpc.org/specification | JSON-RPC 2.0 Specification }",
            "properties": {
                "id": {
                    "description": "Identifier for the response",
                    "type": "number"
                },
                "jsonrpc": {
                    "const": "2.0",
                    "description": "Spec version",
                    "type": "string"
                },
                "result": {
                    "$ref": "#/definitions/DomainBudget",
                    "description": "The generic type of the response"
                }
            },
            "required": [
                "id",
                "jsonrpc",
                "result"
            ],
            "type": "object"
        },
        "JsonRpcResponse<PushMessageResult>": {
            "additionalProperties": false,
            "description": "Specifies response headers as per {@link https://www.jsonrpc.org/specification | JSON-RPC 2.0 Specification }",
            "properties": {
                "id": {
                    "description": "Identifier for the response",
                    "type": "number"
                },
                "jsonrpc": {
                    "const": "2.0",
                    "description": "Spec version",
                    "type": "string"
                },
                "result": {
                    "$ref": "#/definitions/PushMessageResult",
                    "description": "The generic type of the response"
                }
            },
            "required": [
                "id",
                "jsonrpc",
                "result"
            ],
            "type": "object"
        },
        "JsonRpcResponse<def-interface-src_data-types.ts-3336-3684-src_data-types.ts-0-4103[]>": {
            "additionalProperties": false,
            "description": "Specifies response headers as per {@link https://www.jsonrpc.org/specification | JSON-RPC 2.0 Specification }",
            "properties": {
                "id": {
                    "description": "Identifier for the response",
                    "type": "number"
                },
                "jsonrpc": {
                    "const": "2.0",
                    "description": "Spec version",
                    "type": "string"
                },
                "result": {
                    "description": "The generic type of the response",
                    "items": {
                        "$ref": "#/definitions/ChannelResult"
                    },
                    "type": "array"
                }
            },
            "required": [
                "id",
                "jsonrpc",
                "result"
            ],
            "type": "object"
        },
        "JsonRpcResponse<structure-1049299556-356-374-1049299556-339-375-1049299556-300-376-1049299556-0-498>": {
            "additionalProperties": false,
            "description": "Specifies response headers as per {@link https://www.jsonrpc.org/specification | JSON-RPC 2.0 Specification }",
            "properties": {
                "id": {
                    "description": "Identifier for the response",
                    "type": "number"
                },
                "jsonrpc": {
                    "const": "2.0",
                    "description": "Spec version",
                    "type": "string"
                },
                "result": {
                    "additionalProperties": false,
                    "description": "The generic type of the response",
                    "properties": {
                        "success": {
                            "type": "boolean"
                        }
                    },
                    "required": [
                        "success"
                    ],
                    "type": "object"
                }
            },
            "required": [
                "id",
                "jsonrpc",
                "result"
            ],
            "type": "object"
        },
        "JsonRpcResponse<structure-1193164467-438-440-1193164467-421-441-1193164467-330-442-1193164467-0-627>": {
            "additionalProperties": false,
            "description": "Specifies response headers as per {@link https://www.jsonrpc.org/specification | JSON-RPC 2.0 Specification }",
            "properties": {
                "id": {
                    "description": "Identifier for the response",
                    "type": "number"
                },
                "jsonrpc": {
                    "const": "2.0",
                    "description": "Spec version",
                    "type": "string"
                },
                "result": {
                    "additionalProperties": false,
                    "description": "The generic type of the response",
                    "type": "object"
                }
            },
            "required": [
                "id",
                "jsonrpc",
                "result"
            ],
            "type": "object"
        },
        "JsonRpcResponse<structure-152724555-354-440-152724555-337-441-152724555-300-442-152724555-0-574>": {
            "additionalProperties": false,
            "description": "Specifies response headers as per {@link https://www.jsonrpc.org/specification | JSON-RPC 2.0 Specification }",
            "properties": {
                "id": {
                    "description": "Identifier for the response",
                    "type": "number"
                },
                "jsonrpc": {
                    "const": "2.0",
                    "description": "Spec version",
                    "type": "string"
                },
                "result": {
                    "additionalProperties": false,
                    "description": "The generic type of the response",
                    "properties": {
                        "destinationAddress": {
                            "$ref": "#/definitions/Address"
                        },
                        "signingAddress": {
                            "$ref": "#/definitions/Address"
                        },
                        "walletVersion": {
                            "type": "string"
                        }
                    },
                    "required": [
                        "signingAddress",
                        "destinationAddress",
                        "walletVersion"
                    ],
                    "type": "object"
                }
            },
            "required": [
                "id",
                "jsonrpc",
                "result"
            ],
            "type": "object"
        },
        "JsonRpcResponse<structure-91574456-315-413-91574456-298-414-91574456-255-415-91574456-0-416>": {
            "additionalProperties": false,
            "description": "Specifies response headers as per {@link https://www.jsonrpc.org/specification | JSON-RPC 2.0 Specification }",
            "properties": {
                "id": {
                    "description": "Identifier for the response",
                    "type": "number"
                },
                "jsonrpc": {
                    "const": "2.0",
                    "description": "Spec version",
                    "type": "string"
                },
                "result": {
                    "additionalProperties": false,
                    "description": "The generic type of the response",
                    "properties": {
                        "destinationAddress": {
                            "$ref": "#/definitions/Address"
                        },
                        "signingAddress": {
                            "$ref": "#/definitions/Address"
                        },
                        "walletVersion": {
                            "type": "string"
                        }
                    },
                    "required": [
                        "signingAddress",
                        "walletVersion"
                    ],
                    "type": "object"
                }
            },
            "required": [
                "id",
                "jsonrpc",
                "result"
            ],
            "type": "object"
        },
        "Message": {
            "additionalProperties": false,
            "description": "Format of message sent from the wallet to the app",
            "properties": {
                "data": {
                    "description": "Message payload. Format defined by wallet and opaque to app."
                },
                "recipient": {
                    "description": "Identifier of user that the message should be relayed to",
                    "type": "string"
                },
                "sender": {
                    "description": "Identifier of user that the message is from",
                    "type": "string"
                }
            },
            "required": [
                "recipient",
                "data"
            ],
            "type": "object"
        },
        "MessageQueuedNotification": {
            "$ref": "#/definitions/JsonRpcNotification%3C%22MessageQueued%22%2CMessage%3E"
        },
        "NotYourTurn": {
            "$ref": "#/definitions/JsonRpcError%3C403%2C%22Not%20your%20turn%22%3E"
        },
        "Participant": {
            "additionalProperties": false,
            "description": "Container for data specific to a single state channel participant",
            "properties": {
                "destination": {
                    "$ref": "#/definitions/Address",
                    "description": "Address of EOA to receive channel proceeds (the account that'll get the funds)."
                },
                "participantId": {
                    "description": "App allocated id, used for relaying messages to the participant",
                    "type": "string"
                },
                "signingAddress": {
                    "$ref": "#/definitions/Address",
                    "description": "Address used to sign channel updates"
                }
            },
            "required": [
                "participantId",
                "signingAddress",
                "destination"
            ],
            "type": "object"
        },
        "PushMessageError": {
            "$ref": "#/definitions/JsonRpcError%3C900%2C%22Wrong%20participant%22%3E"
        },
        "PushMessageRequest": {
            "$ref": "#/definitions/JsonRpcRequest%3C%22PushMessage%22%2CMessage%3E"
        },
        "PushMessageResponse": {
            "$ref": "#/definitions/JsonRpcResponse%3CPushMessageResult%3E"
        },
        "PushMessageResult": {
            "additionalProperties": false,
            "properties": {
                "success": {
                    "type": "boolean"
                }
            },
            "required": [
                "success"
            ],
            "type": "object"
        },
        "StateChannelsError": {
            "anyOf": [
                {
                    "$ref": "#/definitions/EnableEthereumError"
                },
                {
                    "$ref": "#/definitions/CloseAndWithdrawError"
                },
                {
                    "$ref": "#/definitions/CloseChannelError"
                },
                {
                    "$ref": "#/definitions/UpdateChannelError"
                },
                {
                    "$ref": "#/definitions/PushMessageError"
                },
                {
                    "$ref": "#/definitions/JoinChannelError"
                },
                {
                    "$ref": "#/definitions/GetStateError"
                },
                {
                    "$ref": "#/definitions/CreateChannelError"
                },
                {
                    "$ref": "#/definitions/ChallengeChannelError"
                },
                {
                    "$ref": "#/definitions/JsonRpcError%3C500%2C%22Wallet%20error%22%3E"
                }
            ]
        },
        "StateChannelsErrorResponse": {
            "$ref": "#/definitions/JsonRpcErrorResponse%3CStateChannelsError%3E"
        },
        "StateChannelsJsonRpcMessage": {
            "anyOf": [
                {
                    "$ref": "#/definitions/StateChannelsRequest"
                },
                {
                    "$ref": "#/definitions/StateChannelsResponse"
                },
                {
                    "$ref": "#/definitions/StateChannelsNotification"
                },
                {
                    "$ref": "#/definitions/StateChannelsErrorResponse"
                }
            ]
        },
        "StateChannelsNotification": {
            "anyOf": [
                {
                    "$ref": "#/definitions/ChannelProposedNotification"
                },
                {
                    "$ref": "#/definitions/ChannelUpdatedNotification"
                },
                {
                    "$ref": "#/definitions/ChannelClosingNotification"
                },
                {
                    "$ref": "#/definitions/BudgetUpdatedNotification"
                },
                {
                    "$ref": "#/definitions/MessageQueuedNotification"
                },
                {
                    "$ref": "#/definitions/UiNotification"
                },
                {
                    "$ref": "#/definitions/WalletReady"
                }
            ]
        },
        "StateChannelsRequest": {
            "anyOf": [
                {
                    "$ref": "#/definitions/CreateChannelRequest"
                },
                {
                    "$ref": "#/definitions/SyncChannelRequest"
                },
                {
                    "$ref": "#/definitions/JoinChannelRequest"
                },
                {
                    "$ref": "#/definitions/UpdateChannelRequest"
                },
                {
                    "$ref": "#/definitions/GetWalletInformationRequest"
                },
                {
                    "$ref": "#/definitions/EnableEthereumRequest"
                },
                {
                    "$ref": "#/definitions/GetStateRequest"
                },
                {
                    "$ref": "#/definitions/PushMessageRequest"
                },
                {
                    "$ref": "#/definitions/ChallengeChannelRequest"
                },
                {
                    "$ref": "#/definitions/GetBudgetRequest"
                },
                {
                    "$ref": "#/definitions/ApproveBudgetAndFundRequest"
                },
                {
                    "$ref": "#/definitions/CloseChannelRequest"
                },
                {
                    "$ref": "#/definitions/CloseAndWithdrawRequest"
                },
                {
                    "$ref": "#/definitions/GetChannelsRequest"
                }
            ]
        },
        "StateChannelsResponse": {
            "anyOf": [
                {
                    "$ref": "#/definitions/CreateChannelResponse"
                },
                {
                    "$ref": "#/definitions/SyncChannelResponse"
                },
                {
                    "$ref": "#/definitions/JoinChannelResponse"
                },
                {
                    "$ref": "#/definitions/UpdateChannelResponse"
                },
                {
                    "$ref": "#/definitions/GetWalletInformationResponse"
                },
                {
                    "$ref": "#/definitions/EnableEthereumResponse"
                },
                {
                    "$ref": "#/definitions/GetStateResponse"
                },
                {
                    "$ref": "#/definitions/PushMessageResponse"
                },
                {
                    "$ref": "#/definitions/ChallengeChannelResponse"
                },
                {
                    "$ref": "#/definitions/GetBudgetResponse"
                },
                {
                    "$ref": "#/definitions/CloseChannelResponse"
                },
                {
                    "$ref": "#/definitions/ApproveBudgetAndFundResponse"
                },
                {
                    "$ref": "#/definitions/CloseAndWithdrawResponse"
                },
                {
                    "$ref": "#/definitions/GetChannelsResponse"
                }
            ]
        },
        "SyncChannelParams": {
            "additionalProperties": false,
            "properties": {
                "channelId": {
                    "$ref": "#/definitions/ChannelId"
                }
            },
            "required": [
                "channelId"
            ],
            "type": "object"
        },
        "SyncChannelRequest": {
            "$ref": "#/definitions/JsonRpcRequest%3C%22SyncChannel%22%2CSyncChannelParams%3E"
        },
        "SyncChannelResponse": {
            "$ref": "#/definitions/JsonRpcResponse%3Cstructure-1193164467-438-440-1193164467-421-441-1193164467-330-442-1193164467-0-627%3E"
        },
        "TokenBudget": {
            "additionalProperties": false,
            "properties": {
                "asset": {
                    "$ref": "#/definitions/Address"
                },
                "availableReceiveCapacity": {
                    "$ref": "#/definitions/Uint256"
                },
                "availableSendCapacity": {
                    "$ref": "#/definitions/Uint256"
                },
                "channels": {
                    "items": {
                        "$ref": "#/definitions/ChannelBudget"
                    },
                    "type": "array"
                }
            },
            "required": [
                "asset",
                "availableReceiveCapacity",
                "availableSendCapacity",
                "channels"
            ],
            "type": "object"
        },
        "UiNotification": {
            "$ref": "#/definitions/JsonRpcNotification%3C%22UIUpdate%22%2Cstructure-148781504-869-891-148781504-837-892-148781504-808-893-148781504-0-1484%3E"
        },
        "Uint256": {
            "description": "Uint256",
            "pattern": "^0x([a-fA-F0-9]{64})$",
            "type": "string"
        },
        "Uint48": {
            "type": "number"
        },
        "UpdateChannelError": {
            "anyOf": [
                {
                    "$ref": "#/definitions/ChannelNotFound"
                },
                {
                    "$ref": "#/definitions/InvalidTransition"
                },
                {
                    "$ref": "#/definitions/InvalidAppData"
                },
                {
                    "$ref": "#/definitions/NotYourTurn"
                },
                {
                    "$ref": "#/definitions/ChannelClosed"
                }
            ]
        },
        "UpdateChannelParams": {
            "additionalProperties": false,
            "properties": {
                "allocations": {
                    "items": {
                        "$ref": "#/definitions/Allocation"
                    },
                    "type": "array"
                },
                "appData": {
                    "type": "string"
                },
                "channelId": {
                    "$ref": "#/definitions/ChannelId"
                }
            },
            "required": [
                "channelId",
                "allocations",
                "appData"
            ],
            "type": "object"
        },
        "UpdateChannelRequest": {
            "$ref": "#/definitions/JsonRpcRequest%3C%22UpdateChannel%22%2CUpdateChannelParams%3E"
        },
        "UpdateChannelResponse": {
            "$ref": "#/definitions/JsonRpcResponse%3CChannelResult%3E"
        },
        "WalletReady": {
            "$ref": "#/definitions/JsonRpcNotification%3C%22WalletReady%22%2Cstructure-148781504-1011-1014-148781504-976-1015-148781504-893-1016-148781504-0-1484%3E"
        }
    }
}
