Skip to content

Commit ae8c74b

Browse files
committed
Remove write state from store and minor changes
Use simplified return pattern. Change to var for slice declarations and simplified read-write-set unmarshal.
1 parent fde0cd5 commit ae8c74b

File tree

5 files changed

+28
-65
lines changed

5 files changed

+28
-65
lines changed

off_chain_data/application-go/parser/block.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ func (b *Block) unmarshalTransactions() ([]*Transaction, error) {
4646
}
4747

4848
func (b *Block) unmarshalEnvelopes() ([]*common.Envelope, error) {
49-
result := []*common.Envelope{}
49+
var result []*common.Envelope
5050
for _, blockData := range b.block.GetData().GetData() {
5151
envelope := &common.Envelope{}
5252
if err := proto.Unmarshal(blockData, envelope); err != nil {
@@ -58,7 +58,7 @@ func (b *Block) unmarshalEnvelopes() ([]*common.Envelope, error) {
5858
}
5959

6060
func (*Block) unmarshalPayloadsFrom(envelopes []*common.Envelope) ([]*common.Payload, error) {
61-
result := []*common.Payload{}
61+
var result []*common.Payload
6262
for _, envelope := range envelopes {
6363
commonPayload := &common.Payload{}
6464
if err := proto.Unmarshal(envelope.GetPayload(), commonPayload); err != nil {
@@ -72,7 +72,7 @@ func (*Block) unmarshalPayloadsFrom(envelopes []*common.Envelope) ([]*common.Pay
7272
func (b *Block) parse(commonPayloads []*common.Payload) ([]*payload, error) {
7373
validationCodes := b.block.GetMetadata().GetMetadata()[common.BlockMetadataIndex_TRANSACTIONS_FILTER]
7474

75-
result := []*payload{}
75+
var result []*payload
7676
for i, commonPayload := range commonPayloads {
7777
statusCode := validationCodes[i]
7878

@@ -90,7 +90,7 @@ func (b *Block) parse(commonPayloads []*common.Payload) ([]*payload, error) {
9090
}
9191

9292
func (*Block) createTransactionsFrom(payloads []*payload) []*Transaction {
93-
result := []*Transaction{}
93+
var result []*Transaction
9494
for _, payload := range payloads {
9595
result = append(result, newTransaction(payload))
9696
}

off_chain_data/application-go/parser/endorserTransaction.go

Lines changed: 9 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,7 @@ func (p *endorserTransaction) unmarshalReadWriteSets() ([]*readWriteSet, error)
2525
return nil, err
2626
}
2727

28-
chaincodeEndorsedActions, err := p.extractChaincodeEndorsedActionsFrom(chaincodeActionPayloads)
29-
if err != nil {
30-
return nil, err
31-
}
32-
33-
proposalResponsePayloads, err := p.unmarshalProposalResponsePayloadsFrom(chaincodeEndorsedActions)
28+
proposalResponsePayloads, err := p.unmarshalProposalResponsePayloadsFrom(chaincodeActionPayloads)
3429
if err != nil {
3530
return nil, err
3631
}
@@ -49,31 +44,22 @@ func (p *endorserTransaction) unmarshalReadWriteSets() ([]*readWriteSet, error)
4944
}
5045

5146
func (p *endorserTransaction) unmarshalChaincodeActionPayloads() ([]*peer.ChaincodeActionPayload, error) {
52-
result := []*peer.ChaincodeActionPayload{}
47+
var result []*peer.ChaincodeActionPayload
5348
for _, transactionAction := range p.transaction.GetActions() {
5449
chaincodeActionPayload := &peer.ChaincodeActionPayload{}
5550
if err := proto.Unmarshal(transactionAction.GetPayload(), chaincodeActionPayload); err != nil {
5651
return nil, err
5752
}
58-
5953
result = append(result, chaincodeActionPayload)
6054
}
6155
return result, nil
6256
}
6357

64-
func (*endorserTransaction) extractChaincodeEndorsedActionsFrom(chaincodeActionPayloads []*peer.ChaincodeActionPayload) ([]*peer.ChaincodeEndorsedAction, error) {
65-
result := []*peer.ChaincodeEndorsedAction{}
66-
for _, payload := range chaincodeActionPayloads {
67-
result = append(result, payload.GetAction())
68-
}
69-
return result, nil
70-
}
71-
72-
func (*endorserTransaction) unmarshalProposalResponsePayloadsFrom(chaincodeEndorsedActions []*peer.ChaincodeEndorsedAction) ([]*peer.ProposalResponsePayload, error) {
73-
result := []*peer.ProposalResponsePayload{}
74-
for _, endorsedAction := range chaincodeEndorsedActions {
58+
func (*endorserTransaction) unmarshalProposalResponsePayloadsFrom(chaincodeActionPayloads []*peer.ChaincodeActionPayload) ([]*peer.ProposalResponsePayload, error) {
59+
var result []*peer.ProposalResponsePayload
60+
for _, chaincodeActionPayload := range chaincodeActionPayloads {
7561
proposalResponsePayload := &peer.ProposalResponsePayload{}
76-
if err := proto.Unmarshal(endorsedAction.GetProposalResponsePayload(), proposalResponsePayload); err != nil {
62+
if err := proto.Unmarshal(chaincodeActionPayload.GetAction().GetProposalResponsePayload(), proposalResponsePayload); err != nil {
7763
return nil, err
7864
}
7965
result = append(result, proposalResponsePayload)
@@ -82,7 +68,7 @@ func (*endorserTransaction) unmarshalProposalResponsePayloadsFrom(chaincodeEndor
8268
}
8369

8470
func (*endorserTransaction) unmarshalChaincodeActionsFrom(proposalResponsePayloads []*peer.ProposalResponsePayload) ([]*peer.ChaincodeAction, error) {
85-
result := []*peer.ChaincodeAction{}
71+
var result []*peer.ChaincodeAction
8672
for _, proposalResponsePayload := range proposalResponsePayloads {
8773
chaincodeAction := &peer.ChaincodeAction{}
8874
if err := proto.Unmarshal(proposalResponsePayload.GetExtension(), chaincodeAction); err != nil {
@@ -94,7 +80,7 @@ func (*endorserTransaction) unmarshalChaincodeActionsFrom(proposalResponsePayloa
9480
}
9581

9682
func (*endorserTransaction) unmarshalTxReadWriteSetsFrom(chaincodeActions []*peer.ChaincodeAction) ([]*rwset.TxReadWriteSet, error) {
97-
result := []*rwset.TxReadWriteSet{}
83+
var result []*rwset.TxReadWriteSet
9884
for _, chaincodeAction := range chaincodeActions {
9985
txReadWriteSet := &rwset.TxReadWriteSet{}
10086
if err := proto.Unmarshal(chaincodeAction.GetResults(), txReadWriteSet); err != nil {
@@ -106,7 +92,7 @@ func (*endorserTransaction) unmarshalTxReadWriteSetsFrom(chaincodeActions []*pee
10692
}
10793

10894
func (*endorserTransaction) parseReadWriteSets(txReadWriteSets []*rwset.TxReadWriteSet) []*readWriteSet {
109-
result := []*readWriteSet{}
95+
var result []*readWriteSet
11096
for _, txReadWriteSet := range txReadWriteSets {
11197
parsedReadWriteSet := parseReadWriteSet(txReadWriteSet)
11298
result = append(result, parsedReadWriteSet)

off_chain_data/application-go/parser/transaction.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,10 @@ func (t *Transaction) NamespaceReadWriteSets() ([]*NamespaceReadWriteSet, error)
2727
return nil, err
2828
}
2929

30-
result := []*NamespaceReadWriteSet{}
30+
var result []*NamespaceReadWriteSet
3131
for _, readWriteSet := range txReadWriteSets {
3232
result = append(result, readWriteSet.namespaceReadWriteSets()...)
3333
}
34-
3534
return result, nil
3635
}
3736

off_chain_data/application-go/store.go

Lines changed: 12 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,12 @@ import (
1010
var errExpected = errors.New("expected error: simulated write failure")
1111

1212
type offChainStore struct {
13-
writes, path string
13+
path string
1414
simulatedFailureCount, transactionCount uint
1515
}
1616

1717
func newOffChainStore(path string, simulatedFailureCount uint) *offChainStore {
1818
return &offChainStore{
19-
"",
2019
path,
2120
uint(simulatedFailureCount),
2221
0,
@@ -30,17 +29,12 @@ func (ocs *offChainStore) write(data ledgerUpdate) error {
3029
return err
3130
}
3231

33-
ocs.clearLastWrites()
34-
35-
if err := ocs.marshal(data.Writes); err != nil {
36-
return err
37-
}
38-
39-
if err := ocs.persist(); err != nil {
32+
writes, err := ocs.marshal(data.Writes)
33+
if err != nil {
4034
return err
4135
}
4236

43-
return nil
37+
return ocs.persist(writes)
4438
}
4539

4640
func (ocs *offChainStore) simulateFailureIfRequired() error {
@@ -54,40 +48,33 @@ func (ocs *offChainStore) simulateFailureIfRequired() error {
5448
return nil
5549
}
5650

57-
func (ocs *offChainStore) clearLastWrites() {
58-
ocs.writes = ""
59-
}
60-
61-
func (ocs *offChainStore) marshal(writes []write) error {
51+
func (ocs *offChainStore) marshal(writes []write) (string, error) {
52+
var marshaledWrites string
6253
for _, write := range writes {
6354
marshaled, err := json.Marshal(write)
6455
if err != nil {
65-
return err
56+
return "", err
6657
}
6758

68-
ocs.writes += string(marshaled) + "\n"
59+
marshaledWrites += string(marshaled) + "\n"
6960
}
7061

71-
return nil
62+
return marshaledWrites, nil
7263
}
7364

74-
func (ocs *offChainStore) persist() error {
65+
func (ocs *offChainStore) persist(marshaledWrites string) error {
7566
f, err := os.OpenFile(ocs.path, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
7667
if err != nil {
7768
return err
7869
}
7970

80-
if _, writeErr := f.Write([]byte(ocs.writes)); writeErr != nil {
71+
if _, writeErr := f.Write([]byte(marshaledWrites)); writeErr != nil {
8172
if closeErr := f.Close(); closeErr != nil {
8273
return fmt.Errorf("write error: %v, close error: %v", writeErr, closeErr)
8374
}
8475

8576
return writeErr
8677
}
8778

88-
if err := f.Close(); err != nil {
89-
return err
90-
}
91-
92-
return nil
79+
return f.Close()
9380
}

off_chain_data/application-go/transact.go

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,9 @@ func transact(clientConnection grpc.ClientConnInterface) error {
2727
}()
2828

2929
contract := gateway.GetNetwork(channelName).GetContract(chaincodeName)
30-
3130
smartContract := atb.NewAssetTransferBasic(contract)
3231
app := newTransactApp(smartContract)
33-
if err := app.run(); err != nil {
34-
return err
35-
}
36-
37-
return nil
32+
return app.run()
3833
}
3934

4035
type transactApp struct {
@@ -71,11 +66,7 @@ func (t *transactApp) run() error {
7166

7267
wg.Wait()
7368

74-
if err := context.Cause(ctx); err != nil {
75-
return err
76-
}
77-
78-
return nil
69+
return context.Cause(ctx)
7970
}
8071

8172
func (t *transactApp) transact() error {

0 commit comments

Comments
 (0)