@armory-sh/client-web3 0.2.17 → 0.2.18-alpha.3.20

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/dist/index.js +19 -70
  2. package/package.json +3 -3
package/dist/index.js CHANGED
@@ -1,3 +1,6 @@
1
+ import { Web3 } from 'web3';
2
+ import { encodePaymentV2, validatePaymentConfig, isValidationError, resolveNetwork, resolveToken, V2_HEADERS, getNetworkConfig, getNetworkByChainId, combineSignatureV2, networkToCaip2, isX402V2PaymentRequired } from '@armory-sh/base';
3
+
1
4
  var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
2
5
  get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
3
6
  }) : x)(function(x) {
@@ -5,17 +8,6 @@ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require
5
8
  throw Error('Dynamic require of "' + x + '" is not supported');
6
9
  });
7
10
 
8
- // src/client.ts
9
- import { Web3 } from "web3";
10
- import {
11
- getNetworkConfig,
12
- getNetworkByChainId,
13
- encodePaymentV2,
14
- networkToCaip2,
15
- combineSignatureV2,
16
- V2_HEADERS as V2_HEADERS2
17
- } from "@armory-sh/base";
18
-
19
11
  // src/eip3009.ts
20
12
  var USDC_DOMAIN = {
21
13
  NAME: "USD Coin",
@@ -111,12 +103,6 @@ var signWithPrivateKey = async (_privateKey, _domain, _message) => {
111
103
  "Direct private key signing not implemented. Use wallet provider's signTypedData method instead."
112
104
  );
113
105
  };
114
-
115
- // src/protocol.ts
116
- import {
117
- V2_HEADERS,
118
- isX402V2PaymentRequired
119
- } from "@armory-sh/base";
120
106
  var detectX402Version = (_response, _fallbackVersion = 2) => {
121
107
  return 2;
122
108
  };
