@triadxyz/triad-protocol 0.1.2-alpha.9 → 0.1.2-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 +2 -0
- package/dist/index.js +4 -3
- package/dist/stake.d.ts +135 -0
- package/dist/stake.js +483 -0
- package/dist/test.d.ts +1 -0
- package/dist/test.js +107 -0
- package/dist/ticker.js +0 -6
- package/dist/types/idl_triad_protocol.json +1902 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.js +2 -0
- package/dist/types/stake.d.ts +130 -0
- package/dist/types/stake.js +20 -0
- package/dist/types/triad_protocol.d.ts +1527 -405
- package/dist/types/triad_protocol.js +0 -664
- package/dist/utils/constants.d.ts +31 -0
- package/dist/utils/constants.js +14 -1
- package/dist/utils/helpers.d.ts +19 -0
- package/dist/utils/helpers.js +88 -1
- package/dist/utils/stake-season-1/rarity.json +11036 -0
- package/dist/utils/stake-season-1/users-collections-week-1.json +3290 -0
- package/dist/vault.js +0 -4
- package/package.json +9 -8
package/dist/utils/helpers.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { COLLECTION_MUlTIPLIER, StakeResponse, StakeVaultResponse, UserResponse } from './../types/stake';
|
|
1
2
|
import { PublicKey } from '@solana/web3.js';
|
|
2
3
|
import BN from 'bn.js';
|
|
3
4
|
export declare const getTickerAddressSync: (programId: PublicKey, tickerName: string) => PublicKey;
|
|
@@ -6,4 +7,22 @@ export declare const decodeString: (bytes: number[]) => string;
|
|
|
6
7
|
export declare const getVaultAddressSync: (programId: PublicKey, tickerAddress: PublicKey) => PublicKey;
|
|
7
8
|
export declare const getTokenVaultAddressSync: (programId: PublicKey, vault: PublicKey) => PublicKey;
|
|
8
9
|
export declare function getUserPositionAddressSync(programId: PublicKey, authority: PublicKey, ticker: PublicKey): PublicKey;
|
|
10
|
+
export declare const getStakeVaultAddressSync: (programId: PublicKey, vaultName: string) => PublicKey;
|
|
11
|
+
export declare const getStakeAddressSync: (programId: PublicKey, nftName: string) => PublicKey;
|
|
12
|
+
export declare const getNFTRewardsAddressSync: (programId: PublicKey, stake: PublicKey) => PublicKey;
|
|
13
|
+
export declare const getATASync: (address: PublicKey, Mint: PublicKey) => PublicKey;
|
|
14
|
+
export declare const getUserAddressSync: (programId: PublicKey, name: string) => PublicKey;
|
|
9
15
|
export declare const formatNumber: (number: bigint | BN, decimals?: number) => number;
|
|
16
|
+
export declare const formatStakeVault: (stakeVault: any) => StakeVaultResponse;
|
|
17
|
+
export declare const formatStake: (stake: any) => StakeResponse;
|
|
18
|
+
export declare const formatUser: (user: any) => UserResponse;
|
|
19
|
+
export declare const calculateTotalMultiplier: (collections: COLLECTION_MUlTIPLIER[], rank: {
|
|
20
|
+
max: number;
|
|
21
|
+
currentPosition: number;
|
|
22
|
+
}) => number;
|
|
23
|
+
export declare const calculateAPR: ({ rewards, rate, amount, baseRewards }: {
|
|
24
|
+
rewards: number;
|
|
25
|
+
rate: number;
|
|
26
|
+
amount: number;
|
|
27
|
+
baseRewards: number;
|
|
28
|
+
}) => number;
|
package/dist/utils/helpers.js
CHANGED
|
@@ -23,9 +23,12 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.formatNumber = exports.getUserPositionAddressSync = exports.getTokenVaultAddressSync = exports.getVaultAddressSync = exports.decodeString = exports.encodeString = exports.getTickerAddressSync = void 0;
|
|
26
|
+
exports.calculateAPR = exports.calculateTotalMultiplier = exports.formatUser = exports.formatStake = exports.formatStakeVault = exports.formatNumber = exports.getUserAddressSync = exports.getATASync = exports.getNFTRewardsAddressSync = exports.getStakeAddressSync = exports.getStakeVaultAddressSync = exports.getUserPositionAddressSync = exports.getTokenVaultAddressSync = exports.getVaultAddressSync = exports.decodeString = exports.encodeString = exports.getTickerAddressSync = void 0;
|
|
27
|
+
const stake_1 = require("./../types/stake");
|
|
27
28
|
const web3_js_1 = require("@solana/web3.js");
|
|
28
29
|
const anchor = __importStar(require("@coral-xyz/anchor"));
|
|
30
|
+
const spl_token_1 = require("@solana/spl-token");
|
|
31
|
+
const constants_1 = require("./constants");
|
|
29
32
|
const getTickerAddressSync = (programId, tickerName) => {
|
|
30
33
|
const [TickerPDA] = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from('ticker'), Buffer.from(tickerName)], programId);
|
|
31
34
|
return TickerPDA;
|
|
@@ -68,7 +71,91 @@ function getUserPositionAddressSync(programId, authority, ticker) {
|
|
|
68
71
|
return UserPositionPDA;
|
|
69
72
|
}
|
|
70
73
|
exports.getUserPositionAddressSync = getUserPositionAddressSync;
|
|
74
|
+
const getStakeVaultAddressSync = (programId, vaultName) => {
|
|
75
|
+
const [StakeVaultPDA] = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from('stake_vault'), Buffer.from(vaultName)], programId);
|
|
76
|
+
return StakeVaultPDA;
|
|
77
|
+
};
|
|
78
|
+
exports.getStakeVaultAddressSync = getStakeVaultAddressSync;
|
|
79
|
+
const getStakeAddressSync = (programId, nftName) => {
|
|
80
|
+
const [StakePDA] = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from('stake'), Buffer.from(nftName)], programId);
|
|
81
|
+
return StakePDA;
|
|
82
|
+
};
|
|
83
|
+
exports.getStakeAddressSync = getStakeAddressSync;
|
|
84
|
+
const getNFTRewardsAddressSync = (programId, stake) => {
|
|
85
|
+
const [NFTRewardsPDA] = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from('nft_rewards'), stake.toBuffer()], programId);
|
|
86
|
+
return NFTRewardsPDA;
|
|
87
|
+
};
|
|
88
|
+
exports.getNFTRewardsAddressSync = getNFTRewardsAddressSync;
|
|
89
|
+
const getATASync = (address, Mint) => {
|
|
90
|
+
const [ATA] = web3_js_1.PublicKey.findProgramAddressSync([address.toBytes(), spl_token_1.TOKEN_2022_PROGRAM_ID.toBytes(), Mint.toBytes()], new web3_js_1.PublicKey(constants_1.ATA_PROGRAM_ID));
|
|
91
|
+
return ATA;
|
|
92
|
+
};
|
|
93
|
+
exports.getATASync = getATASync;
|
|
94
|
+
const getUserAddressSync = (programId, name) => {
|
|
95
|
+
const [StakePDA] = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from('user'), Buffer.from(name)], programId);
|
|
96
|
+
return StakePDA;
|
|
97
|
+
};
|
|
98
|
+
exports.getUserAddressSync = getUserAddressSync;
|
|
71
99
|
const formatNumber = (number, decimals = 6) => {
|
|
72
100
|
return Number(number.toString()) / Math.pow(10, decimals);
|
|
73
101
|
};
|
|
74
102
|
exports.formatNumber = formatNumber;
|
|
103
|
+
const formatStakeVault = (stakeVault) => {
|
|
104
|
+
return {
|
|
105
|
+
name: stakeVault.name,
|
|
106
|
+
collection: stakeVault.collection,
|
|
107
|
+
slots: stakeVault.slots.toNumber(),
|
|
108
|
+
amount: stakeVault.amount.toNumber(),
|
|
109
|
+
isLocked: stakeVault.isLocked,
|
|
110
|
+
tokenMint: stakeVault.tokenMint.toBase58(),
|
|
111
|
+
tokenDecimals: stakeVault.tokenDecimals,
|
|
112
|
+
amountPaid: stakeVault.amountPaid.toNumber(),
|
|
113
|
+
nftStaked: stakeVault.nftStaked.toNumber(),
|
|
114
|
+
week: stakeVault.week,
|
|
115
|
+
initTs: stakeVault.initTs.toNumber(),
|
|
116
|
+
endTs: stakeVault.endTs.toNumber(),
|
|
117
|
+
authority: stakeVault.authority.toBase58(),
|
|
118
|
+
tokenStaked: stakeVault.tokenStaked.toNumber() / Math.pow(10, stakeVault.tokenDecimals)
|
|
119
|
+
};
|
|
120
|
+
};
|
|
121
|
+
exports.formatStakeVault = formatStakeVault;
|
|
122
|
+
const formatStake = (stake) => {
|
|
123
|
+
return {
|
|
124
|
+
name: stake.name,
|
|
125
|
+
collections: stake.collections,
|
|
126
|
+
rarity: Object.keys(stake.rarity)[0],
|
|
127
|
+
stakeVault: stake.stakeVault.toBase58(),
|
|
128
|
+
authority: stake.authority.toBase58(),
|
|
129
|
+
initTs: stake.initTs.toNumber(),
|
|
130
|
+
isLocked: stake.isLocked,
|
|
131
|
+
withdrawTs: stake.withdrawTs.toNumber(),
|
|
132
|
+
mint: stake.mint.toBase58(),
|
|
133
|
+
stakeRewards: stake.stakeRewards.toBase58()
|
|
134
|
+
};
|
|
135
|
+
};
|
|
136
|
+
exports.formatStake = formatStake;
|
|
137
|
+
const formatUser = (user) => {
|
|
138
|
+
return {
|
|
139
|
+
ts: user.ts.toNumber(),
|
|
140
|
+
authority: user.authority.toBase58(),
|
|
141
|
+
referral: user.referral,
|
|
142
|
+
referred: user.referred.toNumber(),
|
|
143
|
+
name: user.name
|
|
144
|
+
};
|
|
145
|
+
};
|
|
146
|
+
exports.formatUser = formatUser;
|
|
147
|
+
const calculateTotalMultiplier = (collections, rank) => {
|
|
148
|
+
let multiplier = 1;
|
|
149
|
+
collections.forEach((collection) => {
|
|
150
|
+
if (stake_1.COLLECTION_MUlTIPLIER[collection]) {
|
|
151
|
+
multiplier *= Number(stake_1.COLLECTION_MUlTIPLIER[collection]);
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
let rankMultiplier = (rank.max + 1 - rank.currentPosition) / rank.max;
|
|
155
|
+
return multiplier * rankMultiplier;
|
|
156
|
+
};
|
|
157
|
+
exports.calculateTotalMultiplier = calculateTotalMultiplier;
|
|
158
|
+
const calculateAPR = ({ rewards, rate, amount, baseRewards }) => {
|
|
159
|
+
return ((rewards * rate) / (amount * baseRewards)) * 100;
|
|
160
|
+
};
|
|
161
|
+
exports.calculateAPR = calculateAPR;
|