@layerzerolabs/lz-sui-sdk-v2
Version:
29 lines (24 loc) • 822 B
text/typescript
import { bcs } from '@mysten/sui/bcs'
// BCS schemas for MoveCall deserialization
export const FunctionBCS = bcs.struct('Function', {
package: bcs.Address,
module_name: bcs.string(),
name: bcs.string(),
})
export const ArgumentBCS = bcs.enum('Argument', {
ID: bcs.vector(bcs.u8()),
Object: bcs.Address,
Pure: bcs.vector(bcs.u8()),
NestedResult: bcs.struct('NestedResult', {
call_index: bcs.u16(),
result_index: bcs.u16(),
}),
})
export const MoveCallBCS = bcs.struct('MoveCall', {
function: FunctionBCS,
arguments: bcs.vector(ArgumentBCS),
type_arguments: bcs.vector(bcs.string()), // TypeName serialized as string
is_builder_call: bcs.bool(),
result_ids: bcs.vector(bcs.vector(bcs.u8())),
})
export const VectorMoveCallBCS = bcs.vector(MoveCallBCS)