@xgamesfun/solana 0.0.0-stage → 0.20.1
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/DISCLAIMER.md +41 -0
- package/LICENSE +202 -0
- package/NOTICE +13 -0
- package/README.md +172 -2
- package/bin/xsolana.mjs +189 -0
- package/examples/artwork-auction.json +51 -0
- package/examples/blind-forge.json +128 -0
- package/examples/coin-flip-arena.json +108 -0
- package/examples/duel-arena.json +137 -0
- package/examples/elements-set.json +281 -0
- package/examples/event-badges.json +67 -0
- package/examples/expedition-guild.json +161 -0
- package/examples/fair-presale.json +48 -0
- package/examples/falling-drop.json +90 -0
- package/examples/guild-missions.json +144 -0
- package/examples/halving-seasons.json +112 -0
- package/examples/hero-trials.json +96 -0
- package/examples/ideas.json +789 -0
- package/examples/level-ladder.json +65 -0
- package/examples/merge-2048.json +128 -0
- package/examples/nft-raffle.json +33 -0
- package/examples/paper-hands-farm.json +56 -0
- package/examples/partner-vault.json +115 -0
- package/examples/sacrifice-raffle.json +118 -0
- package/examples/scorched-treasury.json +84 -0
- package/examples/shelter-fair.json +164 -0
- package/examples/spark-pity.json +153 -0
- package/examples/stakers-draw.json +125 -0
- package/examples/star-fleet.json +157 -0
- package/examples/starforce.json +116 -0
- package/examples/stud-farm.json +134 -0
- package/examples/team-vesting.json +70 -0
- package/examples/trade-in-shop.json +168 -0
- package/js/approve/details.mjs +262 -0
- package/js/approve/ed25519.mjs +36 -0
- package/js/approve/live-check.mjs +144 -0
- package/js/approve/page.html +86 -0
- package/js/approve/page.js +203 -0
- package/js/approve/server.mjs +711 -0
- package/js/chain/base58.js +73 -0
- package/js/chain/borsh.js +261 -0
- package/js/chain/bytes.js +141 -0
- package/js/chain/core.js +169 -0
- package/js/chain/curve.js +52 -0
- package/js/chain/lookup.js +273 -0
- package/js/chain/mint.js +96 -0
- package/js/chain/pda.js +66 -0
- package/js/chain/programs.js +102 -0
- package/js/chain/rpc.js +217 -0
- package/js/chain/sha256.js +68 -0
- package/js/chain/token.js +85 -0
- package/js/chain/token2022.js +247 -0
- package/js/chain/tx.js +224 -0
- package/js/client/accounts.js +347 -0
- package/js/client/compressed.js +46 -0
- package/js/client/grant.js +240 -0
- package/js/client/idl/loot.js +2 -0
- package/js/client/idl/loot.json +17064 -0
- package/js/client/index.js +9 -0
- package/js/client/ix.js +2156 -0
- package/js/client/pda.js +110 -0
- package/js/client/policy.js +48 -0
- package/js/client/sizes.js +54 -0
- package/js/client/traits.js +44 -0
- package/js/connect/connect.mjs +182 -0
- package/js/economy/check.mjs +1991 -0
- package/js/economy/cost.mjs +170 -0
- package/js/economy/examples.mjs +114 -0
- package/js/economy/explain.mjs +235 -0
- package/js/economy/guide.mjs +231 -0
- package/js/economy/legal.mjs +15 -0
- package/js/economy/live.mjs +107 -0
- package/js/economy/model.mjs +583 -0
- package/js/economy/plan.mjs +887 -0
- package/js/economy/schema.json +2923 -0
- package/js/economy/secrets.mjs +60 -0
- package/js/economy/simulate.mjs +952 -0
- package/js/economy/txsize.mjs +45 -0
- package/js/economy/validate.mjs +85 -0
- package/js/index.js +10 -0
- package/js/mcp/server.mjs +113 -0
- package/js/mcp/tools.mjs +479 -0
- package/js/play/index.js +2109 -0
- package/js/results/index.js +184 -0
- package/js/results/wire.js +90 -0
- package/package.json +100 -4
- package/release.json +8 -0
- package/skills/xsolana-economy/SKILL.md +105 -0
- package/skills/xsolana-economy/references/after-launch.md +114 -0
- package/skills/xsolana-economy/references/apps.md +157 -0
- package/skills/xsolana-economy/references/sentence-to-spec.md +172 -0
- package/skills/xsolana-economy/references/telling-the-person.md +93 -0
- package/types/chain/base58.d.ts +10 -0
- package/types/chain/borsh.d.ts +23 -0
- package/types/chain/bytes.d.ts +45 -0
- package/types/chain/core.d.ts +50 -0
- package/types/chain/curve.d.ts +1 -0
- package/types/chain/lookup.d.ts +191 -0
- package/types/chain/mint.d.ts +25 -0
- package/types/chain/pda.d.ts +25 -0
- package/types/chain/programs.d.ts +65 -0
- package/types/chain/rpc.d.ts +66 -0
- package/types/chain/sha256.d.ts +1 -0
- package/types/chain/token.d.ts +141 -0
- package/types/chain/token2022.d.ts +53 -0
- package/types/chain/tx.d.ts +60 -0
- package/types/client/accounts.d.ts +178 -0
- package/types/client/compressed.d.ts +29 -0
- package/types/client/grant.d.ts +125 -0
- package/types/client/idl/loot.d.ts +4467 -0
- package/types/client/index.d.ts +8 -0
- package/types/client/ix.d.ts +1687 -0
- package/types/client/pda.d.ts +91 -0
- package/types/client/policy.d.ts +23 -0
- package/types/client/sizes.d.ts +13 -0
- package/types/client/traits.d.ts +12 -0
- package/types/economy/check.d.mts +105 -0
- package/types/economy/cost.d.mts +68 -0
- package/types/economy/examples.d.mts +27 -0
- package/types/economy/explain.d.mts +19 -0
- package/types/economy/guide.d.mts +140 -0
- package/types/economy/legal.d.mts +12 -0
- package/types/economy/live.d.mts +109 -0
- package/types/economy/model.d.mts +363 -0
- package/types/economy/plan.d.mts +1013 -0
- package/types/economy/secrets.d.mts +4 -0
- package/types/economy/simulate.d.mts +156 -0
- package/types/economy/txsize.d.mts +17 -0
- package/types/economy/validate.d.mts +3 -0
- package/types/index.d.ts +9 -0
- package/types/mcp/tools.d.mts +627 -0
- package/types/play/index.d.ts +469 -0
- package/types/results/index.d.ts +155 -0
- package/types/results/wire.d.ts +122 -0
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
export declare const RESULT_DOMAIN = "loot-result-v1";
|
|
2
|
+
export declare const NO_GRANT = 65535;
|
|
3
|
+
export declare const CLUSTERS: Readonly<{
|
|
4
|
+
devnet: 0;
|
|
5
|
+
mainnet: 1;
|
|
6
|
+
}>;
|
|
7
|
+
/** Each certificate's first line, and the lines that follow it, in order. */
|
|
8
|
+
export declare const CERT_KINDS: Readonly<{
|
|
9
|
+
host: {
|
|
10
|
+
title: string;
|
|
11
|
+
fields: string[];
|
|
12
|
+
};
|
|
13
|
+
revoke: {
|
|
14
|
+
title: string;
|
|
15
|
+
fields: string[];
|
|
16
|
+
};
|
|
17
|
+
draw: {
|
|
18
|
+
title: string;
|
|
19
|
+
fields: string[];
|
|
20
|
+
};
|
|
21
|
+
lock: {
|
|
22
|
+
title: string;
|
|
23
|
+
fields: string[];
|
|
24
|
+
};
|
|
25
|
+
entry: {
|
|
26
|
+
title: string;
|
|
27
|
+
fields: string[];
|
|
28
|
+
};
|
|
29
|
+
giveaway: {
|
|
30
|
+
title: string;
|
|
31
|
+
fields: string[];
|
|
32
|
+
};
|
|
33
|
+
revokeGiveaway: {
|
|
34
|
+
title: string;
|
|
35
|
+
fields: string[];
|
|
36
|
+
};
|
|
37
|
+
}>;
|
|
38
|
+
/** The text the owner signs to let `host` report `game`'s results until `until` (unix seconds). */
|
|
39
|
+
export declare const hostCertText: ({ cluster, game, host, until }: {
|
|
40
|
+
cluster?: string | undefined;
|
|
41
|
+
game: any;
|
|
42
|
+
host: any;
|
|
43
|
+
until: any;
|
|
44
|
+
}) => string;
|
|
45
|
+
/** The text the owner signs to take `host` back. */
|
|
46
|
+
export declare const revokeText: ({ cluster, game, host }: {
|
|
47
|
+
cluster?: string | undefined;
|
|
48
|
+
game: any;
|
|
49
|
+
host: any;
|
|
50
|
+
}) => string;
|
|
51
|
+
/**
|
|
52
|
+
* The text the organizer (the game's owner or authority, or a host key they certified) signs to open a draw: a round
|
|
53
|
+
* whose winners an engine computes from the locked players and a future beacon value. `prizes`: [{ place, grant }];
|
|
54
|
+
* `payout`: 'vouchers' (the server vouches for each winner) or 'list' (the owner writes the winners' list on the grant);
|
|
55
|
+
* `identity`: 'linked' (a play-host sign-in linked to X, one entry a person) or 'wallet' (a wallet's own signature);
|
|
56
|
+
* `slug`: the game's play-host name (its tokens' audience), or '-'; `rates`: the sha256 of the engine's rates (canonical
|
|
57
|
+
* JSON), or 'default'.
|
|
58
|
+
*/
|
|
59
|
+
export declare const drawText: ({ cluster, game, draw, engine, winners, prizes, payout, identity, slug, rates }: {
|
|
60
|
+
cluster?: string | undefined;
|
|
61
|
+
draw: any;
|
|
62
|
+
engine: any;
|
|
63
|
+
game: any;
|
|
64
|
+
identity?: string | undefined;
|
|
65
|
+
payout?: string | undefined;
|
|
66
|
+
prizes?: never[] | undefined;
|
|
67
|
+
rates?: string | undefined;
|
|
68
|
+
slug?: string | undefined;
|
|
69
|
+
winners: any;
|
|
70
|
+
}) => string;
|
|
71
|
+
/** The text the organizer signs to lock a draw's players (`roster`: rosterHash) to a beacon round still to come. */
|
|
72
|
+
export declare const lockText: ({ cluster, game, draw, roster, players, beacon, net }: {
|
|
73
|
+
beacon: any;
|
|
74
|
+
cluster?: string | undefined;
|
|
75
|
+
draw: any;
|
|
76
|
+
game: any;
|
|
77
|
+
net?: string | undefined;
|
|
78
|
+
players: any;
|
|
79
|
+
roster: any;
|
|
80
|
+
}) => string;
|
|
81
|
+
/** The text a player's wallet signs to enter a draw (identity 'wallet'). */
|
|
82
|
+
export declare const entryText: ({ cluster, game, draw }: {
|
|
83
|
+
cluster?: string | undefined;
|
|
84
|
+
draw: any;
|
|
85
|
+
game: any;
|
|
86
|
+
}) => string;
|
|
87
|
+
/**
|
|
88
|
+
* The text the owner (or authority) signs to appoint a giveaway host: `who` is "x:<X account id>" (the host signs in
|
|
89
|
+
* with that X account through the play host) or a wallet address; their giveaways pay from grant `grant` alone.
|
|
90
|
+
*/
|
|
91
|
+
export declare const giveawayHostText: ({ cluster, game, who, slug, grant, until }: {
|
|
92
|
+
cluster?: string | undefined;
|
|
93
|
+
game: any;
|
|
94
|
+
grant: any;
|
|
95
|
+
slug: any;
|
|
96
|
+
until: any;
|
|
97
|
+
who: any;
|
|
98
|
+
}) => string;
|
|
99
|
+
/** The text the owner (or authority) signs to take a giveaway host back. */
|
|
100
|
+
export declare const revokeGiveawayText: ({ cluster, game, who }: {
|
|
101
|
+
cluster?: string | undefined;
|
|
102
|
+
game: any;
|
|
103
|
+
who: any;
|
|
104
|
+
}) => string;
|
|
105
|
+
/** A draw's players, as one hash: each `id<TAB>wallet`, sorted by id, one a line; sha256, hex. */
|
|
106
|
+
export declare function rosterHash(entries: any): Promise<string>;
|
|
107
|
+
/** JSON with every object's keys sorted: one text for one value, so its hash means one thing. */
|
|
108
|
+
export declare function canonicalJson(value: any): any;
|
|
109
|
+
/**
|
|
110
|
+
* The bytes a result's signers sign:
|
|
111
|
+
* "loot-result-v1" | cluster (1) | game (32) | round (16) | endedAt (u64 LE)
|
|
112
|
+
* | winners (u8 count; each wallet (32) | place (u8) | grant id (u16 LE, 0xffff: none))
|
|
113
|
+
* Every field has one length, so one set of bytes means one result: an unknown cluster, a round that is not 16 bytes, a
|
|
114
|
+
* place past 255 and more than 255 winners are refused, never written as something else.
|
|
115
|
+
*/
|
|
116
|
+
export declare function resultBytes({ cluster, game, round, endedAt, winners }: {
|
|
117
|
+
cluster?: string | undefined;
|
|
118
|
+
endedAt: any;
|
|
119
|
+
game: any;
|
|
120
|
+
round: any;
|
|
121
|
+
winners: any;
|
|
122
|
+
}): Uint8Array<any>;
|