Skip to content

Commit 945ffb5

Browse files
committed
Add lighter config
1 parent 535ed6d commit 945ffb5

File tree

4 files changed

+141
-1
lines changed

4 files changed

+141
-1
lines changed

chains/lighter/config.go

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package lighter
2+
3+
import (
4+
"fmt"
5+
"math/big"
6+
7+
"github.com/ethereum/go-ethereum/common"
8+
solverConfig "github.com/sprintertech/solver-config/go/config"
9+
)
10+
11+
var (
12+
ARBITRUM_CHAIN_ID = big.NewInt(42161)
13+
LIGHTER_CAIP = "lighter:1"
14+
ARBITRUM_CAIP = "eip155:42161"
15+
USDC = "usdc"
16+
)
17+
18+
type LighterConfig struct {
19+
WithdrawalAddress common.Address
20+
UsdcAddress common.Address
21+
}
22+
23+
func NewLighterConfig(solverConfig solverConfig.SolverConfig) (*LighterConfig, error) {
24+
arbitrumConfig, ok := solverConfig.Chains[ARBITRUM_CAIP]
25+
if !ok {
26+
return nil, fmt.Errorf("no solver config for id %s", ARBITRUM_CAIP)
27+
}
28+
29+
usdcConfig, ok := arbitrumConfig.Tokens[USDC]
30+
if !ok {
31+
return nil, fmt.Errorf("usdc not configured")
32+
}
33+
34+
withdrawalAddress, ok := solverConfig.ProtocolsMetadata.Lighter.FastWithdrawalContract[ARBITRUM_CAIP]
35+
if !ok {
36+
return nil, fmt.Errorf("withdrawal address not configured")
37+
}
38+
39+
return &LighterConfig{
40+
WithdrawalAddress: common.HexToAddress(withdrawalAddress),
41+
UsdcAddress: common.HexToAddress(usdcConfig.Address),
42+
}, nil
43+
}

