@hxronetwork/parimutuelsdk v1.0.42
Parimutuel-web3
Available Scripts
yarn build
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.
Tech/Framework used
The project uses the React framework and type script
Functions/Variables
CryptoEnum
Defines constants for currencies
PositionSideEnum
Defines constants for side taken when entering ie SHORT
and LONG
MarketPairEnum
Define variables for the index used to lock and expire the market
function getMarketPubkeys
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 marketmarketPair
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
MIN_1
, MIN_5
, MIN_15
, HR_1
. and DAY_1
Define constants for the each duration
MarketStatusEnum
Defines variables for status of the contests ie: UPCOMING
, LIVE
and SETTLED
ConfigEnum
Defines constants for each enviroment ie: DEV
, STAGING
and CUSTOM
function decodeAccount
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
function decodeMint
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
TokenAccount
Define interface
Have 3 keys:
pubkey
as stringaccount
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
ParimutuelAccount
Define declare type
ParimutuelMarket
Define declare type
ParimutuelNetwork
Define declare type
ParimutuelPosition
Define declare type
ParimutuelTraderFeePayerAccount
Define declare type
function isParimutuelAccount
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)
function getMarketStatus
The function check status of the market.\ Response is one of three value:
MarketStatusEnum.UPCOMING
MarketStatusEnum.LIVE
MarketStatusEnum.SETTLED
Have 3 params:
timeWindowStart
as stringmarketClose
as stringduration
as number
class ParimutuelWeb3
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 using
clusterApiUrl('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:
function
updateNetwork
(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
function
createParimutuel
(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
function
updatePrice
(userWallet: WalletSigner | Keypair, parimutuelPubkey: PublicKey )
Parameters:
- userWallet: WalletSigner | Keypair
parimutuelPubkey: PublicKey
Returns:
string
function
placePosition
(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
function
getPlacePositionInstruction
(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[]
function
settlePosition
(userWallet: WalletSigner | Keypair, traderWalletPubkey: PublicKey, parimutuelPubkey: PublicKey )
Parameters:
- userWallet: WalletSigner | Keypair
- traderWalletPubkey: PublicKey
parimutuelPubkey: PublicKey
Returns:
string
function
destroyParimutuel
(userWallet: WalletSigner | Keypair, parimutuelPubkey: PublicKey )
Parameters:
- userWallet: WalletSigner | Keypair
parimutuelPubkey: PublicKey
Returns:
string
function
destroyPosition
(userWallet: WalletSigner | Keypair, traderWalletPubkey: PublicKey, parimutuelPubkey: PublicKey )
Parameters:
- userWallet: WalletSigner | Keypair
- traderWalletPubkey: PublicKey
parimutuelPubkey: PublicKey
Returns:
string
function
destroyPositionEntry
(userWallet: WalletSigner | Keypair, traderWalletPubkey: PublicKey, parimutuelPubkey: PublicKey, sequenceNumber: number )
Parameters:
- userWallet: WalletSigner | Keypair
- traderWalletPubkey: PublicKey
- parimutuelPubkey: PublicKey
sequenceNumber: number
Returns:
string
function
transferToken
(walletPubkey: PublicKey, mintPubkey: PublicKey, authorityKeypair: Keypair, amount: number )
Parameters:
- walletPubkey: PublicKey
- mintPubkey: PublicKey
- authorityKeypair: Keypair
- amount: number
function
depositFee
(userWallet: WalletSigner | Keypair, marketPubkey: PublicKey, mintPubkey: PublicKey, amount: number )
Parameters:
- userWallet: WalletSigner | Keypair
- marketPubkey: PublicKey
- mintPubkey: PublicKey
amount: number
Returns:
string
function
withdrawFee
(userWallet: WalletSigner | Keypair, amount: number )
Parameters:
- userWallet: WalletSigner | Keypair
amount: number
Returns:
string
function
createStore
(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
function
attachCookie
(userWallet: WalletSigner | Keypair, storePubkey: PublicKey, parimutuelPubkey: PublicKey )
Parameters:
- userWallet: WalletSigner | Keypair
- storePubkey: PublicKey
parimutuelPubkey: PublicKey
Returns:
string
function
getFees
(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
function
getMarkets
(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
function
getNetwork
(): ParimutuelNetworkFetch 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
function
getNetworkTraderAccount
(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
function
getParimutuel
(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
function
getParimutuels
(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
function
getUserPositions
(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
function getParimutuelPositions
(
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 are `pubkey`, `account`, and `info`.The `info` is an object has 4 values `parimutuelPubkey`, `parimutuel`, `market`, and `position`:
function getEntries
(
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 are `pubkey`, `account`, and `info`.The `info` is an object has 2 values `parimutuelPubkey`, and `entry`:
function getStore
(
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`, and `fee`
function getTraderFeePayerAccount
(
userWalletPubkey: PublicKey,
networkPubkey: PublicKey
): ParimutuelTraderFeePayerAccount
Fetch all the account info based on `userWalletPubkey` and `networkPubkey` parameter
Parameters:
- userWalletPubkey: PublicKey
- networkPubkey: PublicKey
Returns: An object contains have 3 values are `pubkey`, `account`, and `info`.
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago