pub struct ABIParser { /* private fields */ }

Implementations

Higher-level layer of the ABI encoding module. Encode is essentially a wrapper of crate::abi_encoder, but it is responsible for parsing strings into proper Token that can be encoded by the crate::abi_encoder. Note that encode only encodes the parameters for an ABI call, It won’t include the function selector in it. To get the function selector, use encode_with_function_selector.

Examples (@todo update doctest)
use fuels_core::json_abi::ABIParser;
let json_abi = r#"
    [
        {
            "type":"contract",
            "inputs":[
                {
                    "name":"arg",
                    "type":"u32"
                }
            ],
            "name":"takes_u32_returns_bool",
            "outputs":[
                {
                    "name":"",
                    "type":"bool"
                }
            ]
        }
    ]
    "#;

    let values: Vec<String> = vec!["10".to_string()];

    let mut abi = ABIParser::new();

    let function_name = "takes_u32_returns_bool";
    let encoded = abi.encode(json_abi, function_name, &values).unwrap();
    let expected_encode = "000000000000000a";
    assert_eq!(encoded, expected_encode);

Similar to encode, but includes the function selector in the final encoded string.

Examples (@todo update doctest)
use fuels_core::json_abi::ABIParser;
let json_abi = r#"
    [
        {
            "type":"contract",
            "inputs":[
                {
                    "name":"arg",
                    "type":"u32"
                }
            ],
            "name":"takes_u32_returns_bool",
            "outputs":[
                {
                    "name":"",
                    "type":"bool"
                }
            ]
        }
    ]
    "#;

    let values: Vec<String> = vec!["10".to_string()];

    let mut abi = ABIParser::new();
    let function_name = "takes_u32_returns_bool";

    let encoded = abi
        .encode_with_function_selector(json_abi, function_name, &values)
        .unwrap();

    let expected_encode = "000000006355e6ee000000000000000a";
    assert_eq!(encoded, expected_encode);

Similar to encode, but it encodes only an array of strings containing [<type_1>, <param_1>, <type_2>, <param_2>, <type_n>, <param_n>] Without having to reference to a JSON specification of the ABI. TODO: This is currently disabled because it needs to be updated to the new ABI spec. Helper function to turn a list of tuples(ParamType, &str) into a vector of Tokens ready to be encoded. Essentially a wrapper on tokenize.

Higher-level layer of the ABI decoding module. Decodes a value of a given ABI and a target function’s output. Note that the value has to be a byte array, meaning that the caller must properly cast the “upper” type into a &[u8],

Similar to decode, but it decodes only an array types and the encoded data without having to reference to a JSON specification of the ABI.

Trait Implementations

Returns the “default value” for a type. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Should always be Self

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.