Skip to content

Commit

Permalink
feat!: rename DataFromHex functions
Browse files Browse the repository at this point in the history
Since these functions do not return errors, we must panic when needed.
As such, we renamed the functions accordingly.
  • Loading branch information
maharifu committed Nov 28, 2024
1 parent a3ba928 commit 7b86d40
Show file tree
Hide file tree
Showing 15 changed files with 111 additions and 107 deletions.
12 changes: 6 additions & 6 deletions db/badger/blockHandler.go
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ func (h *BlockHandler) BlockNumber(ctx context.Context) (*primitives.HexUint, er
func (h *BlockHandler) GetBlockByHash(ctx context.Context, hash common.H256, isFull bool) (*response.Block, error) {
var resp *response.Block
var err error
bh := primitives.DataFromHex[primitives.Len32](hash.String())
bh := primitives.MustDataFromHex[primitives.Len32](hash.String())
err = h.db.View(func(txn *core.ViewTxn) error {
chainId := utils.GetChainId(ctx)
key, err := txn.ReadBlockKey(chainId, bh)
Expand Down Expand Up @@ -168,7 +168,7 @@ func (h *BlockHandler) GetBlockByNumber(ctx context.Context, number common.BN64,
func (h *BlockHandler) GetBlockTransactionCountByHash(ctx context.Context, hash common.H256) (*primitives.HexUint, error) {
var resp primitives.HexUint
var err error
bh := primitives.DataFromHex[primitives.Len32](hash.String())
bh := primitives.MustDataFromHex[primitives.Len32](hash.String())
err = h.db.View(func(txn *core.ViewTxn) error {
chainId := utils.GetChainId(ctx)
key, err := txn.ReadBlockKey(chainId, bh)
Expand Down Expand Up @@ -210,7 +210,7 @@ func (h *BlockHandler) GetBlockTransactionCountByNumber(ctx context.Context, num
func (h *BlockHandler) GetTransactionByHash(ctx context.Context, hash common.H256) (*response.Transaction, error) {
var resp *response.Transaction
var err error
th := primitives.DataFromHex[primitives.Len32](hash.String())
th := primitives.MustDataFromHex[primitives.Len32](hash.String())
err = h.db.View(func(txn *core.ViewTxn) error {
var key *dbt.TransactionKey
chainId := utils.GetChainId(ctx)
Expand All @@ -230,7 +230,7 @@ func (h *BlockHandler) GetTransactionByHash(ctx context.Context, hash common.H25
func (h *BlockHandler) GetTransactionByBlockHashAndIndex(ctx context.Context, hash common.H256, index common.Uint64) (*response.Transaction, error) {
var resp *response.Transaction
var err error
bh := primitives.DataFromHex[primitives.Len32](hash.String())
bh := primitives.MustDataFromHex[primitives.Len32](hash.String())
err = h.db.View(func(txn *core.ViewTxn) error {
chainId := utils.GetChainId(ctx)
key, err := txn.ReadBlockKey(chainId, bh)
Expand Down Expand Up @@ -275,7 +275,7 @@ func (h *BlockHandler) GetTransactionByBlockNumberAndIndex(ctx context.Context,
func (h *BlockHandler) GetTransactionReceipt(ctx context.Context, hash common.H256) (*response.TransactionReceipt, error) {
var resp *response.TransactionReceipt
var err error
th := primitives.DataFromHex[primitives.Len32](hash.String())
th := primitives.MustDataFromHex[primitives.Len32](hash.String())
err = h.db.View(func(txn *core.ViewTxn) error {
var key *dbt.TransactionKey
chainId := utils.GetChainId(ctx)
Expand Down Expand Up @@ -369,7 +369,7 @@ func (h *BlockHandler) GetIndexerState(chainId uint64) ([]byte, error) {
func (h *BlockHandler) BlockHashToNumber(ctx context.Context, hash common.H256) (*uint64, error) {
var resp uint64
var err error
bh := primitives.DataFromHex[primitives.Len32](hash.String())
bh := primitives.MustDataFromHex[primitives.Len32](hash.String())
err = h.db.View(func(txn *core.ViewTxn) error {
chainId := utils.GetChainId(ctx)
key, err := txn.ReadBlockKey(chainId, bh)
Expand Down
6 changes: 3 additions & 3 deletions db/badger/core/responses.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,14 @@ import (
)

var (
sha3Uncles = primitives.Data32FromHex("0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347")
sha3Uncles = primitives.MustData32FromHex("0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347")
nonce = primitives.Data8FromBytes(nil)
difficulty = primitives.HexUint(0)
extraData = primitives.VarDataFromBytes(nil)
uncles = []primitives.Data[primitives.Len32]{}
gasLimit = primitives.QuantityFromUint64(*utils.Constants.GasLimit())
miner = primitives.Data20FromHex(*utils.Constants.ZeroStrUint160())
mixHash = primitives.Data32FromHex(*utils.Constants.ZeroStrUint256())
miner = primitives.MustData20FromHex(*utils.Constants.ZeroStrUint160())
mixHash = primitives.MustData32FromHex(*utils.Constants.ZeroStrUint256())
)

func makeBlockResponse(height uint64, hash primitives.Data32, data dbt.Block, txs []any) *response.Block {
Expand Down
2 changes: 1 addition & 1 deletion endpoint/eth.go
Original file line number Diff line number Diff line change
Expand Up @@ -489,7 +489,7 @@ func (e *Eth) parseRequestFilter(ctx context.Context, filter *request.Filter) (*
for i, t := range filter.Topics {
f.Topics = append(f.Topics, make([]primitives.Data32, 0))
for _, tt := range t {
f.Topics[i] = append(f.Topics[i], primitives.Data32FromHex(string(tt)))
f.Topics[i] = append(f.Topics[i], primitives.MustData32FromHex(string(tt)))
}
}
}
Expand Down
52 changes: 26 additions & 26 deletions endpoint/eth_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -66,19 +66,19 @@ func TestFormatFilterOptions(t *testing.T) {
panic(err)
}

ca1 := primitives.Data20FromHex(fmt.Sprintf("0x%040x", 0x2))
ca2 := primitives.Data20FromHex(fmt.Sprintf("0x%040x", 0x1))
ca3 := primitives.Data20FromHex(fmt.Sprintf("0x%040x", 0x2))
ca4 := primitives.Data20FromHex(fmt.Sprintf("0x%040x", 0x1))
ca5 := primitives.Data20FromHex(fmt.Sprintf("0x%040x", 0x3))
ca1 := primitives.MustData20FromHex(fmt.Sprintf("0x%040x", 0x2))
ca2 := primitives.MustData20FromHex(fmt.Sprintf("0x%040x", 0x1))
ca3 := primitives.MustData20FromHex(fmt.Sprintf("0x%040x", 0x2))
ca4 := primitives.MustData20FromHex(fmt.Sprintf("0x%040x", 0x1))
ca5 := primitives.MustData20FromHex(fmt.Sprintf("0x%040x", 0x3))

blockHash := primitives.Data32FromHex(fmt.Sprintf("0x%064x", 0x2))
parentHash := primitives.Data32FromHex(fmt.Sprintf("0x%064x", 0x1))
blockHash := primitives.MustData32FromHex(fmt.Sprintf("0x%064x", 0x2))
parentHash := primitives.MustData32FromHex(fmt.Sprintf("0x%064x", 0x1))
filterHash := common.HexStringToHash(blockHash.Hex())

data20 := primitives.Data20FromHex("0x11")
data32 := primitives.Data32FromHex("0x22")
data256 := primitives.Data256FromHex("0x33")
data20 := primitives.MustData20FromHex("0x11")
data32 := primitives.MustData32FromHex("0x22")
data256 := primitives.MustData256FromHex("0x33")
quantity := primitives.QuantityFromHex("0x44")
nearTxn := indexer.NearTransaction{
Hash: nil,
Expand All @@ -98,11 +98,11 @@ func TestFormatFilterOptions(t *testing.T) {
GasUsed: quantity,
LogsBloom: data256,
Transactions: []*indexer.Transaction{
{ContractAddress: &ca1, BlockHash: blockHash, TransactionIndex: 0, Hash: primitives.Data32FromHex("0x1"), From: data20, Nonce: quantity, GasPrice: quantity, GasLimit: quantity, MaxFeePerGas: quantity, MaxPriorityFeePerGas: quantity, Value: quantity, S: quantity, R: quantity, NearTransaction: nearTxn, LogsBloom: data256},
{ContractAddress: &ca2, BlockHash: blockHash, TransactionIndex: 1, Hash: primitives.Data32FromHex("0x2"), From: data20, Nonce: quantity, GasPrice: quantity, GasLimit: quantity, MaxFeePerGas: quantity, MaxPriorityFeePerGas: quantity, Value: quantity, S: quantity, R: quantity, NearTransaction: nearTxn, LogsBloom: data256},
{ContractAddress: &ca3, BlockHash: blockHash, TransactionIndex: 2, Hash: primitives.Data32FromHex("0x3"), From: data20, Nonce: quantity, GasPrice: quantity, GasLimit: quantity, MaxFeePerGas: quantity, MaxPriorityFeePerGas: quantity, Value: quantity, S: quantity, R: quantity, NearTransaction: nearTxn, LogsBloom: data256},
{ContractAddress: &ca4, BlockHash: blockHash, TransactionIndex: 3, Hash: primitives.Data32FromHex("0x4"), From: data20, Nonce: quantity, GasPrice: quantity, GasLimit: quantity, MaxFeePerGas: quantity, MaxPriorityFeePerGas: quantity, Value: quantity, S: quantity, R: quantity, NearTransaction: nearTxn, LogsBloom: data256},
{ContractAddress: &ca5, BlockHash: blockHash, TransactionIndex: 4, Hash: primitives.Data32FromHex("0x5"), From: data20, Nonce: quantity, GasPrice: quantity, GasLimit: quantity, MaxFeePerGas: quantity, MaxPriorityFeePerGas: quantity, Value: quantity, S: quantity, R: quantity, NearTransaction: nearTxn, LogsBloom: data256},
{ContractAddress: &ca1, BlockHash: blockHash, TransactionIndex: 0, Hash: primitives.MustData32FromHex("0x1"), From: data20, Nonce: quantity, GasPrice: quantity, GasLimit: quantity, MaxFeePerGas: quantity, MaxPriorityFeePerGas: quantity, Value: quantity, S: quantity, R: quantity, NearTransaction: nearTxn, LogsBloom: data256},
{ContractAddress: &ca2, BlockHash: blockHash, TransactionIndex: 1, Hash: primitives.MustData32FromHex("0x2"), From: data20, Nonce: quantity, GasPrice: quantity, GasLimit: quantity, MaxFeePerGas: quantity, MaxPriorityFeePerGas: quantity, Value: quantity, S: quantity, R: quantity, NearTransaction: nearTxn, LogsBloom: data256},
{ContractAddress: &ca3, BlockHash: blockHash, TransactionIndex: 2, Hash: primitives.MustData32FromHex("0x3"), From: data20, Nonce: quantity, GasPrice: quantity, GasLimit: quantity, MaxFeePerGas: quantity, MaxPriorityFeePerGas: quantity, Value: quantity, S: quantity, R: quantity, NearTransaction: nearTxn, LogsBloom: data256},
{ContractAddress: &ca4, BlockHash: blockHash, TransactionIndex: 3, Hash: primitives.MustData32FromHex("0x4"), From: data20, Nonce: quantity, GasPrice: quantity, GasLimit: quantity, MaxFeePerGas: quantity, MaxPriorityFeePerGas: quantity, Value: quantity, S: quantity, R: quantity, NearTransaction: nearTxn, LogsBloom: data256},
{ContractAddress: &ca5, BlockHash: blockHash, TransactionIndex: 4, Hash: primitives.MustData32FromHex("0x5"), From: data20, Nonce: quantity, GasPrice: quantity, GasLimit: quantity, MaxFeePerGas: quantity, MaxPriorityFeePerGas: quantity, Value: quantity, S: quantity, R: quantity, NearTransaction: nearTxn, LogsBloom: data256},
},
}

Expand Down Expand Up @@ -150,31 +150,31 @@ func TestFormatFilterOptions(t *testing.T) {
name: "addresses get added once",
data: request.Filter{
Addresses: []common.Address{
common.BytesToAddress(primitives.Data20FromHex(fmt.Sprintf("0x%040x", 0x2)).Bytes()),
common.BytesToAddress(primitives.Data20FromHex(fmt.Sprintf("0x%040x", 0x1)).Bytes()),
common.BytesToAddress(primitives.Data20FromHex(fmt.Sprintf("0x%040x", 0x2)).Bytes()),
common.BytesToAddress(primitives.Data20FromHex(fmt.Sprintf("0x%040x", 0x1)).Bytes()),
common.BytesToAddress(primitives.Data20FromHex(fmt.Sprintf("0x%040x", 0x3)).Bytes()),
common.BytesToAddress(primitives.MustData20FromHex(fmt.Sprintf("0x%040x", 0x2)).Bytes()),
common.BytesToAddress(primitives.MustData20FromHex(fmt.Sprintf("0x%040x", 0x1)).Bytes()),
common.BytesToAddress(primitives.MustData20FromHex(fmt.Sprintf("0x%040x", 0x2)).Bytes()),
common.BytesToAddress(primitives.MustData20FromHex(fmt.Sprintf("0x%040x", 0x1)).Bytes()),
common.BytesToAddress(primitives.MustData20FromHex(fmt.Sprintf("0x%040x", 0x3)).Bytes()),
},
},
wantFrom: &blockData.Height,
wantTo: nil,
wantAddress: []primitives.Data20{
primitives.Data20FromHex(fmt.Sprintf("0x%040x", 0x2)),
primitives.Data20FromHex(fmt.Sprintf("0x%040x", 0x1)),
primitives.Data20FromHex(fmt.Sprintf("0x%040x", 0x3)),
primitives.MustData20FromHex(fmt.Sprintf("0x%040x", 0x2)),
primitives.MustData20FromHex(fmt.Sprintf("0x%040x", 0x1)),
primitives.MustData20FromHex(fmt.Sprintf("0x%040x", 0x3)),
},
wantTopics: [][]primitives.Data32{},
},
{
name: "topics are added as is", // TODO: add stronger topics validation/restrict the type from []byte when unmarshalling?
data: request.Filter{
Topics: request.Topics{{[]byte(primitives.Data32FromHex(fmt.Sprintf("0x%064x", 0x1111)).Hex())}, {[]byte(primitives.Data32FromHex(fmt.Sprintf("0x%064x", 0x2222)).Hex())}, {[]byte(primitives.Data32FromHex(fmt.Sprintf("0x%064x", 0x3333)).Hex())}},
Topics: request.Topics{{[]byte(primitives.MustData32FromHex(fmt.Sprintf("0x%064x", 0x1111)).Hex())}, {[]byte(primitives.MustData32FromHex(fmt.Sprintf("0x%064x", 0x2222)).Hex())}, {[]byte(primitives.MustData32FromHex(fmt.Sprintf("0x%064x", 0x3333)).Hex())}},
},
wantFrom: &blockData.Height,
wantTo: nil,
wantAddress: []primitives.Data20{},
wantTopics: [][]primitives.Data32{{primitives.Data32FromHex(fmt.Sprintf("0x%064x", 0x1111))}, {primitives.Data32FromHex(fmt.Sprintf("0x%064x", 0x2222))}, {primitives.Data32FromHex(fmt.Sprintf("0x%064x", 0x3333))}},
wantTopics: [][]primitives.Data32{{primitives.MustData32FromHex(fmt.Sprintf("0x%064x", 0x1111))}, {primitives.MustData32FromHex(fmt.Sprintf("0x%064x", 0x2222))}, {primitives.MustData32FromHex(fmt.Sprintf("0x%064x", 0x3333))}},
},
}
for _, tc := range ttable {
Expand Down Expand Up @@ -242,7 +242,7 @@ func TestTopicsUnmarshalJSON(t *testing.T) {
{
data: `[`,
want: nil,
wantErr: "unexpected end of JSON input",
wantErr: "do not know how to skip",
},
}
for _, tc := range ttable {
Expand Down
4 changes: 2 additions & 2 deletions indexer/prehistory/indexer.go
Original file line number Diff line number Diff line change
Expand Up @@ -111,8 +111,8 @@ func (i *Indexer) index() {

// Declare and initialize required variables
emptyBytes := make([]byte, 2)
epmtyTxsAndRcptRoot := primitives.Data32FromHex("0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421") // use keccak(rlp(''))
defaultTxsAndRcptRoot := primitives.Data32FromBytes(emptyBytes) // use "0x0..........0"
epmtyTxsAndRcptRoot := primitives.MustData32FromHex("0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421") // use keccak(rlp(''))
defaultTxsAndRcptRoot := primitives.Data32FromBytes(emptyBytes) // use "0x0..........0"
d20 := primitives.Data20FromBytes(emptyBytes)
d32 := primitives.Data32FromBytes(emptyBytes)
d256 := primitives.Data256FromBytes(emptyBytes)
Expand Down
2 changes: 1 addition & 1 deletion rpc/node/events/broker.go
Original file line number Diff line number Diff line change
Expand Up @@ -210,7 +210,7 @@ Logs:
match := len(sub) == 0 // empty rule set == wildcard
for _, topic := range sub {
// empty rule set == wildcard. Otherwise, check if topic index of opts fits in the number of topics in received log and if it fits check topics for equality
if len(topic) == 0 || (i < len(log.Topics) && bytes.Equal(log.Topics[i].Bytes(), primitives.Data32FromHex(string(topic)).Bytes())) {
if len(topic) == 0 || (i < len(log.Topics) && bytes.Equal(log.Topics[i].Bytes(), primitives.MustData32FromHex(string(topic)).Bytes())) {
match = true
break
}
Expand Down
Loading

0 comments on commit 7b86d40

Please sign in to comment.