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
|
@@ -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 deposit vault
|
|
12
13
|
*
|
|
@@ -32,12 +33,10 @@ async function initializeSeasonVault(connection, admin, seasonNumber, feePayer)
|
|
|
32
33
|
.initializeSeasonVault(seasonNumber)
|
|
33
34
|
.accounts(accounts)
|
|
34
35
|
.instruction();
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
const actualFeePayer = (0, signerHelpers_1.resolveFeePayer)({ feePayer, admin });
|
|
37
|
+
const signers = (0, signerHelpers_1.buildSigners)([(0, signerHelpers_1.asAdminSigner)(admin)], actualFeePayer);
|
|
38
|
+
return (0, instructionResultHelpers_1.singleInstruction)(instruction, {
|
|
38
39
|
signers,
|
|
39
|
-
pdas: {
|
|
40
|
-
|
|
41
|
-
},
|
|
42
|
-
};
|
|
40
|
+
pdas: { vault: vaultPda },
|
|
41
|
+
});
|
|
43
42
|
}
|
|
@@ -8,6 +8,7 @@ const pdas_1 = require("../utils/pdas");
|
|
|
8
8
|
const idl_1 = require("../idl/idl");
|
|
9
9
|
const anchorHelpers_1 = require("../utils/anchorHelpers");
|
|
10
10
|
const signerHelpers_1 = require("../utils/signerHelpers");
|
|
11
|
+
const instructionResultHelpers_1 = require("../utils/instructionResultHelpers");
|
|
11
12
|
/**
|
|
12
13
|
* Initialize the global statistics PDA
|
|
13
14
|
*
|
|
@@ -46,17 +47,16 @@ async function initializeStatistics(connection, admin, payer) {
|
|
|
46
47
|
.accounts(accounts)
|
|
47
48
|
.instruction();
|
|
48
49
|
// Build signers list (admin always; payer if distinct)
|
|
49
|
-
const required = [
|
|
50
|
+
const required = [(0, signerHelpers_1.asAdminSigner)(admin)];
|
|
50
51
|
if (!actualPayer.equals(admin)) {
|
|
51
|
-
required.push(
|
|
52
|
+
required.push((0, signerHelpers_1.asPayerSigner)(actualPayer));
|
|
52
53
|
}
|
|
53
54
|
const signers = (0, signerHelpers_1.buildSigners)(required);
|
|
54
|
-
return {
|
|
55
|
-
instructions: [instruction],
|
|
55
|
+
return (0, instructionResultHelpers_1.singleInstruction)(instruction, {
|
|
56
56
|
signers,
|
|
57
57
|
pdas: { miztakeStatistics: miztakeStatisticsPda },
|
|
58
58
|
miztakeStatisticsPda, // Back-compat alias
|
|
59
|
-
};
|
|
59
|
+
});
|
|
60
60
|
}
|
|
61
61
|
/**
|
|
62
62
|
* Check if statistics are already initialized
|
|
@@ -10,7 +10,7 @@ export interface JoinSeasonOptions {
|
|
|
10
10
|
user: PublicKey;
|
|
11
11
|
userTokenAccount: PublicKey;
|
|
12
12
|
seasonNumber: BN;
|
|
13
|
-
/** Tier number:
|
|
13
|
+
/** Tier number: 0=copper, 1=silver, 2=gold, 3=platinum, 4=mithril */
|
|
14
14
|
tier: TierNumber;
|
|
15
15
|
/** Optional referrer (PublicKey.default means no referrer) */
|
|
16
16
|
referrer?: PublicKey;
|
|
@@ -13,6 +13,7 @@ const optimistic_1 = require("../optimistic");
|
|
|
13
13
|
const pdas_1 = require("../utils/pdas");
|
|
14
14
|
const tierPenalty_1 = require("../utils/tierPenalty");
|
|
15
15
|
const enumHelpers_1 = require("../utils/enumHelpers");
|
|
16
|
+
const remainingAccounts_1 = require("../utils/remainingAccounts");
|
|
16
17
|
/**
|
|
17
18
|
* Join a season
|
|
18
19
|
*
|
|
@@ -30,6 +31,7 @@ async function joinSeason(options) {
|
|
|
30
31
|
seasonNumber: options.seasonNumber,
|
|
31
32
|
tier: options.tier,
|
|
32
33
|
});
|
|
34
|
+
const rootAdminTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(constants_1.MIZD_TOKEN_MINT, constants_1.ADMIN_PUBLIC_KEY);
|
|
33
35
|
const accounts = {
|
|
34
36
|
seasonSettings: pdas.seasonSettings,
|
|
35
37
|
season: pdas.season,
|
|
@@ -37,17 +39,30 @@ async function joinSeason(options) {
|
|
|
37
39
|
seasonDepositVault: pdas.seasonDepositVault,
|
|
38
40
|
seasonEscrowVault: pdas.seasonEscrowVault,
|
|
39
41
|
mizdMint: constants_1.MIZD_TOKEN_MINT,
|
|
42
|
+
rootAdmin: constants_1.ADMIN_PUBLIC_KEY,
|
|
43
|
+
rootAdminTokenAccount,
|
|
40
44
|
userTokenAccount: options.userTokenAccount,
|
|
41
45
|
user: options.user,
|
|
46
|
+
associatedTokenProgram: spl_token_1.ASSOCIATED_TOKEN_PROGRAM_ID,
|
|
42
47
|
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
|
|
43
48
|
systemProgram: web3_js_1.SystemProgram.programId,
|
|
44
49
|
};
|
|
45
|
-
const
|
|
50
|
+
const referrer = options.referrer ?? web3_js_1.PublicKey.default;
|
|
51
|
+
const remainingAccounts = (0, remainingAccounts_1.getJoinSeasonRemainingAccounts)({
|
|
52
|
+
seasonNumber: options.seasonNumber,
|
|
53
|
+
tier: options.tier,
|
|
54
|
+
referrer,
|
|
55
|
+
});
|
|
56
|
+
const methodBuilder = program.methods
|
|
46
57
|
// Anchor expects BN for u64 args.
|
|
47
|
-
.joinSeason(options.seasonNumber, options.tier,
|
|
48
|
-
.accounts(accounts)
|
|
49
|
-
|
|
50
|
-
|
|
58
|
+
.joinSeason(options.seasonNumber, options.tier, referrer)
|
|
59
|
+
.accounts(accounts);
|
|
60
|
+
if (remainingAccounts.length > 0) {
|
|
61
|
+
methodBuilder.remainingAccounts(remainingAccounts);
|
|
62
|
+
}
|
|
63
|
+
const instruction = await methodBuilder.instruction();
|
|
64
|
+
const feePayer = (0, signerHelpers_1.getDefaultFeePayer)(options.feePayer);
|
|
65
|
+
const signers = (0, signerHelpers_1.buildSigners)([(0, signerHelpers_1.asUserSigner)(options.user)], feePayer);
|
|
51
66
|
// OPTIMISTIC UPDATES
|
|
52
67
|
const curr = options.currentAccounts || {};
|
|
53
68
|
const now = (0, optimistic_1.getCurrentTimestamp)(options.now);
|
|
@@ -5,6 +5,7 @@ const pdas_1 = require("../utils/pdas");
|
|
|
5
5
|
const programHelpers_1 = require("../utils/programHelpers");
|
|
6
6
|
const signerHelpers_1 = require("../utils/signerHelpers");
|
|
7
7
|
const optimistic_1 = require("../optimistic");
|
|
8
|
+
const instructionResultHelpers_1 = require("../utils/instructionResultHelpers");
|
|
8
9
|
/**
|
|
9
10
|
* Toggle season system pause
|
|
10
11
|
*
|
|
@@ -28,16 +29,14 @@ async function toggleSeasonPause(connection, admin, feePayer, seasonSettings) {
|
|
|
28
29
|
.toggleSeasonPause()
|
|
29
30
|
.accounts(accounts)
|
|
30
31
|
.instruction();
|
|
31
|
-
const
|
|
32
|
+
const actualFeePayer = (0, signerHelpers_1.resolveFeePayer)({ feePayer, admin });
|
|
33
|
+
const signers = (0, signerHelpers_1.buildSigners)([(0, signerHelpers_1.asAdminSigner)(admin)], actualFeePayer);
|
|
32
34
|
const updatedSettings = seasonSettings
|
|
33
35
|
? (0, optimistic_1.updateSeasonSettingsForPauseToggle)(seasonSettings)
|
|
34
36
|
: undefined;
|
|
35
|
-
return {
|
|
36
|
-
instructions: [instruction],
|
|
37
|
+
return (0, instructionResultHelpers_1.singleInstruction)(instruction, {
|
|
37
38
|
signers,
|
|
38
39
|
pdas: { seasonSettings: seasonSettingsPda },
|
|
39
|
-
...(updatedSettings && {
|
|
40
|
-
|
|
41
|
-
}),
|
|
42
|
-
};
|
|
40
|
+
...(updatedSettings && { updatedAccounts: { seasonSettings: updatedSettings } }),
|
|
41
|
+
});
|
|
43
42
|
}
|
|
@@ -5,6 +5,7 @@ const pdas_1 = require("../utils/pdas");
|
|
|
5
5
|
const programHelpers_1 = require("../utils/programHelpers");
|
|
6
6
|
const signerHelpers_1 = require("../utils/signerHelpers");
|
|
7
7
|
const optimistic_1 = require("../optimistic");
|
|
8
|
+
const instructionResultHelpers_1 = require("../utils/instructionResultHelpers");
|
|
8
9
|
/**
|
|
9
10
|
* Update season admin
|
|
10
11
|
*
|
|
@@ -29,16 +30,14 @@ async function updateSeasonAdmin(connection, currentAdmin, newAdmin, feePayer, s
|
|
|
29
30
|
.updateSeasonAdmin(newAdmin)
|
|
30
31
|
.accounts(accounts)
|
|
31
32
|
.instruction();
|
|
32
|
-
const
|
|
33
|
+
const actualFeePayer = (0, signerHelpers_1.resolveFeePayer)({ feePayer, admin: currentAdmin });
|
|
34
|
+
const signers = (0, signerHelpers_1.buildSigners)([(0, signerHelpers_1.asCurrentAdminSigner)(currentAdmin)], actualFeePayer);
|
|
33
35
|
const updatedSettings = seasonSettings
|
|
34
36
|
? (0, optimistic_1.updateSeasonSettingsForAdminUpdate)(seasonSettings, newAdmin)
|
|
35
37
|
: undefined;
|
|
36
|
-
return {
|
|
37
|
-
instructions: [instruction],
|
|
38
|
+
return (0, instructionResultHelpers_1.singleInstruction)(instruction, {
|
|
38
39
|
signers,
|
|
39
40
|
pdas: { seasonSettings: seasonSettingsPda },
|
|
40
|
-
...(updatedSettings && {
|
|
41
|
-
|
|
42
|
-
}),
|
|
43
|
-
};
|
|
41
|
+
...(updatedSettings && { updatedAccounts: { seasonSettings: updatedSettings } }),
|
|
42
|
+
});
|
|
44
43
|
}
|
|
@@ -10,7 +10,7 @@ import { SeasonMembershipStatusView, TierNumber } from "../types";
|
|
|
10
10
|
* @param connection - Solana connection
|
|
11
11
|
* @param user - User's public key
|
|
12
12
|
* @param seasonNumber - Season number
|
|
13
|
-
* @param tier - Tier number:
|
|
13
|
+
* @param tier - Tier number: 0=copper, 1=silver, 2=gold, 3=platinum, 4=mithril
|
|
14
14
|
* @returns View data with membership status
|
|
15
15
|
*/
|
|
16
16
|
export declare function viewSeasonMembershipStatus(connection: Connection, user: PublicKey, seasonNumber: BN, tier: TierNumber): Promise<SeasonMembershipStatusView>;
|
|
@@ -12,7 +12,7 @@ const programHelpers_1 = require("../utils/programHelpers");
|
|
|
12
12
|
* @param connection - Solana connection
|
|
13
13
|
* @param user - User's public key
|
|
14
14
|
* @param seasonNumber - Season number
|
|
15
|
-
* @param tier - Tier number:
|
|
15
|
+
* @param tier - Tier number: 0=copper, 1=silver, 2=gold, 3=platinum, 4=mithril
|
|
16
16
|
* @returns View data with membership status
|
|
17
17
|
*/
|
|
18
18
|
async function viewSeasonMembershipStatus(connection, user, seasonNumber, tier) {
|
|
@@ -15,7 +15,7 @@ export interface WithdrawSeasonDepositOptions {
|
|
|
15
15
|
user: PublicKey;
|
|
16
16
|
userTokenAccount: PublicKey;
|
|
17
17
|
seasonNumber: BN;
|
|
18
|
-
/** Tier number:
|
|
18
|
+
/** Tier number: 0=copper, 1=silver, 2=gold, 3=platinum, 4=mithril */
|
|
19
19
|
tier: TierNumber;
|
|
20
20
|
feePayer?: PublicKey;
|
|
21
21
|
currentAccounts?: {
|
|
@@ -40,7 +40,8 @@ async function withdrawSeasonDeposit(options) {
|
|
|
40
40
|
.withdrawSeasonDeposit(options.tier)
|
|
41
41
|
.accounts(accounts)
|
|
42
42
|
.instruction();
|
|
43
|
-
const
|
|
43
|
+
const feePayer = (0, signerHelpers_1.getDefaultFeePayer)(options.feePayer);
|
|
44
|
+
const signers = (0, signerHelpers_1.buildSigners)([(0, signerHelpers_1.asUserSigner)(options.user)], feePayer);
|
|
44
45
|
// OPTIMISTIC UPDATES
|
|
45
46
|
let withdrawalAmount;
|
|
46
47
|
let updatedAccounts = undefined;
|
|
@@ -55,8 +55,11 @@ export interface JoinSeasonAccounts {
|
|
|
55
55
|
seasonDepositVault: PublicKey;
|
|
56
56
|
seasonEscrowVault: PublicKey;
|
|
57
57
|
mizdMint: PublicKey;
|
|
58
|
+
rootAdmin: PublicKey;
|
|
59
|
+
rootAdminTokenAccount: PublicKey;
|
|
58
60
|
userTokenAccount: PublicKey;
|
|
59
61
|
user: PublicKey;
|
|
62
|
+
associatedTokenProgram: PublicKey;
|
|
60
63
|
tokenProgram: PublicKey;
|
|
61
64
|
systemProgram: PublicKey;
|
|
62
65
|
}
|
|
@@ -78,7 +81,6 @@ export interface ClaimWindowRewardsAccounts {
|
|
|
78
81
|
seasonDepositVault: PublicKey;
|
|
79
82
|
mizdMint: PublicKey;
|
|
80
83
|
userTokenAccount: PublicKey;
|
|
81
|
-
referrerTokenAccount: PublicKey;
|
|
82
84
|
user: PublicKey;
|
|
83
85
|
tokenProgram: PublicKey;
|
|
84
86
|
}
|
|
@@ -314,10 +314,6 @@ export type ProofOfTake = {
|
|
|
314
314
|
"name": "userTokenAccount";
|
|
315
315
|
"writable": true;
|
|
316
316
|
},
|
|
317
|
-
{
|
|
318
|
-
"name": "referrerTokenAccount";
|
|
319
|
-
"writable": true;
|
|
320
|
-
},
|
|
321
317
|
{
|
|
322
318
|
"name": "user";
|
|
323
319
|
"signer": true;
|
|
@@ -1602,6 +1598,100 @@ export type ProofOfTake = {
|
|
|
1602
1598
|
"name": "mizdMint";
|
|
1603
1599
|
"address": "mizdS9fDNUKWZcXBeRhJoJQHJJmsTeF4fFRyPdXWv99";
|
|
1604
1600
|
},
|
|
1601
|
+
{
|
|
1602
|
+
"name": "rootAdmin";
|
|
1603
|
+
"address": "Lude4DE3jDXVViJ3s7bUfPXdXy8Zq7G1stMwHNQrc2s";
|
|
1604
|
+
},
|
|
1605
|
+
{
|
|
1606
|
+
"name": "rootAdminTokenAccount";
|
|
1607
|
+
"writable": true;
|
|
1608
|
+
"pda": {
|
|
1609
|
+
"seeds": [
|
|
1610
|
+
{
|
|
1611
|
+
"kind": "account";
|
|
1612
|
+
"path": "rootAdmin";
|
|
1613
|
+
},
|
|
1614
|
+
{
|
|
1615
|
+
"kind": "const";
|
|
1616
|
+
"value": [
|
|
1617
|
+
6,
|
|
1618
|
+
221,
|
|
1619
|
+
246,
|
|
1620
|
+
225,
|
|
1621
|
+
215,
|
|
1622
|
+
101,
|
|
1623
|
+
161,
|
|
1624
|
+
147,
|
|
1625
|
+
217,
|
|
1626
|
+
203,
|
|
1627
|
+
225,
|
|
1628
|
+
70,
|
|
1629
|
+
206,
|
|
1630
|
+
235,
|
|
1631
|
+
121,
|
|
1632
|
+
172,
|
|
1633
|
+
28,
|
|
1634
|
+
180,
|
|
1635
|
+
133,
|
|
1636
|
+
237,
|
|
1637
|
+
95,
|
|
1638
|
+
91,
|
|
1639
|
+
55,
|
|
1640
|
+
145,
|
|
1641
|
+
58,
|
|
1642
|
+
140,
|
|
1643
|
+
245,
|
|
1644
|
+
133,
|
|
1645
|
+
126,
|
|
1646
|
+
255,
|
|
1647
|
+
0,
|
|
1648
|
+
169
|
|
1649
|
+
];
|
|
1650
|
+
},
|
|
1651
|
+
{
|
|
1652
|
+
"kind": "account";
|
|
1653
|
+
"path": "mizdMint";
|
|
1654
|
+
}
|
|
1655
|
+
];
|
|
1656
|
+
"program": {
|
|
1657
|
+
"kind": "const";
|
|
1658
|
+
"value": [
|
|
1659
|
+
140,
|
|
1660
|
+
151,
|
|
1661
|
+
37,
|
|
1662
|
+
143,
|
|
1663
|
+
78,
|
|
1664
|
+
36,
|
|
1665
|
+
137,
|
|
1666
|
+
241,
|
|
1667
|
+
187,
|
|
1668
|
+
61,
|
|
1669
|
+
16,
|
|
1670
|
+
41,
|
|
1671
|
+
20,
|
|
1672
|
+
142,
|
|
1673
|
+
13,
|
|
1674
|
+
131,
|
|
1675
|
+
11,
|
|
1676
|
+
90,
|
|
1677
|
+
19,
|
|
1678
|
+
153,
|
|
1679
|
+
218,
|
|
1680
|
+
255,
|
|
1681
|
+
16,
|
|
1682
|
+
132,
|
|
1683
|
+
4,
|
|
1684
|
+
142,
|
|
1685
|
+
123,
|
|
1686
|
+
216,
|
|
1687
|
+
219,
|
|
1688
|
+
233,
|
|
1689
|
+
248,
|
|
1690
|
+
89
|
|
1691
|
+
];
|
|
1692
|
+
};
|
|
1693
|
+
};
|
|
1694
|
+
},
|
|
1605
1695
|
{
|
|
1606
1696
|
"name": "userTokenAccount";
|
|
1607
1697
|
"writable": true;
|
|
@@ -1611,6 +1701,10 @@ export type ProofOfTake = {
|
|
|
1611
1701
|
"writable": true;
|
|
1612
1702
|
"signer": true;
|
|
1613
1703
|
},
|
|
1704
|
+
{
|
|
1705
|
+
"name": "associatedTokenProgram";
|
|
1706
|
+
"address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL";
|
|
1707
|
+
},
|
|
1614
1708
|
{
|
|
1615
1709
|
"name": "tokenProgram";
|
|
1616
1710
|
"address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA";
|
|
@@ -2837,43 +2931,58 @@ export type ProofOfTake = {
|
|
|
2837
2931
|
},
|
|
2838
2932
|
{
|
|
2839
2933
|
"code": 6035;
|
|
2934
|
+
"name": "invalidReferrerMembership";
|
|
2935
|
+
"msg": "Invalid referrer season membership account";
|
|
2936
|
+
},
|
|
2937
|
+
{
|
|
2938
|
+
"code": 6036;
|
|
2840
2939
|
"name": "referralPenaltyAlreadyClaimed";
|
|
2841
2940
|
"msg": "Referral penalty already claimed for this user/window";
|
|
2842
2941
|
},
|
|
2843
2942
|
{
|
|
2844
|
-
"code":
|
|
2943
|
+
"code": 6037;
|
|
2845
2944
|
"name": "referralPenaltyClaimNotAvailableYet";
|
|
2846
2945
|
"msg": "Referral penalty claim not available yet (must wait until window end + claim buffer)";
|
|
2847
2946
|
},
|
|
2848
2947
|
{
|
|
2849
|
-
"code":
|
|
2948
|
+
"code": 6038;
|
|
2850
2949
|
"name": "referralPenaltyNotEligibleForWindow";
|
|
2851
2950
|
"msg": "Referred user was not eligible for this window";
|
|
2852
2951
|
},
|
|
2853
2952
|
{
|
|
2854
|
-
"code":
|
|
2953
|
+
"code": 6039;
|
|
2855
2954
|
"name": "referralPenaltyNoMissedPenalty";
|
|
2856
2955
|
"msg": "Referred user posted successfully (no penalty to claim)";
|
|
2857
2956
|
},
|
|
2858
2957
|
{
|
|
2859
|
-
"code":
|
|
2958
|
+
"code": 6040;
|
|
2860
2959
|
"name": "windowAlreadyFinalized";
|
|
2861
2960
|
"msg": "Window is already finalized";
|
|
2862
2961
|
},
|
|
2863
2962
|
{
|
|
2864
|
-
"code":
|
|
2963
|
+
"code": 6041;
|
|
2865
2964
|
"name": "windowNotEmpty";
|
|
2866
2965
|
"msg": "Window is not empty (has successful posters)";
|
|
2867
2966
|
},
|
|
2868
2967
|
{
|
|
2869
|
-
"code":
|
|
2968
|
+
"code": 6042;
|
|
2870
2969
|
"name": "calculationError";
|
|
2871
2970
|
"msg": "Calculation error";
|
|
2872
2971
|
},
|
|
2873
2972
|
{
|
|
2874
|
-
"code":
|
|
2973
|
+
"code": 6043;
|
|
2875
2974
|
"name": "insufficientFunds";
|
|
2876
2975
|
"msg": "Insufficient funds";
|
|
2976
|
+
},
|
|
2977
|
+
{
|
|
2978
|
+
"code": 6044;
|
|
2979
|
+
"name": "noWindowRewardsToClaim";
|
|
2980
|
+
"msg": "Nothing to claim for this window (reward amount is 0)";
|
|
2981
|
+
},
|
|
2982
|
+
{
|
|
2983
|
+
"code": 6045;
|
|
2984
|
+
"name": "noReferralPenaltyToClaim";
|
|
2985
|
+
"msg": "Nothing to claim for this window (referral penalty amount is 0)";
|
|
2877
2986
|
}
|
|
2878
2987
|
];
|
|
2879
2988
|
"types": [
|
|
@@ -3050,7 +3159,7 @@ export type ProofOfTake = {
|
|
|
3050
3159
|
{
|
|
3051
3160
|
"name": "tier";
|
|
3052
3161
|
"docs": [
|
|
3053
|
-
"Tier number used for the membership PDA (
|
|
3162
|
+
"Tier number used for the membership PDA (0..=4)"
|
|
3054
3163
|
];
|
|
3055
3164
|
"type": "u8";
|
|
3056
3165
|
},
|
|
@@ -3103,7 +3212,7 @@ export type ProofOfTake = {
|
|
|
3103
3212
|
{
|
|
3104
3213
|
"name": "tier";
|
|
3105
3214
|
"docs": [
|
|
3106
|
-
"Tier number used for the membership PDA (
|
|
3215
|
+
"Tier number used for the membership PDA (0..=4)"
|
|
3107
3216
|
];
|
|
3108
3217
|
"type": "u8";
|
|
3109
3218
|
},
|
|
@@ -3210,7 +3319,7 @@ export type ProofOfTake = {
|
|
|
3210
3319
|
{
|
|
3211
3320
|
"name": "tier";
|
|
3212
3321
|
"docs": [
|
|
3213
|
-
"Tier number used for the membership PDA (
|
|
3322
|
+
"Tier number used for the membership PDA (0..=4)"
|
|
3214
3323
|
];
|
|
3215
3324
|
"type": "u8";
|
|
3216
3325
|
},
|
|
@@ -3560,7 +3669,7 @@ export type ProofOfTake = {
|
|
|
3560
3669
|
{
|
|
3561
3670
|
"name": "tier";
|
|
3562
3671
|
"docs": [
|
|
3563
|
-
"Tier number used for the membership PDA (
|
|
3672
|
+
"Tier number used for the membership PDA (0..=4)"
|
|
3564
3673
|
];
|
|
3565
3674
|
"type": "u8";
|
|
3566
3675
|
},
|
|
@@ -3651,7 +3760,7 @@ export type ProofOfTake = {
|
|
|
3651
3760
|
{
|
|
3652
3761
|
"name": "tier";
|
|
3653
3762
|
"docs": [
|
|
3654
|
-
"Tier number used for the membership PDA (
|
|
3763
|
+
"Tier number used for the membership PDA (0..=4)"
|
|
3655
3764
|
];
|
|
3656
3765
|
"type": "u8";
|
|
3657
3766
|
},
|
|
@@ -3697,6 +3806,13 @@ export type ProofOfTake = {
|
|
|
3697
3806
|
];
|
|
3698
3807
|
"type": "pubkey";
|
|
3699
3808
|
},
|
|
3809
|
+
{
|
|
3810
|
+
"name": "referralCount";
|
|
3811
|
+
"docs": [
|
|
3812
|
+
"Total number of successful referrals for this membership (incremented when others join with this member as referrer)"
|
|
3813
|
+
];
|
|
3814
|
+
"type": "u64";
|
|
3815
|
+
},
|
|
3700
3816
|
{
|
|
3701
3817
|
"name": "seasonNumber";
|
|
3702
3818
|
"docs": [
|
package/dist/types.d.ts
CHANGED
|
@@ -16,9 +16,9 @@ type AnchorEnumVariant<K extends string> = {
|
|
|
16
16
|
};
|
|
17
17
|
/**
|
|
18
18
|
* Tier number used across the program (and PDA seeds).
|
|
19
|
-
*
|
|
19
|
+
* 0=copper, 1=silver, 2=gold, 3=platinum, 4=mithril
|
|
20
20
|
*/
|
|
21
|
-
export type TierNumber = 1 | 2 | 3 | 4
|
|
21
|
+
export type TierNumber = 0 | 1 | 2 | 3 | 4;
|
|
22
22
|
/**
|
|
23
23
|
* Branded types for common on-chain invariants.
|
|
24
24
|
*/
|
|
@@ -170,6 +170,8 @@ export interface SeasonMembership {
|
|
|
170
170
|
owner: PublicKey;
|
|
171
171
|
/** Optional referrer (PublicKey.default means no referrer). */
|
|
172
172
|
referrer: PublicKey;
|
|
173
|
+
/** Total number of successful referrals for this membership. */
|
|
174
|
+
referralCount: BN;
|
|
173
175
|
seasonNumber: BN;
|
|
174
176
|
depositTier: SeasonDepositTier;
|
|
175
177
|
depositAmount: BN;
|
|
@@ -94,7 +94,7 @@ export declare function updateMiztakeStatisticsForCreation(statistics: MiztakeSt
|
|
|
94
94
|
* @param user - User's public key
|
|
95
95
|
* @param seasonNumber - Season number
|
|
96
96
|
* @param windowNumber - Window number
|
|
97
|
-
* @param tier - Tier number (
|
|
97
|
+
* @param tier - Tier number (0..=4)
|
|
98
98
|
* @param miztakeId - The miztake ID to associate
|
|
99
99
|
* @returns Initialized/Updated UserWindowParticipation object
|
|
100
100
|
*/
|
|
@@ -125,7 +125,7 @@ export declare function updateMiztakeForSeasonUse(miztake: Miztake, seasonNumber
|
|
|
125
125
|
* Mirrors the initialization from join_season.rs (lines 84-96)
|
|
126
126
|
*
|
|
127
127
|
* @param user - User's public key
|
|
128
|
-
* @param tier - Tier number (
|
|
128
|
+
* @param tier - Tier number (0..=4)
|
|
129
129
|
* @param seasonNumber - Season number
|
|
130
130
|
* @param depositTier - Tier chosen at join time
|
|
131
131
|
* @param depositAmount - Active deposit amount (participates in rewards/penalties)
|
|
@@ -225,7 +225,7 @@ export declare function updateMembershipForClaim(membership: SeasonMembership, r
|
|
|
225
225
|
* @param referredUser - The user who missed the window
|
|
226
226
|
* @param seasonNumber - Season number
|
|
227
227
|
* @param windowNumber - Window number
|
|
228
|
-
* @param tier - Tier number (
|
|
228
|
+
* @param tier - Tier number (0..=4)
|
|
229
229
|
* @param claimant - Referrer (or root admin if no referrer)
|
|
230
230
|
* @param perWindowPenalty - Tier penalty per window (base units)
|
|
231
231
|
* @param claimedAt - Unix timestamp in seconds (i64 on-chain, represented as BN in SDK)
|
|
@@ -188,7 +188,7 @@ function updateMiztakeStatisticsForCreation(statistics) {
|
|
|
188
188
|
* @param user - User's public key
|
|
189
189
|
* @param seasonNumber - Season number
|
|
190
190
|
* @param windowNumber - Window number
|
|
191
|
-
* @param tier - Tier number (
|
|
191
|
+
* @param tier - Tier number (0..=4)
|
|
192
192
|
* @param miztakeId - The miztake ID to associate
|
|
193
193
|
* @returns Initialized/Updated UserWindowParticipation object
|
|
194
194
|
*/
|
|
@@ -255,7 +255,7 @@ function updateMiztakeForSeasonUse(miztake, seasonNumber, windowNumber) {
|
|
|
255
255
|
* Mirrors the initialization from join_season.rs (lines 84-96)
|
|
256
256
|
*
|
|
257
257
|
* @param user - User's public key
|
|
258
|
-
* @param tier - Tier number (
|
|
258
|
+
* @param tier - Tier number (0..=4)
|
|
259
259
|
* @param seasonNumber - Season number
|
|
260
260
|
* @param depositTier - Tier chosen at join time
|
|
261
261
|
* @param depositAmount - Active deposit amount (participates in rewards/penalties)
|
|
@@ -268,6 +268,7 @@ function initializeSeasonMembership(user, seasonNumber, depositTier, referrer, d
|
|
|
268
268
|
return {
|
|
269
269
|
owner: user,
|
|
270
270
|
referrer,
|
|
271
|
+
referralCount: new anchor_1.BN(0),
|
|
271
272
|
seasonNumber,
|
|
272
273
|
depositTier,
|
|
273
274
|
depositAmount,
|
|
@@ -538,7 +539,7 @@ function updateMembershipForClaim(membership, rewardAmount) {
|
|
|
538
539
|
* @param referredUser - The user who missed the window
|
|
539
540
|
* @param seasonNumber - Season number
|
|
540
541
|
* @param windowNumber - Window number
|
|
541
|
-
* @param tier - Tier number (
|
|
542
|
+
* @param tier - Tier number (0..=4)
|
|
542
543
|
* @param claimant - Referrer (or root admin if no referrer)
|
|
543
544
|
* @param perWindowPenalty - Tier penalty per window (base units)
|
|
544
545
|
* @param claimedAt - Unix timestamp in seconds (i64 on-chain, represented as BN in SDK)
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { TransactionInstruction } from "@solana/web3.js";
|
|
2
|
+
/**
|
|
3
|
+
* Small helper to standardize SDK instruction result shape.
|
|
4
|
+
*/
|
|
5
|
+
export declare function singleInstruction<T extends object>(instruction: TransactionInstruction, rest: T): T & {
|
|
6
|
+
instructions: TransactionInstruction[];
|
|
7
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.singleInstruction = singleInstruction;
|
|
4
|
+
/**
|
|
5
|
+
* Small helper to standardize SDK instruction result shape.
|
|
6
|
+
*/
|
|
7
|
+
function singleInstruction(instruction, rest) {
|
|
8
|
+
return { instructions: [instruction], ...rest };
|
|
9
|
+
}
|
package/dist/utils/pdas.d.ts
CHANGED
|
@@ -33,11 +33,11 @@ export declare function getSeasonPda(seasonNumber: SeasonNumberLike): [PublicKey
|
|
|
33
33
|
* seeds = ["season_membership", season_number_le_u64, user_pubkey_bytes, tier_u8]
|
|
34
34
|
*
|
|
35
35
|
* Tier mapping (u8):
|
|
36
|
-
*
|
|
36
|
+
* 0 = copper, 1 = silver, 2 = gold, 3 = platinum, 4 = mithril
|
|
37
37
|
*
|
|
38
38
|
* @param seasonNumber - The season number
|
|
39
39
|
* @param user - The user's public key
|
|
40
|
-
* @param tier - Tier number (
|
|
40
|
+
* @param tier - Tier number (0..=4)
|
|
41
41
|
*/
|
|
42
42
|
export declare function getSeasonMembershipPda(seasonNumber: SeasonNumberLike, user: PublicKey, tier: TierNumber): [PublicKey, number];
|
|
43
43
|
/**
|
|
@@ -53,7 +53,7 @@ export declare function getRewardWindowPda(seasonNumber: SeasonNumberLike, windo
|
|
|
53
53
|
*
|
|
54
54
|
* @param seasonNumber - The season number
|
|
55
55
|
* @param user - The user's public key
|
|
56
|
-
* @param tier - Tier number (
|
|
56
|
+
* @param tier - Tier number (0..=4)
|
|
57
57
|
* @param windowNumber - The window number
|
|
58
58
|
*/
|
|
59
59
|
export declare function getUserWindowParticipationPda(seasonNumber: SeasonNumberLike, user: PublicKey, tier: TierNumber, windowNumber: BN): [PublicKey, number];
|
|
@@ -72,7 +72,7 @@ export declare function getSeasonEscrowVaultPda(seasonNumber: SeasonNumberLike):
|
|
|
72
72
|
*
|
|
73
73
|
* @param seasonNumber - The season number
|
|
74
74
|
* @param referredUser - The referred user's public key (the user who missed)
|
|
75
|
-
* @param tier - Tier number (
|
|
75
|
+
* @param tier - Tier number (0..=4)
|
|
76
76
|
* @param windowNumber - The window number
|
|
77
77
|
*/
|
|
78
78
|
export declare function getReferralPenaltyClaimPda(seasonNumber: SeasonNumberLike, referredUser: PublicKey, tier: TierNumber, windowNumber: BN): [PublicKey, number];
|