nodpay 0.2.40 → 0.2.41
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/package.json +1 -1
- package/scripts/propose.mjs +41 -7
package/package.json
CHANGED
package/scripts/propose.mjs
CHANGED
|
@@ -113,6 +113,18 @@ if (_remoteWalletUrl) {
|
|
|
113
113
|
}
|
|
114
114
|
AGENT_ADDRESS = wallets[0].agentSigner;
|
|
115
115
|
|
|
116
|
+
// remote_wallet: extract passkey/recovery from wallet data for approvalContext
|
|
117
|
+
// (CLI args take precedence if provided, but agents in remote_wallet mode don't pass them)
|
|
118
|
+
const rw = wallets[0];
|
|
119
|
+
if (!passkeyX && rw.humanSignerPasskeyX) {
|
|
120
|
+
passkeyX = rw.humanSignerPasskeyX;
|
|
121
|
+
passkeyY = rw.humanSignerPasskeyY;
|
|
122
|
+
isPasskey = true;
|
|
123
|
+
}
|
|
124
|
+
if (!recoverySigner && rw.recoverySigner) {
|
|
125
|
+
recoverySigner = rw.recoverySigner;
|
|
126
|
+
}
|
|
127
|
+
|
|
116
128
|
signHash = async (hash) => {
|
|
117
129
|
const signRes = await fetch(`${_remoteWalletUrl.replace(/\/$/, '')}/sign`, {
|
|
118
130
|
method: 'POST',
|
|
@@ -159,12 +171,12 @@ const humanSigner = getArg('--human-signer-eoa');
|
|
|
159
171
|
const salt = getArg('--salt') || '1001';
|
|
160
172
|
|
|
161
173
|
// Passkey support
|
|
162
|
-
|
|
163
|
-
|
|
174
|
+
let passkeyX = getArg('--human-signer-passkey-x');
|
|
175
|
+
let passkeyY = getArg('--human-signer-passkey-y');
|
|
164
176
|
const passkeyRawId = getArg('--passkey-raw-id');
|
|
165
177
|
const passkeyVerifier = getArg('--passkey-verifier') || '0x445a0683e494ea0c5AF3E83c5159fBE47Cf9e765';
|
|
166
|
-
|
|
167
|
-
|
|
178
|
+
let recoverySigner = getArg('--recovery-signer');
|
|
179
|
+
let isPasskey = !!(passkeyX && passkeyY);
|
|
168
180
|
|
|
169
181
|
// remote_wallet + --human-signer-eoa is not supported
|
|
170
182
|
if (_remoteWalletUrl && humanSigner) {
|
|
@@ -582,8 +594,28 @@ try {
|
|
|
582
594
|
writeFileSync(join(PENDING_DIR, `4337-${shortId}.json`), JSON.stringify(result, null, 2));
|
|
583
595
|
|
|
584
596
|
// Store to op-store API for hash-based web app lookup
|
|
585
|
-
//
|
|
586
|
-
|
|
597
|
+
// Build approvalContext: server-side approval context (replaces localStorage dependency)
|
|
598
|
+
const approvalContext = isPasskey
|
|
599
|
+
? {
|
|
600
|
+
version: 1,
|
|
601
|
+
signerType: 'passkey',
|
|
602
|
+
rpId: walletRpId || 'nodpay.ai',
|
|
603
|
+
passkeyX,
|
|
604
|
+
passkeyY,
|
|
605
|
+
recoveryAddress: recoverySigner || null,
|
|
606
|
+
safeAddress,
|
|
607
|
+
chainId: parseInt(CHAIN_ID, 10),
|
|
608
|
+
}
|
|
609
|
+
: humanSigner
|
|
610
|
+
? {
|
|
611
|
+
version: 1,
|
|
612
|
+
signerType: 'eoa',
|
|
613
|
+
humanSignerAddress: humanSigner,
|
|
614
|
+
safeAddress,
|
|
615
|
+
chainId: parseInt(CHAIN_ID, 10),
|
|
616
|
+
}
|
|
617
|
+
: null;
|
|
618
|
+
|
|
587
619
|
const storePayload = {
|
|
588
620
|
safeOperationJson,
|
|
589
621
|
userOpHash: entryPointUserOpHash,
|
|
@@ -596,10 +628,12 @@ try {
|
|
|
596
628
|
agent: AGENT_ADDRESS,
|
|
597
629
|
agentSignature: safeOperationJson.signatures,
|
|
598
630
|
createdAt: new Date().toISOString(),
|
|
599
|
-
//
|
|
631
|
+
// Legacy fields (kept for URL-param fallback during transition)
|
|
600
632
|
passkeyX: passkeyX || null,
|
|
601
633
|
passkeyY: passkeyY || null,
|
|
602
634
|
recoveryAddress: recoverySigner || null,
|
|
635
|
+
// Server-side approval context
|
|
636
|
+
approvalContext,
|
|
603
637
|
};
|
|
604
638
|
|
|
605
639
|
// Extract raw agent signature for server auth
|