@wormhole-foundation/sdk-solana 0.5.2-beta.1 → 0.5.2-beta.4
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/cjs/signer.d.ts +8 -8
- package/dist/cjs/signer.d.ts.map +1 -1
- package/dist/cjs/signer.js +82 -15
- package/dist/cjs/signer.js.map +1 -1
- package/dist/esm/signer.d.ts +8 -8
- package/dist/esm/signer.d.ts.map +1 -1
- package/dist/esm/signer.js +79 -14
- package/dist/esm/signer.js.map +1 -1
- package/package.json +2 -2
package/dist/cjs/signer.d.ts
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import type { Connection, SendOptions, Transaction } from '@solana/web3.js';
|
|
3
|
-
import { Keypair } from '@solana/web3.js';
|
|
2
|
+
import type { Connection, SendOptions, Transaction, TransactionInstruction } from '@solana/web3.js';
|
|
3
|
+
import { Keypair, PublicKey } from '@solana/web3.js';
|
|
4
4
|
import type { Network, SignAndSendSigner, SignOnlySigner, Signer, UnsignedTransaction } from '@wormhole-foundation/sdk-connect';
|
|
5
5
|
import type { SolanaChains } from './types.js';
|
|
6
6
|
import type { SolanaUnsignedTransaction } from './unsignedTransaction.js';
|
|
7
7
|
export declare function getSolanaSigner(rpc: Connection, privateKey: string): Promise<Signer>;
|
|
8
|
-
export declare function getSolanaSignAndSendSigner(rpc: Connection, privateKey: string, opts?: {
|
|
8
|
+
export declare function getSolanaSignAndSendSigner(rpc: Connection, privateKey: string | Keypair, opts?: {
|
|
9
9
|
debug?: boolean;
|
|
10
|
+
priorityFeePercentile?: number;
|
|
10
11
|
sendOpts?: SendOptions;
|
|
11
|
-
priorityFeeAmount?: bigint;
|
|
12
|
-
computeLimit?: bigint;
|
|
13
12
|
}): Promise<Signer>;
|
|
14
13
|
export declare class SolanaSigner<N extends Network, C extends SolanaChains = 'Solana'> implements SignOnlySigner<N, C> {
|
|
15
14
|
private _chain;
|
|
@@ -26,14 +25,15 @@ export declare class SolanaSendSigner<N extends Network, C extends SolanaChains
|
|
|
26
25
|
private _chain;
|
|
27
26
|
private _keypair;
|
|
28
27
|
private _debug;
|
|
28
|
+
private _priorityFeePercentile;
|
|
29
29
|
private _sendOpts?;
|
|
30
|
-
|
|
31
|
-
private _computeUnitLimit?;
|
|
32
|
-
constructor(_rpc: Connection, _chain: C, _keypair: Keypair, _debug?: boolean, _sendOpts?: SendOptions | undefined, _priotifyFeeAmount?: bigint | undefined, _computeUnitLimit?: bigint | undefined);
|
|
30
|
+
constructor(_rpc: Connection, _chain: C, _keypair: Keypair, _debug?: boolean, _priorityFeePercentile?: number, _sendOpts?: SendOptions | undefined);
|
|
33
31
|
chain(): C;
|
|
34
32
|
address(): string;
|
|
35
33
|
private retryable;
|
|
36
34
|
signAndSend(tx: UnsignedTransaction[]): Promise<any[]>;
|
|
37
35
|
}
|
|
38
36
|
export declare function logTxDetails(transaction: Transaction): void;
|
|
37
|
+
export declare function addComputeBudget(connection: Connection, transaction: Transaction, lockedWritableAccounts?: PublicKey[], feePercentile?: number, minPriorityFee?: number): Promise<TransactionInstruction[]>;
|
|
38
|
+
export declare function determineComputeBudget(connection: Connection, transaction: Transaction, lockedWritableAccounts?: PublicKey[], feePercentile?: number, minPriorityFee?: number): Promise<TransactionInstruction[]>;
|
|
39
39
|
//# sourceMappingURL=signer.d.ts.map
|
package/dist/cjs/signer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../src/signer.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../src/signer.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EACX,WAAW,EACX,sBAAsB,EACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAEL,OAAO,EACP,SAAS,EAGV,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EACV,OAAO,EACP,iBAAiB,EACjB,cAAc,EACd,MAAM,EACN,mBAAmB,EACpB,MAAM,kCAAkC,CAAC;AAG1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAM1E,wBAAsB,eAAe,CACnC,GAAG,EAAE,UAAU,EACf,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,CAOjB;AAGD,wBAAsB,0BAA0B,CAC9C,GAAG,EAAE,UAAU,EACf,UAAU,EAAE,MAAM,GAAG,OAAO,EAC5B,IAAI,CAAC,EAAE;IACL,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,EAAE,WAAW,CAAC;CACxB,GACA,OAAO,CAAC,MAAM,CAAC,CAmBjB;AAED,qBAAa,YAAY,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,YAAY,GAAG,QAAQ,CAC5E,YAAW,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC;IAG7B,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,MAAM;gBAHN,MAAM,EAAE,CAAC,EACT,QAAQ,EAAE,OAAO,EACjB,IAAI,EAAE,UAAU,EAChB,MAAM,GAAE,OAAe;IAGjC,KAAK,IAAI,CAAC;IAIV,OAAO,IAAI,MAAM;IAIX,IAAI,CAAC,EAAE,EAAE,yBAAyB,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAoBlE;AAED,qBAAa,gBAAgB,CAC3B,CAAC,SAAS,OAAO,EACjB,CAAC,SAAS,YAAY,GAAG,QAAQ,CACjC,YAAW,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;IAGhC,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,sBAAsB;IAC9B,OAAO,CAAC,SAAS,CAAC;gBALV,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,CAAC,EACT,QAAQ,EAAE,OAAO,EACjB,MAAM,GAAE,OAAe,EACvB,sBAAsB,GAAE,MAAY,EACpC,SAAS,CAAC,yBAAa;IAOjC,KAAK,IAAI,CAAC;IAIV,OAAO,IAAI,MAAM;IASjB,OAAO,CAAC,SAAS;IA4BX,WAAW,CAAC,EAAE,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;CAyE7D;AAED,wBAAgB,YAAY,CAAC,WAAW,EAAE,WAAW,QAWpD;AAED,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,WAAW,EACxB,sBAAsB,GAAE,SAAS,EAAO,EACxC,aAAa,GAAE,MAAwC,EACvD,cAAc,GAAE,MAAU,GACzB,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAcnC;AAED,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,WAAW,EACxB,sBAAsB,GAAE,SAAS,EAAO,EACxC,aAAa,GAAE,MAAwC,EACvD,cAAc,GAAE,MAAU,GACzB,OAAO,CAAC,sBAAsB,EAAE,CAAC,CA6CnC"}
|
package/dist/cjs/signer.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.logTxDetails = exports.SolanaSendSigner = exports.SolanaSigner = exports.getSolanaSignAndSendSigner = exports.getSolanaSigner = void 0;
|
|
3
|
+
exports.determineComputeBudget = exports.addComputeBudget = exports.logTxDetails = exports.SolanaSendSigner = exports.SolanaSigner = exports.getSolanaSignAndSendSigner = exports.getSolanaSigner = void 0;
|
|
4
4
|
const web3_js_1 = require("@solana/web3.js");
|
|
5
5
|
const sdk_connect_1 = require("@wormhole-foundation/sdk-connect");
|
|
6
6
|
const platform_js_1 = require("./platform.js");
|
|
7
|
+
// Add priority fee according to 90th percentile of recent fees paid
|
|
8
|
+
const DEFAULT_PRIORITY_FEE_PERCENTILE = 0.9;
|
|
7
9
|
// returns a SignOnlySigner for the Solana platform
|
|
8
10
|
async function getSolanaSigner(rpc, privateKey) {
|
|
9
11
|
const [_, chain] = await platform_js_1.SolanaPlatform.chainFromRpc(rpc);
|
|
@@ -13,7 +15,12 @@ exports.getSolanaSigner = getSolanaSigner;
|
|
|
13
15
|
// returns a SignAndSendSigner for the Solana platform
|
|
14
16
|
async function getSolanaSignAndSendSigner(rpc, privateKey, opts) {
|
|
15
17
|
const [_, chain] = await platform_js_1.SolanaPlatform.chainFromRpc(rpc);
|
|
16
|
-
|
|
18
|
+
const kp = typeof privateKey === 'string'
|
|
19
|
+
? web3_js_1.Keypair.fromSecretKey(sdk_connect_1.encoding.b58.decode(privateKey))
|
|
20
|
+
: privateKey;
|
|
21
|
+
if (opts?.priorityFeePercentile && opts?.priorityFeePercentile > 1.0)
|
|
22
|
+
throw new Error('priorityFeePercentile must be a number between 0 and 1');
|
|
23
|
+
return new SolanaSendSigner(rpc, chain, kp, opts?.debug ?? false, opts?.priorityFeePercentile ?? 0, opts?.sendOpts);
|
|
17
24
|
}
|
|
18
25
|
exports.getSolanaSignAndSendSigner = getSolanaSignAndSendSigner;
|
|
19
26
|
class SolanaSigner {
|
|
@@ -54,17 +61,15 @@ class SolanaSendSigner {
|
|
|
54
61
|
_chain;
|
|
55
62
|
_keypair;
|
|
56
63
|
_debug;
|
|
64
|
+
_priorityFeePercentile;
|
|
57
65
|
_sendOpts;
|
|
58
|
-
|
|
59
|
-
_computeUnitLimit;
|
|
60
|
-
constructor(_rpc, _chain, _keypair, _debug = false, _sendOpts, _priotifyFeeAmount, _computeUnitLimit) {
|
|
66
|
+
constructor(_rpc, _chain, _keypair, _debug = false, _priorityFeePercentile = 0.0, _sendOpts) {
|
|
61
67
|
this._rpc = _rpc;
|
|
62
68
|
this._chain = _chain;
|
|
63
69
|
this._keypair = _keypair;
|
|
64
70
|
this._debug = _debug;
|
|
71
|
+
this._priorityFeePercentile = _priorityFeePercentile;
|
|
65
72
|
this._sendOpts = _sendOpts;
|
|
66
|
-
this._priotifyFeeAmount = _priotifyFeeAmount;
|
|
67
|
-
this._computeUnitLimit = _computeUnitLimit;
|
|
68
73
|
this._sendOpts = this._sendOpts ?? {
|
|
69
74
|
preflightCommitment: this._rpc.commitment,
|
|
70
75
|
};
|
|
@@ -111,14 +116,8 @@ class SolanaSendSigner {
|
|
|
111
116
|
for (const txn of tx) {
|
|
112
117
|
const { description, transaction: { transaction, signers: extraSigners }, } = txn;
|
|
113
118
|
console.log(`Signing: ${description} for ${this.address()}`);
|
|
114
|
-
if (this.
|
|
115
|
-
transaction.add(
|
|
116
|
-
microLamports: this._priotifyFeeAmount,
|
|
117
|
-
}));
|
|
118
|
-
if (this._computeUnitLimit)
|
|
119
|
-
transaction.add(web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({
|
|
120
|
-
units: Number(this._computeUnitLimit),
|
|
121
|
-
}));
|
|
119
|
+
if (this._priorityFeePercentile && this._priorityFeePercentile)
|
|
120
|
+
transaction.add(...(await addComputeBudget(this._rpc, transaction)));
|
|
122
121
|
if (this._debug)
|
|
123
122
|
logTxDetails(transaction);
|
|
124
123
|
// Try to send the transaction up to 5 times
|
|
@@ -170,4 +169,72 @@ function logTxDetails(transaction) {
|
|
|
170
169
|
});
|
|
171
170
|
}
|
|
172
171
|
exports.logTxDetails = logTxDetails;
|
|
172
|
+
async function addComputeBudget(connection, transaction, lockedWritableAccounts = [], feePercentile = DEFAULT_PRIORITY_FEE_PERCENTILE, minPriorityFee = 0) {
|
|
173
|
+
if (lockedWritableAccounts.length === 0) {
|
|
174
|
+
lockedWritableAccounts = transaction.instructions
|
|
175
|
+
.flatMap((ix) => ix.keys)
|
|
176
|
+
.map((k) => (k.isWritable ? k.pubkey : null))
|
|
177
|
+
.filter((k) => k !== null);
|
|
178
|
+
}
|
|
179
|
+
return await determineComputeBudget(connection, transaction, lockedWritableAccounts, feePercentile, minPriorityFee);
|
|
180
|
+
}
|
|
181
|
+
exports.addComputeBudget = addComputeBudget;
|
|
182
|
+
async function determineComputeBudget(connection, transaction, lockedWritableAccounts = [], feePercentile = DEFAULT_PRIORITY_FEE_PERCENTILE, minPriorityFee = 0) {
|
|
183
|
+
let computeBudget = 250_000;
|
|
184
|
+
let priorityFee = 1;
|
|
185
|
+
try {
|
|
186
|
+
const simulateResponse = await connection.simulateTransaction(transaction);
|
|
187
|
+
if (simulateResponse.value.err) {
|
|
188
|
+
console.error(`Error simulating Solana transaction: ${simulateResponse.value.err}`);
|
|
189
|
+
}
|
|
190
|
+
if (simulateResponse?.value?.unitsConsumed) {
|
|
191
|
+
// Set compute budget to 120% of the units used in the simulated transaction
|
|
192
|
+
computeBudget = Math.round(simulateResponse.value.unitsConsumed * 1.2);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
catch (e) {
|
|
196
|
+
console.error(`Failed to calculate compute unit limit for Solana transaction: ${e}`);
|
|
197
|
+
}
|
|
198
|
+
try {
|
|
199
|
+
priorityFee = await determinePriorityFee(connection, lockedWritableAccounts, feePercentile);
|
|
200
|
+
}
|
|
201
|
+
catch (e) {
|
|
202
|
+
console.error(`Failed to calculate compute unit price for Solana transaction: ${e}`);
|
|
203
|
+
return [];
|
|
204
|
+
}
|
|
205
|
+
priorityFee = Math.max(priorityFee, minPriorityFee);
|
|
206
|
+
return [
|
|
207
|
+
web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({
|
|
208
|
+
units: computeBudget,
|
|
209
|
+
}),
|
|
210
|
+
web3_js_1.ComputeBudgetProgram.setComputeUnitPrice({
|
|
211
|
+
microLamports: priorityFee,
|
|
212
|
+
}),
|
|
213
|
+
];
|
|
214
|
+
}
|
|
215
|
+
exports.determineComputeBudget = determineComputeBudget;
|
|
216
|
+
async function determinePriorityFee(connection, lockedWritableAccounts = [], percentile) {
|
|
217
|
+
// https://twitter.com/0xMert_/status/1768669928825962706
|
|
218
|
+
let fee = 1; // Set fee to 1 microlamport by default
|
|
219
|
+
try {
|
|
220
|
+
const recentFeesResponse = await connection.getRecentPrioritizationFees({
|
|
221
|
+
lockedWritableAccounts,
|
|
222
|
+
});
|
|
223
|
+
if (recentFeesResponse) {
|
|
224
|
+
// Get 75th percentile fee paid in recent slots
|
|
225
|
+
const recentFees = recentFeesResponse
|
|
226
|
+
.map((dp) => dp.prioritizationFee)
|
|
227
|
+
.filter((dp) => dp > 0)
|
|
228
|
+
.sort((a, b) => a - b);
|
|
229
|
+
if (recentFees.length > 0) {
|
|
230
|
+
const medianFee = recentFees[Math.floor(recentFees.length * percentile)];
|
|
231
|
+
fee = Math.max(fee, medianFee);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
catch (e) {
|
|
236
|
+
console.error('Error fetching Solana recent fees', e);
|
|
237
|
+
}
|
|
238
|
+
return fee;
|
|
239
|
+
}
|
|
173
240
|
//# sourceMappingURL=signer.js.map
|
package/dist/cjs/signer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signer.js","sourceRoot":"","sources":["../../src/signer.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"signer.js","sourceRoot":"","sources":["../../src/signer.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/signer.d.ts
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
-
import type { Connection, SendOptions, Transaction } from '@solana/web3.js';
|
|
3
|
-
import { Keypair } from '@solana/web3.js';
|
|
2
|
+
import type { Connection, SendOptions, Transaction, TransactionInstruction } from '@solana/web3.js';
|
|
3
|
+
import { Keypair, PublicKey } from '@solana/web3.js';
|
|
4
4
|
import type { Network, SignAndSendSigner, SignOnlySigner, Signer, UnsignedTransaction } from '@wormhole-foundation/sdk-connect';
|
|
5
5
|
import type { SolanaChains } from './types.js';
|
|
6
6
|
import type { SolanaUnsignedTransaction } from './unsignedTransaction.js';
|
|
7
7
|
export declare function getSolanaSigner(rpc: Connection, privateKey: string): Promise<Signer>;
|
|
8
|
-
export declare function getSolanaSignAndSendSigner(rpc: Connection, privateKey: string, opts?: {
|
|
8
|
+
export declare function getSolanaSignAndSendSigner(rpc: Connection, privateKey: string | Keypair, opts?: {
|
|
9
9
|
debug?: boolean;
|
|
10
|
+
priorityFeePercentile?: number;
|
|
10
11
|
sendOpts?: SendOptions;
|
|
11
|
-
priorityFeeAmount?: bigint;
|
|
12
|
-
computeLimit?: bigint;
|
|
13
12
|
}): Promise<Signer>;
|
|
14
13
|
export declare class SolanaSigner<N extends Network, C extends SolanaChains = 'Solana'> implements SignOnlySigner<N, C> {
|
|
15
14
|
private _chain;
|
|
@@ -26,14 +25,15 @@ export declare class SolanaSendSigner<N extends Network, C extends SolanaChains
|
|
|
26
25
|
private _chain;
|
|
27
26
|
private _keypair;
|
|
28
27
|
private _debug;
|
|
28
|
+
private _priorityFeePercentile;
|
|
29
29
|
private _sendOpts?;
|
|
30
|
-
|
|
31
|
-
private _computeUnitLimit?;
|
|
32
|
-
constructor(_rpc: Connection, _chain: C, _keypair: Keypair, _debug?: boolean, _sendOpts?: SendOptions | undefined, _priotifyFeeAmount?: bigint | undefined, _computeUnitLimit?: bigint | undefined);
|
|
30
|
+
constructor(_rpc: Connection, _chain: C, _keypair: Keypair, _debug?: boolean, _priorityFeePercentile?: number, _sendOpts?: SendOptions | undefined);
|
|
33
31
|
chain(): C;
|
|
34
32
|
address(): string;
|
|
35
33
|
private retryable;
|
|
36
34
|
signAndSend(tx: UnsignedTransaction[]): Promise<any[]>;
|
|
37
35
|
}
|
|
38
36
|
export declare function logTxDetails(transaction: Transaction): void;
|
|
37
|
+
export declare function addComputeBudget(connection: Connection, transaction: Transaction, lockedWritableAccounts?: PublicKey[], feePercentile?: number, minPriorityFee?: number): Promise<TransactionInstruction[]>;
|
|
38
|
+
export declare function determineComputeBudget(connection: Connection, transaction: Transaction, lockedWritableAccounts?: PublicKey[], feePercentile?: number, minPriorityFee?: number): Promise<TransactionInstruction[]>;
|
|
39
39
|
//# sourceMappingURL=signer.d.ts.map
|
package/dist/esm/signer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../src/signer.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../src/signer.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EACX,WAAW,EACX,sBAAsB,EACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAEL,OAAO,EACP,SAAS,EAGV,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EACV,OAAO,EACP,iBAAiB,EACjB,cAAc,EACd,MAAM,EACN,mBAAmB,EACpB,MAAM,kCAAkC,CAAC;AAG1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAM1E,wBAAsB,eAAe,CACnC,GAAG,EAAE,UAAU,EACf,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,CAOjB;AAGD,wBAAsB,0BAA0B,CAC9C,GAAG,EAAE,UAAU,EACf,UAAU,EAAE,MAAM,GAAG,OAAO,EAC5B,IAAI,CAAC,EAAE;IACL,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,EAAE,WAAW,CAAC;CACxB,GACA,OAAO,CAAC,MAAM,CAAC,CAmBjB;AAED,qBAAa,YAAY,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,YAAY,GAAG,QAAQ,CAC5E,YAAW,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC;IAG7B,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,MAAM;gBAHN,MAAM,EAAE,CAAC,EACT,QAAQ,EAAE,OAAO,EACjB,IAAI,EAAE,UAAU,EAChB,MAAM,GAAE,OAAe;IAGjC,KAAK,IAAI,CAAC;IAIV,OAAO,IAAI,MAAM;IAIX,IAAI,CAAC,EAAE,EAAE,yBAAyB,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAoBlE;AAED,qBAAa,gBAAgB,CAC3B,CAAC,SAAS,OAAO,EACjB,CAAC,SAAS,YAAY,GAAG,QAAQ,CACjC,YAAW,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;IAGhC,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,sBAAsB;IAC9B,OAAO,CAAC,SAAS,CAAC;gBALV,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,CAAC,EACT,QAAQ,EAAE,OAAO,EACjB,MAAM,GAAE,OAAe,EACvB,sBAAsB,GAAE,MAAY,EACpC,SAAS,CAAC,yBAAa;IAOjC,KAAK,IAAI,CAAC;IAIV,OAAO,IAAI,MAAM;IASjB,OAAO,CAAC,SAAS;IA4BX,WAAW,CAAC,EAAE,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;CAyE7D;AAED,wBAAgB,YAAY,CAAC,WAAW,EAAE,WAAW,QAWpD;AAED,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,WAAW,EACxB,sBAAsB,GAAE,SAAS,EAAO,EACxC,aAAa,GAAE,MAAwC,EACvD,cAAc,GAAE,MAAU,GACzB,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAcnC;AAED,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,WAAW,EACxB,sBAAsB,GAAE,SAAS,EAAO,EACxC,aAAa,GAAE,MAAwC,EACvD,cAAc,GAAE,MAAU,GACzB,OAAO,CAAC,sBAAsB,EAAE,CAAC,CA6CnC"}
|
package/dist/esm/signer.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { ComputeBudgetProgram, Keypair, SendTransactionError, TransactionExpiredBlockheightExceededError, } from '@solana/web3.js';
|
|
2
2
|
import { encoding } from '@wormhole-foundation/sdk-connect';
|
|
3
3
|
import { SolanaPlatform } from './platform.js';
|
|
4
|
+
// Add priority fee according to 90th percentile of recent fees paid
|
|
5
|
+
const DEFAULT_PRIORITY_FEE_PERCENTILE = 0.9;
|
|
4
6
|
// returns a SignOnlySigner for the Solana platform
|
|
5
7
|
export async function getSolanaSigner(rpc, privateKey) {
|
|
6
8
|
const [_, chain] = await SolanaPlatform.chainFromRpc(rpc);
|
|
@@ -9,7 +11,12 @@ export async function getSolanaSigner(rpc, privateKey) {
|
|
|
9
11
|
// returns a SignAndSendSigner for the Solana platform
|
|
10
12
|
export async function getSolanaSignAndSendSigner(rpc, privateKey, opts) {
|
|
11
13
|
const [_, chain] = await SolanaPlatform.chainFromRpc(rpc);
|
|
12
|
-
|
|
14
|
+
const kp = typeof privateKey === 'string'
|
|
15
|
+
? Keypair.fromSecretKey(encoding.b58.decode(privateKey))
|
|
16
|
+
: privateKey;
|
|
17
|
+
if (opts?.priorityFeePercentile && opts?.priorityFeePercentile > 1.0)
|
|
18
|
+
throw new Error('priorityFeePercentile must be a number between 0 and 1');
|
|
19
|
+
return new SolanaSendSigner(rpc, chain, kp, opts?.debug ?? false, opts?.priorityFeePercentile ?? 0, opts?.sendOpts);
|
|
13
20
|
}
|
|
14
21
|
export class SolanaSigner {
|
|
15
22
|
_chain;
|
|
@@ -48,17 +55,15 @@ export class SolanaSendSigner {
|
|
|
48
55
|
_chain;
|
|
49
56
|
_keypair;
|
|
50
57
|
_debug;
|
|
58
|
+
_priorityFeePercentile;
|
|
51
59
|
_sendOpts;
|
|
52
|
-
|
|
53
|
-
_computeUnitLimit;
|
|
54
|
-
constructor(_rpc, _chain, _keypair, _debug = false, _sendOpts, _priotifyFeeAmount, _computeUnitLimit) {
|
|
60
|
+
constructor(_rpc, _chain, _keypair, _debug = false, _priorityFeePercentile = 0.0, _sendOpts) {
|
|
55
61
|
this._rpc = _rpc;
|
|
56
62
|
this._chain = _chain;
|
|
57
63
|
this._keypair = _keypair;
|
|
58
64
|
this._debug = _debug;
|
|
65
|
+
this._priorityFeePercentile = _priorityFeePercentile;
|
|
59
66
|
this._sendOpts = _sendOpts;
|
|
60
|
-
this._priotifyFeeAmount = _priotifyFeeAmount;
|
|
61
|
-
this._computeUnitLimit = _computeUnitLimit;
|
|
62
67
|
this._sendOpts = this._sendOpts ?? {
|
|
63
68
|
preflightCommitment: this._rpc.commitment,
|
|
64
69
|
};
|
|
@@ -105,14 +110,8 @@ export class SolanaSendSigner {
|
|
|
105
110
|
for (const txn of tx) {
|
|
106
111
|
const { description, transaction: { transaction, signers: extraSigners }, } = txn;
|
|
107
112
|
console.log(`Signing: ${description} for ${this.address()}`);
|
|
108
|
-
if (this.
|
|
109
|
-
transaction.add(
|
|
110
|
-
microLamports: this._priotifyFeeAmount,
|
|
111
|
-
}));
|
|
112
|
-
if (this._computeUnitLimit)
|
|
113
|
-
transaction.add(ComputeBudgetProgram.setComputeUnitLimit({
|
|
114
|
-
units: Number(this._computeUnitLimit),
|
|
115
|
-
}));
|
|
113
|
+
if (this._priorityFeePercentile && this._priorityFeePercentile)
|
|
114
|
+
transaction.add(...(await addComputeBudget(this._rpc, transaction)));
|
|
116
115
|
if (this._debug)
|
|
117
116
|
logTxDetails(transaction);
|
|
118
117
|
// Try to send the transaction up to 5 times
|
|
@@ -162,4 +161,70 @@ export function logTxDetails(transaction) {
|
|
|
162
161
|
console.log('Keys: ', ix.keys.map((k) => [k, k.pubkey.toBase58()]));
|
|
163
162
|
});
|
|
164
163
|
}
|
|
164
|
+
export async function addComputeBudget(connection, transaction, lockedWritableAccounts = [], feePercentile = DEFAULT_PRIORITY_FEE_PERCENTILE, minPriorityFee = 0) {
|
|
165
|
+
if (lockedWritableAccounts.length === 0) {
|
|
166
|
+
lockedWritableAccounts = transaction.instructions
|
|
167
|
+
.flatMap((ix) => ix.keys)
|
|
168
|
+
.map((k) => (k.isWritable ? k.pubkey : null))
|
|
169
|
+
.filter((k) => k !== null);
|
|
170
|
+
}
|
|
171
|
+
return await determineComputeBudget(connection, transaction, lockedWritableAccounts, feePercentile, minPriorityFee);
|
|
172
|
+
}
|
|
173
|
+
export async function determineComputeBudget(connection, transaction, lockedWritableAccounts = [], feePercentile = DEFAULT_PRIORITY_FEE_PERCENTILE, minPriorityFee = 0) {
|
|
174
|
+
let computeBudget = 250_000;
|
|
175
|
+
let priorityFee = 1;
|
|
176
|
+
try {
|
|
177
|
+
const simulateResponse = await connection.simulateTransaction(transaction);
|
|
178
|
+
if (simulateResponse.value.err) {
|
|
179
|
+
console.error(`Error simulating Solana transaction: ${simulateResponse.value.err}`);
|
|
180
|
+
}
|
|
181
|
+
if (simulateResponse?.value?.unitsConsumed) {
|
|
182
|
+
// Set compute budget to 120% of the units used in the simulated transaction
|
|
183
|
+
computeBudget = Math.round(simulateResponse.value.unitsConsumed * 1.2);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
catch (e) {
|
|
187
|
+
console.error(`Failed to calculate compute unit limit for Solana transaction: ${e}`);
|
|
188
|
+
}
|
|
189
|
+
try {
|
|
190
|
+
priorityFee = await determinePriorityFee(connection, lockedWritableAccounts, feePercentile);
|
|
191
|
+
}
|
|
192
|
+
catch (e) {
|
|
193
|
+
console.error(`Failed to calculate compute unit price for Solana transaction: ${e}`);
|
|
194
|
+
return [];
|
|
195
|
+
}
|
|
196
|
+
priorityFee = Math.max(priorityFee, minPriorityFee);
|
|
197
|
+
return [
|
|
198
|
+
ComputeBudgetProgram.setComputeUnitLimit({
|
|
199
|
+
units: computeBudget,
|
|
200
|
+
}),
|
|
201
|
+
ComputeBudgetProgram.setComputeUnitPrice({
|
|
202
|
+
microLamports: priorityFee,
|
|
203
|
+
}),
|
|
204
|
+
];
|
|
205
|
+
}
|
|
206
|
+
async function determinePriorityFee(connection, lockedWritableAccounts = [], percentile) {
|
|
207
|
+
// https://twitter.com/0xMert_/status/1768669928825962706
|
|
208
|
+
let fee = 1; // Set fee to 1 microlamport by default
|
|
209
|
+
try {
|
|
210
|
+
const recentFeesResponse = await connection.getRecentPrioritizationFees({
|
|
211
|
+
lockedWritableAccounts,
|
|
212
|
+
});
|
|
213
|
+
if (recentFeesResponse) {
|
|
214
|
+
// Get 75th percentile fee paid in recent slots
|
|
215
|
+
const recentFees = recentFeesResponse
|
|
216
|
+
.map((dp) => dp.prioritizationFee)
|
|
217
|
+
.filter((dp) => dp > 0)
|
|
218
|
+
.sort((a, b) => a - b);
|
|
219
|
+
if (recentFees.length > 0) {
|
|
220
|
+
const medianFee = recentFees[Math.floor(recentFees.length * percentile)];
|
|
221
|
+
fee = Math.max(fee, medianFee);
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
catch (e) {
|
|
226
|
+
console.error('Error fetching Solana recent fees', e);
|
|
227
|
+
}
|
|
228
|
+
return fee;
|
|
229
|
+
}
|
|
165
230
|
//# sourceMappingURL=signer.js.map
|
package/dist/esm/signer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signer.js","sourceRoot":"","sources":["../../src/signer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"signer.js","sourceRoot":"","sources":["../../src/signer.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wormhole-foundation/sdk-solana",
|
|
3
|
-
"version": "0.5.2-beta.
|
|
3
|
+
"version": "0.5.2-beta.4",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/wormhole-foundation/connect-sdk.git"
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"nock": "^13.3.3"
|
|
47
47
|
},
|
|
48
48
|
"dependencies": {
|
|
49
|
-
"@wormhole-foundation/sdk-connect": "0.5.2-beta.
|
|
49
|
+
"@wormhole-foundation/sdk-connect": "0.5.2-beta.4",
|
|
50
50
|
"@coral-xyz/borsh": "0.29.0",
|
|
51
51
|
"@coral-xyz/anchor": "0.29.0",
|
|
52
52
|
"@solana/spl-token": "0.3.9",
|