github.com/Unheilbar/quorum@v1.0.0/qlight/test/types_test.go (about) 1 package test 2 3 import ( 4 "testing" 5 6 "github.com/ethereum/go-ethereum/common" 7 "github.com/ethereum/go-ethereum/private/engine" 8 "github.com/ethereum/go-ethereum/qlight" 9 "github.com/ethereum/go-ethereum/rlp" 10 "github.com/stretchr/testify/assert" 11 ) 12 13 func TestBlockPrivateData_RLPEncodeDecode(t *testing.T) { 14 txHash := common.BytesToEncryptedPayloadHash([]byte("EPH1")) 15 data := qlight.BlockPrivateData{ 16 BlockHash: common.BytesToHash([]byte("BlockHash")), 17 PSI: "PS1", 18 PrivateStateRoot: common.BytesToHash([]byte("PSR")), 19 PrivateTransactions: []qlight.PrivateTransactionData{ 20 { 21 Hash: &txHash, 22 Payload: []byte("data"), 23 Extra: &engine.ExtraMetadata{ 24 ACHashes: common.EncryptedPayloadHashes{common.BytesToEncryptedPayloadHash([]byte("ACEPH1")): struct{}{}}, 25 ACMerkleRoot: common.BytesToHash([]byte("root")), 26 PrivacyFlag: engine.PrivacyFlagPartyProtection, 27 ManagedParties: []string{"party1", "party2"}, 28 Sender: "party3", 29 MandatoryRecipients: []string{"party1"}, 30 }, 31 IsSender: false, 32 }}, 33 } 34 35 bytes, err := rlp.EncodeToBytes(data) 36 assert.NoError(t, err) 37 var decodedData qlight.BlockPrivateData 38 err = rlp.DecodeBytes(bytes, &decodedData) 39 assert.NoError(t, err) 40 assert.Equal(t, data.PSI, decodedData.PSI) 41 assert.Equal(t, data.BlockHash, decodedData.BlockHash) 42 assert.Equal(t, data.PrivateStateRoot, decodedData.PrivateStateRoot) 43 assert.Len(t, decodedData.PrivateTransactions, 1) 44 privateTx := decodedData.PrivateTransactions[0] 45 assert.Equal(t, &txHash, privateTx.Hash) 46 assert.Equal(t, data.PrivateTransactions[0].Payload, privateTx.Payload) 47 assert.Equal(t, data.PrivateTransactions[0].IsSender, privateTx.IsSender) 48 assert.Equal(t, data.PrivateTransactions[0].Hash, privateTx.Hash) 49 assert.Equal(t, data.PrivateTransactions[0].Extra.Sender, privateTx.Extra.Sender) 50 assert.Equal(t, data.PrivateTransactions[0].Extra.ACMerkleRoot, privateTx.Extra.ACMerkleRoot) 51 assert.Equal(t, data.PrivateTransactions[0].Extra.PrivacyFlag, privateTx.Extra.PrivacyFlag) 52 assert.Equal(t, data.PrivateTransactions[0].Extra.MandatoryRecipients, privateTx.Extra.MandatoryRecipients) 53 assert.Len(t, decodedData.PrivateTransactions[0].Extra.ACHashes, 1) 54 _, found := decodedData.PrivateTransactions[0].Extra.ACHashes[common.BytesToEncryptedPayloadHash([]byte("ACEPH1"))] 55 assert.True(t, found) 56 }