Download OpenAPI specification:Download
Enterprise Grade Connectivity for your Applications
You get a response immediately, including an id
that you can query for results
in the receipt store later.
The same reliable transport as is used onPOST
methods of the installed REST Gateway generated interfaces (installed via the/abis
paths), whenkld-sync
is unset.
Ideal for use as a webhook endpoint for an integration tool that can emit sevents over HTTPS. Also useful if your application wants to construct the full details for the transaction to sent to a contract, or install a new contract, without first teaching the REST API Gateway about the Solidity interface (ABI).
There are two variations of the webhook:
/
and /fasthook
: responds as soon as the message is sent to the Kafka client library/hook
: responds only once Kafka has acknowledged receipt of the message
required | object Headers section used in requests, and extended in asynchronous response messages |
from required | string^(0x)?[0-9a-zA-Z]{40}$ The address to use when signing the transaction. Must be a wallet managed by Kaleido. For example account[0] on the node. |
to | string^(0x)?[0-9a-zA-Z]{40}$
|
methodName | string
|
Array of objects The parameters to pass to the ethereum method or constructor. | |
soldity | string
|
contractName | string
|
compilerVersion | string Default: "0.4"
|
compiled | string <byte>
|
gas | string The maximum gas the transaction can consume - omit to allow ethconnect to perform a gas estimation |
gasPrice | string The ETH price offered for gas - omit to use a gas price of zero |
value | string An optional ETH value to send along with the tranaction |
nonce | string^[0-9]+$ Assign an explicit nonce to the transaction - omit to allow ethconnect to manage the nonce |
privateFrom | string EEA privacy extensions privateFrom address for private transaction support (Quorum Tessera / PegaSys Orion) |
privateFor | Array of strings EEA privacy extensions privateFor addresses for private transaction support (Quorum Tessera / PegaSys Orion) |
{- "headers": {
- "type": "DeployContract"
}, - "from": "string",
- "to": "string",
- "methodName": "string",
- "params": [
- {
- "type": "string",
- "value": "string"
}
], - "soldity": "string",
- "contractName": "string",
- "compilerVersion": "0.4",
- "compiled": "string",
- "gas": "string",
- "gasPrice": "string",
- "value": "string",
- "nonce": "string",
- "privateFrom": "string",
- "privateFor": [
- "string"
]
}
{- "id": "string",
- "sent": true,
- "msg": "string"
}
Responds as soon as the message is passed to the Kafka client library.
required | object Headers section used in requests, and extended in asynchronous response messages |
from required | string^(0x)?[0-9a-zA-Z]{40}$ The address to use when signing the transaction. Must be a wallet managed by Kaleido. For example account[0] on the node. |
to | string^(0x)?[0-9a-zA-Z]{40}$
|
methodName | string
|
Array of objects The parameters to pass to the ethereum method or constructor. | |
soldity | string
|
contractName | string
|
compilerVersion | string Default: "0.4"
|
compiled | string <byte>
|
gas | string The maximum gas the transaction can consume - omit to allow ethconnect to perform a gas estimation |
gasPrice | string The ETH price offered for gas - omit to use a gas price of zero |
value | string An optional ETH value to send along with the tranaction |
nonce | string^[0-9]+$ Assign an explicit nonce to the transaction - omit to allow ethconnect to manage the nonce |
privateFrom | string EEA privacy extensions privateFrom address for private transaction support (Quorum Tessera / PegaSys Orion) |
privateFor | Array of strings EEA privacy extensions privateFor addresses for private transaction support (Quorum Tessera / PegaSys Orion) |
{- "headers": {
- "type": "DeployContract"
}, - "from": "string",
- "to": "string",
- "methodName": "string",
- "params": [
- {
- "type": "string",
- "value": "string"
}
], - "soldity": "string",
- "contractName": "string",
- "compilerVersion": "0.4",
- "compiled": "string",
- "gas": "string",
- "gasPrice": "string",
- "value": "string",
- "nonce": "string",
- "privateFrom": "string",
- "privateFor": [
- "string"
]
}
{- "id": "string",
- "sent": true
}
Waits for an acknowledgment from Kafka that the message has been delivered to a topic partition before responding.
Recommended when reliable transaction delivery is required.
required | object Headers section used in requests, and extended in asynchronous response messages |
from required | string^(0x)?[0-9a-zA-Z]{40}$ The address to use when signing the transaction. Must be a wallet managed by Kaleido. For example account[0] on the node. |
to | string^(0x)?[0-9a-zA-Z]{40}$
|
methodName | string
|
Array of objects The parameters to pass to the ethereum method or constructor. | |
soldity | string
|
contractName | string
|
compilerVersion | string Default: "0.4"
|
compiled | string <byte>
|
gas | string The maximum gas the transaction can consume - omit to allow ethconnect to perform a gas estimation |
gasPrice | string The ETH price offered for gas - omit to use a gas price of zero |
value | string An optional ETH value to send along with the tranaction |
nonce | string^[0-9]+$ Assign an explicit nonce to the transaction - omit to allow ethconnect to manage the nonce |
privateFrom | string EEA privacy extensions privateFrom address for private transaction support (Quorum Tessera / PegaSys Orion) |
privateFor | Array of strings EEA privacy extensions privateFor addresses for private transaction support (Quorum Tessera / PegaSys Orion) |
{- "headers": {
- "type": "DeployContract"
}, - "from": "string",
- "to": "string",
- "methodName": "string",
- "params": [
- {
- "type": "string",
- "value": "string"
}
], - "soldity": "string",
- "contractName": "string",
- "compilerVersion": "0.4",
- "compiled": "string",
- "gas": "string",
- "gasPrice": "string",
- "value": "string",
- "nonce": "string",
- "privateFrom": "string",
- "privateFor": [
- "string"
]
}
{- "id": "string",
- "sent": true,
- "msg": "string"
}
Compiles the supplied Solidity source code into an ABI (and devdocs) from a single file or zip/tarball, then builds a new REST API that can then be used:
As there are a number of functions performed by the installed REST API, and the paths are all bespoke to the methods in the Solidity itself, the installed API comes with its own OpenAPI 2.0 (Swagger) definition.
A link to the generated API definition is included in the response payload.
As the primary input is file data the Content-Type for the payload on route is
multipart/form-data
, rather than JSON.
findsolidity | string Discovery mode: If set then the response will be an array of Solidity files found in the supplied files, rather than attempting the compilation (can also be set as a URL query parameter) |
findcontracts | string Discovery mode: If set then the response will be an array of contract names returned by |
source | string If a zip/tarball is supplied containing multiple solidity files, this field is required to set the Solidity source code file to compile (can also be set as a URL query parameter). Use |
contract | string If the compilation results in multipel contracts, this field is required to set the contract name to use when deploying contracts via the factory methods (can also be set as a URL query parameter). Use |
* | string <binary> Any other properties should be file-content: .sol .zip .tar .tgz .tar.gz .tar.bz2 files are supported |
{- "created": "2019-08-24T14:15:22Z",
- "id": "string",
- "description": "string",
- "path": "string",
- "deployable": true,
- "openapi": true,
- "compilerVersion": true
}
List the previously installed ABI definitions with available factory, query & event-subscription REST APIs
[- {
- "created": "2019-08-24T14:15:22Z",
- "id": "string",
- "description": "string",
- "path": "string",
- "deployable": true,
- "openapi": true,
- "compilerVersion": true
}
]
List details of a single previously installed ABI definitions with a factory, query & event-subscription REST API
abi_id required | string The ID of the install ABI |
{- "created": "2019-08-24T14:15:22Z",
- "id": "string",
- "description": "string",
- "path": "string",
- "deployable": true,
- "openapi": true,
- "compilerVersion": true
}
List the previously installed ABI definitions with available REST APIs
[- {
- "created": "2019-08-24T14:15:22Z",
- "id": "string",
- "description": "string",
- "path": "string",
- "deployable": true,
- "openapi": true,
- "compilerVersion": true
}
]
List the previously installed ABI definitions with available REST APIs
contract_address_or_friendly_name required | string The ID of the install ABI |
{- "created": "2019-08-24T14:15:22Z",
- "id": "string",
- "description": "string",
- "path": "string",
- "deployable": true,
- "openapi": true,
- "compilerVersion": true
}
Add a new event stream, to which subscriptions can deliver messages
type | string Enum: "webhook" "websocket" The type of event stream |
batchSize | integer [ 1 .. 1000 ] Default: 1 The number of events to attempt to batch together before delivery |
batchTimeoutMS | integer >= 0 Default: 5000 The number of milliseoconds to wait to fill the batchSize before delivery |
retryTimeoutSec | integer >= 0 Default: 0 Amount of time to perform exponential backoff retry for if the endpoint is unable to process a message, before either failing the batch, or entrying blocked state (0 means no backoff retry) |
errorHandling | string Enum: "block" "skip" Error handling mode defines whether to discard events and move onto the next batch if they cannot be processed after the retryTimeoutSec configured retry interval, or enter a blocked state retrying the batch indefinitely |
blockedReryDelaySec | integer Default: 30 If configured to block indefinitely to deliver events, this is the long retry that comes into effect after any exponential backoff retry period |
object Configuration options specific to type 'webhook' | |
object Configuration options specific to type |
{- "type": "webhook",
- "batchSize": 1,
- "batchTimeoutMS": 5000,
- "retryTimeoutSec": 0,
- "errorHandling": "block",
- "blockedReryDelaySec": 30,
- "webhook": {
- "url": "string",
- "headers": { },
- "tlsSkipHostVerify": true,
- "requestTimeoutSec": 0
}
}
{- "type": "webhook",
- "batchSize": 1,
- "batchTimeoutMS": 5000,
- "retryTimeoutSec": 0,
- "errorHandling": "block",
- "blockedReryDelaySec": 30,
- "webhook": {
- "url": "string",
- "headers": { },
- "tlsSkipHostVerify": true,
- "requestTimeoutSec": 0
}, - "created": "2021-04-29T17:40:29.190Z",
- "id": "string",
- "path": "string",
- "suspended": true
}
[- {
- "type": "webhook",
- "batchSize": 1,
- "batchTimeoutMS": 5000,
- "retryTimeoutSec": 0,
- "errorHandling": "block",
- "blockedReryDelaySec": 30,
- "webhook": {
- "url": "string",
- "headers": { },
- "tlsSkipHostVerify": true,
- "requestTimeoutSec": 0
}, - "websocket": {
- "topic": "string"
}, - "created": "2019-08-24T14:15:22Z",
- "id": "string",
- "path": "string",
- "suspended": true
}
]
Get the details of an individual event stream
stream_id required | string The ID of the Event Stream |
{- "type": "webhook",
- "batchSize": 1,
- "batchTimeoutMS": 5000,
- "retryTimeoutSec": 0,
- "errorHandling": "block",
- "blockedReryDelaySec": 30,
- "webhook": {
- "url": "string",
- "headers": { },
- "tlsSkipHostVerify": true,
- "requestTimeoutSec": 0
}, - "websocket": {
- "topic": "string"
}, - "created": "2019-08-24T14:15:22Z",
- "id": "string",
- "path": "string",
- "suspended": true
}
Update the details of an individual event stream
stream_id required | string The ID of the Event Stream |
{- "type": "webhook",
- "batchSize": 1,
- "batchTimeoutMS": 5000,
- "retryTimeoutSec": 0,
- "errorHandling": "block",
- "blockedReryDelaySec": 30,
- "webhook": {
- "url": "string",
- "headers": { },
- "tlsSkipHostVerify": true,
- "requestTimeoutSec": 0
}, - "websocket": {
- "topic": "string"
}, - "created": "2019-08-24T14:15:22Z",
- "id": "string",
- "path": "string",
- "suspended": true
}
Returns details of an individual subscription
subscription_id required | string The ID of the Subscription |
{- "stream": "string",
- "fromBlock": "string",
- "created": "2019-08-24T14:15:22Z",
- "id": "string",
- "path": "string",
- "name": "string",
- "filter": { },
- "event": { }
}