diff --git a/sharding/transactions.go b/sharding/transactions.go index 8bbaa9a6d..627278c7e 100644 --- a/sharding/transactions.go +++ b/sharding/transactions.go @@ -1,6 +1,38 @@ // 2018 Prysmatic Labs // This file is part of the prysmaticlabs/geth-sharding library. // -// This file overrides the default protocol transaction interface +// This file overrides the default protocol transaction interface to prep it +// for sharding package sharding + +import ( + "github.com/ethereum/go-ethereum/common" + "math/big" + "sync/atomic" + //"github.com/ethereum/go-ethereum/common/hexutil" + //"github.com/ethereum/go-ethereum/rlp" +) + +// Transaction Base Sharding Struct +type Transaction struct { + data txdata + hash atomic.Value + size atomic.Value + from atomic.Value +} + +type txdata struct { + AccountNonce uint64 `json:"nonce" gencodec:"required"` + Price *big.Int `json:"gasPrice" gencodec:"required"` + GasLimit uint64 `json:"gas" gencodec:"required"` + Recipient *common.Address `json:"to" rlp:"nil"` // nil means contract creation + Amount *big.Int `json:"value" gencodec:"required"` + // Code Payload + Payload []byte `json:"input" gencodec:"required"` + // TODO: + // add accesslist, chainid, shardid, + + // This is only used when marshaling to JSON. + Hash *common.Hash `json:"hash" rlp:"-"` +} diff --git a/sharding/transactions_test.go b/sharding/transactions_test.go new file mode 100644 index 000000000..dc7b45594 --- /dev/null +++ b/sharding/transactions_test.go @@ -0,0 +1,15 @@ +package sharding + +import ( + //"flag" + //"fmt" + //"math/rand" + //"os" + "testing" +) + +func TestCreation(t *testing.T) { + if 1 != 2 { + t.Fatalf("Values are not equal") + } +}