Skip to main content
Cette page documente chaque méthode de la classe Counsel exportée depuis counsel.ts. Chaque méthode correspond à un seul endpoint de l’API publique de counsel. Toutes les méthodes sont asynchrones et lèvent une exception sur les réponses non 2xx. La méthode placeBet lève également une exception si le XRP Ledger renvoie un résultat autre que tesSUCCESS.

Interfaces

Les interfaces TypeScript suivantes sont exportées directement depuis counsel.ts. Importez-les avec la classe pour accéder de façon typée aux valeurs de retour.

CounselOptions

BetIntent

Payment est le type de transaction non signée du paquet xrpl. tx est passé directement à client.autofill() et wallet.sign() à l’intérieur de placeBet.

constructor(opts: CounselOptions)

Instancie le client. Aucune connexion réseau n’est établie au moment de la construction.
string
requis
URL de base du déploiement de counsel. Utilisez https://api.counsel.markets pour l’instance hébergée.
string
URL du noeud WebSocket XRPL utilisé par placeBet lors de la connexion au ledger. Par défaut, le testnet XRPL (wss://s.altnet.rippletest.net:51233).

markets()

Récupère tous les marchés publics, y compris la taille en direct des pools, les probabilités implicites par issue, et la phase courante. Utilisez cette méthode pour découvrir les marchés ouverts et lire les cotes indicatives avant de placer un pari. Les champs de MarketV1 incluent : id, question, family, phase, status ("open" | "resolved" | "void"), pool_account, fee_rate, bet_cutoff, resolution_time, total_xrp, total_drops, et un tableau outcomes. Chaque issue dans outcomes porte : index, label, destination_tag, pool_drops, pool_xrp, bets, implied_prob, et payout_per_unit. Retourne
MarketV1[]
Tableau de tous les marchés actuellement suivis par l’indexeur de counsel.
number | null
Le SourceTag que counsel attend sur toutes les transactions Payment. Appliqué automatiquement par placeBet.

market(id: string)

Récupère un marché unique par son ID. Retourne l’objet marché complet, y compris tous les pools d’issues et les métadonnées de résolution.
string
requis
L’ID du marché, une chaîne hexadécimale telle que "9b6a290b0cc8c5be".
Retourne
Record<string, unknown>
L’objet marché brut. La forme correspond à une seule entrée du tableau de markets().

betIntent(id, account, outcome, amountXrp)

Récupère une intention de pari non signée pour l’issue et la mise spécifiées. Le serveur calcule les cotes projetées après ajout de votre mise au pool, ce qui vous permet de vérifier le slippage avant de signer. Aucune transaction n’est soumise ; rien n’est envoyé au ledger à ce stade.
string
requis
ID du marché.
string
requis
Votre adresse XRPL (par exemple "rYourAddress..."). Utilisée comme champ Account dans le Payment non signé.
number
requis
Index (base zéro) de l’issue sur laquelle vous voulez parier. Correspond à OutcomeV1.index dans le tableau outcomes du marché.
number
requis
Mise en XRP (pas en drops). Par exemple, 5 signifie 5 XRP.
Retourne
Payment
Transaction Payment XRPL non signée. À passer à client.autofill() puis wallet.sign().
string
L’adresse XRPL du compte pool du marché (la destination du Payment).
number
Le DestinationTag identifiant l’issue sur le compte pool.
number
Le SourceTag que counsel requiert pour l’attribution. Déjà intégré dans tx.
number
Mise confirmée en XRP telle que le serveur l’a interprétée.
object
Cotes parimutuel pour cette issue une fois votre mise incluse.
number
Probabilité implicite (0-1) de cette issue après votre mise.
number | null
Payout net par XRP misé si cette issue gagne, après frais. null si le pool serait nul.
object
Résumé compact du marché pour l’affichage ou la journalisation.
string
ID du marché.
string
Question du marché, lisible par un humain.
number
Index de l’issue sur laquelle vous avez parié.
string
Libellé lisible de l’issue.

positions(address: string)

Récupère toutes les positions ouvertes et réglées pour l’adresse XRPL donnée.
string
requis
L’adresse XRPL à interroger. Doit être une adresse r valide.
Retourne
string
L’adresse qui a été interrogée.
unknown[]
Tableau d’objets position, un par pari placé par l’adresse. Chaque entrée inclut le marché, l’issue, la mise, et l’état de règlement.

leaderboard()

Récupère le classement global, ordonnant les participants par volume ou par profit sur l’ensemble des marchés résolus. Retourne
Record<string, unknown>
La charge utile du classement. Le schéma peut évoluer ; traitez-la comme un objet brut tant qu’une forme stable n’est pas publiée.

placeBet(seed, id, outcome, amountXrp)

Helper de bout en bout : récupère une intention de pari, la signe localement avec Wallet.fromSeed(seed), complète automatiquement les champs de séquence du ledger via client.autofill(), signe avec wallet.sign(), soumet avec client.submitAndWait(), et vérifie tesSUCCESS avant de retourner. Ouvre une connexion WebSocket XRPL pour la durée de l’appel, puis se déconnecte. Le seed n’est jamais envoyé au serveur counsel.
string
requis
Le seed du wallet XRPL du parieur. Passé à Wallet.fromSeed() entièrement côté client. Seule l’adresse account dérivée est envoyée à l’API counsel.
string
requis
ID du marché.
number
requis
Index de l’issue (base zéro).
number
requis
Mise en XRP.
Retourne
string
Le hash de transaction validé renvoyé par le ledger (res.result.hash), confirmé tesSUCCESS.
placeBet lève une exception si le ledger renvoie un résultat autre que tesSUCCESS. Le message d’erreur inclut le code de résultat du ledger (par exemple "ledger rejected: tecUNFUNDED_PAYMENT"). Gérez ce cas dans les bots de production : solde insuffisant, conflits de séquence, et autres erreurs du ledger remontent tous ici.