phygital-payment-sdk 0.2.0 → 0.3.0
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/arbiter/client.d.ts +1 -0
- package/dist/arbiter/client.d.ts.map +1 -1
- package/dist/arbiter/client.js +5 -5
- package/dist/arbiter/client.js.map +1 -1
- package/dist/generated/accounts/merchantOperator.d.ts +2 -0
- package/dist/generated/accounts/merchantOperator.d.ts.map +1 -1
- package/dist/generated/accounts/merchantOperator.js +3 -1
- package/dist/generated/accounts/merchantOperator.js.map +1 -1
- package/dist/generated/instructions/addMerchantOperator.d.ts +15 -11
- package/dist/generated/instructions/addMerchantOperator.d.ts.map +1 -1
- package/dist/generated/instructions/addMerchantOperator.js +9 -4
- package/dist/generated/instructions/addMerchantOperator.js.map +1 -1
- package/dist/generated/instructions/disputeAuthorization.d.ts +19 -15
- package/dist/generated/instructions/disputeAuthorization.d.ts.map +1 -1
- package/dist/generated/instructions/disputeAuthorization.js +9 -4
- package/dist/generated/instructions/disputeAuthorization.js.map +1 -1
- package/dist/generated/instructions/registerArbiter.d.ts +15 -11
- package/dist/generated/instructions/registerArbiter.d.ts.map +1 -1
- package/dist/generated/instructions/registerArbiter.js +9 -4
- package/dist/generated/instructions/registerArbiter.js.map +1 -1
- package/dist/generated/instructions/removeMerchantOperator.d.ts +14 -10
- package/dist/generated/instructions/removeMerchantOperator.d.ts.map +1 -1
- package/dist/generated/instructions/removeMerchantOperator.js +9 -4
- package/dist/generated/instructions/removeMerchantOperator.js.map +1 -1
- package/dist/generated/programs/phygitalPayment.d.ts +3 -3
- package/dist/generated/programs/phygitalPayment.d.ts.map +1 -1
- package/dist/generated/programs/phygitalPayment.js +12 -3
- package/dist/generated/programs/phygitalPayment.js.map +1 -1
- package/dist/merchant/client.d.ts.map +1 -1
- package/dist/merchant/client.js +12 -0
- package/dist/merchant/client.js.map +1 -1
- package/dist/wallet/client.d.ts +1 -0
- package/dist/wallet/client.d.ts.map +1 -1
- package/dist/wallet/client.js +17 -15
- package/dist/wallet/client.js.map +1 -1
- package/package.json +1 -1
- package/dist/core/provider-fee-payer.d.ts +0 -5
- package/dist/core/provider-fee-payer.d.ts.map +0 -1
- package/dist/core/provider-fee-payer.js +0 -17
- package/dist/core/provider-fee-payer.js.map +0 -1
- package/dist/server/deferred-flusher.d.ts +0 -19
- package/dist/server/deferred-flusher.d.ts.map +0 -1
- package/dist/server/deferred-flusher.js +0 -57
- package/dist/server/deferred-flusher.js.map +0 -1
- package/dist/server/fee-budget.d.ts +0 -22
- package/dist/server/fee-budget.d.ts.map +0 -1
- package/dist/server/fee-budget.js +0 -58
- package/dist/server/fee-budget.js.map +0 -1
- package/dist/server/fee-payer.d.ts +0 -27
- package/dist/server/fee-payer.d.ts.map +0 -1
- package/dist/server/fee-payer.js +0 -167
- package/dist/server/fee-payer.js.map +0 -1
- package/dist/server/queue.d.ts +0 -43
- package/dist/server/queue.d.ts.map +0 -1
- package/dist/server/queue.js +0 -105
- package/dist/server/queue.js.map +0 -1
package/dist/wallet/client.js
CHANGED
|
@@ -21,6 +21,7 @@ export function createWalletClient(config) {
|
|
|
21
21
|
const tokenProgram = config.tokenProgram ?? TOKEN_PROGRAM_ADDRESS;
|
|
22
22
|
const runtime = createTransactionRuntime(config);
|
|
23
23
|
const owner = config.owner;
|
|
24
|
+
const feePayer = config.feePayer ?? owner;
|
|
24
25
|
function seeds(mint) {
|
|
25
26
|
return { owner: owner.address, mint, tokenProgram };
|
|
26
27
|
}
|
|
@@ -45,10 +46,10 @@ export function createWalletClient(config) {
|
|
|
45
46
|
}
|
|
46
47
|
const paymentAccount = await derivePaymentAccountAddress(seeds(mint));
|
|
47
48
|
const escrow = await deriveEscrowAddress(seeds(mint));
|
|
48
|
-
const createEscrow = await getCreateAssociatedTokenIdempotentInstructionAsync({ payer:
|
|
49
|
+
const createEscrow = await getCreateAssociatedTokenIdempotentInstructionAsync({ payer: feePayer, owner: paymentAccount, mint, tokenProgram });
|
|
49
50
|
const setEnabler = await getSetPaymentEnablerInstructionAsync({
|
|
50
51
|
owner,
|
|
51
|
-
payer:
|
|
52
|
+
payer: feePayer,
|
|
52
53
|
escrowTokenAccount: createNoopSigner(escrow),
|
|
53
54
|
mint,
|
|
54
55
|
tokenProgram,
|
|
@@ -60,7 +61,7 @@ export function createWalletClient(config) {
|
|
|
60
61
|
const escrow = await deriveEscrowAddress(seeds(mint));
|
|
61
62
|
const instruction = await getSetAuthorizedCredentialInstructionAsync({
|
|
62
63
|
owner,
|
|
63
|
-
payer:
|
|
64
|
+
payer: feePayer,
|
|
64
65
|
escrowTokenAccount: createNoopSigner(escrow),
|
|
65
66
|
asset,
|
|
66
67
|
mint,
|
|
@@ -127,7 +128,7 @@ export function createWalletClient(config) {
|
|
|
127
128
|
amount: params.reserve,
|
|
128
129
|
}));
|
|
129
130
|
}
|
|
130
|
-
const signature = await runtime.sendAndConfirm(
|
|
131
|
+
const signature = await runtime.sendAndConfirm(feePayer, instructions);
|
|
131
132
|
return { signature, paymentAccount, escrow };
|
|
132
133
|
},
|
|
133
134
|
async setTapLimit(params) {
|
|
@@ -142,7 +143,7 @@ export function createWalletClient(config) {
|
|
|
142
143
|
tokenProgram,
|
|
143
144
|
amount: params.maxTapAmount,
|
|
144
145
|
});
|
|
145
|
-
const signature = await runtime.sendAndConfirm(
|
|
146
|
+
const signature = await runtime.sendAndConfirm(feePayer, [instruction]);
|
|
146
147
|
return {
|
|
147
148
|
signature,
|
|
148
149
|
...settingsResult(params.maxTapAmount >= live),
|
|
@@ -157,7 +158,7 @@ export function createWalletClient(config) {
|
|
|
157
158
|
tokenProgram,
|
|
158
159
|
arbiter: params.arbiter,
|
|
159
160
|
});
|
|
160
|
-
const signature = await runtime.sendAndConfirm(
|
|
161
|
+
const signature = await runtime.sendAndConfirm(feePayer, [instruction]);
|
|
161
162
|
return {
|
|
162
163
|
signature,
|
|
163
164
|
...settingsResult(live === DEFAULT_PUBKEY || params.arbiter === live),
|
|
@@ -185,7 +186,7 @@ export function createWalletClient(config) {
|
|
|
185
186
|
amount: params.amount,
|
|
186
187
|
decimals: mint.data.decimals,
|
|
187
188
|
}, { programAddress: tokenProgram });
|
|
188
|
-
const signature = await runtime.sendAndConfirm(
|
|
189
|
+
const signature = await runtime.sendAndConfirm(feePayer, [instruction]);
|
|
189
190
|
return { signature };
|
|
190
191
|
},
|
|
191
192
|
async withdraw(params) {
|
|
@@ -202,7 +203,7 @@ export function createWalletClient(config) {
|
|
|
202
203
|
tokenProgram,
|
|
203
204
|
});
|
|
204
205
|
instructions.push(await getCreateAssociatedTokenIdempotentInstructionAsync({
|
|
205
|
-
payer:
|
|
206
|
+
payer: feePayer,
|
|
206
207
|
owner: owner.address,
|
|
207
208
|
mint: params.mint,
|
|
208
209
|
tokenProgram,
|
|
@@ -216,7 +217,7 @@ export function createWalletClient(config) {
|
|
|
216
217
|
tokenProgram,
|
|
217
218
|
amount: params.amount,
|
|
218
219
|
}));
|
|
219
|
-
const signature = await runtime.sendAndConfirm(
|
|
220
|
+
const signature = await runtime.sendAndConfirm(feePayer, instructions);
|
|
220
221
|
return { signature };
|
|
221
222
|
},
|
|
222
223
|
async setReserve(params) {
|
|
@@ -227,7 +228,7 @@ export function createWalletClient(config) {
|
|
|
227
228
|
tokenProgram,
|
|
228
229
|
amount: params.amount,
|
|
229
230
|
});
|
|
230
|
-
const signature = await runtime.sendAndConfirm(
|
|
231
|
+
const signature = await runtime.sendAndConfirm(feePayer, [instruction]);
|
|
231
232
|
return {
|
|
232
233
|
signature,
|
|
233
234
|
...settingsResult(params.amount >= effectiveReserve(current)),
|
|
@@ -237,7 +238,7 @@ export function createWalletClient(config) {
|
|
|
237
238
|
const current = await fetchPaymentAccountSummary(config.rpc, seeds(params.mint));
|
|
238
239
|
const live = current ? effectiveEnablerPubkey(current) : new Uint8Array(33);
|
|
239
240
|
const instructions = await buildSetEnablerInstructions(params.mint, params.enablerPubkey);
|
|
240
|
-
const signature = await runtime.sendAndConfirm(
|
|
241
|
+
const signature = await runtime.sendAndConfirm(feePayer, instructions);
|
|
241
242
|
const zeros = live.every((b) => b === 0);
|
|
242
243
|
const same = live.length === params.enablerPubkey.length &&
|
|
243
244
|
live.every((b, i) => b === params.enablerPubkey[i]);
|
|
@@ -250,7 +251,7 @@ export function createWalletClient(config) {
|
|
|
250
251
|
const current = await requirePaymentAccount(params.mint);
|
|
251
252
|
const asset = await resolveAsset(params.credential);
|
|
252
253
|
const instructions = [await buildSetCredentialInstruction(params.mint, asset)];
|
|
253
|
-
const signature = await runtime.sendAndConfirm(
|
|
254
|
+
const signature = await runtime.sendAndConfirm(feePayer, instructions);
|
|
254
255
|
const live = current.credentialPubkey;
|
|
255
256
|
const firstSet = !live || live.every((b) => b === 0);
|
|
256
257
|
return {
|
|
@@ -299,7 +300,7 @@ export function createWalletClient(config) {
|
|
|
299
300
|
tokenProgram: summary.tokenProgram,
|
|
300
301
|
payerEvidenceHash: evidenceHash,
|
|
301
302
|
});
|
|
302
|
-
const signature = await runtime.sendAndConfirm(
|
|
303
|
+
const signature = await runtime.sendAndConfirm(feePayer, [instruction]);
|
|
303
304
|
return { signature, bond: computeDisputeBond(summary.amount) };
|
|
304
305
|
},
|
|
305
306
|
async disputeAuthorization(params) {
|
|
@@ -310,6 +311,7 @@ export function createWalletClient(config) {
|
|
|
310
311
|
const escrow = await deriveEscrowAddress(seeds(params.mint));
|
|
311
312
|
const instruction = await getDisputeAuthorizationInstructionAsync({
|
|
312
313
|
owner,
|
|
314
|
+
payer: feePayer,
|
|
313
315
|
escrowTokenAccount: escrow,
|
|
314
316
|
mint: params.mint,
|
|
315
317
|
tokenProgram,
|
|
@@ -317,7 +319,7 @@ export function createWalletClient(config) {
|
|
|
317
319
|
disputedAmount: params.disputedAmount,
|
|
318
320
|
payerEvidenceHash: params.evidenceHash,
|
|
319
321
|
});
|
|
320
|
-
const signature = await runtime.sendAndConfirm(
|
|
322
|
+
const signature = await runtime.sendAndConfirm(feePayer, [instruction]);
|
|
321
323
|
return { signature };
|
|
322
324
|
},
|
|
323
325
|
async withdrawDispute({ payment }) {
|
|
@@ -335,7 +337,7 @@ export function createWalletClient(config) {
|
|
|
335
337
|
paymentAccount,
|
|
336
338
|
payment,
|
|
337
339
|
});
|
|
338
|
-
const signature = await runtime.sendAndConfirm(
|
|
340
|
+
const signature = await runtime.sendAndConfirm(feePayer, [instruction]);
|
|
339
341
|
return { signature };
|
|
340
342
|
},
|
|
341
343
|
async history(params) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/wallet/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/wallet/client.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { type TransactionPartialSigner } from "@solana/kit";
|
|
2
|
-
import type { ProviderTransport } from "./provider-transport.js";
|
|
3
|
-
export type ProviderFeePayerSigner = TransactionPartialSigner;
|
|
4
|
-
export declare function createProviderFeePayerSigner(transport: ProviderTransport): Promise<ProviderFeePayerSigner>;
|
|
5
|
-
//# sourceMappingURL=provider-fee-payer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"provider-fee-payer.d.ts","sourceRoot":"","sources":["../../src/core/provider-fee-payer.ts"],"names":[],"mappings":"AAOA,OAAO,EAKL,KAAK,wBAAwB,EAG9B,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,MAAM,MAAM,sBAAsB,GAAG,wBAAwB,CAAC;AAM9D,wBAAsB,4BAA4B,CAChD,SAAS,EAAE,iBAAiB,GAC3B,OAAO,CAAC,sBAAsB,CAAC,CAoBjC"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { getBase64EncodedWireTransaction, } from "@solana/kit";
|
|
2
|
-
export async function createProviderFeePayerSigner(transport) {
|
|
3
|
-
const address = await transport.getFeePayerAddress();
|
|
4
|
-
return {
|
|
5
|
-
address,
|
|
6
|
-
async signTransactions(transactions) {
|
|
7
|
-
return Promise.all(transactions.map(async (transaction) => {
|
|
8
|
-
const wire = getBase64EncodedWireTransaction(transaction);
|
|
9
|
-
const signature = await transport.signAsFeePayer(wire);
|
|
10
|
-
return {
|
|
11
|
-
[address]: signature,
|
|
12
|
-
};
|
|
13
|
-
}));
|
|
14
|
-
},
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=provider-fee-payer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"provider-fee-payer.js","sourceRoot":"","sources":["../../src/core/provider-fee-payer.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,+BAA+B,GAOhC,MAAM,aAAa,CAAC;AASrB,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,SAA4B;IAE5B,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,kBAAkB,EAAE,CAAC;IACrD,OAAO;QACL,OAAO;QACP,KAAK,CAAC,gBAAgB,CACpB,YAE4B;YAE5B,OAAO,OAAO,CAAC,GAAG,CAChB,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE;gBACrC,MAAM,IAAI,GAAG,+BAA+B,CAAC,WAAW,CAAC,CAAC;gBAC1D,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;gBACvD,OAAO;oBACL,CAAC,OAAO,CAAC,EAAE,SAA2B;iBACJ,CAAC;YACvC,CAAC,CAAC,CACH,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import type { Address, RpcSubscriptions, Signature, SolanaRpcSubscriptionsApi, TransactionSigner } from "@solana/kit";
|
|
2
|
-
import type { SdkRpc } from "../core/payment.js";
|
|
3
|
-
import type { PendingTapStore } from "./pending-taps.js";
|
|
4
|
-
export interface DeferredBackupFlusherConfig {
|
|
5
|
-
rpc: SdkRpc;
|
|
6
|
-
rpcSubscriptions: RpcSubscriptions<SolanaRpcSubscriptionsApi>;
|
|
7
|
-
store: PendingTapStore;
|
|
8
|
-
feePayer: TransactionSigner;
|
|
9
|
-
merchant?: Address;
|
|
10
|
-
maxTapsPerTx?: number;
|
|
11
|
-
pollIntervalMs?: number;
|
|
12
|
-
}
|
|
13
|
-
export interface DeferredBackupFlusher {
|
|
14
|
-
tick(): Promise<Signature[]>;
|
|
15
|
-
start(): void;
|
|
16
|
-
stop(): void;
|
|
17
|
-
}
|
|
18
|
-
export declare function createDeferredBackupFlusher(config: DeferredBackupFlusherConfig): DeferredBackupFlusher;
|
|
19
|
-
//# sourceMappingURL=deferred-flusher.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"deferred-flusher.d.ts","sourceRoot":"","sources":["../../src/server/deferred-flusher.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,OAAO,EACP,gBAAgB,EAChB,SAAS,EACT,yBAAyB,EACzB,iBAAiB,EAClB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAYjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,MAAM,WAAW,2BAA2B;IAC1C,GAAG,EAAE,MAAM,CAAC;IACZ,gBAAgB,EAAE,gBAAgB,CAAC,yBAAyB,CAAC,CAAC;IAC9D,KAAK,EAAE,eAAe,CAAC;IAEvB,QAAQ,EAAE,iBAAiB,CAAC;IAE5B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IAC7B,KAAK,IAAI,IAAI,CAAC;IACd,IAAI,IAAI,IAAI,CAAC;CACd;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,2BAA2B,GAClC,qBAAqB,CAuDvB"}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import { nowSeconds } from "../core/time.js";
|
|
2
|
-
import { createTransactionRuntime } from "../core/transactions.js";
|
|
3
|
-
import { packTapsForBatch, rebuildBatchInstructions, } from "../merchant/deferred-queue.js";
|
|
4
|
-
import { deserializePendingTap, MAX_TAPS_PER_TX, } from "../merchant/deferred-store.js";
|
|
5
|
-
export function createDeferredBackupFlusher(config) {
|
|
6
|
-
const runtime = createTransactionRuntime(config);
|
|
7
|
-
const maxTaps = Math.min(config.maxTapsPerTx ?? MAX_TAPS_PER_TX, MAX_TAPS_PER_TX);
|
|
8
|
-
let timer = null;
|
|
9
|
-
async function loadLive() {
|
|
10
|
-
const now = nowSeconds();
|
|
11
|
-
const wires = config.merchant
|
|
12
|
-
? await config.store.listByMerchant(config.merchant)
|
|
13
|
-
: await config.store.listAll();
|
|
14
|
-
const live = [];
|
|
15
|
-
for (const wire of wires) {
|
|
16
|
-
if (wire.executeBy <= now) {
|
|
17
|
-
await config.store.acknowledge(wire.reference);
|
|
18
|
-
continue;
|
|
19
|
-
}
|
|
20
|
-
live.push(deserializePendingTap(wire));
|
|
21
|
-
}
|
|
22
|
-
return live.sort((a, b) => a.executeBy - b.executeBy);
|
|
23
|
-
}
|
|
24
|
-
async function tick() {
|
|
25
|
-
const signatures = [];
|
|
26
|
-
for (;;) {
|
|
27
|
-
const live = await loadLive();
|
|
28
|
-
if (live.length === 0)
|
|
29
|
-
break;
|
|
30
|
-
const batch = await packTapsForBatch(live, config.feePayer, maxTaps);
|
|
31
|
-
if (batch.length === 0)
|
|
32
|
-
break;
|
|
33
|
-
const instructions = await rebuildBatchInstructions(batch, config.feePayer);
|
|
34
|
-
const signature = await runtime.sendAndConfirm(config.feePayer, instructions);
|
|
35
|
-
signatures.push(signature);
|
|
36
|
-
for (const tap of batch) {
|
|
37
|
-
await config.store.acknowledge(tap.reference);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
return signatures;
|
|
41
|
-
}
|
|
42
|
-
return {
|
|
43
|
-
tick,
|
|
44
|
-
start() {
|
|
45
|
-
if (timer)
|
|
46
|
-
return;
|
|
47
|
-
timer = setInterval(() => void tick().catch(() => { }), config.pollIntervalMs ?? 60_000);
|
|
48
|
-
},
|
|
49
|
-
stop() {
|
|
50
|
-
if (timer) {
|
|
51
|
-
clearInterval(timer);
|
|
52
|
-
timer = null;
|
|
53
|
-
}
|
|
54
|
-
},
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
//# sourceMappingURL=deferred-flusher.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"deferred-flusher.js","sourceRoot":"","sources":["../../src/server/deferred-flusher.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EACL,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,qBAAqB,EACrB,eAAe,GAEhB,MAAM,+BAA+B,CAAC;AAsBvC,MAAM,UAAU,2BAA2B,CACzC,MAAmC;IAEnC,MAAM,OAAO,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,IAAI,eAAe,EAAE,eAAe,CAAC,CAAC;IAClF,IAAI,KAAK,GAA0C,IAAI,CAAC;IAExD,KAAK,UAAU,QAAQ;QACrB,MAAM,GAAG,GAAG,UAAU,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ;YAC3B,CAAC,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC;YACpD,CAAC,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QAEjC,MAAM,IAAI,GAAiB,EAAE,CAAC;QAC9B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,SAAS,IAAI,GAAG,EAAE,CAAC;gBAC1B,MAAM,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC/C,SAAS;YACX,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;QACzC,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,UAAU,IAAI;QACjB,MAAM,UAAU,GAAgB,EAAE,CAAC;QACnC,SAAS,CAAC;YACR,MAAM,IAAI,GAAG,MAAM,QAAQ,EAAE,CAAC;YAC9B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,MAAM;YAC7B,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACrE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,MAAM;YAC9B,MAAM,YAAY,GAAG,MAAM,wBAAwB,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC5E,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;YAC9E,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC3B,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;gBACxB,MAAM,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,OAAO;QACL,IAAI;QACJ,KAAK;YACH,IAAI,KAAK;gBAAE,OAAO;YAClB,KAAK,GAAG,WAAW,CACjB,GAAG,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,EACjC,MAAM,CAAC,cAAc,IAAI,MAAM,CAChC,CAAC;QACJ,CAAC;QACD,IAAI;YACF,IAAI,KAAK,EAAE,CAAC;gBACV,aAAa,CAAC,KAAK,CAAC,CAAC;gBACrB,KAAK,GAAG,IAAI,CAAC;YACf,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import type { Address } from "@solana/kit";
|
|
2
|
-
import { type SponsoredChargeSummary, type SponsorshipAuthorizer } from "./fee-payer.js";
|
|
3
|
-
export declare const BASE_FEE_LAMPORTS_PER_SIGNATURE = 5000n;
|
|
4
|
-
export interface SponsorshipCostOptions {
|
|
5
|
-
baseFeeLamportsPerSignature?: bigint;
|
|
6
|
-
rentPerPaymentLamports: bigint;
|
|
7
|
-
}
|
|
8
|
-
export interface SponsoredCost {
|
|
9
|
-
total: bigint;
|
|
10
|
-
byMerchant: Map<Address, bigint>;
|
|
11
|
-
rentByMerchant: Map<Address, bigint>;
|
|
12
|
-
}
|
|
13
|
-
export declare function sponsoredCostByMerchant(summary: SponsoredChargeSummary, options: SponsorshipCostOptions): SponsoredCost;
|
|
14
|
-
export interface FeeBudgetStore {
|
|
15
|
-
getRemaining(merchant: Address): Promise<bigint> | bigint;
|
|
16
|
-
tryDeduct(merchant: Address, lamports: bigint): Promise<boolean> | boolean;
|
|
17
|
-
credit(merchant: Address, lamports: bigint): Promise<void> | void;
|
|
18
|
-
}
|
|
19
|
-
export declare function createInMemoryFeeBudgetStore(initial?: Iterable<readonly [Address, bigint]>): FeeBudgetStore;
|
|
20
|
-
export declare function createSponsorshipBudgetAuthorizer(store: FeeBudgetStore, options: SponsorshipCostOptions): SponsorshipAuthorizer;
|
|
21
|
-
export declare function creditReclaimedRent(store: FeeBudgetStore, merchant: Address, rentPerPaymentLamports: bigint): Promise<void>;
|
|
22
|
-
//# sourceMappingURL=fee-budget.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fee-budget.d.ts","sourceRoot":"","sources":["../../src/server/fee-budget.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAA2B,KAAK,sBAAsB,EAAE,KAAK,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAGlH,eAAO,MAAM,+BAA+B,QAAS,CAAC;AAEtD,MAAM,WAAW,sBAAsB;IAErC,2BAA2B,CAAC,EAAE,MAAM,CAAC;IAMrC,sBAAsB,EAAE,MAAM,CAAC;CAChC;AAGD,MAAM,WAAW,aAAa;IAE5B,KAAK,EAAE,MAAM,CAAC;IAEd,UAAU,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAEjC,cAAc,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;CACtC;AAOD,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,sBAAsB,EAC/B,OAAO,EAAE,sBAAsB,GAC9B,aAAa,CA2Bf;AAOD,MAAM,WAAW,cAAc;IAE7B,YAAY,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IAE1D,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IAE3E,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACnE;AAGD,wBAAgB,4BAA4B,CAC1C,OAAO,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,GAC7C,cAAc,CAchB;AAqBD,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,sBAAsB,GAC9B,qBAAqB,CAevB;AAOD,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,OAAO,EACjB,sBAAsB,EAAE,MAAM,GAC7B,OAAO,CAAC,IAAI,CAAC,CAEf"}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { FeePayerValidationError } from "./fee-payer.js";
|
|
2
|
-
export const BASE_FEE_LAMPORTS_PER_SIGNATURE = 5000n;
|
|
3
|
-
export function sponsoredCostByMerchant(summary, options) {
|
|
4
|
-
const baseFeePerSig = options.baseFeeLamportsPerSignature ?? BASE_FEE_LAMPORTS_PER_SIGNATURE;
|
|
5
|
-
const rentPerPayment = options.rentPerPaymentLamports;
|
|
6
|
-
const transfers = summary.merchants.length;
|
|
7
|
-
const baseFee = baseFeePerSig * BigInt(summary.signatureCount);
|
|
8
|
-
const sharedFee = baseFee + summary.priorityFeeLamports;
|
|
9
|
-
const total = sharedFee + rentPerPayment * BigInt(transfers);
|
|
10
|
-
const byMerchant = new Map();
|
|
11
|
-
const rentByMerchant = new Map();
|
|
12
|
-
if (transfers === 0)
|
|
13
|
-
return { total, byMerchant, rentByMerchant };
|
|
14
|
-
const sharePerTransfer = sharedFee / BigInt(transfers);
|
|
15
|
-
const remainder = sharedFee - sharePerTransfer * BigInt(transfers);
|
|
16
|
-
summary.merchants.forEach((merchant, i) => {
|
|
17
|
-
const feeShare = sharePerTransfer + (i === 0 ? remainder : 0n);
|
|
18
|
-
const cost = feeShare + rentPerPayment;
|
|
19
|
-
byMerchant.set(merchant, (byMerchant.get(merchant) ?? 0n) + cost);
|
|
20
|
-
rentByMerchant.set(merchant, (rentByMerchant.get(merchant) ?? 0n) + rentPerPayment);
|
|
21
|
-
});
|
|
22
|
-
return { total, byMerchant, rentByMerchant };
|
|
23
|
-
}
|
|
24
|
-
export function createInMemoryFeeBudgetStore(initial) {
|
|
25
|
-
const balances = new Map(initial);
|
|
26
|
-
return {
|
|
27
|
-
getRemaining: (merchant) => balances.get(merchant) ?? 0n,
|
|
28
|
-
tryDeduct(merchant, lamports) {
|
|
29
|
-
const remaining = balances.get(merchant) ?? 0n;
|
|
30
|
-
if (remaining < lamports)
|
|
31
|
-
return false;
|
|
32
|
-
balances.set(merchant, remaining - lamports);
|
|
33
|
-
return true;
|
|
34
|
-
},
|
|
35
|
-
credit(merchant, lamports) {
|
|
36
|
-
balances.set(merchant, (balances.get(merchant) ?? 0n) + lamports);
|
|
37
|
-
},
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
export function createSponsorshipBudgetAuthorizer(store, options) {
|
|
41
|
-
return async (summary) => {
|
|
42
|
-
const { byMerchant } = sponsoredCostByMerchant(summary, options);
|
|
43
|
-
const deducted = [];
|
|
44
|
-
for (const [merchant, cost] of byMerchant) {
|
|
45
|
-
const ok = await store.tryDeduct(merchant, cost);
|
|
46
|
-
if (!ok) {
|
|
47
|
-
for (const [m, c] of deducted)
|
|
48
|
-
await store.credit(m, c);
|
|
49
|
-
throw new FeePayerValidationError(`merchant ${merchant} has insufficient fee budget for ${cost} lamports`);
|
|
50
|
-
}
|
|
51
|
-
deducted.push([merchant, cost]);
|
|
52
|
-
}
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
export async function creditReclaimedRent(store, merchant, rentPerPaymentLamports) {
|
|
56
|
-
await store.credit(merchant, rentPerPaymentLamports);
|
|
57
|
-
}
|
|
58
|
-
//# sourceMappingURL=fee-budget.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fee-budget.js","sourceRoot":"","sources":["../../src/server/fee-budget.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { type Address, type Transaction, type TransactionSigner } from "@solana/kit";
|
|
2
|
-
export declare const SECP256R1_PROGRAM_ADDRESS: Address<"Secp256r1SigVerify1111111111111111111111111">;
|
|
3
|
-
export declare const COMPUTE_BUDGET_PROGRAM_ADDRESS: Address<"ComputeBudget111111111111111111111111111111">;
|
|
4
|
-
export declare const DEFAULT_MAX_PRIORITY_FEE_LAMPORTS = 100000n;
|
|
5
|
-
export declare class FeePayerValidationError extends Error {
|
|
6
|
-
readonly code = "fee_payer_validation";
|
|
7
|
-
constructor(message: string);
|
|
8
|
-
}
|
|
9
|
-
export interface SponsoredChargeSummary {
|
|
10
|
-
transferCount: number;
|
|
11
|
-
merchants: Address[];
|
|
12
|
-
signatureCount: number;
|
|
13
|
-
priorityFeeLamports: bigint;
|
|
14
|
-
}
|
|
15
|
-
export type SponsorshipAuthorizer = (summary: SponsoredChargeSummary) => void | Promise<void>;
|
|
16
|
-
export interface FeePayerServiceConfig {
|
|
17
|
-
maxPriorityFeeLamports?: bigint;
|
|
18
|
-
}
|
|
19
|
-
export interface FeePayerService {
|
|
20
|
-
address: Address;
|
|
21
|
-
signChargeTransaction(transactionBase64: string, authorize?: SponsorshipAuthorizer): Promise<string>;
|
|
22
|
-
}
|
|
23
|
-
export declare function createFeePayerService(feePayer: TransactionSigner, config?: FeePayerServiceConfig): FeePayerService;
|
|
24
|
-
export declare function validateChargeTransaction(transaction: Transaction, expectedFeePayer: Address, options?: {
|
|
25
|
-
maxPriorityFeeLamports?: bigint;
|
|
26
|
-
}): SponsoredChargeSummary;
|
|
27
|
-
//# sourceMappingURL=fee-payer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fee-payer.d.ts","sourceRoot":"","sources":["../../src/server/fee-payer.ts"],"names":[],"mappings":"AAQA,OAAO,EAML,KAAK,OAAO,EAEZ,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACvB,MAAM,aAAa,CAAC;AAMrB,eAAO,MAAM,yBAAyB,wDAErC,CAAC;AAGF,eAAO,MAAM,8BAA8B,wDAE1C,CAAC;AAqBF,eAAO,MAAM,iCAAiC,UAAW,CAAC;AAE1D,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,QAAQ,CAAC,IAAI,0BAA0B;gBAC3B,OAAO,EAAE,MAAM;CAI5B;AAGD,MAAM,WAAW,sBAAsB;IAErC,aAAa,EAAE,MAAM,CAAC;IAMtB,SAAS,EAAE,OAAO,EAAE,CAAC;IAMrB,cAAc,EAAE,MAAM,CAAC;IAKvB,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAQD,MAAM,MAAM,qBAAqB,GAAG,CAClC,OAAO,EAAE,sBAAsB,KAC5B,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE1B,MAAM,WAAW,qBAAqB;IAKpC,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,eAAe;IAE9B,OAAO,EAAE,OAAO,CAAC;IAKjB,qBAAqB,CACnB,iBAAiB,EAAE,MAAM,EACzB,SAAS,CAAC,EAAE,qBAAqB,GAChC,OAAO,CAAC,MAAM,CAAC,CAAC;CACpB;AAMD,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,iBAAiB,EAC3B,MAAM,GAAE,qBAA0B,GACjC,eAAe,CAwCjB;AA0ED,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,WAAW,EACxB,gBAAgB,EAAE,OAAO,EACzB,OAAO,GAAE;IAAE,sBAAsB,CAAC,EAAE,MAAM,CAAA;CAAO,GAChD,sBAAsB,CAoGxB"}
|
package/dist/server/fee-payer.js
DELETED
|
@@ -1,167 +0,0 @@
|
|
|
1
|
-
import { address, assertIsTransactionPartialSigner, decompileTransactionMessage, getCompiledTransactionMessageDecoder, getTransactionDecoder, } from "@solana/kit";
|
|
2
|
-
import { parseTransferInstruction } from "../generated/instructions/transfer.js";
|
|
3
|
-
import { PHYGITAL_PAYMENT_PROGRAM_ADDRESS } from "../generated/programs/phygitalPayment.js";
|
|
4
|
-
import { base64ToBytes, bytesToBase64 } from "../core/bytes.js";
|
|
5
|
-
export const SECP256R1_PROGRAM_ADDRESS = address("Secp256r1SigVerify1111111111111111111111111");
|
|
6
|
-
export const COMPUTE_BUDGET_PROGRAM_ADDRESS = address("ComputeBudget111111111111111111111111111111");
|
|
7
|
-
const CB_REQUEST_UNITS_DEPRECATED = 0x00;
|
|
8
|
-
const CB_REQUEST_HEAP_FRAME = 0x01;
|
|
9
|
-
const CB_SET_COMPUTE_UNIT_LIMIT = 0x02;
|
|
10
|
-
const CB_SET_COMPUTE_UNIT_PRICE = 0x03;
|
|
11
|
-
const CB_SET_LOADED_ACCOUNTS_DATA_SIZE_LIMIT = 0x04;
|
|
12
|
-
const MAX_COMPUTE_UNIT_LIMIT = 1400000n;
|
|
13
|
-
const MICRO_LAMPORTS_PER_LAMPORT = 1000000n;
|
|
14
|
-
export const DEFAULT_MAX_PRIORITY_FEE_LAMPORTS = 100000n;
|
|
15
|
-
export class FeePayerValidationError extends Error {
|
|
16
|
-
code = "fee_payer_validation";
|
|
17
|
-
constructor(message) {
|
|
18
|
-
super(message);
|
|
19
|
-
this.name = "FeePayerValidationError";
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
export function createFeePayerService(feePayer, config = {}) {
|
|
23
|
-
assertIsTransactionPartialSigner(feePayer);
|
|
24
|
-
const maxPriorityFeeLamports = config.maxPriorityFeeLamports ?? DEFAULT_MAX_PRIORITY_FEE_LAMPORTS;
|
|
25
|
-
return {
|
|
26
|
-
address: feePayer.address,
|
|
27
|
-
async signChargeTransaction(transactionBase64, authorize) {
|
|
28
|
-
let transaction;
|
|
29
|
-
try {
|
|
30
|
-
transaction = getTransactionDecoder().decode(base64ToBytes(transactionBase64));
|
|
31
|
-
}
|
|
32
|
-
catch (cause) {
|
|
33
|
-
throw new FeePayerValidationError(`transaction is not a valid Solana wire encoding: ${cause.message}`);
|
|
34
|
-
}
|
|
35
|
-
const summary = validateChargeTransaction(transaction, feePayer.address, {
|
|
36
|
-
maxPriorityFeeLamports,
|
|
37
|
-
});
|
|
38
|
-
if (authorize) {
|
|
39
|
-
await authorize(summary);
|
|
40
|
-
}
|
|
41
|
-
const [dictionary] = await feePayer.signTransactions([
|
|
42
|
-
transaction,
|
|
43
|
-
]);
|
|
44
|
-
const signature = dictionary?.[feePayer.address];
|
|
45
|
-
if (!signature || signature.length !== 64) {
|
|
46
|
-
throw new FeePayerValidationError("fee payer signer did not return a 64-byte ed25519 signature");
|
|
47
|
-
}
|
|
48
|
-
return bytesToBase64(new Uint8Array(signature));
|
|
49
|
-
},
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
function computePriorityFeeLamports(computeBudgetData) {
|
|
53
|
-
let unitPrice = null;
|
|
54
|
-
let unitLimit = null;
|
|
55
|
-
for (const data of computeBudgetData) {
|
|
56
|
-
const discriminator = data[0];
|
|
57
|
-
const view = new DataView(data.buffer, data.byteOffset, data.byteLength);
|
|
58
|
-
switch (discriminator) {
|
|
59
|
-
case CB_SET_COMPUTE_UNIT_PRICE: {
|
|
60
|
-
if (unitPrice !== null) {
|
|
61
|
-
throw new FeePayerValidationError("duplicate SetComputeUnitPrice instruction");
|
|
62
|
-
}
|
|
63
|
-
if (data.length < 9) {
|
|
64
|
-
throw new FeePayerValidationError("malformed SetComputeUnitPrice instruction");
|
|
65
|
-
}
|
|
66
|
-
unitPrice = view.getBigUint64(1, true);
|
|
67
|
-
break;
|
|
68
|
-
}
|
|
69
|
-
case CB_SET_COMPUTE_UNIT_LIMIT: {
|
|
70
|
-
if (unitLimit !== null) {
|
|
71
|
-
throw new FeePayerValidationError("duplicate SetComputeUnitLimit instruction");
|
|
72
|
-
}
|
|
73
|
-
if (data.length < 5) {
|
|
74
|
-
throw new FeePayerValidationError("malformed SetComputeUnitLimit instruction");
|
|
75
|
-
}
|
|
76
|
-
unitLimit = BigInt(view.getUint32(1, true));
|
|
77
|
-
break;
|
|
78
|
-
}
|
|
79
|
-
case CB_REQUEST_HEAP_FRAME:
|
|
80
|
-
case CB_SET_LOADED_ACCOUNTS_DATA_SIZE_LIMIT:
|
|
81
|
-
case CB_REQUEST_UNITS_DEPRECATED:
|
|
82
|
-
break;
|
|
83
|
-
default:
|
|
84
|
-
throw new FeePayerValidationError(`unrecognized ComputeBudget instruction (discriminator ${discriminator})`);
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
if (unitPrice === null || unitPrice === 0n)
|
|
88
|
-
return 0n;
|
|
89
|
-
const limit = unitLimit ?? MAX_COMPUTE_UNIT_LIMIT;
|
|
90
|
-
return ((limit * unitPrice + MICRO_LAMPORTS_PER_LAMPORT - 1n) /
|
|
91
|
-
MICRO_LAMPORTS_PER_LAMPORT);
|
|
92
|
-
}
|
|
93
|
-
export function validateChargeTransaction(transaction, expectedFeePayer, options = {}) {
|
|
94
|
-
const maxPriorityFeeLamports = options.maxPriorityFeeLamports ?? DEFAULT_MAX_PRIORITY_FEE_LAMPORTS;
|
|
95
|
-
let compiled;
|
|
96
|
-
try {
|
|
97
|
-
compiled = getCompiledTransactionMessageDecoder().decode(transaction.messageBytes);
|
|
98
|
-
}
|
|
99
|
-
catch (cause) {
|
|
100
|
-
throw new FeePayerValidationError(`cannot decode transaction message: ${cause.message}`);
|
|
101
|
-
}
|
|
102
|
-
let message;
|
|
103
|
-
try {
|
|
104
|
-
message = decompileTransactionMessage(compiled);
|
|
105
|
-
}
|
|
106
|
-
catch (cause) {
|
|
107
|
-
throw new FeePayerValidationError(`cannot decompile transaction message: ${cause.message}`);
|
|
108
|
-
}
|
|
109
|
-
if (message.feePayer.address !== expectedFeePayer) {
|
|
110
|
-
throw new FeePayerValidationError(`fee payer is ${message.feePayer.address}, expected ${expectedFeePayer}`);
|
|
111
|
-
}
|
|
112
|
-
const instructions = message.instructions ?? [];
|
|
113
|
-
let transferCount = 0;
|
|
114
|
-
let secpCount = 0;
|
|
115
|
-
const merchants = [];
|
|
116
|
-
const computeBudgetData = [];
|
|
117
|
-
for (const instruction of instructions) {
|
|
118
|
-
const program = instruction.programAddress;
|
|
119
|
-
if (program === COMPUTE_BUDGET_PROGRAM_ADDRESS) {
|
|
120
|
-
const data = instruction.data;
|
|
121
|
-
if (!data || data.length === 0) {
|
|
122
|
-
throw new FeePayerValidationError("ComputeBudget instruction has no data");
|
|
123
|
-
}
|
|
124
|
-
computeBudgetData.push(new Uint8Array(data));
|
|
125
|
-
continue;
|
|
126
|
-
}
|
|
127
|
-
if (program === SECP256R1_PROGRAM_ADDRESS) {
|
|
128
|
-
secpCount += 1;
|
|
129
|
-
continue;
|
|
130
|
-
}
|
|
131
|
-
if (program === PHYGITAL_PAYMENT_PROGRAM_ADDRESS) {
|
|
132
|
-
let parsed;
|
|
133
|
-
try {
|
|
134
|
-
parsed = parseTransferInstruction(instruction);
|
|
135
|
-
}
|
|
136
|
-
catch (cause) {
|
|
137
|
-
throw new FeePayerValidationError(`payment-program instruction is not a transfer: ${cause.message}`);
|
|
138
|
-
}
|
|
139
|
-
if (parsed.accounts.rentPayer.address !== expectedFeePayer) {
|
|
140
|
-
throw new FeePayerValidationError(`transfer rentPayer is ${parsed.accounts.rentPayer.address}, expected ${expectedFeePayer}`);
|
|
141
|
-
}
|
|
142
|
-
merchants.push(parsed.accounts.merchant.address);
|
|
143
|
-
transferCount += 1;
|
|
144
|
-
continue;
|
|
145
|
-
}
|
|
146
|
-
throw new FeePayerValidationError(`disallowed program in charge transaction: ${program}`);
|
|
147
|
-
}
|
|
148
|
-
if (secpCount !== 1) {
|
|
149
|
-
throw new FeePayerValidationError(`expected exactly one secp256r1 verify instruction, found ${secpCount}`);
|
|
150
|
-
}
|
|
151
|
-
if (transferCount < 1 || transferCount > 4) {
|
|
152
|
-
throw new FeePayerValidationError(`expected between 1 and 4 transfer instructions, found ${transferCount}`);
|
|
153
|
-
}
|
|
154
|
-
const priorityFeeLamports = computePriorityFeeLamports(computeBudgetData);
|
|
155
|
-
if (priorityFeeLamports > maxPriorityFeeLamports) {
|
|
156
|
-
throw new FeePayerValidationError(`priority fee ${priorityFeeLamports} lamports exceeds the sponsor cap ${maxPriorityFeeLamports}`);
|
|
157
|
-
}
|
|
158
|
-
const signatureCount = numRequiredSignatures(compiled);
|
|
159
|
-
return { transferCount, merchants, signatureCount, priorityFeeLamports };
|
|
160
|
-
}
|
|
161
|
-
function numRequiredSignatures(compiled) {
|
|
162
|
-
const header = compiled
|
|
163
|
-
.header;
|
|
164
|
-
const n = header?.numSignerAccounts;
|
|
165
|
-
return typeof n === "number" && n > 0 ? n : 1;
|
|
166
|
-
}
|
|
167
|
-
//# sourceMappingURL=fee-payer.js.map
|