@sly-rentals/core 1.1.2 → 2.0.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/api.json +12242 -9231
- package/dist/cjs/calculator/ContestTimeline.js +396 -0
- package/dist/cjs/calculator/ContestTimeline.js.map +1 -0
- package/dist/cjs/calculator/MinBidChart.js +419 -0
- package/dist/cjs/calculator/MinBidChart.js.map +1 -0
- package/dist/cjs/calculator/dom.js +39 -0
- package/dist/cjs/calculator/dom.js.map +1 -0
- package/dist/cjs/calculator/emitter.js +36 -0
- package/dist/cjs/calculator/emitter.js.map +1 -0
- package/dist/cjs/calculator/index.js +20 -0
- package/dist/cjs/calculator/index.js.map +1 -0
- package/dist/cjs/cost/constants.js +54 -5
- package/dist/cjs/cost/constants.js.map +1 -1
- package/dist/cjs/cost/estimate.js +7 -4
- package/dist/cjs/cost/estimate.js.map +1 -1
- package/dist/cjs/cost/estimate.test.js +16 -4
- package/dist/cjs/cost/estimate.test.js.map +1 -1
- package/dist/cjs/cost/index.js +32 -17
- package/dist/cjs/cost/index.js.map +1 -1
- package/dist/cjs/cost/sizes.js +20 -3
- package/dist/cjs/cost/sizes.js.map +1 -1
- package/dist/cjs/instructions/acceptRental.js +39 -53
- package/dist/cjs/instructions/acceptRental.js.map +1 -1
- package/dist/cjs/instructions/closeContract.js +18 -50
- package/dist/cjs/instructions/closeContract.js.map +1 -1
- package/dist/cjs/instructions/closeRental.js +19 -15
- package/dist/cjs/instructions/closeRental.js.map +1 -1
- package/dist/cjs/instructions/createContract.js +2 -4
- package/dist/cjs/instructions/createContract.js.map +1 -1
- package/dist/cjs/instructions/createContractThread.js +1 -2
- package/dist/cjs/instructions/createContractThread.js.map +1 -1
- package/dist/cjs/instructions/index.js +65 -42
- package/dist/cjs/instructions/index.js.map +1 -1
- package/dist/cjs/instructions/reserveRental.js +34 -46
- package/dist/cjs/instructions/reserveRental.js.map +1 -1
- package/dist/cjs/kit/index.js +5 -27
- package/dist/cjs/kit/index.js.map +1 -1
- package/dist/cjs/legacy/index.js +6 -3
- package/dist/cjs/legacy/index.js.map +1 -1
- package/dist/cjs/package.json +1 -1
- package/dist/cjs/react/ContestTimeline.js +59 -0
- package/dist/cjs/react/ContestTimeline.js.map +1 -0
- package/dist/cjs/react/MinBidChart.js +34 -0
- package/dist/cjs/react/MinBidChart.js.map +1 -0
- package/dist/cjs/react/index.js +18 -0
- package/dist/cjs/react/index.js.map +1 -0
- package/dist/cjs/utils/bidMath.js +6 -115
- package/dist/cjs/utils/bidMath.js.map +1 -1
- package/dist/cjs/utils/contestChain.js +199 -0
- package/dist/cjs/utils/contestChain.js.map +1 -0
- package/dist/cjs/utils/contractSnapshot.js +207 -0
- package/dist/cjs/utils/contractSnapshot.js.map +1 -0
- package/dist/cjs/utils/contractSnapshot.test.js +247 -0
- package/dist/cjs/utils/contractSnapshot.test.js.map +1 -0
- package/dist/cjs/utils/index.js +8 -3
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/esm/calculator/ContestTimeline.js +392 -0
- package/dist/esm/calculator/ContestTimeline.js.map +1 -0
- package/dist/esm/calculator/MinBidChart.js +412 -0
- package/dist/esm/calculator/MinBidChart.js.map +1 -0
- package/dist/esm/calculator/dom.js +35 -0
- package/dist/esm/calculator/dom.js.map +1 -0
- package/dist/esm/calculator/emitter.js +32 -0
- package/dist/esm/calculator/emitter.js.map +1 -0
- package/dist/esm/calculator/index.js +13 -0
- package/dist/esm/calculator/index.js.map +1 -0
- package/dist/esm/cost/constants.js +52 -4
- package/dist/esm/cost/constants.js.map +1 -1
- package/dist/esm/cost/estimate.js +9 -6
- package/dist/esm/cost/estimate.js.map +1 -1
- package/dist/esm/cost/estimate.test.js +18 -6
- package/dist/esm/cost/estimate.test.js.map +1 -1
- package/dist/esm/cost/index.js +13 -3
- package/dist/esm/cost/index.js.map +1 -1
- package/dist/esm/cost/sizes.js +19 -2
- package/dist/esm/cost/sizes.js.map +1 -1
- package/dist/esm/instructions/acceptRental.js +40 -54
- package/dist/esm/instructions/acceptRental.js.map +1 -1
- package/dist/esm/instructions/closeContract.js +16 -15
- package/dist/esm/instructions/closeContract.js.map +1 -1
- package/dist/esm/instructions/closeRental.js +20 -16
- package/dist/esm/instructions/closeRental.js.map +1 -1
- package/dist/esm/instructions/createContract.js +2 -4
- package/dist/esm/instructions/createContract.js.map +1 -1
- package/dist/esm/instructions/createContractThread.js +2 -3
- package/dist/esm/instructions/createContractThread.js.map +1 -1
- package/dist/esm/instructions/index.js +36 -28
- package/dist/esm/instructions/index.js.map +1 -1
- package/dist/esm/instructions/reserveRental.js +34 -46
- package/dist/esm/instructions/reserveRental.js.map +1 -1
- package/dist/esm/kit/index.js +4 -4
- package/dist/esm/kit/index.js.map +1 -1
- package/dist/esm/legacy/index.js +5 -2
- package/dist/esm/legacy/index.js.map +1 -1
- package/dist/esm/package.json +1 -1
- package/dist/esm/react/ContestTimeline.js +56 -0
- package/dist/esm/react/ContestTimeline.js.map +1 -0
- package/dist/esm/react/MinBidChart.js +30 -0
- package/dist/esm/react/MinBidChart.js.map +1 -0
- package/dist/esm/react/index.js +12 -0
- package/dist/esm/react/index.js.map +1 -0
- package/dist/esm/utils/bidMath.js +6 -114
- package/dist/esm/utils/bidMath.js.map +1 -1
- package/dist/esm/utils/contestChain.js +191 -0
- package/dist/esm/utils/contestChain.js.map +1 -0
- package/dist/esm/utils/contractSnapshot.js +201 -0
- package/dist/esm/utils/contractSnapshot.js.map +1 -0
- package/dist/esm/utils/contractSnapshot.test.js +245 -0
- package/dist/esm/utils/contractSnapshot.test.js.map +1 -0
- package/dist/esm/utils/index.js +4 -2
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/types/calculator/ContestTimeline.d.ts +69 -0
- package/dist/types/calculator/ContestTimeline.d.ts.map +1 -0
- package/dist/types/calculator/MinBidChart.d.ts +73 -0
- package/dist/types/calculator/MinBidChart.d.ts.map +1 -0
- package/dist/types/calculator/dom.d.ts +16 -0
- package/dist/types/calculator/dom.d.ts.map +1 -0
- package/dist/types/calculator/emitter.d.ts +13 -0
- package/dist/types/calculator/emitter.d.ts.map +1 -0
- package/dist/types/calculator/index.d.ts +13 -0
- package/dist/types/calculator/index.d.ts.map +1 -0
- package/dist/types/cost/constants.d.ts +49 -4
- package/dist/types/cost/constants.d.ts.map +1 -1
- package/dist/types/cost/estimate.d.ts +12 -1
- package/dist/types/cost/estimate.d.ts.map +1 -1
- package/dist/types/cost/index.d.ts +13 -3
- package/dist/types/cost/index.d.ts.map +1 -1
- package/dist/types/cost/sizes.d.ts +19 -2
- package/dist/types/cost/sizes.d.ts.map +1 -1
- package/dist/types/instructions/acceptRental.d.ts +8 -0
- package/dist/types/instructions/acceptRental.d.ts.map +1 -1
- package/dist/types/instructions/closeContract.d.ts +9 -0
- package/dist/types/instructions/closeContract.d.ts.map +1 -1
- package/dist/types/instructions/closeRental.d.ts +8 -0
- package/dist/types/instructions/closeRental.d.ts.map +1 -1
- package/dist/types/instructions/createContract.d.ts.map +1 -1
- package/dist/types/instructions/index.d.ts +36 -28
- package/dist/types/instructions/index.d.ts.map +1 -1
- package/dist/types/instructions/reserveRental.d.ts +8 -0
- package/dist/types/instructions/reserveRental.d.ts.map +1 -1
- package/dist/types/kit/index.d.ts +0 -2
- package/dist/types/kit/index.d.ts.map +1 -1
- package/dist/types/legacy/index.d.ts +1 -2
- package/dist/types/legacy/index.d.ts.map +1 -1
- package/dist/types/react/ContestTimeline.d.ts +17 -0
- package/dist/types/react/ContestTimeline.d.ts.map +1 -0
- package/dist/types/react/MinBidChart.d.ts +12 -0
- package/dist/types/react/MinBidChart.d.ts.map +1 -0
- package/dist/types/react/index.d.ts +12 -0
- package/dist/types/react/index.d.ts.map +1 -0
- package/dist/types/utils/bidMath.d.ts +6 -44
- package/dist/types/utils/bidMath.d.ts.map +1 -1
- package/dist/types/utils/contestChain.d.ts +118 -0
- package/dist/types/utils/contestChain.d.ts.map +1 -0
- package/dist/types/utils/contractSnapshot.d.ts +123 -0
- package/dist/types/utils/contractSnapshot.d.ts.map +1 -0
- package/dist/types/utils/contractSnapshot.test.d.ts +2 -0
- package/dist/types/utils/contractSnapshot.test.d.ts.map +1 -0
- package/dist/types/utils/index.d.ts +2 -1
- package/dist/types/utils/index.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/package.json +15 -1
|
@@ -20,7 +20,7 @@ import { deriveContractThread, deriveFiber } from '../pda/thread';
|
|
|
20
20
|
import { deriveRentalAuthority } from '../pda/srsly';
|
|
21
21
|
import { normalizeSchedule } from '../params/schedule';
|
|
22
22
|
import { convertSol } from '../params/sol';
|
|
23
|
-
import {
|
|
23
|
+
import { computeThreadLamports, DEFAULT_EXECUTION_BUDGET } from '../cost/constants';
|
|
24
24
|
/**
|
|
25
25
|
* Set up the per-contract automation thread that processes payments and
|
|
26
26
|
* lifecycle ticks. Thread starts paused; the rental_close and
|
|
@@ -65,8 +65,7 @@ export async function createContractThread(params, config) {
|
|
|
65
65
|
owner: ownerAddress,
|
|
66
66
|
contractTokenAccount: contractAccount.data.managedTokenAccount,
|
|
67
67
|
sageProgram: address(addresses.sage),
|
|
68
|
-
lamports:
|
|
69
|
-
(params.lamports ? convertSol(params.lamports) : DEFAULT_EXECUTION_BUDGET),
|
|
68
|
+
lamports: computeThreadLamports(params.lamports ? convertSol(params.lamports) : DEFAULT_EXECUTION_BUDGET),
|
|
70
69
|
paymentsFreq,
|
|
71
70
|
}, { programAddress });
|
|
72
71
|
// If active rental exists, append starbase + starbasePlayer as remaining_accounts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createContractThread.js","sourceRoot":"","sources":["../../../src/instructions/createContractThread.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,OAAO,EAAgB,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,uCAAuC,EAAE,MAAM,kCAAkC,CAAC;AAC3F,OAAO,EAAE,WAAW,EAAE,YAAY,EAAkB,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAwB,MAAM,iBAAiB,CAAC;AAC9F,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAsB,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAiB,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"createContractThread.js","sourceRoot":"","sources":["../../../src/instructions/createContractThread.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,33 +1,41 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Instruction wrappers for SRSLY
|
|
3
|
+
*
|
|
4
|
+
* Re-exports are named explicitly (not `export *`) so bundlers can
|
|
5
|
+
* tree-shake per-instruction. With `export *`, Rollup must treat the
|
|
6
|
+
* barrel as a single unit and pulls every child module into the
|
|
7
|
+
* consumer's bundle even when only one instruction is used. Named
|
|
8
|
+
* re-exports + the package's `sideEffects: false` claim let bundlers
|
|
9
|
+
* drop unused instructions entirely.
|
|
10
|
+
*
|
|
3
11
|
* @module instructions
|
|
4
12
|
*/
|
|
5
|
-
export
|
|
6
|
-
export
|
|
7
|
-
export
|
|
8
|
-
export
|
|
9
|
-
export
|
|
10
|
-
export
|
|
11
|
-
export
|
|
12
|
-
export
|
|
13
|
-
export
|
|
14
|
-
export
|
|
15
|
-
export
|
|
16
|
-
export
|
|
17
|
-
export
|
|
18
|
-
export
|
|
19
|
-
export
|
|
20
|
-
export
|
|
21
|
-
export
|
|
22
|
-
export
|
|
23
|
-
export
|
|
24
|
-
export
|
|
25
|
-
export
|
|
26
|
-
export
|
|
27
|
-
export
|
|
28
|
-
export
|
|
29
|
-
export
|
|
30
|
-
export
|
|
31
|
-
export
|
|
32
|
-
export
|
|
13
|
+
export { createContract } from './createContract';
|
|
14
|
+
export { updateContract } from './updateContract';
|
|
15
|
+
export { closeContract } from './closeContract';
|
|
16
|
+
export { deleteContract } from './deleteContract';
|
|
17
|
+
export { setDelegate } from './setDelegate';
|
|
18
|
+
export { acceptRental } from './acceptRental';
|
|
19
|
+
export { cancelRental } from './cancelRental';
|
|
20
|
+
export { closeRental } from './closeRental';
|
|
21
|
+
export { releaseRental } from './releaseRental';
|
|
22
|
+
export { invalidateRental } from './invalidateRental';
|
|
23
|
+
export { reserveRental } from './reserveRental';
|
|
24
|
+
export { deleteRental } from './deleteRental';
|
|
25
|
+
export { claimBorrower } from './claimBorrower';
|
|
26
|
+
export { closeBorrower } from './closeBorrower';
|
|
27
|
+
export { createBorrower } from './createBorrower';
|
|
28
|
+
export { deleteBorrower } from './deleteBorrower';
|
|
29
|
+
export { claimContract } from './claimContract';
|
|
30
|
+
export { createContractThread } from './createContractThread';
|
|
31
|
+
export { closeContractThread } from './closeContractThread';
|
|
32
|
+
export { deleteContractThread } from './deleteContractThread';
|
|
33
|
+
export { updateContractThread } from './updateContractThread';
|
|
34
|
+
export { createConfig } from './createConfig';
|
|
35
|
+
export { updateConfig } from './updateConfig';
|
|
36
|
+
export { deleteConfig } from './deleteConfig';
|
|
37
|
+
export { createAffiliate } from './createAffiliate';
|
|
38
|
+
export { approveAffiliate } from './approveAffiliate';
|
|
39
|
+
export { removeAffiliate } from './removeAffiliate';
|
|
40
|
+
export { updateAffiliate } from './updateAffiliate';
|
|
33
41
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/instructions/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/instructions/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,cAAc,EAA6B,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,cAAc,EAA6B,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,aAAa,EAA4B,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,cAAc,EAA6B,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,WAAW,EAA0B,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,YAAY,EAA2B,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,YAAY,EAA2B,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,WAAW,EAA0B,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,aAAa,EAA4B,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAA+B,MAAM,oBAAoB,CAAC;AACnF,OAAO,EAAE,aAAa,EAA4B,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,YAAY,EAA2B,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,aAAa,EAA4B,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,aAAa,EAA4B,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,cAAc,EAA6B,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,cAAc,EAA6B,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,aAAa,EAA4B,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAmC,MAAM,wBAAwB,CAAC;AAC/F,OAAO,EAAE,mBAAmB,EAAkC,MAAM,uBAAuB,CAAC;AAC5F,OAAO,EAAE,oBAAoB,EAAmC,MAAM,wBAAwB,CAAC;AAC/F,OAAO,EAAE,oBAAoB,EAAmC,MAAM,wBAAwB,CAAC;AAC/F,OAAO,EAAE,YAAY,EAA2B,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,YAAY,EAA2B,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,YAAY,EAA2B,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,eAAe,EAA8B,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAA+B,MAAM,oBAAoB,CAAC;AACnF,OAAO,EAAE,eAAe,EAA8B,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAE,eAAe,EAA8B,MAAM,mBAAmB,CAAC"}
|
|
@@ -10,18 +10,15 @@ import { mergeConfig, getAddresses } from '../utils/config';
|
|
|
10
10
|
import { toTransactionSigner } from '../utils/signer';
|
|
11
11
|
import { convertAmount } from '../params/amount';
|
|
12
12
|
import { convertDuration } from '../params/duration';
|
|
13
|
-
import { fetchContract } from '../accounts/contract';
|
|
14
|
-
import { fetchConfig } from '../accounts/config';
|
|
15
13
|
import { fetchFleet } from '../accounts/fleet';
|
|
16
14
|
import { fetchBorrower } from '../accounts/borrower';
|
|
17
|
-
import { fetchRental } from '../accounts/rental';
|
|
18
15
|
import { RentalStatus } from '../generated/codama/types';
|
|
19
16
|
import { deriveGameAccounts } from '../pda/sage';
|
|
20
17
|
import { deriveActiveRental, deriveQueuedRental, deriveRentalAuthority, deriveBorrowerState, } from '../pda/srsly';
|
|
21
18
|
import { deriveAssociatedTokenAccount } from '../pda/token';
|
|
22
19
|
import { deriveContractThread, deriveFiber } from '../pda/thread';
|
|
23
20
|
import { prepareInstructions } from '../utils/instructions';
|
|
24
|
-
import {
|
|
21
|
+
import { resolveContractSnapshot } from '../utils/contractSnapshot';
|
|
25
22
|
import { requireValidReferrer } from '../utils/referrer';
|
|
26
23
|
/**
|
|
27
24
|
* Bid on a contract via the GBM-style reservation auction. The winner
|
|
@@ -65,30 +62,28 @@ export async function reserveRental(params, config) {
|
|
|
65
62
|
if (bidPoints > 0 && bidAtlasValue > 0n) {
|
|
66
63
|
throw new Error('bidPoints and bidAtlas are mutually exclusive');
|
|
67
64
|
}
|
|
68
|
-
// Auto-fill the ATLAS bid when the caller omitted both bid params AND
|
|
69
|
-
// there is an existing defender to outbid. First reservations allow
|
|
70
|
-
// zero-bid, so we leave those untouched.
|
|
71
|
-
const autoMinBid = params.autoMinBid ?? true;
|
|
72
|
-
if (autoMinBid && !userProvidedBid) {
|
|
73
|
-
const floor = await getMinimumBid({
|
|
74
|
-
contractAddress: params.contract,
|
|
75
|
-
rpcUrl: config?.rpcUrl,
|
|
76
|
-
});
|
|
77
|
-
if (floor.defenderBidStardust > 0n) {
|
|
78
|
-
bidAtlasValue = floor.minBidStardust;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
65
|
// Convert challenger to transaction signer
|
|
82
66
|
const challengerSigner = toTransactionSigner(params.challenger);
|
|
83
67
|
// Get network-specific addresses
|
|
84
68
|
const addresses = getAddresses(config);
|
|
85
69
|
const programAddress = address(addresses.srsly);
|
|
86
70
|
const sageProgram = address(addresses.sage);
|
|
87
|
-
//
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
71
|
+
// Single-shot fetch: config + contract + active + queued + minimumBid.
|
|
72
|
+
// Used for atlasMint, contractTokenAccount, fleet/gameId, slyvault for
|
|
73
|
+
// referrer validation, defender lookup, and auto-min-bid computation.
|
|
74
|
+
const snap = await resolveContractSnapshot({
|
|
75
|
+
contractAddress: params.contract,
|
|
76
|
+
rpcUrl: finalConfig.rpcUrl,
|
|
77
|
+
snapshot: params.snapshot,
|
|
78
|
+
});
|
|
79
|
+
const atlasMint = snap.config.data.atlasMint;
|
|
80
|
+
// Auto-fill the ATLAS bid when the caller omitted both bid params AND
|
|
81
|
+
// there is an existing defender to outbid. First reservations allow
|
|
82
|
+
// zero-bid, so we leave those untouched.
|
|
83
|
+
const autoMinBid = params.autoMinBid ?? true;
|
|
84
|
+
if (autoMinBid && !userProvidedBid && snap.minimumBid.defenderBidStardust > 0n) {
|
|
85
|
+
bidAtlasValue = snap.minimumBid.minBidStardust;
|
|
86
|
+
}
|
|
92
87
|
// Derive rental PDAs
|
|
93
88
|
const activeRental = await deriveActiveRental(params.contract);
|
|
94
89
|
const rentalState = await deriveQueuedRental(params.contract);
|
|
@@ -105,7 +100,7 @@ export async function reserveRental(params, config) {
|
|
|
105
100
|
// Convert duration to seconds
|
|
106
101
|
const durationSeconds = convertDuration(params.duration);
|
|
107
102
|
const referrer = params.referrer
|
|
108
|
-
? await requireValidReferrer(address(params.referrer), address(
|
|
103
|
+
? await requireValidReferrer(address(params.referrer), address(snap.config.data.slyvault), finalConfig.rpcUrl)
|
|
109
104
|
: undefined;
|
|
110
105
|
// Build instruction input
|
|
111
106
|
const instructionInput = {
|
|
@@ -124,33 +119,26 @@ export async function reserveRental(params, config) {
|
|
|
124
119
|
duration: BigInt(durationSeconds),
|
|
125
120
|
};
|
|
126
121
|
// If there's a current queued reservation, provide defender accounts
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
const
|
|
130
|
-
if (
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
instructionInput.defenderState = defenderBorrowerState;
|
|
142
|
-
const defenderAccount = await fetchBorrower(defenderBorrowerState, finalConfig.rpcUrl);
|
|
143
|
-
instructionInput.defenderManagedTokenAccount = defenderAccount.data.managedTokenAccount;
|
|
144
|
-
}
|
|
122
|
+
if (snap.queuedRental && snap.queuedRental.data.status === RentalStatus.Queued) {
|
|
123
|
+
const defenderBorrowerState = snap.queuedRental.data.borrowerState;
|
|
124
|
+
const challengerBorrowerState = await deriveBorrowerState(challengerSigner);
|
|
125
|
+
if (defenderBorrowerState === challengerBorrowerState) {
|
|
126
|
+
// Self-contest: challenger is the current defender.
|
|
127
|
+
// Program reuses challenger_state, but we still need defender_managed_token_account
|
|
128
|
+
// for the ATLAS refund path.
|
|
129
|
+
const challengerAccount = await fetchBorrower(challengerBorrowerState, finalConfig.rpcUrl);
|
|
130
|
+
instructionInput.defenderManagedTokenAccount = challengerAccount.data.managedTokenAccount;
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
instructionInput.defenderState = defenderBorrowerState;
|
|
134
|
+
const defenderAccount = await fetchBorrower(defenderBorrowerState, finalConfig.rpcUrl);
|
|
135
|
+
instructionInput.defenderManagedTokenAccount = defenderAccount.data.managedTokenAccount;
|
|
145
136
|
}
|
|
146
|
-
}
|
|
147
|
-
catch {
|
|
148
|
-
// Queued rental doesn't exist or is Available — no defender
|
|
149
137
|
}
|
|
150
138
|
// Derive SAGE accounts for remaining_accounts
|
|
151
139
|
const challengerProfileAddr = address(params.challengerProfile);
|
|
152
|
-
const fleetState = await fetchFleet(
|
|
153
|
-
const gameAccounts = await deriveGameAccounts(challengerProfileAddr, fleetState.faction,
|
|
140
|
+
const fleetState = await fetchFleet(snap.contract.data.fleet, finalConfig.rpcUrl);
|
|
141
|
+
const gameAccounts = await deriveGameAccounts(challengerProfileAddr, fleetState.faction, snap.contract.data.gameId);
|
|
154
142
|
// Call Codama-generated instruction
|
|
155
143
|
const kitInstruction = await getReserveRentalInstructionAsync(instructionInput, {
|
|
156
144
|
programAddress,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reserveRental.js","sourceRoot":"","sources":["../../../src/instructions/reserveRental.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,OAAO,EAAgB,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,gCAAgC,EAAE,MAAM,kCAAkC,CAAC;AACpF,OAAO,EAAE,WAAW,EAAE,YAAY,EAAkB,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAwB,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAoB,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,eAAe,EAAsB,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"reserveRental.js","sourceRoot":"","sources":["../../../src/instructions/reserveRental.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/kit/index.js
CHANGED
|
@@ -23,11 +23,11 @@ export * from '../pda';
|
|
|
23
23
|
export * from '../cost';
|
|
24
24
|
// External re-exports
|
|
25
25
|
export { claim } from '@sly-rentals/vault';
|
|
26
|
-
export * as codama from '../generated/codama';
|
|
27
|
-
export * as audit from '../audit';
|
|
28
26
|
// Event listener helpers — bubbled up from `audit` so consumers can write
|
|
29
27
|
// `import { events, onSrslyEvent, getEventsFromTx } from '@sly-rentals/core'`
|
|
30
|
-
// without the audit namespace prefix.
|
|
31
|
-
//
|
|
28
|
+
// without the audit namespace prefix. Full audit + codama surfaces stay
|
|
29
|
+
// reachable via subpath imports (`@sly-rentals/core/audit`,
|
|
30
|
+
// `@sly-rentals/core/codama`) — kept out of the main barrel so bundlers
|
|
31
|
+
// can tree-shake unused generated instruction encoders/decoders.
|
|
32
32
|
export { closeSrslyEventListener, events, getEventsFromTx, onSrslyEvent } from '../audit';
|
|
33
33
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/kit/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AAExB,sBAAsB;AACtB,OAAO,EAAE,KAAK,EAAoB,MAAM,oBAAoB,CAAC;AAE7D,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/kit/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AAExB,sBAAsB;AACtB,OAAO,EAAE,KAAK,EAAoB,MAAM,oBAAoB,CAAC;AAE7D,0EAA0E;AAC1E,8EAA8E;AAC9E,wEAAwE;AACxE,4DAA4D;AAC5D,wEAAwE;AACxE,iEAAiE;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC"}
|
package/dist/esm/legacy/index.js
CHANGED
|
@@ -29,9 +29,12 @@ export * from '../utils';
|
|
|
29
29
|
export * from '../accounts';
|
|
30
30
|
export * from '../params';
|
|
31
31
|
export * from '../pda';
|
|
32
|
+
export * from '../cost';
|
|
32
33
|
export { VERSION } from '../version';
|
|
33
|
-
|
|
34
|
-
export * as
|
|
34
|
+
// `codama` and `audit` namespaces are intentionally NOT re-exported here
|
|
35
|
+
// — `export * as` defeats tree-shaking. Import them via subpath instead:
|
|
36
|
+
// `import * as codama from '@sly-rentals/core/codama'`
|
|
37
|
+
// `import * as audit from '@sly-rentals/core/audit'`
|
|
35
38
|
export { closeSrslyEventListener, events, getEventsFromTx, onSrslyEvent } from '../audit';
|
|
36
39
|
/**
|
|
37
40
|
* Wrapper that checks for PublicKey and provides helpful error
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/legacy/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,YAAY,EAAkD,MAAM,UAAU,CAAC;AACxF,OAAO,KAAK,GAAG,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,KAAK,IAAI,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAE5D,oDAAoD;AACpD,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/legacy/index.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/package.json
CHANGED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* @purpose Thin React wrapper around the vanilla `ContestTimeline` class.
|
|
4
|
+
* Owns container ref + lifecycle; converts emitter events back into the
|
|
5
|
+
* React-style callback props (`onKnobsChange` etc.).
|
|
6
|
+
*
|
|
7
|
+
* Logic lives in `@sly-rentals/core/calculator`.
|
|
8
|
+
*/
|
|
9
|
+
import { useEffect, useLayoutEffect, useRef } from 'react';
|
|
10
|
+
import { ContestTimeline as VanillaContestTimeline, } from '../calculator';
|
|
11
|
+
export function ContestTimeline(props) {
|
|
12
|
+
const hostRef = useRef(null);
|
|
13
|
+
const instRef = useRef(null);
|
|
14
|
+
const handlersRef = useRef({
|
|
15
|
+
onKnobsChange: props.onKnobsChange,
|
|
16
|
+
onPresetChange: props.onPresetChange,
|
|
17
|
+
onCalcDefenderAtDayChange: props.onCalcDefenderAtDayChange,
|
|
18
|
+
});
|
|
19
|
+
handlersRef.current.onKnobsChange = props.onKnobsChange;
|
|
20
|
+
handlersRef.current.onPresetChange = props.onPresetChange;
|
|
21
|
+
handlersRef.current.onCalcDefenderAtDayChange = props.onCalcDefenderAtDayChange;
|
|
22
|
+
useLayoutEffect(() => {
|
|
23
|
+
if (!hostRef.current)
|
|
24
|
+
return;
|
|
25
|
+
const inst = new VanillaContestTimeline(hostRef.current, propsToVanilla(props));
|
|
26
|
+
instRef.current = inst;
|
|
27
|
+
const offKnobs = inst.on('knobsChange', next => handlersRef.current.onKnobsChange(next));
|
|
28
|
+
const offPreset = inst.on('presetChange', next => handlersRef.current.onPresetChange(next));
|
|
29
|
+
const offCalc = inst.on('calcDefenderAtDayChange', at => handlersRef.current.onCalcDefenderAtDayChange(at));
|
|
30
|
+
return () => {
|
|
31
|
+
offKnobs();
|
|
32
|
+
offPreset();
|
|
33
|
+
offCalc();
|
|
34
|
+
inst.destroy();
|
|
35
|
+
instRef.current = null;
|
|
36
|
+
};
|
|
37
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
38
|
+
}, []);
|
|
39
|
+
useEffect(() => {
|
|
40
|
+
instRef.current?.update(propsToVanilla(props));
|
|
41
|
+
}, [props]);
|
|
42
|
+
return _jsx("div", { ref: hostRef });
|
|
43
|
+
}
|
|
44
|
+
function propsToVanilla(p) {
|
|
45
|
+
return {
|
|
46
|
+
activeDays: p.activeDays,
|
|
47
|
+
nowDay: p.nowDay,
|
|
48
|
+
challengeCur: p.challengeCur,
|
|
49
|
+
knobs: p.knobs,
|
|
50
|
+
chain: p.chain,
|
|
51
|
+
preset: p.preset,
|
|
52
|
+
chainDefenderExists: p.chainDefenderExists,
|
|
53
|
+
classNames: p.classNames,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=ContestTimeline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContestTimeline.js","sourceRoot":"","sources":["../../../src/react/ContestTimeline.tsx"],"names":[],"mappings":";AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC3D,OAAO,EACL,eAAe,IAAI,sBAAsB,GAG1C,MAAM,eAAe,CAAC;AAWvB,MAAM,UAAU,eAAe,CAAC,KAA2B;IACzD,MAAM,OAAO,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,MAAM,CAAgC,IAAI,CAAC,CAAC;IAC5D,MAAM,WAAW,GAAG,MAAM,CAAC;QACzB,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,yBAAyB,EAAE,KAAK,CAAC,yBAAyB;KAC3D,CAAC,CAAC;IACH,WAAW,CAAC,OAAO,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;IACxD,WAAW,CAAC,OAAO,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC;IAC1D,WAAW,CAAC,OAAO,CAAC,yBAAyB,GAAG,KAAK,CAAC,yBAAyB,CAAC;IAEhF,eAAe,CAAC,GAAG,EAAE;QACnB,IAAI,CAAC,OAAO,CAAC,OAAO;YAAE,OAAO;QAC7B,MAAM,IAAI,GAAG,IAAI,sBAAsB,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;QAChF,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;QACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;QACzF,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,cAAc,EAAE,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5F,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,yBAAyB,EAAE,EAAE,CAAC,EAAE,CACtD,WAAW,CAAC,OAAO,CAAC,yBAAyB,CAAC,EAAE,CAAC,CAClD,CAAC;QACF,OAAO,GAAG,EAAE;YACV,QAAQ,EAAE,CAAC;YACX,SAAS,EAAE,CAAC;YACZ,OAAO,EAAE,CAAC;YACV,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;QACzB,CAAC,CAAC;QACF,uDAAuD;IACzD,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;IACjD,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,OAAO,cAAK,GAAG,EAAE,OAAO,GAAI,CAAC;AAC/B,CAAC;AAED,SAAS,cAAc,CAAC,CAAuB;IAC7C,OAAO;QACL,UAAU,EAAE,CAAC,CAAC,UAAU;QACxB,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,YAAY,EAAE,CAAC,CAAC,YAAY;QAC5B,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,mBAAmB,EAAE,CAAC,CAAC,mBAAmB;QAC1C,UAAU,EAAE,CAAC,CAAC,UAAU;KACzB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* @purpose Thin React wrapper around the vanilla `MinBidChart` class.
|
|
4
|
+
* Owns container ref + lifecycle; forwards prop changes via `.update()`.
|
|
5
|
+
*
|
|
6
|
+
* Visual + math logic lives in `@sly-rentals/core/calculator` so non-React
|
|
7
|
+
* consumers can use the same code without paying for React.
|
|
8
|
+
*/
|
|
9
|
+
import { useEffect, useLayoutEffect, useRef } from 'react';
|
|
10
|
+
import { MinBidChart as VanillaMinBidChart, DEFAULT_MIN_BID_CHART_THEME, } from '../calculator';
|
|
11
|
+
export { DEFAULT_MIN_BID_CHART_THEME };
|
|
12
|
+
export function MinBidChart(props) {
|
|
13
|
+
const hostRef = useRef(null);
|
|
14
|
+
const instRef = useRef(null);
|
|
15
|
+
useLayoutEffect(() => {
|
|
16
|
+
if (!hostRef.current)
|
|
17
|
+
return;
|
|
18
|
+
instRef.current = new VanillaMinBidChart(hostRef.current, props);
|
|
19
|
+
return () => {
|
|
20
|
+
instRef.current?.destroy();
|
|
21
|
+
instRef.current = null;
|
|
22
|
+
};
|
|
23
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
24
|
+
}, []);
|
|
25
|
+
useEffect(() => {
|
|
26
|
+
instRef.current?.update(props);
|
|
27
|
+
}, [props]);
|
|
28
|
+
return _jsx("div", { ref: hostRef });
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=MinBidChart.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MinBidChart.js","sourceRoot":"","sources":["../../../src/react/MinBidChart.tsx"],"names":[],"mappings":";AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC3D,OAAO,EACL,WAAW,IAAI,kBAAkB,EACjC,2BAA2B,GAI5B,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,2BAA2B,EAAE,CAAC;AAGvC,MAAM,UAAU,WAAW,CAAC,KAAuB;IACjD,MAAM,OAAO,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,MAAM,CAA4B,IAAI,CAAC,CAAC;IAExD,eAAe,CAAC,GAAG,EAAE;QACnB,IAAI,CAAC,OAAO,CAAC,OAAO;YAAE,OAAO;QAC7B,OAAO,CAAC,OAAO,GAAG,IAAI,kBAAkB,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACjE,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;YAC3B,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;QACzB,CAAC,CAAC;QACF,uDAAuD;IACzD,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,OAAO,cAAK,GAAG,EAAE,OAAO,GAAI,CAAC;AAC/B,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @purpose React component entry point for the SRSLY reservation
|
|
3
|
+
* calculator. Sits behind the `@sly-rentals/core/react` subpath export
|
|
4
|
+
* so non-React consumers don't pay the import cost.
|
|
5
|
+
*
|
|
6
|
+
* Pair with `@sly-rentals/core/react/styles.css` for the default
|
|
7
|
+
* SRSLY-themed look, or pass `classNames` / `theme` props for custom
|
|
8
|
+
* styling.
|
|
9
|
+
*/
|
|
10
|
+
export { MinBidChart, DEFAULT_MIN_BID_CHART_THEME, } from './MinBidChart';
|
|
11
|
+
export { ContestTimeline, } from './ContestTimeline';
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/react/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACL,WAAW,EACX,2BAA2B,GAI5B,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,eAAe,GAGhB,MAAM,mBAAmB,CAAC"}
|
|
@@ -1,19 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @purpose Reservation bid math
|
|
2
|
+
* @purpose Reservation bid math (pure formula + type)
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
4
|
+
* Mirror of the on-chain `ConfigState::bid_min_stardust` formula so UIs
|
|
5
|
+
* can preview the contest minimum-bid floor without hitting an RPC for
|
|
6
|
+
* every keystroke. Fetch-aware helpers (`getMinimumBid`,
|
|
7
|
+
* `computeMinimumBidFromSnapshot`) live in `./contractSnapshot` — they
|
|
8
|
+
* call into the pure formula here.
|
|
9
9
|
*/
|
|
10
|
-
import { fetchConfig } from '../accounts/config';
|
|
11
|
-
import { fetchContract } from '../accounts/contract';
|
|
12
|
-
import { fetchRental } from '../accounts/rental';
|
|
13
|
-
import { deriveActiveRental, deriveQueuedRental } from '../pda/srsly';
|
|
14
|
-
import { getRpcUrl } from './config';
|
|
15
|
-
import { createRpc } from './rpc';
|
|
16
|
-
const SYSTEM_PROGRAM_ID = '11111111111111111111111111111111';
|
|
17
10
|
/**
|
|
18
11
|
* Pure math: contest minimum-bid floor in stardust.
|
|
19
12
|
*
|
|
@@ -42,105 +35,4 @@ export function computeMinimumBid(args) {
|
|
|
42
35
|
const base = args.rateStardust > defenderBid ? args.rateStardust : defenderBid;
|
|
43
36
|
return (base * effBps) / 10000n;
|
|
44
37
|
}
|
|
45
|
-
/**
|
|
46
|
-
* High-level helper: compute the contest minimum bid for a contract right
|
|
47
|
-
* now (or at `now + delaySeconds`).
|
|
48
|
-
*
|
|
49
|
-
* Fetches `ConfigState`, `ContractState`, and the active/queued `RentalState`
|
|
50
|
-
* accounts, derives `closeness` from the active rental window, and returns
|
|
51
|
-
* the floor a challenger must clear plus enough context to render a UI.
|
|
52
|
-
*
|
|
53
|
-
* @example
|
|
54
|
-
* ```ts
|
|
55
|
-
* const floor = await getMinimumBid({ contractAddress: 'Abc...' });
|
|
56
|
-
* console.log('Bid at least', floor.minBidStardust, 'stardust');
|
|
57
|
-
*
|
|
58
|
-
* // Preview the floor 4 hours from now (snipe-window pricing):
|
|
59
|
-
* const later = await getMinimumBid({
|
|
60
|
-
* contractAddress: 'Abc...',
|
|
61
|
-
* delaySeconds: 4 * 60 * 60,
|
|
62
|
-
* });
|
|
63
|
-
* ```
|
|
64
|
-
*
|
|
65
|
-
* If the contract has no active rental yet, closeness = 0 and the floor
|
|
66
|
-
* collapses to the rate-bump floor (`rate × captureRate`).
|
|
67
|
-
*/
|
|
68
|
-
export async function getMinimumBid(args) {
|
|
69
|
-
const rpcUrl = args.rpcUrl ?? getRpcUrl();
|
|
70
|
-
const rpc = createRpc(rpcUrl);
|
|
71
|
-
const cfgPromise = fetchConfig(rpcUrl);
|
|
72
|
-
const contractPromise = fetchContract(args.contractAddress, rpcUrl);
|
|
73
|
-
const [cfg, contract] = await Promise.all([cfgPromise, contractPromise]);
|
|
74
|
-
const cfgData = cfg.data;
|
|
75
|
-
const contractData = contract.data;
|
|
76
|
-
const rateStardust = BigInt(contractData.rate);
|
|
77
|
-
const atlasPerPoint = args.atlasPerPoint ?? BigInt(cfgData.atlasPerPoint);
|
|
78
|
-
const stardustPerAtlas = BigInt(cfgData.stardustToAtlas);
|
|
79
|
-
const activeAddr = await deriveActiveRental(contract.address);
|
|
80
|
-
const queuedAddr = await deriveQueuedRental(contract.address);
|
|
81
|
-
// Active rental — only meaningful if the contract field points at it.
|
|
82
|
-
let activeStart = null;
|
|
83
|
-
let activeEnd = null;
|
|
84
|
-
if (contractData.activeRental && contractData.activeRental.toString() !== SYSTEM_PROGRAM_ID) {
|
|
85
|
-
try {
|
|
86
|
-
const active = await fetchRental(activeAddr, rpcUrl);
|
|
87
|
-
const a = active.data;
|
|
88
|
-
activeStart = Number(a.startTime);
|
|
89
|
-
activeEnd = Number(a.endTime);
|
|
90
|
-
}
|
|
91
|
-
catch {
|
|
92
|
-
// Account missing despite contract pointer — treat as no active rental.
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
// Queued rental — defender bid lives here if a reservation exists.
|
|
96
|
-
let defenderBidStardust = 0n;
|
|
97
|
-
if (contractData.queuedRental && contractData.queuedRental.toString() !== SYSTEM_PROGRAM_ID) {
|
|
98
|
-
try {
|
|
99
|
-
const queued = await fetchRental(queuedAddr, rpcUrl);
|
|
100
|
-
const q = queued.data;
|
|
101
|
-
const bidAtlas = BigInt(q.bidAtlas);
|
|
102
|
-
const bidPoints = BigInt(q.bidPoints);
|
|
103
|
-
// Points are 8-decimal dust; converting to stardust requires the same
|
|
104
|
-
// 8-decimal precision: stardust = points_dust * atlasPerPoint *
|
|
105
|
-
// stardustPerAtlas / 1e8. With both at 1e8 precision this collapses
|
|
106
|
-
// to points_dust * atlasPerPoint.
|
|
107
|
-
const pointsAsStardust = bidPoints > 0n ? (bidPoints * atlasPerPoint * stardustPerAtlas) / 100000000n : 0n;
|
|
108
|
-
defenderBidStardust = bidAtlas + pointsAsStardust;
|
|
109
|
-
}
|
|
110
|
-
catch {
|
|
111
|
-
// Missing queued account — leave defenderBidStardust = 0.
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
const evaluatedAtSeconds = args.nowSeconds !== undefined
|
|
115
|
-
? Math.floor(args.nowSeconds)
|
|
116
|
-
: Math.floor(Date.now() / 1000) + Math.max(0, args.delaySeconds ?? 0);
|
|
117
|
-
let closeness = 0;
|
|
118
|
-
if (activeStart !== null && activeEnd !== null && activeEnd > activeStart) {
|
|
119
|
-
const span = activeEnd - activeStart;
|
|
120
|
-
const elapsed = evaluatedAtSeconds - activeStart;
|
|
121
|
-
closeness = Math.max(0, Math.min(1, elapsed / span));
|
|
122
|
-
}
|
|
123
|
-
const minBidStardust = computeMinimumBid({
|
|
124
|
-
rateStardust,
|
|
125
|
-
defenderBidStardust,
|
|
126
|
-
contestedMultiplierMaxBps: cfgData.contestedMultiplierMaxBps,
|
|
127
|
-
captureRateBps: BigInt(cfgData.captureRateBps),
|
|
128
|
-
closenessFraction: closeness,
|
|
129
|
-
});
|
|
130
|
-
const baseStardust = rateStardust > defenderBidStardust ? rateStardust : defenderBidStardust;
|
|
131
|
-
const rampMultiplier = baseStardust > 0n ? Number(minBidStardust) / Number(baseStardust) : 1;
|
|
132
|
-
// RPC reference kept to match the codebase pattern even when unused;
|
|
133
|
-
// future refinements (e.g. fetching chain time) can plug in here.
|
|
134
|
-
void rpc;
|
|
135
|
-
return {
|
|
136
|
-
minBidStardust,
|
|
137
|
-
defenderBidStardust,
|
|
138
|
-
rateStardust,
|
|
139
|
-
closenessFraction: closeness,
|
|
140
|
-
rampMultiplier,
|
|
141
|
-
evaluatedAtSeconds,
|
|
142
|
-
activeEndSeconds: activeEnd,
|
|
143
|
-
activeStartSeconds: activeStart,
|
|
144
|
-
};
|
|
145
|
-
}
|
|
146
38
|
//# sourceMappingURL=bidMath.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bidMath.js","sourceRoot":"","sources":["../../../src/utils/bidMath.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"bidMath.js","sourceRoot":"","sources":["../../../src/utils/bidMath.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAMjC;IACC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACnE,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC;IAC5D,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC;IACrE,MAAM,QAAQ,GAAG,MAAM,GAAG,IAAI,CAAC;IAC/B,kEAAkE;IAClE,MAAM,SAAS,GAAG,MAAO,GAAG,CAAC,QAAQ,GAAG,YAAY,CAAC,GAAG,IAAI,CAAC;IAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,GAAG,MAAO,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,MAAO,CAAC;IAC7E,MAAM,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;IACvD,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,IAAI,EAAE,CAAC;IACnD,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC;IAC/E,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,MAAO,CAAC;AACnC,CAAC"}
|