Skip to content

Commit ee3fcd3

Browse files
committed
fix: lighter updates to address their api breaking changes
Signed-off-by: Marin Petrunic <[email protected]>
1 parent 2359568 commit ee3fcd3

File tree

3 files changed

+20
-10
lines changed

3 files changed

+20
-10
lines changed

chains/lighter/message/lighter.go

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,9 @@ import (
2424
)
2525

2626
var (
27-
ARBITRUM_CHAIN_ID = big.NewInt(42161)
28-
FEE = big.NewInt(2000000)
27+
ARBITRUM_CHAIN_ID = big.NewInt(42161)
28+
FEE = big.NewInt(2000000)
29+
USDC_ACCOUNT_INDEX = 3
2930
)
3031

3132
type Coordinator interface {
@@ -104,7 +105,7 @@ func (h *LighterMessageHandler) HandleMessage(m *message.Message) (*proposal.Pro
104105

105106
unlockHash, err := signature.BorrowUnlockHash(
106107
calldata,
107-
new(big.Int).SetUint64(tx.Transfer.USDCAmount),
108+
new(big.Int).SetUint64(tx.Transfer.Amount),
108109
h.usdcAddress,
109110
ARBITRUM_CHAIN_ID,
110111
h.lighterAddress,
@@ -145,15 +146,19 @@ func (h *LighterMessageHandler) verifyWithdrawal(tx *lighter.LighterTx) error {
145146
return errors.New("transfer account index invalid")
146147
}
147148

148-
if tx.Transfer.USDCAmount <= FEE.Uint64() {
149+
if tx.Transfer.AssetIndex != uint64(USDC_ACCOUNT_INDEX) {
150+
return errors.New("only usdc asset supported on lighter")
151+
}
152+
153+
if tx.Transfer.Amount <= FEE.Uint64() {
149154
return errors.New("fee higher than withdrawal amount")
150155
}
151156

152157
return nil
153158
}
154159

155160
func (h *LighterMessageHandler) calldata(tx *lighter.LighterTx) ([]byte, error) {
156-
borrowAmount := new(big.Int).Sub(new(big.Int).SetUint64(tx.Transfer.USDCAmount), FEE)
161+
borrowAmount := new(big.Int).Sub(new(big.Int).SetUint64(tx.Transfer.Amount), FEE)
157162
return consts.LighterABI.Pack(
158163
"fulfillWithdraw",
159164
common.HexToHash(tx.Hash),

chains/lighter/message/lighter_test.go

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,8 @@ func (s *LighterMessageHandlerTestSuite) Test_HandleMessage_ValidMessage() {
9191
s.mockTxFetcher.EXPECT().GetTx(ad.OrderHash).Return(&lighter.LighterTx{
9292
Type: lighter.TxTypeL2Transfer,
9393
Transfer: &lighter.Transfer{
94-
USDCAmount: 2000001,
94+
Amount: 2000001,
95+
AssetIndex: 3,
9596
ToAccountIndex: 3,
9697
Memo: []byte{238, 123, 250, 212, 202, 237, 62, 98, 106, 248, 169, 199, 213, 3, 76, 213, 137, 238, 73, 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
9798
},
@@ -133,7 +134,8 @@ func (s *LighterMessageHandlerTestSuite) Test_HandleMessage_FeeHigherThanAmount(
133134
s.mockTxFetcher.EXPECT().GetTx(ad.OrderHash).Return(&lighter.LighterTx{
134135
Type: lighter.TxTypeL2Transfer,
135136
Transfer: &lighter.Transfer{
136-
USDCAmount: 2000000,
137+
Amount: 2000000,
138+
AssetIndex: 3,
137139
ToAccountIndex: 3,
138140
Memo: []byte{238, 123, 250, 212, 202, 237, 62, 98, 106, 248, 169, 199, 213, 3, 76, 213, 137, 238, 73, 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
139141
},
@@ -174,7 +176,8 @@ func (s *LighterMessageHandlerTestSuite) Test_HandleMessage_InvalidTxType() {
174176
s.mockTxFetcher.EXPECT().GetTx(ad.OrderHash).Return(&lighter.LighterTx{
175177
Type: lighter.TxTypeL2Withdraw,
176178
Transfer: &lighter.Transfer{
177-
USDCAmount: 2000001,
179+
Amount: 2000001,
180+
AssetIndex: 3,
178181
ToAccountIndex: 3,
179182
Memo: []byte{238, 123, 250, 212, 202, 237, 62, 98, 106, 248, 169, 199, 213, 3, 76, 213, 137, 238, 73, 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
180183
},
@@ -215,7 +218,8 @@ func (s *LighterMessageHandlerTestSuite) Test_HandleMessage_InvalidAccount() {
215218
s.mockTxFetcher.EXPECT().GetTx(ad.OrderHash).Return(&lighter.LighterTx{
216219
Type: lighter.TxTypeL2Transfer,
217220
Transfer: &lighter.Transfer{
218-
USDCAmount: 2000001,
221+
Amount: 2000001,
222+
AssetIndex: 3,
219223
ToAccountIndex: 5,
220224
Memo: []byte{238, 123, 250, 212, 202, 237, 62, 98, 106, 248, 169, 199, 213, 3, 76, 213, 137, 238, 73, 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
221225
},

protocol/lighter/api.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,8 @@ const (
2828
)
2929

3030
type Transfer struct {
31-
USDCAmount uint64
31+
Amount uint64
32+
AssetIndex uint64
3233
FromAccountIndex uint64
3334
ToAccountIndex int
3435
Fee uint64

0 commit comments

Comments
 (0)