yosoku 0.1.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/dist/accounts/filllog.d.ts +5 -0
- package/dist/accounts/filllog.d.ts.map +1 -0
- package/dist/accounts/filllog.js +30 -0
- package/dist/accounts/filllog.js.map +1 -0
- package/dist/accounts/index.d.ts +42 -0
- package/dist/accounts/index.d.ts.map +1 -0
- package/dist/accounts/index.js +81 -0
- package/dist/accounts/index.js.map +1 -0
- package/dist/accounts/market.d.ts +14 -0
- package/dist/accounts/market.d.ts.map +1 -0
- package/dist/accounts/market.js +104 -0
- package/dist/accounts/market.js.map +1 -0
- package/dist/accounts/marketinfo.d.ts +9 -0
- package/dist/accounts/marketinfo.d.ts.map +1 -0
- package/dist/accounts/marketinfo.js +29 -0
- package/dist/accounts/marketinfo.js.map +1 -0
- package/dist/accounts/order.d.ts +11 -0
- package/dist/accounts/order.d.ts.map +1 -0
- package/dist/accounts/order.js +50 -0
- package/dist/accounts/order.js.map +1 -0
- package/dist/accounts/orderbook.d.ts +5 -0
- package/dist/accounts/orderbook.d.ts.map +1 -0
- package/dist/accounts/orderbook.js +80 -0
- package/dist/accounts/orderbook.js.map +1 -0
- package/dist/accounts/position.d.ts +11 -0
- package/dist/accounts/position.d.ts.map +1 -0
- package/dist/accounts/position.js +48 -0
- package/dist/accounts/position.js.map +1 -0
- package/dist/accounts/resolution.d.ts +13 -0
- package/dist/accounts/resolution.d.ts.map +1 -0
- package/dist/accounts/resolution.js +91 -0
- package/dist/accounts/resolution.js.map +1 -0
- package/dist/client.d.ts +50 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +63 -0
- package/dist/client.js.map +1 -0
- package/dist/constants.d.ts +28 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +32 -0
- package/dist/constants.js.map +1 -0
- package/dist/errors.d.ts +85 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +186 -0
- package/dist/errors.js.map +1 -0
- package/dist/events/index.d.ts +22 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/index.js +78 -0
- package/dist/events/index.js.map +1 -0
- package/dist/events/parser.d.ts +4 -0
- package/dist/events/parser.d.ts.map +1 -0
- package/dist/events/parser.js +111 -0
- package/dist/events/parser.js.map +1 -0
- package/dist/events/types.d.ts +85 -0
- package/dist/events/types.d.ts.map +1 -0
- package/dist/events/types.js +3 -0
- package/dist/events/types.js.map +1 -0
- package/dist/idl/pred_market.d.ts +4809 -0
- package/dist/idl/pred_market.d.ts.map +1 -0
- package/dist/idl/pred_market.js +3 -0
- package/dist/idl/pred_market.js.map +1 -0
- package/dist/idl/pred_market.json +4802 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +47 -0
- package/dist/index.js.map +1 -0
- package/dist/instructions/admin.d.ts +20 -0
- package/dist/instructions/admin.d.ts.map +1 -0
- package/dist/instructions/admin.js +89 -0
- package/dist/instructions/admin.js.map +1 -0
- package/dist/instructions/index.d.ts +14 -0
- package/dist/instructions/index.d.ts.map +1 -0
- package/dist/instructions/index.js +18 -0
- package/dist/instructions/index.js.map +1 -0
- package/dist/instructions/market-creation.d.ts +48 -0
- package/dist/instructions/market-creation.d.ts.map +1 -0
- package/dist/instructions/market-creation.js +270 -0
- package/dist/instructions/market-creation.js.map +1 -0
- package/dist/instructions/market-info.d.ts +48 -0
- package/dist/instructions/market-info.d.ts.map +1 -0
- package/dist/instructions/market-info.js +138 -0
- package/dist/instructions/market-info.js.map +1 -0
- package/dist/instructions/positions.d.ts +42 -0
- package/dist/instructions/positions.d.ts.map +1 -0
- package/dist/instructions/positions.js +122 -0
- package/dist/instructions/positions.js.map +1 -0
- package/dist/instructions/resolution.d.ts +32 -0
- package/dist/instructions/resolution.d.ts.map +1 -0
- package/dist/instructions/resolution.js +107 -0
- package/dist/instructions/resolution.js.map +1 -0
- package/dist/instructions/trading.d.ts +81 -0
- package/dist/instructions/trading.d.ts.map +1 -0
- package/dist/instructions/trading.js +195 -0
- package/dist/instructions/trading.js.map +1 -0
- package/dist/instructions/vote-resolution.d.ts +20 -0
- package/dist/instructions/vote-resolution.d.ts.map +1 -0
- package/dist/instructions/vote-resolution.js +58 -0
- package/dist/instructions/vote-resolution.js.map +1 -0
- package/dist/pda.d.ts +11 -0
- package/dist/pda.d.ts.map +1 -0
- package/dist/pda.js +68 -0
- package/dist/pda.js.map +1 -0
- package/dist/price.d.ts +48 -0
- package/dist/price.d.ts.map +1 -0
- package/dist/price.js +90 -0
- package/dist/price.js.map +1 -0
- package/dist/types.d.ts +198 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +92 -0
- package/dist/types.js.map +1 -0
- package/package.json +40 -0
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TradingModule = void 0;
|
|
4
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
5
|
+
const spl_token_1 = require("@solana/spl-token");
|
|
6
|
+
const types_1 = require("../types");
|
|
7
|
+
const pda_1 = require("../pda");
|
|
8
|
+
const constants_1 = require("../constants");
|
|
9
|
+
const market_1 = require("../accounts/market");
|
|
10
|
+
/** @internal */
|
|
11
|
+
function generateSeed() {
|
|
12
|
+
return Math.floor(Math.random() * 2000000000);
|
|
13
|
+
}
|
|
14
|
+
class TradingModule {
|
|
15
|
+
/** @internal */
|
|
16
|
+
constructor(program) {
|
|
17
|
+
this.program = program;
|
|
18
|
+
}
|
|
19
|
+
/** @internal */
|
|
20
|
+
async resolveMarket(address) {
|
|
21
|
+
const m = await (0, market_1.fetchMarket)(this.program, address);
|
|
22
|
+
if (!m)
|
|
23
|
+
throw new Error(`Market not found: ${address.toBase58()}`);
|
|
24
|
+
return m;
|
|
25
|
+
}
|
|
26
|
+
/** Place a limit bid (USDC-backed buy order) */
|
|
27
|
+
async limitBid(params) {
|
|
28
|
+
const index = params.index ?? 0;
|
|
29
|
+
const user = this.program.provider.publicKey;
|
|
30
|
+
const seed = params.seed ?? generateSeed();
|
|
31
|
+
const market = await this.resolveMarket(params.market);
|
|
32
|
+
const leg = market.legs[index];
|
|
33
|
+
const [orderPda] = (0, pda_1.getOrderPda)(this.program.programId, params.market, index, user, params.price, seed);
|
|
34
|
+
const [yesPos] = (0, pda_1.getPositionPda)(this.program.programId, params.market, index, user, 0);
|
|
35
|
+
const [noPos] = (0, pda_1.getPositionPda)(this.program.programId, params.market, index, user, 1);
|
|
36
|
+
const userAta = (0, spl_token_1.getAssociatedTokenAddressSync)(constants_1.USDC_MINT, user);
|
|
37
|
+
const [creatorVault] = (0, pda_1.getCreatorVaultPda)(this.program.programId, params.market);
|
|
38
|
+
const sig = await this.program.methods
|
|
39
|
+
.limitBid(index, (0, types_1.toAnchorSide)(params.side), params.price, params.usdcAmount, seed, params.matchExisting ?? true)
|
|
40
|
+
.accounts({
|
|
41
|
+
user,
|
|
42
|
+
market: params.market,
|
|
43
|
+
vault: leg.vault,
|
|
44
|
+
creatorVault,
|
|
45
|
+
yesOrderBook: leg.yesOrderBook,
|
|
46
|
+
noOrderBook: leg.noOrderBook,
|
|
47
|
+
yesFillLog: leg.yesFillLog,
|
|
48
|
+
noFillLog: leg.noFillLog,
|
|
49
|
+
userAta,
|
|
50
|
+
protocolTreasury: constants_1.PROTOCOL_USDC_ACCOUNT,
|
|
51
|
+
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
|
|
52
|
+
systemProgram: web3_js_1.SystemProgram.programId,
|
|
53
|
+
order: orderPda,
|
|
54
|
+
yesPosition: yesPos,
|
|
55
|
+
noPosition: noPos,
|
|
56
|
+
referralAccount: params.referralAccount ?? web3_js_1.SystemProgram.programId,
|
|
57
|
+
})
|
|
58
|
+
.rpc();
|
|
59
|
+
return { orderPda, signature: sig };
|
|
60
|
+
}
|
|
61
|
+
/** Place a limit ask (sell shares at a specific price) */
|
|
62
|
+
async limitAsk(params) {
|
|
63
|
+
const index = params.index ?? 0;
|
|
64
|
+
const user = this.program.provider.publicKey;
|
|
65
|
+
const seed = params.seed ?? generateSeed();
|
|
66
|
+
const market = await this.resolveMarket(params.market);
|
|
67
|
+
const leg = market.legs[index];
|
|
68
|
+
// The program's seeds constraint uses the price arg as-is;
|
|
69
|
+
// complement conversion happens inside the function body.
|
|
70
|
+
const [orderPda] = (0, pda_1.getOrderPda)(this.program.programId, params.market, index, user, params.price, seed);
|
|
71
|
+
const [yesPos] = (0, pda_1.getPositionPda)(this.program.programId, params.market, index, user, 0);
|
|
72
|
+
const [noPos] = (0, pda_1.getPositionPda)(this.program.programId, params.market, index, user, 1);
|
|
73
|
+
const userAta = (0, spl_token_1.getAssociatedTokenAddressSync)(constants_1.USDC_MINT, user);
|
|
74
|
+
const [creatorVault] = (0, pda_1.getCreatorVaultPda)(this.program.programId, params.market);
|
|
75
|
+
const sig = await this.program.methods
|
|
76
|
+
.limitAsk(index, (0, types_1.toAnchorSide)(params.side), params.price, params.shares, seed, params.matchExisting ?? true)
|
|
77
|
+
.accounts({
|
|
78
|
+
user,
|
|
79
|
+
market: params.market,
|
|
80
|
+
vault: leg.vault,
|
|
81
|
+
creatorVault,
|
|
82
|
+
yesOrderBook: leg.yesOrderBook,
|
|
83
|
+
noOrderBook: leg.noOrderBook,
|
|
84
|
+
yesFillLog: leg.yesFillLog,
|
|
85
|
+
noFillLog: leg.noFillLog,
|
|
86
|
+
userAta,
|
|
87
|
+
protocolTreasury: constants_1.PROTOCOL_USDC_ACCOUNT,
|
|
88
|
+
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
|
|
89
|
+
systemProgram: web3_js_1.SystemProgram.programId,
|
|
90
|
+
order: orderPda,
|
|
91
|
+
yesPosition: yesPos,
|
|
92
|
+
noPosition: noPos,
|
|
93
|
+
referralAccount: params.referralAccount ?? web3_js_1.SystemProgram.programId,
|
|
94
|
+
})
|
|
95
|
+
.rpc();
|
|
96
|
+
return { orderPda, signature: sig };
|
|
97
|
+
}
|
|
98
|
+
/** Place a covered bid (backed by USDC or existing shares) */
|
|
99
|
+
async coveredBid(params) {
|
|
100
|
+
const index = params.index ?? 0;
|
|
101
|
+
const user = this.program.provider.publicKey;
|
|
102
|
+
const seed = params.seed ?? generateSeed();
|
|
103
|
+
const market = await this.resolveMarket(params.market);
|
|
104
|
+
const leg = market.legs[index];
|
|
105
|
+
const [orderPda] = (0, pda_1.getOrderPda)(this.program.programId, params.market, index, user, params.price, seed);
|
|
106
|
+
const [yesPos] = (0, pda_1.getPositionPda)(this.program.programId, params.market, index, user, 0);
|
|
107
|
+
const [noPos] = (0, pda_1.getPositionPda)(this.program.programId, params.market, index, user, 1);
|
|
108
|
+
const userAta = (0, spl_token_1.getAssociatedTokenAddressSync)(constants_1.USDC_MINT, user);
|
|
109
|
+
const [creatorVault] = (0, pda_1.getCreatorVaultPda)(this.program.programId, params.market);
|
|
110
|
+
const sig = await this.program.methods
|
|
111
|
+
.coveredBid(index, (0, types_1.toAnchorSide)(params.side), params.price, params.shares, seed, (0, types_1.toAnchorCoveredBy)(params.coveredBy), params.matchExisting ?? true)
|
|
112
|
+
.accounts({
|
|
113
|
+
user,
|
|
114
|
+
market: params.market,
|
|
115
|
+
vault: leg.vault,
|
|
116
|
+
creatorVault,
|
|
117
|
+
yesOrderBook: leg.yesOrderBook,
|
|
118
|
+
noOrderBook: leg.noOrderBook,
|
|
119
|
+
yesFillLog: leg.yesFillLog,
|
|
120
|
+
noFillLog: leg.noFillLog,
|
|
121
|
+
userAta,
|
|
122
|
+
protocolTreasury: constants_1.PROTOCOL_USDC_ACCOUNT,
|
|
123
|
+
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
|
|
124
|
+
systemProgram: web3_js_1.SystemProgram.programId,
|
|
125
|
+
order: orderPda,
|
|
126
|
+
yesPosition: yesPos,
|
|
127
|
+
noPosition: noPos,
|
|
128
|
+
referralAccount: params.referralAccount ?? web3_js_1.SystemProgram.programId,
|
|
129
|
+
})
|
|
130
|
+
.rpc();
|
|
131
|
+
return { orderPda, signature: sig };
|
|
132
|
+
}
|
|
133
|
+
/** Execute a market buy (immediate execution) */
|
|
134
|
+
async marketBuy(params) {
|
|
135
|
+
const index = params.index ?? 0;
|
|
136
|
+
const user = this.program.provider.publicKey;
|
|
137
|
+
const market = await this.resolveMarket(params.market);
|
|
138
|
+
const leg = market.legs[index];
|
|
139
|
+
const sideNum = (0, types_1.toSideNumber)(params.side);
|
|
140
|
+
const [userPosition] = (0, pda_1.getPositionPda)(this.program.programId, params.market, index, user, sideNum);
|
|
141
|
+
const userAta = (0, spl_token_1.getAssociatedTokenAddressSync)(constants_1.USDC_MINT, user);
|
|
142
|
+
const [creatorVault] = (0, pda_1.getCreatorVaultPda)(this.program.programId, params.market);
|
|
143
|
+
return this.program.methods
|
|
144
|
+
.marketBuy(index, (0, types_1.toAnchorSide)(params.side), params.maxUsdc, params.minShares)
|
|
145
|
+
.accounts({
|
|
146
|
+
user,
|
|
147
|
+
market: params.market,
|
|
148
|
+
vault: leg.vault,
|
|
149
|
+
yesOrderBook: leg.yesOrderBook,
|
|
150
|
+
noOrderBook: leg.noOrderBook,
|
|
151
|
+
yesFillLog: leg.yesFillLog,
|
|
152
|
+
noFillLog: leg.noFillLog,
|
|
153
|
+
userAta,
|
|
154
|
+
creatorVault,
|
|
155
|
+
protocolTreasury: constants_1.PROTOCOL_USDC_ACCOUNT,
|
|
156
|
+
referralAccount: params.referralAccount ?? web3_js_1.SystemProgram.programId,
|
|
157
|
+
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
|
|
158
|
+
systemProgram: web3_js_1.SystemProgram.programId,
|
|
159
|
+
userPosition,
|
|
160
|
+
})
|
|
161
|
+
.rpc();
|
|
162
|
+
}
|
|
163
|
+
/** Execute a market sell (immediate execution) */
|
|
164
|
+
async marketSell(params) {
|
|
165
|
+
const index = params.index ?? 0;
|
|
166
|
+
const user = this.program.provider.publicKey;
|
|
167
|
+
const market = await this.resolveMarket(params.market);
|
|
168
|
+
const leg = market.legs[index];
|
|
169
|
+
const sideNum = (0, types_1.toSideNumber)(params.side);
|
|
170
|
+
const [userPosition] = (0, pda_1.getPositionPda)(this.program.programId, params.market, index, user, sideNum);
|
|
171
|
+
const userAta = (0, spl_token_1.getAssociatedTokenAddressSync)(constants_1.USDC_MINT, user);
|
|
172
|
+
const [creatorVault] = (0, pda_1.getCreatorVaultPda)(this.program.programId, params.market);
|
|
173
|
+
return this.program.methods
|
|
174
|
+
.marketSell(index, (0, types_1.toAnchorSide)(params.side), params.shares, params.minUsdc)
|
|
175
|
+
.accounts({
|
|
176
|
+
user,
|
|
177
|
+
market: params.market,
|
|
178
|
+
vault: leg.vault,
|
|
179
|
+
yesOrderBook: leg.yesOrderBook,
|
|
180
|
+
noOrderBook: leg.noOrderBook,
|
|
181
|
+
yesFillLog: leg.yesFillLog,
|
|
182
|
+
noFillLog: leg.noFillLog,
|
|
183
|
+
userAta,
|
|
184
|
+
creatorVault,
|
|
185
|
+
protocolTreasury: constants_1.PROTOCOL_USDC_ACCOUNT,
|
|
186
|
+
referralAccount: params.referralAccount ?? web3_js_1.SystemProgram.programId,
|
|
187
|
+
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
|
|
188
|
+
systemProgram: web3_js_1.SystemProgram.programId,
|
|
189
|
+
userPosition,
|
|
190
|
+
})
|
|
191
|
+
.rpc();
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
exports.TradingModule = TradingModule;
|
|
195
|
+
//# sourceMappingURL=trading.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trading.js","sourceRoot":"","sources":["../../src/instructions/trading.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Program } from "@coral-xyz/anchor";
|
|
2
|
+
import { PublicKey } from "@solana/web3.js";
|
|
3
|
+
import { PredMarket } from "../idl/pred_market";
|
|
4
|
+
export interface VoteResolutionParams {
|
|
5
|
+
market: PublicKey;
|
|
6
|
+
index?: number;
|
|
7
|
+
vote: "yes" | "no";
|
|
8
|
+
}
|
|
9
|
+
export declare class VoteResolutionModule {
|
|
10
|
+
private readonly program;
|
|
11
|
+
/** @internal */
|
|
12
|
+
constructor(program: Program<PredMarket>);
|
|
13
|
+
/** @internal */
|
|
14
|
+
private getLeg;
|
|
15
|
+
/** Cast a vote on market resolution (WalletVoteResolver only) */
|
|
16
|
+
voteResolution(params: VoteResolutionParams): Promise<string>;
|
|
17
|
+
/** Finalize vote resolution after deadline (anyone can call) */
|
|
18
|
+
finalizeVoteResolution(market: PublicKey, index?: number): Promise<string>;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=vote-resolution.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vote-resolution.d.ts","sourceRoot":"","sources":["../../src/instructions/vote-resolution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAM,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAiB,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAIhD,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC;CACpB;AAED,qBAAa,oBAAoB;IAEnB,OAAO,CAAC,QAAQ,CAAC,OAAO;IADpC,gBAAgB;gBACa,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC;IAEzD,gBAAgB;YACF,MAAM;IAMpB,iEAAiE;IAC3D,cAAc,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC;IAyBnE,gEAAgE;IAC1D,sBAAsB,CAC1B,MAAM,EAAE,SAAS,EACjB,KAAK,GAAE,MAAU,GAChB,OAAO,CAAC,MAAM,CAAC;CAoBnB"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.VoteResolutionModule = void 0;
|
|
4
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
5
|
+
const pda_1 = require("../pda");
|
|
6
|
+
const market_1 = require("../accounts/market");
|
|
7
|
+
class VoteResolutionModule {
|
|
8
|
+
/** @internal */
|
|
9
|
+
constructor(program) {
|
|
10
|
+
this.program = program;
|
|
11
|
+
}
|
|
12
|
+
/** @internal */
|
|
13
|
+
async getLeg(market, index) {
|
|
14
|
+
const m = await (0, market_1.fetchMarket)(this.program, market);
|
|
15
|
+
if (!m)
|
|
16
|
+
throw new Error(`Market not found: ${market.toBase58()}`);
|
|
17
|
+
return { market: m, leg: m.legs[index] };
|
|
18
|
+
}
|
|
19
|
+
/** Cast a vote on market resolution (WalletVoteResolver only) */
|
|
20
|
+
async voteResolution(params) {
|
|
21
|
+
const index = params.index ?? 0;
|
|
22
|
+
const user = this.program.provider.publicKey;
|
|
23
|
+
const { market, leg } = await this.getLeg(params.market, index);
|
|
24
|
+
const [voteStatePda] = (0, pda_1.getVoteStatePda)(this.program.programId, params.market, index);
|
|
25
|
+
const vote = params.vote === "yes" ? 1 : 2;
|
|
26
|
+
return this.program.methods
|
|
27
|
+
.voteResolution(index, { vote })
|
|
28
|
+
.accounts({
|
|
29
|
+
voter: user,
|
|
30
|
+
market: params.market,
|
|
31
|
+
marketInfo: market.marketInfo,
|
|
32
|
+
yesOrderBook: leg.yesOrderBook,
|
|
33
|
+
noOrderBook: leg.noOrderBook,
|
|
34
|
+
voteState: voteStatePda,
|
|
35
|
+
systemProgram: web3_js_1.SystemProgram.programId,
|
|
36
|
+
})
|
|
37
|
+
.rpc();
|
|
38
|
+
}
|
|
39
|
+
/** Finalize vote resolution after deadline (anyone can call) */
|
|
40
|
+
async finalizeVoteResolution(market, index = 0) {
|
|
41
|
+
const { market: mkt, leg } = await this.getLeg(market, index);
|
|
42
|
+
const [voteStatePda] = (0, pda_1.getVoteStatePda)(this.program.programId, market, index);
|
|
43
|
+
return this.program.methods
|
|
44
|
+
.finalizeVoteResolution(index)
|
|
45
|
+
.accounts({
|
|
46
|
+
payer: this.program.provider.publicKey,
|
|
47
|
+
market,
|
|
48
|
+
marketInfo: mkt.marketInfo,
|
|
49
|
+
yesOrderBook: leg.yesOrderBook,
|
|
50
|
+
noOrderBook: leg.noOrderBook,
|
|
51
|
+
voteState: voteStatePda,
|
|
52
|
+
systemProgram: web3_js_1.SystemProgram.programId,
|
|
53
|
+
})
|
|
54
|
+
.rpc();
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
exports.VoteResolutionModule = VoteResolutionModule;
|
|
58
|
+
//# sourceMappingURL=vote-resolution.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vote-resolution.js","sourceRoot":"","sources":["../../src/instructions/vote-resolution.ts"],"names":[],"mappings":";;;AACA,6CAA2D;AAE3D,gCAAyC;AACzC,+CAAiD;AAQjD,MAAa,oBAAoB;IAC/B,gBAAgB;IAChB,YAA6B,OAA4B;QAA5B,YAAO,GAAP,OAAO,CAAqB;IAAG,CAAC;IAE7D,gBAAgB;IACR,KAAK,CAAC,MAAM,CAAC,MAAiB,EAAE,KAAa;QACnD,MAAM,CAAC,GAAG,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAClD,IAAI,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAClE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;IAC3C,CAAC;IAED,iEAAiE;IACjE,KAAK,CAAC,cAAc,CAAC,MAA4B;QAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAU,CAAC;QAC9C,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAEhE,MAAM,CAAC,YAAY,CAAC,GAAG,IAAA,qBAAe,EACpC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAC7C,CAAC;QAEF,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAE3C,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO;aACxB,cAAc,CAAC,KAAK,EAAE,EAAE,IAAI,EAAS,CAAC;aACtC,QAAQ,CAAC;YACR,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,YAAY,EAAE,GAAG,CAAC,YAAY;YAC9B,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,SAAS,EAAE,YAAY;YACvB,aAAa,EAAE,uBAAa,CAAC,SAAS;SACvC,CAAC;aACD,GAAG,EAAE,CAAC;IACX,CAAC;IAED,gEAAgE;IAChE,KAAK,CAAC,sBAAsB,CAC1B,MAAiB,EACjB,QAAgB,CAAC;QAEjB,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAE9D,MAAM,CAAC,YAAY,CAAC,GAAG,IAAA,qBAAe,EACpC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CACtC,CAAC;QAEF,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO;aACxB,sBAAsB,CAAC,KAAK,CAAC;aAC7B,QAAQ,CAAC;YACR,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAU;YACvC,MAAM;YACN,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,YAAY,EAAE,GAAG,CAAC,YAAY;YAC9B,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,SAAS,EAAE,YAAY;YACvB,aAAa,EAAE,uBAAa,CAAC,SAAS;SACvC,CAAC;aACD,GAAG,EAAE,CAAC;IACX,CAAC;CACF;AA7DD,oDA6DC"}
|
package/dist/pda.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { PublicKey } from "@solana/web3.js";
|
|
2
|
+
export declare function getMarketPda(programId: PublicKey, marketId: bigint): [PublicKey, number];
|
|
3
|
+
export declare function getPositionPda(programId: PublicKey, market: PublicKey, index: number, user: PublicKey, side: number): [PublicKey, number];
|
|
4
|
+
export declare function getOrderPda(programId: PublicKey, market: PublicKey, index: number, user: PublicKey, price: number, seed: number): [PublicKey, number];
|
|
5
|
+
export declare function getVaultPda(programId: PublicKey, market: PublicKey, index: number): [PublicKey, number];
|
|
6
|
+
export declare function getCreatorVaultPda(programId: PublicKey, market: PublicKey): [PublicKey, number];
|
|
7
|
+
export declare function getResolutionProposalPda(programId: PublicKey, market: PublicKey, index: number): [PublicKey, number];
|
|
8
|
+
export declare function getBondVaultPda(programId: PublicKey, market: PublicKey, index: number): [PublicKey, number];
|
|
9
|
+
export declare function getFillLogPda(programId: PublicKey, market: PublicKey, index: number, side: number): [PublicKey, number];
|
|
10
|
+
export declare function getVoteStatePda(programId: PublicKey, market: PublicKey, index: number): [PublicKey, number];
|
|
11
|
+
//# sourceMappingURL=pda.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pda.d.ts","sourceRoot":"","sources":["../src/pda.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,wBAAgB,YAAY,CAC1B,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,MAAM,GACf,CAAC,SAAS,EAAE,MAAM,CAAC,CAOrB;AAED,wBAAgB,cAAc,CAC5B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,SAAS,EACf,IAAI,EAAE,MAAM,GACX,CAAC,SAAS,EAAE,MAAM,CAAC,CAWrB;AAED,wBAAgB,WAAW,CACzB,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,SAAS,EACf,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,GACX,CAAC,SAAS,EAAE,MAAM,CAAC,CAgBrB;AAED,wBAAgB,WAAW,CACzB,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,MAAM,GACZ,CAAC,SAAS,EAAE,MAAM,CAAC,CAKrB;AAED,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,SAAS,GAChB,CAAC,SAAS,EAAE,MAAM,CAAC,CAKrB;AAED,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,MAAM,GACZ,CAAC,SAAS,EAAE,MAAM,CAAC,CASrB;AAED,wBAAgB,eAAe,CAC7B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,MAAM,GACZ,CAAC,SAAS,EAAE,MAAM,CAAC,CAKrB;AAED,wBAAgB,aAAa,CAC3B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,GACX,CAAC,SAAS,EAAE,MAAM,CAAC,CAUrB;AAED,wBAAgB,eAAe,CAC7B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,MAAM,GACZ,CAAC,SAAS,EAAE,MAAM,CAAC,CAKrB"}
|
package/dist/pda.js
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getMarketPda = getMarketPda;
|
|
4
|
+
exports.getPositionPda = getPositionPda;
|
|
5
|
+
exports.getOrderPda = getOrderPda;
|
|
6
|
+
exports.getVaultPda = getVaultPda;
|
|
7
|
+
exports.getCreatorVaultPda = getCreatorVaultPda;
|
|
8
|
+
exports.getResolutionProposalPda = getResolutionProposalPda;
|
|
9
|
+
exports.getBondVaultPda = getBondVaultPda;
|
|
10
|
+
exports.getFillLogPda = getFillLogPda;
|
|
11
|
+
exports.getVoteStatePda = getVoteStatePda;
|
|
12
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
13
|
+
function getMarketPda(programId, marketId) {
|
|
14
|
+
const buffer = Buffer.alloc(8);
|
|
15
|
+
buffer.writeBigUInt64LE(marketId);
|
|
16
|
+
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("market"), buffer], programId);
|
|
17
|
+
}
|
|
18
|
+
function getPositionPda(programId, market, index, user, side) {
|
|
19
|
+
return web3_js_1.PublicKey.findProgramAddressSync([
|
|
20
|
+
Buffer.from("position"),
|
|
21
|
+
market.toBuffer(),
|
|
22
|
+
Buffer.from([index]),
|
|
23
|
+
user.toBuffer(),
|
|
24
|
+
Buffer.from([side]),
|
|
25
|
+
], programId);
|
|
26
|
+
}
|
|
27
|
+
function getOrderPda(programId, market, index, user, price, seed) {
|
|
28
|
+
const priceBuffer = Buffer.alloc(2);
|
|
29
|
+
priceBuffer.writeUInt16LE(price);
|
|
30
|
+
const seedBuffer = Buffer.alloc(4);
|
|
31
|
+
seedBuffer.writeUInt32LE(seed);
|
|
32
|
+
return web3_js_1.PublicKey.findProgramAddressSync([
|
|
33
|
+
Buffer.from("order"),
|
|
34
|
+
market.toBuffer(),
|
|
35
|
+
Buffer.from([index]),
|
|
36
|
+
user.toBuffer(),
|
|
37
|
+
priceBuffer,
|
|
38
|
+
seedBuffer,
|
|
39
|
+
], programId);
|
|
40
|
+
}
|
|
41
|
+
function getVaultPda(programId, market, index) {
|
|
42
|
+
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("vault"), market.toBuffer(), Buffer.from([index])], programId);
|
|
43
|
+
}
|
|
44
|
+
function getCreatorVaultPda(programId, market) {
|
|
45
|
+
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("creator-vault"), market.toBuffer()], programId);
|
|
46
|
+
}
|
|
47
|
+
function getResolutionProposalPda(programId, market, index) {
|
|
48
|
+
return web3_js_1.PublicKey.findProgramAddressSync([
|
|
49
|
+
Buffer.from("resolution_proposal"),
|
|
50
|
+
market.toBuffer(),
|
|
51
|
+
Buffer.from([index]),
|
|
52
|
+
], programId);
|
|
53
|
+
}
|
|
54
|
+
function getBondVaultPda(programId, market, index) {
|
|
55
|
+
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("bond_vault"), market.toBuffer(), Buffer.from([index])], programId);
|
|
56
|
+
}
|
|
57
|
+
function getFillLogPda(programId, market, index, side) {
|
|
58
|
+
return web3_js_1.PublicKey.findProgramAddressSync([
|
|
59
|
+
Buffer.from("fill_log"),
|
|
60
|
+
market.toBuffer(),
|
|
61
|
+
Buffer.from([index]),
|
|
62
|
+
Buffer.from([side]),
|
|
63
|
+
], programId);
|
|
64
|
+
}
|
|
65
|
+
function getVoteStatePda(programId, market, index) {
|
|
66
|
+
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("vote_state"), market.toBuffer(), Buffer.from([index])], programId);
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=pda.js.map
|
package/dist/pda.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pda.js","sourceRoot":"","sources":["../src/pda.ts"],"names":[],"mappings":"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"}
|
package/dist/price.d.ts
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { BN } from "@coral-xyz/anchor";
|
|
2
|
+
/** Full price: YES + NO = 1000 ticks = $1.00 */
|
|
3
|
+
export declare const FULL_PRICE = 1000;
|
|
4
|
+
/** Half price: $0.50 (used for split outcomes) */
|
|
5
|
+
export declare const HALF_PRICE = 500;
|
|
6
|
+
/**
|
|
7
|
+
* Cost in USDC base units for one share at a given tick price.
|
|
8
|
+
* E.g., tick 500 = $0.50 = 500,000 base units per share.
|
|
9
|
+
*/
|
|
10
|
+
export declare function costPerShare(priceTick: number): bigint;
|
|
11
|
+
/**
|
|
12
|
+
* Calculate how many shares can be bought with a given USDC amount at a given tick.
|
|
13
|
+
*/
|
|
14
|
+
export declare function usdcToShares(usdcBaseUnits: bigint, priceTick: number): bigint;
|
|
15
|
+
/**
|
|
16
|
+
* Calculate the USDC cost for a given number of shares at a given tick.
|
|
17
|
+
*/
|
|
18
|
+
export declare function sharesToUsdc(shares: bigint, priceTick: number): bigint;
|
|
19
|
+
/**
|
|
20
|
+
* Complement price: if YES is at price X, NO is at (1000 - X).
|
|
21
|
+
* YES + NO always equals $1.00.
|
|
22
|
+
*/
|
|
23
|
+
export declare function complementPrice(priceTick: number): number;
|
|
24
|
+
/**
|
|
25
|
+
* Convert a tick price (1-999) to a dollar amount.
|
|
26
|
+
* E.g., 500 -> 0.50
|
|
27
|
+
*/
|
|
28
|
+
export declare function tickToPrice(priceTick: number): number;
|
|
29
|
+
/**
|
|
30
|
+
* Convert a dollar amount to a tick price.
|
|
31
|
+
* E.g., 0.50 -> 500
|
|
32
|
+
*/
|
|
33
|
+
export declare function priceToTick(price: number): number;
|
|
34
|
+
/**
|
|
35
|
+
* Check if a price tick is valid (between 1 and 999 inclusive).
|
|
36
|
+
*/
|
|
37
|
+
export declare function isValidPrice(priceTick: number): boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Format USDC base units to a display string.
|
|
40
|
+
* E.g., 1_500_000n -> "$1.50"
|
|
41
|
+
*/
|
|
42
|
+
export declare function formatUsdc(baseUnits: bigint | BN): string;
|
|
43
|
+
/**
|
|
44
|
+
* Parse a display amount to USDC base units.
|
|
45
|
+
* E.g., "1.50" or 1.5 -> 1_500_000n
|
|
46
|
+
*/
|
|
47
|
+
export declare function parseUsdc(displayAmount: string | number): bigint;
|
|
48
|
+
//# sourceMappingURL=price.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"price.d.ts","sourceRoot":"","sources":["../src/price.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAGvC,gDAAgD;AAChD,eAAO,MAAM,UAAU,OAAO,CAAC;AAE/B,kDAAkD;AAClD,eAAO,MAAM,UAAU,MAAM,CAAC;AAE9B;;;GAGG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAE7E;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAEtE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,EAAE,GAAG,MAAM,CAQzD;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAUhE"}
|
package/dist/price.js
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HALF_PRICE = exports.FULL_PRICE = void 0;
|
|
4
|
+
exports.costPerShare = costPerShare;
|
|
5
|
+
exports.usdcToShares = usdcToShares;
|
|
6
|
+
exports.sharesToUsdc = sharesToUsdc;
|
|
7
|
+
exports.complementPrice = complementPrice;
|
|
8
|
+
exports.tickToPrice = tickToPrice;
|
|
9
|
+
exports.priceToTick = priceToTick;
|
|
10
|
+
exports.isValidPrice = isValidPrice;
|
|
11
|
+
exports.formatUsdc = formatUsdc;
|
|
12
|
+
exports.parseUsdc = parseUsdc;
|
|
13
|
+
const constants_1 = require("./constants");
|
|
14
|
+
/** Full price: YES + NO = 1000 ticks = $1.00 */
|
|
15
|
+
exports.FULL_PRICE = 1000;
|
|
16
|
+
/** Half price: $0.50 (used for split outcomes) */
|
|
17
|
+
exports.HALF_PRICE = 500;
|
|
18
|
+
/**
|
|
19
|
+
* Cost in USDC base units for one share at a given tick price.
|
|
20
|
+
* E.g., tick 500 = $0.50 = 500,000 base units per share.
|
|
21
|
+
*/
|
|
22
|
+
function costPerShare(priceTick) {
|
|
23
|
+
return BigInt(priceTick) * BigInt(1000);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Calculate how many shares can be bought with a given USDC amount at a given tick.
|
|
27
|
+
*/
|
|
28
|
+
function usdcToShares(usdcBaseUnits, priceTick) {
|
|
29
|
+
return usdcBaseUnits / costPerShare(priceTick);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Calculate the USDC cost for a given number of shares at a given tick.
|
|
33
|
+
*/
|
|
34
|
+
function sharesToUsdc(shares, priceTick) {
|
|
35
|
+
return shares * costPerShare(priceTick);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Complement price: if YES is at price X, NO is at (1000 - X).
|
|
39
|
+
* YES + NO always equals $1.00.
|
|
40
|
+
*/
|
|
41
|
+
function complementPrice(priceTick) {
|
|
42
|
+
return exports.FULL_PRICE - priceTick;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Convert a tick price (1-999) to a dollar amount.
|
|
46
|
+
* E.g., 500 -> 0.50
|
|
47
|
+
*/
|
|
48
|
+
function tickToPrice(priceTick) {
|
|
49
|
+
return priceTick / exports.FULL_PRICE;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Convert a dollar amount to a tick price.
|
|
53
|
+
* E.g., 0.50 -> 500
|
|
54
|
+
*/
|
|
55
|
+
function priceToTick(price) {
|
|
56
|
+
return Math.round(price * exports.FULL_PRICE);
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Check if a price tick is valid (between 1 and 999 inclusive).
|
|
60
|
+
*/
|
|
61
|
+
function isValidPrice(priceTick) {
|
|
62
|
+
return Number.isInteger(priceTick) && priceTick >= 1 && priceTick <= 999;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Format USDC base units to a display string.
|
|
66
|
+
* E.g., 1_500_000n -> "$1.50"
|
|
67
|
+
*/
|
|
68
|
+
function formatUsdc(baseUnits) {
|
|
69
|
+
const units = typeof baseUnits === "bigint" ? baseUnits : BigInt(baseUnits.toString());
|
|
70
|
+
const divisor = BigInt(10 ** constants_1.USDC_DECIMALS);
|
|
71
|
+
const whole = units / divisor;
|
|
72
|
+
const frac = units % divisor;
|
|
73
|
+
const fracStr = frac.toString().padStart(constants_1.USDC_DECIMALS, "0").slice(0, 2);
|
|
74
|
+
return `$${whole}.${fracStr}`;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Parse a display amount to USDC base units.
|
|
78
|
+
* E.g., "1.50" or 1.5 -> 1_500_000n
|
|
79
|
+
*/
|
|
80
|
+
function parseUsdc(displayAmount) {
|
|
81
|
+
const str = typeof displayAmount === "string"
|
|
82
|
+
? displayAmount.replace("$", "")
|
|
83
|
+
: displayAmount.toString();
|
|
84
|
+
const parts = str.split(".");
|
|
85
|
+
const whole = BigInt(parts[0] || "0");
|
|
86
|
+
const fracStr = (parts[1] || "0").padEnd(constants_1.USDC_DECIMALS, "0").slice(0, constants_1.USDC_DECIMALS);
|
|
87
|
+
const frac = BigInt(fracStr);
|
|
88
|
+
return whole * BigInt(10 ** constants_1.USDC_DECIMALS) + frac;
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=price.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"price.js","sourceRoot":"","sources":["../src/price.ts"],"names":[],"mappings":";;;AAaA,oCAEC;AAKD,oCAEC;AAKD,oCAEC;AAMD,0CAEC;AAMD,kCAEC;AAMD,kCAEC;AAKD,oCAEC;AAMD,gCAQC;AAMD,8BAUC;AAzFD,2CAA4C;AAE5C,gDAAgD;AACnC,QAAA,UAAU,GAAG,IAAI,CAAC;AAE/B,kDAAkD;AACrC,QAAA,UAAU,GAAG,GAAG,CAAC;AAE9B;;;GAGG;AACH,SAAgB,YAAY,CAAC,SAAiB;IAC5C,OAAO,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,SAAgB,YAAY,CAAC,aAAqB,EAAE,SAAiB;IACnE,OAAO,aAAa,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,SAAgB,YAAY,CAAC,MAAc,EAAE,SAAiB;IAC5D,OAAO,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;AAC1C,CAAC;AAED;;;GAGG;AACH,SAAgB,eAAe,CAAC,SAAiB;IAC/C,OAAO,kBAAU,GAAG,SAAS,CAAC;AAChC,CAAC;AAED;;;GAGG;AACH,SAAgB,WAAW,CAAC,SAAiB;IAC3C,OAAO,SAAS,GAAG,kBAAU,CAAC;AAChC,CAAC;AAED;;;GAGG;AACH,SAAgB,WAAW,CAAC,KAAa;IACvC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,kBAAU,CAAC,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,SAAgB,YAAY,CAAC,SAAiB;IAC5C,OAAO,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,CAAC,IAAI,SAAS,IAAI,GAAG,CAAC;AAC3E,CAAC;AAED;;;GAGG;AACH,SAAgB,UAAU,CAAC,SAAsB;IAC/C,MAAM,KAAK,GACT,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC3E,MAAM,OAAO,GAAG,MAAM,CAAC,EAAE,IAAI,yBAAa,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,KAAK,GAAG,OAAO,CAAC;IAC9B,MAAM,IAAI,GAAG,KAAK,GAAG,OAAO,CAAC;IAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAa,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACzE,OAAO,IAAI,KAAK,IAAI,OAAO,EAAE,CAAC;AAChC,CAAC;AAED;;;GAGG;AACH,SAAgB,SAAS,CAAC,aAA8B;IACtD,MAAM,GAAG,GACP,OAAO,aAAa,KAAK,QAAQ;QAC/B,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;QAChC,CAAC,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;IAC/B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,yBAAa,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,yBAAa,CAAC,CAAC;IACrF,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAC7B,OAAO,KAAK,GAAG,MAAM,CAAC,EAAE,IAAI,yBAAa,CAAC,GAAG,IAAI,CAAC;AACpD,CAAC"}
|