proof-of-take-sdk 3.0.7 → 3.0.9
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/constants/season.d.ts +20 -17
- package/dist/constants/season.js +24 -18
- package/dist/idl/proof_of_take.json +132 -16
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/instructions/claimReferralPenaltyForWindow.d.ts +1 -1
- package/dist/instructions/claimReferralPenaltyForWindow.js +2 -1
- package/dist/instructions/claimWindowRewards.d.ts +1 -3
- package/dist/instructions/claimWindowRewards.js +4 -15
- package/dist/instructions/closeAuxiliaryAccounts.js +19 -12
- package/dist/instructions/confirmedPostOnX.d.ts +1 -1
- package/dist/instructions/confirmedPostOnX.js +5 -1
- package/dist/instructions/createMiztake.d.ts +1 -1
- package/dist/instructions/createMiztake.js +7 -3
- package/dist/instructions/initializeEscrowVault.js +5 -4
- package/dist/instructions/initializeRewardWindow.js +5 -4
- package/dist/instructions/initializeSeasonSettings.js +6 -7
- package/dist/instructions/initializeSeasonVault.js +6 -7
- package/dist/instructions/initializeStatistics.js +5 -5
- package/dist/instructions/joinSeason.d.ts +1 -1
- package/dist/instructions/joinSeason.js +20 -5
- package/dist/instructions/toggleSeasonPause.js +6 -7
- package/dist/instructions/updateSeasonAdmin.js +6 -7
- package/dist/instructions/viewSeasonMembershipStatus.d.ts +1 -1
- package/dist/instructions/viewSeasonMembershipStatus.js +1 -1
- package/dist/instructions/withdrawSeasonDeposit.d.ts +1 -1
- package/dist/instructions/withdrawSeasonDeposit.js +2 -1
- package/dist/types/accountTypes.d.ts +3 -1
- package/dist/types/proof_of_take.d.ts +132 -16
- package/dist/types.d.ts +4 -2
- package/dist/utils/accountConverters.js +1 -0
- package/dist/utils/accountUpdates.d.ts +3 -3
- package/dist/utils/accountUpdates.js +4 -3
- package/dist/utils/instructionResultHelpers.d.ts +7 -0
- package/dist/utils/instructionResultHelpers.js +9 -0
- package/dist/utils/pdas.d.ts +4 -4
- package/dist/utils/pdas.js +8 -7
- package/dist/utils/programErrors.d.ts +13 -0
- package/dist/utils/programErrors.js +47 -0
- package/dist/utils/remainingAccounts.d.ts +17 -0
- package/dist/utils/remainingAccounts.js +38 -0
- package/dist/utils/signerHelpers.d.ts +20 -0
- package/dist/utils/signerHelpers.js +64 -5
- package/dist/utils/tierPenalty.d.ts +2 -2
- package/dist/utils/tierPenalty.js +17 -16
- package/dist/utils/tierSeeds.d.ts +8 -0
- package/dist/utils/tierSeeds.js +14 -0
- package/dist/utils/transactionBuilder.d.ts +1 -0
- package/dist/utils/transactionBuilder.js +11 -9
- package/package.json +1 -1
|
@@ -1,20 +1,23 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Season system constants
|
|
3
|
-
*
|
|
3
|
+
*
|
|
4
|
+
* IMPORTANT:
|
|
5
|
+
* - These values are intended to mirror `programs/proof_of_take/src/constants.rs`.
|
|
6
|
+
* - Amounts are expressed in MIZD base units (7 decimals): 1 MIZD = 10_000_000.
|
|
4
7
|
*/
|
|
5
|
-
export declare const
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
8
|
+
export declare const MIZD_DECIMALS = 10000000;
|
|
9
|
+
export declare const MIZD_DECIMALS_BN: any;
|
|
10
|
+
export declare const JOIN_FEE_TOTAL: any;
|
|
11
|
+
export declare const JOIN_FEE_REFERRER: any;
|
|
12
|
+
export declare const JOIN_FEE_ADMIN_WITH_REFERRER: any;
|
|
13
|
+
export declare const SEASON_DURATION_SECONDS = 604800;
|
|
14
|
+
export declare const WINDOW_DURATION_SECONDS = 28800;
|
|
15
|
+
/**
|
|
16
|
+
* Claim buffer duration in seconds (5 minutes).
|
|
17
|
+
*
|
|
18
|
+
* Note: user reward claims (`claim_window_rewards`) are gated by the window-duration buffer
|
|
19
|
+
* (see on-chain `claim_available_at`), while the missed-window referral-penalty claim uses
|
|
20
|
+
* this constant.
|
|
21
|
+
*/
|
|
22
|
+
export declare const CLAIM_BUFFER_DURATION_SECONDS = 300;
|
|
23
|
+
export declare const TOTAL_WINDOWS_PER_SEASON = 21;
|
package/dist/constants/season.js
CHANGED
|
@@ -1,24 +1,30 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.TOTAL_WINDOWS_PER_SEASON = exports.CLAIM_BUFFER_DURATION_SECONDS = exports.WINDOW_DURATION_SECONDS = exports.SEASON_DURATION_SECONDS = exports.JOIN_FEE_ADMIN_WITH_REFERRER = exports.JOIN_FEE_REFERRER = exports.JOIN_FEE_TOTAL = exports.MIZD_DECIMALS_BN = exports.MIZD_DECIMALS = void 0;
|
|
4
4
|
const anchor_1 = require("@coral-xyz/anchor");
|
|
5
5
|
/**
|
|
6
6
|
* Season system constants
|
|
7
|
-
*
|
|
7
|
+
*
|
|
8
|
+
* IMPORTANT:
|
|
9
|
+
* - These values are intended to mirror `programs/proof_of_take/src/constants.rs`.
|
|
10
|
+
* - Amounts are expressed in MIZD base units (7 decimals): 1 MIZD = 10_000_000.
|
|
8
11
|
*/
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
12
|
+
// ===== Token decimals =====
|
|
13
|
+
exports.MIZD_DECIMALS = 10000000;
|
|
14
|
+
exports.MIZD_DECIMALS_BN = new anchor_1.BN(exports.MIZD_DECIMALS);
|
|
15
|
+
// ===== Join fees (MIZD base units) =====
|
|
16
|
+
exports.JOIN_FEE_TOTAL = new anchor_1.BN(49000000); // 4.9 MIZD
|
|
17
|
+
exports.JOIN_FEE_REFERRER = new anchor_1.BN(7000000); // 0.7 MIZD
|
|
18
|
+
exports.JOIN_FEE_ADMIN_WITH_REFERRER = new anchor_1.BN(42000000); // 4.2 MIZD
|
|
19
|
+
// ===== Timing (seconds) =====
|
|
20
|
+
exports.SEASON_DURATION_SECONDS = 604800; // 7 days
|
|
21
|
+
exports.WINDOW_DURATION_SECONDS = 28800; // 8 hours
|
|
22
|
+
/**
|
|
23
|
+
* Claim buffer duration in seconds (5 minutes).
|
|
24
|
+
*
|
|
25
|
+
* Note: user reward claims (`claim_window_rewards`) are gated by the window-duration buffer
|
|
26
|
+
* (see on-chain `claim_available_at`), while the missed-window referral-penalty claim uses
|
|
27
|
+
* this constant.
|
|
28
|
+
*/
|
|
29
|
+
exports.CLAIM_BUFFER_DURATION_SECONDS = 300;
|
|
30
|
+
exports.TOTAL_WINDOWS_PER_SEASON = 21;
|
|
@@ -308,10 +308,6 @@
|
|
|
308
308
|
"name": "user_token_account",
|
|
309
309
|
"writable": true
|
|
310
310
|
},
|
|
311
|
-
{
|
|
312
|
-
"name": "referrer_token_account",
|
|
313
|
-
"writable": true
|
|
314
|
-
},
|
|
315
311
|
{
|
|
316
312
|
"name": "user",
|
|
317
313
|
"signer": true
|
|
@@ -1596,6 +1592,100 @@
|
|
|
1596
1592
|
"name": "mizd_mint",
|
|
1597
1593
|
"address": "mizdS9fDNUKWZcXBeRhJoJQHJJmsTeF4fFRyPdXWv99"
|
|
1598
1594
|
},
|
|
1595
|
+
{
|
|
1596
|
+
"name": "root_admin",
|
|
1597
|
+
"address": "Lude4DE3jDXVViJ3s7bUfPXdXy8Zq7G1stMwHNQrc2s"
|
|
1598
|
+
},
|
|
1599
|
+
{
|
|
1600
|
+
"name": "root_admin_token_account",
|
|
1601
|
+
"writable": true,
|
|
1602
|
+
"pda": {
|
|
1603
|
+
"seeds": [
|
|
1604
|
+
{
|
|
1605
|
+
"kind": "account",
|
|
1606
|
+
"path": "root_admin"
|
|
1607
|
+
},
|
|
1608
|
+
{
|
|
1609
|
+
"kind": "const",
|
|
1610
|
+
"value": [
|
|
1611
|
+
6,
|
|
1612
|
+
221,
|
|
1613
|
+
246,
|
|
1614
|
+
225,
|
|
1615
|
+
215,
|
|
1616
|
+
101,
|
|
1617
|
+
161,
|
|
1618
|
+
147,
|
|
1619
|
+
217,
|
|
1620
|
+
203,
|
|
1621
|
+
225,
|
|
1622
|
+
70,
|
|
1623
|
+
206,
|
|
1624
|
+
235,
|
|
1625
|
+
121,
|
|
1626
|
+
172,
|
|
1627
|
+
28,
|
|
1628
|
+
180,
|
|
1629
|
+
133,
|
|
1630
|
+
237,
|
|
1631
|
+
95,
|
|
1632
|
+
91,
|
|
1633
|
+
55,
|
|
1634
|
+
145,
|
|
1635
|
+
58,
|
|
1636
|
+
140,
|
|
1637
|
+
245,
|
|
1638
|
+
133,
|
|
1639
|
+
126,
|
|
1640
|
+
255,
|
|
1641
|
+
0,
|
|
1642
|
+
169
|
|
1643
|
+
]
|
|
1644
|
+
},
|
|
1645
|
+
{
|
|
1646
|
+
"kind": "account",
|
|
1647
|
+
"path": "mizd_mint"
|
|
1648
|
+
}
|
|
1649
|
+
],
|
|
1650
|
+
"program": {
|
|
1651
|
+
"kind": "const",
|
|
1652
|
+
"value": [
|
|
1653
|
+
140,
|
|
1654
|
+
151,
|
|
1655
|
+
37,
|
|
1656
|
+
143,
|
|
1657
|
+
78,
|
|
1658
|
+
36,
|
|
1659
|
+
137,
|
|
1660
|
+
241,
|
|
1661
|
+
187,
|
|
1662
|
+
61,
|
|
1663
|
+
16,
|
|
1664
|
+
41,
|
|
1665
|
+
20,
|
|
1666
|
+
142,
|
|
1667
|
+
13,
|
|
1668
|
+
131,
|
|
1669
|
+
11,
|
|
1670
|
+
90,
|
|
1671
|
+
19,
|
|
1672
|
+
153,
|
|
1673
|
+
218,
|
|
1674
|
+
255,
|
|
1675
|
+
16,
|
|
1676
|
+
132,
|
|
1677
|
+
4,
|
|
1678
|
+
142,
|
|
1679
|
+
123,
|
|
1680
|
+
216,
|
|
1681
|
+
219,
|
|
1682
|
+
233,
|
|
1683
|
+
248,
|
|
1684
|
+
89
|
|
1685
|
+
]
|
|
1686
|
+
}
|
|
1687
|
+
}
|
|
1688
|
+
},
|
|
1599
1689
|
{
|
|
1600
1690
|
"name": "user_token_account",
|
|
1601
1691
|
"writable": true
|
|
@@ -1605,6 +1695,10 @@
|
|
|
1605
1695
|
"writable": true,
|
|
1606
1696
|
"signer": true
|
|
1607
1697
|
},
|
|
1698
|
+
{
|
|
1699
|
+
"name": "associated_token_program",
|
|
1700
|
+
"address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
|
|
1701
|
+
},
|
|
1608
1702
|
{
|
|
1609
1703
|
"name": "token_program",
|
|
1610
1704
|
"address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
|
|
@@ -2831,43 +2925,58 @@
|
|
|
2831
2925
|
},
|
|
2832
2926
|
{
|
|
2833
2927
|
"code": 6035,
|
|
2928
|
+
"name": "InvalidReferrerMembership",
|
|
2929
|
+
"msg": "Invalid referrer season membership account"
|
|
2930
|
+
},
|
|
2931
|
+
{
|
|
2932
|
+
"code": 6036,
|
|
2834
2933
|
"name": "ReferralPenaltyAlreadyClaimed",
|
|
2835
2934
|
"msg": "Referral penalty already claimed for this user/window"
|
|
2836
2935
|
},
|
|
2837
2936
|
{
|
|
2838
|
-
"code":
|
|
2937
|
+
"code": 6037,
|
|
2839
2938
|
"name": "ReferralPenaltyClaimNotAvailableYet",
|
|
2840
2939
|
"msg": "Referral penalty claim not available yet (must wait until window end + claim buffer)"
|
|
2841
2940
|
},
|
|
2842
2941
|
{
|
|
2843
|
-
"code":
|
|
2942
|
+
"code": 6038,
|
|
2844
2943
|
"name": "ReferralPenaltyNotEligibleForWindow",
|
|
2845
2944
|
"msg": "Referred user was not eligible for this window"
|
|
2846
2945
|
},
|
|
2847
2946
|
{
|
|
2848
|
-
"code":
|
|
2947
|
+
"code": 6039,
|
|
2849
2948
|
"name": "ReferralPenaltyNoMissedPenalty",
|
|
2850
2949
|
"msg": "Referred user posted successfully (no penalty to claim)"
|
|
2851
2950
|
},
|
|
2852
2951
|
{
|
|
2853
|
-
"code":
|
|
2952
|
+
"code": 6040,
|
|
2854
2953
|
"name": "WindowAlreadyFinalized",
|
|
2855
2954
|
"msg": "Window is already finalized"
|
|
2856
2955
|
},
|
|
2857
2956
|
{
|
|
2858
|
-
"code":
|
|
2957
|
+
"code": 6041,
|
|
2859
2958
|
"name": "WindowNotEmpty",
|
|
2860
2959
|
"msg": "Window is not empty (has successful posters)"
|
|
2861
2960
|
},
|
|
2862
2961
|
{
|
|
2863
|
-
"code":
|
|
2962
|
+
"code": 6042,
|
|
2864
2963
|
"name": "CalculationError",
|
|
2865
2964
|
"msg": "Calculation error"
|
|
2866
2965
|
},
|
|
2867
2966
|
{
|
|
2868
|
-
"code":
|
|
2967
|
+
"code": 6043,
|
|
2869
2968
|
"name": "InsufficientFunds",
|
|
2870
2969
|
"msg": "Insufficient funds"
|
|
2970
|
+
},
|
|
2971
|
+
{
|
|
2972
|
+
"code": 6044,
|
|
2973
|
+
"name": "NoWindowRewardsToClaim",
|
|
2974
|
+
"msg": "Nothing to claim for this window (reward amount is 0)"
|
|
2975
|
+
},
|
|
2976
|
+
{
|
|
2977
|
+
"code": 6045,
|
|
2978
|
+
"name": "NoReferralPenaltyToClaim",
|
|
2979
|
+
"msg": "Nothing to claim for this window (referral penalty amount is 0)"
|
|
2871
2980
|
}
|
|
2872
2981
|
],
|
|
2873
2982
|
"types": [
|
|
@@ -3044,7 +3153,7 @@
|
|
|
3044
3153
|
{
|
|
3045
3154
|
"name": "tier",
|
|
3046
3155
|
"docs": [
|
|
3047
|
-
"Tier number used for the membership PDA (
|
|
3156
|
+
"Tier number used for the membership PDA (0..=4)"
|
|
3048
3157
|
],
|
|
3049
3158
|
"type": "u8"
|
|
3050
3159
|
},
|
|
@@ -3097,7 +3206,7 @@
|
|
|
3097
3206
|
{
|
|
3098
3207
|
"name": "tier",
|
|
3099
3208
|
"docs": [
|
|
3100
|
-
"Tier number used for the membership PDA (
|
|
3209
|
+
"Tier number used for the membership PDA (0..=4)"
|
|
3101
3210
|
],
|
|
3102
3211
|
"type": "u8"
|
|
3103
3212
|
},
|
|
@@ -3204,7 +3313,7 @@
|
|
|
3204
3313
|
{
|
|
3205
3314
|
"name": "tier",
|
|
3206
3315
|
"docs": [
|
|
3207
|
-
"Tier number used for the membership PDA (
|
|
3316
|
+
"Tier number used for the membership PDA (0..=4)"
|
|
3208
3317
|
],
|
|
3209
3318
|
"type": "u8"
|
|
3210
3319
|
},
|
|
@@ -3554,7 +3663,7 @@
|
|
|
3554
3663
|
{
|
|
3555
3664
|
"name": "tier",
|
|
3556
3665
|
"docs": [
|
|
3557
|
-
"Tier number used for the membership PDA (
|
|
3666
|
+
"Tier number used for the membership PDA (0..=4)"
|
|
3558
3667
|
],
|
|
3559
3668
|
"type": "u8"
|
|
3560
3669
|
},
|
|
@@ -3645,7 +3754,7 @@
|
|
|
3645
3754
|
{
|
|
3646
3755
|
"name": "tier",
|
|
3647
3756
|
"docs": [
|
|
3648
|
-
"Tier number used for the membership PDA (
|
|
3757
|
+
"Tier number used for the membership PDA (0..=4)"
|
|
3649
3758
|
],
|
|
3650
3759
|
"type": "u8"
|
|
3651
3760
|
},
|
|
@@ -3691,6 +3800,13 @@
|
|
|
3691
3800
|
],
|
|
3692
3801
|
"type": "pubkey"
|
|
3693
3802
|
},
|
|
3803
|
+
{
|
|
3804
|
+
"name": "referral_count",
|
|
3805
|
+
"docs": [
|
|
3806
|
+
"Total number of successful referrals for this membership (incremented when others join with this member as referrer)"
|
|
3807
|
+
],
|
|
3808
|
+
"type": "u64"
|
|
3809
|
+
},
|
|
3694
3810
|
{
|
|
3695
3811
|
"name": "season_number",
|
|
3696
3812
|
"docs": [
|
package/dist/index.d.ts
CHANGED
|
@@ -44,6 +44,7 @@ export * from "./utils/conversions";
|
|
|
44
44
|
export * from "./utils/transactionBuilder";
|
|
45
45
|
export * from "./utils/simulationHelpers";
|
|
46
46
|
export * from "./utils/enumHelpers";
|
|
47
|
+
export * from "./utils/programErrors";
|
|
47
48
|
export { PDAManager } from "./utils/pdaManager";
|
|
48
49
|
export * from "./optimistic";
|
|
49
50
|
export * from "./constants/season";
|
package/dist/index.js
CHANGED
|
@@ -83,6 +83,7 @@ __exportStar(require("./utils/conversions"), exports);
|
|
|
83
83
|
__exportStar(require("./utils/transactionBuilder"), exports);
|
|
84
84
|
__exportStar(require("./utils/simulationHelpers"), exports);
|
|
85
85
|
__exportStar(require("./utils/enumHelpers"), exports);
|
|
86
|
+
__exportStar(require("./utils/programErrors"), exports);
|
|
86
87
|
var pdaManager_1 = require("./utils/pdaManager");
|
|
87
88
|
Object.defineProperty(exports, "PDAManager", { enumerable: true, get: function () { return pdaManager_1.PDAManager; } });
|
|
88
89
|
// Export optimistic updates
|
|
@@ -11,7 +11,7 @@ export interface ClaimReferralPenaltyForWindowOptions {
|
|
|
11
11
|
referredUser: PublicKey;
|
|
12
12
|
seasonNumber: BN;
|
|
13
13
|
windowNumber: WindowNumberLike;
|
|
14
|
-
/** Tier number:
|
|
14
|
+
/** Tier number: 0=copper, 1=silver, 2=gold, 3=platinum, 4=mithril */
|
|
15
15
|
tier: TierNumber;
|
|
16
16
|
feePayer?: PublicKey;
|
|
17
17
|
/**
|
|
@@ -39,7 +39,8 @@ async function claimReferralPenaltyForWindow(options) {
|
|
|
39
39
|
options.seasonNumber, windowNumber, options.referredUser, options.tier)
|
|
40
40
|
.accounts(accounts)
|
|
41
41
|
.instruction();
|
|
42
|
-
const
|
|
42
|
+
const feePayer = (0, signerHelpers_1.getDefaultFeePayer)(options.feePayer);
|
|
43
|
+
const signers = (0, signerHelpers_1.buildSigners)([(0, signerHelpers_1.asClaimantSigner)(options.claimant)], feePayer);
|
|
43
44
|
// OPTIMISTIC UPDATES
|
|
44
45
|
let updatedAccounts = undefined;
|
|
45
46
|
const curr = options.currentAccounts;
|
|
@@ -24,11 +24,9 @@ export interface ClaimWindowRewardsOptions {
|
|
|
24
24
|
connection: Connection;
|
|
25
25
|
user: PublicKey;
|
|
26
26
|
userTokenAccount: PublicKey;
|
|
27
|
-
/** Referrer token account to receive referral share (only used when membership.referrer != default) */
|
|
28
|
-
referrerTokenAccount?: PublicKey;
|
|
29
27
|
seasonNumber: BN;
|
|
30
28
|
windowNumber: WindowNumberLike;
|
|
31
|
-
/** Tier number:
|
|
29
|
+
/** Tier number: 0=copper, 1=silver, 2=gold, 3=platinum, 4=mithril */
|
|
32
30
|
tier: TierNumber;
|
|
33
31
|
feePayer?: PublicKey;
|
|
34
32
|
currentAccounts?: {
|
|
@@ -2,11 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.claimWindowRewards = claimWindowRewards;
|
|
4
4
|
const anchor_1 = require("@coral-xyz/anchor");
|
|
5
|
-
const web3_js_1 = require("@solana/web3.js");
|
|
6
5
|
const spl_token_1 = require("@solana/spl-token");
|
|
7
6
|
const pdaManager_1 = require("../utils/pdaManager");
|
|
8
7
|
const constants_1 = require("../utils/constants");
|
|
9
|
-
const tierPenalty_1 = require("../utils/tierPenalty");
|
|
10
8
|
const programHelpers_1 = require("../utils/programHelpers");
|
|
11
9
|
const signerHelpers_1 = require("../utils/signerHelpers");
|
|
12
10
|
const optimistic_1 = require("../optimistic");
|
|
@@ -39,8 +37,6 @@ async function claimWindowRewards(options) {
|
|
|
39
37
|
seasonDepositVault: pdas.seasonDepositVault,
|
|
40
38
|
mizdMint: constants_1.MIZD_TOKEN_MINT,
|
|
41
39
|
userTokenAccount: options.userTokenAccount,
|
|
42
|
-
// Always provide something; on-chain will only validate/use when referrer exists.
|
|
43
|
-
referrerTokenAccount: options.referrerTokenAccount ?? options.userTokenAccount,
|
|
44
40
|
user: options.user,
|
|
45
41
|
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
|
|
46
42
|
};
|
|
@@ -49,7 +45,8 @@ async function claimWindowRewards(options) {
|
|
|
49
45
|
.claimWindowRewards(options.seasonNumber, windowNumber, options.tier)
|
|
50
46
|
.accounts(accounts)
|
|
51
47
|
.instruction();
|
|
52
|
-
const
|
|
48
|
+
const feePayer = (0, signerHelpers_1.getDefaultFeePayer)(options.feePayer);
|
|
49
|
+
const signers = (0, signerHelpers_1.buildSigners)([(0, signerHelpers_1.asUserSigner)(options.user)], feePayer);
|
|
53
50
|
// OPTIMISTIC UPDATES
|
|
54
51
|
const curr = options.currentAccounts || {};
|
|
55
52
|
let updatedAccounts = undefined;
|
|
@@ -60,16 +57,8 @@ async function claimWindowRewards(options) {
|
|
|
60
57
|
? (0, optimistic_1.updateWindowForFinalization)(curr.rewardWindow, eligibleStakeX)
|
|
61
58
|
: curr.rewardWindow;
|
|
62
59
|
const rewardAmount = updatedRewardWindow.rewardPerPoster;
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
const tierPenaltyPerWindow = curr.seasonMembership
|
|
66
|
-
? (0, tierPenalty_1.getTierPenaltyPerWindow)(curr.seasonMembership.depositTier)
|
|
67
|
-
: new anchor_1.BN(0);
|
|
68
|
-
const bonus = rewardAmount.gt(tierPenaltyPerWindow)
|
|
69
|
-
? rewardAmount.sub(tierPenaltyPerWindow)
|
|
70
|
-
: new anchor_1.BN(0);
|
|
71
|
-
const referralCut = hasReferrer ? bonus.divn(10) : new anchor_1.BN(0);
|
|
72
|
-
const userRewardAmount = rewardAmount.sub(referralCut);
|
|
60
|
+
// Referral reward split removed on-chain: user always receives full rewardAmount.
|
|
61
|
+
const userRewardAmount = rewardAmount;
|
|
73
62
|
const updatedSeason = !curr.rewardWindow.isFinalized
|
|
74
63
|
? {
|
|
75
64
|
...curr.season,
|
|
@@ -8,6 +8,7 @@ exports.closeUserWindowParticipation = closeUserWindowParticipation;
|
|
|
8
8
|
exports.closeReferralPenaltyClaim = closeReferralPenaltyClaim;
|
|
9
9
|
const programHelpers_1 = require("../utils/programHelpers");
|
|
10
10
|
const signerHelpers_1 = require("../utils/signerHelpers");
|
|
11
|
+
const instructionResultHelpers_1 = require("../utils/instructionResultHelpers");
|
|
11
12
|
/**
|
|
12
13
|
* Close a Miztake account
|
|
13
14
|
*/
|
|
@@ -21,8 +22,9 @@ async function closeMiztake(options) {
|
|
|
21
22
|
.closeMiztake()
|
|
22
23
|
.accounts(accounts)
|
|
23
24
|
.instruction();
|
|
24
|
-
const
|
|
25
|
-
|
|
25
|
+
const feePayer = (0, signerHelpers_1.resolveFeePayer)({ feePayer: options.feePayer, admin: options.admin });
|
|
26
|
+
const signers = (0, signerHelpers_1.buildSigners)([(0, signerHelpers_1.asAdminSigner)(options.admin)], feePayer);
|
|
27
|
+
return (0, instructionResultHelpers_1.singleInstruction)(instruction, { signers });
|
|
26
28
|
}
|
|
27
29
|
/**
|
|
28
30
|
* Close a UserStats account
|
|
@@ -37,8 +39,9 @@ async function closeUserStats(options) {
|
|
|
37
39
|
.closeUserStats()
|
|
38
40
|
.accounts(accounts)
|
|
39
41
|
.instruction();
|
|
40
|
-
const
|
|
41
|
-
|
|
42
|
+
const feePayer = (0, signerHelpers_1.resolveFeePayer)({ feePayer: options.feePayer, admin: options.admin });
|
|
43
|
+
const signers = (0, signerHelpers_1.buildSigners)([(0, signerHelpers_1.asAdminSigner)(options.admin)], feePayer);
|
|
44
|
+
return (0, instructionResultHelpers_1.singleInstruction)(instruction, { signers });
|
|
42
45
|
}
|
|
43
46
|
/**
|
|
44
47
|
* Close a SeasonMembership account
|
|
@@ -53,8 +56,9 @@ async function closeSeasonMembership(options) {
|
|
|
53
56
|
.closeSeasonMembership()
|
|
54
57
|
.accounts(accounts)
|
|
55
58
|
.instruction();
|
|
56
|
-
const
|
|
57
|
-
|
|
59
|
+
const feePayer = (0, signerHelpers_1.resolveFeePayer)({ feePayer: options.feePayer, admin: options.admin });
|
|
60
|
+
const signers = (0, signerHelpers_1.buildSigners)([(0, signerHelpers_1.asAdminSigner)(options.admin)], feePayer);
|
|
61
|
+
return (0, instructionResultHelpers_1.singleInstruction)(instruction, { signers });
|
|
58
62
|
}
|
|
59
63
|
/**
|
|
60
64
|
* Close a RewardWindow account
|
|
@@ -69,8 +73,9 @@ async function closeRewardWindow(options) {
|
|
|
69
73
|
.closeRewardWindow()
|
|
70
74
|
.accounts(accounts)
|
|
71
75
|
.instruction();
|
|
72
|
-
const
|
|
73
|
-
|
|
76
|
+
const feePayer = (0, signerHelpers_1.resolveFeePayer)({ feePayer: options.feePayer, admin: options.admin });
|
|
77
|
+
const signers = (0, signerHelpers_1.buildSigners)([(0, signerHelpers_1.asAdminSigner)(options.admin)], feePayer);
|
|
78
|
+
return (0, instructionResultHelpers_1.singleInstruction)(instruction, { signers });
|
|
74
79
|
}
|
|
75
80
|
/**
|
|
76
81
|
* Close a UserWindowParticipation account
|
|
@@ -85,8 +90,9 @@ async function closeUserWindowParticipation(options) {
|
|
|
85
90
|
.closeUserWindowParticipation()
|
|
86
91
|
.accounts(accounts)
|
|
87
92
|
.instruction();
|
|
88
|
-
const
|
|
89
|
-
|
|
93
|
+
const feePayer = (0, signerHelpers_1.resolveFeePayer)({ feePayer: options.feePayer, admin: options.admin });
|
|
94
|
+
const signers = (0, signerHelpers_1.buildSigners)([(0, signerHelpers_1.asAdminSigner)(options.admin)], feePayer);
|
|
95
|
+
return (0, instructionResultHelpers_1.singleInstruction)(instruction, { signers });
|
|
90
96
|
}
|
|
91
97
|
/**
|
|
92
98
|
* Close a ReferralPenaltyClaim account
|
|
@@ -101,6 +107,7 @@ async function closeReferralPenaltyClaim(options) {
|
|
|
101
107
|
.closeReferralPenaltyClaim()
|
|
102
108
|
.accounts(accounts)
|
|
103
109
|
.instruction();
|
|
104
|
-
const
|
|
105
|
-
|
|
110
|
+
const feePayer = (0, signerHelpers_1.resolveFeePayer)({ feePayer: options.feePayer, admin: options.admin });
|
|
111
|
+
const signers = (0, signerHelpers_1.buildSigners)([(0, signerHelpers_1.asAdminSigner)(options.admin)], feePayer);
|
|
112
|
+
return (0, instructionResultHelpers_1.singleInstruction)(instruction, { signers });
|
|
106
113
|
}
|
|
@@ -18,7 +18,7 @@ export interface ConfirmedPostOnXOptions {
|
|
|
18
18
|
adminKey: PublicKey;
|
|
19
19
|
user: PublicKey;
|
|
20
20
|
seasonNumber: BN;
|
|
21
|
-
/** Tier number:
|
|
21
|
+
/** Tier number: 0=copper, 1=silver, 2=gold, 3=platinum, 4=mithril */
|
|
22
22
|
tier: TierNumber;
|
|
23
23
|
windowNumber: WindowNumberLike;
|
|
24
24
|
/** SHA-256 hex string (64 chars). On-chain expects the raw 32-byte digest. */
|
|
@@ -42,7 +42,11 @@ async function confirmedPostOnX(options) {
|
|
|
42
42
|
.confirmedPostOnX(options.user, options.tier, windowNumber, Array.from((0, conversions_1.sha256HexToBytes32)(options.miztakeShaHash)))
|
|
43
43
|
.accounts(accounts)
|
|
44
44
|
.instruction();
|
|
45
|
-
const
|
|
45
|
+
const feePayer = (0, signerHelpers_1.resolveFeePayer)({
|
|
46
|
+
feePayer: options.feePayer,
|
|
47
|
+
admin: options.adminKey,
|
|
48
|
+
});
|
|
49
|
+
const signers = (0, signerHelpers_1.buildSigners)([(0, signerHelpers_1.asAdminSigner)(options.adminKey)], feePayer);
|
|
46
50
|
// OPTIMISTIC UPDATES
|
|
47
51
|
let updatedAccounts = undefined;
|
|
48
52
|
if (options.isOnTime !== undefined &&
|
|
@@ -12,7 +12,7 @@ export interface CreateMiztakeOptions {
|
|
|
12
12
|
admin: PublicKey;
|
|
13
13
|
seasonNumber: BN;
|
|
14
14
|
windowNumber: WindowNumberLike;
|
|
15
|
-
/** Tier number:
|
|
15
|
+
/** Tier number: 0=copper, 1=silver, 2=gold, 3=platinum, 4=mithril */
|
|
16
16
|
tier: TierNumber;
|
|
17
17
|
/** Optional injected timestamp (seconds) for optimistic state calculation */
|
|
18
18
|
now?: BN;
|
|
@@ -77,10 +77,14 @@ async function createMiztake(options) {
|
|
|
77
77
|
.accounts(accounts)
|
|
78
78
|
.instruction();
|
|
79
79
|
// Build signers
|
|
80
|
+
const feePayer = (0, signerHelpers_1.resolveFeePayer)({
|
|
81
|
+
feePayer: options.feePayer,
|
|
82
|
+
admin: options.admin,
|
|
83
|
+
});
|
|
80
84
|
const signers = (0, signerHelpers_1.buildSigners)([
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
],
|
|
85
|
+
(0, signerHelpers_1.asUserSigner)(options.user),
|
|
86
|
+
(0, signerHelpers_1.asAdminSigner)(options.admin),
|
|
87
|
+
], feePayer);
|
|
84
88
|
// OPTIMISTIC UPDATES
|
|
85
89
|
const now = (0, optimistic_1.getCurrentTimestamp)(options.now);
|
|
86
90
|
const curr = options.currentAccounts || {};
|
|
@@ -7,6 +7,7 @@ const pdas_1 = require("../utils/pdas");
|
|
|
7
7
|
const constants_1 = require("../utils/constants");
|
|
8
8
|
const programHelpers_1 = require("../utils/programHelpers");
|
|
9
9
|
const signerHelpers_1 = require("../utils/signerHelpers");
|
|
10
|
+
const instructionResultHelpers_1 = require("../utils/instructionResultHelpers");
|
|
10
11
|
/**
|
|
11
12
|
* Initialize season escrow vault
|
|
12
13
|
*
|
|
@@ -27,10 +28,10 @@ async function initializeEscrowVault(connection, admin, seasonNumber, feePayer)
|
|
|
27
28
|
.initializeEscrowVault(seasonNumber)
|
|
28
29
|
.accounts(accounts)
|
|
29
30
|
.instruction();
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
|
|
31
|
+
const actualFeePayer = (0, signerHelpers_1.resolveFeePayer)({ feePayer, admin });
|
|
32
|
+
const signers = (0, signerHelpers_1.buildSigners)([(0, signerHelpers_1.asAdminSigner)(admin)], actualFeePayer);
|
|
33
|
+
return (0, instructionResultHelpers_1.singleInstruction)(instruction, {
|
|
33
34
|
signers,
|
|
34
35
|
pdas: { vault: vaultPda },
|
|
35
|
-
};
|
|
36
|
+
});
|
|
36
37
|
}
|
|
@@ -5,6 +5,7 @@ const web3_js_1 = require("@solana/web3.js");
|
|
|
5
5
|
const pdas_1 = require("../utils/pdas");
|
|
6
6
|
const programHelpers_1 = require("../utils/programHelpers");
|
|
7
7
|
const signerHelpers_1 = require("../utils/signerHelpers");
|
|
8
|
+
const instructionResultHelpers_1 = require("../utils/instructionResultHelpers");
|
|
8
9
|
const conversions_1 = require("../utils/conversions");
|
|
9
10
|
/**
|
|
10
11
|
* Initialize (materialize) a missing RewardWindow PDA (root-admin only).
|
|
@@ -30,10 +31,10 @@ async function initializeRewardWindow(options) {
|
|
|
30
31
|
.initializeRewardWindow(seasonNumberBn, windowNumberBn)
|
|
31
32
|
.accounts(accounts)
|
|
32
33
|
.instruction();
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
const feePayer = (0, signerHelpers_1.resolveFeePayer)({ feePayer: options.feePayer, admin: options.admin });
|
|
35
|
+
const signers = (0, signerHelpers_1.buildSigners)([(0, signerHelpers_1.asAdminSigner)(options.admin)], feePayer);
|
|
36
|
+
return (0, instructionResultHelpers_1.singleInstruction)(instruction, {
|
|
36
37
|
signers,
|
|
37
38
|
pdas: { seasonSettings, season, rewardWindow },
|
|
38
|
-
};
|
|
39
|
+
});
|
|
39
40
|
}
|
|
@@ -5,6 +5,7 @@ const web3_js_1 = require("@solana/web3.js");
|
|
|
5
5
|
const pdas_1 = require("../utils/pdas");
|
|
6
6
|
const programHelpers_1 = require("../utils/programHelpers");
|
|
7
7
|
const signerHelpers_1 = require("../utils/signerHelpers");
|
|
8
|
+
const instructionResultHelpers_1 = require("../utils/instructionResultHelpers");
|
|
8
9
|
/**
|
|
9
10
|
* Initialize season settings
|
|
10
11
|
*
|
|
@@ -28,12 +29,10 @@ async function initializeSeasonSettings(connection, admin, feePayer) {
|
|
|
28
29
|
.initializeSeasonSettings()
|
|
29
30
|
.accounts(accounts)
|
|
30
31
|
.instruction();
|
|
31
|
-
const
|
|
32
|
-
|
|
33
|
-
|
|
32
|
+
const actualFeePayer = (0, signerHelpers_1.resolveFeePayer)({ feePayer, admin });
|
|
33
|
+
const signers = (0, signerHelpers_1.buildSigners)([(0, signerHelpers_1.asAdminSigner)(admin)], actualFeePayer);
|
|
34
|
+
return (0, instructionResultHelpers_1.singleInstruction)(instruction, {
|
|
34
35
|
signers,
|
|
35
|
-
pdas: {
|
|
36
|
-
|
|
37
|
-
},
|
|
38
|
-
};
|
|
36
|
+
pdas: { seasonSettings: seasonSettingsPda },
|
|
37
|
+
});
|
|
39
38
|
}
|