(builder *neovm.ParamsBuilder, smartContractParams []interface{})
| 101 | } |
| 102 | |
| 103 | func 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 | } |
nothing calls this directly
no test coverage detected