prysm-pulse/sharding/transactions.go

39 lines
1.1 KiB
Go
Raw Normal View History

// 2018 Prysmatic Labs
// This file is part of the prysmaticlabs/geth-sharding library.
//
// 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:"-"`
}