From 016721a10c1428b969b0c9b98c5f05736c01f253 Mon Sep 17 00:00:00 2001 From: Hans Moog <hm@mkjc.net> Date: Mon, 23 Dec 2019 01:29:51 +0100 Subject: [PATCH] Feat: valuetransfers store input now --- .../payload/valuetransfer/value.go | 19 +++++++++++++++---- .../transaction/test/transaction_test.go | 4 +++- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/packages/binary/transaction/payload/valuetransfer/value.go b/packages/binary/transaction/payload/valuetransfer/value.go index 4f395d1d..e433d9df 100644 --- a/packages/binary/transaction/payload/valuetransfer/value.go +++ b/packages/binary/transaction/payload/valuetransfer/value.go @@ -1,20 +1,31 @@ package valuetransfer import ( + "sync" + "github.com/iotaledger/goshimmer/packages/binary/address" - "github.com/iotaledger/goshimmer/packages/binary/transaction" "github.com/iotaledger/goshimmer/packages/binary/transaction/payload" + "github.com/iotaledger/goshimmer/packages/ledgerstate/transfer" ) -type ValueTransfer struct{} +type ValueTransfer struct { + inputs []*transfer.OutputReference + inputsMutex sync.RWMutex +} var Type = payload.Type(1) func New() *ValueTransfer { - return &ValueTransfer{} + return &ValueTransfer{ + inputs: make([]*transfer.OutputReference, 0), + } } -func (valueTransfer *ValueTransfer) AddInput(transaction transaction.Id, address address.Address) *ValueTransfer { +func (valueTransfer *ValueTransfer) AddInput(transferHash transfer.Hash, address address.Address) *ValueTransfer { + valueTransfer.inputsMutex.Lock() + valueTransfer.inputs = append(valueTransfer.inputs, transfer.NewOutputReference(transferHash, address)) + valueTransfer.inputsMutex.Unlock() + return valueTransfer } diff --git a/packages/binary/transaction/test/transaction_test.go b/packages/binary/transaction/test/transaction_test.go index c01b6c3f..3e195bef 100644 --- a/packages/binary/transaction/test/transaction_test.go +++ b/packages/binary/transaction/test/transaction_test.go @@ -4,6 +4,8 @@ import ( "fmt" "testing" + "github.com/iotaledger/goshimmer/packages/ledgerstate/transfer" + "github.com/iotaledger/goshimmer/packages/binary/transaction" "github.com/iotaledger/goshimmer/packages/binary/address" @@ -17,7 +19,7 @@ func TestNew(t *testing.T) { newTransaction1 := transaction.New(transaction.EmptyId, transaction.EmptyId, identity.Generate(), data.New([]byte("test"))) assert.Equal(t, newTransaction1.VerifySignature(), true) - valueTransfer := valuetransfer.New().AddInput(transaction.EmptyId, address.Random()) + valueTransfer := valuetransfer.New().AddInput(transfer.NewHash("test"), address.Random()) newValueTransaction1 := transaction.New(transaction.EmptyId, transaction.EmptyId, identity.Generate(), valueTransfer) assert.Equal(t, newValueTransaction1.VerifySignature(), true) -- GitLab