Documentation ¶
Overview ¶
Package adapters contain the core adapters used by the Chainlink node.
HTTPGet ¶
The HTTPGet adapter is used to grab the JSON data from the given URL.
{ "type": "HTTPGet", "url": "https://some-api-example.net/api" }
HTTPPost ¶
Sends a POST request to the specified URL and will return the response.
{ "type": "HTTPPost", "url": "https://weiwatchers.com/api" }
JSONParse ¶
The JSONParse adapter will obtain the value(s) for the given field(s).
{ "type": "JSONParse", "path": ["someField"] }
EthBool ¶
The EthBool adapter will take the given values and format them for the Ethereum blockhain in boolean value.
{ "type": "EthBool" }
EthBytes32 ¶
The EthBytes32 adapter will take the given values and format them for the Ethereum blockhain.
{ "type": "EthBytes32" }
EthInt256 ¶
The EthInt256 adapter will take a given signed 256 bit integer and format it to hex for the Ethereum blockchain.
{ "type": "EthInt256" }
EthUint256 ¶
The EthUint256 adapter will take a given 256 bit integer and format it in hex for the Ethereum blockchain.
{ "type": "EthUint256" }
EthTx ¶
The EthTx adapter will write the data to the given address and functionSelector.
{ "type": "EthTx", "address": "0x0000000000000000000000000000000000000000", "functionSelector": "0xffffffff" }
Multiplier ¶
The Multiplier adapter multiplies the given input value times another specified value.
{ "type": "Multiply", "times": 100 }
Bridge ¶
The Bridge adapter is used to send and receive data to and from external adapters. The adapter will POST to the target adapter URL with an "id" field for the TaskRunID and a "data" field. For example:
{"id":"b8004e2989e24e1d8e4449afad2eb480","data":{}}
Random ¶
Random adapter generates a number between 0 and 2**256-1 WARNING: The random adapter as implemented is not verifiable. Outputs from this adapters are not verifiable onchain as a fairly-drawn random samples. As a result, the oracle potentially has complete discretion to instead deliberately choose values with favorable onchain outcomes. Don't use it for a lottery, for instance, unless you fully trust the oracle not to pick its own tickets. We intend to either improve it in the future, or introduce a verifiable alternative. For now it is provided as an alternative to making web requests for random numbers, which is similarly unverifiable and has additional possible points of failure.
{ "type": "Random" }
Index ¶
- Constants
- Variables
- func IsClientEmptyError(err error) bool
- func IsClientRetriable(err error) bool
- type BaseAdapter
- type Bridge
- type Copy
- type EthBool
- type EthBytes32
- type EthInt256
- type EthTx
- type EthUint256
- type ExtendedPath
- type HTTPGet
- type HTTPPost
- type JSONParse
- type JSONPath
- type Multiplier
- type Multiply
- type NoOp
- type NoOpPend
- type PipelineAdapter
- type QueryParameters
- type Random
- type Sleep
- type Wasm
Constants ¶
const ( // DataFormatBytes instructs the EthTx Adapter to treat the input value as a // bytes string, rather than a hexadecimal encoded bytes32 DataFormatBytes = "bytes" )
Variables ¶
var ( // TaskTypeCopy is the identifier for the Copy adapter. TaskTypeCopy = models.MustNewTaskType("copy") // TaskTypeEthBool is the identifier for the EthBool adapter. TaskTypeEthBool = models.MustNewTaskType("ethbool") // TaskTypeEthBytes32 is the identifier for the EthBytes32 adapter. TaskTypeEthBytes32 = models.MustNewTaskType("ethbytes32") // TaskTypeEthInt256 is the identifier for the EthInt256 adapter. TaskTypeEthInt256 = models.MustNewTaskType("ethint256") // TaskTypeEthUint256 is the identifier for the EthUint256 adapter. TaskTypeEthUint256 = models.MustNewTaskType("ethuint256") // TaskTypeEthTx is the identifier for the EthTx adapter. TaskTypeEthTx = models.MustNewTaskType("ethtx") // TaskTypeHTTPGet is the identifier for the HTTPGet adapter. TaskTypeHTTPGet = models.MustNewTaskType("httpget") // TaskTypeHTTPPost is the identifier for the HTTPPost adapter. TaskTypeHTTPPost = models.MustNewTaskType("httppost") // TaskTypeJSONParse is the identifier for the JSONParse adapter. TaskTypeJSONParse = models.MustNewTaskType("jsonparse") // TaskTypeMultiply is the identifier for the Multiply adapter. TaskTypeMultiply = models.MustNewTaskType("multiply") // TaskTypeNoOp is the identifier for the NoOp adapter. TaskTypeNoOp = models.MustNewTaskType("noop") // TaskTypeNoOpPend is the identifier for the NoOpPend adapter. TaskTypeNoOpPend = models.MustNewTaskType("nooppend") // TaskTypeSleep is the identifier for the Sleep adapter. TaskTypeSleep = models.MustNewTaskType("sleep") // TaskTypeWasm is the wasm interpereter adapter TaskTypeWasm = models.MustNewTaskType("wasm") // TaskTypeRandom is the identifier for the Random adapter. TaskTypeRandom = models.MustNewTaskType("random") )
Functions ¶
func IsClientEmptyError ¶ added in v0.6.4
Parity light clients can return an EmptyResponse error when they don't have access to the transaction in the mempool. If we wait long enough it should eventually return a transaction receipt.
func IsClientRetriable ¶
IsClientRetriable does its best effort to see if an error indicates one that might have a different outcome if we retried the operation
Types ¶
type BaseAdapter ¶
BaseAdapter is the minimum interface required to create an adapter. Only core adapters have this minimum requirement.
type Bridge ¶
type Bridge struct { *models.BridgeType Params *models.JSON }
Bridge adapter is responsible for connecting the task pipeline to external adapters, allowing for custom computations to be executed and included in runs.
func (*Bridge) Perform ¶
Perform sends a POST request containing the JSON of the input RunResult to the external adapter specified in the BridgeType. It records the RunResult returned to it, and optionally marks the RunResult pending.
If the Perform is resumed with a pending RunResult, the RunResult is marked not pending and the RunResult is returned.
type Copy ¶
type Copy struct {
CopyPath JSONPath `json:"copyPath"`
}
Copy obj keys refers to which value to copy inside `data`, each obj value refers to where to copy the value to inside `data`
type EthBool ¶
type EthBool struct{}
EthBool holds no fields
type EthBytes32 ¶
type EthBytes32 struct{}
EthBytes32 holds no fields.
func (*EthBytes32) Perform ¶
Perform returns the hex value of the first 32 bytes of a string so that it is in the proper format to be written to the blockchain.
For example, after converting the string "16800.01" to hex encoded Ethereum ABI, it would be: "0x31363830302e3031000000000000000000000000000000000000000000000000"
type EthInt256 ¶
type EthInt256 struct{}
EthInt256 holds no fields
func (*EthInt256) Perform ¶
Perform returns the hex value of a given string so that it is in the proper format to be written to the blockchain.
For example, after converting the string "-123.99" to hex encoded Ethereum ABI, it would be: "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85"
type EthTx ¶
type EthTx struct { Address common.Address `json:"address"` FunctionSelector models.FunctionSelector `json:"functionSelector"` DataPrefix hexutil.Bytes `json:"dataPrefix"` DataFormat string `json:"format"` GasPrice *models.Big `json:"gasPrice" gorm:"type:numeric"` GasLimit uint64 `json:"gasLimit"` }
EthTx holds the Address to send the result to and the FunctionSelector to execute.
type EthUint256 ¶
type EthUint256 struct{}
EthUint256 holds no fields.
func (*EthUint256) Perform ¶
Perform returns the hex value of a given string so that it is in the proper format to be written to the blockchain.
For example, after converting the string "123.99" to hex encoded Ethereum ABI, it would be: "0x000000000000000000000000000000000000000000000000000000000000007b"
type ExtendedPath ¶
type ExtendedPath []string
ExtendedPath is the path to append to a base URL
func (*ExtendedPath) UnmarshalJSON ¶
func (ep *ExtendedPath) UnmarshalJSON(input []byte) error
UnmarshalJSON implements the Unmarshaler interface
type HTTPGet ¶
type HTTPGet struct { URL models.WebURL `json:"url"` GET models.WebURL `json:"get"` Headers http.Header `json:"headers"` QueryParams QueryParameters `json:"queryParams"` ExtendedPath ExtendedPath `json:"extPath"` }
HTTPGet requires a URL which is used for a GET request when the adapter is called.
func (*HTTPGet) GetRequest ¶
GetRequest returns the HTTP request including query parameters and headers
type HTTPPost ¶
type HTTPPost struct { URL models.WebURL `json:"url"` POST models.WebURL `json:"post"` Headers http.Header `json:"headers"` QueryParams QueryParameters `json:"queryParams"` ExtendedPath ExtendedPath `json:"extPath"` }
HTTPPost requires a URL which is used for a POST request when the adapter is called.
func (*HTTPPost) GetRequest ¶
GetRequest takes the request body and returns the HTTP request including query parameters and headers
type JSONParse ¶
type JSONParse struct {
Path JSONPath `json:"path"`
}
JSONParse holds a path to the desired field in a JSON object, made up of an array of strings.
type JSONPath ¶
type JSONPath []string
JSONPath is a path to a value in a JSON object
func (*JSONPath) UnmarshalJSON ¶
UnmarshalJSON implements the Unmarshaler interface
type Multiplier ¶
type Multiplier float64
Multiplier represents the number to multiply by in Multiply adapter.
func (*Multiplier) UnmarshalJSON ¶
func (m *Multiplier) UnmarshalJSON(input []byte) error
UnmarshalJSON implements json.Unmarshaler.
type Multiply ¶
type Multiply struct {
Times *Multiplier `json:"times"`
}
Multiply holds the a number to multiply the given value by.
type PipelineAdapter ¶
type PipelineAdapter struct { BaseAdapter // contains filtered or unexported fields }
PipelineAdapter wraps a BaseAdapter with requirements for execution in the pipeline.
func (PipelineAdapter) MinConfs ¶
func (p PipelineAdapter) MinConfs() uint32
MinConfs returns the private attribute
func (PipelineAdapter) MinContractPayment ¶
func (p PipelineAdapter) MinContractPayment() *assets.Link
MinContractPayment returns the private attribute
type QueryParameters ¶
QueryParameters are the keys and values to append to the URL
func (*QueryParameters) UnmarshalJSON ¶
func (qp *QueryParameters) UnmarshalJSON(input []byte) error
UnmarshalJSON implements the Unmarshaler interface
type Sleep ¶
Sleep adapter allows a job to do nothing for some amount of wall time.