CB58 Deprecation in AvalancheGo API
Overview
With AvalancheGo v1.7.14
release, we have published
changes to deprecate cb58
encoding in favor of hex
in the return of
AvalancheGo API calls. This only impacted the encoding format for data with
variable length representations (such as UTXOs, transactions, blocks, etc).
Other data represented using cb58
such as addresses and IDs (TXIDs, ChainIDs,
subnetIDs, and UtxoIDs) are unchanged.
Our AvalancheGo API documents and public API
servers have been updated to reflect this change: hex
is now the default value for the encoding
parameter in places where cb58
used to be default.
You will need to change your code to handle the response correctly. For example,
for API call avm.getUTXOs
in which
encoding
sets the format for the returned UTXOs.
you can specify "encoding": "hex"
when issuing the API call or leave it empty
which will take the default value of hex
.
curl -X POST --data '{
"jsonrpc":"2.0",
"id" :1,
"method" :"avm.getUTXOs",
"params" :{
"addresses":["X-avax18jma8ppw3nhx5r4ap8clazz0dps7rv5ukulre5", "X-avax1d09qn852zcy03sfc9hay2llmn9hsgnw4tp3dv6"],
"limit":5,
"encoding": "hex"
}
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/bc/X
This gives response where UTXOs will be in hex
format:
{
"jsonrpc": "2.0",
"result": {
"numFetched": "5",
"utxos": [
"0x0000a195046108a85e60f7a864bb567745a37f50c6af282103e47cc62f036cee404700000000345aa98e8a990f4101e2268fab4c4e1f731c8dfbcffa3a77978686e6390d624f000000070000000000000001000000000000000000000001000000018ba98dabaebcd83056799841cfbc567d8b10f216c1f01765",
"0x0000ae8b1b94444eed8de9a81b1222f00f1b4133330add23d8ac288bffa98b85271100000000345aa98e8a990f4101e2268fab4c4e1f731c8dfbcffa3a77978686e6390d624f000000070000000000000001000000000000000000000001000000018ba98dabaebcd83056799841cfbc567d8b10f216473d042a",
"0x0000731ce04b1feefa9f4291d869adc30a33463f315491e164d89be7d6d2d7890cfc00000000345aa98e8a990f4101e2268fab4c4e1f731c8dfbcffa3a77978686e6390d624f000000070000000000000001000000000000000000000001000000018ba98dabaebcd83056799841cfbc567d8b10f21600dd3047",
"0x0000b462030cc4734f24c0bc224cf0d16ee452ea6b67615517caffead123ab4fbf1500000000345aa98e8a990f4101e2268fab4c4e1f731c8dfbcffa3a77978686e6390d624f000000070000000000000001000000000000000000000001000000018ba98dabaebcd83056799841cfbc567d8b10f216c71b387e",
"0x000054f6826c39bc957c0c6d44b70f961a994898999179cc32d21eb09c1908d7167b00000000345aa98e8a990f4101e2268fab4c4e1f731c8dfbcffa3a77978686e6390d624f000000070000000000000001000000000000000000000001000000018ba98dabaebcd83056799841cfbc567d8b10f2166290e79d"
],
"endIndex": {
"address": "X-avax18jma8ppw3nhx5r4ap8clazz0dps7rv5ukulre5",
"utxo": "kbUThAUfmBXUmRgTpgD6r3nLj7rJUGho6xyht5nouNNypH45j"
},
"encoding": "hex"
},
"id": 1
}
You can also use json
if the API supports it.
Affected APIs
Following APIs are affected with this change.
When going through this API list, please make sure to check the omitted/default
encoding parameter. Prior to AvalancheGo v1.7.14, by default, cb58
is used for
the encoding
parameter if not specified in these APIs. With AvalancheGo
v1.7.14 and forward, hex
is default.
X-Chain API
P-Chain API
- platform.createBlockchain
- platform.getBlock
- platform.getRewardUTXOs
- platform.getTx
- platform.getUTXOs
- platform.issueTx
C-Chain API
Index API
- index.getLastAccepted
- index.getContainerByIndex
- index.getContainerByID
- index.getContainerRange
- index.getIndex
- index.isAccepted