passkey-kit 0.14.0 → 0.16.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/README.md +13 -12
- package/dist/constants.d.ts +16 -5
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +16 -5
- package/dist/constants.js.map +1 -1
- package/dist/indexer/mercury.d.ts.map +1 -1
- package/dist/indexer/mercury.js +12 -4
- package/dist/indexer/mercury.js.map +1 -1
- package/dist/kit/deploy-ops.d.ts +9 -7
- package/dist/kit/deploy-ops.d.ts.map +1 -1
- package/dist/kit/deploy-ops.js +11 -8
- package/dist/kit/deploy-ops.js.map +1 -1
- package/dist/kit/tx-ops.d.ts +4 -4
- package/dist/kit/tx-ops.d.ts.map +1 -1
- package/dist/kit/tx-ops.js +14 -5
- package/dist/kit/tx-ops.js.map +1 -1
- package/dist/kit.d.ts +39 -9
- package/dist/kit.d.ts.map +1 -1
- package/dist/kit.js +99 -36
- package/dist/kit.js.map +1 -1
- package/dist/managers/submission-manager.d.ts +12 -17
- package/dist/managers/submission-manager.d.ts.map +1 -1
- package/dist/managers/submission-manager.js +77 -19
- package/dist/managers/submission-manager.js.map +1 -1
- package/dist/relayer.d.ts +2 -2
- package/dist/relayer.js +2 -2
- package/dist/server.d.ts +4 -4
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +12 -5
- package/dist/server.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/utils.d.ts +14 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +18 -2
- package/dist/utils.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +5 -5
package/dist/kit.js
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
*
|
|
12
12
|
* @packageDocumentation
|
|
13
13
|
*/
|
|
14
|
-
import { xdr } from "@stellar/stellar-sdk";
|
|
14
|
+
import { Keypair, xdr } from "@stellar/stellar-sdk";
|
|
15
15
|
import { Server } from "@stellar/stellar-sdk/rpc";
|
|
16
16
|
import { startAuthentication, startRegistration, } from "@simplewebauthn/browser";
|
|
17
17
|
import { Client as PasskeyClient } from "passkey-kit-sdk";
|
|
@@ -19,6 +19,7 @@ import base64url from "./base64url.js";
|
|
|
19
19
|
import { SignerKey, } from "./types.js";
|
|
20
20
|
import { ConfigurationError, PasskeyKitError, PasskeyKitErrorCode, WalletNotConnectedError, WalletOwnershipError, } from "./errors.js";
|
|
21
21
|
import { PasskeyEventEmitter } from "./events.js";
|
|
22
|
+
import { isDefaultDeployer } from "./utils.js";
|
|
22
23
|
import { DEFAULT_TIMEOUT_SECONDS } from "./constants.js";
|
|
23
24
|
import { calculateExpiration } from "./kit/tx-ops.js";
|
|
24
25
|
import { CredentialManager, SignerManager, SubmissionManager, } from "./managers/index.js";
|
|
@@ -29,6 +30,8 @@ export class PasskeyKit {
|
|
|
29
30
|
rpcUrl;
|
|
30
31
|
networkPassphrase;
|
|
31
32
|
walletWasmHash;
|
|
33
|
+
/** Accepted code identities, lowercase hex. Never empty. */
|
|
34
|
+
acceptedWasmHashes;
|
|
32
35
|
rpId;
|
|
33
36
|
/** Lifecycle event emitter (walletCreated, walletConnected, …). */
|
|
34
37
|
events = new PasskeyEventEmitter();
|
|
@@ -55,11 +58,33 @@ export class PasskeyKit {
|
|
|
55
58
|
this.rpcUrl = config.rpcUrl;
|
|
56
59
|
this.networkPassphrase = config.networkPassphrase;
|
|
57
60
|
this.walletWasmHash = config.walletWasmHash;
|
|
61
|
+
// Seeded from the deploy hash so the common case is zero-config; an empty
|
|
62
|
+
// array would silently accept nothing, so treat it as "not supplied".
|
|
63
|
+
this.acceptedWasmHashes = (config.acceptedWasmHashes?.length
|
|
64
|
+
? config.acceptedWasmHashes
|
|
65
|
+
: [config.walletWasmHash]).map((h) => h.toLowerCase());
|
|
58
66
|
this.rpId = config.rpId;
|
|
59
67
|
this.timeoutInSeconds = config.timeoutInSeconds ?? DEFAULT_TIMEOUT_SECONDS;
|
|
60
68
|
this.webAuthn =
|
|
61
69
|
config.WebAuthn ?? { startRegistration, startAuthentication };
|
|
62
70
|
const deployerKeypair = resolveDeployer(config.deploySource);
|
|
71
|
+
let restoreKeypair;
|
|
72
|
+
if (config.restoreSource) {
|
|
73
|
+
try {
|
|
74
|
+
restoreKeypair = Keypair.fromSecret(config.restoreSource);
|
|
75
|
+
}
|
|
76
|
+
catch {
|
|
77
|
+
throw new ConfigurationError("restoreSource must be a valid Stellar secret key (S…)", PasskeyKitErrorCode.INVALID_CONFIG);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
else if (!isDefaultDeployer(deployerKeypair.publicKey())) {
|
|
81
|
+
// No dedicated restoreSource, but the integrator supplied their OWN funded
|
|
82
|
+
// deploySource: keep the pre-existing behaviour and let it source restores.
|
|
83
|
+
// Address derivation is unaffected (their deployer identity is unchanged),
|
|
84
|
+
// so this stays address-preserving. Only the SHARED default deployer is
|
|
85
|
+
// refused — it must never source or fund a transaction.
|
|
86
|
+
restoreKeypair = deployerKeypair;
|
|
87
|
+
}
|
|
63
88
|
this.credentialManager = new CredentialManager({
|
|
64
89
|
rpId: this.rpId,
|
|
65
90
|
webAuthn: this.webAuthn,
|
|
@@ -80,6 +105,7 @@ export class PasskeyKit {
|
|
|
80
105
|
networkPassphrase: this.networkPassphrase,
|
|
81
106
|
walletWasmHash: this.walletWasmHash,
|
|
82
107
|
deployerKeypair,
|
|
108
|
+
restoreKeypair,
|
|
83
109
|
timeoutInSeconds: this.timeoutInSeconds,
|
|
84
110
|
});
|
|
85
111
|
}
|
|
@@ -87,7 +113,7 @@ export class PasskeyKit {
|
|
|
87
113
|
get contractId() {
|
|
88
114
|
return this.wallet?.options.contractId;
|
|
89
115
|
}
|
|
90
|
-
/** The
|
|
116
|
+
/** The address-derivation deployer's `G…` public key. */
|
|
91
117
|
get deployerPublicKey() {
|
|
92
118
|
return this.submissionManager.deployerPublicKey;
|
|
93
119
|
}
|
|
@@ -101,7 +127,7 @@ export class PasskeyKit {
|
|
|
101
127
|
}
|
|
102
128
|
/**
|
|
103
129
|
* Register a passkey and deploy a smart wallet initialized with it as the
|
|
104
|
-
* first signer. Returns the
|
|
130
|
+
* first signer. Returns the authorized deploy carrier (submit it via
|
|
105
131
|
* `PasskeyServer`).
|
|
106
132
|
*/
|
|
107
133
|
async createWallet(appName, userName, options) {
|
|
@@ -133,10 +159,12 @@ export class PasskeyKit {
|
|
|
133
159
|
/**
|
|
134
160
|
* Connect an existing wallet from a passkey.
|
|
135
161
|
*
|
|
136
|
-
* Resolves the wallet address by (1)
|
|
137
|
-
*
|
|
162
|
+
* Resolves the wallet address by (1) local storage, (2) an injected indexer
|
|
163
|
+
* lookup, then (3) deterministic derivation from the keyId — and then VERIFIES
|
|
138
164
|
* ownership: the keyId must resolve to a live signer on the wallet (#601 F7).
|
|
139
165
|
* This closes the unverified reverse-lookup hole (#598 F3) at the SDK layer.
|
|
166
|
+
* Derivation is deliberately last: it is only correct for a wallet's first
|
|
167
|
+
* credential and is the one path a squatted contract can hijack.
|
|
140
168
|
*
|
|
141
169
|
* @throws {WalletOwnershipError} If the keyId is not a signer on the wallet.
|
|
142
170
|
*/
|
|
@@ -150,18 +178,32 @@ export class PasskeyKit {
|
|
|
150
178
|
}
|
|
151
179
|
const keyIdBase64 = keyId instanceof Uint8Array ? base64url(Buffer.from(keyId)) : keyId;
|
|
152
180
|
const keyIdBuffer = keyId instanceof Uint8Array ? Buffer.from(keyId) : base64url.toBuffer(keyId);
|
|
153
|
-
//
|
|
154
|
-
//
|
|
155
|
-
//
|
|
156
|
-
//
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
181
|
+
// Resolve the wallet address. Deterministic derivation is authoritative
|
|
182
|
+
// ONLY for a wallet's first credential (the one whose keyId salted the
|
|
183
|
+
// deploy); for every later signer `derive(keyId)` points at an address that
|
|
184
|
+
// is never legitimately deployed, and is the one resolution path an attacker
|
|
185
|
+
// can poison by squatting code at that derived address. So trusted state
|
|
186
|
+
// wins and derivation is a last-resort hint, confirmed by an on-chain read:
|
|
187
|
+
// 1) local storage, 2) injected indexer lookup, 3) derivation.
|
|
188
|
+
// The keyId is still verified as a live signer below (F7), so a stale hint
|
|
189
|
+
// can never connect to a wallet the passkey does not actually control.
|
|
190
|
+
let contractId = await this.credentialManager.lookupContractId(keyIdBase64);
|
|
191
|
+
// Whether the address came from trusted local state. An indexer row or a
|
|
192
|
+
// derived address is a CLAIM by an untrusted party: any contract can emit
|
|
193
|
+
// the signer events an indexer keys on, and any contract can write the
|
|
194
|
+
// signer ledger entry we read back. Both are checked against accepted code
|
|
195
|
+
// identity below; trusted state is not, so an upgraded wallet still opens.
|
|
196
|
+
const fromTrustedState = contractId !== undefined;
|
|
197
|
+
if (!contractId && options?.getContractId) {
|
|
198
|
+
contractId = await options.getContractId(keyIdBase64);
|
|
199
|
+
}
|
|
200
|
+
if (!contractId) {
|
|
201
|
+
// Transport errors (429/5xx/timeout) propagate — only an authoritative
|
|
202
|
+
// not-found leaves the derived address unresolved.
|
|
203
|
+
const derived = this.submissionManager.deriveWalletAddress(keyIdBuffer);
|
|
204
|
+
if (await contractInstanceExists(this.rpc, derived)) {
|
|
205
|
+
contractId = derived;
|
|
206
|
+
}
|
|
165
207
|
}
|
|
166
208
|
if (!contractId) {
|
|
167
209
|
throw new PasskeyKitError("Could not resolve a wallet for the given passkey", PasskeyKitErrorCode.WALLET_NOT_FOUND, { context: { keyId: keyIdBase64 } });
|
|
@@ -172,7 +214,21 @@ export class PasskeyKit {
|
|
|
172
214
|
networkPassphrase: this.networkPassphrase,
|
|
173
215
|
});
|
|
174
216
|
this.keyId = keyIdBase64;
|
|
175
|
-
// 3)
|
|
217
|
+
// 3) Code identity FIRST, then signer state — the ordering matters. A signer
|
|
218
|
+
// entry only means "this passkey was authorized onto this wallet" if the code
|
|
219
|
+
// that wrote it enforced authorization; under arbitrary code it means nothing.
|
|
220
|
+
// So bind accepted code before reading any signer state from the contract.
|
|
221
|
+
if (options?.verifyWasmHash ?? !fromTrustedState) {
|
|
222
|
+
try {
|
|
223
|
+
await this.assertWalletWasmHash(contractId);
|
|
224
|
+
}
|
|
225
|
+
catch (err) {
|
|
226
|
+
this.wallet = undefined;
|
|
227
|
+
this.keyId = undefined;
|
|
228
|
+
throw err;
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
// 4) Ownership verification (F7): the keyId must be a live signer.
|
|
176
232
|
// A thrown error here is a transport failure, not proof of non-ownership —
|
|
177
233
|
// surface it as-is (a valid passkey must not read as an ownership mismatch
|
|
178
234
|
// because the RPC hiccuped); only a definitive not-found (`null`) does.
|
|
@@ -190,19 +246,6 @@ export class PasskeyKit {
|
|
|
190
246
|
this.keyId = undefined;
|
|
191
247
|
throw new WalletOwnershipError("The passkey is not a signer on the resolved wallet", { contractId, keyId: keyIdBase64 });
|
|
192
248
|
}
|
|
193
|
-
// 4) Optional wasm-hash check (opt-in; upgraded wallets differ by design).
|
|
194
|
-
// A failed check must leave the kit disconnected — otherwise a subsequent
|
|
195
|
-
// sign() would operate on the contract the caller just rejected.
|
|
196
|
-
if (options?.verifyWasmHash) {
|
|
197
|
-
try {
|
|
198
|
-
await this.assertWalletWasmHash(contractId);
|
|
199
|
-
}
|
|
200
|
-
catch (err) {
|
|
201
|
-
this.wallet = undefined;
|
|
202
|
-
this.keyId = undefined;
|
|
203
|
-
throw err;
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
249
|
this.events.emit("walletConnected", { contractId, keyId: keyIdBase64 });
|
|
207
250
|
return { rawResponse, keyId: keyIdBuffer, keyIdBase64, contractId };
|
|
208
251
|
}
|
|
@@ -219,10 +262,10 @@ export class PasskeyKit {
|
|
|
219
262
|
});
|
|
220
263
|
}
|
|
221
264
|
const wasmHash = executable.wasmHash().toString("hex");
|
|
222
|
-
if (
|
|
223
|
-
throw new WalletOwnershipError("Wallet
|
|
265
|
+
if (!this.acceptedWasmHashes.includes(wasmHash)) {
|
|
266
|
+
throw new WalletOwnershipError("Wallet code identity is not accepted", {
|
|
224
267
|
contractId,
|
|
225
|
-
|
|
268
|
+
accepted: this.acceptedWasmHashes,
|
|
226
269
|
actual: wasmHash,
|
|
227
270
|
});
|
|
228
271
|
}
|
|
@@ -246,8 +289,28 @@ export class PasskeyKit {
|
|
|
246
289
|
return this.signerManager.sign(txn, signer, options);
|
|
247
290
|
}
|
|
248
291
|
// -- Signer management -------------------------------------------------------
|
|
249
|
-
addSecp256r1(keyId, publicKey, limits, store, expiration) {
|
|
250
|
-
|
|
292
|
+
async addSecp256r1(keyId, publicKey, limits, store, expiration) {
|
|
293
|
+
const tx = await this.signerManager.addSecp256r1(keyId, publicKey, limits, store, expiration);
|
|
294
|
+
// Persist the keyId → wallet mapping so a later connectWallet(keyId) resolves
|
|
295
|
+
// this wallet from trusted storage instead of derivation (derive(keyId) of a
|
|
296
|
+
// secondary passkey is a squattable address). Without this record a pure-SDK
|
|
297
|
+
// consumer has nothing but derivation to fall back on for a second signer.
|
|
298
|
+
// ponytail: optimistic — written at build time, before the caller submits.
|
|
299
|
+
// If the add tx never lands the keyId is not a signer anywhere, so the F7
|
|
300
|
+
// ownership check in connectWallet rejects the stale hint rather than
|
|
301
|
+
// mis-binding. Requires a connected wallet (add_signer is wallet-authorized).
|
|
302
|
+
const contractId = this.contractId;
|
|
303
|
+
if (contractId) {
|
|
304
|
+
await this.credentialManager.rememberPasskey({
|
|
305
|
+
keyId: keyId instanceof Uint8Array ? base64url(Buffer.from(keyId)) : keyId,
|
|
306
|
+
publicKey: publicKey instanceof Uint8Array
|
|
307
|
+
? publicKey
|
|
308
|
+
: base64url.toBuffer(publicKey),
|
|
309
|
+
contractId,
|
|
310
|
+
createdAt: Date.now(),
|
|
311
|
+
});
|
|
312
|
+
}
|
|
313
|
+
return tx;
|
|
251
314
|
}
|
|
252
315
|
/**
|
|
253
316
|
* Update a passkey signer's limits/storage/expiration. The public key is
|
package/dist/kit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kit.js","sourceRoot":"","sources":["../src/kit.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"kit.js","sourceRoot":"","sources":["../src/kit.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Submission manager: builds and
|
|
3
|
-
*
|
|
4
|
-
* the footprint-restore flow.
|
|
2
|
+
* Submission manager: builds and authorizes deploys, derives deterministic
|
|
3
|
+
* wallet addresses, and drives the footprint-restore flow.
|
|
5
4
|
*
|
|
6
5
|
* Network submission itself is the server's job (`PasskeyServer` / relayer); this
|
|
7
|
-
* manager owns the deployer
|
|
8
|
-
* deploy transaction submittable.
|
|
6
|
+
* manager owns the deployer identity and its deploy authorization signature.
|
|
9
7
|
*
|
|
10
8
|
* @packageDocumentation
|
|
11
9
|
*/
|
|
@@ -20,30 +18,27 @@ export interface SubmissionManagerDeps {
|
|
|
20
18
|
networkPassphrase: string;
|
|
21
19
|
walletWasmHash: string;
|
|
22
20
|
deployerKeypair: Keypair;
|
|
21
|
+
restoreKeypair?: Keypair;
|
|
23
22
|
timeoutInSeconds: number;
|
|
24
23
|
}
|
|
25
24
|
export declare class SubmissionManager {
|
|
26
25
|
private readonly deps;
|
|
27
26
|
constructor(deps: SubmissionManagerDeps);
|
|
28
|
-
/** The deployer's `G…` public key (
|
|
27
|
+
/** The deployer's `G…` public key (address-derivation identity). */
|
|
29
28
|
get deployerPublicKey(): string;
|
|
30
29
|
/** Deterministically derive the wallet address for a passkey credential. */
|
|
31
30
|
deriveWalletAddress(keyId: Buffer): string;
|
|
32
31
|
/** Build the wallet deploy transaction (initial Secp256r1 signer). */
|
|
33
32
|
buildDeployTransaction(keyId: Buffer, publicKey: Uint8Array): Promise<AssembledTransaction<PasskeyClient>>;
|
|
34
33
|
/**
|
|
35
|
-
*
|
|
36
|
-
* return the signed transaction XDR.
|
|
34
|
+
* Authorize a deploy and return its carrier transaction XDR.
|
|
37
35
|
*
|
|
38
|
-
* The
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
* commits to the fee). `TransactionBuilder.cloneFrom` drops
|
|
45
|
-
* `SorobanTransactionData` (→ txMalformed), so set the fee field surgically on
|
|
46
|
-
* the envelope and rebuild.
|
|
36
|
+
* The shared deployer signs one address auth entry; the carrier has no usable
|
|
37
|
+
* source or envelope signature and `PasskeyServer` submits its `{func,auth}`.
|
|
38
|
+
* A custom deployer keeps the legacy self-source envelope path. Its inner fee
|
|
39
|
+
* must equal the resource fee before signing because the fee bump supplies the
|
|
40
|
+
* inclusion fee. `TransactionBuilder.cloneFrom` drops Soroban data, so that
|
|
41
|
+
* fee field is changed directly on the envelope.
|
|
47
42
|
*/
|
|
48
43
|
signDeploy(tx: AssembledTransaction<PasskeyClient>): Promise<string>;
|
|
49
44
|
/** Restore an archived footprint reported by simulation. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"submission-manager.d.ts","sourceRoot":"","sources":["../../src/managers/submission-manager.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"submission-manager.d.ts","sourceRoot":"","sources":["../../src/managers/submission-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAe,MAAM,sBAAsB,CAAC;AACjE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,KAAK,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAK/D,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,kBAAkB,CAAC;AAM1B,MAAM,WAAW,qBAAqB;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,qBAAa,iBAAiB;IAChB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,qBAAqB;IAExD,oEAAoE;IACpE,IAAI,iBAAiB,IAAI,MAAM,CAE9B;IAED,4EAA4E;IAC5E,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAU1C,sEAAsE;IACtE,sBAAsB,CACpB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,UAAU,GACpB,OAAO,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;IAe/C;;;;;;;;;OASG;IACG,UAAU,CAAC,EAAE,EAAE,oBAAoB,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAoG1E,4DAA4D;IAC5D,gBAAgB,CAAC,eAAe,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC;CAWpE"}
|
|
@@ -1,23 +1,24 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Submission manager: builds and
|
|
3
|
-
*
|
|
4
|
-
* the footprint-restore flow.
|
|
2
|
+
* Submission manager: builds and authorizes deploys, derives deterministic
|
|
3
|
+
* wallet addresses, and drives the footprint-restore flow.
|
|
5
4
|
*
|
|
6
5
|
* Network submission itself is the server's job (`PasskeyServer` / relayer); this
|
|
7
|
-
* manager owns the deployer
|
|
8
|
-
* deploy transaction submittable.
|
|
6
|
+
* manager owns the deployer identity and its deploy authorization signature.
|
|
9
7
|
*
|
|
10
8
|
* @packageDocumentation
|
|
11
9
|
*/
|
|
12
|
-
import { TransactionBuilder } from "@stellar/stellar-sdk";
|
|
10
|
+
import { Address, TransactionBuilder, xdr } from "@stellar/stellar-sdk";
|
|
13
11
|
import { buildDeployTransaction as buildDeployTransactionOp, deriveWalletAddress as deriveWalletAddressOp, } from "../kit/deploy-ops.js";
|
|
14
12
|
import { restoreFootprint as restoreFootprintOp, } from "../kit/tx-ops.js";
|
|
13
|
+
import { buildSignaturePayload } from "../kit/auth-payload.js";
|
|
14
|
+
import { isDefaultDeployer } from "../utils.js";
|
|
15
|
+
const DEPLOY_AUTH_LIFETIME_LEDGERS = 720;
|
|
15
16
|
export class SubmissionManager {
|
|
16
17
|
deps;
|
|
17
18
|
constructor(deps) {
|
|
18
19
|
this.deps = deps;
|
|
19
20
|
}
|
|
20
|
-
/** The deployer's `G…` public key (
|
|
21
|
+
/** The deployer's `G…` public key (address-derivation identity). */
|
|
21
22
|
get deployerPublicKey() {
|
|
22
23
|
return this.deps.deployerKeypair.publicKey();
|
|
23
24
|
}
|
|
@@ -35,27 +36,84 @@ export class SubmissionManager {
|
|
|
35
36
|
networkPassphrase: this.deps.networkPassphrase,
|
|
36
37
|
walletWasmHash: this.deps.walletWasmHash,
|
|
37
38
|
deployerPublicKey: this.deployerPublicKey,
|
|
39
|
+
usingSharedDeployer: isDefaultDeployer(this.deployerPublicKey),
|
|
38
40
|
timeoutInSeconds: this.deps.timeoutInSeconds,
|
|
39
41
|
}, keyId, publicKey);
|
|
40
42
|
}
|
|
41
43
|
/**
|
|
42
|
-
*
|
|
43
|
-
* return the signed transaction XDR.
|
|
44
|
+
* Authorize a deploy and return its carrier transaction XDR.
|
|
44
45
|
*
|
|
45
|
-
* The
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
* commits to the fee). `TransactionBuilder.cloneFrom` drops
|
|
52
|
-
* `SorobanTransactionData` (→ txMalformed), so set the fee field surgically on
|
|
53
|
-
* the envelope and rebuild.
|
|
46
|
+
* The shared deployer signs one address auth entry; the carrier has no usable
|
|
47
|
+
* source or envelope signature and `PasskeyServer` submits its `{func,auth}`.
|
|
48
|
+
* A custom deployer keeps the legacy self-source envelope path. Its inner fee
|
|
49
|
+
* must equal the resource fee before signing because the fee bump supplies the
|
|
50
|
+
* inclusion fee. `TransactionBuilder.cloneFrom` drops Soroban data, so that
|
|
51
|
+
* fee field is changed directly on the envelope.
|
|
54
52
|
*/
|
|
55
53
|
async signDeploy(tx) {
|
|
56
54
|
if (!tx.built) {
|
|
57
55
|
throw new Error("deploy transaction has not been built/simulated");
|
|
58
56
|
}
|
|
57
|
+
if (isDefaultDeployer(this.deployerPublicKey)) {
|
|
58
|
+
const operation = tx.built.operations[0];
|
|
59
|
+
const auth = operation?.type === "invokeHostFunction" ? operation.auth ?? [] : [];
|
|
60
|
+
const latestLedger = tx.simulation?.latestLedger;
|
|
61
|
+
const authorizedFunction = auth[0]?.rootInvocation().function();
|
|
62
|
+
const authorizedCreate = authorizedFunction?.switch().name ===
|
|
63
|
+
"sorobanAuthorizedFunctionTypeCreateContractV2HostFn"
|
|
64
|
+
? authorizedFunction.createContractV2HostFn()
|
|
65
|
+
: undefined;
|
|
66
|
+
const operationCreate = operation?.type === "invokeHostFunction" &&
|
|
67
|
+
operation.func.switch().name === "hostFunctionTypeCreateContractV2"
|
|
68
|
+
? operation.func.createContractV2()
|
|
69
|
+
: undefined;
|
|
70
|
+
const fromAddress = authorizedCreate?.contractIdPreimage().fromAddress();
|
|
71
|
+
if (tx.built.operations.length !== 1 ||
|
|
72
|
+
tx.built.source === this.deployerPublicKey ||
|
|
73
|
+
tx.built.signatures.length !== 0 ||
|
|
74
|
+
auth.length !== 1 ||
|
|
75
|
+
latestLedger === undefined ||
|
|
76
|
+
!authorizedCreate ||
|
|
77
|
+
!operationCreate ||
|
|
78
|
+
!Buffer.from(authorizedCreate.toXDR()).equals(operationCreate.toXDR()) ||
|
|
79
|
+
!fromAddress ||
|
|
80
|
+
Address.fromScAddress(fromAddress.address()).toString() !==
|
|
81
|
+
this.deployerPublicKey ||
|
|
82
|
+
// The deployer signs the whole tree, so anything hanging off the root
|
|
83
|
+
// would be authorized too. A deployment needs no sub-invocations.
|
|
84
|
+
auth[0].rootInvocation().subInvocations().length !== 0) {
|
|
85
|
+
throw new Error("shared deploy simulation did not return one matching address authorization");
|
|
86
|
+
}
|
|
87
|
+
const nonceBytes = crypto.getRandomValues(new Uint8Array(8));
|
|
88
|
+
const expirationLedger = latestLedger + DEPLOY_AUTH_LIFETIME_LEDGERS;
|
|
89
|
+
const credentials = new xdr.SorobanAddressCredentials({
|
|
90
|
+
address: Address.fromString(this.deployerPublicKey).toScAddress(),
|
|
91
|
+
nonce: xdr.Int64.fromString(Buffer.from(nonceBytes).readBigInt64BE().toString()),
|
|
92
|
+
signatureExpirationLedger: expirationLedger,
|
|
93
|
+
signature: xdr.ScVal.scvVoid(),
|
|
94
|
+
});
|
|
95
|
+
const signedEntry = new xdr.SorobanAuthorizationEntry({
|
|
96
|
+
credentials: xdr.SorobanCredentials.sorobanCredentialsAddress(credentials),
|
|
97
|
+
rootInvocation: auth[0].rootInvocation(),
|
|
98
|
+
});
|
|
99
|
+
credentials.signature(xdr.ScVal.scvVec([
|
|
100
|
+
xdr.ScVal.scvMap([
|
|
101
|
+
new xdr.ScMapEntry({
|
|
102
|
+
key: xdr.ScVal.scvSymbol("public_key"),
|
|
103
|
+
val: xdr.ScVal.scvBytes(this.deps.deployerKeypair.rawPublicKey()),
|
|
104
|
+
}),
|
|
105
|
+
new xdr.ScMapEntry({
|
|
106
|
+
key: xdr.ScVal.scvSymbol("signature"),
|
|
107
|
+
val: xdr.ScVal.scvBytes(this.deps.deployerKeypair.sign(buildSignaturePayload(this.deps.networkPassphrase, signedEntry, expirationLedger))),
|
|
108
|
+
}),
|
|
109
|
+
]),
|
|
110
|
+
]));
|
|
111
|
+
const envelope = tx.built.toEnvelope();
|
|
112
|
+
envelope.v1().tx().operations()[0].body().invokeHostFunctionOp().auth([
|
|
113
|
+
signedEntry,
|
|
114
|
+
]);
|
|
115
|
+
return envelope.toXDR("base64");
|
|
116
|
+
}
|
|
59
117
|
const envelope = tx.built.toEnvelope();
|
|
60
118
|
const inner = envelope.v1().tx();
|
|
61
119
|
const resourceFee = inner.ext().sorobanData().resourceFee().toString();
|
|
@@ -69,7 +127,7 @@ export class SubmissionManager {
|
|
|
69
127
|
return restoreFootprintOp({
|
|
70
128
|
rpc: this.deps.rpc,
|
|
71
129
|
networkPassphrase: this.deps.networkPassphrase,
|
|
72
|
-
|
|
130
|
+
sourceKeypair: this.deps.restoreKeypair,
|
|
73
131
|
timeoutInSeconds: this.deps.timeoutInSeconds,
|
|
74
132
|
}, restorePreamble);
|
|
75
133
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"submission-manager.js","sourceRoot":"","sources":["../../src/managers/submission-manager.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"submission-manager.js","sourceRoot":"","sources":["../../src/managers/submission-manager.ts"],"names":[],"mappings":"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"}
|
package/dist/relayer.d.ts
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* - {@link RelayerClient.send} — `{ func, auth }` for invokeHostFunction flows
|
|
11
11
|
* (the preferred Soroban path; the relayer builds the envelope + pays fees).
|
|
12
12
|
* - {@link RelayerClient.sendTransaction} — `{ xdr }` for a signed envelope
|
|
13
|
-
* (e.g. a
|
|
13
|
+
* (e.g. a custom-deployer transaction that needs a fee bump).
|
|
14
14
|
*
|
|
15
15
|
* Every method returns a discriminated {@link TransactionResult} and NEVER
|
|
16
16
|
* throws for expected relayer/on-chain failures — a `PluginClientError` is
|
|
@@ -49,7 +49,7 @@ export declare class RelayerClient {
|
|
|
49
49
|
send(func: string, auth: string[], options?: RelayerSubmitOptions): Promise<TransactionResult>;
|
|
50
50
|
/**
|
|
51
51
|
* Submit a signed transaction envelope via `{ xdr }` for a fee bump (preserves
|
|
52
|
-
* the inner signature; use for
|
|
52
|
+
* the inner signature; use for custom-source / source-account-auth flows).
|
|
53
53
|
*/
|
|
54
54
|
sendTransaction(xdr: string, options?: RelayerSubmitOptions): Promise<TransactionResult>;
|
|
55
55
|
/** Poll a previously-submitted (`skipWait`) transaction by its relayer id. */
|
package/dist/relayer.js
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* - {@link RelayerClient.send} — `{ func, auth }` for invokeHostFunction flows
|
|
11
11
|
* (the preferred Soroban path; the relayer builds the envelope + pays fees).
|
|
12
12
|
* - {@link RelayerClient.sendTransaction} — `{ xdr }` for a signed envelope
|
|
13
|
-
* (e.g. a
|
|
13
|
+
* (e.g. a custom-deployer transaction that needs a fee bump).
|
|
14
14
|
*
|
|
15
15
|
* Every method returns a discriminated {@link TransactionResult} and NEVER
|
|
16
16
|
* throws for expected relayer/on-chain failures — a `PluginClientError` is
|
|
@@ -63,7 +63,7 @@ export class RelayerClient {
|
|
|
63
63
|
}
|
|
64
64
|
/**
|
|
65
65
|
* Submit a signed transaction envelope via `{ xdr }` for a fee bump (preserves
|
|
66
|
-
* the inner signature; use for
|
|
66
|
+
* the inner signature; use for custom-source / source-account-auth flows).
|
|
67
67
|
*/
|
|
68
68
|
async sendTransaction(xdr, options) {
|
|
69
69
|
return this.run(() => this.channels.submitTransaction({
|
package/dist/server.d.ts
CHANGED
|
@@ -50,10 +50,10 @@ export declare class PasskeyServer {
|
|
|
50
50
|
/**
|
|
51
51
|
* Submit a transaction via the relayer for fee sponsorship.
|
|
52
52
|
*
|
|
53
|
-
* invokeHostFunction transactions without source-account auth use
|
|
54
|
-
* `{ func, auth }` Soroban path
|
|
55
|
-
* is fee-bumped via
|
|
56
|
-
* {@link TransactionResult}.
|
|
53
|
+
* Single-op invokeHostFunction transactions without source-account auth use
|
|
54
|
+
* the preferred `{ func, auth }` Soroban path (including shared-deployer
|
|
55
|
+
* deploys); everything else is fee-bumped via `{ xdr }`. Never throws —
|
|
56
|
+
* returns a typed {@link TransactionResult}.
|
|
57
57
|
*/
|
|
58
58
|
send(input: AssembledTransaction<unknown> | Transaction | string, options?: RelayerSubmitOptions): Promise<TransactionResult>;
|
|
59
59
|
/** Poll a `skipWait` submission by its relayer transaction id. */
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAGL,KAAK,WAAW,EACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAiB,KAAK,mBAAmB,EAAE,KAAK,oBAAoB,EAAE,MAAM,cAAc,CAAC;AASlG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAIpD,OAAO,EACL,aAAa,EACb,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,GAC1B,MAAM,cAAc,CAAC;AAEtB,8DAA8D;AAC9D,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,iDAAiD;AACjD,MAAM,WAAW,mBAAmB;IAClC,qCAAqC;IACrC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qEAAqE;IACrE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0DAA0D;IAC1D,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,qCAAqC;IACrC,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAmCD,qBAAa,aAAa;IACxB,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAEtB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAgB;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAiB;gBAE9B,MAAM,EAAE,mBAAmB;IAgCvC;;;;;;;OAOG;IACG,IAAI,CACR,KAAK,EAAE,oBAAoB,CAAC,OAAO,CAAC,GAAG,WAAW,GAAG,MAAM,EAC3D,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAGL,KAAK,WAAW,EACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAiB,KAAK,mBAAmB,EAAE,KAAK,oBAAoB,EAAE,MAAM,cAAc,CAAC;AASlG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAIpD,OAAO,EACL,aAAa,EACb,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,GAC1B,MAAM,cAAc,CAAC;AAEtB,8DAA8D;AAC9D,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,iDAAiD;AACjD,MAAM,WAAW,mBAAmB;IAClC,qCAAqC;IACrC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qEAAqE;IACrE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0DAA0D;IAC1D,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,qCAAqC;IACrC,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAmCD,qBAAa,aAAa;IACxB,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAEtB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAgB;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAiB;gBAE9B,MAAM,EAAE,mBAAmB;IAgCvC;;;;;;;OAOG;IACG,IAAI,CACR,KAAK,EAAE,oBAAoB,CAAC,OAAO,CAAC,GAAG,WAAW,GAAG,MAAM,EAC3D,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,iBAAiB,CAAC;IA4C7B,kEAAkE;IAClE,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAgBjE,OAAO,CAAC,cAAc;IAUtB;;;;OAIG;IACH,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAIvD;;;;OAIG;IACG,aAAa,CACjB,OAAO,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,EAChE,KAAK,SAAI,GACR,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;CAmB/B"}
|
package/dist/server.js
CHANGED
|
@@ -79,10 +79,10 @@ export class PasskeyServer {
|
|
|
79
79
|
/**
|
|
80
80
|
* Submit a transaction via the relayer for fee sponsorship.
|
|
81
81
|
*
|
|
82
|
-
* invokeHostFunction transactions without source-account auth use
|
|
83
|
-
* `{ func, auth }` Soroban path
|
|
84
|
-
* is fee-bumped via
|
|
85
|
-
* {@link TransactionResult}.
|
|
82
|
+
* Single-op invokeHostFunction transactions without source-account auth use
|
|
83
|
+
* the preferred `{ func, auth }` Soroban path (including shared-deployer
|
|
84
|
+
* deploys); everything else is fee-bumped via `{ xdr }`. Never throws —
|
|
85
|
+
* returns a typed {@link TransactionResult}.
|
|
86
86
|
*/
|
|
87
87
|
async send(input, options) {
|
|
88
88
|
if (!this.relayer) {
|
|
@@ -97,8 +97,15 @@ export class PasskeyServer {
|
|
|
97
97
|
? err
|
|
98
98
|
: new RelayerError(err instanceof Error ? err.message : String(err), PasskeyKitErrorCode.RELAYER_REQUEST_FAILED));
|
|
99
99
|
}
|
|
100
|
+
// The {func,auth} path submits exactly ONE host function — the relayer
|
|
101
|
+
// rebuilds the envelope around it. Only take it when the transaction is a
|
|
102
|
+
// single invokeHostFunction op; a multi-op envelope must go through the
|
|
103
|
+
// full-envelope fee-bump path or its extra operations would be silently
|
|
104
|
+
// dropped (and could report success after executing only the first).
|
|
100
105
|
const op = built.operations[0];
|
|
101
|
-
if (
|
|
106
|
+
if (built.operations.length === 1 &&
|
|
107
|
+
op?.type === "invokeHostFunction" &&
|
|
108
|
+
!hasSourceAccountAuth(built)) {
|
|
102
109
|
const invokeOp = op;
|
|
103
110
|
const func = invokeOp.func.toXDR("base64");
|
|
104
111
|
const auth = (invokeOp.auth ?? []).map((entry) => entry.toXDR("base64"));
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|