From 97a87d17bb1bffbbfb6df70ecf11705cacbba2ea Mon Sep 17 00:00:00 2001 From: Hans Moog <hm@mkjc.net> Date: Mon, 8 Jul 2019 16:14:11 +0200 Subject: [PATCH] Fix: fixed erroneous parts in bundle essence calculation --- packages/model/value_transaction/value_transaction.go | 4 ++-- plugins/bundleprocessor/bundleprocessor.go | 10 ++++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/packages/model/value_transaction/value_transaction.go b/packages/model/value_transaction/value_transaction.go index 398e90c0..25e98607 100644 --- a/packages/model/value_transaction/value_transaction.go +++ b/packages/model/value_transaction/value_transaction.go @@ -206,8 +206,8 @@ func (this *ValueTransaction) GetBundleEssence() (result trinary.Trits) { copy(result[0:], this.trits[ADDRESS_OFFSET:VALUE_END]) - if this.GetValue() < 0 { - copy(result[:VALUE_END], this.trits[SIGNATURE_MESSAGE_FRAGMENT_OFFSET:SIGNATURE_MESSAGE_FRAGMENT_END]) + if this.GetValue() >= 0 { + copy(result[VALUE_END:], this.trits[SIGNATURE_MESSAGE_FRAGMENT_OFFSET:SIGNATURE_MESSAGE_FRAGMENT_END]) } this.signatureMessageFragmentMutex.RUnlock() diff --git a/plugins/bundleprocessor/bundleprocessor.go b/plugins/bundleprocessor/bundleprocessor.go index 13bef81e..30c8b6d5 100644 --- a/plugins/bundleprocessor/bundleprocessor.go +++ b/plugins/bundleprocessor/bundleprocessor.go @@ -1,6 +1,7 @@ package bundleprocessor import ( + "github.com/iotadevelopment/go/packages/ternary" "github.com/iotaledger/goshimmer/packages/errors" "github.com/iotaledger/goshimmer/packages/model/bundle" "github.com/iotaledger/goshimmer/packages/model/transactionmetadata" @@ -52,6 +53,15 @@ func ProcessSolidBundleHead(headTransaction *value_transaction.ValueTransaction) if currentTransaction.IsTail() { newBundle.SetTransactionHashes(mapTransactionsToTransactionHashes(bundleTransactions)) + if newBundle.IsValueBundle() { + var concatenatedBundleEssences = make(ternary.Trits, len(bundleTransactions)*value_transaction.BUNDLE_ESSENCE_SIZE) + for i, bundleTransaction := range bundleTransactions { + copy(concatenatedBundleEssences[value_transaction.BUNDLE_ESSENCE_SIZE*i:value_transaction.BUNDLE_ESSENCE_SIZE*(i+1)], bundleTransaction.GetBundleEssence()) + } + + // calc + set bundle hash + } + Events.BundleSolid.Trigger(newBundle, bundleTransactions) return newBundle, nil -- GitLab