MCPcopy Create free account
hub / github.com/DNAProject/DNA / ParseNativeParamArray

Function ParseNativeParamArray

cmd/utils/native_param.go:151–171  ·  view source on GitHub ↗
(builder *neovm.ParamsBuilder, param interface{}, arrayAbi *abi.NativeContractParamAbi)

Source from the content-addressed store, hash-verified

149}
150
151func ParseNativeParamArray(builder *neovm.ParamsBuilder, param interface{}, arrayAbi *abi.NativeContractParamAbi) error {
152 params, ok := param.([]interface{})
153 if !ok {
154 return fmt.Errorf("assert to []interface{} failed")
155 }
156 abis := make([]*abi.NativeContractParamAbi, 0, len(params))
157 for i := 0; i < len(params); i++ {
158 abis = append(abis, &abi.NativeContractParamAbi{
159 Name: fmt.Sprintf("%s_%d", arrayAbi.Name, i),
160 Type: arrayAbi.SubType[0].Type,
161 SubType: arrayAbi.SubType[0].SubType,
162 })
163 }
164 err := ParseNativeParams(builder, params, abis)
165 if err != nil {
166 return fmt.Errorf("parse array error:%s", err)
167 }
168 builder.EmitPushInteger(big.NewInt(int64(len(params))))
169 builder.Emit(neovm.PACK)
170 return nil
171}
172
173func ParseNativeParamByte(builder *neovm.ParamsBuilder, param string) error {
174 if param == "" {

Callers 1

ParseNativeParamsFunction · 0.85

Calls 4

ParseNativeParamsFunction · 0.85
ErrorfMethod · 0.80
EmitPushIntegerMethod · 0.80
EmitMethod · 0.80

Tested by

no test coverage detected