Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rianhughes/custom network #1416

Closed
wants to merge 33 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
a188d74
make utils.Network a struct
omerfirmak Oct 23, 2023
76033a2
Allow custom networks to be specified
omerfirmak Oct 23, 2023
cf1a572
Merge branch 'main' into rianhughes/custom-network
rianhughes Nov 8, 2023
feaa08c
network.String() now just returns n.name
rianhughes Nov 8, 2023
aa4dd96
lint
rianhughes Nov 8, 2023
5ea2be4
turn off lint errors
rianhughes Nov 8, 2023
04a7d39
moved blockHashMetaInfo into netowrk
rianhughes Nov 9, 2023
5ce259b
tests wip
rianhughes Nov 9, 2023
dbfad22
test wip
rianhughes Nov 9, 2023
c15874b
Add tests for new n.Set() logic
rianhughes Nov 9, 2023
051c6ab
make linter happy
rianhughes Nov 9, 2023
150e4bf
Linter is happy
rianhughes Nov 9, 2023
76962ae
Address some simpler comments
rianhughes Dec 1, 2023
3c2355d
implement custom network json string - test fails to unmarshal
rianhughes Dec 1, 2023
3f86b33
test now passes - required custom Unmarshal
rianhughes Dec 1, 2023
b5f781b
all json-string network tests pass
rianhughes Dec 5, 2023
7876915
tidy
rianhughes Dec 5, 2023
7dbd15e
Replace BaseURL with FeederURl and Gateway URL
rianhughes Dec 5, 2023
2827858
merge main
rianhughes Dec 5, 2023
21a6545
merge main
rianhughes Dec 5, 2023
5b09138
linter for heavy netowrk
rianhughes Dec 5, 2023
182d0b8
all lint errors are gone
rianhughes Dec 5, 2023
ee26a15
fix tests wip
rianhughes Dec 6, 2023
7d98c1e
fix more tests
rianhughes Dec 6, 2023
a99bcfd
linter's happy
rianhughes Dec 6, 2023
e79eb83
Merge branch 'main' into rianhughes/custom-network
rianhughes Dec 6, 2023
39efc10
Update Netowrk.UnMarshal
rianhughes Dec 8, 2023
0b8b8a0
lint
rianhughes Dec 8, 2023
656836b
remove juno/juno files
rianhughes Dec 8, 2023
04f0476
Merge branch 'main' into rianhughes/custom-network
rianhughes Dec 8, 2023
3fbc115
remove defaultL1ChainId()
rianhughes Dec 11, 2023
fd7cd37
Merge branch 'main' into rianhughes/custom-network
rianhughes Dec 11, 2023
ce6b7ae
fix merge main error
rianhughes Dec 11, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions adapters/sn2core/sn2core_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ func TestAdaptBlock(t *testing.T) {

for _, test := range tests {
t.Run(test.network.String()+" block number "+strconv.FormatUint(test.number, 10), func(t *testing.T) {
client := feeder.NewTestClient(t, test.network)
client := feeder.NewTestClient(t, &test.network)

response, err := client.Block(ctx, strconv.FormatUint(test.number, 10))
require.NoError(t, err)
Expand Down Expand Up @@ -108,7 +108,7 @@ func TestAdaptBlock(t *testing.T) {
func TestStateUpdate(t *testing.T) {
numbers := []uint64{0, 1, 2, 21656}

client := feeder.NewTestClient(t, utils.Mainnet)
client := feeder.NewTestClient(t, &utils.Mainnet)
ctx := context.Background()

for _, number := range numbers {
Expand Down Expand Up @@ -157,7 +157,7 @@ func TestStateUpdate(t *testing.T) {
}

t.Run("v0.11.0 state update", func(t *testing.T) {
integClient := feeder.NewTestClient(t, utils.Integration)
integClient := feeder.NewTestClient(t, &utils.Integration)

t.Run("declared Cairo0 classes", func(t *testing.T) {
feederUpdate, err := integClient.StateUpdate(ctx, "283746")
Expand Down Expand Up @@ -199,7 +199,7 @@ func TestClassV0(t *testing.T) {
"0x56b96c1d1bbfa01af44b465763d1b71150fa00c6c9d54c3947f57e979ff68c3",
}

client := feeder.NewTestClient(t, utils.Goerli)
client := feeder.NewTestClient(t, &utils.Goerli)
ctx := context.Background()

for _, hashString := range classHashes {
Expand Down Expand Up @@ -236,8 +236,8 @@ func TestClassV0(t *testing.T) {
}

func TestTransaction(t *testing.T) {
clientGoerli := feeder.NewTestClient(t, utils.Goerli)
clientMainnet := feeder.NewTestClient(t, utils.Mainnet)
clientGoerli := feeder.NewTestClient(t, &utils.Goerli)
clientMainnet := feeder.NewTestClient(t, &utils.Mainnet)
ctx := context.Background()

t.Run("invoke transaction", func(t *testing.T) {
Expand Down Expand Up @@ -348,7 +348,7 @@ func TestTransaction(t *testing.T) {
}

func TestTransactionV3(t *testing.T) {
client := feeder.NewTestClient(t, utils.Integration)
client := feeder.NewTestClient(t, &utils.Integration)
ctx := context.Background()

tests := map[string]core.Transaction{
Expand Down Expand Up @@ -469,7 +469,7 @@ func TestTransactionV3(t *testing.T) {
}

func TestClassV1(t *testing.T) {
client := feeder.NewTestClient(t, utils.Integration)
client := feeder.NewTestClient(t, &utils.Integration)

classHash := utils.HexToFelt(t, "0x1cd2edfb485241c4403254d550de0a097fa76743cd30696f714a491a454bad5")

Expand Down
6 changes: 3 additions & 3 deletions blockchain/blockchain.go
Original file line number Diff line number Diff line change
Expand Up @@ -77,11 +77,11 @@ type Blockchain struct {
cachedPending atomic.Pointer[Pending]
}

func New(database db.DB, network utils.Network, log utils.SimpleLogger) *Blockchain {
func New(database db.DB, network *utils.Network, log utils.SimpleLogger) *Blockchain {
RegisterCoreTypesToEncoder()
return &Blockchain{
database: database,
network: network,
network: *network,
log: log,
listener: &SelectiveListener{},
}
Expand Down Expand Up @@ -639,7 +639,7 @@ func (b *Blockchain) SanityCheckNewHeight(block *core.Block, stateUpdate *core.S
return nil, err
}

return core.VerifyBlockHash(block, b.network)
return core.VerifyBlockHash(block, &b.network)
}

type txAndReceiptDBKey struct {
Expand Down
56 changes: 28 additions & 28 deletions blockchain/blockchain_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,11 @@ import (
var emptyCommitments = core.BlockCommitments{}

func TestNew(t *testing.T) {
client := feeder.NewTestClient(t, utils.Mainnet)
client := feeder.NewTestClient(t, &utils.Mainnet)
gw := adaptfeeder.New(client)
log := utils.NewNopZapLogger()
t.Run("empty blockchain's head is nil", func(t *testing.T) {
chain := blockchain.New(pebble.NewMemTest(t), utils.Mainnet, log)
chain := blockchain.New(pebble.NewMemTest(t), &utils.Mainnet, log)
assert.Equal(t, utils.Mainnet, chain.Network())
b, err := chain.Head()
assert.Nil(t, b)
Expand All @@ -40,22 +40,22 @@ func TestNew(t *testing.T) {
require.NoError(t, err)

testDB := pebble.NewMemTest(t)
chain := blockchain.New(testDB, utils.Mainnet, log)
chain := blockchain.New(testDB, &utils.Mainnet, log)
assert.NoError(t, chain.Store(block0, &emptyCommitments, stateUpdate0, nil))

chain = blockchain.New(testDB, utils.Mainnet, log)
chain = blockchain.New(testDB, &utils.Mainnet, log)
b, err := chain.Head()
require.NoError(t, err)
assert.Equal(t, block0, b)
})
}

func TestHeight(t *testing.T) {
client := feeder.NewTestClient(t, utils.Mainnet)
client := feeder.NewTestClient(t, &utils.Mainnet)
gw := adaptfeeder.New(client)
log := utils.NewNopZapLogger()
t.Run("return nil if blockchain is empty", func(t *testing.T) {
chain := blockchain.New(pebble.NewMemTest(t), utils.Goerli, log)
chain := blockchain.New(pebble.NewMemTest(t), &utils.Goerli, log)
_, err := chain.Height()
assert.Error(t, err)
})
Expand All @@ -67,20 +67,20 @@ func TestHeight(t *testing.T) {
require.NoError(t, err)

testDB := pebble.NewMemTest(t)
chain := blockchain.New(testDB, utils.Mainnet, log)
chain := blockchain.New(testDB, &utils.Mainnet, log)
assert.NoError(t, chain.Store(block0, &emptyCommitments, stateUpdate0, nil))

chain = blockchain.New(testDB, utils.Mainnet, log)
chain = blockchain.New(testDB, &utils.Mainnet, log)
height, err := chain.Height()
require.NoError(t, err)
assert.Equal(t, block0.Number, height)
})
}

func TestBlockByNumberAndHash(t *testing.T) {
chain := blockchain.New(pebble.NewMemTest(t), utils.Goerli, utils.NewNopZapLogger())
chain := blockchain.New(pebble.NewMemTest(t), &utils.Goerli, utils.NewNopZapLogger())
t.Run("same block is returned for both GetBlockByNumber and GetBlockByHash", func(t *testing.T) {
client := feeder.NewTestClient(t, utils.Mainnet)
client := feeder.NewTestClient(t, &utils.Mainnet)
gw := adaptfeeder.New(client)

block, err := gw.BlockByNumber(context.Background(), 0)
Expand Down Expand Up @@ -114,7 +114,7 @@ func TestVerifyBlock(t *testing.T) {
h1, err := new(felt.Felt).SetRandom()
require.NoError(t, err)

chain := blockchain.New(pebble.NewMemTest(t), utils.Mainnet, utils.NewNopZapLogger())
chain := blockchain.New(pebble.NewMemTest(t), &utils.Mainnet, utils.NewNopZapLogger())

t.Run("error if chain is empty and incoming block number is not 0", func(t *testing.T) {
block := &core.Block{Header: &core.Header{Number: 10}}
Expand All @@ -126,7 +126,7 @@ func TestVerifyBlock(t *testing.T) {
assert.EqualError(t, chain.VerifyBlock(block), "block's parent hash does not match head block hash")
})

client := feeder.NewTestClient(t, utils.Mainnet)
client := feeder.NewTestClient(t, &utils.Mainnet)

gw := adaptfeeder.New(client)
mainnetBlock0, err := gw.BlockByNumber(context.Background(), 0)
Expand Down Expand Up @@ -176,9 +176,9 @@ func TestSanityCheckNewHeight(t *testing.T) {
h1, err := new(felt.Felt).SetRandom()
require.NoError(t, err)

chain := blockchain.New(pebble.NewMemTest(t), utils.Mainnet, utils.NewNopZapLogger())
chain := blockchain.New(pebble.NewMemTest(t), &utils.Mainnet, utils.NewNopZapLogger())

client := feeder.NewTestClient(t, utils.Mainnet)
client := feeder.NewTestClient(t, &utils.Mainnet)

gw := adaptfeeder.New(client)

Expand Down Expand Up @@ -211,7 +211,7 @@ func TestSanityCheckNewHeight(t *testing.T) {
}

func TestStore(t *testing.T) {
client := feeder.NewTestClient(t, utils.Mainnet)
client := feeder.NewTestClient(t, &utils.Mainnet)
gw := adaptfeeder.New(client)
log := utils.NewNopZapLogger()

Expand All @@ -222,7 +222,7 @@ func TestStore(t *testing.T) {
require.NoError(t, err)

t.Run("add block to empty blockchain", func(t *testing.T) {
chain := blockchain.New(pebble.NewMemTest(t), utils.Mainnet, log)
chain := blockchain.New(pebble.NewMemTest(t), &utils.Mainnet, log)
require.NoError(t, chain.Store(block0, &emptyCommitments, stateUpdate0, nil))

headBlock, err := chain.Head()
Expand All @@ -248,7 +248,7 @@ func TestStore(t *testing.T) {
stateUpdate1, err := gw.StateUpdate(context.Background(), 1)
require.NoError(t, err)

chain := blockchain.New(pebble.NewMemTest(t), utils.Mainnet, log)
chain := blockchain.New(pebble.NewMemTest(t), &utils.Mainnet, log)
require.NoError(t, chain.Store(block0, &emptyCommitments, stateUpdate0, nil))
require.NoError(t, chain.Store(block1, &emptyCommitments, stateUpdate1, nil))

Expand All @@ -271,9 +271,9 @@ func TestStore(t *testing.T) {
}

func TestTransactionAndReceipt(t *testing.T) {
chain := blockchain.New(pebble.NewMemTest(t), utils.Mainnet, utils.NewNopZapLogger())
chain := blockchain.New(pebble.NewMemTest(t), &utils.Mainnet, utils.NewNopZapLogger())

client := feeder.NewTestClient(t, utils.Mainnet)
client := feeder.NewTestClient(t, &utils.Mainnet)
gw := adaptfeeder.New(client)

for i := uint64(0); i < 3; i++ {
Expand Down Expand Up @@ -359,9 +359,9 @@ func TestTransactionAndReceipt(t *testing.T) {

func TestState(t *testing.T) {
testDB := pebble.NewMemTest(t)
chain := blockchain.New(testDB, utils.Mainnet, utils.NewNopZapLogger())
chain := blockchain.New(testDB, &utils.Mainnet, utils.NewNopZapLogger())

client := feeder.NewTestClient(t, utils.Mainnet)
client := feeder.NewTestClient(t, &utils.Mainnet)
gw := adaptfeeder.New(client)

t.Run("head with no blocks", func(t *testing.T) {
Expand Down Expand Up @@ -422,9 +422,9 @@ func TestState(t *testing.T) {

func TestEvents(t *testing.T) {
testDB := pebble.NewMemTest(t)
chain := blockchain.New(testDB, utils.Goerli2, utils.NewNopZapLogger())
chain := blockchain.New(testDB, &utils.Goerli2, utils.NewNopZapLogger())

client := feeder.NewTestClient(t, utils.Goerli2)
client := feeder.NewTestClient(t, &utils.Goerli2)
gw := adaptfeeder.New(client)

for i := 0; i < 7; i++ {
Expand Down Expand Up @@ -541,9 +541,9 @@ func TestEvents(t *testing.T) {

func TestRevert(t *testing.T) {
testdb := pebble.NewMemTest(t)
chain := blockchain.New(testdb, utils.Mainnet, utils.NewNopZapLogger())
chain := blockchain.New(testdb, &utils.Mainnet, utils.NewNopZapLogger())

client := feeder.NewTestClient(t, utils.Mainnet)
client := feeder.NewTestClient(t, &utils.Mainnet)
gw := adaptfeeder.New(client)

for i := uint64(0); i < 3; i++ {
Expand Down Expand Up @@ -625,7 +625,7 @@ func TestL1Update(t *testing.T) {

for _, head := range heads {
t.Run(fmt.Sprintf("update L1 head to block %d", head.BlockNumber), func(t *testing.T) {
chain := blockchain.New(pebble.NewMemTest(t), utils.Mainnet, utils.NewNopZapLogger())
chain := blockchain.New(pebble.NewMemTest(t), &utils.Mainnet, utils.NewNopZapLogger())
require.NoError(t, chain.SetL1Head(head))
got, err := chain.L1Head()
require.NoError(t, err)
Expand All @@ -636,8 +636,8 @@ func TestL1Update(t *testing.T) {

func TestPending(t *testing.T) {
testDB := pebble.NewMemTest(t)
chain := blockchain.New(testDB, utils.Mainnet, utils.NewNopZapLogger())
client := feeder.NewTestClient(t, utils.Mainnet)
chain := blockchain.New(testDB, &utils.Mainnet, utils.NewNopZapLogger())
client := feeder.NewTestClient(t, &utils.Mainnet)
gw := adaptfeeder.New(client)

b, err := gw.BlockByNumber(context.Background(), 0)
Expand Down
4 changes: 2 additions & 2 deletions clients/feeder/feeder.go
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ func NopBackoff(d time.Duration) time.Duration {
}

// NewTestClient returns a client and a function to close a test server.
func NewTestClient(t *testing.T, network utils.Network) *Client {
func NewTestClient(t *testing.T, network *utils.Network) *Client {
srv := newTestServer(network)
t.Cleanup(srv.Close)
ua := "Juno/v0.0.1-test Starknet Implementation"
Expand All @@ -100,7 +100,7 @@ func NewTestClient(t *testing.T, network utils.Network) *Client {
return c
}

func newTestServer(network utils.Network) *httptest.Server {
func newTestServer(network *utils.Network) *httptest.Server {
return httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
queryMap, err := url.ParseQuery(r.URL.RawQuery)
if err != nil {
Expand Down
Loading
Loading