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

Function NewNativeInvokeTransaction

cmd/utils/native_param.go:40–54  ·  view source on GitHub ↗
(gasPrice, gasLimit uint64, contractAddr common.Address, version byte,
	params []interface{}, funcAbi *abi.NativeContractFunctionAbi)

Source from the content-addressed store, hash-verified

38)
39
40func NewNativeInvokeTransaction(gasPrice, gasLimit uint64, contractAddr common.Address, version byte,
41 params []interface{}, funcAbi *abi.NativeContractFunctionAbi) (*types.MutableTransaction, error) {
42 builder := neovm.NewParamsBuilder(new(bytes.Buffer))
43 err := ParseNativeFuncParam(builder, funcAbi.Name, params, funcAbi.Parameters)
44 if err != nil {
45 return nil, err
46 }
47 builder.EmitPushByteArray([]byte(funcAbi.Name))
48 builder.EmitPushByteArray(contractAddr[:])
49 builder.EmitPushInteger(new(big.Int).SetInt64(int64(version)))
50 builder.Emit(neovm.SYSCALL)
51 builder.EmitPushByteArray([]byte(svrneovm.NATIVE_INVOKE_NAME))
52 invokeCode := builder.ToArray()
53 return httpcom.NewSmartContractTransaction(gasPrice, gasLimit, invokeCode)
54}
55
56func ParseNativeFuncParam(builder *neovm.ParamsBuilder, funName string, params []interface{}, paramsAbi []*abi.NativeContractParamAbi) error {
57 size := len(paramsAbi)

Callers

nothing calls this directly

Calls 6

EmitPushByteArrayMethod · 0.95
EmitPushIntegerMethod · 0.95
EmitMethod · 0.95
ToArrayMethod · 0.95
NewParamsBuilderFunction · 0.92
ParseNativeFuncParamFunction · 0.85

Tested by

no test coverage detected