@@ -12,50 +12,41 @@ import { Account, B256Address, Bech32Address } from "fuels";
1212import { makeObservable } from "mobx" ;
1313import { Nullable } from "tsdef" ;
1414
15- import { PerpMarket , PerpOrder , PerpPosition , SpotMarketOrder , Token } from "@src/entity" ;
16- import { PerpMarketTrade } from "@src/entity/PerpMarketTrade" ;
17- import { FAUCET_AMOUNTS } from "@src/stores/FaucetStore" ;
15+ import { PerpMarket , PerpMarketTrade , PerpOrder , PerpPosition , SpotMarketOrder , Token } from "@src/entity" ;
1816import BN from "@src/utils/BN" ;
17+ import { CONFIG } from "@src/utils/getConfig" ;
1918
20- import {
21- CONTRACT_ADDRESSES ,
22- INDEXER_HTTP_URL ,
23- INDEXER_WS_URL ,
24- NETWORK ,
25- PYTH_URL ,
26- TOKENS_BY_ASSET_ID ,
27- TOKENS_BY_SYMBOL ,
28- TOKENS_LIST ,
29- } from "./constants" ;
3019import {
3120 Balances ,
3221 FetchTradesParams ,
33- MarketCreateEvent ,
3422 PerpMaxAbsPositionSize ,
3523 PerpPendingFundingPayment ,
3624 SpotMarketVolume ,
3725} from "./types" ;
3826import { WalletManager } from "./WalletManager" ;
3927
28+ const MARKET = "0x58959d086d8a6ee8cf8eeb572b111edb21661266be4b4885383748d11b72d0aa" ;
29+
4030export class FuelNetwork {
4131 private static instance : Nullable < FuelNetwork > = null ;
4232
4333 private walletManager = new WalletManager ( ) ;
4434 orderbookSdk : SparkOrderBookSdk ;
4535
46- public network = NETWORK ;
47-
4836 private constructor ( ) {
4937 makeObservable ( this . walletManager ) ;
5038
5139 this . orderbookSdk = new SparkOrderBookSdk ( {
52- networkUrl : NETWORK . url ,
53- contractAddresses : CONTRACT_ADDRESSES ,
40+ networkUrl : CONFIG . APP . networkUrl ,
41+ contractAddresses : {
42+ market : MARKET , // Temporary solution
43+ orderbook : CONFIG . APP . contracts . orderbook ,
44+ multiAsset : CONFIG . APP . contracts . multiAsset ,
45+ } ,
5446 indexerConfig : {
55- httpUrl : INDEXER_HTTP_URL ,
56- wsUrl : INDEXER_WS_URL ,
47+ httpUrl : CONFIG . APP . indexers [ MARKET ] . httpUrl ,
48+ wsUrl : CONFIG . APP . indexers [ MARKET ] . wsUrl ,
5749 } ,
58- pythUrl : PYTH_URL ,
5950 } ) ;
6051 }
6152
@@ -66,6 +57,10 @@ export class FuelNetwork {
6657 return FuelNetwork . instance ;
6758 }
6859
60+ setActiveMarket = ( marketAddress : string ) => {
61+ this . orderbookSdk . setActiveMarketAddress ( marketAddress ) ;
62+ } ;
63+
6964 getAddress = ( ) : Nullable < B256Address > => {
7065 return this . walletManager . address ;
7166 } ;
@@ -86,15 +81,15 @@ export class FuelNetwork {
8681 getIsExternalWallet = ( ) => false ;
8782
8883 getTokenList = ( ) : Token [ ] => {
89- return TOKENS_LIST ;
84+ return CONFIG . TOKENS ;
9085 } ;
9186
9287 getTokenBySymbol = ( symbol : string ) : Token => {
93- return TOKENS_BY_SYMBOL [ symbol ] ;
88+ return CONFIG . TOKENS_BY_SYMBOL [ symbol ] ;
9489 } ;
9590
9691 getTokenByAssetId = ( assetId : string ) : Token => {
97- return TOKENS_BY_ASSET_ID [ assetId . toLowerCase ( ) ] ;
92+ return CONFIG . TOKENS_BY_ASSET_ID [ assetId . toLowerCase ( ) ] ;
9893 } ;
9994
10095 connect = async ( wallet : Account ) : Promise < void > => {
@@ -108,9 +103,9 @@ export class FuelNetwork {
108103 this . orderbookSdk . setActiveWallet ( ( this . walletManager . wallet as any ) ?? undefined ) ;
109104 } ;
110105
111- disconnectWallet = ( ) : void => {
112- this . walletManager . disconnect ( ) ;
113- this . orderbookSdk . setActiveWallet ( ( this . walletManager . wallet as any ) ?? undefined ) ;
106+ disconnectWallet = async ( ) : Promise < void > => {
107+ await this . walletManager . disconnect ( ) ;
108+ this . orderbookSdk . setActiveWallet ( undefined ) ;
114109 } ;
115110
116111 addAssetToWallet = async ( assetId : string ) : Promise < void > => {
@@ -125,25 +120,23 @@ export class FuelNetwork {
125120 return this . orderbookSdk . fulfillOrderMany ( order ) ;
126121 } ;
127122
128- cancelSpotOrder = async ( order : SpotMarketOrder ) : Promise < void > => {
129- await this . orderbookSdk . cancelOrder ( order . id ) ;
123+ cancelSpotOrder = async ( order : SpotMarketOrder ) : Promise < WriteTransactionResponse > => {
124+ return this . orderbookSdk . cancelOrder ( order . id ) ;
130125 } ;
131126
132- mintToken = async ( assetAddress : string ) : Promise < void > => {
127+ mintToken = async ( amount : string , assetAddress : string ) : Promise < WriteTransactionResponse > => {
133128 const token = this . getTokenByAssetId ( assetAddress ) ;
134129 const asset = this . getAssetFromToken ( token ) ;
135130
136- const amount = FAUCET_AMOUNTS [ token . symbol ] . toString ( ) ;
137-
138- await this . orderbookSdk . mintToken ( asset , amount ) ;
131+ return this . orderbookSdk . mintToken ( asset , amount ) ;
139132 } ;
140133
141- withdrawSpotBalance = async ( amount : string , assetType : AssetType ) : Promise < void > => {
142- await this . orderbookSdk . withdraw ( amount , assetType ) ;
134+ withdrawSpotBalance = async ( amount : string , assetType : AssetType ) : Promise < WriteTransactionResponse > => {
135+ return this . orderbookSdk . withdraw ( amount , assetType ) ;
143136 } ;
144137
145- depositSpotBalance = async ( amount : string , asset : Asset ) : Promise < void > => {
146- await this . orderbookSdk . deposit ( asset , amount ) ;
138+ depositSpotBalance = async ( amount : string , asset : Asset ) : Promise < WriteTransactionResponse > => {
139+ return this . orderbookSdk . deposit ( asset , amount ) ;
147140 } ;
148141
149142 depositPerpCollateral = async ( assetAddress : string , amount : string ) : Promise < void > => {
@@ -189,10 +182,6 @@ export class FuelNetwork {
189182 // await this.sdk.fulfillPerpOrder(gasAsset, orderId, amount, tokenPriceFeed);
190183 } ;
191184
192- fetchSpotMarkets = async ( limit : number ) : Promise < MarketCreateEvent [ ] > => {
193- return this . orderbookSdk . fetchMarkets ( limit ) ;
194- } ;
195-
196185 fetchSpotMarketPrice = async ( baseTokenAddress : string ) : Promise < BN > => {
197186 const token = this . getTokenByAssetId ( baseTokenAddress ) ;
198187 const asset = this . getAssetFromToken ( token ) ;
@@ -206,7 +195,7 @@ export class FuelNetwork {
206195 const formatOrder = ( order : Order ) =>
207196 new SpotMarketOrder ( {
208197 ...order ,
209- quoteAssetId : TOKENS_BY_SYMBOL . USDC . assetId ,
198+ quoteAssetId : CONFIG . TOKENS_BY_SYMBOL . USDC . assetId ,
210199 } ) ;
211200
212201 if ( "ActiveSellOrder" in data ) {
@@ -254,7 +243,7 @@ export class FuelNetwork {
254243 const asset = this . getAssetFromToken ( token ) ;
255244
256245 // return this.sdk.fetchPerpCollateralBalance(accountAddress, asset);
257- return new BN ( "0" ) ;
246+ return BN . ZERO ;
258247 } ;
259248
260249 fetchPerpAllTraderPositions = async (
@@ -307,7 +296,7 @@ export class FuelNetwork {
307296 const asset = this . getAssetFromToken ( token ) ;
308297
309298 // return this.sdk.fetchPerpFundingRate(asset);
310- return new BN ( "0" ) ;
299+ return BN . ZERO ;
311300 } ;
312301
313302 fetchPerpMaxAbsPositionSize = async (
@@ -319,7 +308,7 @@ export class FuelNetwork {
319308 const asset = this . getAssetFromToken ( token ) ;
320309
321310 // return this.sdk.fetchPerpMaxAbsPositionSize(accountAddress, asset, tradePrice);
322- return { shortSize : new BN ( "0" ) , longSize : new BN ( "0" ) } ;
311+ return { shortSize : BN . ZERO , longSize : BN . ZERO } ;
323312 } ;
324313
325314 fetchPerpPendingFundingPayment = async (
@@ -330,15 +319,15 @@ export class FuelNetwork {
330319 const asset = this . getAssetFromToken ( token ) ;
331320
332321 // return this.sdk.fetchPerpPendingFundingPayment(accountAddress, asset);
333- return { fundingGrowthPayment : new BN ( "0" ) , fundingPayment : new BN ( "0" ) } ;
322+ return { fundingGrowthPayment : BN . ZERO , fundingPayment : BN . ZERO } ;
334323 } ;
335324
336325 fetchPerpMarkPrice = async ( assetAddress : string ) : Promise < BN > => {
337326 const token = this . getTokenByAssetId ( assetAddress ) ;
338327 const asset = this . getAssetFromToken ( token ) ;
339328
340329 // return this.sdk.fetchPerpMarkPrice(asset);
341- return new BN ( "0" ) ;
330+ return BN . ZERO ;
342331 } ;
343332
344333 private getAssetFromToken = ( token : Token ) => {
0 commit comments