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

Function BuildSmartContractParamInter

http/test/func_test.go:103–141  ·  view source on GitHub ↗
(builder *neovm.ParamsBuilder, smartContractParams []interface{})

Source from the content-addressed store, hash-verified

101}
102
103func BuildSmartContractParamInter(builder *neovm.ParamsBuilder, smartContractParams []interface{}) error {
104 for i := len(smartContractParams) - 1; i >= 0; i-- {
105 switch v := smartContractParams[i].(type) {
106 case bool:
107 builder.EmitPushBool(v)
108 case int:
109 builder.EmitPushInteger(big.NewInt(int64(v)))
110 case uint:
111 builder.EmitPushInteger(big.NewInt(int64(v)))
112 case int32:
113 builder.EmitPushInteger(big.NewInt(int64(v)))
114 case uint32:
115 builder.EmitPushInteger(big.NewInt(int64(v)))
116 case int64:
117 builder.EmitPushInteger(big.NewInt(int64(v)))
118 case common.Fixed64:
119 builder.EmitPushInteger(big.NewInt(int64(v.GetData())))
120 case uint64:
121 val := big.NewInt(0)
122 builder.EmitPushInteger(val.SetUint64(uint64(v)))
123 case string:
124 builder.EmitPushByteArray([]byte(v))
125 case *big.Int:
126 builder.EmitPushInteger(v)
127 case []byte:
128 builder.EmitPushByteArray(v)
129 case []interface{}:
130 err := BuildSmartContractParamInter(builder, v)
131 if err != nil {
132 return err
133 }
134 builder.EmitPushInteger(big.NewInt(int64(len(v))))
135 builder.Emit(neovm.PACK)
136 default:
137 return fmt.Errorf("unsupported param:%s", v)
138 }
139 }
140 return nil
141}

Callers

nothing calls this directly

Calls 6

EmitPushBoolMethod · 0.80
EmitPushIntegerMethod · 0.80
GetDataMethod · 0.80
EmitPushByteArrayMethod · 0.80
EmitMethod · 0.80
ErrorfMethod · 0.80

Tested by

no test coverage detected