@waiaas/core 2.6.0-rc → 2.6.0-rc.2

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 (59) hide show
  1. package/dist/caip/asset-helpers.d.ts +34 -0
  2. package/dist/caip/asset-helpers.d.ts.map +1 -0
  3. package/dist/caip/asset-helpers.js +66 -0
  4. package/dist/caip/asset-helpers.js.map +1 -0
  5. package/dist/caip/caip19.d.ts +13 -0
  6. package/dist/caip/caip19.d.ts.map +1 -0
  7. package/dist/caip/caip19.js +27 -0
  8. package/dist/caip/caip19.js.map +1 -0
  9. package/dist/caip/caip2.d.ts +10 -0
  10. package/dist/caip/caip2.d.ts.map +1 -0
  11. package/dist/caip/caip2.js +19 -0
  12. package/dist/caip/caip2.js.map +1 -0
  13. package/dist/caip/index.d.ts +5 -0
  14. package/dist/caip/index.d.ts.map +1 -0
  15. package/dist/caip/index.js +9 -0
  16. package/dist/caip/index.js.map +1 -0
  17. package/dist/caip/network-map.d.ts +27 -0
  18. package/dist/caip/network-map.d.ts.map +1 -0
  19. package/dist/caip/network-map.js +42 -0
  20. package/dist/caip/network-map.js.map +1 -0
  21. package/dist/index.d.ts +4 -2
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +5 -1
  24. package/dist/index.js.map +1 -1
  25. package/dist/interfaces/INotificationChannel.d.ts +2 -0
  26. package/dist/interfaces/INotificationChannel.d.ts.map +1 -1
  27. package/dist/interfaces/index.d.ts +1 -0
  28. package/dist/interfaces/index.d.ts.map +1 -1
  29. package/dist/interfaces/index.js +2 -0
  30. package/dist/interfaces/index.js.map +1 -1
  31. package/dist/interfaces/price-oracle.types.d.ts +8 -0
  32. package/dist/interfaces/price-oracle.types.d.ts.map +1 -1
  33. package/dist/interfaces/price-oracle.types.js +6 -1
  34. package/dist/interfaces/price-oracle.types.js.map +1 -1
  35. package/dist/interfaces/x402.types.d.ts +2 -13
  36. package/dist/interfaces/x402.types.d.ts.map +1 -1
  37. package/dist/interfaces/x402.types.js +3 -33
  38. package/dist/interfaces/x402.types.js.map +1 -1
  39. package/dist/schemas/index.d.ts +1 -1
  40. package/dist/schemas/index.d.ts.map +1 -1
  41. package/dist/schemas/index.js +1 -1
  42. package/dist/schemas/index.js.map +1 -1
  43. package/dist/schemas/policy.schema.d.ts +79 -11
  44. package/dist/schemas/policy.schema.d.ts.map +1 -1
  45. package/dist/schemas/policy.schema.js +74 -6
  46. package/dist/schemas/policy.schema.js.map +1 -1
  47. package/dist/schemas/transaction.schema.d.ts +174 -46
  48. package/dist/schemas/transaction.schema.d.ts.map +1 -1
  49. package/dist/schemas/transaction.schema.js +27 -1
  50. package/dist/schemas/transaction.schema.js.map +1 -1
  51. package/dist/utils/explorer-url.d.ts +12 -0
  52. package/dist/utils/explorer-url.d.ts.map +1 -0
  53. package/dist/utils/explorer-url.js +38 -0
  54. package/dist/utils/explorer-url.js.map +1 -0
  55. package/dist/utils/index.d.ts +1 -0
  56. package/dist/utils/index.d.ts.map +1 -1
  57. package/dist/utils/index.js +2 -0
  58. package/dist/utils/index.js.map +1 -1
  59. package/package.json +1 -1
@@ -2,6 +2,7 @@ import { z } from 'zod';
2
2
  import { TransactionTypeEnum, TransactionStatusEnum } from '../enums/transaction.js';
3
3
  import { PolicyTierEnum } from '../enums/policy.js';
4
4
  import { ChainTypeEnum, NetworkTypeEnum } from '../enums/chain.js';
