Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 9 additions & 27 deletions platform/fabric/chaincode.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,36 +15,18 @@ import (
"github.com/hyperledger-labs/fabric-smart-client/platform/view/view"
)

// Envelope models a fabric envelope
type Envelope struct {
e driver.Envelope
driver.Envelope
}

func (e *Envelope) Bytes() ([]byte, error) {
return e.e.Bytes()
}

func (e *Envelope) FromBytes(raw []byte) error {
return e.e.FromBytes(raw)
}

func (e *Envelope) Results() []byte {
return e.e.Results()
}

func (e *Envelope) TxID() string {
return e.e.TxID()
}

func (e *Envelope) Nonce() []byte {
return e.e.Nonce()
}

func (e *Envelope) Creator() []byte {
return e.e.Creator()
// NewEnvelope returns a new instance of Envelope that wraps the given driver implementation.
func NewEnvelope(e driver.Envelope) *Envelope {
return &Envelope{Envelope: e}
}

func (e *Envelope) MarshalJSON() ([]byte, error) {
raw, err := e.e.Bytes()
raw, err := e.Bytes()
if err != nil {
return nil, err
}
Expand All @@ -57,11 +39,11 @@ func (e *Envelope) UnmarshalJSON(raw []byte) error {
if err != nil {
return err
}
return e.e.FromBytes(r)
return e.FromBytes(r)
}

func (e *Envelope) String() string {
return e.e.String()
return e.Envelope.String()
}

type Chaincode struct {
Expand Down Expand Up @@ -264,7 +246,7 @@ func (i *ChaincodeEndorse) Call() (*Envelope, error) {
if err != nil {
return nil, err
}
return &Envelope{e: env}, nil
return NewEnvelope(env), nil
}

func (i *ChaincodeEndorse) WithContext(context context.Context) *ChaincodeEndorse {
Expand Down
2 changes: 1 addition & 1 deletion platform/fabric/ordering.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ type Ordering struct {
func (n *Ordering) Broadcast(context context.Context, blob interface{}) error {
switch b := blob.(type) {
case *Envelope:
return n.network.OrderingService().Broadcast(context, b.e)
return n.network.OrderingService().Broadcast(context, b.Envelope)
case *Transaction:
return n.network.OrderingService().Broadcast(context, b.tx)
default:
Expand Down
24 changes: 9 additions & 15 deletions platform/fabric/services/endorser/builder.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,25 +12,24 @@ import (
"github.com/hyperledger-labs/fabric-smart-client/pkg/utils/errors"
"github.com/hyperledger-labs/fabric-smart-client/platform/common/services/logging"
"github.com/hyperledger-labs/fabric-smart-client/platform/fabric"
view2 "github.com/hyperledger-labs/fabric-smart-client/platform/view/services"
"github.com/hyperledger-labs/fabric-smart-client/platform/view/services/comm/session"
"github.com/hyperledger-labs/fabric-smart-client/platform/view/services"
"github.com/hyperledger-labs/fabric-smart-client/platform/view/view"
)

var logger = logging.MustGetLogger()

type Builder struct {
sp view2.Provider
sp services.Provider
}

func NewBuilder(context view.Context) *Builder {
if context == nil {
panic("context must be set")
func NewBuilder(sp services.Provider) *Builder {
if sp == nil {
panic("service provider must be set")
}
return &Builder{sp: context}
return &Builder{sp: sp}
}

func NewBuilderWithServiceProvider(sp view2.Provider) *Builder {
func NewBuilderWithServiceProvider(sp services.Provider) *Builder {
if sp == nil {
panic("service provider must be set")
}
Expand Down Expand Up @@ -161,7 +160,7 @@ func NewTransactionWithSigner(context view.Context, network, channel string, id
return txBuilder, tx, nil
}

func NewTransactionWith(ctx context.Context, sp view2.Provider, network, channel string, id view.Identity) (*Builder, *Transaction, error) {
func NewTransactionWith(ctx context.Context, sp services.Provider, network, channel string, id view.Identity) (*Builder, *Transaction, error) {
txBuilder := NewBuilderWithServiceProvider(sp)
tx, err := txBuilder.newTransaction(ctx, id, network, channel, nil, nil, false)
if err != nil {
Expand All @@ -170,16 +169,11 @@ func NewTransactionWith(ctx context.Context, sp view2.Provider, network, channel
return txBuilder, tx, nil
}

func NewTransactionFromEnvelopeBytes(ctx context.Context, sp view2.Provider, bytes []byte) (*Builder, *Transaction, error) {
func NewTransactionFromEnvelopeBytes(ctx context.Context, sp services.Provider, bytes []byte) (*Builder, *Transaction, error) {
txBuilder := NewBuilderWithServiceProvider(sp)
tx, err := txBuilder.NewTransactionFromEnvelopeBytes(ctx, bytes)
if err != nil {
return nil, nil, err
}
return txBuilder, tx, nil
}

func ReceiveTransaction(context view.Context) (*Transaction, error) {
_, tx, err := NewTransactionFromBytes(context, session.ReadFirstMessageOrPanic(context))
return tx, err
}
16 changes: 13 additions & 3 deletions platform/fabric/services/endorser/endorsement_proposal.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,16 @@ import (
"github.com/hyperledger-labs/fabric-smart-client/platform/view/view"
)

// EndorsementsOnProposalTransaction models a transaction on which to collect endorsements on the transaction's proposal
type EndorsementsOnProposalTransaction interface {
Network() string
EndorseProposalResponseWithIdentity(id view.Identity) error
ProposalResponses() ([][]byte, error)
Bytes() ([]byte, error)
ID() string
AppendProposalResponse(response *fabric.ProposalResponse) error
}

type Response struct {
ProposalResponses [][]byte
}
Expand All @@ -26,7 +36,7 @@ type answer struct {
}

type parallelCollectEndorsementsOnProposalView struct {
tx *Transaction
tx EndorsementsOnProposalTransaction
parties []view.Identity

timeout time.Duration
Expand Down Expand Up @@ -118,11 +128,11 @@ func (c *parallelCollectEndorsementsOnProposalView) collectEndorsement(
}

type endorsementsOnProposalResponderView struct {
tx *Transaction
tx EndorsementsOnProposalTransaction
identities []view.Identity
}

func NewEndorsementOnProposalResponderView(tx *Transaction, identities ...view.Identity) *endorsementsOnProposalResponderView {
func NewEndorsementOnProposalResponderView(tx EndorsementsOnProposalTransaction, identities ...view.Identity) *endorsementsOnProposalResponderView {
return &endorsementsOnProposalResponderView{tx: tx, identities: identities}
}

Expand Down
8 changes: 4 additions & 4 deletions platform/fabric/services/endorser/finality.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,15 @@ import (
"time"

"github.com/hyperledger-labs/fabric-smart-client/pkg/utils/errors"
driver2 "github.com/hyperledger-labs/fabric-smart-client/platform/common/driver"
cdriver "github.com/hyperledger-labs/fabric-smart-client/platform/common/driver"
"github.com/hyperledger-labs/fabric-smart-client/platform/fabric"
"github.com/hyperledger-labs/fabric-smart-client/platform/view/view"
)

type Finality struct {
TxID driver2.TxID
Network driver2.Network
Channel driver2.Channel
TxID cdriver.TxID
Network cdriver.Network
Channel cdriver.Channel
}

type finalityView struct {
Expand Down
1 change: 0 additions & 1 deletion platform/fabric/services/endorser/flow.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ package endorser

import (
"github.com/hyperledger-labs/fabric-smart-client/pkg/utils/errors"

"github.com/hyperledger-labs/fabric-smart-client/platform/view/view"
)

Expand Down
13 changes: 0 additions & 13 deletions platform/fabric/services/endorser/signer.go

This file was deleted.

14 changes: 12 additions & 2 deletions platform/fabric/transaction.go
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,11 @@ type ProposalResponse struct {
pr driver.ProposalResponse
}

// NewProposalResponse returns a new instance of ProposalResponse for the passed arguments
func NewProposalResponse(pr driver.ProposalResponse) *ProposalResponse {
return &ProposalResponse{pr: pr}
}

func (r *ProposalResponse) ResponseStatus() int32 {
return r.pr.ResponseStatus()
}
Expand Down Expand Up @@ -187,6 +192,11 @@ type Transaction struct {
tx driver.Transaction
}

// NewTransaction returns a new instance of Transaction for the given arguments
func NewTransaction(fns *NetworkService, tx driver.Transaction) *Transaction {
return &Transaction{fns: fns, tx: tx}
}

func (t *Transaction) Creator() view.Identity {
return t.tx.Creator()
}
Expand Down Expand Up @@ -368,15 +378,15 @@ func (t *Transaction) Envelope() (*Envelope, error) {
if err != nil {
return nil, err
}
return &Envelope{e: env}, nil
return NewEnvelope(env), nil
}

type TransactionManager struct {
fns *NetworkService
}

func (t *TransactionManager) NewEnvelope() *Envelope {
return &Envelope{e: t.fns.fns.TransactionManager().NewEnvelope()}
return NewEnvelope(t.fns.fns.TransactionManager().NewEnvelope())
}

func (t *TransactionManager) NewProposalResponseFromBytes(raw []byte) (*ProposalResponse, error) {
Expand Down
Loading