/
scProcessorMock.go
100 lines (85 loc) · 3.5 KB
/
scProcessorMock.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
package testscommon
import (
"github.com/ElrondNetwork/elrond-go-core/data"
"github.com/ElrondNetwork/elrond-go-core/data/smartContractResult"
"github.com/ElrondNetwork/elrond-go/process"
"github.com/ElrondNetwork/elrond-go/state"
vmcommon "github.com/ElrondNetwork/elrond-vm-common"
)
// SCProcessorMock -
type SCProcessorMock struct {
ComputeTransactionTypeCalled func(tx data.TransactionHandler) (process.TransactionType, process.TransactionType)
ExecuteSmartContractTransactionCalled func(tx data.TransactionHandler, acntSrc, acntDst state.UserAccountHandler) (vmcommon.ReturnCode, error)
ExecuteBuiltInFunctionCalled func(tx data.TransactionHandler, acntSrc, acntDst state.UserAccountHandler) (vmcommon.ReturnCode, error)
DeploySmartContractCalled func(tx data.TransactionHandler, acntSrc state.UserAccountHandler) (vmcommon.ReturnCode, error)
ProcessSmartContractResultCalled func(scr *smartContractResult.SmartContractResult) (vmcommon.ReturnCode, error)
ProcessIfErrorCalled func(acntSnd state.UserAccountHandler, txHash []byte, tx data.TransactionHandler, returnCode string, returnMessage []byte, snapshot int, gasLocked uint64) error
IsPayableCalled func(sndAddress, recvAddress []byte) (bool, error)
}
// IsPayable -
func (sc *SCProcessorMock) IsPayable(sndAddress []byte, recvAddress []byte) (bool, error) {
if sc.IsPayableCalled != nil {
return sc.IsPayableCalled(sndAddress, recvAddress)
}
return true, nil
}
// ProcessIfError -
func (sc *SCProcessorMock) ProcessIfError(
acntSnd state.UserAccountHandler,
txHash []byte,
tx data.TransactionHandler,
returnCode string,
returnMessage []byte,
snapshot int,
gasLocked uint64,
) error {
if sc.ProcessIfErrorCalled != nil {
return sc.ProcessIfErrorCalled(acntSnd, txHash, tx, returnCode, returnMessage, snapshot, gasLocked)
}
return nil
}
// ComputeTransactionType -
func (sc *SCProcessorMock) ComputeTransactionType(tx data.TransactionHandler) (process.TransactionType, process.TransactionType) {
if sc.ComputeTransactionTypeCalled == nil {
return process.MoveBalance, process.MoveBalance
}
return sc.ComputeTransactionTypeCalled(tx)
}
// ExecuteSmartContractTransaction -
func (sc *SCProcessorMock) ExecuteSmartContractTransaction(
tx data.TransactionHandler,
acntSrc, acntDst state.UserAccountHandler,
) (vmcommon.ReturnCode, error) {
if sc.ExecuteSmartContractTransactionCalled == nil {
return 0, nil
}
return sc.ExecuteSmartContractTransactionCalled(tx, acntSrc, acntDst)
}
// ExecuteBuiltInFunction -
func (sc *SCProcessorMock) ExecuteBuiltInFunction(
tx data.TransactionHandler,
acntSrc, acntDst state.UserAccountHandler,
) (vmcommon.ReturnCode, error) {
if sc.ExecuteBuiltInFunctionCalled == nil {
return 0, nil
}
return sc.ExecuteBuiltInFunctionCalled(tx, acntSrc, acntDst)
}
// DeploySmartContract -
func (sc *SCProcessorMock) DeploySmartContract(tx data.TransactionHandler, acntSrc state.UserAccountHandler) (vmcommon.ReturnCode, error) {
if sc.DeploySmartContractCalled == nil {
return 0, nil
}
return sc.DeploySmartContractCalled(tx, acntSrc)
}
// ProcessSmartContractResult -
func (sc *SCProcessorMock) ProcessSmartContractResult(scr *smartContractResult.SmartContractResult) (vmcommon.ReturnCode, error) {
if sc.ProcessSmartContractResultCalled == nil {
return 0, nil
}
return sc.ProcessSmartContractResultCalled(scr)
}
// IsInterfaceNil returns true if there is no value under the interface
func (sc *SCProcessorMock) IsInterfaceNil() bool {
return sc == nil
}