nodpay 0.2.41 → 0.2.43

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.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/scripts/propose.mjs +28 -26
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nodpay",
3
- "version": "0.2.41",
3
+ "version": "0.2.43",
4
4
  "description": "NodPay CLI — propose on-chain payments from agent-human shared wallets",
5
5
  "type": "module",
6
6
  "bin": {
@@ -85,6 +85,31 @@ const DEFAULT_SAFE = null; // always use --safe flag
85
85
  const opStoreBase = env('OP_STORE_URL', 'https://nodpay.ai/api');
86
86
  const BUNDLER_URL = `${opStoreBase}/bundler/${CHAIN_ID}`;
87
87
 
88
+ // --- CLI argument parsing (must precede remote_wallet branch) ---
89
+ const args = process.argv.slice(2);
90
+ function getArg(name) {
91
+ const idx = args.indexOf(name);
92
+ return idx !== -1 ? args[idx + 1] : undefined;
93
+ }
94
+ function hasFlag(name) {
95
+ return args.includes(name);
96
+ }
97
+
98
+ const to = getArg('--to');
99
+ const valueEth = getArg('--value-eth') || getArg('--value') || '0';
100
+ const safeOverride = getArg('--safe');
101
+ let isCounterfactual = hasFlag('--counterfactual');
102
+ const humanSigner = getArg('--human-signer-eoa');
103
+ const salt = getArg('--salt') || '1001';
104
+
105
+ // Passkey support
106
+ let passkeyX = getArg('--human-signer-passkey-x');
107
+ let passkeyY = getArg('--human-signer-passkey-y');
108
+ const passkeyRawId = getArg('--passkey-raw-id');
109
+ const passkeyVerifier = getArg('--passkey-verifier') || '0x445a0683e494ea0c5AF3E83c5159fBE47Cf9e765';
110
+ let recoverySigner = getArg('--recovery-signer');
111
+ let isPasskey = !!(passkeyX && passkeyY);
112
+
88
113
  // --- Agent key resolution: remote_wallet (config.json) or local key ---
89
114
  const _config = loadConfig();
90
115
  const _remoteWalletUrl = _config.remote_wallet || null;
@@ -154,30 +179,6 @@ if (_remoteWalletUrl) {
154
179
  };
155
180
  }
156
181
 
157
- const args = process.argv.slice(2);
158
- function getArg(name) {
159
- const idx = args.indexOf(name);
160
- return idx !== -1 ? args[idx + 1] : undefined;
161
- }
162
- function hasFlag(name) {
163
- return args.includes(name);
164
- }
165
-
166
- const to = getArg('--to');
167
- const valueEth = getArg('--value-eth') || getArg('--value') || '0';
168
- const safeOverride = getArg('--safe');
169
- let isCounterfactual = hasFlag('--counterfactual');
170
- const humanSigner = getArg('--human-signer-eoa');
171
- const salt = getArg('--salt') || '1001';
172
-
173
- // Passkey support
174
- let passkeyX = getArg('--human-signer-passkey-x');
175
- let passkeyY = getArg('--human-signer-passkey-y');
176
- const passkeyRawId = getArg('--passkey-raw-id');
177
- const passkeyVerifier = getArg('--passkey-verifier') || '0x445a0683e494ea0c5AF3E83c5159fBE47Cf9e765';
178
- let recoverySigner = getArg('--recovery-signer');
179
- let isPasskey = !!(passkeyX && passkeyY);
180
-
181
182
  // remote_wallet + --human-signer-eoa is not supported
182
183
  if (_remoteWalletUrl && humanSigner) {
183
184
  console.error(JSON.stringify({ error: 'remote_wallet and --human-signer-eoa cannot be combined. Remote mode only supports passkey wallets.' }));
@@ -656,14 +657,15 @@ try {
656
657
  result.opStoreError = storeData.error || `HTTP ${storeRes.status}`;
657
658
  }
658
659
  if (storeData.shortHash) {
659
- const webBase = env('WEB_APP_URL', 'https://nodpay.ai/');
660
+ // approve_base from config.json (SafeClaw) or default nodpay.ai
661
+ const approveBase = _config.approve_base || `${env('WEB_APP_URL', 'https://nodpay.ai/')}approve`;
660
662
  // Build approve URL with passkey params for SafeClaw users (no localStorage)
661
663
  const approveParams = new URLSearchParams({ safeOpHash: storeData.safeOpHash });
662
664
  if (passkeyX) approveParams.set('px', passkeyX);
663
665
  if (passkeyY) approveParams.set('py', passkeyY);
664
666
  if (recoverySigner) approveParams.set('recovery', recoverySigner);
665
667
  if (walletRpId) approveParams.set('rpId', walletRpId);
666
- approveUrl = `${webBase}approve?${approveParams.toString()}`;
668
+ approveUrl = `${approveBase}?${approveParams.toString()}`;
667
669
  result.approveUrl = approveUrl;
668
670
  result.opStoreSafeOpHash = storeData.safeOpHash;
669
671
  result.opStoreShortHash = storeData.shortHash;