warpmetal 0.8.8 → 0.8.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/README.md
CHANGED
|
@@ -156,11 +156,15 @@ receipt finality while provisioning or renewal proceeds.
|
|
|
156
156
|
|
|
157
157
|
For an interactive initial purchase, `checkout challenge` may also return a
|
|
158
158
|
short-lived `humanCheckout` object. Its `url` and `qrPayload` are the same
|
|
159
|
-
`https://pay.x402api.com/c/...` bearer capability for the exact charge
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
159
|
+
`https://pay.x402api.com/c/...` bearer capability for the exact charge.
|
|
160
|
+
Present the exact URL as a clickable x402api handoff. If a QR is useful for
|
|
161
|
+
another device, encode only the identical `qrPayload` and explain that
|
|
162
|
+
scanning opens the hosted checkout without authorizing payment. x402api owns
|
|
163
|
+
any wallet selection or wallet-specific opening QR inside that page; never
|
|
164
|
+
synthesize a wallet link or encode the WarpMetal recipient address. The buyer
|
|
165
|
+
needs only the advertised USDC/USDT balance because x402api sponsors the native
|
|
166
|
+
gas. This is an alternative to the agent-wallet workflow, not a second
|
|
167
|
+
payment. After browser payment, run the exact
|
|
164
168
|
`humanCheckout.afterPayment.argv` status command. When the ready result asks
|
|
165
169
|
for `ask_human_for_notification_email`, ask the owner and add the optional
|
|
166
170
|
lifecycle-notification address they provide. Autonomous purchases and renewals
|
package/package.json
CHANGED
|
@@ -90,11 +90,14 @@ open either file.
|
|
|
90
90
|
|
|
91
91
|
In an interactive initial purchase, the result may also contain
|
|
92
92
|
`humanCheckout`. Offer it as an alternative to the local agent wallet. Show
|
|
93
|
-
`humanCheckout.url` as clickable text
|
|
94
|
-
`humanCheckout.qrPayload` URL as
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
93
|
+
`humanCheckout.url` as clickable x402api text. If another-device acquisition
|
|
94
|
+
is useful, render only the identical `humanCheckout.qrPayload` URL as a QR and
|
|
95
|
+
explain that scanning opens the hosted checkout without authorizing payment.
|
|
96
|
+
x402api owns any wallet selection and wallet-specific opening QR inside that
|
|
97
|
+
page; never synthesize a wallet link or render the recipient address as this
|
|
98
|
+
QR. The URL is an expiring bearer capability, so do not log, save, or send it
|
|
99
|
+
anywhere except to the buyer who requested this purchase. If the buyer uses it,
|
|
100
|
+
do not authorize or submit through the agent wallet. Run the
|
|
98
101
|
exact `humanCheckout.afterPayment.argv` command, wait for the server to become
|
|
99
102
|
ready, then follow `ask_human_for_notification_email`: ask the owner for the
|
|
100
103
|
optional lifecycle-notification address and add only the address they provide.
|
|
@@ -75,8 +75,11 @@ workflow.
|
|
|
75
75
|
For interactive initial purchases, the response may additionally include
|
|
76
76
|
`humanCheckout.url`, the identical `qrPayload`, `expiresAt`, and an exact
|
|
77
77
|
`afterPayment.argv` command. The URL is a short-lived bearer capability for the
|
|
78
|
-
same charge, not a recipient address.
|
|
79
|
-
|
|
78
|
+
same charge, not a recipient address. Present the URL as a clickable x402api
|
|
79
|
+
handoff. An optional QR contains that exact web link for another-device
|
|
80
|
+
acquisition; scanning it does not authorize payment, and x402api owns any
|
|
81
|
+
wallet-specific choices inside the hosted page. If the buyer pays there, do not
|
|
82
|
+
submit an agent-wallet artifact; run the returned status command and,
|
|
80
83
|
after ready, follow `ask_human_for_notification_email` to offer lifecycle
|
|
81
84
|
notices. The CLI does not persist the hosted URL. Renewal commands never expose
|
|
82
85
|
or use this interactive option.
|
|
@@ -125,9 +125,13 @@ argv arrays returned under `paymentWorkflow`:
|
|
|
125
125
|
|
|
126
126
|
For an interactive initial purchase, an optional `humanCheckout` object offers
|
|
127
127
|
a second presentation path for the same charge. Its `url` and `qrPayload` must
|
|
128
|
-
be identical hosted-checkout URLs
|
|
129
|
-
|
|
130
|
-
|
|
128
|
+
be identical hosted-checkout URLs. Present `url` as the clickable x402api
|
|
129
|
+
handoff. If a QR is useful for another device, render only the exact
|
|
130
|
+
`qrPayload` and explain that scanning opens the checkout without authorizing
|
|
131
|
+
payment. x402api owns wallet selection and any wallet-specific opening QR
|
|
132
|
+
inside that page; never synthesize a wallet link or render a recipient address.
|
|
133
|
+
If the buyer completes this path, skip agent-wallet authorization and run
|
|
134
|
+
`humanCheckout.afterPayment.argv`. Continue bounded
|
|
131
135
|
status polling until ready, then ask for the optional lifecycle-notification
|
|
132
136
|
email when the result returns `ask_human_for_notification_email`. The hosted
|
|
133
137
|
URL expires at `humanCheckout.expiresAt`, is not persisted by the CLI, and is
|
package/src/cli.js
CHANGED
|
@@ -887,7 +887,7 @@ async function handleCheckoutChallenge(client, store, options, context) {
|
|
|
887
887
|
stringOption(options, "request-envelope-out"),
|
|
888
888
|
);
|
|
889
889
|
const directCheckoutInstructions = safe.humanCheckout
|
|
890
|
-
? `\
|
|
890
|
+
? `\nHosted human checkout (optional, expires ${safe.humanCheckout.expiresAt}): ${safe.humanCheckout.url}\nOpen this exact x402api link. If another-device acquisition is useful, encode only the returned QR URL; scanning opens the checkout and does not authorize payment. x402api owns wallet selection and explicit approval. After payment, continue with: ${shellCommand(safe.humanCheckout.afterPayment.argv)}. When provisioning is ready, ask the owner for the optional lifecycle-notification email before adding it.`
|
|
891
891
|
: "";
|
|
892
892
|
const paymentInstructions = safe.paymentWorkflow
|
|
893
893
|
? `\nWallet package: ${safe.paymentWorkflow.signerPackage.spec} (Node ${safe.paymentWorkflow.signerNodeRequirement})\nInstall: ${shellCommand(safe.paymentWorkflow.signerPackage.install.argv)}\nVerify: ${shellCommand(safe.paymentWorkflow.signerContract.probe.argv)}\n${walletWorkflowInstructions(safe.paymentWorkflow)}\nRequest envelope: ${safe.paymentWorkflow.requestEnvelopePath}\nAuthorize only after selecting/funding one wallet: ${shellCommand(safe.paymentWorkflow.authorize.argv)}\nSubmit with WarpMetal: ${shellCommand(safe.paymentWorkflow.submit.argv)}`
|