Soroban Contract Parser
This release adds a soroban contract parser that allows you to access the contract info stored in the contract bytecode.
You can access the environment metadata, contract spec and contract meta.
The environment metadata holds the interface version that should match the version of the soroban environment host functions supported.
The contract spec contains a XdrSCSpecEntry
for every function, struct, and union exported by the contract.
In the contract meta, contracts may store any metadata in the entries that can be used by applications and tooling off-network.
You can access the parser directly if you have the contract bytecode:
var byteCode = await Util.readFile("path to .wasm file");
var contractInfo = SorobanContractParser.parseContractByteCode(byteCode);
Or you can use SorobanServer
methods to load the contract code form the network and parse it.
By contract id:
var contractInfo = await sorobanServer.loadContractInfoForContractId(contractId);
By wasm id:
var contractInfo = await sorobanServer.loadContractInfoForWasmId(wasmId);
The parser returns a SorobanContractInfo
object containing the parsed data.
In soroban_test_parser.dart you can find a detailed example of how you can access the parsed data.