5
+ import { Caip19Schema, parseCaip19 } from '../caip/index.js';
5
6
  export const TransactionSchema = z.object({
6
7
  id: z.string().uuid(),
7
8
  walletId: z.string().uuid(),
@@ -42,10 +43,35 @@ export const TransferRequestSchema = z.object({
42
43
  network: NetworkTypeEnum.optional(),
43
44
  });
44
45
  /** Token metadata for TOKEN_TRANSFER and APPROVE requests. */
45
- const TokenInfoSchema = z.object({
46
+ const TokenInfoBaseSchema = z.object({
46
47
  address: z.string().min(1), // mint address (SPL) or contract address (ERC-20)
47
48
  decimals: z.number().int().min(0).max(18),
48
49
  symbol: z.string().min(1).max(10),
50
+ assetId: Caip19Schema.optional(),
51
+ });
52
+ /** TokenInfoSchema with cross-validation: when assetId is provided, its address must match the address field. */
53
+ const TokenInfoSchema = TokenInfoBaseSchema.superRefine((data, ctx) => {
54
+ if (!data.assetId)
55
+ return; // No assetId -> skip cross-validation (TXSC-03)
56
+ try {
57
+ const parsed = parseCaip19(data.assetId);
58
+ const extractedAddress = parsed.assetReference;
59
+ // Cross-validate: case-insensitive for EVM (Pitfall 1: checksummed vs lowercased)
60
+ if (extractedAddress.toLowerCase() !== data.address.toLowerCase()) {
61
+ ctx.addIssue({
62
+ code: z.ZodIssueCode.custom,
63
+ message: `assetId address '${extractedAddress}' does not match provided address '${data.address}'`,
64
+ path: ['assetId'],
65
+ });
66
+ }
67
+ }
68
+ catch {
69
+ ctx.addIssue({
70
+ code: z.ZodIssueCode.custom,
71
+ message: `Invalid CAIP-19 assetId: ${data.assetId}`,
72
+ path: ['assetId'],
73
+ });
74
+ }
49
75
  });
50
76
  /** Type 2: TOKEN_TRANSFER -- SPL/ERC-20 token transfer. */
51
77
  export const TokenTransferRequestSchema = z.object({
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.schema.js","sourceRoot":"","sources":["../../src/schemas/transaction.schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transaction.schema.js","sourceRoot":"","sources":["../../src/schemas/transaction.schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Network-to-block-explorer URL mapping.
3
+ *
4
+ * Returns a transaction URL for the given network + txHash,
5
+ * or null if the network is not recognized.
6
+ */
7
+ /**
8
+ * Get block explorer transaction URL for a given network and txHash.
9
+ * Returns null if the network has no known explorer mapping.
10
+ */
11
+ export declare function getExplorerTxUrl(network: string, txHash: string): string | null;
12
+ //# sourceMappingURL=explorer-url.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"explorer-url.d.ts","sourceRoot":"","sources":["../../src/utils/explorer-url.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAwBH;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAI/E"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Network-to-block-explorer URL mapping.
3
+ *
4
+ * Returns a transaction URL for the given network + txHash,
5
+ * or null if the network is not recognized.
6
+ */
7
+ const EXPLORER_MAP = {
8
+ // Solana
9
+ mainnet: 'https://solscan.io/tx/{txHash}',
10
+ devnet: 'https://solscan.io/tx/{txHash}?cluster=devnet',
11
+ testnet: 'https://solscan.io/tx/{txHash}?cluster=testnet',
12
+ // Ethereum
13
+ 'ethereum-mainnet': 'https://etherscan.io/tx/{txHash}',
14
+ 'ethereum-sepolia': 'https://sepolia.etherscan.io/tx/{txHash}',
15
+ // Polygon
16
+ 'polygon-mainnet': 'https://polygonscan.com/tx/{txHash}',
17
+ 'polygon-amoy': 'https://amoy.polygonscan.com/tx/{txHash}',
18
+ // Arbitrum
19
+ 'arbitrum-mainnet': 'https://arbiscan.io/tx/{txHash}',
20
+ 'arbitrum-sepolia': 'https://sepolia.arbiscan.io/tx/{txHash}',
21
+ // Optimism
22
+ 'optimism-mainnet': 'https://optimistic.etherscan.io/tx/{txHash}',
23
+ 'optimism-sepolia': 'https://sepolia-optimism.etherscan.io/tx/{txHash}',
24
+ // Base
25
+ 'base-mainnet': 'https://basescan.org/tx/{txHash}',
26
+ 'base-sepolia': 'https://sepolia.basescan.org/tx/{txHash}',
27
+ };
28
+ /**
29
+ * Get block explorer transaction URL for a given network and txHash.
30
+ * Returns null if the network has no known explorer mapping.
31
+ */
32
+ export function getExplorerTxUrl(network, txHash) {
33
+ const template = EXPLORER_MAP[network];
34
+ if (!template)
35
+ return null;
36
+ return template.replace('{txHash}', txHash);
37
+ }
38
+ //# sourceMappingURL=explorer-url.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"explorer-url.js","sourceRoot":"","sources":["../../src/utils/explorer-url.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,YAAY,GAA2B;IAC3C,SAAS;IACT,OAAO,EAAE,gCAAgC;IACzC,MAAM,EAAE,+CAA+C;IACvD,OAAO,EAAE,gDAAgD;IACzD,WAAW;IACX,kBAAkB,EAAE,kCAAkC;IACtD,kBAAkB,EAAE,0CAA0C;IAC9D,UAAU;IACV,iBAAiB,EAAE,qCAAqC;IACxD,cAAc,EAAE,0CAA0C;IAC1D,WAAW;IACX,kBAAkB,EAAE,iCAAiC;IACrD,kBAAkB,EAAE,yCAAyC;IAC7D,WAAW;IACX,kBAAkB,EAAE,6CAA6C;IACjE,kBAAkB,EAAE,mDAAmD;IACvE,OAAO;IACP,cAAc,EAAE,kCAAkC;IAClD,cAAc,EAAE,0CAA0C;CAC3D,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAe,EAAE,MAAc;IAC9D,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACvC,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3B,OAAO,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAC9C,CAAC"}
@@ -1,3 +1,4 @@
1
1
  export { formatDisplayCurrency, formatRatePreview } from './format-currency.js';
2
2
  export { formatAmount, parseAmount } from './format-amount.js';
3
+ export { getExplorerTxUrl } from './explorer-url.js';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGhF,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGhF,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAG/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -2,4 +2,6 @@
2
2
  export { formatDisplayCurrency, formatRatePreview } from './format-currency.js';
3
3
  // v1.7 Blockchain amount formatting utilities (NOTE-01)
4
4
  export { formatAmount, parseAmount } from './format-amount.js';
5
+ // v27.2 Block explorer URL mapping
6
+ export { getExplorerTxUrl } from './explorer-url.js';
5
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEhF,wDAAwD;AACxD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEhF,wDAAwD;AACxD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAE/D,mCAAmC;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@waiaas/core",
3
- "version": "2.6.0-rc",
3
+ "version": "2.6.0-rc.2",
4
4
  "description": "WAIaaS core types, schemas, and shared utilities",
5
5
  "license": "MIT",
6
6
  "type": "module",