@mutinylabs/slip 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +99 -0
- package/dist/ai.d.ts +70 -0
- package/dist/ai.d.ts.map +1 -0
- package/dist/ai.js +448 -0
- package/dist/ai.js.map +1 -0
- package/dist/anchor.d.ts +15 -0
- package/dist/anchor.d.ts.map +1 -0
- package/dist/anchor.js +15 -0
- package/dist/anchor.js.map +1 -0
- package/dist/client.d.ts +90 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +161 -0
- package/dist/client.js.map +1 -0
- package/dist/evidence.d.ts +13 -0
- package/dist/evidence.d.ts.map +1 -0
- package/dist/evidence.js +34 -0
- package/dist/evidence.js.map +1 -0
- package/dist/generated/accounts/index.d.ts +10 -0
- package/dist/generated/accounts/index.d.ts.map +1 -0
- package/dist/generated/accounts/index.js +10 -0
- package/dist/generated/accounts/index.js.map +1 -0
- package/dist/generated/accounts/market.d.ts +73 -0
- package/dist/generated/accounts/market.d.ts.map +1 -0
- package/dist/generated/accounts/market.js +105 -0
- package/dist/generated/accounts/market.js.map +1 -0
- package/dist/generated/accounts/marketTicket.d.ts +43 -0
- package/dist/generated/accounts/marketTicket.d.ts.map +1 -0
- package/dist/generated/accounts/marketTicket.js +69 -0
- package/dist/generated/accounts/marketTicket.js.map +1 -0
- package/dist/generated/errors/index.d.ts +9 -0
- package/dist/generated/errors/index.d.ts.map +1 -0
- package/dist/generated/errors/index.js +9 -0
- package/dist/generated/errors/index.js.map +1 -0
- package/dist/generated/errors/slip.d.ts +68 -0
- package/dist/generated/errors/slip.d.ts.map +1 -0
- package/dist/generated/errors/slip.js +96 -0
- package/dist/generated/errors/slip.js.map +1 -0
- package/dist/generated/index.d.ts +14 -0
- package/dist/generated/index.d.ts.map +1 -0
- package/dist/generated/index.js +14 -0
- package/dist/generated/index.js.map +1 -0
- package/dist/generated/instructions/buyTicket.d.ts +80 -0
- package/dist/generated/instructions/buyTicket.d.ts.map +1 -0
- package/dist/generated/instructions/buyTicket.js +149 -0
- package/dist/generated/instructions/buyTicket.js.map +1 -0
- package/dist/generated/instructions/claimTicket.d.ts +55 -0
- package/dist/generated/instructions/claimTicket.d.ts.map +1 -0
- package/dist/generated/instructions/claimTicket.js +87 -0
- package/dist/generated/instructions/claimTicket.js.map +1 -0
- package/dist/generated/instructions/createMarket.d.ts +105 -0
- package/dist/generated/instructions/createMarket.d.ts.map +1 -0
- package/dist/generated/instructions/createMarket.js +195 -0
- package/dist/generated/instructions/createMarket.js.map +1 -0
- package/dist/generated/instructions/index.d.ts +14 -0
- package/dist/generated/instructions/index.d.ts.map +1 -0
- package/dist/generated/instructions/index.js +14 -0
- package/dist/generated/instructions/index.js.map +1 -0
- package/dist/generated/instructions/resolveMarket.d.ts +75 -0
- package/dist/generated/instructions/resolveMarket.d.ts.map +1 -0
- package/dist/generated/instructions/resolveMarket.js +107 -0
- package/dist/generated/instructions/resolveMarket.js.map +1 -0
- package/dist/generated/instructions/resolveMarketV3.d.ts +78 -0
- package/dist/generated/instructions/resolveMarketV3.d.ts.map +1 -0
- package/dist/generated/instructions/resolveMarketV3.js +109 -0
- package/dist/generated/instructions/resolveMarketV3.js.map +1 -0
- package/dist/generated/instructions/voidMarket.d.ts +40 -0
- package/dist/generated/instructions/voidMarket.d.ts.map +1 -0
- package/dist/generated/instructions/voidMarket.js +64 -0
- package/dist/generated/instructions/voidMarket.js.map +1 -0
- package/dist/generated/pdas/index.d.ts +10 -0
- package/dist/generated/pdas/index.d.ts.map +1 -0
- package/dist/generated/pdas/index.js +10 -0
- package/dist/generated/pdas/index.js.map +1 -0
- package/dist/generated/pdas/market.d.ts +16 -0
- package/dist/generated/pdas/market.d.ts.map +1 -0
- package/dist/generated/pdas/market.js +20 -0
- package/dist/generated/pdas/market.js.map +1 -0
- package/dist/generated/pdas/ticket.d.ts +17 -0
- package/dist/generated/pdas/ticket.d.ts.map +1 -0
- package/dist/generated/pdas/ticket.js +21 -0
- package/dist/generated/pdas/ticket.js.map +1 -0
- package/dist/generated/programs/index.d.ts +9 -0
- package/dist/generated/programs/index.d.ts.map +1 -0
- package/dist/generated/programs/index.js +9 -0
- package/dist/generated/programs/index.js.map +1 -0
- package/dist/generated/programs/slip.d.ts +43 -0
- package/dist/generated/programs/slip.d.ts.map +1 -0
- package/dist/generated/programs/slip.js +106 -0
- package/dist/generated/programs/slip.js.map +1 -0
- package/dist/generated/shared/index.d.ts +50 -0
- package/dist/generated/shared/index.d.ts.map +1 -0
- package/dist/generated/shared/index.js +87 -0
- package/dist/generated/shared/index.js.map +1 -0
- package/dist/generated/types/binaryOp.d.ts +18 -0
- package/dist/generated/types/binaryOp.d.ts.map +1 -0
- package/dist/generated/types/binaryOp.js +24 -0
- package/dist/generated/types/binaryOp.js.map +1 -0
- package/dist/generated/types/index.d.ts +19 -0
- package/dist/generated/types/index.d.ts.map +1 -0
- package/dist/generated/types/index.js +19 -0
- package/dist/generated/types/index.js.map +1 -0
- package/dist/generated/types/marketExpression.d.ts +34 -0
- package/dist/generated/types/marketExpression.d.ts.map +1 -0
- package/dist/generated/types/marketExpression.js +37 -0
- package/dist/generated/types/marketExpression.js.map +1 -0
- package/dist/generated/types/marketState.d.ts +18 -0
- package/dist/generated/types/marketState.d.ts.map +1 -0
- package/dist/generated/types/marketState.js +24 -0
- package/dist/generated/types/marketState.js.map +1 -0
- package/dist/generated/types/multiProof.d.ts +28 -0
- package/dist/generated/types/multiProof.d.ts.map +1 -0
- package/dist/generated/types/multiProof.js +25 -0
- package/dist/generated/types/multiProof.js.map +1 -0
- package/dist/generated/types/outcomeBand.d.ts +26 -0
- package/dist/generated/types/outcomeBand.d.ts.map +1 -0
- package/dist/generated/types/outcomeBand.js +26 -0
- package/dist/generated/types/outcomeBand.js.map +1 -0
- package/dist/generated/types/proofNode.d.ts +17 -0
- package/dist/generated/types/proofNode.d.ts.map +1 -0
- package/dist/generated/types/proofNode.js +24 -0
- package/dist/generated/types/proofNode.js.map +1 -0
- package/dist/generated/types/provenStat.d.ts +21 -0
- package/dist/generated/types/provenStat.d.ts.map +1 -0
- package/dist/generated/types/provenStat.js +25 -0
- package/dist/generated/types/provenStat.js.map +1 -0
- package/dist/generated/types/scoreStatInput.d.ts +18 -0
- package/dist/generated/types/scoreStatInput.d.ts.map +1 -0
- package/dist/generated/types/scoreStatInput.js +26 -0
- package/dist/generated/types/scoreStatInput.js.map +1 -0
- package/dist/generated/types/settlementMode.d.ts +16 -0
- package/dist/generated/types/settlementMode.d.ts.map +1 -0
- package/dist/generated/types/settlementMode.js +22 -0
- package/dist/generated/types/settlementMode.js.map +1 -0
- package/dist/generated/types/sideSelector.d.ts +18 -0
- package/dist/generated/types/sideSelector.d.ts.map +1 -0
- package/dist/generated/types/sideSelector.js +24 -0
- package/dist/generated/types/sideSelector.js.map +1 -0
- package/dist/generated/types/summaryInput.d.ts +26 -0
- package/dist/generated/types/summaryInput.d.ts.map +1 -0
- package/dist/generated/types/summaryInput.js +30 -0
- package/dist/generated/types/summaryInput.js.map +1 -0
- package/dist/idl/slip.json +2418 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/market-reference.d.ts +9 -0
- package/dist/market-reference.d.ts.map +1 -0
- package/dist/market-reference.js +38 -0
- package/dist/market-reference.js.map +1 -0
- package/dist/market.d.ts +42 -0
- package/dist/market.d.ts.map +1 -0
- package/dist/market.js +267 -0
- package/dist/market.js.map +1 -0
- package/dist/merkle.d.ts +48 -0
- package/dist/merkle.d.ts.map +1 -0
- package/dist/merkle.js +67 -0
- package/dist/merkle.js.map +1 -0
- package/dist/pda.d.ts +12 -0
- package/dist/pda.d.ts.map +1 -0
- package/dist/pda.js +30 -0
- package/dist/pda.js.map +1 -0
- package/dist/proof.d.ts +40 -0
- package/dist/proof.d.ts.map +1 -0
- package/dist/proof.js +106 -0
- package/dist/proof.js.map +1 -0
- package/dist/public-client.d.ts +60 -0
- package/dist/public-client.d.ts.map +1 -0
- package/dist/public-client.js +487 -0
- package/dist/public-client.js.map +1 -0
- package/dist/public-math.d.ts +17 -0
- package/dist/public-math.d.ts.map +1 -0
- package/dist/public-math.js +57 -0
- package/dist/public-math.js.map +1 -0
- package/dist/public-types.d.ts +151 -0
- package/dist/public-types.d.ts.map +1 -0
- package/dist/public-types.js +2 -0
- package/dist/public-types.js.map +1 -0
- package/dist/rulebook-skills.d.ts +15 -0
- package/dist/rulebook-skills.d.ts.map +1 -0
- package/dist/rulebook-skills.js +155 -0
- package/dist/rulebook-skills.js.map +1 -0
- package/dist/rulebook.d.ts +17 -0
- package/dist/rulebook.d.ts.map +1 -0
- package/dist/rulebook.js +42 -0
- package/dist/rulebook.js.map +1 -0
- package/dist/transaction.d.ts +23 -0
- package/dist/transaction.d.ts.map +1 -0
- package/dist/transaction.js +51 -0
- package/dist/transaction.js.map +1 -0
- package/dist/txline.d.ts +55 -0
- package/dist/txline.d.ts.map +1 -0
- package/dist/txline.js +238 -0
- package/dist/txline.js.map +1 -0
- package/dist/types.d.ts +149 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +10 -0
- package/dist/types.js.map +1 -0
- package/package.json +123 -0
package/dist/txline.js
ADDED
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
import { fetchProofForMarket, latestScoreUpdate } from "./proof.js";
|
|
2
|
+
export { latestScoreUpdate } from "./proof.js";
|
|
3
|
+
const DEFAULT_ORIGIN = "https://txline-dev.txodds.com";
|
|
4
|
+
const DEFAULT_TIMEOUT_MS = 15_000;
|
|
5
|
+
export class TxlineError extends Error {
|
|
6
|
+
status;
|
|
7
|
+
constructor(message, status, options) {
|
|
8
|
+
super(message, options);
|
|
9
|
+
this.status = status;
|
|
10
|
+
this.name = "TxlineError";
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
function record(value, context) {
|
|
14
|
+
if (typeof value !== "object" || value === null || Array.isArray(value))
|
|
15
|
+
throw new TxlineError(`TxLINE returned an invalid ${context} payload`);
|
|
16
|
+
return value;
|
|
17
|
+
}
|
|
18
|
+
function integer(value, context) {
|
|
19
|
+
if (typeof value !== "number" || !Number.isSafeInteger(value))
|
|
20
|
+
throw new TxlineError(`TxLINE ${context} must be a safe integer`);
|
|
21
|
+
return value;
|
|
22
|
+
}
|
|
23
|
+
function string(value, context) {
|
|
24
|
+
if (typeof value !== "string" || !value.trim())
|
|
25
|
+
throw new TxlineError(`TxLINE ${context} must be a non-empty string`);
|
|
26
|
+
return value.trim();
|
|
27
|
+
}
|
|
28
|
+
function origin(value) {
|
|
29
|
+
let parsed;
|
|
30
|
+
try {
|
|
31
|
+
parsed = new URL(value?.trim() || DEFAULT_ORIGIN);
|
|
32
|
+
}
|
|
33
|
+
catch (cause) {
|
|
34
|
+
throw new TxlineError("TxLINE origin must be an absolute URL", undefined, { cause });
|
|
35
|
+
}
|
|
36
|
+
if (parsed.protocol !== "https:" && parsed.protocol !== "http:")
|
|
37
|
+
throw new TxlineError("TxLINE origin must use http or https");
|
|
38
|
+
return parsed.origin;
|
|
39
|
+
}
|
|
40
|
+
function base64(value) {
|
|
41
|
+
let binary = "";
|
|
42
|
+
value.forEach((byte) => { binary += String.fromCharCode(byte); });
|
|
43
|
+
return btoa(binary);
|
|
44
|
+
}
|
|
45
|
+
export function parseTxlineFixture(value) {
|
|
46
|
+
const item = record(value, "fixture");
|
|
47
|
+
const participant1 = string(item.Participant1, "fixture Participant1");
|
|
48
|
+
const participant2 = string(item.Participant2, "fixture Participant2");
|
|
49
|
+
if (typeof item.Participant1IsHome !== "boolean")
|
|
50
|
+
throw new TxlineError("TxLINE fixture Participant1IsHome must be boolean");
|
|
51
|
+
const start = integer(item.StartTime, "fixture StartTime");
|
|
52
|
+
const kickoff = start < 100_000_000_000 ? start * 1000 : start;
|
|
53
|
+
if (!Number.isSafeInteger(kickoff) || kickoff <= 0)
|
|
54
|
+
throw new TxlineError("TxLINE fixture kickoff is outside the supported range");
|
|
55
|
+
const rawState = item.GameState ?? item.gameState;
|
|
56
|
+
const gameState = rawState === undefined ? undefined : integer(rawState, "fixture GameState");
|
|
57
|
+
return {
|
|
58
|
+
fixtureId: integer(item.FixtureId, "fixture FixtureId"),
|
|
59
|
+
competition: string(item.Competition, "fixture Competition"),
|
|
60
|
+
home: item.Participant1IsHome ? participant1 : participant2,
|
|
61
|
+
away: item.Participant1IsHome ? participant2 : participant1,
|
|
62
|
+
kickoff,
|
|
63
|
+
gameState,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
async function bodyText(response) {
|
|
67
|
+
return (await response.text()).trim().slice(0, 300) || "empty response";
|
|
68
|
+
}
|
|
69
|
+
/** Authenticated, browser-safe TxLINE client with one-time JWT renewal on HTTP 401. */
|
|
70
|
+
export class TxlineClient {
|
|
71
|
+
origin;
|
|
72
|
+
apiTokenValue;
|
|
73
|
+
timeoutMs;
|
|
74
|
+
fetchImpl;
|
|
75
|
+
jwt = null;
|
|
76
|
+
jwtRequest = null;
|
|
77
|
+
constructor(options = {}) {
|
|
78
|
+
this.origin = origin(options.origin);
|
|
79
|
+
this.apiTokenValue = options.apiToken?.trim() || undefined;
|
|
80
|
+
this.timeoutMs = options.timeoutMs ?? DEFAULT_TIMEOUT_MS;
|
|
81
|
+
if (!Number.isSafeInteger(this.timeoutMs) || this.timeoutMs <= 0)
|
|
82
|
+
throw new TxlineError("TxLINE timeoutMs must be a positive safe integer");
|
|
83
|
+
this.fetchImpl = options.fetch ?? globalThis.fetch;
|
|
84
|
+
if (!this.fetchImpl)
|
|
85
|
+
throw new TxlineError("TxLINE requires a Fetch API implementation");
|
|
86
|
+
}
|
|
87
|
+
get apiToken() { return this.apiTokenValue; }
|
|
88
|
+
async guest(force = false) {
|
|
89
|
+
if (force) {
|
|
90
|
+
this.jwt = null;
|
|
91
|
+
this.jwtRequest = null;
|
|
92
|
+
}
|
|
93
|
+
if (this.jwt)
|
|
94
|
+
return this.jwt;
|
|
95
|
+
if (this.jwtRequest)
|
|
96
|
+
return this.jwtRequest;
|
|
97
|
+
this.jwtRequest = (async () => {
|
|
98
|
+
let response;
|
|
99
|
+
try {
|
|
100
|
+
response = await this.fetchImpl(`${this.origin}/auth/guest/start`, {
|
|
101
|
+
method: "POST",
|
|
102
|
+
cache: "no-store",
|
|
103
|
+
signal: AbortSignal.timeout(this.timeoutMs),
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
catch (cause) {
|
|
107
|
+
throw new TxlineError(`TxLINE guest authentication failed: ${cause instanceof Error ? cause.message : String(cause)}`, undefined, { cause });
|
|
108
|
+
}
|
|
109
|
+
if (!response.ok)
|
|
110
|
+
throw new TxlineError(`TxLINE guest authentication failed: ${await bodyText(response)}`, response.status);
|
|
111
|
+
const payload = await response.json();
|
|
112
|
+
const token = typeof payload === "string" ? payload : record(payload, "guest session").token;
|
|
113
|
+
this.jwt = string(token, "guest token");
|
|
114
|
+
return this.jwt;
|
|
115
|
+
})();
|
|
116
|
+
try {
|
|
117
|
+
return await this.jwtRequest;
|
|
118
|
+
}
|
|
119
|
+
finally {
|
|
120
|
+
this.jwtRequest = null;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
requireApiToken() {
|
|
124
|
+
if (!this.apiTokenValue)
|
|
125
|
+
throw new TxlineError("TxLINE API token is unavailable; pass apiToken or call activate() after a confirmed subscription");
|
|
126
|
+
return this.apiTokenValue;
|
|
127
|
+
}
|
|
128
|
+
async request(path, init = {}, renewJwt = false) {
|
|
129
|
+
const token = this.requireApiToken();
|
|
130
|
+
const jwt = await this.guest(renewJwt);
|
|
131
|
+
let response;
|
|
132
|
+
try {
|
|
133
|
+
response = await this.fetchImpl(new URL(path, this.origin), {
|
|
134
|
+
...init,
|
|
135
|
+
headers: { Authorization: `Bearer ${jwt}`, "X-Api-Token": token, ...(init.headers ?? {}) },
|
|
136
|
+
cache: "no-store",
|
|
137
|
+
signal: AbortSignal.timeout(this.timeoutMs),
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
catch (cause) {
|
|
141
|
+
throw new TxlineError(`TxLINE request ${path} failed: ${cause instanceof Error ? cause.message : String(cause)}`, undefined, { cause });
|
|
142
|
+
}
|
|
143
|
+
if (response.status === 401 && !renewJwt)
|
|
144
|
+
return this.request(path, init, true);
|
|
145
|
+
if (!response.ok)
|
|
146
|
+
throw new TxlineError(`TxLINE request ${path} failed: ${await bodyText(response)}`, response.status);
|
|
147
|
+
try {
|
|
148
|
+
return await response.json();
|
|
149
|
+
}
|
|
150
|
+
catch (cause) {
|
|
151
|
+
throw new TxlineError(`TxLINE request ${path} returned invalid JSON`, response.status, { cause });
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
/** Axios-compatible surface used by the proof helpers and keeper. */
|
|
155
|
+
async get(path, config) {
|
|
156
|
+
const url = new URL(path.startsWith("/api/") ? path : `/api${path.startsWith("/") ? path : `/${path}`}`, this.origin);
|
|
157
|
+
Object.entries(config?.params ?? {}).forEach(([key, value]) => {
|
|
158
|
+
if (value !== undefined && value !== null)
|
|
159
|
+
url.searchParams.set(key, String(value));
|
|
160
|
+
});
|
|
161
|
+
return { data: await this.request(`${url.pathname}${url.search}`) };
|
|
162
|
+
}
|
|
163
|
+
async activate(options) {
|
|
164
|
+
const leagues = options.leagues ?? [];
|
|
165
|
+
if (!leagues.every((league) => Number.isSafeInteger(league) && league >= 0))
|
|
166
|
+
throw new TxlineError("TxLINE leagues must contain non-negative safe integers");
|
|
167
|
+
const jwt = await this.guest();
|
|
168
|
+
const txSig = string(await options.subscribe(), "subscription transaction signature");
|
|
169
|
+
const message = new TextEncoder().encode(`${txSig}:${leagues.join(",")}:${jwt}`);
|
|
170
|
+
const signature = await options.signMessage(message);
|
|
171
|
+
if (!(signature instanceof Uint8Array) || signature.byteLength !== 64)
|
|
172
|
+
throw new TxlineError("TxLINE activation wallet signature must be 64 bytes");
|
|
173
|
+
let response;
|
|
174
|
+
try {
|
|
175
|
+
response = await this.fetchImpl(`${this.origin}/api/token/activate`, {
|
|
176
|
+
method: "POST",
|
|
177
|
+
headers: { Authorization: `Bearer ${jwt}`, "Content-Type": "application/json" },
|
|
178
|
+
body: JSON.stringify({ txSig, walletSignature: base64(signature), leagues }),
|
|
179
|
+
cache: "no-store",
|
|
180
|
+
signal: AbortSignal.timeout(this.timeoutMs),
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
catch (cause) {
|
|
184
|
+
throw new TxlineError(`TxLINE token activation failed: ${cause instanceof Error ? cause.message : String(cause)}`, undefined, { cause });
|
|
185
|
+
}
|
|
186
|
+
if (!response.ok)
|
|
187
|
+
throw new TxlineError(`TxLINE token activation failed: ${await bodyText(response)}`, response.status);
|
|
188
|
+
const payload = await response.json();
|
|
189
|
+
const token = typeof payload === "string" ? payload : record(payload, "activation").token;
|
|
190
|
+
this.apiTokenValue = string(token, "activation token");
|
|
191
|
+
return this.apiTokenValue;
|
|
192
|
+
}
|
|
193
|
+
async listFixtures(startEpochDay = Math.floor(Date.now() / 86_400_000)) {
|
|
194
|
+
if (!Number.isSafeInteger(startEpochDay) || startEpochDay <= 0)
|
|
195
|
+
throw new TxlineError("startEpochDay must be a positive safe integer");
|
|
196
|
+
const { data } = await this.get("/fixtures/snapshot", { params: { startEpochDay } });
|
|
197
|
+
if (!Array.isArray(data))
|
|
198
|
+
throw new TxlineError("TxLINE fixture snapshot must be an array");
|
|
199
|
+
return data.map(parseTxlineFixture).sort((a, b) => a.kickoff - b.kickoff);
|
|
200
|
+
}
|
|
201
|
+
async getFixture(fixtureId, referenceEpochSeconds = Math.floor(Date.now() / 1000)) {
|
|
202
|
+
if (!Number.isSafeInteger(fixtureId) || fixtureId <= 0)
|
|
203
|
+
throw new TxlineError("fixtureId must be a positive safe integer");
|
|
204
|
+
if (!Number.isSafeInteger(referenceEpochSeconds) || referenceEpochSeconds <= 0)
|
|
205
|
+
throw new TxlineError("referenceEpochSeconds must be a positive safe integer");
|
|
206
|
+
const startEpochDay = Math.floor(referenceEpochSeconds / 86_400) - 1;
|
|
207
|
+
const fixture = (await this.listFixtures(startEpochDay)).find((item) => item.fixtureId === fixtureId);
|
|
208
|
+
if (!fixture)
|
|
209
|
+
throw new TxlineError(`TxLINE fixture ${fixtureId} was not present in the requested snapshot`, 404);
|
|
210
|
+
return fixture;
|
|
211
|
+
}
|
|
212
|
+
async scoreSnapshot(fixtureId) {
|
|
213
|
+
if (!Number.isSafeInteger(fixtureId) || fixtureId <= 0)
|
|
214
|
+
throw new TxlineError("fixtureId must be a positive safe integer");
|
|
215
|
+
const { data } = await this.get(`/scores/snapshot/${fixtureId}`, { params: { asOf: Date.now() } });
|
|
216
|
+
const item = latestScoreUpdate(data, fixtureId);
|
|
217
|
+
const seq = integer(item.Seq ?? item.seq, "score snapshot sequence");
|
|
218
|
+
const rawFixture = item.FixtureId ?? item.fixtureId ?? fixtureId;
|
|
219
|
+
const periodValue = item.Period ?? item.period ?? item.StatusId ?? item.statusId;
|
|
220
|
+
const stateValue = item.GameState ?? item.gameState;
|
|
221
|
+
return {
|
|
222
|
+
fixtureId: integer(rawFixture, "score snapshot fixture id"),
|
|
223
|
+
seq,
|
|
224
|
+
period: periodValue === undefined ? null : integer(periodValue, "score snapshot period"),
|
|
225
|
+
gameState: stateValue === undefined || stateValue === null
|
|
226
|
+
? null
|
|
227
|
+
: typeof stateValue === "string"
|
|
228
|
+
? string(stateValue, "score snapshot game state")
|
|
229
|
+
: integer(stateValue, "score snapshot game state"),
|
|
230
|
+
raw: data,
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
async latestSeq(fixtureId) { return (await this.scoreSnapshot(fixtureId)).seq; }
|
|
234
|
+
async proofForMarket(expression, seq) {
|
|
235
|
+
return fetchProofForMarket(this, expression, seq ?? await this.latestSeq(expression.fixtureId));
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
//# sourceMappingURL=txline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"txline.js","sourceRoot":"","sources":["../src/txline.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import type { BN } from "@coral-xyz/anchor";
|
|
2
|
+
import type { PublicKey } from "@solana/web3.js";
|
|
3
|
+
export type BinaryOp = "Add" | "Sub" | "Min";
|
|
4
|
+
export type SettlementMode = "Terminal";
|
|
5
|
+
export type SideSelector = "Home" | "Away" | "Total";
|
|
6
|
+
export type Period = "match" | "first_half" | "halftime" | "second_half" | "extra_time_first_half" | "extra_time_second_half" | "penalties" | "extra_time";
|
|
7
|
+
export interface Fixture {
|
|
8
|
+
fixtureId: number;
|
|
9
|
+
competition: string;
|
|
10
|
+
home: string;
|
|
11
|
+
away: string;
|
|
12
|
+
kickoff: number;
|
|
13
|
+
gameState?: number;
|
|
14
|
+
}
|
|
15
|
+
/** One TxLINE-proved integer value. Named outcomes form a complete partition of this value. */
|
|
16
|
+
export interface MarketExpression {
|
|
17
|
+
fixtureId: number;
|
|
18
|
+
settlementMode: SettlementMode;
|
|
19
|
+
period: number;
|
|
20
|
+
statAKey: number;
|
|
21
|
+
statASide: SideSelector;
|
|
22
|
+
statBKey: number | null;
|
|
23
|
+
statBSide: SideSelector | null;
|
|
24
|
+
op: BinaryOp | null;
|
|
25
|
+
}
|
|
26
|
+
export interface OutcomeBand {
|
|
27
|
+
lowerInclusive: bigint | null;
|
|
28
|
+
upperExclusive: bigint | null;
|
|
29
|
+
outcomeIndex: number;
|
|
30
|
+
}
|
|
31
|
+
export interface MarketParams {
|
|
32
|
+
id: bigint;
|
|
33
|
+
expression: MarketExpression;
|
|
34
|
+
outcomeLabels: string[];
|
|
35
|
+
bands: OutcomeBand[];
|
|
36
|
+
entryDeadline: number;
|
|
37
|
+
resolveAt: number;
|
|
38
|
+
voidAt: number;
|
|
39
|
+
feeBps: number;
|
|
40
|
+
tipBps: number;
|
|
41
|
+
}
|
|
42
|
+
export interface ProofNode {
|
|
43
|
+
hash: number[];
|
|
44
|
+
isRightSibling: boolean;
|
|
45
|
+
}
|
|
46
|
+
export interface ScoresProofArg {
|
|
47
|
+
eventStatRoot: number[];
|
|
48
|
+
statA: {
|
|
49
|
+
stat: {
|
|
50
|
+
key: number;
|
|
51
|
+
value: number;
|
|
52
|
+
period: number;
|
|
53
|
+
};
|
|
54
|
+
statProof: ProofNode[];
|
|
55
|
+
};
|
|
56
|
+
statB: {
|
|
57
|
+
stat: {
|
|
58
|
+
key: number;
|
|
59
|
+
value: number;
|
|
60
|
+
period: number;
|
|
61
|
+
};
|
|
62
|
+
statProof: ProofNode[];
|
|
63
|
+
} | null;
|
|
64
|
+
summary: {
|
|
65
|
+
fixtureId: unknown;
|
|
66
|
+
updateCount: number;
|
|
67
|
+
minTimestamp: unknown;
|
|
68
|
+
maxTimestamp: unknown;
|
|
69
|
+
eventsSubTreeRoot: number[];
|
|
70
|
+
};
|
|
71
|
+
subTreeProof: ProofNode[];
|
|
72
|
+
mainTreeProof: ProofNode[];
|
|
73
|
+
}
|
|
74
|
+
export type AnchorEnum<V extends string> = {
|
|
75
|
+
[K in V]: {
|
|
76
|
+
[P in K]: Record<string, never>;
|
|
77
|
+
};
|
|
78
|
+
}[V];
|
|
79
|
+
export type AnchorSideSelector = AnchorEnum<"home" | "away" | "total">;
|
|
80
|
+
export type AnchorBinaryOp = AnchorEnum<"add" | "sub" | "min">;
|
|
81
|
+
export type AnchorSettlementMode = AnchorEnum<"terminal">;
|
|
82
|
+
export type AnchorMarketState = AnchorEnum<"open" | "resolved" | "voided">;
|
|
83
|
+
export interface MarketAccount {
|
|
84
|
+
id: BN;
|
|
85
|
+
creator: PublicKey;
|
|
86
|
+
mint: PublicKey;
|
|
87
|
+
expression: {
|
|
88
|
+
fixtureId: BN;
|
|
89
|
+
settlementMode: AnchorSettlementMode;
|
|
90
|
+
period: number;
|
|
91
|
+
statAKey: number;
|
|
92
|
+
statASide: AnchorSideSelector;
|
|
93
|
+
statBKey: number | null;
|
|
94
|
+
statBSide: AnchorSideSelector | null;
|
|
95
|
+
op: AnchorBinaryOp | null;
|
|
96
|
+
};
|
|
97
|
+
outcomeLabels: string[];
|
|
98
|
+
bands: Array<{
|
|
99
|
+
lowerInclusive: BN | null;
|
|
100
|
+
upperExclusive: BN | null;
|
|
101
|
+
outcomeIndex: number;
|
|
102
|
+
}>;
|
|
103
|
+
pools: BN[];
|
|
104
|
+
entryDeadline: BN;
|
|
105
|
+
resolveAt: BN;
|
|
106
|
+
voidAt: BN;
|
|
107
|
+
feeBps: number;
|
|
108
|
+
tipBps: number;
|
|
109
|
+
state: AnchorMarketState;
|
|
110
|
+
winningOutcome: number | null;
|
|
111
|
+
resolutionEvidenceHash: number[] | null;
|
|
112
|
+
createdAt: BN;
|
|
113
|
+
resolvedTs: BN;
|
|
114
|
+
ticketCount: number;
|
|
115
|
+
claimedStake: BN;
|
|
116
|
+
bump: number;
|
|
117
|
+
}
|
|
118
|
+
export interface MarketTicketAccount {
|
|
119
|
+
market: PublicKey;
|
|
120
|
+
owner: PublicKey;
|
|
121
|
+
nonce: BN;
|
|
122
|
+
outcomeIndex: number;
|
|
123
|
+
stake: BN;
|
|
124
|
+
claimed: boolean;
|
|
125
|
+
bump: number;
|
|
126
|
+
}
|
|
127
|
+
export interface KeyedAccount<T> {
|
|
128
|
+
publicKey: PublicKey;
|
|
129
|
+
account: T;
|
|
130
|
+
}
|
|
131
|
+
export interface AccountPage<T> {
|
|
132
|
+
items: Array<KeyedAccount<T>>;
|
|
133
|
+
/** Base58 public key to pass as `after` for the next deterministic page. */
|
|
134
|
+
nextCursor: string | null;
|
|
135
|
+
}
|
|
136
|
+
export interface ListPageOptions {
|
|
137
|
+
limit?: number;
|
|
138
|
+
after?: string;
|
|
139
|
+
}
|
|
140
|
+
export declare const TXLINE_DEVNET_PROGRAM_ID = "6pW64gN1s2uqjHkn1unFeEjAwJkPGHoppGvS715wyP2J";
|
|
141
|
+
export declare const SLIP_PROGRAM_ID = "7gNEnFMDVhxFLSrtSctaPPCX7RcPbz1Lu5vtxvzobXFt";
|
|
142
|
+
export declare const DEVNET_SETTLEMENT_MINT = "9GGUMXLcaPsH824rxNCrHeBmAUd2aATPxoyk6ycbMRnj";
|
|
143
|
+
export declare const MIN_STAKE = 1000000n;
|
|
144
|
+
export declare const MAX_FEE_BPS = 500;
|
|
145
|
+
export declare const MAX_TIP_BPS = 200;
|
|
146
|
+
export declare const MAX_OUTCOMES = 5;
|
|
147
|
+
export declare const MAX_BANDS = 8;
|
|
148
|
+
export declare const MAX_OUTCOME_LABEL_BYTES = 48;
|
|
149
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export const TXLINE_DEVNET_PROGRAM_ID = "6pW64gN1s2uqjHkn1unFeEjAwJkPGHoppGvS715wyP2J";
|
|
2
|
+
export const SLIP_PROGRAM_ID = "7gNEnFMDVhxFLSrtSctaPPCX7RcPbz1Lu5vtxvzobXFt";
|
|
3
|
+
export const DEVNET_SETTLEMENT_MINT = "9GGUMXLcaPsH824rxNCrHeBmAUd2aATPxoyk6ycbMRnj";
|
|
4
|
+
export const MIN_STAKE = 1000000n;
|
|
5
|
+
export const MAX_FEE_BPS = 500;
|
|
6
|
+
export const MAX_TIP_BPS = 200;
|
|
7
|
+
export const MAX_OUTCOMES = 5;
|
|
8
|
+
export const MAX_BANDS = 8;
|
|
9
|
+
export const MAX_OUTCOME_LABEL_BYTES = 48;
|
|
10
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAsHA,MAAM,CAAC,MAAM,wBAAwB,GAAG,8CAA8C,CAAC;AACvF,MAAM,CAAC,MAAM,eAAe,GAAG,8CAA8C,CAAC;AAC9E,MAAM,CAAC,MAAM,sBAAsB,GAAG,8CAA8C,CAAC;AACrF,MAAM,CAAC,MAAM,SAAS,GAAG,QAAU,CAAC;AACpC,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,CAAC;AAC/B,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,CAAC;AAC/B,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC;AAC9B,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC;AAC3B,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@mutinylabs/slip",
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"license": "MIT",
|
|
5
|
+
"description": "Slip SDK — write a football rule in plain English, lock it on Solana, settle it with a TxLINE proof. Zero UI deps; node + browser.",
|
|
6
|
+
"keywords": [
|
|
7
|
+
"solana",
|
|
8
|
+
"txline",
|
|
9
|
+
"parimutuel",
|
|
10
|
+
"football",
|
|
11
|
+
"prediction-market"
|
|
12
|
+
],
|
|
13
|
+
"homepage": "https://github.com/danielAsaboro/slip#readme",
|
|
14
|
+
"bugs": {
|
|
15
|
+
"url": "https://github.com/danielAsaboro/slip/issues"
|
|
16
|
+
},
|
|
17
|
+
"repository": {
|
|
18
|
+
"type": "git",
|
|
19
|
+
"url": "git+https://github.com/danielAsaboro/slip.git",
|
|
20
|
+
"directory": "packages/sdk"
|
|
21
|
+
},
|
|
22
|
+
"type": "module",
|
|
23
|
+
"sideEffects": false,
|
|
24
|
+
"main": "./dist/index.js",
|
|
25
|
+
"types": "./dist/index.d.ts",
|
|
26
|
+
"exports": {
|
|
27
|
+
".": {
|
|
28
|
+
"types": "./dist/index.d.ts",
|
|
29
|
+
"import": "./dist/index.js",
|
|
30
|
+
"default": "./dist/index.js"
|
|
31
|
+
},
|
|
32
|
+
"./ai": {
|
|
33
|
+
"types": "./dist/ai.d.ts",
|
|
34
|
+
"import": "./dist/ai.js",
|
|
35
|
+
"default": "./dist/ai.js"
|
|
36
|
+
},
|
|
37
|
+
"./txline": {
|
|
38
|
+
"types": "./dist/txline.d.ts",
|
|
39
|
+
"import": "./dist/txline.js",
|
|
40
|
+
"default": "./dist/txline.js"
|
|
41
|
+
},
|
|
42
|
+
"./anchor": {
|
|
43
|
+
"types": "./dist/anchor.d.ts",
|
|
44
|
+
"import": "./dist/anchor.js",
|
|
45
|
+
"default": "./dist/anchor.js"
|
|
46
|
+
},
|
|
47
|
+
"./generated": {
|
|
48
|
+
"types": "./dist/generated/index.d.ts",
|
|
49
|
+
"import": "./dist/generated/index.js",
|
|
50
|
+
"default": "./dist/generated/index.js"
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
"files": [
|
|
54
|
+
"dist",
|
|
55
|
+
"README.md",
|
|
56
|
+
"LICENSE"
|
|
57
|
+
],
|
|
58
|
+
"engines": {
|
|
59
|
+
"node": ">=22"
|
|
60
|
+
},
|
|
61
|
+
"publishConfig": {
|
|
62
|
+
"access": "public"
|
|
63
|
+
},
|
|
64
|
+
"scripts": {
|
|
65
|
+
"clean": "rm -rf dist",
|
|
66
|
+
"prebuild": "node ../../scripts/fix-codama-esm.mjs",
|
|
67
|
+
"build": "pnpm clean && tsc -p tsconfig.build.json",
|
|
68
|
+
"prepack": "pnpm test && pnpm test:esm",
|
|
69
|
+
"test:esm": "pnpm build && node ../../scripts/verify-sdk-esm.mjs",
|
|
70
|
+
"test": "vitest run test/market.test.ts test/public.test.ts",
|
|
71
|
+
"test:ai": "node --env-file=../../.env node_modules/vitest/vitest.mjs run test/ai.integration.test.ts",
|
|
72
|
+
"test:ai:groq": "SLIP_RULE_PROVIDER=groq node --env-file=../../.env node_modules/vitest/vitest.mjs run test/ai.integration.test.ts",
|
|
73
|
+
"test:txline": "node --env-file=../../.env node_modules/vitest/vitest.mjs run test/txline.integration.test.ts",
|
|
74
|
+
"typecheck": "tsc --noEmit"
|
|
75
|
+
},
|
|
76
|
+
"dependencies": {
|
|
77
|
+
"@solana/kit": "^6.10.0"
|
|
78
|
+
},
|
|
79
|
+
"peerDependencies": {
|
|
80
|
+
"@ai-sdk/groq": "4.0.12",
|
|
81
|
+
"@coral-xyz/anchor": "0.32.1",
|
|
82
|
+
"@noble/hashes": "^1.6.1",
|
|
83
|
+
"@solana/spl-token": "^0.4.9",
|
|
84
|
+
"@solana/web3.js": "^1.98.0",
|
|
85
|
+
"ai": "^7.0.28",
|
|
86
|
+
"zod": "^4.4.3"
|
|
87
|
+
},
|
|
88
|
+
"peerDependenciesMeta": {
|
|
89
|
+
"@ai-sdk/groq": {
|
|
90
|
+
"optional": true
|
|
91
|
+
},
|
|
92
|
+
"@coral-xyz/anchor": {
|
|
93
|
+
"optional": true
|
|
94
|
+
},
|
|
95
|
+
"@noble/hashes": {
|
|
96
|
+
"optional": true
|
|
97
|
+
},
|
|
98
|
+
"@solana/spl-token": {
|
|
99
|
+
"optional": true
|
|
100
|
+
},
|
|
101
|
+
"@solana/web3.js": {
|
|
102
|
+
"optional": true
|
|
103
|
+
},
|
|
104
|
+
"ai": {
|
|
105
|
+
"optional": true
|
|
106
|
+
},
|
|
107
|
+
"zod": {
|
|
108
|
+
"optional": true
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
"devDependencies": {
|
|
112
|
+
"@ai-sdk/groq": "4.0.12",
|
|
113
|
+
"@coral-xyz/anchor": "0.32.1",
|
|
114
|
+
"@noble/hashes": "^1.6.1",
|
|
115
|
+
"@solana/spl-token": "^0.4.9",
|
|
116
|
+
"@solana/web3.js": "^1.98.0",
|
|
117
|
+
"ai": "7.0.28",
|
|
118
|
+
"typescript": "^5.7.2",
|
|
119
|
+
"vite": "6.4.3",
|
|
120
|
+
"vitest": "^4.1.10",
|
|
121
|
+
"zod": "^4.4.3"
|
|
122
|
+
}
|
|
123
|
+
}
|