MCPcopy Create free account
hub / github.com/NethermindEth/cairo-vm-go / LoadCairoZeroProgram

Function LoadCairoZeroProgram

pkg/runner/program.go:27–49  ·  view source on GitHub ↗
(cairoZeroJson *zero.ZeroProgram)

Source from the content-addressed store, hash-verified

25type CairoProgram struct{}
26
27func LoadCairoZeroProgram(cairoZeroJson *zero.ZeroProgram) (*Program, error) {
28 // bytecode
29 bytecode := make([]*fp.Element, len(cairoZeroJson.Data))
30 for i := range cairoZeroJson.Data {
31 felt, err := new(fp.Element).SetString(cairoZeroJson.Data[i])
32 if err != nil {
33 return nil, fmt.Errorf(
34 "cannot read bytecode %s at position %d: %w",
35 cairoZeroJson.Data[i], i, err,
36 )
37 }
38 bytecode[i] = felt
39 }
40
41 entrypoints, labels := extractEntrypointsAndLabels(cairoZeroJson)
42
43 return &Program{
44 Bytecode: bytecode,
45 Entrypoints: entrypoints,
46 Labels: labels,
47 Builtins: cairoZeroJson.Builtins,
48 }, nil
49}
50
51func extractEntrypointsAndLabels(json *zero.ZeroProgram) (map[string]uint64, map[string]uint64) {
52 entrypoints := map[string]uint64{}

Callers 3

mainFunction · 0.92
TestLoadCairoZeroProgramFunction · 0.85

Calls 1

Tested by 2

TestLoadCairoZeroProgramFunction · 0.68