@fogo/sessions-sdk 0.1.7 → 0.1.9
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/cjs/connection.d.ts +12 -11
- package/cjs/connection.js +29 -26
- package/cjs/context.d.ts +4 -4
- package/cjs/context.js +4 -4
- package/cjs/crypto.js +1 -1
- package/cjs/index.d.ts +218 -2028
- package/cjs/index.js +115 -72
- package/cjs/instructions.js +9 -9
- package/esm/connection.d.ts +12 -11
- package/esm/connection.js +30 -27
- package/esm/context.d.ts +4 -4
- package/esm/context.js +4 -4
- package/esm/crypto.js +1 -1
- package/esm/index.d.ts +218 -2028
- package/esm/index.js +82 -72
- package/esm/instructions.js +9 -9
- package/package.json +41 -40
package/cjs/connection.d.ts
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import type { GetLatestBlockhashApi, Instruction, Rpc, Transaction, TransactionWithLifetime } from "@solana/kit";
|
|
2
|
-
import type { TransactionError } from "@solana/web3.js";
|
|
3
|
-
import { Keypair, PublicKey,
|
|
1
|
+
import type { Address, GetLatestBlockhashApi, Instruction, Rpc, Transaction, TransactionWithLifetime } from "@solana/kit";
|
|
2
|
+
import type { TransactionError, TransactionInstruction } from "@solana/web3.js";
|
|
3
|
+
import { Keypair, PublicKey, VersionedTransaction, Connection as Web3Connection } from "@solana/web3.js";
|
|
4
4
|
import { Network } from "./network.js";
|
|
5
5
|
export declare enum TransactionResultType {
|
|
6
6
|
Success = 0,
|
|
7
7
|
Failed = 1
|
|
8
8
|
}
|
|
9
9
|
declare const TransactionResult: {
|
|
10
|
-
Success: (signature: string) => {
|
|
11
|
-
type: TransactionResultType.Success;
|
|
12
|
-
signature: string;
|
|
13
|
-
};
|
|
14
10
|
Failed: (signature: string, error: TransactionError) => {
|
|
11
|
+
error: TransactionError;
|
|
12
|
+
signature: string;
|
|
15
13
|
type: TransactionResultType.Failed;
|
|
14
|
+
};
|
|
15
|
+
Success: (signature: string) => {
|
|
16
16
|
signature: string;
|
|
17
|
-
|
|
17
|
+
type: TransactionResultType.Success;
|
|
18
18
|
};
|
|
19
19
|
};
|
|
20
20
|
export type TransactionResult = ReturnType<(typeof TransactionResult)[keyof typeof TransactionResult]>;
|
|
@@ -30,18 +30,19 @@ export declare const createSessionConnection: (options: {
|
|
|
30
30
|
sendToPaymaster: (transaction: Transaction) => Promise<TransactionResult>;
|
|
31
31
|
sponsor: PublicKey;
|
|
32
32
|
})) => {
|
|
33
|
-
rpc: Rpc<import("@solana/kit").RequestAirdropApi & import("@solana/kit").GetAccountInfoApi & import("@solana/kit").GetBalanceApi & import("@solana/kit").GetBlockApi & import("@solana/kit").GetBlockCommitmentApi & import("@solana/kit").GetBlockHeightApi & import("@solana/kit").GetBlockProductionApi & import("@solana/kit").GetBlocksApi & import("@solana/kit").GetBlocksWithLimitApi & import("@solana/kit").GetBlockTimeApi & import("@solana/kit").GetClusterNodesApi & import("@solana/kit").GetEpochInfoApi & import("@solana/kit").GetEpochScheduleApi & import("@solana/kit").GetFeeForMessageApi & import("@solana/kit").GetFirstAvailableBlockApi & import("@solana/kit").GetGenesisHashApi & import("@solana/kit").GetHealthApi & import("@solana/kit").GetHighestSnapshotSlotApi & import("@solana/kit").GetIdentityApi & import("@solana/kit").GetInflationGovernorApi & import("@solana/kit").GetInflationRateApi & import("@solana/kit").GetInflationRewardApi & import("@solana/kit").GetLargestAccountsApi & GetLatestBlockhashApi & import("@solana/kit").GetLeaderScheduleApi & import("@solana/kit").GetMaxRetransmitSlotApi & import("@solana/kit").GetMaxShredInsertSlotApi & import("@solana/kit").GetMinimumBalanceForRentExemptionApi & import("@solana/kit").GetMultipleAccountsApi & import("@solana/kit").GetProgramAccountsApi & import("@solana/kit").GetRecentPerformanceSamplesApi & import("@solana/kit").GetRecentPrioritizationFeesApi & import("@solana/kit").GetSignaturesForAddressApi & import("@solana/kit").GetSignatureStatusesApi & import("@solana/kit").GetSlotApi & import("@solana/kit").GetSlotLeaderApi & import("@solana/kit").GetSlotLeadersApi & import("@solana/kit").GetStakeMinimumDelegationApi & import("@solana/kit").GetSupplyApi & import("@solana/kit").GetTokenAccountBalanceApi & import("@solana/kit").GetTokenAccountsByDelegateApi & import("@solana/kit").GetTokenAccountsByOwnerApi & import("@solana/kit").GetTokenLargestAccountsApi & import("@solana/kit").GetTokenSupplyApi & import("@solana/kit").GetTransactionApi & import("@solana/kit").GetTransactionCountApi & import("@solana/kit").GetVersionApi & import("@solana/kit").GetVoteAccountsApi & import("@solana/kit").IsBlockhashValidApi & import("@solana/kit").MinimumLedgerSlotApi & import("@solana/kit").SendTransactionApi & import("@solana/kit").SimulateTransactionApi>;
|
|
34
33
|
connection: Web3Connection;
|
|
35
|
-
network: Network;
|
|
36
34
|
getSolanaConnection: () => Promise<Web3Connection>;
|
|
37
|
-
sendToPaymaster: (domain: string, sessionKey: CryptoKeyPair | undefined, instructions: TransactionOrInstructions, walletPublicKey: PublicKey, extraConfig?: SendTransactionOptions) => Promise<TransactionResult>;
|
|
38
35
|
getSponsor: (domain: string) => Promise<PublicKey>;
|
|
36
|
+
network: Network;
|
|
37
|
+
rpc: Rpc<import("@solana/kit").RequestAirdropApi & import("@solana/kit").GetAccountInfoApi & import("@solana/kit").GetBalanceApi & import("@solana/kit").GetBlockApi & import("@solana/kit").GetBlockCommitmentApi & import("@solana/kit").GetBlockHeightApi & import("@solana/kit").GetBlockProductionApi & import("@solana/kit").GetBlocksApi & import("@solana/kit").GetBlocksWithLimitApi & import("@solana/kit").GetBlockTimeApi & import("@solana/kit").GetClusterNodesApi & import("@solana/kit").GetEpochInfoApi & import("@solana/kit").GetEpochScheduleApi & import("@solana/kit").GetFeeForMessageApi & import("@solana/kit").GetFirstAvailableBlockApi & import("@solana/kit").GetGenesisHashApi & import("@solana/kit").GetHealthApi & import("@solana/kit").GetHighestSnapshotSlotApi & import("@solana/kit").GetIdentityApi & import("@solana/kit").GetInflationGovernorApi & import("@solana/kit").GetInflationRateApi & import("@solana/kit").GetInflationRewardApi & import("@solana/kit").GetLargestAccountsApi & GetLatestBlockhashApi & import("@solana/kit").GetLeaderScheduleApi & import("@solana/kit").GetMaxRetransmitSlotApi & import("@solana/kit").GetMaxShredInsertSlotApi & import("@solana/kit").GetMinimumBalanceForRentExemptionApi & import("@solana/kit").GetMultipleAccountsApi & import("@solana/kit").GetProgramAccountsApi & import("@solana/kit").GetRecentPerformanceSamplesApi & import("@solana/kit").GetRecentPrioritizationFeesApi & import("@solana/kit").GetSignaturesForAddressApi & import("@solana/kit").GetSignatureStatusesApi & import("@solana/kit").GetSlotApi & import("@solana/kit").GetSlotLeaderApi & import("@solana/kit").GetSlotLeadersApi & import("@solana/kit").GetStakeMinimumDelegationApi & import("@solana/kit").GetSupplyApi & import("@solana/kit").GetTokenAccountBalanceApi & import("@solana/kit").GetTokenAccountsByDelegateApi & import("@solana/kit").GetTokenAccountsByOwnerApi & import("@solana/kit").GetTokenLargestAccountsApi & import("@solana/kit").GetTokenSupplyApi & import("@solana/kit").GetTransactionApi & import("@solana/kit").GetTransactionCountApi & import("@solana/kit").GetVersionApi & import("@solana/kit").GetVoteAccountsApi & import("@solana/kit").IsBlockhashValidApi & import("@solana/kit").MinimumLedgerSlotApi & import("@solana/kit").SendTransactionApi & import("@solana/kit").SimulateTransactionApi>;
|
|
38
|
+
sendToPaymaster: (domain: string, sessionKey: CryptoKeyPair | undefined, instructions: TransactionOrInstructions, walletPublicKey: PublicKey, extraConfig?: SendTransactionOptions) => Promise<TransactionResult>;
|
|
39
39
|
};
|
|
40
40
|
export type TransactionOrInstructions = (TransactionInstruction | Instruction)[] | VersionedTransaction | (Transaction & TransactionWithLifetime);
|
|
41
41
|
export type SendTransactionOptions = {
|
|
42
42
|
variation?: string | undefined;
|
|
43
43
|
addressLookupTable?: string | undefined;
|
|
44
44
|
extraSigners?: (CryptoKeyPair | Keypair)[] | undefined;
|
|
45
|
+
feeMint?: PublicKey | Address;
|
|
45
46
|
};
|
|
46
47
|
export type Connection = ReturnType<typeof createSessionConnection>;
|
|
47
48
|
export {};
|
package/cjs/connection.js
CHANGED
|
@@ -11,7 +11,6 @@ const web3_js_1 = require("@solana/web3.js");
|
|
|
11
11
|
const bn_js_1 = __importDefault(require("bn.js"));
|
|
12
12
|
const zod_1 = require("zod");
|
|
13
13
|
const instructions_js_1 = require("./instructions.js");
|
|
14
|
-
const mints_js_1 = require("./mints.js");
|
|
15
14
|
const network_js_1 = require("./network.js");
|
|
16
15
|
const paymaster_js_1 = require("./paymaster.js");
|
|
17
16
|
const DEFAULT_RPC = {
|
|
@@ -28,14 +27,14 @@ var TransactionResultType;
|
|
|
28
27
|
TransactionResultType[TransactionResultType["Failed"] = 1] = "Failed";
|
|
29
28
|
})(TransactionResultType || (exports.TransactionResultType = TransactionResultType = {}));
|
|
30
29
|
const TransactionResult = {
|
|
31
|
-
Success: (signature) => ({
|
|
32
|
-
type: TransactionResultType.Success,
|
|
33
|
-
signature,
|
|
34
|
-
}),
|
|
35
30
|
Failed: (signature, error) => ({
|
|
31
|
+
error,
|
|
32
|
+
signature,
|
|
36
33
|
type: TransactionResultType.Failed,
|
|
34
|
+
}),
|
|
35
|
+
Success: (signature) => ({
|
|
37
36
|
signature,
|
|
38
|
-
|
|
37
|
+
type: TransactionResultType.Success,
|
|
39
38
|
}),
|
|
40
39
|
};
|
|
41
40
|
const createSessionConnection = (options) => {
|
|
@@ -45,12 +44,12 @@ const createSessionConnection = (options) => {
|
|
|
45
44
|
const addressLookupTableCache = new Map();
|
|
46
45
|
const sponsorCache = new Map();
|
|
47
46
|
return {
|
|
48
|
-
rpc,
|
|
49
47
|
connection,
|
|
50
|
-
network: options.network,
|
|
51
48
|
getSolanaConnection: createSolanaConnectionGetter(options.network),
|
|
52
|
-
sendToPaymaster: async (domain, sessionKey, instructions, walletPublicKey, extraConfig) => sendToPaymaster({ ...options, rpc, connection, addressLookupTableCache, sponsorCache }, domain, sessionKey, instructions, walletPublicKey, extraConfig),
|
|
53
49
|
getSponsor: (domain) => getSponsor(options, sponsorCache, domain),
|
|
50
|
+
network: options.network,
|
|
51
|
+
rpc,
|
|
52
|
+
sendToPaymaster: async (domain, sessionKey, instructions, walletPublicKey, extraConfig) => sendToPaymaster({ ...options, addressLookupTableCache, connection, rpc, sponsorCache }, domain, sessionKey, instructions, walletPublicKey, extraConfig),
|
|
54
53
|
};
|
|
55
54
|
};
|
|
56
55
|
exports.createSessionConnection = createSessionConnection;
|
|
@@ -88,13 +87,13 @@ const sendToPaymaster = async (connection, domain, sessionKey, instructions, wal
|
|
|
88
87
|
url.searchParams.set("variation", extraConfig.variation);
|
|
89
88
|
}
|
|
90
89
|
const response = await fetch(url, {
|
|
91
|
-
method: "POST",
|
|
92
|
-
headers: {
|
|
93
|
-
"Content-Type": "application/json",
|
|
94
|
-
},
|
|
95
90
|
body: JSON.stringify({
|
|
96
91
|
transaction: (0, kit_1.getBase64EncodedWireTransaction)(transaction),
|
|
97
92
|
}),
|
|
93
|
+
headers: {
|
|
94
|
+
"Content-Type": "application/json",
|
|
95
|
+
},
|
|
96
|
+
method: "POST",
|
|
98
97
|
});
|
|
99
98
|
if (response.status === 200) {
|
|
100
99
|
return sponsorAndSendResponseSchema.parse(await response.json());
|
|
@@ -108,7 +107,9 @@ const sendToPaymaster = async (connection, domain, sessionKey, instructions, wal
|
|
|
108
107
|
}
|
|
109
108
|
};
|
|
110
109
|
const buildTransaction = async (connection, domain, sessionKey, signerKeys, instructions, walletPublicKey, extraConfig) => {
|
|
111
|
-
const feeMint =
|
|
110
|
+
const feeMint = extraConfig?.feeMint === undefined
|
|
111
|
+
? undefined
|
|
112
|
+
: new web3_js_1.PublicKey(extraConfig.feeMint);
|
|
112
113
|
const [{ value: latestBlockhash }, sponsor, addressLookupTable, signers, feeAmount, sessionKeyAddress,] = await Promise.all([
|
|
113
114
|
connection.rpc.getLatestBlockhash().send(),
|
|
114
115
|
connection.sponsor === undefined
|
|
@@ -118,7 +119,7 @@ const buildTransaction = async (connection, domain, sessionKey, signerKeys, inst
|
|
|
118
119
|
? Promise.resolve(undefined)
|
|
119
120
|
: getAddressLookupTable(connection.connection, connection.addressLookupTableCache, extraConfig.addressLookupTable),
|
|
120
121
|
Promise.all(signerKeys.map((signer) => (0, kit_1.createSignerFromKeyPair)(signer))),
|
|
121
|
-
extraConfig?.variation === undefined
|
|
122
|
+
extraConfig?.variation === undefined || feeMint === undefined
|
|
122
123
|
? Promise.resolve(new bn_js_1.default(0))
|
|
123
124
|
: (0, paymaster_js_1.getPaymasterFee)(connection.paymaster ?? DEFAULT_PAYMASTER[connection.network], domain, extraConfig.variation, feeMint),
|
|
124
125
|
sessionKey === undefined
|
|
@@ -126,13 +127,13 @@ const buildTransaction = async (connection, domain, sessionKey, signerKeys, inst
|
|
|
126
127
|
: (0, kit_1.getAddressFromPublicKey)(sessionKey.publicKey),
|
|
127
128
|
]);
|
|
128
129
|
const tollboothInstruction = await buildTollboothInstructionIfNeeded({
|
|
129
|
-
sessionKeyAddress,
|
|
130
|
-
walletPublicKey,
|
|
131
130
|
domain,
|
|
132
|
-
feeMint,
|
|
133
131
|
feeAmount,
|
|
132
|
+
feeMint,
|
|
133
|
+
sessionKeyAddress,
|
|
134
|
+
walletPublicKey,
|
|
134
135
|
});
|
|
135
|
-
return (0, kit_1.partiallySignTransactionMessageWithSigners)((0, kit_1.pipe)((0, kit_1.createTransactionMessage)({ version: 0 }), (tx) => (0, kit_1.setTransactionMessageFeePayer)((0, compat_1.fromLegacyPublicKey)(sponsor), tx), (tx) => (0, kit_1.setTransactionMessageLifetimeUsingBlockhash)(latestBlockhash, tx), (tx) => (0, kit_1.appendTransactionMessageInstructions)(instructions.map((instruction) =>
|
|
136
|
+
return (0, kit_1.partiallySignTransactionMessageWithSigners)((0, kit_1.pipe)((0, kit_1.createTransactionMessage)({ version: 0 }), (tx) => (0, kit_1.setTransactionMessageFeePayer)((0, compat_1.fromLegacyPublicKey)(sponsor), tx), (tx) => (0, kit_1.setTransactionMessageLifetimeUsingBlockhash)(latestBlockhash, tx), (tx) => (0, kit_1.appendTransactionMessageInstructions)(instructions.map((instruction) => "programId" in instruction
|
|
136
137
|
? (0, compat_1.fromLegacyTransactionInstruction)(instruction)
|
|
137
138
|
: instruction), tx), (tx) => tollboothInstruction === undefined ||
|
|
138
139
|
tx.instructions.some((instruction) => instruction.programAddress == sessions_idls_1.TollboothIdl.address)
|
|
@@ -144,13 +145,15 @@ const buildTransaction = async (connection, domain, sessionKey, signerKeys, inst
|
|
|
144
145
|
}), (tx) => (0, kit_1.addSignersToTransactionMessage)(signers, tx)));
|
|
145
146
|
};
|
|
146
147
|
const buildTollboothInstructionIfNeeded = ({ sessionKeyAddress, walletPublicKey, domain, feeMint, feeAmount, }) => {
|
|
147
|
-
if (feeAmount.gt(new bn_js_1.default(0)) &&
|
|
148
|
+
if (feeAmount.gt(new bn_js_1.default(0)) &&
|
|
149
|
+
sessionKeyAddress !== undefined &&
|
|
150
|
+
feeMint !== undefined) {
|
|
148
151
|
return (0, instructions_js_1.createPaymasterFeeInstruction)({
|
|
149
|
-
sessionKey: new web3_js_1.PublicKey(sessionKeyAddress),
|
|
150
|
-
walletPublicKey,
|
|
151
152
|
domain,
|
|
152
|
-
feeMint,
|
|
153
153
|
feeAmount,
|
|
154
|
+
feeMint,
|
|
155
|
+
sessionKey: new web3_js_1.PublicKey(sessionKeyAddress),
|
|
156
|
+
walletPublicKey,
|
|
154
157
|
}).then(compat_1.fromLegacyTransactionInstruction);
|
|
155
158
|
}
|
|
156
159
|
else {
|
|
@@ -179,15 +182,15 @@ const getSignerKeys = async (sessionKey, extraSigners) => {
|
|
|
179
182
|
const sponsorAndSendResponseSchema = zod_1.z
|
|
180
183
|
.discriminatedUnion("type", [
|
|
181
184
|
zod_1.z.object({
|
|
182
|
-
type: zod_1.z.literal("success"),
|
|
183
185
|
signature: zod_1.z.string(),
|
|
186
|
+
type: zod_1.z.literal("success"),
|
|
184
187
|
}),
|
|
185
188
|
zod_1.z.object({
|
|
186
|
-
type: zod_1.z.literal("failed"),
|
|
187
|
-
signature: zod_1.z.string(),
|
|
188
189
|
error: zod_1.z.object({
|
|
189
190
|
InstructionError: zod_1.z.tuple([zod_1.z.number(), zod_1.z.unknown()]),
|
|
190
191
|
}),
|
|
192
|
+
signature: zod_1.z.string(),
|
|
193
|
+
type: zod_1.z.literal("failed"),
|
|
191
194
|
}),
|
|
192
195
|
])
|
|
193
196
|
.transform((data) => {
|
package/cjs/context.d.ts
CHANGED
|
@@ -7,13 +7,13 @@ export declare const createSessionContext: (options: {
|
|
|
7
7
|
domain?: string | undefined;
|
|
8
8
|
}) => Promise<{
|
|
9
9
|
chainId: string;
|
|
10
|
+
connection: Web3Connection;
|
|
10
11
|
domain: string;
|
|
11
|
-
payer: PublicKey;
|
|
12
|
-
internalPayer: PublicKey;
|
|
13
12
|
getSolanaConnection: () => Promise<Web3Connection>;
|
|
14
|
-
|
|
15
|
-
rpc: import("@solana/kit").Rpc<import("@solana/kit").RequestAirdropApi & import("@solana/kit").GetAccountInfoApi & import("@solana/kit").GetBalanceApi & import("@solana/kit").GetBlockApi & import("@solana/kit").GetBlockCommitmentApi & import("@solana/kit").GetBlockHeightApi & import("@solana/kit").GetBlockProductionApi & import("@solana/kit").GetBlocksApi & import("@solana/kit").GetBlocksWithLimitApi & import("@solana/kit").GetBlockTimeApi & import("@solana/kit").GetClusterNodesApi & import("@solana/kit").GetEpochInfoApi & import("@solana/kit").GetEpochScheduleApi & import("@solana/kit").GetFeeForMessageApi & import("@solana/kit").GetFirstAvailableBlockApi & import("@solana/kit").GetGenesisHashApi & import("@solana/kit").GetHealthApi & import("@solana/kit").GetHighestSnapshotSlotApi & import("@solana/kit").GetIdentityApi & import("@solana/kit").GetInflationGovernorApi & import("@solana/kit").GetInflationRateApi & import("@solana/kit").GetInflationRewardApi & import("@solana/kit").GetLargestAccountsApi & import("@solana/kit").GetLatestBlockhashApi & import("@solana/kit").GetLeaderScheduleApi & import("@solana/kit").GetMaxRetransmitSlotApi & import("@solana/kit").GetMaxShredInsertSlotApi & import("@solana/kit").GetMinimumBalanceForRentExemptionApi & import("@solana/kit").GetMultipleAccountsApi & import("@solana/kit").GetProgramAccountsApi & import("@solana/kit").GetRecentPerformanceSamplesApi & import("@solana/kit").GetRecentPrioritizationFeesApi & import("@solana/kit").GetSignaturesForAddressApi & import("@solana/kit").GetSignatureStatusesApi & import("@solana/kit").GetSlotApi & import("@solana/kit").GetSlotLeaderApi & import("@solana/kit").GetSlotLeadersApi & import("@solana/kit").GetStakeMinimumDelegationApi & import("@solana/kit").GetSupplyApi & import("@solana/kit").GetTokenAccountBalanceApi & import("@solana/kit").GetTokenAccountsByDelegateApi & import("@solana/kit").GetTokenAccountsByOwnerApi & import("@solana/kit").GetTokenLargestAccountsApi & import("@solana/kit").GetTokenSupplyApi & import("@solana/kit").GetTransactionApi & import("@solana/kit").GetTransactionCountApi & import("@solana/kit").GetVersionApi & import("@solana/kit").GetVoteAccountsApi & import("@solana/kit").IsBlockhashValidApi & import("@solana/kit").MinimumLedgerSlotApi & import("@solana/kit").SendTransactionApi & import("@solana/kit").SimulateTransactionApi>;
|
|
13
|
+
internalPayer: PublicKey;
|
|
16
14
|
network: import("./network.js").Network;
|
|
15
|
+
payer: PublicKey;
|
|
16
|
+
rpc: import("@solana/kit").Rpc<import("@solana/kit").RequestAirdropApi & import("@solana/kit").GetAccountInfoApi & import("@solana/kit").GetBalanceApi & import("@solana/kit").GetBlockApi & import("@solana/kit").GetBlockCommitmentApi & import("@solana/kit").GetBlockHeightApi & import("@solana/kit").GetBlockProductionApi & import("@solana/kit").GetBlocksApi & import("@solana/kit").GetBlocksWithLimitApi & import("@solana/kit").GetBlockTimeApi & import("@solana/kit").GetClusterNodesApi & import("@solana/kit").GetEpochInfoApi & import("@solana/kit").GetEpochScheduleApi & import("@solana/kit").GetFeeForMessageApi & import("@solana/kit").GetFirstAvailableBlockApi & import("@solana/kit").GetGenesisHashApi & import("@solana/kit").GetHealthApi & import("@solana/kit").GetHighestSnapshotSlotApi & import("@solana/kit").GetIdentityApi & import("@solana/kit").GetInflationGovernorApi & import("@solana/kit").GetInflationRateApi & import("@solana/kit").GetInflationRewardApi & import("@solana/kit").GetLargestAccountsApi & import("@solana/kit").GetLatestBlockhashApi & import("@solana/kit").GetLeaderScheduleApi & import("@solana/kit").GetMaxRetransmitSlotApi & import("@solana/kit").GetMaxShredInsertSlotApi & import("@solana/kit").GetMinimumBalanceForRentExemptionApi & import("@solana/kit").GetMultipleAccountsApi & import("@solana/kit").GetProgramAccountsApi & import("@solana/kit").GetRecentPerformanceSamplesApi & import("@solana/kit").GetRecentPrioritizationFeesApi & import("@solana/kit").GetSignaturesForAddressApi & import("@solana/kit").GetSignatureStatusesApi & import("@solana/kit").GetSlotApi & import("@solana/kit").GetSlotLeaderApi & import("@solana/kit").GetSlotLeadersApi & import("@solana/kit").GetStakeMinimumDelegationApi & import("@solana/kit").GetSupplyApi & import("@solana/kit").GetTokenAccountBalanceApi & import("@solana/kit").GetTokenAccountsByDelegateApi & import("@solana/kit").GetTokenAccountsByOwnerApi & import("@solana/kit").GetTokenLargestAccountsApi & import("@solana/kit").GetTokenSupplyApi & import("@solana/kit").GetTransactionApi & import("@solana/kit").GetTransactionCountApi & import("@solana/kit").GetVersionApi & import("@solana/kit").GetVoteAccountsApi & import("@solana/kit").IsBlockhashValidApi & import("@solana/kit").MinimumLedgerSlotApi & import("@solana/kit").SendTransactionApi & import("@solana/kit").SimulateTransactionApi>;
|
|
17
17
|
sendTransaction: (sessionKey: CryptoKeyPair | undefined, instructions: TransactionOrInstructions, walletPublicKey: PublicKey, sendTxOptions?: SendTransactionOptions) => Promise<import("./connection.js").TransactionResult>;
|
|
18
18
|
}>;
|
|
19
19
|
export type SendTransactionOptions = SendTransactionBaseOptions & {
|
package/cjs/context.js
CHANGED
|
@@ -15,13 +15,13 @@ const createSessionContext = async (options) => {
|
|
|
15
15
|
]);
|
|
16
16
|
return {
|
|
17
17
|
chainId: await fetchChainId(options.connection.connection),
|
|
18
|
+
connection: options.connection.connection,
|
|
18
19
|
domain: getDomain(options.domain),
|
|
19
|
-
payer: sponsor,
|
|
20
|
-
internalPayer: internalSponsor,
|
|
21
20
|
getSolanaConnection: options.connection.getSolanaConnection,
|
|
22
|
-
|
|
23
|
-
rpc: options.connection.rpc,
|
|
21
|
+
internalPayer: internalSponsor,
|
|
24
22
|
network: options.connection.network,
|
|
23
|
+
payer: sponsor,
|
|
24
|
+
rpc: options.connection.rpc,
|
|
25
25
|
sendTransaction: (sessionKey, instructions, walletPublicKey, sendTxOptions) => options.connection.sendToPaymaster(sendTxOptions?.paymasterDomain ?? domain, sessionKey, instructions, walletPublicKey, {
|
|
26
26
|
...sendTxOptions,
|
|
27
27
|
addressLookupTable: sendTxOptions?.addressLookupTable ??
|
package/cjs/crypto.js
CHANGED
|
@@ -24,7 +24,7 @@ exports.signMessageWithKey = signMessageWithKey;
|
|
|
24
24
|
* @returns True if the message and signature are valid, false otherwise
|
|
25
25
|
*/
|
|
26
26
|
const verifyMessageWithKey = async (publicKey, message, signature) => {
|
|
27
|
-
const isValid = await crypto.subtle.verify({ name: "Ed25519" }, publicKey, bs58_1.default.decode(signature), new TextEncoder().encode(message));
|
|
27
|
+
const isValid = await crypto.subtle.verify({ name: "Ed25519" }, publicKey, Buffer.from(bs58_1.default.decode(signature)), new TextEncoder().encode(message));
|
|
28
28
|
return isValid;
|
|
29
29
|
};
|
|
30
30
|
exports.verifyMessageWithKey = verifyMessageWithKey;
|