Migration Guide
The following guide assumes a valid v0.11.2 config.json file. All changes listed below will need to be implemented in order to migrate to Airnode v0.12.0. This document is written in a way that will preserve existing behavior with earlier Airnode versions.
The document also mentions changes to user facing services related to Airnode, such as airnode-deployer, airnode-admin, etc., and new features.
Summary
ois[n].oisFormatupdated to "2.1.0". This has not changed since v0.11.2, but has changed since v0.11.0 and v0.11.1 for which it was "2.0.0".nodeSettings.nodeVersionupdated to "0.12.0".
Details
ois[n].oisFormat
Updated to "2.1.0". This has not changed since v0.11.2, but has changed since v0.11.0 and v0.11.1 for which it was "2.0.0".
{
- "oisFormat": "2.0.0"
+ "oisFormat": "2.1.0"
}2
3
4
nodeSettings.nodeVersion
Updated to "0.12.0"
{
- "nodeVersion": "0.11.2"
+ "nodeVersion": "0.12.0"
}2
3
4
New features and updates
There is no longer a hardcoded limit to the maximum number of sponsor wallet requests processed each cycle.
Data from the HTTP Gateway is returned from successful API calls that fail response processing in order to assist with debugging. For an example, see the HTTP Gateways page.
In all pre-processing and post-processing steps, parameters are now immutably exposed via an
endpointParametersobject and reserved parameters are no longer accessible.The
valuefor afixedOperationParametersobject is now allowed to be any type, including an object; for example, the following specifies an array containing multiple primitives. This has not changed since v0.11.2, but has changed since v0.11.0 and v0.11.1 for which it was only allowed to be a string.json{ "fixedOperationParameters": [ { "operationParameter": { "in": "query", "name": "params" }, "value": ["finalized", false] } ] }1
2
3
4
5
6
7
8
9
10
11A new gas strategy,
sanitizedProviderRecommendedGasPrice, has been added. See the gas price documentation for more details.Gas can now be automatically estimated for RRP fulfillments on supported chains by excluding
chains[n].options.fulfillmentGasLimitfromconfig.json. For more details see the corresponding documentation.AirnodeRrpV0andRequesterAuthorizerWithErc721contract addresses are now optional if there is an API3 deployment for that contract on the specified chain. A table of such deployments can be found on the Contract Addresses page. The following illustrates how the addresses can be omitted. First, within thechains[n]object:diff{ - "contracts": { - "AirnodeRrp": "0x..." - }, }1
2
3
4
5And second, within the
chains[n].authorizersobject:diff{ "authorizers": { "requesterEndpointAuthorizers": [], "crossChainRequesterAuthorizers": [ { "requesterEndpointAuthorizers": ["0x..."], "chainType": "evm", "chainId": "5", - "contracts": { - "AirnodeRrp": "0x..." - }, "chainProvider": { "url": "http://127.0.0.2" } } ], "requesterAuthorizersWithErc721": [ { - "RequesterAuthorizerWithErc721": "0x...", "erc721s": ["0x..."] } ], "crossChainRequesterAuthorizersWithErc721": [ { "erc721s": ["0x..."], "chainType": "evm", "chainId": "5", - "contracts": { - "RequesterAuthorizerWithErc721": "0x..." - }, "chainProvider": { "url": "http://127.0.0.2" } } ] } }1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37


