@streamflow/common 8.0.1 → 8.0.2-alpha.p287.a3616ff
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/index.cjs +1 -1
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/solana/index.cjs +149 -32
- package/dist/cjs/solana/index.cjs.map +1 -1
- package/dist/cjs/solana/index.d.cts +75 -17
- package/dist/cjs/solana/rpc/index.cjs +137 -0
- package/dist/cjs/solana/rpc/index.cjs.map +1 -0
- package/dist/cjs/solana/rpc/index.d.cts +113 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/solana/index.d.ts +75 -17
- package/dist/esm/solana/index.js +145 -34
- package/dist/esm/solana/index.js.map +1 -1
- package/dist/esm/solana/rpc/index.d.ts +113 -0
- package/dist/esm/solana/rpc/index.js +133 -0
- package/dist/esm/solana/rpc/index.js.map +1 -0
- package/package.json +11 -3
package/dist/esm/solana/index.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { getAssociatedTokenAddress, NATIVE_MINT, createAssociatedTokenAccountInstruction, createSyncNativeInstruction, TOKEN_PROGRAM_ID, TOKEN_2022_PROGRAM_ID, unpackMint } from '@solana/spl-token';
|
|
2
|
-
import { SystemProgram,
|
|
2
|
+
import { SystemProgram, Keypair, TransactionMessage, VersionedTransaction, SendTransactionError, ComputeBudgetProgram, Transaction, PublicKey } from '@solana/web3.js';
|
|
3
3
|
import bs58 from 'bs58';
|
|
4
4
|
import 'bn.js';
|
|
5
|
+
import { Buffer } from 'buffer';
|
|
5
6
|
|
|
6
7
|
var __create = Object.create;
|
|
7
8
|
var __defProp = Object.defineProperty;
|
|
@@ -51,12 +52,12 @@ var __privateWrapper = (obj, member, setter, getter) => ({
|
|
|
51
52
|
var require_eventemitter3 = __commonJS({
|
|
52
53
|
"../../node_modules/.pnpm/eventemitter3@5.0.1/node_modules/eventemitter3/index.js"(exports, module) {
|
|
53
54
|
var has = Object.prototype.hasOwnProperty;
|
|
54
|
-
var
|
|
55
|
+
var prefix2 = "~";
|
|
55
56
|
function Events() {
|
|
56
57
|
}
|
|
57
58
|
if (Object.create) {
|
|
58
59
|
Events.prototype = /* @__PURE__ */ Object.create(null);
|
|
59
|
-
if (!new Events().__proto__)
|
|
60
|
+
if (!new Events().__proto__) prefix2 = false;
|
|
60
61
|
}
|
|
61
62
|
function EE(fn, context, once) {
|
|
62
63
|
this.fn = fn;
|
|
@@ -67,7 +68,7 @@ var require_eventemitter3 = __commonJS({
|
|
|
67
68
|
if (typeof fn !== "function") {
|
|
68
69
|
throw new TypeError("The listener must be a function");
|
|
69
70
|
}
|
|
70
|
-
var listener = new EE(fn, context || emitter, once), evt =
|
|
71
|
+
var listener = new EE(fn, context || emitter, once), evt = prefix2 ? prefix2 + event : event;
|
|
71
72
|
if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;
|
|
72
73
|
else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);
|
|
73
74
|
else emitter._events[evt] = [emitter._events[evt], listener];
|
|
@@ -85,7 +86,7 @@ var require_eventemitter3 = __commonJS({
|
|
|
85
86
|
var names = [], events, name;
|
|
86
87
|
if (this._eventsCount === 0) return names;
|
|
87
88
|
for (name in events = this._events) {
|
|
88
|
-
if (has.call(events, name)) names.push(
|
|
89
|
+
if (has.call(events, name)) names.push(prefix2 ? name.slice(1) : name);
|
|
89
90
|
}
|
|
90
91
|
if (Object.getOwnPropertySymbols) {
|
|
91
92
|
return names.concat(Object.getOwnPropertySymbols(events));
|
|
@@ -93,7 +94,7 @@ var require_eventemitter3 = __commonJS({
|
|
|
93
94
|
return names;
|
|
94
95
|
};
|
|
95
96
|
EventEmitter2.prototype.listeners = function listeners(event) {
|
|
96
|
-
var evt =
|
|
97
|
+
var evt = prefix2 ? prefix2 + event : event, handlers = this._events[evt];
|
|
97
98
|
if (!handlers) return [];
|
|
98
99
|
if (handlers.fn) return [handlers.fn];
|
|
99
100
|
for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {
|
|
@@ -102,13 +103,13 @@ var require_eventemitter3 = __commonJS({
|
|
|
102
103
|
return ee;
|
|
103
104
|
};
|
|
104
105
|
EventEmitter2.prototype.listenerCount = function listenerCount(event) {
|
|
105
|
-
var evt =
|
|
106
|
+
var evt = prefix2 ? prefix2 + event : event, listeners = this._events[evt];
|
|
106
107
|
if (!listeners) return 0;
|
|
107
108
|
if (listeners.fn) return 1;
|
|
108
109
|
return listeners.length;
|
|
109
110
|
};
|
|
110
111
|
EventEmitter2.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {
|
|
111
|
-
var evt =
|
|
112
|
+
var evt = prefix2 ? prefix2 + event : event;
|
|
112
113
|
if (!this._events[evt]) return false;
|
|
113
114
|
var listeners = this._events[evt], len = arguments.length, args, i;
|
|
114
115
|
if (listeners.fn) {
|
|
@@ -165,7 +166,7 @@ var require_eventemitter3 = __commonJS({
|
|
|
165
166
|
return addListener(this, event, fn, context, true);
|
|
166
167
|
};
|
|
167
168
|
EventEmitter2.prototype.removeListener = function removeListener(event, fn, context, once) {
|
|
168
|
-
var evt =
|
|
169
|
+
var evt = prefix2 ? prefix2 + event : event;
|
|
169
170
|
if (!this._events[evt]) return this;
|
|
170
171
|
if (!fn) {
|
|
171
172
|
clearEvent(this, evt);
|
|
@@ -190,7 +191,7 @@ var require_eventemitter3 = __commonJS({
|
|
|
190
191
|
EventEmitter2.prototype.removeAllListeners = function removeAllListeners(event) {
|
|
191
192
|
var evt;
|
|
192
193
|
if (event) {
|
|
193
|
-
evt =
|
|
194
|
+
evt = prefix2 ? prefix2 + event : event;
|
|
194
195
|
if (this._events[evt]) clearEvent(this, evt);
|
|
195
196
|
} else {
|
|
196
197
|
this._events = new Events();
|
|
@@ -200,7 +201,7 @@ var require_eventemitter3 = __commonJS({
|
|
|
200
201
|
};
|
|
201
202
|
EventEmitter2.prototype.off = EventEmitter2.prototype.removeListener;
|
|
202
203
|
EventEmitter2.prototype.addListener = EventEmitter2.prototype.on;
|
|
203
|
-
EventEmitter2.prefixed =
|
|
204
|
+
EventEmitter2.prefixed = prefix2;
|
|
204
205
|
EventEmitter2.EventEmitter = EventEmitter2;
|
|
205
206
|
if ("undefined" !== typeof module) {
|
|
206
207
|
module.exports = EventEmitter2;
|
|
@@ -238,9 +239,6 @@ var prepareWrappedAccount = async (connection, senderAddress, amount) => {
|
|
|
238
239
|
createSyncNativeInstruction(tokenAccount)
|
|
239
240
|
];
|
|
240
241
|
};
|
|
241
|
-
var pk = (address) => {
|
|
242
|
-
return typeof address === "string" ? new PublicKey(address) : address;
|
|
243
|
-
};
|
|
244
242
|
|
|
245
243
|
// solana/types.ts
|
|
246
244
|
var TransactionFailedError = class _TransactionFailedError extends Error {
|
|
@@ -705,6 +703,17 @@ function sleep(ms) {
|
|
|
705
703
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
706
704
|
}
|
|
707
705
|
|
|
706
|
+
// lib/assertions.ts
|
|
707
|
+
var prefix = "Assertion failed";
|
|
708
|
+
var invariant = (condition, message) => {
|
|
709
|
+
if (condition) {
|
|
710
|
+
return;
|
|
711
|
+
}
|
|
712
|
+
const provided = typeof message === "function" ? message() : message;
|
|
713
|
+
const value = provided ? `${prefix}: ${provided}` : prefix;
|
|
714
|
+
throw new Error(value);
|
|
715
|
+
};
|
|
716
|
+
|
|
708
717
|
// solana/utils.ts
|
|
709
718
|
var SIMULATE_TRIES = 3;
|
|
710
719
|
var buildSendThrottler = (sendRate, sendInterval = 1e3) => {
|
|
@@ -732,20 +741,30 @@ function isSignerKeypair(walletOrKeypair) {
|
|
|
732
741
|
function isTransactionVersioned(tx) {
|
|
733
742
|
return "message" in tx;
|
|
734
743
|
}
|
|
735
|
-
async function prepareTransaction(connection, ixs, payer, commitment,
|
|
744
|
+
async function prepareTransaction(connection, ixs, payer, commitment, partialSigners) {
|
|
736
745
|
if (!payer) {
|
|
737
746
|
throw new Error("Payer public key is not provided!");
|
|
738
747
|
}
|
|
739
748
|
const { value: hash, context } = await connection.getLatestBlockhashAndContext(commitment);
|
|
749
|
+
return {
|
|
750
|
+
tx: createVersionedTransaction(ixs, payer, hash.blockhash, partialSigners),
|
|
751
|
+
hash,
|
|
752
|
+
context
|
|
753
|
+
};
|
|
754
|
+
}
|
|
755
|
+
function createVersionedTransaction(ixs, payer, recentBlockhash, partialSigners) {
|
|
756
|
+
invariant(payer, "Payer public key is not provided!");
|
|
740
757
|
const messageV0 = new TransactionMessage({
|
|
741
758
|
payerKey: payer,
|
|
742
|
-
recentBlockhash
|
|
759
|
+
recentBlockhash,
|
|
743
760
|
instructions: ixs
|
|
744
761
|
}).compileToV0Message();
|
|
745
762
|
const tx = new VersionedTransaction(messageV0);
|
|
746
|
-
const signers = partialSigners
|
|
747
|
-
|
|
748
|
-
|
|
763
|
+
const signers = partialSigners?.filter((item) => !!item) ?? void 0;
|
|
764
|
+
if (signers) {
|
|
765
|
+
tx.sign(signers);
|
|
766
|
+
}
|
|
767
|
+
return tx;
|
|
749
768
|
}
|
|
750
769
|
async function signTransaction(invoker, tx) {
|
|
751
770
|
let signedTx;
|
|
@@ -761,16 +780,18 @@ async function signTransaction(invoker, tx) {
|
|
|
761
780
|
}
|
|
762
781
|
return signedTx;
|
|
763
782
|
}
|
|
764
|
-
async function signAndExecuteTransaction(connection, invoker, tx, confirmationParams,
|
|
783
|
+
async function signAndExecuteTransaction(connection, invoker, tx, confirmationParams, transactionExecutionParams) {
|
|
765
784
|
const signedTx = await signTransaction(invoker, tx);
|
|
766
|
-
return executeTransaction(connection, signedTx, confirmationParams,
|
|
785
|
+
return executeTransaction(connection, signedTx, confirmationParams, transactionExecutionParams);
|
|
767
786
|
}
|
|
768
|
-
async function executeTransaction(connection, tx, confirmationParams,
|
|
787
|
+
async function executeTransaction(connection, tx, confirmationParams, transactionExecutionParams) {
|
|
769
788
|
if (tx.signatures.length === 0) {
|
|
770
789
|
throw Error("Error with transaction parameters.");
|
|
771
790
|
}
|
|
772
|
-
|
|
773
|
-
|
|
791
|
+
if (!transactionExecutionParams.skipSimulation) {
|
|
792
|
+
await simulateTransaction(connection, tx);
|
|
793
|
+
}
|
|
794
|
+
return sendAndConfirmTransaction(connection, tx, confirmationParams, transactionExecutionParams);
|
|
774
795
|
}
|
|
775
796
|
async function executeMultipleTransactions(connection, txs, confirmationParams, { sendRate = 1, sendThrottler, ...throttlingParams }) {
|
|
776
797
|
if (!sendThrottler) {
|
|
@@ -937,13 +958,7 @@ async function generateCreateAtaBatchTx(connection, payer, paramsBatch, commitme
|
|
|
937
958
|
})
|
|
938
959
|
);
|
|
939
960
|
const { value: hash, context } = await connection.getLatestBlockhashAndContext({ commitment });
|
|
940
|
-
|
|
941
|
-
payerKey: payer,
|
|
942
|
-
recentBlockhash: hash.blockhash,
|
|
943
|
-
instructions: ixs
|
|
944
|
-
}).compileToV0Message();
|
|
945
|
-
const tx = new VersionedTransaction(messageV0);
|
|
946
|
-
return { tx, hash, context };
|
|
961
|
+
return { tx: createVersionedTransaction(ixs, payer, hash.blockhash), hash, context };
|
|
947
962
|
}
|
|
948
963
|
async function createAtaBatch(connection, invoker, paramsBatch, commitment, rate) {
|
|
949
964
|
const { tx, hash, context } = await generateCreateAtaBatchTx(
|
|
@@ -973,10 +988,10 @@ async function checkOrCreateAtaBatch(connection, owners, mint, invoker, programI
|
|
|
973
988
|
}
|
|
974
989
|
function prepareBaseInstructions(connection, { computePrice, computeLimit }) {
|
|
975
990
|
const ixs = [];
|
|
976
|
-
if (computePrice) {
|
|
991
|
+
if (computePrice && typeof computePrice !== "function") {
|
|
977
992
|
ixs.push(ComputeBudgetProgram.setComputeUnitPrice({ microLamports: computePrice }));
|
|
978
993
|
}
|
|
979
|
-
if (computeLimit) {
|
|
994
|
+
if (computeLimit && typeof computeLimit === "number") {
|
|
980
995
|
ixs.push(ComputeBudgetProgram.setComputeUnitLimit({ units: computeLimit }));
|
|
981
996
|
}
|
|
982
997
|
return ixs;
|
|
@@ -1002,7 +1017,103 @@ async function getMultipleAccountsInfoBatched(connection, pubKeys, commitment) {
|
|
|
1002
1017
|
const results = await Promise.all(batches);
|
|
1003
1018
|
return results.flat();
|
|
1004
1019
|
}
|
|
1020
|
+
function deserializeRawTransaction(serializedTx) {
|
|
1021
|
+
const txBuffer = Buffer.from(serializedTx, "base64");
|
|
1022
|
+
try {
|
|
1023
|
+
const tx = Transaction.from(txBuffer);
|
|
1024
|
+
return resolveTransactionAccounts(tx);
|
|
1025
|
+
} catch (error) {
|
|
1026
|
+
try {
|
|
1027
|
+
const vtx = VersionedTransaction.deserialize(txBuffer);
|
|
1028
|
+
return resolveTransactionAccounts(vtx);
|
|
1029
|
+
} catch (vError) {
|
|
1030
|
+
throw new Error("Failed to deserialize transaction: " + (vError instanceof Error ? vError.message : vError), {
|
|
1031
|
+
cause: vError
|
|
1032
|
+
});
|
|
1033
|
+
}
|
|
1034
|
+
}
|
|
1035
|
+
}
|
|
1036
|
+
var resolveTransactionAccounts = (tx) => {
|
|
1037
|
+
if (tx instanceof Transaction) {
|
|
1038
|
+
const message2 = tx.compileMessage();
|
|
1039
|
+
const accounts2 = message2.accountKeys;
|
|
1040
|
+
const writableAccounts2 = accounts2.filter((_, idx) => message2.isAccountWritable(idx));
|
|
1041
|
+
return {
|
|
1042
|
+
type: "legacy",
|
|
1043
|
+
transaction: tx,
|
|
1044
|
+
accounts: accounts2,
|
|
1045
|
+
writableAccounts: writableAccounts2
|
|
1046
|
+
};
|
|
1047
|
+
}
|
|
1048
|
+
const message = tx.message;
|
|
1049
|
+
const accounts = "staticAccountKeys" in message ? message.staticAccountKeys : message.accountKeys;
|
|
1050
|
+
const writableAccounts = accounts.filter((_, idx) => message.isAccountWritable(idx));
|
|
1051
|
+
return {
|
|
1052
|
+
type: "versioned",
|
|
1053
|
+
transaction: tx,
|
|
1054
|
+
accounts,
|
|
1055
|
+
writableAccounts
|
|
1056
|
+
};
|
|
1057
|
+
};
|
|
1058
|
+
var pk = (address) => {
|
|
1059
|
+
return typeof address === "string" ? new PublicKey(address) : address;
|
|
1060
|
+
};
|
|
1061
|
+
|
|
1062
|
+
// solana/lib/estimate.ts
|
|
1063
|
+
var createTestTransaction = (ixs, payer, recentBlockhash, partialSigners) => {
|
|
1064
|
+
return createVersionedTransaction(ixs, payer, "11111111111111111111111111111111", partialSigners);
|
|
1065
|
+
};
|
|
1066
|
+
async function estimateComputeUnitPrice(estimate, testTx) {
|
|
1067
|
+
return estimate(resolveTransactionAccounts(testTx).writableAccounts);
|
|
1068
|
+
}
|
|
1069
|
+
async function createAndEstimateTransaction(createFn, extParams, select) {
|
|
1070
|
+
select = select ?? ((value) => value);
|
|
1071
|
+
const createResult = await createFn(extParams);
|
|
1072
|
+
const prepareIxs = select(createResult);
|
|
1073
|
+
const { computePrice, computeLimit } = extParams;
|
|
1074
|
+
const invoker = extParams.invoker.publicKey;
|
|
1075
|
+
invariant(invoker, "Invoker's PublicKey is not available, check passed wallet adapter!");
|
|
1076
|
+
const testTx = createTestTransaction(prepareIxs, pk(invoker), void 0, void 0);
|
|
1077
|
+
const estimatedComputeLimit = typeof computeLimit === "function" ? await computeLimit(testTx) : computeLimit;
|
|
1078
|
+
if (typeof computePrice !== "function") {
|
|
1079
|
+
if (typeof computeLimit !== "function") {
|
|
1080
|
+
return createResult;
|
|
1081
|
+
}
|
|
1082
|
+
return createFn({
|
|
1083
|
+
...extParams,
|
|
1084
|
+
computeLimit: estimatedComputeLimit
|
|
1085
|
+
});
|
|
1086
|
+
}
|
|
1087
|
+
const estimatedComputeUnitPrice = typeof computePrice === "function" ? await estimateComputeUnitPrice(computePrice, testTx) : (
|
|
1088
|
+
// unachievable because we don't execute estimation for constant or undefined priority fee
|
|
1089
|
+
computePrice
|
|
1090
|
+
);
|
|
1091
|
+
return createFn({
|
|
1092
|
+
...extParams,
|
|
1093
|
+
computePrice: estimatedComputeUnitPrice,
|
|
1094
|
+
computeLimit: estimatedComputeLimit
|
|
1095
|
+
});
|
|
1096
|
+
}
|
|
1097
|
+
|
|
1098
|
+
// solana/rpc/consume-limit-estimate/estimate.ts
|
|
1099
|
+
var estimateConsumeLimit = async (connection, tx, options = {}) => {
|
|
1100
|
+
const { increaseFactor = 0.05 } = options;
|
|
1101
|
+
const simulationResults = await connection.simulateTransaction(tx, {
|
|
1102
|
+
sigVerify: false,
|
|
1103
|
+
replaceRecentBlockhash: true
|
|
1104
|
+
});
|
|
1105
|
+
return {
|
|
1106
|
+
unitsConsumed: simulationResults.value.unitsConsumed ? Math.ceil(simulationResults.value.unitsConsumed * (1 + increaseFactor)) : simulationResults.value.unitsConsumed,
|
|
1107
|
+
data: simulationResults
|
|
1108
|
+
};
|
|
1109
|
+
};
|
|
1110
|
+
|
|
1111
|
+
// solana/lib/unwrap-auto-simulate-ext.ts
|
|
1112
|
+
var unwrapExecutionParams = ({ computeLimit, ...rest }, connection) => {
|
|
1113
|
+
const consumeLimitFn = computeLimit === "autoSimulate" ? (tx) => estimateConsumeLimit(connection, tx).then((limit) => limit.unitsConsumed ?? 0) : computeLimit;
|
|
1114
|
+
return { ...rest, computeLimit: consumeLimitFn, skipSimulation: computeLimit === "autoSimulate" };
|
|
1115
|
+
};
|
|
1005
1116
|
|
|
1006
|
-
export { TransactionFailedError, ata, ataBatchExist, buildSendThrottler, checkOrCreateAtaBatch, confirmAndEnsureTransaction, createAtaBatch, enrichAtaParams, executeMultipleTransactions, executeTransaction, generateCreateAtaBatchTx, getFilters, getMintAndProgram, getMultipleAccountsInfoBatched, getProgramAccounts, isSignerKeypair, isSignerWallet, isTransactionVersioned, pk, prepareBaseInstructions, prepareTransaction, prepareWrappedAccount, sendAndConfirmTransaction, signAndExecuteTransaction, signTransaction, simulateTransaction };
|
|
1117
|
+
export { TransactionFailedError, ata, ataBatchExist, buildSendThrottler, checkOrCreateAtaBatch, confirmAndEnsureTransaction, createAndEstimateTransaction, createAtaBatch, createVersionedTransaction, deserializeRawTransaction, enrichAtaParams, estimateComputeUnitPrice, executeMultipleTransactions, executeTransaction, generateCreateAtaBatchTx, getFilters, getMintAndProgram, getMultipleAccountsInfoBatched, getProgramAccounts, isSignerKeypair, isSignerWallet, isTransactionVersioned, pk, prepareBaseInstructions, prepareTransaction, prepareWrappedAccount, resolveTransactionAccounts, sendAndConfirmTransaction, signAndExecuteTransaction, signTransaction, simulateTransaction, unwrapExecutionParams };
|
|
1007
1118
|
//# sourceMappingURL=index.js.map
|
|
1008
1119
|
//# sourceMappingURL=index.js.map
|