9 const transactionStatusVersion = 1
11 // NewTransactionStatus create a empty TransactionStatus struct
12 func NewTransactionStatus() *TransactionStatus {
13 return &TransactionStatus{
14 Version: transactionStatusVersion,
15 VerifyStatus: []*TxVerifyResult{},
19 // SetStatus set the tx status of given index
20 func (ts *TransactionStatus) SetStatus(i int, gasOnly bool) error {
21 if i > len(ts.VerifyStatus) {
22 return errors.New("setStatus should be set one by one")
25 if i == len(ts.VerifyStatus) {
26 ts.VerifyStatus = append(ts.VerifyStatus, &TxVerifyResult{StatusFail: gasOnly})
28 ts.VerifyStatus[i].StatusFail = gasOnly
33 // GetStatus get the tx status of given index
34 func (ts *TransactionStatus) GetStatus(i int) (bool, error) {
35 if i >= len(ts.VerifyStatus) {
36 return false, errors.New("GetStatus is out of range")
39 return ts.VerifyStatus[i].StatusFail, nil
42 // WriteTo will write TxVerifyResult struct to io.Writer
43 func (tvr *TxVerifyResult) WriteTo(w io.Writer) (int64, error) {
44 bytes, err := json.Marshal(tvr)
49 n, err := w.Write(bytes)