Builds the app for production to the build
folder.
It correctly bundles React in production mode and optimizes the build for the best performance.
The build is minified and the filenames include the hashes.
Your app is ready to be deployed!
See the section about deployment for more information.
The project uses the React framework and type script
Defines constants for currencies
Defines constants for side taken when entering ie SHORT
and LONG
Define variables for the index used to lock and expire the market
Allows getting the market PublicKey
and duration
for each market available.
The response is array of objects each holding two keys, pubkey
and duration
Takes two params:
-
config
as object: An object contains allPublicKey
for eachduration
of crypto market -
marketPair
as string: was define in theMarketPairEnum
(PublicKey: https://solana-labs.github.io/solana-web3.js/classes/PublicKey.html)
*** Note: Both config
and marketPair
are mandatory ***
Define constants for the each duration
Defines variables for status of the contests ie: UPCOMING
, LIVE
and SETTLED
Defines constants for each enviroment ie: DEV
, STAGING
and CUSTOM
The function decode data account information.
The response is the data as AccountInfo (https://solana-labs.github.io/solana-program-library/token/js/interfaces/Account.html)
Have a param:
-
data
as Buffer (https://nodejs.org/api/buffer.html)
*** Note: data
is mandatory ***
The function decode data mint information.
The response is the data as MintInfo (https://solana-labs.github.io/solana-program-library/token/js/interfaces/Mint.html)
Have a param:
-
data
as Buffer (https://nodejs.org/api/buffer.html)
*** Note: data
is mandatory ***
Define interface
Have 3 keys:
-
pubkey
as string -
account
asAccountInfo<Buffer>
(AccountInfo: https://solana-labs.github.io/solana-program-library/token/js/interfaces/Account.html).\ (Buffer: https://nodejs.org/api/buffer.html) -
info
as AccountInfo
Define declare type
Define declare type
Define declare type
Define declare type
Define declare type
The function check the account is parimutuel account or not.
The response is true
or false
Have a param:
-
account
asAccountInfo<Buffer>
(AccountInfo: https://solana-labs.github.io/solana-program-library/token/js/interfaces/Account.html).\ (Buffer: https://nodejs.org/api/buffer.html)
The function check status of the market.
Response is one of three value:
MarketStatusEnum.UPCOMING
MarketStatusEnum.LIVE
MarketStatusEnum.SETTLED
Have 3 params:
-
timeWindowStart
as string -
marketClose
as string -
duration
as number
Class ParimutuelWeb3 defines the various SDK functions available, corresponding to smart contract instructions
-
Constructors: Create a new ParimutuelWeb3 object.
new ParimutuelWeb3(config: ParimutuelConfig, connection?: Connection).
If the connection parameter is not provided a new connection is usingclusterApiUrl('devnet')
of web3 library (https://docs.solana.com/clusters)Parameters:
- config: ParimutuelConfig.
All public key for each constant in the environments
- connection?: Connection.
Connection define in (https://solana-labs.github.io/solana-web3.js/classes/Connection.html)
Returns
ParimutuelWeb3
-
Method:
userWallet: WalletSigner | Keypair, protocolMintPubkey: PublicKey | unknown, settlementMintPubkey: PublicKey | unknown, protocolProductOraclePubkey: PublicKey | unknown, protocolPriceOraclePubkey: PublicKey | unknown, networkProtocolFeeCollectorPubkey: PublicKey | unknown, networkSettlementFeeCollectorPubkey: PublicKey | unknown, protocolTokenRequiredForMinFee: BN = new BN(1000000), minProtocolFeeBps: number = 10, maxProtocolFeeBps: number = 150, minSettlementFeeBps: number = 100, maxSettlementFeeBps: number = 300 )
Parameters:
- userWallet: WalletSigner | Keypair
- protocolMintPubkey: PublicKey | unknown
- settlementMintPubkey: PublicKey | unknown
- protocolProductOraclePubkey: PublicKey | unknown
- protocolPriceOraclePubkey: PublicKey | unknown
- networkProtocolFeeCollectorPubkey: PublicKey | unknown
- networkSettlementFeeCollectorPubkey: PublicKey | unknown
- protocolTokenRequiredForMinFee: BN = new BN(1000000)
- minProtocolFeeBps: number = 10
- maxProtocolFeeBps: number = 150
- minSettlementFeeBps: number = 100
- maxSettlementFeeBps: number = 300
Returns:
string
userWallet: WalletSigner | Keypair, marketPubkey: PublicKey, marketOpen: number, timeWindowStart: number, marketClose: number )
Parameters:
- userWallet: WalletSigner | Keypair
- marketPubkey: PublicKey
- marketOpen: number
- timeWindowStart: number
- marketClose: number
Returns:
string
userWallet: WalletSigner | Keypair, parimutuelPubkey: PublicKey )
Parameters:
- userWallet: WalletSigner | Keypair
- parimutuelPubkey: PublicKey
Returns:
string
userWallet: WalletSigner | Keypair, parimutuelPubkey: PublicKey, size: number, side: PositionSideEnum, seq: number, )
Parameters:
- userWallet: WalletSigner | Keypair,
- parimutuelPubkey: PublicKey,
- size: number,
- side: PositionSideEnum
- seq: number,
Returns:
string
userWallet: WalletSigner | Keypair, parimutuelPubkey: PublicKey, size: number, side: PositionSideEnum, seq: number, )
Parameters:
- userWallet: WalletSigner | Keypair,
- parimutuelPubkey: PublicKey,
- size: number,
- side: PositionSideEnum
- seq: number,
Returns:
TransactionInstruction[]
userWallet: WalletSigner | Keypair, traderWalletPubkey: PublicKey, parimutuelPubkey: PublicKey )
Parameters:
- userWallet: WalletSigner | Keypair
- traderWalletPubkey: PublicKey
- parimutuelPubkey: PublicKey
Returns:
string
userWallet: WalletSigner | Keypair, parimutuelPubkey: PublicKey )
Parameters:
- userWallet: WalletSigner | Keypair
- parimutuelPubkey: PublicKey
Returns:
string
userWallet: WalletSigner | Keypair, traderWalletPubkey: PublicKey, parimutuelPubkey: PublicKey )
Parameters:
- userWallet: WalletSigner | Keypair
- traderWalletPubkey: PublicKey
- parimutuelPubkey: PublicKey
Returns:
string
userWallet: WalletSigner | Keypair, traderWalletPubkey: PublicKey, parimutuelPubkey: PublicKey, sequenceNumber: number )
Parameters:
- userWallet: WalletSigner | Keypair
- traderWalletPubkey: PublicKey
- parimutuelPubkey: PublicKey
- sequenceNumber: number
Returns:
string
walletPubkey: PublicKey, mintPubkey: PublicKey, authorityKeypair: Keypair, amount: number )
Parameters:
- walletPubkey: PublicKey
- mintPubkey: PublicKey
- authorityKeypair: Keypair
- amount: number
userWallet: WalletSigner | Keypair, marketPubkey: PublicKey, mintPubkey: PublicKey, amount: number )
Parameters:
- userWallet: WalletSigner | Keypair
- marketPubkey: PublicKey
- mintPubkey: PublicKey
- amount: number
Returns:
string
userWallet: WalletSigner | Keypair, amount: number )
Parameters:
- userWallet: WalletSigner | Keypair
- amount: number
Returns:
string
userWallet: WalletSigner | Keypair, storeWalletPubkey: PublicKey, marketPubkey: PublicKey, protocolFeeBps: number, settlementFeeBps: number )
Parameters:
- userWallet: WalletSigner | Keypair
- storeWalletPubkey: PublicKey
- marketPubkey: PublicKey
- protocolFeeBps: number
- settlementFeeBps: number
Returns:
string
userWallet: WalletSigner | Keypair, storePubkey: PublicKey, parimutuelPubkey: PublicKey )
Parameters:
- userWallet: WalletSigner | Keypair
- storePubkey: PublicKey
- parimutuelPubkey: PublicKey
Returns:
string
networkWalletPubkey: PublicKey, marketWalletPubkey: PublicKey ): ParimutuelFees
Fetch all the account info based on
networkWalletPubkey
andmarketWalletPubkey
parameterParameters:
- networkWalletPubkey: PublicKey
- marketWalletPubkey: PublicKey
Define PublicKey on https://solana-labs.github.io/solana-web3.js/classes/PublicKey.html
Returns: An object has two values are
network
andmarket
. Each value in the object has 4 values areprotocolFeeAccountPubkey
,protocolFeeAmount
,settlementFeeAccountPubkey
, andsettlementFeeAmount
marketPair: MarketPairEnum ): ParimutuelMarket[]
Filter all public keys on the config with
marketPair
parameter and then fetch all the account info for multiple accounts specified by an array of public keysParameters:
- marketPair: MarketPairEnum
Returns: The array contains all object markets for the
marketPair
chosen. Each object has 3 values arepubkey
,account
, andinfo
.info
is an object has 2 valuesmarket
andfixedFees
Fetch all the account info by the
PARIMUTUEL_PROGRAM_ID
in the configReturns: An object has 3 values are
pubkey
,account
, andinfo
.info
is an object has 2 valuesnetwork
andlinearFees
userWalletPubkey: PublicKey, networkPubkey: PublicKey ): ParimutuelTraderAccount
Fetch all the account info based on
userWalletPubkey
andnetworkPubkey
parameterParameters:
- userWalletPubkey: PublicKey
- networkPubkey: PublicKey
Returns: An object has 3 values are
pubkey
,account
, andinfo
.info
is an object has a valuetraderAccount
parimutuelPubkey: PublicKey ): ParimutuelAccount
Fetch all the account info with
parimutuelPubkey
Parameters:
- parimutuelPubkey: PublicKey
Returns: An object has 3 values are
pubkey
,account
, andinfo
.info
is an object has a valueparimutuel
markets: MarketPubkey[], number?: number ): ParimutuelAccount[]
Parameters:
- markets: MarketPubkey[]
- number?: number (default: 5)
Returns: The array contains all object parimutuels filtered by the
markets
andnumber
parameters. Each object has 3 values arepubkey
,account
, andinfo
.Theinfo
is an object has a valueparimutuel
userWalletPubkey: PublicKey, markets: ParimutuelMarket[] ): ParimutuelPosition[]
Fetch all the accounts owned by the program id in the config and with the optional
userWalletPubkey
Parameters:
- userWalletPubkey: PublicKey
- markets: ParimutuelMarket[]
Returns: The array contains all object positions filtered by the
markets
anduserWalletPubkey
parameters. Each object has 3 values arepubkey
,account
, andinfo
. Theinfo
is an object has 4 valuesparimutuelPubkey
,parimutuel
,market
, andposition
parimutuelPubkey: PublicKey ): ParimutuelPosition[]
Fetch all the accounts owned by the program id in the config and with the optional
parimutuelPubkey
Parameters:
- parimutuelPubkey: PublicKey
Returns: The array contains all object positions filtered by the
parimutuelPubkey
parameter. Each object has 3 values arepubkey
,account
, andinfo
.Theinfo
is an object has 4 valuesparimutuelPubkey
,parimutuel
,market
, andposition
:traderPositionPubkey: PublicKey ): ParimutuelEntry[]
Fetch all the accounts owned by the program id in the config and with the optional
traderPositionPubkey
Parameters:
- traderPositionPubkey: PublicKey
Returns: The array contains all object entries filtered by the
traderPositionPubkey
parameter. Each object has 3 values arepubkey
,account
, andinfo
.Theinfo
is an object has 2 valuesparimutuelPubkey
, andentry
:storePubkey: PublicKey ): Store
Fetch all the account info with
storePubkey
Parameters:
- storePubkey: PublicKey
Returns: The Store object which contains
version
,programId
,bumpSeed
,marketKey
,wallet
,protocolFeeCollector
,settlementFeeCollector
, andfee
userWalletPubkey: PublicKey, networkPubkey: PublicKey ): ParimutuelTraderFeePayerAccount
Fetch all the account info based on
userWalletPubkey
andnetworkPubkey
parameterParameters:
- userWalletPubkey: PublicKey
- networkPubkey: PublicKey
Returns: An object contains have 3 values are
pubkey
,account
, andinfo
.