@@ -130,7 +116,8 @@ var parsePaymentRequired = async (response, _version) => {
130
116
  try {
131
117
  parsed = JSON.parse(v2Header);
132
118
  } catch {
133
- const decoded = Buffer.from(v2Header, "base64").toString("utf-8");
119
+ const normalized = v2Header.replace(/-/g, "+").replace(/_/g, "/").padEnd(Math.ceil(v2Header.length / 4) * 4, "=");
120
+ const decoded = Buffer.from(normalized, "base64").toString("utf-8");
134
121
  parsed = JSON.parse(decoded);
135
122
  }
136
123
  if (!isX402V2PaymentRequired(parsed)) {
@@ -256,7 +243,7 @@ var signPaymentV2 = async (state, network, params) => {
256
243
  const defaultAccepted = accepted ?? {
257
244
  scheme: "exact",
258
245
  network: networkToCaip2(network.name),
259
- amount,
246
+ maxAmountRequired: amount,
260
247
  asset: network.usdcAddress,
261
248
  payTo: to,
262
249
  maxTimeoutSeconds: expiry - Math.floor(Date.now() / 1e3)
@@ -299,8 +286,7 @@ var createX402Client = (config) => {
299
286
  const fetch2 = async (url, init) => {
300
287
  let response = await fetch2(url, init);
301
288
  if (response.status === 402) {
302
- const version = detectX402Version(response, state.version);
303
- const parsed = await parsePaymentRequired(response, version);
289
+ const parsed = await parsePaymentRequired(response);
304
290
  const selectedRequirements = parsed.requirements[0];
305
291
  if (!selectedRequirements) {
306
292
  throw new Error("No supported payment scheme found in requirements");
@@ -312,13 +298,13 @@ var createX402Client = (config) => {
312
298
  const result = await signPaymentV2(state, network, {
313
299
  from,
314
300
  to,
315
- amount: req.amount,
301
+ amount: req.maxAmountRequired,
316
302
  nonce: crypto.randomUUID(),
317
303
  expiry: Math.floor(Date.now() / 1e3) + DEFAULT_EXPIRY_SECONDS,
318
304
  accepted: req
319
305
  });
320
306
  const paymentHeaders = new Headers(init?.headers);
321
- paymentHeaders.set(V2_HEADERS2.PAYMENT_SIGNATURE, encodePaymentV2(result.payload));
307
+ paymentHeaders.set(V2_HEADERS.PAYMENT_SIGNATURE, encodePaymentV2(result.payload));
322
308
  response = await fetch2(url, { ...init, headers: paymentHeaders });
323
309
  }
324
310
  return response;
@@ -360,7 +346,7 @@ var createX402Client = (config) => {
360
346
  return signPaymentV2(state, network, {
361
347
  from,
362
348
  to,
363
- amount: requirements.amount,
349
+ amount: requirements.maxAmountRequired,
364
350
  nonce: crypto.randomUUID(),
365
351
  expiry: Math.floor(Date.now() / 1e3) + DEFAULT_EXPIRY_SECONDS,
366
352
  accepted: requirements
@@ -371,16 +357,10 @@ var createX402Client = (config) => {
371
357
  }
372
358
  };
373
359
  };
374
-
375
- // src/transport.ts
376
- import {
377
- V2_HEADERS as V2_HEADERS3,
378
- encodePaymentV2 as encodePaymentV22
379
- } from "@armory-sh/base";
380
360
  var DEFAULT_MAX_RETRIES = 3;
381
361
  var createPaymentHeaders = (payload, _version) => {
382
362
  const headers = new Headers();
383
- headers.set(V2_HEADERS3.PAYMENT_SIGNATURE, encodePaymentV22(payload));
363
+ headers.set(V2_HEADERS.PAYMENT_SIGNATURE, encodePaymentV2(payload));
384
364
  return headers;
385
365
  };
386
366
  var isPaymentRelatedError = (error) => error.message.includes("402") || error.message.includes("payment") || error.message.includes("signature") || error.message.includes("Payment");
@@ -390,15 +370,15 @@ var backoff = (attempt) => {
390
370
  return new Promise((resolve) => setTimeout(resolve, baseDelay + jitter));
391
371
  };
392
372
  var handlePaymentRequired = async (response, client) => {
393
- const version = detectX402Version(response, client.getVersion());
394
- const parsed = await parsePaymentRequired(response, version);
373
+ detectX402Version(response, client.getVersion());
374
+ const parsed = await parsePaymentRequired(response);
395
375
  const selectedRequirements = parsed.requirements[0];
396
376
  if (!selectedRequirements) {
397
377
  throw new Error("No supported payment scheme found in requirements");
398
378
  }
399
379
  const req = selectedRequirements;
400
380
  const result = await client.handlePaymentRequired(req);
401
- return createPaymentHeaders(result.payload, version);
381
+ return createPaymentHeaders(result.payload);
402
382
  };
403
383
  var mergePaymentHeaders = (init = {}, paymentHeaders) => {
404
384
  const existingHeaders = new Headers(init.headers);
@@ -440,14 +420,6 @@ var createX402Transport = (options) => {
440
420
  }
441
421
  };
442
422
  };
443
-
444
- // src/payment-api.ts
445
- import {
446
- resolveNetwork,
447
- resolveToken,
448
- validatePaymentConfig,
449
- isValidationError
450
- } from "@armory-sh/base";
451
423
  var normalizeWallet = (wallet) => {
452
424
  if (typeof wallet === "object" && wallet !== null && "account" in wallet) {
453
425
  return wallet.account;
@@ -500,7 +472,7 @@ var armoryPay = async (wallet, url, network, token, options) => {
500
472
  };
501
473
  }
502
474
  const data = await response.json();
503
- const txHash = response.headers.get("X-PAYMENT-RESPONSE") || response.headers.get("PAYMENT-RESPONSE");
475
+ const txHash = response.headers.get("PAYMENT-RESPONSE");
504
476
  return {
505
477
  success: true,
506
478
  data,
@@ -585,7 +557,7 @@ var normalizeArmoryConfig = (config) => ({
585
557
  debug: config.debug ?? false
586
558
  });
587
559
  var createArmory = (config) => {
588
- const internal = normalizeArmoryConfig(config);
560
+ normalizeArmoryConfig(config);
589
561
  const makeRequest = async (url, method, body) => {
590
562
  try {
591
563
  const headers = new Headers();
@@ -603,7 +575,7 @@ var createArmory = (config) => {
603
575
  };
604
576
  }
605
577
  const data = await response.json();
606
- const txHash = response.headers.get("X-PAYMENT-RESPONSE") || response.headers.get("PAYMENT-RESPONSE");
578
+ const txHash = response.headers.get("PAYMENT-RESPONSE");
607
579
  return {
608
580
  success: true,
609
581
  data,
@@ -628,28 +600,5 @@ var createArmory = (config) => {
628
600
  call: (url) => makeRequest(url, "GET")
629
601
  };
630
602
  };
631
- export {
632
- adjustVForChainId,
633
- armoryDelete,
634
- armoryGet,
635
- armoryPatch,
636
- armoryPay,
637
- armoryPost,
638
- armoryPut,
639
- concatenateSignature,
640
- createArmory,
641
- createEIP712Domain,
642
- createTransferWithAuthorization,
643
- createX402Client,
644
- createX402Transport,
645
- getNetworks,
646
- getTokens,
647
- getWalletAddress,
648
- normalizeWallet,
649
- parseSignature,
650
- signTypedData,
651
- signWithPrivateKey,
652
- validateNetwork,
653
- validateToken,
654
- validateTransferWithAuthorization
655
- };
603
+
604
+ export { adjustVForChainId, armoryDelete, armoryGet, armoryPatch, armoryPay, armoryPost, armoryPut, concatenateSignature, createArmory, createEIP712Domain, createTransferWithAuthorization, createX402Client, createX402Transport, getNetworks, getTokens, getWalletAddress, normalizeWallet, parseSignature, signTypedData, signWithPrivateKey, validateNetwork, validateToken, validateTransferWithAuthorization };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@armory-sh/client-web3",
3
- "version": "0.2.17",
3
+ "version": "0.2.18-alpha.3.20",
4
4
  "license": "MIT",
5
5
  "author": "Sawyer Cutler <sawyer@dirtroad.dev>",
6
6
  "type": "module",
@@ -23,11 +23,11 @@
23
23
  },
24
24
  "repository": {
25
25
  "type": "git",
26
- "url": "git+https://github.com/thegreataxios/armory.git",
26
+ "url": "git+https://github.com/TheGreatAxios/armory.git",
27
27
  "directory": "packages/client-web3"
28
28
  },
29
29
  "dependencies": {
30
- "@armory-sh/base": "^0.2.21",
30
+ "@armory-sh/base": "^0.2.22",
31
31
  "web3": "4.16.0",
32
32
  "web3-types": "1.10.0"
33
33
  },