@triadxyz/triad-protocol 0.1.3-beta → 0.1.6-beta
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 +14 -0
- package/dist/index.js +47 -1
- package/dist/stake.d.ts +2 -17
- package/dist/stake.js +1 -48
- package/dist/test.js +6 -10
- package/dist/types/idl_triad_protocol.json +0 -18
- package/dist/types/index.d.ts +6 -0
- package/dist/types/stake.d.ts +1 -21
- package/dist/types/triad_protocol.d.ts +0 -18
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -4,6 +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, RpcOptions } from './types';
|
|
7
8
|
export default class TriadProtocolClient {
|
|
8
9
|
program: Program<TriadProtocol>;
|
|
9
10
|
provider: AnchorProvider;
|
|
@@ -11,5 +12,18 @@ export default class TriadProtocolClient {
|
|
|
11
12
|
vault: Vault;
|
|
12
13
|
stake: Stake;
|
|
13
14
|
constructor(connection: Connection, wallet: Wallet);
|
|
15
|
+
/**
|
|
16
|
+
* Get all Users
|
|
17
|
+
*/
|
|
18
|
+
getUsers: () => Promise<import("./types/stake").UserResponse[]>;
|
|
19
|
+
hasReferral: (referral: string) => Promise<boolean>;
|
|
14
20
|
getUserPositions: (userWallet: PublicKey) => Promise<{}[]>;
|
|
21
|
+
/**
|
|
22
|
+
* Create User
|
|
23
|
+
* @param wallet - User wallet
|
|
24
|
+
* @param name - user name
|
|
25
|
+
* @param referral - user referral
|
|
26
|
+
*
|
|
27
|
+
*/
|
|
28
|
+
createUser: ({ wallet, name, referral }: CreateUserArgs, options?: RpcOptions) => Promise<string>;
|
|
15
29
|
}
|
package/dist/index.js
CHANGED
|
@@ -13,6 +13,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
const anchor_1 = require("@coral-xyz/anchor");
|
|
16
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
16
17
|
const idl_triad_protocol_json_1 = __importDefault(require("./types/idl_triad_protocol.json"));
|
|
17
18
|
const ticker_1 = __importDefault(require("./ticker"));
|
|
18
19
|
const vault_1 = __importDefault(require("./vault"));
|
|
@@ -20,6 +21,22 @@ const helpers_1 = require("./utils/helpers");
|
|
|
20
21
|
const stake_1 = __importDefault(require("./stake"));
|
|
21
22
|
class TriadProtocolClient {
|
|
22
23
|
constructor(connection, wallet) {
|
|
24
|
+
/**
|
|
25
|
+
* Get all Users
|
|
26
|
+
*/
|
|
27
|
+
this.getUsers = () => __awaiter(this, void 0, void 0, function* () {
|
|
28
|
+
const response = yield this.program.account.user.all();
|
|
29
|
+
return response.map((item) => (0, helpers_1.formatUser)(item.account));
|
|
30
|
+
});
|
|
31
|
+
this.hasReferral = (referral) => __awaiter(this, void 0, void 0, function* () {
|
|
32
|
+
try {
|
|
33
|
+
yield this.program.account.user.fetch((0, helpers_1.getUserAddressSync)(this.program.programId, referral));
|
|
34
|
+
return true;
|
|
35
|
+
}
|
|
36
|
+
catch (_a) {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
});
|
|
23
40
|
this.getUserPositions = (userWallet) => __awaiter(this, void 0, void 0, function* () {
|
|
24
41
|
const tickers = yield this.ticker.getTickers();
|
|
25
42
|
const positions = yield Promise.all(tickers
|
|
@@ -33,7 +50,7 @@ class TriadProtocolClient {
|
|
|
33
50
|
position
|
|
34
51
|
};
|
|
35
52
|
}
|
|
36
|
-
catch (
|
|
53
|
+
catch (_b) {
|
|
37
54
|
return;
|
|
38
55
|
}
|
|
39
56
|
return data;
|
|
@@ -41,6 +58,35 @@ class TriadProtocolClient {
|
|
|
41
58
|
.filter(Boolean));
|
|
42
59
|
return positions;
|
|
43
60
|
});
|
|
61
|
+
/**
|
|
62
|
+
* Create User
|
|
63
|
+
* @param wallet - User wallet
|
|
64
|
+
* @param name - user name
|
|
65
|
+
* @param referral - user referral
|
|
66
|
+
*
|
|
67
|
+
*/
|
|
68
|
+
this.createUser = ({ wallet, name, referral }, options) => {
|
|
69
|
+
let referralPDA = (0, helpers_1.getUserAddressSync)(this.program.programId, name);
|
|
70
|
+
if (referral) {
|
|
71
|
+
referralPDA = (0, helpers_1.getUserAddressSync)(this.program.programId, referral);
|
|
72
|
+
}
|
|
73
|
+
const method = this.program.methods
|
|
74
|
+
.createUser({
|
|
75
|
+
name
|
|
76
|
+
})
|
|
77
|
+
.accounts({
|
|
78
|
+
signer: wallet,
|
|
79
|
+
referral: referralPDA
|
|
80
|
+
});
|
|
81
|
+
if (options === null || options === void 0 ? void 0 : options.microLamports) {
|
|
82
|
+
method.postInstructions([
|
|
83
|
+
web3_js_1.ComputeBudgetProgram.setComputeUnitPrice({
|
|
84
|
+
microLamports: options.microLamports
|
|
85
|
+
})
|
|
86
|
+
]);
|
|
87
|
+
}
|
|
88
|
+
return method.rpc({ skipPreflight: options === null || options === void 0 ? void 0 : options.skipPreflight });
|
|
89
|
+
};
|
|
44
90
|
this.provider = new anchor_1.AnchorProvider(connection, wallet, anchor_1.AnchorProvider.defaultOptions());
|
|
45
91
|
this.program = new anchor_1.Program(idl_triad_protocol_json_1.default, this.provider);
|
|
46
92
|
this.ticker = new ticker_1.default(this.program, this.provider);
|
package/dist/stake.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { AnchorProvider, Program } from '@coral-xyz/anchor';
|
|
|
2
2
|
import { PublicKey } from '@solana/web3.js';
|
|
3
3
|
import { TriadProtocol } from './types/triad_protocol';
|
|
4
4
|
import { RpcOptions } from './types';
|
|
5
|
-
import { DepositStakeRewardsArgs, InitializeStakeArgs,
|
|
5
|
+
import { DepositStakeRewardsArgs, InitializeStakeArgs, StakeNftArgs, RequestWithdrawArgs, WithdrawArgs, StakeResponse, UpdateStakeVaultStatusArgs, ClaimStakeRewardsArgs, StakeTokenArgs, MigrateStakeArgs } from './types/stake';
|
|
6
6
|
export default class Stake {
|
|
7
7
|
program: Program<TriadProtocol>;
|
|
8
8
|
provider: AnchorProvider;
|
|
@@ -11,10 +11,6 @@ export default class Stake {
|
|
|
11
11
|
* Get all Stake Vaults
|
|
12
12
|
*/
|
|
13
13
|
getStakeVaults(): Promise<import("./types/stake").StakeVaultResponse[]>;
|
|
14
|
-
/**
|
|
15
|
-
* Get all Users
|
|
16
|
-
*/
|
|
17
|
-
getUsers(): Promise<import("./types/stake").UserResponse[]>;
|
|
18
14
|
/**
|
|
19
15
|
* Get Stake Vault by name
|
|
20
16
|
* @param stakeVault - Stake Vault name
|
|
@@ -56,11 +52,9 @@ export default class Stake {
|
|
|
56
52
|
* @param name - NFT name
|
|
57
53
|
* @param wallet - User wallet
|
|
58
54
|
* @param mint - NFT mint
|
|
59
|
-
* @param collections - NFT collections
|
|
60
|
-
* @param rarity - NFT rarity
|
|
61
55
|
*
|
|
62
56
|
*/
|
|
63
|
-
stakeNft({ name, wallet, mint,
|
|
57
|
+
stakeNft({ name, wallet, mint, stakeVault }: StakeNftArgs, options?: RpcOptions): Promise<string>;
|
|
64
58
|
/**
|
|
65
59
|
* Stake NFT
|
|
66
60
|
* @param wallet - User wallet
|
|
@@ -116,20 +110,11 @@ export default class Stake {
|
|
|
116
110
|
* Claim Stake Rewards
|
|
117
111
|
* @param wallet - User wallet
|
|
118
112
|
* @param mint - NFT mint
|
|
119
|
-
* @param week - Week rewards
|
|
120
113
|
* @param stakeVault - Name of the stake vault
|
|
121
114
|
* @param nftName - Name of the nft
|
|
122
115
|
*
|
|
123
116
|
*/
|
|
124
117
|
claimStakeRewards({ wallet, mint, stakeVault, nftName }: ClaimStakeRewardsArgs, options?: RpcOptions): Promise<string>;
|
|
125
|
-
/**
|
|
126
|
-
* Create User
|
|
127
|
-
* @param wallet - User wallet
|
|
128
|
-
* @param name - user name
|
|
129
|
-
* @param referral - user referral
|
|
130
|
-
*
|
|
131
|
-
*/
|
|
132
|
-
createUser({ wallet, name, referral }: CreateUserArgs, options?: RpcOptions): Promise<string>;
|
|
133
118
|
/**
|
|
134
119
|
* Migrate Stake
|
|
135
120
|
* @param name - NFT name
|
package/dist/stake.js
CHANGED
|
@@ -27,15 +27,6 @@ class Stake {
|
|
|
27
27
|
return response.map((stakeVault) => (0, helpers_1.formatStakeVault)(stakeVault.account));
|
|
28
28
|
});
|
|
29
29
|
}
|
|
30
|
-
/**
|
|
31
|
-
* Get all Users
|
|
32
|
-
*/
|
|
33
|
-
getUsers() {
|
|
34
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
35
|
-
const response = yield this.program.account.user.all();
|
|
36
|
-
return response.map((item) => (0, helpers_1.formatUser)(item.account));
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
30
|
/**
|
|
40
31
|
* Get Stake Vault by name
|
|
41
32
|
* @param stakeVault - Stake Vault name
|
|
@@ -128,26 +119,17 @@ class Stake {
|
|
|
128
119
|
* @param name - NFT name
|
|
129
120
|
* @param wallet - User wallet
|
|
130
121
|
* @param mint - NFT mint
|
|
131
|
-
* @param collections - NFT collections
|
|
132
|
-
* @param rarity - NFT rarity
|
|
133
122
|
*
|
|
134
123
|
*/
|
|
135
|
-
stakeNft({ name, wallet, mint,
|
|
124
|
+
stakeNft({ name, wallet, mint, stakeVault }, options) {
|
|
136
125
|
return __awaiter(this, void 0, void 0, function* () {
|
|
137
126
|
const StakeVault = (0, helpers_1.getStakeVaultAddressSync)(this.program.programId, stakeVault);
|
|
138
127
|
const FromAta = (0, helpers_1.getATASync)(wallet, mint);
|
|
139
128
|
const ToAta = (0, helpers_1.getATASync)(StakeVault, mint);
|
|
140
129
|
let items = [];
|
|
141
|
-
Object.keys(collections).forEach((key) => {
|
|
142
|
-
if (collections[key]) {
|
|
143
|
-
items.push({ [key]: {} });
|
|
144
|
-
}
|
|
145
|
-
});
|
|
146
130
|
const method = this.program.methods
|
|
147
131
|
.stakeNft({
|
|
148
132
|
name,
|
|
149
|
-
collections: items,
|
|
150
|
-
rarity,
|
|
151
133
|
stakeVault
|
|
152
134
|
})
|
|
153
135
|
.accounts({
|
|
@@ -358,7 +340,6 @@ class Stake {
|
|
|
358
340
|
* Claim Stake Rewards
|
|
359
341
|
* @param wallet - User wallet
|
|
360
342
|
* @param mint - NFT mint
|
|
361
|
-
* @param week - Week rewards
|
|
362
343
|
* @param stakeVault - Name of the stake vault
|
|
363
344
|
* @param nftName - Name of the nft
|
|
364
345
|
*
|
|
@@ -387,34 +368,6 @@ class Stake {
|
|
|
387
368
|
return method.rpc({ skipPreflight: options === null || options === void 0 ? void 0 : options.skipPreflight });
|
|
388
369
|
});
|
|
389
370
|
}
|
|
390
|
-
/**
|
|
391
|
-
* Create User
|
|
392
|
-
* @param wallet - User wallet
|
|
393
|
-
* @param name - user name
|
|
394
|
-
* @param referral - user referral
|
|
395
|
-
*
|
|
396
|
-
*/
|
|
397
|
-
createUser({ wallet, name, referral }, options) {
|
|
398
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
399
|
-
const referralPDA = (0, helpers_1.getUserAddressSync)(this.program.programId, referral);
|
|
400
|
-
const method = this.program.methods
|
|
401
|
-
.createUser({
|
|
402
|
-
name
|
|
403
|
-
})
|
|
404
|
-
.accounts({
|
|
405
|
-
signer: wallet,
|
|
406
|
-
referral: referralPDA
|
|
407
|
-
});
|
|
408
|
-
if (options === null || options === void 0 ? void 0 : options.microLamports) {
|
|
409
|
-
method.postInstructions([
|
|
410
|
-
web3_js_1.ComputeBudgetProgram.setComputeUnitPrice({
|
|
411
|
-
microLamports: options.microLamports
|
|
412
|
-
})
|
|
413
|
-
]);
|
|
414
|
-
}
|
|
415
|
-
return method.rpc({ skipPreflight: options === null || options === void 0 ? void 0 : options.skipPreflight });
|
|
416
|
-
});
|
|
417
|
-
}
|
|
418
371
|
/**
|
|
419
372
|
* Migrate Stake
|
|
420
373
|
* @param name - NFT name
|
package/dist/test.js
CHANGED
|
@@ -65,12 +65,10 @@ const getStake = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
65
65
|
console.log(response);
|
|
66
66
|
console.log(stakeVaults);
|
|
67
67
|
});
|
|
68
|
-
getStake();
|
|
69
68
|
const claimStakeRewardsV1 = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
70
69
|
const response = yield triadProtocol.stake.claimStakeRewards({
|
|
71
70
|
wallet: wallet.publicKey,
|
|
72
71
|
mint: new web3_js_1.PublicKey('t3DohmswhKk94PPbPYwA6ZKACyY3y5kbcqeQerAJjmV'),
|
|
73
|
-
week: [4],
|
|
74
72
|
stakeVault: constants_1.STAKE_SEASON,
|
|
75
73
|
nftName: 'Triad 2807'
|
|
76
74
|
}, {
|
|
@@ -84,13 +82,6 @@ const stake = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
84
82
|
name: 'Triad 0',
|
|
85
83
|
wallet: wallet.publicKey,
|
|
86
84
|
stakeVault: 'Rev 1',
|
|
87
|
-
rarity: { mythic: {} },
|
|
88
|
-
collections: {
|
|
89
|
-
coleta: false,
|
|
90
|
-
undead: false,
|
|
91
|
-
alligators: false,
|
|
92
|
-
pyth: false
|
|
93
|
-
},
|
|
94
85
|
mint: new web3_js_1.PublicKey('FXRhaGeYue7bMCwcksNw4hJRY7jZ1YMwgmCu1Y8fyUNd')
|
|
95
86
|
}, {
|
|
96
87
|
skipPreflight: true,
|
|
@@ -99,9 +90,14 @@ const stake = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
99
90
|
console.log(response);
|
|
100
91
|
});
|
|
101
92
|
const getUsers = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
102
|
-
const response = yield triadProtocol.
|
|
93
|
+
const response = yield triadProtocol.getUsers();
|
|
103
94
|
console.log(response);
|
|
104
95
|
});
|
|
96
|
+
const getReferral = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
97
|
+
const response = yield triadProtocol.hasReferral('a');
|
|
98
|
+
console.log(response);
|
|
99
|
+
});
|
|
100
|
+
getReferral();
|
|
105
101
|
const migrateStake = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
106
102
|
const response = yield triadProtocol.stake.migrateStake({
|
|
107
103
|
wallet: wallet.publicKey,
|
|
@@ -1470,27 +1470,9 @@
|
|
|
1470
1470
|
"name": "name",
|
|
1471
1471
|
"type": "string"
|
|
1472
1472
|
},
|
|
1473
|
-
{
|
|
1474
|
-
"name": "rarity",
|
|
1475
|
-
"type": {
|
|
1476
|
-
"defined": {
|
|
1477
|
-
"name": "Rarity"
|
|
1478
|
-
}
|
|
1479
|
-
}
|
|
1480
|
-
},
|
|
1481
1473
|
{
|
|
1482
1474
|
"name": "stake_vault",
|
|
1483
1475
|
"type": "string"
|
|
1484
|
-
},
|
|
1485
|
-
{
|
|
1486
|
-
"name": "collections",
|
|
1487
|
-
"type": {
|
|
1488
|
-
"vec": {
|
|
1489
|
-
"defined": {
|
|
1490
|
-
"name": "Collection"
|
|
1491
|
-
}
|
|
1492
|
-
}
|
|
1493
|
-
}
|
|
1494
1476
|
}
|
|
1495
1477
|
]
|
|
1496
1478
|
}
|
package/dist/types/index.d.ts
CHANGED
package/dist/types/stake.d.ts
CHANGED
|
@@ -1,25 +1,11 @@
|
|
|
1
1
|
import { PublicKey } from '@solana/web3.js';
|
|
2
2
|
import BN from 'bn.js';
|
|
3
3
|
export type Collection = 'alligators' | 'coleta' | 'undead' | 'pyth';
|
|
4
|
-
export type
|
|
4
|
+
export type StakeNftArgs = {
|
|
5
5
|
name: string;
|
|
6
6
|
wallet: PublicKey;
|
|
7
7
|
stakeVault: string;
|
|
8
8
|
mint: PublicKey;
|
|
9
|
-
collections: Record<Collection, boolean>;
|
|
10
|
-
rarity: {
|
|
11
|
-
common: {};
|
|
12
|
-
} | {
|
|
13
|
-
uncommon: {};
|
|
14
|
-
} | {
|
|
15
|
-
rare: {};
|
|
16
|
-
} | {
|
|
17
|
-
epic: {};
|
|
18
|
-
} | {
|
|
19
|
-
legendary: {};
|
|
20
|
-
} | {
|
|
21
|
-
mythic: {};
|
|
22
|
-
};
|
|
23
9
|
};
|
|
24
10
|
export type MigrateStakeArgs = {
|
|
25
11
|
wallet: PublicKey;
|
|
@@ -66,16 +52,10 @@ export type UpdateStakeVaultStatusArgs = {
|
|
|
66
52
|
};
|
|
67
53
|
export type ClaimStakeRewardsArgs = {
|
|
68
54
|
wallet: PublicKey;
|
|
69
|
-
week: number[];
|
|
70
55
|
mint: PublicKey;
|
|
71
56
|
stakeVault: string;
|
|
72
57
|
nftName: string;
|
|
73
58
|
};
|
|
74
|
-
export type CreateUserArgs = {
|
|
75
|
-
wallet: PublicKey;
|
|
76
|
-
name: string;
|
|
77
|
-
referral: string;
|
|
78
|
-
};
|
|
79
59
|
export type UpdateStakeRewardsArgs = {
|
|
80
60
|
day: number;
|
|
81
61
|
wallet: PublicKey;
|
|
@@ -1382,27 +1382,9 @@ export type TriadProtocol = {
|
|
|
1382
1382
|
name: 'name';
|
|
1383
1383
|
type: 'string';
|
|
1384
1384
|
},
|
|
1385
|
-
{
|
|
1386
|
-
name: 'rarity';
|
|
1387
|
-
type: {
|
|
1388
|
-
defined: {
|
|
1389
|
-
name: 'rarity';
|
|
1390
|
-
};
|
|
1391
|
-
};
|
|
1392
|
-
},
|
|
1393
1385
|
{
|
|
1394
1386
|
name: 'stakeVault';
|
|
1395
1387
|
type: 'string';
|
|
1396
|
-
},
|
|
1397
|
-
{
|
|
1398
|
-
name: 'collections';
|
|
1399
|
-
type: {
|
|
1400
|
-
vec: {
|
|
1401
|
-
defined: {
|
|
1402
|
-
name: 'collection';
|
|
1403
|
-
};
|
|
1404
|
-
};
|
|
1405
|
-
};
|
|
1406
1388
|
}
|
|
1407
1389
|
];
|
|
1408
1390
|
};
|