@triadxyz/triad-protocol 0.5.2-beta → 0.5.3-beta.devnet
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/index.d.ts +1 -4
- package/dist/index.js +0 -107
- package/dist/stake.d.ts +13 -38
- package/dist/stake.js +26 -75
- package/dist/test.js +3 -55
- package/dist/ticker.d.ts +1 -12
- package/dist/ticker.js +2 -36
- package/dist/types/idl_triad_protocol.json +522 -391
- package/dist/types/stake.d.ts +0 -17
- package/dist/types/triad_protocol.d.ts +608 -420
- package/dist/utils/constants.d.ts +1 -7
- package/dist/utils/constants.js +2 -8
- package/dist/utils/helpers.d.ts +0 -2
- package/dist/utils/helpers.js +2 -13
- package/dist/vault.d.ts +0 -31
- package/dist/vault.js +0 -143
- package/package.json +1 -1
- package/dist/utils/stake-season-1/rarity.json +0 -8832
package/dist/index.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { TriadProtocol } from './types/triad_protocol';
|
|
|
4
4
|
import Ticker from './ticker';
|
|
5
5
|
import Vault from './vault';
|
|
6
6
|
import Stake from './stake';
|
|
7
|
-
import { CreateUserArgs,
|
|
7
|
+
import { CreateUserArgs, RpcOptions } from './types';
|
|
8
8
|
export default class TriadProtocolClient {
|
|
9
9
|
program: Program<TriadProtocol>;
|
|
10
10
|
provider: AnchorProvider;
|
|
@@ -32,7 +32,6 @@ export default class TriadProtocolClient {
|
|
|
32
32
|
* @param name - User name
|
|
33
33
|
*/
|
|
34
34
|
getRefferal: (name: string) => Promise<PublicKey | "">;
|
|
35
|
-
getUserPositions: (userWallet: PublicKey) => Promise<{}[]>;
|
|
36
35
|
/**
|
|
37
36
|
* Create User
|
|
38
37
|
* @param wallet - User wallet
|
|
@@ -41,6 +40,4 @@ export default class TriadProtocolClient {
|
|
|
41
40
|
*
|
|
42
41
|
*/
|
|
43
42
|
createUser: ({ wallet, name, referral }: CreateUserArgs, options?: RpcOptions) => Promise<string>;
|
|
44
|
-
openOre: ({ user, payer, name, referralName }: OpenOreArgs, options?: RpcOptions) => Promise<string>;
|
|
45
|
-
mineOre: ({ user, payer, bus, digest, nonce }: MineOreArgs, options?: RpcOptions) => Promise<string>;
|
|
46
43
|
}
|
package/dist/index.js
CHANGED
|
@@ -19,7 +19,6 @@ const ticker_1 = __importDefault(require("./ticker"));
|
|
|
19
19
|
const vault_1 = __importDefault(require("./vault"));
|
|
20
20
|
const helpers_1 = require("./utils/helpers");
|
|
21
21
|
const stake_1 = __importDefault(require("./stake"));
|
|
22
|
-
const constants_1 = require("./utils/constants");
|
|
23
22
|
class TriadProtocolClient {
|
|
24
23
|
constructor(connection, wallet) {
|
|
25
24
|
/**
|
|
@@ -68,27 +67,6 @@ class TriadProtocolClient {
|
|
|
68
67
|
return '';
|
|
69
68
|
}
|
|
70
69
|
});
|
|
71
|
-
this.getUserPositions = (userWallet) => __awaiter(this, void 0, void 0, function* () {
|
|
72
|
-
const tickers = yield this.ticker.getTickers();
|
|
73
|
-
const positions = yield Promise.all(tickers
|
|
74
|
-
.map((ticker) => __awaiter(this, void 0, void 0, function* () {
|
|
75
|
-
let data = {};
|
|
76
|
-
try {
|
|
77
|
-
const UserPositionPDA = (0, helpers_1.getUserPositionAddressSync)(this.program.programId, userWallet, ticker.publicKey);
|
|
78
|
-
const position = yield this.program.account.userPosition.fetch(UserPositionPDA);
|
|
79
|
-
data = {
|
|
80
|
-
ticker,
|
|
81
|
-
position
|
|
82
|
-
};
|
|
83
|
-
}
|
|
84
|
-
catch (_c) {
|
|
85
|
-
return;
|
|
86
|
-
}
|
|
87
|
-
return data;
|
|
88
|
-
}))
|
|
89
|
-
.filter(Boolean));
|
|
90
|
-
return positions;
|
|
91
|
-
});
|
|
92
70
|
/**
|
|
93
71
|
* Create User
|
|
94
72
|
* @param wallet - User wallet
|
|
@@ -115,91 +93,6 @@ class TriadProtocolClient {
|
|
|
115
93
|
}
|
|
116
94
|
return method.rpc({ skipPreflight: options === null || options === void 0 ? void 0 : options.skipPreflight });
|
|
117
95
|
};
|
|
118
|
-
this.openOre = ({ user, payer, name, referralName }, options) => __awaiter(this, void 0, void 0, function* () {
|
|
119
|
-
const userPDA = (0, helpers_1.getUserAddressSync)(this.program.programId, user);
|
|
120
|
-
const ixs = [];
|
|
121
|
-
try {
|
|
122
|
-
yield this.program.account.user.fetch(userPDA);
|
|
123
|
-
}
|
|
124
|
-
catch (_d) {
|
|
125
|
-
const referral = yield this.getRefferal(referralName);
|
|
126
|
-
ixs.push(yield this.program.methods
|
|
127
|
-
.createUser({
|
|
128
|
-
name
|
|
129
|
-
})
|
|
130
|
-
.accounts({
|
|
131
|
-
signer: user,
|
|
132
|
-
payer: payer.publicKey,
|
|
133
|
-
referral
|
|
134
|
-
})
|
|
135
|
-
.instruction());
|
|
136
|
-
}
|
|
137
|
-
const proofInfoPDA = (0, helpers_1.getProofOreAddressSync)(userPDA);
|
|
138
|
-
ixs.push(yield this.program.methods
|
|
139
|
-
.openOre()
|
|
140
|
-
.accounts({
|
|
141
|
-
signer: user,
|
|
142
|
-
payer: payer.publicKey,
|
|
143
|
-
minerInfo: userPDA,
|
|
144
|
-
proofInfo: proofInfoPDA,
|
|
145
|
-
sysvarHashesInfo: new web3_js_1.PublicKey('SysvarS1otHashes111111111111111111111111111'),
|
|
146
|
-
oreProgram: new web3_js_1.PublicKey(constants_1.ORE_PROGRAM_ID)
|
|
147
|
-
})
|
|
148
|
-
.instruction());
|
|
149
|
-
if (options === null || options === void 0 ? void 0 : options.microLamports) {
|
|
150
|
-
ixs.push(web3_js_1.ComputeBudgetProgram.setComputeUnitPrice({
|
|
151
|
-
microLamports: options.microLamports
|
|
152
|
-
}));
|
|
153
|
-
}
|
|
154
|
-
const { blockhash } = yield this.provider.connection.getLatestBlockhash();
|
|
155
|
-
return this.provider.sendAndConfirm(new web3_js_1.VersionedTransaction(new web3_js_1.TransactionMessage({
|
|
156
|
-
instructions: ixs,
|
|
157
|
-
recentBlockhash: blockhash,
|
|
158
|
-
payerKey: payer.publicKey
|
|
159
|
-
}).compileToV0Message()), [payer], {
|
|
160
|
-
skipPreflight: options === null || options === void 0 ? void 0 : options.skipPreflight,
|
|
161
|
-
commitment: 'confirmed'
|
|
162
|
-
});
|
|
163
|
-
});
|
|
164
|
-
this.mineOre = ({ user, payer, bus, digest, nonce }, options) => __awaiter(this, void 0, void 0, function* () {
|
|
165
|
-
const userPDA = (0, helpers_1.getUserAddressSync)(this.program.programId, user);
|
|
166
|
-
const proofInfoPDA = (0, helpers_1.getProofOreAddressSync)(userPDA);
|
|
167
|
-
const ixs = [];
|
|
168
|
-
ixs.push(new web3_js_1.TransactionInstruction({
|
|
169
|
-
keys: [],
|
|
170
|
-
programId: new web3_js_1.PublicKey(constants_1.NOOP_PROGRAM_ID),
|
|
171
|
-
data: Buffer.from(proofInfoPDA.toBytes())
|
|
172
|
-
}));
|
|
173
|
-
ixs.push(yield this.program.methods
|
|
174
|
-
.mineOre({
|
|
175
|
-
digest,
|
|
176
|
-
nonce
|
|
177
|
-
})
|
|
178
|
-
.accounts({
|
|
179
|
-
signer: user,
|
|
180
|
-
bus,
|
|
181
|
-
configProgram: (0, helpers_1.configOreProgramAddressSync)(),
|
|
182
|
-
proofInfo: proofInfoPDA,
|
|
183
|
-
sysvarHashesInfo: new web3_js_1.PublicKey('SysvarS1otHashes111111111111111111111111111'),
|
|
184
|
-
sysvarInstructionsInfo: new web3_js_1.PublicKey('Sysvar1nstructions1111111111111111111111111'),
|
|
185
|
-
oreProgram: new web3_js_1.PublicKey(constants_1.ORE_PROGRAM_ID)
|
|
186
|
-
})
|
|
187
|
-
.instruction());
|
|
188
|
-
if (options === null || options === void 0 ? void 0 : options.microLamports) {
|
|
189
|
-
ixs.push(web3_js_1.ComputeBudgetProgram.setComputeUnitPrice({
|
|
190
|
-
microLamports: options.microLamports
|
|
191
|
-
}));
|
|
192
|
-
}
|
|
193
|
-
const { blockhash } = yield this.provider.connection.getLatestBlockhash();
|
|
194
|
-
return this.provider.sendAndConfirm(new web3_js_1.VersionedTransaction(new web3_js_1.TransactionMessage({
|
|
195
|
-
instructions: ixs,
|
|
196
|
-
recentBlockhash: blockhash,
|
|
197
|
-
payerKey: payer
|
|
198
|
-
}).compileToV0Message()), [], {
|
|
199
|
-
skipPreflight: options === null || options === void 0 ? void 0 : options.skipPreflight,
|
|
200
|
-
commitment: 'confirmed'
|
|
201
|
-
});
|
|
202
|
-
});
|
|
203
96
|
this.provider = new anchor_1.AnchorProvider(connection, wallet, anchor_1.AnchorProvider.defaultOptions());
|
|
204
97
|
this.program = new anchor_1.Program(idl_triad_protocol_json_1.default, this.provider);
|
|
205
98
|
this.ticker = new ticker_1.default(this.program, this.provider);
|
package/dist/stake.d.ts
CHANGED
|
@@ -3,10 +3,11 @@ import { AnchorProvider, Program } from '@coral-xyz/anchor';
|
|
|
3
3
|
import { PublicKey } from '@solana/web3.js';
|
|
4
4
|
import { TriadProtocol } from './types/triad_protocol';
|
|
5
5
|
import { RpcOptions } from './types';
|
|
6
|
-
import { DepositStakeRewardsArgs, StakeNftArgs, RequestWithdrawArgs, WithdrawArgs, StakeResponse,
|
|
6
|
+
import { DepositStakeRewardsArgs, StakeNftArgs, RequestWithdrawArgs, WithdrawArgs, StakeResponse, ClaimStakeRewardsArgs, StakeTokenArgs, UpdateBoostArgs } from './types/stake';
|
|
7
7
|
export default class Stake {
|
|
8
8
|
program: Program<TriadProtocol>;
|
|
9
9
|
provider: AnchorProvider;
|
|
10
|
+
stakeVaultName: string;
|
|
10
11
|
constructor(program: Program<TriadProtocol>, provider: AnchorProvider);
|
|
11
12
|
/**
|
|
12
13
|
* Get all Stake Vaults
|
|
@@ -15,44 +16,31 @@ export default class Stake {
|
|
|
15
16
|
/**
|
|
16
17
|
* Get Stake Rewards
|
|
17
18
|
*/
|
|
18
|
-
getStakeRewards({ wallet,
|
|
19
|
-
|
|
20
|
-
* Get Stake Vault by name
|
|
21
|
-
* @param stakeVault - Stake Vault name
|
|
22
|
-
*/
|
|
23
|
-
getStakeVaultByName(stakeVault: string): Promise<import("./types/stake").StakeVaultResponse>;
|
|
24
|
-
/**
|
|
25
|
-
* Get all stakes by vault
|
|
26
|
-
* @param stakeVault - Stake Vault name
|
|
27
|
-
*
|
|
28
|
-
*/
|
|
29
|
-
getStakes(stakeVault: string): Promise<StakeResponse[]>;
|
|
19
|
+
getStakeRewards({ wallet, nftName, collections, rank }: ClaimStakeRewardsArgs): Promise<number>;
|
|
20
|
+
getStakes(): Promise<StakeResponse[]>;
|
|
30
21
|
/**
|
|
31
22
|
* Get Stake by wallet
|
|
32
23
|
* @param wallet - User wallet
|
|
33
|
-
* @param stakeVault - Stake Vault name
|
|
34
24
|
* @param collections - NFT collections
|
|
35
25
|
*
|
|
36
26
|
*/
|
|
37
|
-
getStakeByWallet(wallet: PublicKey,
|
|
27
|
+
getStakeByWallet(wallet: PublicKey, collections: number, ranks: {
|
|
38
28
|
onchainId: string;
|
|
39
29
|
name: string;
|
|
40
30
|
rarityRankHrtt: number;
|
|
41
31
|
}[]): Promise<StakeResponse[]>;
|
|
42
32
|
/**
|
|
43
33
|
* Get Stakes by day
|
|
44
|
-
* @param stakeVault - Stake Vault name
|
|
45
34
|
* @param day - Day timestamp
|
|
46
35
|
*/
|
|
47
|
-
getStakesByDay(
|
|
36
|
+
getStakesByDay(day: number): Promise<StakeResponse[]>;
|
|
48
37
|
/**
|
|
49
38
|
* Stake NFT
|
|
50
39
|
* @param mint - NFT mint
|
|
51
|
-
* @param stakeVault - Name of the stake vault
|
|
52
40
|
* @param items - NFT items
|
|
53
41
|
*
|
|
54
42
|
*/
|
|
55
|
-
stakeNft({ wallet,
|
|
43
|
+
stakeNft({ wallet, items }: StakeNftArgs, options?: RpcOptions): Promise<string>;
|
|
56
44
|
/**
|
|
57
45
|
* Stake NFT
|
|
58
46
|
* @param wallet - User wallet
|
|
@@ -61,7 +49,7 @@ export default class Stake {
|
|
|
61
49
|
* @param rarity - NFT rarity
|
|
62
50
|
*
|
|
63
51
|
*/
|
|
64
|
-
stakeToken({ name, wallet,
|
|
52
|
+
stakeToken({ name, wallet, amount }: StakeTokenArgs, options?: RpcOptions): Promise<string>;
|
|
65
53
|
/**
|
|
66
54
|
* Deposit Stake Rewards
|
|
67
55
|
* @param wallet - User wallet
|
|
@@ -69,48 +57,35 @@ export default class Stake {
|
|
|
69
57
|
* @param amount - Reward amount
|
|
70
58
|
*
|
|
71
59
|
*/
|
|
72
|
-
depositStakeRewards({ wallet, mint, amount
|
|
60
|
+
depositStakeRewards({ wallet, mint, amount }: DepositStakeRewardsArgs, options?: RpcOptions): Promise<string>;
|
|
73
61
|
/**
|
|
74
62
|
* Request Withdraw
|
|
75
63
|
* @param wallet - User wallet
|
|
76
64
|
* @param name - Stake name
|
|
77
|
-
* @param stakeVault - Name of the stake vault
|
|
78
65
|
*
|
|
79
66
|
*/
|
|
80
|
-
requestWithdraw({ wallet, name, mint
|
|
67
|
+
requestWithdraw({ wallet, name, mint }: RequestWithdrawArgs, options?: RpcOptions): Promise<string>;
|
|
81
68
|
/**
|
|
82
69
|
* Withdraw Stake
|
|
83
70
|
* @param wallet - User wallet
|
|
84
71
|
* @param name - Stake name
|
|
85
72
|
* @param mint - NFT mint
|
|
86
|
-
* @param stakeVault - Name of the stake vault
|
|
87
|
-
*
|
|
88
|
-
*/
|
|
89
|
-
withdrawStake({ wallet, name, mint, stakeVault }: WithdrawArgs, options?: RpcOptions): Promise<string>;
|
|
90
|
-
/**
|
|
91
|
-
* Update Stake Vault Status
|
|
92
|
-
* @param wallet - User wallet
|
|
93
|
-
* @param stakeVault - Name of the stake vault
|
|
94
|
-
* @param isLocked - Status of the stake vault
|
|
95
|
-
* @param week - Current week rewards (Starts from 0)
|
|
96
73
|
*
|
|
97
74
|
*/
|
|
98
|
-
|
|
75
|
+
withdrawStake({ wallet, name, mint }: WithdrawArgs, options?: RpcOptions): Promise<string>;
|
|
99
76
|
/**
|
|
100
77
|
* Claim Stake Rewards
|
|
101
78
|
* @param wallet - User wallet
|
|
102
79
|
* @param mint - NFT mint
|
|
103
|
-
* @param stakeVault - Name of the stake vault
|
|
104
80
|
* @param nftName - Name of the nft
|
|
105
81
|
*
|
|
106
82
|
*/
|
|
107
|
-
claimStakeRewards({ wallet,
|
|
83
|
+
claimStakeRewards({ wallet, nftName, collections, rank }: ClaimStakeRewardsArgs, options?: RpcOptions): Promise<import("@solana/web3.js").Transaction>;
|
|
108
84
|
/**
|
|
109
85
|
* Update Stake Boost
|
|
110
86
|
* @param wallet - User wallet
|
|
111
87
|
* @param nftName - Name of the nft
|
|
112
|
-
* @param boost - Boost value
|
|
113
88
|
*
|
|
114
89
|
*/
|
|
115
|
-
updateBoost({ wallet, nfts
|
|
90
|
+
updateBoost({ wallet, nfts }: UpdateBoostArgs, options?: RpcOptions): Promise<string>;
|
|
116
91
|
}
|
package/dist/stake.js
CHANGED
|
@@ -17,6 +17,7 @@ const base64_js_1 = require("base64-js");
|
|
|
17
17
|
const getRarity_1 = require("./utils/getRarity");
|
|
18
18
|
class Stake {
|
|
19
19
|
constructor(program, provider) {
|
|
20
|
+
this.stakeVaultName = constants_1.STAKE_VAULT_NAME;
|
|
20
21
|
this.provider = provider;
|
|
21
22
|
this.program = program;
|
|
22
23
|
}
|
|
@@ -32,9 +33,9 @@ class Stake {
|
|
|
32
33
|
/**
|
|
33
34
|
* Get Stake Rewards
|
|
34
35
|
*/
|
|
35
|
-
getStakeRewards({ wallet,
|
|
36
|
+
getStakeRewards({ wallet, nftName, collections, rank }) {
|
|
36
37
|
return __awaiter(this, void 0, void 0, function* () {
|
|
37
|
-
const StakeVault = (0, helpers_1.getStakeVaultAddressSync)(this.program.programId,
|
|
38
|
+
const StakeVault = (0, helpers_1.getStakeVaultAddressSync)(this.program.programId, this.stakeVaultName);
|
|
38
39
|
const mint = new web3_js_1.PublicKey(constants_1.TTRIAD_MINT);
|
|
39
40
|
const Stake = (0, helpers_1.getStakeAddressSync)(this.program.programId, wallet, nftName);
|
|
40
41
|
const FromAta = (0, helpers_1.getATASync)(StakeVault, mint);
|
|
@@ -58,25 +59,10 @@ class Stake {
|
|
|
58
59
|
return new anchor_1.BN((0, base64_js_1.toByteArray)(value), 'le').toNumber() / Math.pow(10, constants_1.TTRIAD_DECIMALS);
|
|
59
60
|
});
|
|
60
61
|
}
|
|
61
|
-
|
|
62
|
-
* Get Stake Vault by name
|
|
63
|
-
* @param stakeVault - Stake Vault name
|
|
64
|
-
*/
|
|
65
|
-
getStakeVaultByName(stakeVault) {
|
|
66
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
67
|
-
const StakeVault = (0, helpers_1.getStakeVaultAddressSync)(this.program.programId, stakeVault);
|
|
68
|
-
return (0, helpers_1.formatStakeVault)(yield this.program.account.stakeVault.fetch(StakeVault));
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Get all stakes by vault
|
|
73
|
-
* @param stakeVault - Stake Vault name
|
|
74
|
-
*
|
|
75
|
-
*/
|
|
76
|
-
getStakes(stakeVault) {
|
|
62
|
+
getStakes() {
|
|
77
63
|
return __awaiter(this, void 0, void 0, function* () {
|
|
78
64
|
const response = yield this.program.account.stakeV2.all();
|
|
79
|
-
const StakeVault = (0, helpers_1.getStakeVaultAddressSync)(this.program.programId,
|
|
65
|
+
const StakeVault = (0, helpers_1.getStakeVaultAddressSync)(this.program.programId, this.stakeVaultName);
|
|
80
66
|
return response
|
|
81
67
|
.filter((item) => item.account.stakeVault.toBase58() === StakeVault.toBase58())
|
|
82
68
|
.map((stake) => (0, helpers_1.formatStake)(stake.account));
|
|
@@ -85,13 +71,12 @@ class Stake {
|
|
|
85
71
|
/**
|
|
86
72
|
* Get Stake by wallet
|
|
87
73
|
* @param wallet - User wallet
|
|
88
|
-
* @param stakeVault - Stake Vault name
|
|
89
74
|
* @param collections - NFT collections
|
|
90
75
|
*
|
|
91
76
|
*/
|
|
92
|
-
getStakeByWallet(wallet,
|
|
77
|
+
getStakeByWallet(wallet, collections, ranks) {
|
|
93
78
|
return __awaiter(this, void 0, void 0, function* () {
|
|
94
|
-
const response = (yield this.getStakes(
|
|
79
|
+
const response = (yield this.getStakes()).filter((item) => item.authority === wallet.toBase58());
|
|
95
80
|
const data = [];
|
|
96
81
|
for (const stake of response) {
|
|
97
82
|
const getRank = (0, getRarity_1.getRarityRank)(ranks, stake.mint, stake.name);
|
|
@@ -100,7 +85,6 @@ class Stake {
|
|
|
100
85
|
available = yield this.getStakeRewards({
|
|
101
86
|
wallet,
|
|
102
87
|
nftName: stake.name,
|
|
103
|
-
stakeVault,
|
|
104
88
|
rank: getRank,
|
|
105
89
|
collections
|
|
106
90
|
});
|
|
@@ -114,12 +98,11 @@ class Stake {
|
|
|
114
98
|
}
|
|
115
99
|
/**
|
|
116
100
|
* Get Stakes by day
|
|
117
|
-
* @param stakeVault - Stake Vault name
|
|
118
101
|
* @param day - Day timestamp
|
|
119
102
|
*/
|
|
120
|
-
getStakesByDay(
|
|
103
|
+
getStakesByDay(day) {
|
|
121
104
|
return __awaiter(this, void 0, void 0, function* () {
|
|
122
|
-
const stakes = yield this.getStakes(
|
|
105
|
+
const stakes = yield this.getStakes();
|
|
123
106
|
const rewards = [];
|
|
124
107
|
stakes.forEach((stake) => {
|
|
125
108
|
const date = stake.initTs * 1000;
|
|
@@ -135,14 +118,13 @@ class Stake {
|
|
|
135
118
|
/**
|
|
136
119
|
* Stake NFT
|
|
137
120
|
* @param mint - NFT mint
|
|
138
|
-
* @param stakeVault - Name of the stake vault
|
|
139
121
|
* @param items - NFT items
|
|
140
122
|
*
|
|
141
123
|
*/
|
|
142
|
-
stakeNft({ wallet,
|
|
124
|
+
stakeNft({ wallet, items }, options) {
|
|
143
125
|
return __awaiter(this, void 0, void 0, function* () {
|
|
144
126
|
let ixs = [];
|
|
145
|
-
const stakeVaultPDA = (0, helpers_1.getStakeVaultAddressSync)(this.program.programId,
|
|
127
|
+
const stakeVaultPDA = (0, helpers_1.getStakeVaultAddressSync)(this.program.programId, this.stakeVaultName);
|
|
146
128
|
for (let i = 0; i < items.length; i++) {
|
|
147
129
|
let item = items[i];
|
|
148
130
|
const FromAta = (0, helpers_1.getATASync)(wallet, item.mint);
|
|
@@ -150,7 +132,7 @@ class Stake {
|
|
|
150
132
|
ixs.push(yield this.program.methods
|
|
151
133
|
.stakeNft({
|
|
152
134
|
name: item.name,
|
|
153
|
-
stakeVault
|
|
135
|
+
stakeVault: this.stakeVaultName
|
|
154
136
|
})
|
|
155
137
|
.accounts({
|
|
156
138
|
signer: wallet,
|
|
@@ -186,9 +168,9 @@ class Stake {
|
|
|
186
168
|
* @param rarity - NFT rarity
|
|
187
169
|
*
|
|
188
170
|
*/
|
|
189
|
-
stakeToken({ name, wallet,
|
|
171
|
+
stakeToken({ name, wallet, amount }, options) {
|
|
190
172
|
return __awaiter(this, void 0, void 0, function* () {
|
|
191
|
-
const stakeVaultPDA = (0, helpers_1.getStakeVaultAddressSync)(this.program.programId,
|
|
173
|
+
const stakeVaultPDA = (0, helpers_1.getStakeVaultAddressSync)(this.program.programId, this.stakeVaultName);
|
|
192
174
|
const ttriad = new web3_js_1.PublicKey(constants_1.TTRIAD_MINT);
|
|
193
175
|
const FromAta = (0, helpers_1.getATASync)(wallet, ttriad);
|
|
194
176
|
const userPDA = (0, helpers_1.getUserAddressSync)(this.program.programId, wallet);
|
|
@@ -197,7 +179,7 @@ class Stake {
|
|
|
197
179
|
.stakeToken({
|
|
198
180
|
name,
|
|
199
181
|
amount: new anchor_1.BN(amount * Math.pow(10, 6)),
|
|
200
|
-
stakeVault
|
|
182
|
+
stakeVault: this.stakeVaultName
|
|
201
183
|
})
|
|
202
184
|
.accounts({
|
|
203
185
|
signer: wallet,
|
|
@@ -223,15 +205,15 @@ class Stake {
|
|
|
223
205
|
* @param amount - Reward amount
|
|
224
206
|
*
|
|
225
207
|
*/
|
|
226
|
-
depositStakeRewards({ wallet, mint, amount
|
|
208
|
+
depositStakeRewards({ wallet, mint, amount }, options) {
|
|
227
209
|
return __awaiter(this, void 0, void 0, function* () {
|
|
228
|
-
const StakeVaultPDA = (0, helpers_1.getStakeVaultAddressSync)(this.program.programId,
|
|
210
|
+
const StakeVaultPDA = (0, helpers_1.getStakeVaultAddressSync)(this.program.programId, this.stakeVaultName);
|
|
229
211
|
const FromAta = (0, helpers_1.getATASync)(wallet, mint);
|
|
230
212
|
const ToAta = (0, helpers_1.getATASync)(StakeVaultPDA, mint);
|
|
231
213
|
const method = this.program.methods
|
|
232
214
|
.depositStakeRewards({
|
|
233
215
|
amount,
|
|
234
|
-
stakeVault
|
|
216
|
+
stakeVault: this.stakeVaultName
|
|
235
217
|
})
|
|
236
218
|
.accounts({
|
|
237
219
|
signer: wallet,
|
|
@@ -253,12 +235,11 @@ class Stake {
|
|
|
253
235
|
* Request Withdraw
|
|
254
236
|
* @param wallet - User wallet
|
|
255
237
|
* @param name - Stake name
|
|
256
|
-
* @param stakeVault - Name of the stake vault
|
|
257
238
|
*
|
|
258
239
|
*/
|
|
259
|
-
requestWithdraw({ wallet, name, mint
|
|
240
|
+
requestWithdraw({ wallet, name, mint }, options) {
|
|
260
241
|
return __awaiter(this, void 0, void 0, function* () {
|
|
261
|
-
const stakeVaultPDA = (0, helpers_1.getStakeVaultAddressSync)(this.program.programId,
|
|
242
|
+
const stakeVaultPDA = (0, helpers_1.getStakeVaultAddressSync)(this.program.programId, this.stakeVaultName);
|
|
262
243
|
const stakePDA = (0, helpers_1.getStakeAddressSync)(this.program.programId, wallet, name);
|
|
263
244
|
const userPAD = (0, helpers_1.getUserAddressSync)(this.program.programId, wallet);
|
|
264
245
|
const method = this.program.methods.requestWithdrawStake().accounts({
|
|
@@ -283,12 +264,11 @@ class Stake {
|
|
|
283
264
|
* @param wallet - User wallet
|
|
284
265
|
* @param name - Stake name
|
|
285
266
|
* @param mint - NFT mint
|
|
286
|
-
* @param stakeVault - Name of the stake vault
|
|
287
267
|
*
|
|
288
268
|
*/
|
|
289
|
-
withdrawStake({ wallet, name, mint
|
|
269
|
+
withdrawStake({ wallet, name, mint }, options) {
|
|
290
270
|
return __awaiter(this, void 0, void 0, function* () {
|
|
291
|
-
const stakeVaultPDA = (0, helpers_1.getStakeVaultAddressSync)(this.program.programId,
|
|
271
|
+
const stakeVaultPDA = (0, helpers_1.getStakeVaultAddressSync)(this.program.programId, this.stakeVaultName);
|
|
292
272
|
const userPDA = (0, helpers_1.getUserAddressSync)(this.program.programId, wallet);
|
|
293
273
|
const FromAta = (0, helpers_1.getATASync)(stakeVaultPDA, mint);
|
|
294
274
|
const stakePDA = (0, helpers_1.getStakeAddressSync)(this.program.programId, wallet, name);
|
|
@@ -313,44 +293,16 @@ class Stake {
|
|
|
313
293
|
return method.rpc({ skipPreflight: options === null || options === void 0 ? void 0 : options.skipPreflight });
|
|
314
294
|
});
|
|
315
295
|
}
|
|
316
|
-
/**
|
|
317
|
-
* Update Stake Vault Status
|
|
318
|
-
* @param wallet - User wallet
|
|
319
|
-
* @param stakeVault - Name of the stake vault
|
|
320
|
-
* @param isLocked - Status of the stake vault
|
|
321
|
-
* @param week - Current week rewards (Starts from 0)
|
|
322
|
-
*
|
|
323
|
-
*/
|
|
324
|
-
updateStakeVaultStatus({ wallet, isLocked, stakeVault }, options) {
|
|
325
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
326
|
-
const StakeVault = (0, helpers_1.getStakeVaultAddressSync)(this.program.programId, stakeVault);
|
|
327
|
-
const method = this.program.methods
|
|
328
|
-
.updateStakeVaultStatus(isLocked)
|
|
329
|
-
.accounts({
|
|
330
|
-
signer: wallet,
|
|
331
|
-
stakeVault: StakeVault
|
|
332
|
-
});
|
|
333
|
-
if (options === null || options === void 0 ? void 0 : options.microLamports) {
|
|
334
|
-
method.postInstructions([
|
|
335
|
-
web3_js_1.ComputeBudgetProgram.setComputeUnitPrice({
|
|
336
|
-
microLamports: options.microLamports
|
|
337
|
-
})
|
|
338
|
-
]);
|
|
339
|
-
}
|
|
340
|
-
return method.rpc({ skipPreflight: options === null || options === void 0 ? void 0 : options.skipPreflight });
|
|
341
|
-
});
|
|
342
|
-
}
|
|
343
296
|
/**
|
|
344
297
|
* Claim Stake Rewards
|
|
345
298
|
* @param wallet - User wallet
|
|
346
299
|
* @param mint - NFT mint
|
|
347
|
-
* @param stakeVault - Name of the stake vault
|
|
348
300
|
* @param nftName - Name of the nft
|
|
349
301
|
*
|
|
350
302
|
*/
|
|
351
|
-
claimStakeRewards({ wallet,
|
|
303
|
+
claimStakeRewards({ wallet, nftName, collections, rank }, options) {
|
|
352
304
|
return __awaiter(this, void 0, void 0, function* () {
|
|
353
|
-
const StakeVault = (0, helpers_1.getStakeVaultAddressSync)(this.program.programId,
|
|
305
|
+
const StakeVault = (0, helpers_1.getStakeVaultAddressSync)(this.program.programId, this.stakeVaultName);
|
|
354
306
|
const mint = new web3_js_1.PublicKey(constants_1.TTRIAD_MINT);
|
|
355
307
|
const Stake = (0, helpers_1.getStakeAddressSync)(this.program.programId, wallet, nftName);
|
|
356
308
|
const FromAta = (0, helpers_1.getATASync)(StakeVault, mint);
|
|
@@ -383,16 +335,15 @@ class Stake {
|
|
|
383
335
|
* Update Stake Boost
|
|
384
336
|
* @param wallet - User wallet
|
|
385
337
|
* @param nftName - Name of the nft
|
|
386
|
-
* @param boost - Boost value
|
|
387
338
|
*
|
|
388
339
|
*/
|
|
389
|
-
updateBoost({ wallet, nfts
|
|
340
|
+
updateBoost({ wallet, nfts }, options) {
|
|
390
341
|
return __awaiter(this, void 0, void 0, function* () {
|
|
391
342
|
const ixs = [];
|
|
392
343
|
for (const nft of nfts) {
|
|
393
344
|
const Stake = (0, helpers_1.getStakeAddressSync)(this.program.programId, new web3_js_1.PublicKey(nft.wallet), nft.name);
|
|
394
345
|
ixs.push(yield this.program.methods
|
|
395
|
-
.updateStakeBoost(
|
|
346
|
+
.updateStakeBoost()
|
|
396
347
|
.accounts({
|
|
397
348
|
signer: wallet,
|
|
398
349
|
stake: Stake
|
package/dist/test.js
CHANGED
|
@@ -17,8 +17,6 @@ const web3_js_1 = require("@solana/web3.js");
|
|
|
17
17
|
const index_1 = __importDefault(require("./index"));
|
|
18
18
|
const anchor_1 = require("@coral-xyz/anchor");
|
|
19
19
|
const constants_1 = require("./utils/constants");
|
|
20
|
-
const rarity_json_1 = __importDefault(require("./utils/stake-season-1/rarity.json"));
|
|
21
|
-
const getRarity_1 = require("./utils/getRarity");
|
|
22
20
|
const axios_1 = __importDefault(require("axios"));
|
|
23
21
|
const file = fs_1.default.readFileSync('/Users/dannpl/.config/solana/triad-builder.json');
|
|
24
22
|
const rpc_file = fs_1.default.readFileSync('/Users/dannpl/.config/solana/rpc.txt');
|
|
@@ -26,51 +24,18 @@ const keypair = web3_js_1.Keypair.fromSecretKey(new Uint8Array(JSON.parse(file.t
|
|
|
26
24
|
const connection = new web3_js_1.Connection(rpc_file.toString(), 'confirmed');
|
|
27
25
|
const wallet = new anchor_1.Wallet(keypair);
|
|
28
26
|
const triadProtocol = new index_1.default(connection, wallet);
|
|
29
|
-
const
|
|
30
|
-
const response = yield triadProtocol.stake.getStakes(constants_1.STAKE_SEASON);
|
|
31
|
-
let available = 0;
|
|
32
|
-
let items = 0;
|
|
33
|
-
for (const stake of response) {
|
|
34
|
-
const getRank = (0, getRarity_1.getRarityRank)(rarity_json_1.default, stake.mint, stake.name);
|
|
35
|
-
try {
|
|
36
|
-
available += yield triadProtocol.stake.getStakeRewards({
|
|
37
|
-
wallet: new web3_js_1.PublicKey(stake.authority),
|
|
38
|
-
nftName: stake.name,
|
|
39
|
-
stakeVault: constants_1.STAKE_SEASON,
|
|
40
|
-
rank: getRank,
|
|
41
|
-
collections: 1
|
|
42
|
-
});
|
|
43
|
-
items += 1;
|
|
44
|
-
console.log(items);
|
|
45
|
-
console.log(available);
|
|
46
|
-
}
|
|
47
|
-
catch (e) { }
|
|
48
|
-
}
|
|
49
|
-
console.log(available);
|
|
50
|
-
console.log(items);
|
|
51
|
-
console.log(response.length);
|
|
52
|
-
});
|
|
53
|
-
const deposit = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
27
|
+
const depositStakeRewards = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
54
28
|
const response = yield triadProtocol.stake.depositStakeRewards({
|
|
55
29
|
wallet: wallet.publicKey,
|
|
56
|
-
stakeVault: constants_1.STAKE_SEASON,
|
|
57
30
|
mint: new web3_js_1.PublicKey(constants_1.TTRIAD_MINT),
|
|
58
31
|
amount: new anchor_1.BN(192388 * Math.pow(10, 6))
|
|
59
32
|
});
|
|
60
33
|
console.log(response);
|
|
61
34
|
});
|
|
62
|
-
const getStakeVault = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
63
|
-
const response = yield triadProtocol.stake.getStakeVaultByName(constants_1.STAKE_SEASON);
|
|
64
|
-
console.log(response);
|
|
65
|
-
});
|
|
66
|
-
const getStakeByWallet = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
67
|
-
const response = yield triadProtocol.stake.getStakeByWallet(new web3_js_1.PublicKey('HjJQdfTHgC3EBX3471w4st8BXbBmtbaMyCAXNgcUb7dq'), constants_1.STAKE_SEASON, 1, rarity_json_1.default);
|
|
68
|
-
console.log(response);
|
|
69
|
-
});
|
|
70
35
|
const updateBoost = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
71
36
|
const response = (yield axios_1.default.get('https://api.triadfi.co/boost'))
|
|
72
37
|
.data;
|
|
73
|
-
const stakes = yield triadProtocol.stake.getStakes(
|
|
38
|
+
const stakes = yield triadProtocol.stake.getStakes();
|
|
74
39
|
const update = [];
|
|
75
40
|
for (const stake of stakes) {
|
|
76
41
|
if (update.length >= 10) {
|
|
@@ -82,24 +47,7 @@ const updateBoost = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
82
47
|
}
|
|
83
48
|
const updateBoostResponse = yield triadProtocol.stake.updateBoost({
|
|
84
49
|
wallet: wallet.publicKey,
|
|
85
|
-
|
|
86
|
-
nfts: update,
|
|
87
|
-
boost: true
|
|
50
|
+
nfts: update
|
|
88
51
|
});
|
|
89
52
|
console.log(updateBoostResponse);
|
|
90
53
|
});
|
|
91
|
-
const mineOre = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
92
|
-
const response = yield triadProtocol.mineOre({
|
|
93
|
-
user: wallet.publicKey,
|
|
94
|
-
payer: wallet.publicKey,
|
|
95
|
-
bus: new web3_js_1.PublicKey('BZJ2xppmny6ME3NkAgu2SMZB2mwS5xboX9n6VsSyGYFJ'),
|
|
96
|
-
digest: [
|
|
97
|
-
149, 32, 37, 176, 97, 139, 13, 182, 108, 28, 66, 160, 137, 156, 204, 249
|
|
98
|
-
],
|
|
99
|
-
nonce: [217, 46, 186, 232, 162, 139, 46, 186]
|
|
100
|
-
}, {
|
|
101
|
-
skipPreflight: true,
|
|
102
|
-
microLamports: 10000
|
|
103
|
-
});
|
|
104
|
-
console.log(response);
|
|
105
|
-
});
|
package/dist/ticker.d.ts
CHANGED
|
@@ -22,23 +22,12 @@ export default class Ticker {
|
|
|
22
22
|
/**
|
|
23
23
|
* Create a new ticker
|
|
24
24
|
* @param name - The ticker's name
|
|
25
|
-
* @param protocolProgramId - The program ID of the protocol
|
|
26
25
|
* @param token mint - Token mint for the ticker (e.g. USDC)
|
|
27
26
|
*
|
|
28
27
|
*/
|
|
29
|
-
createTicker({ name,
|
|
28
|
+
createTicker({ name, tokenMint }: {
|
|
30
29
|
name: string;
|
|
31
30
|
protocolProgramId: PublicKey;
|
|
32
31
|
tokenMint: PublicKey;
|
|
33
32
|
}): Promise<string>;
|
|
34
|
-
/**
|
|
35
|
-
* Update a ticker's price
|
|
36
|
-
* @param name - The ticker's name
|
|
37
|
-
* @param price - The ticker's price
|
|
38
|
-
*
|
|
39
|
-
*/
|
|
40
|
-
updateTickerPrice({ name, price }: {
|
|
41
|
-
name: string;
|
|
42
|
-
price: string;
|
|
43
|
-
}): Promise<string>;
|
|
44
33
|
}
|