@triadxyz/triad-protocol 0.1.0-alpha.7 → 0.1.0-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 +4 -48
- package/dist/index.js +26 -67
- package/dist/stake.d.ts +122 -0
- package/dist/stake.js +444 -0
- package/dist/test.d.ts +1 -0
- package/dist/test.js +107 -0
- package/dist/ticker.d.ts +10 -0
- package/dist/ticker.js +32 -6
- package/dist/types/idl_triad_protocol.json +1738 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.js +2 -0
- package/dist/types/stake.d.ts +118 -0
- package/dist/types/stake.js +20 -0
- package/dist/types/triad_protocol.d.ts +1496 -309
- package/dist/types/triad_protocol.js +0 -603
- package/dist/utils/constants.d.ts +31 -0
- package/dist/utils/constants.js +14 -1
- package/dist/utils/helpers.d.ts +18 -1
- package/dist/utils/helpers.js +81 -5
- package/dist/utils/priorityFee.d.ts +1 -0
- package/dist/utils/priorityFee.js +36 -0
- 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.d.ts +10 -10
- package/dist/vault.js +49 -34
- package/package.json +9 -8
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.
|
|
26
|
+
exports.calculateAPR = exports.calculateTotalMultiplier = exports.formatStake = exports.formatStakeVault = exports.formatNumber = 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;
|
|
@@ -59,12 +62,85 @@ const getTokenVaultAddressSync = (programId, vault) => {
|
|
|
59
62
|
return VaultTokenPDA;
|
|
60
63
|
};
|
|
61
64
|
exports.getTokenVaultAddressSync = getTokenVaultAddressSync;
|
|
62
|
-
function
|
|
63
|
-
const [
|
|
64
|
-
|
|
65
|
+
function getUserPositionAddressSync(programId, authority, ticker) {
|
|
66
|
+
const [UserPositionPDA] = web3_js_1.PublicKey.findProgramAddressSync([
|
|
67
|
+
Buffer.from(anchor.utils.bytes.utf8.encode('user_position')),
|
|
68
|
+
authority.toBuffer(),
|
|
69
|
+
ticker.toBuffer()
|
|
70
|
+
], programId);
|
|
71
|
+
return UserPositionPDA;
|
|
65
72
|
}
|
|
66
|
-
exports.
|
|
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;
|
|
67
94
|
const formatNumber = (number, decimals = 6) => {
|
|
68
95
|
return Number(number.toString()) / Math.pow(10, decimals);
|
|
69
96
|
};
|
|
70
97
|
exports.formatNumber = formatNumber;
|
|
98
|
+
const formatStakeVault = (stakeVault) => {
|
|
99
|
+
return {
|
|
100
|
+
name: stakeVault.name,
|
|
101
|
+
collection: stakeVault.collection,
|
|
102
|
+
slots: stakeVault.slots.toNumber(),
|
|
103
|
+
amount: stakeVault.amount.toNumber(),
|
|
104
|
+
isLocked: stakeVault.isLocked,
|
|
105
|
+
tokenMint: stakeVault.tokenMint.toBase58(),
|
|
106
|
+
tokenDecimals: stakeVault.tokenDecimals,
|
|
107
|
+
amountPaid: stakeVault.amountPaid.toNumber(),
|
|
108
|
+
nftStaked: stakeVault.nftStaked.toNumber(),
|
|
109
|
+
week: stakeVault.week,
|
|
110
|
+
initTs: stakeVault.initTs.toNumber(),
|
|
111
|
+
endTs: stakeVault.endTs.toNumber(),
|
|
112
|
+
authority: stakeVault.authority.toBase58(),
|
|
113
|
+
tokenStaked: stakeVault.tokenStaked.toNumber() / Math.pow(10, stakeVault.tokenDecimals)
|
|
114
|
+
};
|
|
115
|
+
};
|
|
116
|
+
exports.formatStakeVault = formatStakeVault;
|
|
117
|
+
const formatStake = (stake) => {
|
|
118
|
+
return {
|
|
119
|
+
name: stake.name,
|
|
120
|
+
collections: stake.collections,
|
|
121
|
+
rarity: Object.keys(stake.rarity)[0],
|
|
122
|
+
stakeVault: stake.stakeVault.toBase58(),
|
|
123
|
+
authority: stake.authority.toBase58(),
|
|
124
|
+
initTs: stake.initTs.toNumber(),
|
|
125
|
+
isLocked: stake.isLocked,
|
|
126
|
+
withdrawTs: stake.withdrawTs.toNumber(),
|
|
127
|
+
mint: stake.mint.toBase58(),
|
|
128
|
+
stakeRewards: stake.stakeRewards.toBase58()
|
|
129
|
+
};
|
|
130
|
+
};
|
|
131
|
+
exports.formatStake = formatStake;
|
|
132
|
+
const calculateTotalMultiplier = (collections, rank) => {
|
|
133
|
+
let multiplier = 1;
|
|
134
|
+
collections.forEach((collection) => {
|
|
135
|
+
if (stake_1.COLLECTION_MUlTIPLIER[collection]) {
|
|
136
|
+
multiplier *= Number(stake_1.COLLECTION_MUlTIPLIER[collection]);
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
let rankMultiplier = (rank.max + 1 - rank.currentPosition) / rank.max;
|
|
140
|
+
return multiplier * rankMultiplier;
|
|
141
|
+
};
|
|
142
|
+
exports.calculateTotalMultiplier = calculateTotalMultiplier;
|
|
143
|
+
const calculateAPR = ({ rewards, rate, amount, baseRewards }) => {
|
|
144
|
+
return ((rewards * rate) / (amount * baseRewards)) * 100;
|
|
145
|
+
};
|
|
146
|
+
exports.calculateAPR = calculateAPR;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function getPriorityFeeEstimate(priorityLevel: any, transaction: any, RPC_URL: string): Promise<any>;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.getPriorityFeeEstimate = void 0;
|
|
13
|
+
const bytes_1 = require("@coral-xyz/anchor/dist/cjs/utils/bytes");
|
|
14
|
+
function getPriorityFeeEstimate(priorityLevel, transaction, RPC_URL) {
|
|
15
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
16
|
+
const response = yield fetch(RPC_URL, {
|
|
17
|
+
method: "POST",
|
|
18
|
+
headers: { "Content-Type": "application/json" },
|
|
19
|
+
body: JSON.stringify({
|
|
20
|
+
jsonrpc: "2.0",
|
|
21
|
+
id: "1",
|
|
22
|
+
method: "getPriorityFeeEstimate",
|
|
23
|
+
params: [
|
|
24
|
+
{
|
|
25
|
+
transaction: bytes_1.bs58.encode(transaction.serialize()),
|
|
26
|
+
options: { priorityLevel: priorityLevel },
|
|
27
|
+
},
|
|
28
|
+
],
|
|
29
|
+
}),
|
|
30
|
+
});
|
|
31
|
+
const data = yield response.json();
|
|
32
|
+
console.log("Fee in function for", priorityLevel, " :", data.result.priorityFeeEstimate);
|
|
33
|
+
return data.result;
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
exports.getPriorityFeeEstimate = getPriorityFeeEstimate;
|