chains/lighter/config_test.go

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
// The Licensed Work is (c) 2022 Sygma
2+
// SPDX-License-Identifier: LGPL-3.0-only
3+
4+
package lighter_test
5+
6+
import (
7+
"testing"
8+
9+
"github.com/ethereum/go-ethereum/common"
10+
solverConfig "github.com/sprintertech/solver-config/go/config"
11+
"github.com/sprintertech/sprinter-signing/chains/lighter"
12+
"github.com/stretchr/testify/suite"
13+
)
14+
15+
type NewLighterConfigTestSuite struct {
16+
suite.Suite
17+
}
18+
19+
func TestRunNewLighterConfigTestSuite(t *testing.T) {
20+
suite.Run(t, new(NewLighterConfigTestSuite))
21+
}
22+
23+
func (s *NewLighterConfigTestSuite) Test_ArbitrumNotConfigured() {
24+
solverChains := make(map[string]solverConfig.Chain)
25+
_, err := lighter.NewLighterConfig(solverConfig.SolverConfig{
26+
Chains: solverChains,
27+
ProtocolsMetadata: solverConfig.ProtocolsMetadata{},
28+
})
29+
30+
s.NotNil(err)
31+
}
32+
33+
func (s *NewLighterConfigTestSuite) Test_UsdcNotConfigured() {
34+
solverChains := make(map[string]solverConfig.Chain)
35+
solverChains["eip155:42161"] = solverConfig.Chain{}
36+
37+
_, err := lighter.NewLighterConfig(solverConfig.SolverConfig{
38+
Chains: solverChains,
39+
ProtocolsMetadata: solverConfig.ProtocolsMetadata{},
40+
})
41+
42+
s.NotNil(err)
43+
}
44+
45+
func (s *NewLighterConfigTestSuite) Test_WithdrawalAddressNotConfigured() {
46+
tokens := make(map[string]solverConfig.Token)
47+
tokens["usdc"] = solverConfig.Token{
48+
Address: "address",
49+
Decimals: 6,
50+
}
51+
52+
solverChains := make(map[string]solverConfig.Chain)
53+
solverChains["eip155:42161"] = solverConfig.Chain{
54+
Tokens: tokens,
55+
}
56+
57+
_, err := lighter.NewLighterConfig(solverConfig.SolverConfig{
58+
Chains: solverChains,
59+
ProtocolsMetadata: solverConfig.ProtocolsMetadata{
60+
Lighter: &solverConfig.Lighter{},
61+
},
62+
})
63+
64+
s.NotNil(err)
65+
}
66+
67+
func (s *NewLighterConfigTestSuite) Test_ValidConfig() {
68+
tokens := make(map[string]solverConfig.Token)
69+
tokens["usdc"] = solverConfig.Token{
70+
Address: "usdc",
71+
Decimals: 6,
72+
}
73+
74+
solverChains := make(map[string]solverConfig.Chain)
75+
solverChains["eip155:42161"] = solverConfig.Chain{
76+
Tokens: tokens,
77+
}
78+
79+
config, err := lighter.NewLighterConfig(solverConfig.SolverConfig{
80+
Chains: solverChains,
81+
ProtocolsMetadata: solverConfig.ProtocolsMetadata{
82+
Lighter: &solverConfig.Lighter{
83+
FastWithdrawalContract: map[string]string{
84+
"eip155:42161": "withdrawal",
85+
},
86+
},
87+
},
88+
})
89+
90+
s.Nil(err)
91+
s.Equal(config, &lighter.LighterConfig{
92+
WithdrawalAddress: common.HexToAddress("withdrawal"),
93+
UsdcAddress: common.HexToAddress("usdc"),
94+
})
95+
}

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ require (
2121
github.com/spf13/cobra v1.8.1
2222
github.com/spf13/viper v1.9.0
2323
github.com/sprintertech/lifi-solver v0.0.0-20251010142703-ff6f20f8b6eb
24-
github.com/sprintertech/solver-config/go v0.0.0-20251003113310-77bd6669a2ef
24+
github.com/sprintertech/solver-config/go v0.0.0-20251024140304-ee77ffefd608
2525
github.com/stretchr/testify v1.10.0
2626
github.com/sygmaprotocol/sygma-core v0.0.0-20250304150334-bd39ac4f7b82
2727
go.opentelemetry.io/otel v1.16.0

go.sum

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -946,6 +946,8 @@ github.com/sprintertech/lifi-solver v0.0.0-20251010142703-ff6f20f8b6eb h1:d87LBM
946946
github.com/sprintertech/lifi-solver v0.0.0-20251010142703-ff6f20f8b6eb/go.mod h1:EbAH3JJxioBVuHvyjaP5zTh6uPmumCpbE93WEjwpRm0=
947947
github.com/sprintertech/solver-config/go v0.0.0-20251003113310-77bd6669a2ef h1:WPyHT8WM/f5rRFmzxeuTvuI6MCqM7wvTeBsW/B7y3lk=
948948
github.com/sprintertech/solver-config/go v0.0.0-20251003113310-77bd6669a2ef/go.mod h1:MrIGW6M815PSYKtWSeOd1Z7eiSeOIk/uA/6E2PhlQVQ=
949+
github.com/sprintertech/solver-config/go v0.0.0-20251024140304-ee77ffefd608 h1:J5RxJUhqMGfoIUb8XnSjDBlUMH658nM9NIjXft+DjkA=
950+
github.com/sprintertech/solver-config/go v0.0.0-20251024140304-ee77ffefd608/go.mod h1:MrIGW6M815PSYKtWSeOd1Z7eiSeOIk/uA/6E2PhlQVQ=
949951
github.com/status-im/keycard-go v0.0.0-20190316090335-8537d3370df4/go.mod h1:RZLeN1LMWmRsyYjvAu+I6Dm9QmlDaIIt+Y+4Kd7Tp+Q=
950952
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
951953
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=

0 commit comments

Comments
 (0)