每当您调用合约方法时,SDK 将根据 fuel 规范生成一个函数选择器,该选择器将被节点用于确定我们希望执行哪个方法。
如果出于任何原因,您希望自己生成函数选择器,可以这样做:
// fn some_fn_name(arg1: Vec<str[3]>, arg2: u8)
let fn_name = "some_fn_name";
let selector = encode_fn_selector(fn_name);
assert_eq!(
selector,
[0, 0, 0, 0, 0, 0, 0, 12, 115, 111, 109, 101, 95, 102, 110, 95, 110, 97, 109, 101]
);