@wuwei-labs/srsly 4.2.8 → 4.3.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/cjs/cost/constants.js +34 -0
- package/dist/cjs/cost/constants.js.map +1 -0
- package/dist/cjs/cost/estimate.js +128 -0
- package/dist/cjs/cost/estimate.js.map +1 -0
- package/dist/cjs/cost/estimate.test.js +145 -0
- package/dist/cjs/cost/estimate.test.js.map +1 -0
- package/dist/cjs/cost/index.js +20 -0
- package/dist/cjs/cost/index.js.map +1 -0
- package/dist/cjs/cost/sizes.js +21 -0
- package/dist/cjs/cost/sizes.js.map +1 -0
- package/dist/cjs/generated/codama/accounts/borrowerState.js +2 -2
- package/dist/cjs/generated/codama/accounts/borrowerState.js.map +1 -1
- package/dist/cjs/generated/codama/accounts/configState.js +11 -9
- package/dist/cjs/generated/codama/accounts/configState.js.map +1 -1
- package/dist/cjs/generated/codama/accounts/contractState.js +4 -0
- package/dist/cjs/generated/codama/accounts/contractState.js.map +1 -1
- package/dist/cjs/generated/codama/accounts/rentalState.js +4 -2
- package/dist/cjs/generated/codama/accounts/rentalState.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/closeRental.js +2 -2
- package/dist/cjs/generated/codama/instructions/closeRental.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/createContract.js +2 -0
- package/dist/cjs/generated/codama/instructions/createContract.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/reserveRental.js +2 -2
- package/dist/cjs/generated/codama/instructions/reserveRental.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/updateConfig.js +8 -8
- package/dist/cjs/generated/codama/instructions/updateConfig.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/updateContract.js +2 -0
- package/dist/cjs/generated/codama/instructions/updateContract.js.map +1 -1
- package/dist/cjs/generated/codama/types/index.js +1 -1
- package/dist/cjs/generated/codama/types/index.js.map +1 -1
- package/dist/cjs/generated/codama/types/rentalClosed.js +2 -2
- package/dist/cjs/generated/codama/types/rentalClosed.js.map +1 -1
- package/dist/cjs/generated/codama/types/reservationContested.js +41 -0
- package/dist/cjs/generated/codama/types/reservationContested.js.map +1 -0
- package/dist/cjs/generated/codama/types/reservationCreated.js +2 -2
- package/dist/cjs/generated/codama/types/reservationCreated.js.map +1 -1
- package/dist/cjs/instructions/createBorrower.js +1 -1
- package/dist/cjs/instructions/createContract.js +2 -1
- package/dist/cjs/instructions/createContract.js.map +1 -1
- package/dist/cjs/instructions/createContractThread.js +2 -4
- package/dist/cjs/instructions/createContractThread.js.map +1 -1
- package/dist/cjs/instructions/reserveRental.js +14 -2
- package/dist/cjs/instructions/reserveRental.js.map +1 -1
- package/dist/cjs/instructions/updateConfig.js +1 -1
- package/dist/cjs/instructions/updateConfig.js.map +1 -1
- package/dist/cjs/instructions/updateContract.js +3 -1
- package/dist/cjs/instructions/updateContract.js.map +1 -1
- package/dist/cjs/kit/index.js +1 -0
- package/dist/cjs/kit/index.js.map +1 -1
- package/dist/cjs/package.json +1 -1
- package/dist/cjs/utils/bidMath.js +154 -0
- package/dist/cjs/utils/bidMath.js.map +1 -0
- package/dist/cjs/utils/index.js +5 -1
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/esm/cost/constants.js +31 -0
- package/dist/esm/cost/constants.js.map +1 -0
- package/dist/esm/cost/estimate.js +122 -0
- package/dist/esm/cost/estimate.js.map +1 -0
- package/dist/esm/cost/estimate.test.js +143 -0
- package/dist/esm/cost/estimate.test.js.map +1 -0
- package/dist/esm/cost/index.js +4 -0
- package/dist/esm/cost/index.js.map +1 -0
- package/dist/esm/cost/sizes.js +18 -0
- package/dist/esm/cost/sizes.js.map +1 -0
- package/dist/esm/generated/codama/accounts/borrowerState.js +3 -3
- package/dist/esm/generated/codama/accounts/borrowerState.js.map +1 -1
- package/dist/esm/generated/codama/accounts/configState.js +11 -9
- package/dist/esm/generated/codama/accounts/configState.js.map +1 -1
- package/dist/esm/generated/codama/accounts/contractState.js +4 -0
- package/dist/esm/generated/codama/accounts/contractState.js.map +1 -1
- package/dist/esm/generated/codama/accounts/rentalState.js +4 -2
- package/dist/esm/generated/codama/accounts/rentalState.js.map +1 -1
- package/dist/esm/generated/codama/instructions/closeRental.js +2 -2
- package/dist/esm/generated/codama/instructions/closeRental.js.map +1 -1
- package/dist/esm/generated/codama/instructions/createContract.js +3 -1
- package/dist/esm/generated/codama/instructions/createContract.js.map +1 -1
- package/dist/esm/generated/codama/instructions/reserveRental.js +3 -3
- package/dist/esm/generated/codama/instructions/reserveRental.js.map +1 -1
- package/dist/esm/generated/codama/instructions/updateConfig.js +8 -8
- package/dist/esm/generated/codama/instructions/updateConfig.js.map +1 -1
- package/dist/esm/generated/codama/instructions/updateContract.js +3 -1
- package/dist/esm/generated/codama/instructions/updateContract.js.map +1 -1
- package/dist/esm/generated/codama/types/index.js +1 -1
- package/dist/esm/generated/codama/types/index.js.map +1 -1
- package/dist/esm/generated/codama/types/rentalClosed.js +3 -3
- package/dist/esm/generated/codama/types/rentalClosed.js.map +1 -1
- package/dist/esm/generated/codama/types/reservationContested.js +36 -0
- package/dist/esm/generated/codama/types/reservationContested.js.map +1 -0
- package/dist/esm/generated/codama/types/reservationCreated.js +3 -3
- package/dist/esm/generated/codama/types/reservationCreated.js.map +1 -1
- package/dist/esm/instructions/createBorrower.js +1 -1
- package/dist/esm/instructions/createContract.js +2 -1
- package/dist/esm/instructions/createContract.js.map +1 -1
- package/dist/esm/instructions/createContractThread.js +1 -3
- package/dist/esm/instructions/createContractThread.js.map +1 -1
- package/dist/esm/instructions/reserveRental.js +14 -2
- package/dist/esm/instructions/reserveRental.js.map +1 -1
- package/dist/esm/instructions/updateConfig.js +1 -1
- package/dist/esm/instructions/updateConfig.js.map +1 -1
- package/dist/esm/instructions/updateContract.js +3 -1
- package/dist/esm/instructions/updateContract.js.map +1 -1
- package/dist/esm/kit/index.js +1 -0
- package/dist/esm/kit/index.js.map +1 -1
- package/dist/esm/package.json +1 -1
- package/dist/esm/utils/bidMath.js +150 -0
- package/dist/esm/utils/bidMath.js.map +1 -0
- package/dist/esm/utils/index.js +2 -0
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/idl/srsly.json +133 -49
- package/dist/types/cost/constants.d.ts +31 -0
- package/dist/types/cost/constants.d.ts.map +1 -0
- package/dist/types/cost/estimate.d.ts +94 -0
- package/dist/types/cost/estimate.d.ts.map +1 -0
- package/dist/types/cost/estimate.test.d.ts +2 -0
- package/dist/types/cost/estimate.test.d.ts.map +1 -0
- package/dist/types/cost/index.d.ts +4 -0
- package/dist/types/cost/index.d.ts.map +1 -0
- package/dist/types/cost/sizes.d.ts +18 -0
- package/dist/types/cost/sizes.d.ts.map +1 -0
- package/dist/types/generated/codama/accounts/borrowerState.d.ts +2 -2
- package/dist/types/generated/codama/accounts/borrowerState.d.ts.map +1 -1
- package/dist/types/generated/codama/accounts/configState.d.ts +44 -12
- package/dist/types/generated/codama/accounts/configState.d.ts.map +1 -1
- package/dist/types/generated/codama/accounts/contractState.d.ts +22 -0
- package/dist/types/generated/codama/accounts/contractState.d.ts.map +1 -1
- package/dist/types/generated/codama/accounts/rentalState.d.ts +22 -6
- package/dist/types/generated/codama/accounts/rentalState.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/closeRental.d.ts +1 -1
- package/dist/types/generated/codama/instructions/createContract.d.ts +4 -0
- package/dist/types/generated/codama/instructions/createContract.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/reserveRental.d.ts +2 -2
- package/dist/types/generated/codama/instructions/reserveRental.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/updateConfig.d.ts +20 -12
- package/dist/types/generated/codama/instructions/updateConfig.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/updateContract.d.ts +14 -0
- package/dist/types/generated/codama/instructions/updateContract.d.ts.map +1 -1
- package/dist/types/generated/codama/types/index.d.ts +1 -1
- package/dist/types/generated/codama/types/index.d.ts.map +1 -1
- package/dist/types/generated/codama/types/rentalClosed.d.ts +2 -2
- package/dist/types/generated/codama/types/rentalClosed.d.ts.map +1 -1
- package/dist/types/generated/codama/types/reservationContested.d.ts +50 -0
- package/dist/types/generated/codama/types/reservationContested.d.ts.map +1 -0
- package/dist/types/generated/codama/types/reservationCreated.d.ts +2 -2
- package/dist/types/generated/codama/types/reservationCreated.d.ts.map +1 -1
- package/dist/types/instructions/createBorrower.d.ts +1 -1
- package/dist/types/instructions/createContract.d.ts +10 -0
- package/dist/types/instructions/createContract.d.ts.map +1 -1
- package/dist/types/instructions/createContractThread.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/instructions/updateConfig.d.ts +3 -2
- package/dist/types/instructions/updateConfig.d.ts.map +1 -1
- package/dist/types/instructions/updateContract.d.ts +8 -0
- package/dist/types/instructions/updateContract.d.ts.map +1 -1
- package/dist/types/kit/index.d.ts +1 -0
- package/dist/types/kit/index.d.ts.map +1 -1
- package/dist/types/utils/bidMath.d.ts +89 -0
- package/dist/types/utils/bidMath.d.ts.map +1 -0
- package/dist/types/utils/index.d.ts +1 -0
- package/dist/types/utils/index.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/package.json +2 -2
package/dist/idl/srsly.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"address": "SRSLYxcFnjd5jG2DpJw4as6UEyjwJQK1U4J1TD1hvZH",
|
|
3
3
|
"metadata": {
|
|
4
4
|
"name": "srsly",
|
|
5
|
-
"version": "5.0
|
|
5
|
+
"version": "5.1.0",
|
|
6
6
|
"spec": "0.1.0",
|
|
7
7
|
"description": "Space Rental from SLY"
|
|
8
8
|
},
|
|
@@ -1720,6 +1720,7 @@
|
|
|
1720
1720
|
},
|
|
1721
1721
|
{
|
|
1722
1722
|
"name": "config",
|
|
1723
|
+
"writable": true,
|
|
1723
1724
|
"pda": {
|
|
1724
1725
|
"seeds": [
|
|
1725
1726
|
{
|
|
@@ -2538,6 +2539,10 @@
|
|
|
2538
2539
|
{
|
|
2539
2540
|
"name": "reservations_disabled",
|
|
2540
2541
|
"type": "bool"
|
|
2542
|
+
},
|
|
2543
|
+
{
|
|
2544
|
+
"name": "contested_threshold",
|
|
2545
|
+
"type": "u8"
|
|
2541
2546
|
}
|
|
2542
2547
|
]
|
|
2543
2548
|
},
|
|
@@ -4033,7 +4038,7 @@
|
|
|
4033
4038
|
"args": [
|
|
4034
4039
|
{
|
|
4035
4040
|
"name": "bid_points",
|
|
4036
|
-
"type": "
|
|
4041
|
+
"type": "u64"
|
|
4037
4042
|
},
|
|
4038
4043
|
{
|
|
4039
4044
|
"name": "bid_atlas",
|
|
@@ -4598,6 +4603,19 @@
|
|
|
4598
4603
|
14
|
|
4599
4604
|
]
|
|
4600
4605
|
},
|
|
4606
|
+
{
|
|
4607
|
+
"name": "ReservationContested",
|
|
4608
|
+
"discriminator": [
|
|
4609
|
+
218,
|
|
4610
|
+
21,
|
|
4611
|
+
126,
|
|
4612
|
+
124,
|
|
4613
|
+
75,
|
|
4614
|
+
129,
|
|
4615
|
+
244,
|
|
4616
|
+
205
|
|
4617
|
+
]
|
|
4618
|
+
},
|
|
4601
4619
|
{
|
|
4602
4620
|
"name": "ReservationCreated",
|
|
4603
4621
|
"discriminator": [
|
|
@@ -4610,19 +4628,6 @@
|
|
|
4610
4628
|
211,
|
|
4611
4629
|
176
|
|
4612
4630
|
]
|
|
4613
|
-
},
|
|
4614
|
-
{
|
|
4615
|
-
"name": "ReservationKnockoff",
|
|
4616
|
-
"discriminator": [
|
|
4617
|
-
200,
|
|
4618
|
-
239,
|
|
4619
|
-
129,
|
|
4620
|
-
35,
|
|
4621
|
-
95,
|
|
4622
|
-
203,
|
|
4623
|
-
231,
|
|
4624
|
-
126
|
|
4625
|
-
]
|
|
4626
4631
|
}
|
|
4627
4632
|
],
|
|
4628
4633
|
"errors": [
|
|
@@ -5191,7 +5196,7 @@
|
|
|
5191
5196
|
"docs": [
|
|
5192
5197
|
"Current capture points accumulated"
|
|
5193
5198
|
],
|
|
5194
|
-
"type": "
|
|
5199
|
+
"type": "u64"
|
|
5195
5200
|
},
|
|
5196
5201
|
{
|
|
5197
5202
|
"name": "managed_token_account",
|
|
@@ -5417,21 +5422,21 @@
|
|
|
5417
5422
|
"docs": [
|
|
5418
5423
|
"Points awarded per day of rental"
|
|
5419
5424
|
],
|
|
5420
|
-
"type": "
|
|
5425
|
+
"type": "u64"
|
|
5421
5426
|
},
|
|
5422
5427
|
{
|
|
5423
5428
|
"name": "cancellation_penalty",
|
|
5424
5429
|
"docs": [
|
|
5425
5430
|
"Points lost on cancellation"
|
|
5426
5431
|
],
|
|
5427
|
-
"type": "
|
|
5432
|
+
"type": "u64"
|
|
5428
5433
|
},
|
|
5429
5434
|
{
|
|
5430
5435
|
"name": "min_capture_threshold",
|
|
5431
5436
|
"docs": [
|
|
5432
5437
|
"Minimum points to capture any flag"
|
|
5433
5438
|
],
|
|
5434
|
-
"type": "
|
|
5439
|
+
"type": "u64"
|
|
5435
5440
|
},
|
|
5436
5441
|
{
|
|
5437
5442
|
"name": "weight_base",
|
|
@@ -5464,14 +5469,29 @@
|
|
|
5464
5469
|
{
|
|
5465
5470
|
"name": "atlas_per_point",
|
|
5466
5471
|
"docs": [
|
|
5467
|
-
"ATLAS
|
|
5472
|
+
"Stardust-of-ATLAS per stardust-of-points. With both in 8-decimal",
|
|
5473
|
+
"precision (1 ATLAS = 100M stardust, 1 point = 100M dust), this acts",
|
|
5474
|
+
"as the \"ATLAS per point\" ratio in human terms. Default 100 = 100",
|
|
5475
|
+
"ATLAS per point."
|
|
5468
5476
|
],
|
|
5469
5477
|
"type": "u64"
|
|
5470
5478
|
},
|
|
5471
5479
|
{
|
|
5472
|
-
"name": "
|
|
5480
|
+
"name": "contested_multiplier_max_bps",
|
|
5481
|
+
"docs": [
|
|
5482
|
+
"Maximum floor multiplier in basis points (100 = 1×, 465 = 4.65×).",
|
|
5483
|
+
"Linear ramp from 1× (defender just reserved) to this value (snipe",
|
|
5484
|
+
"at activation). 100 disables the ramp. Default 465. Range 100..=10000."
|
|
5485
|
+
],
|
|
5486
|
+
"type": "u16"
|
|
5487
|
+
},
|
|
5488
|
+
{
|
|
5489
|
+
"name": "rentals_completed",
|
|
5473
5490
|
"docs": [
|
|
5474
|
-
"
|
|
5491
|
+
"Lifetime count of rentals that ran their full term and closed",
|
|
5492
|
+
"normally via `process_rental_close`. Does NOT include cancellations",
|
|
5493
|
+
"(those keep status = Cancelled on the rental account). Monotonic.",
|
|
5494
|
+
"Not exposed in ConfigUpdateParams — admin can't tamper."
|
|
5475
5495
|
],
|
|
5476
5496
|
"type": "u64"
|
|
5477
5497
|
},
|
|
@@ -5587,7 +5607,7 @@
|
|
|
5587
5607
|
"Capture points awarded per day of rental"
|
|
5588
5608
|
],
|
|
5589
5609
|
"type": {
|
|
5590
|
-
"option": "
|
|
5610
|
+
"option": "u64"
|
|
5591
5611
|
}
|
|
5592
5612
|
},
|
|
5593
5613
|
{
|
|
@@ -5596,7 +5616,7 @@
|
|
|
5596
5616
|
"Points penalty for cancelling a rental"
|
|
5597
5617
|
],
|
|
5598
5618
|
"type": {
|
|
5599
|
-
"option": "
|
|
5619
|
+
"option": "u64"
|
|
5600
5620
|
}
|
|
5601
5621
|
},
|
|
5602
5622
|
{
|
|
@@ -5605,7 +5625,7 @@
|
|
|
5605
5625
|
"Minimum points needed to capture a flag"
|
|
5606
5626
|
],
|
|
5607
5627
|
"type": {
|
|
5608
|
-
"option": "
|
|
5628
|
+
"option": "u64"
|
|
5609
5629
|
}
|
|
5610
5630
|
},
|
|
5611
5631
|
{
|
|
@@ -5654,12 +5674,14 @@
|
|
|
5654
5674
|
}
|
|
5655
5675
|
},
|
|
5656
5676
|
{
|
|
5657
|
-
"name": "
|
|
5677
|
+
"name": "contested_multiplier_max_bps",
|
|
5658
5678
|
"docs": [
|
|
5659
|
-
"
|
|
5679
|
+
"Maximum multiplier on the contest minimum-bid floor as the queued",
|
|
5680
|
+
"reservation approaches `active_rental.end_time`. Custom scale where",
|
|
5681
|
+
"100 = 1× (disables ramp) and 10_000 = 100×. Range 100..=10_000."
|
|
5660
5682
|
],
|
|
5661
5683
|
"type": {
|
|
5662
|
-
"option": "
|
|
5684
|
+
"option": "u16"
|
|
5663
5685
|
}
|
|
5664
5686
|
}
|
|
5665
5687
|
]
|
|
@@ -5949,6 +5971,23 @@
|
|
|
5949
5971
|
],
|
|
5950
5972
|
"type": "u64"
|
|
5951
5973
|
},
|
|
5974
|
+
{
|
|
5975
|
+
"name": "contested_threshold",
|
|
5976
|
+
"docs": [
|
|
5977
|
+
"Owner-configured number of contests required before the next",
|
|
5978
|
+
"activation increases `rate` by `capture_rate_bps`. 0 disables capture-rate",
|
|
5979
|
+
"entirely (rate never auto-increments). 1..=10 enables it. Default 1."
|
|
5980
|
+
],
|
|
5981
|
+
"type": "u8"
|
|
5982
|
+
},
|
|
5983
|
+
{
|
|
5984
|
+
"name": "contested_count",
|
|
5985
|
+
"docs": [
|
|
5986
|
+
"Contests accumulated since the last rate increase. Resets on increase and",
|
|
5987
|
+
"when a rental cycle completes without an activation."
|
|
5988
|
+
],
|
|
5989
|
+
"type": "u8"
|
|
5990
|
+
},
|
|
5952
5991
|
{
|
|
5953
5992
|
"name": "created_at",
|
|
5954
5993
|
"docs": [
|
|
@@ -6085,6 +6124,17 @@
|
|
|
6085
6124
|
"type": {
|
|
6086
6125
|
"option": "bool"
|
|
6087
6126
|
}
|
|
6127
|
+
},
|
|
6128
|
+
{
|
|
6129
|
+
"name": "contested_threshold",
|
|
6130
|
+
"docs": [
|
|
6131
|
+
"Number of contests that must accumulate before the next activation",
|
|
6132
|
+
"applies `capture_rate_bps`. 0 disables capture-rate entirely;",
|
|
6133
|
+
"1..=10 enables it with the chosen sensitivity. Default 1."
|
|
6134
|
+
],
|
|
6135
|
+
"type": {
|
|
6136
|
+
"option": "u8"
|
|
6137
|
+
}
|
|
6088
6138
|
}
|
|
6089
6139
|
]
|
|
6090
6140
|
}
|
|
@@ -6503,7 +6553,7 @@
|
|
|
6503
6553
|
},
|
|
6504
6554
|
{
|
|
6505
6555
|
"name": "points_awarded",
|
|
6506
|
-
"type": "
|
|
6556
|
+
"type": "u64"
|
|
6507
6557
|
},
|
|
6508
6558
|
{
|
|
6509
6559
|
"name": "fee_flushed",
|
|
@@ -6653,17 +6703,28 @@
|
|
|
6653
6703
|
{
|
|
6654
6704
|
"name": "bid_points",
|
|
6655
6705
|
"docs": [
|
|
6656
|
-
"Points bid for reservation
|
|
6706
|
+
"Points bid for reservation contest comparison (0 if ATLAS bid)"
|
|
6657
6707
|
],
|
|
6658
|
-
"type": "
|
|
6708
|
+
"type": "u64"
|
|
6659
6709
|
},
|
|
6660
6710
|
{
|
|
6661
6711
|
"name": "bid_atlas",
|
|
6662
6712
|
"docs": [
|
|
6663
|
-
"ATLAS premium bid for reservation
|
|
6713
|
+
"ATLAS premium bid for reservation contest (0 if points bid)"
|
|
6664
6714
|
],
|
|
6665
6715
|
"type": "u64"
|
|
6666
6716
|
},
|
|
6717
|
+
{
|
|
6718
|
+
"name": "cancel_delay_min",
|
|
6719
|
+
"docs": [
|
|
6720
|
+
"Minimum cancellation delay in seconds, snapshotted from",
|
|
6721
|
+
"`contract.cancel_delay_min` at accept/reserve time. Locks the",
|
|
6722
|
+
"borrower's worst-case notice period — owner raising the contract",
|
|
6723
|
+
"value mid-rental cannot tighten this. Owner lowering the contract",
|
|
6724
|
+
"value flows through (cancel uses the lesser of the two)."
|
|
6725
|
+
],
|
|
6726
|
+
"type": "i64"
|
|
6727
|
+
},
|
|
6667
6728
|
{
|
|
6668
6729
|
"name": "status",
|
|
6669
6730
|
"docs": [
|
|
@@ -6716,7 +6777,7 @@
|
|
|
6716
6777
|
}
|
|
6717
6778
|
},
|
|
6718
6779
|
{
|
|
6719
|
-
"name": "
|
|
6780
|
+
"name": "ReservationContested",
|
|
6720
6781
|
"type": {
|
|
6721
6782
|
"kind": "struct",
|
|
6722
6783
|
"fields": [
|
|
@@ -6725,38 +6786,49 @@
|
|
|
6725
6786
|
"type": "pubkey"
|
|
6726
6787
|
},
|
|
6727
6788
|
{
|
|
6728
|
-
"name": "
|
|
6789
|
+
"name": "defender",
|
|
6729
6790
|
"type": "pubkey"
|
|
6730
6791
|
},
|
|
6731
6792
|
{
|
|
6732
|
-
"name": "
|
|
6733
|
-
"type": "
|
|
6793
|
+
"name": "challenger",
|
|
6794
|
+
"type": "pubkey"
|
|
6734
6795
|
},
|
|
6735
6796
|
{
|
|
6736
|
-
"name": "
|
|
6797
|
+
"name": "defender_refund",
|
|
6737
6798
|
"type": "u64"
|
|
6738
6799
|
},
|
|
6739
6800
|
{
|
|
6740
|
-
"name": "
|
|
6801
|
+
"name": "defender_bonus",
|
|
6741
6802
|
"type": "u64"
|
|
6742
6803
|
},
|
|
6743
6804
|
{
|
|
6744
|
-
"name": "
|
|
6805
|
+
"name": "floor_closeness_bps",
|
|
6806
|
+
"docs": [
|
|
6807
|
+
"0..=10_000 — how late in the active rental the challenger bid",
|
|
6808
|
+
"(now / active_duration). Drives the ramped minimum-bid floor."
|
|
6809
|
+
],
|
|
6745
6810
|
"type": "u64"
|
|
6746
6811
|
},
|
|
6747
6812
|
{
|
|
6748
|
-
"name": "
|
|
6749
|
-
"
|
|
6813
|
+
"name": "bonus_closeness_bps",
|
|
6814
|
+
"docs": [
|
|
6815
|
+
"0..=10_000 — how long the defender held the reservation",
|
|
6816
|
+
"(hold_time / active_duration). Drives the bonus rate scaling."
|
|
6817
|
+
],
|
|
6818
|
+
"type": "u64"
|
|
6750
6819
|
},
|
|
6751
6820
|
{
|
|
6752
|
-
"name": "
|
|
6753
|
-
"
|
|
6821
|
+
"name": "min_bid_stardust",
|
|
6822
|
+
"docs": [
|
|
6823
|
+
"Stardust contest minimum-bid floor at the moment of this contest."
|
|
6824
|
+
],
|
|
6825
|
+
"type": "u64"
|
|
6754
6826
|
}
|
|
6755
6827
|
]
|
|
6756
6828
|
}
|
|
6757
6829
|
},
|
|
6758
6830
|
{
|
|
6759
|
-
"name": "
|
|
6831
|
+
"name": "ReservationCreated",
|
|
6760
6832
|
"type": {
|
|
6761
6833
|
"kind": "struct",
|
|
6762
6834
|
"fields": [
|
|
@@ -6765,20 +6837,32 @@
|
|
|
6765
6837
|
"type": "pubkey"
|
|
6766
6838
|
},
|
|
6767
6839
|
{
|
|
6768
|
-
"name": "
|
|
6840
|
+
"name": "challenger",
|
|
6769
6841
|
"type": "pubkey"
|
|
6770
6842
|
},
|
|
6771
6843
|
{
|
|
6772
|
-
"name": "
|
|
6773
|
-
"type": "
|
|
6844
|
+
"name": "bid_points",
|
|
6845
|
+
"type": "u64"
|
|
6774
6846
|
},
|
|
6775
6847
|
{
|
|
6776
|
-
"name": "
|
|
6848
|
+
"name": "bid_atlas",
|
|
6777
6849
|
"type": "u64"
|
|
6778
6850
|
},
|
|
6779
6851
|
{
|
|
6780
|
-
"name": "
|
|
6852
|
+
"name": "escrow_amount",
|
|
6781
6853
|
"type": "u64"
|
|
6854
|
+
},
|
|
6855
|
+
{
|
|
6856
|
+
"name": "service_fee",
|
|
6857
|
+
"type": "u64"
|
|
6858
|
+
},
|
|
6859
|
+
{
|
|
6860
|
+
"name": "fee_bps",
|
|
6861
|
+
"type": "u16"
|
|
6862
|
+
},
|
|
6863
|
+
{
|
|
6864
|
+
"name": "duration_seconds",
|
|
6865
|
+
"type": "i64"
|
|
6782
6866
|
}
|
|
6783
6867
|
]
|
|
6784
6868
|
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @purpose Cost-related constants shared across SDK modules.
|
|
3
|
+
*
|
|
4
|
+
* Single source of truth for thread funding, execution budgets, and per-tx fees.
|
|
5
|
+
* Mirrors on-chain constants in `rust/programs/srsly/src/instructions/contract_thread.rs`.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Infrastructure base auto-added by the SDK when creating a contract thread.
|
|
9
|
+
* Covers thread rent + 3 fiber rents (~0.034 SOL) plus a ~0.006 SOL buffer.
|
|
10
|
+
*
|
|
11
|
+
* On-chain minimum: `rust/programs/srsly/src/instructions/contract_thread.rs:119`.
|
|
12
|
+
*/
|
|
13
|
+
export declare const MINIMUM_THREAD_FUNDING = 40000000n;
|
|
14
|
+
/**
|
|
15
|
+
* Default execution budget for contract thread ticks when caller does not
|
|
16
|
+
* specify one. 0.00219 SOL funds ~365 ticks at 0.000006 SOL each
|
|
17
|
+
* (≈1 year of daily cron executions).
|
|
18
|
+
*/
|
|
19
|
+
export declare const DEFAULT_EXECUTION_BUDGET = 2190000n;
|
|
20
|
+
/** Solana base transaction fee in lamports (5_000 per signature). */
|
|
21
|
+
export declare const TX_BASE_FEE_LAMPORTS = 5000n;
|
|
22
|
+
/**
|
|
23
|
+
* Cost per thread tick in lamports.
|
|
24
|
+
* 5_000 (Solana base) + 1_000 (Antegen commission) = 6_000.
|
|
25
|
+
*/
|
|
26
|
+
export declare const PER_TICK_LAMPORTS = 6000n;
|
|
27
|
+
/** Seconds in a day — used for pro-rata rental amount math. */
|
|
28
|
+
export declare const SECONDS_PER_DAY = 86400n;
|
|
29
|
+
/** Fixed size of an SPL associated token account. */
|
|
30
|
+
export declare const SPL_ATA_SIZE = 165;
|
|
31
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/cost/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,YAAc,CAAC;AAElD;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,WAAa,CAAC;AAEnD,qEAAqE;AACrE,eAAO,MAAM,oBAAoB,QAAS,CAAC;AAE3C;;;GAGG;AACH,eAAO,MAAM,iBAAiB,QAAS,CAAC;AAExC,+DAA+D;AAC/D,eAAO,MAAM,eAAe,SAAU,CAAC;AAEvC,qDAAqD;AACrD,eAAO,MAAM,YAAY,MAAM,CAAC"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @purpose SOL + ATLAS cost estimators for SRSLY protocol usage.
|
|
3
|
+
*
|
|
4
|
+
* Three quotes:
|
|
5
|
+
* - Owner setup (contract_create + contract_thread) — recoverable rents + infra + exec budget.
|
|
6
|
+
* - Borrower setup (borrower_create) — BorrowerState + managed ATA.
|
|
7
|
+
* - Per-rental (rental_accept) — SOL tx fee + ATLAS escrow + service fee.
|
|
8
|
+
*
|
|
9
|
+
* All functions use `rpc.getMinimumBalanceForRentExemption` so quotes reflect the
|
|
10
|
+
* target cluster's rent rate rather than hardcoded lamports.
|
|
11
|
+
*/
|
|
12
|
+
import type { Address } from '@solana/kit';
|
|
13
|
+
import { type SolParam } from '../params/sol';
|
|
14
|
+
export interface OwnerSetupCostOptions {
|
|
15
|
+
/**
|
|
16
|
+
* Execution budget preloaded into the thread on top of `MINIMUM_THREAD_FUNDING`.
|
|
17
|
+
* Defaults to `DEFAULT_EXECUTION_BUDGET` (~1 year daily cron).
|
|
18
|
+
*/
|
|
19
|
+
executionBudget?: SolParam;
|
|
20
|
+
/**
|
|
21
|
+
* Skip the 0.00204 SOL owner-ATA rent if the owner already has an ATLAS ATA.
|
|
22
|
+
* Defaults to `false` (charge it).
|
|
23
|
+
*/
|
|
24
|
+
ownerAtaExists?: boolean;
|
|
25
|
+
/** Override RPC for the rent-exemption lookup. */
|
|
26
|
+
rpcUrl?: string;
|
|
27
|
+
}
|
|
28
|
+
export interface OwnerSetupCostQuote {
|
|
29
|
+
/** Recoverable rents: ContractState + 2×RentalState + contract ATA (+ owner ATA). */
|
|
30
|
+
rentLamports: bigint;
|
|
31
|
+
/** Lamports sent to the thread: infra base + execution budget. */
|
|
32
|
+
threadLamports: bigint;
|
|
33
|
+
/** Base Solana tx fees for contract_create + contract_thread. */
|
|
34
|
+
txFees: bigint;
|
|
35
|
+
/** Sum of all components. */
|
|
36
|
+
total: bigint;
|
|
37
|
+
breakdown: {
|
|
38
|
+
contractState: bigint;
|
|
39
|
+
rentalStateActive: bigint;
|
|
40
|
+
rentalStateQueued: bigint;
|
|
41
|
+
contractAta: bigint;
|
|
42
|
+
ownerAta: bigint;
|
|
43
|
+
threadInfraBase: bigint;
|
|
44
|
+
executionBudget: bigint;
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
export declare function estimateOwnerSetupCost(opts?: OwnerSetupCostOptions): Promise<OwnerSetupCostQuote>;
|
|
48
|
+
export interface BorrowerSetupCostQuote {
|
|
49
|
+
rentLamports: bigint;
|
|
50
|
+
txFees: bigint;
|
|
51
|
+
total: bigint;
|
|
52
|
+
breakdown: {
|
|
53
|
+
borrowerState: bigint;
|
|
54
|
+
managedAta: bigint;
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
export declare function estimateBorrowerSetupCost(rpcUrl?: string): Promise<BorrowerSetupCostQuote>;
|
|
58
|
+
export interface RentalCostParams {
|
|
59
|
+
/** Contract PDA address. */
|
|
60
|
+
contract: Address | string;
|
|
61
|
+
/** Rental duration in seconds. */
|
|
62
|
+
durationSeconds: bigint | number;
|
|
63
|
+
/** Optional ATLAS bid for reservations (Stardust units). */
|
|
64
|
+
bidStardust?: bigint;
|
|
65
|
+
/** Override RPC. */
|
|
66
|
+
rpcUrl?: string;
|
|
67
|
+
}
|
|
68
|
+
export interface RentalCostQuote {
|
|
69
|
+
/** SOL tx fee for rental_accept (base only — priority fees excluded). */
|
|
70
|
+
solTxFees: bigint;
|
|
71
|
+
/** ATLAS paid to escrow = rate × duration / day, in Stardust. */
|
|
72
|
+
atlasEscrow: bigint;
|
|
73
|
+
/** Service fee portion of escrow (already included in `atlasEscrow`). */
|
|
74
|
+
atlasServiceFee: bigint;
|
|
75
|
+
/** Optional reservation bid (Stardust), 0 if unused. */
|
|
76
|
+
atlasBid: bigint;
|
|
77
|
+
/** atlasEscrow + atlasBid — total ATLAS (Stardust) borrower transfers. */
|
|
78
|
+
atlasTotal: bigint;
|
|
79
|
+
/** Basis points snapshot from config used for the fee calc. */
|
|
80
|
+
serviceFeeBps: number;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Quote the per-rental cost to a borrower. Matches
|
|
84
|
+
* `ContractCalculations::calculate_amount` in `state/contract.rs:150`:
|
|
85
|
+
* `amount = rate_stardust × duration / 86400`, with saturating u64 semantics.
|
|
86
|
+
*/
|
|
87
|
+
export declare function estimateRentalCost(params: RentalCostParams): Promise<RentalCostQuote>;
|
|
88
|
+
/**
|
|
89
|
+
* Lamports burned by a given number of cron ticks at `PER_TICK_LAMPORTS` each.
|
|
90
|
+
* Useful for sizing a custom `executionBudget` before calling
|
|
91
|
+
* `estimateOwnerSetupCost`.
|
|
92
|
+
*/
|
|
93
|
+
export declare function tickBudget(ticks: bigint | number): bigint;
|
|
94
|
+
//# sourceMappingURL=estimate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"estimate.d.ts","sourceRoot":"","sources":["../../../src/cost/estimate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAK3C,OAAO,EAAc,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AA4B1D,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,eAAe,CAAC,EAAE,QAAQ,CAAC;IAC3B;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,qFAAqF;IACrF,YAAY,EAAE,MAAM,CAAC;IACrB,kEAAkE;IAClE,cAAc,EAAE,MAAM,CAAC;IACvB,iEAAiE;IACjE,MAAM,EAAE,MAAM,CAAC;IACf,6BAA6B;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE;QACT,aAAa,EAAE,MAAM,CAAC;QACtB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,iBAAiB,EAAE,MAAM,CAAC;QAC1B,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;QACjB,eAAe,EAAE,MAAM,CAAC;QACxB,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;CACH;AAED,wBAAsB,sBAAsB,CAC1C,IAAI,GAAE,qBAA0B,GAC/B,OAAO,CAAC,mBAAmB,CAAC,CAgC9B;AAMD,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE;QACT,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAED,wBAAsB,yBAAyB,CAC7C,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,sBAAsB,CAAC,CAejC;AAMD,MAAM,WAAW,gBAAgB;IAC/B,4BAA4B;IAC5B,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAC;IAC3B,kCAAkC;IAClC,eAAe,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC,4DAA4D;IAC5D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oBAAoB;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,yEAAyE;IACzE,SAAS,EAAE,MAAM,CAAC;IAClB,iEAAiE;IACjE,WAAW,EAAE,MAAM,CAAC;IACpB,yEAAyE;IACzE,eAAe,EAAE,MAAM,CAAC;IACxB,wDAAwD;IACxD,QAAQ,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,UAAU,EAAE,MAAM,CAAC;IACnB,+DAA+D;IAC/D,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAAC,eAAe,CAAC,CAoC1B;AAMD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAEzD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"estimate.test.d.ts","sourceRoot":"","sources":["../../../src/cost/estimate.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cost/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @purpose Account data sizes (including 8-byte Anchor discriminator).
|
|
3
|
+
*
|
|
4
|
+
* These match `8 + InitSpace` on the Rust side and determine rent-exemption
|
|
5
|
+
* lamports via `rpc.getMinimumBalanceForRentExemption(size)`.
|
|
6
|
+
*
|
|
7
|
+
* Source of truth: `rust/programs/srsly/src/state/*.rs` — structs with
|
|
8
|
+
* `#[derive(InitSpace)]`. Keep in sync when account layouts change.
|
|
9
|
+
*/
|
|
10
|
+
/** ContractState — `state/contract.rs` */
|
|
11
|
+
export declare const CONTRACT_STATE_SIZE = 638;
|
|
12
|
+
/** RentalState — `state/rental.rs` (two instances per contract: active + queued) */
|
|
13
|
+
export declare const RENTAL_STATE_SIZE = 426;
|
|
14
|
+
/** BorrowerState — `state/borrower.rs` (Vec<Pubkey> max_len 10) */
|
|
15
|
+
export declare const BORROWER_STATE_SIZE = 423;
|
|
16
|
+
/** ConfigState — `state/config.rs` */
|
|
17
|
+
export declare const CONFIG_STATE_SIZE = 468;
|
|
18
|
+
//# sourceMappingURL=sizes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sizes.d.ts","sourceRoot":"","sources":["../../../src/cost/sizes.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,0CAA0C;AAC1C,eAAO,MAAM,mBAAmB,MAAM,CAAC;AAEvC,oFAAoF;AACpF,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAErC,mEAAmE;AACnE,eAAO,MAAM,mBAAmB,MAAM,CAAC;AAEvC,sCAAsC;AACtC,eAAO,MAAM,iBAAiB,MAAM,CAAC"}
|
|
@@ -27,7 +27,7 @@ export type BorrowerState = {
|
|
|
27
27
|
*/
|
|
28
28
|
activeRentalCount: number;
|
|
29
29
|
/** Current capture points accumulated */
|
|
30
|
-
capturePoints:
|
|
30
|
+
capturePoints: bigint;
|
|
31
31
|
/**
|
|
32
32
|
* Managed token account for receiving ATLAS refunds from reservations
|
|
33
33
|
* Created via init_if_needed in rental_reserve
|
|
@@ -56,7 +56,7 @@ export type BorrowerStateArgs = {
|
|
|
56
56
|
*/
|
|
57
57
|
activeRentalCount: number;
|
|
58
58
|
/** Current capture points accumulated */
|
|
59
|
-
capturePoints: number;
|
|
59
|
+
capturePoints: number | bigint;
|
|
60
60
|
/**
|
|
61
61
|
* Managed token account for receiving ATLAS refunds from reservations
|
|
62
62
|
* Created via init_if_needed in rental_reserve
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"borrowerState.d.ts","sourceRoot":"","sources":["../../../../../src/generated/codama/accounts/borrowerState.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAKL,mBAAmB,EACnB,oBAAoB,
|
|
1
|
+
{"version":3,"file":"borrowerState.d.ts","sourceRoot":"","sources":["../../../../../src/generated/codama/accounts/borrowerState.ts"],"names":[],"mappings":"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"}
|